Commit Graph

261 Commits

Author SHA1 Message Date
Souryo
850102bbdc Input: Added support for ~20 new peripherals (Incomplete, more fixes/changes to come)
Movies: Rewrote format to support all IO devices and console types
Netplay: Now supports all IO devices and console types
2017-11-19 23:08:23 -05:00
Souryo
028b2ff089 UI: Fixed pause screen issues (was sometimes being shown when it should not have) 2017-10-07 21:00:02 -04:00
Souryo
ba8540e4f2 Debugger: Fixed Lua-related multithreading bugs 2017-10-07 13:01:42 -04:00
Souryo
5ab04aa00b Debugger: Close all debugger windows when emulation is stopped (prevents crashes) 2017-10-05 21:40:25 -04:00
Souryo
67b9a5c707 Debugger: Fixed hex editor highlight issues (when loading save state, etc.) 2017-10-05 20:48:18 -04:00
Souryo
ae5a1a1183 Debugger: Lua - Fixed eventType.reset event callback 2017-10-03 18:40:26 -04:00
Souryo
5066c89570 UI: Fixed issue with game selection screen getting activated by keypresses when game is paused 2017-10-03 18:18:29 -04:00
Souryo
0d1e9bbcb3 Zip: Fixed issues with non-UTF8 filenames in zip files 2017-09-30 14:07:07 -04:00
Souryo
ef63dfa816 Video: Added 60.0/50.0 fps mode 2017-09-30 11:24:35 -04:00
Souryo
a4d06f683a UI: Allow all UI shortcuts to be customized (and support for multi-key shortcuts) 2017-09-08 10:38:41 -04:00
Souryo
5b8a37e392 Fixed crash that occurred when cheat list was opened 2017-09-06 21:40:59 -04:00
Souryo
150d2eaec9 Savestates: Allow saving/loading to arbitrary files 2017-09-01 18:45:53 -04:00
Souryo
b80d788346 Debugger: LUA scripting fixes, script window & assembler window improvements 2017-09-01 14:57:02 -04:00
Souryo
5957bc2d3e Debugger: LUA scripting 2017-08-30 18:31:27 -04:00
Souryo
8e2f39e3bd Debugger: Added ability to revert prg/chr changes 2017-08-21 23:11:14 -04:00
Souryo
2d53bc05a5 HD Packs: Save states now save audio state (for ogg bgm) 2017-08-20 19:03:16 -04:00
Souryo
daca866957 Debugger: Add option to save changes as IPS file 2017-08-19 19:40:02 -04:00
Souryo
a376923757 HD Packs: Only use HD ppu when tile replacement rules exist 2017-08-19 17:51:36 -04:00
Souryo
a562c71094 HD Packs: Allow replacing game audio 2017-08-19 16:46:57 -04:00
Souryo
5f47b402b5 Debugger: Added "Devleoper Mode" option to give faster access to all debugging tools 2017-08-14 23:44:52 -04:00
Souryo
ef6e6c74cf HD Pack Builder: Fixed crash when using "Power Off" while recording 2017-08-09 17:44:52 -04:00
Souryo
fb5bf36c91 Debugger: Fixed deadlock when trying to reset game just as it is about to crash (STP/HLT opcode) 2017-08-05 14:24:44 -04:00
Souryo
4455178da2 Code refactoring (patch/archive handling) + allow HD packs to be loaded from archives 2017-07-30 09:46:07 -04:00
Souryo
60ff7be8c0 HD Packs: Bug fixes, code cleanup, optimization 2017-07-25 19:46:25 -04:00
Souryo
8d4dcf96e2 FDS: Fixed save file issues when using power cycle 2017-07-15 22:52:37 -04:00
Souryo
97323f3eb0 Debugger: Fixed scanline number being wrong in trace log in some cases 2017-07-01 15:38:18 -04:00
Souryo
e82371e2f8 HD Packs: Improvements, new features, bug fixes 2017-06-28 20:01:24 -04:00
Souryo
5cd5c292b6 UI: Fixed display bug when using power off while game is paused 2017-05-30 07:36:55 -04:00
Souryo
8032407f28 Fixed some games (Galaxian, Mighty Bomb Jack) + added some games to DB to fix headers 2017-05-25 20:04:49 -04:00
Souryo
69c2b784a4 PAL: Set games with Australia, Germany, Spain or Europe tags as PAL by default 2017-05-22 11:50:21 -04:00
Souryo
a412b453cf UI: Add visual list of recently played games (click to resume) 2017-05-06 18:35:02 -04:00
Souryo
c4ef93ccbb Power Cycle: Fixed a couple of bugs, moved logic to core 2017-05-02 23:31:06 -04:00
Souryo
c96f7d1c9c Overclocking: Fixed inconsistency with lag counter when loading a new game 2017-05-01 19:30:04 -04:00
Souryo
4e6a063c65 NSF: Added icons for recording/fast forward/slow motion + fixed a couple of UI bugs 2017-04-30 01:16:33 -04:00
Souryo
aab1c25a2b Overclocking: Improved DMC's overclocking disabling logic 2017-04-29 16:11:22 -04:00
Souryo
0c2cc8c94d Code cleanup 2017-04-29 08:29:56 -04:00
Souryo
3a6c8ca416 Added rewind functionality 2017-04-28 19:54:58 -04:00
Souryo
211e6354c8 Movies: FM2 file format support (incomplete, wip) 2017-04-24 18:28:50 -04:00
Souryo
4c38075c9e Tests: Added basic way of finding potentially broken games 2017-04-23 18:47:28 -04:00
Souryo
99ce88a193 UI: Added shortcut key to execute a single frame 2017-04-22 18:08:38 -04:00
Souryo
194d933685 Movies: bk2 movie format support (incomplete + sync issues vs NesHawk) 2017-04-22 13:19:21 -04:00
Souryo
a79bbd06eb PPU: Emulate pixels being rendered 2 cycles later (in regards to grayscale/intensify flags) - fixes nmi_sync\demo_ntsc (thanks to Alyosha's research) 2017-04-20 21:58:35 -04:00
Souryo
8a921b676c Movies: Code refactoring 2017-04-18 22:39:45 -04:00
Souryo
7bbe0b1388 Sound Recorder: Allow recording to continue after a reset (or track change in NSF files) 2017-04-14 19:42:31 -04:00
Souryo
92107d94df UPS patch support 2017-04-10 17:26:39 -04:00
Souryo
bf979be756 Optimizations: Most games now run 15-20% faster 2017-03-31 22:14:16 -04:00
Souryo
910e27f0af Debugger: Ability to save modified PRG/CHR back to a rom 2017-03-04 22:25:25 -05:00
Souryo
23fd484d06 Emulation: Added "do not reset ppu on console reset" option 2017-02-24 23:06:13 -05:00
Souryo
7accd1ff18 Overclocking: Fixed sound issues when overclocking was enabled 2016-12-23 13:56:45 -05:00
Souryo
666dc14043 Debugger: Disabled pause when in debugger - fixes deadlocks 2016-12-14 20:48:47 -05:00
Souryo
cbc61a1bac Fixed all GCC errors and most warnings 2016-12-11 10:56:23 -05:00
Souryo
2cbae24ded UI: Added "Load Random Game" option 2016-12-09 12:49:17 -05:00
Souryo
5db212c98c Debugger: Prevent autosave from resuming execution 2016-11-26 18:04:09 -05:00
Souryo
6be499368c Debugger: Callstack improvements (uses function labels when possible, shows NMI/IRQ calls, etc.) 2016-11-22 00:14:49 -05:00
Souryo
d2cac18235 Debugger: Fixed rare deadlock when closing debugger 2016-10-26 22:09:15 -04:00
Souryo
3d453ba021 Auto Save: Prevent saves from starting an audio loop 2016-09-04 19:04:52 -04:00
Souryo
b86ee4d98f Fixed deadlock when closing emu with "Pause when in background" option enabled 2016-09-04 07:17:00 -04:00
Souryo
17b13bfc0a Added support for binding actions to gamepad/keyboard + Added a fast forward key (hold to fast forward) 2016-09-02 19:36:37 -04:00
Souryo
1ddb980be9 Auto quick saves - allow automatic save states to be taken and saved to slot #6 (read-only) every X minutes 2016-08-31 20:54:38 -04:00
Souryo
531e8c4cfe Disable screensaver/etc when a game is running 2016-08-29 21:07:52 -04:00
Souryo
ccc2fc2aa3 Cheats: Added basic cheat code finder tool 2016-08-25 19:02:33 -04:00
Souryo
d57a9f413a IPS: Fixed "Autoload IPS patches" option (IPS files were always loaded) + fixed and simplified IPS loading logic 2016-08-20 22:07:56 -04:00
Souryo
e28ce321d4 Debugger: Fixed some deadlocks 2016-07-31 14:31:44 -04:00
Souryo
062d22ae80 Work/Save ram general improvements.
-Added support for work ram size field in NES 2.0
-Updated DB to list both work ram & save ram sizes
-Fixed MMC1/MMC3 implementation (and implemented the wram/sram protection bits)
Holy Diver tests now all pass (except a minor IRQ timing issue for FME7)
2016-07-26 19:19:28 -04:00
Souryo
eec3798e00 Movies: Disable loading save states when playing or recording movies 2016-07-19 16:36:07 -04:00
Souryo
23d8992bcb Kaiser boards support (Mapper 56, 142, 171, 175) 2016-07-17 14:07:22 -04:00
Souryo
aa3767b086 Region: Display active region when loading game and changing regions from the menu 2016-07-10 19:15:00 -04:00
Souryo
ac69be19a5 Overclocking: Added lag counter 2016-07-10 18:22:37 -04:00
Souryo
313340198e Vs System: Automatically select proper PPU & input mapping based on rom name/CRC + implemented support for vs system input remappings (some games change the buttons around) 2016-07-10 09:05:41 -04:00
Souryo
176949b8b0 NSF: Override NSF file's NTSC/PAL flag when a specific region is selected in the options 2016-07-09 10:23:07 -04:00
Souryo
6660dc860d VRC7 audio support 2016-07-01 23:54:31 -04:00
Souryo
b852edfec8 NSF/NSFe support 2016-06-25 20:46:54 -04:00
Souryo
c74903799c VS: Added support for VS zapper 2016-06-22 19:23:08 -04:00
Souryo
5096ff414c VS: Fixed TKO Boxing/RBI Baseball/Super Devious freezes 2016-06-21 22:13:26 -04:00
Souryo
b4e412a7d5 Archives: Stop sound before loading a new ROM - 7z ifiles can take a while to decompress which made the current sound buffer loop. 2016-06-19 16:55:26 -04:00
Souryo
298a789cfc 7z support + Rom selection for archives containing multiple rom files + General fixes/improvements when dealing with archives (cheats, save states, saved data, etc.) 2016-06-17 20:53:05 -04:00
Souryo
941d3884ef Game DB: Added a game database (mix of Nestopia's DB and NesCartDB) - used to correct invalid ROM headers and automatically detect NES 2.0 submappers 2016-06-15 21:59:34 -04:00
Souryo
9d1f5f61ba Overclocking: Allow CPU overclocking 2016-06-12 18:11:31 -04:00
Souryo
618c8e0b5e Savestates: More refactoring + bug fixes from the last changes (breaks compatibility again) 2016-06-11 16:08:16 -04:00
Souryo
c5d1e4cfc7 Sound Recorder: Added .wav recording feature (Tools menu) 2016-06-05 14:36:20 -04:00
Souryo
e210d267d8 Debugger: Fixed some deadlocks when pausing/resetting/changing game, fixed breakpoints not being remembered after a reset 2016-06-04 08:55:52 -04:00
Souryo
4cb8ae7076 Save states: Removed MS-specific extension usage & disabled extensions + Removed some errors/warnings caused by this change 2016-06-02 23:56:11 -04:00
Souryo
04d470b15d Support for VS Unisystem games (Not yet supported properly in movies and netplay) 2016-04-30 20:08:53 -04:00
Souryo
0c765aca59 Localization: Mesen is now available in English, French and Japanese 2016-02-19 13:05:04 -05:00
Souryo
b4b195d01b Input: Arkanoid controller support - NES & Famicom (Passes both test roms, works via NetPlay/Movies)
NetPlay: Fixed a few issues (crashes when connecting)
2016-02-14 12:58:35 -05:00
Souryo
6f6a07b6c9 CPU: Display clean message when CPU crashes 2016-02-11 22:59:31 -05:00
Souryo
eb80a443b7 NetPlay: Fixed crash when host loaded a game while no game was loaded (ConfigChanged notification was sent and an empty snapshot was sent to clients) 2016-02-10 21:41:51 -05:00
Souryo
1647f0c8c0 NetPlay/Movies: Avoid performing CRC32 checks when looking for a rom that matches 2016-02-08 23:34:48 -05:00
Souryo
c26a45ab8f Input: Reworked most of the input-related code. Zapper/Famicom support added. NetPlay and Movies now support any input type 2016-02-05 23:14:27 -05:00
Souryo
28a29b536f Options: Added pause in background/allow background input options 2016-01-31 13:53:17 -05:00
Souryo
3683d76088 VideoRenderer: Split from VideoDecoder. Handles drawing to the screen - even when no game is running. 2016-01-31 00:41:33 -05:00
Souryo
c3dabcd1d2 Basic Dendy (Russian NES clone) support + Fixed a lock-up condition when switching between regions 2016-01-30 19:33:32 -05:00
Souryo
47ffc9c89d NetPlay: Fixed crashes when connecting to a server that hasn't loaded a romyet. + Fixed lowercase title for clients after loading rom 2016-01-28 22:34:23 -05:00
Souryo
df8e66a5e7 FDS support (missing sound emulation) 2016-01-28 20:47:16 -05:00
Souryo
2f2c5d8c1f NetPlay: Fixed cheat-related bugs and crash when host loads a game while emulation is paused. 2016-01-23 00:52:06 -05:00
Souryo
65edf01c28 Mapper 37: Fixed reset & added WRAM write protect behavior for block register 2016-01-20 20:05:18 -05:00
Souryo
f8a0277c2e Audio: Added option to select sample rate 2016-01-14 19:33:16 -05:00
Souryo
78081d7c69 IPS support 2015-12-27 18:41:38 -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
f3b3a8eed5 Replaced FPS limit by "Emulation speed" option 2015-08-24 20:27:07 -04:00
Souryo
3f40bb39fb Added custom FPS limit options + Fixed netplay crashes 2015-08-23 20:24:24 -04:00
Souryo
6b26c892ac Debugger - Show prg address & raw byte code options + Deadlock fixes 2015-08-21 22:42:44 -04:00
Souryo
f2ee0f916e "HDNes" HD pack support (still some bugs left) 2015-08-14 21:50:14 -04:00
Souryo
41ae3cdcd2 PAL support (PPU & APU) 2015-07-21 23:05:27 -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
95c0ab9047 IRQ/NMI timing fixed (Dragon Quest 3 was still broken) + code cleanup 2015-07-19 22:09:24 -04:00
Souryo
84f735b6a4 Improved APU accuracy - passes most APU tests 2015-07-19 01:30:13 -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
c810b4802a Moved FPS counter to renderer, instead of emulation core (gained ~20 fps) 2015-07-14 21:51:39 -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
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
c895d1252e Added cheat code support - Supports Game Genie, Pro Action Rocky and Custom codes 2015-07-05 19:05:33 -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
4897f2f6ad Fixed automated tests 2014-07-27 19:42:32 -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
f55b9fce60 Added ZIP file support - Emu no longer crashes when loading unsupported mappers 2014-07-10 19:25:35 -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
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
1d11e4a9cc Log all UI messages to the console 2014-07-07 18:44:11 -04:00
Souryo
f4802421d0 Netplay (not finished, but works), save state fixes 2014-07-06 19:54:47 -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
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
5caf188286 Rounded FPS counter (else it wrote 59 fps when fps was 59.9999) 2014-06-28 14:22:17 -04:00
Souryo
060eb67421 Slightly improved automated tests 2014-06-26 20:55:22 -04:00
Souryo
9ec756fae2 Quick save/load support 2014-06-25 21:52:37 -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
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
568dea7c41 Fixed FPS limiter 2014-06-22 10:07:40 -04:00
Souryo
7e2ad19da3 Automated testing 2014-06-22 08:38:42 -04:00