Commit Graph

1534 Commits

Author SHA1 Message Date
YoshiRulz b541fe5b40
Use NLuaTableHelper for more conversion to/from LuaTable
also fix indexing that I broke in c8e10120d
2020-12-05 07:50:28 +10:00
YoshiRulz 46504b4880 Add and use more extensions for IDialogParent 2020-12-05 07:47:01 +10:00
YoshiRulz b752b09d62 Implement IDialogParent in some more forms 2020-12-05 07:47:01 +10:00
YoshiRulz 8a6c7be6aa Cleanup MainForm interfaces, move ShowDialogAsChild to extension 2020-12-05 07:47:01 +10:00
YoshiRulz f0664ce018 Add and use interface IDialogParent 2020-12-05 07:47:01 +10:00
YoshiRulz f0657b358d Inline ShowHawkDialog
there were 8 unnecessary double-mutes where ShowHawkDialog was called with a
InputPrompt receiver
2020-12-05 07:47:01 +10:00
YoshiRulz 9d620116f3 Shoehorn IDialogController into ShowHawkDialog call chains 2020-12-05 07:47:01 +10:00
YoshiRulz dd44ff7f6c Ensure owner param of ShowHawkDialog overloads are never null 2020-12-05 07:47:01 +10:00
YoshiRulz aad612593b Add and use helper method DoWithTempMute (void and generic flavours) 2020-12-05 07:47:01 +10:00
YoshiRulz cc4acd9c64 Move Start/StopSound calls from InputPrompt to callers 2020-12-05 07:47:01 +10:00
YoshiRulz 2295d47192 Add superinterface IDialogController for IMainFormForConfig/Tools 2020-12-05 07:47:01 +10:00
adelikat e0c1fc4a4d misc cleanups in Client.Common 2020-12-04 15:39:52 -06:00
BrunoValads 81ef9ed88b
GB layers (#2490)
* Fixed OBJ layer toggle message

(it was using the flag from BG toggle)

* Added hotkey option for GB Window layer toggle

* Added hotkey option for GB Window layer toggle

* GB object viewer prototype [Gambatte]

GPU Viewer add-on to display sprite tiles on the real position, just like what you have for the bsnes core
Has several issues:
- Drawing is identical to the current sprite display, so it doesn't have the transparency it should have;
- Drawing doesn't take priority into account, so overlapping is usually wrong;
- The drawing flickers, probably the way of refreshing (with `.Clear()`) is bad.
2020-12-04 14:37:36 -06:00
alyosha-tas 0aea6191ae GBHawk: HDMA fixes and implement reads for GBC visualizer 2020-12-04 11:20:56 -05:00
YoshiRulz a060c4e600
Fix building on non-AppVeyor machines without breaking AppVeyor
hopefully
2020-12-04 06:12:06 +10:00
zeromus ec61aad159 as requested, try it with netcoreapp3.1 2020-12-03 14:05:00 -05:00
zeromus 0fda93acea revert targetframework on bizhawk.tests too 2020-12-03 13:17:08 -05:00
YoshiRulz c8e10120db
Encapsulate conversion to/from LuaTable, stop passing NLua to Lua libs 2020-12-03 22:54:47 +10:00
YoshiRulz e69cab3297
Cleanup Win32LuaLibraries init 2020-12-03 22:15:07 +10:00
YoshiRulz 76f03a9508
Merge DelegatingLuaLibrary into LuaLibraryBase 2020-12-03 21:37:17 +10:00
YoshiRulz d4349aefd4
Allow ext. tools to recieve an ApiContainer 2020-12-03 18:58:34 +10:00
YoshiRulz 608d7dcff8
Add ApiContainer prop to IExternalApiProvider 2020-12-03 18:46:07 +10:00
YoshiRulz 29bceb272f
Merge MouseWheelTracker from MainForm interface into InputManager 2020-12-03 18:35:24 +10:00
YoshiRulz f6d465a1ac
Move InputApi to Client.Common project 2020-12-03 18:31:45 +10:00
YoshiRulz 6be371aadd
Use callbacks to get mouse pos+buttons to InputApi via InputManager 2020-12-03 18:14:49 +10:00
YoshiRulz 4ade496de5
Move EmuClientApi to Client.Common project 2020-12-03 17:59:30 +10:00
YoshiRulz 56c681ef0c
Use IWindowCoordsTransformer in EmuClient and Input API impl. 2020-12-03 17:50:13 +10:00
YoshiRulz 999df1b041
Extract interface IWindowCoordsTransformer from DisplayManager 2020-12-03 17:48:38 +10:00
YoshiRulz 6b30fb826c
Move ClientLuaLibrary to Client.Common project 2020-12-03 17:35:54 +10:00
alyosha-tas cfbdde4cc7 GBHawk: more hdma improvements 2020-12-01 19:03:11 -05:00
YoshiRulz 239fa0b22c
Rename files of MainForm interfaces to match type name
oops
2020-12-01 02:51:28 +10:00
YoshiRulz 928ea057d8
Enable SA1137 and fix noncompliance (except in Cores)
"Elements should have the same indentation"
2020-11-30 21:36:48 +10:00
YoshiRulz be36c60e9e
Enable SA1208 and fix noncompliance (except in Cores)
"System using directives should be placed before other using directives"
2020-11-30 21:26:36 +10:00
YoshiRulz 1a020ba0f5
Make the getters of the 6 ToolFormBase props protected
and it only cost a callback and a `public new` hack
2020-11-30 20:56:06 +10:00
YoshiRulz 85faec638a
Update or remove comments mentioning GlobalWin 2020-11-30 20:45:21 +10:00
YoshiRulz bf968acd57
Move static GlobalWin.Sound to static Sound.Instance, mirroring Input 2020-11-30 20:42:23 +10:00
YoshiRulz c3a7ec047f
Remove GlobalWin.Config by cleaning up Sound 2020-11-30 20:37:11 +10:00
YoshiRulz 0a9f93c433
Fix encapsulation of Config in FFmpegWriterForm 2020-11-30 20:30:26 +10:00
YoshiRulz 756f9f50e8
Use EmulationApi's config hack in ClientLuaLibrary 2020-11-30 20:19:27 +10:00
YoshiRulz 3b120e7184
Delegate ClientLuaLibrary.GetWindowSize/SetWindowSize to ApiHawk
the impls were the same but for getting the global config
2020-11-30 20:19:23 +10:00
YoshiRulz a393c7d368
Remove weird double-updating of EmuClientApi
changes signatures in IEmuClientApi but they were never meant to be called
outside MainForm anyway
2020-11-30 20:14:28 +10:00
YoshiRulz a1ccac4d67
Delegate ClientLuaLibrary.FrameSkip to ApiHawk
the ApiHawk copy was the bad one
2020-11-30 19:57:13 +10:00
YoshiRulz 7c85aee53b
Init global Input instance from MainForm ctor
* Input.MainFormInputAllowedCallback is now readonly, set in ctor
* call to Input.Adapter.FirstInitAll is also in the Input ctor
2020-11-30 19:48:25 +10:00
YoshiRulz 709d78d8e0
Use local var instead of GlobalWin.Config in Program 2020-11-30 19:30:15 +10:00
YoshiRulz f314aa3d61
Pass global Config to BatchRun/BatchRunner 2020-11-30 19:24:17 +10:00
YoshiRulz 32f571144e
Encapsulate GlobalWin.Config access in Input 2020-11-30 19:21:13 +10:00
YoshiRulz 4e38028b49
Fix typo, global access when global is passed as param 2020-11-30 19:15:59 +10:00
YoshiRulz 453ea2b1bb
Pass globals to DisplayManager as with OSDManager
* moved initialisation of global `OSDManager` to `DisplayManager` ctor again
* `DisplayManager.UpdateGlobals` calls `DisplayManager.OSD.UpdateGlobals`
* goodbye `GlobalWin.Emulator` and `GlobalWin._mainForm` :)
2020-11-30 19:11:59 +10:00
YoshiRulz c991babdce
Use MainForm instead of GlobalWin in Lua internals 2020-11-30 19:03:50 +10:00
YoshiRulz 3ccdfa8289
Pass MainForm to UI helpers instead of using GlobalWin.Sound 2020-11-30 16:44:27 +10:00
YoshiRulz 636a9a4735
Pass a callback to some sound internals to read the global IEmulator 2020-11-30 16:16:22 +10:00
YoshiRulz 6d22cdc15f
Pass global MovieSession from MainForm ctor to Program with an out param 2020-11-30 16:02:48 +10:00
YoshiRulz 3a7ca89311
Remove GlobalWin.InputManager 2020-11-30 15:58:50 +10:00
YoshiRulz a83642fab2
Pass globals to OSDManager via ctor and new UpdateGlobals method
also instantiate OSDManager in MainForm and pass it to DisplayManager because
that's how we did it until recently and it's also just easier
2020-11-30 15:55:23 +10:00
YoshiRulz b9a5c5796d
Pass global InputManager to remaining Virtual Pads controls 2020-11-30 15:43:33 +10:00
adelikat e3f7519e15 replace unnecessary GlobalWin usage in BookmarksBranchesBox.cs 2020-11-29 22:04:00 -06:00
adelikat 792b317118 add Start/StopSound methods to IEmuHawkMainFormToTools interface and use it in tools instead of GlobalWin.Sound 2020-11-29 19:34:57 -06:00
SuuperW ac93f28939 Do not attempt to report >100% seek progress. (This could happen if the user starts a seek which results in loading a savestate past the frame previously being seeked.) 2020-11-29 12:29:38 -06:00
SuuperW e1186d9253 Remove this. It isn't necessary, and is a copy-pasted line from some converted code in commit 2535207a. 2020-11-29 12:29:38 -06:00
adelikat 8d6cb7685e TasClipboardEntry, move some logic to Tastudio, fix filename, and move to Client.Common 2020-11-29 12:25:26 -06:00
adelikat 8e70bece16 TAStudioClipboard - remove unused and dubious ToString() override 2020-11-29 12:16:51 -06:00
adelikat ceade5be5a move some logic from TAStudioLuaLibrary to TAStudio 2020-11-29 12:13:12 -06:00
adelikat 592cedba1d make fields readonly where possible in EmuHawk project 2020-11-29 11:26:41 -06:00
adelikat 488409a2ad MovieZone - remove usage of GlobalWin.Config 2020-11-29 10:57:50 -06:00
YoshiRulz 8bbd6b2d8b
Remove final reference to GlobalWin.Game by hacking an existing hack 2020-11-29 19:15:01 +10:00
YoshiRulz f7a7b722c5
Pass globals to ExternalToolManager via ctor and Restart method 2020-11-29 19:06:45 +10:00
YoshiRulz 84f0d57fd5
Add restarting to ExternalToolManager, called when replacing Config 2020-11-29 18:58:12 +10:00
YoshiRulz bed5142ddc
Make ExternalToolManager not static 2020-11-29 17:30:19 +10:00
YoshiRulz d2c514bc51
Move more ApiHawk impl. classes to Client.Common 2020-11-29 16:50:31 +10:00
YoshiRulz ebef47203d
Allow ApiHawk impl classes to have any param order in their ctors 2020-11-29 16:39:26 +10:00
YoshiRulz 1f9188da5e
Pass global Config and GameInfo to Emu and GameInfo APIs via ctors 2020-11-29 14:26:19 +10:00
YoshiRulz 85d4d5ed4d
Pass global InputManager to JoypadApi via ctor 2020-11-29 14:18:40 +10:00
YoshiRulz 8ad3ea9cc6
Move GlobalWin.GL to MainForm, passing it through from Program 2020-11-29 14:09:37 +10:00
YoshiRulz 7bf879c095
Explicitly pass first Config through SingleInstanceController 2020-11-29 14:05:23 +10:00
YoshiRulz a34dde7c4f
Pass global IGL to DisplayConfig (and then to RetroShaderChain) 2020-11-29 13:59:30 +10:00
YoshiRulz b26aa2e893 Rewrite GlobalWin.GL init with local functions 2020-11-29 13:50:49 +10:00
YoshiRulz 3150cc4493 Remove GlobalWin.IGL_GL, only init OpenTK when using that disp. method
also, if it's too old, dispose it before continuing with fallback
2020-11-29 13:50:49 +10:00
YoshiRulz 60022ab146 Move OpenTK configuration to dedicated static ctor 2020-11-29 13:50:49 +10:00
alyosha-tas f38c75f06d GBHawk: some accuracy improvements 2020-11-28 18:58:33 -05:00
adelikat e0eb572e74 misc cleanups, mostly IDE nags, in files I had open 2020-11-28 14:32:05 -06:00
adelikat bdf1838ac8 pass Config around to various AV writer and form classes, instead of using GlobalWin.Config 2020-11-28 13:57:40 -06:00
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