Commit Graph

20406 Commits

Author SHA1 Message Date
CasualPokePlayer 8ae947fed7 prep work for easier OpenGL interop for cores 2023-07-23 01:54:36 -07:00
CasualPokePlayer 78f5e75534
Kill Bizware .NET Framework deps (#3702)
The main objective in this PR is to get rid of the main .NET Framework dependencies in Bizware packages. This PR doesn't do that completely per se, still having .NET Framework used for WinForms Controls, but that can easily be swapped over for whatever UI framework we use next as long as it exposes native window handles in some way.

For this PR, it does some reorganizing of Bizware, splitting Bizware.OpenTK3 and Bizware.DirectX into 3 packages based on usage; Bizware.Audio, Bizware.Graphics, and Bizware.Input. These packages in the future probably could have more functionality moved into them, but for now they are largely just a reshuffling of the Bizware.OpenTK3 and Bizware.DirectX packages.

As both SlimDX and OpenTK3 are .NET Framework, they have been removed in this PR. Their replacements are as follows:

SharpDX: DirectSound, Direct3D9
Vortice: XAudio2, DirectInput/XInput
Silk.NET: OpenAL, OpenGL
SDL2-CS / native SDL2: OpenGL context management, new gamepad backend (replacing OpenTK's role for gamepads)
native X11: New key input backend (replacing one of OpenTK's roles for keyboards)

GLControl has been replaced by custom made control which just uses SDL2 for context management.

The OpenTK input backend has been replaced with a combination of SDL2 and an OS tailored key input backend (DirectInput on Windows, X11 on Linux, and planned to be Quartz on macOS). This is just represented on the user side as "SDL2" without mentioning the key input backend. This does mean for a while DirectX will be mandatory on Windows again, until a RAWINPUT backend is written for handling key input on Windows for the SDL2 input backend.
2023-07-23 00:35:43 -07:00
James Groom 26b39fb56c
Update wbox readme
fixes 3701aef5a
2023-07-19 20:00:13 +10:00
James Groom ee18249953
Update SECURITY.md 2023-07-16 13:40:13 +10:00
zeromus fe47285394 trim cheat lines, since it's virtually impossible to copy text from a web browser without getting junk around it 2023-06-30 19:42:28 -04:00
James Groom 89fc9c940d
Fix typo
fixes c60e6d498
2023-06-25 01:40:32 +10:00
James Groom c60e6d498e
Copyedit readme 2023-06-25 01:39:38 +10:00
YoshiRulz 6b87e3ac91
Fix being unable to open SubGBHawk via system menu (fixes #3693) 2023-06-25 01:23:14 +10:00
SG d8ea4547d4
Add StringFormat to pixeltext DrawString parameters (squashed PR #3690)
* Add StringFormat to DrawString parameters

* Revert whitespace changes

* Code style nitpicks, cache `StringFormat`

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2023-06-21 09:20:54 +10:00
YoshiRulz 4ee7e4cad7
Add deduper utility to RAM Watch 2023-06-13 23:43:53 +10:00
YoshiRulz 25ad59d895
Replace type check with enum (int) comparison in `Watch` 2023-06-13 23:43:53 +10:00
YoshiRulz ca8a183f38
Add `WatchList.InsertRange` and use when duplicating rows in RAM Watch 2023-06-13 23:43:53 +10:00
YoshiRulz 4d4887ee31
Fix `WatchList.Insert` not setting dirty flag
not sure if this was problematic in practice
2023-06-13 23:43:53 +10:00
Morilli 13dd04a026 Fix #3679 2023-06-07 23:01:54 +02:00
CasualPokePlayer 9e5fb35f7a Add in missing TMD for Cave Story Japan 2023-05-29 02:25:36 -07:00
Morilli c3ec8393d0 Optimize Remove[Prefix|Suffix] by using ordinal string comparison 2023-05-27 03:50:46 +02:00
adelikat f6135abe65 disabled log generator caching in bk2, it has playback problems not found it basic testing, need to revisist this later 2023-05-26 19:19:08 -05:00
YoshiRulz fde16fa5a3
Hide D=>A TAStudio columns w/ Ares64, rename C* buttons in header
initial implementation by @thekovic
2023-05-27 03:01:49 +10:00
nattthebear 3d5b068c2f QuickNES: Slightly tweak palette rounding computation
Fixes #3668
2023-05-26 07:01:56 -04:00
nattthebear 8a94204a2f QuickNES: Fix loading 64 color palettes
Since ee0992158d, we were using the default palette for deemphasis modes, instead of computing it based off of the input palette.
2023-05-26 06:46:56 -04:00
adelikat cb721a39da de-engineer some movie stuff, ILogEntryGenerator is not an important abstrations now that Bkm is gone 2023-05-25 15:01:30 -05:00
adelikat 33ed05b20c BK2LogEntryGenerator - further optimize by doing the control ordering once 2023-05-25 13:32:58 -05:00
Morilli f697a828c8 Optimize CreateLogEntry
Surely this is safe, right?
2023-05-25 13:19:16 -05:00
Morilli 8a46af0b25 Fix lua project with analyzer change 2023-05-24 18:44:21 +02:00
adelikat 05f8747321 optimize movie recording loop a bit, do not create a new instance of log entry generator every frame, avoids a lot of memory allocations with mnemonic lookups that do not change for the lifetime of the movie, also a slight optikmization in Bk2 controller, co-authored iwth morilli 2023-05-24 11:18:42 -05:00
YoshiRulz 9daac2c26f
Add and use extension method `string.StartsWith(char)`
reverts 333ce98a7, partially reverts bc16a2cda
2023-05-23 09:18:25 +10:00
adelikat 333ce98a71 low hanging fruit speed up in inputlog loading using str[0] == c instead of str.StartsWith(c) 2023-05-22 12:50:30 -05:00
YoshiRulz 681ef72cd5
Change wording of checkbox for `Config.SuppressAskSave` 2023-05-21 16:22:54 +10:00
CasualPokePlayer ccf2c61a23 fix #3664 2023-05-20 03:11:40 -07:00
CasualPokePlayer 86ce62f4de give Lady Sword BRAM
see https://github.com/TASEmulators/BizHawk/issues/3663#issuecomment-1555740061
2023-05-19 23:58:03 -07:00
CasualPokePlayer 08ead80385 make these callback delegate caches static (why didn't this warn that static was possible here?) 2023-05-19 22:30:17 -07:00
CasualPokePlayer 3c53f52c6d remove some debugging crap from c9e30060d4 2023-05-19 22:28:32 -07:00
CasualPokePlayer 542cf2433a Reduce allocation spam in Jaguar disassembly functions 2023-05-19 22:26:45 -07:00
CasualPokePlayer c9e30060d4 Rework the Reader/Writer callbacks for the WaterboxHost, a bit nicer here working with the userdata
Also make it so initial loading uses the zstdstream or filestream directly instead of a memorystream with it all loaded
something of note, not really happy with how these read/write callbacks get used in practice, it seems they get spammed in small chunks
for initial loading, it's 8192 byte chunks each, which can be a LOT of callbacks, depending on core size (gpgx is ~500, MAME is ~22K)
similarly, savestates suffer a similar issue, although instead it's a ton of 4096 byte chunks (page size eh?)
The unmanaged <-> managed transitions obviously are not exactly performant, and I imagine are taking a significant portion of the time here
Perhaps some buffering strategy should come in on the native waterboxhost side to alleviate callback spam?
2023-05-19 22:26:45 -07:00
James Groom 37ef137aa9
Update GitLab CI links in readme 2023-05-20 11:27:00 +10:00
adelikat 99a6b1d339 add hotkey for toggling the 'Display Nothing" feature 2023-05-19 20:05:16 -05:00
CasualPokePlayer 8a13793d00 Turn WaterboxHostNative ReturnData to a struct, misc cleanups elsewhere 2023-05-18 22:21:17 -07:00
CasualPokePlayer 332143ea8d invalidate cram caches when poking, maybe 2023-05-18 21:14:57 -07:00
CasualPokePlayer 63ec0cecc7 fix picodrive's cram/vsram sizes 2023-05-18 19:29:42 -07:00
CasualPokePlayer 473d3cc294 fix #3662 2023-05-18 19:09:08 -07:00
CasualPokePlayer ea854ff39d make discohawk form a bit bigger
all the formats supported means the box wasn't big enough to display all of them lol
2023-05-18 07:28:10 -07:00
CasualPokePlayer fe79b69123 (Partial) .nrg support
TAO support isn't complete, a lot of sanity checking isn't done yet
2023-05-18 07:14:14 -07:00
Morilli 3d30f52e7c Fix LogWindow treating everything as ascii
hopefully this doesn't break anything
2023-05-17 14:54:18 +02:00
CasualPokePlayer f11b5bc9c4 fixup CDI generated subcode (not sure why I did that)
have it generate "leadin" and "leadout" tracks for multisession discs... this is almost certainly wrong for leadin (doesn't matter so far), leadout is probably right...
2023-05-12 20:47:29 -07:00
CasualPokePlayer 0e6d5fb708 minor addendum to 2012b083f6 2023-05-12 03:28:14 -07:00
CasualPokePlayer 2012b083f6 Fixup multisession handling with MDS and improve its track/sector size handling, also maybe fix it entirely? (not sure if this ever worked)
Move the various synths using the CUE SS_Base to a file, mostly just a nicer organizational change as MDS and CDI use one of these but not CUE
Misc improvements elsewhere
2023-05-12 02:44:05 -07:00
CasualPokePlayer 1f3068fe77 fix synthesizing disc tracks with multisession discs when the first session has a large amount of tracks
FirstRecordedTrackNumber only works here for the first session, for future sessions it doesn't work and may just result in out of range exception
2023-05-11 02:57:14 -07:00
CasualPokePlayer 858ea372a9 Fix Jaguar CD detection for Caves of Fear 2023-05-11 02:28:33 -07:00
CasualPokePlayer 1adb2b45a2 (VirtualJaguar) swap user and interrupt stack pointers when going to supervisor mode for external interrupts, fixes Black ICE
also slight improvements to cd bios hle (don't really do much, but better safe than sorry)
2023-05-10 23:04:49 -07:00
CasualPokePlayer e3c27813b6 fix the fix in 45a0c8cffb 2023-05-10 05:37:03 -07:00