* docs: deprecate the local analyzer workflow in favor of Ghidra
feat: improve the Ghidra exporter for stripped games and internal entry points
fix: correct FindAddress behavior in the runtime
fix: emit missing delay-slot code in recompiler edge cases
feat: add SetSyscall support from @Whoneon
feat: add dispatchSyscallOverride support from @Whoneon
fix: fix Unmatched '{' due to missing newlines from issue #96
feat: delete python ghidra script I never updated it anyway
feat: added a lot more of regression test
feat: added a lot of logs to help debug on runtime
fix: fix wrong syscall ID on runtime
* pad: implement basic input mapping and stubs
Add a minimal libpad implementation backed by raylib input
Provide override hooks for deterministic tests
Add pad input tests and link runtime into test target
* FIX: moved pad override test hooks to ps2_call_list.h
* pad: move test hooks to X macro list + removing __cplusplus ifdef
* removed one last ifdef remaining
* refresh PR merge status
---------
Co-authored-by: Ranieri <ran-junior@hotmail.com>
* feat: small fixes on code gen
* feat: added code gen test
* feat: rename IOP
* fix: fix special case on JR
feat: added code generator test
* feat: ps2 logs now need special macros
* feat: a lot of regressions test
feat: use test to fix bugs on runtime
fix: fix incorrect instructions on code generator
feat: added missing decode on r5900 decoder
feat: added scissor on rasterizer
* feat: better ghidra plugin analyzer
fix: fix real bug on function finding on elf analyzer
* feat: some logs on GS
feat: added more syscalls stubs
feat: added more ps2 stubs
* feat: added missing stub
* feat: basic gs
feat: basic rasterizer
fix: a lot of fixes to runtime stubs
feat: basic vif intercepter
feat: return "ok" for some stubs
feat: disassembly code as comment
fix: fix code gen instructions set
fix: again jump
feat: remove unused macro
fix: fix some problematic macros
feat: track delayslots on runtime
and many more
* feat: added missing files
* fix: fix instruction test
* fix: MULT/MULTU now write rd in addition to HI/LO (R5900 extension)
* fix: EI/DI instructions now toggle COP0 Status bit 16 (EIE) instead of bit 0 (IE)
* feat: split runtime code in small files to be easy to develop
* feat: split stubs in inl files
* feat: function auto link function treat functions with underscore as same as without underscore
* feat: remove underscore prefix from stubs
* feat: thread and flags refactor
* feat: propagate request stop
feat: some elf validation on runtime
* feat: remove Z7 compiler options
feat: added a literal float case error on vu
* fix: fix critical recompiler error on marking pc calls
* feat: better system interrupt
refactor: small refactor on thread system
* feat: stubs implements for resident evil code veronica
* feat: merge fileio
* feat: stub by address
* feat: codegen now auto-routes J/JAL callssites with known relocation symbols to syscalls/stubs
* feat: split runtime code in small files to be easy to develop
* feat: split stubs in inl files
* feat: function auto link function treat functions with underscore as same as without underscore
* feat: remove underscore prefix from stubs
* feat: thread and flags refactor
* feat: propagate request stop
feat: some elf validation on runtime
* feat: remove Z7 compiler options
feat: added a literal float case error on vu
* fix: fix critical recompiler error on marking pc calls
* feat: better system interrupt
refactor: small refactor on thread system
* feat: stubs implements for resident evil code veronica
* feat: merge fileio
* ci: add Linux GCC/Clang workflow
Add a Linux job that builds with GCC and Clang using Ninja and runs tests
* ci: install OpenGL headers on Linux
Fix raylib configure by installing libgl-dev in the Linux GCC/Clang job
* ci: enable SSE4.1 for Linux builds
Pass -msse4.1 to GCC/Clang in the Linux workflow to satisfy runtime intrinsics
* mc0: map memory card paths to mcRoot and related io tests
* Fix mc0 test setup to initialize temp paths
* fix: implementing WIN32 I/O support in syscalls
* fix: avoid fioWrite deadlock
Do not lock the fd map while calling getHostFile; use the syscall file mutex around fwrite instead
* feat: split runtime code in small files to be easy to develop
* feat: split stubs in inl files
* feat: function auto link function treat functions with underscore as same as without underscore
* feat: remove underscore prefix from stubs
* fix: added missing header include for gcc
* fix: small thread fix on syscalls
fix: fix incorrect VU translations (they was using wrong register)
* feat: added authoritative system for function extraction, this will prevent functions overlap when we have debug symbols
* Add missing VU0 Special1 macro translations
* Fix VU0 macro decode and field ops
Align Special2 decoding with fhi_flo, implement VCLIPw/VABS, and fix field variants (VADDx/VSUBx/VMULx). Keep C++17 compatibility by replacing unordered_set::contains and remove dead ADDIU return. Update Special2 metadata for VWAITQ.
* vu0: complete macro mappings and add coverage test
* review: clean up vu macro handling
* fix: restore C++20 contains in code generator
* fix: correct VU0 Special2 instruction encoding in decoder test
---------
Co-authored-by: Antonio Guastella <antonioguastella@energine.it>
Co-authored-by: Ranieri <ran-junior@hotmail.com>
fix: patching NOP things that code gen already know how to handle
feat: added a bug on JAL/J/JAR code gen
feat: enhanced tom file
fix: fix memory layout for ps2 macros
feat: added a lot of not working garbabe to runtime (fix later)
feat: some code organization
feat: added new tests
feat: update readme
* feat: added thread naming functionality
feat: improve function name sanitization
* fix: fix decode jump target
feat: better word read
feat: prevent unexpect path on output tom
feat: analyzeEntryPoint now lookup for correct entry insted of rely on names
fix: fix CFG graph
feat: mangled name are not handle and sysfunctions anymore
feat: heavy loop flag count is not 5 from 3
* fix: skip/stubs now under [general]
fix: patch address now saves as true hex insted of decimal with 0x
fix: fix J/JAL reconstruction (PC+4)
feat: better C++ identifier sanitization
feat: decoder now dont stop the execution anymore just keep going
* refactor: update function name checks to use contains method
* refactor: update code generation to use static_cast
* refactor: made member methods const
* refactor: made range-based loop
* refactor: make one variable constructor explicit
* refactor: remove redundant else
* refactor: turn includes to forward declarations
* refactor: brace placements turned into allman style
* refactor: structed binding for readability and clarity, used emplace_back to prevent extra-copied object
* fix: add dwarf_private.h include
* fix: update GPR_U32 and GPR_S32 macros to use _mm_extract_epi32 for SSE/AVX intrinsics
* refactor: update function name checks to use contains method
* refactor: update code generation to use static_cast
* refactor: made member methods const
* refactor: made range-based loop
* refactor: make one variable constructor explicit
* refactor: remove redundant else
* refactor: turn includes to forward declarations
* refactor: brace placements turned into allman style
* refactor: structed binding for readability and clarity, used emplace_back to prevent extra-copied object
* refactor: update function name checks to use contains method
* refactor: update code generation to use static_cast
* refactor: made member methods const
* refactor: made range-based loop
* refactor: make one variable constructor explicit
* refactor: remove redundant else
* refactor: turn includes to forward declarations
* refactor: brace placements turned into allman style