diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index e68de59f90..60c780660a 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -76,6 +76,13 @@ "name" : "Run - Decompiler - Jak 1", "args" : [ "${workspaceRoot}/decompiler/config/jak1_ntsc_black_label.jsonc", "${workspaceRoot}/iso_data/jak1", "${workspaceRoot}/decompiler_out/jak1"] }, + { + "type" : "default", + "project" : "CMakeLists.txt", + "projectTarget" : "decompiler.exe (bin\\decompiler.exe)", + "name" : "Run - Decompiler - Jak 1 PAL", + "args" : [ "${workspaceRoot}/decompiler/config/jak1_pal.jsonc", "${workspaceRoot}/iso_data/jak1pal", "${workspaceRoot}/decompiler_out/jak1pal"] + }, { "type" : "default", "project" : "CMakeLists.txt", diff --git a/CMakeLists.txt b/CMakeLists.txt index 03ef536a0b..cecfe85e70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ if(UNIX) -fdiagnostics-color=always") else() set(CMAKE_CXX_FLAGS "/EHsc") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:10000000") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:16000000,16384") endif(UNIX) if(WIN32) diff --git a/README.md b/README.md index f88bd5fbce..38f41e0016 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ Place a copy of the game's files in `iso_data`, then run the decompiler with the Run the OpenGOAL compiler `build/goalc/goalc`. Enter `(mi)` to build the `"iso"` target, which contains everything we have so far. ### Run Game -In a separate terminal, start the runtime with `build/game/gk -fakeiso -debug`. Then, in the OpenGOAL window, run `(lt)` to connect, `(lg)` to load the game engine `(test-play)` to start the game engine. If it all works right, it will look something like this: +In a separate terminal, start the runtime with `build/game/gk -fakeiso -debug`. Then, in the OpenGOAL window, run `(mi)` to create the data for the game and give the REPL information for running code, `(lt)` to connect, `(lg)` to load the game engine and `(test-play)` to start the game engine. If it all works right, it will look something like this: ``` g > (lt) [Listener] Socket connected established! (took 0 tries). Waiting for version... @@ -210,7 +210,7 @@ There are four main components to the project. The first is `goalc`, which is a GOAL compiler for x86-64. Our implementation of GOAL is called OpenGOAL. All of the compiler source code is in `goalc`. To run the compiler on Linux, there is a script `gc.sh`. The compiler is controlled through a prompt which can be used to enter commands to compile, connect to a running GOAL program for interaction, run the OpenGOAL debugger, or, if you are connected to a running GOAL program, can be used as a REPL to run code interactively. In addition to compiling code files, the compiler has features to pack and build data files. -The second component to the project is the decompiler. You must have a copy of the PS2 game and place all files from the DVD into the `iso_data` folder. Then run `decomp.sh` to run the decompiler. The decompile will extract assets to the `assets` folder. These assets will be used by the compiler when building the port. The decompiler will output code and other data intended to be inspected by humans in the `decompiler_out` folder. Stuff in this folder will not be used by the compiler. +The second component to the project is the decompiler. You must have a copy of the PS2 game and place all files from the DVD into the `iso_data` folder. Then run `decomp.sh` (Linux) to run the decompiler. For Windows, it is the `decomp-jak1.bat` file, and it wants your game's DVD files in a `jak1` folder inside `iso_data`. The decompile will extract assets to the `assets` folder. These assets will be used by the compiler when building the port, and you may want to turn asset extraction off after running it once. The decompiler will output code and other data intended to be inspected by humans in the `decompiler_out` folder. Stuff in this folder will not be used by the compiler. The third is the game source code, written in OpenGOAL. This is located in `goal_src`. All GOAL and GOOS code should be in this folder. Right now most of this is placeholders, but you can take a look at `kernel/gcommon.gc` or `goal-lib.gc` to see some in-progress source code. @@ -278,20 +278,20 @@ The final component is the "runtime", located in `game`. This is the part of the - `iso`: Final outputs that are used by the game. - `obj`: Object files generated by the compiler. - `resources`: To be removed. Contains fake versions of some files required to get things booting. -- `scripts`: Utility scripts. +- `scripts`: Utility scripts. Windows-specific batch files are in a `batch` folder while Unix shell scripts are in a `shell` folder. - `test`: Unit tests (run on GitHub Actions) - `third-party`: Third party libraries - CMake Code Coverage. For code coverage statistics on GitHub builds - `fmt`. String formatting library - `googletest`: Test framework - `inja`: templating library used for generating test code for compiler tests - - `minilzo`: decompression code for Jak 2 and later DGOs + - `lzokay`: decompression code for Jak 2 and later DGOs - `mman`: Windows library used to emulate `mmap` on Linux - `run-clang-format`: Utility to check and enforce code formatting - `run-clang-tidy` - `zydis`: x86-64 disassembler used in the OpenGOAL debugger - `json`: A JSON library - - `replxx`: Used for the REPL input. Support history and useful editing shortcuts. + - `replxx`: Used for the REPL input. Supports history and useful editing shortcuts. - `svpng`: Save a PNG file diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index c80657bedd..693b36516e 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -213,8 +213,20 @@ void ObjectFileDB::get_objs_from_dgo(const std::string& filename, const Config& // get all obj files... for (uint32_t i = 0; i < header.object_count; i++) { auto obj_header = reader.read(); - assert(reader.bytes_left() >= obj_header.object_count); assert_string_empty_after(obj_header.name, 60); + if (i == header.object_count - 1) { + if (reader.bytes_left() == obj_header.object_count - 0x30) { + if (config.is_pal) { + lg::warn("Skipping {} because it is a broken PAL object", obj_header.name); + reader.ffwd(reader.bytes_left()); + continue; + } else { + assert(false); + } + } + } else { + assert(reader.bytes_left() >= obj_header.object_count); + } if (std::string(obj_header.name).find("-ag") != std::string::npos) { lg::error( diff --git a/decompiler/ObjectFile/ObjectFileDB.h b/decompiler/ObjectFile/ObjectFileDB.h index 38ea31b879..34dfc66029 100644 --- a/decompiler/ObjectFile/ObjectFileDB.h +++ b/decompiler/ObjectFile/ObjectFileDB.h @@ -125,6 +125,7 @@ class ObjectFileDB { assert(obj_files_by_name.size() == obj_file_order.size()); for (const auto& name : obj_file_order) { for (auto& obj : obj_files_by_name.at(name)) { + // lg::info("{}...", name); f(obj); } } diff --git a/decompiler/config.cpp b/decompiler/config.cpp index ae1949857d..4936ed59fb 100644 --- a/decompiler/config.cpp +++ b/decompiler/config.cpp @@ -54,6 +54,7 @@ Config read_config_file(const std::string& path_to_config_file) { config.dump_objs = cfg.at("dump_objs").get(); config.print_cfgs = cfg.at("print_cfgs").get(); config.generate_symbol_definition_map = cfg.at("generate_symbol_definition_map").get(); + config.is_pal = cfg.at("is_pal").get(); auto allowed = cfg.at("allowed_objects").get>(); for (const auto& x : allowed) { diff --git a/decompiler/config.h b/decompiler/config.h index 06f961592e..6db1cb4ac7 100644 --- a/decompiler/config.h +++ b/decompiler/config.h @@ -106,6 +106,8 @@ struct Config { bool generate_symbol_definition_map = false; + bool is_pal = false; + std::unordered_set allowed_objects; std::unordered_set banned_objects; std::unordered_map>> diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 4da1fc42a9..b09d5b53d4 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -593,6 +593,7 @@ (shutdown) (list-sounds) (unload-music) + (set-fps) ) ;; - Enums @@ -1058,7 +1059,7 @@ (ogre-end #x600) (ogre-buzzer #x601) (ogre-boss #x603) - + (assistant-voicebox-intro-ogre-race #x605) (sidekick-speech-hint-ogre-race #x61c) @@ -2887,6 +2888,14 @@ :flag-assert #x900000004 ) +(deftype sound-rpc-set-fps (sound-rpc-cmd) + ((fps uint8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) + (deftype sound-rpc-list-sounds (sound-rpc-cmd) () :method-count-assert 9 @@ -2922,6 +2931,7 @@ (set-reverb sound-rpc-set-reverb :offset 0) (set-ear-trans sound-rpc-set-ear-trans :offset 0) (set-flava sound-rpc-set-flava :offset 0) + (set-fps sound-rpc-set-fps :offset 0) (shutdown sound-rpc-shutdown :offset 0) (list-sounds sound-rpc-list-sounds :offset 0) (unload-music sound-rpc-unload-music :offset 0) @@ -11750,11 +11760,12 @@ (fp-hud uint64 :offset-assert 560) (no-load-wait uint64 :offset-assert 568) (no-look-around-wait uint64 :offset-assert 576) + ;;(burn-proc handle :offset-assert 584) ;; PAL only ) :heap-base #x1e0 :method-count-assert 21 - :size-assert #x248 - :flag-assert #x1501e00248 + :size-assert #x248 ;;#x250 + :flag-assert #x1501e00248 ;;#x1501e00250 ;; inherited inspect of process-drawable (:methods (dummy-20 (_type_ collide-cache) none 20) @@ -13488,7 +13499,7 @@ (defenum sp-field-id :type uint16 - + (misc-fields-start 0) (spt-texture 1) (spt-anim 2) @@ -13616,6 +13627,7 @@ (bit1 1) (start-dead 2) (launch-asap 3) + (bit6 6) ) (deftype sparticle-group-item (structure) @@ -15186,6 +15198,7 @@ (define-extern sound-set-sound-falloff (function sound-name int int int int)) (define-extern sound-set-flava (function uint int)) (define-extern sound-volume-off (function int)) +(define-extern sound-set-fps (function uint int)) (define-extern show-iop-info (function dma-buffer int)) (define-extern show-iop-memory (function dma-buffer int)) (define-extern make-sqrt-table (function int)) @@ -20021,6 +20034,7 @@ (define-extern *master-exit* symbol) (define-extern *last-master-mode* symbol) (define-extern *screen-filter* screen-filter) +(define-extern *first-boot* symbol) ;; PAL ;; - Unknowns diff --git a/decompiler/config/jak1_ntsc_black_label.jsonc b/decompiler/config/jak1_ntsc_black_label.jsonc index 76261c9600..8e44c6e2d8 100644 --- a/decompiler/config/jak1_ntsc_black_label.jsonc +++ b/decompiler/config/jak1_ntsc_black_label.jsonc @@ -44,7 +44,7 @@ // generate the symbol_map.json file. // this is a guess at where each symbol is first defined/used. - "generate_symbol_definition_map": true, + "generate_symbol_definition_map": false, // debug option for instruction decoder "write_hex_near_instructions": false, @@ -60,6 +60,9 @@ // print control flow graph "print_cfgs": false, + // set to true for PAL versions. this will forcefully skip files that have some data missing at the end. + "is_pal": false, + //////////////////////////// // CONFIG FILES //////////////////////////// diff --git a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc index 43d16a7230..b2ba6c38b3 100644 --- a/decompiler/config/jak1_ntsc_black_label/inputs.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/inputs.jsonc @@ -263,6 +263,7 @@ "audio_dir_file_name": "", "streamed_audio_file_names": [ - "VAGWAD.ENG" + "VAGWAD.ENG", + "VAGWAD.JAP" ] } diff --git a/decompiler/config/jak1_pal.jsonc b/decompiler/config/jak1_pal.jsonc new file mode 100644 index 0000000000..190e3b6b8a --- /dev/null +++ b/decompiler/config/jak1_pal.jsonc @@ -0,0 +1,81 @@ +{ + "game_version": 1, + + // if you want to filter to only some object names. + // it will make the decompiler much faster. + "allowed_objects": [], + "banned_objects": [], + + //////////////////////////// + // CODE ANALYSIS OPTIONS + //////////////////////////// + + // set to true to generate plain .asm files with MIPS disassembly, with no fancy decompilation. + // this is fast and should succeed 100% of the time. + "disassemble_code": false, + + // Run the decompiler + "decompile_code": true, + + //////////////////////////// + // DATA ANALYSIS OPTIONS + //////////////////////////// + + // set to true to generate plain .asm files for data files. + // this will display most data as hex, but will add labels/references/type pointers/strings + // this generates a huge amount of output if you run it on the entire game. + "disassemble_data": false, + + // unpack textures to assets folder + "process_tpages": false, + // unpack game text to assets folder + "process_game_text": false, + // unpack game count to assets folder + "process_game_count": false, + + /////////////////////////// + // WEIRD OPTIONS + /////////////////////////// + + // these options are used rarely and should usually be left at false + + // output a file type_defs.gc which is used for the types part of all-types.gc + "regenerate_all_types": false, + + // generate the symbol_map.json file. + // this is a guess at where each symbol is first defined/used. + "generate_symbol_definition_map": false, + + // debug option for instruction decoder + "write_hex_near_instructions": false, + + // experimental tool to extract linked lists used for region scripting in Jak 2 and Jak 3. + "write_scripts": false, + + // hex dump of code/data files. + "hexdump_code": false, + "hexdump_data": false, + // dump raw obj files + "dump_objs": false, + // print control flow graph + "print_cfgs": false, + + // set to true for PAL versions. this will forcefully skip files that have some data missing at the end. + "is_pal": true, + + //////////////////////////// + // CONFIG FILES + //////////////////////////// + + "type_casts_file": "decompiler/config/jak1_pal/type_casts.jsonc", + "anonymous_function_types_file": "decompiler/config/jak1_pal/anonymous_function_types.jsonc", + "var_names_file": "decompiler/config/jak1_pal/var_names.jsonc", + "label_types_file": "decompiler/config/jak1_pal/label_types.jsonc", + "stack_structures_file": "decompiler/config/jak1_pal/stack_structures.jsonc", + "hacks_file": "decompiler/config/jak1_pal/hacks.jsonc", + "inputs_file": "decompiler/config/jak1_pal/inputs.jsonc", + + // optional: a predetermined object file name map from a file. + // this will make decompilation naming consistent even if you only run on some objects. + "obj_file_name_map_file": "" +} diff --git a/decompiler/config/jak1_pal/anonymous_function_types.jsonc b/decompiler/config/jak1_pal/anonymous_function_types.jsonc new file mode 100644 index 0000000000..7a3864cd3d --- /dev/null +++ b/decompiler/config/jak1_pal/anonymous_function_types.jsonc @@ -0,0 +1,765 @@ +{ + "gkernel": [ + [16, "(function process symbol)"], + [22, "(function process symbol)"], + [25, "(function process symbol)"], + [28, "(function process symbol)"], + [30, "(function process symbol)"], + [32, "(function process symbol)"] + ], + + "hud": [ + [10, "(function none :behavior hud)"] + ], + + "main": [[4, "(function none :behavior process)"]], + + "process-drawable": [[29, "(function string symbol)"]], + + "task-control": [ + [9, "(function task-control symbol)"], + [10, "(function task-control symbol)"], + [11, "(function task-control symbol)"], + [12, "(function task-control symbol)"], + [13, "(function task-control symbol)"], + [14, "(function task-control symbol)"], + [15, "(function task-control symbol)"], + [16, "(function task-control symbol)"], + [17, "(function task-control symbol)"], + [18, "(function task-control symbol)"], + [19, "(function task-control symbol)"], + [20, "(function task-control symbol)"], + [21, "(function task-control symbol)"], + [22, "(function task-control symbol)"], + [23, "(function task-control symbol)"], + [24, "(function task-control symbol)"], + [25, "(function task-control symbol)"], + [26, "(function task-control symbol)"], + [27, "(function task-control symbol)"], + [28, "(function task-control symbol)"], + [29, "(function task-control symbol)"], + [30, "(function task-control symbol)"], + [31, "(function task-control symbol)"], + [32, "(function task-control symbol)"], + [33, "(function task-control symbol)"], + [34, "(function task-control symbol)"], + [35, "(function task-control symbol)"], + [36, "(function task-control symbol)"], + [37, "(function task-control symbol)"], + [38, "(function task-control symbol)"], + [39, "(function task-control symbol)"], + [40, "(function task-control symbol)"], + [41, "(function task-control symbol)"], + [42, "(function task-control symbol)"], + [43, "(function task-control symbol)"], + [44, "(function task-control symbol)"], + [45, "(function task-control symbol)"], + [46, "(function task-control symbol)"], + [47, "(function task-control symbol)"], + [48, "(function task-control symbol)"], + [49, "(function task-control symbol)"], + [50, "(function task-control symbol)"], + [51, "(function task-control symbol)"], + [52, "(function task-control symbol)"], + [53, "(function task-control symbol)"], + [54, "(function task-control symbol)"], + [55, "(function task-control symbol)"], + [56, "(function task-control symbol)"], + [57, "(function task-control symbol)"], + [58, "(function task-control symbol)"], + [59, "(function task-control symbol)"], + [60, "(function task-control symbol)"], + [61, "(function task-control symbol)"], + [62, "(function task-control symbol)"], + [63, "(function task-control symbol)"], + [64, "(function task-control symbol)"], + [65, "(function task-control symbol)"], + [66, "(function task-control symbol)"], + [67, "(function task-control symbol)"], + [68, "(function task-control symbol)"], + [69, "(function task-control symbol)"], + [70, "(function task-control symbol)"], + [71, "(function task-control symbol)"], + [72, "(function task-control symbol)"], + [73, "(function task-control symbol)"], + [74, "(function task-control symbol)"], + [75, "(function task-control symbol)"], + [76, "(function task-control symbol)"], + [77, "(function task-control symbol)"], + [78, "(function task-control symbol)"], + [79, "(function task-control symbol)"], + [80, "(function task-control symbol)"], + [81, "(function task-control symbol)"], + [82, "(function task-control symbol)"], + [83, "(function task-control symbol)"], + [84, "(function task-control symbol)"], + [85, "(function task-control symbol)"], + [86, "(function task-control symbol)"], + [87, "(function task-control symbol)"], + [88, "(function task-control symbol)"], + [89, "(function task-control symbol)"], + [90, "(function task-control symbol)"], + [91, "(function task-control symbol)"], + [92, "(function task-control symbol)"], + [93, "(function task-control symbol)"], + [94, "(function task-control symbol)"], + [95, "(function task-control symbol)"], + [96, "(function task-control symbol)"], + [97, "(function task-control symbol)"], + [98, "(function task-control symbol)"], + [99, "(function task-control symbol)"], + [100, "(function task-control symbol)"], + [101, "(function task-control symbol)"], + [102, "(function task-control symbol)"], + [103, "(function task-control symbol)"], + [104, "(function task-control symbol)"], + [105, "(function task-control symbol)"], + [106, "(function task-control symbol)"], + [107, "(function task-control symbol)"], + [108, "(function task-control symbol)"], + [109, "(function task-control symbol)"], + [110, "(function task-control symbol)"], + [111, "(function task-control symbol)"], + [112, "(function task-control symbol)"], + [113, "(function task-control symbol)"], + [114, "(function task-control symbol)"], + [115, "(function task-control symbol)"], + [116, "(function task-control symbol)"], + [117, "(function task-control symbol)"], + [118, "(function task-control symbol)"], + [119, "(function task-control symbol)"], + [120, "(function task-control symbol)"], + [121, "(function task-control symbol)"], + [122, "(function task-control symbol)"], + [123, "(function task-control symbol)"], + [124, "(function task-control symbol)"], + [125, "(function task-control symbol)"], + [126, "(function task-control symbol)"], + [127, "(function task-control symbol)"], + [128, "(function task-control symbol)"], + [129, "(function task-control symbol)"], + [130, "(function task-control symbol)"], + [131, "(function task-control symbol)"], + [132, "(function task-control symbol)"], + [133, "(function task-control symbol)"], + [134, "(function task-control symbol)"], + [135, "(function task-control symbol)"], + [136, "(function task-control symbol)"], + [137, "(function task-control symbol)"], + [138, "(function task-control symbol)"], + [139, "(function task-control symbol)"], + [140, "(function task-control symbol)"], + [141, "(function task-control symbol)"], + [142, "(function task-control symbol)"], + [143, "(function task-control symbol)"], + [144, "(function task-control symbol)"], + [145, "(function task-control symbol)"], + [146, "(function task-control symbol)"], + [147, "(function task-control symbol)"], + [148, "(function task-control symbol)"], + [149, "(function task-control symbol)"], + [150, "(function task-control symbol)"], + [151, "(function task-control symbol)"], + [152, "(function task-control symbol)"], + [153, "(function task-control symbol)"], + [154, "(function task-control symbol)"], + [155, "(function task-control symbol)"], + [156, "(function task-control symbol)"], + [157, "(function task-control symbol)"], + [158, "(function task-control symbol)"], + [159, "(function task-control symbol)"], + [160, "(function task-control symbol)"], + [161, "(function task-control symbol)"], + [162, "(function task-control symbol)"], + [163, "(function task-control symbol)"], + [164, "(function task-control symbol)"], + [165, "(function task-control symbol)"], + [166, "(function task-control symbol)"], + [167, "(function task-control symbol)"], + [168, "(function task-control symbol)"], + [169, "(function task-control symbol)"], + [170, "(function task-control symbol)"], + [171, "(function task-control symbol)"], + [172, "(function task-control symbol)"], + [173, "(function task-control symbol)"], + [174, "(function task-control symbol)"], + [175, "(function task-control symbol)"], + [176, "(function task-control symbol)"], + [177, "(function task-control symbol)"], + [178, "(function task-control symbol)"], + [179, "(function task-control symbol)"], + [180, "(function task-control symbol)"], + [181, "(function task-control symbol)"], + [182, "(function task-control symbol)"], + [183, "(function task-control symbol)"], + [184, "(function task-control symbol)"], + [185, "(function task-control symbol)"], + [186, "(function task-control symbol)"], + [187, "(function task-control symbol)"], + [188, "(function task-control symbol)"], + [189, "(function task-control symbol)"], + [190, "(function task-control symbol)"], + [191, "(function task-control symbol)"], + [192, "(function task-control symbol)"], + [193, "(function task-control symbol)"], + [194, "(function task-control symbol)"], + [195, "(function task-control symbol)"], + [196, "(function task-control symbol)"], + [197, "(function task-control symbol)"], + [198, "(function task-control symbol)"], + [199, "(function task-control symbol)"], + [200, "(function task-control symbol)"], + [201, "(function task-control symbol)"], + [202, "(function task-control symbol)"], + [203, "(function task-control symbol)"], + [204, "(function task-control symbol)"], + [205, "(function task-control symbol)"], + [206, "(function task-control symbol)"], + [207, "(function task-control symbol)"], + [208, "(function task-control symbol)"], + [209, "(function task-control symbol)"], + [210, "(function task-control symbol)"], + [211, "(function task-control symbol)"], + [212, "(function task-control symbol)"], + [213, "(function task-control symbol)"], + [214, "(function task-control symbol)"], + [215, "(function task-control symbol)"], + [216, "(function task-control symbol)"], + [217, "(function task-control symbol)"], + [218, "(function task-control symbol)"], + [219, "(function task-control symbol)"], + [220, "(function task-control symbol)"], + [221, "(function task-control symbol)"], + [222, "(function task-control symbol)"], + [223, "(function task-control symbol)"], + [224, "(function task-control symbol)"], + [225, "(function task-control symbol)"], + [226, "(function task-control symbol)"], + [227, "(function task-control symbol)"], + [228, "(function task-control symbol)"], + [229, "(function task-control symbol)"], + [230, "(function task-control symbol)"], + [231, "(function task-control symbol)"], + [232, "(function task-control symbol)"], + [233, "(function task-control symbol)"], + [234, "(function task-control symbol)"], + [235, "(function task-control symbol)"], + [236, "(function task-control symbol)"], + [237, "(function task-control symbol)"], + [238, "(function task-control symbol)"], + [239, "(function task-control symbol)"], + [240, "(function task-control symbol)"], + [241, "(function task-control symbol)"], + [242, "(function task-control symbol)"], + [243, "(function task-control symbol)"], + [244, "(function task-control symbol)"], + [245, "(function task-control symbol)"], + [246, "(function task-control symbol)"], + [247, "(function task-control symbol)"], + [248, "(function task-control symbol)"], + [249, "(function task-control symbol)"], + [250, "(function task-control symbol)"], + [251, "(function task-control symbol)"], + [252, "(function task-control symbol)"], + [253, "(function task-control symbol)"], + [254, "(function task-control symbol)"], + [255, "(function task-control symbol)"], + [256, "(function task-control symbol)"], + [257, "(function task-control symbol)"], + [258, "(function task-control symbol)"], + [259, "(function task-control symbol)"], + [260, "(function task-control symbol)"], + [261, "(function task-control symbol)"], + [262, "(function task-control symbol)"], + [263, "(function task-control symbol)"], + [264, "(function task-control symbol)"], + [265, "(function task-control symbol)"], + [266, "(function task-control symbol)"], + [267, "(function task-control symbol)"], + [268, "(function task-control symbol)"], + [269, "(function task-control symbol)"], + [270, "(function task-control symbol)"], + [271, "(function task-control symbol)"], + [272, "(function task-control symbol)"], + [273, "(function task-control symbol)"], + [274, "(function task-control symbol)"], + [275, "(function task-control symbol)"], + [276, "(function task-control symbol)"], + [277, "(function task-control symbol)"], + [278, "(function task-control symbol)"], + [279, "(function task-control symbol)"], + [280, "(function task-control symbol)"], + [281, "(function task-control symbol)"], + [282, "(function task-control symbol)"], + [283, "(function task-control symbol)"], + [284, "(function task-control symbol)"], + [285, "(function task-control symbol)"], + [286, "(function task-control symbol)"], + [287, "(function task-control symbol)"], + [288, "(function task-control symbol)"], + [289, "(function task-control symbol)"], + [290, "(function task-control symbol)"], + [291, "(function task-control symbol)"], + [292, "(function task-control symbol)"], + [293, "(function task-control symbol)"], + [294, "(function task-control symbol)"], + [295, "(function task-control symbol)"], + [296, "(function task-control symbol)"], + [297, "(function task-control symbol)"], + [298, "(function task-control symbol)"], + [299, "(function task-control symbol)"], + [300, "(function task-control symbol)"], + [301, "(function task-control symbol)"], + [302, "(function task-control symbol)"], + [303, "(function task-control symbol)"], + [304, "(function task-control symbol)"], + [305, "(function task-control symbol)"], + [306, "(function task-control symbol)"], + [307, "(function task-control symbol)"], + [308, "(function task-control symbol)"], + [309, "(function task-control symbol)"], + [310, "(function task-control symbol)"], + [311, "(function task-control symbol)"], + [312, "(function task-control symbol)"], + [313, "(function task-control symbol)"], + [314, "(function task-control symbol)"], + [315, "(function task-control symbol)"], + [316, "(function task-control symbol)"], + [317, "(function task-control symbol)"], + [318, "(function task-control symbol)"], + [319, "(function task-control symbol)"], + [320, "(function task-control symbol)"], + [321, "(function task-control symbol)"], + [322, "(function task-control symbol)"], + [323, "(function task-control symbol)"], + [324, "(function task-control symbol)"], + [325, "(function task-control symbol)"], + [326, "(function task-control symbol)"], + [327, "(function task-control symbol)"], + [328, "(function task-control symbol)"], + [329, "(function task-control symbol)"], + [330, "(function task-control symbol)"], + [331, "(function task-control symbol)"], + [332, "(function task-control symbol)"], + [333, "(function task-control symbol)"], + [334, "(function task-control symbol)"], + [335, "(function task-control symbol)"], + [336, "(function task-control task-control symbol)"], + [337, "(function task-control task-control symbol)"], + [338, "(function task-control symbol)"], + [339, "(function task-control symbol)"], + [340, "(function task-control symbol)"], + [341, "(function task-control symbol)"], + [342, "(function task-control symbol)"], + [343, "(function task-control symbol)"], + [344, "(function task-control symbol)"], + [345, "(function task-control symbol)"], + [346, "(function task-control symbol)"], + [347, "(function task-control symbol)"], + [348, "(function task-control symbol)"], + [349, "(function task-control symbol)"], + [350, "(function task-control symbol)"], + [351, "(function task-control symbol)"], + [352, "(function task-control symbol)"], + [353, "(function task-control symbol)"], + [354, "(function task-control symbol)"], + [355, "(function task-control symbol)"], + [356, "(function task-control symbol)"], + [357, "(function task-control symbol)"], + [358, "(function task-control symbol)"], + [359, "(function task-control symbol)"], + [360, "(function task-control symbol)"], + [361, "(function task-control symbol)"], + [362, "(function task-control task-control symbol)"], + [363, "(function task-control task-control symbol)"], + [364, "(function task-control task-control symbol)"], + [365, "(function task-control task-control symbol)"], + [366, "(function task-control symbol)"], + [367, "(function task-control symbol)"], + [368, "(function task-control symbol)"], + [369, "(function task-control symbol)"], + [370, "(function task-control symbol)"], + [371, "(function task-control symbol)"], + [372, "(function task-control symbol)"], + [373, "(function task-control symbol)"], + [374, "(function task-control symbol)"], + [375, "(function task-control symbol)"], + [376, "(function task-control symbol)"], + [377, "(function task-control symbol)"], + [378, "(function task-control symbol)"], + [379, "(function task-control symbol)"], + [380, "(function task-control symbol)"], + [381, "(function task-control symbol)"], + [382, "(function task-control symbol)"], + [383, "(function task-control symbol)"], + [384, "(function task-control symbol)"], + [385, "(function task-control symbol)"], + [386, "(function task-control symbol)"], + [387, "(function task-control symbol)"], + [388, "(function task-control symbol)"], + [389, "(function task-control symbol)"], + [390, "(function task-control symbol)"], + [391, "(function task-control symbol)"], + [392, "(function task-control symbol)"], + [393, "(function task-control symbol)"], + [394, "(function task-control symbol)"], + [395, "(function task-control symbol)"], + [396, "(function task-control symbol)"], + [397, "(function task-control symbol)"], + [398, "(function task-control symbol)"], + [399, "(function task-control symbol)"], + [400, "(function task-control symbol)"], + [401, "(function task-control symbol)"], + [402, "(function task-control symbol)"], + [403, "(function task-control symbol)"], + [404, "(function task-control symbol)"], + [405, "(function task-control symbol)"], + [406, "(function task-control symbol)"], + [407, "(function task-control symbol)"], + [408, "(function task-control symbol)"], + [409, "(function task-control symbol)"], + [410, "(function task-control symbol)"], + [411, "(function task-control symbol)"], + [412, "(function task-control symbol)"], + [413, "(function task-control symbol)"], + [414, "(function task-control task-control symbol)"], + [415, "(function task-control task-control symbol)"], + [416, "(function task-control symbol)"], + [417, "(function task-control symbol)"], + [418, "(function task-control symbol)"], + [419, "(function task-control symbol)"], + [420, "(function task-control symbol)"], + [421, "(function task-control symbol)"], + [422, "(function task-control symbol)"], + [423, "(function task-control symbol)"], + [424, "(function task-control symbol)"], + [425, "(function task-control task-control symbol)"], + [426, "(function task-control task-control symbol)"], + [427, "(function task-control symbol)"], + [428, "(function task-control symbol)"], + [429, "(function task-control symbol)"], + [430, "(function task-control symbol)"], + [431, "(function task-control symbol)"], + [432, "(function task-control task-control symbol)"], + [433, "(function task-control task-control symbol)"], + [434, "(function task-control task-control symbol)"], + [435, "(function task-control symbol)"], + [436, "(function task-control task-control symbol)"], + [437, "(function task-control task-control symbol)"], + [438, "(function task-control task-control symbol)"], + [439, "(function task-control symbol)"], + [440, "(function task-control symbol)"], + [441, "(function task-control symbol)"], + [442, "(function task-control symbol)"], + [443, "(function task-control task-control symbol)"], + [444, "(function task-control task-control symbol)"], + [445, "(function task-control symbol)"], + [446, "(function task-control task-control symbol)"], + [447, "(function task-control task-control symbol)"], + [448, "(function task-control task-control symbol)"], + [449, "(function task-control symbol)"], + [450, "(function task-control symbol)"], + [451, "(function task-control symbol)"], + [452, "(function task-control symbol)"], + [453, "(function task-control task-control symbol)"], + [454, "(function task-control task-control symbol)"], + [455, "(function task-control symbol)"], + [456, "(function task-control task-control symbol)"], + [457, "(function task-control task-control symbol)"], + [458, "(function task-control task-control symbol)"], + [459, "(function task-control symbol)"], + [460, "(function task-control symbol)"], + [461, "(function task-control symbol)"], + [462, "(function task-control symbol)"], + [463, "(function task-control symbol)"], + [464, "(function task-control symbol)"], + [465, "(function task-control symbol)"], + [466, "(function task-control symbol)"], + [467, "(function task-control symbol)"], + [468, "(function task-control symbol)"], + [469, "(function task-control symbol)"], + [470, "(function task-control symbol)"], + [471, "(function task-control symbol)"], + [472, "(function task-control symbol)"], + [473, "(function task-control symbol)"], + [474, "(function task-control task-control symbol)"], + [475, "(function task-control task-control symbol)"], + [476, "(function task-control task-control symbol)"], + [477, "(function task-control task-control symbol)"], + [478, "(function task-control symbol)"], + [479, "(function task-control symbol)"], + [480, "(function task-control symbol)"], + [481, "(function task-control symbol)"], + [482, "(function task-control symbol)"], + [483, "(function task-control symbol)"], + [484, "(function task-control symbol)"], + [485, "(function task-control symbol)"], + [486, "(function task-control symbol)"], + [487, "(function task-control symbol)"], + [488, "(function task-control symbol)"], + [489, "(function task-control symbol)"], + [490, "(function task-control symbol)"], + [491, "(function task-control symbol)"], + [492, "(function task-control symbol)"], + [493, "(function task-control symbol)"], + [494, "(function task-control symbol)"], + [495, "(function task-control symbol)"], + [496, "(function task-control symbol)"] + ], + + "game-info": [ + [17, "(function symbol symbol continue-point symbol none)"], + [6, "(function process-drawable none)"], + [7, "(function none :behavior process-drawable)"], + [8, "(function object)"] + ], + + "default-menu": [ + [3, "(function none)"], + [4, "(function int int symbol)"], // TODO - first arg is ignored - i think there's a decomp bug here + [5, "(function int int symbol)"], // TODO - first arg is ignored + [6, "(function int int target)"], // TODO - first arg is ignored + [8, "(function int)"], + [9, "(function continue-point)"], + [10, "(function none)"], + [11, "(function object)"], + [12, "(function object)"], + [13, "(function object)"], + [14, "(function quaternion)"], + [15, "(function quaternion)"], + [16, "(function int int basic)"], // TODO - first arg is ignored + [17, "(function int)"], + [18, "(function int)"], + [19, "(function int)"], + [20, "(function none)"], + [21, "(function int int basic)"], // TODO - first arg is ignored + [22, "(function int int basic)"], // TODO - first arg is ignored + [23, "(function int int basic)"], // TODO - first arg is ignored + [24, "(function int int float float)"], // TODO - first arg is ignored + [25, "(function int int float float)"], // TODO - first arg is ignored + [26, "(function int int float float)"], // TODO - first arg is ignored + [27, "(function int int target)"], // TODO - first arg is ignored + [28, "(function none)"], + [29, "(function none)"], + [30, "(function none)"], + [31, "(function none)"], + [32, "(function none)"], + [33, "(function none)"], + [34, "(function int)"], + [35, "(function int)"], + [60, "(function debug-menu int float float object)"], // TODO - instance type blocking this one, not 100% sure about the debug-menu, but it has a string at offset 0 + [61, "(function debug-menu int float float object)"], // TODO - instance type blocking this one, not 100% sure about the debug-menu, but it has a string at offset 0 + [63, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [64, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [65, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [66, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [67, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [68, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [69, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [70, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [71, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [72, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [73, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [74, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [75, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [76, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [77, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [78, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [79, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems + [80, "(function object)"], + [81, "(function object)"], + [82, "(function symbol int float float none)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) + [84, "(function symbol int none)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) + [88, "(function debug-menu debug-menu symbol)"], // not 100% sure about the debug-menu, but it has a string at offset 0 + [89, "(function debug-menu debug-menu symbol)"], // not 100% sure about the debug-menu, but it has a string at offset 0 + [90, "(function debug-menu debug-menu symbol)"] // not 100% sure about the debug-menu, but it has a string at offset 0 + ], + + "memory-usage": [ + [3, "(function basic symbol)"], + [2, "(function process symbol)"] + ], + + "anim-tester": [ + [11, "(function none :behavior anim-tester)"], + [12, "(function none :behavior anim-tester)"], + [13, "(function none :behavior anim-tester)"] + ], + + "cam-combiner": [ + [1, "(function none :behavior camera-combiner)"], + [2, "(function basic int basic event-message-block object :behavior camera-combiner)"] + ], + + "title-obs": [ + [0, "(function none)"] + ], + + "misty-warehouse": [ + [3, "(function symbol none :behavior silostep)"], + [4, "(function none :behavior silostep)"], + [6, "(function none :behavior camera-tracker)"], + [7, "(function none :behavior silostep)"], + [8, "(function process int symbol event-message-block none :behavior silostep)"] + ], + + "rigid-body": [ + [5, "(function none :behavior rigid-body-platform)"], + [6, "(function none :behavior rigid-body-platform)"], + [7, "(function none :behavior rigid-body-platform)"], + [8, "(function none :behavior rigid-body-platform)"] + ], + + "sunken-elevator": [ + [3, "(function object :behavior sunken-elevator)"], + [4, "(function int :behavior sunken-elevator)"], + [5, "(function symbol :behavior sunken-elevator)"], + [6, "(function int :behavior sunken-elevator)"] + ], + + "nav-enemy": [ + [8, "(function none :behavior nav-enemy)"], + [9, "(function none)"], // stubbed + [10, "(function uint :behavior nav-enemy)"], + [11, "(function object :behavior nav-enemy)"], + [12, "(function none :behavior nav-enemy)"], + [13, "(function object :behavior nav-enemy)"], + [14, "(function uint :behavior nav-enemy)"], + [15, "(function object :behavior nav-enemy)"], + [16, "(function object :behavior nav-enemy)"], + [17, "(function vector :behavior nav-enemy)"], + [19, "(function object :behavior nav-enemy)"], + [20, "(function uint :behavior nav-enemy)"], + [21, "(function none :behavior nav-enemy)"], + [28, "(function symbol :behavior nav-enemy)"], + [29, "(function symbol :behavior nav-enemy)"], + [30, "(function object :behavior nav-enemy)"], + [31, "(function object :behavior nav-enemy)"], + [32, "(function vector :behavior nav-enemy)"], + [33, "(function object :behavior nav-enemy)"], + [34, "(function object :behavior nav-enemy)"], + [35, "(function object :behavior nav-enemy)"], + [36, "(function uint :behavior nav-enemy)"], + [37, "(function object :behavior nav-enemy)"], + [38, "(function object :behavior nav-enemy)"], + [39, "(function uint :behavior nav-enemy)"], + [40, "(function vector :behavior nav-enemy)"], + [41, "(function none :behavior nav-enemy)"], + [42, "(function object :behavior nav-enemy)"], + [43, "(function uint :behavior nav-enemy)"], + [44, "(function none :behavior nav-enemy)"], + [45, "(function object :behavior nav-enemy)"], + [46, "(function none :behavior nav-enemy)"], + [50, "(function none :behavior nav-enemy)"], + [51, "(function object :behavior nav-enemy)"], + [52, "(function uint :behavior nav-enemy)"], + [54, "(function object :behavior nav-enemy)"], + [55, "(function uint :behavior nav-enemy)"], + [56, "(function none :behavior nav-enemy)"], + [57, "(function object :behavior nav-enemy)"], + [58, "(function uint :behavior nav-enemy)"], + [59, "(function uint :behavior nav-enemy)"], + [60, "(function none :behavior nav-enemy)"], + [61, "(function object :behavior nav-enemy)"], + [62, "(function int :behavior nav-enemy)"] + ], + + "oracle": [ + [1, "(function sparticle-launch-group :behavior oracle)"], + [2, "(function sparticle-launch-group :behavior oracle)"], + [3, "(function none :behavior oracle)"] + ], + + "time-of-day": [ + [10, "(function none)"], + [12, "(function sparticle-system sparticle-cpuinfo int none)"] + ], + + "basebutton": [ + [1, "(function symbol :behavior target)"] + ], + + "entity": [ + [10, "(function process-drawable none)"] + ], + + "beach-rocks": [ + [2, "(function none :behavior beach-rock)"], + [3, "(function none :behavior beach-rock)"], + [4, "(function none :behavior beach-rock)"], + [5, "(function none :behavior beach-rock)"], + [6, "(function none :behavior beach-rock)"], + [7, "(function process int symbol event-message-block none :behavior beach-rock)"] + ], + + "projectiles": [ + [27, "(function projectile int)"] + ], + + "sidekick-human": [ + [7, "(function sparticle-launch-control :behavior sequenceC)"], + [15, "(function sparticle-launch-control :behavior sequenceB)"], + [16, "(function sparticle-launch-control :behavior sequenceB)"] + ], + + "demo-obs": [ + [1, "(function target)"] + ], + + "final-door": [ + [11, "(function final-door symbol)"], + [12, "(function final-door symbol)"] + ], + + "plat-eco": [ + [4, "(function none :behavior plat-eco)"], // trans + [5, "(function int float :behavior plat-eco)"], // enter + [6, "(function none :behavior plat-eco)"], // post + [7, "(function handle none :behavior plat-eco)"], // code + [8, "(function none :behavior plat-eco)"], // trans + [9, "(function process int symbol event-message-block object :behavior plat-eco)"], // event + [10, "(function symbol :behavior plat-eco)"], // code + [11, "(function none :behavior plat-eco)"], // trans + [12, "(function int :behavior plat-eco)"], // enter + [13, "(function process int symbol event-message-block object :behavior plat-eco)"] // event + ], + + "plat-flip": [ + [1, "(function none :behavior plat-flip)"], // code + [2, "(function process int symbol event-message-block object :behavior plat-flip)"] // event + ], + + "flying-lurker": [ + [37, "(function uint :behavior manipy)"], + [12, "(function uint :behavior manipy)"], + [11, "(function none :behavior process)"] + ], + + "ambient": [ + [29, "(function process int symbol event-message-block object :behavior level-hint)"] + ], + + "process-taskable": [ + [46, "(function process-taskable symbol)"] + ], + + "fishermans-boat": [ + [5, "(function none :behavior fishermans-boat)"], + [21, "(function none :behavior fishermans-boat)"], + [29, "(function none :behavior fishermans-boat)"] + ], + + "muse": [ + [3, "(function none :behavior muse)"] + ], + + "relocate": [ + [6, "(function sparticle-system sparticle-cpuinfo none)"] + ], + + "yakow": [ + [29, "(function none)"] + ], + + "placeholder-do-not-add-below": [] +} diff --git a/decompiler/config/jak1_pal/hacks.jsonc b/decompiler/config/jak1_pal/hacks.jsonc new file mode 100644 index 0000000000..abdb8606ef --- /dev/null +++ b/decompiler/config/jak1_pal/hacks.jsonc @@ -0,0 +1,555 @@ +{ + //////////////////////////// + // HACKS and ASM FUNCTIONS + //////////////////////////// + + "types_with_bad_inspect_methods": [ + "engine", + "bsp-header", + "joint-anim-matrix", + "part-tracker" + ], + + "no_type_analysis_functions_by_name": [], + + // this limits the number of cases in a cond. The first argument is the name of the function. + // the second argument is the name of the first condition in the cond. Use print_cfg to find it out. + // The third argument is the number of cases. If you set it too small it may fail to build the CFG. + "cond_with_else_max_lengths": [ + ["(method 20 res-lump)", "b0", 2], + ["(method 11 res-lump)", "b0", 1], + ["(method 12 res-lump)", "b0", 1] + ], + + // if a cond with an else case is being used a value in a place where it looks wrong + // you can add the function name to this list and it will more aggressively reject this rewrite. + "aggressively_reject_cond_to_value_rewrite": [ + "(method 10 res-lump)", + "(method 11 res-lump)", + "(method 12 res-lump)", + "(method 7 texture-page)" + ], + + // this provides a hint to the decompiler that these functions will have a lot of inline assembly. + // currently it just leaves pcpyld as an asm op. + "hint_inline_assembly_functions": ["matrix-transpose!"], + + "asm_functions_by_name": [ + // gcommon + "quad-copy!", + + // gkernel + "(method 11 cpu-thread)", + "throw", + "return-from-thread", + "return-from-thread-dead", + "reset-and-call", + "(method 10 cpu-thread)", + "(method 0 catch-frame)", + "throw-dispatch", + "set-to-run-bootstrap", + "run-function-in-process", // not asm, but it uses the stack. + + // pskernel + "return-from-exception", // F: eret + "kernel-read-function", // F: delay slot tricks + "kernel-write-function", // F: delay slot tricks + "kernel-copy-function", + "kernel-check-hardwired-addresses", + + // math + "rand-uint31-gen", + + // bounding box + "(method 9 bounding-box)", // F: asm branching + "(method 14 bounding-box)", + + // matrix + "(method 9 matrix)", // F: asm branching + "matrix-axis-sin-cos!", // F: asm branching + "matrix-axis-sin-cos-vu!", + + // geometry + "circle-circle-xz-intersect", // F: asm branching + + // trigonometry + "exp", // BUG: cfg is wrong. + "atan0", // P: manual use of stack + "sincos!", // P: manual use of stack + "sincos-rad!", + + // dma-h + "dma-count-until-done", // F: asm branching + "dma-sync-with-count", // F: asm branching + "dma-send-no-scratch", // F: asm branching + "dma-sync-fast", + + // dma + "symlink3", // F: asm branching + "symlink2", // F: asm branching + "dma-sync-hang", + + // display + "vblank-handler", // F: weird asm for interrupt handler + "vif1-handler", // F: weird asm for interrupt handler + "vif1-handler-debug", + + // vector + "vector=", // asm branching + + // collide-mesh-h + "(method 11 collide-mesh-cache)", + + // collide-func + "moving-sphere-triangle-intersect", // P: weird branching + "collide-do-primitives", // P: asm branching + + // joint + "calc-animation-from-spr", // F: asm branching + "decompress-frame-data-pair-to-accumulator", // P: asm calling + "decompress-frame-data-to-accumulator", // P: asm calling + "decompress-fixed-data-to-accumulator", // P: asm calling + "normalize-frame-quaternions", // F: asm branching, return + "clear-frame-accumulator", // F: asm branching + "cspace<-parented-transformq-joint!", + + // sprite + + // merc-blend-shape + "setup-blerc-chains-for-one-fragment", // F: asm branching + "merc-dma-chain-to-spr", // F: asm branching + "blerc-a-fragment", + + // ripple + "ripple-matrix-scale", + "ripple-apply-wave-table", + "ripple-create-wave-table", + "ripple-execute-init", + + // bones + "draw-bones-hud", + "draw-bones", + "draw-bones-check-longest-edge-asm", + "draw-bones-merc", + "bones-mtx-calc-execute", + "bones-mtx-calc", + "texscroll-execute", + + // generic-effect + "generic-debug-light-proc", + "generic-none-dma-wait", + "generic-copy-vtx-dclr-dtex", + "generic-light", + "generic-envmap-only-proc", + "generic-no-light", + "generic-no-light+envmap", + "generic-no-light-dproc", + "generic-no-light-dproc-only", + "generic-no-light-proc", + "generic-interp-dproc", + "generic-envmap-dproc", + "generic-prepare-dma-single", + "generic-prepare-dma-double", + "generic-envmap-proc", + "generic-light-proc", + "generic-dma-from-spr", + "upload-vu0-program", + + // generic-merc + "generic-merc-execute-all", + "generic-merc-execute-asm", + "high-speed-reject", + "mercneric-convert", + "mercneric-bittable-asm", + "mercneric-shader-asm", + "mercneric-matrix-asm", + "generic-merc-init-asm", + + // generic-tie + "generic-tie-convert", + "generic-tie-convert-proc", + "generic-tie-upload-next", + "generic-tie-decompress", + "generic-tie-dma-to-spad-sync", + + // shadow-cpu + "shadow-execute", + "shadow-add-double-edges", + "shadow-add-double-tris", + "shadow-add-single-edges", + "shadow-add-facing-single-tris", + "shadow-add-verts", + "shadow-find-double-edges", + "shadow-find-facing-double-tris", + "shadow-find-single-edges", + "shadow-find-facing-single-tris", + "shadow-scissor-top", + "shadow-scissor-edges", + "shadow-calc-dual-verts", + + // background + "background-upload-vu0", + + // draw-node + "draw-node-cull", + + // shrubbery + "test-func", + "draw-inline-array-instance-shrub", + + // tfrag + "stats-tfrag-asm", + "draw-inline-array-tfrag-near", + "draw-inline-array-tfrag", + + // tie-methods + "draw-inline-array-prototype-tie-near-asm", + "draw-inline-array-prototype-tie-asm", + "draw-inline-array-prototype-tie-generic-asm", + "draw-inline-array-instance-tie", + + // sparticle-launcher + "sp-init-fields!", + + // sparticle + "memcpy", + "sp-process-block-3d", + "sp-process-block-2d", + "sp-launch-particles-var", + "particle-adgif", + "sp-init-fields!", + + // time-of-day + "time-of-day-interp-colors-scratch", + "time-of-day-interp-colors", + + // sky-tng + "clip-polygon-against-negative-hyperplane", + "clip-polygon-against-positive-hyperplane", + "draw-large-polygon", + + // load-boundary + "render-boundary-tri", + "render-boundary-quad", + "draw-boundary-polygon", + + // collide-probe + "collide-probe-instance-tie", + "collide-probe-node", + + // collide-mesh + "(method 10 collide-mesh)", + "(method 13 collide-mesh)", + "(method 9 collide-mesh-cache)", + "(method 15 collide-mesh)", + "(method 14 collide-mesh)", + "(method 11 collide-mesh)", + "(method 12 collide-mesh)", + + // collide-edge-grab + "(method 13 collide-edge-work)", + "(method 17 collide-edge-work)", + "(method 15 collide-edge-work)", + "(method 16 collide-edge-work)", + "(method 9 edge-grab-info)", // maybe bug + "(method 18 collide-edge-work)", + "(method 10 collide-edge-hold-list)", + + // collide-shape + "(method 15 collide-shape-prim-mesh)", // BUG: + "(method 15 collide-shape-prim-sphere)", // BUG: + "(method 16 collide-shape-prim)", + "(method 15 collide-shape-prim-group)", + "(method 45 collide-shape)", + "(method 28 collide-shape-prim-mesh)", // BUG: + "(method 29 collide-shape-prim-group)", + "(method 20 collide-shape-prim-group)", + "(method 19 collide-shape-prim-sphere)", + "(method 18 collide-shape-prim-sphere)", + "(method 23 collide-shape-prim-sphere)", + "(method 23 collide-shape-prim-mesh)", // BUG: maybe + "(method 24 collide-shape-prim)", + "(method 23 collide-shape-prim-group)", + "(method 42 collide-shape)", + + // collide-shape-rider + "(method 35 collide-shape)", + + // cam-master BUG + "master-is-hopeful-better?", + + // cam-layout BUG + "cam-layout-save-cam-trans", + + // process-drawable BUG + "cspace-inspect-tree", // BUG: + "process-drawable-birth-fuel-cell", // BUG: + "(method 19 process-drawable)", + + // ambient + "ambient-inspect", + + // generic-obs BUG + "camera-change-to", + + // target BUG + "target-falling-anim-trans", + + // target2 BUG + "(anon-function 33 target2)", // BUG: + "(anon-function 67 target2)", // BUG: + "look-for-points-of-interest", + + // drawable-tree + "(method 16 drawable-tree)", + + // collide-cache + "(method 10 collide-puss-work)", + "(method 9 collide-puss-work)", + "(method 19 collide-cache)", + "(method 10 collide-cache-prim)", + "(method 9 collide-cache-prim)", + "(method 30 collide-cache)", + "(method 13 collide-shape-prim-group)", + "(method 13 collide-shape-prim-sphere)", + "(method 13 collide-shape-prim-mesh)", + "(method 14 collide-shape-prim-group)", + "(method 14 collide-shape-prim-sphere)", + "(method 14 collide-shape-prim-mesh)", + "(method 12 collide-shape-prim-group)", // BUG: maybe + "(method 12 collide-shape-prim-sphere)", + "(method 12 collide-shape-prim-mesh)", + "(method 29 collide-cache)", + "(method 27 collide-cache)", + "(method 14 collide-cache)", + "(method 28 collide-cache)", + "(method 26 collide-cache)", + "(method 21 collide-cache)", + "(method 32 collide-cache)", + + // memory-usage BUG + //"(method 14 level)", + + // navigate BUG + "(method 32 nav-control)", + + // collectables BUG + "add-blue-motion", + + // ocean + "draw-large-polygon-ocean", + + // ocean-vu0 + "ocean-generate-verts", + "ocean-interp-wave", + + // nav-enemy BUG + // "(anon-function 28 nav-enemy)", + + // orb-cache BUG + "(method 27 orb-cache-top)", + + // ropebridge BUG + "(method 27 ropebridge)", + + // all unchecked and in level DGO code + "(anon-function 11 robotboss)", + "(anon-function 18 robotboss)", + "(anon-function 49 robotboss)", + "(anon-function 21 plant-boss)", + "(anon-function 10 ice-cube)", + "(anon-function 15 ice-cube)", + "(anon-function 45 lavatube-energy)", + "mistycannon-find-best-solution", + "target-flut-falling-anim-trans", + "kermit-check-to-hit-player?", + "(anon-function 6 title-obs)", + "(anon-function 36 mistycannon)", + "(anon-function 43 maincave-obs)", + "(anon-function 2 target-tube)", + "(anon-function 5 orbit-plat)", + "(anon-function 2 ogreboss)" + + ], + + // these functions use pairs and the decompiler + // will be less picky about types related to pairs. + "pair_functions_by_name": [ + "ref", + "last", + "member", + "nmember", + "assoc", + "assoce", + "append!", + "delete!", + "delete-car!", + "insert-cons!", + "sort", + "unload-package", + "(method 4 pair)", + "nassoc", + "nassoce", + "lookup-level-info", + "(method 21 level-group)", + "(method 12 level)", + "update-sound-banks", + "(method 16 level-group)", + "bg", + "(method 18 game-info)", + "debug-menu-context-default-selection", + "debug-menu-rebuild", + "debug-menu-func-decode", + "debug-menu-make-from-template", + "debug-menu-render", + "debug-menu-context-select-next-or-prev-item", + "debug-menu-context-select-new-item", + "debug-menu-send-msg", + "debug-menu-find-from-template", + "build-continue-menu", + "(method 8 process-tree)", + "(method 16 load-state)", + "(method 15 load-state)", + "build-continue-menu", + "entity-remap-names", + "(method 21 swamp-rat-nest-dummy-a)", + "(method 21 swamp-rat-nest-dummy-b)", + "(method 21 swamp-rat-nest-dummy-c)", + "(method 27 battlecontroller)" + ], + + // If format is used with the wrong number of arguments, + // it will often mess up the decompilation, as the decompiler assumes + // that they used the correct number. This will override the decompiler's + // automatic detection. + "bad_format_strings": { + "ERROR: dma tag has data in reserved bits ~X~%": 0, + "#: value of symbol ~A in task-controls is not a task-control~%": 0, + "~0K~10,'-S--~5,'-DK-of-~5,'-DK--~5,'-DK-of-~5,'-DK--": 5, + " bsp ~192H~5DK ~280Hdebug~456H~5DK~%": 2, + " bsp-leaf-vis-iop ~192H~5DK~%": 1, + " bsp-leaf-vis-adj ~192H~5DK~%": 1, + " level-code ~192H~5DK~%": 1, + " tfrag ~192H~5DK ~280Htfragment~456H~5DK~%": 2, + " tie-proto ~192H~5DK ~280Hsky~456H~5DK~%": 2, + " tie-instance ~192H~5DK ~280Htie-fragment~456H~5DK~%": 2, + " shrub-proto ~192H~5DK ~280Htie-near~456H~5DK~%": 2, + " shrub-instance ~192H~5DK ~280Hshrubbery~456H~5DK~%": 2, + " collision ~192H~5DK ~280Htie-generic~456H~5DK~%": 2, + " pris-geo ~192H~5DK ~280Hpris-fragment~456H~5DK~%": 2, + " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, + " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, + " entity ~192H~5DK~%": 2, + " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2, + "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~": 3, + "~0k~5d/~d ~6d/~d ~6d/~d ": 6, + "~0k~s~%": 1 + }, + + "blocks_ending_in_asm_branch": { + "closest-pt-in-triangle": [17], + + // this one is all asm branches + "circle-circle-xz-intersect": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + + "find-knot-span": [0, 1, 2, 3, 5, 6, 7, 8, 9], + + "curve-evaluate!": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + + "(method 9 texture-page-dir)": [4, 5], + + "adgif-shader<-texture-with-update!": [0, 1], + + "display-loop": [44, 49, 66, 99], + + "load-game-text-info": [12, 13, 14, 18], + + "real-main-draw-hook": [75, 77], + + "(method 12 perf-stat)": [0], + "(method 11 perf-stat)": [0], + "raw-ray-sphere-intersect": [0, 1, 2, 3, 4, 5], + "ray-cylinder-intersect": [0, 1, 2, 3, 4, 5], + "ray-triangle-intersect": [0, 1, 2, 3, 4], + "bsp-camera-asm": [1, 2, 3], + "level-remap-texture": [2, 3, 4, 5, 6], + "start-perf-stat-collection": [26], + "end-perf-stat-collection": [0], + "sprite-draw-distorters": [4, 5], + "draw-string":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189], + "get-string-length":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], + "unpack-comp-rle":[1, 3, 5, 6], + "(method 16 level)":[ 1, 5, 13, 14, 15, 19, 26, 53], + "unpack-comp-huf":[2, 4, 5, 6, 7, 8, 9], + "blerc-execute":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], + "(method 11 fact-info-target)":[42], + "(anon-function 9 game-save)":[3, 4, 5, 6, 7, 8], + //"(anon-function 9 game-save)":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "particle-adgif":[0, 1, 2, 3, 4, 5, 7], + "sp-launch-particles-var":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66], + "(method 11 sparticle-launch-control)": [ 27, 28, 35, 46, 48, 49, 77], + "upload-vis-bits":[0,1,2,3,4,5, 6] + }, + + // Sometimes the game might use format strings that are fetched dynamically, + // for example using the game text lookup method + // Add information about those format instructions here. + // e.g. "function-name":[[op, argc], [op, argc], ...] + // where "op" is the op number for the call to format. + "dynamic_format_arg_counts": { + "(method 35 progress)":[ + [44, 1], + [92, 1] + ], + "(method 49 progress)":[ + [35, 1] + ], + "(method 37 progress)":[ + [41, 1] + ], + "(method 38 progress)":[ + [106, 1] + ], + "(method 39 progress)":[ + [56, 1], + [83, 1] + ], + "(method 41 progress)":[ + [73, 1] + ], + "(method 42 progress)":[ + [41, 1] + ], + "(method 43 progress)":[ + [51, 1], + [94, 1] + ], + "":[] + }, + + "mips2c_functions_by_name":[ + "sp-init-fields!", + "particle-adgif", + "sp-launch-particles-var", + "sp-process-block-2d", + "sp-process-block-3d" + ] +} + + diff --git a/decompiler/config/jak1_pal/inputs.jsonc b/decompiler/config/jak1_pal/inputs.jsonc new file mode 100644 index 0000000000..b2ba6c38b3 --- /dev/null +++ b/decompiler/config/jak1_pal/inputs.jsonc @@ -0,0 +1,269 @@ +{ + ////////////////////// + // INPUT FILES + ////////////////////// + + // input is GOAL object files, possibly in containers. + // most objects are part of CGO/DGO files (both go in dgo_names). This includes levels and the engine + // the DGOs will be processed in this order. Usually it's best to have KERNEL, ENGINE, then the levels when + // you want to run on the entire game. + "dgo_names": [ + "CGO/KERNEL.CGO", + "CGO/ENGINE.CGO", + "CGO/GAME.CGO", + "CGO/ART.CGO", + "DGO/BEA.DGO", + "DGO/CIT.DGO", + "CGO/COMMON.CGO", + "DGO/DAR.DGO", + "DGO/DEM.DGO", + "DGO/FIN.DGO", + "DGO/INT.DGO", + "DGO/JUB.DGO", + "DGO/JUN.DGO", + "CGO/JUNGLE.CGO", + "CGO/L1.CGO", + "DGO/FIC.DGO", + "DGO/LAV.DGO", + "DGO/MAI.DGO", + "CGO/MAINCAVE.CGO", + "DGO/MIS.DGO", + "DGO/OGR.DGO", + "CGO/RACERP.CGO", + "DGO/ROB.DGO", + "DGO/ROL.DGO", + "DGO/SNO.DGO", + "DGO/SUB.DGO", + "DGO/SUN.DGO", + "CGO/SUNKEN.CGO", + "DGO/SWA.DGO", + "DGO/TIT.DGO", + "DGO/TRA.DGO", + "DGO/VI1.DGO", + "DGO/VI2.DGO", + "DGO/VI3.DGO", + "CGO/VILLAGEP.CGO", + "CGO/WATER-AN.CGO" + ], + + // some objects are part of STR files (streaming data). In Jak 1 this is just animations + "str_file_names": [ + "STR/BAFCELL.STR", + "STR/SWTE4.STR", + "STR/SWTE3.STR", + "STR/SWTE2.STR", + "STR/SWTE1.STR", + "STR/SNRBSBFC.STR", + "STR/SNRBIPFC.STR", + "STR/SNRBICFC.STR", + "STR/ORR3.STR", + "STR/ORR2.STR", + "STR/MICANNON.STR", + "STR/BECANNON.STR", + "STR/SWTS4.STR", + "STR/SWTS3.STR", + "STR/SWTS2.STR", + "STR/SW4.STR", + "STR/SW3.STR", + "STR/SW2.STR", + "STR/SWTS1.STR", + "STR/ORREYE.STR", + "STR/ORLEYE.STR", + "STR/SW1.STR", + "STR/MAGFCELL.STR", + "STR/GNFCELL.STR", + "STR/ORRE3.STR", + "STR/ORRE2.STR", + "STR/ORRE1.STR", + "STR/ORR1.STR", + "STR/ORLE3.STR", + "STR/ORLE2.STR", + "STR/ORI3.STR", + "STR/ORI2.STR", + "STR/DE0202.STR", + "STR/RARSANIM.STR", + "STR/RARANIM.STR", + "STR/EIFISH.STR", + "STR/ORLE1.STR", + "STR/SWTEF4.STR", + "STR/SWTEF3.STR", + "STR/SWTEF2.STR", + "STR/SWTEF1.STR", + "STR/ORI1.STR", + "STR/EIICE.STR", + "STR/EIA3.STR", + "STR/DE0191.STR", + "STR/DE0186.STR", + "STR/DE0187.STR", + "STR/EIA4.STR", + "STR/EIPOLE.STR", + "STR/RARASECO.STR", + "STR/RARA2.STR", + "STR/DE0184.STR", + "STR/DE0181.STR", + "STR/PESEXT.STR", + "STR/DE0195.STR", + "STR/EIA2.STR", + "STR/FIR1.STR", + "STR/DE0182.STR", + "STR/BIR1.STR", + "STR/HAPOPEN.STR", + "STR/EITUBE.STR", + "STR/SCR1.STR", + "STR/DE0197.STR", + "STR/DE0193.STR", + "STR/EIA1.STR", + "STR/FAR2.STR", + "STR/FAR1.STR", + "STR/DE0199.STR", + "STR/GERMONEY.STR", + "STR/BIRESOLU.STR", + "STR/GARMONEY.STR", + "STR/BIADVENT.STR", + "STR/FUCRV1.STR", + "STR/BIREJECT.STR", + "STR/WAR1.STR", + "STR/BIACCEPT.STR", + "STR/SA3R1DEC.STR", + "STR/ASR1GENE.STR", + "STR/FIREJECT.STR", + "STR/GARRACE.STR", + "STR/GEZMONEY.STR", + "STR/LRFALLIN.STR", + "STR/EXR2.STR", + "STR/GERMOLES.STR", + "STR/FUCVICTO.STR", + "STR/MIR1ORBS.STR", + "STR/SA3R1RAM.STR", + "STR/AS2R1FLU.STR", + "STR/FUCV2.STR", + "STR/MIR1GNAW.STR", + "STR/GAZMONEY.STR", + "STR/AS3REMIN.STR", + "STR/SIHISA.STR", + "STR/FIACCEPT.STR", + "STR/FIWECO.STR", + "STR/FARESOLU.STR", + "STR/ASR1RBIK.STR", + "STR/MARDONAT.STR", + "STR/GAZRACE.STR", + "STR/FUCFV1.STR", + "STR/FUCV5.STR", + "STR/SABR1CDU.STR", + "STR/FLLINTRO.STR", + "STR/SAR1ECOR.STR", + "STR/AS2R1ROB.STR", + "STR/MIR2ORBS.STR", + "STR/MARBEAMS.STR", + "STR/LOI2.STR", + "STR/SAR1GENE.STR", + "STR/BILR1.STR", + "STR/AS2R1ROO.STR", + "STR/ASR1BESW.STR", + "STR/LOLOOP.STR", + "STR/FAINTROD.STR", + "STR/GEZMOLES.STR", + "STR/V1IN.STR", + "STR/FUCV4.STR", + "STR/SAIECORO.STR", + "STR/MIR1SWIT.STR", + "STR/LOINTRO.STR", + "STR/SAR2GENE.STR", + "STR/MUVICTOR.STR", + "STR/SAR1MCAN.STR", + "STR/FUCV7.STR", + "STR/MIZ1ORBS.STR", + "STR/FUCV8.STR", + "STR/BILR2.STR", + "STR/FUCV6.STR", + "STR/FUCV3.STR", + "STR/PLLBLOWU.STR", + "STR/PLBMAIN.STR", + "STR/WARESOLU.STR", + "STR/EIRACER.STR", + "STR/MAZDONAT.STR", + "STR/MAZBEAMS.STR", + "STR/MIISWITC.STR", + "STR/FIBRTVIL.STR", + "STR/FIBRTMIS.STR", + "STR/SABR1PAR.STR", + "STR/NDINTRO.STR", + "STR/GORDOWN.STR", + "STR/GORUP.STR", + "STR/SA3IRAMS.STR", + "STR/YERESOLU.STR", + "STR/EIFLUT.STR", + "STR/GRSDSACR.STR", + "STR/EXR1.STR", + "STR/SCRESOLU.STR", + "STR/FIRESOLU.STR", + "STR/SIHITEST.STR", + "STR/GAI1.STR", + "STR/EXRESOLU.STR", + "STR/MIZ2ORBS.STR", + "STR/ASIRBIKE.STR", + "STR/GRSOBBEC.STR", + "STR/BIINTROD.STR", + "STR/GRSOBBNC.STR", + "STR/AS2IROBB.STR", + "STR/GRSOBFIN.STR", + "STR/RERESOLU.STR", + "STR/BLRESOLU.STR", + "STR/SABIPARM.STR", + "STR/EVMEND.STR", + "STR/AS2RESOL.STR", + "STR/SAIMCANN.STR", + "STR/MIIGNAWE.STR", + "STR/GRSOBBA.STR", + "STR/GRSINTRO.STR", + "STR/SAISE.STR", + "STR/SA3IDECO.STR", + "STR/ASFRESOL.STR", + "STR/EXINTROD.STR", + "STR/BILINTRO.STR", + "STR/FIINTROD.STR", + "STR/MAINTROD.STR", + "STR/SCINTROD.STR", + "STR/AS2IFLUT.STR", + "STR/ASLERESO.STR", + "STR/ASLSRESO.STR", + "STR/AS2IROOM.STR", + "STR/GRSRESOL.STR", + "STR/SABICDUS.STR", + "STR/SIHISB.STR", + "STR/ASIBESWI.STR", + "STR/BILBRESO.STR", + "STR/FIBRT1AL.STR", + "STR/AS2INTRO.STR", + "STR/GEINTROD.STR", + "STR/SAISD1.STR", + "STR/SAISA.STR", + "STR/SIHISC.STR", + "STR/MIIORBS.STR", + "STR/WAINTROD.STR", + "STR/SAISD2.STR", + "STR/GRSOPREB.STR", + "STR/GRSOBBB.STR", + "STR/SA3INTRO.STR" + ], + + // some objects are directly stored as files on the DVD. This is just text files. + "object_file_names": [ + "TEXT/0COMMON.TXT", + "TEXT/1COMMON.TXT", + "TEXT/2COMMON.TXT", + "TEXT/3COMMON.TXT", + "TEXT/4COMMON.TXT", + "TEXT/5COMMON.TXT", + "TEXT/6COMMON.TXT" + ], + + // uncomment the next line to extract audio to wave files. + //"audio_dir_file_name": "jak1/VAG", + "audio_dir_file_name": "", + + "streamed_audio_file_names": [ + "VAGWAD.ENG", + "VAGWAD.JAP" + ] +} diff --git a/decompiler/config/jak1_pal/label_types.jsonc b/decompiler/config/jak1_pal/label_types.jsonc new file mode 100644 index 0000000000..f10ef98827 --- /dev/null +++ b/decompiler/config/jak1_pal/label_types.jsonc @@ -0,0 +1,808 @@ + // the format is [label_name, type, special] + + // if the type is pointer or inline array, special should be an integer size. + // if the type is a value type (like rgba), special should be true. + +{ + + "vector-h": [ + ["L32", "vector"], + ["L31", "vector"], + ["L30", "vector"], + ["L29", "vector"], + ["L28", "vector"], + ["L27", "vector"], + ["L26", "vector"] + ], + + "quaternion-h": [["L1", "quaternion"]], + + + "quaternion": [ + ["L67", "vector"], + ["L68", "vector"], + ["L69", "vector"], + ["L70", "vector"], + ["L71", "vector"], + ["L72", "vector"] + ], + + "geometry": [ + ["L112", "(pointer float)", 4] + ], + + "trigonometry": [ + ["L98", "(pointer float)", 32], + ["L99", "(pointer float)", 32], + ["L102", "vector"], + ["L101", "vector"], + ["L100", "vector"] + ], + + "video-h": [["L1", "video-parms"]], + + "font-h": [ + ["L18", "matrix"], + ["L17", "font-work"] + ], + + "display": [ + ["L76", "(pointer uint32)", 2] + ], + + "capture": [ + ["L12", "gs-store-image-packet"] + ], + + "main-h": [["L1", "frame-stats"]], + + "ocean-trans-tables": [ + ["L1", "(inline-array vector)", 4], + ["L2", "(pointer float)", 160], + ["L3", "(pointer float)", 100], + ["L4", "(pointer float)", 72], + ["L5", "(pointer float)", 72], + ["L6", "(pointer float)", 72], + ["L7", "(pointer float)", 72], + ["L8", "(pointer float)", 44], + ["L9", "(pointer float)", 44], + ["L10", "(pointer float)", 44], + ["L11", "(pointer float)", 44], + ["L12", "(pointer float)", 40], + ["L13", "(pointer float)", 40], + ["L14", "(pointer float)", 40], + ["L15", "(pointer float)", 40], + ["L16", "(pointer float)", 28], + ["L17", "(pointer float)", 28], + ["L18", "(pointer float)", 28], + ["L19", "(pointer float)", 28] + ], + + "pat-h": [["L1", "(inline-array pat-mode-info)", 4]], + + "joint-mod-h": [ + ["L89", "(inline-array vector)", 6], + ["L90", "(inline-array vector)", 3] + ], + + "collide-edge-grab-h": [["L1", "collide-edge-work"]], + + "assert-h": [["L4", "__assert-info-private-struct"]], + + "hud-h": [["L1", "hud-parts"]], + + "transformq": [ + ["L39", "vector"], + ["L40", "vector"] + ], + + "cylinder": [ + ["L54", "vector"], + ["L57", "vector"], + ["L56", "vector"], + ["L53", "vector"] + ], + + "sprite": [ + ["L58", "vu-function"] + ], + + "sprite-distort": [ + ["L27", "vu-function"] + ], + + "merc-vu1": [ + ["L1", "vu-function"] + ], + + "background": [ + ["L51", "vu-function"] + ], + + "debug": [ + ["L179", "vector2h"], + ["L176", "(inline-array vector)", 8], + ["L180", "vector"], + ["L181", "vector"], + ["L182", "vector"], + ["L183", "vector"], + ["L223", "rgba", true], + ["L225", "rgba", true], + ["L224", "rgba", true], + ["L222", "rgba", true], + ["L226", "rgba", true] + ], + + "shrub-work": [["L3", "instance-shrub-work"]], + + "game-info": [ + ["L468", "rgba", true], + ["L470", "rgba", true], + ["L464", "vector2h"], + ["L469", "rgba", true] + ], + + "tfrag-work": [["L1", "tfrag-work"]], + + "tie-work": [ + ["L1", "prototype-tie-work"], + ["L2", "instance-tie-work"] + ], + + "mood": [ + ["L256", "vector"], + ["L257", "vector"], + ["L258", "vector"], + ["L259", "vector"], + ["L260", "vector"], + ["L261", "vector"], + ["L262", "(inline-array vector)", 2], + ["L263", "light-ellipse"], + ["L264", "(inline-array vector)", 4], + ["L265", "vector"], + ["L266", "(inline-array vector)", 11], + ["L267", "vector"], + ["L268", "vector"], + ["L269", "vector"], + ["L270", "vector"], + ["L271", "vector"], + ["L272", "vector"], + ["L273", "vector"], + ["L274", "vector"], + ["L275", "vector"], + ["L276", "vector"], + ["L277", "vector"], + ["L278", "vector"], + ["L279", "vector"] + ], + + "mood-tables": [ + ["L12", "mood-sun-table"], + ["L13", "mood-lights-table"], + ["L14", "mood-fog-table"], + ["L15", "mood-fog-table"], + ["L16", "mood-sun-table"], + ["L17", "mood-sun-table"], + ["L18", "mood-lights-table"], + ["L19", "mood-fog-table"], + ["L20", "mood-lights-table"], + ["L21", "mood-fog-table"], + ["L22", "mood-lights-table"], + ["L23", "mood-fog-table"], + ["L24", "mood-lights-table"], + ["L25", "mood-lights-table"], + ["L26", "mood-fog-table"], + ["L27", "mood-sun-table"], + ["L28", "mood-lights-table"], + ["L29", "mood-fog-table"], + ["L30", "mood-sun-table"], + ["L31", "mood-lights-table"], + ["L32", "mood-fog-table"], + ["L33", "mood-sun-table"], + ["L34", "mood-lights-table"], + ["L35", "mood-fog-table"], + ["L36", "mood-sun-table"], + ["L37", "mood-lights-table"], + ["L38", "mood-fog-table"], + ["L39", "mood-sun-table"], + ["L40", "mood-lights-table"], + ["L41", "mood-fog-table"], + ["L42", "mood-sun-table"], + ["L43", "mood-lights-table"], + ["L44", "mood-fog-table"], + ["L45", "mood-sun-table"], + ["L46", "mood-lights-table"], + ["L47", "mood-fog-table"], + ["L48", "mood-fog-table"], + ["L49", "mood-sun-table"], + ["L50", "mood-lights-table"], + ["L51", "mood-fog-table"], + ["L52", "mood-sun-table"], + ["L53", "mood-lights-table"], + ["L54", "mood-fog-table"], + ["L55", "mood-sun-table"], + ["L56", "mood-lights-table"], + ["L57", "mood-fog-table"], + ["L58", "mood-fog-table"], + ["L59", "mood-sun-table"], + ["L60", "mood-lights-table"], + ["L61", "mood-fog-table"], + ["L62", "sky-color-day"], + ["L63", "sky-color-day"], + ["L64", "sky-color-day"], + ["L65", "sky-color-day"], + ["L66", "sky-color-day"], + ["L67", "sky-color-day"], + ["L68", "sky-color-day"] + ], + + "camera": [ + ["L257", "(inline-array qword)", 1], + ["L258", "(inline-array qword)", 1] + ], + + "target-util": [ + ["L180", "vector"], + ["L181", "vector"], + ["L182", "vector"], + ["L183", "vector"], + ["L184", "vector"], + ["L186", "vector"], + ["L187", "vector"], + ["L188", "vector"], + ["L189", "vector"], + ["L190", "vector"], + ["L225", "rgba", true] + ], + + "logic-target": [ + ["L227", "attack-info"], + ["L231", "(pointer uint64)", 1] + ], + + "progress-static": [ + ["L121", "(array game-text-id)"] + ], + + "rigid-body": [ + ["L89", "rigid-body-platform-constants"] + ], + + "nav-enemy": [ + ["L349", "attack-info"] + ], + + "basebutton": [ + ["L97", "vector"], + ["L102", "vector"] + ], + + "bird-lady": [ + ["L29", "vector"] + ], + + "bird-lady-beach": [ + ["L26", "vector"] + ], + + "mayor": [ + ["L57", "vector"] + ], + + "sculptor": [ + ["L89", "vector"] + ], + + "oracle": [ + ["L55", "vector"], + ["L56", "vector"], + ["L58", "vector"] + ], + + "evilbro": [ + ["L25", "vector"], + ["L30", "vector"] + ], + + "explorer": [ + ["L77", "vector"] + ], + + "sage": [ + ["L91", "vector"] + ], + + "misty-teetertotter": [ + ["L26", "attack-info"], + ["L27", "attack-info"] + ], + + "farmer": [ + ["L28", "vector"] + ], + + "gambler": [ + ["L52", "vector"] + ], + + "warrior": [ + ["L30", "vector"] + ], + + "geologist": [ + ["L38", "vector"] + ], + + "font": [ + ["L95", "(inline-array vector)", 250], + ["L94", "(inline-array vector)", 289] + ], + + "text": [ + ["L66", "vector"], + ["L67", "matrix"], + ["L68", "vector4w"] + ], + + "ocean-tables": [ + // see comment in ocean-tables.gc + ["L26", "ocean-spheres"], + ["L25", "ocean-colors"], + ["L23", "ocean-near-indices"], // ok + ["L22", "ocean-trans-indices"], + ["L21", "ocean-mid-indices"], + ["L19", "ocean-mid-masks"], + ["L18", "ocean-spheres"], + ["L17", "ocean-colors"], + ["L15", "ocean-near-indices"], + ["L9", "ocean-near-indices"], + + ["L14", "ocean-trans-indices"], + ["L8", "ocean-trans-indices"], + + ["L13", "ocean-mid-indices"], + ["L7", "ocean-mid-indices"], + + ["L11", "ocean-mid-masks"], + ["L5", "ocean-mid-masks"], + ["L4", "ocean-map"], + ["L3", "ocean-map"], + ["L2", "ocean-map"] + ], + + "ocean-frames": [["L1", "(pointer uint32)", 16384]], + + "eye": [["L36", "eye-work"]], + + "shadow-cpu": [["L122", "shadow-data"]], + + "load-boundary": [ + ["L328", "(inline-array lbvtx)", 3] + ], + + "anim-tester": [ + ["L509", "(inline-array list-field)", 12] + ], + + "default-menu": [ + ["L6251", "float", true], + ["L6252", "float", true], + ["L6253", "float", true], + ["L6254", "float", true], + ["L6256", "float", true], + ["L6257", "float", true], + ["L6264", "float", true], + ["L6267", "float", true], + ["L6265", "float", true], + ["L6266", "float", true], + ["L6259", "float", true], + ["L6268", "float", true], + ["L6263", "float", true], + ["L6262", "float", true], + ["L6261", "float", true], + ["L6255", "float", true], + ["L6260", "float", true], + ["L6258", "float", true], + ["L6272", "uint64", true], + ["L6273", "uint64", true], + ["L6270", "uint64", true], + ["L6269", "uint64", true], + ["L6271", "uint64", true] + // ["L6268", "(array int)", true, 1] // printed as a float + ], + + // "default-menu": [ + // ["L519", "pair", true], + // ["L1550", "pair", true], + // ["L1552", "pair", true] + // ], + + // "generic-vu1": [ + // ["L12", "gif-tag64", true], + // ["L15", "gif-tag64", true], + // ["L14", "gif-tag-regs", true] + // ], + + "merc-blend-shape": [ + ["L62", "(pointer int16)", 32] + ], + + "miners": [ + ["L111", "vector"], + ["L281", "vector"] + ], + + "entity": [ + ["L483", "vector2h"], + ["L482", "vector2h"], + ["L480", "vector2h"], + ["L479", "vector2h"], + ["L478", "vector2h"], + ["L477", "vector2h"], + ["L476", "vector2h"], + ["L475", "vector4w"], + ["L474", "vector4w"], + ["L473", "vector4w"], + ["L472", "vector4w"], + ["L471", "vector4w"] + ], + + "assistant": [ + ["L71", "vector"] + ], + + "progress": [ + ["L670", "uint64", true], + ["L589", "float", true], + ["L590", "float", true], + ["L591", "float", true], + ["L592", "float", true], + ["L593", "float", true], + ["L594", "float", true], + ["L595", "float", true], + ["L596", "float", true], + ["L597", "float", true], + ["L598", "float", true], + ["L599", "float", true], + ["L600", "float", true], + ["L601", "float", true], + ["L602", "float", true], + ["L603", "float", true], + ["L604", "float", true], + ["L605", "float", true], + ["L606", "float", true], + ["L607", "float", true], + ["L608", "float", true], + ["L609", "float", true], + ["L610", "float", true], + ["L611", "float", true], + ["L612", "float", true], + ["L613", "float", true], + ["L614", "float", true], + ["L615", "float", true], + ["L617", "float", true], + ["L616", "float", true], + ["L618", "float", true], + ["L619", "float", true], + ["L620", "float", true], + ["L621", "float", true], + ["L622", "float", true], + ["L623", "float", true], + ["L624", "float", true], + ["L625", "float", true], + ["L626", "float", true], + ["L627", "float", true], + ["L628", "float", true], + ["L629", "float", true], + ["L630", "float", true], + ["L631", "float", true], + ["L632", "float", true], + ["L633", "float", true], + ["L634", "float", true], + ["L635", "float", true], + ["L636", "float", true], + ["L637", "float", true], + ["L638", "float", true], + ["L586", "vector"], + ["L584", "vector"], + ["L582", "vector"], + ["L580", "vector"], + ["L576", "vector"], + ["L578", "vector"], + ["L639", "uint64", true], + ["L640", "uint64", true], + ["L641", "uint64", true], + ["L642", "uint64", true], + ["L643", "uint64", true], + ["L644", "uint64", true], + ["L645", "uint64", true], + ["L646", "uint64", true], + ["L647", "uint64", true], + ["L648", "uint64", true], + ["L649", "uint64", true], + ["L650", "uint64", true], + ["L651", "uint64", true], + ["L652", "uint64", true] + ], + + "target-part": [ + ["L336", "float", true], + ["L337", "float", true], + ["L338", "float", true], + ["L339", "float", true], + ["L340", "float", true], + ["L341", "uint64", true] + ], + + "projectiles": [ + ["L150", "attack-info"] + ], + + "generic-obs": [ + ["L455", "quaternion"] + ], + + "blocking-plane": [ + ["L18", "vector"], + ["L19", "vector"], + ["L20", "vector"] + ], + + "sidekick-human": [ + ["L131", "vector"], + ["L350", "vector"], + ["L940", "float", true], + ["L941", "float", true], + ["L942", "float", true], + ["L943", "float", true], + ["L944", "float", true], + ["L945", "float", true], + ["L946", "float", true], + ["L990", "float", true], + ["L991", "uint64", true], + ["L992", "uint64", true], + ["L993", "uint64", true], + ["L994", "uint64", true] + ], + + "assistant-firecanyon": [ + ["L71", "vector"] + ], + + "sage-bluehut": [ + ["L82", "vector"] + ], + + "flutflut-bluehut": [ + ["L34", "vector"] + ], + + "sharkey": [ + ["L101", "attack-info"] + ], + + "assistant-citadel": [ + ["L28", "vector"] + ], + + "robotboss-h": [ + ["L67", "float", true], + ["L68", "uint64", true], + ["L69", "uint64", true] + ], + + "final-door": [ + ["L59", "vector"], + ["L60", "vector"] + ], + + "crates": [ + ["L242", "float", true], + ["L243", "float", true], + ["L245", "float", true], + ["L263", "float", true] + ], + + "flying-lurker": [ + ["L200", "(pointer uint32)", 26], + ["L190", "vector"] + ], + + "ambient": [ + ["L334", "vector2h"], + ["L330", "vector2h"], + ["L329", "vector2h"], + ["L332", "vector2h"], + ["L331", "vector2h"] + ], + + "hint-control": [ + ["L45", "(array task-hint-control-group)"] + ], + + "sparticle-launcher": [ + ["L193", "adgif-shader"] + ], + + "process-taskable": [ + ["L251", "attack-info"] + ], + + "babak-with-cannon": [ + ["L92", "vector"] + ], + + "flutflut": [ + ["L94", "vector"] + ], + + "fishermans-boat": [ + ["L210", "vector"], + ["L410", "attack-info"], + ["L411", "vector"], + ["L412", "vector"], + ["L413", "vector"], + ["L431", "(pointer float)", 32], + ["L432", "(pointer float)", 32], + ["L434", "rigid-body-platform-constants"] + ], + + "training-obs": [ + ["L175", "rigid-body-platform-constants"] + ], + + "bonelurker": [ + ["L72", "attack-info"], + ["L73", "attack-info"] + ], + + "balloonlurker": [ + ["L105", "vector"], + ["L113", "rigid-body-platform-constants"] + ], + + "assistant-village2": [ + ["L177", "vector"], + ["L219", "attack-info"], + ["L268", "vector"] + ], + + "citb-plat": [ + ["L155", "rigid-body-platform-constants"] + ], + + "qbert-plat": [ + ["L99", "rigid-body-platform-constants"] + ], + + "misty-conveyor": [ + ["L60", "vector"], + ["L65", "vector"], + ["L66", "vector"], + ["L71", "vector"], + ["L73", "attack-info"] + ], + + "swamp-bat": [ + ["L88", "matrix"], + ["L99", "vector"], + ["L102", "vector"], + ["L103", "attack-info"] + ], + + "cavecrystal-light": [ + ["L45", "vector"], + ["L46", "vector"] + ], + + "gnawer": [ + ["L216", "(inline-array gnawer-segment-info)", 10] + ], + + "target-tube": [ + ["L142", "vector"] + ], + + "assistant-village3": [ + ["L43", "vector"] + ], + + "sage-village3": [ + ["L74", "vector"] + ], + + "target-snowball": [ + ["L23", "vector"] + ], + + "ice-cube": [ + ["L212", "attack-info"], + ["L213", "attack-info"], + ["L215", "attack-info"] + ], + + "assistant-lavatube": [ + ["L30", "vector"] + ], + + "citadel-part": [ + ["L235", "float", true], + ["L236", "float", true], + ["L237", "float", true], + ["L238", "float", true], + ["L242", "uint64", true] + ], + + "village1-part": [ + ["L238", "float", true], + ["L239", "float", true], + ["L240", "float", true], + ["L241", "float", true], + ["L245", "uint64", true] + ], + + "sunken-part": [ + ["L220", "uint64", true] + ], + + "ogre-part": [ + ["L93", "uint64", true] + ], + + "collectables-part": [ + ["L309", "float", true], + ["L310", "float", true] + ], + + "village1-part2": [ + ["L122", "float", true], + ["L123", "float", true], + ["L124", "float", true], + ["L125", "uint64", true] + ], + + "village2-part": [ + ["L226", "float", true], + ["L227", "float", true], + ["L228", "float", true], + ["L229", "uint64", true], + ["L233", "uint64", true] + ], + + "village3-part": [ + ["L244", "uint64", true] + ], + + "lavatube-part": [ + ["L110", "uint64", true] + ], + + "hud-classes": [ + ["L279", "vector"], + ["L310", "vector"], + ["L318", "vector"] + ], + + "collectables": [ + ["L611", "(pointer float)", true, 1], + ["L649", "(pointer float)", true, 1], + ["L656", "(pointer float)", true, 1], + ["L657", "(pointer float)", true, 1], + ["L658", "(pointer float)", true, 1], + ["L660", "(pointer float)", true, 1], + ["L663", "(pointer float)", true, 1], + ["L585", "vector"], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "uint64", true], + ["L729", "uint64", true], + ["L730", "uint64", true], + ["L731", "uint64", true], + ["L732", "uint64", true], + ["L733", "uint64", true] + ], + + // please do not add things after this entry! git is dumb. + "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] +} diff --git a/decompiler/config/jak1_pal/stack_structures.jsonc b/decompiler/config/jak1_pal/stack_structures.jsonc new file mode 100644 index 0000000000..7c78a8432f --- /dev/null +++ b/decompiler/config/jak1_pal/stack_structures.jsonc @@ -0,0 +1,2739 @@ +{ + "run-function-in-process": [ + [16, ["array", "uint64", 6]], + [64, "catch-frame"] + ], + + "matrixp*!": [[16, "matrix"]], + + "vector3s-matrix*!": [[16, "vector"]], + + "vector3s-rotate*!": [[16, "vector"]], + + "matrix-rotate-zyx!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "matrix-rotate-xyz!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "matrix-rotate-zxy!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "matrix-rotate-yxz!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "matrix-rotate-yzx!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "matrix-rotate-yxy!": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "matrix-rotate-yx!": [[16, "matrix"]], + + "transform-matrix-calc!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "transform-matrix-parent-calc!": [ + [16, "matrix"], + [80, "matrix"] + ], + + "matrix-with-scale->quaternion": [[16, "matrix"]], + + "quaternion-exp!": [[16, "vector"]], + "quaternion-slerp!": [[16, "vector"]], + "quaternion-zxy!": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "vector-x-quaternion!": [[16, "matrix"]], + "vector-y-quaternion!": [[16, "matrix"]], + "vector-z-quaternion!": [[16, "matrix"]], + + "quaternion-y-angle": [[16, "vector"]], + "quaternion-rotate-local-x!": [[16, "quaternion"]], + "quaternion-rotate-local-y!": [[16, "quaternion"]], + "quaternion-rotate-local-z!": [[16, "quaternion"]], + "quaternion-rotate-y!": [[16, "quaternion"]], + "quaternion-rotate-x!": [ + [16, "quaternion"], + [32, "vector"] + ], + "quaternion-rotate-z!": [ + [16, "quaternion"], + [32, "vector"] + ], + "quaternion-delta-y": [ + [16, "vector"], + [32, "vector"] + ], + "quaternion-rotate-y-to-vector!": [ + [16, "quaternion"], + [32, "vector"], + [48, "quaternion"] + ], + "quaternion-xz-angle": [ + [16, "matrix"], + [80, "vector"] + ], + "vector-rotate-y!": [ + [16, "quaternion"], + [32, "matrix"] + ], + + "eul->matrix": [[16, "vector"]], + "eul->quat": [[16, "matrix"]], + "quat->eul": [[16, "matrix"]], + + "vector-line-distance": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + "vector-line-distance-point!": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "forward-up-nopitch->inv-matrix": [[16, "vector"]], + + "forward-up-nopitch->quaternion": [[16, "matrix"]], + + "forward-up->quaternion": [ + [16, "matrix"], + [80, "vector"] + ], + + "quaternion-from-two-vectors!": [[16, "vector"]], + + "quaternion-from-two-vectors-max-angle!": [[16, "vector"]], + + "matrix-from-two-vectors!": [[16, "vector"]], + "matrix-from-two-vectors-max-angle!": [[16, "vector"]], + "matrix-from-two-vectors-max-angle-partial!": [[16, "vector"]], + "matrix-from-two-vectors-partial-linear!": [[16, "vector"]], + "matrix-remove-z-rot": [ + [16, "vector"], + [32, "matrix"] + ], + + "matrix-rot-diff!": [ + [16, "quaternion"], + [32, "quaternion"], + [48, "quaternion"] + ], + + "quaternion-seek": [ + [16, "matrix"], + [80, "matrix"], + [144, "quaternion"] + ], + "vector-deg-seek": [[16, "matrix"]], + "vector-deg-slerp": [ + [16, "matrix"], + [80, "vector"], + [96, "vector"] + ], + + "circle-test": [ + [16, "sphere"], + [32, "sphere"], + [48, "vector"], + [64, "vector"] + ], + + "move-target-from-pad": [ + [16, "vector"], + [32, "vector"], + [48, "matrix"] + ], + + "draw-sprite2d-xy": [[16, "draw-context"]], + "screen-gradient": [[16, "draw-context"]], + + "(method 10 oscillating-vector)": [[16, "vector"]], + + "show-mc-info": [[16, "mc-slot-info"]], + + "update-mood-erase-color2": [[16, "mood-fog"]], + + "make-light-kit": [[16, "matrix"]], + + "matrix<-parented-transformq!": [[16, "vector"]], + + "(method 20 trsqv)": [[16, "vector"]], + + "(method 19 trsqv)": [[16, "vector"]], + + "(method 17 trsqv)": [ + [16, "quaternion"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"] + ], + + "(method 25 trsqv)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "(method 16 trsqv)": [ + [16, "matrix"], + [80, "matrix"] + ], + + "(method 14 trsqv)": [[16, "vector"]], + + "(method 13 trsqv)": [[16, "vector"]], + + "(method 12 trsqv)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 11 trsqv)": [[16, "vector"]], + + "(method 10 trsqv)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 23 trsqv)": [[16, "vector"]], + "(method 24 trsqv)": [[16, "vector"]], + + "vector-sincos!": [[16, "vector"]], + + "init-for-transform": [ + [16, "matrix"], + [80, "matrix"], + [144, "vector4s-3"], + [192, "vector"], + [208, "vector4s-3"] + ], + + "string->sound-name": [[16, "qword"]], + + "(method 15 trajectory)": [ + [16, "vector"], + [32, "vector"] + ], + + "ripple-add-debug-sphere": [[16, "vector"]], + + "camera-teleport-to-entity": [ + [16, "transformq"], + [64, "event-message-block"] + ], + + "(method 10 cam-vector-seeker)": [[16, "vector"]], + + "joint-mod-look-at-handler": [ + [16, "vector"], + [32, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + + "joint-mod-world-look-at-handler": [ + [16, "vector"], + [32, "vector"], + [64, "vector"], + [80, "matrix"], + [144, "vector"], + [160, "vector"], + [176, "matrix"] + ], + + "joint-mod-rotate-handler": [ + [16, "quaternion"], + [32, "quaternion"], + [48, "quaternion"] + ], + + "joint-mod-wheel-callback": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "draw-end-credits": [[16, "font-context"]], + + "draw-title-credits": [[16, "font-context"]], + + "moving-sphere-sphere-intersect": [[16, "vector"]], + + "moving-sphere-moving-sphere-intersect": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 9 cylinder-flat)": [ + [16, "vector"], + [32, "vector"], + [48, "cylinder-flat-verts"], + [208, "cylinder-flat-verts"], + [368, "matrix"], + [432, "vector"] + ], + + "(method 9 cylinder)": [ + [16, "vector"], + [32, "vector"], + [48, "cylinder-verts"], + [432, "cylinder-verts"], + [816, "matrix"], + [880, "matrix"] + ], + + "ray-arbitrary-circle-intersect": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 10 cylinder-flat)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 10 cylinder)": [ + [16, "vector"], + [32, "vector"] + ], + + "add-debug-sphere-from-table": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "make-debug-sphere-table": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "(method 20 actor-link-info)": [[16, "event-message-block"]], + "(method 21 actor-link-info)": [[16, "event-message-block"]], + "(method 23 actor-link-info)": [[16, "event-message-block"]], + + "(method 24 actor-link-info)": [[16, "event-message-block"]], + + "internal-draw-debug-line": [ + [16, "vector4w-2"], + [48, "vector4w-2"] + ], + "internal-draw-debug-text-3d": [ + [16, "vector4w"], + [32, "font-context"] + ], + "add-debug-triangle-normal": [ + [16, "vector"], + [32, "vector"] + ], + "add-debug-flat-triangle": [ + [16, "vector4w-3"], + [64, "vector4w-3"] + ], + "add-debug-point": [[16, "vector4w-2"]], + "add-debug-line2d": [ + [16, "vector4w"], + [32, "vector4w"] + ], + "add-debug-box": [ + [16, "vector"], + [32, "vector"] + ], + "add-debug-x": [ + [16, "vector"], + [32, "vector"] + ], + "add-debug-sphere-with-transform": [[16, "vector"]], + "add-debug-circle": [ + [16, "vector"], + [32, "vector"] + ], + "add-debug-vector": [[16, "vector"]], + "add-debug-yrot-vector": [[16, "vector"]], + "add-debug-arc": [ + [16, "vector"], + [32, "vector"] + ], + "add-debug-curve": [ + [16, "vector"], + [32, "vector"] + ], + "add-debug-points": [[16, "vector"]], + "add-debug-light": [[16, "vector"]], + "dma-timeout-cam": [ + [16, "vector"], + [32, "matrix"] + ], + + "(method 18 tracking-spline)": [ + [16, "tracking-spline-sampler"], + [32, "tracking-spline-sampler"] + ], + + "draw-ocean-transition": [ + [16, "sphere"] + ], + + "dm-cam-mode-func": [[16, "event-message-block"]], + "ocean-trans-add-upload-table": [ + [16, "vector"] + ], + + "dm-cam-settings-func": [[16, "event-message-block"]], + + "dm-cam-render-float": [[16, "event-message-block"]], + + "debug-create-cam-restore": [[16, "euler-angles"]], + + "dm-task-resolution": [[16, "event-message-block"]], + + "dm-task-get-money": [[16, "event-message-block"]], + + "dm-give-all-cells": [[16, "event-message-block"]], + + "dm-give-cell": [[16, "event-message-block"]], + + "(anon-function 13 default-menu)": [[16, "event-message-block"]], + + "(anon-function 12 default-menu)": [[16, "event-message-block"]], + + "(anon-function 11 default-menu)": [[16, "event-message-block"]], + + "(method 22 level)": [[16, "event-message-block"]], + "(method 9 level)": [[16, "event-message-block"]], + "(method 10 load-state)": [[16, "event-message-block"]], + "cam-slave-get-rot": [[16, "quaternion"]], + + "draw-joint-spheres": [[16, "vector"]], + "(method 16 process-drawable)": [ + [16, "matrix"], + [80, "matrix"], + [144, "vector"], + [160, "vector"] + ], + + "(anon-function 494 task-control)": [[16, "event-message-block"]], + "(anon-function 493 task-control)": [[16, "event-message-block"]], + "(anon-function 480 task-control)": [[16, "event-message-block"]], + "(anon-function 477 task-control)": [[16, "event-message-block"]], + "(anon-function 476 task-control)": [[16, "event-message-block"]], + "(anon-function 475 task-control)": [[16, "event-message-block"]], + "(anon-function 474 task-control)": [[16, "event-message-block"]], + "(anon-function 455 task-control)": [[16, "event-message-block"]], + "(anon-function 445 task-control)": [[16, "event-message-block"]], + "(anon-function 435 task-control)": [[16, "event-message-block"]], + "(anon-function 426 task-control)": [[16, "event-message-block"]], + "(anon-function 425 task-control)": [[16, "event-message-block"]], + "(anon-function 415 task-control)": [[16, "event-message-block"]], + "(anon-function 414 task-control)": [[16, "event-message-block"]], + "(anon-function 403 task-control)": [[16, "event-message-block"]], + "(anon-function 400 task-control)": [[16, "event-message-block"]], + "(anon-function 393 task-control)": [[16, "event-message-block"]], + "(anon-function 390 task-control)": [[16, "event-message-block"]], + "(anon-function 383 task-control)": [[16, "event-message-block"]], + "(anon-function 380 task-control)": [[16, "event-message-block"]], + "(anon-function 369 task-control)": [[16, "event-message-block"]], + "(anon-function 368 task-control)": [[16, "event-message-block"]], + "(anon-function 367 task-control)": [[16, "event-message-block"]], + "(anon-function 366 task-control)": [[16, "event-message-block"]], + "(anon-function 365 task-control)": [[16, "event-message-block"]], + "(anon-function 364 task-control)": [[16, "event-message-block"]], + "(anon-function 363 task-control)": [[16, "event-message-block"]], + "(anon-function 362 task-control)": [[16, "event-message-block"]], + "(anon-function 337 task-control)": [[16, "event-message-block"]], + "(anon-function 336 task-control)": [[16, "event-message-block"]], + "(anon-function 286 task-control)": [[16, "event-message-block"]], + "(anon-function 227 task-control)": [[16, "event-message-block"]], + "(anon-function 38 task-control)": [[16, "event-message-block"]], + "(anon-function 28 task-control)": [[16, "event-message-block"]], + "(method 10 border-plane)": [[16, "vector"]], + "(method 9 game-info)": [[16, "event-message-block"]], + "(method 9 continue-point)": [[16, "vector"]], + "(method 9 game-save)": [[16, "file-stream"]], + "(method 10 game-save)": [[16, "file-stream"]], + "vector-vector-deg-slerp!": [ + [16, "vector"], + [32, "vector"], + [48, "quaternion"], + [64, "quaternion"], + [80, "quaternion"], + [96, "vector"] + ], + + "closest-pt-in-triangle": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "vector-circle-tangent-new": [ + [16, "sphere"], + [32, "vector"], + [48, "vector"] + ], + + "vector-circle-tangent": [ + [16, "sphere"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "vector-plane-distance": [[16, "vector"]], + + "curve-length": [ + [16, "vector"], + [32, "vector"] + ], + + "curve-closest-point": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 27 seagull)": [ + [16, "vector"], + [32, "vector"] + ], + + "add-debug-air-box": [ + [16, "vector"], + [32, "vector"] + ], + + "mem-size": [[16, "memory-usage-block"]], + + "display-loop": [[16, "sphere"]], + + "(method 14 curve-control)": [[16, "vector"]], + + "(method 19 path-control)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "progress-allowed?": [[16, "event-message-block"]], + + "(method 9 align-control)": [ + [16, "matrix"], + [80, "quaternion"] + ], + + "(method 10 align-control)": [[16, "vector"]], + + "(method 15 load-state)": [ + [16, "event-message-block"], + [96, "event-message-block"] + ], + + "(method 43 farmer)": [ + [16, "vector"] + ], + + "yakow-post": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + + "anim-tester-save-object-seqs": [ + [16, "file-stream"] + ], + + "anim-test-obj-list-handler": [[16, "event-message-block"]], + "anim-test-anim-list-handler": [[16, "event-message-block"]], + "anim-test-sequence-list-handler": [[16, "event-message-block"]], + "anim-test-edit-sequence-list-handler": [[16, "event-message-block"]], + "anim-test-edit-seq-insert-item": [[16, "event-message-block"]], + "anim-test-edit-sequence-list-handler": [ + [112, "event-message-block"], + [16, "font-context"] + ], + "anim-tester-add-newobj": [[16, "event-message-block"]], + "anim-tester-start": [[16, "event-message-block"]], + "anim-tester-add-sequence": [[16, "event-message-block"]], + + "(anon-function 28 task-control)": [[16, "event-message-block"]], + + "instance-tfragment-add-debug-sphere": [ + [16, "vector"] + ], + + "(method 10 game-save)": [[16, "file-stream"]], + + "cam-state-from-entity": [[16, "curve"]], + + "(method 9 cam-index)": [[16, "vector"]], + + "(method 10 cam-index)": [[16, "vector"]], + + "(method 15 tracking-spline)": [ + [16, "tracking-spline-sampler"], + [32, "tracking-point"] + ], + + "(method 16 tracking-spline)": [ + [16, "tracking-spline-sampler"], + [32, "vector"] + ], + + "(method 18 tracking-spline)": [ + [16, "tracking-spline-sampler"], + [32, "vector"] + ], + + "(method 20 tracking-spline)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 21 tracking-spline)": [ + [16, "tracking-spline-sampler"], + [32, "vector"] + ], + + "(method 22 tracking-spline)": [ + [16, "tracking-spline-sampler"], + [32, "vector"] + ], + + "cam-slave-init": [[16, "event-message-block"]], + + "cam-curve-pos": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "curve-length": [ + [16, "vector"], + [32, "vector"] + ], + + "curve-closest-point": [ + [16, "vector"], + [32, "vector"] + ], + + "cam-calc-follow!": [ + [16, "event-message-block"], + [96, "vector"], + [112, "vector"], + [128, "vector"], + [144, "vector"] + ], + + "mat-remove-z-rot": [ + [16, "vector"], + [32, "matrix"] + ], + + "slave-matrix-blend-2": [ + [16, "vector"], + [32, "quaternion"], + [48, "quaternion"], + [64, "quaternion"] + ], + + "vector-into-frustum-nosmooth!": [ + [16, "matrix"], + [80, "vector"], + [96, "vector"] + ], + + "slave-set-rotation!": [ + [16, "vector"], + [32, "matrix"], + [96, "vector"], + [112, "matrix"], // guess + [176, "vector"] // guess + ], + + "v-slrp2!": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "matrix"], + [128, "vector"] + ], + + "v-slrp3!": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "matrix"], + [128, "vector"] + ], + + "(code cam-combiner-active)": [ + [16, "vector"], + [32, "matrix"], + [80, "vector"], + [96, "matrix"] + ], + + "cam-master-init": [ + [16, "vector"], + [32, "vector"] + ], + + "plane-from-points": [[16, "vector"]], + + "update-view-planes": [ + [16, "view-frustum"], + [144, "vector"], + [160, "vector"], + [176, "vector"], + [192, "vector"], + [208, "vector"], + [224, "vector"] + ], + + "move-camera-from-pad": [[16, "vector"]], + + "cam-free-floating-move": [[16, "camera-free-floating-move-info"]], + + "update-camera": [ + [16, "vector"], + [32, "quaternion"], + [48, "vector"] + ], + + "ocean-make-trans-camera-masks": [ + [16, "vector"], + [32, "vector"] + ], + + "(anon-function 28 task-control)": [[16, "event-message-block"]], + + "update-mood-prt-color": [ + [16, "vector"] + ], + + "update-mood-swamp": [ + [16, "vector"] + ], + + "update-mood-village1": [ + [16, "vector"] + ], + + "update-mood-maincave": [ + [16, "vector"] + ], + + "update-mood-ogre": [ + [16, "vector"] + ], + + "update-mood-finalboss": [ + [16, "vector"], + [32, "vector"] + ], + + "update-mood-darkcave": [ + [16, "vector"], + [32, "vector"] + ], + + "update-mood-citadel": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"], + [112, "vector"], + [128, "vector"] + ], + + "update-mood-jungleb": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "update-mood-sunken": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "update-mood-village2": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "update-mood-rolling": [ + [16, "vector"] // TODO - really not sure about this one + ], + + "update-mood-village3": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + + "ocean-transition-check": [ + [16, "vector"] + ], + + "ocean-trans-add-upload-strip": [ + [16, "vector"] + ], + + "draw-ocean-transition-seams": [ + [16, "sphere"] + ], + + "(method 32 mayor)": [ + [16, "event-message-block"] + ], + + "(method 43 mayor)": [ + [16, "vector"] + ], + + "(method 10 tippy)": [ + [16, "vector"] + ], + + "compute-and-draw-shadow": [ + [16, "vector"], + [32, "vector"], + [48, "sparticle-cpuinfo"] // kinda a guess + ], + + "find-ground-and-draw-shadow": [ + [16, "vector"], + [32, "vector"], + [48, "collide-tri-result"] + ], + + "(method 20 collide-cache)": [ + [16, "vector"] + ], + + "(method 12 wobbler)": [ + [16, "vector"] + ], + + "(method 12 twister)": [ + [16, "matrix"] + ], + + "target-on-end-of-teetertotter?": [ + [16, "vector"], + [32, "vector"] + ], + + "(event teetertotter-launch)": [ + [16, "event-message-block"] + ], + + "(method 17 rigid-body)": [ + [16, "vector"] + ], + + "matrix-3x3-triple-transpose-product": [ + [16, "matrix"], + [80, "matrix"] + ], + + "(method 10 rigid-body)": [ + [16, "quaternion"] + ], + + "(method 13 rigid-body)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 16 rigid-body)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 14 rigid-body)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 18 rigid-body)": [ + [16, "vector"] + ], + + "(method 24 rigid-body-platform)": [ + [16, "vector"] + ], + + "(method 26 rigid-body-platform)": [ + [16, "vector"] + ], + + "(method 27 rigid-body-platform)": [ + [16, "vector"] + ], + + "(method 22 water-anim)": [ + [16, "vector"] + ], + + "(anon-function 9 plat-eco)": [ + [16, "event-message-block"] + ], + + "default-collision-reaction": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [96, "vector"] + ], + + "(trans plat-button-move-downward sunken-elevator)": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "(method 29 sunken-elevator)": [ + [16, "vector"] + ], + "(anon-function 0 title-obs)": [ + [16, "font-context"] + ], + + "print-game-text": [ + [16, "font-context"] + ], + + "draw-string-xy": [ + [16, "font-context"] + ], + + "(method 50 nav-enemy)": [ + [16, "vector"] + ], + + "nav-enemy-init-by-other": [ + [16, "vector"] + ], + + "nav-enemy-turn-to-face-point": [ + [16, "vector"] + ], + + "nav-enemy-facing-point?": [ + [16, "vector"] + ], + + "nav-enemy-jump-post": [ + [16, "vector"] + ], + + "(method 41 nav-enemy)": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-falling-post": [ + [16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float) + ], + + "nav-enemy-death-post": [ + [16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float) + ], + + "nav-enemy-jump-land-post": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-facing-direction?": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-initialize-custom-jump": [ + [16, "vector"], + [32, "vector"] + ], + + "nav-enemy-flee-post": [ + [16, "vector"], + [32, "vector"] + ], + + "(enter nav-enemy-jump-land nav-enemy)": [ + [16, "vector"] + ], + "(code nav-enemy-die nav-enemy)": [ + [16, "event-message-block"] + ], + "(enter nav-enemy-die nav-enemy)": [ + [16, "event-message-block"] + ], + "(trans nav-enemy-flee nav-enemy)": [ + [16, "event-message-block"] + ], + "(trans nav-enemy-patrol nav-enemy)": [ + [16, "event-message-block"] + ], + + "(method 73 nav-enemy)": [ + [16, "event-message-block"] + ], + + "(method 43 nav-enemy)": [ + [16, "event-message-block"] + ], + + "nav-enemy-send-attack": [ + [16, "event-message-block"] + ], + + "birth-pickup-at-point": [ + [16, "vector"] + ], + + "merc-blend-shape": [ + [16, ["array", "int16", 128]] + ], + + "(method 43 bird-lady)": [ + [16, "vector"] + ], + + "(method 32 bird-lady-beach)": [ + [16, "event-message-block"] + ], + + "muse-to-idle": [ + [16, "event-message-block"] + ], + + "(method 32 sculptor)": [ + [16, "event-message-block"] + ], + + "(method 43 sculptor)": [ + [16, "vector"] + ], + + "(method 32 geologist)": [ + [16, "event-message-block"] + ], + + "(method 43 geologist)": [ + [16, "vector"] + ], + + "(method 32 oracle)": [ + [16, "event-message-block"] + ], + + "(method 11 oracle)": [ + [16, "vector"], + [32, "event-message-block"] + ], + + "(method 32 explorer)": [ + [16, "event-message-block"] + ], + + "(method 43 explorer)": [ + [16, "vector"] + ], + + "(method 32 assistant)": [ + [16, "event-message-block"] + ], + + "(method 43 assistant)": [ + [16, "vector"] + ], + + "(code idle assistant)": [ + [16, "vector"], + [32, "vector"] + ], + + "check-drop-level-assistant": [ + [16, "vector"] + ], + + "(method 32 sage)": [ + [16, "event-message-block"] + ], + + "(method 43 sage)": [ + [16, "vector"] + ], + + "(trans idle sage)": [ + [16, "event-message-block"] + ], + + "(method 32 gambler)": [ + [16, "event-message-block"] + ], + + "(method 43 gambler)": [ + [16, "vector"] + ], + + "(method 32 warrior)": [ + [16, "event-message-block"] + ], + + "(method 43 warrior)": [ + [16, "vector"] + ], + + "(exit play-anim warrior)": [ + [16, "event-message-block"] + ], + + "minershort-trans-hook": [ + [16, "vector"] + ], + + "(method 32 minershort)": [ + [16, "event-message-block"] + ], + + "(exit play-anim minershort)": [ + [16, "event-message-block"] + ], + + "(method 43 minershort)": [ + [16, "vector"] + ], + + "(method 33 progress)": [[16, "event-message-block"]], + "hide-progress-screen": [[16, "event-message-block"]], + "progress-init-by-other": [[16, "quaternion"]], + "(post progress-debug)": [[16, "font-context"]], + "(post progress-normal)": [[16, "font-context"]], + "(code progress-normal)": [[16, "event-message-block"]], + "fuel-cell-progress-hud-orbit-callback": [ + [16, "vector"], + [32, "vector"] + ], + "(method 24 progress)": [[16, "font-context"]], + "(method 25 progress)": [[16, "font-context"]], + "(method 26 progress)": [[16, "font-context"]], + "(method 17 progress)": [[16, "font-context"]], + "(method 28 progress)": [[16, "font-context"]], + "(method 27 progress)": [[16, "font-context"]], + + "(method 11 fact-info-target)": [ + [16, "event-message-block"] + ], + + "(anon-function 6 game-info)": [ + [16, "event-message-block"] + ], + + "(anon-function 8 game-info)": [ + [16, "event-message-block"] + ], + + "(method 24 game-info)": [ + [16, "scf-time"] + ], + + "auto-save-post": [ + [16, "font-context"], + [112, "font-context"] + ], + + "auto-save-init-by-other":[ + [16, "event-message-block"] + ], + + "(code error auto-save)": [ + [16, "event-message-block"] + ], + + "(code done auto-save)": [ + [16, "event-message-block"] + ], + + "update-time-of-day": [ + [16, "(array float)"] // TODO - broken! + ], + + "check-drop-level-rain": [ + [16, "vector"] + ], + + "update-rain": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "sparticle-track-sun": [ + [16, "vector"] + ], + + "draw-joint-spheres": [[16, "vector"]], + "(method 16 process-drawable)": [[16, "matrix"], [80, "matrix"], [144, "vector"], [160, "vector"]], + + "(method 16 target)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "vector-local+!": [ + [16, "vector"] + ], + + "move-forward": [ + [16, "vector"], + [32, "vector"] + ], + + "set-forward-vel": [ + [16, "vector"] + ], + + "delete-back-vel": [ + [16, "vector"], + [32, "vector"] + ], + + "set-side-vel": [ + [16, "vector"] + ], + + "build-conversions": [ + [16, "vector"] + ], + + "vector-turn-to": [ + [16, "vector"], + [32, "vector"] + ], + + "warp-vector-into-surface!": [ + [16, "matrix"] + ], + + "vector<-pad-in-surface!": [ + [16, "vector"] + ], + + "local-pad-angle": [ + [16, "vector"], + [32, "vector"] + ], + + "turn-around?": [ + [16, "vector"], + [32, "vector"] + ], + + "target-move-dist": [ + [16, "vector"] + ], + + "turn-to-vector": [ + [16, "vector"], + [32, "vector"] + ], + + "add-thrust": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"], + [112, "vector"], + [128, "vector"], + [144, "vector"], + [160, "vector"], + [176, "vector"], + [192, "vector"], + [208, "vector"], + [224, "vector"] + ], + + "add-gravity": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "target-compute-slopes": [ + [16, "vector"], + [32, "vector"], + [48, "matrix"] + ], + + "do-rotations2": [ + [16, "vector"], + [32, "quaternion"], + [48, "quaternion"] + ], + + "level-setup": [ + [16, "event-message-block"] + ], + + "flag-setup": [ + [16, "vector"], + [32, "event-message-block"], + [112, "vector"], + [128, "vector"], + [144, "vector"], + [160, "vector"] + ], + + "target-compute-edge": [ + [16, "event-message-block"], + [96, "vector"], + [112, "vector"] + ], + + "target-compute-edge-rider": [ + [16, "event-message-block"], + [96, "vector"] + ], + + "target-calc-camera-pos": [ + [16, "vector"] + ], + + "joint-points": [ + [16, "vector"], + [32, "vector"] + ], + + "target-real-post": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "target-swim-post": [ + [16, "vector"] + ], + + "target-no-stick-post": [ + [16, "vector"] + ], + + "target-no-move-post": [ + [16, "collide-edge-hold-list"] // a total guess + ], + + "target-slide-down-post": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "matrix"] + ], + + "target-no-ja-move-post": [ + [16, "collide-edge-hold-list"] // a total guess + ], + + "target-print-stats": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "target-compute-pole": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "event-message-block"], + [160, "vector"], + [176, "vector"], + [192, "vector"] + ], + + "can-exit-duck?": [ + [16, "collide-using-spheres-params"], + [48, ["inline-array", "sphere", 2]] + ], + + "(method 32 evilbro)": [ + [16, "event-message-block"] + ], + + "(exit play-anim evilbro)": [ + [16, "event-message-block"] + ], + + "(method 29 basebutton)": [ + [16, "event-message-block"] + ], + + "(code use warp-gate)": [ + [16, "event-message-block"] + ], + + "(trans use warp-gate)": [ + [16, "event-message-block"] + ], + + "(anon-function 1 basebutton)": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "(code target-warp-out)": [ + [16, "event-message-block"], + [96, "vector"], + [112, "vector"] + ], + + "dm-anim-tester-func": [ + [16, "event-message-block"] + ], + + "update-actor-vis-box": [ + [16, "vector"] + ], + + "(method 14 level-group)":[ + [16, "vector"], + [32, "vector"] + ], + + "(trans falling beach-rock)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + + "(code falling beach-rock)": [ + [16, "event-message-block"] + ], + + "(method 11 beach-rock)": [ + [16, "vector"] + ], + + "birth-func-copy-target-y-rot": [ + [16, "matrix"] + ], + + "birth-func-ground-orient": [ + [16, "vector"], + [32, "collide-tri-result"], + [128, "vector"], + [144, "quaternion"], + [160, "quaternion"] + ], + + "birth-func-target-orient": [ + [32, "vector"], + [48, "vector"], // unused + [64, "quaternion"], + [80, "quaternion"] + ], + + "birth-func-vector-orient": [ + [16, "vector"], + [32, "vector"], // unused + [48, "quaternion"] + ], + + "part-tracker-track-target-joint": [ + [16, "vector"] + ], + + "process-drawable-burn-effect": [ + [16, "rgbaf"], + [32, "rgbaf"], + [48, "vector"] + ], + + "(anon-function 27 projectiles)": [ + [16, "vector"] + ], + + "projectile-collision-reaction": [ + [16, "vector"], + [32, "vector"], + [48, "matrix"], + [96, "vector"], + [112, "event-message-block"], + [192, "vector"], + [208, "vector"] + ], + + "(event projectile-moving projectile)": [ + [16, "event-message-block"] + ], + + "(code projectile-moving projectile)": [ + [16, "vector"] + ], + + "projectile-update-velocity-space-wars": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "(code projectile-die projectile)": [ + [16, "event-message-block"] + ], + + "projectile-init-by-other": [ + [16, "collide-edge-hold-list"] + ], + + "(method 27 projectile-yellow)": [ + [16, "vector"] + ], + + "spawn-projectile-blue": [ + [16, "vector"], + [32, "vector"] + ], + + "(enter plat-button-move-downward jungle-elevator)": [ + [16, "event-message-block"] + ], + + "(trans plat-button-move-downward jungle-elevator)": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "(method 29 jungle-elevator)": [ + [16, "vector"] + ], + + "(event bouncer-wait)": [ + [16, "event-message-block"] + ], + + "hopper-find-ground": [ + [16, "vector"], + [32, "collide-tri-result"] + ], + + "blocking-plane-init-by-other": [ + [16, "matrix"] + ], + + "evilsib-trans-hook-wait": [ + [16, "event-message-block"] + ], + + "(method 32 sequenceB)": [ + [16, "event-message-block"] + ], + + "(event play-anim sequenceB)": [ + [16, "event-message-block"] + ], + + "(exit play-anim sequenceB)": [ + [16, "event-message-block"] + ], + + "sequenceC-can-trans-hook-2": [ + [16, "vector"], + [32, "event-message-block"] + ], + + "sequenceC-can-trans-hook": [ + [16, "event-message-block"] + ], + + "(method 32 sequenceC)": [ + [16, "event-message-block"] + ], + + "sequenceC-trans-hook": [ + [16, "vector"] + ], + + "(trans hidden assistant-firecanyon)": [ + [16, "font-context"] + ], + + "(method 32 sage-bluehut)": [ + [16, "event-message-block"] + ], + + "(exit play-anim sage-bluehut)": [ + [16, "event-message-block"] + ], + + "(method 43 sage-bluehut)": [ + [16, "vector"] + ], + + "(method 37 sharkey)": [ + [16, "vector"] + ], + + "(method 39 sharkey)": [ + [16, "vector"] + ], + + "sharkey-notice-player?": [ + [16, "event-message-block"] + ], + + "sharkey-move-to-attack-position": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "(code nav-enemy-attack sharkey)": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "(trans nav-enemy-chase sharkey)": [ + [16, "event-message-block"] + ], + + "(method 43 lurkercrab)": [ + [16, "vector"], + [32, "vector"] + ], + + "(enter idle assistant-lavatube-end)": [ + [16, "event-message-block"] + ], + + "target-has-all-the-cells?": [ + [16, "event-message-block"] + ], + + "(code idle power-left)": [ + [16, "event-message-block"] + ], + + "(code jump powercellalt)": [ + [16, "trajectory"] + ], + + "(enter target-final-door)": [ + [16, "event-message-block"] + ], + + "(exit target-final-door)": [ + [16, "event-message-block"] + ], + + "(code target-final-door)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "event-message-block"] + ], + + "(method 43 aphid)": [ + [16, "event-message-block"] + ], + + "(code nav-enemy-give-up aphid)": [ + [16, "vector"] + ], + + "aphid-init-by-other": [ + [16, "vector"], + [32, "event-message-block"] + ], + + "voicebox-track": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "crate-standard-event-handler": [ + [16, "event-message-block"] + ], + + "plat-trans": [ + [16, "vector"] + ], + + "(code door-closing eco-door)": [ + [16, "overlaps-others-params"] + ], + + "(code door-open eco-door)": [ + [16, "event-message-block"] + ], + + "(code door-opening eco-door)": [ + [16, "event-message-block"] + ], + + "(code door-closed eco-door)": [ + [16, "event-message-block"] + ], + + "(code plat-button-teleport-to-other-end plat-button)": [ + [16, "vector"] + ], + + "plat-button-camera-on": [ + [16, "event-message-block"] + ], + + "plat-button-camera-off": [ + [16, "event-message-block"] + ], + + "(trans plat-button-move-downward plat-button)": [ + [16, "vector"] + ], + + "(trans plat-button-move-upward plat-button)": [ + [16, "vector"] + ], + + "(event plat-idle plat-eco)": [ + [16, "event-message-block"] + ], + + "(trans plat-idle plat-eco)": [ + [16, "vector"] + ], + + "(anon-function 8 plat-eco)": [ + [16, "event-message-block"] + ], + + "(anon-function 7 plat-eco)": [ + [16, "vector"] // code + ], + + "(event drop-plat-idle)": [ + [16, "event-message-block"] + ], + + "(code drop-plat-rise)": [ + [16, "vector"] + ], + + "(post drop-plat-rise)": [ + [16, "quaternion"] + ], + + "(code drop-plat-drop)": [ + [16, "vector"] + ], + + "(post drop-plat-drop)": [ + [16, "quaternion"] + ], + + "(method 21 drop-plat)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "citb-drop-plat-spawn-children": [ + [16, "vector"], + [32, "vector"] + ], + + "citb-drop-plat-drop-all-children": [ + [16, "event-message-block"] + ], + + "citb-drop-plat-drop-children": [ + [16, "event-message-block"] + ], + + "(event plat-flip-idle)": [ + [16, "event-message-block"] + ], + + "(code plat-flip-idle)": [ + [16, "vector"] + ], + + "(method 27 square-platform)": [ + [16, "vector"], + [32, "vector"] + ], + + "(event wedge-plat-tip)": [ + [16, "event-message-block"] + ], + + "(event wedge-plat-outer-tip)": [ + [16, "event-message-block"] + ], + + "(event wall-plat-extending)": [ + [16, "event-message-block"] + ], + + "(code wall-plat-extending)": [ + [16, "vector"] + ], + + "(event wall-plat-retracting)": [ + [16, "event-message-block"] + ], + + "(code wall-plat-retracting)": [ + [16, "vector"] + ], + + "(event wall-plat-sync-idle)": [ + [16, "event-message-block"] + ], + + "(code wall-plat-sync-idle)": [ + [16, "vector"] + ], + + "(method 11 wall-plat)": [ + [16, "vector"] + ], + + "(code plunger-lurker-plunge)": [[16, "event-message-block"]], + "(event flying-lurker-fly)": [[16, "event-message-block"]], + "(trans flying-lurker-fly)": [[16, "event-message-block"]], + "flying-lurker-handler": [[16, "event-message-block"]], + "flying-lurker-play-intro": [[16, "event-message-block"]], + "(code flying-lurker-start)": [[16, "event-message-block"]], + "(event flying-lurker-clone)": [[16, "event-message-block"]], + "(event flying-lurker-idle)": [[16, "event-message-block"]], + "(code flying-lurker-idle)": [[16, "event-message-block"]], + "flying-lurker-calc-speed": [ + [16, "vector"], + [32, "vector"] + ], + "(method 20 flying-lurker)": [ + [16, "collide-mesh-cache-tri"], + [112, "vector"], + [128, "vector"], + [144, "bounding-box"], + [176, "vector"] + ], + "flying-lurker-rotate": [ + [16, "matrix"], + [80, "matrix"], + [144, "vector"], + [160, "vector"] + ], + + "(method 18 collide-cache)": [[16, "collide-cache-prim"]], + + "kill-current-level-hint": [[16, "event-message-block"]], + "(exit level-hint-sidekick)": [[16, "event-message-block"]], + "(method 14 level-hint)": [[16, "font-context"]], + "(code level-hint-error)": [[16, "font-context"]], + "ambient-type-hint": [[16, "font-context"]], + "ambient-type-sound": [[32, "sound-spec"]], + "ambient-type-sound-loop": [[16, "sound-spec"]], + + "sp-relaunch-particle-3d": [ + [16, "quaternion"], + [32, "vector"], + [48, "quaternion"] + ], + + "sp-adjust-launch": [ + [16, "sparticle-launchinfo"], + [64, "matrix"], + [128, "vector"], + [144, "matrix"] + ], + + "(method 10 sparticle-launch-control)":[ + [16, "vector"] + ], + + "sparticle-50-to-60":[ + [16, "quaternion"] + ], + + + "sparticle-60-to-50":[ + [16, "quaternion"] + ], + + "sp-orbiter":[ + [16, "vector"], + [32, "vector"], + [48, "matrix"] + ], + + "sp-euler-convert":[ + [16, "vector"], + [32, "quaternion"] + ], + + "sp-rotate-system": [ + [16, "matrix"], + [80, "quaternion"] + ], + + "sp-launch-particles-death": [ + [16, "sprite-vec-data-2d"] // TODO this is probably wrong. + ], + + "birth-func-copy-rot-color": [ + [16, "vector"] + ], + + "birth-func-copy2-rot-color": [ + [16, "vector"], + [32, "vector"] + ], + + "(code nav-enemy-give-up babak)": [ + [16, "vector"] + ], + + "(method 10 gui-query)": [ + [16, "font-context"], + [112, "font-context"], + [208, "font-context"] + ], + + "(method 46 process-taskable)": [ + [16, "vector"], + [32, "vector"] + ], + + "(trans release process-taskable)": [ + [16, "event-message-block"] + ], + + "(trans give-cell process-taskable)": [ + [16, "event-message-block"] + ], + + "process-taskable-play-anim-code": [ + [16, "event-message-block"] + ], + + "(event idle process-taskable)": [ + [16, "event-message-block"] + ], + + "(trans idle process-taskable)": [ + [16, "font-context"], + [112, "event-message-block"] + ], + + "(post idle process-taskable)": [ + [16, "vector"] + ], + + "babak-with-cannon-ride-cannon-post": [ + [16, "vector"] + ], + + "(code babak-with-cannon-jump-onto-cannon)": [ + [16, "vector"] + ], + + "(code othercam-running)": [ + [16, "vector"], + [32, "vector"] + ], + + "(code wait-for-start flutflut)": [ + [16, "event-message-block"], + [96, "vector"] + ], + + "(code idle flutflut)": [ + [16, "font-context"], + [112, "event-message-block"] + ], + + "(event wait-for-return flutflut)": [ + [16, "event-message-block"] + ], + + "yakow-generate-travel-vector": [ + [16, "vector"], + [32, "vector"] + ], + + "yakow-facing-direction?": [ + [16, "vector"], + [32, "vector"] + ], + + "yakow-facing-point?": [ + [16, "vector"] + ], + + "(enter yakow-graze)": [ + [16, "event-message-block"] + ], + + "(method 13 vehicle-path)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "(method 12 vehicle-controller)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 14 vehicle-controller)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 10 vehicle-controller)": [ + [16, "vector"] + ], + + "(method 23 fishermans-boat)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"], + [112, "vector"] + ], + + "fishermans-boat-wave": [ + [16, "vector"] + ], + + "fishermans-boat-spawn-particles": [ + [16, "vector"] + ], + + "fishermans-boat-play-sounds": [ + [16, "vector"] + ], + + "fishermans-boat-post": [ + [16, "event-message-block"] + ], + + "(code fishermans-boat-leaving-village)": [ + [16, "event-message-block"] + ], + + "(trans fishermans-boat-entering-village)": [ + [16, "event-message-block"] + ], + + "(code fishermans-boat-leaving-misty)": [ + [16, "event-message-block"] + ], + + "(trans fishermans-boat-entering-misty)": [ + [16, "event-message-block"] + ], + + "(exit fishermans-boat-player-control)": [ + [16, "event-message-block"] + ], + + "(code fishermans-boat-player-control)": [ + [16, "event-message-block"] + ], + + "(code fishermans-boat-ride-to-misty)": [ + [16, "event-message-block"] + ], + + "(event fishermans-boat-ride-to-village1)": [ + [16, "event-message-block"] + ], + + "(code fishermans-boat-ride-to-village1)": [ + [16, "event-message-block"] + ], + + "fishermans-boat-leave-dock?": [ + [16, "font-context"] + ], + + "(trans fishermans-boat-player-control)": [ + [16, "vector"] + ], + + "(code fishermans-boat-measurements)": [ + [16, "vector"] + ], + + "(method 15 vehicle-controller)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "analyze-point-on-path-segment": [ + [16, "vector"] + ], + + "(method 51 muse)": [ + [16, "vector"] + ], + + "muse-check-dest-point": [ + [16, "point-on-path-segment-info"] + ], + + "(code muse-caught)": [ + [16, "event-message-block"] + ], + + "(method 43 bonelurker)": [ + [16, "event-message-block"] + ], + + "bonelurker-stunned-event-handler": [ + [16, "event-message-block"] + ], + + "bonelurker-push-post": [ + [16, "vector"] + ], + + "(code nav-enemy-give-up bonelurker)": [ + [16, "vector"] + ], + + "(code bonelurker-stun)": [ + [16, "vector"] + ], + + "(method 32 assistant-bluehut)": [ + [16, "event-message-block"] + ], + + "(trans idle assistant-bluehut)": [ + [16, "event-message-block"] + ], + + "(exit play-anim assistant-bluehut)": [ + [16, "event-message-block"] + ], + + "(method 32 assistant-levitator)": [ + [16, "event-message-block"] + ], + + "(exit play-anim assistant-levitator)": [ + [16, "event-message-block"] + ], + + "(method 47 assistant-bluehut)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 43 assistant-bluehut)": [ + [16, "vector"] + ], + + "check-drop-level-assistant-bluehut": [ + [16, "vector"] + ], + + "assistant-levitator-blue-glow": [ + [16, "vector"] + ], + + "(code idle assistant-bluehut)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "assistant-levitator-blue-beam": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "collide-mesh-cache-tri"], + [160, "event-message-block"] + ], + + "(trans hidden assistant-levitator)": [ + [16, "font-context"] + ], + + "(event square-platform-lowering)": [ + [16, "event-message-block"] + ], + + "(method 33 qbert-plat)": [ + [16, "event-message-block"] + ], + + "(method 32 qbert-plat)": [ + [16, "event-message-block"] + ], + + "(event qbert-plat-master-idle)": [ + [16, "event-message-block"] + ], + + "(code qbert-plat-master-do-door)": [ + [16, "event-message-block"] + ], + + "(code qbert-plat-master-wait-for-door)": [ + [16, "event-message-block"] + ], + + "(code qbert-plat-master-idle)": [ + [16, "event-message-block"], + [96, "vector"], + [112, "vector"] + ], + + "keg-event-handler": [ + [16, "event-message-block"] + ], + + "(code keg-paddle-to-path)": [ + [16, "vector"], + [32, "vector"], + [48, "quaternion"], + [64, "quaternion"], + [80, "vector"] + ], + + "(code keg-on-path)": [ + [16, "vector"], + [32, "vector3s"] + ], + + "(code keg-in-chute)": [ + [16, "vector"], + [32, "vector"] + ], + + "keg-init-by-other": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "(code keg-conveyor-paddle-idle)": [ + [16, "event-message-block"] + ], + + "(method 11 keg-conveyor)": [ + [16, "vector"], + [32, "matrix"] + ], + + "swamp-bat-slave-event-handler": [ + [16, "event-message-block"] + ], + + "swamp-bat-launch-slave": [ + [16, "event-message-block"] + ], + + "swamp-bat-slave-path-post": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "(code swamp-bat-slave-idle)": [ + [16, "vector"], + [32, "quaternion"], + [48, "quaternion"], + [64, "vector"] + ], + + "(code swamp-bat-slave-launch)": [ + [16, "vector"], + [32, "vector"] + ], + + "(code swamp-bat-slave-die)": [ + [16, "vector"] + ], + + "swamp-bat-make-path-select-plane": [ + [16, "vector"] + ], + + "(method 44 swamp-rat)": [ + [16, "event-message-block"] + ], + + "(method 39 swamp-rat)": [ + [16, "vector"] + ], + + "(method 38 swamp-rat)": [ + [16, "vector"] + ], + + "(code swamp-rat-spawn)": [ + [16, "vector"] + ], + + "swamp-rat-update-wiggle-target": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "swamp-rat-nest-dummy-event-handler": [ + [16, "event-message-block"] + ], + + "(trans swamp-rat-nest-gestate)": [ + [16, "event-message-block"] + ], + + "(code swamp-rat-nest-victory)": [ + [16, "event-message-block"] + ], + + "swamp-rat-nest-pick-spawn-joint": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "swamp-rat-nest-spawn-rat": [ + [16, "vector"], + [32, "vector"] + ], + + "cavecrystal-light-control-default-callback": [ + [16, "vector"] + ], + + "spiderwebs-default-event-handler": [ + [16, "event-message-block"] + ], + + "(enter nav-enemy-die baby-spider)": [ + [16, "event-message-block"] + ], + + "(code baby-spider-die-fast)": [ + [16, "event-message-block"] + ], + + "(method 39 baby-spider)": [ + [16, "vector"] + ], + + "(enter nav-enemy-idle baby-spider)": [ + [16, "vector"] + ], + + "(method 52 baby-spider)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "mother-spider-proj-update-velocity": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"] + ], + + "(method 28 mother-spider-proj)": [ + [16, "vector"] + ], + + "(code blue-eco-charger-orb-active)": [ + [16, "vector"], + [32, "vector"], + [48, "vector"] + ], + + "(method 21 blue-eco-charger)": [ + [16, "event-message-block"] + ], + + "(method 20 blue-eco-charger)": [ + [16, "event-message-block"] + ], + + "(code blue-eco-charger-idle)": [ + [16, "event-message-block"] + ], + + "(code exit-chamber-charger-puzzle-beaten)": [ + [16, "event-message-block"] + ], + + "(code exit-chamber-idle-in-sunken)": [ + [16, "event-message-block"] + ], + + "(event exit-chamber-idle-in-sunken)": [ + [16, "event-message-block"], + [32, "event-message-block"] + ], + + "(method 24 exit-chamber)": [ + [16, "vector"] + ], + + "(method 23 exit-chamber)": [ + [16, "vector"], + [32, "vector"], + [48, "exit-chamber-items"], + [128, "event-message-block"], + [208, "vector"] + ], + + "tube-thrust": [ + [16, "vector"], + [32, "vector"], + [48, "vector"], + [64, "vector"], + [80, "vector"], + [96, "vector"] + ], + + "target-tube-post": [ + [16, "vector"], + [32, "event-message-block"], + [112, "vector"] + ], + + "(event target-tube-start)": [ + [16, "event-message-block"] + ], + + "(exit target-tube-start)": [ + [16, "event-message-block"] + ], + + "(code target-tube-start)": [ + [16, "event-message-block"], + [96, "vector"] + ], + + "(method 21 sunkenfisha)": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 24 sunkenfisha)": [ + [16, "vector"], + [32, "matrix"], + [96, "vector"] + ], + + "(method 23 sunkenfisha)": [ + [16, "vector"] + ], + + "(trans sunkenfisha-idle)": [ + [16, "vector"] + ], + + "(method 27 sunkenfisha)": [ + [64, "vector"] + ], + + "(event idle minecartsteel)": [ + [16, "collide-overlap-result"] + ], + + "(method 43 assistant-villagec)": [ + [16, "vector"] + ], + + "(method 32 sage-villagec)": [ + [16, "event-message-block"] + ], + + "(method 43 sage-villagec)": [ + [16, "vector"] + ], + + "(trans idle sage-villagec)": [ + [16, "event-message-block"] + ], + + "(exit play-anim sage-villagec)": [ + [16, "event-message-block"] + ], + + "(method 20 cave-trap)": [ + [16, "spawn-baby-spider-work"], + [80, "vector"], + [96, "event-message-block"], + [176, "vector"], + [192, "vector"], + [208, "vector"] + ], + + "(trans cave-trap-idle)": [ + [16, "event-message-block"] + ], + + "ice-cube-default-event-handler": [ + [16, "event-message-block"] + ], + + "(trans yeti-slave-appear-jump-up)": [ + [16, "vector"] + ], + + "(code nav-enemy-give-up yeti-slave)": [ + [16, "vector"] + ], + + "(code yeti-resuming-start)": [ + [16, "vector"], + [32, "vector"] + ], + + "(code yeti-idle)": [ + [16, "vector"], + [32, "vector"] + ], + + "(trans hidden assistant-lavatube-start)": [ + [16, "font-context"] + ], + + "(method 18 nav-control)": [ + [16, "vector"] + ], + + "check-drop-level-firehose-pops": [ + [16, "vector"] + ], + + "birth-func-random-rot": [ + [16, "matrix"], + [80, "vector"], + [96, "vector"] + ], + + "check-drop-level-bigdoor-open-pops": [ + [16, "vector"] + ], + + "check-drop-level-eichar-lighteco-pops": [ + [16, "vector"] + ], + + "check-drop-level-maincave-drip": [ + [16, "vector"] + ], + + "part-tracker-move-to-target": [ + [16, "vector"] + ], + + "part-tracker-track-target": [ + [16, "vector"] + ], + + "check-drop-level-village1-fountain-nosplash": [ + [16, "vector"] + ], + + "check-drop-level-village1-fountain": [ + [16, "vector"] + ], + + "check-drop-level-sagehut": [ + [16, "vector"] + ], + + "check-drop-level-training-mist": [ + [16, "vector"] + ], + + "check-drop-level-training-spout-rain": [ + [16, "vector"] + ], + + "check-drop-level-sagehut2": [ + [16, "vector"] + ], + + "(method 15 hud-money-all)": [ + [16, "font-context"] + ], + + "(method 20 hud-money-all)": [ + [16, "event-message-block"] + ], + + "(method 20 hud-money)": [ + [16, "event-message-block"] + ], + + "fuel-cell-hud-orbit-callback": [ + [16, "vector"], + [32, "vector"] + ], + + "(method 19 hud-fuel-cell)": [ + [16, "vector"] + ], + + "(method 20 hud-fuel-cell)": [ + [16, "event-message-block"], + [96, "quaternion"] + ], + + "hide-hud": [ + [16, "event-message-block"] + ], + + "hide-bottom-hud": [ + [16, "event-message-block"] + ], + + "disable-hud": [ + [16, "event-message-block"] + ], + + "enable-hud": [ + [16, "event-message-block"] + ], + + "hide-hud-quick": [ + [16, "event-message-block"] + ], + + "show-hud": [ + [16, "event-message-block"] + ], + + "convert-to-hud-object": [ + [16, "vector"] + ], + + "(method 16 hud)": [ + [16, "event-message-block"] + ], + + "(enter hud-hidden)": [ + [16, "event-message-block"] + ], + + "(enter hud-arriving)": [ + [16, "event-message-block"] + ], + + "send-hud-increment-event": [ + [16, "event-message-block"] + ], + + "(code hud-collecting)": [ + [16, "vector"] + ], + + "battlecontroller-fill-all-spawners": [ + [16, "vector"], + [32, "event-message-block"] + ], + + "battlecontroller-camera-on": [ + [16, "event-message-block"] + ], + + "(code battlecontroller-die battlecontroller)": [ + [16, "event-message-block"] + ], + + "battlecontroller-battle-begin": [ + [16, "event-message-block"] + ], + + "battlecontroller-update-spawners": [ + [16, "vector"], + [32, "event-message-block"] + ], + + "battlecontroller-spawn-creature-at-spawner": [ + [16, "vector"], + [32, "vector"] + ], + + "battlecontroller-camera-off": [ + [16, "event-message-block"] + ], + + "battlecontroller-spawn-creature-random-spawner": [ + [16, "event-message-block"] + ], + + "placeholder-do-not-add-below!": [] +} diff --git a/decompiler/config/jak1_pal/type_casts.jsonc b/decompiler/config/jak1_pal/type_casts.jsonc new file mode 100644 index 0000000000..0a51f17bfa --- /dev/null +++ b/decompiler/config/jak1_pal/type_casts.jsonc @@ -0,0 +1,3916 @@ +// This file replaces type_hints.jsonc. +// Functions are identified by their "unique name". This is the name after ".function" in the IR2 file. +// Each cast entry represents an override of a register's type at a certain point the function. +// These modifications do not propagate like normal types, so you may have to apply these modifications +// over a range of indices. + +// Entry format: [index, register, override] +// - The index can either be specified as a single integer, or as [min, max]. +// In the case of [min, max], the min index is included, but the max is not. ([1, 4] = 1, 2, 3). +// - The register is a string with the plain PS2 register name. +// - The type is a string with a valid GOAL typespec. +// It is parsed exactly like the compiler, so you can use compound types. +// You should only use register types here. + +{ + // GCOMMON + "(method 2 array)": [ + [23, "gp", "(array int32)"], + [43, "gp", "(array uint32)"], + [63, "gp", "(array int64)"], + [83, "gp", "(array uint64)"], + [102, "gp", "(array int8)"], + [121, "gp", "(array uint8)"], + [141, "gp", "(array int16)"], + [161, "gp", "(array uint16)"], + [186, "gp", "(array uint128)"], + [204, "gp", "(array int32)"], + [223, "gp", "(array float)"], + [232, "gp", "(array float)"], + [249, "gp", "(array basic)"], + [258, "gp", "(array basic)"] + ], + + "(method 3 array)": [ + [44, "gp", "(array int32)"], + [62, "gp", "(array uint32)"], + [80, "gp", "(array int64)"], + [98, "gp", "(array uint64)"], + [115, "gp", "(array int8)"], + [132, "gp", "(array int8)"], // bug in game + [150, "gp", "(array int16)"], + [168, "gp", "(array uint16)"], + [191, "gp", "(array uint128)"], + [207, "gp", "(array int32)"], + [226, "gp", "(array float)"], + [243, "gp", "(array basic)"] + ], + + // GKERNEL + "(method 0 cpu-thread)": [[[13, 28], "v0", "cpu-thread"]], + + "(method 0 process)": [ + [12, "a0", "int"], + [[13, 43], "v0", "process"] + ], + + "(method 0 dead-pool-heap)": [ + [60, "v0", "int"], // a lie, actually the 115 is an align16 constant propagated on addr of heap start. + //[63, "a0", "pointer"], + [[61, 73], "v0", "dead-pool-heap"] + ], + + "(method 21 dead-pool-heap)": [ + [5, "v1", "pointer"], + [13, "a0", "pointer"], + [25, "v1", "pointer"] + ], + + "(method 5 dead-pool-heap)": [ + [3, "v1", "int"], + [3, "a0", "int"] + ], + + "(method 0 protect-frame)": [ + [0, "a0", "int"], + [[1, 8], "v0", "protect-frame"] + ], + + "(method 10 process)": [[[24, 30], "s4", "protect-frame"]], + + "(method 9 process)": [[43, "s5", "process"]], + + "(method 14 dead-pool)": [ + [[24, 25], "v1", "(pointer process)"], + [[30, 39], "s4", "(pointer process)"] + ], + + "inspect-process-heap": [ + [[4, 11], "s5", "basic"], + [17, "s5", "pointer"] + ], + + "run-function-in-process": [[40, "a0", "dead-pool-heap"]], + + // GSTRING + "name=": [ + [26, "a1", "symbol"], + [42, "a0", "symbol"] + ], + + "string-cat-to-last-char": [ + [3, "s5", "(pointer uint8)"], + [4, "s5", "string"] + ], + + // GSTATE + "enter-state": [[68, "s0", "protect-frame"], [101, "t9", "(function object object object object object object none)"]], + + // MATH + "log2": [[3, "v1", "int"]], + + // QUATERNION + "vector-x-quaternion!": [[10, "v1", "(pointer uint128)"]], + "vector-y-quaternion!": [[10, "v1", "(pointer uint128)"]], + "vector-z-quaternion!": [[10, "v1", "(pointer uint128)"]], + + // Matrix + //"eul->matrix": [[[110, 228], "gp", "(pointer float)"]], + + // DMA + "dma-send-to-spr": [[[0, 32], "s5", "dma-bank-spr"]], + "dma-send-to-spr-no-flush": [[[0, 32], "s5", "dma-bank-spr"]], + "dma-send-from-spr": [[[0, 32], "s5", "dma-bank-spr"]], + "dma-send-from-spr-no-flush": [[[0, 32], "s5", "dma-bank-spr"]], + "dma-initialize": [ + [1, "v1", "vif-bank"], + [8, "v1", "vif-bank"], + [6, "a0", "vif-bank"], + [13, "a0", "vif-bank"] + ], + + "clear-vu1-mem": [[[0, 11], "v1", "(pointer uint32)"]], + "clear-vu0-mem": [[[0, 11], "v1", "(pointer uint32)"]], + + "dump-vu1-mem": [[[0, 49], "gp", "(pointer uint32)"]], + + "dump-vu1-range": [[[0, 54], "s4", "(pointer uint32)"]], + + "ultimate-memcpy": [ + [[0, 54], "s4", "dma-bank-spr"], + [[0, 54], "s3", "dma-bank-spr"] + ], + + // dma-buffer + "dma-buffer-add-vu-function": [[[9, 33], "t2", "dma-packet"]], + + // dma-bucket + "dma-buffer-add-buckets": [ + [[1, 4], "v1", "dma-bucket"], + [5, "v1", "pointer"], + [[9, 11], "v1", "dma-bucket"], + [11, "v1", "pointer"] + //[[6, 15], "v1", "dma-bucket"] + ], + + "dma-buffer-patch-buckets": [ + [7, "a0", "(inline-array dma-bucket)"], + [8, "a3", "pointer"], + [14, "a0", "(inline-array dma-bucket)"], + [3, "a0", "(inline-array dma-bucket)"], + [11, "a0", "(inline-array dma-bucket)"], + [13, "a0", "(inline-array dma-bucket)"], + [19, "a0", "(inline-array dma-bucket)"] + ], + + "dma-bucket-insert-tag": [ + [[2, 6], "v1", "dma-bucket"], + [3, "a0", "dma-bucket"] + ], + + "disasm-vif-details": [ + [[62, 94], "s3", "(pointer uint32)"], + [[98, 130], "s3", "(pointer uint16)"], + [[134, 164], "s3", "(pointer uint32)"], + [[168, 198], "s3", "(pointer uint16)"], + [[202, 225], "s3", "(pointer uint16)"] + ], + + "disasm-vif-tag": [ + [[81, 85], "t1", "vif-stcycl-imm"], + [242, "a0", "vif-unpack-imm"] + ], + + "disasm-dma-list": [ + [25, "v1", "dma-tag"], + + [153, "v1", "dma-packet"], + [189, "v1", "dma-packet"], + [229, "v1", "dma-packet"], + [258, "v1", "dma-packet"], + [302, "v1", "dma-packet"], + [308, "v1", "dma-packet"], + + //[133, "v1", "(pointer uint64)"], + [152, "v1", "(pointer uint64)"], + + [167, "v1", "(pointer uint64)"], + [176, "v1", "(pointer uint64)"], + [198, "v1", "(pointer uint64)"], + [207, "v1", "(pointer uint64)"], + [238, "v1", "(pointer uint64)"], + [247, "v1", "(pointer uint64)"], + [282, "v1", "(pointer uint64)"], + [291, "v1", "(pointer uint64)"], + [324, "v1", "(pointer uint64)"], + [334, "v1", "(pointer uint64)"] + ], + + "default-buffer-init": [ + [[8, 15], "a1", "dma-gif-packet"], + [[18, 24], "a1", "gs-gif-tag"], + [29, "a1", "(pointer gs-alpha)"], + [31, "a1", "(pointer gs-reg64)"], + [33, "a1", "(pointer gs-zbuf)"], + [35, "a1", "(pointer gs-reg64)"], + [37, "a1", "(pointer gs-test)"], + [39, "a1", "(pointer gs-reg64)"], + [40, "a1", "(pointer uint64)"], + [42, "a1", "(pointer gs-reg64)"], + [44, "a1", "(pointer gs-clamp)"], + [46, "a1", "(pointer gs-reg64)"], + [48, "a1", "(pointer gs-tex1)"], + [50, "a1", "(pointer gs-reg64)"], + [53, "a1", "(pointer gs-texa)"], + [55, "a1", "(pointer gs-reg64)"], + [57, "a1", "(pointer gs-texclut)"], + [59, "a1", "(pointer gs-reg64)"], + [61, "a1", "(pointer gs-fogcol)"], + [63, "a1", "(pointer gs-reg64)"], + [[69, 72], "a0", "dma-packet"] + ], + + // LEVEL + "lookup-level-info": [ + [3, "a1", "symbol"], + [[4, 16], "a1", "level-load-info"] + ], + + // DISPLAY + "put-display-alpha-env": [[[0, 5], "v1", "gs-bank"]], + + "(method 13 profile-bar)": [ + [[27, 43], "t2", "dma-packet"], + [[46, 56], "t2", "gs-gif-tag"], + [[65, 67], "t3", "(pointer gs-prim)"], + [67, "t3", "(pointer uint64)"], + [79, "t3", "(pointer gs-xyzf)"], + [110, "t2", "(pointer gs-xyzf)"] + ], + + "draw-sprite2d-xy": [ + [[41, 45], "a3", "dma-packet"], + [[51, 54], "a3", "gs-gif-tag"], + [59, "a3", "(pointer gs-prim)"], + [61, "a3", "(pointer gs-rgbaq)"], + [72, "a3", "(pointer gs-xyzf)"], + [97, "a3", "(pointer gs-xyzf)"], + [[106, 117], "v1", "(pointer dma-tag)"], + [109, "a2", "dma-tag"] + ], + + "draw-quad2d": [ + [[22, 28], "t1", "dma-packet"], + [[31, 37], "t1", "gs-gif-tag"], + [42, "t1", "(pointer gs-prim)"], + [44, "t1", "(pointer gs-rgbaq)"], + [52, "t1", "(pointer gs-xyzf)"], + [54, "t1", "(pointer gs-rgbaq)"], + [67, "t1", "(pointer gs-xyzf)"], + [69, "t1", "(pointer gs-rgbaq)"], + [86, "t1", "(pointer gs-xyzf)"], + [88, "t1", "(pointer gs-rgbaq)"], + [110, "t1", "(pointer gs-xyzf)"], + [111, "t1", "(pointer uint64)"], + [[120, 131], "v1", "(pointer dma-tag)"], + [123, "a2", "dma-tag"] + ], + + "set-display-gs-state": [ + [[3, 10], "t3", "dma-packet"], + [[13, 19], "t3", "gs-gif-tag"], + [30, "t3", "(pointer gs-scissor)"], + [32, "t3", "(pointer gs-reg64)"], + [33, "t3", "(pointer gs-xy-offset)"], + [35, "t3", "(pointer gs-reg64)"], + [46, "t3", "(pointer gs-frame)"], + [48, "t3", "(pointer gs-reg64)"], + [50, "t3", "(pointer gs-test)"], + [52, "t3", "(pointer gs-reg64)"], + [54, "t3", "(pointer gs-texa)"], + [56, "t3", "(pointer gs-reg64)"], + [58, "t3", "(pointer gs-zbuf)"], + [60, "t3", "(pointer gs-reg64)"], + [61, "t3", "(pointer uint64)"], + [63, "t3", "(pointer gs-reg64)"] + ], + + "set-display-gs-state-offset": [ + [[3, 10], "t5", "dma-packet"], + [[13, 19], "t5", "gs-gif-tag"], + [30, "t5", "(pointer gs-scissor)"], + [32, "t5", "(pointer gs-reg64)"], + [40, "t5", "(pointer gs-xy-offset)"], + [42, "t5", "(pointer gs-reg64)"], + [53, "t5", "(pointer gs-frame)"], + [55, "t5", "(pointer gs-reg64)"], + [57, "t5", "(pointer gs-test)"], + [59, "t5", "(pointer gs-reg64)"], + [61, "t5", "(pointer gs-texa)"], + [63, "t5", "(pointer gs-reg64)"], + [65, "t5", "(pointer gs-zbuf)"], + [67, "t5", "(pointer gs-reg64)"], + [68, "t5", "(pointer uint64)"], + [70, "t5", "(pointer gs-reg64)"] + ], + + "reset-display-gs-state": [ + [[9, 16], "t0", "dma-packet"], + [[19, 25], "t0", "gs-gif-tag"], + [34, "a3", "(pointer gs-scissor)"], + [36, "a3", "(pointer gs-reg64)"], + [44, "a3", "(pointer gs-xy-offset)"], + [46, "a3", "(pointer gs-reg64)"], + [51, "a3", "(pointer gs-frame)"], + [53, "a3", "(pointer gs-reg64)"], + + [55, "a3", "(pointer gs-test)"], + [57, "a3", "(pointer gs-reg64)"], + [60, "a3", "(pointer gs-texa)"], + [62, "a3", "(pointer gs-reg64)"], + [64, "a3", "(pointer gs-zbuf)"], + [66, "a3", "(pointer gs-reg64)"], + [67, "a3", "(pointer uint64)"], + [69, "a3", "(pointer gs-reg64)"] + ], + + "(method 9 connection)": [[8, "a0", "pointer"]], + + "(method 10 connection)": [[8, "a0", "pointer"]], + + "(method 0 engine)": [[39, "v0", "pointer"]], + + "(method 12 engine)": [ + [[5, 16], "s4", "connection"], + [12, "t9", "(function basic basic basic object object)"] + ], + + "(method 13 engine)": [ + [[5, 24], "s4", "connection"], + [12, "t9", "(function basic basic basic object object)"] + ], + + "(method 15 engine)": [[[0, 36], "v1", "connection"]], + + "(method 19 engine)": [[8, "a0", "connection"]], + + "(method 20 engine)": [[8, "a0", "connection"]], + + "gs-set-default-store-image": [ + [9, "t4", "gif-tag64"], + [9, "v1", "gif-tag-regs"] + ], + + "dma-buffer-add-ref-texture": [ + [[25, 29], "a3", "dma-packet"], + [[32, 44], "a3", "gs-gif-tag"], + [[47, 62], "a2", "dma-packet"] + ], + + "(method 11 level)": [ + [[13, 18], "a1", "dma-packet"], + //[19, "a0", "(pointer uint32)"], + [[20, 26], "a0", "dma-packet"], + + [[50, 55], "a1", "dma-packet"], + // [56, "a0", "(pointer uint32)"], + [[60, 63], "a0", "dma-packet"], + + [[87, 92], "a1", "dma-packet"], + // [93, "a0", "(pointer uint32)"], + [[97, 100], "a0", "dma-packet"], + + [[124, 129], "a1", "dma-packet"], + // [130, "a0", "(pointer uint32)"], + [[134, 137], "a0", "dma-packet"], + + [[162, 167], "a1", "dma-packet"], + // [168, "a0", "(pointer uint32)"], + [[172, 175], "a0", "dma-packet"], + + [[199, 204], "a1", "dma-packet"], + // [205, "a0", "(pointer uint32)"], + [[209, 212], "a0", "dma-packet"], + + [[236, 241], "a1", "dma-packet"], + // [242, "a0", "(pointer uint32)"], + [[246, 249], "a0", "dma-packet"], + + [[273, 278], "a1", "dma-packet"], + // [279, "a0", "(pointer uint32)"], + [[283, 286], "a0", "dma-packet"] + ], + + "(method 14 texture-page)": [ + [[18, 22], "a0", "dma-packet"], + [[28, 31], "a0", "gs-gif-tag"], + [36, "a0", "(pointer uint64)"], + [38, "a0", "(pointer gs-reg64)"], + [[44, 45], "a0", "dma-packet"], + [45, "a0", "(pointer uint64)"] + ], + + "(method 13 texture-page)": [ + [[45, 49], "a0", "dma-packet"], + [[55, 58], "a0", "gs-gif-tag"], + [67, "a0", "(pointer gs-bitbltbuf)"], + [69, "a0", "(pointer gs-reg64)"], + [70, "a0", "(pointer gs-trxpos)"], + [72, "a0", "(pointer gs-reg64)"], + [76, "a0", "(pointer gs-trxreg)"], + [78, "a0", "(pointer gs-reg64)"], + [79, "a0", "(pointer gs-trxdir)"], + [81, "a0", "(pointer gs-reg64)"] + ], + + "link-texture-by-id": [[51, "s5", "uint"]], + + "adgif-shader-login-fast": [[57, "gp", "uint"]], + + "adgif-shader-login-no-remap-fast": [[52, "a0", "uint"]], + + "(method 9 texture-page-dir)": [[[27, 31], "t3", "adgif-shader"]], + + "adgif-shader<-texture-simple!": [[5, "v1", "uint"]], + + "display-frame-start": [ + [4, "v1", "vif-bank"], + [9, "a0", "vif-bank"], + [[158, 161], "a0", "dma-packet"] + ], + + "display-loop": [ + [152, "v1", "(pointer int32)"], + [157, "a0", "(pointer process-drawable)"], + [[477, 481], "a0", "dma-packet"], + [[487, 490], "a0", "gs-gif-tag"], + + [497, "a0", "(pointer gs-reg64)"], + [495, "a0", "(pointer gs-alpha)"], + + [501, "a0", "(pointer gs-reg64)"], + [499, "a0", "(pointer gs-zbuf)"], + + [505, "a0", "(pointer gs-reg64)"], + [503, "a0", "(pointer gs-test)"], + + [508, "a0", "(pointer gs-reg64)"], + [506, "a0", "(pointer uint64)"], // pabe + + [512, "a0", "(pointer gs-reg64)"], + [510, "a0", "(pointer gs-clamp)"], + + [516, "a0", "(pointer gs-reg64)"], + [514, "a0", "(pointer gs-tex1)"], + + [521, "a0", "(pointer gs-reg64)"], + [519, "a0", "(pointer gs-texa)"], + + [525, "a0", "(pointer gs-reg64)"], + [523, "a0", "(pointer gs-texclut)"], + + [529, "a0", "(pointer gs-reg64)"], + [527, "a0", "(pointer gs-fogcol)"], + + [[588, 591], "v1", "dma-packet"], + [[672, 675], "v1", "dma-packet"] + ], + + "load-game-text-info": [[4, "v1", "game-text-info"]], + + "texture-relocate": [ + [[17, 21], "t4", "dma-packet"], + [[27, 30], "t4", "gs-gif-tag"], + [60, "t4", "(pointer gs-bitbltbuf)"], + [62, "t4", "(pointer gs-reg64)"], + [63, "t4", "(pointer gs-trxpos)"], + [65, "t4", "(pointer gs-reg64)"], + [71, "t4", "(pointer gs-trxreg)"], + [73, "t4", "(pointer gs-reg64)"], + [75, "t4", "(pointer gs-trxdir)"], + [77, "t4", "(pointer gs-reg64)"], + [[98, 102], "a2", "dma-packet"], + [[108, 111], "a2", "gs-gif-tag"], + + [132, "a2", "(pointer gs-bitbltbuf)"], + [134, "a2", "(pointer gs-reg64)"], + [135, "a2", "(pointer gs-trxpos)"], + [137, "a2", "(pointer gs-reg64)"], + [139, "a2", "(pointer gs-trxreg)"], + [141, "a2", "(pointer gs-reg64)"], + [143, "a2", "(pointer gs-trxdir)"], + [145, "a2", "(pointer gs-reg64)"], + + [[157, 161], "a2", "dma-packet"], + [[167, 170], "a2", "gs-gif-tag"], + [191, "a2", "(pointer gs-bitbltbuf)"], + [193, "a2", "(pointer gs-reg64)"], + [194, "a2", "(pointer gs-trxpos)"], + [196, "a2", "(pointer gs-reg64)"], + [198, "a2", "(pointer gs-trxreg)"], + [200, "a2", "(pointer gs-reg64)"], + [202, "a2", "(pointer gs-trxdir)"], + [204, "a2", "(pointer gs-reg64)"] + ], + + "(method 11 texture-pool)": [ + [[119, 123], "a0", "dma-packet"], + [[129, 132], "a0", "gs-gif-tag"], + [137, "a0", "(pointer uint64)"], + [139, "a0", "(pointer gs-reg64)"], + [145, "a0", "dma-packet"], + [146, "a0", "(pointer uint64)"] + ], + + "texture-page-login": [[[34, 45], "s2", "texture-page"]], + + "upload-vram-data": [ + [[9, 15], "a0", "dma-packet"], + [[18, 24], "a0", "gs-gif-tag"], + [33, "a0", "(pointer gs-bitbltbuf)"], + [35, "a0", "(pointer gs-reg64)"], + [36, "a0", "(pointer gs-trxpos)"], + [38, "a0", "(pointer gs-reg64)"], + [42, "a0", "(pointer gs-trxreg)"], + [44, "a0", "(pointer gs-reg64)"], + [45, "a0", "(pointer gs-trxdir)"], + [47, "a0", "(pointer gs-reg64)"] + ], + + "texture-page-dir-inspect": [[[133, 136], "v1", "adgif-shader"]], + + "upload-vram-pages": [ + [[135, 140], "a0", "dma-packet"], + [[144, 149], "a0", "gs-gif-tag"], + [[155, 157], "a0", "(pointer gs-reg64)"], + [154, "a0", "(pointer uint64)"], + [[162, 165], "v1", "dma-packet"] + ], + + "upload-vram-pages-pris": [ + [[128, 134], "a0", "dma-packet"], + [[137, 143], "a0", "gs-gif-tag"], + [148, "a0", "(pointer uint64)"], + [150, "a0", "(pointer gs-reg64)"], + [[154, 159], "v1", "dma-packet"] + ], + + // RES + "(method 19 res-lump)": [ + [46, "t2", "(pointer uint64)"], + [100, "t3", "(pointer uint64)"], + [184, "t5", "(pointer uint64)"], + [64, "t6", "(pointer uint64)"] + ], + "(method 16 res-lump)": [ + [22, "t1", "(pointer uint64)"], + [29, "t2", "(pointer uint64)"] + ], + "(method 18 res-lump)": [["_stack_", 16, "object"]], + "(method 21 res-lump)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"] + ], + + "(method 15 sync-info)": [ + ["_stack_", 16, "res-tag"], + [[19, 24], "v1", "(pointer float)"] + ], + + "(method 15 sync-info-eased)": [ + ["_stack_", 16, "res-tag"], + [[44, 49], "v1", "(pointer float)"], + [[26, 35], "v1", "(pointer float)"] + ], + + "(method 15 sync-info-paused)": [ + ["_stack_", 16, "res-tag"], + [[44, 49], "v1", "(pointer float)"], + [[26, 35], "v1", "(pointer float)"] + ], + + "(method 15 res-lump)": [[132, "s5", "res-tag-pair"]], + + "(method 17 res-lump)": [[22, "s4", "(pointer pointer)"]], + + "(method 20 res-lump)": [[331, "a3", "(inline-array vector)"]], + + "(method 8 res-lump)": [ + [215, "s0", "array"], + [[0, 100], "s0", "basic"], + [[102, 120], "s0", "basic"], + [[147, 150], "s0", "collide-mesh"], + [[157, 200], "s0", "(array object)"], + //[[197, 199], "s0", "(array basic)"], + //[[236, 240], "a0", "basic"] + [235, "s0", "basic"] + ], + + // SHADOW-CPU-H + "(method 10 shadow-control)": [[1, "v1", "int"]], + + // FACT-H + "(method 0 fact-info-enemy)": [ + [[3, 92], "gp", "fact-info-enemy"] + ], + + "(method 0 fact-info)": [ + //[16, "t9", "(function string none)"], + ["_stack_", 16, "res-tag"], + [[32, 43], "v1", "(pointer int32)"], + [86, "gp", "fact-info"] + ], + + "(method 0 fact-info-target)": [[[3, 20], "gp", "fact-info-target"]], + + "(method 0 align-control)": [[[14, 18], "v0", "align-control"]], + + "str-load": [[[20, 36], "s2", "load-chunk-msg"]], + + "str-load-status": [ + [[18, 22], "v1", "load-chunk-msg"], + [26, "v1", "load-chunk-msg"] + ], + + "str-play-async": [[[8, 16], "s4", "load-chunk-msg"]], + + "str-play-stop": [[[7, 14], "s5", "load-chunk-msg"]], + + "str-play-queue": [[[19, 27], "s5", "load-chunk-msg"]], + + "str-ambient-play": [[[7, 15], "s5", "load-chunk-msg"]], + + "str-ambient-stop": [[[7, 16], "s5", "load-chunk-msg"]], + + "dgo-load-begin": [[[21, 40], "s2", "load-dgo-msg"]], + + "dgo-load-get-next": [[[14, 31], "v1", "load-dgo-msg"]], + + "dgo-load-continue": [[[5, 21], "gp", "load-dgo-msg"]], + + "string->sound-name": [[[2, 18], "a1", "(pointer uint8)"]], + + "ramdisk-load": [[[8, 12], "v1", "ramdisk-rpc-load"]], + + "(method 3 generic-tie-interp-point)": [[15, "gp", "(pointer uint128)"]], + + "ripple-find-height": [[[22, 72], "s4", "mei-ripple"]], + + "(method 0 collide-shape-prim-sphere)": [ + [[4, 8], "v0", "collide-shape-prim-sphere"] + ], + "(method 0 collide-shape-prim-mesh)": [ + [[6, 11], "v0", "collide-shape-prim-mesh"] + ], + "(method 0 collide-shape-prim-group)": [ + [[11, 18], "v0", "collide-shape-prim-group"] + ], + + "entity-actor-count": [["_stack_", 16, "res-tag"]], + + "entity-actor-lookup": [ + ["_stack_", 16, "res-tag"], + [[10, 33], "v1", "(pointer uint32)"] + ], + + "(method 11 joint-mod)": [ + [15, "s3", "process-drawable"], + [[26, 66], "s3", "fact-info-enemy"] + ], + + "joint-mod-look-at-handler": [[[2, 254], "gp", "joint-mod"]], + + "joint-mod-world-look-at-handler": [[[0, 254], "gp", "joint-mod"]], + + "joint-mod-rotate-handler": [[[2, 77], "s4", "joint-mod"]], + + "joint-mod-joint-set-handler": [[[2, 13], "s4", "joint-mod"]], + + "joint-mod-joint-set*-handler": [[[2, 31], "s5", "joint-mod"]], + "joint-mod-wheel-callback": [[[2, 63], "s4", "joint-mod-wheel"]], + "joint-mod-set-local-callback": [[[0, 23], "v1", "joint-mod-set-local"]], + "joint-mod-set-world-callback": [[[0, 23], "v1", "joint-mod-set-world"]], + "joint-mod-blend-local-callback": [[[2, 63], "gp", "joint-mod-blend-local"]], + "joint-mod-spinner-callback": [[[2, 63], "gp", "joint-mod-spinner"]], + + "(method 11 touching-prims-entry-pool)": [ + [[0, 8], "v1", "touching-prims-entry"], + [8, "v1", "pointer"], + [[9, 11], "v1", "touching-prims-entry"], + [[1, 20], "a1", "touching-prims-entry"] + ], + + "(method 0 touching-list)": [[[6, 9], "v0", "touching-list"]], + + "num-func-chan": [[8, "v1", "joint-control-channel"]], + + "shrubbery-login-post-texture": [ + //[[13, 41], "a3", "qword"], + // [[13, 41], "a2", "qword"] + [[13, 15], "a3", "qword"], + [16, "a3", "pointer"], + [24, "a3", "pointer"], + [[17, 23], "a3", "qword"], + [[13, 23], "a1", "qword"], + [14, "a2", "qword"], + [[27, 29], "a3", "qword"], + [[27, 29], "a1", "qword"], + [[35, 37], "a3", "qword"], + [[35, 37], "a2", "qword"] + ], + + "(method 3 sparticle-cpuinfo)": [[106, "f0", "float"]], + + "camera-teleport-to-entity": [[9, "a0", "transform"]], + + "add-debug-sphere-from-table": [[[9, 18], "s1", "(inline-array vector)"]], + + "(method 14 actor-link-info)": [[5, "v1", "entity-links"]], + "(method 15 actor-link-info)": [[5, "v1", "entity-links"]], + + "(method 23 actor-link-info)": [[4, "v1", "entity-links"]], + "(method 24 actor-link-info)": [[4, "v1", "entity-links"]], + "(method 9 actor-link-info)": [[[0, 36], "s3", "entity-actor"]], + "alt-actor-list-subtask-incomplete-count": [[19, "a0", "entity-links"]], + "actor-link-dead-hook": [[1, "v1", "entity-links"]], + + "check-irx-version": [[[6, 37], "gp", "sound-rpc-get-irx-version"]], + "sound-bank-load": [[[9, 11], "v1", "sound-rpc-load-bank"]], + "sound-bank-unload": [[[7, 9], "v1", "sound-rpc-unload-bank"]], + "sound-music-load": [[[7, 9], "v1", "sound-rpc-load-music"]], + "sound-music-unload": [[6, "v1", "sound-rpc-unload-music"]], + "sound-reload-info": [[6, "v1", "sound-rpc-reload-info"]], + "set-language": [[[10, 12], "v1", "sound-rpc-set-language"]], + "list-sounds": [[6, "v1", "sound-rpc-list-sounds"]], + "sound-set-volume": [[[6, 13], "v1", "sound-rpc-set-master-volume"]], + "sound-set-reverb": [[[8, 21], "v1", "sound-rpc-set-reverb"]], + "sound-set-ear-trans": [[[7, 20], "gp", "sound-rpc-set-ear-trans"]], + "sound-play-by-name": [ + [[13, 45], "s5", "sound-rpc-play"], + [[22, 39], "s3", "process-drawable"] + ], + "sound-play-by-spec": [ + [[9, 54], "s5", "sound-rpc-play"], + [[31, 47], "s3", "process-drawable"] + ], + "sound-pause": [[[5, 7], "v1", "sound-rpc-pause-sound"]], + "sound-stop": [[[5, 7], "v1", "sound-rpc-stop-sound"]], + "sound-continue": [[[5, 7], "v1", "sound-rpc-continue-sound"]], + "sound-group-pause": [[[5, 7], "v1", "sound-rpc-pause-group"]], + "sound-group-stop": [[[5, 7], "v1", "sound-rpc-stop-group"]], + "sound-group-continue": [[[5, 7], "v1", "sound-rpc-continue-group"]], + "sound-set-falloff-curve": [[[7, 19], "v1", "sound-rpc-set-falloff-curve"]], + "sound-set-sound-falloff": [[[8, 13], "v1", "sound-rpc-set-sound-falloff"]], + "sound-set-flava": [[[5, 7], "v1", "sound-rpc-set-flava"]], + "sound-set-fps": [[[5, 7], "v1", "sound-rpc-set-fps"]], + "(method 0 ambient-sound)": [ + [136, "v1", "sound-spec"], + [143, "v1", "sound-spec"], + [140, "v1", "sound-spec"], + [147, "v1", "sound-spec"], + ["_stack_", 16, "sound-spec"], + ["_stack_", 32, "sound-name"], + ["_stack_", 48, "(pointer float)"], + ["_stack_", 52, "sound-play-parms"], + ["_stack_", 64, "res-tag"] + ], + "(method 11 ambient-sound)": [ + [[18, 31], "s4", "process-drawable"], + [[12, 44], "gp", "sound-rpc-set-param"] + ], + "(method 12 ambient-sound)": [[[8, 20], "v1", "sound-rpc-set-param"]], + "sound-buffer-dump": [[[14, 25], "s3", "sound-rpc-play"]], + "actor-link-subtask-complete-hook": [[1, "v1", "entity-links"]], + + "(method 0 vol-control)": [ + [30, "s5", "res-lump"], + [36, "s5", "res-lump"], + [58, "s5", "res-lump"], + [62, "s5", "res-lump"], + [85, "s5", "res-lump"], + [91, "s5", "res-lump"], + [113, "s5", "res-lump"], + [117, "s5", "res-lump"] + ], + + "point-in-air-box?": [[5, "f1", "float"]], + + "(method 3 air-box)": [ + [16, "f0", "float"], + [22, "f0", "float"], + [28, "f0", "float"] + ], + + "joint-anim-inspect-elt": [ + [9, "gp", "joint-anim-matrix"], + [26, "gp", "joint-anim-transformq"] + ], + "(method 12 art-group)": [[13, "a0", "art-joint-anim"]], + + "(method 0 path-control)": [["_stack_", 16, "res-tag"]], + + "(method 0 curve-control)": [[[13, 55], "s3", "entity"]], + + "nav-mesh-connect": [ + [[4, 15], "s2", "entity-actor"], + [19, "v1", "entity"], + [20, "v1", "entity-links"], + [72, "v1", "entity"], + [73, "v1", "entity-links"], + [76, "a0", "entity"], + [77, "a0", "entity-links"] + ], + + "add-debug-point": [ + [125, "a3", "pointer"], + [[27, 144], "a0", "(pointer uint64)"], + [[147, 150], "a0", "dma-packet"], + [[31, 35], "a3", "dma-packet"], + [[41, 44], "a3", "gs-gif-tag"], + [[61, 65], "a3", "vector4w-2"], + [[81, 85], "a3", "vector4w-2"], + [[98, 102], "a3", "vector4w-2"], + [[118, 122], "a1", "vector4w-2"] + ], + "internal-draw-debug-line": [ + [[95, 101], "a3", "dma-packet"], + [[104, 110], "a3", "gs-gif-tag"], + [[212, 225], "a1", "(inline-array vector4w-2)"], + [228, "a3", "pointer"], + [[93, 246], "a0", "(pointer uint64)"], + [[250, 253], "a0", "dma-packet"], + [[3, 158], "s2", "rgba"], + [[5, 204], "s5", "rgba"] + ], + "add-debug-flat-triangle": [ + [[55, 61], "a3", "dma-packet"], + [[64, 70], "a3", "gs-gif-tag"], + [[93, 112], "a3", "(inline-array vector4w-3)"], + [[53, 133], "a0", "(pointer uint64)"], + [115, "a1", "pointer"], + [[135, 140], "a0", "dma-packet"] + ], + "add-debug-line2d": [ + [[58, 64], "a2", "dma-packet"], + [[67, 73], "a2", "gs-gif-tag"], + [[76, 81], "a2", "(inline-array vector4w)"], + [[84, 89], "a2", "(inline-array vector4w)"], + [[56, 110], "a0", "(pointer uint64)"], + [92, "a1", "pointer"], + [[112, 117], "v1", "dma-packet"] + ], + "debug-percent-bar": [[[32, 43], "v1", "dma-packet"]], + "debug-pad-display": [[[70, 75], "v1", "dma-packet"]], + "internal-draw-debug-text-3d": [[[54, 59], "v1", "dma-packet"]], + "drawable-frag-count": [[[14, 20], "s5", "drawable-group"]], + + "generic-init-buffers": [ + [[39, 44], "v1", "dma-packet"], + [25, "s5", "gs-zbuf"], + [32, "gp", "gs-zbuf"] + ], + + "(method 13 drawable-inline-array-collide-fragment)": [ + [[1, 5], "v1", "collide-fragment"] + ], + + "(method 12 drawable-inline-array-collide-fragment)": [ + [[1, 5], "v1", "collide-fragment"] + ], + + "(method 11 drawable-inline-array-collide-fragment)": [ + [[1, 5], "v1", "collide-fragment"] + ], + + "main-cheats": [ + [[1123, 1126], "v1", "dma-packet"] + ], + "on": [[33, "t9", "(function cpu-thread function none)"]], + + "bg": [[37, "a0", "symbol"]], + + "level-update-after-load": [ + [[29, 55], "s2", "drawable-tree"], + [[121, 146], "s1", "drawable-inline-array-tfrag"], + [[150, 151], "s1", "drawable-tree-instance-tie"] + ], + + "(method 11 setting-control)": [[[3, 25], "s4", "connection"]], + + "(method 9 setting-data)": [ + [[4, 345], "s3", "connection"], + [[9, 12], "v1", "symbol"], + [[14, 17], "v1", "symbol"], + [[19, 22], "v1", "symbol"], + [[24, 27], "v1", "symbol"], + [[29, 32], "v1", "symbol"], + [[33, 35], "a0", "int"], + [[40, 45], "a0", "uint"], + [[47, 49], "v1", "int"], + [[68, 71], "v1", "symbol"], + [[72, 78], "v1", "float"], + [[80, 83], "v1", "float"], + [[87, 90], "v1", "symbol"], + [[91, 97], "v1", "float"], + [[99, 102], "v1", "float"], + [[106, 109], "v1", "symbol"], + [[110, 116], "v1", "float"], + [[118, 121], "v1", "float"], + [[125, 128], "v1", "symbol"], + [[129, 135], "v1", "float"], + [[137, 140], "v1", "float"], + [[144, 147], "v1", "symbol"], + [[148, 154], "v1", "float"], + [[156, 159], "v1", "float"], + [[163, 166], "v1", "symbol"], + [[167, 173], "v1", "float"], + [[175, 178], "v1", "float"], + [[182, 185], "v1", "symbol"], + [[186, 192], "v1", "float"], + [[194, 197], "v1", "float"], + [[201, 204], "v1", "symbol"], + [[205, 211], "v1", "float"], + [[213, 216], "v1", "float"], + [[220, 223], "v1", "float"], + [[224, 226], "v1", "int"], + [[226, 229], "v1", "float"], + [[233, 236], "v1", "float"], + [[240, 243], "v1", "float"], + [[247, 250], "v1", "float"], + [[254, 257], "v1", "float"], + [[261, 264], "v1", "float"], + [[268, 271], "v1", "float"], + [[275, 277], "v1", "int"], + [[280, 282], "v1", "symbol"], + [[285, 287], "v1", "symbol"], + [[290, 293], "v1", "symbol"], + [[295, 298], "v1", "symbol"], + [[300, 303], "v1", "symbol"], + [[305, 308], "v1", "(pointer progress)"], + [[310, 313], "v1", "(pointer progress)"], + [[315, 318], "v1", "(pointer progress)"], + [[325, 328], "v1", "(pointer progress)"], + [[330, 333], "v1", "symbol"], + [[334, 337], "a0", "int"], + [[341, 344], "a0", "uint"] + ], + + "(method 12 level)": [[151, "a0", "symbol"]], + "(method 26 level-group)": [[[65, 96], "v0", "level"]], + "update-sound-banks": [[[21, 52], "t0", "symbol"]], + "(method 16 level-group)": [ + [[122, 146], "s1", "continue-point"], + [[115, 154], "s3", "continue-point"] + ], + "(method 20 level)": [[[43, 45], "s3", "ramdisk-rpc-fill"]], + + "(anon-function 29 process-drawable)": [ + [[0, 99999], "s6", "process-drawable"] + ], + + "ja-done?": [[[0, 999], "s6", "process-drawable"]], + "ja-min?": [[[0, 999], "s6", "process-drawable"]], + "ja-max?": [[[0, 999], "s6", "process-drawable"]], + "ja-num-frames": [[[0, 999], "s6", "process-drawable"]], + "ja-frame-num": [[[0, 999], "s6", "process-drawable"]], + "ja-aframe-num": [[[0, 999], "s6", "process-drawable"]], + "ja-aframe": [[[0, 999], "s6", "process-drawable"]], + "ja-step": [[[0, 999], "s6", "process-drawable"]], + "ja-channel-set!": [[[0, 999], "s6", "process-drawable"]], + "ja-channel-push!": [[[0, 999], "s6", "process-drawable"]], + "ja-group-size": [[[0, 999], "s6", "process-drawable"]], + "ja-eval": [[[0, 999], "s6", "process-drawable"]], + "ja-blend-eval": [[[0, 999], "s6", "process-drawable"]], + "ja-post": [ + [[0, 999], "s6", "process-drawable"], + [54, "a1", "process"] + ], + "transform-post": [[[0, 999], "s6", "process-drawable"]], + "rider-trans": [[[0, 999], "s6", "process-drawable"]], + "rider-post": [[[0, 999], "s6", "process-drawable"]], + "pusher-post": [[[0, 999], "s6", "process-drawable"]], + "process-drawable-delay-player": [[[0, 999], "s6", "process-drawable"]], + + "upload-generic-shrub": [ + [[3, 13], "t0", "dma-packet"], + [[15, 26], "v1", "matrix"], + [[31, 44], "t0", "vector4w-2"], + [[47, 71], "t0", "dma-packet"], + [[74, 98], "a2", "dma-packet"], + [[101, 125], "a2", "dma-packet"], + [[128, 152], "a2", "dma-packet"], + [[157, 162], "a1", "dma-packet"] + ], + + "(top-level-login task-control)": [[165, "v1", "symbol"]], + + "task-control-reset": [ + [[7, 13], "a0", "task-control"], + [[17, 21], "a0", "task-control"] + ], + + "(anon-function 494 task-control)": [[32, "v0", "float"]], + "(anon-function 493 task-control)": [[32, "v0", "float"]], + "(anon-function 480 task-control)": [[13, "v0", "float"]], + "(anon-function 477 task-control)": [[38, "v0", "float"]], + "(anon-function 476 task-control)": [[38, "v0", "float"]], + "(anon-function 475 task-control)": [ + [37, "v0", "float"], + [81, "v0", "float"] + ], + "(anon-function 474 task-control)": [ + [37, "v0", "float"], + [81, "v0", "float"] + ], + "(anon-function 426 task-control)": [[32, "v0", "float"]], + "(anon-function 425 task-control)": [[32, "v0", "float"]], + "(anon-function 415 task-control)": [[32, "v0", "float"]], + "(anon-function 414 task-control)": [[32, "v0", "float"]], + "(anon-function 365 task-control)": [[32, "v0", "float"]], + "(anon-function 364 task-control)": [[32, "v0", "float"]], + "(anon-function 363 task-control)": [[32, "v0", "float"]], + "(anon-function 362 task-control)": [[32, "v0", "float"]], + "(anon-function 337 task-control)": [[32, "v0", "float"]], + "(anon-function 336 task-control)": [[32, "v0", "float"]], + "(anon-function 227 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 286 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 366 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 367 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 368 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 369 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 380 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 383 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 390 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 393 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 400 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 403 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 435 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 445 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 455 task-control)": [ + [[14, 16], "t9", "(function process event-message-block float)"] + ], + "(anon-function 38 task-control)": [[13, "v0", "float"]], + "(anon-function 28 task-control)": [[13, "v0", "float"]], + + "(method 18 game-info)": [ + [4, "v1", "symbol"], + [5, "v1", "level-load-info"], + [10, "s3", "continue-point"] + ], + + "(method 9 game-info)": [ + [ + [270, 286], + "s2", + "(function cpu-thread function object object object object pointer)" + ] + ], + + "(method 25 game-info)": [ + [4, "v1", "game-save-tag"], + [69, "v1", "pointer"], + [[7, 69], "v1", "game-save-tag"], + [[88, 154], "s4", "game-save-tag"], + [170, "s4", "pointer"], + [[182, 221], "s4", "game-save-tag"], + [222, "s4", "pointer"], + [514, "s4", "pointer"], + [223, "a1", "(pointer uint8)"], + [[235, 236], "s4", "game-save-tag"], + [239, "s4", "pointer"], + [240, "a1", "(pointer uint8)"], + [[251, 252], "s4", "game-save-tag"], + [265, "s4", "pointer"], + [[277, 278], "s4", "game-save-tag"], + [291, "s4", "pointer"], + [309, "s4", "game-save-tag"], + [318, "s4", "pointer"], + [319, "a2", "(pointer uint8)"], + [331, "s4", "game-save-tag"], + [335, "s4", "pointer"], + [359, "v1", "(pointer uint8)"], + [368, "v1", "(pointer uint8)"], + [[376, 436], "s4", "game-save-tag"], + [439, "s4", "pointer"], + [440, "a1", "(pointer uint8)"], + [452, "s4", "game-save-tag"], + [456, "s4", "pointer"], + [472, "s4", "game-save-tag"], + [476, "s4", "pointer"], + [492, "s4", "game-save-tag"], + [496, "s4", "pointer"], + [[509, 511], "s4", "game-save-tag"] + ], + + "(method 11 game-save)": [ + [126, "v1", "pointer"], + [213, "s4", "pointer"], + [[74, 88], "s4", "game-save-tag"], + [98, "s4", "pointer"], + [107, "s4", "game-save-tag"], + [125, "s4", "(pointer uint8)"], + [131, "s4", "game-save-tag"], + [155, "s4", "game-save-tag"], + [148, "s4", "pointer"], + [172, "s4", "pointer"], + [179, "s4", "game-save-tag"], + [196, "s4", "pointer"], + [[203, 210], "s4", "game-save-tag"] + ], + + "drawable-load": [ + [17, "s5", "drawable"], + [18, "s5", "drawable"], + [20, "s5", "drawable"], + [25, "s5", "drawable"], + [27, "s5", "drawable"] + ], + "art-load": [ + [9, "s5", "art"], + [13, "s5", "art"], + [15, "s5", "art"] + ], + "art-group-load-check": [ + [22, "s3", "art-group"], + [31, "s3", "art-group"], + [43, "s3", "art-group"], + [50, "s3", "art-group"], + [52, "s3", "art-group"] + ], + "(method 13 art-group)": [[16, "s3", "art-joint-anim"]], + "(method 14 art-group)": [[16, "s3", "art-joint-anim"]], + "(method 9 external-art-control)": [ + [171, "s4", "external-art-buffer"], + [172, "s4", "external-art-buffer"], + [173, "s4", "external-art-buffer"], + [177, "s4", "external-art-buffer"], + [183, "s4", "external-art-buffer"], + [190, "s4", "external-art-buffer"], + + [233, "s4", "spool-anim"], + [240, "s4", "spool-anim"], + [243, "s4", "spool-anim"], + [248, "s4", "spool-anim"], + [249, "s4", "spool-anim"], + [253, "s4", "spool-anim"], + [257, "s4", "spool-anim"] + ], + + "(method 10 external-art-control)": [[18, "v1", "spool-anim"]], + + "(method 16 external-art-control)": [ + [37, "a0", "process"], + [17, "s5", "process-drawable"] + ], + + "ja-play-spooled-anim": [ + [154, "a0", "process"], + [286, "s2", "art-joint-anim"], + [294, "s2", "art-joint-anim"], + [295, "s2", "art-joint-anim"], + [306, "s2", "art-joint-anim"], + [320, "s2", "art-joint-anim"], + [324, "s2", "art-joint-anim"] + ], + + "(method 11 external-art-control)": [ + [127, "a0", "process"], + [151, "a0", "process"], + [168, "a0", "process"], + [18, "s5", "process-drawable"] + ], + + "debug-menu-item-var-update-display-str": [ + [[44, 49], "v1", "int"], + [[61, 69], "v1", "int"] + ], + + "debug-menu-item-get-max-width": [[[18, 27], "a0", "debug-menu-item-var"]], + + "debug-menu-send-msg": [ + [[3, 14], "s2", "debug-menu-item"], + [[14, 21], "s2", "debug-menu-item-submenu"] + ], + + "debug-menu-item-var-joypad-handler": [ + [[39, 42], "a2", "int"], + [[40, 42], "a3", "int"], + [41, "t9", "(function int int int int int)"], + [200, "t9", "(function int int int int int)"], + [138, "v1", "int"], + [143, "v1", "int"], + [[182, 187], "v1", "int"], + [[182, 187], "a1", "int"], + [[190, 194], "a0", "int"], + [[193, 195], "v1", "int"] + ], + + "debug-menu-find-from-template": [ + [3, "s4", "debug-menu"], + [[4, 8], "s4", "debug-menu-item"], + [[41, 44], "s4", "debug-menu-node"], + [[7, 12], "s5", "debug-menu-item"], + [23, "s5", "debug-menu-item-submenu"] + ], + + "debug-menu-func-decode": [[[12, 14], "a0", "symbol"]], + + "dm-cam-render-float": [[[71, 72], "v0", "float"]], + + "can-hint-be-played?": [ + [[25, 28], "a0", "level-hint"] // kinda a guess, but its the only process that makes sense + ], + + "debug-menu-rebuild": [[[4, 13], "a0", "debug-menu-item"]], + + "debug-menu-item-submenu-render": [[[39, 44], "v1", "dma-packet"]], + + "debug-menu-item-function-render": [[[46, 51], "v1", "dma-packet"]], + + "debug-menu-item-flag-render": [[[44, 49], "v1", "dma-packet"]], + + "debug-menu-render": [ + [[45, 48], "v1", "dma-packet"], + [[106, 110], "v1", "dma-packet"] + ], + + "debug-menu-item-var-msg": [[64, "t9", "(function int int int int int)"]], + + "calculate-basis-functions-vector!": [ + [[8, 20], "v1", "(pointer float)"], + [[0, 60], "f1", "float"] + ], + + "(anon-function 2 memory-usage)": [ + [[171, 415], "s5", "process-drawable"], + [[212, 213], "v1", "collide-shape"] + ], + + "(method 8 process-tree)": [ + [31, "v1", "symbol"], + [6, "a3", "symbol"] + ], + + "(method 9 align-control)": [ + [[27, 31], "t9", "(function object object object object)"] + ], + + "(method 8 tie-fragment)": [ + [150, "a0", "(pointer int32)"], + [[157, 160], "a0", "basic"] + ], + + "letterbox": [[[29, 33], "v1", "dma-packet"]], + + "blackout": [[[20, 24], "v1", "dma-packet"]], + + "(method 10 external-art-control)": [[18, "v1", "pointer"]], + + "(method 15 load-state)": [ + [31, "t9", "(function int)"], + [291, "s5", "entity-actor"], + [370, "s3", "process-drawable"] + ], + + "yakow-default-event-handler": [ + [27, "a0", "collide-shape"], + [32, "a0", "collide-shape"] + ], + + "(method 11 yakow)": [ + [184, "v1", "vector"], + [186, "v1", "vector"], + [189, "v1", "vector"] + ], + + "yakow-post": [ + [114, "a0", "collide-shape-moving"], + [130, "a0", "collide-shape-moving"] + ], + + "raw-ray-sphere-intersect": [ + [23, "v1", "float"], + [36, "v1", "uint"] + ], + + "(method 0 anim-test-obj)": [ + [9, "s4", "anim-test-obj"], + [10, "s4", "anim-test-obj"], + [13, "s4", "anim-test-obj"], + [15, "s4", "anim-test-obj"] + ], + + "(method 0 anim-test-sequence)": [ + [8, "s5", "anim-test-sequence"], + [11, "s5", "anim-test-sequence"], + [13, "s5", "anim-test-sequence"] + ], + + "(method 0 anim-test-seq-item)": [ + [8, "v1", "anim-test-seq-item"], + [10, "v0", "anim-test-seq-item"], + [11, "v0", "anim-test-seq-item"], + [14, "v0", "anim-test-seq-item"], + [17, "v0", "anim-test-seq-item"] + ], + + "(method 3 anim-tester)": [ + [12, "s5", "anim-test-obj"], + [15, "s5", "anim-test-obj"], + [148, "s5", "anim-test-obj"], + [150, "s5", "anim-test-obj"], + [22, "s4", "anim-test-sequence"], + [28, "s4", "anim-test-sequence"], + [38, "s4", "anim-test-sequence"], + [48, "s4", "anim-test-sequence"], + [59, "s4", "anim-test-sequence"], + [137, "s4", "anim-test-sequence"], + [139, "s4", "anim-test-sequence"], + [66, "s3", "anim-test-seq-item"], + [70, "s3", "anim-test-seq-item"], + [75, "s3", "anim-test-seq-item"], + [79, "s3", "anim-test-seq-item"], + [88, "s3", "anim-test-seq-item"], + [94, "s3", "anim-test-seq-item"], + [104, "s3", "anim-test-seq-item"], + [114, "s3", "anim-test-seq-item"], + [126, "s3", "anim-test-seq-item"], + [128, "s3", "anim-test-seq-item"] + ], + + "anim-test-obj-item-valid?": [ + [5, "s5", "anim-test-sequence"], + [12, "s5", "anim-test-sequence"], + [17, "s5", "anim-test-sequence"], + [36, "s5", "anim-test-sequence"], + [38, "s5", "anim-test-sequence"], + [20, "v1", "anim-test-seq-item"], + [26, "v1", "anim-test-seq-item"], + [28, "v1", "anim-test-seq-item"] + ], + + "anim-test-obj-remove-invalid": [ + [84, "v1", "anim-test-sequence"], + [88, "v1", "anim-test-sequence"], + [90, "v1", "anim-test-sequence"], + [92, "v1", "anim-test-sequence"], + [93, "v1", "anim-test-sequence"], + [91, "a0", "anim-test-sequence"], + [5, "s5", "anim-test-sequence"], + [8, "s5", "anim-test-sequence"], + [11, "s5", "anim-test-sequence"], + [30, "s5", "anim-test-sequence"], + [44, "s5", "anim-test-sequence"], + [51, "s5", "anim-test-sequence"], + [58, "s5", "anim-test-sequence"], + [67, "s5", "anim-test-sequence"], + [70, "s4", "anim-test-sequence"], + [71, "s5", "anim-test-sequence"], + [72, "s5", "anim-test-sequence"], + [15, "s3", "anim-test-seq-item"], + [18, "s3", "anim-test-seq-item"], + [24, "s3", "anim-test-seq-item"], + [31, "s3", "anim-test-seq-item"], + [34, "s2", "anim-test-seq-item"], + [35, "s3", "anim-test-seq-item"], + [36, "s3", "anim-test-seq-item"], + [61, "a0", "anim-test-seq-item"] + ], + + "anim-tester-reset": [ + [14, "v1", "anim-test-obj"], + [30, "v1", "anim-test-obj"], + [33, "v1", "anim-test-obj"], + [36, "v1", "anim-test-obj"], + [43, "v1", "anim-test-obj"], + [[50, 53], "v1", "anim-test-obj"] + ], + + "anim-tester-save-all-objects": [ + [[4, 19], "gp", "anim-test-obj"], + [17, "v1", "anim-test-obj"] + ], + + "anim-tester-save-object-seqs": [ + [63, "s5", "anim-test-sequence"], + [69, "s5", "anim-test-sequence"], + [65, "s5", "anim-test-sequence"], + [75, "s5", "anim-test-sequence"], + [79, "s5", "anim-test-sequence"], + [133, "s5", "anim-test-sequence"], + [141, "s5", "anim-test-sequence"], + [142, "v1", "anim-test-sequence"], + [143, "s5", "anim-test-sequence"], + [83, "s4", "anim-test-seq-item"], + [89, "s4", "anim-test-seq-item"], + [91, "s4", "anim-test-seq-item"], + [92, "s4", "anim-test-seq-item"], + [96, "s4", "anim-test-seq-item"], + [105, "s4", "anim-test-seq-item"], + [111, "s4", "anim-test-seq-item"], + [120, "s4", "anim-test-seq-item"], + [121, "v1", "anim-test-seq-item"], + [122, "s4", "anim-test-seq-item"] + ], + + "anim-test-obj-list-handler": [ + [25, "s5", "anim-test-obj"], + [31, "s5", "anim-test-obj"], + [110, "s5", "anim-test-obj"], + [166, "s5", "anim-test-obj"], + [112, "v1", "anim-tester"] + ], + + "anim-test-anim-list-handler": [ + [2, "s5", "anim-test-obj"], + [25, "s5", "anim-test-obj"], + [65, "s5", "anim-test-obj"], + [227, "s5", "anim-test-obj"], + [90, "v1", "anim-test-obj"], + [91, "v1", "anim-test-obj"], + [100, "v1", "anim-test-obj"], + [105, "v1", "anim-test-obj"], + [130, "v1", "anim-test-obj"], + [131, "v1", "anim-test-obj"], + [140, "v1", "anim-test-obj"], + [145, "v1", "anim-test-obj"], + [167, "v1", "anim-test-obj"], + [169, "v1", "anim-test-obj"], + [171, "v1", "anim-test-obj"], + [173, "v1", "anim-test-obj"] + ], + + "anim-test-sequence-list-handler": [ + [2, "s5", "anim-test-sequence"], + [25, "s5", "anim-test-sequence"], + [31, "s5", "anim-test-sequence"], + [71, "s5", "anim-test-sequence"], + [231, "s5", "anim-test-sequence"], + [96, "v1", "anim-test-sequence"], + [97, "v1", "anim-test-sequence"], + [106, "v1", "anim-test-sequence"], + [111, "v1", "anim-test-sequence"], + [136, "v1", "anim-test-sequence"], + [137, "v1", "anim-test-sequence"], + [146, "v1", "anim-test-sequence"], + [151, "v1", "anim-test-sequence"] + ], + + "anim-test-edit-sequence-list-handler": [ + [[122, 965], "s4", "anim-test-sequence"], + [129, "v1", "glst-named-node"], + [[128, 909], "gp", "anim-test-seq-item"], + [380, "v0", "anim-test-obj"], + [381, "v0", "anim-test-obj"], + [382, "v0", "anim-test-obj"], + [389, "v0", "anim-test-obj"], + [483, "s3", "anim-test-seq-item"], + [491, "s3", "anim-test-seq-item"], + [502, "s3", "anim-test-seq-item"] + ], + + "anim-tester-interface": [ + [[34, 48], "gp", "anim-test-obj"], + [[95, 109], "gp", "anim-test-obj"], + [[156, 160], "v1", "anim-test-obj"], + [[162, 165], "v1", "anim-test-sequence"] + ], + + "anim-tester-get-playing-item": [ + [7, "v0", "anim-test-seq-item"], + [[5, 22], "s5", "anim-test-seq-item"], + [21, "v0", "anim-test-seq-item"], + [25, "v0", "anim-test-seq-item"] + ], + + "anim-tester-add-newobj": [ + [[2, 185], "s2", "anim-test-obj"], + [[70, 193], "s5", "anim-test-obj"], + [149, "v1", "anim-test-sequence"], + [154, "v1", "anim-test-sequence"], + [160, "v1", "anim-test-sequence"], + [164, "a0", "art-joint-anim"], + [170, "a0", "art-joint-anim"] + ], + + "anim-tester-start": [[20, "t9", "(function process function none)"]], + + "anim-tester-set-name": [ + [[34, 51], "s3", "anim-test-obj"], + [[40, 63], "s5", "anim-test-sequence"] + ], + + "anim-tester-add-sequence": [[[33, 102], "s5", "anim-test-obj"]], + + "(anon-function 11 anim-tester)": [ + [[23, 113], "s4", "anim-test-obj"], + [[83, 338], "gp", "anim-test-sequence"], + [[123, 187], "s4", "art-joint-anim"] + ], + + "(method 10 bsp-header)": [ + [[51, 61], "a0", "(pointer uint128)"], + [[51, 61], "a1", "(pointer uint128)"], + [133, "v1", "terrain-bsp"], + [141, "v1", "terrain-bsp"], + [148, "v1", "terrain-bsp"], + [5, "a0", "terrain-bsp"], + [8, "a0", "terrain-bsp"] + ], + + "(method 15 bsp-header)": [ + [5, "a0", "terrain-bsp"], + [8, "a0", "terrain-bsp"] + ], + + "upload-vis-bits": [ + [[4,16], "a1", "(pointer uint128)"], + [[12, 14], "a0", "(pointer uint128)"], + [[20,22], "a2", "(pointer uint128)"], + [[28, 30], "a0", "(pointer uint128)"], + [[32, 34], "a2", "(pointer uint128)"] + ], + + + "bsp-camera-asm": [ + [[4, 14], "a1", "bsp-node"], + [[0, 9], "v1", "bsp-node"], + [[12, 16], "v1", "bsp-node"] + ], + + "level-remap-texture": [ + [15, "t0", "(pointer int32)"], + [21, "t0", "(pointer int32)"], + [19, "t0", "(pointer uint64)"], + [12, "v1", "int"] + ], + + "sprite-add-matrix-data": [ + [[5, 15], "a2", "dma-packet"], + [[24, 29], "a1", "matrix"], + [[47, 57], "a2", "dma-packet"], + [[60, 97], "a1", "matrix"], + [[116, 129], "a1", "vector"] + ], + + "sprite-add-frame-data": [[[8, 16], "a0", "dma-packet"]], + + "sprite-add-2d-chunk": [ + [[12, 20], "a0", "dma-packet"], + [[45, 52], "a0", "dma-packet"], + [[69, 76], "a0", "dma-packet"], + [[80, 87], "v1", "dma-packet"], + [65, "a3", "int"] + ], + + "sprite-add-3d-chunk": [ + [[11, 19], "a0", "dma-packet"], + [[44, 51], "a0", "dma-packet"], + [[68, 75], "a0", "dma-packet"], + [[79, 87], "v1", "dma-packet"], + [65, "a3", "int"] + ], + + "sprite-add-shadow-chunk": [ + [[11, 19], "a0", "dma-packet"], + [[37, 44], "a0", "dma-packet"], + [[49, 77], "a0", "(inline-array vector)"], + [[93, 100], "a0", "dma-packet"], + [[105, 121], "s1", "adgif-shader"], + [[130, 138], "v1", "dma-packet"] + ], + + "sprite-draw": [ + [[33, 37], "a0", "dma-packet"], + [[43, 46], "a0", "gs-gif-tag"], + [51, "a0", "(pointer gs-test)"], + [53, "a0", "(pointer gs-reg64)"], + [55, "a0", "(pointer gs-clamp)"], + [57, "a0", "(pointer gs-reg64)"], + [[78, 87], "a0", "dma-packet"], + [[92, 97], "a0", "dma-packet"], + [[125, 129], "a0", "dma-packet"], + [[143, 146], "v1", "dma-packet"] + ], + + "sprite-init-distorter": [ + [59, "a3", "uint"], + [[3, 7], "a2", "dma-packet"], + [[13, 16], "a2", "gs-gif-tag"], + [21, "a2", "(pointer gs-zbuf)"], + [23, "a2", "(pointer gs-reg64)"], + [29, "a2", "(pointer gs-tex0)"], + [31, "a2", "(pointer gs-reg64)"], + [33, "a2", "(pointer gs-tex1)"], + [35, "a2", "(pointer gs-reg64)"], + [36, "a2", "(pointer gs-miptbp)"], + [38, "a2", "(pointer gs-reg64)"], + [45, "a2", "(pointer gs-clamp)"], + [47, "a2", "(pointer gs-reg64)"], + [49, "a2", "(pointer gs-alpha)"], + [51, "a2", "(pointer gs-reg64)"], + [[62, 67], "a1", "dma-packet"] + ], + + "sprite-draw-distorters": [ + [[70, 90], "a0", "vector"], + [72, "v1", "vector"], + [93, "v1", "vector"], + [96, "v1", "vector"], + [115, "v1", "(pointer int32)"], + [119, "a0", "(pointer int32)"], + [124, "v1", "vector"], + [154, "v1", "vector"], + [[172, 189], "a1", "dma-packet"], + [[199, 203], "a0", "dma-packet"], + [[207, 211], "a0", "vector4w"], + [[216, 221], "a0", "dma-packet"], + [[248, 265], "a1", "dma-packet"], + [[273, 277], "a1", "dma-packet"], + [[281, 285], "a1", "vector4w"], + [[289, 294], "v1", "dma-packet"] + ], + + "debug-menu-make-from-template": [ + [[20, 30], "s5", "string"], + [[31, 60], "s5", "string"], + [[61, 71], "s5", "string"], + [[72, 81], "s5", "string"], + [[82, 107], "s5", "string"], + [[108, 135], "s5", "string"], + [[136, 152], "s5", "string"], + [[153, 183], "s5", "string"], + [[186, 224], "s5", "string"], + [[225, 246], "s5", "string"], + [[249, 321], "s5", "string"] + ], + + "debug-menu-item-var-render": [[[94, 98], "v1", "dma-packet"]], + + "generic-add-constants": [[[8, 17], "a0", "dma-packet"]], + + "generic-init-buf": [ + [[14, 19], "a0", "dma-packet"], + [[24, 28], "a0", "gs-gif-tag"], + [32, "a0", "(pointer gs-test)"], + [34, "a0", "(pointer uint64)"], + [34, "a1", "gs-reg"], + [35, "a0", "(pointer gs-zbuf)"], + [37, "a0", "(pointer uint64)"], + [37, "a1", "gs-reg"], + [[47, 53], "a0", "dma-packet"], + [[56, 62], "v1", "(pointer vif-tag)"], + [[62, 66], "v1", "(pointer int32)"] + ], + + "cam-standard-event-handler": [ + [[0, 999], "s6", "camera-slave"], + [[16, 30], "s5", "state"], + [41, "a0", "vector"], + [[5, 8], "t9", "(function object)"], + [[19, 22], "t9", "(function object)"], + [[30, 32], "t9", "(function object)"] + ], + + "cam-curve-pos": [[[0, 224], "s6", "camera-slave"]], + + "cam-combiner-init": [ + [[0, 999], "s6", "camera-combiner"] + ], + + "(code cam-combiner-active)": [[[0, 999], "s6", "camera-combiner"]], + + "(event cam-combiner-active)": [ + [10, "a0", "vector"], + [[0, 20], "s6", "camera-slave"], + [[20, 231], "s6", "camera-combiner"], + [[99, 127], "gp", "camera-slave"], + [[187, 231], "gp", "camera-slave"] + ], + + "cam-master-init": [ + [[0, 999], "s6", "camera-master"], + [[111, 115], "t9", "(function cpu-thread function)"], + [[139, 145], "t9", "(function cpu-thread function object object)"], + [[163, 167], "t9", "(function object)"] + ], + + "cam-curve-setup": [[[0, 82], "s6", "camera-slave"]], + + "(method 15 tracking-spline)": [ + [[57, 59], "a2", "vector"], + [[57, 59], "a3", "vector"] + ], + + "(method 16 tracking-spline)": [ + [[40, 42], "a0", "vector"], + [[40, 42], "a1", "vector"] + ], + + "cam-slave-init-vars": [[[0, 999], "s6", "camera-slave"]], + + "cam-slave-get-vector-with-offset": [[[52, 65], "s3", "vector"]], + + "cam-slave-go": [[[3, 6], "t9", "(function object)"]], + + "cam-slave-init": [ + [[0, 999], "s6", "camera-slave"], + [[47, 50], "t9", "(function object object)"], + [[54, 58], "t9", "(function object object)"] + ], + + "update-mood-village3": [ + [[236, 245], "s0", "(array float)"], + [245, "s0", "(array int8)"], + [[246, 297], "s0", "(array float)"], + [[297, 309], "s0", "(array uint8)"], + [[309, 314], "s0", "matrix"] // TODO - there is no way this is correct lol + ], + + "update-mood-citadel": [ + [291, "s5", "(pointer float)"], + [298, "s5", "(pointer float)"], + [300, "s5", "(pointer float)"], + [304, "s5", "(pointer float)"], + [307, "s5", "(pointer float)"], + [318, "s5", "(pointer float)"] + ], + + "update-mood-finalboss": [ + [40, "s4", "(pointer int64)"], + [44, "s4", "(pointer int64)"], + [174, "s4", "(pointer int64)"], + [251, "s4", "(pointer int64)"], + [255, "s4", "(pointer int64)"], + [347, "s4", "(pointer int64)"] + ], + + "update-mood-ogre": [ + [57, "s4", "(pointer float)"], + [64, "s4", "(pointer float)"], + [90, "s4", "(pointer float)"], + [92, "s4", "(pointer float)"], + [95, "s4", "(pointer float)"], + [98, "s4", "(pointer float)"], + [100, "s4", "(pointer float)"], + [105, "s4", "(pointer float)"], + [144, "s4", "(pointer float)"] + ], + + "update-mood-snow": [ + [93, "s5", "vector"], + [110, "s5", "vector"] + ], + + "ocean-trans-add-upload-table": [ + [44, "a0", "dma-packet"], + [46, "a0", "dma-packet"], + [51, "a0", "dma-packet"], + [[55, 59], "v1", "vector4w"], // TODO - very likely wrong, but it's something that has 4 int32's, + [[87, 228], "v1", "(inline-array vector)"], + [241, "a0", "dma-packet"], + [243, "a0", "dma-packet"], + [248, "a0", "dma-packet"] + ], + + "ocean-trans-add-upload-strip": [ + [39, "a0", "dma-packet"], + [41, "a0", "dma-packet"], + [46, "a0", "dma-packet"], + [[57, 61], "v1", "vector4w"], // TODO - very likely wrong, but it's something that has 4 int32's, + [[64, 147], "v1", "(inline-array vector)"], // TODO - very likely wrong, but it's something that has 4 int32's, + [166, "a0", "dma-packet"], + [168, "a0", "dma-packet"], + [173, "a0", "dma-packet"] + ], + + "ocean-trans-add-constants": [ + [7, "a1", "dma-packet"], + [9, "a1", "dma-packet"], + [14, "a1", "dma-packet"], + [[17, 46], "v1", "matrix"] + ], + + "draw-ocean-transition": [[255, "v1", "ocean-mid-mask"]], + + "do-target-shadow": [ + [46, "v1", "collide-shape-prim"] // `event-other` from collide-shape + ], + + "draw-string": [ + [[93, 96], "a0", "(pointer uint8)"], + [[206, 209], "t3", "font-work"], + [[210, 214], "t3", "font-work"], + [[217, 221], "t3", "font-work"], + [356, "t2", "(pointer uint64)"], + [726, "t2", "(pointer uint64)"], + [[68, 76], "t4", "(pointer uint32)"], + [[239, 247], "t3", "font-work"], + [[424, 878], "a1", "(pointer uint128)"], + [[616, 634], "t4", "font-work"] + ], + + "get-string-length": [[[29, 31], "a0", "(pointer uint8)"]], + + "print-game-text-scaled": [[[31, 32], "f3", "float"]], + + "print-game-text": [[[369, 372], "v1", "dma-packet"]], + + "debug-init-buffer": [ + [[11, 15], "t1", "dma-packet"], + [[21, 24], "t1", "gs-gif-tag"], + [28, "t1", "(pointer gs-zbuf)"], + [30, "t1", "(pointer gs-reg64)"], + [31, "t1", "(pointer gs-test)"], + [33, "t1", "(pointer gs-reg64)"], + [[39, 42], "a1", "dma-packet"] + ], + + "display-frame-finish": [ + [[30, 35], "a1", "dma-packet"], + [[40, 43], "a0", "dma-packet"], + [[63, 69], "a0", "dma-packet"], + [[78, 79], "a0", "dma-packet"], + [79, "a0", "(pointer uint64)"] + ], + "(event water-vol-idle water-anim)": [ + [6, "a0", "vector"] + ], + + "(method 22 water-anim)": [ + [25, "s3", "basic"] + ], + + "(method 25 water-anim)": [ + [25, "v0", "(pointer float)"], + ["_stack_", 16, "res-tag"] + ], + + "(method 22 rigid-body-platform)": [ + [26, "f0", "float"] + ], + + "rigid-body-platform-event-handler": [ + [28, "v1", "process-drawable"], + [34, "v1", "float"], + [83, "v1", "process-drawable"], + [119, "v1", "process-drawable"], + [125, "v1", "process-drawable"], + [158, "v1", "vector"], + [170, "v1", "vector"], + [184, "v1", "(pointer handle)"], + [213, "v1", "process-drawable"] + ], + + "(anon-function 9 plat-eco)": [ + [23, "v1", "(state symbol none)"], + [58, "v1", "(state symbol none)"] + ], + + "(method 7 rigid-body-platform)": [ + [5, "v1", "int"], + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 10 rigid-body)": [ + [50, "v1", "vector"] + ], + + "(method 22 mud)": [ + [35, "v0", "(pointer float)"] + ], + + "(method 11 twister)": [ + [7, "s4", "twist-joint"], + [13, "s4", "twist-joint"], + [26, "s4", "twist-joint"], + [28, "s4", "twist-joint"], + [36, "s4", "twist-joint"], + [40, "s4", "twist-joint"], + [47, "s4", "twist-joint"], + [55, "s4", "twist-joint"], + [70, "s4", "twist-joint"], + [82, "s4", "twist-joint"] + ], + + "(code teetertotter-launch)": [ + [11, "v1", "art-joint-anim"] + ], + + "(code teetertotter-bend)": [ + [10, "v1", "art-joint-anim"] + ], + + "misty-camera-view": [ + [25, "v1", "handle"] + ], + + "(method 11 silostep)": [ + [100, "v1", "art-joint-anim"] + ], + + "(enter plat-button-pressed sunken-elevator)": [ + [40, "v1", "village2cam"], + [73, "v1", "village2cam"] + ], + + "(trans plat-button-move-upward sunken-elevator)": [ + [49, "v1", "village2cam"] + ], + + "(trans plat-button-move-downward sunken-elevator)": [ + [13, "v0", "(state sunken-elevator)"] + ], + + "(method 27 sunken-elevator)": [ + [37, "v1", "art-joint-anim"] + ], + + "nav-enemy-set-base-collide-sphere-collide-with": [ + [19, "v1", "collide-shape-prim-group"], + [23, "s2", "collide-shape-prim"], + [32, "v1", "collide-shape-prim-sphere"], + [33, "s5", "collide-shape-prim-group"], + [37, "v1", "collide-shape-prim-sphere"], + [38, "s5", "collide-shape-prim-group"], + [42, "v1", "collide-shape-prim-sphere"], + [43, "s5", "collide-shape-prim-group"], + [50, "s4", "collide-shape-prim-group"], + [54, "s5", "collide-shape-prim"], + [55, "s5", "collide-shape-prim"] + ], + + "nav-enemy-jump-land-anim": [ + [39, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-victory nav-enemy)": [ + [27, "v1", "art-joint-anim"] + ], + "(code nav-enemy-notice nav-enemy)": [ + [27, "v1", "art-joint-anim"] + ], + "(code nav-enemy-patrol nav-enemy)": [ + [23, "v1", "art-joint-anim"], + [105, "v1", "art-joint-anim"], + [167, "v1", "art-joint-anim"], + [249, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-flee nav-enemy)": [ + [27, "v1", "art-joint-anim"], + [91, "v1", "art-joint-anim"] + ], + + "nav-enemy-set-hit-from-direction": [ + [19, "v1", "process-drawable"] + ], + "(method 45 nav-enemy)": [ + [14, "v1", "process-mask"] + ], + + "nav-enemy-default-event-handler": [ + [62, "a0", "vector"], + [82, "a0", "vector"] + ], + + "(method 7 nav-enemy)": [ + [5, "v1", "int"], + [10, "v1", "int"], + [19, "t9", "(function process-drawable int none)"] + ], + + "(enter nav-enemy-patrol nav-enemy)": [ + [8, "v1", "int"] + ], + + "(code nav-enemy-fuel-cell nav-enemy)": [ + [31, "v1", "int"] + ], + + "(method 16 level)": [ + [252, "v1", "(pointer uint128)"], + [253, "a1", "(pointer uint128)"], + [255, "a0", "(pointer uint128)"], + [208, "s2", "(pointer uint8)"], + [209, "s2", "(pointer uint8)"], + [210, "s1", "(pointer uint8)"], + [217, "s2", "(pointer uint8)"], + [218, "s1", "(pointer uint8)"], + [79, "a0", "(pointer uint128)"], + [80, "v1", "(pointer uint128)"], + [257, "v1", "(pointer uint16)"], + [222, "s2", "(pointer uint8)"], + [161, "s1", "(pointer uint128)"], + [140, "s1", "(pointer uint128)"] + ], + + "unpack-comp-huf": [ + [[21, 23], "t3", "(pointer uint16)"] + ], + + "(method 9 merc-fragment)": [ + [[13,161], "s3", "adgif-shader"] + ], + + "(method 9 merc-effect)": [ + [49, "s4", "pointer"], + [50, "s5", "pointer"], + [[0, 49], "s4", "merc-fragment"], + [[0, 50], "s5", "merc-fragment-control"] + ], + + "merc-vu1-initialize-chain": [ + [[19, 47], "s5", "merc-vu1-low-mem"], + [58, "gp", "(inline-array dma-packet)"], + [[12, 18], "gp", "(pointer vif-tag)"] + ], + + "merc-vu1-init-buffer":[ + [[27, 31], "a0", "dma-packet"], + [[37, 40], "a0", "gs-gif-tag"], + [44, "a0", "(pointer gs-test)"], + [46, "a0", "(pointer gs-reg64)"], + [[55, 58], "v1", "dma-packet"] + ], + + "(method 8 merc-ctrl)": [ + [46, "s2", "pointer"], // was merc-fragment-control + [[22, 45], "s2", "merc-fragment-control"], + [[89, 93], "a1", "merc-blend-ctrl"], + [103, "a1", "pointer"] + ], + + "merc-edge-stats": [ + [[33, 35], "v1", "merc-ctrl"] + ], + + "(method 9 screen-filter)": [ + [[23, 26], "v1", "dma-packet"] + ], + + "(method 48 mayor)": [ + [32, "a0", "int"] + ], + + "(method 43 mayor)": [ + [19, "v1", "float"] + ], + + "(post idle mayor)": [ + [4, "t9", "(function none)"] + ], + + "(method 43 bird-lady)": [ + [19, "v1", "float"] + ], + + "muse-to-idle": [ + [57, "v1", "muse"] + ], + + "(method 32 sculptor)": [ + [87, "v1", "muse"] + ], + + "(method 43 sculptor)": [ + [19, "v1", "float"] + ], + + "(code idle sculptor)": [ + [71, "v1", "art-joint-anim"], + [135, "v1", "art-joint-anim"], + [184, "v1", "float"], + [204, "v1", "art-joint-anim"], + [255, "v1", "float"], + [269, "v1", "art-joint-anim"], + [319, "v1", "art-joint-anim"], + [369, "v1", "art-joint-anim"], + [421, "v1", "art-joint-anim"], + [470, "v1", "float"], + [490, "v1", "art-joint-anim"], + [543, "v1", "art-joint-anim"], + [593, "v1", "art-joint-anim"], + [643, "v1", "art-joint-anim"], + [698, "v1", "float"], + [718, "v1", "art-joint-anim"], + [769, "v1", "float"], + [785, "v1", "art-joint-anim"], + [836, "v1", "art-joint-anim"], + [886, "v1", "art-joint-anim"], + [936, "v1", "art-joint-anim"] + ], + + "(method 43 geologist)": [ + [19, "v1", "float"] + ], + + "(anon-function 3 oracle)": [ + [11, "v1", "collide-shape"] + ], + + "(method 43 farmer)": [ + [19, "v1", "float"] + ], + + "(method 43 explorer)": [ + [19, "v1", "float"] + ], + + "(code idle explorer)": [ + [36, "v1", "float"], + [56, "v1", "art-joint-anim"], + [107, "v1", "float"], + [123, "v1", "art-joint-anim"], + [180, "v1", "float"], + [200, "v1", "float"], + [216, "v1", "art-joint-anim"], + [273, "v1", "float"], + [347, "v1", "float"], + [363, "v1", "art-joint-anim"], + [420, "v1", "float"], + [500, "v1", "art-joint-anim"], + [542, "v1", "art-joint-anim"], + [599, "v1", "float"], + [621, "v1", "art-joint-anim"], + [678, "v1", "float"], + [761, "v1", "float"], + [783, "v1", "art-joint-anim"] + ], + + "(method 32 assistant)": [ + [39, "v1", "float"] + ], + + "(method 43 assistant)": [ + [19, "v1", "float"] + ], + + "(code idle assistant)": [ + [35, "v1", "float"], + [114, "v1", "float"], + [130, "v1", "art-joint-anim"], + [207, "v1", "float"], + [376, "v1", "art-joint-anim"], + [415, "v1", "float"], + [431, "v1", "art-joint-anim"], + [482, "v1", "art-joint-anim"], + [530, "v1", "float"], + [549, "v1", "art-joint-anim"], + [602, "v1", "art-joint-anim"] + ], + + "check-drop-level-assistant": [ + [17, "v1", "float"] + ], + + "(method 32 sage)": [ + [76, "v1", "float"], + [262, "v1", "assistant"] + ], + + "(method 43 sage)": [ + [19, "v1", "float"] + ], + + "(code idle sage)": [ + [35, "v1", "float"], + [155, "v1", "art-joint-anim"] + ], + + "(method 43 gambler)": [ + [19, "v1", "float"] + ], + + "(code idle gambler)": [ + [93, "v1", "float"] + ], + + "(method 32 warrior)": [ + [76, "v1", "handle"] + ], + + "(method 43 warrior)": [ + [19, "v1", "float"] + ], + + "(method 32 minershort)": [ + [44, "v1", "float"], + [112, "v1", "float"] + ], + + "(method 43 minershort)": [ + [19, "v1", "float"] + ], + + "(method 33 progress)": [ + [30, "t9", "(function process function object object object object object)"], + [159, "t9", "(function process function object object object object object)"], + [288, "t9", "(function process function object object object object object)"], + [417, "t9", "(function process function object object object object object)"], + [546, "t9", "(function process function object object object object object)"], + [675, "t9", "(function process function object object object object object)"], + [35, "a0", "manipy"], + [38, "v1", "manipy"], + [50, "v1", "manipy"], + [98, "v1", "manipy"], + [164, "a0", "manipy"], + [167, "v1", "manipy"], + [179, "v1", "manipy"], + [227, "v1", "manipy"], + [293, "a0", "manipy"], + [296, "v1", "manipy"], + [308, "v1", "manipy"], + [356, "v1", "manipy"], + [422, "a0", "manipy"], + [425, "v1", "manipy"], + [437, "v1", "manipy"], + [485, "v1", "manipy"], + [551, "a0", "manipy"], + [554, "v1", "manipy"], + [566, "v1", "manipy"], + [614, "v1", "manipy"], + [680, "a0", "manipy"], + [683, "v1", "manipy"], + [695, "v1", "manipy"], + [743, "v1", "manipy"] + ], + + "fuel-cell-progress-hud-orbit-callback": [ + [[0, 199], "s5", "progress"], + [4, "f0", "float"] + ], + + "(method 7 progress)": [ + [16, "a2", "pointer"] + ], + + "(method 17 progress)": [ + [[466, 471], "v1", "dma-packet"], + [[154, 159], "v1", "dma-packet"] + ], + + "(post progress-debug)": [ + [[61, 66], "v1", "dma-packet"], + [[108, 113], "v1", "dma-packet"], + [[153, 158], "v1", "dma-packet"], + [[198, 203], "v1", "dma-packet"] + ], + + "(method 23 progress)": [ + [103, "v1", "float"] + ], + + "(post progress-normal)": [ + [416, "a0", "float"] + ], + + "(method 53 progress)": [ + [[0, 999], "gp", "progress-screen"] + ], + "(method 35 progress)": [[38, "s4", "game-text-id"]], + "(method 43 progress)": [[45, "s4", "game-text-id"]], + "(method 38 progress)": [[58, "a1", "game-text-id"]], + + "draw-percent-bar": [ + [[33, 38], "v1", "dma-packet"] + ], + + "(method 11 fact-info-target)": [ + [135, "v1", "target"], + [148, "v1", "collide-shape"], + [258, "v1", "target"], + [272, "v1", "target"], + [287, "v1", "target"], + [298, "v1", "target"] + ], + + "(method 7 process)": [ + [[120, 124], "a0", "basic"], + [[127, 130], "a0", "basic"], + [47, "v1", "connection"], + [57, "v1", "connection"], + [[47, 88], "v1", "connection"] + ], + + "(anon-function 7 game-info)": [ + [2, "v1", "collide-shape"] + ], + + "(method 24 game-info)": [ + [112, "s3", "pointer"], + [[113, 165], "a0", "game-save-tag"], + [[148, 166], "s2", "game-save-tag"], + [[148, 168], "s4", "game-save-tag"], + [[171, 222], "a0", "game-save-tag"], + [[234, 241], "a0", "game-save-tag"], + [[253, 276], "a0", "game-save-tag"], + [[283, 302], "a0", "game-save-tag"], + [[319, 325], "a1", "game-save-tag"], + [[342, 348], "a1", "game-save-tag"], + [[395, 468], "a0", "game-save-tag"], + [[480, 488], "a0", "game-save-tag"], + [[500, 506], "a0", "game-save-tag"], + [[521, 528], "a0", "game-save-tag"], + [[543, 650], "a0", "game-save-tag"], + // [329, "a0", "pointer"], + // [338, "a0", "pointer"], + // [[173, 230], "a0", "game-save-tag"], + [252, "a0", "(pointer int32)"], + [654, "a0", "pointer"] + ], + + "auto-save-post":[ + [138, "t9", "(function object string object none)"] + ], + + "target-compute-pole": [ + [12, "s4", "swingpole"], + [21, "s4", "swingpole"], + [24, "s4", "swingpole"], + [30, "s4", "swingpole"], + [33, "s4", "swingpole"], + [76, "s4", "swingpole"], + [85, "s4", "swingpole"], + [87, "s4", "swingpole"] + ], + + "(method 10 target)": [ + [[10, 13], "t9", "(function process-drawable none)"] + ], + + "draw-history": [ + [[99, 101], "v1", "int"] + ], + + "(method 9 attack-info)": [ + [82, "v1", "process-drawable"], + [87, "s3", "process-drawable"], + [89, "v1", "process-drawable"], + [118, "a0", "process-drawable"] + ], + + "ground-tween-update": [ + [16, "f1", "float"], + [20, "f2", "float"], + [34, "f0", "float"], + [38, "f1", "float"] + ], + + "(method 32 evilbro)": [ + [20, "v1", "handle"] + ], + + "(code idle evilbro)": [ + [27, "v1", "art-joint-anim"], + [84, "v1", "float"], + [171, "v1", "float"] + ], + + "all-texture-tweak-adjust": [ + [[35, 44], "s0", "adgif-shader"] + ], + + "build-instance-list": [ + [30, "v1", "drawable-tree-instance-shrub"], + [61, "v1", "drawable-tree-instance-tie"] + ], + + "(anon-function 82 default-menu)": [ + [[12, 25], "s4", "texture-id"], + [36, "s5", "adgif-shader"] + ], + + "(anon-function 79 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 78 default-menu)": [ + [[2, 13], "v1", "texture-id"], + [[20, 29], "a1", "adgif-shader"], + [34, "v1", "texture-id"], + [42, "v1", "adgif-shader"] + ], + + "(anon-function 77 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 76 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 75 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 74 default-menu)": [ + [[2, 13], "v1", "texture-id"], + [[20, 29], "a1", "adgif-shader"], + [34, "v1", "texture-id"], + [42, "v1", "adgif-shader"] + ], + + "(anon-function 73 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 72 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 71 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 70 default-menu)": [ + [[2, 13], "v1", "texture-id"], + [[20, 29], "a1", "adgif-shader"], + [34, "v1", "texture-id"], + [42, "v1", "adgif-shader"] + ], + + "(anon-function 69 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 68 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 67 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 66 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 65 default-menu)": [ + [[3, 13], "v1", "texture-id"], + [[20, 28], "a1", "adgif-shader"], + [33, "v1", "texture-id"], + [41, "v1", "adgif-shader"] + ], + + "(anon-function 64 default-menu)": [ + [[2, 13], "v1", "texture-id"], + [[20, 29], "a1", "adgif-shader"], + [34, "v1", "texture-id"], + [42, "v1", "adgif-shader"] + ], + + "(anon-function 63 default-menu)": [ + [[2, 13], "v1", "texture-id"], + [[20, 29], "a1", "adgif-shader"], + [34, "v1", "texture-id"], + [42, "v1", "adgif-shader"] + ], + + "build-continue-menu": [ + [4, "v1", "symbol"], + [[5, 15], "v1", "level-load-info"] + ], + + "(method 26 basebutton)": [ + [31, "v1", "art-joint-anim"] + ], + + "debug-menu-item-var-make-float": [ + [30, "t9", "(function int debug-menu-msg float float int)"] + ], + + "entity-remap-names": [ + [33, "a1", "int"], + [39, "a2", "int"] + ], + + "process-status-bits": [ + [[15, 59], "s3", "process-drawable"] + ], + + "(method 13 level-group)": [ + [[56, 61], "a0", "entity-actor"] + ], + + "(method 24 entity)": [ + [[39, 45], "a0", "entity-actor"] + ], + + "(method 23 level-group)": [ + [53, "a0", "entity-actor"], + [57, "v1", "entity-actor"], + [[29, 31], "v0", "(inline-array vector)"] + ], + + "(method 24 level-group)": [ + [51, "v1", "entity-actor"], + [[55, 57], "s1", "(inline-array vector)"] + ], + + "init-entity": [ + [31, "t9", "(function process function process entity none)"] + ], + + "(method 19 bsp-header)": [ + [[53, 63], "s2", "process"], + [74, "s2", "part-tracker"], + [[104, 122], "v1", "process-drawable"], + [[129, 148], "v1", "process-drawable"], + [[123, 127], "a0", "process-drawable"] + ], + + "(method 3 entity)": [ + [7, "t9", "(function entity entity)"] + ], + + "(method 3 entity-actor)": [ + [7, "t9", "(function entity-actor entity-actor)"] + ], + + "(method 14 level-group)": [ + [[54, 164], "s1", "process-drawable"], + [[319, 342], "s0", "process-drawable"], + [368, "v1", "(pointer process-drawable)"], + [[384, 494], "s5", "process-drawable"] + ], + + "(method 22 level-group)": [ + [[28, 30], "v0", "(inline-array vector)"] + ], + + "expand-vis-box-with-point": [ + [10, "v0", "(inline-array vector)"] + ], + + "(method 28 entity-ambient)": [ + [79, "v1", "int"] + ], + + "(method 27 entity-ambient)": [ + [[15, 250], "s5", "symbol"] + ], + + "time-of-day-update": [ + [[0, 999], "s6", "time-of-day-proc"] + ], + + "(anon-function 10 time-of-day)": [ + [[0, 999], "s6", "time-of-day-proc"] + ], + + "init-time-of-day": [ + [[0, 999], "s6", "time-of-day-proc"], + [[51, 54], "t9", "(function object object object)"] + ], + + "start-time-of-day": [ + [[20, 23], "t9", "(function process function object)"] + ], + + "cam-master-effect": [ + [[0, 999], "s6", "camera-master"] + ], + + "birth-func-vector-orient": [ + [[7, 24], "s3", "sprite-vec-data-2d"] + ], + + "process-drawable-burn-effect": [ + [28, "a0", "process-drawable"], + [105, "v1", "process-drawable"], + [49, "a0", "process-drawable"], + [64, "a0", "process-drawable"] + ], + + "process-drawable-random-point!": [ + [[28, 40], "s4", "collide-shape"] + ], + + "(anon-function 0 dark-eco-pool)": [ + [2, "v1", "state"] + ], + + "(method 25 dark-eco-pool)": [ + [22, "t9", "(function res-lump symbol symbol float structure (pointer res-tag) pointer object)"] + ], + + "(top-level-login beach-rocks)": [ + [78, "v1", "state"] + ], + + "(method 7 beach-rock)": [ + [5, "v1", "int"], + [10, "v1", "int"], + [19, "t9", "(function process-drawable int none)"] + ], + + "(method 10 beach-rock)": [ + [21, "t9", "(function process-drawable none)"] + ], + + "(code falling beach-rock)": [ + [138, "gp", "handle"], + [150, "gp", "handle"], + [[158, 165], "s5", "handle"] + ], + + "(method 11 beach-rock)": [ + [77, "v1", "int"] + ], + + "(anon-function 27 projectiles)": [ + [27, "s4", "collide-shape"], + [36, "s4", "collide-shape"] + ], + + "projectile-update-velocity-space-wars": [ + [60, "a0", "target"] + ], + + "projectile-init-by-other": [ + [70, "v1", "process-drawable"], + [77, "v1", "process-drawable"] + ], + + "(method 24 projectile-yellow)": [ + [[81, 999], "s5", "sound-rpc-set-param"], + [99, "gp", "process-drawable"], + [102, "gp", "process-drawable"] + ], + + "(method 28 projectile-yellow)": [ + [26, "a0", "target"], + [118, "a1", "target"] + ], + + "(method 27 projectile-blue)": [ + [51, "v1", "process-mask"], + [87, "v1", "process-drawable"] + ], + + "spawn-projectile-blue": [ + [69, "s2", "(function process function object object object object object object)"] + ], + + "(method 28 projectile-blue)": [ + [27, "v1", "process-drawable"] + ], + + "(method 27 projectile-yellow)": [ + [70, "v1", "process-mask"] + ], + + "manipy-init": [[143, "a0", "collide-shape"]], + + "forall-particles-with-key-runner": [ + [32, "s3", "(inline-array sparticle-cpuinfo)"], + [42, "s3", "(inline-array sparticle-cpuinfo)"] + ], + + "(trans plat-button-move-downward jungle-elevator)": [ + [11, "v0", "(state plat-button)"] + ], + + "(code plat-button-at-end jungle-elevator)": [ + [43, "t9", "(function none :behavior plat-button)"] + ], + + "(code bouncer-fire)": [ + [17, "v1", "art-joint-anim"] + ], + + "(method 39 hopper)": [ + [16, "t9", "(function nav-enemy none)"] + ], + + "(code nav-enemy-idle hopper)": [ + [16, "v1", "art-joint-anim"], + [70, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-patrol hopper)": [ + [34, "v1", "art-joint-anim"], + [105, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase hopper)": [ + [34, "v1", "art-joint-anim"], + [105, "v1", "art-joint-anim"] + ], + + "(method 39 junglefish)": [ + [12, "t9", "(function nav-enemy none)"] + ], + + "(code nav-enemy-patrol junglefish)": [ + [27, "v1", "art-joint-anim"], + [107, "v1", "art-joint-anim"], + [169, "v1", "art-joint-anim"], + [251, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-attack junglefish)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-victory junglefish)": [ + [14, "v1", "art-joint-anim"], + [64, "v1", "art-joint-anim"] + ], + + "(method 32 sequenceB)": [ + [177, "s3", "babak"], + [186, "s3", "babak"], + [236, "s3", "babak"], + [245, "s3", "babak"] + ], + + "(event play-anim sequenceB)": [ + [98, "gp", "evilbro"], + [107, "gp", "evilbro"], + [289, "gp", "evilsis"], + [298, "gp", "evilsis"] + ], + + "sequenceC-can-trans-hook": [ + [12, "v1", "process-taskable"] + ], + + "(anon-function 7 sidekick-human)": [ + [2, "v1", "process-taskable"], + [10, "v1", "process-taskable"] + ], + + "(code idle assistant-firecanyon)": [ + [33, "v1", "float"], + [55, "v1", "float"], + [139, "v1", "float"], + [157, "v1", "art-joint-anim"], + [213, "v1", "float"], + [295, "v1", "art-joint-anim"], + [343, "v1", "float"], + [424, "v1", "float"], + [446, "v1", "float"], + [530, "v1", "float"], + [548, "v1", "art-joint-anim"], + [604, "v1", "float"], + [686, "v1", "art-joint-anim"], + [734, "v1", "float"], + [756, "v1", "float"] + ], + + "(method 32 sage-bluehut)": [ + [44, "v1", "float"], + [63, "s5", "assistant-bluehut"] + ], + + "(method 47 sage-bluehut)": [ + [18, "gp", "assistant-bluehut"], + [23, "gp", "assistant-bluehut"] + ], + + "(method 43 sage-bluehut)": [ + [19, "v1", "float"] + ], + + "(code idle sage-bluehut)": [ + [34, "v1", "float"], + [137, "v1", "art-joint-anim"] + ], + + "(code idle flutflut-bluehut)": [ + [33, "v1", "float"], + [187, "v1", "art-joint-anim"], + [243, "v1", "float"], + [329, "v1", "art-joint-anim"] + ], + + "(method 39 sharkey)": [ + [71, "t9", "(function nav-enemy none)"] + ], + + "(code nav-enemy-patrol sharkey)": [ + [27, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-attack sharkey)": [ + [144, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase sharkey)": [ + [40, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stop-chase sharkey)": [ + [22, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-victory sharkey)": [ + [24, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase lurkercrab)": [ + [17, "v1", "art-joint-anim"], + [338, "v1", "art-joint-anim"], + [388, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-patrol lurkercrab)": [ + [21, "v1", "art-joint-anim"], + [77, "v1", "art-joint-anim"], + [191, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-notice lurkerpuppy)": [ + [24, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-victory lurkerpuppy)": [ + [20, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up lurkerpuppy)": [ + [18, "v1", "art-joint-anim"], + [76, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase lurkerpuppy)": [ + [25, "v1", "art-joint-anim"], + [111, "v1", "art-joint-anim"] + ], + + "static-screen-init-by-other": [ + [32, "s3", "sparticle-launch-group"], + [35, "s3", "sparticle-launch-group"] + ], + + "(code target-demo)": [ + [66, "v1", "handle"], + [69, "v1", "handle"], + [96, "v1", "handle"], + [99, "v1", "handle"], + [126, "v1", "handle"], + [163, "v1", "handle"], + [196, "v1", "handle"], + [229, "v1", "handle"], + [262, "v1", "handle"], + [293, "v1", "handle"], + [323, "v1", "handle"], + [357, "v1", "handle"], + [390, "v1", "handle"], + [423, "v1", "handle"], + [456, "v1", "handle"], + [487, "v1", "handle"], + [518, "v1", "handle"], + [548, "v1", "handle"], + [578, "v1", "handle"], + [129, "v1", "handle"], + [166, "v1", "handle"], + [199, "v1", "handle"], + [232, "v1", "handle"], + [261, "v1", "handle"], + [265, "v1", "handle"], + [296, "v1", "handle"], + [298, "v1", "handle"], + [326, "v1", "handle"], + [360, "v1", "handle"], + [393, "v1", "handle"], + [426, "v1", "handle"], + [459, "v1", "handle"], + [490, "v1", "handle"], + [521, "v1", "handle"], + [551, "v1", "handle"], + [581, "v1", "handle"] + ], + + "target-has-all-the-cells?": [ + [17, "v1", "float"] + ], + + "(code open final-door)": [ + [13, "v1", "art-joint-anim"], + [66, "v1", "art-joint-anim"] + ], + + "(code idle powercellalt)": [ + [8, "a1", "process-drawable"] + ], + + "(code target-final-door)": [ + [85, "gp", "handle"], + [105, "gp", "handle"], + [117, "gp", "handle"], + [133, "s1", "process-drawable"], + [200, "s1", "process-drawable"] + ], + + "(event open final-door)": [ + [4, "v1", "float"], + [6, "v1", "float"] + ], + + "(code nav-enemy-chase aphid)": [ + [42, "v1", "art-joint-anim"], + [168, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stare aphid)": [ + [34, "v1", "art-joint-anim"], + [160, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up aphid)": [ + [43, "v1", "art-joint-anim"], + [101, "v1", "art-joint-anim"] + ], + + "voicebox-track": [ + [4, "a0", "target"] + ], + + "(method 27 plat-button)": [ + [37, "v1", "art-joint-anim"] + ], + + "(method 11 plat-button)": [ + [17, "v1", "vector"] + ], + + "(trans plat-button-move-downward plat-button)": [ + [[92, 999], "gp", "sound-rpc-set-param"] + ], + + "(trans plat-button-move-upward plat-button)": [ + [[92, 999], "gp", "sound-rpc-set-param"] + ], + + "(anon-function 7 plat-eco)": [ + [22, "v1", "target"] + ], + + "drop-plat-set-fade": [ + [7, "v1", "process-drawable"] + ], + + "(code drop-plat-spawn)": [ + [3, "v1", "process-drawable"] + ], + + "(code drop-plat-rise)": [ + [10, "v1", "process-drawable"], + [24, "v1", "process-drawable"], + [45, "v1", "process-drawable"], + [85, "v1", "process-drawable"] + ], + + "(post drop-plat-rise)": [ + [12, "v1", "process-drawable"] + ], + + "(code drop-plat-drop)": [ + [2, "v1", "process-drawable"], + [85, "v1", "process-drawable"] + ], + + "(post drop-plat-drop)": [ + [12, "v1", "process-drawable"] + ], + + "drop-plat-init-by-other": [ + [22, "v1", "process-drawable"] + ], + + "citb-drop-plat-drop-children": [ + [[23,29], "a0", "drop-plat"] + ], + + "citb-drop-plat-spawn-children": [ + [98, "t9", "(function process function vector uint uint int)"] + ], + + "(method 11 citb-drop-plat)": [ + [24, "v1", "(pointer int32)"], + [26, "v1", "(pointer int32)"] + ], + + "(code plat-flip-idle)": [ + [62, "v1", "art-joint-anim"], + [91, "v1", "art-joint-anim"], + [132, "v1", "art-joint-anim"] + ], + + "(method 11 plat-flip)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + ["_stack_", 48, "res-tag"], + [147, "v1", "(pointer float)"], + [192, "v1", "(pointer float)"] + ], + + "(method 27 square-platform)": [ + [[26, 33], "a0", "water-vol"] + ], + + "(method 27 wedge-plat)": [ + [4, "v1", "process-drawable"], + [10, "f0", "float"], + [40, "f26", "float"], + [50, "f26", "float"] + ], + + "(method 27 wedge-plat-outer)": [ + [4, "v1", "process-drawable"], + [10, "f0", "float"], + [40, "f26", "float"], + [50, "f26", "float"] + ], + + "(code plunger-lurker-plunge)": [ + [[76, 299], "s5", "othercam"], + [80, "gp", "handle"], + [88, "gp", "handle"], + [109, "gp", "handle"], + [176, "gp", "handle"], + [151, "gp", "handle"], + [164, "gp", "handle"], + [188, "gp", "handle"] + ], + + "(code plunger-lurker-flee)": [ + [10, "v1", "art-joint-anim"], + [60, "v1", "art-joint-anim"] + ], + + "(code plunger-lurker-idle)": [ + [10, "v1", "art-joint-anim"] + ], + + "(code flying-lurker-idle)": [ + [92, "v1", "art-joint-anim"] + ], + + "(code flying-lurker-fly)": [ + [56, "v1", "art-joint-anim"], + [110, "v1", "float"] + ], + + "(code flying-lurker-start)": [ + [36, "v1", "float"] + ], + + "(method 18 collide-cache)": [ + [44, "v1", "collide-shape-prim-sphere"], + [16, "s3", "collide-cache-prim"], + [21, "s3", "collide-cache-prim"], + [25, "s3", "collide-cache-prim"], + [43, "s3", "collide-cache-prim"], + [62, "s3", "(inline-array collide-cache-prim)"] + ], + + "flying-lurker-play-intro": [ + [[106, 299], "s5", "othercam"], + [110, "gp", "handle"], + [118, "gp", "handle"], + [139, "gp", "handle"], + [160, "gp", "handle"], + [173, "gp", "handle"], + [207, "gp", "handle"], + [219, "gp", "handle"] + ], + + "clone-anim-once": [ + [[19, 73], "s5", "process-drawable"], + [50, "s4", "collide-shape"], + [109, "v1", "manipy"] + ], + + "level-hint-task-process": [ + ["_stack_", 16, "res-tag"] + ], + + "kill-current-level-hint": [ + [[13, 33], "s4", "level-hint"] + ], + + "level-hint-init-by-other": [ + [[54, 75], "a0", "string"], + [93, "a0", "string"] + ], + + "(method 17 drawable-inline-array-ambient)": [ + [1, "v1", "drawable-ambient"], + [4, "v1", "drawable-ambient"] + ], + + "ambient-type-sound-loop": [ + [5, "a0", "symbol"], + [[24, 35], "s3", "(pointer res-tag)"] + ], + + "ambient-type-light": [ + [38, "v1", "(inline-array vector)"], + [43, "v1", "(inline-array vector)"] + ], + "ambient-type-dark": [ + [38, "v1", "(inline-array vector)"], + [43, "v1", "(inline-array vector)"] + ], + "ambient-type-weather-off": [ + [38, "v1", "(inline-array vector)"], + [43, "v1", "(inline-array vector)"] + ], + + "level-hint-displayed?": [ + [[4, 7], "a0", "level-hint"], + [12, "a0", "level-hint"], + [14, "a0", "level-hint"] + ], + + "ambient-type-sound": [ + [21, "v1", "(pointer float)"], + [28, "v1", "(pointer float)"], + ["_stack_", 112, "res-tag"], + [57, "v0", "symbol"] + ], + "forall-particles-runner": [ + [[19,28], "s4", "sparticle-cpuinfo"], + [34, "s4", "pointer"], + [35, "s3", "pointer"] + ], + + "(method 2 sparticle-cpuinfo)": [ + [14, "f0", "float"] + ], + + "sp-kill-particle": [ + [7, "a1", "uint"], + [7, "v1", "uint"] + ], + + "sparticle-track-root":[ + [2, "v1", "process-drawable"] + ], + + "sparticle-track-root-prim":[ + [2, "v1", "process-drawable"], + [3, "v1", "collide-shape"] + ], + + "sp-orbiter":[ + [[73, 82], "v1", "sprite-vec-data-2d"] + ], + + "finish-background":[ + [249, "a0", "terrain-context"], + [297, "a0", "terrain-context"], + [307, "a0", "terrain-context"], + [355, "a0", "terrain-context"], + [365, "a0", "terrain-context"], + [451, "a0", "terrain-context"], + [461, "a0", "terrain-context"], + [32, "a0", "terrain-context"], + [180, "a0", "terrain-context"], + [188, "a0", "terrain-context"], + [199, "a0", "terrain-context"], + [238, "a0", "terrain-context"], + [288, "a0", "terrain-context"], + [346, "a0", "terrain-context"], + [404, "a0", "terrain-context"], + [442, "a0", "terrain-context"], + [531, "a0", "terrain-context"], + [534, "a0", "terrain-context"], + [[598, 603], "v1", "dma-packet"] + ], + + "(method 11 drawable-inline-array-node)":[ + [[1, 6], "v1", "drawable"] + ], + + "(method 12 drawable-inline-array-node)":[ + [[1, 6], "v1", "drawable"] + ], + + "(method 13 drawable-inline-array-node)":[ + [[1, 6], "v1", "drawable"] + ], + + "(method 17 drawable-inline-array-node)":[ + [[1, 6], "v1", "drawable"] + ], + + "(code nav-enemy-patrol babak)": [ + [25, "v1", "art-joint-anim"], + [79, "t9", "(function none)"] + ], + + "(code nav-enemy-chase babak)": [ + [55, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stare babak)": [ + [154, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up babak)": [ + [43, "v1", "art-joint-anim"], + [101, "v1", "art-joint-anim"] + ], + + "(method 33 process-taskable)": [ + [15, "s5", "spool-anim"] + ], + + "(method 51 process-taskable)": [ + [18, "v1", "spool-anim"] + ], + + "(method 35 process-taskable)": [ + [15, "s5", "spool-anim"] + ] + , + "(method 37 process-taskable)": [ + [15, "s5", "spool-anim"] + ], + + "process-taskable-play-anim-code": [ + [68, "gp", "spool-anim"], + [255, "gp", "art-joint-anim"] + ], + + "(event play-anim process-taskable)": [ + [19, "a1", "float"], + [24, "a0", "float"] + ], + + "(event be-clone process-taskable)": [ + [19, "a1", "float"], + [24, "a0", "float"] + ], + + "(event othercam-running)": [ + [23, "v1", "process-taskable"] + ], + + "(code nav-enemy-idle babak-with-cannon)": [ + [22, "v1", "art-joint-anim"] + ], + + "(code babak-run-to-cannon)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code babak-with-cannon-jump-onto-cannon)": [ + [118, "v1", "art-joint-anim"] + ], + + "(code babak-with-cannon-jump-off-cannon)": [ + [28, "v1", "art-joint-anim"] + ], + + "(trans nav-enemy-die babak-with-cannon)": [ + [40, "v0", "(state nav-enemy)"] + ], + + "(enter othercam-running)": [ + [50, "gp", "process-taskable"], + [53, "gp", "process-taskable"] + ], + + "(code othercam-running)": [ + [14, "s2", "process-taskable"], + [18, "s2", "process-taskable"], + [24, "s2", "process-taskable"], + [38, "s2", "process-taskable"], + [47, "s2", "process-taskable"] + ], + + "(method 10 gui-query)": [ + [[84, 88], "v1", "dma-packet"], + [[131, 135], "v1", "dma-packet"] + ], + + "(code yakow-idle)": [ + [46, "v1", "art-joint-anim"], + [102, "v1", "art-joint-anim"] + ], + + "(code yakow-graze)": [ + [73, "v1", "art-joint-anim"], + [131, "v1", "art-joint-anim"] + ], + + "(code yakow-graze-kicked)": [ + [10, "v1", "art-joint-anim"] + ], + + "(code yakow-kicked)": [ + [81, "v1", "art-joint-anim"] + ], + + "(method 7 fishermans-boat)": [ + [20, "t9", "(function rigid-body-platform int rigid-body-platform)"] + ], + + "(code muse-idle)": [ + [35, "v1", "art-joint-anim"], + [87, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase muse)": [ + [35, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-jump-land muse)": [ + [31, "v1", "art-joint-anim"] + ], + + "(code muse-caught)": [ + [50, "v0", "vector"], + [306, "gp", "handle"], + [321, "gp", "handle"] + ], + + "(code nav-enemy-idle bonelurker)": [ + [5, "t9", "(function none :behavior bonelurker)"] + ], + + "(code nav-enemy-patrol bonelurker)": [ + [7, "t9", "(function none :behavior bonelurker)"] + ], + + "(code nav-enemy-chase bonelurker)": [ + [60, "v1", "art-joint-anim"], + [108, "v1", "art-joint-anim"], + [171, "v1", "art-joint-anim"], + [220, "v1", "art-joint-anim"], + [277, "v1", "art-joint-anim"], + [334, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stare bonelurker)": [ + [130, "v1", "art-joint-anim"] + ], + + "(code bonelurker-stun)": [ + [29, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up bonelurker)": [ + [43, "v1", "art-joint-anim"], + [93, "v1", "art-joint-anim"], + [143, "v1", "art-joint-anim"], + [201, "v1", "art-joint-anim"] + ], + + "(method 32 assistant-bluehut)": [ + [104, "v1", "float"], + [162, "v1", "manipy"], + [255, "v1", "float"] + ], + + "(method 47 assistant-bluehut)": [ + [21, "s5", "sage-bluehut"], + [28, "s5", "sage-bluehut"], + [50, "s5", "sage-bluehut"], + [53, "s5", "sage-bluehut"] + ], + + "(method 43 assistant-bluehut)": [ + [19, "v1", "float"] + ], + + "check-drop-level-assistant-bluehut": [ + [17, "v1", "float"] + ], + + "(code idle assistant-bluehut)": [ + [31, "v1", "art-joint-anim"], + [83, "v1", "float"], + [104, "v1", "art-joint-anim"], + [161, "v1", "float"], + [261, "v1", "art-joint-anim"], + [317, "v1", "float"], + [554, "v1", "art-joint-anim"] + ], + + "assistant-levitator-blue-beam": [ + [15, "v1", "fireboulder"] + ], + + "(code idle assistant-levitator)": [ + [32, "v1", "art-joint-anim"], + [91, "v1", "float"], + [173, "v1", "art-joint-anim"], + [229, "v1", "float"], + [311, "v1", "art-joint-anim"] + ], + + "(event square-platform-lowered)": [ + [8, "a0", "square-platform-master"] + ], + + "(event square-platform-master-idle)": [ + [6, "a0", "square-platform-button"] + ], + + "(method 7 square-platform)": [ + [24, "t9", "(function baseplat int baseplat)"] + ], + + "(method 11 square-platform)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + [165, "v1", "(pointer float)"] + ], + + "(enter square-platform-master-activate)": [ + [51, "a0", "sunkencam"], + [84, "v1", "sunkencam"], + [119, "a0", "sunkencam"], + [152, "v1", "sunkencam"] + ], + + "(code qbert-plat-on-mimic)": [ + [13, "gp", "(pointer rigid-body-platform)"], + [21, "gp", "(pointer rigid-body-platform)"], + [27, "gp", "(pointer rigid-body-platform)"] + ], + + "(method 32 qbert-plat)": [ + [[4, 10], "a0", "qbert-plat-master"] + ], + + "(post rigid-body-platform-float qbert-plat)": [ + [3, "t9", "(function none :behavior qbert-plat)"] + ], + + "(method 23 qbert-plat)": [ + [9, "t9", "(function rigid-body-platform float none)"] + ], + + "(code keg-on-paddle)": [ + [5, "a0", "keg"], // i have learned that parent does not always equal the parent type! + [16, "v1", "process-drawable"] + ], + + "(code keg-paddle-to-path)": [ + [8, "v1", "process-drawable"], + [28, "v1", "process-drawable"] + ], + + "(code keg-on-path)": [ + [13, "v1", "keg-conveyor-paddle"], + [24, "v1", "keg-conveyor-paddle"], + [45, "v1", "keg-conveyor-paddle"], + [72, "v1", "keg-conveyor-paddle"], + [81, "v1", "keg-conveyor-paddle"] + ], + + "(code keg-in-chute)": [ + [2, "v1", "process-drawable"], + [9, "v1", "process-drawable"] + ], + + "keg-init-by-other": [ + [142, "v1", "process-drawable"] + ], + + "(method 7 keg-conveyor)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 7 swamp-bat)": [ + [26, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code swamp-bat-slave-die)": [ + [21, "v1", "swamp-bat"] + ], + + // these casts should not be required + "swamp-bat-check-slave-paths-match?": [ + [3, "a1", "swamp-bat-slave"], + [7, "a1", "swamp-bat-slave"] + ], + + "(method 39 swamp-rat)": [ + [37, "t9", "(function nav-enemy none)"] + ], + + "(code nav-enemy-patrol swamp-rat)": [ + [23, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stare swamp-rat)": [ + [26, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up swamp-rat)": [ + [14, "v1", "art-joint-anim"], + [72, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-attack swamp-rat)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code swamp-rat-spawn)": [ + [119, "v1", "art-joint-anim"] + ], + + "(code spiderwebs-bounce)": [ + [80, "v1", "art-joint-anim"] + ], + + "(method 39 baby-spider)": [ + [37, "t9", "(function nav-enemy none)"] + ], + + "(code baby-spider-hatching)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-attack baby-spider)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up baby-spider)": [ + [14, "v1", "art-joint-anim"], + [72, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-patrol baby-spider)": [ + [23, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-notice baby-spider)": [ + [24, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stare baby-spider)": [ + [26, "v1", "art-joint-anim"] + ], + + "(method 24 mother-spider-proj)": [ + [[11, 46], "s5", "sound-rpc-set-param"], + [30, "s4", "process-drawable"], + [33, "s4", "process-drawable"] + ], + + "(method 23 exit-chamber)": [ + [107, "a1", "fuel-cell"] + ], + + "(code exit-chamber-rise)": [ + [15, "v1", "fuel-cell"] + ], + + "(method 25 sunken-water)": [ + [121, "v1", "uint"], + [126, "v1", "uint"] + ], + + "(code sunkenfisha-idle)": [ + [10, "v1", "art-joint-anim"] + ], + + "(method 27 sunkenfisha)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + ["_stack_", 48, "res-tag"], + [40, "v0", "(pointer float)"], + [137, "v0", "(pointer float)"], + [174, "v0", "(pointer float)"] + ], + + "(method 43 assistant-villagec)": [ + [19, "v1", "float"] + ], + + "(code idle assistant-villagec)": [ + [32, "v1", "art-joint-anim"], + [89, "v1", "float"], + [176, "v1", "float"] + ], + + "(method 32 sage-villagec)": [ + [278, "v1", "float"] + ], + + "(method 43 sage-villagec)": [ + [19, "v1", "float"] + ], + + "(method 20 cave-trap)": [ + [77, "s2", "process-drawable"], + [95, "s2", "process-drawable"], + [181, "s3", "process-drawable"], + [221, "s3", "process-drawable"] + ], + + "(method 7 cave-trap)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 57 ice-cube)": [ + [16, "v1", "collide-shape-prim-sphere"] + ], + + "(code yeti-slave-appear-jump-up)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code yeti-slave-appear-land)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase yeti-slave)": [ + [55, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-stare yeti-slave)": [ + [154, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-give-up yeti-slave)": [ + [43, "v1", "art-joint-anim"], + [101, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-patrol yeti-slave)": [ + [25, "v1", "art-joint-anim"], + [86, "v1", "art-joint-anim"], + [165, "v1", "art-joint-anim"], + [238, "v1", "art-joint-anim"] + ], + + "(method 7 yeti-slave)": [ + [14, "t9", "(function nav-enemy int nav-enemy)"] + ], + + "(method 21 yeti)": [ + [5, "s5", "(pointer yeti-slave)"] + ], + + "(code idle assistant-lavatube-start)": [ + [32, "v1", "float"], + [118, "v1", "art-joint-anim"] + ], + + "check-drop-level-maincave-drip": [ + [17, "v1", "float"] + ], + + "snow-bird-bob-func": [ + [3, "v1", "process-drawable"] + ], + + "bird-bob-func": [ + [3, "v1", "process-drawable"] + ], + + "part-tracker-track-root": [ + [2, "v1", "process-drawable"] + ], + + "sparticle-track-root-money": [ + [5, "v1", "process-drawable"] + ], + + "eco-fadeout": [ + [2, "v1", "process-drawable"] + ], + + "eco-track-root-prim-fadeout": [ + [2, "v1", "process-drawable"], + [3, "a0", "collide-shape-moving"], + [11, "v1", "process-drawable"] + ], + + "check-drop-level-sagehut": [ + [18, "v1", "float"] + ], + + "check-drop-level-training-spout-rain": [ + [17, "v1", "float"] + ], + + "check-drop-level-sagehut2": [ + [18, "v1", "float"] + ], + + "tra-bird-bob-func": [ + [3, "v1", "process-drawable"] + ], + + "(anon-function 6 relocate)": [ + [3, "a0", "int"], + [8, "a0", "int"] + ], + + "(method 7 joint-control)": [ + [7, "v1", "(inline-array joint-control-channel)"] + ], + + "(method 20 hud-money-all)": [ + [36, "a0", "process-drawable"], + [39, "v1", "process-drawable"], + [50, "v1", "process-drawable"], + [93, "v1", "process-drawable"] + ], + + "(method 20 hud-money)": [ + [35, "a0", "process-drawable"], + [38, "v1", "process-drawable"], + [49, "v1", "process-drawable"], + [92, "v1", "process-drawable"] + ], + + "(method 20 hud-fuel-cell)": [ + [100, "a0", "process-drawable"], + [103, "v1", "process-drawable"], + [114, "v1", "process-drawable"], + [157, "v1", "process-drawable"] + ], + + "part-hud-eco-timer-01-func": [ + [11, "v1", "uint"], + [15, "v1", "uint"] + ], + + "part-hud-eco-timer-02-func": [ + [11, "v1", "uint"], + [15, "v1", "uint"] + ], + + "part-hud-eco-timer-03-func": [ + [11, "v1", "uint"], + [15, "v1", "uint"] + ], + + "hide-bottom-hud": [ + [22, "v1", "(pointer hud)"] + ], + + "disable-hud": [ + [22, "a0", "(pointer hud)"], + [37, "v1", "(pointer hud)"], + [57, "v1", "(pointer hud)"] + ], + + "enable-hud": [ + [20, "v1", "(pointer hud)"] + ], + + "hide-hud-quick": [ + [20, "v1", "(pointer hud)"] + ], + + "set-hud-aspect-ratio": [ + [17, "v1", "(pointer hud)"] + ], + + "hud-hidden?": [ + [14, "v1", "(pointer hud)"] + ], + + "bottom-hud-hidden?": [ + [16, "v1", "(pointer hud)"] + ], + + "show-hud": [ + [31, "v1", "(pointer hud)"] + ], + + "fuel-cell-hud-orbit-callback": [ + [12, "s3", "hud-fuel-cell"], + [20, "s3", "hud-fuel-cell"] + ], + + "(method 15 hud-pickups)": [ + [51, "v1", "dma-packet"], + [52, "v1", "dma-packet"] + ], + + "(method 15 hud-fuel-cell)": [ + [51, "v1", "dma-packet"], + [52, "v1", "dma-packet"] + ], + + "(method 15 hud-money)": [ + [[50, 53], "v1", "dma-packet"] + ], + + "(method 15 hud-money-all)": [ + [[125, 128], "v1", "dma-packet"] + ], + + "(method 15 hud-buzzers)": [ + [58, "v1", "dma-packet"], + [59, "v1", "dma-packet"] + ], + + "update-mood-lightning": [ + [[255, 259], "s5", "process-drawable"], + [[293, 297], "s5", "process-drawable"], + [[331, 336], "s5", "process-drawable"], + [235, "v0", "sound-rpc-set-param"], + [273, "v0", "sound-rpc-set-param"], + [311, "v0", "sound-rpc-set-param"] + ], + + "battlecontroller-default-event-handler": [ + [9, "a0", "process-drawable"] + ], + + "battlecontroller-update-spawners": [ + [19, "s4", "nav-enemy"], + [57, "s4", "nav-enemy"] + ], + + "battlecontroller-spawn-creature": [ + [33, "v0", "nav-enemy"], + [[53, 136], "gp", "(pointer nav-enemy)"] + ], + + "(method 7 battlecontroller)": [ + [29, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 10 battlecontroller)": [ + [13, "t9", "(function process-drawable none)"] + ], + + "(method 27 battlecontroller)": [ + ["_stack_", 16, "res-tag"], + [182, "v0", "(pointer int32)"] + ], + + "keg-bounce-set-particle-rotation-callback": [ + [2, "v1", "(pointer process-drawable)"] + ], + + "placeholder-do-not-add-below": [] +} diff --git a/decompiler/config/jak1_pal/var_names.jsonc b/decompiler/config/jak1_pal/var_names.jsonc new file mode 100644 index 0000000000..1d20b598b4 --- /dev/null +++ b/decompiler/config/jak1_pal/var_names.jsonc @@ -0,0 +1,3554 @@ +{ + "identity": { + "args": ["obj"] + }, + + "1/": { + "args": ["x"] + }, + + "+": { + "args": ["x", "y"] + }, + + "-": { + "args": ["x", "y"] + }, + + "*": { + "args": ["x", "y"] + }, + + "/": { + "args": ["x", "y"] + }, + + "ash": { + "args": ["value", "shift-amount"] + }, + + "mod": { + "args": ["x", "y"] + }, + + "rem": { + "args": ["x", "y"] + }, + + "abs": { + "args": ["x"] + }, + + "min": { + "args": ["x", "y"] + }, + + "max": { + "args": ["x", "y"] + }, + + "logior": { + "args": ["x", "y"] + }, + + "logand": { + "args": ["x", "y"] + }, + + "lognor": { + "args": ["x", "y"] + }, + + "logxor": { + "args": ["x", "y"] + }, + + "lognot": { + "args": ["x"] + }, + + "basic-type?": { + "args": ["obj", "parent-type"], + "vars": { "v1-0": "obj-type", "a0-1": "end-type" } + }, + + "type-type?": { + "args": ["child-type", "parent-type"], + "vars": { "v1-0": "end-type" } + }, + + "find-parent-method": { + "args": ["child-type", "method-id"], + "vars": { + "v0-0": "current-method", + "v1-2": "original-method", + "v1-5": "unused1" + } + }, + + "ref": { + "args": ["lst", "index"], + "vars": { "v1-0": "count" } + }, + + "(method 4 pair)": { + "vars": { "v0-0": "result", "v1-1": "iter" } + }, + + "last": { + "args": ["lst"], + "vars": { "v0-0": "iter" } + }, + "member": { + "args": ["obj", "lst"], + "vars": { "v1-0": "iter" } + }, + "nmember": { + "args": ["obj", "lst"] + }, + "assoc": { + "args": ["item", "alist"], + "vars": { "v1-0": "iter" } + }, + "assoce": { + "args": ["item", "alist"], + "vars": { "v1-0": "iter" } + }, + "nassoc": { + "args": ["item-name", "alist"], + "vars": { "a1-1": "key" } + }, + "nassoce": { + "args": ["item-name", "alist"], + "vars": { "s4-0": "key" } + }, + "append!": { + "args": ["front", "back"], + "vars": { "v1-1": "iter" } + }, + "delete!": { + "args": ["item", "lst"], + "vars": { "a2-0": "iter", "v1-1": "iter-prev" } + }, + "delete-car!": { + "args": ["item", "lst"], + "vars": { "a2-0": "iter", "v1-2": "iter-prev" } + }, + "insert-cons!": { + "args": ["kv", "alist"], + "vars": { "a3-0": "updated-list" } + }, + "sort": { + "args": ["lst", "compare-func"], + "vars": { + "s4-0": "unsorted-count", + "s3-0": "iter", + "s2-0": "first-elt", + "s1-0": "seoncd-elt", + "v1-1": "compare-result" + } + }, + "(method 0 inline-array-class)": { + "args": ["allocation", "type-to-make", "size"], + "vars": { "v0-0": "obj" } + }, + "(method 0 array)": { + "args": ["allocation", "type-to-make", "content-type", "len"], + "vars": { "v0-1": "obj" } + }, + + "(method 2 array)": { + "vars": { "v1-1": "content-type-sym" } + }, + + "(method 3 array)": { + "vars": { "v1-1": "content-type-sym" } + }, + + "mem-copy!": { + "args": ["dst", "src", "size"], + "vars": { "v0-0": "result", "v1-0": "i" } + }, + "qmem-copy<-!": { + "args": ["dst", "src", "size"], + "vars": { "v0-0": "result", "v1-1": "qwc", "a2-1": "value" } + }, + "qmem-copy->!": { + "args": ["dst", "src", "size"], + "vars": { + "v0-0": "result", + "v1-1": "qwc", + "a1-1": "src-ptr", + "a0-1": "dst-ptr", + "a2-3": "value" + } + }, + "mem-set32!": { + "args": ["dst", "size", "value"], + "vars": { "v0-0": "result", "v1-0": "i" } + }, + "mem-or!": { + "args": ["dst", "src", "size"], + "vars": { "v0-0": "result", "v1-0": "i" } + }, + "fact": { + "args": ["x"] + }, + "mem-print": { + "args": ["data", "word-count"], + "vars": { "s4-0": "current-qword" } + }, + "print-tree-bitmask": { + "args": ["bits", "count"], + "vars": { "s4-0": "i" } + }, + "valid?": { + "args": ["obj", "expected-type", "name", "allow-false", "print-dest"], + "vars": { "v1-1": "in-goal-mem" } + }, + + // GKERNEL + + "(method 0 cpu-thread)": { + "vars": { "v0-0": ["obj", "cpu-thread"] } + }, + + "inspect-process-heap": { + "vars": { "s5-0": ["obj", "pointer"] } + }, + + "(method 23 dead-pool-heap)": { + "args": ["this", "rec"] + }, + + "(method 0 dead-pool-heap)": { + "vars": { "v0-0": ["obj", "dead-pool-heap"] } + }, + + "seek": { + "args": ["x", "target", "diff"], + "vars": { "f2-0": "err" } + }, + + "lerp": { + "args": ["minimum", "maximum", "amount"] + }, + + "lerp-scale": { + "args": ["min-out", "max-out", "in", "min-in", "max-in"], + "vars": { "f0-1": "scale" } + }, + + "lerp-clamp": { + "args": ["minimum", "maximum", "amount"] + }, + + "rand-vu-int-range": { + "args": ["first", "second"], + "vars": { "f0-4": "float-in-range" } + }, + + "(method 0 bit-array)": { + "args": ["allocation", "type-to-make", "length"], + "vars": { "v0-0": "obj" } + }, + + "(method 12 bit-array)": { + "vars": { "v1-2": "idx" } + }, + + "box-vector-enside?": { + "args": ["box", "pt"] + }, + + "box-vector-inside?": { + "args": ["box", "pt"] + }, + + "string=": { + "args": ["str-a", "str-b"], + "vars": { "a2-0": "a-ptr", "v1-0": "b-ptr" } + }, + + "string-charp=": { + "args": ["str", "charp"], + "vars": { "v1-0": "str-ptr" } + }, + + "copyn-string<-charp": { + "args": ["str", "charp", "len"], + "vars": { "a3-0": "i", "v1-0": "str-ptr" } + }, + + "string<-charp": { + "args": ["str", "charp"], + "vars": { "v1-0": "str-ptr" } + }, + + "charp<-string": { + "args": ["charp", "str"], + "vars": { "v1-0": "str-ptr" } + }, + + "copy-charp<-charp": { + "args": ["dst", "src"] + }, + + "cat-string<-string": { + "args": ["a", "b"], + "vars": { "v1-0": "a-ptr", "a1-1": "b-ptr" } + }, + + "catn-string<-charp": { + "args": ["a", "b", "len"], + "vars": { "v1-0": "a-ptr", "a3-2": "i" } + }, + + "cat-string<-string_to_charp": { + "args": ["a", "b", "end-ptr"], + "vars": { "v1-0": "b-ptr", "v0-0": "a-ptr" } + }, + + "append-character-to-string": { + "args": ["str", "char"], + "vars": { "v1-0": "str-ptr" } + }, + + "charp-basename": { + "args": ["charp"], + "vars": { "v1-0": "ptr" } + }, + + "string?": { + "args": ["a", "b"], + "vars": { "s4-1": "len", "v1-4": "i" } + }, + "string<=?": { + "args": ["a", "b"], + "vars": { "s4-1": "len", "v1-4": "i" } + }, + "string>=?": { + "args": ["a", "b"], + "vars": { "s4-1": "len", "v1-4": "i" } + }, + "string-cat-to-last-char": { + "args": ["base-str", "append-str", "char"], + "vars": { "s4-0": "end-of-append", "v1-0": "location-of-char" } + }, + "string-suck-up!": { + "args": ["str", "location"], + "vars": { "v1-2": "str-ptr" } + }, + "string-strip-trailing-whitespace!": { + "args": ["str"], + "vars": { "v1-6": "ptr" } + }, + + "string-get-arg!!": { + "args": ["a-str", "arg"], + "vars": { "s4-0": "arg-word-start", "s4-1": "arg-end", "v1-3": "arg-start" } + }, + + "string->int": { + "args": ["str"], + "vars": { + "a0-1": "str-ptr", + "v0-0": "result", + "a0-2": "next-char-1", + "a0-3": "next-char-2" + } + }, + + "string-get-flag!!": { + "args": ["result", "in", "first-flag", "second-flag"] + }, + + "(method 0 state)": { + "args": [ + "allocation", + "type-to-make", + "name", + "code", + "trans", + "enter", + "exit", + "event" + ], + "vars": { "v0-0": "obj" } + }, + + "previous-brother": { + "args": ["proc"], + "vars": { "v1-0": "parent", "v1-2": "child" } + }, + + // Matrix + "matrix-identity": { + "args": ["mat"], + "vars": { "f0-0": "one" } + }, + + "matrix+!": { + "args": ["dst", "src1", "src2"], + "vars": { "v1-0": "i" } + }, + + "matrix-!": { + "args": ["dst", "src1", "src2"], + "vars": { "v1-0": "i" } + }, + + "matrix*!": { + "args": ["dst", "src1", "src2"] + }, + + "matrixp*!": { + "args": ["dst", "src1", "src2"], + "vars": { "s5-0": "temp-mat" } + }, + + "vector-matrix*!": { + "args": ["dst", "vec", "mat"] + }, + + "vector-rotate*!": { + "args": ["dst", "vec", "mat"] + }, + + "vector3s-matrix*!": { + "args": ["dst", "vec", "mat"], + "vars": { "s5-0": "temp-vec3" } + }, + + "vector3s-rotate*!": { + "args": ["dst", "vec", "mat"], + "vars": { "s5-0": "temp-vec3" } + }, + + "matrix-transpose!": { + "args": ["dst", "src"] + }, + + "matrix-inverse-of-rot-trans!": { + "args": ["dst", "src"] + }, + + "matrix-4x4-inverse!": { + "args": ["dst", "src"] + }, + + "matrix-translate!": { + "args": ["dst", "trans"] + }, + + "matrix-translate+!": { + "args": ["dst", "src", "trans"] + }, + + "matrix-scale!": { + "args": ["dst", "scale"] + }, + + "scale-matrix!": { + "args": ["dst", "scale", "src"] + }, + + "matrix-inv-scale!": { + "args": ["dst", "scale"] + }, + + "column-scale-matrix!": { + "args": ["dst", "scale", "src"] + }, + + "matrix-rotate-x!": { + "args": ["dst", "rot-deg"], + "vars": { "f30-0": "rot-sin", "f0-0": "rot-cos" } + }, + + "matrix-rotate-y!": { + "args": ["dst", "rot-deg"], + "vars": { "f30-0": "rot-sin", "f0-0": "rot-cos" } + }, + + "matrix-rotate-z!": { + "args": ["dst", "rot-deg"], + "vars": { "f30-0": "rot-sin", "f0-0": "rot-cos" } + }, + + "matrix-rotate-zyx!": { + "args": ["dst", "rot-xyz-deg"], + "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } + }, + + "matrix-rotate-xyz!": { + "args": ["dst", "rot-xyz-deg"], + "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } + }, + + "matrix-rotate-zxy!": { + "args": ["dst", "rot-xyz-deg"], + "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } + }, + + "matrix-rotate-yxz!": { + "args": ["dst", "rot-xyz-deg"], + "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } + }, + + "matrix-rotate-yzx!": { + "args": ["dst", "rot-xyz-deg"], + "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } + }, + + "matrix-rotate-yxy!": { + "args": ["dst", "rots-deg"], + "vars": { + "a2-0": "sincos-input", + "s5-0": "sin-vec", + "s4-0": "cos-vec", + "f1-1": "cos-y", + "f0-5": "sin-y", + "f2-0": "cos-x", + "f5-0": "sin-x", + "f3-0": "cos-z", + "f4-0": "sin-z" + } + }, + + "matrix-rotate-yx!": { + "args": ["dst", "rot-y-deg", "rot-x-deg"] + }, + + "matrix-axis-angle!": { + "args": ["dst", "axis", "angle-deg"] + }, + + "matrix-lerp!": { + "args": ["dst", "src1", "src2", "alpha"] + }, + + "matrix-3x3-determinant": { + "args": ["mat"] + }, + + "matrix-3x3-inverse!": { + "args": ["dst", "src"] + }, + + "matrix-3x3-inverse-transpose!": { + "args": ["dst", "src"] + }, + + "matrix3-inverse-transpose!": { + "args": ["dst", "src"] + }, + + "matrix-4x4-determinant": { + "args": ["dst", "src"] + }, + + "matrix-4x4-inverse-transpose!": { + "args": ["dst", "src"] + }, + + "matrix-y-angle": { + "args": ["mat"], + "vars": { "v1-0": "z-row" } + }, + + "(method 0 trs)": { + "vars": { "gp-0": "obj" } + }, + + "transform-matrix-calc!": { + "args": ["tf", "dst-mat"] + }, + + "transform-matrix-parent-calc!": { + "args": ["tf", "dst-mat", "inv-scale"] + }, + + "trs-matrix-calc!": { + "args": ["tf", "dst-mat"] + }, + + "quaternion-axis-angle!": { + "args": ["quat", "x", "y", "z", "angle"] + }, + + "quaternion-vector-angle!": { + "args": ["quat", "axis", "angle"] + }, + + "vector-flatten!": { + "args": ["dst", "src", "plane-normal"] + }, + + "vector-reflect!": { + "args": ["dst", "src", "plane-normal"] + }, + + "vector-reflect-flat!": { + "args": ["dst", "src", "plane-normal"] + }, + + "vector-reflect-true-flat!": { + "args": ["dst", "src", "plane-normal"] + }, + + "vector-reflect-flat-above!": { + "args": ["dst", "src", "plane-normal"] + }, + + "deg-seek": { + "args": ["in", "target", "max-diff"], + "vars": { + "v1-1": "in-int", + "a0-2": "target-int", + "a1-2": "max-diff-int", + "a2-1": "diff", + "a3-0": "abs-diff" + } + }, + + "deg-seek-smooth": { + "args": ["in", "target", "max-diff", "amount"], + "vars": { "f0-1": "step" } + }, + + "deg-lerp-clamp": { + "args": ["min-val", "max-val", "in"] + }, + + "sinerp-clamp": { + "args": ["minimum", "maximum", "amount"] + }, + + "coserp-clamp": { + "args": ["minimum", "maximum", "amount"] + }, + "coserp": { + "args": ["minimum", "maximum", "amount"] + }, + + "coserp180-clamp": { + "args": ["minimum", "maximum", "amount"] + }, + "coserp180": { + "args": ["minimum", "maximum", "amount"] + }, + "ease-in-out": { + "args": ["total", "progress"] + }, + "dma-send-to-spr": { + "args": ["sadr", "madr", "qwc", "sync"] + }, + "dma-send-to-spr-no-flush": { + "args": ["sadr", "madr", "qwc", "sync"] + }, + "dma-send-from-spr": { + "args": ["madr", "sadr", "qwc", "sync"] + }, + "dma-send-from-spr-no-flush": { + "args": ["madr", "sadr", "qwc", "sync"] + }, + "dump-vu1-range": { + "args": ["start", "total-count"] + }, + "ultimate-memcpy": { + "args": ["dst", "src", "size-bytes"], + "vars": { + "s2-0": "qwc-remaining", + "s1-0": "qwc-transferred-now", + "s4-0": "spr-to-bank", + "s3-0": "spr-from-bank" + } + }, + + "dma-buffer-add-vu-function": { + "args": ["dma-buf", "vu-func"], + "vars": { + "t1-1": "dma-buf-2", + "v1-0": "func-ptr", + "a3-0": "qlen", + "a1-1": "origin", + "t0-1": "qwc-now", + "t2-0": ["buf-ptr", "dma-packet"] + } + }, + + "dma-buffer-add-buckets": { + "args": ["dma-buf", "count"], + "vars": { "a2-0": "i", "v1-0": ["current-bucket", "dma-bucket"] } + }, + + "dma-buffer-patch-buckets": { + "args": ["bucket", "count"], + "vars": { "v1-1": "i" } + }, + + "dma-bucket-insert-tag": { + "args": ["base", "idx", "tag-start", "tag-end"], + "vars": { "v1-1": "bucket" } + }, + + "disasm-vif-details": { + "args": ["stream", "data", "kind", "count"], + "vars": { "s4-0": "count2", "s3-0": "data-ptr", "s2-0": "i" } + }, + + "disasm-vif-tag": { + "args": ["data", "words", "stream", "details"], + "vars": { + "gp-0": "byte-idx", + "v1-0": "cmd-template-idx", + "a0-12": "print-kind", + "s1-0": "first-tag", + "s0-0": "packet-size", + "t1-1": ["stcycl-imm", "vif-stcycl-imm"], + "sv-16": "cmd", + "sv-32": "data-ptr", + "sv-48": "data-idx", + "sv-64": "unpack-imm" + } + }, + + "disasm-dma-list": { + "args": ["data", "mode", "verbose", "stream", "expected-size"], + "vars": { + "sv-16": "addr", + "sv-32": "data-2", + "sv-48": "qwc", + "sv-64": "ra-1", + "sv-80": "ra-2", + "sv-96": "call-depth", + "sv-112": "current-tag", + "s2-0": "mode-2", + "s3-0": "verbose-2", + "gp-0": "stream-2", + "s1-0": "expected-size-2", + "s0-0": "end-condition", + "s4-0": "total-qwc", + "s5-0": "total-tags" + } + }, + + "cpad-invalid!": { + "args": ["pad"] + }, + + "(method 0 cpad-info)": { + "args": ["alloction", "type-to-make", "idx"], + "vars": { "s5-0": "obj" } + }, + + "analog-input": { + "args": ["in", "offset", "center-val", "max-val", "out-range"], + "vars": { + "f1-1": "offset-in", + "f0-3": "magnitude", + "v1-0": "max-magnitude" + } + }, + + "cpad-set-buzz!": { + "args": ["pad", "buzz-idx", "buzz-amount", "duration"] + }, + + "service-cpads": { + "vars": { + "gp-0": "pad-list", + "s5-0": "pad-idx", + "s4-0": "pad", + "s3-0": "buzz-idx", + "v1-29": "current-button0" + } + }, + + "buzz-stop!": { + "args": ["idx"] + }, + + "default-buffer-init": { + "args": ["buff"], + "vars": { + "v1-0": "buff-ptr", + "v1-1": "buff-ptr2", + "v1-3": "buff-ptr3", + "v1-4": "buff-ptr4", + "a1-4": ["packet", "dma-gif-packet"], + "a1-6": ["gif-tag", "gs-gif-tag"], + "a1-8": ["data", "(pointer uint64)"], + "a0-1": ["ret-packet", "dma-packet"], + "v1-2": "buff-ptr5" + } + }, + + "add-reg-gif-packet": { + "args": ["packet", "reg-idx", "reg-val"], + "vars": { "v1-0": "tag" } + }, + + "(method 9 font-context)": { + "args": ["obj", "mat"] + }, + "(method 10 font-context)": { + "args": ["obj", "x", "y"] + }, + "(method 11 font-context)": { + "args": ["obj", "z"] + }, + "(method 12 font-context)": { + "args": ["obj", "w"] + }, + "(method 13 font-context)": { + "args": ["obj", "width"] + }, + "(method 14 font-context)": { + "args": ["obj", "height"] + }, + "(method 15 font-context)": { + "args": ["obj", "proj"] + }, + "(method 16 font-context)": { + "args": ["obj", "color"] + }, + "(method 17 font-context)": { + "args": ["obj", "flags"] + }, + "(method 18 font-context)": { + "args": ["obj", "start-line"] + }, + "(method 19 font-context)": { + "args": ["obj", "scale"] + }, + "(method 0 font-context)": { + "args": [ + "allocation", + "type-to-make", + "mat", + "x", + "y", + "z", + "color", + "flags" + ], + "vars": { "v0-0": "obj" } + }, + "font-set-tex0": { + "args": ["ptr-tex0", "tex", "tex-addr", "psm", "clut-addr"] + }, + + "(method 0 display-frame)": { + "vars": { "gp-0": "obj" } + }, + + "(method 0 draw-context)": { + "args": [ + "allocation", + "type-to-make", + "org-x", + "org-y", + "width", + "height", + "color-0" + ] + }, + + "(method 0 display)": { + "args": ["allocation", "type-to-make", "psm", "w", "h", "ztest", "zpsm"], + "vars": { "gp-0": "obj" } + }, + + "(method 0 ripple-control)": { + "vars": { "v0-0": "obj" } + }, + + "vector-seek-2d-xz-smooth!": { + "args": ["vec", "target", "max-step", "alpha"], + "vars": { + "f0-1": "x-diff", + "f2-1": "z-diff", + "f1-5": "x-step", + "f0-3": "z-step", + "f2-4": "step-len" + } + }, + + "vector-seek-2d-yz-smooth!": { + "args": ["vec", "target", "max-step", "alpha"], + "vars": { + "f0-1": "y-diff", + "f2-1": "z-diff", + "f1-5": "y-step", + "f0-3": "z-step", + "f2-4": "step-len", + "f2-6": "step-scale" + } + }, + + "vector-seek-3d-smooth!": { + "args": ["vec", "target", "max-step", "alpha"], + "vars": { + "f0-1": "x-diff", + "f1-2": "y-diff", + "f3-1": "z-diff", + "f2-6": "x-step", + "f1-3": "y-step", + "f0-4": "z-step", + "f3-5": "step-len", + "f3-7": "step-scale" + } + }, + + "seek-with-smooth": { + "args": ["value", "target", "max-step", "alpha", "deadband"], + "vars": { "f0-1": "diff", "f0-2": "step", "f1-4": "min-step" } + }, + + "vector-v+!": { + "args": ["result", "position", "velocity"] + }, + + "vector-v*float+!": { + "args": ["result", "position", "velocity", "velocity-scale"] + }, + + "vector-v++!": { + "args": ["position", "velocity"] + }, + + "vector-v*float!": { + "args": ["delta-p", "velocity", "scale"] + }, + + "vector-v*float++!": { + "args": ["position", "velocity", "scale"] + }, + + "vector-lerp!": { + "args": ["out", "a", "b", "alpha"] + }, + + "vector-lerp-clamp!": { + "args": ["out", "a", "b", "alpha"] + }, + + "vector4-lerp!": { + "args": ["out", "a", "b", "alpha"] + }, + + "vector4-lerp-clamp!": { + "args": ["out", "a", "b", "alpha"] + }, + + "vector-deg-lerp-clamp!": { + "args": ["out", "min-val", "max-val", "in"] + }, + + "make-file-name": { + "args": ["kind", "name", "art-group-version"] + }, + + "make-vfile-name": { + "args": ["kind", "name"] + }, + + "file-info-correct-version?": { + "args": ["info", "kind", "version-override"], + "vars": { "s5-0": "expected-version", "s4-0": "kind-name" } + }, + + "(method 0 load-dir)": { + "args": ["allocation", "type-to-make", "length", "unk"], + "vars": { "s4-0": "obj" } + }, + + "(method 0 load-dir-art-group)": { + "args": ["allocation", "type-to-make", "length", "unk"], + "vars": { "v0-0": "obj" } + }, + + "(method 0 external-art-buffer)": { + "args": ["allocation", "type-to-make", "idx"], + "vars": { "v0-0": "obj" } + }, + + "(method 0 external-art-control)": { + "vars": { "gp-0": "obj", "s4-0": "buff-idx", "v1-9": "rec-idx" } + }, + + "(method 9 display)": { + "args": ["obj", "slowdown"], + "vars": { "gp-0": "obj", "s5-0": "ratio" } + }, + + "set-draw-env-offset": { + "args": ["env", "x", "y"] + }, + + "set-display-env": { + "args": ["env", "psm", "width", "height", "dx", "dy", "fbp"] + }, + + "set-draw-env": { + "args": ["env", "psm", "width", "height", "ztest", "zpsm", "fbp"] + }, + + "set-display": { + "args": ["disp", "psm", "w", "h", "ztest", "zpsm"] + }, + + "set-display2": { + "args": ["disp", "psm", "w", "h", "ztest", "zpsm"] + }, + + "(method 11 profile-bar)": { + "args": ["obj", "name", "color"], + "vars": { "s5-0": "new-frame" } + }, + + "(method 12 profile-bar)": { + "args": ["obj", "name", "color"], + "vars": { "v0-0": "new-frame" } + }, + + "gs-set-default-store-image": { + "args": [ + "packet", + "src-fbp", + "src-w", + "src-psm", + "ssax", + "ssay", + "rrw", + "rrh" + ] + }, + + "store-image": { + "args": ["oddeven"], + "vars": { + "s4-0": "buff0", + "s1-0": "buff1", + "s0-0": "packet", + "gp-0": "file", + "s3-0": "width", + "s2-0": "height", + "s0-1": "ptr-0", + "sv-16": "ptr-1", + "sv-32": "y-idx", + "sv-48": "y-idx-2" + } + }, + + "(method 0 draw-context)": { + "args": [ + "allocation", + "type-to-make", + "org-x", + "org-y", + "width", + "height", + "color-0" + ], + "vars": { "v0-0": "obj" } + }, + + "draw-context-set-xy": { + "args": ["ctxt", "x", "y"] + }, + + "texture-qwc": { + "args": ["w", "h", "tex-format"] + }, + + "gs-find-block": { + "args": ["bx", "by", "tex-format"] + }, + + "gs-largest-block": { + "args": ["tex-width", "tex-height", "tex-format"], + "vars": { + "s5-0": "block-width", + "v1-0": "block-height", + "a0-6": "real-width", + "a1-4": "real-height", + "s5-1": "width-blocks", + "s3-1": "height-blocks", + "s2-0": "x", + "s1-0": "y", + "s4-1": "max-block" + } + }, + + "gs-blocks-used": { + "args": ["tex-width", "tex-height", "tex-format"], + "vars": { + "s4-0": "page-width", + "v1-0": "page-height", + "a0-6": "real-width", + "a1-4": "real-height", + "s3-0": "width-blocks", + "s1-0": "height-blocks" + } + }, + + "dma-buffer-add-ref-texture": { + "args": ["buf", "data", "tex-w", "tex-h", "tex-format"], + "vars": { + "s5-0": "data-ptr", + "v1-0": "qwc", + "a0-4": "qwc-this-time", + "a1-3": "eop", + "a3-1": ["setup-dma", "dma-packet"], + "a3-3": ["setup-dif", "gs-gif-tag"], + "a2-4": ["data-dma", "dma-packet"] + } + }, + + "(method 15 texture-pool)": { + "args": ["obj", "word-count"] + }, + + "(method 22 texture-pool)": { + "args": ["obj", "tpage-id"] + }, + + "(method 10 texture-page)": { + "args": ["obj", "segment-count", "additional-size"] + }, + + "(method 16 texture-pool)": { + "args": ["obj", "segment", "size"] + }, + + "(method 9 texture-page)": { + "args": ["obj", "seg"] + }, + + "texture-page-default-allocate": { + "args": ["pool", "page", "seg", "tpage-id"], + "vars": { "s3-0": "seg-id" } + }, + + "texture-page-common-allocate": { + "args": ["pool", "page", "seg", "tpage-id"], + "vars": { "s4-0": "seg-id" } + }, + + "(method 12 texture-page)": { + "args": ["obj", "new-dest", "seg-id"], + "vars": { + "a3-4": "dst-block", + "t0-1": "tex-id", + "t1-6": "tex", + "t2-0": "num-mips", + "t3-4": "mip-id" + } + }, + + "texture-page-common-boot-allocate": { + "args": ["pool", "page", "heap", "tpage-id"], + "vars": { "s2-0": "tex-id" } + }, + + "upload-vram-data": { + "args": ["buf", "dest", "tex-data", "tex-h"], + "vars": { + "a3-2": "height-this-time", + "a0-1": ["dma", "dma-packet"], + "a0-3": ["gif", "gs-gif-tag"], + "a0-5": "gs-data" + } + }, + + "upload-vram-pages": { + "args": ["pool", "segment", "page", "mode", "bucket-idx"], + "vars": { + "s3-0": "dma-buf", + "sv-16": "tex-data", + "sv-20": "tex-dest-base-chunk", + "sv-24": "chunk-count", + "sv-48": "tex-id", + "s1-0": "upload-chunk-idx", + "v1-24": "current-dest-chunk", + "sv-32": "chunks-to-upload-count", + "sv-40": "first-chunk-idx-to-upload", + "gp-0": "total-upload-size", + "s4-0": "dma-start", + "a0-26": ["dma", "dma-packet"], + "a0-28": ["gif", "gs-gif-tag"], + "a0-30": "gif-data", + "v1-50": ["dma-end", "dma-packet"] + } + }, + + "update-vram-pages": { + "args": ["pool", "pool-segment", "page", "mode"], + "vars": { + "t1-0": "dest-block", + "t2-0": "sz", + "t0-1": "page-id", + "a1-4": "upload-chunks", + "a2-3": "chunk-idx", + "v1-2": "modified-chunk-count", + "a3-8": "vram-chunk" + } + }, + + "upload-vram-pages-pris": { + "args": ["pool", "segment", "page", "bucket-idx", "allow-cache-mask"], + "vars": { + "s3-0": "dma-buf", + "sv-16": "tex-data", + "sv-20": "tex-dest-base-chunk", + "sv-24": "chunk-count", + "sv-32": "chunks-to-upload-count", + "sv-40": "first-chunk-idx-to-upload", + "sv-48": "page-id", + "s0-0": "upload-chunk-idx", + "sv-52": "current-dest-chunk", + "sv-56": "need-tex", + "gp-0": "total-upload-size", + "a0-21": ["dma", "dma-packet"], + "a0-23": ["gif", "gs-gif-tag"], + "v1-55": ["dma-end", "dma-packet"] + } + }, + + "texture-page-near-allocate-0": { + "args": ["pool", "page", "heap", "mode"], + "vars": { + "s3-0": "common-dest", + "s2-0": "page-seg-idx", + "a1-5": "page-seg-2-size", + "v1-15": "after-seg-2-data", + "a0-8": "seg-2-data" + } + }, + + "texture-page-near-allocate-1": { + "args": ["pool", "page", "heap", "mode"], + "vars": { + "s4-0": "seg2-size", + "a1-1": "seg2-dest", + "s2-0": "common-dest", + "s1-0": "page-seg-idx" + } + }, + + "texture-page-level-allocate": { + "args": ["pool", "page", "heap", "mode"], + "vars": { + "s2-0": "common-id", + "v1-6": "level-idx" + } + }, + + "texture-page-dir-inspect": { + "args": ["dir", "mode"], + "vars": { + "v1-0": "pool", + "s4-0": "level-idx", + "a1-3": "lev", + "s4-1": "entry-idx", + "s3-0": "entry-page", + "s2-0": "entry-link", + "s1-0": "entry-list-length" + } + }, + + "texture-page-size-check": { + "args": ["pool", "level", "hide-prints"], + "vars": { + "gp-0": "oversize", + "s3-0": "tfrag-page", + "v1-0": "tfrag-mip0-size", + "v1-3": "pris-page", + "v1-5": "shrub-page", + "v1-7": "alpha-page", + "v1-9": "water-page" + } + }, + + "(method 13 texture-pool)": { + "args": ["obj", "level", "max-page-kind", "id-array"], + "vars": { + "v1-0": "page-idx", + "v1-5": "tfrag-dir-entry", + "v1-7": "pris-dir-entry", + "v1-9": "shrub-dir-entry", + "v1-11": "alpha-dir-entry", + "v1-13": "water-dir-entry", + "a2-7": "overflow-bits" + } + }, + + "(method 14 texture-pool)": { + "args": ["obj", "level", "tex-page-kind"], + "vars": { + "s3-0": "tfrag-page", + "s2-0": "tfrag-bucket", + "f30-0": "distance", + "a2-4": "pris-page", + "a3-3": "pris-bucket", + "a2-5": "shrub-page", + "f0-5": "shrub-closest", + "t0-4": "shrub-bucket", + "a3-4": "shrub-mode", + "s3-1": "alpha-page", + "f0-6": "alpha-closest", + "s2-1": "alpha-bucket", + "s1-3": "alpha-mode", + "s0-0": "alpha-dest-chunk", + "a2-7": "water-page", + "a3-6": "water-bucket" + } + }, + + "(method 13 texture-page)": { + "args": ["obj", "dma-buff", "mode"], + "vars": { + "sv-16": "total-size", + "v1-7": "start-segment", + "s5-0": "chunk-count", + "s4-0": "current-dest", + "s3-0": "current-data", + "a3-1": "chunks-now", + "a0-1": ["pkt", "dma-packet"], + "a0-3": ["gs-tag", "gs-gif-tag"], + "a0-5": "gs-reg-data" + } + }, + + "texture-relocate": { + "args": ["dma-buff", "tex", "dest-loc", "dest-fmt", "clut-dst"], + "vars": { + "v1-0": "mip-level", + "t1-1": "mip-w", + "t2-3": "mip-h", + "t4-0": ["dma-pkt", "dma-packet"], + "t4-2": ["gs-pkt", "gs-gif-tag"] + } + }, + + "(method 11 texture-pool)": { + "vars": { + "s3-0": "font-clut", + "sv-16": "heap-before-font-tex", + "sv-20": "clut-dest-addr", + "s4-0": "dma-buff", + "s5-0": "main-font-tx", + "s2-0": "font-tx-1", + "s1-0": "font-tx-1-dest", + "s0-0": "font-tx-1-fmt", + "s2-1": "font-tx-0", + "s1-1": "font-tx-0-dest", + "s0-1": "font-tx-0-fmt", + "s2-2": "font-tx-3", + "s1-2": "font-tx-3-dest", + "s0-2": "font-tx-3-fmt", + "s2-3": "font-tx-2", + "s1-3": "font-tx-2-dest", + "s0-3": "font-tx-2-fmt" + } + }, + + "link-texture-by-id": { + "vars": { + "s4-0": "dir-entry" + } + }, + + "(method 9 texture-page-dir)": { + "args": ["obj", "heap"], + "vars": { + "v1-0": "mem-start", + "a1-1": "mem-end", + "a2-0": "entry-idx", + "t1-0": "entry", + "t0-0": "tex-page", + "a3-4": "link-arr", + "t0-3": "tex-count", + "t1-4": "tex-idx", + "t2-0": "link-slot", + "t3-2": ["shader", "adgif-shader"], + "t4-1": "dist-past-end" + } + }, + + "display-loop": { + "vars": { + "s3-0": "debug-buf", + "gp-0": "disp", + "s5-2": "debug-txt-buf" + } + }, + + "adgif-shader-login": { + "args": "shader", + "vars": { + "s5-0": "tex" + } + }, + + "adgif-shader-login-fast": { + "args": ["shader"], + "vars": { + "v1-4": "tex-id", + "a0-9": "dir-entry", + "s5-0": "tex" + } + }, + + "texture-page-login": { + "args": ["id", "alloc-func", "heap"], + "vars": { + "s5-0": "dir-entry", + "s4-0": "old-alloc-func", + "s3-0": "file-name" + } + }, + + "(method 9 __assert-info-private-struct)": { + "args": ["obj", "filename", "line-num", "column-num"] + }, + + "__assert": { + "args": ["exp", "msg"] + }, + + "__assert-min-max-range-float": { + "args": ["exp", "minimum", "maximum", "msg-exp", "msg-min", "msg-max"] + }, + + "__assert-min-max-range-int": { + "args": ["exp", "minimum", "maximum", "msg-exp", "msg-min", "msg-max"] + }, + + "__assert-zero-lim-range-int": { + "args": ["exp", "maximum", "msg-exp", "msg-max"] + }, + + "fog-corrector-setup": { + "args": ["corrector", "math-cam"] + }, + + "update-math-camera": { + "args": ["math-cam", "video-mode", "aspect"], + "vars": { + "f0-4": "temp1", + "v1-1": "elim1", + "f0-6": "temp2", + "v1-2": "elim2", + "f1-3": "x-rat", + "f0-7": "y-rat", + "v1-3": "cull-info", + "f2-2": "unused-x-thing", + "f2-5": "y-thing", + "f3-11": "one-plus-2x-squared", + "f3-14": "one-plus-2y-squared", + "f2-9": "temp3", + "a0-2": "elim3", + "f2-11": "near-x", + "f1-5": "near-y", + "f0-10": "near-corner-dist-sqr", + "f2-8": "unused-thing-2", + "f1-8": "near-z", + "f0-12": "temp4", + "a0-6": "elim4", + "f1-12": "dx-rat-2", + "f0-14": "d-temp-2", + "f2-13": "dx-rat-times-4", + "f3-21": "d-temp-3", + "f4-21": "inverse-x-len", + "f5-11": "inverse-x-len-2", + "f0-16": "temp5", + "a0-7": "elim5", + "f1-15": "dy-rat", + "f0-18": "d-temp-4", + "f2-15": "dy-rat-times-4", + "f3-22": "d-temp-5", + "f4-26": "inverse-y-len", + "f5-16": "inverse-y-len-2", + "f0-20": "temp6", + "v1-4": "elim6", + "v0-2": "cam-mat", + "f2-16": "fog-constant-1", + "f3-23": "fog-constant-2", + "f0-12": "fog-contsant-3", + "f0-24": "fog-at-near-plane", + "f1-22": "fog-factor-2", + "f4-35": "cam-fov-mult", + "f5-19": "corrected-fog", + "f5-23": "hvdf-x", + "f6-29": "hvdf-y", + "f2-18": "hvdf-z", + "f4-40": "hvdf-w", + "f2-19": "persp-xx", + "f3-36": "persp-yy", + "f1-32": "persp-x", + "v1-11": "sprite-row-0", + "v1-12": "sprite-row-1", + "v1-13": "sprite-row-2", + "v1-14": "sprite-row-3", + "f1-37": "temp7", + "v1-16": "elim7", + "v1-24": "pfog", + "a0-12": "vis-gif-0", + "a0-13": "vis-gif-1", + "a0-14": "vis-gif-1-again", + "a0-15": "vis-gif-1-again-again" + } + }, + + "move-target-from-pad": { + "args": ["trans", "pad-idx"], + "vars": { + "s4-0": "local-trans", + "a0-5": "inv-cam-rot", + "s3-0": "cam-rot-mat" + } + }, + + "(method 13 profile-bar)": { + "args": ["obj", "buf", "bar-pos"], + "vars": { + "v1-1": "height", + "a1-4": "block-idx", + "a2-1": "block-count", + "t0-0": "left", + "v1-3": "end-time", + "s4-0": "worst-time-cache", + "a3-1": "screen-y", + "t2-0": ["direct-tag", "dma-packet"], + "t2-2": ["start-gif-tag", "gs-gif-tag"], + "t1-4": "block" + } + }, + + "draw-sprite2d-xy": { + "args": ["buf", "x", "y", "w", "h", "color"], + "vars": { + "t2-1": "context", + "a0-3": "draw-x", + "a1-9": "draw-y", + "t1-2": "draw-w", + "t0-2": "draw-h", + "a3-2": ["dma", "dma-packet"], + "a3-4": ["gif", "gs-gif-tag"], + "v1-10": ["end-dma", "dma-packet"], + "a0-13": "total-qwc", + "a3-6": "gif-buf" + } + }, + + "draw-quad2d": { + "args": ["buf", "context"], + "vars": { + "a2-1": "draw-x", + "a3-7": "draw-y", + "t3-0": "draw-w", + "t2-0": "draw-h", + "v1-8": "end-dma", + "t1-0": ["dma", "dma-packet"], + "t1-2": ["gif", "gs-gif-tag"], + "t1-4": "gif-buf", + "a1-11": "total-qwc" + } + }, + + "set-display-gs-state": { + "args": ["dma-buf", "fbp", "scx", "scy", "fb-msk", "psm"], + "vars": { + "t3-0": ["dma", "dma-packet"], + "t3-2": ["gif", "gs-gif-tag"], + "t3-4": "gif-buf", + "t2-0": "fbw" + } + }, + + "set-display-gs-state-offset": { + "args": [ + "dma-buf", + "fbp", + "width", + "height", + "fb-msk", + "psm", + "off-x", + "off-y" + ], + "vars": { + "t4-0": "fbw", + "t5-0": ["dma", "dma-packet"], + "t5-2": ["gif", "gs-gif-tag"], + "t5-4": ["gif-data", "(pointer uint64)"] + } + }, + + "reset-display-gs-state": { + "args": ["disp", "dma-buf", "oddeven"], + "vars": { + "a3-0": "onscreen", + "v1-0": "hoff", + "a2-6": "fbp", + "t0-0": ["dma", "dma-packet"], + "t0-2": ["gif", "gs-gif-tag"], + "a3-3": ["gif-data", "(pointer uint64)"] + } + }, + + "(method 0 engine)": { + "args": ["allocation", "type-to-make", "name", "length"], + "vars": { "v0-0": "obj", "v1-11": "idx-to-link", "a0-1": "end-idx" } + }, + + "(method 10 engine)": { + "args": ["obj", "f"], + "vars": { "a0-1": "current", "s4-0": "next" } + }, + + "(method 11 engine)": { + "args": ["obj", "f"], + "vars": { "s4-0": "iter" } + }, + + "(method 12 engine)": { + "vars": { "s4-0": ["ct", "connection"] } + }, + + "(method 13 engine)": { + "vars": { "s4-0": ["ct", "connection"], "v1-2": "result" } + }, + + "(method 19 engine)": { + "args": ["obj", "p1-value"], + "vars": { "a0-1": "current", "s4-0": "next" } + }, + + "(method 20 engine)": { + "args": ["obj", "p2-value"], + "vars": { "a0-1": "current", "s4-0": "next" } + }, + + "connection-process-apply": { + "args": ["proc", "func"], + "vars": { "s5-0": "iter" } + }, + + "(method 15 engine)": { + "args": ["obj", "proc", "func", "p1", "p2", "p3"], + "vars": { "v1-0": "con" } + }, + + "surface-interp!": { + "args": ["dst", "src0", "src1", "amount"] + }, + + "surface-mult!": { + "args": ["dst", "src0", "src1"] + }, + + "(method 0 collide-shape-prim)": { + "args": ["allocation", "type-to-make", "cshape", "prim-id", "size-bytes"] + }, + + "(method 0 collide-shape-prim-sphere)": { + "args": ["allocation", "type-to-make", "cshape", "prim-id"], + "vars": { "v0-0": ["obj", "collide-shape-prim-sphere"] } + }, + "(method 0 collide-shape-prim-mesh)": { + "args": ["allocation", "type-to-make", "cshape", "mesh-id", "prim-id"], + "vars": { "v0-0": ["obj", "collide-shape-prim-mesh"] } + }, + "(method 0 collide-shape-prim-group)": { + "args": ["allocation", "type-to-make", "cshape", "elt-count", "prim-id"], + "vars": { "v0-0": ["obj", "collide-shape-prim-group"] } + }, + "(method 0 collide-shape)": { + "args": [ + "allocation", + "type-to-make", + "proc", + "collide-list-kind", + "prim-id" + ], + "vars": { "s5-0": "obj" } + }, + "(method 0 collide-sticky-rider-group)": { + "vars": { "v0-0": "obj" } + }, + "(method 11 touching-prims-entry-pool)": { + "vars": { "a1-0": "current", "v1-0": "prev", "a2-0": "next" } + }, + "(method 0 touching-list)": { + "vars": { "v0-0": ["obj", "touching-list"] } + }, + + "cspace-by-name-no-fail": { + "vars": { "v0-0": ["result", "cspace"] } + }, + + "num-func-loop!": { + "args": ["chan", "inc"], + "vars": { "f0-1": "duration", "f1-2": "after-inc", "f0-3": "wrapped" } + }, + + "shrubbery-login-post-texture": { + "args": ["obj"], + "vars": { + "v1-1": "shader-count", + "a1-1": ["dst", "qword"], + "a2-5": ["tex-dst", "qword"], + "a3-0": ["src", "qword"], + "a2-6": ["text-dst2", "qword"], + "a3-1": ["src-2", "qword"], + "a3-2": ["src-3", "qword"] + } + }, + + "(method 20 actor-link-info)": { + "args": ["obj", "message"], + "vars": { + "s4-0": "iter", + "s5-0": "result", + "a0-1": "proc", + "a1-1": "msg-block" + } + }, + + // LEVEL + "lookup-level-info": { + "args": ["name"], + "vars": { + "a1-1": ["info", "level-load-info"], + "v1-0": "rest", + "a1-0": "current-sym" + } + }, + + "(method 21 level-group)": { + "args": ["obj", "name", "cmd-idx"], + "vars": { "v1-1": "cmd-lst" } + }, + + // SHADOW-CPU-H + "(method 0 shadow-control)": { + "args": [ + "allocation", + "type-to-make", + "bottom-offset", + "top-offset", + "dir", + "center", + "fade" + ], + "vars": { "v0-0": "obj" } + }, + + // RES + "(method 0 res-lump)": { + "args": ["allocation", "type-to-make", "data-count", "data-size"], + "vars": { "v0-0": "obj" } + }, + "(method 20 res-lump)": { + "args": ["obj", "time", "result", "buf"], + "vars": { + "t0-2": "tag-lo", + "t1-2": "tag-hi", + "v1-6": "elt-count", + "f0-2": "interp", + "a1-6": "src-lo", + "a2-13": "src-hi" + } + }, + "(method 3 res-lump)": { + "vars": { "s5-0": "i" } + }, + "(method 9 res-lump)": { + "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], + "vars": { "s3-0": "tag-pair" } + }, + "(method 10 res-lump)": { + "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], + "vars": { "s3-0": "tag-pair", "v1-4": "tag" } + }, + "(method 11 res-lump)": { + "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], + "vars": { + "a2-1": "tag-pair", + "s1-0": "tag", + "s0-0": "tag-type", + "gp-1": "data" + } + }, + "(method 12 res-lump)": { + "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], + "vars": { + "a2-1": "tag-pair", + "s1-0": "tag", + "s0-0": "tag-type", + "gp-1": "data" + } + }, + "(method 16 res-lump)": { + "vars": { + "v1-0": "tags-sorted", + "a1-0": "i", + "a2-1": "tag-stop", + "a3-2": "tag1", + "t0-3": "tag2", + "t1-6": "tag-name1", + "t2-6": "tag-name2" + } + }, + "(method 15 res-lump)": { + "vars": { + "s5-0": ["tag-pair", "res-tag-pair"], + "s2-0": "existing-tag", + "s3-0": "data-size", + "v1-25": "resource-mem" + } + }, + + "(method 17 res-lump)": { + "vars": { + "a0-2": "new-tag", + "s4-0": "tag-mem" + } + }, + + "(method 8 res-lump)": { + "args": ["obj", "block", "flags"], + "vars": { + "s3-0": "mem-use-id", + "s2-0": "mem-use-name", + "v1-22": "obj-size", + "s1-0": "tag-idx", + "s0-0": "tag-data" + } + }, + + // FACT-H + "(method 0 fact-info-target)": { + "vars": { "gp-0": "obj" } + }, + "(method 0 fact-info-enemy)": { + "vars": { + "gp-0": "obj", + "s5-0": "entity" + } + }, + + "(method 0 fact-info)": { + "args": ["allocation", "type-to-make", "proc", "pkup-type", "pkup-amount"], + "vars": { + "gp-0": ["obj", "fact-info"], + "s5-0": "ent", + "sv-16": "tag" + } + }, + + "(method 0 align-control)": { + "vars": { "v0-0": ["obj", "align-control"] } + }, + + "str-load": { + "args": ["name", "chunk-id", "address", "len"], + "vars": { "s2-0": ["cmd", "load-chunk-msg"] } + }, + + "str-load-status": { + "args": ["length-out"], + "vars": { "v1-7": "response" } + }, + + "str-play-async": { + "args": ["name", "addr"], + "vars": { "s4-0": "cmd" } + }, + + "str-play-stop": { + "args": ["name"], + "vars": { "s5-0": "cmd" } + }, + + "str-play-queue": { + "args": ["name"], + "vars": { "s5-0": "cmd" } + }, + + "str-ambient-play": { + "args": ["name"], + "vars": { "s5-0": "cmd" } + }, + + "str-ambient-stop": { + "args": ["name"], + "vars": { "s5-0": "cmd" } + }, + + "string->sound-name": { + "args": ["str"], + "vars": { + "v1-0": "snd-name", + "a1-0": ["out-ptr", "(pointer uint8)"], + "a2-0": "in-ptr" + } + }, + "dgo-load-begin": { + "args": ["name", "buffer1", "buffer2", "current-heap"], + "vars": { "s2-0": "cmd" } + }, + + "dgo-load-get-next": { + "args": ["last-object"], + "vars": { "gp-0": ["load-location", "pointer"], "v1-5": "response" } + }, + + "dgo-load-continue": { + "args": ["current-heap"], + "vars": { "gp-0": "cmd" } + }, + "dgo-load-cancel": { + "vars": { "a2-0": "cmd" } + }, + + "find-temp-buffer": { + "args": ["size"], + "vars": { "gp-0": "qwc" } + }, + + "dgo-load-link": { + "args": ["obj-file", "heap", "print-login", "last-object"], + "vars": { "s4-0": "obj-data" } + }, + + "ramdisk-load": { + "args": ["file-id", "offset", "length", "buffer"], + "vars": { "v1-1": "cmd" } + }, + + "show-mc-info": { + "args": ["dma-buf"], + "vars": { "s5-0": "info", "s4-0": "slot-idx" } + }, + + "(method 19 res-lump)": { + "args": ["obj", "name-sym", "mode", "time"], + "vars": { + "t2-4": "type-chars", + "t3-1": "max-search", + "t4-0": "min-search", + "t6-5": "diff", + "t5-2": "check-idx", + "t4-1": "tag-idx", + "t3-13": "interp-tag-idx", + "t4-4": "tag-ptr", + "t0-6": "lo-tag-idx-out", + "v1-14": "hi-tag-idx-out", + "t1-0": "most-recent-invalid-time-idx" + } + }, + + "entity-actor-count": { + "args": ["res", "name"], + "vars": { + "sv-16": "tag" + } + }, + + "(method 0 joint-mod)": { + "args": ["allocation", "type-to-make", "mode", "proc", "joint-idx"], + "vars": { + "gp-0": "obj", + "v1-7": "twist-max" + } + }, + + "joint-mod-debug-draw": { + "args": ["mod"] + }, + + "(method 9 joint-mod)": { + "args": ["obj", "handler-mode"], + "vars": { "v1-0": "joint", "a0-1": "mode" } + }, + + "(method 10 joint-mod)": { + "args": ["obj", "target-trans"], + "vars": { "f0-0": "distance" } + }, + + "(method 13 joint-mod)": { "args": ["obj", "x", "y", "z"] }, + "(method 14 joint-mod)": { "args": ["obj", "trans", "rot", "scale"] }, + "(method 11 joint-mod)": { + "args": ["obj", "target-trans", "option", "proc"], + "vars": { + "s1-0": "proc-drawable", + "s3-1": ["enemy-facts", "fact-info-enemy"], + "f30-0": "dist" + } + }, + + "joint-mod-look-at-handler": { "args": ["csp", "xform", "mat"] }, + "(method 9 collide-history)": { + "args": ["obj", "cshape", "xs", "transv", "transv-out"] + }, + + "add-debug-sphere-from-table": { + "vars": { "s1-0": ["points", "(inline-array vector)"] } + }, + + "entity-actor-lookup": { + "args": ["lump", "name", "idx"] + }, + + "(method 0 actor-link-info)": { + "args": ["allocation", "type-to-make", "proc"], + "vars": { "s5-0": "obj", "a0-1": "ent" } + }, + + "(method 25 actor-link-info)": { + "vars": { "s5-0": "actor", "gp-0": "count" } + }, + + "(method 9 actor-link-info)": { + "args": ["obj", "matching-type"], + "vars": { "s3-0": "actor", "s5-0": "mask", "s4-0": "current-bit" } + }, + + "(method 10 actor-link-info)": { + "vars": { "s5-0": "this-actor", "s4-0": "actor", "gp-0": "count" } + }, + + "alt-actor-list-subtask-incomplete-count": { + "vars": { + "s4-0": "alt-actor-count", + "gp-0": "incomplete-count", + "s3-0": "alt-actor-idx" + } + }, + + "check-irx-version": { + "vars": { "gp-0": ["cmd", "sound-rpc-get-irx-version"] } + }, + "sound-bank-load": { + "vars": { "v1-1": ["cmd", "sound-rpc-load-bank"] } + }, + "sound-bank-unload": { + "vars": { "v1-1": ["cmd", "sound-rpc-unload-bank"] } + }, + "sound-music-load": { + "vars": { "v1-1": ["cmd", "sound-rpc-load-music"] } + }, + "sound-music-unload": { + "vars": { "v1-1": ["cmd", "sound-rpc-unload-music"] } + }, + "sound-reload-info": { + "vars": { "v1-1": ["cmd", "sound-rpc-reload-info"] } + }, + "set-language": { + "vars": { "v1-1": ["cmd", "sound-rpc-set-language"] } + }, + "list-sounds": { + "vars": { "v1-1": ["cmd", "sound-rpc-list-sounds"] } + }, + "sound-set-volume": { + "vars": { "v1-0": ["cmd", "sound-rpc-set-master-volume"] } + }, + "sound-set-reverb": { + "vars": { "v1-0": ["cmd", "sound-rpc-set-reverb"] } + }, + "sound-set-ear-trans": { + "vars": { "gp-0": ["cmd", "sound-rpc-set-ear-trans"] } + }, + "sound-play-by-name": { + "args": ["name", "id", "vol", "pitch", "bend", "group", "trans"], + "vars": { + "s5-0": ["cmd", "sound-rpc-play"], + "s3-1": ["proc", "process-drawable"], + "s4-0": "sound-trans" + } + }, + "sound-play-by-spec": { + "args": ["spec", "id", "trans"], + "vars": { + "s5-0": ["cmd", "sound-rpc-play"], + "s3-1": ["proc", "process-drawable"] + } + }, + "sound-pause": { + "vars": { "v1-0": ["cmd", "sound-rpc-pause-sound"] } + }, + "sound-stop": { + "vars": { "v1-0": ["cmd", "sound-rpc-stop-sound"] } + }, + "sound-continue": { + "vars": { "v1-0": ["cmd", "sound-rpc-continue-sound"] } + }, + "sound-group-pause": { + "vars": { "v1-0": ["cmd", "sound-rpc-pause-group"] } + }, + "sound-group-stop": { + "vars": { "v1-0": ["cmd", "sound-rpc-stop-group"] } + }, + "sound-group-continue": { + "vars": { "v1-0": ["cmd", "sound-rpc-continue-group"] } + }, + "sound-set-falloff-curve": { + "vars": { "v1-0": ["cmd", "sound-rpc-set-falloff-curve"] } + }, + "sound-set-sound-falloff": { + "vars": { "v1-0": ["cmd", "sound-rpc-set-sound-falloff"] } + }, + "sound-set-flava": { + "vars": { "v1-0": ["cmd", "sound-rpc-set-flava"] } + }, + "sound-set-fps": { + "vars": { "v1-0": ["cmd", "sound-rpc-set-fps"] } + }, + "(method 0 ambient-sound)": { + "vars": { "s5-1": ["obj", "ambient-sound"], "v1-2": "bc" } + }, + "(method 9 ambient-sound)": { + "vars": { "s5-1": "spec", "s4-2": "spec-volume" } + }, + "(method 11 ambient-sound)": { + "vars": { "gp-0": ["cmd", "sound-rpc-set-param"] } + }, + "(method 12 ambient-sound)": { + "vars": { "v1-2": ["cmd", "sound-rpc-set-param"] } + }, + "sound-buffer-dump": { + "vars": { "s3-0": ["cmd", "sound-rpc-play"] } + }, + + "(method 0 path-control)": { + "args": ["allocation", "type-to-make", "proc", "name", "time"], + "vars": { + "gp-0": ["obj", "path-control"], + "s3-1": "ent", + "v1-7": "lookup-entity", + "sv-16": "tag", + "v1-9": "data" + } + }, + + "(method 0 curve-control)": { + "args": ["allocation", "type-to-make", "proc", "name", "time"], + "vars": { "gp-0": "obj", "s3-1": "ent", "v1-3": "lookup-entity" } + }, + + "nav-mesh-connect": { + "args": ["proc", "trans", "nav-cont"], + "vars": { + "s2-0": "ent", + "v0-0": "lookup-entity", + "s3-0": "entity-nav-mesh" + } + }, + + "(method 0 nav-control)": { + "args": [ + "allocation", + "type-to-make", + "shape", + "sphere-count", + "nearest-y-threshold-default" + ], + "vars": { "s5-0": ["obj", "nav-control"], "a0-3": "ent" } + }, + + "add-debug-point": { + "args": ["enable-draw", "bucket", "pt"], + "vars": { + "a0-6": ["a0-6", "(pointer uint64)"], + "a0-7": ["a0-7", "dma-packet"], + "a3-0": ["a3-0", "dma-packet"], + "a3-2": ["a3-2", "gs-gif-tag"], + "a3-4": ["a3-4", "vector4w-2"], + "a3-6": ["a3-6", "vector4w-2"], + "a3-8": ["a3-8", "vector4w-2"], + "a1-30": ["a1-30", "vector4w-2"], + "v1-7": "buf" + } + }, + "internal-draw-debug-line": { + "vars": { + "s2-0": ["s2-0", "rgba"], + "s5-0": ["s5-0", "rgba"], + "a3-1": ["a3-1", "dma-packet"], + "a3-3": ["a3-3", "gs-gif-tag"], + "a1-43": ["a1-43", "(inline-array vector4w-2)"], + "a0-31": ["a0-31", "(pointer uint64)"], + "a0-32": ["a0-32", "dma-packet"] + } + }, + "add-debug-flat-triangle": { + "vars": { + "a3-1": ["a3-1", "dma-packet"], + "a3-3": ["a3-3", "gs-gif-tag"], + "a3-5": ["a3-5", "(inline-array vector4w-3)"], + "a0-9": ["a0-9", "(pointer uint64)"], + "a0-10": ["a0-10", "dma-packet"] + } + }, + "add-debug-line2d": { + "vars": { + "a2-3": ["a2-3", "dma-packet"], + "a2-5": ["a2-5", "gs-gif-tag"], + "a2-7": ["a2-7", "(inline-array vector4w)"], + "a2-9": ["a2-9", "(inline-array vector4w)"], + "a0-20": ["a0-20", "(pointer uint64)"], + "v1-10": ["v1-10", "dma-packet"] + } + }, + "debug-percent-bar": { + "vars": { + "v1-5": ["v1-5", "dma-packet"] + } + }, + "debug-pad-display": { + "vars": { + "v1-12": ["v1-12", "dma-packet"] + } + }, + "internal-draw-debug-text-3d": { + "vars": { + "v1-11": ["v1-11", "dma-packet"] + } + }, + + "generic-init-buffers": { + "vars": { + "v1-8": ["packet", "dma-packet"], + "gp-0": ["gp-0", "gs-zbuf"], + "s5-0": ["s5-0", "gs-zbuf"] + } + }, + + "level-update-after-load": { + "args": ["loaded-level", "level-login-state"], + "vars": { + "s3-0": "level-drawable-trees", + "s5-0": "initial-timer", + "v1-4": "current-timer", + "v1-5": "elapsed-timer", + "s2-0": "current-login-pos", + "s2-1": ["current-drawable", "drawable-tree"], + "s1-0": "idx-in-drawable" + } + }, + + "(method 9 setting-data)": { + "vars": { + "s3-0": ["conn", "connection"] + } + }, + + "(method 12 level)": { + "vars": { + "s5-3": ["s5-3", "pair"] + } + }, + + "update-sound-banks": { + "vars": { + "t0-0": ["t0-0", "symbol"] + } + }, + + "(method 16 level-group)": { + "vars": { + "s1-0": ["s1-0", "continue-point"] + } + }, + + "(method 20 level)": { + "vars": { + "s3-0": ["s3-0", "ramdisk-rpc-fill"] + } + }, + + "(method 9 game-info)": { + "args": ["obj", "cause", "save-to-load", "continue-point-override"], + "vars": { + "v1-0": "selected-cause", + "s4-1": "lev-info" + } + }, + + "(method 10 game-info)": { + "args": ["obj", "item", "amount", "source"], + "vars": { + "v1-10": "proc", + "s4-1": "level-idx", + "a0-35": "buzz-task", + "s4-2": "buzz-index", + "f30-0": "buzz-count", + "s3-0": "ctrl", + "s5-2": "buzz-bits" + } + }, + + "(method 14 game-info)": { + "args": ["obj", "lev"], + "vars": { + "s5-0": "perms", + "s4-0": "lev-entities", + "s3-0": "lev-entity-idx", + "s2-0": "lev-entity-perm", + "v1-8": "info-entity-perm" + } + }, + + "(method 15 game-info)": { + "args": ["obj", "lev"], + "vars": { + "s5-0": "lev-entities", + "s4-0": "lev-entity-idx", + "s3-0": "lev-entity-perm", + "v1-7": "info-entity-perm" + } + }, + + "(method 25 game-info)": { + "args": ["obj", "save"], + "vars": { + "v1-0": ["save-data", "game-save-tag"], + "s4-0": ["data", "game-save-tag"], + "v1-9": "old-base-frame", + "v1-10": "frame-counter-diff" + } + }, + + "(method 10 game-save)": { + "args": ["obj", "filename"], + "vars": { + "s5-0": "stream", + "s3-0": "in-size", + "s4-0": "my-size" + } + }, + + "(method 11 game-save)": { + "args": ["obj", "detail"], + "vars": { + "s4-0": ["tag", "game-save-tag"], + "s3-0": "tag-idx", + "s2-1": "prog-lev-idx", + "a2-13": "lev-name" + } + }, + + "debug-menu-func-decode": { + "vars": { + "v0-0": ["ret-val", "symbol"] + } + }, + + "letterbox": { + "vars": { + "s5-0": "dma-buf", + "v1-5": ["pkt", "dma-packet"] + } + }, + + "blackout": { + "vars": { + "s5-0": "dma-buf", + "gp-0": "sprite-dma-data", + "v1-4": ["pkt", "dma-packet"] + } + }, + + "set-master-mode": { + "args": ["new-mode"], + "vars": { "v1-3": "mode" } + }, + + "main-cheats": { + "vars": { + "v1-13": "cheatmode-state", + "v1-158": "cheatmode-debug-state", + "v1-303": "cheat-language-state", + "v1-394": "cheat-pal-state", + "s5-9": "dma-buff", + "gp-9": "dma-start", + "v1-533": ["dma-pkt", "dma-packet"], + "gp-10": "timeout", + "v1-548": "inactive-timeout", + "gp-11": "game-end-proc" + } + }, + + "load-game-text-info": { + "args": ["txt-name", "curr-text", "heap"], + "vars": { + "sv-16": "heap-sym-heap", + "sv-24": "lang", + "sv-32": "load-status", + "sv-40": "heap-free" + } + }, + + "(method 13 art-group)": { + "vars": { + "s3-0": "art-elt", + "s4-0": "janim", + "v1-9": "janim-group", + "s2-0": "success" + } + }, + + "(method 14 art-group)": { + "vars": { + "s3-0": "art-elt", + "s4-0": "janim", + "v1-9": "janim-group", + "s3-1": "success" + } + }, + + "(method 16 process-drawable)": { + "vars": { + "s3-0": "body-T-world", + "s0-0": "world-T-body", + "s2-0": "grav-rt-body", + "a1-5": "vel-rt-body" + } + }, + + "(method 11 cam-float-seeker)": { + "args": ["obj", "offset"], + "vars": { + "f1-2": "pos-error", + "f0-5": "partial-velocity-limit", + "f1-3": "daccel", + "f1-6": "abs-vel", + "f0-6": "abs-vel-limit", + "f0-10": "dpos" + } + }, + + "(method 9 trsqv)": { + "args": ["obj", "dir", "vel", "frame-count"], + "vars": { + "f0-0": "yaw-error", + "f1-2": "yaw-limit", + "f30-0": "saturated-yaw", + "a1-2": "quat", + "f0-2": "old-diff" + } + }, + + "(method 13 trsqv)": { + "args": ["obj", "yaw", "vel", "frame-count"] + }, + + "(method 16 trsqv)": { + "vars": { + "s5-0": "quat", + "s1-0": "grav", + "s3-0": "rot-mat", + "s4-0": "dir-z", + "a0-4": "dir-x" + } + }, + + "(method 25 trsqv)": { + "vars": { + "s5-0": "quat", + "gp-0": "dir-z", + "s5-1": "dir-y", + "a1-2": "dir-grav", + "v1-2": "grav-z-plane", + "f0-1": "grav-dot" + } + }, + + "(method 17 trsqv)": { + "args": ["obj", "target", "y-rate", "z-rate"], + "vars": { + "gp-0": "quat", + "s5-0": "temp-quat" + } + }, + + "raw-ray-sphere-intersect": { + "vars": { + "v0-0": ["result", "float"], + "v1-0": ["v1-0", "float"] + } + }, + + "ray-sphere-intersect": { + "args": ["ray-origin", "ray-dir", "sph-origin", "radius"] + }, + + "ray-circle-intersect": { + "args": ["ray-origin", "ray-dir", "circle-origin", "radius"] + }, + + "ray-cylinder-intersect": { + "args": [ + "ray-origin", + "ray-dir", + "cyl-origin", + "cyl-axis", + "cyl-rad", + "cyl-len" + ] + }, + + "(method 10 cylinder)": { + "args": ["obj", "probe-origin", "probe-dir"], + "vars": { + "f30-0": "result", + "f0-5": "u-origin-sph", + "s4-0": "end-pt", + "f0-8": "u-end-sphere" + } + }, + + "(method 10 cylinder-flat)": { + "args": ["obj", "probe-origin", "probe-dir"], + "vars": { + "f30-0": "result", + "f0-5": "u-origin-circle", + "s5-0": "end-pt", + "f0-8": "u-end-circle" + } + }, + + "ray-arbitrary-circle-intersect": { + "args": [ + "probe-origin", + "probe-dir", + "circle-origin", + "circle-normal", + "radius" + ] + }, + + "print-tr-stat": { + "args": ["stat", "name", "dest"] + }, + + "update-subdivide-settings!": { + "args": ["settings", "math-cam", "idx"] + }, + + "start-perf-stat-collection": { + "vars": { + "v1-2": "frame-idx", + "v1-5": "bucket", + "a0-2": "which-stat", + "a0-7": "stat-idx" + } + }, + + "ja-play-spooled-anim": { + "vars": { + "sv-16": "spool-part", + "sv-28": "old-skel-status", + "sv-64": "spool-sound" + } + }, + + "(method 3 anim-tester)": { + "vars": { + "s5-0": ["s5-0", "anim-test-obj"], + "s4-0": ["s4-0", "anim-test-sequence"], + "s3-0": ["s3-0", "anim-test-seq-item"] + } + }, + + "anim-test-obj-item-valid?": { + "vars": { + "s5-0": ["s5-0", "anim-test-sequence"] + } + }, + + "anim-test-obj-remove-invalid": { + "vars": { + //"s5-0": ["s5-0", "anim-test-sequence"], + "v1-31": ["v1-31", "anim-test-sequence"], + "s3-0": ["s3-0", "anim-test-seq-item"], + "s2-0": ["s2-0", "anim-test-seq-item"] + } + }, + + "anim-tester-reset": { + "vars": { + "v1-1": ["v1-1", "anim-test-obj"] + } + }, + + "anim-tester-save-object-seqs": { + "vars": { + "s4-2": ["s4-2", "anim-test-seq-item"] + } + }, + + "sprite-setup-header": { + "args": ["hdr", "num-sprites"] + }, + + "(method 0 sprite-aux-list)": { + "args": ["allocation", "type-to-make", "size"] + }, + + "sprite-setup-frame-data": { + "args": ["data", "tbp-offset"] + }, + + "(method 0 sprite-array-2d)": { + "args": ["allocation", "type-to-make", "group-0-size", "group-1-size"], + "vars": { + "v1-0": "sprite-count", + "s4-0": "vec-data-size", + "a2-3": "adgif-data-size" + } + }, + + "(method 0 sprite-array-3d)": { + "args": ["allocation", "type-to-make", "group-0-size", "group-1-size"], + "vars": { + "v1-0": "sprite-count", + "s4-0": "vec-data-size", + "a2-3": "adgif-data-size" + } + }, + + "sprite-set-3d-quaternion": { + "args": ["data", "quat"] + }, + "sprite-get-3d-quaternion": { + "args": ["data", "quat"] + }, + "sprite-add-matrix-data": { + "args": ["dma-buff", "matrix-mode"], + "vars": { + "v1-0": "count", + "a2-1": ["pkt1", "dma-packet"], + "a1-2": ["mtx", "matrix"], + "a2-9": ["pkt2", "dma-packet"], + "a1-11": "mtx2", + "a1-20": "hvdf-idx" + } + }, + + "sprite-add-frame-data": { + "args": ["dma-buff", "tbp-offset"], + "vars": { + "a0-1": ["pkt", "dma-packet"] + } + }, + + "sprite-add-2d-chunk": { + "args": [ + "sprites", + "start-sprite-idx", + "num-sprites", + "dma-buff", + "mscal-addr" + ], + "vars": { + "a0-1": ["pkt1", "dma-packet"], + "s1-0": "qwc-pkt1", + "a1-7": "qwc-pkt2", + "a0-5": ["pkt2", "dma-packet"], + "a1-11": "qwc-pkt3", + "a0-7": ["pkt3", "dma-packet"], + "v1-7": ["pkt4", "dma-packet"] + } + }, + + "sprite-add-2d-all": { + "args": ["sprites", "dma-buff", "group-idx"], + "vars": { + "s4-0": "current-sprite-idx", + "s2-0": "remaining-sprites", + "s3-0": "mscal-addr" + } + }, + + "sprite-add-3d-chunk": { + "args": ["sprites", "start-sprite-idx", "num-sprites", "dma-buff"], + "vars": { + "a0-1": ["pkt1", "dma-packet"], + "s2-0": "qwc-pkt1", + "a1-7": "qwc-pkt2", + "a0-5": ["pkt2", "dma-packet"], + "a1-11": "qwc-pkt3", + "a0-7": ["pkt3", "dma-packet"], + "v1-7": ["pkt4", "dma-packet"] + } + }, + + "sprite-add-3d-all": { + "args": ["sprites", "dma-buff", "group-idx"], + "vars": { + "s4-0": "current-sprite-idx", + "s3-0": "remaining-sprites" + } + }, + + "sprite-add-shadow-chunk": { + "args": ["shadow-buff", "start-idx", "num-sprites", "dma-buff"], + "vars": { + "s2-0": "qwc-pkt1", + "a0-1": ["pkt1", "dma-packet"], + "a1-7": "qwc-pkt2", + "a0-5": ["pkt2", "dma-packet"], + "v1-5": "sprite-idx", + "a0-7": "dma-vec-data", + "a1-14": "in-vec-data", + "a1-15": "qwc-pkt3", + "a0-11": ["pkt3", "dma-packet"], + "s2-1": "si", + "s1-0": "dma-adgif-data", + "s0-0": "in-adgif-data", + "v1-21": ["pkt4", "dma-packet"] + } + }, + + "sprite-add-shadow-all": { + "args": ["shadow-buff", "dma-buff"], + "vars": { + "s4-0": "current-shadow", + "s3-0": "remaining-shadows" + } + }, + + "sprite-draw": { + "args": "disp", + "vars": { + "gp-0": "dma-mem-begin", + "s4-0": "dma-buff", + "s5-0": "dma-bucket-begin", + "a0-9": ["pkt1", "dma-packet"], + "a0-11": ["giftag", "gs-gif-tag"], + "a0-17": ["pkt2", "dma-packet"], + "a0-19": ["pkt3", "dma-packet"], + "a0-26": ["pkt4", "dma-packet"], + "v1-26": ["pkt5", "dma-packet"], + "v1-31": "mem-use" + } + }, + + "mem-usage-bsp-tree": { + "args": ["header", "node", "mem-use", "flags"] + }, + + "(method 8 bsp-header)": { + "args": ["obj", "mem-use", "flags"] + }, + + "(method 10 bsp-header)": { + "args": ["obj", "other-draw", "disp-frame"], + "vars": { + "s4-0": "lev", + "a2-3": "vis-list-qwc", + "v1-15": "vis-list-qwc2", + "a0-9": ["vis-list-spad", "(pointer uint128)"], + "a1-5": ["vis-list-lev", "(pointer uint128)"], + "a2-4": "current-qw" + } + }, + + "bsp-camera-asm": { + "args": ["bsp-hdr", "camera-pos"], + "vars": { + "v1-0": ["next-node", "bsp-node"], + "a1-1": "real-node" + } + }, + + "level-remap-texture": { + "args": ["tex-id"], + "vars": { + "v1-1": "bsp-hdr", + "a3-0": "table-size", + "v1-2": ["table-data-start", "(pointer uint64)"], + "t0-0": "table-data-ptr", + "a1-1": "mask1", + "a2-1": "masked-tex-id", + "a3-2": "table-data-end", + "t0-3": "midpoint", + "t1-1": "diff" + } + }, + + "debug-menu-make-from-template": { + "vars": { + "s5-1": ["s5-1", "string"] + } + }, + + "debug-menu-item-var-render": { + "vars": { + "v1-14": ["v1-14", "dma-packet"] + } + }, + + "generic-add-constants": { + "vars": { + "a0-1": ["a0-1", "dma-packet"] + } + }, + + "generic-init-buf": { + "vars": { + "a0-2": ["a0-2", "dma-packet"], + "a0-4": ["a0-4", "gs-gif-tag"], + "a0-9": ["a0-9", "dma-packet"], + "v1-7": ["v1-7", "(pointer int32)"] + } + }, + + "(anon-function 1 cam-combiner)": { + "vars": { + "pp": ["pp", "process"] + } + }, + + "(anon-function 2 cam-combiner)": { + "vars": { + "a0-3": ["vec", "(pointer vector)"] + } + }, + + "(method 14 sync-info)": { + "args": ["obj", "period", "phase"], + "vars": { + "f0-1": "period-float", + "f1-1": "value" + } + }, + + "(method 14 sync-info-eased)": { + "args": ["obj", "period", "phase", "out-param", "in-param"], + "vars": { + "f0-9": "total-easing-phase", + "f1-11": "total-normal-phase", + "f0-1": "period-float", + "f1-1": "value", + "f3-4": "y-end" + } + }, + + "(method 14 sync-info-paused)": { + "args": ["obj", "period", "phase", "out-param", "in-param"] + }, + + "(method 15 sync-info)": { + "args": [ + "obj", + "proc", + "default-period", + "default-phase", + "default-out", + "default-in" + ] + }, + + "(method 15 sync-info-eased)": { + "args": [ + "obj", + "proc", + "default-period", + "default-phase", + "default-out", + "default-in" + ] + }, + + "(method 15 sync-info-paused)": { + "args": [ + "obj", + "proc", + "default-period", + "default-phase", + "default-out", + "default-in" + ] + }, + + "(method 10 sync-info)": { + "vars": { + "v1-0": "period", + "f0-1": "period-float", + "f1-2": "current-time" + } + }, + + "(method 16 sync-info)": { + "args": ["obj", "user-time-offset"], + "vars": { + "a2-0": "period", + "f0-1": "period-float", + "v1-0": "wrapped-user-offset", + "f1-4": "current-time", + "f1-6": "current-time-wrapped", + "f1-10": "combined-offset", + "f0-3": "combined-offset-wrapped" + } + }, + + "(method 11 sync-info)": { + "vars": { + "v1-0": "period", + "f0-1": "period-float", + "f1-2": "current-time" + } + }, + + "(method 11 sync-info-paused)": { + "vars": { + "v1-0": "period", + "f1-0": "period-float", + "f0-1": "max-phase", + "f2-2": "current-time" + } + }, + + "(method 9 sync-info)": { + "args": ["obj", "max-val"], + "vars": { + "v1-0": "period", + "f0-1": "period-float", + "f1-2": "current-time" + } + }, + + "(method 13 sync-info)": { + "args": ["obj"], + "vars": { + "v1-0": "period", + "f1-0": "period-float", + "f2-2": "current-time", + "f0-1": "max-val", + "f0-2": "phase-out-of-2" + } + }, + + "(method 13 sync-info-eased)": { + "args": ["obj"], + "vars": { + "v1-0": "period", + "f1-0": "period-float", + "f0-1": "max-val", + "f2-2": "current-time", + "f0-2": "current-val", + "v1-2": "in-mirror?", + "f1-4": "tlo", + "f0-7": "eased-phase" + } + }, + + "(method 12 sync-info)": { + "args": ["obj", "max-out-val"], + "vars": { + "v1-0": "period", + "f1-0": "period-float", + "f0-1": "max-val", + "f2-2": "current-time", + "f0-2": "current-val" + } + }, + + "(method 12 sync-info-eased)": { + "args": ["obj", "max-out-val"] + }, + "(method 12 sync-info-paused)": { + "args": ["obj", "max-out-val"] + }, + + "(method 9 delayed-rand-float)": { + "args": ["obj", "min-tim", "max-time", "max-times-two"] + }, + + "(method 10 oscillating-float)": { + "args": ["obj", "target-offset"], + "vars": { "f0-3": "acc" } + }, + + "(method 9 oscillating-float)": { + "args": ["obj", "init-val", "accel", "max-vel", "damping"] + }, + + "(method 9 bouncing-float)": { + "args": [ + "obj", + "init-val", + "max-val", + "min-val", + "elast", + "accel", + "max-vel", + "damping" + ] + }, + + "(method 9 delayed-rand-vector)": { + "args": ["obj", "min-time", "max-time", "xz-range", "y-range"] + }, + + "(method 9 oscillating-vector)": { + "args": ["obj", "init-val", "accel", "max-vel", "damping"] + }, + + "(method 10 oscillating-vector)": { + "args": ["obj", "target-offset"], + "vars": { "f0-2": "vel" } + }, + + "(method 9 trajectory)": { + "args": ["obj", "time", "result"] + }, + + "(method 10 trajectory)": { + "args": ["obj", "time", "result"] + }, + + "(method 11 trajectory)": { + "args": ["obj", "from", "to", "duration", "grav"], + "vars": { "f0-3": "xz-vel" } + }, + + "(method 12 trajectory)": { + "args": ["obj", "from", "to", "xz-vel", "grav"], + "vars": { "f0-1": "duration" } + }, + + "(method 13 trajectory)": { + "args": ["obj", "from", "to", "y-vel", "grav"] + }, + + "(method 15 trajectory)": { + "vars": { + "s5-0": "prev-pos", + "s4-0": "pos", + "s3-0": "num-segments", + "f0-1": "t-eval" + } + }, + + "set-font-color-alpha": { + "args": ["idx", "alpha"] + }, + + "print-game-text-scaled": { + "args": ["str", "scale", "font-ctxt", "alpha"] + }, + + "print-game-text": { + "args": ["str", "font-ctxt", "alpha", "offset-thing"] + }, + + "display-frame-start": { + "args": ["disp", "new-frame-idx", "odd-even"], + "vars": { + "f30-0": "time-ratio", + "s3-0": "scaled-seconds", + "s3-1": "new-frame" + } + }, + + "display-frame-finish": { + "args": ["disp"], + "vars": { + "s4-0": "this-frame", + "s5-0": "this-calc-buf", + "s3-0": "bucket-idx", + "v1-7": "this-global-buf", + "a0-16": "global-buf", + "v1-19": "calc-current", + "a2-1": "calc-start", + "s4-1": "global-current", + "s5-1": "global-start", + "s3-1": "global-end" + } + }, + + "display-sync": { + "args": ["disp"], + "vars": { + "s4-0": "frame-idx", + "s5-0": "syncv-result", + "s3-0": "dma-buf-to-send", + "a1-4": "next-frame" + } + }, + + "draw-string": { + "args": ["str-in", "context"], + "vars": { + "v1-5": "fw", + "a1-1": "dma-out", + "t2-0": "flags", + "a3-0": "has-flag-size24", + "a3-1": "font-table-12", + "a3-2": "font-table-to-use", + "t0-0": "q-lo-tmpl", + "t1-0": "q-hi-tmpl", + "t3-0": "in-color", + "t3-1": "color-array-prod", + "t4-0": "fw+col", + "t3-2": "q-verts-0p", + "t5-0": "q-verts-1p", + "t3-3": "q-verts-2p", + "t4-1": "q-verts-3p", + "t5-1": "q-verts-1t", + "t5-2": "q-verts-1", + "t3-4": "q-verts-2t", + "t3-5": "q-verts-2", + "t6-0": "q-verts-0t", + "t6-1": "q-verts-0", + "t4-2": "q-verts-3t", + "t4-3": "q-verts-3", + "t3-6": "fw2", + "t4-4": "str-char", + "t5-3": "not-sc-lit1", + "t5-4": "not-sc-~", + "t4-14": "fc-cr", + "r0-0": "r0", + "r0-1": "r0", + "r0-2": "r0", + "r0-3": "r0" + } + }, + + "add-debug-outline-triangle": { + "args":["enable", "bucket", "p0", "p1", "p2", "color"] + }, + + "unpack-comp-rle": { + "args":["out", "in"], + "vars":{ + "v1-2":"current-input", + "a2-0":"repeated-value", + "v1-3":"copy-length", + "a2-1":"src-val" + } + }, + + "(method 16 level)": { + "args":["obj", "vis-info"], + "vars":{ + "a0-1":"cam-leaf-idx", + "v1-1":"curr-vis-str", + "s4-0":"desired-vis-str", + "s4-1":"vis-buffer", + "s3-1":"vis-load-result", + "v1-28":"dest-bits", + "a1-3":"len", + "a0-19":"bsp-bits", + "a1-5":"len-qw", + "s2-0":"lower-flag-bits", + "s1-0":"spad-start", + "s0-0":"spad-end", + "s3-2":"list-len", + "v1-49":"list-qwc", + "v0-1":"result" + } + }, + + "(method 9 merc-fragment)": { + "vars":{ + "s5-0":"fp-data", + "s4-0":"eye-ctrl", + "s3-0":"shader", + "v1-7":"eye-tex-block", + "v1-34":"eye-tex-block-2", + "v1-57":"tex", + "a0-36":"seg" + } + }, + + "(method 9 merc-effect)": { + "vars":{ + "v1-0":"data", + "v1-1":"tex", + "a0-8":"seg", + "s3-0":"frag-idx", + "s2-0":"ctrl-size", + "s1-0":"geo-size", + "s4-0":["geo", "merc-fragment"], + "s5-0":["ctrl", "merc-fragment-control"] + } + }, + + "merc-vu1-add-vu-function": { + "args":["dma", "func", "flush-mode"], + "vars": { + "v1-0":"func-data", + "a3-0":"qwc", + "a1-1":"dst", + "t0-1":"qwc-this-time" + } + }, + + "(method 8 merc-ctrl)": { + "vars": { + "s4-0":"ctrl-mem", + "s3-0":"effect-idx", + "s2-0":["fctrl", "merc-fragment-control"], + "s1-0":"frag-idx", + "v1-35":"effect-mem", + "a0-15":"effect-idx2", + "a1-9":["bctrl", "merc-blend-ctrl"], + "a2-1":"blend-frag-idx" + } + }, + + "(method 9 merc-ctrl)": { + "vars":{ + "v1-3":"seg", + "s5-0":"effect-idx", + "a0-4":"idx-with-bit1", + "a0-7":"this-effect", + "a1-5":"last-effect", + "a2-6":"copy-idx" + } + }, + + "merc-vu1-init-buffer": { + "args":["dma-bucket", "test"], + "vars": { + "gp-0":"bucket", + "s4-0":"dma-buf" + } + }, + + "(method 9 screen-filter)": { + "vars": { + "v1-4":["v1-4", "dma-packet"], + "s5-0":"buf" + } + }, + + "(method 11 fact-info-target)": { + "args":["obj", "kind", "amount", "source-handle"], + "vars":{"f0-29":"buzz-count","f30-0":"eco-lev"} + }, + + "auto-save-init-by-other": { + "args":["desired-mode", "notify-proc", "card-idx", "file-idx"] + }, + + "debug-menu-item-var-make-int": { + "args":["item", "callback", "inc", "has-range", "range-min", "range-max", "hex"] + }, + + "debug-menu-item-var-make-float": { + "args":["item", "callback", "inc", "has-range", "range-min", "range-max", "precision"] + }, + + "(method 0 debug-menu-item-var)": { + "args":["allocation", "type-to-make", "name", "id", "max-width"] + }, + + "debug-menu-context-grab-joypad": { + "args":["menu", "callback-arg", "callback-func"] + }, + + "debug-menu-context-default-selection": { + "args": ["ctxt", "keep-current"], + "vars": { + "s5-0":"menu", + "s4-0":"currently-active" + } + }, + + "debug-menu-rebuild": { + "args":["menu"], + "vars": { + "s4-0":"max-width", + "s5-0":"entry-count", + "s3-0":"iter", + "a0-1":"current-item" + } + }, + + "debug-menu-context-set-root-menu":{ + "args":["context", "menu"], + "vars":{ + "s4-0":"active" + } + }, + + "debug-menu-append-item": { + "args":["menu", "item"], + "vars": { + "gp-0":"context", + "s4-0":"was-active" + } + }, + + "(anon-function 82 default-menu)": { + "vars":{"s4-0":["s4-0", "texture-id"]} + }, + + "process-status-bits": { + "vars":{"s3-0":["proc-draw", "process-drawable"]} + }, + + "(method 29 entity-actor)":{ + "args":["obj", "mode", "expected-type"] + }, + + "(method 13 level-group)":{ + "args":["obj", "mode", "expected-type"] + }, + + "(method 24 entity)": { + "args":["obj", "lev-group", "lev", "aid"], + "vars":{ + "v1-4":"level-link", + "t0-5":"other-prev", + "t1-1":"other-front" + } + }, + + "update-actor-vis-box": { + "args":["proc", "min-pt", "max-pt"], + "vars":{"v1-4":"world-bounds-origin", "f0-0":"radius"} + }, + + "init-entity": { + "args":["proc", "ent"] + }, + + "(method 22 entity-actor)": { + "vars":{ + "s5-0":"entity-type", + "v1-0":"info", + "s4-0":"entity-process" + } + }, + + "(method 18 bsp-header)": { + "vars":{ + "a2-0":"existing-actor-count", + "s4-0":"birth-idx", + "a0-4":"idx-to-birth", + "v1-25":"actor-to-birth", + "a2-5":"existing-amb-count", + "s4-1":"amb-array", + "s3-0":"bsp-ambs", + "a0-10":"amb-to-birth", + "s4-2":"cams" + } + }, + + "(code falling beach-rock)": { + "vars": { + "gp-2": ["gp-2", "handle"], + "s5-1": ["s5-1", "handle"] + } + }, + + "draw-percent-bar": { + "vars": { + "v1-3": ["v1-3", "dma-packet"] + } + }, + + "(dummy-17 progress)": { + "vars": { + "v1-20": ["v1-20", "dma-packet"], + "v1-81": ["v1-81", "dma-packet"] + } + }, + + "make-current-level-available-to-progress": { + "vars": { + "a0-0": "cur-lev", + "v1-7": "lev-idx" + } + }, + + "make-levels-with-tasks-available-to-progress": { + "vars": { + "gp-0": "i", + "s4-0": "ii", + "s5-0": "tasks" + } + }, + + "get-next-task-up": { + "args": ["cur-task-idx", "lev-idx"] + }, + "get-next-task-down": { + "args": ["cur-task-idx", "lev-idx"] + }, + "get-next-level-up": { + "args": ["lev-idx"] + }, + "get-next-level-down": { + "args": ["lev-idx"] + }, + + "calculate-completion": { + "args": ["the-progress"], + "vars": { + "sv-40":"total-cells", + "sv-48":"total-buzzers", + "sv-56":"total-orbs", + "sv-16":"current-cells", + "sv-24":"current-buzzers", + "sv-32":"current-orbs" + } + }, + + "(method 48 progress)": { + "args": ["obj", "screen", "option"] + }, + + "activate-progress": { + "args": ["creator", "screen"] + }, + + "(method 23 progress)": { + "args": ["obj", "aspect", "video-mode"] + }, + + "(method 35 progress)": { + "vars": { + "s4-0": ["s4-0", "game-text-id"] + } + }, + + "(method 43 progress)": { + "vars": { + "s4-0": ["s4-0", "game-text-id"] + } + }, + + "(method 38 progress)": { + "vars": { + "a1-1": ["a1-1", "game-text-id"] + } + }, + + "(post progress-debug)": { + "vars": { + "v1-7": ["v1-7", "dma-packet"], + "v1-16": ["v1-16", "dma-packet"], + "v1-25": ["v1-25", "dma-packet"], + "v1-34": ["v1-34", "dma-packet"] + } + }, + + "voicebox-track": { + "vars": { + "a0-1": "target" + } + }, + + "citb-drop-plat-drop-children": { + "vars": { + "v1-4": ["v1-4", "handle"] + } + }, + + "(code plunger-lurker-plunge)": { + "vars": { + "gp-1": ["gp-1", "handle"], + "s5-0": ["s5-0", "othercam"] + } + }, + + "flying-lurker-play-intro": { + "vars": { + "gp-1": ["gp-1", "handle"] + } + }, + + "(code flying-lurker-start)": { + "vars": { + "v1-9": ["v1-9", "float"] + } + }, + + "(code flying-lurker-fly)": { + "vars": { + "v1-42": ["v1-42", "float"] + } + }, + + "(method 14 level-group)": { + "vars": { + "s1-1": ["s1-1", "process-drawable"] + } + }, + + "level-hint-displayed?": { + "vars": { + "a0-1": ["a0-1", "level-hint"] + } + }, + + "level-hint-init-by-other": { + "vars": { + "a0-6": ["a0-6", "string"] + } + }, + + "(method 27 entity-ambient)": { + "vars": { + "s5-0": ["s5-0", "symbol"] + } + }, + + "upload-vis-bits": { + "vars": { + "v1-2":"qwc", + "a0-1":["lev-vis-bits", "(pointer uint128)"], + "a1-1":["all-vis", "(pointer uint128)"], + "a2-2":["spad-vis", "(pointer uint128)"] + } + }, + + "(event be-clone process-taskable)": { + "vars": { + "v0-0": ["v0-0", "shadow-geo"] + } + }, + + "(event idle process-taskable)": { + "vars": { + "v0-0": ["v0-0", "symbol"] + } + }, + + "(method 9 load-dir-art-group)":{ + "args":["obj", "art-name", "do-reload", "heap", "version"] + }, + + "(method 15 hud-money)": { + "vars": { + "v1-8": ["v1-8", "dma-packet"] + } + }, + + "(method 15 hud-money-all)": { + "vars": { + "v1-32": ["v1-32", "dma-packet"] + } + }, + + "aaaaaaaaaaaaaaaaaaaaaaa": {} +} diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index 08d8784ef4..9a66c20897 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -80,6 +80,7 @@ (shutdown) (list-sounds) (unload-music) + (set-fps) ) ;; like should match the sound type in OVERLORD @@ -307,6 +308,14 @@ :flag-assert #x900000004 ) +(deftype sound-rpc-set-fps (sound-rpc-cmd) + ((fps uint8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) + (deftype sound-rpc-list-sounds (sound-rpc-cmd) () :method-count-assert 9 @@ -343,6 +352,7 @@ (set-reverb sound-rpc-set-reverb :offset 0) (set-ear-trans sound-rpc-set-ear-trans :offset 0) (set-flava sound-rpc-set-flava :offset 0) + (set-fps sound-rpc-set-fps :offset 0) (shutdown sound-rpc-shutdown :offset 0) (list-sounds sound-rpc-list-sounds :offset 0) (unload-music sound-rpc-unload-music :offset 0) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index 35bae86ea2..f32bf37737 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -520,6 +520,17 @@ 0 ) +(defun sound-set-fps ((arg0 uint)) + + (#when PC_DEBUG_SOUND_ENABLE + (let ((cmd (the-as sound-rpc-set-fps (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-fps)) + (set! (-> cmd fps) arg0) + ) + ) + 0 + ) + (defun sound-volume-off () "Set all sound volume to zero" diff --git a/goal_src/engine/sparticle/sparticle-launcher-h.gc b/goal_src/engine/sparticle/sparticle-launcher-h.gc index 42e6b47f3d..ef2dbc601d 100644 --- a/goal_src/engine/sparticle/sparticle-launcher-h.gc +++ b/goal_src/engine/sparticle/sparticle-launcher-h.gc @@ -279,6 +279,7 @@ (bit1 1) (start-dead 2) (launch-asap 3) + (bit6 6) ) (deftype sparticle-group-item (structure) diff --git a/scripts/batch/decomp-jak1pal.bat b/scripts/batch/decomp-jak1pal.bat new file mode 100644 index 0000000000..d835ad154c --- /dev/null +++ b/scripts/batch/decomp-jak1pal.bat @@ -0,0 +1,4 @@ +@echo off +cd ..\.. +out\build\Release\bin\decompiler decompiler\config\jak1_pal.jsonc iso_data\jak1pal decompiler_out\jak1pal +pause diff --git a/test/decompiler/reference/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/engine/sound/gsound-h_REF.gc index 715c3d978a..1e10b75b16 100644 --- a/test/decompiler/reference/engine/sound/gsound-h_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound-h_REF.gc @@ -604,6 +604,7 @@ (set-reverb sound-rpc-set-reverb :offset 0) (set-ear-trans sound-rpc-set-ear-trans :offset 0) (set-flava sound-rpc-set-flava :offset 0) + (set-fps sound-rpc-set-fps :offset 0) (shutdown sound-rpc-shutdown :offset 0) (list-sounds sound-rpc-list-sounds :offset 0) (unload-music sound-rpc-unload-music :offset 0)