Commit graph

187 commits

Author SHA1 Message Date
mkwong98
8e0816807f Add sprite frame range condition
A new condition named "spriteFrameRange" is added. It works like frameRange except it follows frame counters assigned to each sprite. Frame counter picks up the nearest frame counter within 6x6 pixels from the last frame and resets if graphics, palette, bg priority or orientation has changed. The condition can by used by sprite tiles only. For example:

<condition>myCondition,spriteFrameRange,301,60
[myCondition]<tile>0,1001,FF0F3600,8,0,1,N
2021-04-15 19:54:01 +08:00
Sour
dbe7e0dec8 PPU: Moved oam row corruption region by a couple of dots, to match oam_flicker_test
With this timing, Isolated Warrior's pause screen flickers as expected
2020-05-01 23:43:26 -04:00
Sour
77b4289299 PPU: Tweaked sprite evaluation code to simulate another hardware glitch seen in the oam_flicker_test_reenable test
When rendering is enabled/disabled around scanlines 128-136, a single 8 pixel sliver of a sprite appears on the following scanline, due to the previously discovered bug where disabling rendering increments the oam address pointer by 1
2020-05-01 20:06:56 -04:00
Sour
59fddb7008 PPU: Added option to emulate OAM row corruption when disabling rendering at certain points during rendering 2020-04-30 18:46:03 -04:00
Sour
e586ce7208 PPU: Tweak affected bits for $2006 scroll glitch based on Alien Syndrome (J) behavior (and other hardware tests)
It looks like the horizontal nametable bit is also affected when the write falls on a coarse scroll increment
2020-04-24 00:01:40 -04:00
Sour
17c8294f5d MMC5: Improved accuracy (scanline counter, split screen mode, etc.) 2020-01-19 14:45:04 -05:00
Sour
984ce9bd05 PPU: Glitch on $2000 writes at cycle 257 should only corrupt bit 10 of v (not 10+11) 2019-12-25 12:19:16 -05:00
Sour
33a5d3b0c9 PPU: Fixed "remove sprite limit" option not working 2019-12-25 09:30:42 -05:00
Sour
e7ca41987c PPU: Only trigger cycle 257 write glitches when the writes occur while the PPU is rendering 2019-12-24 22:31:43 -05:00
Sour
d84243b8b0 PPU: Prerender scanline sprite fetches should fetch dummy tiles (index $FF) 2019-12-22 17:57:47 -05:00
Sour
f7ff089689 Core: Fix NMI code to better reflect the hardware
Fixes a crash in Super Chinese 3 caused by the PPU rapidly switching the NMI signal on and then back off (which caused the CPU to incorrectly jump to the IRQ handler and crashed the game)
2019-11-21 22:33:08 -05:00
Sour
85f4c1cc2f Debugger: Event Viewer - Apply emphasis/grayscale bits to ntsc borders 2019-11-20 18:43:38 -05:00
Sour
8508b211cc Debugger: Event Viewer - Added option to show NTSC borders
+ Ported most of Mesen-S' event viewer code to allow this to work
2019-11-19 22:28:45 -05:00
Sour
26773a1ecc CPU: Randomize cpu/ppu alignment on resets (not just power cycle) 2019-11-12 21:03:03 -05:00
Sour
fc7714d6f0 PPU: Added option to emulate the scroll glitch that can occur when writing to 2000/2005/2006 on cycle 256 2019-11-12 21:00:30 -05:00
Sour
36e2d04fe9 Debugger: Added option to break when a $2006 write scroll glitch occurs 2019-11-11 21:10:55 -05:00
Sour
85fd6b36a9 PPU: Implement glitched $2006 address updates when done on X/Y increment cycles 2019-11-11 21:10:50 -05:00
Sour
a72acc9f1a Core: Rewrite DMC/OAM DMA, tweak PPU timings, add option to simulate PPU/CPU alignments 2019-11-11 21:10:47 -05:00
Sour
30c2c8d3bf PPU: Disabling rendering midscreen should set the vram bus to the value of 'v'
This prevents jittering in the Steins;Gate 8-bit game that doesn't occur on hardware
2019-10-12 10:58:07 -04:00
Sour
e338ab0765 Fixed init order when loading a game to prevent potential crashes (or incorrect behavior) in some scenarios (mostly if using the random mapper state option) 2019-06-22 16:33:59 -04:00
Sour
5b80d2fe21 Core: Changed CPU cycle counter to be a 64-bit int (breaks save state compatibility) 2019-05-12 12:28:01 -04:00
Sour
e826d4dfdd PPU: Fixed bug when reading status flag (this disabled blue emphasis).
Unsure why this line existed - seems to have been added by mistake 5 years ago
2019-04-12 19:43:03 -04:00
Sour
e758398b8f PPU: Disabling rendering during sprite evaluation causes the OAM address to be incremented by 1 2019-02-02 00:25:08 -05:00
Sour
f6b474569d PPU: Prevent palette writes during HBlank when rendering is enabled
+ Try to emulate the behavior of $2007 writes during rendering better
2019-01-27 20:53:25 -05:00
Sour
bdbb16866b Debugger: Fixed "Break on decayed OAM read" option triggering a break when CPU cycle count reached max value 2019-01-14 20:16:26 -05:00
Sour
ec0853fcf1 Debugger: PPU Viewer - Fixed tile/attribute update logic when overclocking is turned on 2019-01-13 20:18:31 -05:00
Sour
72d9e7ee13 Core: Remove old savestate compatibility code
No longer needed since the previous commit broke compatibility completely.
2019-01-13 15:20:57 -05:00
Sour
6d693a432d Debugger: Break on decayed OAM read option no longer triggers when sprite rendering is disabled 2019-01-10 18:40:53 -05:00
Sour
40710c3665 Debugger: Allow debugger to peek at APU/PPU registers without altering the state 2018-12-25 00:07:45 -05:00
Sour
937a90626d Debugger: Added option to evaluate all breakpoints on the first cycle of an instruction 2018-12-24 15:21:21 -05:00
Sour
4459b18fa3 Debugger: Added option to display why the debugger breaks (breakpoint, break options, etc.) 2018-12-23 00:10:00 -05:00
Sour
d305abe8fe Debugger: Nametable viewer - Fixed scroll overlay position when game updates scroll offsets mid-frame 2018-09-07 21:10:52 -04:00
Sour
15373016d0 Refactoring - removed statics from EmulationSettings 2018-07-14 18:32:32 -04:00
Sour
36b88ac6af Debugger: Don't auto-start debugger when oam decay is turned on 2018-07-08 10:28:48 -04:00
Sour
9f12f1c756 Debugger: Added option to break on decayed OAM read 2018-07-08 10:28:48 -04:00
Sour
47fbe93b62 Added support for VS DualSystem (WIP - dual video/audio, input, save states, movies & netplay working) 2018-07-08 10:28:48 -04:00
Sour
c877f73891 Split part of MessageManager into non-static NotificationManager
+ Fixed movie recording/playback (for .mmo files)
2018-07-08 10:28:47 -04:00
Sour
04310eddb4 Core refactoring (remove static variables) - WIP 2018-07-08 10:28:47 -04:00
Sour
1e90a71394 Linux: Removed -Wno-switch option and fixed warnings 2018-06-25 15:56:05 -04:00
Sour
d179b5e7d1 Fixed uninitialized memory reads 2018-06-13 17:48:52 -04:00
Sour
aad8b2bd47 PPU: Simulate the PPU's address bus a bit better (fixes Touhou Rououmu homebrew that detected Mesen as an emulator because of it) 2018-06-02 22:12:00 -04:00
Sour
b641830058 Debugger: Lua - Fixed some bugs/limitations with drawing routines (now works with NTSC filters, etc.) 2018-03-24 10:09:04 -04:00
Sour
981b121848 Debugger: Reduce frame lag between event viewer and main window when running 1 frame at a time 2018-02-23 12:18:12 -05:00
Sour
11c592a622 Debugger: Event viewer improvements/fixes 2018-02-19 23:23:26 -05:00
Sour
d8e00168a4 Debugger: Added "Event Viewer" tool - replaces PPU Register Write Viewer 2018-02-18 23:03:02 -05:00
Sour
fcad33750b Debugger: Added option to show previous frame behind the current frame 2018-02-16 20:05:15 -05:00
Sour
06d7c8f363 Debugger: Added PPU Register Write Viewer to PPU viewer 2018-02-16 17:36:37 -05:00
Sour
a0a6d89416 Input: Fixed extra frame of input lag 2018-01-07 10:31:37 -05:00
Sour
cf0bd50b9e Libretro support (Windows) 2018-01-04 19:03:47 -05:00
Sour
423ac65a7e Debugger: Allow PPU breakpoints to break on $3F00-$3FFF palette ram accesses 2017-12-29 20:03:32 -05:00