Commit Graph

695 Commits

Author SHA1 Message Date
CasualPokePlayer 98a7b02d34 Fix mono AAC decoding 2025-08-16 01:48:49 -07:00
CasualPokePlayer 460c65cbe4 Fix melonDS resampling 2025-08-15 23:50:05 -07:00
CasualPokePlayer e70d92c1c4 Implement AAC decoder for melonDS 2025-08-15 23:12:18 -07:00
CasualPokePlayer 7b47f76c91 Actually pass userdata to cartridges 2025-08-15 17:28:54 -07:00
CasualPokePlayer e79d7c3b48 fix permissions of newly added files 2025-08-15 16:54:21 -07:00
CasualPokePlayer 426a32309c Update melonDS (after DSP HLE merge)
A bit more work is needed (for the AAC decoder)
2025-08-15 16:51:36 -07:00
CasualPokePlayer 35c3f76d89 Shrink the decompressed ELF size of melonDS down by 128MiBs
This more just reduces memory usage when decompressing the .zst if anything.
2025-08-11 23:45:05 -07:00
CasualPokePlayer 5aeb1ada48 Add JIT support for melonDS 2025-08-11 12:48:56 -07:00
CasualPokePlayer 0b1b5c2ecd Remove debug print 2025-08-10 05:16:23 -07:00
CasualPokePlayer ff7015ecad Add better handling for cert.sys 2025-08-10 05:06:24 -07:00
CasualPokePlayer 1e08789fe6 Add support for full DSi BIOS booting, DLDI, and DSi SD card 2025-08-10 04:56:33 -07:00
CasualPokePlayer 3b5ee836a2 For Clear NAND, shrink System Menu tmd if it is larger than normal
This might be larger than normal for Unlaunch exploited NANDs, shrinking the TMD undos unlaunch's install and restores the NAND back to a clean state
2025-08-09 12:50:57 -07:00
CasualPokePlayer a707d3c6dc Fix save type for Legacy of Ys - Books I & II 2025-08-03 15:15:08 -07:00
CasualPokePlayer 954a27e930 Reduce the amount of system apps transferred over with "Clear NAND"
The current code breaks down currently for some NANDs (in particular Chinese and Korean NANDs) due to making some faulty assumptions. Instead of adding more code to handle these edge cases, I'm just opting to reduce the "Clear NAND" transfer to only the minimum core apps (System Menu, System Settings, and the various non-executable data files). With 51d92d328e (and later commits) if the user really wants to use these "fun" system apps for a movie (where Clear NAND is forced) they can do so by directly loading them as ROMs.
2025-08-02 00:26:08 -07:00
Morilli 5a83736679 Update sameboy to v1.0.2 2025-08-01 19:41:29 +02:00
CasualPokePlayer e8322dc5d6 melonDS unmanaged side changes for previous commit 2025-07-28 21:35:22 -07:00
feos c5dbf34ccd dsda: advance finale in doom2 & co 2025-07-28 23:38:10 +03:00
CasualPokePlayer 6960e99846 Fix TMD content size read 2025-07-17 15:10:39 -07:00
CasualPokePlayer ea34856fb0 Harden NAND clearing again, ensure file sizes are as expected 2025-07-17 14:55:49 -07:00
CasualPokePlayer 4d9a9fe44f Better handle cert.sys when clearing NAND 2025-07-17 12:39:24 -07:00
CasualPokePlayer 323fbe0ba3 Add blank private.sav files for system files 2025-07-16 19:34:21 -07:00
CasualPokePlayer 22fa04c80b Fix Jan 1, 2000 timestamp 2025-07-16 17:18:39 -07:00
CasualPokePlayer 84e9d131fe Fix pit.bin file path; make sure fat time is always DS epoch (Jan 1, 2000) instead of time(0) 2025-07-16 16:19:29 -07:00
CasualPokePlayer f15c494f13 Harden NAND clearing
This takes a more sledgehammer approach, as it seems even tiny minor difference in the NAND structure can cause sync issues. This is even the case if the entire directory tree and every file is identical (I guess order of files internally matters here or whatever). The entire partition will be recreated here with files manually readded as to minimize NAND differences (assuming system files are the same version anyways)
2025-07-16 15:45:49 -07:00
CasualPokePlayer a05c16d89b Workaround compiler crash 2025-07-16 15:45:49 -07:00
CasualPokePlayer 4cd30674e8 Adjust link script for newer clang versions
melonDS compilation complained the sections weren't aligned to 128, so I guess that's needed for alignment now?
2025-07-16 15:45:49 -07:00
Morilli 6284b56e81 bsnes: implement r/w callback value passing
The value will now be passed to the frontend for read callbacks and both read and write callbacks' values can now be changed in the callback.

