Commit Graph

4454 Commits

Author SHA1 Message Date
feos b9d8af8854
Update VersionInfo.cs 2024-08-31 09:46:54 +03:00
YoshiRulz c138e38951
Ask the user to reconsider quitting if A/V recording (resolves #4017) 2024-08-31 12:34:35 +10:00
YoshiRulz 31b0a29d2d
Refactor `MainForm`'s `Closing` handler 2024-08-31 11:37:55 +10:00
CasualPokePlayer aeda8f1659 Add microphone button for melonDS
This changes the behavior so the user just has to press the microphone button to blow the mic, where the volume of the blowing can be controlled with the mic volume axis (but now the neutral value of mic volume is 100 rather than 0)
2024-08-30 17:35:18 -07:00
CasualPokePlayer 1ce8b855c7 remove app.config dpi stuff
mono does not like this (fixes #4002)
2024-08-30 17:11:22 -07:00
CasualPokePlayer d70daae5d6 Create Contains impl for arrays, fix device id blacklist detection 2024-08-30 16:10:54 -07:00
CasualPokePlayer c54102b3a6 prevent Broadwell gpus from using GL interop
a user reported to me they just get a crash in DxopenDevice, although yet their pc does not have a dual gpu setup, indicating the drivers for their gpu are rather bad
Intel HD Graphics 5500 was the specific gpu, but i'll just be safe and blacklist all of Broadwell
2024-08-30 01:07:15 -07:00
Morilli ea1dcf5b22 Simplify SearchEngineSettings ctor 2024-08-30 02:23:40 +02:00
Morilli 82fa98fc7d Ensure the ram search changes column is in a consistent state
the settings store whether or not the column should be visible even though that should be controlled by the Mode setting alone
2024-08-30 02:21:39 +02:00
YoshiRulz 10ebea4dda
Ban `BitConverter.To*`
I was hoping not to mute this Analyzer for the Cores project, but there
were a couple usages of `BitConverter` there that were too far gone into
dumb territory to fix in this commit
2024-08-30 00:17:01 +10:00
Morilli 15ac8e2905 Fix cursor icon position in horizontal tastudio orientation
necessary with 00228a1f20
2024-08-29 08:22:25 +02:00
YoshiRulz f09e72e7e0 Clean up `WatchValueBox.SetFromRawInt` 2024-08-29 06:43:14 +02:00
Morilli d479cb4366 Delete ConversionTests.cs 2024-08-29 06:23:56 +02:00
Morilli a51ed03c02 move ReinterpretAsF32 to a common location and use it more
as well as its inverse
2024-08-29 06:17:40 +02:00
Morilli 5588d68e4a make DifferentBy uint as well 2024-08-29 05:54:05 +02:00
Morilli b4bcb5755d fix some exception types
can these even occur?
2024-08-29 05:39:48 +02:00
Morilli 6d9c74b7ea change a bunch of stuff to uint
- closes #4001
2024-08-29 05:35:50 +02:00
Morilli 564b916499 remove unused function 2024-08-29 05:35:27 +02:00
Morilli 3c218c6642 Optimize RamSearchEngine.Preview 2024-08-29 05:35:27 +02:00
CasualPokePlayer 53436e81f5 fix GDI+ on Linux (again) 2024-08-28 20:26:00 -07:00
YoshiRulz ef028dfea4
Add comment to `TasMovie.AddTasProjLumps`
fixes 884110e61
2024-08-29 13:11:27 +10:00
Morilli 884110e61a Fix TasMovie save when TasStateManager is null 2024-08-28 03:47:38 +02:00
Morilli 74dcd81b85 don't control stop movie in TAStudio movie load
was removed in b6a0688be0, and while not strictly required this will leak TasMovies otherwise.
2024-08-28 03:47:38 +02:00
Morilli 8956657a34 lazy-initialize TasStateManager and markers
This is a bit of a dangerous change. Ideally this will fix the TasStateManager being initialized twice for loaded movies and have no other noticable effect.
2024-08-28 03:46:14 +02:00
Morilli 532dc06e64 tweak TasMovie.StartNewRecording slightly
StartNewRecording is now always called for new tas projects in TAStudio, and the marker change code in there caused the Changes bool to get set and never cleared.
2024-08-27 23:43:55 +02:00
Morilli b6c031beaa Update window titles properly in TAStudio
Some change at some point removed code that implicitly triggered window title updates, so they weren't always correct now.
2024-08-27 23:41:52 +02:00
Morilli 4194870f6f Add tasmovies to recent list on load
This was removed in 42aa9d991d, but I don't remember if it was intentional or a mistake.
In any case it feels bad to open tas movies and not get them added to the recent list.
2024-08-27 23:37:48 +02:00
Morilli 00228a1f20 Tweak some InputRoll values
- see #3708

A bit experimental, let's just see how it feels.
2024-08-27 18:53:06 +02:00
CasualPokePlayer 3c1248547f This should be Max, not Min 2024-08-25 22:10:27 -07:00
CasualPokePlayer 0a9c2dc276 Don't allow 0 width/height rectangle to be used with GDI+'s buffered graphics 2024-08-25 22:09:10 -07:00
CasualPokePlayer f9883f6700 remove ? 2024-08-25 18:32:53 -07:00
CasualPokePlayer f18c2467de Undo previous commits, try setting glx depth explicitly (probably isn't what's needed? maybe it is? ehhh)
TODO: this seems to be an issue anyways with buggy nvidia drivers under xwayland, perhaps that setup can be detected and forced over to GDI+?
2024-08-25 18:30:10 -07:00
CasualPokePlayer 516a021add Try making this actually work 2024-08-25 17:37:41 -07:00
CasualPokePlayer bb456e45be Try to workaround some Linux Nvidia driver bug 2024-08-25 15:48:14 -07:00
Morilli 436be60222 cleanup and fix GenericDebugger.DecrementCurrentAddress 2024-08-25 21:07:40 +02:00
Morilli 1ea8cf2f36 check disassembler address properly in GenericDebugger.Disassemble
- closes #3524

- the address was not checked on the first call
- the comparison needs to be >=, not >
2024-08-25 21:01:06 +02:00
YoshiRulz 93fe2c8b6a
Ban some more BCL methods (not used anywhere) 2024-08-26 02:01:06 +10:00
YoshiRulz 67f87b15c4
Ban runtime asserts without a message 2024-08-26 02:00:50 +10:00
YoshiRulz 8e12e44411
Ban `Control.Focus`
"Focus is a low-level method intended primarily for custom control
authors. Instead, application programmers should use the Select method
or the ActiveControl property for child controls, or the Activate method
for forms." --MSDN
2024-08-26 01:21:40 +10:00
YoshiRulz 2dd87d78f9
Use binary literals instead of `Convert.ToByte` in `D64` 2024-08-25 23:34:09 +10:00
YoshiRulz c882fe4ea5
Add official `BannedApiAnalyzers` and ban some string parsing methods 2024-08-25 23:31:16 +10:00
YoshiRulz 846253760e
Extract more helpers for finding Lua forms/controls by handle 2024-08-25 03:49:57 +10:00
YoshiRulz b69e466c03
Extract constant in `FormsLuaLibrary` 2024-08-25 03:39:29 +10:00
YoshiRulz a1faf8bf0a
Speed up `forms.*` by knowing that form/control handles are unique 2024-08-25 03:39:13 +10:00
YoshiRulz 170d1a62ed
Add warning message for Lua functions called with mismatched x/y/w/h 2024-08-25 03:39:02 +10:00
YoshiRulz 884fee6c6d
Encapsulate x/y/w/h checks in `FormsLuaLibrary` 2024-08-25 03:39:02 +10:00
YoshiRulz ecaece0488
Fix Lua forms having a blank title when not specified 2024-08-25 03:39:01 +10:00
YoshiRulz c3057298f9
Fix `forms.destroyall` not clearing the list 2024-08-25 03:39:01 +10:00
YoshiRulz 681a5764d6
Fix LuaPictureBox functions only working on the first form
fixes 672536305
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2024-08-25 03:38:58 +10:00
YoshiRulz bda40c7ba3
Dedup `forms.{drawString,drawText}` implementations 2024-08-25 03:38:41 +10:00
YoshiRulz b99a3831e9
Change return type of `BootGodDb.Identify` to `IReadOnlyList` 2024-08-23 16:51:40 +10:00
YoshiRulz fc446868a7
Fix `BootGodDb.Identify` mutating lookup
fixes f010d6f80, 633216be1
2024-08-23 16:45:44 +10:00
Morilli 8c9587e00b Fix BootGodDB lookup being completely broken in quicknes
- closes #3703

Presumably broken since e38726db50.
2024-08-22 23:15:20 +02:00
Morilli f010d6f802 Fix bootgod exception on missing game hash
fixes 633216be14
2024-08-22 22:54:21 +02:00
YoshiRulz 7dfb624427
Remove `WorkingDictionary<K, V>` 2024-08-23 02:53:30 +10:00
YoshiRulz 34d71e90bc
Add more `GetValueOrDefault` overloads 2024-08-23 02:53:30 +10:00
YoshiRulz 72b2e78957
Refactor `AutoFireStickyXorAdapter.IncrementLoops` 2024-08-23 02:49:47 +10:00
YoshiRulz 5dd3dc7ae5
Refactor `AutofireController.{IsPressed,LatchFromPhysical}` 2024-08-23 02:49:47 +10:00
YoshiRulz 384e4c913c
Short-circuit loops in `{,Autofire}Controller.LatchFromPhysical` 2024-08-23 02:49:47 +10:00
YoshiRulz 633216be14
Remove `Bag<K, V>` 2024-08-23 02:48:03 +10:00
YoshiRulz ba4c406a36
Add names to bool argument in `TAStudio.StartNewMovieWrapper` calls
fixes b6a0688be
2024-08-22 22:44:14 +10:00
YoshiRulz 325880be18
Further cleanups to `MainForm.ProcessInput`
fixes 2f5dfcea3
2024-08-22 22:40:42 +10:00
Morilli 2f5dfcea33 simplify variable assignment 2024-08-22 13:34:39 +02:00
Morilli 17733e38f7 Check all individual buttons with input key priority
- closes #3842

If any of the pressed buttons is an input, don't trigger any hotkeys.
2024-08-22 13:33:56 +02:00
Morilli f07c689c58 Improve horizontal TAStudio layout a bit
see #3708
2024-08-22 01:30:46 +02:00
Morilli b6a0688be0 simplify TAStudio movie starting
- removes HandleMovieLoadStuff, which should ™️ not be necessary
- pass newMovie parameter into MainForm.StartNewMovie. This is currently probably irrelevant, but useful later
2024-08-21 22:24:39 +02:00
Morilli 1c44dc5913 don't create undo steps when setting TasMovie.StartsFromSavestate
A movie either starts from a savestate, or doesn't. It should not be possible to undo the marker changes done when setting this value.
2024-08-21 22:12:32 +02:00
YoshiRulz c2a336647c
Use `Type.EmptyTypes` in `MovieImport.ImportFile` 2024-08-21 22:15:14 +10:00
kalimag 4e85a71d53
HexEditor "File on Disk" fixes (squashed PR #3998)
* Fix keeping rom domain selected

* Turn unnecessary field into local

* Handle `null` return from `GetRomBytes()`

* Simplify `GetRomBytes()`

* Add try-catch around opening rom file
2024-08-21 15:59:39 +10:00
CasualPokePlayer b9cd4a93cc Remove unneeded modifer 2024-08-20 15:23:36 -07:00
CasualPokePlayer 02acd542c2 Guard against cheat codes in RetroAchievements' hardcore mode
originally I thought just blocking the cheat window would be enough, but autoloaded cheat codes could sneak through. An actual check for cheat codes being active prevents this being an issue.
2024-08-20 15:22:39 -07:00
Morilli beab2b141b Only force a core name if one exists
This could actually not be the case for imported movies for example and is handled elsewhere, but this force parameter breaks rom loading completely when QueuedCoreName is empty.
2024-08-20 23:10:38 +02:00
Morilli cdd7ee1fea Improve missing firmware dialog readability
see comment here: https://github.com/TASEmulators/BizHawk/issues/3980#issuecomment-2269483563
2024-08-20 23:09:16 +02:00
Morilli 8d4c29a64f ensure updated core settings are always saved in config
- closes #3966
2024-08-18 23:12:24 +02:00
RetroEdit 3ede77b8b7
Change OnMovieEnd default to 'Pause' instead of 'Finish' (#4008) 2024-08-18 18:45:04 +03:00
YoshiRulz d9331c5a28
Add feature flag to disable the gamedb 2024-08-18 16:21:51 +10:00
YoshiRulz c319bf5fb8
Fix LINQ chain in `FirmwareManager.DoScanAndResolve`
fixes 963b925a1
2024-08-18 16:09:31 +10:00
Morilli 963b925a1a prefer ideal firmware over acceptable firmware
see #3974
2024-08-18 03:30:31 +02:00
Morilli fa08002fbf don't set quickNES's priority to low
it's the preferred core after all, this doesn't make sense
2024-08-18 03:28:56 +02:00
Morilli 92399482d4 also search in descriptions in the lua functions filter
- closes #3651
2024-08-18 02:46:57 +02:00
Morilli e893e3a1ff Cleanup CueFileResolver
also closes #3532
2024-08-18 02:38:23 +02:00
Morilli 7c89bda312 update displaymanager on rom load failure 2024-08-17 22:26:10 +02:00
Morilli 9085bd6e0c Set correct GameInfo even when rom loading failed
- closes #3986

(maybe this should be in CloseGame as well?)
2024-08-17 22:25:55 +02:00
YoshiRulz 60366c13b5
Fix signature of `IMemoryApi.WriteFloat` 2024-08-16 22:49:35 +10:00
YoshiRulz 70b640240e
Simplify boolean comparison
this was getting flagged in CI but not on my machine
2024-08-16 21:09:38 +10:00
YoshiRulz 6b160d9bd0
Revert RAM Search refactor (PR #3954)
reverts 1a9e5e52f1
2024-08-15 01:57:47 +10:00
YoshiRulz 0f22ef2ad0
Revert "Change ToRawInt to ToRawUInt"
This reverts commit 542e043261.
2024-08-15 01:53:59 +10:00
YoshiRulz 0184bcd0af
Restore numeric values for `PreviousType` enum
fixes 1a9e5e52f
2024-08-14 00:38:12 +10:00
kalimag ab7f379e74 Correct rewind dialog typo 2024-08-09 19:41:52 +10:00
YoshiRulz a1aaabe8d5
Add ctors to `LoadRomArgs` and `OpenAdvanced_OpenRom` 2024-08-09 13:36:27 +10:00
YoshiRulz 12310befff
Remove IOpenAdvanced parsing from places unrelated to recents menu 2024-08-09 13:36:22 +10:00
YoshiRulz 9f5a5d8593
Fix crash due to mutating `ToolManager._tools` while enumerating it
resolves #3983
2024-08-06 02:11:17 +10:00
kalimag cdf79d3593
Make external tools path independent of working directory (squashed PR #3987)
* Make external tools path independent of working directory

* Add `ExternalToolsAbsolutePath` extension

* Use absolute path for external tool dependencies as well
2024-08-06 01:56:10 +10:00
CasualPokePlayer 494fe90bfc fix Tilt Y in 3ds schema 2024-08-05 00:47:49 -07:00
CasualPokePlayer a675e882fe avoid double compressing zstd zip entries 2024-08-04 15:08:53 -07:00
CasualPokePlayer 7ebb89fec9 release Encore 2024-08-04 14:30:43 -07:00
CasualPokePlayer 618f66f970 Add 3DS virtualpad schema 2024-08-04 14:26:48 -07:00
CasualPokePlayer 91de8608af Do image/texture caching better
also don't try to cache the sampler / avoid set sampler calls (the sampler is not pipeline specific, so it's affected by other pipelines setting the sampler)
2024-08-03 23:59:20 -07:00
YoshiRulz 2b371e2752
Fix Gambatte and SameBoy palette load file pickers using wrong dir
fixes 348cbd18d
2024-08-04 03:46:13 +10:00
YoshiRulz 1bc1f1b3d2
Add overload for `IGuiApi.WithSurface` with stronger encapsulation 2024-07-26 16:03:02 +10:00
YoshiRulz 7b644f771e
Use `System.Drawing.Primitives` 2024-07-26 10:33:20 +10:00
kalimag 413fd40b46 Fix fuzzy cue file resolving
Partially revert 7cde8bb
2024-07-25 16:46:28 +10:00
James Groom 3a8b3913bf
Fix Uzebox framerate (squashed PR #3975)
These numbers are derived from the 2010 whitepaper:
NTSC's 4*(315/88 MHz) is doubled to give the master clock rate, which is
then divided by 1820 cycles per line and 262 lines per (progressive)
frame.

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2024-07-24 07:31:34 +10:00
YoshiRulz 8fda95066c
Fix value being cached when it shouldn't in `InputRoll.LastVisibleRow`
resolves #3972
partially reverts dd4f9aaf6
2024-07-21 06:28:31 +10:00
Morilli cc1b9c5903 TAStudio: access CurrentTasMovie before stopping it
fixes 4c39a81228

- closes #3973
2024-07-20 08:15:10 +02:00
Morilli 5fd3575c0f Improve tastudio refresh behavior in tastudiolualibrary
should resolve #3969. Let's hope this doesn't break anything.

There still seems to be some overhead, but I can't profile this so I can't say whether it's from submitclearframes or applyinputchanges.
2024-07-20 07:56:52 +02:00
YoshiRulz cee9661f0e
Reduce indentation in `Bk2Controller.SetFromMnemonic` 2024-07-20 13:41:49 +10:00
YoshiRulz 151491c844
Use an array for `Bk2Controller.ControlsOrdered` 2024-07-20 13:39:37 +10:00
YoshiRulz 1049a091c0
Convert `Bk2Controller.ControlMap` to a struct 2024-07-20 13:38:40 +10:00
YoshiRulz b7a851ea92
Set default window scale for WonderSwan to 3x 2024-07-19 07:27:13 +10:00
Morilli 15125ec11f Improve tastudio lualibrary speed
see #3969
2024-07-18 02:15:07 +02:00
Morilli f59cfb1710 set current branch properly in TAStudio movie load
apparently, GoToFrame might frameadvance, which in turn calls UpdateAfter(), which in turns updates the current selected branch in the TasSession with the value of the current movie.
So, we need to set the current movie's current branch from the session's value before it gets deleted.

- closes #3968
2024-07-17 22:46:00 +02:00
YoshiRulz 9a5a75e5bb
Add some helpers to `BitmapBuffer` 2024-07-16 08:08:41 +10:00
YoshiRulz d7e9668d50
Add and use `Span`-from-`IntPtr` helper 2024-07-16 07:30:09 +10:00
YoshiRulz f742fe55d5
Refactor `ToolManager.Close`
that ought to cover everything
2024-07-16 04:09:01 +10:00
YoshiRulz f9cdad2ea6
Move system-specific helpers in `MainForm` to separate file 2024-07-14 05:40:25 +10:00
YoshiRulz e49c4689de
Minor refactors to system-specific helpers in `MainForm` 2024-07-14 05:34:42 +10:00
YoshiRulz b2184e46d5
Clean up some `DropDownOpened` handlers for disk switch submenus 2024-07-14 05:31:04 +10:00
YoshiRulz 65979e61ec
Reduce indentation in system-specific helpers in `MainForm` 2024-07-14 05:25:36 +10:00
YoshiRulz 2321bc55e6
Add `LoadedCoreIsNesHawkInVSMode` helper prop in `MainForm` 2024-07-14 05:10:23 +10:00
YoshiRulz f21c8b914c
Refactor `MainForm.EnsureCoreIsAccurate` 2024-07-13 01:21:45 +10:00
YoshiRulz 1fdacd762a
Refactor `yield`ing methods to conventional LINQ 2024-07-12 14:42:11 +10:00
YoshiRulz dfe8b1308c
Refactor `yield`ing methods to direct, stateless returns 2024-07-12 14:42:10 +10:00
YoshiRulz 166f1d537e
Comment-out unused `DiskBuilder.BamEntry.Entries` (C64Hawk) 2024-07-12 14:42:10 +10:00
YoshiRulz fc8fd64143
Simplify `DiskBuilder.BamEntry.GetBytes` (C64Hawk) implementation 2024-07-12 14:42:10 +10:00
YoshiRulz 18bc51f5e7
Simplify `IDisassemblable.AvailableCpus` implementations 2024-07-12 14:42:10 +10:00
YoshiRulz da06dae80c
Decrease indentation in `InputRoll.GenerateContextMenuItems` 2024-07-12 14:42:10 +10:00
Morilli c5820f0c0f TAStudio: don't select branch when none exists
-closes #3967
2024-07-12 06:03:14 +02:00
YoshiRulz 616437ff31
Restore exception message in `SavestateFile.Create`
partially reverts e9d6716a3
2024-07-12 08:09:59 +10:00
YoshiRulz ee0c0a80d0
Bump supported Win10 version 2024-07-12 01:51:28 +10:00
Morilli e9d6716a33 Fix savestating being possible after movie has finished 2024-07-10 21:03:59 +02:00
CasualPokePlayer 662fd83f5e Prevent user changing clock stopping message pumping
TODO: Audit other usages of DateTime.Now assuming it is monotonic (also use DateTime.UtcNow where applicable to avoid DST causing issues)
2024-07-10 01:51:28 -07:00
YoshiRulz e44810a725
Fix stacktraces for `RangeToExclusive` extension 2024-07-10 13:30:35 +10:00
YoshiRulz 00c103da0b
Remove unused import 2024-07-10 13:20:55 +10:00
CasualPokePlayer d8431d615e Avoid zealously copying the entire video buffer
this might be larger than bufferwidth*bufferheight, and thus possibly dramantically decrease screenshot/dumping performance
2024-07-08 16:29:51 -07:00
Morilli 57e3c47bcc Fix InputRoll not updating CellHeight and CellWidth on padding change 2024-07-08 19:21:35 +02:00
YoshiRulz 0d2844d1fd
Improve docs on `Config.CorePickerUIData`
fixes 14cf4b348, 81e2b5b47, and bbb3b4cd7
2024-07-08 23:57:58 +10:00
Morilli bbb3b4cd7d Update comment on CorePickerUIData
also restore systemid default core restore logic that exists for some reason
2024-07-08 06:26:57 +02:00
Chris Siebert 45002e6870
Fix NesHawk tracelogs sometimes using 32-bit addrs (squashed PR #3964)
specifically, only for the few instructions in this diff, and only when the PC would over- or underflow as a result of the offset
2024-07-08 11:26:34 +10:00
Morilli 81e2b5b47b Make preferred core labels more verbose
they now display all system choices that they set instead of just the first
2024-07-08 03:03:34 +02:00
Morilli d74b130c22 Add preferred core picker choice for Satellaview
idk if this list is supposed to be sorted because it kinda isn't?
2024-07-08 03:00:47 +02:00
YoshiRulz 2a5d4b903c
Add Analyzer to disallow `^= true` 2024-07-08 10:39:06 +10:00
YoshiRulz c99d2212b2
Dedup `MainForm.CheckHotkey` with existing helpers / event handlers 2024-07-08 09:27:21 +10:00
YoshiRulz d515b1bdad
Document bare minimum of CLI flag parsing behaviour 2024-07-08 04:05:12 +10:00
YoshiRulz 5e5f5772c6
Enable Analyzer rules re: blank doc comments and fix noncompliance 2024-07-08 01:37:22 +10:00
YoshiRulz 9a82dfd05f
Enable SA1517 and fix noncompliance (except in Cores)
"Code should not contain blank lines at start of file"
2024-07-08 01:17:05 +10:00
YoshiRulz 39b69641a6
Enable SA1506 and fix noncompliance
"Element documentation header should be preceded by blank line"
also fixes typo in rule config from c93a0f9d1
2024-07-08 01:13:06 +10:00
YoshiRulz c93a0f9d1b
Enable SA1514 and fix noncompliance (except in Cores)
"Element documentation header should be preceded by blank line"
2024-07-07 12:12:08 +10:00
feos ee9639a6fc video dumper: mention dependency for AVC AVI 2024-07-06 19:05:33 +03:00
Morilli 4c39a81228 Remove unnecessary duplicated actions in TAStudio
this should not change any behavior.
2024-07-06 17:39:52 +02:00
Morilli d161215754 Don't control reboot in TAStudio
There seems to be no good reason for why this would be necessary. TAStudio behaves just fine when the MainForm reboots itself.
2024-07-06 01:56:13 +02:00
Morilli 74970cc576 Remove unnecessary Thread.Sleep(0)
In this same loop we are already sleeping when necessary, so this Thread.Sleep(0) could only add unwanted delay
2024-07-05 19:21:42 +02:00
CasualPokePlayer e48e6c69f2 respect GreenZoneSettings.txt even if greenzone is missing; fix ClientSettings.json loading (probably regressed in 42aa9d991dc3dde03234a15ddfdc2efdebf1c097?) 2024-07-04 21:34:09 -07:00
YoshiRulz 1c302e56db
Fix default arguments in `override`s which don't match the declaration
not enabling the relevant Analyzer rule MA0061 since that also triggers
when the override omits the default argument
2024-07-04 06:43:43 +10:00
YoshiRulz 1f7d75b7d2
Enable MA0044 and fix noncompliance
"Remove useless ToString call" (on a `string`)
2024-07-04 06:36:57 +10:00
YoshiRulz 9f0009b972
Use `HashCode.Combine` instead of `string.GetHashCode` + XOR
may write an Analyzer for this later
2024-07-04 06:31:44 +10:00
YoshiRulz 8546618c9a
Remove unused import
fixes da25438b1
2024-07-04 06:23:26 +10:00
YoshiRulz da25438b1f
Remove redundant `Stream.Read` result check in `LsmvImport`
fixes a7e1c8fd0
2024-07-04 06:18:54 +10:00
YoshiRulz b818f5325a
Enable MA0040 and silence remaining case
"Flow the cancellation token"
2024-07-04 05:48:35 +10:00
YoshiRulz a7e1c8fd09
Enable MA0060 and fix noncompliance (except in Cores)
"The value returned by Stream.Read/Stream.ReadAsync is not used"
2024-07-04 05:12:58 +10:00
YoshiRulz a329d44e41
Enable MA0090 outside of Cores project
"Remove empty else/finally block"
2024-07-03 23:11:48 +10:00
YoshiRulz c4498685c2
Enable MA0091 and fix noncompliance
"Sender should be 'this' for instance events"
2024-07-03 23:10:57 +10:00
YoshiRulz 67edf3f047
Enable MA0070 and fix noncompliance
"Obsolete attributes should include explanations"
2024-07-03 23:10:19 +10:00
YoshiRulz 152b3ad6f5
Enable MA0057 and fix noncompliance
"Class name should end with 'Attribute'" (when subclassing `Attribute`)
2024-07-03 23:08:23 +10:00
YoshiRulz 3fb0afa05e
Use a global import for `MS.VisualStudio.TestTools.UnitTesting.*` 2024-07-03 22:51:48 +10:00
YoshiRulz ccb69b18a9
Use a global import for `System.*` 2024-07-03 22:51:48 +10:00
YoshiRulz c0b676647b
Enable MA0104 and silence remaining cases
"Do not create a type with a name from the BCL"
2024-07-03 22:51:47 +10:00
YoshiRulz 1be3531e7c
Rename `GBHawk.Timer` to `GBHawk.GBTimer` 2024-07-03 22:51:47 +10:00
YoshiRulz 91c48117a3
Rename `BizHawk.BizInvoke.ParameterInfo` to `InvokerParameterInfo` 2024-07-03 22:51:47 +10:00
YoshiRulz db2782ca1b
Enable MA0140 and fix noncompliance (except in Cores)
"Both if and else branch have identical code"
see 618951403
2024-07-03 22:51:47 +10:00
YoshiRulz c188feb50c
Move `SimpleGDIPDisplayManager` to `BizHawk.Client.Common` 2024-07-03 22:51:19 +10:00
YoshiRulz db8454a0ff
Fix testroms project compilation
fixes e8c957a7a
2024-07-03 22:49:01 +10:00
YoshiRulz c6101a190e
Update StyleCop and other Analyzers 2024-07-03 20:44:25 +10:00
YoshiRulz 504ba590b1
Switch to `string.Replace(char, char)` and `string.LastIndexOf(char)` 2024-07-03 20:44:21 +10:00
YoshiRulz 0067dd4b0a
Extract helper method `HawkFile.PathContainsPipe` 2024-07-03 20:38:46 +10:00
YoshiRulz 43d16473d8
Backport `string.Contains(char)` and `string.EndsWith(char)` 2024-07-03 20:35:35 +10:00
YoshiRulz ad8b4653d4
Simplify `MovieImporter.SingleSpaces` 2024-07-03 19:43:43 +10:00
YoshiRulz 759784a648
Fix bug in PCEHawk's tracelog 2024-07-03 19:39:38 +10:00
YoshiRulz 17a268934e
Remove outdated comment
fixes b842f3ed1
2024-07-03 18:47:16 +10:00
feos fd40b32277 uae: for testing writing to floppy 2024-07-02 21:38:42 +03:00
Morilli 04e9bf054e Fix core reboot flag on preference change
This now checks core names instead of system ids
2024-07-02 02:14:07 +02:00
feos 97dc7108c3 uae: "support" rds and reduce magic 2024-06-30 15:48:08 +03:00
CasualPokePlayer 86943143f3 Fix SGM domains using stale arrays after state load 2024-06-28 22:37:56 -07:00
Morilli 384b08a7b7 Fix customization options dialog text overrun
Should now display all text on screen without cutting off.
2024-06-27 20:43:59 +02:00
Morilli 12981dc6df Add column name tooltip to column headers in TAStudio
- closes #3124
2024-06-27 02:45:22 +02:00
Morilli 2860a0189c Regenerate designer files after changes in last commit
restores previous default values after default changes in 7414aea850
2024-06-27 02:07:19 +02:00
Morilli 7414aea850 Fix InputRoll DefaultValue not matching initialized value 2024-06-27 01:54:37 +02:00
Morilli 722de0c765 Render before throttling
By putting the throttle step after the render step, the screen will be updated with the emulated frame's video output immediately instead of having to wait for the throttle sleep to complete.
In scenarios where running the core is relatively cheap (<< 1 / fps), this should noticably improve visual latency while playing.

For example, assuming a 60fps game (~16.7ms per frame), 5ms core update and 1ms render time, there will be a 10-11ms earlier render.
2024-06-26 23:32:51 +02:00
Morilli b3a1d5eb13 Increase input thread polling frequency
This does not have a significant impact on cpu usage in my testing (~+0.5% cpu on a 4-core system) and should improve input latency by 4ms on average.
2024-06-26 23:25:35 +02:00
Morilli bf82d95e0d Respect background input setting for axis values
- closes #3957.
Previously, axis values were always set, even when that setting was offf.
2024-06-26 23:19:56 +02:00
CasualPokePlayer 64ef1bfc17 Make NDS sys bus hack work better
fixes e6f8450685
2024-06-24 19:22:51 -07:00
CasualPokePlayer ce1df52af2 Fix ToSysdrawingBitmap(Bitmap) when bitmapbuffer does not have alpha
see https://tasvideos.org/Forum/Posts/530047
2024-06-24 12:27:51 -07:00
Morilli 31b8bedad7 Allow exporting bk2 from TAStudio without saved tasproj
- closes #3504.
This also makes the bk2 export always open a file picker dialog when the file to be written already exists instead of just asking for overwrite.
2024-06-24 18:19:34 +02:00
Morilli e6f8450685 Fix NDS System Bus name being invalid
- closes #3535
2024-06-24 13:49:11 +02:00
Morilli d7b92cbb72 Apply some free optimizations to TasMovieMarkerList 2024-06-24 12:05:45 +02:00
Morilli 1c3f7204bd Fix TAStudio branch load not cloning markers
-closes #3899
2024-06-24 11:59:38 +02:00
YoshiRulz f468d4ad01
Offer 1-click update/add cycle count when at end of movie 2024-06-24 03:42:09 +10:00
YoshiRulz 478d375fe5
Minor refactors to `MovieSession.HandlePlaybackEnd` 2024-06-24 00:29:18 +10:00
Morilli 8935a3a676 Don't attempt to load recent tas after restart if it's diferent from the current tas 2024-06-23 04:59:25 +02:00
Morilli 6cbf06d444 Enable the Movie menu even with no core loaded
- resolves #3570
2024-06-23 04:24:17 +02:00
Morilli 3841d88268 Regenerate MainForm.Designer.cs
this is not a functional change. I changed something, did ctrl+z and saved.
2024-06-23 02:53:49 +02:00
Morilli e1af631af6 Apply some sketchy nullable related changes
TasView_PointedCellChanged will now not short-circuit when the OldCell has null values (happens on MouseEnter mainly).
Also, null column is accepted as this allows dragging off-control without input being dropped.
Also, OldCell and NewCell are assumed to never be null (is true in the current logic).
2024-06-23 02:11:37 +02:00
Morilli 8278b30579 Do local selection check in TasView_PointedCellChanged 2024-06-23 02:09:00 +02:00
Morilli cfc76ee47a Fix subframe core check in tastudio bk2 exporting 2024-06-22 23:04:03 +02:00
Morilli ad1f4f40b5 Fix cheat compare value saving
- closes #3567, closes #3523
2024-06-22 21:13:37 +02:00
Morilli 6364475b21 Fix potential crash in savestate loading
Also throw when attempting to create such an invalid savestate. No idea yet how that can happen but apparently it can.
2024-06-22 01:41:01 +02:00
Morilli aeb80e5810 Implement DragDrop for MultiDiskBundler
- closes #3950
2024-06-21 20:15:10 +02:00
Morilli 542e043261 Change ToRawInt to ToRawUInt
I firmly believe this has advantages. Don't ask me which.
Also move ReinterpretAsF32 to BizHawk.Common and use it more
2024-06-21 17:14:11 +02:00
CasualPokePlayer a11077ef4e Revert "Simplify MainSlnExecutable.props"
This reverts commit 1edddb2126.
2024-06-20 16:21:58 -07:00
CasualPokePlayer 1edddb2126 Simplify MainSlnExecutable.props
makes it play nicer with Rider WinForms designer and is much simpler than what was present before

also not sure where the "TargetName changing AssemblyName" behavior actually came from, testing on Rider/dotnet build/VS2022 all yield no changes to AssemblyName, so I assume this is fine
2024-06-20 15:16:48 -07:00
Moritz Bender 256218305b
Refactor IControlMainform handling in Mainform (#3935)
This allows any loaded tool to control any aspect of `IControlMainform` independently of others. Also improves rewinder handling when any tool `WantsToControlRewind`.
2024-06-20 19:16:11 +02:00
Moritz Bender 1a9e5e52f1
Refactor RamSearch to increase speed and improve functionality (#3954)
- merges `IMiniWatchDetailed` and `IMiniWatch` into one
- allow switching search modes without restarting the search
- general speed improvements due to less peeks when e.g. auto-search is toggled
- removes `PreviousType.LastSearch` due to its questionable use case
2024-06-20 18:25:15 +02:00
CasualPokePlayer 866fb86b60 Guard against mismatched GPUs with D3D11 GL interop
resolves #3939
2024-06-19 23:04:03 -07:00
YoshiRulz a9df8b40d7
Simplify About dialog audio playback 2024-06-20 04:17:01 +10:00
YoshiRulz 3490b544b4
Have About dialog copy full Git commit hash to clipboard
and use full hash in GitHub web app URI
2024-06-20 04:01:58 +10:00
YoshiRulz e5dc04dc37
Move some version processing from About dialog to `VersionInfo` 2024-06-20 03:59:39 +10:00
Morilli 90c79d2220 ensure tests don't fail 2024-06-18 21:33:56 +02:00
Morilli f6d5271c61 Add test file just to be sure 2024-06-18 21:14:35 +02:00
Morilli 8abe276829 Give slightly more infformation in LoadOrThrow 2024-06-18 20:53:46 +02:00
Morilli 89824bac1c Simplify ReinterpretAsF32 2024-06-18 20:53:20 +02:00
CasualPokePlayer 6f68c84d8f bump up max samples for melonDS 2024-06-16 23:30:53 -07:00
YoshiRulz ae74e37d2d
Fix AooRE due to malformed response from wbox core (seen in melonDS) 2024-06-17 15:59:44 +10:00
CasualPokePlayer d52e67b9e9 Don't use ToLower() 2024-06-16 21:28:50 -07:00
CasualPokePlayer a9c04524c7 get ICycleTiming from service provider
fixes 87209aa11b
2024-06-16 21:27:05 -07:00
CasualPokePlayer 87209aa11b Add way to unregister auto-registered services with BasicServiceProvider
allows for better handling with SubNESHawk and Libretro statable, maybe others
2024-06-16 21:18:24 -07:00
CasualPokePlayer 145e0431d0 Register IDriveLight for SubNesHawk
fixes another issue pointed out in #3949
2024-06-16 20:57:06 -07:00
CasualPokePlayer d2869686dc Hook up FDS and VS controls for SubNesHawk
fixes #3949
2024-06-16 20:55:34 -07:00
feos acca29a66e uae: allow loading HDFs even tho they give black screen now 2024-06-17 02:36:03 +03:00
Morilli 4cfaf74837 Simplify this function 2024-06-17 01:22:53 +02:00
Morilli bbd21eb775 Prefill values in the MultiDiskBundler from currently loaded xml
If the currently loaded "rom" is an xml, the MultiDiskBundler will now prefill its text boxes with the information from that xml instead of leaving everything empty.

- closes #3947
2024-06-17 01:11:52 +02:00
Morilli a364ec9a11 Allow creating MultiDiskBundler xmls with absolute paths 2024-06-17 01:08:49 +02:00
Morilli ec1c27596b Reduce unnecessary action duplications in MultiDiskBundler 2024-06-17 00:47:01 +02:00
Morilli 85886bc2cd Don't freeze first selection in HexEditor when freezing was canceled
- fixes #3833

The entire "primary highlight" + n "secondary highlights" system seems overengineered, but I chose to just fix this in the simplest way possible.
2024-06-16 19:54:54 +02:00
Morilli b904041edd Fix clear all / clear current tab buttons in hotkey config
fixes 3a2b3e1d06.

I fixed the incorrect logic but forgot to reverse the parameter.
2024-06-16 16:31:37 +02:00
Morilli 3a2b3e1d06 Add button to hotkey config to restore defaults for the current tab
- closes #3900
2024-06-16 16:27:20 +02:00
Morilli 33d34dca78 Ignore Restart in RamSearch when form hasn't loaded yet
- closes #3724
2024-06-15 17:38:04 +02:00
feos 4d4333aa19 uae: mnemonics 2024-06-14 12:07:25 +03:00
feos d3c560b0df uae: eject when inserting
less repeated magic
2024-06-14 10:58:42 +03:00
CasualPokePlayer f54faf4e7b Expose SGM memory for RetroAchievements
see https://github.com/RetroAchievements/rcheevos/pull/350
2024-06-13 20:21:11 -07:00
CasualPokePlayer bc1fa455f3 Fix Hex Editor scroll bar; include older dpiAware for < Win 10 v1607 2024-06-13 19:10:14 -07:00
Morilli 2cf2eaf643 Make OSD scale float to more accurate match system scale 2024-06-14 03:11:39 +02:00
Morilli 6200a12d9c Revert back to system level dpi awareness for now 2024-06-14 03:03:04 +02:00
CasualPokePlayer 99ba03823a Add back dpiAware stuff in app.manifest
also make it so it uses the newest dpiAware possible
2024-06-13 17:04:33 -07:00
feos ab20bb8eb5 simplify 2024-06-14 01:29:15 +03:00
feos 0069c6825b analyzer
(disks will be supported later)
2024-06-14 00:39:06 +03:00
feos a01a7bb61e uae: swapper 2024-06-13 23:13:42 +03:00
feos 939762d9fb uae: cd swapping will happen later 2024-06-13 19:07:15 +03:00
feos 52fb840b0e uae: swapper wip 2024-06-13 17:33:55 +03:00
CasualPokePlayer 830f5ba205 Add Amiga support for RetroAchievements 2024-06-12 23:38:18 -07:00
feos 1a62b7874c uae: allow limiting drive count 2024-06-13 00:13:16 +03:00
feos c39da847c2 uae: support up to 4 floppies through xml bundler 2024-06-12 23:49:20 +03:00
Morilli 712c82b0df Fix running on mono harder 2024-06-12 18:36:40 +02:00
feos 72f9e6c952 uae: move 2024-06-12 13:42:20 +03:00
feos 9c1db0a0cc uae: sound_stereo_separation 2024-06-12 13:38:59 +03:00
feos 4b17feaca0 uae: standalone core settings 2024-06-12 13:05:02 +03:00
feos b98045108f uae: refactor settings
enable cycle exact for cpu below 68030
add mouse speed
2024-06-12 12:57:51 +03:00
YoshiRulz cbf1bc6abf
Simplify parsing of `--dump-frames` flag 2024-06-12 06:43:05 +10:00
YoshiRulz 044729cc57
Change `SocketServer.Port` to a u16 (y'know like ports are) 2024-06-12 06:40:24 +10:00
YoshiRulz b742998296 Remove `CoreSystem` enum 2024-06-11 19:43:32 +02:00
feos 472f881f24
PUAE core (#3941)
* puae wbx submodule
export symbols
load core
firmware and command line args to core
input
settings
2024-06-11 16:02:38 +03:00
YoshiRulz bfc03434fa
Comment-out unit test cases which assume too much about filesystem 2024-06-11 16:31:48 +10:00
YoshiRulz 155ea9ac79
Remove `IGameInfoApi` which was deprecated in 2.9 2024-06-11 16:27:39 +10:00
YoshiRulz 6c27e89bc7
Remove unused `BizHawkSystemIdToEnumConverter` instance
fixes 64a6700cc
2024-06-11 16:12:45 +10:00
YoshiRulz 875e26d3ca
Remove `CoreSystem` enum 2024-06-11 16:06:40 +10:00
YoshiRulz 64a6700cc7
Remove ext. tool attributes which were deprecated in 2.9 2024-06-11 16:06:27 +10:00
YoshiRulz 415f0cc98c
When core preference changes, set for all sysIDs in group
see 823ce4f78
2024-06-11 14:07:23 +10:00
CasualPokePlayer 96f5a4b100 Fix running on Mono 2024-06-10 11:32:32 -07:00
Morilli 2765da78ef make Bk2LogEntryGenerator.GenerateLogKey static
there is no reason for it to be an instance method
2024-06-10 15:49:05 +02:00
Morilli f679d8622f Add offscreen mnemonic for SNES system 2024-06-10 15:46:32 +02:00
Morilli f99a09283a add TODO comment to BkmImport 2024-06-10 15:44:27 +02:00
YoshiRulz 14cf4b3486
Re-use SSoT when initialising `Config.PreferredCores`
could have been a static readonly field but it should be called at most
once per program lifecycle
2024-06-10 21:03:26 +10:00
YoshiRulz a8b0e74185
Maybe fix PowerShell script not running in CI
fixes c5f6dcd4e, reverts 68c160b96
2024-06-10 20:56:07 +10:00
CasualPokePlayer 823ce4f783 Add missing default entries to PreferredCores
there's some logic *somewhere* in the core to compensate for missing entries by populating the first item on the list with the first sysid applied to, but that ends up missing other sysids that item applies to, not sure where that code is, probably should be fixed?
2024-06-09 19:58:42 -07:00
Morilli 42aa9d991d Reduce hacks and duplication in TAStudio movie loading
Previously, there was no way to load a movie without saving it to a file first. This has been changed, so lots of saves and loads are no longer necessary.
This also partially gets rid of the default.tasproj, although the name is still used as a placeholder for now.
2024-06-10 04:02:38 +02:00
Morilli 0165b5f286 Allow editing subtitles and comments from PlayMovie
also resolve a TODO in regards to TasMovie disposing
2024-06-10 03:48:32 +02:00
CasualPokePlayer efc6674215 delete GenDbgHlp.cs
unused ancient code from pre-wbx days it seems?
2024-06-09 18:06:53 -07:00
CasualPokePlayer dc391721c8 Add SMS Pause button for GPGX; do various cleanups/misc fixes
resolves #3942
2024-06-09 17:51:54 -07:00
CasualPokePlayer fb76975bd2 Fix bugs in LoadM3U 2024-06-09 11:58:13 -07:00
Morilli c94c3a6fb1 Don't generate `LogKey:` in GenerateLogKey
this would cause `LogKey:LogKey:...` to get written when setting the value with the result of a GenerateLogKey call.
Luckily this was not an issue for us because the reading code indescriminately replaces all occurances of `LogKey` with nothing.
2024-06-09 20:07:40 +02:00
Morilli 0a95d86094 Optimize LsmvImport 2024-06-09 20:00:56 +02:00
YoshiRulz 68c160b96b
Skip trying to install Git hooks in CI 2024-06-09 22:29:46 +10:00
YoshiRulz c5f6dcd4e8
Make PowerShell strictly optional for Git hooks
...and remove auto-`dotnet tool restore`. If you don't have PowerShell
on `$PATH`/`%PATH%`, Git hooks will simply not be ran.
I still intend to migrate the rest of `/Dist` to PowerShell. Undecided
on unmanaged cores and wbox.
2024-06-09 12:51:32 +10:00
Morilli f0bc8fbd2e Discard apihawksurface in TAStudio LoadState when frame advancing after
This fixes an issue where lua scripts could write to the screen twice when seeking to a frame in TAStudio as the screen was not cleared between the load and the following frame advance.

This fixes / expands 1a9176e12f.
2024-06-08 14:42:38 +02:00
CasualPokePlayer bcc0d83bf0 Fix OpenGL shared contexts not actually being shared 2024-06-07 23:41:13 -07:00
CasualPokePlayer 5ad4e457d3 Make sure to scale up message coordinates too 2024-06-07 23:08:14 -07:00
CasualPokePlayer e8c957a7a8 Scale OSD text according to display scale
fixes #2605
2024-06-07 23:00:07 -07:00
YoshiRulz 4a54a99dbb
Fix typo
fixes 028861f01, reverts 1f41f5ff2
deja vu
2024-06-08 13:02:37 +10:00
YoshiRulz 028861f010
Change label of TAStudio's pause button again
reverts a123776fe and 1f41f5ff2
2024-06-08 12:36:54 +10:00
CasualPokePlayer c825603d23 Update ported core version listings 2024-06-07 18:54:41 -07:00
Morilli b487782eec Update outdated app config values 2024-06-07 17:12:35 +02:00
YoshiRulz cbf0728d4e
Scale back autorestore of dotnet tools to only be in `BizHawk.Common`
fixes f58b4640c
and to be fair this was the one place actually using a tool during the
build process, so it makes sense to keep them together I guess
2024-06-07 22:11:26 +10:00
YoshiRulz f58b4640c5
Have local dotnet tools restored with NuGet packages
reverts 8f7e61339
2024-06-07 22:03:16 +10:00
YoshiRulz 5c31711710
Automatically install client-side Git hooks
This is how npm-style RCE hacks happen by the way. You should all be
vetting `dotnet-tools.json` and all MSBuild and PowerShell scripts.
2024-06-07 15:39:44 +10:00
CasualPokePlayer 1a318941ff Fix 3DS tilting
resolves #3931
2024-06-06 21:41:56 -07:00
CasualPokePlayer be4f6c4148 More fixes for TIC80 mouse input 2024-06-06 17:25:09 -07:00
CasualPokePlayer 8fb2ba6afa Fix TIC80 mouse inputs
resolves #3938
2024-06-06 15:18:45 -07:00
CasualPokePlayer a7c8156710 fix build 2024-06-06 13:51:19 -07:00
CasualPokePlayer 43a621a695 Handle nand/firmware a bit bitter; add sound interpolation options; add hybrid screen option 2024-06-06 13:50:29 -07:00
Morilli 890111703f Simplify NESHawk InitialWRamStatePattern 2024-06-06 14:39:51 +02:00
Morilli 3b3fa2e96d Simply TAStudio ClientSettings loading 2024-06-06 14:00:46 +02:00
Morilli 1da58888ff exterminate File.OpenWrite usage 2024-06-06 13:56:42 +02:00
CasualPokePlayer 9ff8f6b63a remove some unused imports 2024-06-06 00:45:12 -07:00
CasualPokePlayer 7ec0a4c4af seal NDS
shuts up a warning
2024-06-06 00:43:49 -07:00
CasualPokePlayer b7265e2f39 Update melonDS 2024-06-05 23:37:53 -07:00
YoshiRulz 75502e7ffb
Unimplement `IEnumerable` on `RecentFiles` and `PathEntryCollection` 2024-06-06 14:36:34 +10:00
YoshiRulz fab1fae66a
Use `nameof` for `[CallerArgumentExpression]` 2024-06-06 14:11:24 +10:00
YoshiRulz e468d6ee76
Fix target-gated `#if`s to cover every applicable TFM 2024-06-06 14:07:19 +10:00
YoshiRulz 7691f2f724
Fix possible mismatch between `$(IsTargetingNetFramework)` and TFM
just in case
2024-06-06 13:16:12 +10:00
YoshiRulz 4e6559af39
Populate the default window scales for a few sysIDs 2024-06-06 13:08:02 +10:00
YoshiRulz df05537ca6
Replace `ZoomFactors` with a plain `Dictionary` 2024-06-06 13:02:11 +10:00
Morilli 7bb7cdeaee Don't double-load subtitles from movies
this duplicated all subtitles on every load... ???
- fixes bc16a2cdaa
2024-06-05 22:40:38 +02:00
Morilli 6ffe5a0d5d Fix the Subtitles button in PlayMovie not showing the form
it was immediately disposed woops
2024-06-05 19:28:44 +02:00
Morilli f90cd201bc Use `UseWindowsForms` instead of Reference
it's the modern way and there's some implications of not having it set for VS for example
2024-06-05 19:25:21 +02:00
kalimag 2c6129fb68
Fix possible TAStudio NRE (squashed PR #3936)
* Skip `AskSaveChanges` in disposed `TAStudio`, fix #3499

* Revert "Skip `AskSaveChanges` in disposed `TAStudio`, fix #3499"

This reverts commit eabe939547.

* Stop calling `AskSaveChanges()` on inactive tools, fix #3499
2024-06-05 10:00:55 +10:00
hegyak 5da5697f8f
Better Firmware Names (#3766)
* Better Firmware Names

Renaming Firmware Files based on System Name as BizHawk uses or at least renamed to be related to what it's for.

Unify Firmware names for Vectrex, Lynx, MSX resolve Name Collision, Odyssey 2 G7400, Gameboy, GameBoy Color.

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2024-06-04 13:37:38 +02:00
Morilli dbb106e407 fix O2 platform frame rates rounding
fixes 1cf5af83dd
2024-06-03 18:42:10 +02:00
kalimag 1b961f248d
Sanitize text pasted into hex text boxes (squashed PR #3684)
* Sanitize text pasted into hex text boxes

Trim `0x` and `$` prefixes and whitespace pasted into `HexTextBox` and `WatchValueBox`. Prevent pasting non-hex text.

Add `ClipboardEventTextBox` control with `OnPaste` event

* Fall back to trapping paste keyboard shortcuts on Linux

* Adjust code style, seal `PasteEventArgs`

* Use slightly more sophisticated shared method for sanitizing hex strings

* Use moderately more sophisticated method for sanitizing hex strings

* More `string.Empty`

* Add some comments

* Code style

* Remove superfluous format check
2024-06-03 18:08:50 +10:00
YoshiRulz ec8ba06dbe
Attempt to fix NRE when importing `.bk2` into TAStudio 2024-06-03 09:32:49 +10:00
CasualPokePlayer 1d5a9e521d Fix some more off by ones with imgui 2D renderer
thanks GDI+
2024-06-01 17:09:12 -07:00
YoshiRulz 1f41f5ff20
Fix typo
fixes a123776fe
2024-06-02 08:54:43 +10:00
YoshiRulz a123776fe6
Change label of TAStudio's pause button 2024-06-02 08:49:57 +10:00
CasualPokePlayer c1d5d17771 Fix off by ones for drawPolygon 2024-06-01 15:24:43 -07:00
CasualPokePlayer f13f69b1ed Try fixing filling arbitrary polygons 2024-06-01 15:16:59 -07:00
YoshiRulz bc9f4afe76
Add PSX on PSP BIOS 2024-06-02 08:00:00 +10:00
YoshiRulz e18a3494c3
Change `Acceptable` PSX BIOS options to `Ideal` 2024-06-02 07:55:26 +10:00
CasualPokePlayer 1a9176e12f Fix "double rendering" in Lua/ApiHawk gui stuff 2024-06-01 14:01:01 -07:00
CasualPokePlayer dcfe55360a Prevent textures being created over the maximum texture dimension, fixes #3341 2024-06-01 13:14:19 -07:00
CasualPokePlayer 07ee33b777 Fix build 2024-06-01 08:21:30 -07:00
YoshiRulz a81adfff41
Bump Magick.NET 2024-06-01 18:04:16 +10:00
YoshiRulz 64db1febbb
Fix NRE when flushing SaveRAM in GambatteLink for some roms
fixes d788e603f
not clear on the reproduction steps, but it will of course involve a rom
which triggers the "no SaveRAM, return null" in Gambatte
2024-06-01 17:30:00 +10:00
CasualPokePlayer 0488bbd33a Fix mupen grabbing an OpenGL context based on whatever current version/flag attributes were present
This is global state that gets mucked by us since we also use SDL2 to handle OpenGL context management, Rice/Glide/Glidemk2 don't like core contexts due to them using old deprecated functionality
2024-05-31 20:50:48 -07:00
YoshiRulz d2ea93d5e2
Mark checksum and Lua test classes as single-threaded 2024-06-01 09:45:47 +10:00
Morilli 657531a328 Fix ConvertFilenameToTasMovie test 2024-05-31 19:08:40 +02:00
YoshiRulz 6bc771bf57
Use simpler implementations for "Different by" in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
YoshiRulz 72a7df1227
Be consistent with `SignExtendAsNeeded` in `CompareSpecificValue`
not sure why it's applied to the pivot value here but not in
`CompareDifference`, frankly I'm not sure what it actually does
2024-05-31 13:21:13 +10:00
YoshiRulz 46584cee10
Fix remaining float comparison bugs in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
YoshiRulz b279a6bdb0
Move some conditionals outside blocks in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
YoshiRulz 625a7438fd
Use JIT-friendly array iteration in `RamSearchEngine.Start` 2024-05-31 13:21:13 +10:00
YoshiRulz 7d5574910c
Unindent many blocks in `RamSearchEngine` 2024-05-31 13:21:13 +10:00
CasualPokePlayer 515050d76a Remove unused import 2024-05-30 19:00:54 -07:00
CasualPokePlayer a84f5c8b17 Bump up FFmpeg writer to the first AV writer slot
fixes #3915
2024-05-30 19:00:18 -07:00
YoshiRulz 089b7ed6c5
Fix RAM Search using numeric conversion for float in comparisons
(instead of a reinterpret-cast, which its counterpart in the UI was
correctly using)
2024-05-31 11:51:41 +10:00
CasualPokePlayer 40e7297272 Add PSX DCache to RetroAchievements memory map
see https://github.com/RetroAchievements/rcheevos/issues/345 and https://github.com/RetroAchievements/rcheevos/pull/346
2024-05-30 09:39:26 -07:00
YoshiRulz b5ff65f2cb
Add Analyzer to enforce spaces in `[]` 2024-05-30 15:51:20 +10:00
CasualPokePlayer 7e6e9705ae Update libstdc++ dll and friends, also fix a crash in gambatte due to OOB string accesses 2024-05-29 18:59:11 -07:00
YoshiRulz a1256782fc
Bump `<LangVersion/>` for satellite .NET projects 2024-05-30 10:44:55 +10:00
CasualPokePlayer 7a959ffb55 Fix BizHawk.Tests.Testroms.GB build 2024-05-29 16:34:02 -07:00
YoshiRulz 01bea49ee0
Misc. refactors, reverting some code style "fixes" 2024-05-30 09:22:18 +10:00
YoshiRulz b8c600783a
Apply `<GenerateDocumentationFile/>` to satellite .NET projects 2024-05-30 09:22:17 +10:00
CasualPokePlayer e46267494d Fix BizHawk.Bizware.Test and related 2024-05-29 16:02:49 -07:00
Morilli 1da8cb9bc1 fix ExternalToolManager Fail logic for windows 2024-05-29 18:20:39 +02:00
James Groom bd786a0e95
Downgrade `<LangVersion/>` for external .NET projects
fixes 62b8ec457
2024-05-29 10:36:38 +10:00
YoshiRulz 9eb9ffa5df Enable nullability for `Cell` and co. and clean up 2024-05-29 06:24:52 +10:00
Morilli f83602c1c9 simplify and optimize some variables in DisplayManager 2024-05-28 15:17:32 +02:00
Morilli 62b8ec4578 Bump LangVersion to 12
- fix IDE0100
- fix IDE0230
- a couple of usages of the collection expression
2024-05-28 15:13:14 +02:00
CasualPokePlayer ea042d1a70 Update version info for ares
(also despite what previous commits said it was in fact updated to v138 i put in v134 by mistake urk)
2024-05-27 22:09:24 -07:00
CasualPokePlayer 70c1d90eea Document newer gui.*string/text behavior. 2024-05-27 14:55:32 -07:00
CasualPokePlayer 0c6df6e79b Don't clamp touch/screen coord transformations 2024-05-27 13:33:46 -07:00
feos c65a11eb2b fix #3917
[genesisplusgx] "VDP mode" option (for eliminate region lockups / megakey behavior) #3917
2024-05-27 19:55:45 +03:00
CasualPokePlayer ab5d4750da Add backwards compat hack for DrawRectangle; make sure images displayed have normal blending (GDI+ apparently did this?) 2024-05-25 18:17:04 -07:00
CasualPokePlayer cb901b3aff simplify drawRectangle 2024-05-25 17:42:27 -07:00
CasualPokePlayer efee5f0cb3 properly dispose everything when disposing the imgui resource cache 2024-05-25 16:25:44 -07:00
CasualPokePlayer 3716a65638 Fix unwanted bitmap disposing 2024-05-25 16:24:40 -07:00
CasualPokePlayer d6fda19d2e Fix texture caching in imgui 2d renderer 2024-05-25 16:14:48 -07:00
CasualPokePlayer 32c0bc0c73 fix drawLine off by ones correctly (again) 2024-05-25 14:15:15 -07:00
CasualPokePlayer 766da10a1d Fix another off by one for drawLine 2024-05-25 13:36:15 -07:00
CasualPokePlayer 51dac42195 fix drawLine properly 2024-05-25 13:16:52 -07:00
CasualPokePlayer 99cf91e6ca Fix off by one in drawPixel 2024-05-25 13:08:46 -07:00
CasualPokePlayer 8b9473957f Fix off by one for drawLine 2024-05-25 13:04:56 -07:00
CasualPokePlayer c85ab6cbe6 Try to fix double drawing in rectangle corners 2024-05-25 12:51:49 -07:00
CasualPokePlayer 75064675f1 Mostly correct blending for 2D renderers 2024-05-25 12:01:52 -07:00
CasualPokePlayer 9bc3e182f9 Fix DrawBox calculation 2024-05-24 22:52:58 -07:00
CasualPokePlayer 0551295157 Fix glDrawElementsBaseVertex call
indexStart should indicate the starting index element, but glDrawElementsBaseVertex expects the byte offset (i.e. 2 * indexStart)
2024-05-24 21:20:22 -07:00
CasualPokePlayer 8b969dfeab Correct uSamplerEnable uniform in ImGui shader; make sure to pop the unused imgui command before rendering
Makes gui.drawString somewhat work under OpenGL, but there's still something wrong when it's combined with other draw functions
2024-05-24 20:45:40 -07:00
CasualPokePlayer 476ac94d80 Add GPU acceleration for most of ApiHawk's GuiApi (gui.* lua APIs), refactor ApiHawk surfaces 2024-05-24 13:26:58 -07:00
Sergio Martin cadd5c7f2e Fixing a wrong variable name that caused a crash in GPGX's load state 2024-05-24 04:13:11 +10:00
Morilli 3bab84445c gpgx: implement paddle controller 2024-05-23 11:51:23 +02:00
Morilli fe645025eb gpgx: fix INPUT_SYSTEM enum 2024-05-23 11:50:42 +02:00
Morilli 955e35b61f simplify away FileInfo calls 2024-05-23 06:04:37 +02:00
James Groom 5e8cc23f75
Fix ext. tool dependencies not loading in Release config
and improve logging
2024-05-23 02:45:23 +10:00
CasualPokePlayer 8eb3b62724 Choose the DXGI swapchain model better 2024-05-20 22:30:12 -07:00
CasualPokePlayer ddf9a70bcf Do minor cleanups with D3D11 handling 2024-05-20 22:10:49 -07:00
CasualPokePlayer 2dd9284b76 Get DXGIFactory*s from the created D3D11 device instead of creating our own
Creating our own usually ends up working, but for some setups it does not (seen in Win7 VirtualBox setup)
2024-05-20 21:52:55 -07:00
CasualPokePlayer ef05b6ec2f Add OpenGL <-> D3D11 interop handling
Lets D3D11 display method take a wrapping GL tex id fast path, avoiding a CPU readback for GL cores. Requires the WGL_NV_DX_interop2 extension (which is probably somewhat well supported by GPUs?)
2024-05-20 14:54:04 -07:00
Morilli d9ac6fc455 attempt to fix fceux movie import hash check 2024-05-20 19:47:46 +02:00
CasualPokePlayer f04c85f249 Create IPipeline and classes for it, consolidate pipeline resources/creation of those resoures into pipeline construction, remove old OpenGL legacy binding 2024-05-19 20:01:10 -07:00
CasualPokePlayer 8aac335d9b Change RenderTarget to IRenderTarget, implement classes accordingly
Changes GDI+ handling quite a bit, hopefully didn't break anything
2024-05-18 01:26:37 -07:00
CasualPokePlayer 25f62c6620 Beginnings of IGL split-up, make Texture2d into an interface and make classes for each IGL implementation for this interface, do cleanups from this 2024-05-16 22:25:39 -07:00
CasualPokePlayer ea068cf70d Optimize GDI+ control rendering, maybe fix GDI+ rendering on Linux? 2024-05-16 16:41:35 -07:00
James Groom 84fd85c749
Fix `.tasproj` autoload loading mismatched savestates 2024-05-17 09:16:41 +10:00
James Groom a63efffa14
Fold some long lines 2024-05-17 09:07:45 +10:00
James Groom 3c06face00
Prevent infinite loop in `BinaryReader.ReadByteBuffer` extension 2024-05-17 09:06:48 +10:00
James Groom 51b64f63f1
Fix off-by-one in edge cases for `tastudio.ongreenzoneinvalidated`
fixes ad07eb857
also updated the docs to match the actual behaviour
2024-05-17 08:36:09 +10:00
CasualPokePlayer 1260ecd01a Avoid hard depending on Direct3D 11.1, slighly optimize presentation 2024-05-16 14:50:56 -07:00
CasualPokePlayer bfec776bd7 remove D3D9-syntax from default d3d11 vertex/pixel shader, split the shader into two (more efficient for constant buffer usage) 2024-05-15 18:40:01 -07:00
CasualPokePlayer f78fcc82e3 Giant reorg, move most of Bizware.BizwareGL to Bizware.Graphics, remove some unused code, de-duplicate more code
TODO: Change a lot of these IGL resources into interfaces (instead of doing IGL specific things for that instance in the opaque member)
2024-05-15 18:09:08 -07:00
James Groom d787c0fefc
Allow `InputRoll.QueryRowBkColor` to be used without `QueryItemBkColor` 2024-05-16 03:31:34 +10:00
James Groom fdc45cd61a
Reorder debug utilities menu 2024-05-15 23:41:06 +10:00
CasualPokePlayer 92633e7743 Add IGL extensions to replace a ton of overloaded calls, remove BeginScene/EndScene (mostly just D3D9 specific, not relevant nowadays; GDI+ usage seemed to not be needed in reality), misc cleanup 2024-05-14 19:10:33 -07:00
James Groom a2bcbbdfb8
Set a couple extra test runner parameters for main project 2024-05-15 11:10:11 +10:00
YoshiRulz 9fb98ef5ef Retarget testroms projects to `net48` to match EmuHawk 2024-05-15 10:47:38 +10:00
YoshiRulz 7e974c3475 Update lists of known testrom failures 2024-05-15 10:47:38 +10:00
YoshiRulz 66e6aa7eb8 Tell GitLab CI to continue running tests in .NET 8
fixes afc181c40
sort of defeats the purpose, but hey it was working before, and
compilation errors will still be caught automatically
2024-05-15 10:47:38 +10:00
CasualPokePlayer 60d90a32ad Remove ability to specify texture wrap mode (never was ever used besides the default clamping); merge specifying min/mag filters into one function (with only linear/nearest neighbor options) 2024-05-14 17:28:49 -07:00
CasualPokePlayer b38344077f Cleanup some IGL_OpenGL variables, slightly optimize Draw() calls 2024-05-14 17:00:45 -07:00
James Groom afc181c40b
Retarget main test project to `net48` to match EmuHawk
I swear the test runner didn't use to pick up Mono, otherwise I wouldn't have gone for .NET Core, but clearly it does now
2024-05-14 23:02:08 +10:00
James Groom 4dadbbe42e
Mark this Windows-only test method as such
apparently this works anyway under .NET Core on Linux
2024-05-14 22:51:51 +10:00
CasualPokePlayer f2f23b088d minor cleanups/fixes from last commit 2024-05-14 01:45:57 -07:00
CasualPokePlayer e293e02369 Replace D3D9 IGL impl with a D3D11 IGL impl 2024-05-14 01:37:59 -07:00
James Groom 0122dec099
Warn at runtime if a lowercase/invalid hash is added to FWDB (resolves #3916)
left the existing unit test untouched
2024-05-12 07:41:14 +10:00
James Groom ae1692f2e1
Fix passing value instead of name to AooRE
and leave a note for myself re: patches
2024-05-12 07:24:04 +10:00
CasualPokePlayer e86bbb6136 Fix building on Linux 2024-05-11 01:18:08 -07:00
James Groom d8ba3d2448
Enable running unit tests in parallel
not that it has a noticeable effect, I'm really just leaving this here so I don't forget later
2024-05-11 04:17:59 +10:00
James Groom 1c33e2bad8
Actually fix indentation in project files 2024-05-10 18:38:26 +10:00
CasualPokePlayer 702080e582 Fix tab/spacing for MainSlnExecutable.props 2024-05-09 19:53:35 -07:00
CasualPokePlayer 8a8d739fc4 Restore `<OutputPath/>` for library projects to implicit default, rework post build copying to play nicer with IDEs 2024-05-09 19:50:43 -07:00
CasualPokePlayer 8577a286a6 Revert "Restore `<OutputPath/>` for library projects to implicit default"
This reverts commit 0008531537.

Do not remove this, not until non-exe projects are doing the copying to output/dll after their post build events instead of relying on the exe project post build event to do that.
2024-05-08 22:31:17 -07:00
James Groom 0008531537
Restore `<OutputPath/>` for library projects to implicit default
see 597d2e244
2024-05-09 15:24:21 +10:00
kalimag b0fee2bbbb
Update `CurrentlyOpenRom` before `Tools.Restart` (#3691) 2024-05-07 11:44:56 -05:00
Morilli e78e53ba72 fix avwriter warning display text 2024-05-07 14:51:04 +02:00
100thCoin c380a60010 Update NESPPU.Designer.cs
Expanded the palette viewer to show all the palettes.
2024-05-07 15:55:47 +10:00
CasualPokePlayer 6967cff72d Add newly discovered CGB bootrom entry 2024-05-06 12:05:38 -07:00
James Groom d38b6d02d2
Add build flag for easily overriding TFMs
Despite the name, this affects libs too, since those have to match (at least in terms of Framework vs. Core).
For example, you could build for .NET Framework 4.6.1 with:
`Dist/BuildDebug.sh -p:ExecProjTargetFrameworkOverride=net461`
and I believe that will run on XP and later... not sure about building for 32-bit machines though, hopefully that doesn't require code changes.
You can't go below `net461` because some of our NuGet dependencies aren't available on those targets.
You may pass .NET Core TFMs, but for that you should check out the existing branch+PR.
2024-05-07 00:56:05 +10:00
James Groom b8f2437e8c
Add a few `#if`s to fix errors when targeting `net461` 2024-05-07 00:47:16 +10:00
James Groom 7f574eec25
Extract constant from attribute calls in `LibRCheevos` 2024-05-07 00:40:38 +10:00
James Groom a3f8f04d20
Use type check syntax in BizInvoke rather than `GetType` + `==` 2024-05-06 20:39:52 +10:00
CasualPokePlayer 9a60f84ff6 Remove DirectSound support
This has been the source of various reported odd issues/crashes due to buggy DirectSound drivers. DirectSound is just deprecated anyways, and the code handling it is very fragile and filled with hacks. XAudio2 would be preferred in practically any case (not to mention XAudio2 is built-in for modern Windows versions, with some redist version available for older Windows versions). OpenAL works fine as a substitute in case XAudio2 isn't available.
2024-05-05 17:52:44 -07:00
Morilli 706d7c43e6 fix build 2024-05-06 01:53:27 +02:00
KshitijKapoor8 6754120dc7 Updated Amstrad CPC Non-Sync Settings name 2024-05-06 09:11:39 +10:00
CasualPokePlayer 4d5e588a59
Remove DInput input adapter (#3867) 2024-05-05 14:19:05 -07:00
James Groom 348866b75a
Fix NRE in `movie.getinput` 2024-05-06 01:20:58 +10:00
CasualPokePlayer 597d2e244f Revert "Don't set output path for non-exe projects"
This reverts commit 41e7c04678.
2024-05-04 17:48:25 -07:00
CasualPokePlayer 7fa3288d01 Corrections to chd
CHD seems to poorly define how to handle subchannel data, this is a best guess based on what seems to be the intent of the code
2024-05-03 22:58:56 -07:00
CasualPokePlayer 6cab4a4f99 Switch libchdr to chd-rs 2024-05-02 22:14:56 -07:00
CasualPokePlayer 186a4a16f4 Fix off by one in SGB memory handling for RetroAchievements 2024-05-02 20:22:51 -07:00
CasualPokePlayer 125c11c57c Update RetroAchievement memory map for GB/C
see https://github.com/RetroAchievements/rcheevos/pull/329
2024-05-02 17:17:17 -07:00
CasualPokePlayer cc4b693c8b fix another comment 2024-05-02 15:33:08 -07:00
CasualPokePlayer 2fb02110c1 fix comment 2024-05-02 15:32:32 -07:00
CasualPokePlayer 1a0bdc521c HAWK'd CHD support in DiscoHawk 2024-05-02 15:29:16 -07:00
James Groom 9c74104e77
Re-order preferred cores menu, have invalid values auto-set to first
...upon opening menu
note that first != empty-config default (though with this commit, they all match)
2024-05-01 23:46:55 +10:00
CasualPokePlayer c2f549d02c Move zstd wrapping code to BizHawk.Common
thanks delegate*
2024-04-30 22:44:06 -07:00
CasualPokePlayer f0a2ea1ed2 don't init gpgx trace buffer when not emulating genesis, more proper genesis bootrom firmware handling 2024-04-30 20:58:03 -07:00
CasualPokePlayer 7fb09637de retroachievement fixes for gpgx sms/gg support 2024-04-30 20:22:05 -07:00
CasualPokePlayer 8b45f93aad Fix z80 bus not being added for gpgx mem domains 2024-04-30 20:11:13 -07:00
CasualPokePlayer e9af682975 Fixes/cleanups C# for GPGX (mainly for SMS/GG mode) 2024-04-30 20:08:23 -07:00
CasualPokePlayer 5fc8dd6690 Better-ish VirtualWidth/Height for GPGX 2024-04-30 14:50:06 -07:00
CasualPokePlayer b37bc7b5ff Fix #3905 2024-04-30 12:22:48 -07:00
James Groom 9087538a2d
Remove unused imports 2024-04-30 22:14:44 +10:00
James Groom 4c7ea21cea
Add a failsafe to Nyma's settings callback to avoid NREs 2024-04-30 22:06:59 +10:00
James Groom fa0c693448
Attempt to fix loading `.exe`s in Nymashock 2024-04-30 22:01:37 +10:00