Commit graph

115 commits

Author SHA1 Message Date
NovaSquirrel
6ea0f4f40d Revert "Merge pull request #42 from Gumball2415/feature-add-2a03-interference"
This reverts commit f1696a90be, reversing
changes made to c130c1df82.
2021-11-10 18:36:55 -05:00
NovaSquirrel
bb9d052955 Revert "Merge pull request #44 from Gumball2415/feature-add-2a03-interference"
This reverts commit c5ac9ecb74, reversing
changes made to df1e9c9c27.
2021-11-10 18:36:47 -05:00
Persune
212f17215c Reduce /A13 aliasing
PPU /A13 changes at the PPU's clock rate, which is 3x that of the CPU
clock rate.
2021-08-14 20:36:24 +08:00
Persune
a22b17b2c1 Add /A13 and /OE1 audio interference
In hardware, the audio from the 2A03 APU pins go through an inverted
preamp using one of the 74HCU04 inverter chips in the motherboard.
Though this may be cost-effective on Nintendo's part, the signals on the
hex inverter chip can interfere with one another, especially on the
audio. This can be heard as a buzz or a high pitched whine.

The only known signals to interfere with the audio so far is:
- /A13, the inverted signal of PPU A13 going into the cartridge
   connector.
- /OE1, Output enable for controller reads, though this is only found
   present on the RF Famicom.
2021-08-11 17:55:56 +08:00
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
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
17c8294f5d MMC5: Improved accuracy (scanline counter, split screen mode, etc.) 2020-01-19 14:45:04 -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
7041ec7682 Linux: Fixed compilation warnings/errors with GCC/clang 2019-11-13 18:30:05 -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
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
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
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
40710c3665 Debugger: Allow debugger to peek at APU/PPU registers without altering the state 2018-12-25 00:07:45 -05:00
Sour
15373016d0 Refactoring - removed statics from EmulationSettings 2018-07-14 18:32:32 -04:00
Sour
9f12f1c756 Debugger: Added option to break on decayed OAM read 2018-07-08 10:28:48 -04:00
Sour
04310eddb4 Core refactoring (remove static variables) - WIP 2018-07-08 10:28:47 -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
8af8ab205c GCC: Fixed warnings 2018-03-24 11:22:43 -04: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
2b851d5d38 Performance: Code optimizations (7-10% faster than 0.9.3) 2017-12-04 00:09:11 -05:00
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
1f974dcedd Debugger: Scroll overlay position is now based on the selected cycle/scanline 2017-09-28 20:05:00 -04:00
Souryo
5957bc2d3e Debugger: LUA scripting 2017-08-30 18:31:27 -04:00
Souryo
547fbab29f Overclocking: Improved compatibility with games that write to $4011 + fixed PAL issues with OC 2017-07-17 19:35:16 -04:00
Souryo
cf8c98f384 Overclocking: Changed APU behavior when adding extra lines before/after NMI (helps reduce overclocking-related issues) 2017-04-29 21:39:57 -04:00
Souryo
c477d75b66 PPU: Fixed reset state (started at cycle 1 instead of 0) + adjusted reset sync values (improves read2004 result).
+Simplified PPU code for a small performance boost (+3-6%)
2017-04-21 21:29:39 -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
380ab4c9ba PAL: Minor PPU behavior adjustment based on tests 2017-04-14 19:19:43 -04:00
Souryo
e1fae4e302 PPU: Added option to emulate OAM decay 2017-04-08 14:13:10 -04:00
Souryo
6ffc27c96b PPU: Disable sprite evaluation on prerender line + tweak PAL behavior 2017-04-07 19:24:34 -04:00
Souryo
619bc956bd Optimizations: Improved emulation performance (5-15% speed boost depending on game) 2017-04-02 17:41:24 -04:00
Souryo
bf979be756 Optimizations: Most games now run 15-20% faster 2017-03-31 22:14:16 -04:00
Souryo
17d75287bd PPU: Added delay to VRAM address update after $2006 write based on Visual NES findings by fred
Fixes Bart vs Mutants + Wizards & Warriors 3
2017-03-10 22:21:14 -05:00
Souryo
bed6976570 PPU: Fixed overflow bug emulation & $2004 read behavior (fixed read2004 test) 2017-03-10 21:29:48 -05:00
Souryo
312a07bbdd Debugger: Trace Logger improvements (Last 30k instructions visible, performance fixes, options are saved) 2017-03-04 15:18:00 -05:00
Souryo
8a450f6902 Sprite DMA: Removed old patch that was no longer needed 2017-02-23 20:00:52 -05:00
Souryo
7accd1ff18 Overclocking: Fixed sound issues when overclocking was enabled 2016-12-23 13:56:45 -05:00
Souryo
b4489ed0f7 Linux: Fixed all clang warnings 2016-12-17 23:14:47 -05:00
Souryo
b542fd56ec Linux: Fixed PPU crash when rendering is off + uninitalized variables 2016-12-16 07:13:33 -05:00
Souryo
ea9c32437c Debugger: Added feature to manually change the CPU/PPU's state 2016-11-26 17:48:11 -05:00
Souryo
af331bf5ae Video: Added option to force the display of bg/sprites in the first 8 pixels of the screen (left side) 2016-10-23 13:29:37 -04:00
Souryo
760c844d4d Debugger: Allow export/import of memory to/from files 2016-09-05 09:05:34 -04:00
Souryo
9ad4719d57 Trace Logger: Added options + improved UI usability 2016-09-03 21:52:59 -04:00
Souryo
b852edfec8 NSF/NSFe support 2016-06-25 20:46:54 -04:00
Souryo
57f24af64f Overclocking: Added settings to add extra scanlines in vblank before and after NMI + Moved a lot of emulation-related settings to a new "Emulation" menu item 2016-06-21 18:58:22 -04:00