diff --git a/.gitattributes b/.gitattributes index a962a94d51..f341f0ab0a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,6 @@ +# Ensure line endings are consistently 'LF' +* text=auto + third-party/**/* linguist-vendored third-party/**/* linguist-generated test/decompiler/reference/** linguist-vendored diff --git a/.github/workflows/linux-workflow.yaml b/.github/workflows/linux-workflow.yaml index 08bf125694..6e59aee84a 100644 --- a/.github/workflows/linux-workflow.yaml +++ b/.github/workflows/linux-workflow.yaml @@ -54,7 +54,6 @@ jobs: CC: clang CXX: clang++ run: | - ls -l ${{ github.workspace }}/buildcache/bin/buildcache cmake -B build \ -DCMAKE_BUILD_TYPE=Release \ -DASAN_BUILD=ON \ diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index a9d4228942..2aecdc11f2 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -41,56 +41,61 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "offline-test.exe (bin\\offline-test.exe)", - "name": "Tests - Offline Tests", - "args": ["${workspaceRoot}/iso_data/jak1"] + "name": "Tests - Offline Tests - Jak 1", + "args": [ + "--iso_data_path", + "${workspaceRoot}/iso_data/jak1", + "--game", + "jak1" + ] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "gk.exe (bin\\gk.exe)", - "name": "Run - Runtime (no kernel)", + "name": "Game - Runtime (no kernel)", "args": ["-fakeiso", "-debug", "-nokernel", "-v", "-nodisplay"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "gk.exe (bin\\gk.exe)", - "name": "Run - Runtime (with kernel)", + "name": "Game - Runtime (with kernel)", "args": ["-fakeiso", "-debug", "-v"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "gk.exe (bin\\gk.exe)", - "name": "Run - Runtime (boot)", + "name": "Game - Runtime (boot)", "args": ["-boot", "-fakeiso", "-debug", "-v"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "gk.exe (bin\\gk.exe)", - "name": "Run - Runtime (boot no debug)", + "name": "Game - Runtime (boot no debug)", "args": ["-boot", "-fakeiso", "-v"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "goalc.exe (bin\\goalc.exe)", - "name": "Run - REPL", + "name": "REPL", "args": ["--user-auto"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "goalc.exe (bin\\goalc.exe)", - "name": "Run - REPL - Auto Listen", + "name": "REPL - Auto Listen", "args": ["--user-auto", "--auto-lt"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "decompiler.exe (bin\\decompiler.exe)", - "name": "Run - Decompiler - Jak 1", + "name": "Decompiler - Jak 1", "args": [ "${workspaceRoot}/decompiler/config/jak1_ntsc_black_label.jsonc", "${workspaceRoot}/iso_data", @@ -101,7 +106,7 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "decompiler.exe (bin\\decompiler.exe)", - "name": "Run - Decompiler - Jak 1 - Data Only", + "name": "Decompiler - Jak 1 - Data Only", "args": [ "${workspaceRoot}/decompiler/config/jak1_ntsc_black_label.jsonc", "${workspaceRoot}/iso_data", @@ -113,7 +118,7 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "decompiler.exe (bin\\decompiler.exe)", - "name": "Run - Decompiler - Jak 1 PAL", + "name": "Decompiler - Jak 1 PAL", "args": [ "${workspaceRoot}/decompiler/config/jak1_pal.jsonc", "${workspaceRoot}/iso_data", @@ -124,7 +129,7 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "decompiler.exe (bin\\decompiler.exe)", - "name": "Run - Disassembler - Jak 1", + "name": "Disassembler - Jak 1", "args": [ "${workspaceRoot}/decompiler/config/jak1_ntsc_black_label.jsonc", "${workspaceRoot}/iso_data", @@ -135,7 +140,7 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "decompiler.exe (bin\\decompiler.exe)", - "name": "Run - Decompiler - Jak 2", + "name": "Decompiler - Jak 2", "args": [ "${workspaceRoot}/decompiler/config/jak2_ntsc_v1.jsonc", "${workspaceRoot}/iso_data", @@ -146,24 +151,14 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "memory_dump_tool.exe (bin\\memory_dump_tool.exe)", - "name": "Run - EE Memory Analyze", + "name": "Tools - EE Memory Analyze", "args": ["${workspaceRoot}/eeMemory.bin", "${workspaceRoot}"] }, - { - "type": "default", - "project": "CMakeLists.txt", - "projectTarget": "memory_dump_tool.exe (bin\\memory_dump_tool.exe)", - "name": "Run - EE Memory Analyze - Test", - "args": [ - "\"C:\\Users\\xtvas\\Repositories\\pcsx2\\128mb\\sstates\\SCUS-97124 (1B3976AB).00.p2s\"", - "${workspaceRoot}" - ] - }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "dgo_unpacker.exe (bin\\dgo_unpacker.exe)", - "name": "Run - DGO Unpacker (test)", + "name": "Tools - DGO Unpacker (test)", "args": [ "C:\\GameData\\Jak1\\Backup\\DGO-PAL\\GAME", "C:\\GameData\\Jak1\\Backup\\DISC-PAL\\CGO\\GAME.CGO" @@ -173,8 +168,8 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "extractor.exe (bin\\extractor.exe)", - "name": "Run - Extractor - Extract", - "args": ["\"E:\\ISOs\\Jak\\дWTF平仮名WTF\\Jak 1.iso\""] + "name": "Tools - Extractor - Extract", + "args": ["E:\\ISOs\\Jak\\Jak 1.iso"] } ] } diff --git a/Taskfile.yml b/Taskfile.yml index fea6e5bc2c..6b6a0095f8 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -111,7 +111,7 @@ tasks: # TESTS offline-tests: cmds: - - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test "./iso_data/{{.GAME}}"' + - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}}' # TODO - update or replace # add-reference-test: # cmds: @@ -122,13 +122,13 @@ tasks: # cmds: # - python ./scripts/add-reference-test.py --file "{{.FILES}}" # - task: offline-tests - # update-reference-tests: - # cmds: - # - cmd: python ./scripts/default-file-or-folder.py --path failures - # - cmd: '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test "./iso_data/{{.GAME}}" --dump-mode' - # ignore_error: true - # - python ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ - # - task: offline-tests + update-reference-tests: + cmds: + - cmd: python ./scripts/default-file-or-folder.py --path failures + - cmd: '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --dump_current_output' + ignore_error: true + - python ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ + - task: offline-tests # find-label-types: # cmds: # - python ./scripts/next-decomp-file.py --files "{{.FILES}}" diff --git a/common/util/FileUtil.cpp b/common/util/FileUtil.cpp index 55123e6eae..d67aa87091 100644 --- a/common/util/FileUtil.cpp +++ b/common/util/FileUtil.cpp @@ -518,4 +518,16 @@ FILE* open_file(const fs::path& path, std::string mode) { #endif } +std::vector find_files_recursively(const fs::path base_dir, const std::regex& pattern) { + std::vector files = {}; + for (auto& p : fs::recursive_directory_iterator(base_dir)) { + if (p.is_regular_file()) { + if (std::regex_match(fs::path(p.path()).filename().string(), pattern)) { + files.push_back(p.path()); + } + } + } + return files; +} + } // namespace file_util diff --git a/common/util/FileUtil.h b/common/util/FileUtil.h index 90f5410ee5..83bd6c315c 100644 --- a/common/util/FileUtil.h +++ b/common/util/FileUtil.h @@ -17,6 +17,7 @@ #endif #include +#include #include #include @@ -54,6 +55,6 @@ void ISONameFromAnimationName(char* dst, const char* src); void assert_file_exists(const char* path, const char* error_message); bool dgo_header_is_compressed(const std::vector& data); std::vector decompress_dgo(const std::vector& data_in); - FILE* open_file(const fs::path& path, std::string mode); +std::vector find_files_recursively(const fs::path base_dir, const std::regex& pattern); } // namespace file_util diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/jak1/decompiler-macros.gc similarity index 100% rename from test/decompiler/reference/decompiler-macros.gc rename to test/decompiler/reference/jak1/decompiler-macros.gc diff --git a/test/decompiler/reference/engine/ambient/ambient_REF.gc b/test/decompiler/reference/jak1/engine/ambient/ambient_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ambient/ambient_REF.gc rename to test/decompiler/reference/jak1/engine/ambient/ambient_REF.gc diff --git a/test/decompiler/reference/engine/ambient/mood-tables_REF.gc b/test/decompiler/reference/jak1/engine/ambient/mood-tables_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ambient/mood-tables_REF.gc rename to test/decompiler/reference/jak1/engine/ambient/mood-tables_REF.gc diff --git a/test/decompiler/reference/engine/ambient/mood_REF.gc b/test/decompiler/reference/jak1/engine/ambient/mood_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ambient/mood_REF.gc rename to test/decompiler/reference/jak1/engine/ambient/mood_REF.gc diff --git a/test/decompiler/reference/engine/ambient/weather-part_REF.gc b/test/decompiler/reference/jak1/engine/ambient/weather-part_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ambient/weather-part_REF.gc rename to test/decompiler/reference/jak1/engine/ambient/weather-part_REF.gc diff --git a/test/decompiler/reference/engine/anim/aligner-h_REF.gc b/test/decompiler/reference/jak1/engine/anim/aligner-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/anim/aligner-h_REF.gc rename to test/decompiler/reference/jak1/engine/anim/aligner-h_REF.gc diff --git a/test/decompiler/reference/engine/anim/aligner_REF.gc b/test/decompiler/reference/jak1/engine/anim/aligner_REF.gc similarity index 100% rename from test/decompiler/reference/engine/anim/aligner_REF.gc rename to test/decompiler/reference/jak1/engine/anim/aligner_REF.gc diff --git a/test/decompiler/reference/engine/anim/bones-h_REF.gc b/test/decompiler/reference/jak1/engine/anim/bones-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/anim/bones-h_REF.gc rename to test/decompiler/reference/jak1/engine/anim/bones-h_REF.gc diff --git a/test/decompiler/reference/engine/anim/joint-h_REF.gc b/test/decompiler/reference/jak1/engine/anim/joint-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/anim/joint-h_REF.gc rename to test/decompiler/reference/jak1/engine/anim/joint-h_REF.gc diff --git a/test/decompiler/reference/engine/anim/joint_REF.gc b/test/decompiler/reference/jak1/engine/anim/joint_REF.gc similarity index 100% rename from test/decompiler/reference/engine/anim/joint_REF.gc rename to test/decompiler/reference/jak1/engine/anim/joint_REF.gc diff --git a/test/decompiler/reference/engine/anim/mspace-h_REF.gc b/test/decompiler/reference/jak1/engine/anim/mspace-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/anim/mspace-h_REF.gc rename to test/decompiler/reference/jak1/engine/anim/mspace-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-combiner_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-combiner_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-combiner_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-combiner_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-debug-h_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-debug-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-debug-h_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-debug-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-interface-h_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-interface-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-interface-h_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-interface-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-interface_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-interface_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-interface_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-interface_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-layout_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-layout_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-layout_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-layout_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-master_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-master_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-master_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-master_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-start_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-start_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-start_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-start_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-states-dbg_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-states-dbg_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-states-dbg_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-states-dbg_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-states_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-states_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-states_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-states_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-update-h_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-update-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-update-h_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-update-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/cam-update_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-update_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/cam-update_REF.gc rename to test/decompiler/reference/jak1/engine/camera/cam-update_REF.gc diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/jak1/engine/camera/camera-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/camera-h_REF.gc rename to test/decompiler/reference/jak1/engine/camera/camera-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/camera_REF.gc b/test/decompiler/reference/jak1/engine/camera/camera_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/camera_REF.gc rename to test/decompiler/reference/jak1/engine/camera/camera_REF.gc diff --git a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc b/test/decompiler/reference/jak1/engine/camera/math-camera-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/math-camera-h_REF.gc rename to test/decompiler/reference/jak1/engine/camera/math-camera-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/math-camera_REF.gc b/test/decompiler/reference/jak1/engine/camera/math-camera_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/math-camera_REF.gc rename to test/decompiler/reference/jak1/engine/camera/math-camera_REF.gc diff --git a/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc b/test/decompiler/reference/jak1/engine/camera/pov-camera-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/pov-camera-h_REF.gc rename to test/decompiler/reference/jak1/engine/camera/pov-camera-h_REF.gc diff --git a/test/decompiler/reference/engine/camera/pov-camera_REF.gc b/test/decompiler/reference/jak1/engine/camera/pov-camera_REF.gc similarity index 100% rename from test/decompiler/reference/engine/camera/pov-camera_REF.gc rename to test/decompiler/reference/jak1/engine/camera/pov-camera_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-cache-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-cache-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-cache-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-cache-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-edge-grab-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-edge-grab-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-edge-grab-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-edge-grab-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-edge-grab_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-edge-grab_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-edge-grab_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-edge-grab_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-frag-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-frag-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-frag-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-frag-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-frag_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-frag_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-frag_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-frag_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-func_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-func_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-func_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-func_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-mesh-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-mesh-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-mesh-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-mesh_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-mesh_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-mesh_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-mesh_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-probe_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-probe_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-probe_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-probe_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-reaction-target_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-reaction-target_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-reaction-target_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-reaction-target_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-shape-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-shape-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-shape-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-shape-rider_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-shape-rider_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-shape-rider_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-shape-rider_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-target-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-target-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-target-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-touch-h_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-touch-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-touch-h_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-touch-h_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide-touch_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide-touch_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide-touch_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide-touch_REF.gc diff --git a/test/decompiler/reference/engine/collide/collide_REF.gc b/test/decompiler/reference/jak1/engine/collide/collide_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/collide_REF.gc rename to test/decompiler/reference/jak1/engine/collide/collide_REF.gc diff --git a/test/decompiler/reference/engine/collide/main-collide_REF.gc b/test/decompiler/reference/jak1/engine/collide/main-collide_REF.gc similarity index 100% rename from test/decompiler/reference/engine/collide/main-collide_REF.gc rename to test/decompiler/reference/jak1/engine/collide/main-collide_REF.gc diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/jak1/engine/data/art-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/data/art-h_REF.gc rename to test/decompiler/reference/jak1/engine/data/art-h_REF.gc diff --git a/test/decompiler/reference/engine/data/res-h_REF.gc b/test/decompiler/reference/jak1/engine/data/res-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/data/res-h_REF.gc rename to test/decompiler/reference/jak1/engine/data/res-h_REF.gc diff --git a/test/decompiler/reference/engine/data/res_REF.gc b/test/decompiler/reference/jak1/engine/data/res_REF.gc similarity index 100% rename from test/decompiler/reference/engine/data/res_REF.gc rename to test/decompiler/reference/jak1/engine/data/res_REF.gc diff --git a/test/decompiler/reference/engine/debug/anim-tester_REF.gc b/test/decompiler/reference/jak1/engine/debug/anim-tester_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/anim-tester_REF.gc rename to test/decompiler/reference/jak1/engine/debug/anim-tester_REF.gc diff --git a/test/decompiler/reference/engine/debug/assert-h_REF.gc b/test/decompiler/reference/jak1/engine/debug/assert-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/assert-h_REF.gc rename to test/decompiler/reference/jak1/engine/debug/assert-h_REF.gc diff --git a/test/decompiler/reference/engine/debug/debug-h_REF.gc b/test/decompiler/reference/jak1/engine/debug/debug-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/debug-h_REF.gc rename to test/decompiler/reference/jak1/engine/debug/debug-h_REF.gc diff --git a/test/decompiler/reference/engine/debug/debug-sphere_REF.gc b/test/decompiler/reference/jak1/engine/debug/debug-sphere_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/debug-sphere_REF.gc rename to test/decompiler/reference/jak1/engine/debug/debug-sphere_REF.gc diff --git a/test/decompiler/reference/engine/debug/debug_REF.gc b/test/decompiler/reference/jak1/engine/debug/debug_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/debug_REF.gc rename to test/decompiler/reference/jak1/engine/debug/debug_REF.gc diff --git a/test/decompiler/reference/engine/debug/default-menu_REF.gc b/test/decompiler/reference/jak1/engine/debug/default-menu_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/default-menu_REF.gc rename to test/decompiler/reference/jak1/engine/debug/default-menu_REF.gc diff --git a/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc b/test/decompiler/reference/jak1/engine/debug/memory-usage-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/memory-usage-h_REF.gc rename to test/decompiler/reference/jak1/engine/debug/memory-usage-h_REF.gc diff --git a/test/decompiler/reference/engine/debug/memory-usage_REF.gc b/test/decompiler/reference/jak1/engine/debug/memory-usage_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/memory-usage_REF.gc rename to test/decompiler/reference/jak1/engine/debug/memory-usage_REF.gc diff --git a/test/decompiler/reference/engine/debug/menu_REF.gc b/test/decompiler/reference/jak1/engine/debug/menu_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/menu_REF.gc rename to test/decompiler/reference/jak1/engine/debug/menu_REF.gc diff --git a/test/decompiler/reference/engine/debug/part-tester_REF.gc b/test/decompiler/reference/jak1/engine/debug/part-tester_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/part-tester_REF.gc rename to test/decompiler/reference/jak1/engine/debug/part-tester_REF.gc diff --git a/test/decompiler/reference/engine/debug/stats-h_REF.gc b/test/decompiler/reference/jak1/engine/debug/stats-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/stats-h_REF.gc rename to test/decompiler/reference/jak1/engine/debug/stats-h_REF.gc diff --git a/test/decompiler/reference/engine/debug/viewer_REF.gc b/test/decompiler/reference/jak1/engine/debug/viewer_REF.gc similarity index 100% rename from test/decompiler/reference/engine/debug/viewer_REF.gc rename to test/decompiler/reference/jak1/engine/debug/viewer_REF.gc diff --git a/test/decompiler/reference/engine/dma/dma-bucket_REF.gc b/test/decompiler/reference/jak1/engine/dma/dma-bucket_REF.gc similarity index 100% rename from test/decompiler/reference/engine/dma/dma-bucket_REF.gc rename to test/decompiler/reference/jak1/engine/dma/dma-bucket_REF.gc diff --git a/test/decompiler/reference/engine/dma/dma-buffer_REF.gc b/test/decompiler/reference/jak1/engine/dma/dma-buffer_REF.gc similarity index 100% rename from test/decompiler/reference/engine/dma/dma-buffer_REF.gc rename to test/decompiler/reference/jak1/engine/dma/dma-buffer_REF.gc diff --git a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc b/test/decompiler/reference/jak1/engine/dma/dma-disasm_REF.gc similarity index 100% rename from test/decompiler/reference/engine/dma/dma-disasm_REF.gc rename to test/decompiler/reference/jak1/engine/dma/dma-disasm_REF.gc diff --git a/test/decompiler/reference/engine/dma/dma-h_REF.gc b/test/decompiler/reference/jak1/engine/dma/dma-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/dma/dma-h_REF.gc rename to test/decompiler/reference/jak1/engine/dma/dma-h_REF.gc diff --git a/test/decompiler/reference/engine/dma/dma_REF.gc b/test/decompiler/reference/jak1/engine/dma/dma_REF.gc similarity index 100% rename from test/decompiler/reference/engine/dma/dma_REF.gc rename to test/decompiler/reference/jak1/engine/dma/dma_REF.gc diff --git a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/draw-node-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/draw-node-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/draw-node-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/draw-node_REF.gc b/test/decompiler/reference/jak1/engine/draw/draw-node_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/draw-node_REF.gc rename to test/decompiler/reference/jak1/engine/draw/draw-node_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-actor-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-actor-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-actor-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-ambient-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-ambient-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-group-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-group-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-group-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-group-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-group_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-group_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-group_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-group_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-inline-array-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-inline-array-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-inline-array-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-inline-array-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-inline-array_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-inline-array_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-inline-array_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-tree-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-tree-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-tree-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-tree-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable-tree_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable-tree_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable-tree_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable-tree_REF.gc diff --git a/test/decompiler/reference/engine/draw/drawable_REF.gc b/test/decompiler/reference/jak1/engine/draw/drawable_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/drawable_REF.gc rename to test/decompiler/reference/jak1/engine/draw/drawable_REF.gc diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/jak1/engine/draw/process-drawable-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/process-drawable-h_REF.gc rename to test/decompiler/reference/jak1/engine/draw/process-drawable-h_REF.gc diff --git a/test/decompiler/reference/engine/draw/process-drawable_REF.gc b/test/decompiler/reference/jak1/engine/draw/process-drawable_REF.gc similarity index 100% rename from test/decompiler/reference/engine/draw/process-drawable_REF.gc rename to test/decompiler/reference/jak1/engine/draw/process-drawable_REF.gc diff --git a/test/decompiler/reference/engine/engine/connect_REF.gc b/test/decompiler/reference/jak1/engine/engine/connect_REF.gc similarity index 100% rename from test/decompiler/reference/engine/engine/connect_REF.gc rename to test/decompiler/reference/jak1/engine/engine/connect_REF.gc diff --git a/test/decompiler/reference/engine/engine/engines_REF.gc b/test/decompiler/reference/jak1/engine/engine/engines_REF.gc similarity index 100% rename from test/decompiler/reference/engine/engine/engines_REF.gc rename to test/decompiler/reference/jak1/engine/engine/engines_REF.gc diff --git a/test/decompiler/reference/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/jak1/engine/entity/actor-link-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/entity/actor-link-h_REF.gc rename to test/decompiler/reference/jak1/engine/entity/actor-link-h_REF.gc diff --git a/test/decompiler/reference/engine/entity/entity-h_REF.gc b/test/decompiler/reference/jak1/engine/entity/entity-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/entity/entity-h_REF.gc rename to test/decompiler/reference/jak1/engine/entity/entity-h_REF.gc diff --git a/test/decompiler/reference/engine/entity/entity-table_REF.gc b/test/decompiler/reference/jak1/engine/entity/entity-table_REF.gc similarity index 100% rename from test/decompiler/reference/engine/entity/entity-table_REF.gc rename to test/decompiler/reference/jak1/engine/entity/entity-table_REF.gc diff --git a/test/decompiler/reference/engine/entity/entity_REF.gc b/test/decompiler/reference/jak1/engine/entity/entity_REF.gc similarity index 100% rename from test/decompiler/reference/engine/entity/entity_REF.gc rename to test/decompiler/reference/jak1/engine/entity/entity_REF.gc diff --git a/test/decompiler/reference/engine/entity/relocate_REF.gc b/test/decompiler/reference/jak1/engine/entity/relocate_REF.gc similarity index 100% rename from test/decompiler/reference/engine/entity/relocate_REF.gc rename to test/decompiler/reference/jak1/engine/entity/relocate_REF.gc diff --git a/test/decompiler/reference/engine/game/collectables-part_REF.gc b/test/decompiler/reference/jak1/engine/game/collectables-part_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/collectables-part_REF.gc rename to test/decompiler/reference/jak1/engine/game/collectables-part_REF.gc diff --git a/test/decompiler/reference/engine/game/collectables_REF.gc b/test/decompiler/reference/jak1/engine/game/collectables_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/collectables_REF.gc rename to test/decompiler/reference/jak1/engine/game/collectables_REF.gc diff --git a/test/decompiler/reference/engine/game/crates_REF.gc b/test/decompiler/reference/jak1/engine/game/crates_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/crates_REF.gc rename to test/decompiler/reference/jak1/engine/game/crates_REF.gc diff --git a/test/decompiler/reference/engine/game/effect-control-h_REF.gc b/test/decompiler/reference/jak1/engine/game/effect-control-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/effect-control-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/effect-control-h_REF.gc diff --git a/test/decompiler/reference/engine/game/effect-control_REF.gc b/test/decompiler/reference/jak1/engine/game/effect-control_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/effect-control_REF.gc rename to test/decompiler/reference/jak1/engine/game/effect-control_REF.gc diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/jak1/engine/game/fact-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/fact-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/fact-h_REF.gc diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/jak1/engine/game/game-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/game-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/game-h_REF.gc diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/jak1/engine/game/game-info-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/game-info-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/game-info-h_REF.gc diff --git a/test/decompiler/reference/engine/game/game-info_REF.gc b/test/decompiler/reference/jak1/engine/game/game-info_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/game-info_REF.gc rename to test/decompiler/reference/jak1/engine/game/game-info_REF.gc diff --git a/test/decompiler/reference/engine/game/game-save_REF.gc b/test/decompiler/reference/jak1/engine/game/game-save_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/game-save_REF.gc rename to test/decompiler/reference/jak1/engine/game/game-save_REF.gc diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/jak1/engine/game/generic-obs-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/generic-obs-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/generic-obs-h_REF.gc diff --git a/test/decompiler/reference/engine/game/generic-obs_REF.gc b/test/decompiler/reference/jak1/engine/game/generic-obs_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/generic-obs_REF.gc rename to test/decompiler/reference/jak1/engine/game/generic-obs_REF.gc diff --git a/test/decompiler/reference/engine/game/main-h_REF.gc b/test/decompiler/reference/jak1/engine/game/main-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/main-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/main-h_REF.gc diff --git a/test/decompiler/reference/engine/game/main_REF.gc b/test/decompiler/reference/jak1/engine/game/main_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/main_REF.gc rename to test/decompiler/reference/jak1/engine/game/main_REF.gc diff --git a/test/decompiler/reference/engine/game/powerups_REF.gc b/test/decompiler/reference/jak1/engine/game/powerups_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/powerups_REF.gc rename to test/decompiler/reference/jak1/engine/game/powerups_REF.gc diff --git a/test/decompiler/reference/engine/game/projectiles-h_REF.gc b/test/decompiler/reference/jak1/engine/game/projectiles-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/projectiles-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/projectiles-h_REF.gc diff --git a/test/decompiler/reference/engine/game/projectiles_REF.gc b/test/decompiler/reference/jak1/engine/game/projectiles_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/projectiles_REF.gc rename to test/decompiler/reference/jak1/engine/game/projectiles_REF.gc diff --git a/test/decompiler/reference/engine/game/settings-h_REF.gc b/test/decompiler/reference/jak1/engine/game/settings-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/settings-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/settings-h_REF.gc diff --git a/test/decompiler/reference/engine/game/settings_REF.gc b/test/decompiler/reference/jak1/engine/game/settings_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/settings_REF.gc rename to test/decompiler/reference/jak1/engine/game/settings_REF.gc diff --git a/test/decompiler/reference/engine/game/task/game-task-h_REF.gc b/test/decompiler/reference/jak1/engine/game/task/game-task-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/task/game-task-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/task/game-task-h_REF.gc diff --git a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc b/test/decompiler/reference/jak1/engine/game/task/hint-control-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/task/hint-control-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/task/hint-control-h_REF.gc diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/jak1/engine/game/task/hint-control_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/task/hint-control_REF.gc rename to test/decompiler/reference/jak1/engine/game/task/hint-control_REF.gc diff --git a/test/decompiler/reference/engine/game/task/process-taskable_REF.gc b/test/decompiler/reference/jak1/engine/game/task/process-taskable_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/task/process-taskable_REF.gc rename to test/decompiler/reference/jak1/engine/game/task/process-taskable_REF.gc diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/jak1/engine/game/task/task-control-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/task/task-control-h_REF.gc rename to test/decompiler/reference/jak1/engine/game/task/task-control-h_REF.gc diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/jak1/engine/game/task/task-control_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/task/task-control_REF.gc rename to test/decompiler/reference/jak1/engine/game/task/task-control_REF.gc diff --git a/test/decompiler/reference/engine/game/video_REF.gc b/test/decompiler/reference/jak1/engine/game/video_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/video_REF.gc rename to test/decompiler/reference/jak1/engine/game/video_REF.gc diff --git a/test/decompiler/reference/engine/game/voicebox_REF.gc b/test/decompiler/reference/jak1/engine/game/voicebox_REF.gc similarity index 100% rename from test/decompiler/reference/engine/game/voicebox_REF.gc rename to test/decompiler/reference/jak1/engine/game/voicebox_REF.gc diff --git a/test/decompiler/reference/engine/geometry/bounding-box-h_REF.gc b/test/decompiler/reference/jak1/engine/geometry/bounding-box-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/bounding-box-h_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/bounding-box-h_REF.gc diff --git a/test/decompiler/reference/engine/geometry/bounding-box_REF.gc b/test/decompiler/reference/jak1/engine/geometry/bounding-box_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/bounding-box_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/bounding-box_REF.gc diff --git a/test/decompiler/reference/engine/geometry/cylinder_REF.gc b/test/decompiler/reference/jak1/engine/geometry/cylinder_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/cylinder_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/cylinder_REF.gc diff --git a/test/decompiler/reference/engine/geometry/geometry-h_REF.gc b/test/decompiler/reference/jak1/engine/geometry/geometry-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/geometry-h_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/geometry-h_REF.gc diff --git a/test/decompiler/reference/engine/geometry/geometry_REF.gc b/test/decompiler/reference/jak1/engine/geometry/geometry_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/geometry_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/geometry_REF.gc diff --git a/test/decompiler/reference/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/jak1/engine/geometry/vol-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/vol-h_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/vol-h_REF.gc diff --git a/test/decompiler/reference/engine/geometry/vol_REF.gc b/test/decompiler/reference/jak1/engine/geometry/vol_REF.gc similarity index 100% rename from test/decompiler/reference/engine/geometry/vol_REF.gc rename to test/decompiler/reference/jak1/engine/geometry/vol_REF.gc diff --git a/test/decompiler/reference/engine/gfx/background-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/background-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/background-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/background-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/background_REF.gc b/test/decompiler/reference/jak1/engine/gfx/background_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/background_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/background_REF.gc diff --git a/test/decompiler/reference/engine/gfx/capture_REF.gc b/test/decompiler/reference/jak1/engine/gfx/capture_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/capture_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/capture_REF.gc diff --git a/test/decompiler/reference/engine/gfx/decomp-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/decomp-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/decomp-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/decomp-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/depth-cue-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/depth-cue-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/depth-cue-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/depth-cue-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/depth-cue_REF.gc b/test/decompiler/reference/jak1/engine/gfx/depth-cue_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/depth-cue_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/depth-cue_REF.gc diff --git a/test/decompiler/reference/engine/gfx/eye-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/eye-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/eye-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/eye-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/eye_REF.gc b/test/decompiler/reference/jak1/engine/gfx/eye_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/eye_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/eye_REF.gc diff --git a/test/decompiler/reference/engine/gfx/font-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/font-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/font-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/font-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/font_REF.gc b/test/decompiler/reference/jak1/engine/gfx/font_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/font_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/font_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic-merc_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic-merc_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic-merc_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic-merc_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic-vu0_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic-vu0_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic-vu0_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic-vu0_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic-vu1-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic-vu1-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic-vu1-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic-vu1-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic-vu1_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic-vu1_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic-vu1_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic-vu1_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic-work-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic-work-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic-work-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic-work-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/generic/generic_REF.gc b/test/decompiler/reference/jak1/engine/gfx/generic/generic_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/generic/generic_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/generic/generic_REF.gc diff --git a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/hw/display-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/hw/display-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/hw/display-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/jak1/engine/gfx/hw/display_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/hw/display_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/hw/display_REF.gc diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/jak1/engine/gfx/hw/gs_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/hw/gs_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/hw/gs_REF.gc diff --git a/test/decompiler/reference/engine/gfx/hw/video-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/hw/video-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/hw/video-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/hw/video-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/hw/vu1-user-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/hw/vu1-user-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/hw/vu1-user-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/hw/vu1-user-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/lights-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/lights-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/lights-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/lights-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/lights_REF.gc b/test/decompiler/reference/jak1/engine/gfx/lights_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/lights_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/lights_REF.gc diff --git a/test/decompiler/reference/engine/gfx/merc/generic-merc-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/merc/generic-merc-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/merc/generic-merc-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/merc/generic-merc-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/merc/merc-death_REF.gc b/test/decompiler/reference/jak1/engine/gfx/merc/merc-death_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/merc/merc-death_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/merc/merc-death_REF.gc diff --git a/test/decompiler/reference/engine/gfx/merc/merc-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/merc/merc-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/merc/merc-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/merc/merc-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/merc/merc-vu1_REF.gc b/test/decompiler/reference/jak1/engine/gfx/merc/merc-vu1_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/merc/merc-vu1_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/merc/merc-vu1_REF.gc diff --git a/test/decompiler/reference/engine/gfx/merc/merc_REF.gc b/test/decompiler/reference/jak1/engine/gfx/merc/merc_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/merc/merc_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/merc/merc_REF.gc diff --git a/test/decompiler/reference/engine/gfx/mood-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/mood-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/mood-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/mood-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-frames_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-frames_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-frames_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-frames_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-mid_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-mid_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-mid_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-mid_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-near_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-near_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-near_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-near_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-tables_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-tables_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-tables_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-tables_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-texture_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-texture_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-texture_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-texture_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-trans-tables_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-trans-tables_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-trans-tables_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-trans-tables_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-transition_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-transition_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-transition_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-transition_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-vu0_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ocean/ocean-vu0_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ocean/ocean-vu0_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ocean/ocean-vu0_REF.gc diff --git a/test/decompiler/reference/engine/gfx/ripple_REF.gc b/test/decompiler/reference/jak1/engine/gfx/ripple_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/ripple_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/ripple_REF.gc diff --git a/test/decompiler/reference/engine/gfx/shadow/shadow-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/shadow/shadow-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/shadow/shadow-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/shadow/shadow-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/shadow/shadow-vu1_REF.gc b/test/decompiler/reference/jak1/engine/gfx/shadow/shadow-vu1_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/shadow/shadow-vu1_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/shadow/shadow-vu1_REF.gc diff --git a/test/decompiler/reference/engine/gfx/shadow/shadow_REF.gc b/test/decompiler/reference/jak1/engine/gfx/shadow/shadow_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/shadow/shadow_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/shadow/shadow_REF.gc diff --git a/test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc b/test/decompiler/reference/jak1/engine/gfx/shrub/shrub-work_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/shrub/shrub-work_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/shrub/shrub-work_REF.gc diff --git a/test/decompiler/reference/engine/gfx/shrub/shrubbery-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/shrub/shrubbery-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/shrub/shrubbery-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/shrub/shrubbery-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sky/sky-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sky/sky-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sky/sky-tng_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sky/sky-tng_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sky/sky-tng_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sky/sky-tng_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sky/sky-utils_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sky/sky-utils_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sky/sky-utils_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sky/sky_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sky/sky_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sky/sky_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sky/sky_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sprite/sprite-distort_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sprite/sprite-distort_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sprite/sprite-distort_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sprite/sprite-distort_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sprite/sprite-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sprite/sprite-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sprite/sprite-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sprite/sprite-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/sprite/sprite_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sprite/sprite_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/sprite/sprite_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/sprite/sprite_REF.gc diff --git a/test/decompiler/reference/engine/gfx/texture-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/texture-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/texture-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/texture-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/texture_REF.gc b/test/decompiler/reference/jak1/engine/gfx/texture_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/texture_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/texture_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/subdivide-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/subdivide-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/subdivide_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/subdivide_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-methods_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-methods_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/tfrag-methods_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-methods_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-near_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-near_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/tfrag-near_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-near_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-work_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-work_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/tfrag-work_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag-work_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tfrag/tfrag_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tfrag/tfrag_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/generic-tie-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/generic-tie-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/generic-tie-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/generic-tie-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/prototype-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/prototype-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/prototype_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/prototype_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/prototype_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/prototype_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/tie-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/tie-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/tie-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/tie-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/tie-methods_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/tie-methods_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/tie-methods_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/tie-methods_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/tie-near_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/tie-near_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/tie-near_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/tie-near_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/tie-work_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/tie-work_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/tie-work_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/tie-work_REF.gc diff --git a/test/decompiler/reference/engine/gfx/tie/tie_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tie/tie_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/tie/tie_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/tie/tie_REF.gc diff --git a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/time-of-day-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/time-of-day-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/time-of-day_REF.gc b/test/decompiler/reference/jak1/engine/gfx/time-of-day_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/time-of-day_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/time-of-day_REF.gc diff --git a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/vis/bsp-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/vis/bsp-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/vis/bsp_REF.gc b/test/decompiler/reference/jak1/engine/gfx/vis/bsp_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/vis/bsp_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/vis/bsp_REF.gc diff --git a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/water/water-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/water/water-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/water/water-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/water/water_REF.gc b/test/decompiler/reference/jak1/engine/gfx/water/water_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/water/water_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/water/water_REF.gc diff --git a/test/decompiler/reference/engine/gfx/wind-h_REF.gc b/test/decompiler/reference/jak1/engine/gfx/wind-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/wind-h_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/wind-h_REF.gc diff --git a/test/decompiler/reference/engine/gfx/wind_REF.gc b/test/decompiler/reference/jak1/engine/gfx/wind_REF.gc similarity index 100% rename from test/decompiler/reference/engine/gfx/wind_REF.gc rename to test/decompiler/reference/jak1/engine/gfx/wind_REF.gc diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/jak1/engine/level/level-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/level/level-h_REF.gc rename to test/decompiler/reference/jak1/engine/level/level-h_REF.gc diff --git a/test/decompiler/reference/engine/level/level-info_REF.gc b/test/decompiler/reference/jak1/engine/level/level-info_REF.gc similarity index 100% rename from test/decompiler/reference/engine/level/level-info_REF.gc rename to test/decompiler/reference/jak1/engine/level/level-info_REF.gc diff --git a/test/decompiler/reference/engine/level/level_REF.gc b/test/decompiler/reference/jak1/engine/level/level_REF.gc similarity index 100% rename from test/decompiler/reference/engine/level/level_REF.gc rename to test/decompiler/reference/jak1/engine/level/level_REF.gc diff --git a/test/decompiler/reference/engine/level/load-boundary-data_REF.gc b/test/decompiler/reference/jak1/engine/level/load-boundary-data_REF.gc similarity index 100% rename from test/decompiler/reference/engine/level/load-boundary-data_REF.gc rename to test/decompiler/reference/jak1/engine/level/load-boundary-data_REF.gc diff --git a/test/decompiler/reference/engine/level/load-boundary-h_REF.gc b/test/decompiler/reference/jak1/engine/level/load-boundary-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/level/load-boundary-h_REF.gc rename to test/decompiler/reference/jak1/engine/level/load-boundary-h_REF.gc diff --git a/test/decompiler/reference/engine/level/load-boundary_REF.gc b/test/decompiler/reference/jak1/engine/level/load-boundary_REF.gc similarity index 100% rename from test/decompiler/reference/engine/level/load-boundary_REF.gc rename to test/decompiler/reference/jak1/engine/level/load-boundary_REF.gc diff --git a/test/decompiler/reference/engine/load/decomp_REF.gc b/test/decompiler/reference/jak1/engine/load/decomp_REF.gc similarity index 100% rename from test/decompiler/reference/engine/load/decomp_REF.gc rename to test/decompiler/reference/jak1/engine/load/decomp_REF.gc diff --git a/test/decompiler/reference/engine/load/file-io_REF.gc b/test/decompiler/reference/jak1/engine/load/file-io_REF.gc similarity index 100% rename from test/decompiler/reference/engine/load/file-io_REF.gc rename to test/decompiler/reference/jak1/engine/load/file-io_REF.gc diff --git a/test/decompiler/reference/engine/load/load-dgo_REF.gc b/test/decompiler/reference/jak1/engine/load/load-dgo_REF.gc similarity index 100% rename from test/decompiler/reference/engine/load/load-dgo_REF.gc rename to test/decompiler/reference/jak1/engine/load/load-dgo_REF.gc diff --git a/test/decompiler/reference/engine/load/loader-h_REF.gc b/test/decompiler/reference/jak1/engine/load/loader-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/load/loader-h_REF.gc rename to test/decompiler/reference/jak1/engine/load/loader-h_REF.gc diff --git a/test/decompiler/reference/engine/load/loader_REF.gc b/test/decompiler/reference/jak1/engine/load/loader_REF.gc similarity index 100% rename from test/decompiler/reference/engine/load/loader_REF.gc rename to test/decompiler/reference/jak1/engine/load/loader_REF.gc diff --git a/test/decompiler/reference/engine/load/ramdisk_REF.gc b/test/decompiler/reference/jak1/engine/load/ramdisk_REF.gc similarity index 100% rename from test/decompiler/reference/engine/load/ramdisk_REF.gc rename to test/decompiler/reference/jak1/engine/load/ramdisk_REF.gc diff --git a/test/decompiler/reference/engine/math/euler-h_REF.gc b/test/decompiler/reference/jak1/engine/math/euler-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/euler-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/euler-h_REF.gc diff --git a/test/decompiler/reference/engine/math/euler_REF.gc b/test/decompiler/reference/jak1/engine/math/euler_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/euler_REF.gc rename to test/decompiler/reference/jak1/engine/math/euler_REF.gc diff --git a/test/decompiler/reference/engine/math/math_REF.gc b/test/decompiler/reference/jak1/engine/math/math_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/math_REF.gc rename to test/decompiler/reference/jak1/engine/math/math_REF.gc diff --git a/test/decompiler/reference/engine/math/matrix-h_REF.gc b/test/decompiler/reference/jak1/engine/math/matrix-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/matrix-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/matrix-h_REF.gc diff --git a/test/decompiler/reference/engine/math/matrix_REF.gc b/test/decompiler/reference/jak1/engine/math/matrix_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/matrix_REF.gc rename to test/decompiler/reference/jak1/engine/math/matrix_REF.gc diff --git a/test/decompiler/reference/engine/math/quaternion-h_REF.gc b/test/decompiler/reference/jak1/engine/math/quaternion-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/quaternion-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/quaternion-h_REF.gc diff --git a/test/decompiler/reference/engine/math/quaternion_REF.gc b/test/decompiler/reference/jak1/engine/math/quaternion_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/quaternion_REF.gc rename to test/decompiler/reference/jak1/engine/math/quaternion_REF.gc diff --git a/test/decompiler/reference/engine/math/transform-h_REF.gc b/test/decompiler/reference/jak1/engine/math/transform-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/transform-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/transform-h_REF.gc diff --git a/test/decompiler/reference/engine/math/transform_REF.gc b/test/decompiler/reference/jak1/engine/math/transform_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/transform_REF.gc rename to test/decompiler/reference/jak1/engine/math/transform_REF.gc diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/jak1/engine/math/transformq-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/transformq-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/transformq-h_REF.gc diff --git a/test/decompiler/reference/engine/math/transformq_REF.gc b/test/decompiler/reference/jak1/engine/math/transformq_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/transformq_REF.gc rename to test/decompiler/reference/jak1/engine/math/transformq_REF.gc diff --git a/test/decompiler/reference/engine/math/trigonometry-h_REF.gc b/test/decompiler/reference/jak1/engine/math/trigonometry-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/trigonometry-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/trigonometry-h_REF.gc diff --git a/test/decompiler/reference/engine/math/trigonometry_REF.gc b/test/decompiler/reference/jak1/engine/math/trigonometry_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/trigonometry_REF.gc rename to test/decompiler/reference/jak1/engine/math/trigonometry_REF.gc diff --git a/test/decompiler/reference/engine/math/vector-h_REF.gc b/test/decompiler/reference/jak1/engine/math/vector-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/vector-h_REF.gc rename to test/decompiler/reference/jak1/engine/math/vector-h_REF.gc diff --git a/test/decompiler/reference/engine/math/vector_REF.gc b/test/decompiler/reference/jak1/engine/math/vector_REF.gc similarity index 100% rename from test/decompiler/reference/engine/math/vector_REF.gc rename to test/decompiler/reference/jak1/engine/math/vector_REF.gc diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/jak1/engine/nav/navigate-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/nav/navigate-h_REF.gc rename to test/decompiler/reference/jak1/engine/nav/navigate-h_REF.gc diff --git a/test/decompiler/reference/engine/nav/navigate_REF.gc b/test/decompiler/reference/jak1/engine/nav/navigate_REF.gc similarity index 100% rename from test/decompiler/reference/engine/nav/navigate_REF.gc rename to test/decompiler/reference/jak1/engine/nav/navigate_REF.gc diff --git a/test/decompiler/reference/engine/nav/path-h_REF.gc b/test/decompiler/reference/jak1/engine/nav/path-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/nav/path-h_REF.gc rename to test/decompiler/reference/jak1/engine/nav/path-h_REF.gc diff --git a/test/decompiler/reference/engine/nav/path_REF.gc b/test/decompiler/reference/jak1/engine/nav/path_REF.gc similarity index 100% rename from test/decompiler/reference/engine/nav/path_REF.gc rename to test/decompiler/reference/jak1/engine/nav/path_REF.gc diff --git a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc b/test/decompiler/reference/jak1/engine/physics/dynamics-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/physics/dynamics-h_REF.gc rename to test/decompiler/reference/jak1/engine/physics/dynamics-h_REF.gc diff --git a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc b/test/decompiler/reference/jak1/engine/physics/trajectory-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/physics/trajectory-h_REF.gc rename to test/decompiler/reference/jak1/engine/physics/trajectory-h_REF.gc diff --git a/test/decompiler/reference/engine/physics/trajectory_REF.gc b/test/decompiler/reference/jak1/engine/physics/trajectory_REF.gc similarity index 100% rename from test/decompiler/reference/engine/physics/trajectory_REF.gc rename to test/decompiler/reference/jak1/engine/physics/trajectory_REF.gc diff --git a/test/decompiler/reference/engine/ps2/memcard-h_REF.gc b/test/decompiler/reference/jak1/engine/ps2/memcard-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/memcard-h_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/memcard-h_REF.gc diff --git a/test/decompiler/reference/engine/ps2/pad_REF.gc b/test/decompiler/reference/jak1/engine/ps2/pad_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/pad_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/pad_REF.gc diff --git a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc b/test/decompiler/reference/jak1/engine/ps2/rpc-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/rpc-h_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/rpc-h_REF.gc diff --git a/test/decompiler/reference/engine/ps2/timer-h_REF.gc b/test/decompiler/reference/jak1/engine/ps2/timer-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/timer-h_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/timer-h_REF.gc diff --git a/test/decompiler/reference/engine/ps2/timer_REF.gc b/test/decompiler/reference/jak1/engine/ps2/timer_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/timer_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/timer_REF.gc diff --git a/test/decompiler/reference/engine/ps2/vif-h_REF.gc b/test/decompiler/reference/jak1/engine/ps2/vif-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/vif-h_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/vif-h_REF.gc diff --git a/test/decompiler/reference/engine/ps2/vu1-macros_REF.gc b/test/decompiler/reference/jak1/engine/ps2/vu1-macros_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ps2/vu1-macros_REF.gc rename to test/decompiler/reference/jak1/engine/ps2/vu1-macros_REF.gc diff --git a/test/decompiler/reference/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/jak1/engine/sound/gsound-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/sound/gsound-h_REF.gc rename to test/decompiler/reference/jak1/engine/sound/gsound-h_REF.gc diff --git a/test/decompiler/reference/engine/sound/gsound_REF.gc b/test/decompiler/reference/jak1/engine/sound/gsound_REF.gc similarity index 100% rename from test/decompiler/reference/engine/sound/gsound_REF.gc rename to test/decompiler/reference/jak1/engine/sound/gsound_REF.gc diff --git a/test/decompiler/reference/engine/sparticle/sparticle-h_REF.gc b/test/decompiler/reference/jak1/engine/sparticle/sparticle-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/sparticle/sparticle-h_REF.gc rename to test/decompiler/reference/jak1/engine/sparticle/sparticle-h_REF.gc diff --git a/test/decompiler/reference/engine/sparticle/sparticle-launcher-h_REF.gc b/test/decompiler/reference/jak1/engine/sparticle/sparticle-launcher-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/sparticle/sparticle-launcher-h_REF.gc rename to test/decompiler/reference/jak1/engine/sparticle/sparticle-launcher-h_REF.gc diff --git a/test/decompiler/reference/engine/sparticle/sparticle-launcher_REF.gc b/test/decompiler/reference/jak1/engine/sparticle/sparticle-launcher_REF.gc similarity index 100% rename from test/decompiler/reference/engine/sparticle/sparticle-launcher_REF.gc rename to test/decompiler/reference/jak1/engine/sparticle/sparticle-launcher_REF.gc diff --git a/test/decompiler/reference/engine/sparticle/sparticle_REF.gc b/test/decompiler/reference/jak1/engine/sparticle/sparticle_REF.gc similarity index 100% rename from test/decompiler/reference/engine/sparticle/sparticle_REF.gc rename to test/decompiler/reference/jak1/engine/sparticle/sparticle_REF.gc diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/jak1/engine/target/joint-mod-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/joint-mod-h_REF.gc rename to test/decompiler/reference/jak1/engine/target/joint-mod-h_REF.gc diff --git a/test/decompiler/reference/engine/target/logic-target_REF.gc b/test/decompiler/reference/jak1/engine/target/logic-target_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/logic-target_REF.gc rename to test/decompiler/reference/jak1/engine/target/logic-target_REF.gc diff --git a/test/decompiler/reference/engine/target/pat-h_REF.gc b/test/decompiler/reference/jak1/engine/target/pat-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/pat-h_REF.gc rename to test/decompiler/reference/jak1/engine/target/pat-h_REF.gc diff --git a/test/decompiler/reference/engine/target/sidekick_REF.gc b/test/decompiler/reference/jak1/engine/target/sidekick_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/sidekick_REF.gc rename to test/decompiler/reference/jak1/engine/target/sidekick_REF.gc diff --git a/test/decompiler/reference/engine/target/surface-h_REF.gc b/test/decompiler/reference/jak1/engine/target/surface-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/surface-h_REF.gc rename to test/decompiler/reference/jak1/engine/target/surface-h_REF.gc diff --git a/test/decompiler/reference/engine/target/target-death_REF.gc b/test/decompiler/reference/jak1/engine/target/target-death_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target-death_REF.gc rename to test/decompiler/reference/jak1/engine/target/target-death_REF.gc diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/jak1/engine/target/target-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target-h_REF.gc rename to test/decompiler/reference/jak1/engine/target/target-h_REF.gc diff --git a/test/decompiler/reference/engine/target/target-handler_REF.gc b/test/decompiler/reference/jak1/engine/target/target-handler_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target-handler_REF.gc rename to test/decompiler/reference/jak1/engine/target/target-handler_REF.gc diff --git a/test/decompiler/reference/engine/target/target-part_REF.gc b/test/decompiler/reference/jak1/engine/target/target-part_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target-part_REF.gc rename to test/decompiler/reference/jak1/engine/target/target-part_REF.gc diff --git a/test/decompiler/reference/engine/target/target-util_REF.gc b/test/decompiler/reference/jak1/engine/target/target-util_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target-util_REF.gc rename to test/decompiler/reference/jak1/engine/target/target-util_REF.gc diff --git a/test/decompiler/reference/engine/target/target2_REF.gc b/test/decompiler/reference/jak1/engine/target/target2_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target2_REF.gc rename to test/decompiler/reference/jak1/engine/target/target2_REF.gc diff --git a/test/decompiler/reference/engine/target/target_REF.gc b/test/decompiler/reference/jak1/engine/target/target_REF.gc similarity index 100% rename from test/decompiler/reference/engine/target/target_REF.gc rename to test/decompiler/reference/jak1/engine/target/target_REF.gc diff --git a/test/decompiler/reference/engine/ui/credits_REF.gc b/test/decompiler/reference/jak1/engine/ui/credits_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/credits_REF.gc rename to test/decompiler/reference/jak1/engine/ui/credits_REF.gc diff --git a/test/decompiler/reference/engine/ui/hud-classes_REF.gc b/test/decompiler/reference/jak1/engine/ui/hud-classes_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/hud-classes_REF.gc rename to test/decompiler/reference/jak1/engine/ui/hud-classes_REF.gc diff --git a/test/decompiler/reference/engine/ui/hud-h_REF.gc b/test/decompiler/reference/jak1/engine/ui/hud-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/hud-h_REF.gc rename to test/decompiler/reference/jak1/engine/ui/hud-h_REF.gc diff --git a/test/decompiler/reference/engine/ui/hud_REF.gc b/test/decompiler/reference/jak1/engine/ui/hud_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/hud_REF.gc rename to test/decompiler/reference/jak1/engine/ui/hud_REF.gc diff --git a/test/decompiler/reference/engine/ui/progress-h_REF.gc b/test/decompiler/reference/jak1/engine/ui/progress-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/progress-h_REF.gc rename to test/decompiler/reference/jak1/engine/ui/progress-h_REF.gc diff --git a/test/decompiler/reference/engine/ui/progress/progress-draw_REF.gc b/test/decompiler/reference/jak1/engine/ui/progress/progress-draw_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/progress/progress-draw_REF.gc rename to test/decompiler/reference/jak1/engine/ui/progress/progress-draw_REF.gc diff --git a/test/decompiler/reference/engine/ui/progress/progress-part_REF.gc b/test/decompiler/reference/jak1/engine/ui/progress/progress-part_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/progress/progress-part_REF.gc rename to test/decompiler/reference/jak1/engine/ui/progress/progress-part_REF.gc diff --git a/test/decompiler/reference/engine/ui/progress/progress-static_REF.gc b/test/decompiler/reference/jak1/engine/ui/progress/progress-static_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/progress/progress-static_REF.gc rename to test/decompiler/reference/jak1/engine/ui/progress/progress-static_REF.gc diff --git a/test/decompiler/reference/engine/ui/progress/progress_REF.gc b/test/decompiler/reference/jak1/engine/ui/progress/progress_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/progress/progress_REF.gc rename to test/decompiler/reference/jak1/engine/ui/progress/progress_REF.gc diff --git a/test/decompiler/reference/engine/ui/text-h_REF.gc b/test/decompiler/reference/jak1/engine/ui/text-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/text-h_REF.gc rename to test/decompiler/reference/jak1/engine/ui/text-h_REF.gc diff --git a/test/decompiler/reference/engine/ui/text_REF.gc b/test/decompiler/reference/jak1/engine/ui/text_REF.gc similarity index 100% rename from test/decompiler/reference/engine/ui/text_REF.gc rename to test/decompiler/reference/jak1/engine/ui/text_REF.gc diff --git a/test/decompiler/reference/engine/util/glist-h_REF.gc b/test/decompiler/reference/jak1/engine/util/glist-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/util/glist-h_REF.gc rename to test/decompiler/reference/jak1/engine/util/glist-h_REF.gc diff --git a/test/decompiler/reference/engine/util/glist_REF.gc b/test/decompiler/reference/jak1/engine/util/glist_REF.gc similarity index 100% rename from test/decompiler/reference/engine/util/glist_REF.gc rename to test/decompiler/reference/jak1/engine/util/glist_REF.gc diff --git a/test/decompiler/reference/engine/util/smush-control-h_REF.gc b/test/decompiler/reference/jak1/engine/util/smush-control-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/util/smush-control-h_REF.gc rename to test/decompiler/reference/jak1/engine/util/smush-control-h_REF.gc diff --git a/test/decompiler/reference/engine/util/sync-info-h_REF.gc b/test/decompiler/reference/jak1/engine/util/sync-info-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/util/sync-info-h_REF.gc rename to test/decompiler/reference/jak1/engine/util/sync-info-h_REF.gc diff --git a/test/decompiler/reference/engine/util/sync-info_REF.gc b/test/decompiler/reference/jak1/engine/util/sync-info_REF.gc similarity index 100% rename from test/decompiler/reference/engine/util/sync-info_REF.gc rename to test/decompiler/reference/jak1/engine/util/sync-info_REF.gc diff --git a/test/decompiler/reference/engine/util/types-h_REF.gc b/test/decompiler/reference/jak1/engine/util/types-h_REF.gc similarity index 100% rename from test/decompiler/reference/engine/util/types-h_REF.gc rename to test/decompiler/reference/jak1/engine/util/types-h_REF.gc diff --git a/test/decompiler/reference/kernel/dgo-h_REF.gc b/test/decompiler/reference/jak1/kernel/dgo-h_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/dgo-h_REF.gc rename to test/decompiler/reference/jak1/kernel/dgo-h_REF.gc diff --git a/test/decompiler/reference/kernel/gcommon_REF.gc b/test/decompiler/reference/jak1/kernel/gcommon_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/gcommon_REF.gc rename to test/decompiler/reference/jak1/kernel/gcommon_REF.gc diff --git a/test/decompiler/reference/kernel/gkernel-h_REF.gc b/test/decompiler/reference/jak1/kernel/gkernel-h_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/gkernel-h_REF.gc rename to test/decompiler/reference/jak1/kernel/gkernel-h_REF.gc diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/jak1/kernel/gkernel_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/gkernel_REF.gc rename to test/decompiler/reference/jak1/kernel/gkernel_REF.gc diff --git a/test/decompiler/reference/kernel/gstate_REF.gc b/test/decompiler/reference/jak1/kernel/gstate_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/gstate_REF.gc rename to test/decompiler/reference/jak1/kernel/gstate_REF.gc diff --git a/test/decompiler/reference/kernel/gstring-h_REF.gc b/test/decompiler/reference/jak1/kernel/gstring-h_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/gstring-h_REF.gc rename to test/decompiler/reference/jak1/kernel/gstring-h_REF.gc diff --git a/test/decompiler/reference/kernel/gstring_REF.gc b/test/decompiler/reference/jak1/kernel/gstring_REF.gc similarity index 100% rename from test/decompiler/reference/kernel/gstring_REF.gc rename to test/decompiler/reference/jak1/kernel/gstring_REF.gc diff --git a/test/decompiler/reference/levels/beach/air-h_REF.gc b/test/decompiler/reference/jak1/levels/beach/air-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/air-h_REF.gc rename to test/decompiler/reference/jak1/levels/beach/air-h_REF.gc diff --git a/test/decompiler/reference/levels/beach/air_REF.gc b/test/decompiler/reference/jak1/levels/beach/air_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/air_REF.gc rename to test/decompiler/reference/jak1/levels/beach/air_REF.gc diff --git a/test/decompiler/reference/levels/beach/beach-obs_REF.gc b/test/decompiler/reference/jak1/levels/beach/beach-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/beach-obs_REF.gc rename to test/decompiler/reference/jak1/levels/beach/beach-obs_REF.gc diff --git a/test/decompiler/reference/levels/beach/beach-part_REF.gc b/test/decompiler/reference/jak1/levels/beach/beach-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/beach-part_REF.gc rename to test/decompiler/reference/jak1/levels/beach/beach-part_REF.gc diff --git a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc b/test/decompiler/reference/jak1/levels/beach/beach-rocks_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/beach-rocks_REF.gc rename to test/decompiler/reference/jak1/levels/beach/beach-rocks_REF.gc diff --git a/test/decompiler/reference/levels/beach/bird-lady-beach_REF.gc b/test/decompiler/reference/jak1/levels/beach/bird-lady-beach_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/bird-lady-beach_REF.gc rename to test/decompiler/reference/jak1/levels/beach/bird-lady-beach_REF.gc diff --git a/test/decompiler/reference/levels/beach/bird-lady_REF.gc b/test/decompiler/reference/jak1/levels/beach/bird-lady_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/bird-lady_REF.gc rename to test/decompiler/reference/jak1/levels/beach/bird-lady_REF.gc diff --git a/test/decompiler/reference/levels/beach/lurkercrab_REF.gc b/test/decompiler/reference/jak1/levels/beach/lurkercrab_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/lurkercrab_REF.gc rename to test/decompiler/reference/jak1/levels/beach/lurkercrab_REF.gc diff --git a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc b/test/decompiler/reference/jak1/levels/beach/lurkerpuppy_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc rename to test/decompiler/reference/jak1/levels/beach/lurkerpuppy_REF.gc diff --git a/test/decompiler/reference/levels/beach/lurkerworm_REF.gc b/test/decompiler/reference/jak1/levels/beach/lurkerworm_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/lurkerworm_REF.gc rename to test/decompiler/reference/jak1/levels/beach/lurkerworm_REF.gc diff --git a/test/decompiler/reference/levels/beach/mayor_REF.gc b/test/decompiler/reference/jak1/levels/beach/mayor_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/mayor_REF.gc rename to test/decompiler/reference/jak1/levels/beach/mayor_REF.gc diff --git a/test/decompiler/reference/levels/beach/pelican_REF.gc b/test/decompiler/reference/jak1/levels/beach/pelican_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/pelican_REF.gc rename to test/decompiler/reference/jak1/levels/beach/pelican_REF.gc diff --git a/test/decompiler/reference/levels/beach/sculptor_REF.gc b/test/decompiler/reference/jak1/levels/beach/sculptor_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/sculptor_REF.gc rename to test/decompiler/reference/jak1/levels/beach/sculptor_REF.gc diff --git a/test/decompiler/reference/levels/beach/seagull_REF.gc b/test/decompiler/reference/jak1/levels/beach/seagull_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/seagull_REF.gc rename to test/decompiler/reference/jak1/levels/beach/seagull_REF.gc diff --git a/test/decompiler/reference/levels/beach/twister_REF.gc b/test/decompiler/reference/jak1/levels/beach/twister_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/twister_REF.gc rename to test/decompiler/reference/jak1/levels/beach/twister_REF.gc diff --git a/test/decompiler/reference/levels/beach/wobbler_REF.gc b/test/decompiler/reference/jak1/levels/beach/wobbler_REF.gc similarity index 100% rename from test/decompiler/reference/levels/beach/wobbler_REF.gc rename to test/decompiler/reference/jak1/levels/beach/wobbler_REF.gc diff --git a/test/decompiler/reference/levels/citadel/assistant-citadel_REF.gc b/test/decompiler/reference/jak1/levels/citadel/assistant-citadel_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/assistant-citadel_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/assistant-citadel_REF.gc diff --git a/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citadel-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/citadel-obs_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/citadel-obs_REF.gc diff --git a/test/decompiler/reference/levels/citadel/citadel-part_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citadel-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/citadel-part_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/citadel-part_REF.gc diff --git a/test/decompiler/reference/levels/citadel/citadel-sages_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citadel-sages_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/citadel-sages_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/citadel-sages_REF.gc diff --git a/test/decompiler/reference/levels/citadel/citb-bunny_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citb-bunny_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/citb-bunny_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/citb-bunny_REF.gc diff --git a/test/decompiler/reference/levels/citadel/citb-drop-plat_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citb-drop-plat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/citb-drop-plat_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/citb-drop-plat_REF.gc diff --git a/test/decompiler/reference/levels/citadel/citb-plat_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citb-plat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/citadel/citb-plat_REF.gc rename to test/decompiler/reference/jak1/levels/citadel/citb-plat_REF.gc diff --git a/test/decompiler/reference/levels/common/babak_REF.gc b/test/decompiler/reference/jak1/levels/common/babak_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/babak_REF.gc rename to test/decompiler/reference/jak1/levels/common/babak_REF.gc diff --git a/test/decompiler/reference/levels/common/basebutton_REF.gc b/test/decompiler/reference/jak1/levels/common/basebutton_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/basebutton_REF.gc rename to test/decompiler/reference/jak1/levels/common/basebutton_REF.gc diff --git a/test/decompiler/reference/levels/common/baseplat_REF.gc b/test/decompiler/reference/jak1/levels/common/baseplat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/baseplat_REF.gc rename to test/decompiler/reference/jak1/levels/common/baseplat_REF.gc diff --git a/test/decompiler/reference/levels/common/battlecontroller_REF.gc b/test/decompiler/reference/jak1/levels/common/battlecontroller_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/battlecontroller_REF.gc rename to test/decompiler/reference/jak1/levels/common/battlecontroller_REF.gc diff --git a/test/decompiler/reference/levels/common/blocking-plane_REF.gc b/test/decompiler/reference/jak1/levels/common/blocking-plane_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/blocking-plane_REF.gc rename to test/decompiler/reference/jak1/levels/common/blocking-plane_REF.gc diff --git a/test/decompiler/reference/levels/common/dark-eco-pool_REF.gc b/test/decompiler/reference/jak1/levels/common/dark-eco-pool_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/dark-eco-pool_REF.gc rename to test/decompiler/reference/jak1/levels/common/dark-eco-pool_REF.gc diff --git a/test/decompiler/reference/levels/common/joint-exploder_REF.gc b/test/decompiler/reference/jak1/levels/common/joint-exploder_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/joint-exploder_REF.gc rename to test/decompiler/reference/jak1/levels/common/joint-exploder_REF.gc diff --git a/test/decompiler/reference/levels/common/launcherdoor_REF.gc b/test/decompiler/reference/jak1/levels/common/launcherdoor_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/launcherdoor_REF.gc rename to test/decompiler/reference/jak1/levels/common/launcherdoor_REF.gc diff --git a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc b/test/decompiler/reference/jak1/levels/common/nav-enemy-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/nav-enemy-h_REF.gc rename to test/decompiler/reference/jak1/levels/common/nav-enemy-h_REF.gc diff --git a/test/decompiler/reference/levels/common/nav-enemy_REF.gc b/test/decompiler/reference/jak1/levels/common/nav-enemy_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/nav-enemy_REF.gc rename to test/decompiler/reference/jak1/levels/common/nav-enemy_REF.gc diff --git a/test/decompiler/reference/levels/common/orb-cache_REF.gc b/test/decompiler/reference/jak1/levels/common/orb-cache_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/orb-cache_REF.gc rename to test/decompiler/reference/jak1/levels/common/orb-cache_REF.gc diff --git a/test/decompiler/reference/levels/common/plat-button_REF.gc b/test/decompiler/reference/jak1/levels/common/plat-button_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/plat-button_REF.gc rename to test/decompiler/reference/jak1/levels/common/plat-button_REF.gc diff --git a/test/decompiler/reference/levels/common/plat-eco_REF.gc b/test/decompiler/reference/jak1/levels/common/plat-eco_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/plat-eco_REF.gc rename to test/decompiler/reference/jak1/levels/common/plat-eco_REF.gc diff --git a/test/decompiler/reference/levels/common/plat_REF.gc b/test/decompiler/reference/jak1/levels/common/plat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/plat_REF.gc rename to test/decompiler/reference/jak1/levels/common/plat_REF.gc diff --git a/test/decompiler/reference/levels/common/rigid-body-h_REF.gc b/test/decompiler/reference/jak1/levels/common/rigid-body-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/rigid-body-h_REF.gc rename to test/decompiler/reference/jak1/levels/common/rigid-body-h_REF.gc diff --git a/test/decompiler/reference/levels/common/rigid-body_REF.gc b/test/decompiler/reference/jak1/levels/common/rigid-body_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/rigid-body_REF.gc rename to test/decompiler/reference/jak1/levels/common/rigid-body_REF.gc diff --git a/test/decompiler/reference/levels/common/ropebridge_REF.gc b/test/decompiler/reference/jak1/levels/common/ropebridge_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/ropebridge_REF.gc rename to test/decompiler/reference/jak1/levels/common/ropebridge_REF.gc diff --git a/test/decompiler/reference/levels/common/sharkey_REF.gc b/test/decompiler/reference/jak1/levels/common/sharkey_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/sharkey_REF.gc rename to test/decompiler/reference/jak1/levels/common/sharkey_REF.gc diff --git a/test/decompiler/reference/levels/common/texture-upload_REF.gc b/test/decompiler/reference/jak1/levels/common/texture-upload_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/texture-upload_REF.gc rename to test/decompiler/reference/jak1/levels/common/texture-upload_REF.gc diff --git a/test/decompiler/reference/levels/common/ticky_REF.gc b/test/decompiler/reference/jak1/levels/common/ticky_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/ticky_REF.gc rename to test/decompiler/reference/jak1/levels/common/ticky_REF.gc diff --git a/test/decompiler/reference/levels/common/tippy_REF.gc b/test/decompiler/reference/jak1/levels/common/tippy_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/tippy_REF.gc rename to test/decompiler/reference/jak1/levels/common/tippy_REF.gc diff --git a/test/decompiler/reference/levels/common/water-anim_REF.gc b/test/decompiler/reference/jak1/levels/common/water-anim_REF.gc similarity index 100% rename from test/decompiler/reference/levels/common/water-anim_REF.gc rename to test/decompiler/reference/jak1/levels/common/water-anim_REF.gc diff --git a/test/decompiler/reference/levels/darkcave/darkcave-obs_REF.gc b/test/decompiler/reference/jak1/levels/darkcave/darkcave-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/darkcave/darkcave-obs_REF.gc rename to test/decompiler/reference/jak1/levels/darkcave/darkcave-obs_REF.gc diff --git a/test/decompiler/reference/levels/demo/demo-obs_REF.gc b/test/decompiler/reference/jak1/levels/demo/demo-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/demo/demo-obs_REF.gc rename to test/decompiler/reference/jak1/levels/demo/demo-obs_REF.gc diff --git a/test/decompiler/reference/levels/demo/static-screen_REF.gc b/test/decompiler/reference/jak1/levels/demo/static-screen_REF.gc similarity index 100% rename from test/decompiler/reference/levels/demo/static-screen_REF.gc rename to test/decompiler/reference/jak1/levels/demo/static-screen_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/final-door_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/final-door_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/final-door_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/final-door_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/green-eco-lurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/green-eco-lurker_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/light-eco_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/light-eco_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/light-eco_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/robotboss-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/robotboss-h_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/robotboss-misc_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/robotboss-misc_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/robotboss-part_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/robotboss-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/robotboss-part_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/robotboss-part_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/robotboss-weapon_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/robotboss-weapon_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/robotboss_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/robotboss_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/robotboss_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/robotboss_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/sage-finalboss-part_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/sage-finalboss-part_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/sage-finalboss-part_REF.gc diff --git a/test/decompiler/reference/levels/finalboss/sage-finalboss_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss_REF.gc similarity index 100% rename from test/decompiler/reference/levels/finalboss/sage-finalboss_REF.gc rename to test/decompiler/reference/jak1/levels/finalboss/sage-finalboss_REF.gc diff --git a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc b/test/decompiler/reference/jak1/levels/firecanyon/assistant-firecanyon_REF.gc similarity index 100% rename from test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc rename to test/decompiler/reference/jak1/levels/firecanyon/assistant-firecanyon_REF.gc diff --git a/test/decompiler/reference/levels/firecanyon/firecanyon-obs_REF.gc b/test/decompiler/reference/jak1/levels/firecanyon/firecanyon-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/firecanyon/firecanyon-obs_REF.gc rename to test/decompiler/reference/jak1/levels/firecanyon/firecanyon-obs_REF.gc diff --git a/test/decompiler/reference/levels/firecanyon/firecanyon-part_REF.gc b/test/decompiler/reference/jak1/levels/firecanyon/firecanyon-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/firecanyon/firecanyon-part_REF.gc rename to test/decompiler/reference/jak1/levels/firecanyon/firecanyon-part_REF.gc diff --git a/test/decompiler/reference/levels/flut_common/flut-part_REF.gc b/test/decompiler/reference/jak1/levels/flut_common/flut-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/flut_common/flut-part_REF.gc rename to test/decompiler/reference/jak1/levels/flut_common/flut-part_REF.gc diff --git a/test/decompiler/reference/levels/flut_common/flutflut_REF.gc b/test/decompiler/reference/jak1/levels/flut_common/flutflut_REF.gc similarity index 100% rename from test/decompiler/reference/levels/flut_common/flutflut_REF.gc rename to test/decompiler/reference/jak1/levels/flut_common/flutflut_REF.gc diff --git a/test/decompiler/reference/levels/flut_common/target-flut_REF.gc b/test/decompiler/reference/jak1/levels/flut_common/target-flut_REF.gc similarity index 100% rename from test/decompiler/reference/levels/flut_common/target-flut_REF.gc rename to test/decompiler/reference/jak1/levels/flut_common/target-flut_REF.gc diff --git a/test/decompiler/reference/levels/intro/evilbro_REF.gc b/test/decompiler/reference/jak1/levels/intro/evilbro_REF.gc similarity index 100% rename from test/decompiler/reference/levels/intro/evilbro_REF.gc rename to test/decompiler/reference/jak1/levels/intro/evilbro_REF.gc diff --git a/test/decompiler/reference/levels/jungle/bouncer_REF.gc b/test/decompiler/reference/jak1/levels/jungle/bouncer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/bouncer_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/bouncer_REF.gc diff --git a/test/decompiler/reference/levels/jungle/darkvine_REF.gc b/test/decompiler/reference/jak1/levels/jungle/darkvine_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/darkvine_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/darkvine_REF.gc diff --git a/test/decompiler/reference/levels/jungle/fisher_REF.gc b/test/decompiler/reference/jak1/levels/jungle/fisher_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/fisher_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/fisher_REF.gc diff --git a/test/decompiler/reference/levels/jungle/hopper_REF.gc b/test/decompiler/reference/jak1/levels/jungle/hopper_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/hopper_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/hopper_REF.gc diff --git a/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc b/test/decompiler/reference/jak1/levels/jungle/jungle-elevator_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/jungle-elevator_REF.gc diff --git a/test/decompiler/reference/levels/jungle/jungle-mirrors_REF.gc b/test/decompiler/reference/jak1/levels/jungle/jungle-mirrors_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/jungle-mirrors_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/jungle-mirrors_REF.gc diff --git a/test/decompiler/reference/levels/jungle/jungle-obs_REF.gc b/test/decompiler/reference/jak1/levels/jungle/jungle-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/jungle-obs_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/jungle-obs_REF.gc diff --git a/test/decompiler/reference/levels/jungle/jungle-part_REF.gc b/test/decompiler/reference/jak1/levels/jungle/jungle-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/jungle-part_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/jungle-part_REF.gc diff --git a/test/decompiler/reference/levels/jungle/junglefish_REF.gc b/test/decompiler/reference/jak1/levels/jungle/junglefish_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/junglefish_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/junglefish_REF.gc diff --git a/test/decompiler/reference/levels/jungle/junglesnake_REF.gc b/test/decompiler/reference/jak1/levels/jungle/junglesnake_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungle/junglesnake_REF.gc rename to test/decompiler/reference/jak1/levels/jungle/junglesnake_REF.gc diff --git a/test/decompiler/reference/levels/jungleb/aphid_REF.gc b/test/decompiler/reference/jak1/levels/jungleb/aphid_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungleb/aphid_REF.gc rename to test/decompiler/reference/jak1/levels/jungleb/aphid_REF.gc diff --git a/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc b/test/decompiler/reference/jak1/levels/jungleb/jungleb-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc rename to test/decompiler/reference/jak1/levels/jungleb/jungleb-obs_REF.gc diff --git a/test/decompiler/reference/levels/jungleb/plant-boss_REF.gc b/test/decompiler/reference/jak1/levels/jungleb/plant-boss_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungleb/plant-boss_REF.gc rename to test/decompiler/reference/jak1/levels/jungleb/plant-boss_REF.gc diff --git a/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc b/test/decompiler/reference/jak1/levels/jungleb/plat-flip_REF.gc similarity index 100% rename from test/decompiler/reference/levels/jungleb/plat-flip_REF.gc rename to test/decompiler/reference/jak1/levels/jungleb/plat-flip_REF.gc diff --git a/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc b/test/decompiler/reference/jak1/levels/lavatube/assistant-lavatube_REF.gc similarity index 100% rename from test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc rename to test/decompiler/reference/jak1/levels/lavatube/assistant-lavatube_REF.gc diff --git a/test/decompiler/reference/levels/lavatube/lavatube-energy_REF.gc b/test/decompiler/reference/jak1/levels/lavatube/lavatube-energy_REF.gc similarity index 100% rename from test/decompiler/reference/levels/lavatube/lavatube-energy_REF.gc rename to test/decompiler/reference/jak1/levels/lavatube/lavatube-energy_REF.gc diff --git a/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc b/test/decompiler/reference/jak1/levels/lavatube/lavatube-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc rename to test/decompiler/reference/jak1/levels/lavatube/lavatube-obs_REF.gc diff --git a/test/decompiler/reference/levels/lavatube/lavatube-part_REF.gc b/test/decompiler/reference/jak1/levels/lavatube/lavatube-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/lavatube/lavatube-part_REF.gc rename to test/decompiler/reference/jak1/levels/lavatube/lavatube-part_REF.gc diff --git a/test/decompiler/reference/levels/maincave/baby-spider_REF.gc b/test/decompiler/reference/jak1/levels/maincave/baby-spider_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/baby-spider_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/baby-spider_REF.gc diff --git a/test/decompiler/reference/levels/maincave/cavecrystal-light_REF.gc b/test/decompiler/reference/jak1/levels/maincave/cavecrystal-light_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/cavecrystal-light_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/cavecrystal-light_REF.gc diff --git a/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc b/test/decompiler/reference/jak1/levels/maincave/dark-crystal_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/dark-crystal_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/dark-crystal_REF.gc diff --git a/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc b/test/decompiler/reference/jak1/levels/maincave/driller-lurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/driller-lurker_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/driller-lurker_REF.gc diff --git a/test/decompiler/reference/levels/maincave/gnawer_REF.gc b/test/decompiler/reference/jak1/levels/maincave/gnawer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/gnawer_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/gnawer_REF.gc diff --git a/test/decompiler/reference/levels/maincave/maincave-obs_REF.gc b/test/decompiler/reference/jak1/levels/maincave/maincave-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/maincave-obs_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/maincave-obs_REF.gc diff --git a/test/decompiler/reference/levels/maincave/maincave-part_REF.gc b/test/decompiler/reference/jak1/levels/maincave/maincave-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/maincave-part_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/maincave-part_REF.gc diff --git a/test/decompiler/reference/levels/maincave/mother-spider-egg_REF.gc b/test/decompiler/reference/jak1/levels/maincave/mother-spider-egg_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/mother-spider-egg_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/mother-spider-egg_REF.gc diff --git a/test/decompiler/reference/levels/maincave/mother-spider-h_REF.gc b/test/decompiler/reference/jak1/levels/maincave/mother-spider-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/mother-spider-h_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/mother-spider-h_REF.gc diff --git a/test/decompiler/reference/levels/maincave/mother-spider-proj_REF.gc b/test/decompiler/reference/jak1/levels/maincave/mother-spider-proj_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/mother-spider-proj_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/mother-spider-proj_REF.gc diff --git a/test/decompiler/reference/levels/maincave/mother-spider_REF.gc b/test/decompiler/reference/jak1/levels/maincave/mother-spider_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/mother-spider_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/mother-spider_REF.gc diff --git a/test/decompiler/reference/levels/maincave/spiderwebs_REF.gc b/test/decompiler/reference/jak1/levels/maincave/spiderwebs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/maincave/spiderwebs_REF.gc rename to test/decompiler/reference/jak1/levels/maincave/spiderwebs_REF.gc diff --git a/test/decompiler/reference/levels/misty/babak-with-cannon_REF.gc b/test/decompiler/reference/jak1/levels/misty/babak-with-cannon_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/babak-with-cannon_REF.gc rename to test/decompiler/reference/jak1/levels/misty/babak-with-cannon_REF.gc diff --git a/test/decompiler/reference/levels/misty/balloonlurker_REF.gc b/test/decompiler/reference/jak1/levels/misty/balloonlurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/balloonlurker_REF.gc rename to test/decompiler/reference/jak1/levels/misty/balloonlurker_REF.gc diff --git a/test/decompiler/reference/levels/misty/bonelurker_REF.gc b/test/decompiler/reference/jak1/levels/misty/bonelurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/bonelurker_REF.gc rename to test/decompiler/reference/jak1/levels/misty/bonelurker_REF.gc diff --git a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc b/test/decompiler/reference/jak1/levels/misty/misty-conveyor_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/misty-conveyor_REF.gc rename to test/decompiler/reference/jak1/levels/misty/misty-conveyor_REF.gc diff --git a/test/decompiler/reference/levels/misty/misty-obs_REF.gc b/test/decompiler/reference/jak1/levels/misty/misty-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/misty-obs_REF.gc rename to test/decompiler/reference/jak1/levels/misty/misty-obs_REF.gc diff --git a/test/decompiler/reference/levels/misty/misty-part_REF.gc b/test/decompiler/reference/jak1/levels/misty/misty-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/misty-part_REF.gc rename to test/decompiler/reference/jak1/levels/misty/misty-part_REF.gc diff --git a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc b/test/decompiler/reference/jak1/levels/misty/misty-teetertotter_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc rename to test/decompiler/reference/jak1/levels/misty/misty-teetertotter_REF.gc diff --git a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc b/test/decompiler/reference/jak1/levels/misty/misty-warehouse_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/misty-warehouse_REF.gc rename to test/decompiler/reference/jak1/levels/misty/misty-warehouse_REF.gc diff --git a/test/decompiler/reference/levels/misty/mistycannon_REF.gc b/test/decompiler/reference/jak1/levels/misty/mistycannon_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/mistycannon_REF.gc rename to test/decompiler/reference/jak1/levels/misty/mistycannon_REF.gc diff --git a/test/decompiler/reference/levels/misty/mud_REF.gc b/test/decompiler/reference/jak1/levels/misty/mud_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/mud_REF.gc rename to test/decompiler/reference/jak1/levels/misty/mud_REF.gc diff --git a/test/decompiler/reference/levels/misty/muse_REF.gc b/test/decompiler/reference/jak1/levels/misty/muse_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/muse_REF.gc rename to test/decompiler/reference/jak1/levels/misty/muse_REF.gc diff --git a/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc b/test/decompiler/reference/jak1/levels/misty/quicksandlurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/quicksandlurker_REF.gc rename to test/decompiler/reference/jak1/levels/misty/quicksandlurker_REF.gc diff --git a/test/decompiler/reference/levels/misty/sidekick-human_REF.gc b/test/decompiler/reference/jak1/levels/misty/sidekick-human_REF.gc similarity index 100% rename from test/decompiler/reference/levels/misty/sidekick-human_REF.gc rename to test/decompiler/reference/jak1/levels/misty/sidekick-human_REF.gc diff --git a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc b/test/decompiler/reference/jak1/levels/ogre/flying-lurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/ogre/flying-lurker_REF.gc rename to test/decompiler/reference/jak1/levels/ogre/flying-lurker_REF.gc diff --git a/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc b/test/decompiler/reference/jak1/levels/ogre/ogre-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/ogre/ogre-obs_REF.gc rename to test/decompiler/reference/jak1/levels/ogre/ogre-obs_REF.gc diff --git a/test/decompiler/reference/levels/ogre/ogre-part_REF.gc b/test/decompiler/reference/jak1/levels/ogre/ogre-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/ogre/ogre-part_REF.gc rename to test/decompiler/reference/jak1/levels/ogre/ogre-part_REF.gc diff --git a/test/decompiler/reference/levels/ogre/ogreboss_REF.gc b/test/decompiler/reference/jak1/levels/ogre/ogreboss_REF.gc similarity index 100% rename from test/decompiler/reference/levels/ogre/ogreboss_REF.gc rename to test/decompiler/reference/jak1/levels/ogre/ogreboss_REF.gc diff --git a/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/collide-reaction-racer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc rename to test/decompiler/reference/jak1/levels/racer_common/collide-reaction-racer_REF.gc diff --git a/test/decompiler/reference/levels/racer_common/racer-part_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/racer-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/racer_common/racer-part_REF.gc rename to test/decompiler/reference/jak1/levels/racer_common/racer-part_REF.gc diff --git a/test/decompiler/reference/levels/racer_common/racer-states_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/racer-states_REF.gc similarity index 100% rename from test/decompiler/reference/levels/racer_common/racer-states_REF.gc rename to test/decompiler/reference/jak1/levels/racer_common/racer-states_REF.gc diff --git a/test/decompiler/reference/levels/racer_common/racer_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/racer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/racer_common/racer_REF.gc rename to test/decompiler/reference/jak1/levels/racer_common/racer_REF.gc diff --git a/test/decompiler/reference/levels/racer_common/target-racer-h_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/target-racer-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/racer_common/target-racer-h_REF.gc rename to test/decompiler/reference/jak1/levels/racer_common/target-racer-h_REF.gc diff --git a/test/decompiler/reference/levels/racer_common/target-racer_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/target-racer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/racer_common/target-racer_REF.gc rename to test/decompiler/reference/jak1/levels/racer_common/target-racer_REF.gc diff --git a/test/decompiler/reference/levels/robocave/cave-trap_REF.gc b/test/decompiler/reference/jak1/levels/robocave/cave-trap_REF.gc similarity index 100% rename from test/decompiler/reference/levels/robocave/cave-trap_REF.gc rename to test/decompiler/reference/jak1/levels/robocave/cave-trap_REF.gc diff --git a/test/decompiler/reference/levels/robocave/robocave-part_REF.gc b/test/decompiler/reference/jak1/levels/robocave/robocave-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/robocave/robocave-part_REF.gc rename to test/decompiler/reference/jak1/levels/robocave/robocave-part_REF.gc diff --git a/test/decompiler/reference/levels/robocave/spider-egg_REF.gc b/test/decompiler/reference/jak1/levels/robocave/spider-egg_REF.gc similarity index 100% rename from test/decompiler/reference/levels/robocave/spider-egg_REF.gc rename to test/decompiler/reference/jak1/levels/robocave/spider-egg_REF.gc diff --git a/test/decompiler/reference/levels/rolling/rolling-lightning-mole_REF.gc b/test/decompiler/reference/jak1/levels/rolling/rolling-lightning-mole_REF.gc similarity index 100% rename from test/decompiler/reference/levels/rolling/rolling-lightning-mole_REF.gc rename to test/decompiler/reference/jak1/levels/rolling/rolling-lightning-mole_REF.gc diff --git a/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc b/test/decompiler/reference/jak1/levels/rolling/rolling-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/rolling/rolling-obs_REF.gc rename to test/decompiler/reference/jak1/levels/rolling/rolling-obs_REF.gc diff --git a/test/decompiler/reference/levels/rolling/rolling-race-ring_REF.gc b/test/decompiler/reference/jak1/levels/rolling/rolling-race-ring_REF.gc similarity index 100% rename from test/decompiler/reference/levels/rolling/rolling-race-ring_REF.gc rename to test/decompiler/reference/jak1/levels/rolling/rolling-race-ring_REF.gc diff --git a/test/decompiler/reference/levels/rolling/rolling-robber_REF.gc b/test/decompiler/reference/jak1/levels/rolling/rolling-robber_REF.gc similarity index 100% rename from test/decompiler/reference/levels/rolling/rolling-robber_REF.gc rename to test/decompiler/reference/jak1/levels/rolling/rolling-robber_REF.gc diff --git a/test/decompiler/reference/levels/snow/ice-cube_REF.gc b/test/decompiler/reference/jak1/levels/snow/ice-cube_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/ice-cube_REF.gc rename to test/decompiler/reference/jak1/levels/snow/ice-cube_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-ball_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-ball_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-ball_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-ball_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-bumper_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-bumper_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-bumper_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-bumper_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-bunny_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-bunny_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-bunny_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-bunny_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-flutflut-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-flutflut-obs_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-obs_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-obs_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-obs_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-part_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-part_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-part_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-ram-boss_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-ram-boss_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-ram-boss_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-ram-boss_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-ram-h_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-ram-h_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-ram-h_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-ram-h_REF.gc diff --git a/test/decompiler/reference/levels/snow/snow-ram_REF.gc b/test/decompiler/reference/jak1/levels/snow/snow-ram_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/snow-ram_REF.gc rename to test/decompiler/reference/jak1/levels/snow/snow-ram_REF.gc diff --git a/test/decompiler/reference/levels/snow/target-ice_REF.gc b/test/decompiler/reference/jak1/levels/snow/target-ice_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/target-ice_REF.gc rename to test/decompiler/reference/jak1/levels/snow/target-ice_REF.gc diff --git a/test/decompiler/reference/levels/snow/target-snowball_REF.gc b/test/decompiler/reference/jak1/levels/snow/target-snowball_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/target-snowball_REF.gc rename to test/decompiler/reference/jak1/levels/snow/target-snowball_REF.gc diff --git a/test/decompiler/reference/levels/snow/yeti_REF.gc b/test/decompiler/reference/jak1/levels/snow/yeti_REF.gc similarity index 100% rename from test/decompiler/reference/levels/snow/yeti_REF.gc rename to test/decompiler/reference/jak1/levels/snow/yeti_REF.gc diff --git a/test/decompiler/reference/levels/sunken/bully_REF.gc b/test/decompiler/reference/jak1/levels/sunken/bully_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/bully_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/bully_REF.gc diff --git a/test/decompiler/reference/levels/sunken/double-lurker_REF.gc b/test/decompiler/reference/jak1/levels/sunken/double-lurker_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/double-lurker_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/double-lurker_REF.gc diff --git a/test/decompiler/reference/levels/sunken/floating-launcher_REF.gc b/test/decompiler/reference/jak1/levels/sunken/floating-launcher_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/floating-launcher_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/floating-launcher_REF.gc diff --git a/test/decompiler/reference/levels/sunken/helix-water_REF.gc b/test/decompiler/reference/jak1/levels/sunken/helix-water_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/helix-water_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/helix-water_REF.gc diff --git a/test/decompiler/reference/levels/sunken/orbit-plat_REF.gc b/test/decompiler/reference/jak1/levels/sunken/orbit-plat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/orbit-plat_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/orbit-plat_REF.gc diff --git a/test/decompiler/reference/levels/sunken/puffer_REF.gc b/test/decompiler/reference/jak1/levels/sunken/puffer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/puffer_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/puffer_REF.gc diff --git a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc b/test/decompiler/reference/jak1/levels/sunken/qbert-plat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/qbert-plat_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/qbert-plat_REF.gc diff --git a/test/decompiler/reference/levels/sunken/shover_REF.gc b/test/decompiler/reference/jak1/levels/sunken/shover_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/shover_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/shover_REF.gc diff --git a/test/decompiler/reference/levels/sunken/square-platform_REF.gc b/test/decompiler/reference/jak1/levels/sunken/square-platform_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/square-platform_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/square-platform_REF.gc diff --git a/test/decompiler/reference/levels/sunken/steam-cap_REF.gc b/test/decompiler/reference/jak1/levels/sunken/steam-cap_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/steam-cap_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/steam-cap_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sun-exit-chamber_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sun-exit-chamber_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sun-exit-chamber_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sun-exit-chamber_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sun-iris-door_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sun-iris-door_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sun-iris-door_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sun-iris-door_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-fish_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-fish_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-fish_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-obs_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-obs_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-part2_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-part2_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-part2_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-part2_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-part3_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-part3_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-part3_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-part3_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-part4_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-part4_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-part4_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-part4_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-part5_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-part5_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-part5_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-part5_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-part_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-part_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-part_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-pipegame_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-pipegame_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-pipegame_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-pipegame_REF.gc diff --git a/test/decompiler/reference/levels/sunken/sunken-water_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-water_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/sunken-water_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/sunken-water_REF.gc diff --git a/test/decompiler/reference/levels/sunken/target-tube_REF.gc b/test/decompiler/reference/jak1/levels/sunken/target-tube_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/target-tube_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/target-tube_REF.gc diff --git a/test/decompiler/reference/levels/sunken/wall-plat_REF.gc b/test/decompiler/reference/jak1/levels/sunken/wall-plat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/wall-plat_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/wall-plat_REF.gc diff --git a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc b/test/decompiler/reference/jak1/levels/sunken/wedge-plats_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/wedge-plats_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/wedge-plats_REF.gc diff --git a/test/decompiler/reference/levels/sunken/whirlpool_REF.gc b/test/decompiler/reference/jak1/levels/sunken/whirlpool_REF.gc similarity index 100% rename from test/decompiler/reference/levels/sunken/whirlpool_REF.gc rename to test/decompiler/reference/jak1/levels/sunken/whirlpool_REF.gc diff --git a/test/decompiler/reference/levels/swamp/billy_REF.gc b/test/decompiler/reference/jak1/levels/swamp/billy_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/billy_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/billy_REF.gc diff --git a/test/decompiler/reference/levels/swamp/kermit_REF.gc b/test/decompiler/reference/jak1/levels/swamp/kermit_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/kermit_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/kermit_REF.gc diff --git a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc b/test/decompiler/reference/jak1/levels/swamp/swamp-bat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/swamp-bat_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/swamp-bat_REF.gc diff --git a/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc b/test/decompiler/reference/jak1/levels/swamp/swamp-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/swamp-obs_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/swamp-obs_REF.gc diff --git a/test/decompiler/reference/levels/swamp/swamp-part_REF.gc b/test/decompiler/reference/jak1/levels/swamp/swamp-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/swamp-part_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/swamp-part_REF.gc diff --git a/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc b/test/decompiler/reference/jak1/levels/swamp/swamp-rat-nest_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/swamp-rat-nest_REF.gc diff --git a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc b/test/decompiler/reference/jak1/levels/swamp/swamp-rat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/swamp/swamp-rat_REF.gc rename to test/decompiler/reference/jak1/levels/swamp/swamp-rat_REF.gc diff --git a/test/decompiler/reference/levels/title/title-obs_REF.gc b/test/decompiler/reference/jak1/levels/title/title-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/title/title-obs_REF.gc rename to test/decompiler/reference/jak1/levels/title/title-obs_REF.gc diff --git a/test/decompiler/reference/levels/training/training-obs_REF.gc b/test/decompiler/reference/jak1/levels/training/training-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/training/training-obs_REF.gc rename to test/decompiler/reference/jak1/levels/training/training-obs_REF.gc diff --git a/test/decompiler/reference/levels/training/training-part_REF.gc b/test/decompiler/reference/jak1/levels/training/training-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/training/training-part_REF.gc rename to test/decompiler/reference/jak1/levels/training/training-part_REF.gc diff --git a/test/decompiler/reference/levels/village1/assistant_REF.gc b/test/decompiler/reference/jak1/levels/village1/assistant_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/assistant_REF.gc rename to test/decompiler/reference/jak1/levels/village1/assistant_REF.gc diff --git a/test/decompiler/reference/levels/village1/explorer_REF.gc b/test/decompiler/reference/jak1/levels/village1/explorer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/explorer_REF.gc rename to test/decompiler/reference/jak1/levels/village1/explorer_REF.gc diff --git a/test/decompiler/reference/levels/village1/farmer_REF.gc b/test/decompiler/reference/jak1/levels/village1/farmer_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/farmer_REF.gc rename to test/decompiler/reference/jak1/levels/village1/farmer_REF.gc diff --git a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc b/test/decompiler/reference/jak1/levels/village1/fishermans-boat_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/fishermans-boat_REF.gc rename to test/decompiler/reference/jak1/levels/village1/fishermans-boat_REF.gc diff --git a/test/decompiler/reference/levels/village1/sage_REF.gc b/test/decompiler/reference/jak1/levels/village1/sage_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/sage_REF.gc rename to test/decompiler/reference/jak1/levels/village1/sage_REF.gc diff --git a/test/decompiler/reference/levels/village1/sequence-a-village1_REF.gc b/test/decompiler/reference/jak1/levels/village1/sequence-a-village1_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/sequence-a-village1_REF.gc rename to test/decompiler/reference/jak1/levels/village1/sequence-a-village1_REF.gc diff --git a/test/decompiler/reference/levels/village1/village-obs_REF.gc b/test/decompiler/reference/jak1/levels/village1/village-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/village-obs_REF.gc rename to test/decompiler/reference/jak1/levels/village1/village-obs_REF.gc diff --git a/test/decompiler/reference/levels/village1/village1-part2_REF.gc b/test/decompiler/reference/jak1/levels/village1/village1-part2_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/village1-part2_REF.gc rename to test/decompiler/reference/jak1/levels/village1/village1-part2_REF.gc diff --git a/test/decompiler/reference/levels/village1/village1-part_REF.gc b/test/decompiler/reference/jak1/levels/village1/village1-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/village1-part_REF.gc rename to test/decompiler/reference/jak1/levels/village1/village1-part_REF.gc diff --git a/test/decompiler/reference/levels/village1/yakow_REF.gc b/test/decompiler/reference/jak1/levels/village1/yakow_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village1/yakow_REF.gc rename to test/decompiler/reference/jak1/levels/village1/yakow_REF.gc diff --git a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc b/test/decompiler/reference/jak1/levels/village2/assistant-village2_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/assistant-village2_REF.gc rename to test/decompiler/reference/jak1/levels/village2/assistant-village2_REF.gc diff --git a/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc b/test/decompiler/reference/jak1/levels/village2/flutflut-bluehut_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc rename to test/decompiler/reference/jak1/levels/village2/flutflut-bluehut_REF.gc diff --git a/test/decompiler/reference/levels/village2/gambler_REF.gc b/test/decompiler/reference/jak1/levels/village2/gambler_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/gambler_REF.gc rename to test/decompiler/reference/jak1/levels/village2/gambler_REF.gc diff --git a/test/decompiler/reference/levels/village2/geologist_REF.gc b/test/decompiler/reference/jak1/levels/village2/geologist_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/geologist_REF.gc rename to test/decompiler/reference/jak1/levels/village2/geologist_REF.gc diff --git a/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc b/test/decompiler/reference/jak1/levels/village2/sage-bluehut_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/sage-bluehut_REF.gc rename to test/decompiler/reference/jak1/levels/village2/sage-bluehut_REF.gc diff --git a/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc b/test/decompiler/reference/jak1/levels/village2/sunken-elevator_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/sunken-elevator_REF.gc rename to test/decompiler/reference/jak1/levels/village2/sunken-elevator_REF.gc diff --git a/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc b/test/decompiler/reference/jak1/levels/village2/swamp-blimp_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/swamp-blimp_REF.gc rename to test/decompiler/reference/jak1/levels/village2/swamp-blimp_REF.gc diff --git a/test/decompiler/reference/levels/village2/village2-obs_REF.gc b/test/decompiler/reference/jak1/levels/village2/village2-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/village2-obs_REF.gc rename to test/decompiler/reference/jak1/levels/village2/village2-obs_REF.gc diff --git a/test/decompiler/reference/levels/village2/village2-part2_REF.gc b/test/decompiler/reference/jak1/levels/village2/village2-part2_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/village2-part2_REF.gc rename to test/decompiler/reference/jak1/levels/village2/village2-part2_REF.gc diff --git a/test/decompiler/reference/levels/village2/village2-part_REF.gc b/test/decompiler/reference/jak1/levels/village2/village2-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/village2-part_REF.gc rename to test/decompiler/reference/jak1/levels/village2/village2-part_REF.gc diff --git a/test/decompiler/reference/levels/village2/warrior_REF.gc b/test/decompiler/reference/jak1/levels/village2/warrior_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village2/warrior_REF.gc rename to test/decompiler/reference/jak1/levels/village2/warrior_REF.gc diff --git a/test/decompiler/reference/levels/village3/assistant-village3_REF.gc b/test/decompiler/reference/jak1/levels/village3/assistant-village3_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village3/assistant-village3_REF.gc rename to test/decompiler/reference/jak1/levels/village3/assistant-village3_REF.gc diff --git a/test/decompiler/reference/levels/village3/minecart_REF.gc b/test/decompiler/reference/jak1/levels/village3/minecart_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village3/minecart_REF.gc rename to test/decompiler/reference/jak1/levels/village3/minecart_REF.gc diff --git a/test/decompiler/reference/levels/village3/miners_REF.gc b/test/decompiler/reference/jak1/levels/village3/miners_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village3/miners_REF.gc rename to test/decompiler/reference/jak1/levels/village3/miners_REF.gc diff --git a/test/decompiler/reference/levels/village3/sage-village3_REF.gc b/test/decompiler/reference/jak1/levels/village3/sage-village3_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village3/sage-village3_REF.gc rename to test/decompiler/reference/jak1/levels/village3/sage-village3_REF.gc diff --git a/test/decompiler/reference/levels/village3/village3-obs_REF.gc b/test/decompiler/reference/jak1/levels/village3/village3-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village3/village3-obs_REF.gc rename to test/decompiler/reference/jak1/levels/village3/village3-obs_REF.gc diff --git a/test/decompiler/reference/levels/village3/village3-part_REF.gc b/test/decompiler/reference/jak1/levels/village3/village3-part_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village3/village3-part_REF.gc rename to test/decompiler/reference/jak1/levels/village3/village3-part_REF.gc diff --git a/test/decompiler/reference/levels/village_common/oracle_REF.gc b/test/decompiler/reference/jak1/levels/village_common/oracle_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village_common/oracle_REF.gc rename to test/decompiler/reference/jak1/levels/village_common/oracle_REF.gc diff --git a/test/decompiler/reference/levels/village_common/villagep-obs_REF.gc b/test/decompiler/reference/jak1/levels/village_common/villagep-obs_REF.gc similarity index 100% rename from test/decompiler/reference/levels/village_common/villagep-obs_REF.gc rename to test/decompiler/reference/jak1/levels/village_common/villagep-obs_REF.gc diff --git a/test/offline/config.jsonc b/test/offline/config/jak1/config.jsonc similarity index 100% rename from test/offline/config.jsonc rename to test/offline/config/jak1/config.jsonc diff --git a/test/offline/config/jak2/config.jsonc b/test/offline/config/jak2/config.jsonc new file mode 100644 index 0000000000..b21284ce17 --- /dev/null +++ b/test/offline/config/jak2/config.jsonc @@ -0,0 +1,9 @@ +{ + "dgos": [], + + "skip_compile_files": [], + + "skip_compile_functions": [], + + "skip_compile_states": {} +} diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index df4301250b..0499a34774 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -14,48 +14,9 @@ #include "decompiler/ObjectFile/ObjectFileDB.h" #include "goalc/compiler/Compiler.h" +#include "third-party/CLI11.hpp" #include "third-party/fmt/format.h" -namespace fs = fs; - -// command line arguments -struct OfflineTestArgs { - bool dump_current_output = false; - std::string iso_data_path; - s32 max_files = INT32_MAX; -}; - -/*! - * Parse command line arguments. - */ -OfflineTestArgs parse_args(int argc, char* argv[]) { - OfflineTestArgs result; - - for (int i = 1; i < argc; i++) { - auto arg = std::string(argv[i]); - if (arg == "--dump-mode") { - result.dump_current_output = true; - continue; - } - - if (arg == "--max-files") { - i++; - if (i >= argc) { - fmt::print("--max-files must be followed by an integer\n"); - exit(1); - } - result.max_files = atoi(argv[i]); - fmt::print("Limiting to {} files\n", result.max_files); - continue; - } - - result.iso_data_path = arg; - fmt::print("Using {} for ISO data\n", result.iso_data_path); - } - - return result; -} - // json config file data (previously was in source of offline_test_main.cpp) struct OfflineTestConfig { std::vector dgos; @@ -64,24 +25,6 @@ struct OfflineTestConfig { std::unordered_map> skip_compile_states; }; -/*! - * Read and parse the json config file, config.json, located in test/offline - */ -OfflineTestConfig parse_config() { - auto json_file_path = file_util::get_jak_project_dir() / "test" / "offline" / "config.jsonc"; - auto json = parse_commented_json(file_util::read_text_file(json_file_path.string()), - json_file_path.string()); - OfflineTestConfig result; - result.dgos = json["dgos"].get>(); - result.skip_compile_files = json["skip_compile_files"].get>(); - result.skip_compile_functions = - json["skip_compile_functions"].get>(); - result.skip_compile_states = - json["skip_compile_states"] - .get>>(); - return result; -} - struct DecompilerFile { fs::path path; std::string name_in_dgo; @@ -94,161 +37,31 @@ struct DecompilerArtFile { std::string unique_name; }; -std::string replaceFirstOccurrence(std::string& s, - const std::string& toReplace, - const std::string& replaceWith) { - std::size_t pos = s.find(toReplace); - if (pos == std::string::npos) - return s; - return s.replace(pos, toReplace.length(), replaceWith); -} - -std::vector find_files(const std::vector& dgos) { - std::vector result; - - std::unordered_map files_with_ref; - for (auto& p : fs::recursive_directory_iterator(file_util::get_jak_project_dir() / "test" / - "decompiler" / "reference")) { - if (p.is_regular_file()) { - std::string file_name = fs::path(p.path()).replace_extension().filename().string(); - if (file_name.find("_REF") == std::string::npos) { - continue; - } - std::string object_name = replaceFirstOccurrence(file_name, "_REF", ""); - files_with_ref.insert({object_name, p.path()}); - } - } - - fmt::print(" Found {} reference files\n", files_with_ref.size()); - - // use the all_objs.json file to place them in the correct build order - // TODO - jak2 - Bad! - auto j = parse_commented_json( - file_util::read_text_file( - (file_util::get_jak_project_dir() / "goal_src" / "jak1" / "build" / "all_objs.json") - .string()), - "all_objs.json"); - - std::unordered_set matched_files; - for (auto& x : j) { - auto unique_name = x[0].get(); - - std::vector dgoList = x[3].get>(); - // for (auto& p : reference_files_rough_order) { - auto it = files_with_ref.find(unique_name); - if (it != files_with_ref.end()) { - // Check to see if we've included atleast one of the DGO/CGOs in our hardcoded list - // If not BLOW UP - bool dgoValidated = false; - for (int i = 0; i < (int)dgoList.size(); i++) { - std::string& dgo = dgoList.at(i); - // can either be in the DGO or CGO folder, and can either end with .CGO or .DGO - if (std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.DGO", dgo)) != dgos.end() || - std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.CGO", dgo)) != dgos.end() || - std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.DGO", dgo)) != dgos.end() || - std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.CGO", dgo)) != dgos.end()) { - dgoValidated = true; - } - } - if (!dgoValidated) { - fmt::print( - "File [{}] is in the following DGOs [{}], and not one of these is in our list! Add " - "it!\n", - unique_name, fmt::join(dgoList, ", ")); - exit(1); - } - - DecompilerFile file; - file.path = it->second; - file.unique_name = it->first; - file.name_in_dgo = x[1]; - result.push_back(file); - matched_files.insert(unique_name); - } - } - - if (matched_files.size() != files_with_ref.size()) { - fmt::print("Error: some REF files were not matched to files in all_objs.json:\n"); - for (auto& f : files_with_ref) { - if (matched_files.count(f.first) == 0) { - fmt::print(" {}\n", f.first); - } - } - exit(1); - } - - return result; -} - -std::vector find_art_files(const std::vector& dgos) { - std::vector result; - - // use the all_objs.json file to place them in the correct build order - auto j = parse_commented_json( - file_util::read_text_file( - (file_util::get_jak_project_dir() / "goal_src" / "jak1" / "build" / "all_objs.json") - .string()), - "all_objs.json"); - - for (auto& x : j) { - auto unique_name = x[0].get(); - auto version = x[2].get(); - - std::vector dgoList = x[3].get>(); - if (version == 4) { - bool skip_this = false; - - // Check to see if we've included atleast one of the DGO/CGOs in our hardcoded list - // If not BLOW UP - bool dgoValidated = false; - for (int i = 0; i < (int)dgoList.size(); i++) { - std::string& dgo = dgoList.at(i); - if (dgo == "NO-XGO") { - skip_this = true; - break; - } - // can either be in the DGO or CGO folder, and can either end with .CGO or .DGO - if (std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.DGO", dgo)) != dgos.end() || - std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.CGO", dgo)) != dgos.end() || - std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.DGO", dgo)) != dgos.end() || - std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.CGO", dgo)) != dgos.end()) { - dgoValidated = true; - } - } - if (skip_this) { - continue; - } - if (!dgoValidated) { - fmt::print( - "File [{}] is in the following DGOs [{}], and not one of these is in our list! Add " - "it!\n", - unique_name, fmt::join(dgoList, ", ")); - exit(1); - } - - DecompilerArtFile file; - file.unique_name = unique_name; - file.name_in_dgo = x[1]; - result.push_back(file); - } - } - - return result; -} - struct Decompiler { std::unique_ptr db; std::unique_ptr config; }; +// TODO - this should probably go somewhere common when it's needed eventually +std::unordered_map game_name_to_config = { + {"jak1", "jak1_ntsc_black_label.jsonc"}, + {"jak2", "jak2_ntsc_v1.jsonc"}}; + +// TODO - i think these should be partitioned by game name instead of it being in the filename +// (and the names not being consistent) +std::unordered_map game_name_to_all_types = {{"jak1", "all-types.gc"}, + {"jak2", "all-types2.gc"}}; + Decompiler setup_decompiler(const std::vector& files, const std::vector& art_files, - const OfflineTestArgs& args, - const OfflineTestConfig& offline_config) { + const fs::path& iso_data_path, + const OfflineTestConfig& offline_config, + const std::string& game_name) { + // TODO - pull out extractor logic to determine release into common and use here Decompiler dc; decompiler::init_opcode_info(); dc.config = std::make_unique(decompiler::read_config_file( - (file_util::get_jak_project_dir() / "decompiler" / "config" / "jak1_ntsc_black_label.jsonc") + (file_util::get_jak_project_dir() / "decompiler" / "config" / game_name_to_config[game_name]) .string(), {})); @@ -266,14 +79,8 @@ Decompiler setup_decompiler(const std::vector& files, dc.config->generate_symbol_definition_map = false; std::vector dgo_paths; - if (args.iso_data_path.empty()) { - for (auto& x : offline_config.dgos) { - dgo_paths.push_back(file_util::get_jak_project_dir() / "iso_data" / "jak1" / x); - } - } else { - for (auto& x : offline_config.dgos) { - dgo_paths.push_back(fs::path(args.iso_data_path) / x); - } + for (auto& x : offline_config.dgos) { + dgo_paths.push_back(iso_data_path / x); } dc.db = std::make_unique(dgo_paths, dc.config->obj_file_name_map_file, @@ -288,15 +95,15 @@ Decompiler setup_decompiler(const std::vector& files, } if (db_files.size() != files.size() + art_files.size()) { - fmt::print("DB file error.\n"); + lg::error("DB file error."); for (auto& f : files) { if (!db_files.count(f.unique_name)) { - fmt::print("didn't find {}\n", f.unique_name); + lg::error("didn't find {}\n", f.unique_name); } } for (auto& f : art_files) { if (!db_files.count(f.unique_name)) { - fmt::print("didn't find {}\n", f.unique_name); + lg::error("didn't find {}\n", f.unique_name); } } exit(1); @@ -372,8 +179,10 @@ CompareResult compare(Decompiler& dc, const std::vector& refs, b fmt::print("{}\n", diff_strings(ref, result)); if (dump_mode) { - file_util::create_dir_if_needed("./failures"); - file_util::write_text_file("./failures/" + file.unique_name + "_REF.gc", result); + auto failure_dir = file_util::get_jak_project_dir() / "failures"; + file_util::create_dir_if_needed(failure_dir); + file_util::write_text_file(failure_dir / fmt::format("{}_REF.gc", file.unique_name), + result); } } else { compare_result.ok_files++; @@ -385,12 +194,14 @@ CompareResult compare(Decompiler& dc, const std::vector& refs, b bool compile(Decompiler& dc, const std::vector& refs, - const OfflineTestConfig& config) { + const OfflineTestConfig& config, + const std::string& game_name) { fmt::print("Setting up compiler...\n"); Compiler compiler; - compiler.run_front_end_on_file({"decompiler", "config", "all-types.gc"}); - compiler.run_front_end_on_file({"test", "decompiler", "reference", "decompiler-macros.gc"}); + compiler.run_front_end_on_file({"decompiler", "config", game_name_to_all_types[game_name]}); + compiler.run_front_end_on_file( + {"test", "decompiler", "reference", game_name, "decompiler-macros.gc"}); Timer timer; int total_lines = 0; @@ -420,6 +231,162 @@ bool compile(Decompiler& dc, return true; } +std::vector find_art_files(const std::string& game_name, + const std::vector& dgos) { + std::vector result; + + // use the all_objs.json file to place them in the correct build order + auto obj_json = parse_commented_json( + file_util::read_text_file( + (file_util::get_jak_project_dir() / "goal_src" / game_name / "build" / "all_objs.json") + .string()), + "all_objs.json"); + + for (const auto& x : obj_json) { + auto unique_name = x[0].get(); + auto version = x[2].get(); + + std::vector dgoList = x[3].get>(); + if (version == 4) { + bool skip_this = false; + + // Check to see if we've included atleast one of the DGO/CGOs in our hardcoded list + // If not BLOW UP + bool dgoValidated = false; + for (int i = 0; i < (int)dgoList.size(); i++) { + std::string& dgo = dgoList.at(i); + if (dgo == "NO-XGO") { + skip_this = true; + break; + } + // can either be in the DGO or CGO folder, and can either end with .CGO or .DGO + // TODO - Jak 2 Folder structure will be different! + if (std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.DGO", dgo)) != dgos.end() || + std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.CGO", dgo)) != dgos.end() || + std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.DGO", dgo)) != dgos.end() || + std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.CGO", dgo)) != dgos.end()) { + dgoValidated = true; + } + } + if (skip_this) { + continue; + } + if (!dgoValidated) { + lg::error( + "File [{}] is in the following DGOs [{}], and not one of these is in our list! Add " + "it!", + unique_name, fmt::join(dgoList, ", ")); + exit(1); + } + + DecompilerArtFile file; + file.unique_name = unique_name; + file.name_in_dgo = x[1]; + result.push_back(file); + } + } + + return result; +} + +std::vector find_files(const std::string& game_name, + const std::vector& dgos) { + std::vector result; + + auto base_dir = + file_util::get_jak_project_dir() / "test" / "decompiler" / "reference" / game_name; + auto ref_file_paths = file_util::find_files_recursively(base_dir, std::regex(".*_REF\\..*")); + std::unordered_map ref_file_names = {}; + for (const auto& path : ref_file_paths) { + auto ref_name = path.filename().replace_extension().string(); + ref_name.erase(ref_name.begin() + ref_name.find("_REF"), ref_name.end()); + ref_file_names[ref_name] = path; + } + + lg::info("Found {} reference files", ref_file_paths.size()); + + // use the all_objs.json file to place them in the correct build order + auto obj_json = parse_commented_json( + file_util::read_text_file( + (file_util::get_jak_project_dir() / "goal_src" / game_name / "build" / "all_objs.json") + .string()), + "all_objs.json"); + + std::unordered_set matched_files; + for (auto& x : obj_json) { + auto unique_name = x[0].get(); + + std::vector dgoList = x[3].get>(); + auto it = ref_file_names.find(unique_name); + if (it != ref_file_names.end()) { + // Check to see if we've included atleast one of the DGO/CGOs in our hardcoded list + // If not BLOW UP + bool dgoValidated = false; + for (int i = 0; i < (int)dgoList.size(); i++) { + std::string& dgo = dgoList.at(i); + // can either be in the DGO or CGO folder, and can either end with .CGO or .DGO + // TODO - Jak 2 Folder structure will be different! + if (std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.DGO", dgo)) != dgos.end() || + std::find(dgos.begin(), dgos.end(), fmt::format("DGO/{}.CGO", dgo)) != dgos.end() || + std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.DGO", dgo)) != dgos.end() || + std::find(dgos.begin(), dgos.end(), fmt::format("CGO/{}.CGO", dgo)) != dgos.end()) { + dgoValidated = true; + } + } + if (!dgoValidated) { + lg::error( + "File [{}] is in the following DGOs [{}], and not one of these is in our list! Add " + "it!", + unique_name, fmt::join(dgoList, ", ")); + exit(1); + } + + DecompilerFile file; + file.path = it->second; + file.unique_name = it->first; + file.name_in_dgo = x[1]; + result.push_back(file); + matched_files.insert(unique_name); + } + } + + if (matched_files.size() != ref_file_names.size()) { + lg::error("Some REF files were not matched to files in all_objs.json:"); + for (const auto& [path, flag] : ref_file_names) { + if (matched_files.count(path) == 0) { + lg::error("- '{}'", path); + } + } + exit(1); + } + + return result; +} + +/*! + * Read and parse the json config file, config.json, located in test/offline + */ +std::optional parse_config(const std::string_view& game_name) { + lg::info("Reading Configuration..."); + auto json_file_path = + file_util::get_jak_project_dir() / "test" / "offline" / "config" / game_name / "config.jsonc"; + if (!fs::exists(json_file_path)) { + lg::error("Couldn't load configuration, '{}' doesn't exist", json_file_path.string()); + return {}; + } + auto json = parse_commented_json(file_util::read_text_file(json_file_path.string()), + json_file_path.string()); + OfflineTestConfig result; + result.dgos = json["dgos"].get>(); + result.skip_compile_files = json["skip_compile_files"].get>(); + result.skip_compile_functions = + json["skip_compile_functions"].get>(); + result.skip_compile_states = + json["skip_compile_states"] + .get>>(); + return std::make_optional(result); +} + int main(int argc, char* argv[]) { #ifdef _WIN32 auto utf8_args = get_widechar_cli_args(); @@ -430,55 +397,77 @@ int main(int argc, char* argv[]) { argv = string_ptrs.data(); #endif - fmt::print("Offline Decompiler Test 2\n"); lg::initialize(); + + bool dump_current_output = false; + std::string iso_data_path; + std::string game_name; + // Useful for testing in debug mode (dont have to wait for everything to finish) + int max_files = -1; + + CLI::App app{"OpenGOAL - Offline Reference Test Runner"}; + app.add_option("--iso_data_path", iso_data_path, "The path to the folder with the ISO data files") + ->check(CLI::ExistingPath) + ->required(); + app.add_option("--game", game_name, "The game name, for example 'jak1'")->required(); + app.add_flag("-d,--dump_current_output", dump_current_output, + "Output the current output to a folder, use in conjunction with the reference test " + "files update script"); + app.add_flag("-m,--max_files", max_files, + "Limit the amount of files ran in a single test, picks the first N"); + app.validate_positionals(); + CLI11_PARSE(app, argc, argv); + if (!file_util::setup_project_path(std::nullopt)) { + lg::error("Couldn't setup project path, tool is supposed to be ran in the jak-project repo!"); return 1; } - fmt::print("Reading config...\n"); - auto args = parse_args(argc, argv); - auto config = parse_config(); - - fmt::print("Finding files...\n"); - auto files = find_files(config.dgos); - if (args.max_files < (int)files.size()) { - files.erase(files.begin() + args.max_files, files.end()); + auto config = parse_config(game_name); + if (!config.has_value()) { + return 1; } - auto art_files = find_art_files(config.dgos); - fmt::print("Setting up decompiler and loading files...\n"); - auto decompiler = setup_decompiler(files, art_files, args, config); + lg::info("Finding files..."); + auto files = find_files(game_name, config->dgos); + if (max_files > 0 && max_files < files.size()) { + files.erase(files.begin() + max_files, files.end()); + } + auto art_files = find_art_files(game_name, config->dgos); - fmt::print("Disassembling files...\n"); + lg::info("Setting up decompiler and loading files..."); + auto decompiler = + setup_decompiler(files, art_files, fs::path(iso_data_path), config.value(), game_name); + + lg::info("Disassembling files..."); disassemble(decompiler); - fmt::print("Decompiling...\n"); - decompile(decompiler, config); + lg::info("Decompiling..."); + decompile(decompiler, config.value()); - fmt::print("Comparing...\n"); - auto compare_result = compare(decompiler, files, args.dump_current_output); - fmt::print("Compared {} lines. {}/{} files passed.\n", compare_result.total_lines, - compare_result.ok_files, compare_result.total_files); + lg::info("Comparing..."); + auto compare_result = compare(decompiler, files, dump_current_output); + lg::info("Compared {} lines. {}/{} files passed.", compare_result.total_lines, + compare_result.ok_files, compare_result.total_files); if (!compare_result.failing_files.empty()) { - fmt::print("Failing files:\n"); + lg::error("Failing files:"); for (auto& f : compare_result.failing_files) { - fmt::print(" {}\n", f); + lg::error("- {}", f); } } - bool compile_result = compile(decompiler, files, config); + bool compile_result = compile(decompiler, files, config.value(), game_name); if (compare_result.total_pass && compile_result) { - fmt::print("Pass!\n"); + lg::info("Pass!"); return 0; } else { if (!compile_result) { - fmt::print("Compilation failed.\n"); + lg::error("Compilation failed."); } if (!compare_result.total_pass) { - fmt::print("Comparison failed.\n"); + lg::error("Comparison failed."); } } return 1;