Commit Graph

22605 Commits

Author SHA1 Message Date
Morilli 18c29ca57c refactor saveram saving error handling in CloseGame
The previous code did nothing when a new rom was loaded or the emulator was closed. Now the user at least gets the chance to try again, however much that will help.
2025-06-04 22:23:39 +02:00
Morilli 1b7e858977 Harden FlushSaveRam
more try = more catch. Disk errors while writing saveram are rare and probably user error, but they're unrecoverable and shouldn't crash the emulator outright.

See #4258 and #1466
2025-06-04 22:00:49 +02:00
Morilli 291dd80c27 refactor LoadSaveRam
The code will now consider both autosaveram and normal saveram files on load. Normal saveram is preferred unless an autosave exists that is more recent than the normal save, in which case the user is prompted to select which saveram to load.
2025-06-04 21:23:55 +02:00
Morilli f1ecb13249 ensure autosaveram interval is always set and fix off-by-1 2025-06-04 19:38:24 +02:00
Morilli 93fbb0202c bump minimum AutoSaveRAM interval to 1 second
I don't think we need the option to backup saveram every frame
2025-06-04 19:10:26 +02:00
Morilli 150fc2f4c2 don't check SaveRamModified on shutdown
let's flush the saveram unconditionally instead of relying on SaveRamModified which could get unset from autosaves or elsewhere

