Commit Graph

22270 Commits

Author SHA1 Message Date
Morilli c826344637 update snes9x
- closes #4260, closes #4194
2025-03-08 22:20:28 +01:00
YoshiRulz ce21993ec4
Print caught exception in `SavestateFile.Load`
fixes 1c0e72b16
2025-03-08 15:25:29 +10:00
Morilli 1fa31fe0e9 update quickernes
- closes #4243
2025-03-07 22:40:36 +01:00
Morilli 1c0e72b169 catch exceptions in savestate load
see also #2090. This can reasonably catch and handle simple load failures like all waterbox loads and some others.

Not calling the issue fixed because there is more that can be done to prevent cores from trying to load invalid savestates.
2025-03-07 22:23:43 +01:00
feos b0b32bea6a mouse capture: restrict to center
various toolbars may exist near screen edges, we don't want them to be triggered when hawk has "captured" the mouse, especially in fullscreen. I considered taking into account when hawk window is partly offscreen but it's hard to expect anyone would play that way - normal scenario is fullscreen, so screen edges are automatically pushed away from. dialogs covering hawk are even less likely to remain during mouse capture, so we don't care about mouse appearing on them.
2025-03-05 19:47:13 +03:00
feos ca214fc4f0 dsda: actually send -fast 2025-03-05 19:47:13 +03:00
YoshiRulz 957029fc30
Add and use `Insert{Before,After}{,Last}` helpers 2025-03-05 20:09:57 +10:00
CasualPokePlayer 7d876dee2c Fix XkbAllocKeyboard declaration 2025-03-04 16:36:47 -08:00
Morilli 8ba8bd61b4 increase initial toolbox size
also increase image size on high dpi
2025-03-04 19:54:08 +01:00
Morilli 843051a2fd handle dpi properly in NES ppu viewer
- also fixes #4246
2025-03-04 10:35:32 +01:00
Morilli a64d7627ce make UIHelper.Scale* scale with dpi
trust me
2025-03-04 10:30:56 +01:00
YoshiRulz f56cc896d8
Alphabetise lists of cores in `EmulationApi` methods
see 724a7393e
2025-03-04 15:07:42 +10:00
Kevin Watters 443faae403 implement emu.setrenderplanes in EmulationApi for snes9x 2025-03-03 22:37:43 +10:00
YoshiRulz 7f25044498
Improve display of errors from Cheat Code Converter 2025-03-03 13:24:00 +10:00
YoshiRulz fa15e35603
Remove `GEN` `[CoreConstructor]` from PicoDrive32x
fixes a42b25976
2025-03-03 13:03:27 +10:00
feos 11cb444b2c dsda: fix aspect on 3x+ and add pistolstart 2025-03-02 11:13:33 +03:00
CasualPokePlayer 05722664e0 Throw Lua errors on lua cothread they were done on (instead of the main cothread)
Fixes #4252
2025-03-01 22:29:55 -08:00
CasualPokePlayer a42b259762 Stop exposing PicoDrive as a selectable option for Genesis
The core as it is is a very poor choice for Genesis. Much worse compatibility, very noticeably worse audio, and it's not like GPGX is hurting badly in the performance department. It's also very outdated compared to upstream (making these problems much worse than if it was updated). It was only in BizHawk to handle 32X games to begin with (as there aren't many options for 32X to begin with), with Genesis fallback support (without user selectability!) just tacked on "because we can."

Perhaps with a core update it could be more reasonable to allow users to select this, but for now, nope.

Closes #4251, #4250, #4235
2025-03-01 17:56:23 -08:00
Morilli c476dbbf79 draw axis numbers rotated in horizontal tastudio
see https://github.com/TASEmulators/BizHawk/issues/3708#issuecomment-2501398001
2025-03-02 00:34:42 +01:00
feos 5b7e7b4642 dsda: bit closer to vanilla
todo: make these optional
2025-03-01 23:33:11 +03:00
feos 7c5d050cde dsda: expose resolution factor and gamma
see #4236

rename Core to _core since it's private
2025-03-01 20:58:23 +03:00
feos 4a7e0c6008 dsda: fix missing sounds
proper aspect ratio
2025-03-01 17:19:56 +03:00
YoshiRulz f409cc445d
Make Lua `savestate.*` functions return `false` when C# call throws 2025-03-01 09:00:35 +10:00
YoshiRulz 6b4d0faba9
Work around Mono bug (resolves #4248) 2025-03-01 08:52:10 +10:00
feos 905c972738 dsda: parse our own config file
set vanilla res as a start
2025-02-27 23:16:44 +03:00
feos cde108b928 dsda: mouse movement should be accurate now (barring obscure tweaks)
demos still sync btw

horizontal mouse was calibrated for my machine, dunno about others. for me 1-pixel relative movement results in 272-pixel deltas, so I divide it inside the core for now

when the global sensitivity option is there, I'll drop sensitivity syncsettings and rely on client ones that I'll configure to match default dsda sensitivity.
2025-02-26 23:37:23 +03:00
feos dd6beccfb0 dsda warnings 2025-02-26 19:50:16 +03:00
Morilli 927b41bd41 Revert "Set `$(AnalysisLevelStyle)` to 9 to work around SDK bug/footgun"
This reverts commit ae4af29849.
2025-02-26 14:51:37 +01:00
feos f6538289dc dsda: fix lmp import
only tested on doom, no idea if movies for other 2 even exist lol
2025-02-25 23:21:23 +03:00
feos d628f035f7 dsda: commit c_cpp_properties.json 2025-02-25 20:09:20 +03:00
feos 09fcf37d79 meaningless tweaks 2025-02-25 19:19:58 +03:00
feos 5539557b27 dsda: "always run" option
upstream uses a hotkey toggle instead but vanilla didn't have it. even "always run" itself was just a vanilla bug. I don't want to have a special on-the-fly input for autorun toggle, hopefully user either wants to always run + occasional mouse movement, or only run using the proper button
2025-02-25 19:05:33 +03:00
CasualPokePlayer 0311bb5d39 Make mouse capture handle window moving/resizing/focus change, cleanup presentation panel resize handling 2025-02-24 16:09:01 -08:00
feos a2daa48cf4 dsda: actually fix turning for demos 2025-02-24 23:25:51 +03:00
feos 4cf20df155 dsda: pass turning resolution to controller ctor
this allows to properly set available range which makes demos sync again (aside from weapon switching that I broke)
when importing demos we now force shorttics (even tho some source ports can record demos with longtics depending on compatibility level but importing those is for the later time)
2025-02-24 22:02:04 +03:00
YoshiRulz ae4af29849
Set `$(AnalysisLevelStyle)` to 9 to work around SDK bug/footgun
https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/language-rules#option-format
2025-02-25 03:14:25 +10:00
CasualPokePlayer 559093460e Fix some Xlib import definitions 2025-02-24 03:15:47 -08:00
CasualPokePlayer c3b0f46ae3 Make Linux mouse capture work more or less properly
There's 3 approaches here, of which only 1 appears to work more or less correctly

1. Use XFixes "pointer barriers." Introduced in XFixes version 5.0 (end of 2010), these effectively allow 1:1 mapping with Windows ClipCursor, giving behavior BizHawk wants.
2. Use XGrabPointer, with the confine_to argument set to the presentation panel. This mostly works, however, it changes how some events operate and for whatever reason prevents Mono from responding to mouse buttons. This approach can be used with 1. too for a simple warp of the mouse cursor over to wherever the window is.
3. Use Mono's internal CaptureWithConfine function. This is just internally using XGrabPointer with the confine_to argument. Somehow it makes mouse buttons work, but it ends up working too well as it can respond to the menu bar somehow, and interacting with such or the right click menu cancels the grab (seems to be internal Mono code doing such in this case here?).

Note a lot of weirdness with previous code came down to testing being in a VM and mouse integration being enabled. That apparently just prevents any kind of mouse warping from happening so nothing appeared to work correctly. Disabling such allows these approaches to work as above, also makes relative mouse values sane (previous values with mouse integration were completely bonkers).

TODO: Need to check if this works on XWayland (maybe it does?). Also need to refresh mouse capture on window resize and move (needed in general for both Windows and Linux)
2025-02-24 02:23:27 -08:00
CasualPokePlayer 2f2c3e4f68 Try fixing pointer barriers harder (still doesn't work :( ), also fix XI2 raw motion polling (IsNormal was always returning false for whatever reason, seems to work fine with just simple Inf/NaN checks). XI2 raw motion polling however seems to use a far larger scale compared to Windows (seemingly in the hundred thousands??? although this is in a VM so this might just be a quirk of such) 2025-02-23 21:42:30 -08:00
CasualPokePlayer 778c880d54 Try fixing pointer barrier code, also make X errors more verbose 2025-02-23 20:14:59 -08:00
CasualPokePlayer ec66447c20 Restore startup asm version check (accidentally commented out in previous commit) 2025-02-23 19:29:43 -08:00
CasualPokePlayer 2009b24adb Try using pointer barriers for locking the mouse to the window on Linux instead of grabbing the mouse 2025-02-23 19:28:16 -08:00
YoshiRulz 938ac8c7ff
Fix code style warnings in NLua
see 69b923ad5
2025-02-24 10:44:10 +10:00
YoshiRulz 484e5e996b
Mute MEN018 for Virtu
"Use Digit Separators"
see 69b923ad5
2025-02-24 10:36:34 +10:00
YoshiRulz 54d33b09ee
Fix code style warnings in ext. tools
see 69b923ad5
2025-02-24 10:35:05 +10:00
YoshiRulz 5220ed4179
Fix code style warnings in test project when targeting .NET 8
see 69b923ad5
2025-02-24 10:30:00 +10:00
YoshiRulz 48f4a98a61
Remove unused import
not sure why this wasn't being flagged earlier, probably to do w/ recent
$(RunAnalyzersDuringBuild) change
2025-02-24 05:42:55 +10:00
YoshiRulz d4adc8282c
Discard return value from `XCloseDisplay`
fixes c5029cb2b
2025-02-24 05:42:08 +10:00
YoshiRulz 69b923ad55
Make all Analyzers except StyleCop run all the time
see #1813, 4a2627337
2025-02-24 05:39:16 +10:00
YoshiRulz 4a26273379
Disable a bunch of slow Analyzer rules
thanks Morilli for the data
2025-02-24 05:38:53 +10:00