Commit Graph

264 Commits

Author SHA1 Message Date
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
nattthebear 4639c1f2ca minor cleanup of calling convention adapters
sync the generator code with the generated code, remove useless endbr64 shit
2020-07-11 11:09:48 -04:00
nattthebear b0e6174467 minor cleanup 2020-07-08 13:54:47 -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 (#2209)
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
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
nattthebear 2ee3125724 Refactor gpgx init method to use fewer arguments
Upcoming waterbox changes will likely limit the number of arguments a function can take to 6, which should be enough for anybody
2020-07-03 13:24:54 -04:00
nattthebear fa5885d7a1
Rewrite WaterboxHost in rust. (#2190)
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
nattthebear c1caa3e346 More crusty progress 2020-06-28 10:21:36 -04:00
nattthebear 6ff2d801e6 memoryblock experiments continue 2020-06-23 15:01:49 -04:00
nattthebear 92525576cc more krusty krab 2020-06-22 18:15:11 -04:00
nattthebear b0007c83f4 more musings 2020-06-21 14:09:38 -04:00
zeromus 687704dc3c updated waterbox docs 2020-06-20 20:13:00 -04:00
zeromus 316aafed40 ss and pcfx dirs can be whacked (they belong to numa now) 2020-06-20 20:13:00 -04:00
zeromus 2fc8b91e45 rename pce and pce-fast to turbo and hyper 2020-06-20 20:12:46 -04:00
zeromus 27f9a70085 clean nyma zlib building stuff 2020-06-20 20:12:45 -04:00
nattthebear 3f6ffeb573 krusty 2020-06-20 18:07:17 -04:00
nattthebear 440a340cb5 remove what should have been ignored 2020-06-20 13:49:58 -04:00
nattthebear be81bc12c2 more wip 2020-06-20 10:30:41 -04:00
nattthebear 4f09ffcda9 doc cleanup 2020-06-20 05:59:43 -04:00
zeromus b842f3ed16 remove cgc (step 1) 2020-06-20 00:48:42 -04:00
nattthebear ffcb7cefb1 Move llvm to submodule 2020-06-19 20:56:17 -04:00
nattthebear ee6c2ba679 Watch babby's first rust program... one commit at a time
Working on some ideas to potentially replace WaterboxHost
2020-06-19 20:56:16 -04:00
nattthebear 23f8c2bbe6 waterbox: move location of llvm-project 2020-06-18 14:06:23 -04:00
nattthebear ecdfc66617 nyma big setting update
Moves a lot of settings around, hopefully addressing some concerns
2020-06-14 16:02:33 -04:00
nattthebear a28f2b2a45 waterbox buildscript changes 2020-06-14 12:35:18 -04:00
nattthebear 7ba3f6db03 saturn - fix crash in dead or alive
It does look pretty awful with interlacing, but that's not something bizhawk is equipped to solve at present
2020-06-14 10:15:05 -04:00
nattthebear f2b461bed1 nyma - overhaul some input stuff to support some more things
saturn guns and keyboards now work
2020-06-13 18:19:41 -04:00
nattthebear f2b79bb0c1 Fix saturn compilation issue
fixes #2124
2020-06-12 13:20:04 -04:00
nattthebear 8c06de56c2 saturn - support lag flag again 2020-06-11 14:47:26 -04:00
nattthebear f14dace4a0 Move saturn over to nyma, get latest version. 2020-06-11 12:17:10 -04:00
nattthebear 69e30ee33f Decrease state size in pcfx, pce, pce-fast 2020-06-09 10:09:17 -04:00
nattthebear 9bb56f0b5c move pcfx to nymacore 2020-06-09 08:15:06 -04:00
nattthebear 11e1019590 nyma -- support cd switching
motorcycle shifter, but neutral is before 1st instead of between 1st and second
Yes, I had to rebuild the non cd cores here, and I am sorry
2020-06-08 20:24:30 -04:00
nattthebear b11b50a950 all nyma cores: support constant size framebuffer
this will do lossless integer scaling using mednafen provided screen geometry data
2020-06-08 13:05:31 -04:00
nattthebear 2952ac24aa savestates on waterbox 2020-06-07 09:26:08 -04:00
nattthebear aa48af9c94 linux: support gpgx
as before, do not load state even if your life depends on it
2020-06-06 18:25:59 -04:00
nattthebear 4d3ef71c8a Remove some old junk 2020-06-06 16:18:06 -04:00
nattthebear dcaf504202 Some progress on loonix waterbox
It doesn't work
2020-06-06 14:39:55 -04:00
nattthebear b3c3a3a4bb waterbox sgb sameboy - fix stereo audio
WHOOPS
2020-06-06 07:55:21 -04:00
nattthebear 7792eb2e80 Improve waterbox "lazystates"
Cores that used the .invisible section to store data were saving it; this was a regression from before, so PCFX states should be back down to the previous release size, or perhaps a bit smaller.

Add the ability to dirty track libco cothreads, as used in the bsnes core.  This saves a lot of space in those states and they're now quite competitive in size.
2020-06-04 12:13:28 -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
nattthebear 842a7df215 waterbox: minor makefile tweak
allows fiddling with linkscript to be easier
2020-06-03 17:57:31 -04:00
nattthebear 6e366b7590 waterbox libsnes cothreads: set TEB/TIB stuff
some bsnes cothreads call callbacks that hit managed threads.  We shouldn't do that, but we do, and sometimes those threads run MSVC's __stkchk which can, depending on circumstances, blow up if the thread extents aren't set.

This also means that we cannot save space on a lot of cothread stacks because __stkchck will blow up any detection guards we try
2020-06-03 15:48:06 -04:00
nattthebear 69ade58d2a waterbox: enable -fcf-protection=none, recompile pce fast 2020-06-03 12:16:18 -04:00
nattthebear 885b86e1b2 waterbox: add the ability to compile but not assemble individual files for debugging purposes 2020-06-03 12:02:56 -04:00
nattthebear d06ed05929 waterbox - track writes for smaller savestates
The waterbox system now uses host os facilities to track whether memory has been written to, to automatically choose what thing to savestate.  This results in a large size decrease for some cores, like snes9x or gpgx (when running cartridge games).  Doesn't do much for cores that were already memory efficient, or for bsnes because of libco compatibility issues; but those cores don't regress either.
2020-06-03 07:13:40 -04:00
nattthebear d57e3d768a commit new builds of all the nyma cores because of something i changed with faust
fixes #2083 (presumably?  the user didn't provide any description so i'm not sure)
2020-06-01 12:18:15 -04:00
nattthebear 474d41bd8a add mednafen's pce fast core
~1.6x the speed of the mednafen pce core, or something
Supports all of the same features except ADPCM ram view
TODO: romloader hookups
2020-06-01 11:23:18 -04:00