Commit Graph

348 Commits

Author SHA1 Message Date
adelikat 369b7830a5 add Cyorter's Input display lua script, that gives a graphic based (FCEUX style) input display for most non-analog peripherals 2020-08-01 16:46:49 -05:00
adelikat 6fd2252753 fix psx default controls, fixes 2020-08-01 15:55:55 -05:00
nattthebear 78bf2285fc
Waterbox: Add pseudo-thread implementation and experimental DobieStation (PS2) core ()
Waterbox supports threads now, but they're not real threads on the host side because that's complicated and can be nondeterministic. Instead, everything is scheduled to share one host thread. This means that scheduling is actually cooperative and certain patterns of spinlocks and other nonsense can fail to work at all, but "regular" code probably will.

With this, add DobieStation PS2 core. This core was selected because it has threads and is otherwise simple to port; easy to build and a good core/frontend separation. It's not a wonderful core however, with low speed (made abysmally lower by our lack of real threads) and low compatibility, so it remains a curiosity for now.
2020-08-01 07:03:29 -04:00
YoshiRulz b6f4344592
Pass lib path from run script as env. var and read it in DLIR
It's always set by the run script, but I've added a fallback in case someone
hardcodes the mono command in a .desktop or something
2020-07-28 18:15:37 +10:00
YoshiRulz 765eb443a5
Tweak run script to compute lib and wine lib paths separately
also added $PWD/dll to LD_LIBRARY_PATH in case we ever use that
2020-07-28 18:11:50 +10:00
nattthebear 1c606c1eb6 waterbox - expose read-only information about the guest memory page table 2020-07-23 16:08:24 -04:00
nattthebear 356abf6c43 Really, actually, truly fix the waterbox savestate snafu, probably
The description in the previous commit is accurate, but the problem runs deeper and was on the whole a complete failure for me to appreciate the difference between active and swapped in on memoryblocks.  Bleeecch.
2020-07-23 15:20:04 -04:00
nattthebear e343f6bd26 Fix a complete savestate snafu in waterbox
This was broken by 175556529e, with two related issues:  When we allowed for some operations to happen even when the block is inactive, we didn't account for the fact that in swapin, the block technically is not active yet (the lock is not on the self), and similarly in swapout, the lock has already been moved out of self.  The former caused all memory areas to revert to RWX at the host OS level after a swap, so no dirty detection was done.  After the former was fixed, the latter caused saved costacks to still get missed.

At the same time we ran into a perfect storm with costacks on Windows; if a stack page is not yet dirty, but we hit a fault for something else, Windows will not call our VEH handler unless the TIB stack extents are satisfactory, since it needs userspace to fix up the TIB extents via VEH or SEH handler, but there's already an exception pending.
2020-07-23 13:30:58 -04:00
nattthebear c7e8744664 Add an extra exclamation point to indicate that code is VERY IMPORTANT
This broke any waterbox core that called in to native code in the same EnterExit() right after sealing.  All nyma cores were broken, 32x was not, didn't check the rest.  Regressed in 175556529e.

It worked fine in release mode, theoretically
2020-07-18 11:54:05 -04:00
nattthebear 175556529e waterboxhost refactor
Set up a second mirror of guest memory; easily accomplished because we were already using memfd_create / CreateFileMappingW.
This lets us simplify a lot of host code that has to access guest memory that may not be active right now, or might have been mprotect()ed to something weird.  Activate is only needed now to run guest code, or when the C# side wants to peer into guest memory for memory domains and such (waterboxhost does not share the mirror address with the C# side).
2020-07-13 19:38:29 -04:00
adelikat 316a9d1568 gamedb - replace pico with picodrive, remove core name look up in romloader in favor of this pico change combined with a case insensitive compare 2020-07-12 16:10:01 -05:00
nattthebear beb51ab286 Fix a linux waterbox-releated crash
Repro steps:
1) Load any waterbox core
2) Do anything that would trigger a NullReferenceException on C# side that you'd normally expect to be caught
2020-07-12 11:03:12 -04:00
nattthebear d354faeec1 probably fix linux waterbox issue 2020-07-12 07:49:18 -04:00
alyosha-tas 39bbe30b8e O2: fix sprite shifting and add some homebrew to DB 2020-07-11 08:29:11 -04:00
nattthebear a67fa70632 waterbox linux - rework to avoid possible memory leak
Bizhawk never would hit this because it only ever runs waterboxes in one host thread, but an application that spun up many threads and ran waterboxes in each would leak 32 bytes of heap for each native thread destroyed, which is super duper not really meaningful at all
2020-07-08 07:22:15 -04:00
nattthebear c8985e3007
Waterbox: Stack Marshalling ()
Waterbox guest code now runs on a stack inside the guest memory space. This removes some potential opportunities for nondeterminism and makes future porting of libco-enabled cores easier.
2020-07-07 17:48:12 -04:00
alyosha-tas fee733480f O2Hawk: change PAL timing 2020-07-06 09:38:24 -04:00
zeromus ae763f2eef fix hq2x in glsl (fixes ) 2020-07-05 18:15:05 -04:00
alyosha-tas fa7ac3d4c1 A7800Hawk: Fix pokey 0x450 detection 2020-07-05 15:45:08 -04:00
alyosha-tas e4e078a1c9 DS: Fix default binding for stat key 2020-07-04 19:53:54 -04:00
nattthebear 3a18f6356d Rebuild all of waterbox as sysvabi, not msabi
This helps linux at the expense of windows, except it seems like windows gets a nice little speed up as well
2020-07-03 18:21:48 -04:00
alyosha-tas 32031d0f67 Atari 7800: support serpentine 2020-07-03 16:07:26 -04:00
nattthebear fa5885d7a1
Rewrite WaterboxHost in rust. ()
This replaces the old managed one.  The only direct effect of this is to fix some hard to reproduce crashes in bsnes.

