Commit Graph

4878 Commits

Author SHA1 Message Date
feos 770c2954b1 dsda: we don't need reboot for settings yet 2025-04-19 23:07:01 +03:00
feos 45e16c0ec2 dsda: pass all non-sync settings to the core once they change 2025-04-19 21:44:15 +03:00
Morilli 9d80ea12b3 fix O2 mnemonic lookup
fixes a41817b703
2025-04-19 17:49:41 +02:00
YoshiRulz a41817b703
Prevent devs from setting '.' as a button's mnemonic
see c2ba2d7d4, #4217
2025-04-19 20:49:05 +10:00
feos c2ba2d7d4a mnemonics: comma means no input
TODO: unit test
2025-04-19 09:28:15 +03:00
Morilli 508aaa4400 add additional #if-directives 2025-04-18 19:45:12 +02:00
Morilli 7adc5619d7 remove redundant control overloads
no longer necessary since c# language version 10
2025-04-18 18:34:47 +02:00
YoshiRulz 0ab22359e1
Make `CustomCollectionTests.TestSortedListRemoveAfter` generic 2025-04-16 23:47:01 +10:00
YoshiRulz 3017459a3a
Mute remaining MSTest usage warnings 2025-04-16 23:35:16 +10:00
YoshiRulz 1fb2daaac0
Adopt new assert methods for exceptions 2025-04-16 23:35:16 +10:00
YoshiRulz ac95bf49bc
Fix swapped actual and expected values in `ZwinderStateManagerTests` 2025-04-16 23:35:16 +10:00
YoshiRulz 85dd9c816a
Bump MSTest to 3.8.3 and enable its new Analyzers 2025-04-16 23:12:56 +10:00
YoshiRulz aea450542a
Don't need this partial config migration anymore 2025-04-15 20:56:44 +10:00
YoshiRulz a88ba40bb5
Simplify some save slot UI event handlers 2025-04-15 20:50:43 +10:00
feos 1b301229ce Revert "uae: use existing thing instead of GetFullName()"
This reverts commit 13f49a1e3f.

