* basics for sameboy
* lol
* bleh
* lol
* push this in
* push this in
* settings, and also update sameboy bootroms
* bleh
* build linux
* remove some debugging shiz
* fix the order of this
* debug stuff also do gpu palettes right
* use new key mask API
* push shit in
* bleh
* add in replacement impl for joypad, use until opposing directions are allowed upstream
* update
* finally get this working without needing GB_INTERNAL
* hook up acc controls
* oops
* oops x2
* oh right this doesn't use this
* finish this up
* also mark this as released
* cleanups
* Nitpicks
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
* BSNESv115+: get rid of input_state + input_poll; just poll
* call `snes_controller_latch` on latches done in the core,
- this now also actually calls the InputCallbackSystem
- needed some edits in the core to support executing the callback even when no controller is connected in port 1
* Fix and somewhat normalize the SnesCallbacks order
- saveram was not working at all on certain roms, as the "CARTRIDGE_RAM" memory domain was returning a null pointer (similar thing for "CARTRIDGE_ROM"; changed it to correctly return the current rom)
- add sa1_bwram domain for clarity and an SGB_ROM domain
* Actually working callbacks
now actually work after natt's changes
* Set whether memory hooks exist every frame to prevent unnecessary function calls if not
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
* sgb meme
* various sgb fixes, add hard reset support for spc, make frontend provide spc file
* sgb border support, mostly copied from sameboy
* add support for disabling sgb border, also fix dumb when disabling border
* state work, states seem to be broken tho
* fix dumb state issue
* multiplayer
* fix dumb in spc stating
* misc
* pass SGB tests
* oh right I have to fix this too
* and this dumb too
* attempt to fix weird crashes
* or maybe this will fix it?
* wtf is spc doing?
* rebase
* misc state + debugging stuff
* finally fix weird assertion failure
* factor out loading in spc file, also factor out the ipl
* oops
* init special sgb colors for certain games
* slight sgb audio refactor
* this should work better?
* oops
* switch back to master
* super penguin
* [Gambatte] Port setregs from upstream, implement SetCpuRegister, misc cleanup/fixes elsewhere
* [Gambatte] Add more proper uninitalized AGB WRAM, based of a GBP dump
* cleanup Gambatte's CpuSetRegister (credits to stringflow)
* additional Gambatte code cleanup
* [Gambatte] cleanup tracelogger code readability
* fix
* Initalize VideoBuffer with a white screen instead of a black screen, misc video fixes
* misc cleanup
* [Gambatte] hdma work
* [Gambatte] add warning for recording a movie without a bios enabled. doing this as I am annoyed enough from disabled bios being the default and you cannot say anything about the profile system since recent submissions have shown that ineffective
* misc cleanup
* [Gambatte] init state tweaks
* [Gambatte] add setting for patching similar bioses
* fix this
Co-authored-by: TiKevin83 <travismcgeehan@gmail.com>
Co-authored-by: alyosha-tas <alexei.f.k@gmail.com>
* Wire up host haptics, but only for OpenTK which doesn't support it
and I'm hijacking the Fast Forward hotkey too
* Fix Mupen 64 Vibration DLL
* Enable Mupen 64 Vibration for DirectInput
* Remove unused SDL dep from Mupen input-bkm plugin
this allows it to be built without checking out the deps submodule, I guess
* Fix <OutDir/> in Mupen lib projects
* Remove "Debug" haptic channel and debug hotkey, prepare Mupen
* Fix remaining merge conflicts
* ...with the correct channel name
and hopefully no dangling whitespace changes
* Fix typo from resolving merge conflict, and off-by-one error
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
* Support null (any) address for N64 breakpoints.
Fixes#2808
* Move null check for better readability.
* Replace debugger mutex with semaphore that counts debug steps.
This is taken directly from upstream m64p. If breakpoints are being hit fast enough and in large enough quantity, m64p always ends up getting into a deadlock. The semaphore seems to resist this problem.
* Remove tabs
* 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>
- 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
* slightly fix gambatte peeking
* fix gambatte layer masking, move layer masking to sync settings (these settings affect sync, they shouldn't be normal settings)
* block toggle layer hotkeys when movie recording
* refactor Gambatte's RTC
* add a way to set an inital RTC state during a movie recording
* prevent Gambatte from saving RTC data when recording a movie, needed to create save-anchored movies
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.
* post-build step moves .exes up a level, to output
* also fixed OpenTK.dll.config location
* also removed redundant step from packaging scripts
* future executables need to be capable of resolving assemblies in dll
* 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