Commit Graph

3744 Commits

Author SHA1 Message Date
alyosha-tas 458949a2f9 GBHawk: minor bug fixes and cleanups 2020-04-03 12:16:52 -04:00
adelikat be8db22d6c mgba- throw NotImplemented on callbacks with no address, we don't support that yet (likely ever) 2020-04-02 17:40:27 -05:00
adelikat cea0762c07 cleanup a few things in MGBAMemoryCallbackSystem 2020-04-02 17:40:27 -05:00
adelikat f97ef09c41 mgba - pass in mgba class instead of core pointer to MGBAMemoryCallbackSystem, seems cleaner either way. Still crash 2020-04-02 17:40:27 -05:00
feos fc5d8b2de6 add some stuff 2020-04-02 17:40:27 -05:00
feos 4597e8b334 tweaks 2020-04-02 17:40:27 -05:00
adelikat e44aa5d94a mGBA - pass core pointer to memory callback system 2020-04-02 17:40:27 -05:00
adelikat 75a991a36d bad attempt at wiring up mGBA memory hooks 2020-04-02 17:40:27 -05:00
adelikat 0422b9b1de nitpick cleanup 2020-04-02 17:36:08 -05:00
alyosha-tas ced37c45c3 GBHawk: memory ap optimizations 2020-04-02 15:41:03 -04:00
alyosha-tas 7d293bdb1a GBHawk: fix speed mode switch timing 2020-04-01 22:46:48 -04:00
adelikat 2401c37a7f delete ScreenArranger and move the relevant logic to MelonDS, and simplify, also use a pre-allocated buffer instead of making a new one every time 2020-04-01 18:58:08 -05:00
alyosha-tas 07e7a83243 GBHawk: optimizations 2020-04-01 09:44:43 -04:00
alyosha-tas e6e70b6e35 GBHawk: remove C++ core, not worth it, need to rethink design 2020-03-31 23:14:33 -04:00
alyosha-tas 0e0b94cd0c GBhawk: some C# optimizations 2020-03-31 23:03:40 -04:00
zeromus 667a218c58 hook up melonds screen control stuff to settings 2020-03-31 18:30:08 -04:00
alyosha-tas 5f24392b41 GBHawk; more minor cleanups 2020-03-31 17:58:25 -04:00
alyosha-tas ea085255c1 GBHawk: minor optimizatiosn 2020-03-31 17:20:27 -04: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
alyosha-tas 19b1d0fa18 GBHawk: bug fixes and ppu viewer working 2020-03-30 22:59:50 -04:00
alyosha-tas 68e69ff85b GBHawk: more bug fixes and loading games 2020-03-30 18:01:36 -04:00
alyosha-tas 69409ff729 GBHawk: bug fixes 2020-03-29 22:30:19 -04:00
adelikat a58e7a17a6 DS - bottom screen only option (useful for games like NSMB where pipes can send you to the other screen) 2020-03-29 14:37:59 -05:00
YoshiRulz e0e90a5f33
Reimplement ScreenArranger, refactor MelonDS.GetVideoBuffer 2020-03-30 03:50:49 +10:00
alyosha-tas b039b1f823 GBHawk: start cleaning up errors 2020-03-29 12:15:08 -04:00
adelikat b9f6432ddf DS - wire up rotate options, screen logic doens't work yet 2020-03-29 11:07:18 -05:00
alyosha-tas 29fded3025 GBHawk: add testing framework 2020-03-29 10:21:34 -04:00
alyosha-tas 73afca9c67 GBHawk: finish intergration functions 2020-03-29 10:10:13 -04:00
alyosha-tas 47704b94fd GBHawk: more integration work 2020-03-28 20:21:43 -04:00
adelikat c008b57324 DS - some cleanup 2020-03-28 15:15:45 -05:00
adelikat 5f889e2568 DS - add screen gap option 2020-03-28 15:12:47 -05:00
adelikat a541b45231 DS - refactoring 2020-03-28 15:05:13 -05:00
adelikat 0aaf2b4151 DS - rethink ScreenArranger, fix side by side options 2020-03-28 14:48:24 -05:00
adelikat 730156b5db DS - wire up some screen setting options, the side by side ones don't work because screen arranger has a bug, and it is flawed, going to refactor all of this 2020-03-28 12:03:26 -05:00
adelikat 3e89a7f201 DS - refactor settings so that it is an enum that then translates to ScreenArranger settings 2020-03-28 11:21:39 -05:00
adelikat e2ac7d7a8f cleanup ds video options code 2020-03-28 10:31:25 -05:00
alyosha-tas 98265cd066 GBHawk: Clean up files and definitions 2020-03-27 20:16:24 -04:00
SuuperW 7aec03d788 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-03-25 14:11:16 -05:00
SuuperW 1b419c7cfc fix an audio issue 2020-03-25 13:52:50 -05:00
SuuperW 34bfa46673 new Lid handling strategy 2020-03-25 13:50:21 -05:00
SuuperW cb73761ff6 fix for when screen layout options somehow get messed up 2020-03-25 13:45:18 -05:00
alyosha-tas 26619d367b O2Hawk: remove some unused code 2020-03-23 21:30:06 -04:00
alyosha-tas c5043d2ec3 O2Hawk: fix PAl timing a bit 2020-03-23 21:21:42 -04:00
adelikat f50b4e4c54 Odyssey2 - fix joypad.get(), apparently lua tables do not like keys that are just "." 2020-03-23 09:27:11 -05:00
YoshiRulz 16ed9e7bc9
Reorder modifiers (rule SA1206) 2020-03-23 20:03:51 +10:00
SuuperW 88904e6b44 support custom screen layouts in MelonDS core (no UI yet) 2020-03-22 18:40:52 -05:00
YoshiRulz cccf2c1920
Add port info and labels to MelonDS [Core] attr 2020-03-22 12:07:20 +10:00
alyosha-tas 5ea379c95d GBHawk: improve scanline zero emulation, still needs a little work. 2020-03-21 18:06:22 -04:00
feos 10d3d764b3 Merge branch 'master' of https://github.com/TASVideos/BizHawk 2020-03-21 22:25:50 +03:00
adelikat 7a558f1951 cleanup NDS settings code 2020-03-21 13:38:42 -05:00
adelikat 85fcb99717 cleanup NDS Settings dialog code 2020-03-21 13:25:39 -05:00
adelikat d9d5658a7b add melonDS icon 2020-03-21 12:54:59 -05:00
SuuperW c59d8130bb
DS Hawk (#1884)
* Add MelonDS.cs, support opening (but not really) .nds files.

* init MelonDS

* MelonDS: Load selected ROM.

* MelonDS: FrameAdvance and frame counter.

* MelonDS: IVideoProvider

* MelonDS: Add DLL files.

* MelonDS: IInputPollable

* MelonDS: IStatable (and add forgotten file MelonDS_InputPollable.cs)

* update libmelonDS.dll

* MelonDS: ISoundProvider

* Add NDS to Global.SystemInfo, and convert screen coords when running NDS.

* set up default NDS controller

* MelonDS: ISaveRam

* MelonDS: remove romlist.bin

* MelonDS: ISettable

* Create firmware folder if it doesn't exist on Windows; otherwise, an exception is thrown.

* Add database entries for NDS bios/firmware files.

* MelonDS: Use the bios/firmware files selected in BizHawk's "Firmwares" dialog.

* MelonDS: Re-work sync settings a bit.

* NDS's firmware file contains user settings; these are over-written by sync settings, so we shouldn't allow them to impact the hash

* MelonDS: Add (currently unused) bootToFirmware sync setting, and NDSSettings dialog.

* Update NDS firmware hash; it seems I had somehow corrupted mine.

* MelonDS: Use boot to firmware sync setting.

* MelonDS: Allow user to set some firmware user settings via the NDS settings dialog.

* MelonDS: Add singleInstance attribute to core.

* MelonDS: IMemoryDomains

* update libmelonDS.dll

* MelonDS: Set up default sync settings if none are provided.

* MelonDS: Allow user to reset settings to default.

* MelonDS: bios+firmware files are recommended

* libmelonDS.dll

* MelonDS: Don't use real time.

* MelonDS: Update to reflect new way of handling RTC in MelonDS.

* MelonDS: Notify if savestate load failed.

* update MelonDS.dll

* MelonDS: Allow user to set startup date/time in settings dialog.

* MelonDS: Create melon directory if it doesn't already exist.

* Don't include Designer's "fixes" in PR (partially reverts 56b474c00)

* Don't show a broken console window; alert user of need to restart instead.
This fixes an error related to MelonDS trying to use the broken stdout stream.

* update default NDS controls to match other updated controls

* Implement a system bus, using ARM9 read/writes.

* MelonDS: Allow BizHawk to change the contents of the frame buffer.

* update libmelonDS.dll

* fix stuff that was merged incorrectly, or was broken by merge

* update libmelonDS.dll
(includes memory leak fix)

* update libmelonDS.dll
(fixes memory leak and an occasional savestate crash)

* fix stuff that broke with the merge

* cleanups, remove stuff that is no longer needed by service interaces

* simplify DS MemoryDomains

* DS - fix order of controller buttons to be consistent with other consoles.  This probably breaks any existing movies made on this core, but those would have been experiments, right?

* NDSSettings - make min value for day and month 0, whiel those aren't "valid" values they are the default values in the core for whatever reason, better to not crash on load and not show a value that isn't actually the setting.  This can easily be reverted if the core changes to default to 1

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: adelikat <adelikat@tasvideos.org>
2020-03-21 10:53:30 -05:00
alyosha-tas 04a33600da O2Hawk: fix the keyboard 2020-03-21 08:43:56 -04:00
adelikat 5c84c94a12 fix compile error in debug mode, oops 2020-03-20 21:05:44 -05:00
alyosha-tas 7e00b7892f gameboy memory domains: make consistent between gambatte and GBhawk 2020-03-20 20:04:58 -04:00
alyosha-tas aa165f36d2 O2Hawk: add PAL mode 2020-03-20 16:39:14 -04:00
adelikat 7fb89aed18 NesHawk - move BootGodDb to its own file 2020-03-19 21:35:36 -05:00
adelikat 01584431c4 NesHawk - cleanup Unif.cs 2020-03-19 21:28:32 -05:00
adelikat 22f6df3a70 NesHawk - CartInfo - turn into properties 2020-03-19 21:20:53 -05:00
adelikat daab35fc39 NesHawk- move CartInfo into its own file 2020-03-19 21:15:07 -05:00
adelikat dc56dd87e8 simplify MapperPropAttribute 2020-03-19 21:12:23 -05:00
adelikat 291275fe8c NesHawk - move MapperPropAttribute to its own file 2020-03-19 21:11:01 -05:00
adelikat f8acb61136 NesHawk - make boards and related classes internal, and sealed where possible 2020-03-19 21:06:54 -05:00
adelikat 620c38af73 NesHawk - move some enums out of NesBoardBase, simplifies a lot of usages 2020-03-19 20:29:15 -05:00
adelikat 720a2dce02 NesHawk - move NesBoardImpl attributes to their own file 2020-03-19 20:21:29 -05:00
adelikat 0d4dd3855b NesHawk - more missing variables in savestates 2020-03-19 20:02:22 -05:00
adelikat 659831c534 fix missing savestate data in some NESHawk mappers, note this is a breaking savestate change for these boards, but they were broken anyway, these were critical fields to savestate 2020-03-19 19:51:59 -05:00
adelikat 8bcab5af79 NESHawk - break off INesBoard and NesBoardBase into separate files 2020-03-19 19:06:03 -05:00
adelikat 4f74f0a2c3 git rid of an undeeded break statement, fixes a warning 2020-03-19 14:10:31 -05:00
adelikat 93c2644506 #if false some unreachable code in LibretroAPI 2020-03-19 10:37:29 -05:00
adelikat ca90b90698 MOS/Via.cs - comment out unused variable 2020-03-19 10:33:08 -05:00
adelikat 9b68246b19 remove an unused varaible in VDC.Render.cs, fixes a warning 2020-03-19 10:18:35 -05:00
adelikat d60a00d682 NES mappers - remove documentation comments in favor of the nesdev wiki link 2020-03-19 08:24:05 -05:00
adelikat efb34f74e1 a2600 refactor - make mapper classes internal and sealed 2020-03-18 21:46:51 -05:00
adelikat f10b51558b Atari 2600 - make MapperBase abstract and make HardReset() abstract since we need implementations to properly reset variables (we can't get rid of hard reset so easily, since HardReset is the mechanism that multi-cart roms use 2020-03-18 15:58:53 -05:00
adelikat db6bbe22bb A2600 - expose CartRam memory domain for mCM and mFA 2020-03-18 15:48:32 -05:00
adelikat 8f860adf51 cleanup Atari2600 mapper code 2020-03-18 15:46:17 -05:00
adelikat a61230e4ab Atari2600 - refactor mapper creation logic to be a separate method with declared dependencies, remove an unused method 2020-03-18 10:52:53 -05:00
adelikat 8c10ca3e14 Atari2600 cleanup - pass Atari2600 core into constructor instead of setting after, use switch expression for mapper instantiation logic 2020-03-18 10:37:53 -05:00
adelikat c52bc603d7 Atari 2600 Mappers - remove useless HasCartRam virtual method, and simply check if CartRam.Length > 0 2020-03-18 09:23:43 -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
adelikat 20b99d4ae2 fix typo in GambatteLink file 2020-03-15 18:24:42 -05:00
alyosha-tas 38e89f01ee quicknes: add jetson's to blacklist 2020-03-15 11:24:12 -04:00
adelikat c66243254c remove unused GameInfo parameter in some core constructors 2020-03-15 10:19:01 -05:00
adelikat f4b1d3f747 oops, meant to check this in 2020-03-15 10:15:30 -05:00
adelikat d3f37a5beb remove CoreComm.Clone(), it is now safe to pass around into subcores 2020-03-15 10:12:20 -05:00
adelikat 3c638f018f refactor CoreComm usage in remaining cores 2020-03-15 09:44:47 -05:00
adelikat 79aec475a9 refactor CoreComm usage in sega cores 2020-03-15 09:42:48 -05:00
adelikat 899f8662c0 refactor CoreComm usages in more cores 2020-03-15 09:38:54 -05:00
adelikat c532b96245 refactor CoreComm usage in nes cores 2020-03-15 09:35:12 -05:00
adelikat b5c0bfa141 remove coreComm from N64 core 2020-03-15 09:32:29 -05:00
adelikat 8973e5e521 refactor CoreComm usage in GBHawk and related cores 2020-03-15 09:31:07 -05:00
adelikat 028bc83c88 refactor CoreComm usage in some Gameboy cores 2020-03-15 09:28:27 -05:00
adelikat 5886416cbf refactor CoreComm usage in more cores 2020-03-15 09:22:58 -05:00
adelikat 8833ce61c4 refactor coreComm in waterbox 2020-03-15 09:16:45 -05:00
adelikat 095b22d489 refactor CoreComm usage in atari cores 2020-03-15 09:14:33 -05:00
adelikat 9fa59bad42 refactor CoreComm usages in Computer cores 2020-03-15 09:10:13 -05:00
adelikat d6af18accb remove CoreComm from MAME, easily added back if firmware is needed 2020-03-15 08:58:17 -05:00
adelikat da95c1f56f remove RomAnnotation fields on CoreComm and use the service instead 2020-03-14 22:10:57 -05:00
adelikat 42dc7edd23 pass in rom annotation details to Octoshock so it can set coreComm, ideally the core should figure all this out but this works okay 2020-03-14 21:36:51 -05:00
adelikat 3cacb88e48 a few cleanups in octoshock 2020-03-14 21:27:05 -05:00
adelikat a884282fa4 remove CoreComm NominalX/Y, those values never different from buffer w/h for cores that set them which were only the gb/gba platforms and the original dualGb. The result defaulted to a very random 640x480. Instead just use the buffer w/h, which is a very reasonable video default 2020-03-14 17:06:42 -05:00
adelikat dd062b3ca7 replace CoreComm screenofsets with an emulator service 2020-03-14 16:35:54 -05:00
adelikat 870d7df6f2 cleanup some unneeded code 2020-03-14 16:09:25 -05:00
adelikat 9825963261 kill off the dead PSP core 2020-03-14 15:10:29 -05:00
adelikat 211883889b simplify CoreCom copying by implementing a Clone method, simplifies all the cores that have cores in them, this copies a lot more things than the original code had but it seems that's either fine or fixing broken stuff 2020-03-14 15:08:24 -05:00
adelikat d72d8e79ff remove Global.Game from retro methods of CoreFileProvider, fix exposed bug that the retroarch core was getting path stuff based on Global.Game before it was being set to the new game 2020-03-14 14:22:23 -05:00
adelikat cd7d907c0d get rid of CoreFileProvider SubFileDirectory 2020-03-14 14:02:19 -05:00
adelikat e655ad3abd remove obsolete ICoreFileProvider.PathSubfile(), and instead pass in the neccessary base path the the bsnes core that needs it 2020-03-14 13:56:20 -05:00
adelikat 6958ade3a8 nes ppu - have Reg_2000 depend on PPUREGS instead of PPU since that's all it's using 2020-03-14 10:32:59 -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
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
YoshiRulz ddbabd6067
Split path to fork in project dependency tree
Emulation.Common does not depend on Emulation.DiscSystem, but Emulation.Cores
still depends on both
2020-03-13 09:46:24 +10:00
YoshiRulz 5196b97459
Fix resources for BizHawk.Emulation.Cores and cleanup 2020-03-07 07:45:19 +10:00
adelikat 565a319cef
Remove unused sound files (#1868)
* Remove unused ZeromusSynchronizer ISynchronizingAudioBuffer implementation as it hasn't been used in quite some time, also remove unused MetaspuAsyncSoundProvider that is no longer used. Remove some unsed methods on MetaspuSoundProvider

* use switch expression

* remove unused buffer

* remove unused NitsujaSynchronizer, even though it was the default, the only usage of ISynchronizingAudioBuffer is the vecna one

* remove enum ESynchMethod now that it only had 1 option

* expose VecnaSyncrhonizer and remove Metaspu static class

* remove unused method on ISynchronizingAudioBuffer
2020-03-01 14:18:24 -06:00
feos 8408fd86dd test 2020-03-01 11:22:16 +03:00
alyosha-tas 9810bd7541 GBHawk: oops missed one 2020-02-29 21:34:37 -05:00
alyosha-tas ca025488cd GBHawk 4x:linking improvements 2020-02-29 21:27:26 -05:00
alyosha-tas b1d17b0a57 GBHawk: proper bias emulation in audio, still needs some refinement but everything is in place. 2020-02-29 17:11:46 -05:00
alyosha-tas 7c32305cb4 GBHawk: fix videoplayer2 audio 2020-02-29 11:57:44 -05:00
alyosha-tas e87a0edb01 GBHawk 4x: cleaan up the 2x2 connections 2020-02-29 09:05:28 -05:00
alyosha-tas c9621eff19 GBHawk: CPU optimizations 2020-02-28 20:46:33 -05:00
adelikat 46d05de51f nothing to see here 2020-02-28 12:52:48 -06:00
alyosha-tas 5f5bf639c2 GBHawk: 4x cleanup 2020-02-27 18:15:34 -05:00
alyosha-tas 1e550e68eb GBHawk: 4x adapter functional 2020-02-27 16:37:08 -05:00
adelikat f5e9e8eecd cleanup VersionInfo.cs a bit 2020-02-26 15:33:50 -06:00
alyosha-tas 027dc6a6eb GBHawk: more 4x adapter work, pinging seems to work, need transmitting 2020-02-25 20:58:30 -05:00
adelikat 185dbda19a misc redundant code removal, empty argument in object intiializer, redundant elses 2020-02-25 15:14:13 -06:00
alyosha-tas 78454ea636 GBHawk: Start 4x adapter 2020-02-25 13:53:28 -05:00
feos 0962771225 dispose 2020-02-25 18:05:47 +03:00
feos 7b7f92ea3e mame: start savestates 2020-02-25 17:57:29 +03:00
feos 9274545eb5 disable this test 2020-02-25 17:57:28 +03:00
alyosha-tas c16b47cbe4 GBHawk: rename GB compat cpu to have proper dependency 2020-02-25 08:06:43 -05:00
alyosha-tas f73c65d704 GBHawk: camera mapper 2020-02-23 17:38:56 -05:00
alyosha-tas f0692111d7 SubGBHawk: add 2020-02-23 09:54:42 -05:00
alyosha-tas e1128e4150 oops forgot a line 2020-02-23 07:37:38 -05:00
alyosha-tas 38e9dc02b7 GBHawk: camera mapper 2020-02-23 07:34:55 -05:00
adelikat 959a06e6bb Apple II - add status of black/white apple keys to savestates 2020-02-22 15:01:56 -06:00
YoshiRulz 2b8c0edcc2
Reorganise *.props 2020-02-23 06:17:35 +10:00
adelikat f9c6234262 oops 2020-02-22 12:37:12 -06:00
adelikat 9008bf269a O2 - remove peek/poke methods 2020-02-22 11:44:13 -06:00
adelikat 8a60043697 a7800 - misc simplifications, remove mapperBase peek/poke methods since they weren't being used and did not differ from read/write on any mapper 2020-02-22 11:42:50 -06:00
adelikat 33ad336b6a
Apple II - refactor states to use Serializer (#1859)
* apple II - poc to redo binary states to use the Serializer and pass it into virtu

* virtu - savestate logic for Video

* AppleII - serialize more components with AppleSerializer

* cleanup

* refactor MachineEvents to store delegates to call and have the calling code interact with an enum, prep work for serializing this class

* apple II - first attempt at serializing Machine events

* cleanup

* add isvblank to savestates

* put more things in savestates, cleanup

* cleanup

* cleanup, save more things

* cleanup, fixes

* cleanup, save more things

* virtu - savestate fixes

* cleanup

* save CurrentDisk in savestates
2020-02-22 09:53:56 -06:00
alyosha-tas 9831ca59bd GBHawk linked modes: implement power button 2020-02-22 09:19:05 -05:00
alyosha-tas 1b301862db GBHawk: Implement power button 2020-02-22 08:47:39 -05:00
adelikat 512fed32db seimplify oddessey default mapper a bit 2020-02-20 15:57:38 -06:00
adelikat ae70577887 move get/set register logic from ChannelF to F3850 2020-02-18 16:30:38 -06:00
YoshiRulz be60911ff9
Cleanup StringExtensions 2020-02-19 08:26:08 +10:00
adelikat 9c15ca1369 HuC6280 -> spaces to tabs, and remove comments about not modifying directly since we dont' have the Cpu generator anymore (and no one listened to the warning anyway) 2020-02-18 16:24:29 -06:00