* 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
* `RendererContext` abstract class
* Delete rt64_layer
* Implement renderer creation callback
* Make `GraphicsConfig` an abstract class
* Remove rt64
* Add renderer callback to `ultramodern::set_callbacks`
* Fix rebase
* Change setup_result's visibility to protected
* Declare abstract `is_equal` method instead of operators
* Various fixes
* Fix issues
* trigger_config_action
* Move GraphicsConfig back to ultramodern
* Change `update_config` to return if any changes were applied
* Rename renderer_wrapper to renderer_context
* Remove SDL2 and other libraries
* Allow registering get_graphics_api_name
* Move WindowHandle to renderer namespace
* Comments explaining which callbacks are required
* Fix CI
* Update readme
* `ULTRAMODERN_QUICK_EXIT` macro
* Remove --config from readme
* Add `add_compile_definitions(NOMINMAX)`