[runtime] pckernel implementation (#1032)

* toggle for ripping level models

* Create pckernel.gc

* builds and works

* fix defs

* resolution info works

* native letterboxing

* menu

* Fullscreen buttons

* Update glfw

* fix fullscreen taking over everything for some reason

* fix screenshots and add more menu options

* Cleanup DMA mess in load boundary render code (first try!!)

* Update default-menu.gc

* clang

* fix accidental macros in pairs

* refs

* fix null reference bugs

* add lavatube

* custom aspect ratios work (3D only)

* custom aspect ratios work (3D only)

* fix aspect ratio and non-4x3 debug text

* change `sceOpen`

* deadzone setting

* merge fixes

* check out `debug-pad-display`

* update readme imgs

* settings save works

* oops

* settings read/load (incomplete)

* add `:stop` to debugger and fix detach on Windows

* settings load works

* fullscreen and aspect ratio setting fixes

* swap menu options for convenience

* settings loads automatically properly

* fix panic and font hack edge case

* add rolling, ogre, snow, swamp, sunken b, jungle b

* Fixed borderless on windows please work

* Update fake_iso.txt

* remove error from opengl debug filter

* update refs

* minor tfrag tod palette lookup change

* accidentally nuked all opengl errors
This commit is contained in:
ManDude
2021-12-30 23:48:37 +00:00
committed by GitHub
parent 72fe06826f
commit 9ff71412e5
90 changed files with 3840 additions and 2447 deletions
+5 -3
View File
@@ -50,7 +50,8 @@ bool is_valid_bsp(const decompiler::LinkedObjectFile& file) {
void extract_from_level(ObjectFileDB& db,
TextureDB& tex_db,
const std::string& dgo_name,
const DecompileHacks& hacks) {
const DecompileHacks& hacks,
bool dump_level) {
if (db.obj_files_by_dgo.count(dgo_name) == 0) {
lg::warn("Skipping extract for {} because the DGO was not part of the input", dgo_name);
return;
@@ -91,13 +92,14 @@ void extract_from_level(ObjectFileDB& db,
expected_missing_textures = it->second;
}
extract_tfrag(as_tfrag_tree, fmt::format("{}-{}", dgo_name, i++),
bsp_header.texture_remap_table, tex_db, expected_missing_textures, tfrag_level);
bsp_header.texture_remap_table, tex_db, expected_missing_textures, tfrag_level,
dump_level);
} else if (draw_tree->my_type() == "drawable-tree-instance-tie") {
fmt::print(" extracting TIE\n");
auto as_tie_tree = dynamic_cast<level_tools::DrawableTreeInstanceTie*>(draw_tree.get());
assert(as_tie_tree);
extract_tie(as_tie_tree, fmt::format("{}-{}-tie", dgo_name, i++),
bsp_header.texture_remap_table, tex_db, tfrag_level);
bsp_header.texture_remap_table, tex_db, tfrag_level, dump_level);
} else {
fmt::print(" unsupported tree {}\n", draw_tree->my_type());
}