Mr-Wiseguy
ab80ff962e
Make mod tool emit relocs and patch binary for non-relocatable symbol references as needed
2024-08-17 16:57:17 -04:00
Mr-Wiseguy
a7a4134123
WIP elf to mod tool, currently working without relocations or API exports/imports
2024-08-17 16:57:17 -04:00
Mr-Wiseguy
d8dcb43d5a
Move elf parsing into a separate library
2024-08-17 16:57:17 -04:00
Mr-Wiseguy
04daa21908
Refactor elf parsing into static Context method for reusability
2024-08-17 16:57:17 -04:00
Mr-Wiseguy
ff7aae11df
Restructure mod symbols to make replacements global instead of per-section
2024-08-17 16:57:17 -04:00
Mr-Wiseguy
a88bc6e16a
Implement mod symbol parsing
2024-08-17 16:57:15 -04:00
Mr-Wiseguy
07f2569647
Remove some unused code and document which Context fields are actually required for recompilation
2024-08-17 16:56:17 -04:00
Mr-Wiseguy
ff5797a2aa
Changed recomp port naming to N64Recomp
2024-08-17 16:56:15 -04:00
Mr-Wiseguy
9b0a349a5e
Moved parts of recomp_port.h into new internal headers in src folder
2024-08-17 16:39:55 -04:00
Mr-Wiseguy
bb2fc8c67b
Removed unnecessary config input to recompilation functions
2024-08-17 16:33:51 -04:00
Mr-Wiseguy
ddb8a08482
Move recompiler core logic into a core library and make the existing CLI consume the core library
2024-08-17 16:28:34 -04:00
Mr-Wiseguy
bce3baa99a
Fix mov.d using the wrong input operand
2024-08-17 16:28:34 -04:00
Mr-Wiseguy
4fd4d6a883
Created Generator interface, separated operation types and tables and C generation code into new files
2024-08-17 16:28:31 -04:00
Mr-Wiseguy
bd44f0bb59
Added store instruction operation table
2024-08-17 16:27:01 -04:00
Mr-Wiseguy
812cc442d0
Finished moving float arithmetic instructions to operation tables
2024-08-17 16:27:01 -04:00
Mr-Wiseguy
9b1137eb6a
Added CHECK_FR generation to binary operation processing, moved float comparison instructions to binary op table
2024-08-17 16:27:01 -04:00
Mr-Wiseguy
90a77a0e6e
Add operands for other uses of float registers
2024-08-17 16:27:00 -04:00
Mr-Wiseguy
2997975199
Fixed likely swap on bgezal, fixed extra indent branch close and missing
...
indent on branch statement
2024-08-17 16:27:00 -04:00
Mr-Wiseguy
fb5af956b1
Added and implemented conditional branch instruction table
2024-08-17 16:26:59 -04:00
Mr-Wiseguy
024ba3959f
More binary op types, moved binary expression string generation into separate function
2024-08-17 14:16:00 -04:00
Mr-Wiseguy
239a637e29
Initial implementation of unary operation table
2024-08-17 14:12:55 -04:00
Mr-Wiseguy
7268649c44
Initial implementation of binary operation table
2024-08-17 14:10:23 -04:00
Wiseguy
f8d439aeee
Add option to output multiple functions per file, defaults to 50 ( #88 )
2024-08-15 00:17:09 -04:00
Mr-Wiseguy
424a509b22
Allow zero-sized symbols in a specific range for patches, fixed cases where errors didn't terminate the recompiler
2024-08-15 00:00:25 -04:00
Mr-Wiseguy
4161ef68cc
Made recompilation header include configurable
2024-08-15 00:00:25 -04:00
Mr-Wiseguy
dfd90057c9
Rewrote jal resolution to improve handling for overlapping overlays
2024-08-15 00:00:25 -04:00
Wiseguy
ba4aede49c
Add symbol reference file mechanism for elf recompilation ( #82 )
...
* Consolidate context dumping toggle into a single bool, begin work on data symbol context dumping
* Added data symbol context dumping
* Fix mthi/mtlo implementation
* Add option to control unpaired LO16 warnings
2024-07-02 21:42:22 -04:00
Anghelo Carvajal
16819a0515
Add libgultra_d functions to ignored_funcs ( #60 )
2024-06-21 08:38:15 -04:00
Scott Brenner
ecc9dc49e5
Bump actions/checkout to v4 ( #76 )
2024-06-10 12:31:50 +02:00
dcvz
ca096fd078
CI: Fix Windows CI after image updates
2024-06-07 10:42:47 +02:00
David Chavez
2a2df89349
Remove disable_warnings header include ( #75 )
2024-06-05 00:02:37 +02:00
David Chavez
8dfed04919
Update headers to use new namespace in N64ModernRuntime ( #74 )
2024-06-03 21:46:42 +02:00
Gilles Siberlin
6eb7d5bd3e
Implement hook insertion ( #73 )
...
* Implement function hook insertion
* Fix recompiled code indentation
* Add _matherr to renamed_funcs
* Replace after_vram by before_vram
* Emit dummy value if relocatable_sections_ordered is empty
2024-05-31 23:31:50 -04:00
David Chavez
5c687ee962
CI: Add Linux arm64 ( #69 )
2024-05-31 22:48:42 +02:00
Anghelo Carvajal
94b59d56f7
Mask the lower 3 bits of the de RSP operand ( #55 )
2024-05-17 22:38:19 -04:00
Mr-Wiseguy
e0e52d1fc3
Symbol file toml update ( #52 )
...
* Symbol input file mechanism
* Migration to new toml lib
---------
Co-authored-by: dcvz <david@dcvz.io>
2024-05-16 22:33:08 -04:00
Anghelo Carvajal
26c5c2cbb8
Implement tail calls in the middle of functions and allow recomping libgcc math routines ( #43 )
2024-05-14 18:56:23 -04:00
Anghelo Carvajal
5d46de6de0
Add more renamed_funcs ( #35 )
2024-05-14 15:06:47 -04:00
Tharo
d4fab15fcc
RSPRecomp: Add some features to help debug unhandled indirect jump targets (file+line of instruction and register dump) ( #33 )
2024-05-13 21:00:00 -04:00
David Chavez
706e7c5069
Add Initializers for Structs - Fix issue with Apple Clang ( #31 )
...
Fixes #30 also adds CI
2024-05-13 20:55:43 -04:00
Anghelo Carvajal
d7b223fde5
Implement bgezal/bgezall ( #23 )
2024-05-12 22:07:46 -04:00
Mr-Wiseguy
3ab0edf18a
Changed RSPRecomp to take a toml config file instead of using hardcoded options
2024-05-12 20:30:02 -04:00
Tharo
dbf0e623c8
Implement doubleword multiply and divide, and conversions between doubleword and single/double precision floats ( #16 )
2024-05-11 14:08:15 -04:00
Mr-Wiseguy
5838e4223a
Add license and readme
2024-05-10 17:19:30 -04:00
Mr-Wiseguy
0f813247a1
Added CMake build system, fixed warnings on clang, removed VS solution/projects
2024-04-20 21:05:50 -04:00
Mr-Wiseguy
32841e85b4
Changed RSP recompiler to emit different macros for loads and stores to handle unaligned access
2024-04-20 20:02:28 -04:00
Mr-Wiseguy
47c9033b61
Improved reloc pairing
2024-04-20 20:00:48 -04:00
Mr-Wiseguy
50d55bd171
Added manual sections input option, fixed bug with multiplications and added mthi/lo instructions
2024-04-20 20:00:29 -04:00
Mr-Wiseguy
72fe4ed79c
Added some missing float comparison instructions and fixed functions incorrectly getting detected as the entrypoint
2024-03-11 00:15:31 -04:00
Mr-Wiseguy
9a4f650c9b
Fixed relocatable section file path error using the wrong value, added an include for funcs.h to single-file output mode
2023-11-24 15:11:36 -05:00