execute would probably be possible but would require some additional code changes which I'm not sure about
2025-07-10 20:06:29 +02:00
Morilli 8f01fb755e BSNESv115+: update from upstream 2025-07-06 01:26:03 +02:00
feos 5a105a156f dsda: full vision option
I was unable to make it launch with full vision on the very first frame unless it's set during init. which means there will be savestate problems if we allow switching this on the fly. setting it on init only is probably fine too.
2025-06-28 23:45:44 +03:00
feos 080017b800 dsda: set full render info before we emulate anything
gamma was correct on startup but other settings were only applied on first emulated frame

frame 0 will be blank with and without wipescreen
2025-06-28 17:05:54 +03:00
feos 9143bdcee1 dsda: expose linedef coords 2025-06-12 18:43:48 +03:00
feos ffb469540e dsda: expose linedefs as mem domain 2025-06-09 01:27:51 +03:00
feos 8b43c98657 dsda: fix reading OUT OF BOUNDS of mobj_t 2025-06-07 18:28:11 +03:00
feos 0a8b57cf55 dsda: flylook buttons 2025-06-06 23:33:36 +03:00
feos 1783c28fc2 dsda: expose raven inventory selection 2025-06-06 21:29:38 +03:00
feos 0d40ea955e dsda: fix fist selection for boom compat
initially I read the code wrong. `demo_compatibility` means vanilla complevel, not "demo is running". for vanilla hitting 1 would switch to first only if you have berserk, otherwise it'd stick to chainsaw (provided you have it of course). that part was working ok. but for boom compat hitting 1 swaps fist and chainsaw at all times, and that part was broken: chainsaw would not get selected even if you have it.

