Commit graph

103 commits

Author SHA1 Message Date
Matthew Stanley
97b137eeb8 pi: bounds-check do_rom_read; zero-fill on out-of-range DMA
Audio engine code paths in some games (Pokemon Stadium with the
caller-context fragment-vaddr override active) compute wave-bank
ROM offsets from corrupted SoundBank fields, causing __amDMA to
issue PI DMAs from physical addresses past the cart ROM end.

Previously do_rom_read computed `rom.data() + (phys - rom_base)`
without checking bounds — any out-of-range physical address read
host memory past the ROM buffer, almost always causing an access
violation that killed the process.

Bounds-check the computed offset and the size against rom.size().
On out-of-range, zero-fill the destination and log the bad DMA.
The runner survives, audio gets silence/clicks instead of garbage,
and the rate-limited log surfaces the bad addresses for tracing
back to the corrupted wave-bank fields.

This is a defensive runtime measure, not a stub. The bad DMAs are
real bugs upstream (in the recompiled audio code's data flow) —
this just keeps the host process alive long enough to diagnose
them.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 22:27:58 -07:00
Matthew Stanley
e43892bb5f pi: mirror ROM into kseg1 region of rdram
Adds recomp::mirror_rom_to_kseg1(rdram) that copies the loaded ROM
into rdram + 0x30000000 with XOR-3-byte-swapped storage so direct
MIPS reads of cart vaddrs return the expected bytes.

Why:
  The recompiler's MEM_W formula maps kseg1 vaddrs into the second
  512 MiB of the rdram allocation:
    MEM_W(addr) = *(int32_t*)(rdram + (addr - 0xFFFFFFFF80000000))
  For addr=0xB0000000, that's rdram + 0x30000000. Previously, ROM
  bytes were only available via osPiStartDma -> do_rom_read; direct
  reads of cart vaddrs (e.g. `lw $t0, 0xE38($t9)` with $t9=0xB000_0000)
  hit never-written rdram and returned garbage.

Visible symptom:
  Pokemon Stadium's Game_DoCopyProtection at 0x80028FA0 reads
  *(u32*)0xB0000E38 and compares the low 16 bits against 0x828A.
  Without the mirror that read returned 0, the magic check tripped,
  and the function returned -0x10 = 0xFFFFFFF0 — a sentinel state
  that the main state-machine switch doesn't handle. Title screen
  flashed for 1-2 frames then reverted to intro on every run.

  After the fix: copyprot returns input state unchanged, title
  screen stays up cleanly. Verified via Stadium harness:
  gCurrentGameState transitions 0x01 -> 0x02 and stays there
  through 25s of idle with zero copyprot trips logged.

Generality:
  Any N64 game with a ROM-checksum / magic-word check (Stadium,
  many original-IP games, anti-piracy code in others) needs this.
  CIC-NUS-6103 / 6105 / 6106 boot also reads ROM via virtual
  addresses. The mirror is install-once at game-start time, after
  load_stored_rom populates the rom vector.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 22:27:58 -07:00
Wiseguy
0bb76b0fc7
Update N64Recomp submodule to fix build issue with clang 21 (#136)
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
2026-01-17 02:02:23 -05:00
Wiseguy
17eb42298d
Update nlohmann json to 3.12.0 (#135) 2026-01-17 01:54:24 -05:00
Garrett Smith
4cf46bf7f4
Fix __osContGetInitData mask to detect multiple controllers (#134)
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
2026-01-16 20:57:47 -05:00
Garrett Smith
9ae9dbbe41
Add check for controller device info in rumble functions (#132)
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
2026-01-15 23:18:02 -05:00
Garrett Smith
575c8f22a0
Add recomp::Configuration and ultramodern::MessageQueueControl + plumbing (#131)
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
2026-01-15 20:23:39 -05:00
Wiseguy
e8d7aec1bb
Implement displaylist event extension functions for easier game scheduling modifications (#128)
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
* Implement displaylist event extension functions for easier game scheduling modifications

* Fix build on clang 15
2025-12-12 02:11:14 -05:00
Wiseguy
dced99c0b8
Update mac CI runners after deprecation of macos 13 (#129) 2025-12-12 02:04:42 -05:00
Wiseguy
46b7a37a4c
Update N64Recomp submodule for clang 20 fix (#127)
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-12-03 02:30:53 -05:00
Wiseguy
d237c86427
Allow mods to include a ROM patch .bps file (#126)
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
* Implement BPS patcher for rom patch mods

* Integrate ROM patcher and add ROM patch content type
2025-11-29 22:52:50 -05:00
Wiseguy
a849ecf511
Requeue some external messages if their queues were full to prevent game lockups (#125) 2025-11-07 23:54:59 -05:00
Wiseguy
df7e820d8c
VI accuracy fixes and osSetTime implementation (#123)
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
* Rewrite VI functionality for higher accuracy

* Implement osSetTime and move update screen to before VI update
2025-08-11 23:52:47 -04:00
Manuel Alfayate Corchete
cea072b59b
Remove unnecessary x11 header include. (#122)
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-07-24 15:00:45 -04:00
Wiseguy
83891b4231
Fix handling of mod callbacks for events in optional dependencies (#121)
Some checks failed
validate / windows (x64, Debug) (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, 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-07-23 00:08:44 -04:00
Wiseguy
df547d2c06
Update runtime for fixed address mod sections, fix some live recompiler errors not triggering mod loading errors (#120)
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-07-19 04:09:14 -04:00
Wiseguy
bd1dde8774
Implement optional dependencies for mods and add recomp_get_mod_file_path export (#118) 2025-07-19 03:44:52 -04: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