fixed GetFullName() instead
2025-04-13 23:42:19 +03:00
feos 6dccb759cb Config.MainFormMouseCaptureForcesTopmost (config -> display -> window)
useful when some obscure window can overlay bizhawk while in mouse capture mode if the hidden mouse pointer is too close to it (pop-up panel on the edge of the screen in my case). topmost+fullscreen makes those unreachable, but automatic topmost is set to false since normally it's potentially bad
2025-04-13 23:31:17 +03:00
feos f3847c881d `Toggle Stay on Top` hotkey 2025-04-13 22:47:28 +03:00
CasualPokePlayer ca8bf2fb49 fix bsnescore and snes9x rompath usage (matches behavior before, maybe this should be changed but should be slightly more sensible now); remove unused imports 2025-04-13 11:12:45 -07:00
CasualPokePlayer cb50a24c0c Make RomPath consistent between xml and not xml
Previous implementation was broken and differed between the two in practice in the case of archives. Standard single file just passed archive loaded, without archive binding info. Xml case was even more nonsense, giving a completely nonexistent path using the internal archived file name. RomPath now will properly report the binding info in the case of archives. Cores should be very careful with using RomPath with file apis, as the | used for binding info is not a valid file char and will throw most file apis (some cores were already doing this, I've fixed most of the cores not doing so save for UAE and DSDA).

TODO: Need to fix the edge case of the file being in the same archive as the xml (represented specially in xml and that code path seems to already been broken)
2025-04-13 01:19:44 -07:00
feos 75fc58041e bind mouse capture to middle mouse button
pretty standard across emus that do this upon hotkey
2025-04-13 10:44:59 +03:00
feos 13f49a1e3f uae: use existing thing instead of GetFullName() 2025-04-13 08:48:21 +03:00
Morilli bf1930c3ff evict savestates on branch update 2025-04-12 23:55:12 +02:00
Morilli f20d09c8c1 fix marker state eviction logic
yeah this never worked
2025-04-12 22:55:08 +02:00
Morilli 52f08a9a6c cleanup TasView_CellDropped 2025-04-12 22:53:21 +02:00
YoshiRulz 1983c9ce08
Reflow single-line enum definitions 2025-04-12 20:26:57 +10:00
Morilli cd699d7c52 fix separator conflict in mame dipswitch option code
"@" was used as part of a description string, breaking the parsing. Surely no description includes a newline... (is there a better way to do this?)

- closes #4288
2025-04-12 06:48:18 +02:00
YoshiRulz d94fb910c7
Fix sysID in error dialog from `.xml` load failure
I think this predates the multi-disk bundler lmao
2025-04-12 01:33:05 +10:00
YoshiRulz 6c0f2a0ebf
Restore import in `TasMovie.cs`
reverts e672cc4cd
fixes 48c545a06
2025-04-12 01:13:27 +10:00
CasualPokePlayer 48c545a063 Revert "don't reserve branch frame savestates"
This reverts commit 8d066ff295.
2025-04-11 06:45:06 -07:00
Morilli e672cc4cd8 remove unused using 2025-04-11 14:32:47 +02:00
Morilli e32ec48c8a optimize tas history SetRedoLog allocation 2025-04-11 14:18:32 +02:00
Morilli 8d066ff295 don't reserve branch frame savestates
There was no eviction logic so the reserved frames would accumulate and never be cleaned, leading to continuously increasing memory usage.

Additionally I don't know why they would need to be reserved in the first place
2025-04-11 14:14:32 +02:00
YoshiRulz a09803e793 Copy metadata to linked and subframe cores from base core 2025-04-11 13:09:43 +10:00
YoshiRulz 5571d2e2a6 Update author/source metadata for several cores where it's missing
see #4168
2025-04-11 13:09:43 +10:00
YoshiRulz 6e63322f3f
Fix rewind indicator not being updated on core close
fixes eb7296dcd
2025-04-10 21:35:53 +10:00
feos 590d6bdc01 dsda: split out common buttons from players and only send them once 2025-04-09 21:45:40 +03:00
CasualPokePlayer d9f2ce45fb Add CD WORD RAM (2M) to exposed Sega CD memory in RetroAchievements 2025-04-09 10:57:24 -07:00
feos efaa313d01 dsda: carry fractional x mouse movement for shorttics 2025-04-09 20:32:46 +03:00
feos 93bc50288f dsda: fix horizontal mouse range
the core uses 2 bytes, but if we use that range then raw mouse input is automatically recalibrated somehow and sends values multiplied by 272. that way maximum actual value is 120 (after dividing the range cap by 272), which is even more limiting than shorttics. and min value is 272 itself, which is not very useful if we have to divide it, because we need it to be 1!

the range of [-180, 180] is somehow the highest range that still gives minimal movement of 1, while providing maximum room for bigger movement.
2025-04-09 19:37:31 +03:00
feos 0f0d84489f Revert "mouse capture: restrict to center"
This reverts commit b0b32bea6a.

see commit discussion
2025-04-09 19:08:02 +03:00
feos d88f70aba5 dsda: x-mouse strafing 2025-04-09 19:04:47 +03:00
YoshiRulz da62f29d70
Add host mute indicator to status bar (see #2308) 2025-04-09 21:21:11 +10:00
YoshiRulz eb7296dcd5
Add rewind indicator to status bar (resolves #2308) 2025-04-09 21:19:05 +10:00
YoshiRulz 1d6583e42d
Un-mark DSDA-Doom as released 2025-04-09 14:32:38 +10:00
YoshiRulz 2f12b1efcc
Remove unused import
fixes 06bf689e8
2025-04-09 14:01:46 +10:00
YoshiRulz 06bf689e8d
Fix bank switching in NesHawk's MMC5 impl. w/ 128 KiB WRAM 2025-04-09 13:52:58 +10:00
feos f58644cb5a dsda: make strafe50 possible
in vanilla doom, turn key + strafe key = strafe in the direction of the turning key. but if directional strafe key is added to the mix, both strafe speeds are ADDED TOGETHER. on top of that, max strafe speed is max vertical movement speed (50), NOT the speed you get if you strafe while holding the run key (40). all of this makes strafe50 possible in vanilla, and turning is impossible at that time (because strafe key turns turning into strafing).
2025-04-08 22:49:56 +03:00
feos ffb1af4902 dsda: option to show input history 2025-04-08 22:49:56 +03:00
YoshiRulz 967ae76dfd
Make SNES layer hotkeys work for new BSNES 2025-04-08 15:45:10 +10:00
YoshiRulz 28264c6dee
Set core icon for new BSNES 2025-04-08 15:36:37 +10:00
YoshiRulz 57d612f4b4
Allow NesHawk to load MMC5 w/ 128KiB WRAM from NES 2.0 headers
don't think this is working correctly but it doesn't crash
2025-04-08 14:07:10 +10:00
YoshiRulz 60fdcb3f72
Fix parsing of PRG-/CHR-ROM size from NES 2.0 headers (NesHawk) 2025-04-08 12:24:54 +10:00
feos dd28599451 dsda: show_messages setting 2025-04-05 21:54:07 +03:00
feos ba48066748 dsda: automap controls (and live gamma toggle)
limited to vanilla functionality
currently only works for doom, will require refactoring to work universally
2025-04-03 23:34:18 +03:00
feos a74100ff9f more buttons 2025-04-03 23:34:18 +03:00
VelpaChallenger 53cdf182ae
Pass values to memory callbacks in GPGX (squashed PR #3821)
* fix on_bus_read issue for genplus-gx core

- related to issue #3813
- update signatures, create new value variable in each of the memory read core functions, pass it to the callback and return it instead of the inline calculations. Also, pass val to write and exec callbacks in IDebuggable since they all use the same mem_cb signature and it would break otherwise. I want to update write and exec callbacks in next commit though to ensure nothing unexpected happens.

* update write callbacks for genplus-gx

- related to issue #3813

* update exec callbacks for genplus-gx

- closes #3813

* twice memory peek for deep freeze via on_bus_read bizhawk

Read a first time to pass the read value to the callback, read a second time to read the updated value in case it was updated by the callback and effectively deep freeze the value, no matter if 8, 16 or 32 width

* remove lines from unknown source

I have no idea where those lines came from. But I never meant to add them. This should look like it currently looks in master

* reinsert const, use implicit delegate constructors

* update submodule commit to before override memory values

* rename a to addr, unsigned int to just unsigned
2025-04-04 05:46:57 +10:00
CasualPokePlayer a562a0d23c Try to use UTF8 for OpenAL device strings
Hopefully fixes #4281
2025-03-31 10:17:11 -07:00
CasualPokePlayer 5a020c1e9e Prevent crash in SoundOutputProvider due to negative sample count being computed
In practice this doesn't occur ever except with subframe core abuse with tiny sample counts being spammed
2025-03-28 16:47:39 -07:00
CasualPokePlayer 60d7ddbffc Prevent submitting more XAudio2 buffers than XAUDIO2_MAX_QUEUED_BUFFERS (64)
Resolves #4116
2025-03-28 16:22:24 -07:00
YoshiRulz 76cf9127d4
Fix typo in `DWordWatch.ResetPrevious` (4-byte)
broken since at least migration to Git
2025-03-29 08:18:21 +10:00
YoshiRulz 6b06d50085
Enable CA1868 and fix noncompliance
"Unnecessary call to 'Contains' for sets"
2025-03-29 08:11:16 +10:00
YoshiRulz 5de736af0e
Enable CA1854 and fix concompliance
"Prefer the `IDictionary.TryGetValue(TKey, out TValue)` method"
2025-03-29 08:11:16 +10:00
YoshiRulz c5d4e8b783
Enable CA2019 and fix noncompliance
"`ThreadStatic` fields should not use inline initialization"
2025-03-29 08:11:16 +10:00
YoshiRulz 8cfb0599e5
Enable SA1413 except in Cores and satellite .NET projects
"Use trailing comma in multi-line initializers"
2025-03-29 07:18:53 +10:00
YoshiRulz ba12785fe2
Add trailing commas to object initialisers and `with` expressions 2025-03-29 07:18:53 +10:00
YoshiRulz 613ff73a5a
Add trailing commas to collection initialisers 2025-03-29 07:18:52 +10:00
YoshiRulz a8e7c3d031
Add trailing commas to `switch` expressions 2025-03-29 07:18:49 +10:00
YoshiRulz dcd78b4107
Reflow and add trailing commas to enum definitions 2025-03-29 07:18:31 +10:00
YoshiRulz 4c76aeba8a
Reflow `NESMusicRipper.FreqTable` 2025-03-29 07:18:31 +10:00
YoshiRulz 8a99246796
Fix comma placement 2025-03-29 07:18:30 +10:00
YoshiRulz bdf22bb1b8
Simplify some misc. `Substring` usage 2025-03-29 07:18:30 +10:00
YoshiRulz f25b992a4e
Simplify `EmulatorExtensions.ToControlNameList`
also fixes it for controllerNum >= 10
2025-03-29 07:18:30 +10:00
YoshiRulz 5f76e3cc74
Minor refactors in `WatchEditor` 2025-03-29 07:17:08 +10:00
YoshiRulz 1aa83b7c12
Add and use `ComboBox.ReplaceItems` extension 2025-03-29 07:16:07 +10:00
YoshiRulz e8df779cc7
Missed a spot for `ReplaceDropDownItems` extension 2025-03-29 07:05:19 +10:00
YoshiRulz 72c8a00462
Fix code style warnings in testroms projects 2025-03-29 07:05:19 +10:00
YoshiRulz ec0510367a
Fix compilation of Bizware.Test app 2025-03-29 07:05:19 +10:00
YoshiRulz 9ac560d49d
Remove unused enum `BizHawkExternalToolUsage` 2025-03-28 10:29:56 +10:00
YoshiRulz 32a8193c74
Fix value of `CLSCTX.ALLOW_LOWER_TRUST_REGISTRATION` 2025-03-28 10:00:46 +10:00
YoshiRulz a80399860d
Merge `--gdi` handling into `ArgParser` (resolves #4201)
funny story, the `--gdi` handler didn't remove it from the `args` array,
so it's always been parsed as a rom filename and obviously failing, but
before bd58bde07 it was failing silently
2025-03-28 04:40:14 +10:00
YoshiRulz 4bc2f31d77
Simplify `MovieEndPlaySoundMenuItem_Click`
fixes 289c5cff9
also standardise these menu items to title case
2025-03-27 05:18:46 +10:00
Morilli c9d8ab0e43 fix test
fixes 289c5cff9b
2025-03-26 19:57:26 +01:00
Morilli b88c557b46 speedup BizBox (About dialog) load 2025-03-26 19:23:25 +01:00
Morilli 289c5cff9b add option to play sound on movie end
requested in #2926
2025-03-26 19:20:13 +01:00
Morilli 6ead2ddee8 increment rerecords when rewinding
- closes #3707
2025-03-25 06:18:41 +01:00
Morilli a24311c2d1 fix exception in faust constructor
- closes #4278, fixes ab8eb0405c
2025-03-25 04:57:21 +01:00
Morilli 861166080f make autopause at tend of movie work in tastudio
- closes #2622

not sure if this should always apply or only in playback mode but probably doesn't matter too much.

Also changed the default to false because that's what it's effectively been for many years
2025-03-25 04:38:23 +01:00
Morilli 69862fef70 simplify frame advance bool logic
this now also prevents _runloopFrameProgress from potentially getting stuck after rewinding and fixes some other obscure interactions with frame advance and rewind.

- added 2 bugs
2025-03-23 15:20:09 +01:00
Morilli 98e8901076 simplify Throttle.Step
this should also fix bugs where skipNextFrame could be stuck at true and otherwise not change behavior.

Surely this won't introduce any bugs
2025-03-23 03:16:11 +01:00
Morilli 0e0fe37ffa fix CheatCollection.UpdateDomains throwing when separators exist 2025-03-23 01:03:59 +01:00
YoshiRulz 3a6b42278a
Revert "TAStudio marker lua (#4272)"
This reverts commit eb79f2e735.
2025-03-23 04:14:27 +10:00
Luke Stadem 3af38050f8
[A26][Stella] Adds support for the console Select switch (#4178)
* [Stella] Added the Select switch input

* [Stella] Reduced console switches into a single int corresponding to the SWCHB register
2025-03-22 17:49:27 +01:00
c7fab eb79f2e735
TAStudio marker lua (#4272)
* getmarkers

Lua method to get a table with  all markers for the current TasMovie, with Frame and Text as fields

* getmarkerabove

Returns a table of the marker at or above the given frame

* getbranchmarkerabove

same as getbranchmarker, but for getting the marker from a branch

* getbranchmarkers

returns a list of all markers for the given branchId, with fields Frame and Text
2025-03-22 16:56:26 +01:00
feos df33165b5a dsda: reorder player pov because multiplayer mode is not frequent 2025-03-22 13:00:07 +03:00
feos ac81c393e1 dsda: secret report option
disabled to be closer to vanilla on fresh boot, like most other modern features
2025-03-22 12:56:46 +03:00
feos f9a3890ac1 dsda: positioning 2025-03-21 20:23:53 +03:00
feos 92df238d9e dsda: fix button turning for shorttics
move shorttics cals to frontend to explicitly show all the logic that reproduces upstream input handling
2025-03-21 20:00:23 +03:00
YoshiRulz fef3b526b6
Simplify rom padding step in `PCEngine.Init` 2025-03-21 20:24:20 +10:00
YoshiRulz aad3c90a5e
Clean up how collections are asserted on in unit tests 2025-03-21 09:33:07 +10:00
YoshiRulz c391c6ff58
Implement missing interfaces on `SortedList<T>` 2025-03-21 09:33:07 +10:00