Morilli
4b60a90c78
Remove no-op in tasmovie max undo steps setting
...
lol
2024-10-10 20:50:38 +02:00
Morilli
c844379bd6
Always render video when at end of turbo seek
...
- resolves #2081
This is only noticable on cores that implement (video) frame skip.
2024-10-10 04:24:31 +02:00
CasualPokePlayer
ed10275033
Don't use Thread.Join() in NDS Dispose()
...
resolves #3220
2024-10-09 18:10:37 -07:00
Asnivor
c64822680c
[CPCHawk] Some CRTC code tidy
2024-10-09 09:16:56 +01:00
Asnivor
ac25842689
[CPCHawk] FloohZ80 Fix interrupt tracelogger reporting
2024-10-09 08:26:26 +01:00
Morilli
be5ac88677
make CI happy
2024-10-09 07:32:27 +02:00
YoshiRulz
57e60453f6
Fix typo
...
fixes d8778aa23
2024-10-09 14:30:48 +10:00
YoshiRulz
d8778aa232
Split PSX (Nymashock) rumble channel into left and right
2024-10-09 14:26:10 +10:00
YoshiRulz
eb3ab3f05a
Better fix for haptics/feedback prescale
...
fixes c36b654eb
2024-10-09 14:25:46 +10:00
YoshiRulz
c36b654eb9
Fix interger overflow from setting haptics/feedback prescale above 1x
2024-10-09 14:13:21 +10:00
CasualPokePlayer
ab081f7363
Rename AVI/WAV to A/V
...
resolves #4070
2024-10-08 17:39:59 -07:00
CasualPokePlayer
a28b169890
Set UpdateAutoCheckEnabled default to true, don't explicitly set a link color for the update available text (red on white is hard to read, default is usually blue, which looks fine here)
2024-10-08 14:43:30 -07:00
CasualPokePlayer
5889ab1d96
Fix inconsistent MAX_FLOPPIES usage
2024-10-08 14:15:53 -07:00
CasualPokePlayer
54fd290107
Do not send writable floppy disks to PUAE (transient files in wbx states are buggy)
...
Savestate _currentDrive and _currentSlot
Cache controller definition and joystick/keyboard enum mappings
2024-10-08 13:10:54 -07:00
Asnivor
9825ac6db6
[CPCHawk] Implement FloohZ80 TraceLogger
2024-10-08 13:52:49 +01:00
YoshiRulz
f6da980fba
Add debug readout for haptic feedback (SDL2 only)
...
build with `-p:MachineExtraCompilationFlag=BIZHAWKBUILD_DEBUG_RUMBLE`
there's nothing special about SDL2 I just can't be bothered finding the
other impls
2024-10-08 22:44:48 +10:00
YoshiRulz
154a49cd81
Add missing syncsetting check to `Ares64.FrameAdvancePrep`
...
resolves #4056
2024-10-08 22:13:01 +10:00
CasualPokePlayer
ab8eb0405c
Default to MT renderer for Faust
2024-10-07 16:19:03 -07:00
feos
809d43dd44
fix #4069
...
gpgx: swap A and D regs in gpgx_getregs()
actually limit pc to 24 bits, not just disasm address
2024-10-07 19:34:48 +03:00
CasualPokePlayer
187674338b
simplify floooh z80 usage
2024-10-07 01:09:17 -07:00
CasualPokePlayer
b443eb40a8
Hook up rumble for mgba
2024-10-06 17:13:20 -07:00
Morilli
882bab228f
fix for CI
2024-10-07 00:16:49 +02:00
CasualPokePlayer
2c2efc6fb8
Fix gpgx_swap_disc sig mismatch
2024-10-06 14:21:40 -07:00
Asnivor
c644ed19ef
[CPCHawk] Trying a new z80 implementation
2024-10-06 22:01:09 +01:00
Morilli
c4a92bd0fb
Bump duration of movie hash mismatch message
...
see also #2328
2024-10-06 20:58:27 +02:00
YoshiRulz
0a61b2754d
Revert refactor to `bool[].ToUByteBuffer()` extension too
...
see 37da7b3e1
and 30b2433a5
2024-10-07 04:19:32 +10:00
Morilli
30b2433a50
Revert changes to ToBoolBuffer
...
fixes the test, and apparently having non-0/1 bool values is sketchy anyways
2024-10-06 17:30:44 +02:00
Morilli
7db5b22713
Add tests for array conversion util functions
...
to test the changes made in 37da7b3e12
2024-10-06 17:30:07 +02:00
Morilli
9f161bf40e
Simplify Serializer array sync handling
...
val == null is impossible, so the check is completely useless.
2024-10-06 05:55:23 +02:00
Morilli
37da7b3e12
simplify some Util functions
2024-10-06 05:48:26 +02:00
Morilli
97785b2af2
Fix potential exception in PathEntryCollection path resolving
...
see also #4077 for where this initially came up
2024-10-06 00:02:02 +02:00
Morilli
7b2de12de3
IsPathRooted -> IsAbsolute
...
This is most likely more correct. .net framework does not have a dedicated method for checking absolute paths, so this was most likely accidentally used instead.
2024-10-05 23:58:21 +02:00
Morilli
a43a64b899
Try handling movie load failure properly in TAStudio
...
-closes #4068
There's still two callsites that don't check the return value, but I'm not sure whether they can fail and what they should do if they do.
2024-10-05 23:27:20 +02:00
YoshiRulz
9371fbfa62
Add prints to `GPGX.FrameAdvance`
2024-10-05 20:57:28 +10:00
YoshiRulz
f99b8fa518
Use `PathEntryCollection.FirmwareAbsolutePath` extension
2024-10-04 23:39:32 +10:00
Morilli
f28fa49795
Fix ZwinderBuffer InvalidateAfter logic
...
- should resolve #4074
- fixes 2d229be6ba
for when _firstStateIndex != 0
2024-10-03 17:59:42 +02:00
Asnivor
2205d1344c
[CPCHawk] Interrupt wait state timing tests
2024-10-03 12:17:33 +01:00
Asnivor
d513632cf9
[Z80A] Correct Tw cycles for IO
...
The Z80 should only be sampling the /WAIT pin during the 3rd cycle T of an IO REQ M Cycle.
Instruction timing tests verified on CPCHawk using WinAPE plustest.dsk.
Note: CPCHawk is the only core to currently use the Z80A /WAIT pin (FlagW), so other core exposure is 0.
2024-10-02 14:24:20 +01:00
Asnivor
2193c0a0e5
CPCHawk2024 ( #4071 )
...
* [CPCHawk] Start of new gate array and CRTC implementation
* [CPCHawk] Some cleanup
* [CPCHawk] More Cleanup
* [CPCHawk] More CRTC work
* [CPCHawk] More crtc work
* [CPCHawk] more CRTC work
* [CPCHawk] More CRTC work
* [CPCHawk] more crtc
* [CPCHawk] GateArray breaking changes WIP
* [CPCHawk] GA, CRTC and Screen changes
* [CPCHawk] CRTC and GateArray
* [CPCHawk] More stuff
* [CPCHawk] Progress
* [CPCHawk] Starting CRTC type abstraction
* [CPCHawk] Start CRTC status register implementation
* [CPCHAWK] Update colour palatte
* [CPCHawk] Trying to fix GA colour issues
* [CPCHawk] Actually use the Z80 /WAIT line
* [CPCHawk] Frame now running at req 19968 x6 INT
* [CPCHawk] Implement PAL16L8 as a separate device
* [CPCHawk] Border cropping SyncSetting
* [CPCHawk] Stuff
* [CPCHawk] More accurate CRT emulation
* [CPCHawk] Reset vertical timing var only when VSYNC ends in the middle of a scaline
* [CPCHawk] Allow IN port accesses to affect certain write-only devices
* [CPCHawk] Fixed high-impedence returns
* [CPCHawk] Readme update
* [CPCHawk] Update readme with Z80 timing test failures
* [CPCHawk] Update readme
2024-10-02 12:54:22 +01:00
Morilli
5cc4c1f924
Optimize and simplify MarkerView_QueryItemBkColor
2024-10-01 20:36:02 +02:00
Morilli
0fe8fadc39
on shutdown, close tools before stopping movie
...
- closes #4065
2024-10-01 15:40:30 +02:00
CasualPokePlayer
e71cdf8440
Initial SA1 IRAM exposure for RetroAchievements
...
see https://github.com/RetroAchievements/rcheevos/pull/371
2024-09-30 23:19:45 -07:00
CasualPokePlayer
f9d4737104
Expose SA1 IRAM in old BSNES
2024-09-30 22:16:26 -07:00
Morilli
461a3dfb8d
Optimize some linq Any() calls to list Exists() calls
2024-09-30 23:31:54 +02:00
Morilli
08125ae82d
Cleanup CloseGame and CloseRom some more
...
- fixes #4061 and hopefully breaks nothing else
2024-09-30 23:29:53 +02:00
Moritz Bender
2d229be6ba
Move ZwinderBuffer invalidation logic into the class ( #4066 )
...
in scenarios with MANY states and high fps, the overhead of calling `GetState` every time was significant.
2024-09-30 15:55:48 +02:00
YoshiRulz
fedd2dbb03
Replace `ImGuiResourceCache.BrushCache` with a single `Brush`
2024-09-30 21:47:07 +10:00
YoshiRulz
fb425c9db6
Replace caches in `LuaPictureBox` with a single `Brush` and `Pen`
2024-09-30 21:47:07 +10:00
YoshiRulz
4f69796e51
Check for cached `SolidBrush` in `LuaPictureBox.DrawText`
2024-09-30 21:47:07 +10:00
YoshiRulz
6c514bcdd0
Change `NesPPU.HandlePaletteViewMouseMove` to re-use one `SolidBrush`
2024-09-30 21:47:07 +10:00
YoshiRulz
1b1589f2e8
Change `SNESGraphicsDebugger.RenderPalette` to re-use one `SolidBrush`
2024-09-30 21:47:07 +10:00
YoshiRulz
0313e1c119
Use `Brushes.*` instead of creating new ones from `Color` constants
2024-09-30 21:47:07 +10:00
YoshiRulz
f4298d74f4
Change `SNESGraphicsDebugger.DrawPaletteRegion` to re-use one `Pen`
2024-09-30 21:47:07 +10:00
YoshiRulz
ca95336349
Use `Pens.*` instead of creating new ones from `Color` constants
2024-09-30 21:47:07 +10:00
CasualPokePlayer
64f6742c15
Fix drawString not blending when it should
...
Drawing a string is really having GDI+ do the drawing in software, uploading the result to a texture, then overlaying it to the render target. Since this texture is largely transparent, it needs blending. Of course, assuming the colors are all otherwise opaque, we only need to do this for the string texture draw
2024-09-29 21:39:20 -07:00
Morilli
ae5d4ab160
Make StateInformation a readonly struct
...
This helps a lot when many states exist, struct allocs are much cheaper than classes
2024-09-29 04:05:32 +02:00
Morilli
0ac81016b1
Optimize sound output buffer handling
...
turns out a Queue isn't the optimal data structure when you're queueing millions of elements
2024-09-29 01:44:39 +02:00
Morilli
f3876da840
Optimize Vsync getter functions
...
trust me this is a highly relevant optimization
2024-09-29 01:39:55 +02:00
Morilli
0669483bd2
optimize TasLagLog.RemoveLagEntry
...
just because I can
2024-09-28 17:30:42 +02:00
Morilli
24012bfb21
optimize TasLagLog.RemoveFrom
...
- closes #4058
2024-09-28 17:30:40 +02:00
YoshiRulz
9a440d0301
Add missing syncsetting check to `Gameboy.FrameAdvancePrep` (Gambatte)
...
see #4057
2024-09-28 18:01:00 +10:00
YoshiRulz
444d1b2182
Avoid exceptions in `AxisValue` implementations ( resolves #4057 )
...
see #4056
only in Release config, because cores really shouldn't be using
undeclared axes and I'd like to be able to catch that
2024-09-28 17:57:47 +10:00
Morilli
15ff0ec2c7
refactor sticky hold/autofire logic in TAStudio
...
- setting multiple buttons to autofire actually works
- the config to respect lag in autofire is applied now
- can set meaningful axis hold / autofire
- removed last reference to "float autofire"
2024-09-27 00:14:09 +02:00
Morilli
6d9aa4d467
implement bitwise logic for axes
...
noticable in inputdisplay or when trying to set axis autofire
2024-09-27 00:14:08 +02:00
YoshiRulz
509bd1504a
Set some more metadata on BizHawk assemblies
...
The documentation for these is lacking, as I've come to expect, but I'm
angry all the same.
For EmuHawk and DiscoHawk, I've pushed `$(Description)` (normally only
seen when publishing to NuGet) into `$(AssemblyTitle)`, which Windows
labels as "File description", and then explicitly set `$(Product)`.
Also `$(NeutralLanguage)` doesn't set a culture, it points any lookups
for `en-US` localisations to embedded resources, which I believe is the
default. This just makes it explicit.
2024-09-27 08:13:33 +10:00
Morilli
5504deb73f
make new from savestate and saveram work again
...
broke with 8956657a34
I'm assuming. Notably this will now no longer copy the current settings over, but that might actually be more consistent with the behavior of the normal new option, so...
2024-09-26 22:34:30 +02:00
Morilli
8f497d44f4
Make PatternsForm title text readable
2024-09-26 22:14:46 +02:00
YoshiRulz
4ccf4eafef
Add missing disc presence check to `NymaCore.FrameAdvancePrep`
...
fixes #4056
`ControllerAdapter` ctor uses `(discs?.Length ?? 0) > 0`, but it gets
`discs` from earlier in core init; when it's later assigned to `_disks`,
empty lists are replaced with null, and other places in `NymaCore` use
`_disks != null`. The `default(int)` is to match pre-3af5b7a7f
behaviour.
2024-09-27 05:47:27 +10:00
Morilli
eaef1f3829
Fix display issue in TAStudio when <3 frames are visible
...
also left a giant TODO, not sure what else to do about it
2024-09-26 21:11:17 +02:00
Morilli
bccc118091
Cleanup some more TAStudio function calls
...
in an ongoing effort to try and make the logic understandable
This should also restore default columns now when an existing tasmovie is currently loaded with column changes
and an existing bk2 is opened (which is then converted to a tasproj) (possible after 2ad7fc095c
)
2024-09-26 21:07:18 +02:00
Morilli
2ad7fc095c
Refactor tasmovie input roll settings handling
...
this allows loading the input roll settings stored in a tasproj even after it was initially `Load()`ed. This fixes those settings not getting applied when loading an existing, playing tasmovie into TAStudio.
2024-09-26 18:52:32 +02:00
Morilli
81b6c2793c
Respect AutoFireLagFrames config setting in sticky controllers
...
Previously, there was no way to configure this and sticky autofire controls would always adjust to lag.
2024-09-26 13:49:21 +02:00
Morilli
6eba7930fc
fix watch editor notes label position
2024-09-26 13:49:21 +02:00
YoshiRulz
dde61e309f
Make `ServiceNotApplicableAttribute` constructor `params`
2024-09-26 13:54:42 +10:00
YoshiRulz
f056059e48
Fix collection type in `ServiceNotApplicableAttribute`
2024-09-26 13:45:54 +10:00
YoshiRulz
bcd13fe37f
Make `IDriveLight` optional for cores
2024-09-26 13:45:15 +10:00
YoshiRulz
c22f2ab4f5
Remove redundant inter-project dependencies
2024-09-26 09:52:00 +10:00
Moritz Bender
3af5b7a7f0
Refactor sticky controller logic to separate it from user input ( #4047 )
2024-09-24 16:05:00 +02:00
Morilli
9f137753b9
hide no-op context menus for separators in ram watch
...
- closes #4051
2024-09-24 15:23:25 +02:00
YoshiRulz
e8b717c18e
Reorder fields in `WatchEditor` ( resolves #4046 )
2024-09-24 13:55:20 +10:00
YoshiRulz
775dc90ce2
Use a TLP to align UI elements in `WatchEditor`
2024-09-24 13:55:20 +10:00
YoshiRulz
9d1a22cab0
Fix typos from `WatchEditor` Designer file
2024-09-24 13:55:20 +10:00
YoshiRulz
b8d65ae92a
Merge in Designer file for `WatchEditor`
2024-09-24 13:54:39 +10:00
YoshiRulz
f1c901ce00
Revert "Improve watch editor layout"
...
This reverts commit f6bf38141a
.
2024-09-24 12:30:59 +10:00
YoshiRulz
1d8c088261
Fix `--lua`/`--luaconsole` causing that window to open before MainForm
2024-09-24 12:25:16 +10:00
Morilli
420cf323aa
fix axis input calculation truncating instead of rounding
...
very noticable with MouseX/Y binds, you cannot reach certain positions
2024-09-23 23:16:39 +02:00
CasualPokePlayer
96b4de92af
Only call GetDpiForWindow if it's actually available
...
apparently this is limited to windows 10 1607+
2024-09-23 03:08:19 -07:00
Morilli
3ea0a5a2dd
fix autofire sticky axes off value
2024-09-23 02:12:33 +02:00
Morilli
5803e362f9
make IsSticky implementation consistent
...
only two inheritors and they disagree on semantics... but there's `CurrentStickies` already which gives access to buttons only
2024-09-23 01:58:27 +02:00
Morilli
23815b4783
some more sticky renames for clarity
...
SetSticky and ClearStickies sounds an awful like they affect the same thing, also this makes it clear whether to set a hold or an autofire
2024-09-22 23:56:53 +02:00
Morilli
5a4f093d50
explicitly unset sticky axes
...
there should not be a function that blindly unsets both axes and button, make it explicit
2024-09-22 23:11:02 +02:00
Morilli
84f774aa9c
reorder code in StickyAdapters
...
move fields and property to the top, button code before the equivalent axis code, general cleanup
2024-09-22 23:04:38 +02:00
Morilli
525a95ea0a
update gpgx ported version
2024-09-22 22:33:08 +02:00
feos
ebbbf0c691
puae is not released
2024-09-22 21:57:34 +03:00
YoshiRulz
d804b6ce17
Fix code style warnings for `OpposingDirPolicy` docs
...
fixes ec69033d9
2024-09-23 04:36:23 +10:00
YoshiRulz
ec69033d9a
Add docs to `OpposingDirPolicy` enum
...
see #2752
2024-09-23 04:29:40 +10:00
YoshiRulz
f2a4d14172
Replace `?? CancellationToken.None` pattern with the simpler `default`
2024-09-22 15:21:02 +10:00
YoshiRulz
b173712a15
Fix suppressed warning in `ClientWebSocketWrapper` ctor
...
more like "human not smart enough to recognise this" amirite
2024-09-22 15:20:48 +10:00
Morilli
09dd55eb93
Fix nullref when no movie exists
...
fixes 259929499f
2024-09-21 16:53:23 +02:00
Morilli
f6bf38141a
Improve watch editor layout
...
see #4046
2024-09-21 12:37:36 +02:00