nattthebear
3db2818eb2
Rework a waterbox script slightly
2020-08-05 22:33:23 -04:00
nattthebear
96bee60cda
nyma -- only ask the frontend for firmwares the core actually requests
...
Fixes #2240
2020-08-01 09:16:01 -04:00
nattthebear
78bf2285fc
Waterbox: Add pseudo-thread implementation and experimental DobieStation (PS2) core ( #2263 )
...
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
zeromus
fd30826655
experimental ffmpeg downloading: in place of the ffmpeg encode settings is a download form. This downloads it to the prescribed local location. It then checks to make sure it is the EXACT required version -- the only version we support
2020-07-24 22:25:00 -04: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
07c7c329d3
Experiment to speed up libco and hence libsnes ( #2248 )
...
The compiler now can fully inline the co_switch, and with most registers being specified as clobbers and not saved explicitly, the compiler can choose to save only what it needs to (we don't have to defensively save everything).
Practically speaking, the co_switch calls are usually inlined, but the functions they're in don't seem to be that big and don't make direct use of r12..r15 too much anyway, so (push r12..r15, switch, pop r12..r15) is a common emit. But I see a miniscule FPS increase.
2020-07-22 16:13:19 -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
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
nattthebear
6c9b42a526
faust: Support MT renderer
...
and who said waterbox can't thread. well, it sort of can't. but it sort of can.
the speedup isn't that great, but speed is now pretty close (5%?) to snes9x in the only game that matters (final fantasy 5)
2020-05-31 11:53:15 -04:00
nattthebear
a87fc36e39
Update some docs
...
For the external cores, I simply listed whatever the release build we have right now built them with. There are other makefiles and such hanging around...
2020-05-30 19:13:27 -04:00
nattthebear
6938c07708
nyma - enable inline avx, and recompile cores that used it
...
allegedly worth a speedup on faust and pce. didn't notice any change, but it's not slower
2020-05-30 19:13:27 -04:00
nattthebear
1711914488
snes faust: enable SA1 IRAM as a memory domain
2020-05-30 17:05:55 -04:00
nattthebear
0085fee935
faust - memory domains, input callbacks, lag flags
2020-05-30 11:09:26 -04:00
nattthebear
5e3971a87b
Add mednafen snes "faust" core
...
Speed somewhere between shizzlenineizzle and byuugan. Some things not hooked up yet.
2020-05-29 20:04:39 -04:00
nattthebear
de25b53fe2
Use google flatbuffers for some waterbox core communication
...
Nyma cores have to move some big complex structs on init and it's annoying and error prone. This solution is not fast, but these are one time transfers anyway, and it does keep code size and saved size down. Architecture yay.
2020-05-29 18:03:01 -04:00
nattthebear
978b2dd247
Remove all files for the old unmanaged ngp waterbox core
...
It's been fully integrated into nyma now
2020-05-27 19:43:35 -04:00
nattthebear
2afe356fc9
Move ngp over to nyma core and update to latest mednafen
...
It's seen some upstream updates recently, so that's cool
2020-05-27 19:33:31 -04:00
nattthebear
287e78a5a9
pce - add input callback
...
forgot this
2020-05-27 16:01:53 -04:00
nattthebear
0295f7472b
PCE enhancements
...
Moderate savestate size reduction. Build system changes.
2020-05-27 15:23:40 -04:00
nattthebear
b0620ca79d
PCE tweaks
...
finish up memory domains
make bram behave like pcehawk, instead of giving it to every game, only give it to games that had it
finish up ppu view
2020-05-27 07:35:51 -04:00
nattthebear
0891e448d7
mednapce - lag flag, some more memory domains, some ppu view work
2020-05-26 21:23:52 -04:00
nattthebear
6da864f4f7
waterbox: fix linker script putting __eh_frame_hdr_start in the wrong place
...
This was benign, because libunwind will ignore a frame header it doesn't understand (__eh_frame was still fine). But now there's no spew in the console. And over the next 50 years it will save a combined 0.3 seconds of cpu time
2020-05-25 21:02:01 -04:00
nattthebear
f9b5b9e374
pce - implement most memory domains our existing core does
...
The mednafen debugger system makes this easy, unfortunately that has a lot of other baggage, so do it this way
2020-05-25 12:49:36 -04:00
nattthebear
bc8d298a88
support pce-cd and sgx in nyma
2020-05-25 12:49:34 -04:00
nattthebear
8c9f4e24d8
settings infra
2020-05-25 12:49:34 -04:00
nattthebear
0caa087684
recompile all remaining existing cores that weren't compiled since the linkscript change
2020-05-25 12:49:33 -04:00
nattthebear
69d3dbc35f
pce: basic rom loading and playing works
2020-05-25 12:49:33 -04:00
nattthebear
257aa991fd
progress, or regress, or somegress
2020-05-25 12:49:33 -04:00
nattthebear
24286be735
Linking and unwinds
...
The goal here is to provide an unwind implementation that works. We (probably) don't have a working ldso, so reconfigure libunwind to work without that. To do that, it needs __eh_frame_* variables which it can addressof to find the locations of .eh_frame and .eh_frame_hdr. There is no way I could get gold to add these at all, so switch back to ld and add a custom linkscript. The custom linkscript gives us the opportunity to simplify the savestate memory mapping stuff inside ElfLoader, which should knock a bit of time off of state loads -- those VirtualProtect calls are not cheap. This also removes a potential source of nondeterminism with certain clever out of range pointers.
Any waterbox core that I didn't recompile for this commit will assert now until it is recompiled, because .wbxsyscall is in the wrong palace.
2020-05-25 12:49:32 -04:00
nattthebear
a213423efd
recompile libcxx and friends with nopic nopie, and recompile libsnes to test it out
...
once again, roughly 10% filesize savings. seems to be about 3% faster too
2020-05-25 12:49:32 -04:00
nattthebear
c8d558a275
fix set_thread_area + get_thread_area, recompile libc nopic nopie
...
So far I've only recompiled gpgx against the new libc, but I get a 10% smaller wbx file, which is cool
2020-05-25 12:49:32 -04:00
nattthebear
0f65351e13
Marching onward
2020-05-25 12:49:31 -04:00
nattthebear
2de9c1d117
Teach yourself C++ in 5000 easy crashes
2020-05-25 12:49:31 -04:00
nattthebear
39c0402bd8
Starting to work on some api stuff
...
ngp only for now
2020-05-25 12:49:31 -04:00
nattthebear
9f358bc8cc
pcfx compiles
2020-05-25 12:49:31 -04:00
nattthebear
9fe80952ff
zlib blah blah
2020-05-25 12:49:30 -04:00
nattthebear
fa139cbcf8
lynx and wonderswan compile
...
At least one of these is in need of upstream updates, so maybe we waterbox them, maybe we don't
2020-05-25 12:49:30 -04:00
nattthebear
e892dcef82
milestone: vb and ngp compile
2020-05-25 12:49:30 -04:00
nattthebear
311b549b6f
Add mednafen sobmodule
2020-05-25 12:44:22 -04:00
nattthebear
7bda234fe1
Port upstream gpgx commit
...
56f3d64265
Theoretically fixes https://github.com/TASVideos/BizHawk/issues/1390 but I haven't tested it
2020-05-21 10:39:59 -04:00
nattthebear
3b207f54ce
32x - fix crash, fixes #1826
...
Trigger condition: Any 32x rom smaller than 4MB in total size that tries to read out of bounds between its actual end and the 4MB limit
I've fixed the emulator crash, but I do not know if such roms are actually mirroring correctly - they probably aren't
2020-05-21 10:04:12 -04:00
nattthebear
21cdf5120b
Revamp waterbox build environment and runtime. ( #2027 )
...
Create an all new waterbox build environment:
WSL2 + Ubuntu 20.04 LTS (Other linuxes may work)
Musl libc with waterbox customizations
LLVM's libclang-rt, libunwind, libcxxabi, libcxx
Static linking to elf files
Compared with the old system, this is easier to set up a dev env for and easier to update in the future. The executables are larger but produce smaller savestates due to static linking. The modern toolchain means advanced library features and language features that sometimes appear in some upstream cores will be reusable.
2020-05-20 15:34:24 -04:00
feos
e075012b70
Rundum ( #2019 )
...
fix #1701
fix #1285
Co-authored-by: nattthebear <goyuken@gmail.com>
2020-05-18 21:11:18 +03:00
nattthebear
00aebc110c
Fix 3 band equalizer in Genesis ( #2008 )
...
If you tried setting your gains to 100 in the previous patch, it worked sort of, but I decided to incorporate ekeeke/Genesis-Plus-GX@f6f4556 as well to actually fix it completely, and rescale the setting properly so that 1.0 really is neutral gain.
Fixes #1319
2020-05-14 20:29:02 -04:00
nattthebear
a040e67c95
Add option to force sram in genesis core ( #1991 )
...
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
nattthebear
722358c1b1
Fix pokeymans pirate roms on gpgx ( #1986 )
...
mapper_32k_w expects to be able to write to rom area, so those roms now need larger savestate space
We could be extra clever and alloc_invisible the space and then restore after loadstate, but this pokeymans garbage doesn't deserve that work
2020-05-06 09:39:51 -04:00
nattthebear
061410a097
Pull in some GPGX fixes from upstream ( #1971 )
...
Fixes #1916
Fixes #1968
Pulls in 4017d379e6
Pulls in 147ad71a3c
Pulls in (more or less) a modified form of 200f9a7349
2020-05-02 10:57:42 -04:00
zeromus
e7a1638e00
SNES CDL - set DMAData flag for dma reading rather than leaving nonsense flags ( fixes #1409 )
2020-01-22 22:01:04 -05:00
zeromus
c2c526e84b
CDL: fix bsnes SGB cdl totally not working ( fixes #1344 )
2020-01-19 18:43:54 -05:00
zeromus
fd960e03fe
CDL: add CARTROM logging for many more cases, including superfx (should fix #1597 )
2020-01-19 18:43:54 -05:00
zeromus
c7dbed306a
add build.sh
2020-01-19 18:43:54 -05:00
zeromus
a5e8ae88ed
add cpu X and M flags to CDL for ExecFirst ( fixes #1410 , I hope)
2020-01-19 18:43:54 -05:00
zeromus
6577c7b71a
makefile to build all waterbox cores
2019-12-24 14:29:28 -05:00
alyosha-tas
c6c5217c97
O2Hawk: initial functionality, also remove O2EM
2019-12-17 12:09:58 -05:00
feos
20f10b9311
bsnes: remove embarrassing leftover empty space from trace log
...
requires rebuilding
2018-05-21 22:25:34 +03:00
nattthebear
ebd6408315
add h, v regs to snes regs list
2018-05-18 17:35:28 -04:00
nattthebear
fe85175619
Fix Issue #1048 : Flags on memory domain in picodrive
2017-11-13 21:12:27 -05:00
adelikat
635c1cdd05
Merge branch 'domainedmemoryhooks' of https://github.com/TASVideos/BizHawk into domainedmemoryhooks
2017-10-29 12:40:52 -05:00
nattthebear
148cadda72
Fix issue #1009 : sameboy: stack pointer saved in init state
2017-09-29 18:07:50 -04:00
nattthebear
148e40b504
Fix stack overflow in printer callback
2017-08-29 18:16:02 -04:00
nattthebear
0c3e18efb1
Could you use these things to print like, boobs?
2017-08-29 18:16:02 -04:00
nattthebear
d990226a26
human build bot has completed!
2017-08-24 21:10:32 -04:00
zeromus
b868c07a10
blind commit: add SMP hooks to bsnes to test hook scoping system (need to build a waterbox to proceed)
2017-08-23 10:08:43 -04:00
nattthebear
c001a1add5
saturnus - Port fix from Mednafen Team to fix super tempo
2017-08-20 20:42:07 -04:00
nattthebear
36a84bd0dd
Fix savestate hash match issue with Saturnus
2017-08-13 17:21:00 -04:00
nattthebear
da88560815
sameboy: Fix some sgb audio issues in donkey kongs. Two problems: One, due to the HLE startup, DK starts writing audio data too early and sticks the SPC in a bad state. Two, the full transfer format for SOU_TRN doesn't seem to be documented anywhere; it's acutally a 0-terminated list of regions to upload; not just a single region.
2017-07-22 14:22:46 -04:00
nattthebear
569730a61b
picodrive: region select. closes #929
2017-07-22 10:55:17 -04:00
nattthebear
fcfe2b23c9
Pizza Boy makes some interesting attempts, but doesn't stack up against the serious GB cores
2017-07-21 18:23:14 -04:00
nattthebear
38ff289990
Sameboy: Add copyright notices from original repo back. They were inadvertently left out because I copied a subdirectory and not the root directory
2017-07-21 16:44:12 -04:00
nattthebear
d640c16cff
sameboi: fix lag flag and input callback on non-sgb mode
2017-07-20 18:39:51 -04:00
nattthebear
7880cbabb3
I thought there was more to this vb settings thing. I guess not.
2017-07-20 17:22:40 -04:00
nattthebear
491dc9c1fb
sameboy: wbx file
2017-07-19 20:43:44 -04:00
nattthebear
0d6bdc200b
sameboy: a bit of savestate optimization
2017-07-19 20:38:19 -04:00
nattthebear
a640c53e52
Sameboy: RTC
2017-07-19 20:18:13 -04:00
nattthebear
57ca86710b
sameboy: SAVERAMS
2017-07-19 19:49:23 -04:00
nattthebear
cf8013af4a
sameboy: Add more features for the merciless slave driver
2017-07-19 18:48:11 -04:00
nattthebear
7d2ee60ade
sameboy: lag flag / inputcallback
2017-07-19 17:08:48 -04:00
nattthebear
09672a6bf9
SGB: fix bugs in attr chr. Fixes some graphical glitches in Daffy Duck Marvin Missions
2017-07-18 20:45:06 -04:00
nattthebear
bfd7337a32
sameboy: SGB support. Mostly accomplished through the power of copy+paste, since we plan on dropping pizza boy
2017-07-18 19:57:53 -04:00
nattthebear
1f89158179
sameboy: input
2017-07-18 18:19:51 -04:00
nattthebear
721a6c0470
sameboy: brip bruffer
2017-07-18 17:46:21 -04:00
nattthebear
f7bb894753
sameboy: it's alive!
2017-07-18 16:48:49 -04:00
nattthebear
34e68c589f
Sameboy progress
2017-07-18 16:48:49 -04:00
nattthebear
87f7183a27
sameboy: initial commit
2017-07-18 16:48:49 -04:00
nattthebear
c31ebe176d
gpgx: multidisk? dunno
2017-07-17 18:49:16 -04:00
nattthebear
0389b346f3
pcfx: fuck you mode
2017-07-16 10:01:31 -04:00
nattthebear
05299c618f
picodrive: Only honor reset and power buttons on leading edge. Works around bug where resetting every frame broke the emu
2017-07-13 18:06:35 -04:00
nattthebear
d305c873bf
Gpgx: Backport some changes that were supposed to fix something
2017-07-11 20:52:08 -04:00
nattthebear
ab4d81788e
TSTHawk: Potentially release ready?
2017-07-11 20:35:01 -04:00
nattthebear
9ab8b50c82
waterbox: Allow special section attributes to put variables directly in sealed or invisible. This can be easier to use than the heaps for adapting some existing code
2017-07-11 18:46:25 -04:00
nattthebear
ff58de56a1
TSTHawk: Settings?
2017-07-11 18:12:03 -04:00
nattthebear
b7d743e280
TSTHawk: Lag flag detection and InputCallbacks
2017-07-10 20:35:51 -04:00
nattthebear
a1bcb90ee6
TSTHawk: Fix interlaced display so it doesn't crash because crashing is bad
2017-07-10 19:12:44 -04:00
nattthebear
a9ba725cb3
TSTHawk: Fix less than ideal video output. Whoops!
2017-07-09 14:16:15 -04:00
nattthebear
110d741cb3
TSTHawk: controller stuff
2017-07-09 13:40:52 -04:00
nattthebear
dd7389f848
PicoDrive: Add core query whether 32X hardware is currently active. Remove code that assumed that the emulator would always activate 32X hardware when _32xPreinit was true, or that it would never activate 32X hardware when _32xPreinit was false. Both assumptions are false.
2017-07-09 12:14:27 -04:00
nattthebear
d1ff443540
PicoDrive: Add the rest of the games to the DB. Expose IRegionable information and use it to inform FPS rate
2017-07-09 11:59:54 -04:00
nattthebear
0ee1832d57
Adult Video Games
2017-07-09 11:18:03 -04:00
nattthebear
ee0ae25d3e
uzem: Fix some controller stuff: clock activates on rising edge, latch is continuously active whenever high... fixes the detect controllers routine in the official kernel
2017-07-04 09:11:31 -04:00
nattthebear
bd57871171
New! With more games than the 32X! And better sounding ones too!
2017-07-03 21:29:34 -04:00
nattthebear
ea02e62d05
PicoDrive: Add memory domains, including ISaveRammable support. In order to get memory domains for 32x, "32X" needs to be on the gamedb entry.
2017-07-03 11:43:03 -04:00
nattthebear
5e54b896b7
PicoDrive: Disable idle loop detection. Move rom to alloc_sealed. Set heap sizes.
2017-07-03 10:50:24 -04:00
nattthebear
d1a9c41466
PicoDrive: Fail fast when trying to run any hardware that calls PicoCartResize (SVP, Pier Solar, and others). Bizhawk won't be using this, so no reason to think about it.
2017-07-03 10:24:26 -04:00
nattthebear
b6d2f38899
remove stray printf
2017-07-03 09:09:00 -04:00
nattthebear
bc55597e90
PicoDrive: CD Audio support. GPGX and PicoDrive both share the same MCD emulation core, which has significant accuracy difficulties with CD audio...
2017-07-03 08:16:34 -04:00
nattthebear
24cd317a1c
PicoDrive: Mega CD. No CD audio yet.
2017-07-02 20:46:01 -04:00
nattthebear
a80f16c032
PicoDrive: minor cleanup
2017-07-02 18:29:41 -04:00
nattthebear
45e0770d06
PicoDrive: Connect 32X bios files. These are not required by the emulator, but we'll require them for deterministic mode. Otherwise, they're used if available.
2017-07-02 18:16:38 -04:00
nattthebear
fee2f865cc
PicoDrive: Fix 32x. (The 32x video draw routines don't respect pitch so you have to set it to width in bytes)
2017-07-02 17:45:10 -04:00
nattthebear
264436e614
PicoDrive: input plus lagged and callback
2017-07-02 16:15:54 -04:00
nattthebear
8b4176df70
PicoDrive: Sound
2017-07-02 15:06:44 -04:00
nattthebear
47535f8158
PicoDrive (WIP)
2017-07-02 13:47:43 -04:00
nattthebear
bc9726f687
Waterbox: Connect basic stdio. You get an empty stdin, real stdout and stderr, and can present readonly files to the core.
2017-07-01 21:02:52 -04:00
nattthebear
f972df72ea
pizza: Save the last rendering of the border as well when MASK_EN is used. Seems to match real hardware?
2017-07-01 10:09:27 -04:00
nattthebear
8e1df5562a
Pizza: Fix bug that broke sound channel 3 in certain cases. Bug was introduced by the porting process and does not exist in original core.
2017-07-01 09:38:20 -04:00
nattthebear
203a0521b5
pizza: set up constructors right for SGB and GB
2017-06-28 22:19:20 -04:00
nattthebear
e8ef4913e9
snes9x: Port byuu's s-cpu fix
2017-06-27 20:29:10 -04:00
nattthebear
e57a3ae23c
gpgx: silently discard R&W on bus to locations that shouldn't be accessed by plain pointer
2017-06-26 18:17:00 -04:00
nattthebear
db73b7f275
virtual boyee: make frame 0 size match other frame sizes
2017-06-26 17:34:01 -04:00
nattthebear
7c5c3482e7
pizza: RTC, maybe
2017-06-25 09:19:32 -04:00
nattthebear
537b2a1616
pizza: saverams
2017-06-24 21:46:11 -04:00
nattthebear
876a138e9b
pizza: fix MASK_EN - the frame is grabbed before the command
2017-06-24 19:10:13 -04:00
nattthebear
ed57f766ad
Pizza: Savestates at ~600K in SGB mode
2017-06-24 11:05:59 -04:00
nattthebear
00f2743240
pizza: ship wbx file
2017-06-24 09:47:51 -04:00
nattthebear
6637e0a53f
pizza: add lag/polling support
2017-06-24 09:38:03 -04:00
nattthebear
e81d269fbe
pizza: support pocahontas custom musacks. this game is an abomination
2017-06-24 09:12:08 -04:00
nattthebear
26063b35d0
pizza: first bits of sound. bios starting sound plays. bomb sound plays in Bomberman GB.
2017-06-23 20:51:19 -04:00
nattthebear
21c70d1d65
gpgx: port other changes from the old branch
2017-06-22 17:44:23 -04:00
nattthebear
e231cd5084
gpgx: port some svp changes from old branch. that game sucked
2017-06-22 17:31:31 -04:00
nattthebear
d1838cb868
pizza: some debugging info
2017-06-20 18:31:10 -04:00
nattthebear
c112bb835f
pizza: most things besides sound should be working now
2017-06-20 18:23:51 -04:00
nattthebear
ea32862199
pizza: some basic ATTR stuff now working
2017-06-19 19:53:40 -04:00
nattthebear
95a56b15a8
pizza: SGB joypad functionality working
2017-06-18 20:35:55 -04:00
nattthebear
278b29a840
pizza: use waterboxcore
2017-06-18 16:05:55 -04:00
nattthebear
80698781b1
misc code cleanup
2017-06-18 15:01:02 -04:00
nattthebear
37b285fe8d
saturnus: get rid of the round-tripping of analogs through the mednafen input system.
2017-06-18 12:25:01 -04:00
nattthebear
9ff2da5265
Start work on Honda Oddessy2
2017-06-18 10:29:03 -04:00
nattthebear
1292b27163
Add some draft work for supporting sysv <-> msabi interop. I wonder if we'll ever use this? I'd put it on a separate branch but it would be merge hell.
2017-06-18 08:51:09 -04:00
nattthebear
5a8fad73b9
saturnus: use waterboxcore
2017-06-17 15:30:03 -04:00
nattthebear
c04beea4d0
update snes9x to use WaterboxCore
2017-06-17 12:57:43 -04:00
nattthebear
3e731ae0b3
Make ngp core use WaterboxCore infrastructure
2017-06-17 10:47:10 -04:00
nattthebear
6f60eb5efc
Create an abstract base class for waterbox cores, and adapt Virtual Boyee to use it. Not sure yet how useful this is...
2017-06-17 10:07:02 -04:00
nattthebear
a4c6d04a18
pizza: change internal rendering pipeline to 32 bit colors
2017-06-16 09:20:35 -04:00
nattthebear
04d4880564
pizza: cover your ears
2017-06-16 08:19:03 -04:00
nattthebear
dd9d1b2018
pizza: input
2017-06-15 21:38:52 -04:00
nattthebear
8fa903c004
pizza progress: it runs
2017-06-15 19:00:41 -04:00
nattthebear
69ec6b2a73
remove some sound buffers from snes savestates
2017-06-14 18:56:24 -04:00
nattthebear
17cc595ba6
i'd stash all of this but it's less effort to commit
2017-06-14 16:49:42 -04:00
zeromus
f7ac0d0b02
update snes9x submodule -> obj layers toggle commit
2017-06-13 21:47:08 -05:00
nattthebear
7d6b4611dc
pizza: start removing parts i don't like
2017-06-13 20:21:13 -04:00
nattthebear
a82d3bc540
snes9x: shartfox: show 99% of all frames as lag frames, as intended
2017-06-13 20:21:13 -04:00
nattthebear
2eb4205a3b
libsnes: remove some palette code that wasn't used by us. not sure what this was for. gets raw snes state size down to 5MB
2017-06-13 19:24:28 -04:00
nattthebear
cbbc922cf7
pizza boy at c7bc6ee376028b3766de8d7a02e60ab794841f45
2017-06-13 19:24:28 -04:00
nattthebear
668006fba0
arbitrarily slash the size of most libsnes cothreads significantly, decreasing overall state size from 10MB to 7MB
2017-06-11 20:33:58 -04:00
nattthebear
626de2d7c8
waterbox: add guard pages to libco stacks
2017-06-11 20:10:37 -04:00
nattthebear
edbe83bc13
libsnes: savestate uncompressed size 14MB=>10MB (for a game with nothing special)
2017-06-11 15:30:54 -04:00
nattthebear
8cf1e43e70
libsnes: move tile cache out of savestates. saves like 400kB. meh.
2017-06-11 11:28:29 -04:00
nattthebear
ee026d0525
libsnes: Cleanup some dead code. Apparently the codebase contained a primitive attempt to implement savestates, but it contained significant bugs and had no use beyond toy projects.
2017-06-11 09:37:47 -04:00
nattthebear
5f2c5b0934
snes core is ready for business, I think
2017-06-10 20:01:07 -04:00
nattthebear
67ff767f95
libsnes: recreate the emu cothread at the end of init, to avoid pointer poison that was breaking xor state consistency. Big todo: all init functionality really needs to happen from the main thread, as there are many syscalls that reenter managed in that code, and reentering managed from a cothread stack is a Bad Thing
2017-06-10 19:51:59 -04:00
nattthebear
dde953d612
fix a libco issue that was breaking xorstate consistency
2017-06-10 18:20:58 -04:00
nattthebear
ba7543c19a
snes waterbox: fix a leaky pointer which was breaking xorstate integrity
2017-06-10 17:19:18 -04:00
nattthebear
baf7a7973b
snes: do some more savestate prep, including removing the unused cheat system, which cost sixteen megidobites of ram
2017-06-10 15:53:38 -04:00
nattthebear
fcbb85a579
snes: move some stuff to sealed_heap
2017-06-10 15:20:06 -04:00
nattthebear
f0ec682314
snes runs! sorta.
2017-06-10 14:16:25 -04:00
nattthebear
36be9e9fc7
snes: waterboxification phase 2
2017-06-10 14:16:25 -04:00
nattthebear
9975a05695
snes: waterboxification phase 1
2017-06-10 14:16:24 -04:00
nattthebear
a7ef10322e
snes: move files to waterbox area
2017-06-10 14:16:24 -04:00
nattthebear
d8c19f3787
waterbox libco (not yet tested)
2017-06-09 19:54:20 -04:00
nattthebear
3170f4ac49
add ss.wbx. Saturnus core is now ready for testing
2017-06-09 17:55:34 -04:00
nattthebear
1c46b79bbb
saturnus: settings
2017-06-09 16:42:08 -04:00
nattthebear
a42631fadc
Saturnus: IMemoryDomains. Names match the old yahbooze names when applicable.
2017-06-08 17:15:29 -04:00
nattthebear
51d36f4563
saturnus: move cartridge allocations to special heaps
2017-06-07 20:21:44 -04:00
nattthebear
7d4b6a5209
Saturnus: Simplify BIOS rom loading and move it to alloc_sealed
2017-06-07 19:48:26 -04:00
nattthebear
90d9474530
Saturnus: Lag detection and input callbacks
2017-06-07 18:56:44 -04:00
nattthebear
4d875e0c24
Saturnus: Add CD sanity checks
2017-06-07 17:54:16 -04:00
nattthebear
40680a9d74
Saturnus: Connect reset button, but you need to hold it down for 3 consecutive frames (working as intended). Also, DRIVE LIGHT HOOOOOOOOOOOOOOOOOOOOOOOOO
2017-06-07 17:34:30 -04:00
nattthebear
8bbfa26d1c
saturnus: get basic interlace working
2017-06-07 06:43:01 -04:00
nattthebear
fd915a5999
saturnus: R/B swap (No, you still can't play games)
2017-06-05 17:33:45 -04:00
nattthebear
d7b8464a9b
saturnus: start working on controller hook up. there's something wrong with the CD stuff though, and games don't work
2017-06-04 21:14:00 -04:00
nattthebear
b9ab41a4da
More like Chie SatURNaka
2017-06-04 16:41:11 -04:00
nattthebear
f96a7abb94
ngp: connect saveram. due to the way this is implemented in neopop, connecting it greatly increased the size of savestates, which may or may not be worth fixing.
2017-06-03 07:58:14 -04:00
nattthebear
034337c51d
start of dngp linkup. It works enough for KOF2 to think a cable is there, but not enough to run anything
2017-06-01 20:44:49 -04:00
nattthebear
df0a955621
ngp: memory domains
2017-05-31 16:58:16 -04:00
nattthebear
d799624e9c
NGP: It works and stuff
2017-05-30 18:36:11 -04:00
nattthebear
aab6391b12
virtual boyee: actually fix the color config stuff
2017-05-29 20:34:07 -04:00
nattthebear
3ec7b0252f
Exploding your computer NYI https://www.youtube.com/watch?v=dUHYNmNrqoY
2017-05-29 20:21:34 -04:00
nattthebear
f75ad4a472
replace snes9x.wbx for a buuug
2017-05-29 19:20:44 -04:00
nattthebear
b20354448b
vboyee-- somehow the default colors for anaglyph were all wrong
2017-05-29 14:11:35 -04:00
nattthebear
391160ebf9
vboyEE: settings and syncsettings
2017-05-29 13:50:40 -04:00
nattthebear
4ab407bb42
virtual boy: add IInputPollable. Unfortunately, adding one more field to EmulateSpec caused C# to vomit its brains out, so yeah...
2017-05-29 12:16:24 -04:00
nattthebear
2887ba5823
savestates for vb. this includes savestates for mmap_heap. unfortunately, usage of mmap_heap was scrapped as the things going into it were better suited for invisible/sealed. it may be eventually useful
2017-05-29 11:26:38 -04:00
nattthebear
fbf7be92d5
VirtualBoyee: Hookup video, input, and sound. 3D Tetris appears to be working, but only the alternate dump of merio tenis works
2017-05-29 08:16:56 -04:00
nattthebear
855ff7deca
Start working on a primitive mmap implementation. It's good enough for VirtualBoyee to boot, but undoubtedly has many bugs.
2017-05-28 22:18:01 -04:00
nattthebear
a52e9d7dc1
https://www.youtube.com/watch?v=0sKRRY5tQz8
2017-05-28 17:19:07 -04:00
nattthebear
7f7f490b6d
The InputCallbackSystem on this Core is now fully operational. https://www.youtube.com/watch?v=g7-tskP0OzI
2017-05-28 14:18:08 -04:00
nattthebear
61aa4f5df3
Connect Snes9x controllers, syncsettings, and regular settings
2017-05-28 10:18:20 -04:00
nattthebear
7ea3755f13
rename gpgx.exe to gpgx.wbx and push some binaries
2017-05-28 07:33:55 -04:00
nattthebear
0cc1abd51b
snes9x: savestates
2017-05-28 06:39:11 -04:00
nattthebear
ef8264a8b0
waterbox: Add special handling for imports in XorStates. Fix a few other instances where managed pointers were leaking out into XorStates
2017-05-27 20:38:28 -04:00
nattthebear
b737959d11
snes9xHawk which is totally not a thing: connect audio
2017-05-27 14:32:12 -04:00
nattthebear
34791d8589
bizinvoker: fix clas being used in place of ref struct
2017-05-27 12:59:57 -04:00
nattthebear
2665510502
Add enough changes so that snes9x now boots. This includes stubs for a bunch of syscalls, a few mmglue changes, and C++ global constructor support
2017-05-27 12:29:05 -04:00
nattthebear
7739b9dc80
rough in some snes9x stuff. not working yet
2017-05-21 17:43:43 -04:00
nattthebear
dc6646a020
add snes9x sobmodule
2017-05-21 11:17:22 -04:00
nattthebear
fa24f5fc9d
GPGX64 works with the new waterbox, or would if I pushed the binaries. Savestates are hosed; TBD
2017-05-20 18:50:01 -04:00
nattthebear
a325969963
Work more on waterbox and convert GPGX64 to use the new PERunner. Doesn't work yet.
2017-05-20 17:18:31 -04:00
zeromus
2f405cd01e
fix gpgx CDL z80 -> MD cart
2016-04-15 00:10:23 +01:00
zeromus
6f68925a75
fix typo in genesis z80 CDL that made addresses in mirrored z80 ram region crash
2016-04-22 12:34:12 -05:00
nattthebear
e294e29202
Commit current gpgx.elf build
2016-04-05 21:29:52 -04:00
nattthebear
ad2fbd03f0
Waterbox: a few small libc changes
2016-04-05 21:19:23 -04:00
nattthebear
82baec8e6b
Add some random junk to headers to make some things not complain. (You'll get linker errors if you try to use any of it, of course)
2016-03-27 22:00:33 -04:00
nattthebear
5876c60571
gpgx waterbox - dynamically allocate some sega CD memory areas to reduce state size. raw core is now about 800K in normal mode; 2MB in sega CD mode
2016-03-27 12:00:50 -04:00
nattthebear
ab16086dfd
waterbox gpgx: fix crash on cart sram games
2016-03-26 23:32:48 -04:00
nattthebear
a029e60cfc
Per spec, if mouthbreather calls longjmp(buf, 0), return 1 instead
2016-03-26 17:14:44 -04:00
nattthebear
b4735502a5
gpgx waterbox: fix a few misc bugs in elfrunner, and fix a few misc bugs in the core so that Virtua Racing now works
2016-03-26 14:44:44 -04:00
nattthebear
a3a761d028
won't miss that code
2016-03-23 21:37:33 -04:00
nattthebear
92e708d011
gpgx waterbox: move bg_pattern_cache to alloc_invisible
2016-03-23 21:10:18 -04:00
nattthebear
06f9d78452
gpgx: trim savestate size by moving some things to the sealed heap
2016-03-23 20:52:49 -04:00
nattthebear
b06908e5d4
gpgx waterbox: get sega cd working
2016-03-23 20:11:47 -04:00
nattthebear
8136aa0f03
Add the basics of multiple memory arenas to elfrunner. With a bit of tweaking, gpgx core states are now 3.5MB (and could get smaller)
2016-03-23 19:45:02 -04:00
nattthebear
c857b162d0
Add waterbox folder with the gpgx waterbox experiment. Not useful for much yet
2016-03-22 21:58:52 -04:00