28 Commits
Author SHA1 Message Date
SourMesen 49c9a3a4ba GB: Added overclock and remove sprite limit options (#216) 2026-07-11 17:47:41 +09: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 af96c4e3d7 GBA: Fixed some test cases in ram-access-timing test rom
Sprite -> Unlocked Hblank (OAM)
Mode 0 -> BG0 (4bpp) -> HOFS = 5
Mode 0 -> BG0 (8bpp) -> HOFS = 5 + 6
DISPCNT latch -> OBJ VRAM Fetch
+ Sprite -> Unblocked (VRAM) in alyosha's ram-access-timing_oam variant
2025-06-07 13:48:54 +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 ca74a33683 GBA: PPU - Improved BG fetch timing
BG VRAM fetches can continue beyond cycle 1006 depending on the X scroll value, etc.
This fixes some scenarios in ram-access-timing
2025-06-06 22:49:50 +09:00
Sour be341213be GBA: PPU - Improve/fix behavior when x scroll register is updated mid-scanline
This displays the correct graphics for the Advance Wars dialog top border, and mostly reproduces the small glitches visible at the left side of the screen in the Fire Emblem The Sacred Stones menu
2025-05-11 15:29:36 +09:00
Sour f0ed27179a GBA: Added support for overclocking 2025-05-11 00:10:28 +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 792cefb251 GBA: Fixed sprite X mosaic rendering issue when CPU writes to the PPU registers mid-scanline
Fixes minor visual artifacts in Shrek 2's menu during transitions
2025-05-08 23:32:45 +09:00
Sour 7776bd3bfe GBA: Fixed sprite Y mosaic edge case
Fixes a small issue in the sprite-vmosaic test rom
2025-05-08 23:32:17 +09:00
Sour f139b64f2b GBA: Fixed glitches on top left of the screen in Gauntlet
Gauntlet sets the attributes of unused sprites to 0xFF, which causes them to use both the "invalid" shape mode and the "invalid" sprite mode (which is the stereoscopic flag), this caused mesen to try to display these as 64x64 sprites (doubled to 128x128) and caused the sprites to appear at the top left on some frames (the sprite tiles were wrapping around and fetching from address 0x10100, which changes from frame to frame)
Forcing shape mode 3 to always be 8x8 fixes the problem, but hasn't been confirmed on hardware.
The glitch appeared because of a previous fix to allow mode 3 (stereo) sprites to be shown on the screen, because the game Guranbo expects these to be visible in its character naming screen)
2025-05-05 18:00:01 +09:00
Sour 31c37f2544 GBA: Fixed graphical issues in Advance Rally (regression)
Caused by the previous BGxPD fix. Writes to BGxX/BGxY need to be handled at the same time as the transform updates
2025-05-05 14:32:54 +09:00
Sour a9a9d3b4ca GBA: Fixed latch timing for BGxPB / BGxPD registers
Fixes bgpd test
2025-05-04 22:32:58 +09:00
Sour 7703d1d17e GBA: Implement delay when clearing "forced blank" flag
Fixes dispcnt-latch test, which seems to expect a ~2 scanline delay
2025-05-04 00:05:36 +09:00
Sour 8cad20ed79 GBA: PPU - Fixed Y window behavior when enabled/disabled mid-frame
Fixes window behavior in dispcnt-latch test
2025-05-04 00:02:18 +09:00
Sour 386ecc2fbd GBA: Shift all PPU ram accesses by 1 dot
-Fixes Sprite_Last_VRAM_Access
-Fixes Sprite_Last_VRAM_Access_Free (after tweaking the exact dot on which sprite eval ends in this scenario)
-Greatly improves cirotemark test result (down to a 755 tick gap)
2025-05-03 09:59:19 +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 176f14ae33 GBA: Fixed missing sprites in Guranbo's character name screen
The game sets the sprites to obj mode 3 (by mistake?), which is an unused "stereoscopic" mode for sprites. Mode 3 seems to behave like mode 0 when the global "stereoscopic" flag is not set (previously "green swap"), so the sprites are meant to display normally in this scenario (instead of being hidden like they were before)
2025-04-26 18:20:47 +09:00
Sour 51f5afb7a3 GBA: Fixed window rendering glitch when X position was changed during hblank
Super Mario Advance 4 (SMB3) window animation when entering a stage had a glitchy scanline when the window's end position was moved from x=255 to x=239 during hblank, because ProcessWindow was not getting called when the window X position register was changed
2025-03-14 23:55:16 +09:00
Sour 4081adca21 GBA: Fixed missing scanline in textbox in Spyro Season of Ice
Tweaked the BG layer enable delay/timings to make it work for both mGBA suite's test and Spyro
2024-12-02 20:17:43 +09:00
Sour cda1e831ae GBA: Fixed missing sprites at top of screen when enabling sprite layer during vblank 2024-12-01 13:29:28 +09:00
Sour 99bd94ff57 GBA: Fixed hblank bit timing 2024-11-01 20:31:56 +09:00
Sour b95ad78e00 GBA: Fixed graphical glitches on right side of the screen in Fire Emblem The Sacred Stones
Changing X scroll breaks the rendering logic - keep a copy of it at the start of the scanline (not verified on hardware)
2024-09-15 20:43:50 +09:00
Sour 348af31d16 GBA: Fixed forced blank displaying a black screen (instead of white) 2024-08-14 17:13:55 +09:00
Sour f862b0ca37 GBA: Fixed/improved window left/right behavior
Fixes issue in speech bubbles in Megaman & Bass
2024-04-03 20:06:09 +09:00
Sour 2f08c983e2 GBA: Fixed inverted transform x/y update flags 2024-03-30 19:48:21 +09:00
Sour 13acb3fe42 Added GBA support 2024-03-30 11:42:31 +09:00