Commit Graph

366 Commits

Author SHA1 Message Date
Souryo
7e5707a535 Debugger - PPU Viewer (Nametables, chr, sprites, palette) 2015-08-08 22:36:39 -04:00
Souryo
5c4089c013 MMC3 fix - Work/Save ram was no longer mapped correctly 2015-08-06 23:03:36 -04:00
Souryo
0a7e1a9c32 Debugger - Added palette memory option to memory viewer 2015-08-05 21:43:53 -04:00
Souryo
a37354fbc1 Debugger - Added memory viewer (CPU, PPU, Sprite, PRG, CHR) 2015-08-05 20:40:10 -04:00
Souryo
e7275cb3f7 Debugger - Wrote custom textbox for the display + Basic breakpoints (exec/read/write) 2015-08-02 19:27:02 -04:00
Souryo
dffc03ad68 MMC5 support (incomplete)
Heavy refactoring of BaseMapper (to support MMC5 functionality, and be more flexible in general)
2015-07-29 22:10:34 -04:00
Souryo
ab48fd595c Fixed savestate for mapper 71 2015-07-25 17:40:38 -04:00
Souryo
fb49fbb6c9 Mapper 71 (BF909x) support - Fixes firehawk 2015-07-25 17:39:19 -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
b8380352f2 DMC/Sprite DMA interactions, CPU stalling, Controller read corruption 2015-07-25 11:59:18 -04:00
Souryo
b16ddd399d Small PPU tweaks - fixes a couple of tests 2015-07-24 19:20:54 -04:00
Souryo
068fa72e87 Added overscan config 2015-07-23 23:16:31 -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
bbad798717 Fixed filenames being converted to lower case 2015-07-20 23:32:52 -04:00
Souryo
cc67a333c5 Fixed SRAM bug when closing emulator (FolderUtilities would get destroyed before Console, which caused a crash while trying to save the .sav file) 2015-07-20 23:20:41 -04:00
Souryo
97e36a1e27 Optimized Length Counter "NeedToRun" 2015-07-19 22:24:56 -04:00
Souryo
95c0ab9047 IRQ/NMI timing fixed (Dragon Quest 3 was still broken) + code cleanup 2015-07-19 22:09:24 -04:00
Souryo
3362911a4d Fixed active statement selection in debugger 2015-07-19 15:01:03 -04:00
Souryo
4745c740b6 Fixed IRQ/BRK timing issue, not quite right yet, but fixes Dragon Quest 3 2015-07-19 15:00:29 -04:00
Souryo
84f735b6a4 Improved APU accuracy - passes most APU tests 2015-07-19 01:30:13 -04:00
Souryo
af749cb6ad Unofficial op codes (partially) implemented 2015-07-18 14:53:15 -04:00
Souryo
42d5e43343 Show FPS & Limit FPS options are now saved to settings file 2015-07-17 21:18:57 -04:00
Souryo
266ca82a06 Added basic audio settings 2015-07-17 20:58:57 -04:00
Souryo
d70010f324 Run APU every 1 CPU clock 2015-07-16 16:55:16 -04:00
Souryo
444db81dfc Added reset/savestate support to APU 2015-07-14 23:35:30 -04:00
Souryo
c810b4802a Moved FPS counter to renderer, instead of emulation core (gained ~20 fps) 2015-07-14 21:51:39 -04:00
Souryo
e5fe396ffb Proper APU emulation (no longer using a library for it, except BlipBuffer) - Not finished need to implement save states & reset behavior 2015-07-14 21:50:42 -04:00
Souryo
bb52c3f69c Removed all code from header files (Utilities project) 2015-07-11 10:01:06 -04:00
Souryo
e7e77ccfa7 Converted all wide strings to utf8 strings
Fixed exception throwing to be standard
2015-07-11 08:27:22 -04:00
Souryo
e70448820c Input mapping support + Fourscore support + Turbo buttons 2015-07-10 21:07:24 -04:00
Souryo
0c91a15fa0 -Added x64 build
-Rearranged build folders to be cleaner
-Required resource files are automatically copied to the output folder
2015-07-06 21:31:32 -04:00
Souryo
3cf441b6c9 Fixed debugger (wasn't triggering execute breakpoints) 2015-07-05 22:28:17 -04:00
Souryo
7b0fac672d -Movies now record what game (name & CRC32) they were recorded from and attempt to load the same rom when played
-Movies/NetPlay now use the recent files list to look for roms to load
2015-07-05 22:23:44 -04:00
Souryo
586b72e081 Hard reset now resets NES ram 2015-07-05 20:30:39 -04:00
Souryo
3daf877133 Fixed movies when recording "from start" a game that has different soft/hard reset behavior. (Recording/Played a movie from the start now forces a hard reset) 2015-07-05 19:35:38 -04:00
Souryo
6ab9f63476 Fixed issue where save/load state shortcuts were not working correctly until the menu was manually opened by the user 2015-07-05 19:12:41 -04:00
Souryo
f88b3921f9 Added missing cheat-related files 2015-07-05 19:06:06 -04:00
Souryo
c895d1252e Added cheat code support - Supports Game Genie, Pro Action Rocky and Custom codes 2015-07-05 19:05:33 -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
f8f9755eff Unfinished visual debugger implementation (to be finished later) 2015-06-24 19:26:19 -04:00
Souryo
366d4aec80 Mapper 189 support 2014-08-04 15:55:20 -04:00
Souryo
84e54c9b7d Fix for MMC1 - Ignore writes that occur after a dummy write - Fixes Bill & Teds + others 2014-07-28 20:52:47 -04:00
Souryo
4897f2f6ad Fixed automated tests 2014-07-27 19:42:32 -04:00
Souryo
941efc4110 CPU: Rewrote logic to use an addressing mode table, implemented dummy writes 2014-07-27 19:29:04 -04:00
Souryo
674e64e655 Fixed PPU memory mirroring issue - caused incorrect MMC3 IRQ timing in some games (i.e Burai Fighter) 2014-07-26 22:14:08 -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
3823407b58 Mapper 163 support (Only tested on FF7) 2014-07-12 22:23:08 -04:00
Souryo
5f138629b2 Moved SRAM & Expansion RAM to BaseMapper. 2014-07-12 22:22:40 -04:00
Souryo
4a3fd7f350 MMC3 fix (based on specs) 2014-07-12 21:01:28 -04:00
Souryo
0b083e4099 Fixed .sav filename when loading from ZIP archives 2014-07-12 20:56:22 -04:00
Souryo
0299503d71 Fixed deadlock when closing emu while paused 2014-07-10 23:23:04 -04:00
Souryo
82006c057b Fixed Netplay issue introduced with ZIP support 2014-07-10 20:24:28 -04:00
Souryo
3cc3bf6cbd Code cleanup 2014-07-10 19:30:22 -04:00
Souryo
f55b9fce60 Added ZIP file support - Emu no longer crashes when loading unsupported mappers 2014-07-10 19:25:35 -04:00
Souryo
416865ff52 Added sleep for client thread 2014-07-09 22:02:46 -04:00
Souryo
f748c51552 NetPlay - Allow host to pause game for clients 2014-07-09 21:48:54 -04:00
Souryo
1ad66f714f Improved text readability + multiple messages shown at once 2014-07-09 21:11:02 -04:00
Souryo
e79dcf3303 Added missing files 2014-07-09 19:58:39 -04:00
Souryo
e56e300d3e Code cleanup (split .h & .cpp files, etc) 2014-07-09 19:05:07 -04:00
Souryo
14ab310f5e NetPlay improvements (auto loads ROM, supports host loading a save state, etc.) - Game client/server no longer run in the GUI thread 2014-07-09 18:29:46 -04:00
Souryo
21e9ad8bac VRC2/4 support (incomplete) - Mapper 21, 22, 23, 25, 27 2014-07-08 18:36:21 -04:00
Souryo
73d921c6c5 NetPlay fix - only send controller state when it changes (fixes most of the lag) 2014-07-07 21:23:03 -04:00
Souryo
1d11e4a9cc Log all UI messages to the console 2014-07-07 18:44:11 -04:00
Souryo
6b00a1f5c8 Fixed played # display on connection 2014-07-06 21:12:04 -04:00
Souryo
388d8c7d7a Fixed freezes/crashes when connecting/disconnecting 2014-07-06 21:11:52 -04:00
Souryo
fd80330a61 Added missing file 2014-07-06 20:40:33 -04:00
Souryo
f4802421d0 Netplay (not finished, but works), save state fixes 2014-07-06 19:54:47 -04:00
Souryo
6a5178b665 Prevent input when window not in focus 2014-07-03 18:14:22 -04:00
Souryo
2b1b5850f4 Default saves/states/movies/etc folders, code cleanup 2014-07-02 20:28:29 -04:00
Souryo
f68f1c5a2d Fixed null reference when trying to save a state after starting another game 2014-07-01 22:58:04 -04:00
Souryo
7268a6426c Fixed Zelda 1 scrolling 2014-07-01 22:56:06 -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
07b558c8c4 Smaller savestates, Movie recording/playback, Slight performance improvement (~2-3% in Console::Exec) 2014-07-01 12:44:01 -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
b80b0a0d02 Saved config, save state slots, MRU list 2014-06-29 16:51:58 -04:00
Souryo
0636b52ad1 DrawPixel refactoring to avoid doubled up conditions, etc. 2014-06-28 22:52:28 -04:00
Souryo
f8ecd1be5e Mapper 11 support 2014-06-28 21:10:50 -04:00
Souryo
64ccd63117 Small optimization to DrawPixel 2014-06-28 20:25:42 -04:00
Souryo
84fea58257 Fixed memory leak 2014-06-28 19:56:51 -04:00
Souryo
83cddf637c Mapper 9 (Punchout) & Mapper 71 (partial) support 2014-06-28 18:50:01 -04:00
Souryo
200926f7e0 Implemented OpCode $89 (2-byte NOP) - Fixes Puzznic 2014-06-28 16:23:12 -04:00
Souryo
8187539fcb CPU Dummy Reads - Fixes Cobra Triangle and Ironsword 2014-06-28 15:48:30 -04:00
Souryo
5caf188286 Rounded FPS counter (else it wrote 59 fps when fps was 59.9999) 2014-06-28 14:22:17 -04:00
Souryo
f38538f22a Prevent games from writing to CHR-ROM/PRG-ROM 2014-06-28 13:22:42 -04:00
Souryo
b97f258f0e IsPageCrossed() fixed for unsigned values - fixes Battletoads & glitches in elevator action 2014-06-28 13:19:22 -04:00
Souryo
5d8c458a7e Small fix for MMC1 (Fixes graphics in Bases Loaded II) 2014-06-27 20:21:23 -04:00
Souryo
6e1742393d Improved timing, passes some more VBL/NMI tests 2014-06-27 12:18:07 -04:00
Souryo
616546ae5b AXROM support (Mapper 7) - Battletoads doesn't work (sprite 0 timing issue) 2014-06-26 23:13:02 -04:00
Souryo
060eb67421 Slightly improved automated tests 2014-06-26 20:55:22 -04:00
Souryo
99400c647e Savestate fixes (MMC1, _mirroringType) 2014-06-26 18:48:55 -04:00
Souryo
1d1b5ed1fc SUROM support - Dragon Warrior 3/4, Dragon Quest 4 2014-06-26 18:32:11 -04:00
Souryo
ec1b0d5e16 MMC3 IRQ fixes - All tests pass (Revision A) 2014-06-26 16:41:07 -04:00
Souryo
c6b4531898 Fixes mario bros 3 sound glitches - Dragon Quest 1 assert is also gone 2014-06-26 13:17:50 -04:00
Souryo
7180c64d50 Fixed SRAM related issues - Caused Metroid/Kirby slowdowns. Fixed console object destruction to allow save to disk at destruction time. 2014-06-26 11:41:27 -04:00
Souryo
9ec756fae2 Quick save/load support 2014-06-25 21:52:37 -04:00
Souryo
2590617708 APU hack to make Dragon Quest 1 & Mario Bros 3 both work. (No idea why this even works - Causes an assert for DQ1 but seems to work anyway..) 2014-06-25 17:34:16 -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
0fe4091f27 Fixed reset state for CPU (to pass test roms) 2014-06-25 13:30:02 -04:00
Souryo
9f68ce1a8c Fixed automatic tests... 2014-06-25 12:47:15 -04:00
Souryo
fbaf3bc42e Fixed issue with memory handlers (conflict on 0x4017 between APU & Controllers) - Fixes dragon quest 1 sound while allowing MMC3 games to boot properly 2014-06-25 12:22:48 -04:00
Souryo
7e56526bac Fixed warning 2014-06-24 22:00:18 -04:00
Souryo
2c650e1529 MMC3 support - without IRQs. Disabled APU IRQs too - they fixed sound in Dragon Warrior, but break most MMC3 games at the moment. 2014-06-24 21:59:58 -04:00
Souryo
42a0431cdb Battery saved PRG-RAM support 2014-06-24 16:16:23 -04:00
Souryo
2e1c49ee9a Minor refactoring 2014-06-24 15:11:04 -04:00
Souryo
9048c206be Basic (probably incorrect) IRQ support (Fixes sound in Dragon Quest 1) 2014-06-24 14:28:49 -04:00
Souryo
617f5ead23 CNROM (iNES mapper 3) support 2014-06-24 14:28:19 -04:00
Souryo
eaa528ded8 Removed unused variables 2014-06-24 12:40:50 -04:00
Souryo
e83e5a7595 Added Screen A/B only mirroring support 2014-06-24 12:40:30 -04:00
Souryo
ad2c603659 Fixed issue with MMC1 - fixes zelda 2 graphics 2014-06-24 10:31:33 -04:00
Souryo
b940235c03 Mapper refactoring - less code in each specific mapper 2014-06-24 10:19:24 -04:00
Souryo
be45bd1259 Removed unused variable 2014-06-24 02:47:52 -04:00
Souryo
6437be44f5 MMC1 support + Mapper refactoring
Zelda 1, MegaMan 2, Final Fantasy2 working correctly
2014-06-24 02:47:32 -04:00
Souryo
4cd681c02b Pause screen, show fps option, refactoring 2014-06-23 20:00:51 -04:00
Souryo
1783578522 Minor refactoring 2014-06-23 19:02:09 -04:00
Souryo
93a0e12fdb FPS counter, higher resolution overlay 2014-06-23 16:38:01 -04:00
Souryo
b5b9a1ca53 Sound improvements (sync, etc.), added pause/resume/stop/reset in GUI 2014-06-23 13:52:53 -04:00
Souryo
62ddf5e8e5 Small APU fixes 2014-06-22 22:35:44 -04:00
Souryo
8c079e5ca1 Sound support (using Blargg's Nes_Snd_Emu for now) 2014-06-22 22:15:35 -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
Souryo
a6a2199dd4 Removed unused variable 2014-06-22 12:32:58 -04:00
Souryo
568dea7c41 Fixed FPS limiter 2014-06-22 10:07:40 -04:00
Souryo
7e2ad19da3 Automated testing 2014-06-22 08:38:42 -04:00
Souryo
d2b074296d Fix issues with secondary OAM - Fixes DK glitches without breaking other games 2014-06-22 01:54:35 -04:00
Souryo
1de56c5e2e Fix color glitches with soft X scroll (affected mario bros) 2014-06-22 01:15:34 -04:00
Souryo
1e2c9561b9 Fixed Mario Bros (Was updating tmp video addr when writing to $2001, which is bad) 2014-06-22 00:37:45 -04:00
Souryo
43648e3cf6 Minor reformat 2014-06-22 00:00:56 -04:00
Souryo
18e4c16c32 Fixed scrolling bug (fixes megaman, excitebike, etc.) 2014-06-21 23:54:32 -04:00
Souryo
d231526460 16px sprites, Sprite/BG rendering flags, DMA cycle timing 2014-06-21 20:18:05 -04:00
Souryo
88b33ebd42 Mapper 2 support 2014-06-21 19:26:17 -04:00
Souryo
9ada341050 UI improvements + Gamepad support 2014-06-21 19:03:13 -04:00
Souryo
1765b9a690 Keyboard support + FPS limit 2014-06-21 15:43:41 -04:00
Souryo
1def59c730 Sprite 0 Hit, Background/Sprite masks (left-most 8 pixels) 2014-06-21 12:42:40 -04:00
Souryo
95abc2f371 Fixed timing for branch instructions 2014-06-21 11:23:33 -04:00
Souryo
102c7f55d3 Basic sprite overflow, performance 2014-06-21 09:00:10 -04:00
Souryo
f6bde1f73f Added fps counter 2014-06-21 00:37:44 -04:00
Souryo
739d1d8f7a Added VBlank suppression flag 2014-06-21 00:37:27 -04:00
Souryo
16b6ebeb84 Fixed CPU page crossing cycles 2014-06-21 00:37:20 -04:00
Souryo
5574f1c4bf Fixed a few glitches based on test roms 2014-06-20 22:31:48 -04:00
Souryo
441240d25d PPU Sprites working, changed GUI to allow loading roms manually 2014-06-20 21:48:55 -04:00
Souryo
fdb5776856 Fixed remaining color issues, added horizontal/vertical mirroring support 2014-06-19 19:58:15 -04:00
Souryo
8b5618168b 2014-06-19 17:12:32 -04:00
Souryo
0bac761beb Optimizations (+25% speed), changed the way frame buffer is sent to the GUI 2014-06-19 17:06:00 -04:00
Souryo
e4692cdd9c Fixed a few pixel offsets, changed DirectX buffer color format, code cleanup 2014-06-19 16:07:37 -04:00
Souryo
31f9116b60 Fixed background color in mario 1 (mirroring issue), Temp fix for colors in general (R & B were inverted) 2014-06-19 09:37:10 -04:00
Souryo
e49286e42b Partially fixed coloring 2014-06-19 00:17:03 -04:00
Souryo
b947be23bc Fixed PPU glitches 2014-06-18 23:59:10 -04:00
Souryo
0262e8c53c PPU working (lots of glitches, but draws correctly) 2014-06-18 22:54:23 -04:00
Souryo
4341e47e17 PPU work 2014-06-17 18:16:49 -04:00
Souryo
3ad6418726 PPU VRAM, partially fixes tests 2014-06-15 21:45:36 -04:00
Souryo
cc674a7467 Added console window, bug fixes based on tests 2014-06-15 11:25:29 -04:00
Souryo
608c9a03cf PPU, NMI 2014-06-15 09:35:17 -04:00
Souryo
177d53e8bf PPU work 2014-06-14 18:20:56 -04:00
Souryo
630db30484 Improved code structure 2014-06-14 11:27:55 -04:00
Souryo
909e73a8d5 Added missing files 2014-06-14 10:12:10 -04:00
Souryo
ebb1182453 ROM loader, Mappers, Memory manager 2014-06-13 23:12:56 -04:00
Souryo
cca56693f3 Added simple GUI + DirectX render target 2014-06-12 21:48:04 -04:00