nattthebear
0b432994df
Rework GB GPU memory areas API ( #2566 )
...
* Rework GB GPU memory areas API
All cores can easily implement it now with no copying or awkward garbage. Also fix the scanline callback and printer callback in Sameboy, which had been broken for some time.
Fixes #2564
2021-01-14 19:17:40 -05:00
YoshiRulz
e71506ac6a
Refactor OpenTK gamepad management (the static stuff)
...
maybe fixes #2429
2021-01-15 05:39:24 +10:00
YoshiRulz
d2fb794340
Pass forced core through other paths in RomLoader
...
fixes c0b6bf61b; not sure if this matters currently (PCE-CD maybe?) but it may
become important if we add more alternate cores
2021-01-15 04:33:14 +10:00
alyosha-tas
e65e77e7cd
GB GPU Viewer: Bounds check tile drawing for OBJ window, seems to resolve random crashing
2021-01-14 09:50:46 -05:00
YoshiRulz
c0b6bf61b1
Pass through queued movie's Core header to RomLoader and load only it
2021-01-14 03:52:32 +10:00
alyosha-tas
428e2fe006
GBHawk: Onl save audio cycles in SubGBHawk where it's needed, fixes state integrity checker in TAStudio
2021-01-13 09:11:40 -05:00
alyosha-tas
72e8fa031e
Fix for state gap when frame advancing and painting input ( #2563 )
...
* Fix for state gap when frame advancing and painting input
* simplify
2021-01-12 20:32:44 -06:00
nattthebear
39c0011d09
Move around some error messages
...
See #2561 . From the point of view of romloader, this is all pretty simple: It asks for a particular settings type. It should either get null back (indicating there was nothing, use defaults), or an object of that type. Providing a completely unrelated type is baloney. So this check here is a stupid defensive check that shouldn't be needed. MainForm cannot be trusted.
2021-01-12 09:32:58 -05:00
alyosha-tas
47c98c6a5e
GBHawk: fix debugger disassembler
2021-01-10 14:02:01 -05:00
YoshiRulz
f79b7e5be4
Fix order of arguments to GetRelativePath
...
These have been backwards since the feature was added (5f2e2f39b
). Does the
Windows implementation of GetRelativePath not return weird results?
2021-01-10 22:43:40 +10:00
YoshiRulz
ea0d6b04d8
Fix code style
2021-01-10 19:30:18 +10:00
alyosha-tas
bcee6d4d39
Fix syncless recorder
2021-01-09 22:20:16 -05:00
alyosha-tas
a67d01f04d
Update cheat inde on button press: Fixes #2550
2021-01-09 20:05:10 -05:00
nattthebear
75a655fdd8
Fix screwup in romloader xmlgame handling
...
This may have only affected Saturn in practice. Whoops! Fixes #2557 .
2021-01-09 11:45:16 -05:00
YoshiRulz
9ed56cdc6e
Remove cached global ICodeDataLogger (emu core) in CDL ( fixes #2553 )
...
fixes 234642ed0; this was never going to work because the setter will only be
called by `ServiceInjector.UpdateServices` during a core restart, at which time
the previous core should already have been `Dispose`d. If you want to call
`.SetCDL(null)` on the core when restarting (even though closing the CDL window
already does that three times?), do it in the core's `Dispose` implementation.
2021-01-09 23:13:36 +10:00
YoshiRulz
71ad6deff3
Ensure existing global IEmulator is disposed when reassigning it
2021-01-09 23:02:22 +10:00
YoshiRulz
5078ac392b
Simplify null-safety checks in GetEnumFromDescription<T : Enum>
2021-01-09 05:13:57 +10:00
YoshiRulz
979afcb54d
Do something cleverer than throwing NRE in a few places
2021-01-09 05:08:09 +10:00
YoshiRulz
e976e0c2ad
Use nameof in DeepEquality, fix typo
2021-01-09 04:54:02 +10:00
nattthebear
ecafbde89d
Let's not break the entire fucking program brahs
2021-01-08 13:41:15 -05:00
YoshiRulz
0272684cdf
Fix domain names in GBHawk CDL ( fixes #2552 )
...
fixes 7e00b7892
2021-01-09 02:55:14 +10:00
nattthebear
5a8c58de3c
Look mom, I'm using the new C#
2021-01-08 08:52:24 -05:00
nattthebear
cbdcba9643
Fix BS93 garbage
...
Probably. Not sure what this does anymore, but 4 is right and 6 is wrong.
2021-01-06 11:20:37 -05:00
YoshiRulz
0ea597ded5
Fix GBA Game Shark code conversion ( fixes #2545 )
2021-01-06 18:47:05 +10:00
YoshiRulz
fa5ed36f63
Add boilerplate for unit testing GameSharkDecoder
...
should fail without the following commit
2021-01-06 18:46:36 +10:00
YoshiRulz
ab3846906f
Use type checks for DecodeResult/InvalidCheatCode
2021-01-06 17:25:05 +10:00
YoshiRulz
966b8a974a
string.Trim doesn't remove NUL
...
I'm also skeptical of the `if (bs93/*=br.ReadBytes(6)*/ == "BS93") { ... }` just
after this, it doesn't seem the condition can ever be met...
2021-01-06 16:54:23 +10:00
YoshiRulz
c1a734a04d
Update the NuGet deps which should be safe to update
2021-01-02 20:31:54 +10:00
YoshiRulz
4e668612c7
Convert LoadCueJob.TrackInfo to a readonly struct
2021-01-02 20:15:17 +10:00
YoshiRulz
84a6c5a426
Convert CUE_File.Command.* to readonly structs with a superinterface
2021-01-02 20:05:06 +10:00
YoshiRulz
277f57eebd
Convert CompileCueJob.CompiledCueIndex to a readonly struct
2021-01-02 18:35:00 +10:00
YoshiRulz
d87066c634
Convert Blob_ECM.IndexEntry to a readonly struct
2021-01-02 18:14:12 +10:00
YoshiRulz
bb1f7da864
Remove duplicate class Blob_WaveFile.Blob_RawFile
2021-01-02 17:52:23 +10:00
YoshiRulz
449130e081
Move inner classes of Disc up a level, make Disc not partial
2021-01-02 17:40:39 +10:00
YoshiRulz
e24c4c3971
Move CDFS (iso-parser) to new external project, update upstream info
2021-01-02 17:34:13 +10:00
YoshiRulz
333cae15cd
Convert IN_* props of jobs to ctor-initialised readonly fields
2021-01-02 16:10:57 +10:00
nattthebear
f284fda3a6
Object.Equals(object) overrides should not throw
...
Especially not if you pass null. null is simply not equal to this, that's all. The post condition is satisfiable; you can return false.
2021-01-01 17:06:59 -05:00
YoshiRulz
51b62629c6
Enable nullability in most of the remaining files in BizHawk.Common
2021-01-02 02:39:13 +10:00
SuuperW
021d8e6e92
Fix: LuaSandbox wasn't reverting current directory after sandboxed operations. Appears to be a regression from commit 5e89e56
.
2021-01-01 06:34:05 -06:00
alyosha-tas
89c69c382c
GBHawk: implement LCDC write glitch for gbc-acid-hell
2020-12-30 19:31:30 -05:00
YoshiRulz
90c0214d5e
Add prop IMemoryApi.MainMemoryName, further delegate mainmemory lib
2020-12-30 16:02:05 +10:00
YoshiRulz
1619b33e8e
Fix overlapping/duplicate controls in FirmwaresConfig's menu on Mono
2020-12-30 01:25:30 +10:00
YoshiRulz
a80dbfa76b
Fix crash when clicking on column headers in FirmwaresConfig on Mono
2020-12-30 00:07:47 +10:00
YoshiRulz
d0edf350f2
Finish my nullability pass over ControlExtensions.cs
2020-12-30 00:03:39 +10:00
YoshiRulz
2de32ed59a
Move more sound classes to Client.Common
2020-12-29 17:04:02 +10:00
YoshiRulz
9cfe9485ef
Fix covariant arrays (passing ASupertype[] where AType[] is expected)
2020-12-29 16:53:31 +10:00
YoshiRulz
206a3e30c8
Cleanup instantiation of FirmwaresManager and PathConfig
...
and remove unused MainForm interface prop
2020-12-29 16:26:01 +10:00
YoshiRulz
18ebfecc97
Move GuiApi (impl.) to Client.Common
2020-12-29 15:53:47 +10:00
YoshiRulz
7edf3b36ad
Extract a tiny interface from DisplayManager for ApiHawk
2020-12-29 15:52:57 +10:00
YoshiRulz
0704db5940
Move OSDManager to Client.Common and move types to own files
2020-12-29 15:40:13 +10:00
YoshiRulz
23a8387dc1
Replace IBlitterFont w/ the type wrapped by its sole inheritor
2020-12-29 15:36:37 +10:00
YoshiRulz
47670714b5
Remove WinForms dep from GuiApi (impl.)
2020-12-29 15:08:01 +10:00
YoshiRulz
8e67d82bd5
Rename file to match type name
2020-12-29 15:00:55 +10:00
YoshiRulz
f431faf65c
Move some DiscoHawk logic to Emulation.DiscSystem
2020-12-29 15:00:25 +10:00
YoshiRulz
1a21765be6
Fix assembly resolution in DiscoHawk on Mono
...
without this the program wouldn't open at all, I assume all of its actual
functions will just workTM now
2020-12-29 01:33:57 +10:00
YoshiRulz
a0c7e9c7fb
Fix non-string resource in DiscoHawk
2020-12-29 01:26:56 +10:00
YoshiRulz
c0cf40b68e
Check for MAME's lib before instantiating the MAME core ( fixes #2538 )
2020-12-29 01:04:36 +10:00
nattthebear
f4e98fd9bd
Refactor ZWinderBuffer to allow use of arbitrary backing Streams ( #2536 )
2020-12-27 18:36:42 -05:00
YoshiRulz
bcf5347823
Use C# 9 improvements to switch / "pattern matching"
2020-12-28 00:07:06 +10:00
YoshiRulz
96f9e8f6e4
Encapsulate MessageBox.Show using IDialogController and some helpers
...
a lot of the calls to `DialogController.ShowMessageBox` from `ToolFormBase`
inheritors could be replaced with `this.ModalMessageBox` (i.e. add self as
parent window)
2020-12-28 00:03:00 +10:00
YoshiRulz
9cafddb1e0
Minor cleanup to improve readability
2020-12-28 00:00:39 +10:00
SuuperW
a928d1887f
fix: Attempted to evict state 0, and attempted to modify collection while enumerating
2020-12-25 09:59:32 -06:00
YoshiRulz
62f90f11f2
Make anything inheriting FormBase slightly less ugly on Linux
2020-12-26 00:44:21 +10:00
alyosha-tas
515f5cf9b0
GBHawk: update RAM state for GBA mode
2020-12-24 19:45:44 -05:00
YoshiRulz
42fc895e12
Update EmuHawk project file
...
these files were removed in b9b1e2d23
2020-12-23 16:46:03 +10:00
YoshiRulz
b9b1e2d237
Move Quantize to new external project, update upstream info
2020-12-23 16:37:47 +10:00
YoshiRulz
faba9035b7
Update attribution of ported code
2020-12-23 15:55:50 +10:00
alyosha-tas
28c35a6274
GBHawk:set initial HRAM to 0, this provides consistent sync when clearing RAM on console, where as 0xFF does not
2020-12-22 20:20:00 -05:00
YoshiRulz
60d2bfa85c
Bump C# language level for ReSharper/Rider
2020-12-22 20:07:35 +10:00
YoshiRulz
b9c9144358
Fix new dep not being copied to output, causing crashes
...
fixes 1e37350e9
I already fixed this before pushing but forgot to stage it
2020-12-22 19:57:55 +10:00
YoshiRulz
1e37350e99
Use NuGet package instead of copy-pasted code in BizwareGL/Borrowed
...
Our copy was equivalent to version 1.0.0 + a patch which allowed Stream instead
of requiring a filename, so I've used 1.0.2 as it has the author's
implementation of the same feature.
There are more recent versions available (note, 1.0.2 isn't for .NET Core).
NuGet: https://www.nuget.org/packages/Cyotek.Drawing.BitmapFont
Project repo: https://github.com/cyotek/Cyotek.Drawing.BitmapFont
2020-12-22 19:48:50 +10:00
YoshiRulz
a5fd5f5d78
Return the tool from IToolApi.GetTool instead of its type
...
also affects Lua client.gettool; this has been broken for quite a while
2020-12-22 18:47:32 +10:00
YoshiRulz
5a098055d7
Fix Lua client.createinstance calling the wrong ApiHawk method
...
fixes e6cb74d31
2020-12-22 18:46:42 +10:00
YoshiRulz
03b4ae18e0
Move Virtual Pads schemata to Cores
2020-12-22 18:37:27 +10:00
YoshiRulz
790a09067e
Cleanup LINQ in VirtualpadTool.CreatePads
2020-12-22 18:34:27 +10:00
YoshiRulz
9124b0f3b5
Pass MessageBox.Show to Virtual Pads schemata as callback
2020-12-22 18:18:40 +10:00
YoshiRulz
0ff60220f7
Use enum to represent button images in Virtual Pads schemata
2020-12-22 15:35:26 +10:00
YoshiRulz
50b17096e1
Remove WinForms dep from Virtual Pads schemata
2020-12-22 14:07:28 +10:00
YoshiRulz
9168b59382
Add base interface for *CheckBoxEx and *RadioButtonEx controls
2020-12-21 16:58:49 +10:00
nattthebear
56b158e72a
minor comment clarification
2020-12-20 21:06:22 -05:00
SuuperW
b5b1e17851
Fix eviction logic for _gapFiller. (we were attempting to remove the wrong value from StateCache, and also weren't checking for reserved)
2020-12-20 18:06:50 -06:00
SuuperW
01bcf22802
Deal with this TODO. Removing from the StateCache here was removing extra frames. (frames between the old last gap frame and new last gap frame which were in another buffer)
2020-12-20 18:04:02 -06:00
nattthebear
55c08dc77f
Revert "misc cleanups in neshawk boards, mostly removing redundant else's"
...
This reverts commit 2b5d0b6219
.
A lot of these make things harder to read:
- Extra empty lines in large switch stacks mean they're more likely to go off one screen
- `if` and its condition on the same line is super hard to read, please never do that. (Are the extra empty lines an attempt to mitigate the above)
- Removing terenaries obscures intent, and now there's more copy paste than before
- """Redundant""" else clauses on if...return kept things nice and lined up.
That was a huge churning diff with no value; let's stop it from spreading.
2020-12-20 15:26:08 -05:00
SuuperW
3d84812341
add a Lua method to get inputs from the movie ( #2526 )
2020-12-20 13:16:28 -06:00
adelikat
2b5d0b6219
misc cleanups in neshawk boards, mostly removing redundant else's
2020-12-20 13:12:51 -06:00
nattthebear
374f646f75
CoreInventory tweaks
...
When constructing a core using ConstructorInfo.Invoke, any exceptions thrown by the core are packaged inside TargetInvocationExceptions. This has no value to us -- the fact that reflection is used is an implementation detail, and it breaks checking specific exceptions for specific information. Accordingly, consumers have to deal with e.InnerException checks. Fix this up so that we only expose the actual exception thrown.
In addition, undo a bad change in 6225e7854b
that made the entirety of CoreInventory nonfunctional.
2020-12-20 09:15:22 -05:00
adelikat
7bb5506ba8
remove 2 deprecated nes library methods (add/remove game genie), they were marked deprecated for enough releases that I think we can go ahead and remove them
2020-12-19 20:17:26 -06:00
adelikat
6225e7854b
a few cleanups in CoreInventory.cs
2020-12-19 20:07:09 -06:00
adelikat
68f9ac9730
remove unused usings in Emulation.Cores
2020-12-19 20:03:37 -06:00
adelikat
aaa1c8e7a8
AutofireController - remove autofire flag that was always true
2020-12-19 18:55:22 -06:00
adelikat
c730a78994
remove redundant null check before assigning null
2020-12-19 13:43:04 -06:00
SuuperW
ec5e88c808
fix: loading a tasproj wouldn't set autofire (despite the gui showing it did)
2020-12-19 13:42:10 -06:00
alyosha-tas
3cc9684ebd
GBHawk: better initial RAM state
2020-12-17 21:02:41 -05:00
adelikat
fe5655d1e3
misc cleanups in BizHawk.Common
2020-12-15 17:54:44 -06:00
adelikat
cb6ef03982
use explicit private/internal modifiers
2020-12-15 16:49:23 -06:00
adelikat
b83556fc6f
make fields readonly where possible
2020-12-15 16:00:55 -06:00
adelikat
213729550d
remove redundant array initializers
2020-12-15 16:00:55 -06:00
nattthebear
eeca40e072
libsnes: Cache region from core once at start
...
The region value in the comm struct is set once and then gets wiped out later. I don't know what wipes it, but so many things have their hands on that, it's not surprising. Someone knew about this and handled _mapper appropriately, but not _region.
Fixes #2503
2020-12-15 08:51:08 -05:00
alyosha-tas
a8e2a420f0
GBHawk: cleanup
2020-12-14 19:32:22 -05:00
alyosha-tas
08f1b69197
GBHawk: prep for future audio work
2020-12-14 19:30:22 -05:00
alyosha-tas
3df6dfb350
GBHawk: update clearing screen for subgbhawk and linked modes
2020-12-14 11:41:19 -05:00
alyosha-tas
b85e7cac2c
O2; set released to true
2020-12-14 11:40:23 -05:00
nattthebear
1c27943707
Make SNES rom memory domain writeable
...
Use at your own risk
2020-12-13 20:11:58 -05:00
nattthebear
fbee96c76b
GPGX: Allow writing to rom memory domains
...
Don't let the diff fool you, a massive amount of work went into making this possible.
2020-12-13 19:49:04 -05:00
nattthebear
72ea5ce866
Waterbox: Allow SEH unwinding through guest calls. ( #2519 )
...
The goal of the separate stacks was to allow this, but I never quite finished the job. Now, when a SEH exception (generally a Rust panic in a guest syscall handler, or a C# Exception in a callback) tries to unwind through guest code, it works. Note that we don't actually unwind the guest stack, as there's nothing useful to be gained from that; When an emulator core throws an exception like this, it should be considered completely hosed. Throw it out and get a new one.
There were two bugs stopping this from working.
First of all, we had custom thunks that lacked sufficient unwind information for RtlUnwind to get through. For the sysv <-> msabi adapter, this was fixed by making it regular Rust code instead of hand assembled junkus. So the compiler generates valid unwind information for all of that. Then we just JIT a small stub on top in the MsHostSysVGuest code, which needs no unwind information because it won't throw an exception itself and transparently passes execution to something with valid unwind information without invalidating that information. (NB: Clr JIT stubs use the same strategy.) For the host <-> guest stack transition code, a small hand generated unwind stub was added to interop.s that is registered with `RtlAddFunctionTable`. I've seen the unwind work successfully without this second set of unwind information, but better safe than sorry.
Secondly, our misuse of SubSystemTib caught up with us. It's an old field, allegedly from OS/2, that we repurposed to hold TLS information needed for the waterbox stack transitions. Most people think nothing uses it any more, but in fact if it's set to a non-NULL value, but doesn't contain valid information, `KERNELBASE!GetModuleFileNameW` will crash when it tries to get a module name from there. The fix here was to simply tighten up our usage of SubSystemTib: We were already nulling it out when returning from guest code, but not when calling back to host code in guest code.
Fixes #2487 . Unwinding of this sort has never worked well in waterbox; the reason why that issue is more recent is that the particular reproducing case of firmware didn't cause an exception in a callback in older code; the exception happened in pure managed code.
2020-12-13 19:12:16 -05:00
YoshiRulz
fa6fd88d62
Import and use OSTailoredCode in DiscoHawk program class
2020-12-14 06:40:06 +10:00
YoshiRulz
24f90c922f
Fix incorrect import
...
I blame Rider
2020-12-14 06:33:46 +10:00
adelikat
28f161ce18
remove unnecessary string interpolation in a few places
2020-12-13 12:12:42 -06:00
adelikat
10d4f66248
Hex Editor - some small cleanups
2020-12-13 11:44:10 -06:00
nattthebear
2f2f104e3d
Update nyma cores to Mednafen 1.26.1
...
See Mednafen release notes for full changes. Mostly just Sega Saturn stuff.
Closes #2464
Closes #2162
2020-12-12 10:50:18 -05:00
alyosha-tas
4447d5ddc7
GBHawk: bug fix, initial ram change, and double speed mode input dumping
2020-12-09 22:54:12 -05:00
Andrew Cook
58cbec6dd6
[PSX] Make Octoshock more debuggable ( #2508 )
...
* [PSX] Bodge in a system bus memory domain
Fixes: debugger window crashes when adding a breakpoint
* [PSX] Use Octoshock's built-in disassembler
* [PSX] Add support for execute memcbs to the core
* [PSX] Have memcbs include actual values
* [PSX] Use SafeHandles instead of raw pointers
* [PSX] Use core's internal peek and poke functions for System Bus
* [PSX] Move memory maps into IDebuggable impl to be next to memory map hooks
* [PSX] Revert using SafeHandles
* [PSX] Fire execution callback after trace callback instead of at end of fetch
2020-12-08 11:34:24 -06:00
alyosha-tas
e81fa92f80
GBHawk: forgot a commit
2020-12-08 11:04:03 -05:00
alyosha-tas
401d635afc
GBHawk: properly fade to white in GBC mode
2020-12-08 10:41:37 -05:00
zeromus
28af57de18
fix mistake in libsnes CARTROM-D CDL block
2020-12-07 15:55:15 -05:00
alyosha-tas
699fb1171c
GBHawk: more mode 1 work
2020-12-06 19:39:25 -05:00
alyosha-tas
a46ffefc77
GBHawk: mode 1 overhaul, fixes several bugs
2020-12-06 15:50:21 -05:00
zeromus
96aa3e85c0
libsnes - remove pointless registers
2020-12-05 23:37:16 -05:00
zeromus
f580773342
add CARTROM-DB and CARTROM-D blocks to libsnes CDL
2020-12-05 23:37:16 -05:00
alyosha-tas
b7c821f8d6
GBHawk: mode1 bug fix
2020-12-05 19:32:34 -05:00
YoshiRulz
877c11d5f9
Merge UpdateChecker.ParseVersion into VersionInfo.VersionStrToInt
2020-12-06 07:35:12 +10:00
YoshiRulz
66e0d4b214
Misc. cleanups in VersionInfo
2020-12-06 07:28:31 +10:00
YoshiRulz
508dc4a9d9
Use readonly instead of const in VersionInfo
2020-12-06 07:28:23 +10:00
YoshiRulz
9dcc8f56f4
Move VersionStrToInt helper to VersionInfo
2020-12-06 07:27:54 +10:00
YoshiRulz
98e2d494a2
Bump supported Windows versions
2020-12-06 07:12:27 +10:00
YoshiRulz
eeae3f023f
Merge Sound.Instance into MainForm.Sound and pass back to Program
...
now I don't have to feel bad about sweeping a global under the rug
2020-12-06 05:59:36 +10:00
YoshiRulz
cf901753ba
Update Lua libs' ApiContainer when updating services
...
I don't think this mattered unless the tool restart was triggered by reloading
the rom with client.reboot_core(), which in my defence has always been jank
2020-12-06 05:41:58 +10:00
YoshiRulz
febd4f1340
Remove unused prop EventsLibrary
2020-12-06 05:34:46 +10:00
YoshiRulz
ce7aa1ff64
Convert abstract class LuaLibraries to an interface
2020-12-05 07:51:14 +10:00
YoshiRulz
e42a021215
Move props from LuaLibraries to Win32LuaLibraries
2020-12-05 07:51:11 +10:00
YoshiRulz
c46719c602
Do type checks on LuaConsole.LuaImp
...
this is more safe than is strictly necessary but it's not really less code to
use a direct cast
2020-12-05 07:51:08 +10:00
YoshiRulz
bf116f3ecf
Inline LuaLibraries.RunningScripts
2020-12-05 07:51:05 +10:00
YoshiRulz
c3c02eaad3
Inline LuaLibraries.EnableUpdate/SupressUpdate
...
"suppress" isn't even speled corectly
2020-12-05 07:51:02 +10:00
YoshiRulz
e4a0175351
Extract interface from NamedLuaFunction
2020-12-05 07:50:59 +10:00
YoshiRulz
8f10ce66a6
Merge EventsLuaLibrary.RegisteredFunctions into Win32LuaLibraries
2020-12-05 07:50:56 +10:00
YoshiRulz
6aefa75cff
Add helpers for manipulating NamedLuaFunctions
2020-12-05 07:50:53 +10:00
YoshiRulz
3024bc0d0f
Inline some methods from EventsLuaLibrary into Win32LuaLibraries
2020-12-05 07:50:50 +10:00
YoshiRulz
a54aa0706d
Deprecate emu.getluacore in favour of new func client.get_lua_engine
2020-12-05 07:50:46 +10:00
YoshiRulz
f57897515e
Add prop EngineName to abstract class LuaLibraries
2020-12-05 07:50:43 +10:00
YoshiRulz
89a66563f1
Cleanup FormsLuaLibrary.WindowClosed and usages
2020-12-05 07:50:40 +10:00
YoshiRulz
d51f9c3e88
Use LINQ instead of dumb in FormsLuaLibrary implementations
2020-12-05 07:50:37 +10:00
YoshiRulz
30d9a8b458
Inline Designer and resource files for LuaCanvas
2020-12-05 07:50:33 +10:00
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