Commit Graph

21772 Commits

Author SHA1 Message Date
Asnivor 682dd761c3 FlooohZ80 - revert any changes to source header 2024-10-07 06:32:48 +01:00
CasualPokePlayer 0d3498e986 rebuild mgba for Linux 2024-10-06 17:16:12 -07:00
CasualPokePlayer b443eb40a8 Hook up rumble for mgba 2024-10-06 17:13:20 -07:00
CasualPokePlayer ce2a6da71f Build FlooohZ80 on Linux 2024-10-06 15:19:33 -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
CasualPokePlayer 6c2661fdac Revert "Add prints to gpgx_swap_disc" and "Add prints to cdStreamOpen"
This reverts commit 9e0cfb117b and 5c3ae64014.
2024-10-06 14:15:26 -07:00
Asnivor c644ed19ef [CPCHawk] Trying a new z80 implementation 2024-10-06 22:01:09 +01:00
CasualPokePlayer 9e0cfb117b Add prints to gpgx_swap_disc 2024-10-06 13:38:57 -07:00
CasualPokePlayer 5c3ae64014 Add prints to cdStreamOpen 2024-10-06 13:08:59 -07: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 5f23ee44b6
Fix BHI1007 errors in NLua
"Don't use target-typed new for throw expressions"
doesn't include rebuilt assembly because it should be identical IL
modulo timestamps
one of these was `Exception` and got stripped, one was checked-in as
implicitly-typed
see 5fd840e14 and 29c15adbb
2024-10-04 23:52:12 +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 5ad12db814 fix crash with sa1 ram exposure 2024-09-30 23:01:09 -07:00
CasualPokePlayer f9d4737104 Expose SA1 IRAM in old BSNES 2024-09-30 22:16:26 -07:00
CasualPokePlayer 444d8d5d10 [Snes9x] Increase CARTRAM to 512KiB (the 128KiB limit was a product of the old snes9x port, newer snes9x has 512KiB as the new limit). Expose SA1 IRAM. Let ROM be writable in the memory domain (no reason not to) 2024-09-30 21:07:19 -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
CasualPokePlayer 9ce41a2a88 only update custom backdrop palette if in mode 5
maybe affects https://github.com/TASEmulators/Genesis-Plus-GX/issues/5 ?
2024-09-30 13:32:12 -07: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
CasualPokePlayer ed676cda39 rebuild libmgba for Linux 2024-09-28 09:02:21 -07:00
CasualPokePlayer cab0b2df0b [mGBA] Fix savestates not writing back GPIO variables to gpioBase
The issue wasn't light sensor specific, but rather GPIO specific (so e.g. RTC games like Pokemon would also get affected)

resolves #4060
2024-09-28 08:58:24 -07:00