Commit Graph

1453 Commits

Author SHA1 Message Date
nattthebear 84002f1232 Make the menu items for FDS disk changing better named 2020-11-28 13:30:00 -05:00
adelikat 8550d2bd0d fix previous commit, fix dependencies in PathConfig and remove usage of GlobalWin in FirmwaresConfig 2020-11-28 11:03:38 -06:00
adelikat be8825fefc GBPrefs/DGBPrefs - pass in dependencies 2020-11-28 10:53:27 -06:00
adelikat 342164d05c ColorChooserForm - a bit of cleanup 2020-11-28 10:04:24 -06:00
YoshiRulz 3be90efd57
Make some GlobalWin props read from MainForm instead of the reverse
these props' setters were only called from MainForm
2020-11-28 23:28:32 +10:00
YoshiRulz 0899369d1a
Sort out the mess that is creating and updating the global Config
hopefully this kills a few subtle bugs re: `Config` > `Load Config`
2020-11-28 23:04:49 +10:00
YoshiRulz 3de87af5de
Pass MovieSession to APIs via ctor 2020-11-28 22:48:02 +10:00
YoshiRulz c203edba17
Move prop GlobalWin.UserBag to global MovieSession
and weaken to IDict<K, V>
2020-11-28 22:39:13 +10:00
YoshiRulz 56df80bb5a
Move prop GlobalWin.OSD to global DisplayManager 2020-11-28 22:27:26 +10:00
YoshiRulz b0b2b8fa63
Remove GlobalWin.DisplayManager, pass it through from MainForm instead 2020-11-28 22:10:48 +10:00
YoshiRulz 78daf4913d
Move ArgParser to Client.Common and split ParsedCLIFlags into own file 2020-11-28 21:45:52 +10:00
YoshiRulz 251f0e7af8
Move init of network helpers from ArgParser to MainForm ctor 2020-11-28 21:41:33 +10:00
YoshiRulz 1c1aa348cf
Add a new field to MainForm for _autoDumpLength
now ParsedCLIFlags can be properly readonly :)
2020-11-28 21:01:17 +10:00
YoshiRulz 35d6bca6c6
Cleanup ArgParser without changing usage
(apart from its init in the MainForm ctor)
2020-11-28 20:47:35 +10:00
adelikat 750e1d8980 Sounds.cs - pass in some dependencies instead of using GlobalWIn 2020-11-27 15:53:52 -06:00
adelikat bae75157f2 remove some unnecessary GlobalWin usages 2020-11-27 15:09:04 -06:00
adelikat 0223c11504 cleanups 2020-11-27 15:07:10 -06:00
adelikat e640b11e49 remove some unused methods in ToolFormBase 2020-11-27 15:00:28 -06:00
adelikat e9ca84f8bd remove GlobalWin.Game usage in ToolFormBase 2020-11-27 14:59:50 -06:00
adelikat cd146c0f79 remove GlobalWin usage in HeaderEditor 2020-11-27 11:17:47 -06:00
adelikat 488c3def6a misc cleanups, naming conventions, readonly modifier, pattern matching, explicit modifier, apparently visual studio nags about these things now 2020-11-27 11:06:35 -06:00
adelikat a87f08379c GB ColorChooserForm - simplify code, remove a GlobalWin usage for free 2020-11-27 10:33:42 -06:00
adelikat 2c7b2a530c Remove GlobalWin usage in BmpView, and also use appropriate suffixes in various screenshot saving methods in various graphics tools 2020-11-27 10:25:30 -06:00
YoshiRulz 707dae93a7
Use MainForm's prop to get the global ToolManager in Win32LuaLibraries 2020-11-26 22:55:08 +10:00
YoshiRulz 2c086702c9
Pass global ToolManager to IToolApi impl via ctor 2020-11-26 22:53:27 +10:00
YoshiRulz 794c4b5b84
Pass global ToolManager to Console and TAStudio Lua libs on init 2020-11-26 22:41:46 +10:00
YoshiRulz 256f4d5b06
Make ConsoleLuaLib funcs not static, save callback on init of lib 2020-11-26 22:37:30 +10:00
YoshiRulz 9e0a3c0e34
Pass Lua Console log callback to LuaCanvas and replace static calls 2020-11-26 22:35:52 +10:00
YoshiRulz 72fd3f2fca
Replace static ConsoleLL.Log calls in FormsLL with LogOutputCallback 2020-11-26 22:31:27 +10:00
YoshiRulz 663e9cfbec
Add wrapper for Lua Console log callback and cleanup 2020-11-26 22:24:39 +10:00
YoshiRulz 939cd1bcaf
Add prop IToolApi.AvailableTools and use in ClientLuaLibrary 2020-11-26 22:12:19 +10:00
YoshiRulz 2e428ccc2e
Clean up GlobalWin.Tools assignment and usage in MainForm 2020-11-26 21:46:41 +10:00
YoshiRulz 8aab0d00cd
Move GlobalWin.ExitCode to Program 2020-11-26 21:41:54 +10:00
YoshiRulz 6dfb0a8af8
Move GlobalWin.DisableSecondaryThrottling to MainForm 2020-11-26 21:41:43 +10:00
YoshiRulz f0843689ed
Clean up global GLManager instance
no code actually got run by the GLManager ctor so it should be fine to delay it
2020-11-26 15:42:07 +10:00
YoshiRulz cdf562264c
Clean up global usage in DisplayManager 2020-11-26 15:22:19 +10:00
YoshiRulz 808ec64dba
Replace GlobalWin.FirmwareManager with MainForm prop 2020-11-26 15:08:15 +10:00
YoshiRulz 21b633c705
Move static IEmuClientApi prop from GlobalWin to ClientApi 2020-11-26 14:32:18 +10:00
YoshiRulz 0e2d35d6aa
Replace ClientApi event sub with direct call in MainForm 2020-11-26 14:29:11 +10:00
YoshiRulz 781976f18e
Pass EmuClientApi instance to MainForm when restarting in ToolManager 2020-11-26 14:24:03 +10:00
YoshiRulz 87a4f1186e
Make EmuClientApi.SystemIdConverter a static instance 2020-11-26 14:21:07 +10:00
YoshiRulz 9fc853d404
Pass more things through to ApiManager 2020-11-26 14:03:07 +10:00
YoshiRulz 4c9c985eed
Use IGameInfo instead of impl. in ApiHawk 2020-11-26 13:45:00 +10:00
alyosha-tas 389979b350 Movies: Still need this line for bk2 movies 2020-11-25 19:57:48 -05:00
alyosha-tas cf297dacb5 GBHawk: bug fix 2020-11-25 19:05:33 -05:00
alyosha-tas 53efd448d2 GBHawk: clean up 2020-11-25 14:24:52 -05:00
alyosha-tas 78ca48251f GBHawk: update HDMA implementation 2020-11-25 14:05:17 -05:00
YoshiRulz 13a8a602cf
Move SaveStateLuaLibrary to Client.Common 2020-11-25 19:48:06 +10:00
YoshiRulz db63222f32
Use new _luaLibsImpl prop instead of LuaConsole.LuaImp via globals 2020-11-25 19:47:07 +10:00
YoshiRulz a6d1c6595a
Pass LuaLibraries instance to Lua libs via ctors 2020-11-25 19:35:14 +10:00
YoshiRulz f5752294ff
Simplify Lua lib ctors 2020-11-25 19:27:38 +10:00
YoshiRulz a4e2e1ad3f
Move absract class LuaLibraries to Client.Common 2020-11-25 19:12:37 +10:00
YoshiRulz 6c05361cda
Move GuiLuaLibrary to Client.Common 2020-11-25 19:11:06 +10:00
YoshiRulz 20111fb4a2
Replace class Win32LuaLibraries.ResumeResult with tuples 2020-11-25 19:01:37 +10:00
YoshiRulz fd4a534fa7
When restarting Lua, use a single ApiContainer for all Lua libs
fixes a7ffdd948, 104c17e77, 151911069
2020-11-25 18:04:02 +10:00
alyosha-tas 1afcbe3ab5 GBHawk: update bad SRAm access emulation 2020-11-23 19:41:10 -05:00
alyosha-tas af38023ba8 GBHawk: open bus behaviour on locked SRAM 2020-11-23 17:06:49 -05:00
YoshiRulz 0093c16d79
Bump .NET SDK to 5.0.100, bump C# to 9.0
BizHawk.Tests executable needs to run in CI, but the 5.0 SDK image can't run
Core 3.1 apps somehow, so I bumped that too
2020-11-23 21:48:10 +10:00
YoshiRulz be536c67de
Update OpenTK and OpenTK.GLControl to latest 3.x (resolves #2471) 2020-11-23 21:18:20 +10:00
alyosha-tas 4a76cc322e GBHawk: some display bug fixes 2020-11-22 17:03:24 -05:00
alyosha-tas 8199e67770 GBHawk: more double speed mode timing work 2020-11-22 11:40:56 -05:00
YoshiRulz bad08162e2
Restart Sound in MainForm instead of SoundConfig 2020-11-22 12:38:40 +10:00
YoshiRulz edda120b07
Clean up some dumb in *SoundOutput ctors 2020-11-22 11:48:17 +10:00
YoshiRulz 9e5ab0706e
Move calls of static methods *SoundOutput.GetDeviceNames to a delegate
now only MainForm needs to reference *SoundOutput
2020-11-22 11:31:58 +10:00
alyosha-tas bffe2078d4 GBHawk: More double speed mode work 2020-11-21 16:18:43 -05:00
alyosha-tas cd7cc7f939 GBHawk: work on double speed mode 2020-11-21 13:49:28 -05:00
YoshiRulz 7596b97218
Add prop FormBase.BlocksInputWhenFocused to simplify some logic 2020-11-21 22:42:42 +10:00
YoshiRulz e7f83cb492
Small cleanup of <NoWarn/> use in project files 2020-11-21 19:53:13 +10:00
YoshiRulz e2a496c652
Cleanup OTK_Keyboard 2020-11-21 19:16:34 +10:00
YoshiRulz e2ac1aca84
Add and use DistinctKey enum (copy of WPF's key enum) 2020-11-21 17:43:58 +10:00
YoshiRulz 641db1bcd7
Comment out unused field
was assigned to before refactor in fc92d3c63
2020-11-21 11:24:57 +10:00
alyosha-tas 0b8e4ab6b1 Movies: revert previous 2 commits, too many difficulties around movies in 'finished' mode 2020-11-20 19:20:55 -05:00
alyosha-tas 1fe1138a91 Movies: don't redo steps if movie finished 2020-11-20 18:11:38 -05:00
alyosha-tas d676036359 Movies: reorder code so that record mode is not entered if state load failed 2020-11-20 17:25:01 -05:00
alyosha-tas 320ecc9093 Movies: Fix #4285 2020-11-20 16:09:58 -05:00
alyosha-tas 349092fec8 GBHawk; fix input when switching from playing a movie to recording another one 2020-11-19 13:59:33 -05:00
alyosha-tas fc92d3c63e Debugger: Fix scrolling in disassembly view 2020-11-17 19:54:43 -05:00
alyosha-tas fa08b25d37 Virtual Pad analog stick: Fix changing x axis name , fixes #2467 2020-11-16 22:00:49 -05:00
alyosha-tas 7865fe2980 Movies: pass SRAM to emulator before state is made 2020-11-16 17:37:49 -05:00
zeromus 6873b1c291 discsystem - load 2352-byte aligned iso as mode2/2352 bins instead. will cause 1 in ~2000 cases of isos to fail in case they are honestly multiples of 2352 sectors. if anyone ever reports that I can possibly try it both ways and see if one can detect as a known disc type and use whichever one succeeds?
should "fix" #2478
2020-11-13 03:13:04 -05:00
nattthebear ebf0f6685e Fix playing a movie when core is not specified and core is not one we support switching of
#2476
2020-11-12 15:12:00 -05:00
alyosha-tas a4507691b6 GBHawk: Overhaul HDMA emulation 2020-11-07 09:36:53 -05:00
alyosha-tas 2a92121483 GBHawk: refactor some ppu code to prepare for more accurate VRAm glitch emulation 2020-10-29 12:35:45 -04:00
alyosha-tas bd3ee6f45c GBHawk: don't clear timer/serial interrupts when they happen at the same time as a set 2020-10-24 21:46:31 -04:00
YoshiRulz 72511add3b
Add ctor to KeyEvent and make readonly struct 2020-10-23 11:10:49 +10:00
alyosha-tas d7c59e8bd4 GBHawk: Fix behaviour of button pressed during STOP 2020-10-22 20:24:54 -04:00
YoshiRulz 3709968757
Map remaining DInput keys to OTK Unknown 2020-10-21 12:40:55 +10:00
YoshiRulz 4dab259412
Rewrite scan code list for DInput alt. mode
In 9d348c9c8 I copied these verbatim, but half of the non-alphanumeric keys were
wrong. I passed 0..0xFFFF to MapWin32VirtualScanCodeToVirtualKey to get what I
assume are the correct values, though it's possible they're per-machine, in
which case the whole alt. mode feature is broken. There are a few keys that
remain commented-out because I didn't find their scan code, notably numpad 0-9.
2020-10-21 12:25:40 +10:00
YoshiRulz fa7811f848
Add Menu, Oem102, and Unknown to OTK, add Menu and Unknown to DInput 2020-10-21 12:09:44 +10:00
nattthebear 1f313b42c8 Change NES ideal framerates
These are used for realtime and recorded AV output.  They match closely what the core actually does (not idealized values about what the NES framerate ""should"" be.)

Fixes #2460
2020-10-20 18:27:28 -04:00
YoshiRulz 58aa64b5d6
Add some missing keys to DirectInput alt-keyboard-layout mode
maybe THIS will fix the crashes
2020-10-16 14:45:46 +10:00
YoshiRulz 9d348c9c8b
Merge KeyboardMapping into KeyInput and cleanup 2020-10-16 14:14:12 +10:00
YoshiRulz 7f5e777f75 Move DirectX wrappers to new project 2020-10-16 07:30:26 +10:00
YoshiRulz 69a05641e7 Replace global config access in DirectInput wrapper with encapsulation
fixes b01f52c01; this required a whole lot of rearchitecting for one obscure
feature which will become obsolete with the move to .NET Core anyway, and I'm
not happy about it
2020-10-16 07:30:26 +10:00
YoshiRulz 02e0804712 Move some host input internals to Client.Common 2020-10-16 07:30:26 +10:00
YoshiRulz 4c8bdf9851 Add properties to IHostAudioManager for accessing global config 2020-10-16 07:30:26 +10:00
YoshiRulz e1daa7efd3 Extract interface from Sound
The interface is a single method plus the four constants from the top of Sound,
which are now properties. The static methods in Sound are moved to extension
methods on the interface.
2020-10-16 07:30:26 +10:00
zeromus 447ae737f3 * don't clear ControllerInputCoalescer when rewiring input. it just collects physical input, there is no reason to unpress it. if you're holding a button, you want it held. the only exceptions would be in case a hotkey and controller input collided, in which case a prior hotkey press (which caused a rom to open or close) would then get handled as a controller input. this could be solved in some other way, probably (unpress hotkeys as soon as received?)
* resync controls after CloseRom

fixes #2453
2020-10-15 13:29:53 -04:00
YoshiRulz 35dadd75e6
Maybe fix alt-keyboard-layout mode crashes 2020-10-15 11:51:14 +10:00
alyosha-tas d3cccf0c3c GBHawk: multi cart check for bomberman selection 2020-10-14 17:53:53 -04:00
alyosha-tas f7d96bdedb GBHawk: Window timing bug fix 2020-10-14 14:40:09 -04:00
YoshiRulz 377c69032c
Really hide ISpecializedEmulatorService from CoreFeatureAnalysis UI
fixes 25b7be70b
2020-10-14 09:18:55 +10:00
YoshiRulz 25b7be70bc
Hide ISpecializedEmulatorService from CoreFeatureAnalysis UI 2020-10-14 08:43:41 +10:00
YoshiRulz ed4ddb13ce
Add CoreInventory.SystemsFlat list and use in UI gen elsewhere 2020-10-14 08:39:26 +10:00
YoshiRulz fca37ddccf
Refactor CoreInventory.Core creation 2020-10-14 08:25:54 +10:00
nattthebear 27e600c1ac Fix some confusions in no-dirty-detection mode
This caused some awful crashes, but doesn't affect any real release builds of waterboxhost
2020-10-13 09:10:40 -04:00
alyosha-tas e07944b0f1 GBHawk: sprite timing bug fix 2020-10-12 19:45:23 -04:00
alyosha-tas 5a96022f28 GBHawk: Window and sprite timing work 2020-10-12 18:14:36 -04:00
YoshiRulz 2991b69363
Cleanup <ProjectReference/>s 2020-10-12 08:37:47 +10:00
alyosha-tas da6ea1ec9f GBHawk: general clean up and minor bug fixes 2020-10-11 17:48:08 -04:00
YoshiRulz 24d07121e2
Bump version 2020-10-11 18:31:15 +10:00
adelikat ab28dbc501 NesHawk - default to 1 plugged in controller, instead of 2, we want to consistently start cores with 1 standard peripheral 2020-10-07 10:57:32 -05:00
alyosha-tas f0508df4ae GBHawk: Fix alignment of sprite evaluation when window is activated 2020-10-05 23:27:42 -04:00
YoshiRulz 7d1133ff9c
Cleanup Timestamp ctor(String) 2020-10-06 06:54:12 +10:00
YoshiRulz 9bd25a1aa1 Move some sound internals to Client.Common 2020-10-06 06:39:57 +10:00
YoshiRulz 49ef7a7a55 Move some DisplayManager internals to Client.Common 2020-10-06 06:39:57 +10:00
YoshiRulz adc1fefd14 Remove unused import
accidentally added in d1257e302?
2020-10-06 06:39:57 +10:00
alyosha-tas a52c2e79aa GBHawk: some window clean up and pass new scroll + sprite tests 2020-10-05 16:30:07 -04:00
adelikat af5dfc454c add in uzebox framerate 2020-10-04 16:30:45 -05:00
zeromus f561e79489 add provision for saving mismatching state frames in tastudio integrity checker 2020-10-03 23:53:46 -04:00
nattthebear 6ee62023a2
Re-add M3U capability (#2390)
Only supports optical disks.
2020-10-02 00:32:56 -04:00
alyosha-tas 38838fa3c1 GBHawk: fix window latching, x-scroll only latching lower 3 bits, and MBC3 RTC reg behaviour. 2020-10-01 20:09:26 -04:00
alyosha-tas 7ebc3a3058 GBHawk: FiX serial port emulation (somewhat) and cleanup some minor bugs 2020-10-01 15:17:58 -04:00
YoshiRulz 60da770532
Replace goto without throwing 2020-10-02 04:19:01 +10:00
zeromus f363acd16a Revert "Replace goto" (goto is superior to throwing an exception in unexceptional codepaths)
This reverts commit f22f5b732b.
2020-10-01 14:11:41 -04:00
YoshiRulz f22f5b732b
Replace goto 2020-10-01 22:33:41 +10:00
YoshiRulz ac5d53b44e
Code style: add explicit private modifier 2020-10-01 22:33:37 +10:00
YoshiRulz 03f82226cf
Cleanup GetRelativePath after move from MultiDiskBundler
fixes 5d001f3aa
2020-10-01 22:33:32 +10:00
nattthebear 7f4d29d0ff Revert "resume m3u support by turning the m3u to an xml game and then loading that. fixes #2378"
This reverts commit 8da5525819.
2020-10-01 08:17:30 -04:00
zeromus 8da5525819 resume m3u support by turning the m3u to an xml game and then loading that. fixes #2378 2020-10-01 03:40:19 -04:00
zeromus 5d001f3aa9 put MultiDiskBundler's GetRelativePath() in PathExtensions.cs. but I didn't end up using it... 2020-10-01 03:12:42 -04:00
zeromus 99f9b9b447 rename GetTempFilename `extension` arg to make it clear that you should provide the dot... 2020-10-01 03:02:13 -04:00
zeromus 3fd7e11f60 small improvements to MultiDiskBundler 2020-10-01 02:24:17 -04:00
adelikat 995993357f
StateManager - increase performance when there are a lot of states, fixes issue #2428 (#2433)
* StateManager - switch from SortedSet to List<int> + duplicate checks.  Seems to make raw capture speed to be slighly slower, but greatly speeds up invalidate which speeds up painting

* Add SortedList<T> : ICollection<T> which wraps List<T>

More interfaces can be added as needed. There's an indexer though ICollection
doesn't specify one.

* Update SortedList<T>

* StateManager - use SortedList<int>, seems to offer raw unthrottled drawing speed with no drawbacks, painting is still smooth when there is a high number of states

* remove a space

* Add RemoveAfter to our SortedList for efficiency

* fix unit tests to use [DataRow]

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: RetroEdit <30182911+RetroEdit@users.noreply.github.com>
2020-09-30 08:37:36 -05:00
alyosha-tas 7a4c5afce4 GBHawk: fix x-scroll latch and add some notes 2020-09-28 21:41:56 -04:00
RetroEdit 8449f9fcb8
Firmware Manager: replace unnecessary gotos 2020-09-28 15:34:28 +00:00
nattthebear d3f1d0f6ac Revert "Because the real GBA version of the GBC BIOS is quite obscure, a fallback is needed"
This reverts commit f3f70276df.
2020-09-27 22:32:55 -04:00
TiKevin83 f3f70276df Because the real GBA version of the GBC BIOS is quite obscure, a fallback is needed 2020-09-27 20:45:55 -04:00
zeromus 9884c93fbf Revert "Revert "Change build path of executables to output/dll but gooder""
This reverts commit f078709b6b.
2020-09-27 17:27:02 -04:00
zeromus cfbc148975 fix GB and SNES graphics viewers (and maybe others) due to incorrect (non-100%) windows DPI scaling setting 2020-09-27 17:26:44 -04:00
zeromus f078709b6b Revert "Change build path of executables to output/dll but gooder"
This reverts commit bb0e92a830.

I can't build again. e.g:
Unable to move file "..\..\output\BizHawk.WinForms.Controls.dll" to "../../output\dll/BizHawk.WinForms.Controls.dll". Cannot create a file when that file already exists.

We've failed twice now. Please give a rationale for why we have to move these files around.
2020-09-27 16:46:25 -04:00
YoshiRulz 96f4f24968
Fix weirdness in a specific rom loading scenario (fixes #2024)
Without this commit, choosing "Cancel" from a tool form's "Save changes?" dialog
(i.e. AskSaveChanges) while trying to load a rom from `File` > `Recent ROM`
would treat that recent rom as though it were missing. With this commit, an OSD
message is displayed instead.
This isn't the best fix. The return value from LoadRomInternal isn't even used
anywhere apart from LoadRomFromRecent, which is the only place the new out param
is used.
2020-09-28 05:10:40 +10:00
RetroEdit 3adcc26752
Simplify Gambatte's sync settings for selecting GBA (#2431)
Having GBA be a console mode is more straightforward for users to understand and a more logical way of arranging options. GBA is literally a console mode, not an additional modifier to a console mode.
2020-09-27 13:06:55 -05:00
adelikat e4d4c3a9d8 Lua - tastudio library - supress lua console updates when invoking tastudio methods that cause tool udpates, fixes #2172 2020-09-27 12:59:16 -05:00
RetroEdit b5cf9cb241
Restore Game Boy Pocket firmware to Acceptable
It does not have the same issues as early revisions of the GB/C boot roms
2020-09-27 17:13:41 +00:00
adelikat 32b7358f07 Macro tool - fix NRE on File -> Load Macro, fxies #2375 2020-09-27 11:16:18 -05:00
adelikat 32a20dcb3d Tastudio Markers - scroll to newly added marker instead of assuming it is the last in the list and scrolling to bottom, fixes #2350 2020-09-27 10:54:09 -05:00
adelikat c8a7c9d98f Tastudio - Markers - remove some nonsense code 2020-09-27 10:41:33 -05:00
adelikat 7920d148be InputRoll - auto-initialize MultiSelect to true, to match the DefaulValue attribute 2020-09-27 10:38:16 -05:00
adelikat 6a09bbce38 Branches - fix settings the designer barfed on in a previous commit, and a bit of cleanup 2020-09-27 10:35:58 -05:00