38 Commits
Author SHA1 Message Date
SourMesen 94616b6905 GBA: Fixed sleep mode issues (#214)
Timers, DMAs and the PPU no longer run during sleep (prevents audio DMA from being triggered and executed), and prevents the PPU from triggering DMAs/IRQs during sleep
This also fixes a bug where the GB-style APU channels could stay disabled permanently after leaving sleep mode (because the StopMode flag wasn't being reset to false)
2026-07-11 15:36:06 +09:00
SourMesen 8a7971397e GBA: Added support for MRC/MCR for CP14 (#196) 2026-07-02 15:54:24 +09:00
SourMesen 4b55c8eab5 GBA: Improved open bus logic (#179)
-Open bus should update all 32-bits with the OAM value when OAM is read (even if not a 32-bit read) - fixes the DMA_OAM_Bus test
-All writes should update the open bus value (fixes the Unused_location_update_bus test)
2026-06-19 17:20:09 -07:00
SourMesen e391fd8f9a Code: Add auto-formatting rules for C++ (clang-format) and enforce in CI via "clang-format" and "dotnet format" (#78)
* Code: Add auto-formatting rules for C++ projects (clang-format) and enforce code style via "clang-format" and "dotnet format"

* fix ui format warnings
2026-04-30 06:03:55 -07:00
Sour 0e30a7d358 GBA: PPU - Added 3 cycle delay when enabling/disabling OBJ layer
Fixes Sprite_Disable_Midline and Sprite_Disable_on_VRAM_Access test roms
2025-06-09 21:17:59 +09:00
Sour df2056e515 GBA: DMA - Added missing 1 cycle delay after DMA IRQ
Fixes fifo_6 test
2025-06-09 18:45:22 +09:00
Sour ad2b8b8895 GBA: Fixed IRQ polling timing
Fixes cirotemark result (ticks diff = 0)
2025-06-08 19:29:47 +09:00
Sour aec12b17ad GBA: Performance fixes
Brings performance back to closer to what it was before the latest accuracy fixes
2025-06-07 00:47:32 +09:00
Sour 9cc24ba652 GBA: Fixed prefetcher edge case when a 128kb boundary is hit
Fixes all 4 prefetcher_boundary_x tests
2025-06-06 21:44:54 +09:00
Sour f4ebf73dd3 GBA: Fixed fetch cycle after DMA ends not always being a non-sequential fetch 2025-06-06 21:44:08 +09:00
Sour d90fe0ad19 GBA: Fixed IRQ behavior for idle cycles that run during DMA
Fixes these test roms:
Halt_DMA_IRQ
Halt_DMA_IRQ_Read_OAM
Internal_Cycle_DMA_IRQ_7
Internal_Cycle_DMA_IRQ_ldr_IWRAM
Internal_Cycle_DMA_MUL_IRQ
2025-06-06 21:43:59 +09:00
Sour 87ee4da545 GBA: Minor performance optimizations 2025-05-10 13:34:39 +09:00
Sour f3a1c1edcc GBA: Fix "Layer toggle 2" test
Fully disabling a layer seems to also have a delay? Similar to enabling layers (unconfirmed)
+ Refactor layer transform update trigger
2025-05-10 12:51:58 +09:00
Sour f1256c840d GBA: Fixed regression that caused the test rom to dump the bios to save ram to fail
This was broken by 32ab5cfa7e
Reading from open bus should probably not affect open bus, since no device is putting any data on the bus in this case
2025-05-05 21:29:27 +09:00
Sour 4abe8c22a1 GBA: Fixed IRQ timing/regression
The previous fix for Internal_Cycle_DMA_IRQ was incorrect and broke audio in Mario Golf
This new fix checks the IRQ line after the first cycle of each memory access, rather than at the end of each memory access. This passes all tests and does not require the "delay" that was put in the previous fix, which solves the Mario Golf sound issues
2025-05-05 11:10:29 +09:00
Sour a9a9d3b4ca GBA: Fixed latch timing for BGxPB / BGxPD registers
Fixes bgpd test
2025-05-04 22:32:58 +09:00
Sour a09708d43f GBA: VRAM read/write stalling fixes/improvements
-Fixed stalls not being applied to OAM accesses
-Split 32-bit VRAM/palette accesses into 2 16-bit accesses, which can both be stalled separately
2025-05-02 20:08:45 +09:00
Sour df4e3f2b97 GBA: Tweak IRQ behavior during DMA
Fixes Internal_Cycle_DMA_IRQ test
2025-05-02 20:08:36 +09:00
Sour 1826f0a50a GBA: Improved halt timing
Fixes haltcnt test and "DMA Prefetch" in the mGBA suite test
2025-05-02 20:08:31 +09:00
Sour d473d0ea37 GBA: Improved PPU timings
Fixes basic-timing, exact-timing, status-irq-dma tests
2025-05-02 20:08:26 +09:00
Sour 20ebae54ce GBA: Fixed read value of POSTFLG when "skip boot screen" option is enabled 2025-04-28 22:43:56 +09:00
Sour f202cbf759 GBA: Allow running CPU idle cycles during DMA
Fixes multiple tests: dma-start-delay, Internal_Cycle_DMA_Mul and AGBEEG_AGING_CARTRIDGE (DMA test)
2025-04-28 21:36:00 +09:00
Sour 4b9c5ab9c4 GBA: Fixed prefetch bug when DMA starts
Prefetch was running as if a cycle had executed before DMA, even though that wasn't the case
Fixes prefetcher_dma test rom
2025-04-28 20:56:20 +09:00
Sour 3827ae5f29 GBA: Fixed open bus behavior for registers
Fixes test 3 in Hades-Tests' dma-latch test
2025-04-27 20:50:11 +09:00
Sour a17a97fb7b Debugger: Lua - Support small arrays in getState/setState
This is needed to e.g have access to the GBA CPU's registers, etc.
Also hid some internal GBA state from getState to improve performance
2025-04-15 22:43:52 +09:00
Sour 8d6830a70a SNES: Add support for ST018 coprocessor
Used by a single game: Hayazashi Nidan Morita Shougi 2
2024-12-29 23:41:52 +09:00
Sour 32ab5cfa7e GBA: Fixed open bus issues
This fixes a freeze in Zelda Minish Cap (in the final dungeon) and fixes a test in the mGBA test suite (Misc -> DMA prefetch -> Read)
2024-12-20 14:25:10 +09:00
Sour dbebbf66e5 GBA: Improved prefetch behavior when enabling/disabling it
Fixes the AGBEEG cartridge tests
2024-11-06 21:21:55 +09:00
Sour 8e6846eaf6 Debugger: GBA - Fixed incorrect ROM values for addresses over 16mb 2024-10-07 17:34:28 +09:00
Sour aa1c20afe5 GBA: Fixed black screen regression in X-Men The Official Game
This was caused by changes done in the open bus implementation to pass the openbuster test, which broke this game
2024-09-15 23:21:59 +09:00
Sour 1670259ca1 GBA: Improved BIOS lock logic
Based on: https://web.archive.org/web/20240111232601/https://gist.github.com/merryhime/797c523724e2dc02ada86a1cfadea3ee
2024-08-26 21:01:36 +09:00
Sour bd12aaabe4 GBA: Only suspend prefetch after/if DMA accesses ROM
Fixes the remaining failures in mGBA Suite's "Timing Tests"
2024-08-23 21:30:53 +09:00
Sour 262ba4a919 GBA: Fixed log API issues 2024-08-13 21:28:30 +09:00
Sour 52c5da5a91 GBA: Changed open bus behavior to match openbuster test rom 2024-07-05 22:49:40 +09:00
Sour 08adf89dd0 GBA: Added option to enable a log API that should be compatible with mGBA's 2024-06-24 15:23:40 +09:00
Sour 226f409c2f GBA: Prevent input IRQ from triggering in incorrect conditions
IRQ was incorrectly updated based on each new byte of 16/32-bit writes
2024-03-30 15:12:21 +09:00
Sour bb96928fe9 Linux: Fixed compilation errors/warnings 2024-03-30 12:31:04 +09:00
Sour 13acb3fe42 Added GBA support 2024-03-30 11:42:31 +09:00