Commit graph

102 commits

Author SHA1 Message Date
Sonic Dreamcaster
381e0704b9 osPfsAllocateFile_recomp: add check for max files 2025-07-23 05:50:10 -03:00
Sonic Dreamcaster
1834cef9c9 Pak.cpp: cleanup 2025-07-22 19:24:12 -03:00
Sonic Dreamcaster
ece48700a8 forgot to fix osPfsInitPak_recomp 2025-07-22 15:23:10 -03:00
Sonic Dreamcaster
33228560d5 pak queue as int32_t 2025-07-22 15:15:36 -03:00
Sonic Dreamcaster
c2a525ed2d Pak: int32_t queue 2025-07-22 14:45:37 -03:00
Sonic Dreamcaster
9a658b406f ARRAY_COUNT 2025-07-22 07:08:31 -03:00
Sonic Dreamcaster
19d26be0ae simplify code and fix DeleteFile bug 2025-07-22 06:07:41 -03:00
Sonic Dreamcaster
7361eba6e4 forgot this check 2025-07-21 18:38:28 -03:00
Sonic Dreamcaster
bf84e072d1 add padding to OSPfsState 2025-07-21 04:14:15 -03:00
Sonic Dreamcaster
e48e7b5137 fully working and tested with mk64 and <?> 2025-07-21 03:58:09 -03:00
Sonic Dreamcaster
c964f29220 quick fix 2025-07-20 23:00:08 -03:00
Sonic Dreamcaster
b18f6b3ff8 Refactor. State: OK 2025-07-20 19:30:14 -03:00
Sonic Dreamcaster
118ad933de WIP C++ changes 2025-07-19 23:49:59 -03:00
Sonic Dreamcaster
7e4a78680a WIP C++ changes 2025-07-19 23:22:06 -03:00
Sonic Dreamcaster
ed7db194c4 get rid of file_no in IsFileEmpty() 2025-07-18 03:45:47 -03:00
Sonic Dreamcaster
da54226f8a Implement controller pak functions 2025-07-18 03:21:54 -03:00
Wiseguy
ba2acaeb5c
Fix unplugged controller memory writes, add some missing math routines, and slightly weaken DMA alignment requirements (#117)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
---------

Co-authored-by: LittleCube <littlecubehax@gmail.com>
2025-06-29 22:04:54 -04:00
Wiseguy
94b30d7061
Add exports to get the return value of functions from return hooks (#116)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-06-23 01:42:05 -04:00
Wiseguy
4ba1b54d22
Sort hooks and callbacks by mod order, with return hooks in reverse order (#115) 2025-06-23 01:37:59 -04:00
Wiseguy
c5e268aa0f
Fix issue where functions that were regenerated for hooking use the wrong index when triggering events (#112)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-05-03 02:45:08 -04:00
Wiseguy
327c34db2d
Fix native exports not getting cleared and bss sometimes not getting zero'd (#110)
Some checks are pending
validate / ubuntu (arm64, Debug) (push) Waiting to run
validate / ubuntu (arm64, Release) (push) Waiting to run
validate / ubuntu (x64, Debug) (push) Waiting to run
validate / ubuntu (x64, Release) (push) Waiting to run
validate / windows (x64, Debug) (push) Waiting to run
validate / windows (x64, Release) (push) Waiting to run
validate / macos (arm64, Debug) (push) Waiting to run
validate / macos (arm64, Release) (push) Waiting to run
validate / macos (x64, Debug) (push) Waiting to run
validate / macos (x64, Release) (push) Waiting to run
2025-05-02 15:07:52 -04:00
Wiseguy
0aa75b98ba
Add export to get mod folder path (#109)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-04-26 19:06:23 -04:00
Darío
02d797aedc
Add support for embedded mods. (#108)
Some checks failed
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
* Add support for embedded mods.

* Fix autogenerated mod manifests

---------

Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
2025-04-22 23:53:43 -04:00
Wiseguy
4b57f50722
Allow freeing null pointers in the recomp_free export to match the C spec for free (#107)
Some checks failed
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
2025-04-13 22:09:15 -04:00
Wiseguy
3c49f87ac6
Fix default value of mod enabled_by_default field (#105)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-04-09 20:16:25 -04:00
Wiseguy
d2f9a32b90
Add default enabled state to mod manifest (#104)
Some checks are pending
validate / ubuntu (arm64, Debug) (push) Waiting to run
validate / ubuntu (arm64, Release) (push) Waiting to run
validate / ubuntu (x64, Debug) (push) Waiting to run
validate / ubuntu (x64, Release) (push) Waiting to run
validate / windows (x64, Debug) (push) Waiting to run
validate / windows (x64, Release) (push) Waiting to run
validate / macos (arm64, Debug) (push) Waiting to run
validate / macos (arm64, Release) (push) Waiting to run
validate / macos (x64, Debug) (push) Waiting to run
validate / macos (x64, Release) (push) Waiting to run
2025-04-09 04:35:21 -04:00
Wiseguy
234ed4a95e
Make mod config value getters const (#103) 2025-04-09 03:39:14 -04:00
Wiseguy
bb6b3b1645
Add mod API export to get the save file path (#102) 2025-04-09 01:15:10 -04:00
Wiseguy
1f2a5838ab
Added a mechanism to swap save files at runtime and a corresponding mod API export (#101)
Some checks are pending
validate / ubuntu (x64, Release) (push) Waiting to run
validate / ubuntu (arm64, Debug) (push) Waiting to run
validate / ubuntu (arm64, Release) (push) Waiting to run
validate / ubuntu (x64, Debug) (push) Waiting to run
validate / windows (x64, Debug) (push) Waiting to run
validate / windows (x64, Release) (push) Waiting to run
validate / macos (arm64, Debug) (push) Waiting to run
validate / macos (arm64, Release) (push) Waiting to run
validate / macos (x64, Debug) (push) Waiting to run
validate / macos (x64, Release) (push) Waiting to run
2025-04-08 02:21:06 -04:00
Wiseguy
cacb14fee5
Add mod API export to let a mod get its own version (#100) 2025-04-08 01:04:37 -04:00
Wiseguy
af075623dc
Add callback for mod reordering and functions to get mod file path and order index (#99)
Some checks failed
validate / windows (x64, Release) (push) Has been cancelled
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-04-06 22:14:13 -04:00
Wiseguy
8506c1b588
Fix race condition where update_gfx could be called after renderer shutdown (#98) 2025-04-06 19:42:15 -04:00
Wiseguy
db1b1a1082
Expose functionality needed for runtime mod installation (#97)
Some checks are pending
validate / ubuntu (arm64, Release) (push) Waiting to run
validate / ubuntu (x64, Debug) (push) Waiting to run
validate / ubuntu (x64, Release) (push) Waiting to run
validate / ubuntu (arm64, Debug) (push) Waiting to run
validate / windows (x64, Debug) (push) Waiting to run
validate / windows (x64, Release) (push) Waiting to run
validate / macos (arm64, Debug) (push) Waiting to run
validate / macos (arm64, Release) (push) Waiting to run
validate / macos (x64, Debug) (push) Waiting to run
validate / macos (x64, Release) (push) Waiting to run
* DnD prototype.

* Remaining changes needed for runtime mod installation

* Change path unordered map to use strings as keys instead to fix MacOS compilation

---------

Co-authored-by: Dario <dariosamo@gmail.com>
2025-04-06 03:53:28 -04:00
Wiseguy
6f8393f691
Allow renderers to pick the graphics API (#96)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-03-23 21:39:30 -04:00
Wiseguy
2ed84f46c5
Implement mod configuration, mod reordering, and extended exports (#95)
* init recomp config_store

* Use a custom hash class to enable hetereogenous lookup

* Added config registry/option files

* switch to using usings

* dropdown config type

* Added TextField option type

* parse/validate button config type

* wip callback registry

* Add auto enabled.

* Cleanup.

* Add support for config schema.

* Add float arg1 helpers

* Config storage for mods.

* Proper enum parsing.

* Persist mod order and enable.

* Enable new mods by default.

* Mods directory.

* Parse thumbnail when opening mods.

* Auto-enabled mods.

* Implement extended function exports that pass the caller mod's index as an extra argument

* Fix mod configs not saving and default value not getting parsed

* Implement API to allow mods to read their config values

* Fix config value parsing to allow integral values for double fields

* Change construction of ModConfigQueueSaveMod.

* Fix N64Recomp commit after rebase

---------

Co-authored-by: Dario <dariosamo@gmail.com>
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
2025-03-23 21:30:27 -04:00
David Chavez
ec56fb39b0
Add Metal as a renderer (#94)
Some checks failed
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled
2025-03-14 18:08:18 +01:00
Wiseguy
52ee0a675f
Fix missing chrono include on some STL implementations (#92) 2025-03-05 21:22:51 -05:00
Wiseguy
a7b9470f92
Fix osDpSetStatus bit handling (#88) 2025-02-18 17:34:36 -05:00
Wiseguy
a2f201db84
Add on init callback to GameEntry, fix thread_queue_remove not actually removing the thread (#87) 2025-02-17 21:34:22 -05:00
Wiseguy
0afeb089a5
Fix jump table handling in regenerated relocatable functions (#86) 2025-02-11 22:45:45 -05:00
Wiseguy
5360099ee2
Fix issues with hooking functions that were patched by the base recomp (#85) 2025-02-11 01:11:24 -05:00
Wiseguy
7319630e2e
Fix issue with regenerating patched functions with no base functions regenerated, add 1kB of padding between mods to mitigate OOB accesses in mods, update N64Recomp (#84) 2025-01-30 03:02:40 -05:00
Wiseguy
3474514013
Populate display_name for autogenerated manifests (#83) 2025-01-26 23:00:13 -05:00
Wiseguy
6eca1df47f
Edited mod error messages to reflect new manifest filename, updated N64Recomp commit (#82) 2025-01-26 22:51:39 -05:00
Wiseguy
5eada509c0
Rename manifest to mod.json, refactor config parsing, add display_name, description, short_description fields (#81) 2025-01-26 22:14:08 -05:00
Wiseguy
cdfe416809
Mod function hooking (#80)
* Prevent mods from replacing functions patched by the base recomp unless they're marked as Force

* Implement function hooking for functions replaced by mods

* Add support for hooking non-relocated functions that aren't replaced by a mod

* Only create the regenerated code handle if any functions need to be regenerated

* Implement relocs for function regeneration in hooking

* Implement hooking of functions patched by the base recomp

* Fix base event index tracking when loading mods

* Update to N64Recomp main branch after merge
2025-01-26 22:03:36 -05:00
Ethan Lafrenais
7eb4bc3459
Runtime support for RSP overlays (#77) 2025-01-16 00:32:33 -05:00
Wiseguy
50029c70fd
Update sse2neon.h (#79) 2025-01-13 02:11:36 -05:00
Ethan Lafrenais
9721c8de3b
Add GameEntry.thread_create_callback (#78) 2025-01-12 23:43:53 -05:00
Wiseguy
d17a3f34cb
Integrate the live recompiler for mod loading (#76) 2025-01-02 21:25:20 -05:00