Commit Graph

565 Commits

Author SHA1 Message Date
Moritz Bender cc38f4bcba
Implement memory callbacks for the new bsnes core (#2797)
* Actually working callbacks
now actually work after natt's changes
* Set whether memory hooks exist every frame to prevent unnecessary function calls if not
2021-11-29 19:59:47 +03:00
nattthebear 2ea62ffea6
Handle reentrant calls in waterbox (#3007)
Fixes #2585
2021-11-23 14:20:12 -05:00
CasualPokePlayer 600ee6c913 Squashed commit of the following:
commit af7cadfce4b750f8b1b23476c281bd2dfe027225
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Tue Nov 2 22:43:21 2021 -0700

    right, rename these too

commit e27197d18ad33af53729b1a57ee4a048189c41c4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Tue Nov 2 22:40:42 2021 -0700

    build

commit 1af068f11f553ade70999fb2c640ee98e054aa36
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Tue Nov 2 22:37:28 2021 -0700

    new way to do mic input for melonds
2021-11-02 22:54:36 -07:00
CasualPokePlayer 463ef90fd2 build and comment this crap out (nice build error lol) 2021-10-29 23:07:34 -07:00
CasualPokePlayer 7a30cce55f melon merge upstream 2021-10-29 22:57:58 -07:00
CasualPokePlayer 9138859bf5 am/pm flag fix? 2021-10-26 18:04:41 -07:00
CasualPokePlayer 41128abc37
[melonDS] Redo porting, waterbox style now (#2945)
Co-authored-by: nattthebear <goyuken@gmail.com>
2021-10-24 21:40:23 +03:00
CasualPokePlayer 9a87a0f586
nuke sameboy (#2934) 2021-10-18 21:38:23 -04:00
mooware 55a8936a30
add options for virtualboy to only show left or right screen (#2842) 2021-09-01 20:41:02 -05:00
CasualPokePlayer 036e349337
[BSNESv115+] Fix Lag Frames For SGB (#2886)
* better lag detection for sgb. todo: might want to toggle this?

* correct logic and don't fail build this time
2021-08-01 09:54:59 -04:00
Moritz Bender 2ff7e4d39b
Add sa1_iram memory domain for new bsnes (#2803) 2021-07-16 18:41:53 -05:00
CasualPokePlayer 488fd2c6af
Add support for more SGB firmware + Use homebrew bootroms instead of bsnes' illegally provided official ones (#2837)
* add support for more SGB firmware

* replace illegally provided bootroms with legal homebrew bootroms

* let's swap these with homebrew bootroms too

* add builds

* this should probably be preferred

* Fix incorrect assignment

* Fix whitespace changes to Designer files

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-07-14 12:48:02 -05:00
nattthebear 9488e19d38
Update mednafen cores to 1.27.1 (#2831) 2021-07-03 10:01:04 -04:00
nattthebear 90a12a8e73 Update virtual boy core with a mednafen 1.27.1 fix. 2021-06-19 08:32:50 -04:00
nattthebear 2c0c6aa0bb rename a bunch of shit because someone has a fetish for RFCs
rust maintains its reputation as a less annoying language to write systems code in than C, but only just barely.

yeets #2750
2021-05-26 16:07:07 -04:00
Morilli 38bc953e22 Add a designated payload controller based on the multitapcontroller in the new bsnes core
- also patched out the left/right and up/down handling in the core, where it didn't belong
- also fixed the existing payloadcontroller because it wasn't working at all lol
2021-05-26 02:27:54 +02:00
Morilli 24c74c0e36 Implement IDebuggable for the new bsnes core 2021-05-23 05:02:05 +02:00
Moritz Bender 5d20862f26
Implement bsnes version 115 as a new core (#2740)
* Slam all this shit in here i don't care

* no lzma pls

* un-hack things that i hacked earlier (closer to bsnes source now)

* remove more unused files

* remove more files

* get some stuff working on this weird ass branch

* do this to get actual video (holy shit it works) while palette is incorrect

* make video look correct and hopefully fix stack waterbox allocation size uh ?

* Move the new bsnes core to its own dir as a new core and get input working

* remove leftover files from old bsnes

* fix some shit for now

* make lag frame detection work

* Improve cartridge loading to hopefully make sgb work (haven't tested)

- also changes some audio buffer stuff, might be better or worse than before idk
- need to figure out the saveram stuff
- path requests might actually completely fail atm, no idea how to verify that

* refactor to use a switch instead of some weird array with function pointers

- and implement snes_get_mapper, might be helpful or smth idk

* implement entropy c++-side and delete all this useless code holy

* delete dumb unnecessary code

* implement snes_peek_logical_register c++-side

* normalize all indentation

* attempt to properly support sharprtc and epsonrtc data loading and writing

* Duplicate winforms code to add entropy support c#-side and implement layer_enable functionality

The duplicated code is just so i can have a proper window for the new bsnes core. I do not like duplicating code like this, so this should be improved if possible

* Checkpoint for the start of getting rid of the ugly api wrapper stuff

* Next checkpoint for a full api refactor

* bullshit denied

just no.
every file is either copied or manually edited or written from scratch etc.
do not. force. one indent_style on every single file.
It just does not work.

* remove the entire eMessage_CMD handling and convert to native function calls

* general improvements regarding functionality

- adds hotfixes and fast_ppu core options
- add back the alwaysDoubleSize setting
- use bsnes's own serialize function for savestating now
- generate and use the color palette only in c# cause it doesn't need to be on the c++-side
- and more cleanup like always

* somewhat implement IMemoryDomains

* Implement trace logger and cleanup more unused stuff

* Implement ISaveRam, fix controller mapping for TAStudio and remove the pwrap stuff

* Fix ISaveRam, add a controller configuration box for the new core, (hopefully) fix controller inputs

- also differentiates BG prio0 and prio1 now (with options for it)
- some minor irrelevant edits in bsnes source

* Cleanup some more and optimize a bit

* Support firmware loading and make sgb work (hopefully)

* Remove all unused files

* Add back CropSGBFrame option and cleanup snes_video_refresh logic

* Some hopefully sensible changes

* One more cleanup pass

* Change to new PortedCore attribute

necessary after the changes in 98b07c42d5

Co-authored-by: nattthebear <goyuken@gmail.com>
2021-05-14 20:06:13 -05:00
YoshiRulz 8e7f171ae9
Copy to Assets and output when building wbox cores and host 2021-04-28 16:06:41 +10:00
nattthebear e6c33e676a Update notes on debugging
We fixed SEH unwinds on callbacks some time ago
2021-04-09 20:59:22 -04:00
YoshiRulz 7ec1008621
Update output path of NymaTypes shell script
fixes 65d5e3f7d
2021-04-10 08:49:07 +10:00
YoshiRulz 359cb0d17b Fix executable bits on some wbox scripts 2021-03-20 08:11:48 +10:00
YoshiRulz c75ea8efd1 Cleanup libcxx scripts 2021-03-20 08:11:48 +10:00
YoshiRulz 4697c56a3b Pull musl submodule, complete script refactor and update readme 2021-03-20 08:11:48 +10:00
nattthebear 1c27943707 Make SNES rom memory domain writeable
Use at your own risk
2020-12-13 20:11:58 -05:00
nattthebear 72ea5ce866
Waterbox: Allow SEH unwinding through guest calls. (#2519)
The goal of the separate stacks was to allow this, but I never quite finished the job.  Now, when a SEH exception (generally a Rust panic in a guest syscall handler, or a C# Exception in a callback) tries to unwind through guest code, it works.  Note that we don't actually unwind the guest stack, as there's nothing useful to be gained from that;  When an emulator core throws an exception like this, it should be considered completely hosed.  Throw it out and get a new one.

There were two bugs stopping this from working.

First of all, we had custom thunks that lacked sufficient unwind information for RtlUnwind to get through.  For the sysv <-> msabi adapter, this was fixed by making it regular Rust code instead of hand assembled junkus.  So the compiler generates valid unwind information for all of that.  Then we just JIT a small stub on top in the MsHostSysVGuest code, which needs no unwind information because it won't throw an exception itself and transparently passes execution to something with valid unwind information without invalidating that information.  (NB:  Clr JIT stubs use the same strategy.)  For the host <-> guest stack transition code, a small hand generated unwind stub was added to interop.s that is registered with `RtlAddFunctionTable`.  I've seen the unwind work successfully without this second set of unwind information, but better safe than sorry.

Secondly, our misuse of SubSystemTib caught up with us.  It's an old field, allegedly from OS/2, that we repurposed to hold TLS information needed for the waterbox stack transitions.  Most people think nothing uses it any more, but in fact if it's set to a non-NULL value, but doesn't contain valid information, `KERNELBASE!GetModuleFileNameW` will crash when it tries to get a module name from there.  The fix here was to simply tighten up our usage of SubSystemTib:  We were already nulling it out when returning from guest code, but not when calling back to host code in guest code.

Fixes #2487.  Unwinding of this sort has never worked well in waterbox; the reason why that issue is more recent is that the particular reproducing case of firmware didn't cause an exception in a callback in older code; the exception happened in pure managed code.
2020-12-13 19:12:16 -05:00
nattthebear 6130a7241f Fix Saturn cart detection
Closes #2513.
Similar to ddd229e03d, Mednafen internals expect enumeration setting types to work with MDFN_GetSettingI, but we weren't doing that.
2020-12-12 13:40:33 -05:00
nattthebear 2f2f104e3d Update nyma cores to Mednafen 1.26.1
See Mednafen release notes for full changes.  Mostly just Sega Saturn stuff.

Closes #2464
Closes #2162
2020-12-12 10:50:18 -05:00
zeromus 96aa3e85c0 libsnes - remove pointless registers 2020-12-05 23:37:16 -05:00
zeromus f580773342 add CARTROM-DB and CARTROM-D blocks to libsnes CDL 2020-12-05 23:37:16 -05:00
zeromus ffdb19e99a update waterbox readme a bit 2020-12-04 15:41:16 -05:00
nattthebear 98ad14ff47 Fix two semi-related savestate bugs in waterbox.
We had two instances where the act of sealing could lose snapshots that were never recovered.  It's oof.
2020-10-13 09:10:46 -04:00
nattthebear 27e600c1ac Fix some confusions in no-dirty-detection mode
This caused some awful crashes, but doesn't affect any real release builds of waterboxhost
2020-10-13 09:10:40 -04:00
James Groom a5d166cf71
Partial fix for #2353 (files in dev builds) (#2410)
* Move .so libraries to dll dir, update some build scripts

* Move OpenTK.dll.config with OpenTK.dll

* Keep EmuHawkMono.sh in Windows-built artifacts

* Add Package.sh to match QuickTestBuildAndPackage.bat

used as `Dist/BuildRelease.sh && Dist/Package.sh`

* Update GitLab CI to use Package.sh
2020-09-18 20:08:34 -05:00
nattthebear 507e818374 Fix the faust core so it actually runs again 2020-09-14 07:23:00 -04:00
nattthebear ddd229e03d Fix two mostly unrelated nyma settings issues
Mednafen has extra aliases of enum values that we don't need here and were confusing the system.  Now, NGP no longer has three different "English" options for language.
Internal Mednafen code expects MDFN_GetSettingB ("bool") to work with enum values, so long as those enums are 0 and 1, but we weren't handling that.

Fixes #2385
2020-09-10 08:05:11 -04:00
nattthebear 6047a12ad8 Rework and fix up invisible allocations and sound/video format init in nyma cores.
See the submodule commits for the tech details.  Fixes #2365.  As a side effect, Faust state sizes should be moderately smaller now.
2020-09-07 11:08:09 -04:00
nattthebear 25bdeb7f69 Use alloc_plain to allocate the md_cart space so it will be writable if needed
This lets us support mapper32k_w without needing extra hacks.  Because of lazystates, this doesn't hurt us on state size either (lazystates did not exists when we did 722358c1b1
2020-08-07 07:17:14 -04:00
Sappharad db0f2a65a1 Migrate to latest GPGX MD Cart mapper support 2020-08-06 21:40:43 -05:00
zeromus eee7d52c80 add waterbox readme notes concerning autocrlf and submodules 2020-08-06 15:56:05 -04:00
nattthebear 9600bc2ce0 ps2 - add fenv support and recompile dobie with it
This isn't so great, and could lead to nondeterminism or abi violations depending on how things use fenv.  For now it's just a dobie experiment
2020-08-06 07:28:24 -04:00
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