pass button values directly (same can be done for arti)
2025-06-05 20:34:16 +03:00
Morilli a2cf4e0797 clarify semantics and implementation of ISaveRam.SaveRamModified 2025-06-04 18:51:04 +02:00
feos 5fa597ad8a dsda: fix automap inputs crashing outside level
update settings descriptions
2025-06-04 16:14:56 +03:00
feos f0564300c7 dsda: set gammma after core seal but before first frame advance 2025-06-01 16:23:40 +03:00
Morilli ecd694d66b mask gpgx memcallback addresses to actual address bus size
should resolve #3862
2025-05-30 05:31:35 +02:00
feos 0a01e0dc64 dsda: fix palette not changing
note on using PALETTE_SIZE as offset. normally it's `256 colors * 3 bytes per color = 768`, but in our headless mode it's 256. upstream does `SDL_SetPaletteColors(screen->format->palette, playpal_data->colours + 256 * pal, 0, 256);` when palette is updated, so clearly it means offsetting by 256 colors=bytes. but PALETTE_SIZE I used as my offset is not for stuff upstream uses it for. just something better than a magic number.
2025-05-29 14:34:03 +03:00
Morilli b0b93fe0df update/downgrade gpgx
reverted a problematic upstream commit, resolves #4206 and resolves #4293
2025-05-29 00:35:25 +02:00
VelpaChallenger ffa5d45aaf
Memory Hook Improvements (Return value) (#4283)
* new callback system with callback return values

If the lua callback returns a value, the core will update the addr with it. Otherwise, the old value sent by the core will be used unmodified

* update MemoryCallbackDelegate return value to uint?

* throw NotSupportedException for GBA memory callbacks

* docs: return value of MemoryCallbackDelegate and CallMemoryCallbacks
2025-05-29 00:20:52 +02:00
feos b0d59e15d8 dsda: hide UI related internal messages
user will be changing those options from hawk side dialog so it's impossible to miss what you're changing (you can look at the dialog again if you're THAT sloppy)

but since we're now initializing with default nonsync settings and changing them on the fly, those UI messages would be appearing all the time

automap messages are left intact since they appear upon in-game button press

worst case scenario, UI messages are moved to hawk side, but then why limit them to only whatever upstream reports and not report every change? which is never done anyway, so I doubt it'd come to this
2025-05-25 00:16:12 +03:00
feos 0fe3c33c46 dsda: disable BOOM demo import for now
passing rngseed didn't fix sync, and passing all the settings is too much work for this release. will support it afterwards.

instead just tell the user BOOM demos are not supported
2025-05-22 20:18:00 +03:00
feos d97fe551b8 dsda: print eventual complevel 2025-05-20 22:10:04 +03:00
Morilli 2e539b3c47 gpgx: fix invalid system checks
- closes #4324
2025-05-19 21:42:18 +02:00
feos dfabe85181 dsda: condition for some av updates 2025-05-11 15:39:43 +03:00
Sergio Martin 654544b329
Adding Opera (3DO) as emulation core in Bizhawk (#4264)
* Adding base

* Progress with opera and adding 3do firmwares

* Adding missing callbacks

* Adding missing callbacks

* 3DO core starting

* Now passing inputs

* Passing gamepad inputs

* Fixing input names

* Now supporting mouse

* Adding mouse support

* Added flightstick

* Added flight stick

* Adding last inputs and fixing audio

* Adding controllers and fixing audio

* Adding orbatak

* Fixing mnemonics, added orbatak

* Adding font roms

* Adding font roms

* Adding region

* Adding region

* Fixing mouse issue

* Fixed initialization bug in fresh installs

* Setting mouse to relative inputs

* Using mouse as relative

* Bypassing bios checks to enable bizhawk to pass whatever bios it wants

* Adding default inputs for 3DO

* Adding detection of nvram changes

* Adding lag frame and nvram saving

* Adding cd use detection

* Adding cdrom light

* Using cd callbacks

* Using cd callbacks

* Bypassing image name check

* Adding multidisc support

* Removing 3do-iso special extension

* Fixing build

* Attempting to add disc swapping

* Trying to add multidisc support

* Uncommenting cd functions

* revert unrelated changes

* misc unmanaged integration

* Update waterbox-cores.yml

* Added reset button, removed eject/insert

* Added reset button, removed eject/insert

* Fix line endings in `Bk2MnemonicLookup.cs` changes

* Fix indentation

* Fix spaces in `Opera.cs`

* Alphabetise

* Make `Opera`'s `ISaveRam` implementations `override`

* Misc. code style changes

* Fix casting array index to `uint` for comparisons

* Adding default framerate and removing message duration parameter

* Refactoring input parsing and fixing some errors

* Fixing indentation

* Exposing non volatile ram

* Adding automatic sram management

* Now letting bk manage saveram automatically

* Fixing indentation and removing unncessary flag

* Removing dead code

* Removing dead code

* Removing unnecessary mnemonic fallbacks

* Keep fixing indentation errors

* Removing struct for memory areas

* Adding proper detection of input reading

* Changing namespace to not have an underscore

* fix whitespace in PlatformFrameRates

* make waterbox function non-virtual

* Update src/BizHawk.Emulation.Cores/Consoles/3DO/Opera.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Fixing controller mapping

* Fixing controller mapping, 3DO->Panasonic3DO, added submenu

* Fixing controller

* Fixing controllers

* Removing unnecessary function

* Fixing namespace and default ctrls

* Fixing 3DO detection

* Adding submodule branch

* Adding PAL framerate for opera

* controller pic

* Fixed firmware naming

* Fix line endings

* Recompress image

* Realphabetise after namespace/sysID change

* Move this `case` block up

* Minor code style fixes

* Renaming user-facing Panasonic3DO strings to 3DO

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>
Co-authored-by: feos <feykomylce@gmail.com>
2025-05-09 10:04:14 +03:00
feos 8a70238e75 dsda: fix settings changes dying on loadstate
handle gamma changes on the hawk side
DoUpdate is no longer needed
2025-05-02 09:32:47 +03:00