In the long run, we'll use this new code to help build more waterbox features.
2020-07-03 11:45:59 -04:00
YoshiRulz 314dc391ae
Fix typo
these are backwards; fixes 73a905214
2020-06-28 19:45:39 +10:00
YoshiRulz 73a905214e
Fix possible bug when symlinking EmuHawkMono.sh 2020-06-28 19:42:49 +10:00
adelikat c13430896f remove empty controller mappings from defctrl, also remove duplicates that caused it to be invalid json (.net happily was deserilizing it anyway), don't save empty mappings when saving from the ui 2020-06-22 19:54:36 -05:00
zeromus e3dd8870c6 fix hq2x shader (fixes ) 2020-06-21 21:52:49 -04:00
adelikat b9f59337dd fix Saturn and NGP default controls 2020-06-21 17:31:28 -05:00
adelikat 123f1b3c99 default controls for Nyma PCE cores 2020-06-21 16:27:06 -05:00
zeromus 703a51be09 fix retroizer 2020-06-20 22:25:41 -04:00
zeromus 1b4a6f6415 get gl display method working, at least, minimally, with the scanlines shader. someone else can fix up the others if they need to or make me a bug. at least the hard part is past 2020-06-20 00:48:42 -04:00
zeromus d4cb18aff8 actual remove CGC.exe, that was the whole point wasnt it 2020-06-20 00:48:42 -04:00
zeromus 00e546a537 keep working on CGC-removal 2020-06-20 00:48:42 -04:00
zeromus b842f3ed16 remove cgc (step 1) 2020-06-20 00:48:42 -04:00
alyosha-tas 0d9f0d2af1 A2600: update gamedb for quad run fixes 2020-06-15 14:08:45 -04:00
nattthebear abc1f502b9 remove no longer used vbanext file 2020-06-14 19:42:32 -04:00
nattthebear ec3a288377 my bad 2020-06-07 09:26:56 -04:00
nattthebear 3bc1ed4bbc snes9x - take advantage of new waterbox change tracking to fix special chip games 2020-06-03 19:25:58 -04:00
YoshiRulz 0714376afe
Let EmuHawk pick up the shipped libblip_buf; packaging it is too hard 2020-05-15 17:05:12 +10:00
YoshiRulz a1b501fe5a
Fix OpenAL sound on Unix
TODO copy this file from NuGet cache w/ MSBuild
2020-05-15 15:37:29 +10:00
adelikat e76c89ce7a add some genesis games to the gamedb that weren't there, most don't work however 2020-05-09 13:17:01 -05:00
nattthebear a040e67c95
Add option to force sram in genesis core ()
gpgx upstream automatically gives 64KiB sram to every game of size 2MB or lower, unless specifically overrided.  That sucks and we don't do it.  But some games do need it; there's not enough information to autodetect otherwise.  So add a flag that we can set in gameDB for it, and set it true for two known games that have problems otherwise.
2020-05-09 13:48:46 -04:00
alyosha-tas 0e7e93b205 O2Hawk: various bug fixes 2020-04-17 18:38:44 -04:00
alyosha-tas 535a586422 O2hawk: add console version of happy bird 2020-04-10 15:19:16 -04:00
YoshiRulz cc4b12b0ae
Fix remaining "Nintento 64" typo
see eb1d87933
2020-04-10 09:58:59 +10:00
zeromus 8084fce648 rename 2020-04-01 18:00:57 -04:00
zeromus d60b83791c fix StyleusInputDisplay 2020-04-01 18:00:42 -04:00
adelikat 2fbbe01347 DS - fix sylus lua script to use client.transformPoint, still doesn't work since it scales down to 1x 2020-04-01 11:55:23 -05:00
adelikat cea0e80637 DS cross hair display script - account for movie playback 2020-03-28 17:27:51 -05:00
adelikat d1032f38f8 DS - add a DS lua library with a touchScreenStart() method, add a cross hair stylus input display script 2020-03-28 15:43:31 -05:00