* 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>
* 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>
* 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
* 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
* 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
* 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
* `osPiRawStartDma_recomp` and `osEPiRawStartDma`
* `osPfsNumFiles` and `osPfsRepairId`
* whoops, wrong name
* Fix missing new line on message box
* Use actual pointers in osPfsNumFiles_recomp
* System to specify thread types by the game
* Register threads callbacks
* Remove temporary and permanent threads
* Fix `pthread_setname_np` not liking names longer than 16 bytes
* Singular
* Rename events_callbacks arg
* Use `prctl` instead of `pthread_setname_np` for naming a thread
* Fix typo