see also #4344
2025-06-04 18:51:04 +02:00
Morilli a2cf4e0797 clarify semantics and implementation of ISaveRam.SaveRamModified 2025-06-04 18:51:04 +02:00
feos 5fa597ad8a dsda: fix automap inputs crashing outside level
update settings descriptions
2025-06-04 16:14:56 +03:00
YoshiRulz abba6ed260
Add help on changing peripherals to TAStudio's `Columns` menu
see #2449
2025-06-03 10:49:35 +10:00
YoshiRulz bc0090f414
Move TAStudio `Columns` > `Show Player #` into those submenus
resolves #2449
2025-06-03 10:22:43 +10:00
YoshiRulz c5c760afa6
Change behaviour of TAStudio `Columns` > `Show Player #`
partially reverts b62f4bc6a
see #2449
No longer hides the submenu, and toggling individual columns updates the
whole-player checkbox, which is now tri-state.
Same for the "Show Keys" item.
And after all that, Mono doesn't distinguish Indeterminate :P
2025-06-03 10:22:36 +10:00
YoshiRulz 094adb0cb0
Some refactors to `TAStudio.SetUpToolStripColumns` 2025-06-03 10:10:01 +10:00
YoshiRulz b4105f9423
Add `IEnumerable<bool>.Unanimity` extension 2025-06-03 10:10:01 +10:00
YoshiRulz bb7e5bc02c
Add Meziantou.Polyfill 2025-06-03 10:10:01 +10:00
YoshiRulz 071423fe8b
This is polyfilled already 2025-06-03 10:09:58 +10:00
CasualPokePlayer 74647e4dc8 Linux sameboy build (with actual rumble mode changes this time) 2025-06-01 23:39:16 -07:00
CasualPokePlayer f5588c1464 Forgot to commit these sameboy changes re rumble mode 2025-06-01 23:38:54 -07:00
CasualPokePlayer 803f72e85a Make SameBoy's rumble mode configurable, default to rumble pak games only
see #4343
2025-06-01 23:38:54 -07:00
CasualPokePlayer 6c10ccd1d1 Linux sameboy build 2025-06-01 23:37:43 -07:00
Morilli 327c45f418 fix initial FeedbackBind display 2025-06-02 07:27:23 +02:00
Morilli 6c396f964a fix outdated description 2025-06-02 07:14:24 +02:00
Morilli 4743a2af87 fix feedback binds not allowing unbinding
see #4343
2025-06-02 07:14:14 +02:00
YoshiRulz 5cf2d1a7d1
Further clarify `joypad.setanalog` docs
fixes d48bea5
see #2310
2025-06-02 06:01:19 +10:00
Morilli 3c774e2607 remove old dispose hack in MovieSession
no longer relevant since recent commits and didn't fail since the TasStateManager changes a while back anyway
2025-06-01 20:34:05 +02:00
Morilli 047e1556cb cleanup MovieConversionExtensions
none of these clear calls are required, also resolved TODOs
2025-06-01 20:34:05 +02:00
Morilli 1da70c884d refactor bk2->tasproj conversion
- don't mutilate the bk2movie during the conversion
- don't immediately set MovieSession.Movie without having loaded the taproj
2025-06-01 20:34:05 +02:00
Morilli 10f57bad2c remove unnecessary SetMainformMovieInfo calls in TAStudio 2025-06-01 20:34:05 +02:00
YoshiRulz c3dd2c2d63
Set `trim_trailing_whitespace` in EditorConfig 2025-06-02 03:57:49 +10:00
YoshiRulz f98476b825
Fix code style warnings in `LibDSDA.cs`
fixes f0564300c
2025-06-02 03:57:36 +10:00
feos 40b7b49f8c dsda: announce gamma on front end
they say the code should be so verbose that you won't need comments. indeed comments that restate the same thing that the code is doing are considered sloppy, because code will change and comments will become outdated. but if a comment is describing the logic of decision making or some unintuitive quirk, they're perfectly fine. so in a few places I go crazy with comments because the decision made there took a long time and a lot of changes, so it kinda summarizes the best result. that's it, no elaborate description of the change itself here... because I put it into that comment instead XD
2025-06-01 19:41:37 +03:00
feos f0564300c7 dsda: set gammma after core seal but before first frame advance 2025-06-01 16:23:40 +03:00
feos 2d23183569 dsda: decide aspect once on init 2025-06-01 13:25:55 +03:00
YoshiRulz 4fd52088e4
Drop outdated part of `joypad.setanalog` docs
fixes d48bea505
see #2310
2025-06-01 11:05:19 +10:00
feos 93ebbc60d6 add all other official freedoom versions to db
(and remove unofficial ones)
2025-05-31 21:29:10 +03:00
YoshiRulz b01436bdc6
Include Stella's B&W/colour switch in savestates
fixes b5e13206c
2025-06-01 01:14:18 +10:00
feos 6190a0573b dsda: woops
it was there twice... with different values!
2025-05-31 11:26:35 +03:00
YoshiRulz a0a06a58ab
Add `bizstring.{decode,encode}` (resolves #3035) 2025-05-31 10:35:49 +10:00
YoshiRulz 933e1616db
Fix code style warnings
fixes f86b7aed6
2025-05-31 09:35:50 +10:00
feos f86b7aed68 dsda: simplify
predefine a set of resolutions per aspect ratio for those that can't be calculated without complicated logic (hacks)
2025-05-31 02:10:53 +03:00
YoshiRulz 7ae2f9372d
Add missing `leaveOpen: true` in `MainForm.FlushSaveRAM`
fixes f0daba69b
2025-05-31 08:59:43 +10:00
YoshiRulz 8c9f6bd8ce
Fix copy-paste error in `MainForm.LoadRomInternal` hiding a warning
fixes 348cbd18d
2025-05-31 07:59:58 +10:00
YoshiRulz f0daba69be
Call `FileStream.Flush` for SaveRAM and movies (resolves #3419)
...and anything else which uses `FrameworkZipWriter`/`ZipStateSaver`,
which I think is just savestates
2025-05-31 07:53:57 +10:00
YoshiRulz fe1b973132
Remove line-end whitespace in `DSDA.cs`
fixes 621ad8e45
2025-05-31 07:53:49 +10:00
feos 621ad8e454 dsda: remove the workaround because it broke the FOV
increase the resolution for 1x 16:9 instead
2025-05-31 00:51:07 +03:00
feos 8632e9d3be dsda: a little bit less logic and more notes 2025-05-30 23:52:24 +03:00
Morilli 6b9cf49e15 delete redundant CreateDirectory wrapper 2025-05-30 22:06:56 +02:00
Morilli 4215ea81a3 remove redundant directory creation in RecordMovie
added in 5fc78efe85 and no longer necessary since... idk
2025-05-30 22:06:56 +02:00
feos ec65117fdf dsda: add some freedooms to db
support other aspect ratios (otherwise hires automap looks bad if we only correct aspect in frontend)
2025-05-30 22:35:02 +03:00
YoshiRulz 83169be667
Skip platform chooser when reloading core
if you make a mistake, you can still reopen via the recents menu
2025-05-31 05:19:19 +10:00
YoshiRulz 7665448202
Convert `LoadRomArgs` to a `record class` 2025-05-31 05:15:45 +10:00