Commit Graph

92 Commits

Author SHA1 Message Date
zeromus 5f25525a80 neshawk - fix poking wram (fixes ancillary unrelated issue in #1994) 2020-05-13 10:58:27 -05:00
alyosha-tas 2ef2f8f119 NESHawk: various loop optimizations, 5-10 fps improvement 2020-04-29 09:38:27 -04:00
adelikat d4c8615e95 remove unused usings and other redundancies 2020-04-23 20:33:18 -05:00
adelikat 325551ecd0 consistently check if callbacks exist before calling memory callbacks, across all cores 2020-04-21 16:42:57 -05:00
adelikat 26a68c0cbc NesHawk - aggressively inline Apu.EmitSample() also simplify it to reduce IL 2020-04-21 10:28:31 -05:00
YoshiRulz 0ba7a5a7df
Rename axis-related types, members, and locals
I left a few methods where they had an equivalent *Bool*() for buttons, and also
left some in TAStudio that get serialised.
2020-03-31 17:29:55 +10:00
adelikat 22f6df3a70 NesHawk - CartInfo - turn into properties 2020-03-19 21:20:53 -05:00
adelikat f8acb61136 NesHawk - make boards and related classes internal, and sealed where possible 2020-03-19 21:06:54 -05:00
adelikat 8bcab5af79 NESHawk - break off INesBoard and NesBoardBase into separate files 2020-03-19 19:06:03 -05:00
adelikat d953318160
Remove cbuffer (#1883)
* delete unused ShortBuffer

* convert IntBuffer to int[] in the Atari2600 core

* remove IntBuffer from NES mappers, and delete class

* convert ByteBuffer to byte[] in atari 2600 mappers

* remove ByteBuffer usages in NESHawk, remove ByteBuffer class

* remove Buffer.cs

* remove IDisposable from NES.NESBoardBase

* remove Dispose from Atari2600 MapperBase, note, it wasn't event being called
2020-03-18 08:55:02 -05:00
YoshiRulz e12b5d8137
Refactor FloatRange creation and usage
effectively resolves #1200
* Replaced floats in FloatRange with ints (would have used shorts but
SubGBHawk/SubNesHawk use an axis to hack in cycle count or something), added
both Range<int> and Range<float> auto-properties
* Added bool field IsReversed to FloatRange
* Added enum AxisPairOrientation and factory method using it
* Cleaned up usages of FloatRange fields and properties
* Added new properties to PadSchema.ButtonSchema for type
PadInputType.AnalogStick (to hold the two FloatRanges) and used
ControllerDefinitions from cores to dedup these ranges in the schemata
* Made VirtualPadAnalogStick work properly: both the direction and bounds are
correctly set from the controller schemata, the polar conversion measures angles
consistently (though I think it might not work outside -128..127 e.g. for PSX),
and I didn't break the sensitivity override, plus negative percentages might
work now but I didn't allow those
* Renamed FloatRange to AxisRange, but did not rename related symbols
2020-03-14 20:47:45 +10:00
adelikat 46d05de51f nothing to see here 2020-02-28 12:52:48 -06:00
adelikat dedd618db4 subneshawk - delete a bunch of code by using the underlying core for services, cleanup, and implement some services that were missing 2020-02-18 13:19:17 -06:00
adelikat 0ff2539da7 subneshawk - support DatachBarcode service 2020-02-18 11:52:24 -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
James Groom 067477ce18
Merge branch 'master' into clean_docs 2019-06-14 13:28:39 +00:00
Brian Armstrong 2c6ecb68bd Merge branch 'master' into brian/mem_callback_addr_value 2019-06-06 02:11:04 -07:00
Brian Armstrong d41bd867b8 flags 2019-06-06 02:04:47 -07:00
YoshiRulz 2642ef4049
Remove empty docs 2019-06-06 16:41:10 +10:00
alyosha-tas 469fc4836f NESHawk: Optimizations and Audio changes 2019-02-18 14:52:17 -06:00
Brian Armstrong a8f293eec8 Call mem callbacks with addr, value 2019-01-24 03:23:21 -08:00
alyosha-tas ad6790cfb7 SubNESHawk: Add subframe reset 2019-01-18 18:48:50 -06:00
alyosha-tas 5256284ac6 SubNESHawk:
- Use NES settings for controllers / sync settings
- Clean up un-needed extra controller code
- Enable Menues
2019-01-12 09:32:01 -06:00
alyosha-tas 9fdeb9f5eb SubNESHawk: fix gambatte frameadvancepost, allow ppuviewer and nametableviewer 2019-01-12 08:12:21 -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 b773ba5798 NESHawk: Note on Mesen timings 2018-12-19 19:39:01 -06:00
alyosha-tas f34e723056 NESHawk: remove unused cheat class and simplify 2018-12-05 17:44:49 -06:00
Scepheo f3ea6fe025 Use generic interface type on MOS 6052X for talking to the emulator core (#1189)
* Use generic interface type on MOS 6052X for talking to the emulator core
* Change CpuLink constructors to not use expression-bodies, to get the AppVeyor build to pass.
* Add comment explaining why IMOS6502XLink exists.
2018-05-20 23:18:53 +03:00
alyosha-tas b2ed6eb737 Always initialize independent instances of IController in cores to NullController
- Fixes #1168
2018-03-31 11:23:55 -04:00
alyosha-tas 7d3f1b366f NESHawk: raise cap on cheats to include entire bus size 2018-03-10 08:14:38 -05:00
alyosha-tas b1320f38ef Initial WRAM in Silva Saga to 0xFF instead of 0 so the game won't think valid files exist there 2017-12-30 19:55:06 -05:00
alyosha-tas 6ffa22aa7a NESHawk: Fix APU IRQs 2017-12-05 19:36:02 -05:00
adelikat ebcd237858 Merge branch 'master' into domainedmemoryhooks 2017-10-29 12:38:29 -05:00
alyosha-tas 7b8a61b8e4 NESHawk Cleanup 2017-10-26 09:58:24 -04:00
alyosha-tas 7c1522cffe NESHawk: Audio Slider 2017-09-07 10:27:36 -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
nattthebear 77a535a7d8 Implement ICycleTiming on neshawk 2017-08-11 19:59:10 -04:00
adelikat cd289c474e memorycallbacks with domains - Phase 2 - change api to Call methods and refactor accordingly, everything should behave as it was before the refactor at this point. No cores have yet to be implemented with domains other than the default bus they already had 2017-08-03 18:08:07 -05: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 be7d271bd1 Update NES.Core.cs 2017-05-30 18:25:34 -04:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
adelikat 62a13d961d Move VsyncNum and VsyncDen out of CoreComm and into IVideoProvider 2017-05-05 11:21:37 -05:00
adelikat 698c6741ae Refactor IEmulator and remove the IController property, instead pass it as a paramter to the FrameAdvance() method 2017-05-01 20:09:11 -05:00
adelikat 57b63aaed4 Emulation.Common - cleanup Enums.cs 2017-04-27 11:45:44 -05:00
adelikat 3192cc70ae slight refactor to IEmulator - make the IController property set only to more clearly express the client -> core relationship 2017-04-26 19:09:00 -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 48e3cdfcdc NES: Minor code cleanup 2017-01-25 20:35:50 -05:00
alyosha-tas 7e6ca99e1a Update NES.Core.cs 2017-01-10 10:58:48 -05:00