Wiseguy
94b30d7061
Add exports to get the return value of functions from return hooks ( #116 )
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 )
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 )
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 )
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 )
...
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 )
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 )
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 )
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 )
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 )
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 )
...
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 )
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 )
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
Darío
1361c48f59
Use SDL_Window as the WindowHandle in Linux and Android. ( #73 )
2024-12-23 21:23:24 -05:00
Wiseguy
576fed6cfc
Fix mods getting duplicated when scanning multiple times, fix incorrect mmap for rdram ( #71 )
2024-12-04 18:41:35 -05:00
Wiseguy
e3a8355a19
Fix eeprom probe and remove redundant eeprom size checks ( #70 )
2024-11-24 02:20:24 -05:00
Wiseguy
d5c81d0a6b
Fixed bitpattern pointer for osContInit and removed shader cache functionality ( #69 )
2024-11-08 21:09:16 -05:00
Wiseguy
ef6e84cb8a
Added save type selection and validation ( #68 )
2024-10-26 22:38:25 -04:00
Wiseguy
9ee0e7369a
Misc fixes and implement osStopThread (partial), osEepromWrite, and osEepromRead ( #67 )
...
* Fix rdram allocation to only allow kseg0 accesses
* Implement osEepromWrite and osEepromRead, fix implicit casting error in save_write
* Partially implement osStopThread
* Fix audio allowing games to queue 0 samples
* Remove commented out line
2024-10-26 20:41:05 -04:00
Wiseguy
3e39c2ec34
Add modified o1Heap library and set up recomp heap ( #66 )
...
* Add modified o1Heap library and set up recomp heap
* Fix missing include on POSIX systems
2024-10-21 22:23:33 -04:00
Wiseguy
9e9ae173ee
Fixed incorrect alignment during mod section loading ( #65 )
2024-10-12 01:10:59 -04:00
Wiseguy
25e8bcc1e1
Added mechanism for recomps to declare custom mod content types and container formats ( #64 )
...
Also adds a way to specify whether a given content type can be toggled at runtime. The built-in mod code content type has this setting disabled.
2024-09-28 16:47:00 -04:00
Wiseguy
46797d6cad
Made DLL loading also search the DLL's path for dependency resolution ( #63 )
2024-09-27 00:50:07 -04:00
David Chavez
b80bb216b2
fix(macos): Add support for macos and ARM64 patching ( #62 )
2024-09-17 18:15:24 -04:00
Wiseguy
356b9f901e
Fix populating reference symbol pointers and add missing runtime function pointers in offline compiled mod loading ( #61 )
...
* Fixed reference symbol pointers not being populated in offline compiled mods
* Add populating missing runtime function pointers in offline compiled mods
* Update N64Recomp after merge
2024-09-12 19:00:02 -04:00
Wiseguy
45e9f7a6cb
Runtime Mod Support PR 1 (Mod framework and mod loading) ( #60 )
...
* Added miniz and implemented mod manifest loading from zip
* Add more mod loading error enums
* Added ability to load mods from directories instead of zip files
* Added validation for mod contents and mod load error strings
* Add checks for required fields existing in manifest
* Renamed load_mod to open_mod and ModLoadError to ModOpenError
* Made rdram size an argument in recomp::start, reorganized some PI address constants
* Add N64Recomp as submodule and initial mod loading (temporarily using a DLL instead of Lua recompilation)
* Created ModContext and exposed functionality for searching mod folders, activating mods, and loading active mods
* Implemented per-game mod contexts
* Add duplicate mod detection
* Added function conflict detection, recovery from failed mod loading and message box with load errors
* Update N64Recomp for new modding infrastructure, begin adding support for offline compiled mods
* Reorganized mod loading, added mod dependency validation
* Reorganized mod code handle code
* Implement importing functions from other mods
* Implement mod events and callbacks
* Add support for creating events in patches
* Add support for exporting functions from native libraries in mods
* Removed per-game mod subdirectories and added the mod's corresponding game id to the manifest
* Added version parsing with version number as argument to recomp initialization and minimum recomp versions for mods
* Changed mod binary and mod symbol files to use fixed paths, removed them from the manifest
* Expose function for getting the details for currently opened mods
* Add dependencies and authors to manifest and update N64Recomp submodule
* Implement mod loading on posix systems
* Implement mip32 relocs for mod loading and add mod functions to function lookup table
* Add CPU architecture detection and gate current mod function hooking behind x86_64 define
* Fix build on compilers that don't properly support aggregate initialization
* Fix compilation on ARM64 and Apple
* Fix compilation on MacOS x86_64
* Update N64Recomp commit after merge
* Fix whitespace in game.hpp
2024-09-09 23:16:07 -04:00
Wiseguy
0a53855333
Add RECOMP_FUNC definition to recomp.h for disabling IPO ( #59 )
2024-08-13 23:30:33 -04:00
Wiseguy
47feaaaa0d
Allow registering multiple patch sections ( #57 )
2024-07-28 21:19:46 -04:00
Anghelo Carvajal
c7ab41ec05
Fix saving never failing ( #53 )
2024-06-21 19:31:16 -04:00
David Chavez
ce68e96c17
Remove WIP section in README ( #52 )
2024-06-20 17:16:43 +02:00