Commit Graph

20021 Commits

Author SHA1 Message Date
YoshiRulz 52acda9a02
Re-add an assignment in `InputManager.SyncControls` (fixes #3458)
partially reverts 781c152bf
also removed now-unused method `Controller.ForceType`
2022-11-23 15:29:02 +10:00
CasualPokePlayer 3f352792a6 remove unused using from experiments in previous commit 2022-11-22 09:18:51 -08:00
CasualPokePlayer da5fae0b01 make a new "FixedGrowthList" and use it for the StringLogs
this is mostly to workaround OOM issues with VERY large movies (>134217728 frames).
so large just the list of string references is "too big" and exceeds the .net 2GB limit.
even the on disk method fails here, as the offsets list (note, long and reference are the same size) becomes too big
this probably gives a bit of speedup for "normal" movies, as the generous 16MB growth amount would likely be plenty for the movie, although i haven't test this much
2022-11-22 09:10:19 -08:00
YoshiRulz b967e6028d
Fix inconsistent application of colours from GTK theme, if available
still no idea why I can set dark theme on Ubuntu but not Manjaro, but now menus
won't use a white-to-black gradient with white text
2022-11-23 02:51:54 +10:00
YoshiRulz 0711c2b1d6
Also downcase Odyssey² gamedb filename in import line
fixes 5a4dc9fd8
2022-11-23 02:51:49 +10:00
Morilli 589823d009 GPGX: add setting to disable per-line sprite limit
- resolves #3440
- includes manually cherry-picked e0ef0902e96bd9d71cb49c64505e755007e7452c
2022-11-22 14:44:39 +01:00
CasualPokePlayer 248e87b6d1 try to load a different core if an autodetected mame rom ends up failing to load 2022-11-21 18:28:56 -08:00
YoshiRulz 5a4dc9fd88
Downcase Odyssey² gamedb filename to match others 2022-11-21 17:14:29 +10:00
YoshiRulz 937872eaf6
Fix malformed PC Engine gamedb entry
broken since addition in 8295e6d65 ("Sounds" was interpreted as the sysID)
2022-11-21 17:09:02 +10:00
YoshiRulz a5ab31643f
Remove malformed SMS gamedb entry
reverts d6d2e4c6f
(it's missing a tab, plus this is a duplicate of the entry above)
2022-11-21 17:07:18 +10:00
CasualPokePlayer 51826c4c17
Fix wrong MBC5 mapper being given a battery
0x1A is MBC5+RAM, 0x1B is MBC5+RAM+BATTERY
2022-11-19 20:44:55 -08:00
Morilli 0cb63e8d6a BSNESv115+: Implement overscan and aspect ratio correction settings 2022-11-18 13:08:27 +01:00
CasualPokePlayer 0bd182e6cc properly handle "NO GOOD DUMP KNOWN" mame rom hashes
(note, these roms are not actually in the romset, so the singular hash in movies doesn't have to be affected here)
2022-11-17 17:45:49 -08:00
CasualPokePlayer 2804ad3041 fix crashes in mame due to bad single thread handling 2022-11-17 00:45:42 -08:00
CasualPokePlayer d507246033 c# side for previous commit 2022-11-16 21:33:55 -08:00
CasualPokePlayer 44944e1d70 more simple string and double handling, allow SaveRAM usage with different bios files 2022-11-16 21:32:29 -08:00
CasualPokePlayer d0266816a5 Fix #3448. Support MAME 7z romsets 2022-11-16 17:32:20 -08:00
CasualPokePlayer 4479fec74d Add in the actual c# code for 5ae4470466
Apparently forgot to actually add this in for the commit >:
2022-11-16 15:35:37 -08:00
CasualPokePlayer 5ae4470466 Correct floating point arg support with msabi<->sysv adapter
While msabi and sysv do agree what to do with floating point args for 4 floating point args (pass in xmm0-4), they dont agree what to do with mixing
msabi will choose the register corresponding with argument position. so if you have (int foo, float bar), bar will use xmm1
sysv instead will choose the first register available in the group. so with the previous example, you instead have bar using xmm0
the simple solution is to simply prohibit mixed args for now. maybe someday we could support mixing, but that's probably overkill (best use a struct at that point)
2022-11-16 15:26:31 -08:00
CasualPokePlayer 62c3b4b8e3
Use a small dll for handling the msabi<->sysv adapter (#3451)
make a small dll for handling the msabi<->sysv adapter, using only assembly (taken from generated optimized rustc output) and handcrafted unwind information (c# exceptions in a callback seem to work fine in testing)
additionally, allow floating point arguments. this really only needs to occur on the c# side. msabi and sysv agree on the first 4 floating point args and for returns, so no work actually has to be done adapting these
with assembly being used, we can guarantee rax will not be stomped by compiler whims (and avoid potential floating point args from being trashed)
2022-11-16 09:02:13 -08:00
CasualPokePlayer a0de42b1b3 remove struct hack, it's not actually needed
out double is System.Double& while double is System.Double, so it doesn't actually trip paramenter verifier
2022-11-15 01:12:31 -08:00
CasualPokePlayer eec86ad81a Use actual doubles for figuring out aspect ratio
Fixes issues when mame sends over < 1 bounds which round down to 0 with a long cast (resulting in div by 0 exceptions)
Also fix some oopsies with incorrect function signatures.
Remove MAME string docs as they aren't really relevant anymore, as only MameGetString handles lua string handling now
2022-11-15 00:57:30 -08:00
CasualPokePlayer 64044845a6 resolve erroneous LibMAME errors due to mame_lua_get_string returning nullptr with an empty string
(now will only do so on an error)
add back in mame_lua_get_double, to be used to resolve other issues (c# code pending...)
2022-11-15 00:37:09 -08:00
CasualPokePlayer 715f4f497c add some missing mame mnemonics 2022-11-11 08:45:02 -08:00
Morilli c21fedc76a BSNESv115+: add option for disabling ppu sprite limit 2022-11-10 23:22:17 +01:00
CasualPokePlayer 066297d5e7
MAME Waterbox (#3437) 2022-11-10 00:05:25 -08:00
YoshiRulz e7e587d625
Restore old behaviour of "Always use recent path for ROMs"
fixes 41d46dd37, see #1574
2022-11-08 06:30:12 +10:00
YoshiRulz 948084a97e
Use `Movie.NotActive` extension instead of negated `IsActive` 2022-11-07 06:10:37 +10:00
YoshiRulz 84cc71e454
Use `DialogResult.IsOk` extension everywhere and clean up 2022-11-07 06:03:55 +10:00
YoshiRulz 36cb62a792
Create and use `ToolStripDropDownItem.ReplaceDropDownItems` extension 2022-11-07 06:03:55 +10:00
YoshiRulz 5df9879842
Refactor `MultiDiskFileSelector.BrowseButton_Click` 2022-11-07 05:27:15 +10:00
YoshiRulz 04f34ac7af
Add `Util.BreakDebuggerIfAttached` helper 2022-11-07 04:37:34 +10:00
YoshiRulz f1f0f1695c
Encapsulate `OpenFileDialog`/`SaveFileDialog` 2022-11-05 09:10:11 +10:00
YoshiRulz 2db5235319
Cache and reuse `FilesystemFilterSet`s 2022-11-05 09:10:11 +10:00
YoshiRulz 1232157cc1
Improve caching of `FilesystemFilterSet.ToString` 2022-11-05 09:10:11 +10:00
YoshiRulz 1b5ec471e0
Disable SA1015 "Closing generic bracket should be followed by a space" 2022-11-05 09:10:11 +10:00
YoshiRulz c153505b58
Invert some conditionals to reduce nesting 2022-11-05 09:10:10 +10:00
YoshiRulz df63853cd5
Add `IDialogParent` interface to a couple of config dialogs 2022-11-05 09:10:05 +10:00
YoshiRulz 8949b1aa6b
Make sure `CheckLib` in `Program` static ctor disposes GUI properly 2022-11-04 07:08:54 +10:00
YoshiRulz c891cc2cb5
Don't ignore mGBA skip BIOS setting when recording (resolves #2465)
also disable skip BIOS with TAS profile and enable with Casual profile
also removed `DeterministicEmulation ||= !SkipBios`, does it matter?
2022-11-03 12:04:16 +10:00
YoshiRulz 77f824ab55
Clean up `MGBAHawk.DeterministicEmulation` assignment 2022-11-03 11:56:01 +10:00
YoshiRulz 13a01340de
Refactor Libretro ControllerDef generation, fixing input display
see #3360
2022-11-03 11:02:53 +10:00
YoshiRulz 781c152bf6
Remove old ControllerDef copying that was messing with ControlsOrdered 2022-11-03 11:02:52 +10:00
YoshiRulz a8f571f2d6
Reinstate `GameInfo.NullInstance`'s name, and only instantiate it once
reverts 8dcea2470
`PathEntryCollection.RetroSystemAbsolutePath` extension didn't like this, there
may be others, and I don't want to look through them all
2022-11-03 11:02:44 +10:00
YoshiRulz 3e79e68d1d
Dedup in `CheatEdit.GetCheat` 2022-11-02 01:05:12 +10:00
YoshiRulz 414c21609b
Disallow updating cheats when multiple rows selected (resolves #1726) 2022-11-02 01:01:09 +10:00
YoshiRulz 5ae23c63bf
Change "Edit" button in Cheats dialog to read "Overwrite"
kept the mnemonic because idk
2022-11-02 01:00:16 +10:00
YoshiRulz fd2772707b
Update `forms.drawImageRegion` documentation with a diagram
only embeds on TASVideos Wiki, which I held off on updating because there are a
lot of changes and we can do them all at once
2022-10-30 18:19:23 +10:00
CasualPokePlayer 8ee75879e6 Rework MAME integration a bit
The periodic callback is now used as a way to service "commands" sent from the main thread
Upon servicing a command, the mame thread will set the current command to NO_CMD then wait for the main thread allow the mame thread to continue
During this wait, the main thread may optionally set the next command (done here for STEP -> VIDEO), ensuring the next callback will service that command
A dummy "WAIT" command can be sent to trigger this waiting behavior, allowing the main thread to safely touch mame while the mame thread is frozen (important for mem accesses and probably savestates?)

A/V sync is also reworked. We can assume that 1/50 of a second worth of samples will be sent each sound callback. We can also assume 1/FPS of a second worth of time will be advanced each frame advance
So, we can just give hawk 1/FPS worth of samples every GetSamplesSync, if they are available. If we have less (probable on first few frames), we'll just give all the samples, and hope it balances out later.
2022-10-29 17:07:50 -07:00
CasualPokePlayer cc71882059
BSNES Memory Domain Fixes (#3423)
* Use SameBoy submodule symlink for BSNES

* SGB memory domains

* Fix SGB saveram issues (extra data like rtc will be saved correctly now here)

* Various cleanups, avoid unneeded unsafe use, a little better EnterExit use

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2022-10-28 19:22:49 -07:00