Commit Graph

76 Commits

Author SHA1 Message Date
Souryo
56d2580fbf Misc: Added "Remove sprite limit" option 2016-01-14 22:20:50 -05:00
Souryo
1b57dbc2e0 PPU: Fixed wrap-around behavior issues when video ram addr goes from 3FFF to $0000 (ended up reading/writing palette ram by mistake) 2016-01-13 00:06:01 -05:00
Souryo
fbecf90a54 Rendering: Fixed dropped frames in VideoDecoder (makes NTSC picture and full_palette tests a lot more stable).
+Fixed vertical sync causing high cpu usage.
+Reduced memory usage by removing useless buffers (Renderer)
2016-01-12 19:42:28 -05:00
Souryo
f3f7953392 Made palette power up ram match the power_up_palette test. Doubt anything would ever rely on this. 2016-01-11 19:19:06 -05:00
Souryo
181e461db1 Fixed oam memory getting overridden during prerender scanline when rendering was disabled. oam_stress & cpu_dummy_writes_ppumem tests now pass. 2016-01-11 18:55:58 -05:00
Souryo
fc8add8262 Timing fixes - Sprite 0 hit flag and rendering disabled/enabled flag both needed to be delayed by 1 cycle. Fixes Micro Machines & Adventures of Dizzy. 2016-01-11 17:18:01 -05:00
Souryo
a0d6e2d547 Debugger breakpoint improvements (Conditional breaks, vram breaks, absolute address breaks, etc.) 2016-01-09 13:15:43 -05:00
Souryo
c6e31e58da PPU: Cycle-accurate tile loading (small performance hit) - keeps MMC3 IRQ timing correct and doesn't break "scanline" test 2016-01-03 19:39:41 -05:00
Souryo
c79a0326ed Implemented ignored reads on PPU $2007 when read 2 cpu cycles in a row (i.e with a dummy read)
Changed DMC stall-time read behavior to read only every other cycle
Fixes tests: "dma_2007_read", "dma_4016_read", "double_2007_read"
2016-01-03 17:20:18 -05:00
Souryo
a6188aef7f Fine-tune the cycle at which sprite/tile data is reloaded. Not 100% accurate (would need to be split across multiple cycles), but fixes scanline_timing for the MMC3 tests 2016-01-03 15:35:40 -05:00
Souryo
b135f9f4e4 Rewrote sprite evaluation logic to match wiki - fixes "sprite overflow - 3.timing" test 2016-01-03 11:44:20 -05:00
Souryo
411967e4fa Open bus (PPU and CPU) - Fixes several open bus related tests (ppu_open_bus, test_cpu_exec_space_apu, test_cpu_exec_space_ppuio) 2016-01-02 20:36:22 -05:00
Souryo
5f2d2851fe Fixed PPU even_odd_timing test (when disabling BG just before cycle 339) 2016-01-02 18:02:56 -05:00
Souryo
8d020a2e72 Accuracy improvements (Fixed several tests: nmi_timing, nmi_and_brk, nmi_and_irq, irq_and_dma, sprdma_and_dmc_dma, sprdma_and_dmc_dma512, branch_delays_irq) 2016-01-02 13:52:55 -05:00
Souryo
b821350385 Make sure PPU state is defined at bootup (and make bootup screen gray) 2016-01-01 12:33:43 -05:00
Souryo
76e060907d PPU: Fixes for $2004 register (OAM Read/Write) - Fixes oam_read test, improves oam_stress, and fixes most Micro Machines glitches 2015-12-29 13:24:15 -05:00
Souryo
a3acdd68f0 Fixed memory corruption bug introduced in earlier checkin (OAM DMA) 2015-12-28 23:20:38 -05:00
Souryo
8325aae6ca Jaleco SS88006 (Mapper 18) support 2015-12-28 20:07:27 -05:00
Souryo
d648f18b8a Added automatic tests 2015-12-26 17:11:00 -05:00
Souryo
37c3201057 Frame decoding/Rendering is now handled by separate threads (i.e there are now 3 threads in the emu + UI thread)
Improved performance (less memory copying, less spin waiting, etc.) - uses less CPU at normal speed, and faster when no FPS limit
2015-08-30 21:04:21 -04:00
Souryo
5b565bfeeb GCC support - Fixed warnings/compilation errors (Core & Utilities now compile under GCC, but code is incomplete) 2015-08-28 21:01:18 -04:00
Souryo
273c000c44 Debugger - Basic FCEUX CDL file support 2015-08-17 19:32:10 -04:00
Souryo
21220052d9 HD packs - Fixed blending, vertical mirroring & added missing file 2015-08-15 10:40:27 -04:00
Souryo
f2ee0f916e "HDNes" HD pack support (still some bugs left) 2015-08-14 21:50:14 -04:00
Souryo
0a7e1a9c32 Debugger - Added palette memory option to memory viewer 2015-08-05 21:43:53 -04:00
Souryo
b9f0bc069e Inplemented odd oam RAM behavior when address > 8 at the start of a frame - Fixes "Huge Insect" 2015-07-25 17:08:04 -04:00
Souryo
b2b9a5bd8d Adjusted writes to 2004 based on Wiki info 2015-07-25 17:05:56 -04:00
Souryo
b16ddd399d Small PPU tweaks - fixes a couple of tests 2015-07-24 19:20:54 -04:00
Souryo
fb17e7b154 PPU - Grayscale/Emphasis bit support & fixed behavior when rendering disabled and vram addr in palette range 2015-07-22 22:08:28 -04:00
Souryo
41ae3cdcd2 PAL support (PPU & APU) 2015-07-21 23:05:27 -04:00
Souryo
62d87d6bab Optimizations/cleanup in PPU 2015-07-21 18:18:20 -04:00
Souryo
f9060dc351 Fixed small PPU display bug introduced in previous build - need to return only if we set the sprite's pixel 2015-07-05 08:47:34 -04:00
Souryo
7cf5dafc40 -Fixed timing issues (with sprite DMA) + a bit of refactoring
-PPU is now run AFTER a read/write, instead of before.  (And the CPU class is in charge of running it, instead of the MemoryManager class)
2015-07-05 00:27:26 -04:00
Souryo
f3df2ecf17 -CPU code changes to implement all dummy reads/writes. Each memory access runs the PPU for 3 cycles (PPU is now controlled by the CPU)
-Optimizations + PGO (profile guided optimization) build support
2015-07-04 22:21:14 -04:00
Souryo
48409ae82b -Rewrote entire GUI in .NET
-Several other fixes (bugfixes, refactoring, etc.)
-Added a few more features to debugger
2015-07-01 23:17:14 -04:00
Souryo
35d2e9cc00 PPU: Need to perform both sprite & bg fetches when either sprite or background is enabled. Otherwise things that rely on these fetches break - such as the MMC3 IRQ timer. Fixes Burai Fighter freezing at the start of level 1 2014-07-26 20:21:36 -04:00
Souryo
6fb497855c Several fixes for movies record/playback (and a couple of potential savestate fixes) 2014-07-01 18:05:54 -04:00
Souryo
2c55437a44 Changed the way cpu/ppu cycles are kept in memory (slightly faster) 2014-06-30 14:44:30 -04:00
Souryo
0636b52ad1 DrawPixel refactoring to avoid doubled up conditions, etc. 2014-06-28 22:52:28 -04:00
Souryo
64ccd63117 Small optimization to DrawPixel 2014-06-28 20:25:42 -04:00
Souryo
6e1742393d Improved timing, passes some more VBL/NMI tests 2014-06-27 12:18:07 -04:00
Souryo
ec1b0d5e16 MMC3 IRQ fixes - All tests pass (Revision A) 2014-06-26 16:41:07 -04:00
Souryo
9ec756fae2 Quick save/load support 2014-06-25 21:52:37 -04:00
Souryo
ef55ffd203 Oops, broke code just before checking in. 2014-06-25 17:33:25 -04:00
Souryo
57db54f2f3 MMC3 IRQ Counter - not working 100% correctly, but seems to allow some games to work. 2014-06-25 17:30:35 -04:00
Souryo
b5b9a1ca53 Sound improvements (sync, etc.), added pause/resume/stop/reset in GUI 2014-06-23 13:52:53 -04:00
Souryo
bed43cec62 Small performance improvements by using 32-bit ints 2014-06-22 16:22:10 -04:00
Souryo
71baec4945 Emulate sprite overflow bug correctly 2014-06-22 16:11:28 -04:00
Souryo
f80ada893f 8x16 sprites - still had a 1 pixel error 2014-06-22 13:04:06 -04:00
Souryo
4561e9e79d Fixed 8x16 sprites display in Castlevania 2014-06-22 13:00:31 -04:00