Commit Graph

67 Commits

Author SHA1 Message Date
alyosha-tas 2ef2f8f119 NESHawk: various loop optimizations, 5-10 fps improvement 2020-04-29 09:38:27 -04:00
adelikat 217f03f66d remove AggressiveInlining on Read_bgdata, still doesn't inline due to switch statement, so this attribute is doing nothing here 2020-04-21 10:30:10 -05:00
adelikat 26a68c0cbc NesHawk - aggressively inline Apu.EmitSample() also simplify it to reduce IL 2020-04-21 10:28:31 -05:00
adelikat 4386509f01 NesHawk - about a 5-10% speedp by using AggressiveInlining. Performance sensitive methods were analyzed, and I only added it to methods that failed inlining only due to the 32 IL byte limit but still reasonably sized. This attribute only lifts the 32 byte limit, it's important to do this analysis and not just apply this attribute with research. 2020-04-21 09:18:09 -05:00
adelikat 8bcab5af79 NESHawk - break off INesBoard and NesBoardBase into separate files 2020-03-19 19:06:03 -05:00
adelikat 4ababf383a NESHawk - PPUREGS - don't depend on PPU, move the one method that was using it out to PPU 2020-03-14 10:30:53 -05:00
adelikat 46d05de51f nothing to see here 2020-02-28 12:52:48 -06:00
adelikat 606c3bf1c2
use more advanced language features in Emulation.Cores (#1852)
* Use expression bodies in Emulation.Cores, and a few other misc cleanups

* remove unused usings in Emulation.Common

* cleanups in Tables_Direct.cs

* some cleanups in nes boards - redundant code

* remove some redundant array initializers in Emulation.Cores

* cleanup AmstradCPC.Controllers

* use object initializers in a lot of places

* nes mappers - remove disch's notes comments in favor of the nesdev wiki link

* cleanup CdtConverter.cs, mostly use of object initializers

* remove redundant .ToString() calls in Emulation.Cores

* using var in Emulation.Cores

* AmstradCPC/ZXSpectrum - simplify some linq, tabs instead of spaces, a few other misc cleanups

* Use null-propagation in Emulation.Cores
2020-02-17 16:54:51 -06:00
YoshiRulz b1e02fbdce
Enable SA1106 and fix noncompliance
"Code should not contain empty statements"
i.e. don't put a semicolon there
2020-01-25 18:06:34 +10:00
alyosha-tas 6bd0fbccef NESHawk: scanline timing and audio fix 2020-01-07 18:28:12 -05:00
alyosha-tas 0bd3553c27 NESHawk : fix dendy mode 2019-09-14 10:30:18 -04:00
alyosha-tas 469fc4836f NESHawk: Optimizations and Audio changes 2019-02-18 14:52:17 -06:00
alyosha-tas c19c7cd5c3 SubNESHawk
also Input register shift fix

# Conflicts:
#	BizHawk.Client.EmuHawk/MainForm.Designer.cs
#	BizHawk.Client.EmuHawk/MainForm.Events.cs
#	BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.IEmulator.cs
#	BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.IEmulator.cs
#	BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs
2019-01-10 18:25:59 +03:00
alyosha-tas 69fe1bdf97 NESHawk: VRAM write timing glitch 2018-12-16 13:10:04 -06:00
alyosha-tas 9804a0901a NES: Sprites don't render on scanline 0 2018-03-07 09:46:40 -05:00
alyosha-tas 7b8a61b8e4 NESHawk Cleanup 2017-10-26 09:58:24 -04:00
alyosha-tas c96ea0d23d Update PPU.run.cs 2017-10-25 21:51:53 -04:00
alyosha-tas 874d06797f NESHawk: Code Clean up
remove redundancies, fix scanline count
2017-09-02 10:48:23 -04:00
alyosha-tas 40ec613982 NesHawk: Single Tick PPU
Should allow for breaking out into a debugger.
2017-09-01 22:11:41 -04:00
alyosha-tas 3961292294 NESHawk: more efficient sprite check
Gives a ~5% speed boost by not checking every sprite all the time.
2017-08-27 18:17:10 -04:00
alyosha-tas 497513f93a NESHawk: PPU: Fix OAMADDR
-Implements $2004 write glitch
-Correctly implements OAMADDR initialization
2017-08-02 11:24:49 -04:00
adelikat cbe2f442a7 Neshawk - ppu - a small code simplification 2017-06-30 09:15:55 -05:00
adelikat e150bca642 NesHawk - unless I'm missing something, this is more readable and more performant 2017-06-28 10:37:03 -05:00
alyosha-tas bd29ec087e NES: small PPU refactor
Will make future testing easier
2017-06-17 19:02:21 -04:00
alyosha-tas 13b99bafd0 NESHawk: Clean up and minor refactor
Simplify the code base a bit and gets a performance boost as well.
2017-06-16 21:41:13 -04:00
alyosha-tas 10de07aec2 Update PPU.run.cs 2017-05-30 18:24:30 -04:00
alyosha-tas 9f7a926437 NES Fix more then 8 sprites option 2017-04-07 20:14:34 -04:00
alyosha-tas 9d93fe404c NES Timing Update
Update per Visual NES inspection of $2001 writes

Correctly fixes Micro Machines while maintaining Battletoads 2p warps sync
2017-03-21 19:01:30 -04:00
alyosha-tas e82f19c39e NES Set up a known valid state for testing 2017-03-09 17:50:19 -05:00
alyosha-tas 22da9ae6ea NES Update Core 2017-03-08 12:18:30 -05:00
alyosha-tas df7a93e83a NES Update $2003 behaviour
Fixes Huge Insect
Some debate reamins about what exactly is happening here though
2017-03-07 22:30:41 -05:00
alyosha-tas b453745404 NES PPU update sprite evaluation 2017-03-06 20:27:37 -05:00
alyosha-tas 535bfa4ab4 Update PPU.run.cs 2017-03-06 07:30:20 -05:00
alyosha-tas f6746400d9 Update PPU.run.cs 2017-03-06 07:24:28 -05:00
alyosha-tas 0960ca8a89 NES PPU clean up 2017-03-03 20:51:36 -05:00
alyosha-tas ca2fa6c95e NES PPU2006 write delay
See NESDEV discussion:

http://forums.nesdev.com/viewtopic.php?f=3&t=15484
2017-03-03 14:57:38 -05:00
alyosha-tas 961c5d7a03 NES: Fix another PPU race condition 2017-02-04 13:46:10 -05:00
alyosha-tas 3c8a6a4e19 NES: Fix PPU timing and Race condition 2017-02-04 09:14:55 -05:00
alyosha-tas dd19a69b6c NES: Fix more then 8 sprites per scanline 2017-01-27 18:34:56 -05:00
alyosha-tas 647f0914ed NES: Some PPU cleanup 2017-01-25 19:17:24 -05:00
alyosha-tas 18d8baa65d Add files via upload 2016-10-23 20:50:06 -04:00
alyosha-tas 92d4e1bd17 Fix power up behaviour (and Dragon Slayer IV)
Power up timing is now consistent with all know information regarding VBlank timing and initial state.

This is mostly thanks to True's console testing of Battletoads, which happens to require exacting timing to sync.

However, Dragon Slayer 4 requires writes to $2000 to be recognized well before the PPU is initialized, and even blargg states that this should not be the case. Since the game obviously is supposed to run, I have removed all write ignore code until more testing can be done.
2016-10-16 17:25:13 -04:00
alyosha-tas 4c919c95c0 Match first VBlank timing to FCEUX
Irrelevent to sync since games wait for VBlank anyway, but extremely convenient for testing.
2016-10-05 22:26:47 -04:00
alyosha-tas a9cded19bb Fix bug in NES BG evaluation
Fixes a long standikng bug in micro machines
2016-09-25 11:52:12 -04:00
alyosha-tas 2843b4c8af Timing fix
This one actually mattered for mapper 83, which relies on pretty tight timing and power up behaviour.
2016-09-19 22:42:20 -04:00
alyosha-tas c746d3f9db fix number 2 at pipeline 2016-09-16 20:37:11 -04:00
alyosha-tas 6507ed3508 Fix pipelining 2016-09-16 18:28:54 -04:00
alyosha-tas 1d098aa242 Fix BG check timing, implment pipeline 2016-09-16 07:46:56 -04:00
alyosha-tas ec582fb35c Properly check draw_bg every pixel 2016-09-15 16:06:31 -04:00
alyosha-tas 29cec0e49b small timing fix
needed for family basic
2016-09-07 20:05:02 -04:00