rileytestut / MelonDSDeltaCore

20 stars 17 forks source link

Please update this to at least stable 0.9.5 #2

Open nadiaholmquist opened 4 months ago

nadiaholmquist commented 4 months ago

melonDS contributor here,

The version of melonDS you are shipping, which seems to be 0.9.1, has a bug in it with the pretty nasty consequence of corrupting people's Pokémon gen 5 progress.

The bug has been fixed, but as your port has not been updated for a long time we've had multiple people run into this issue and ask for help about it in our Discord, and with the release on the App Store this is only going to get more common.

I would suggest that you update to at least the 0.9.5 code ASAP so we all can avoid this support headache.


Edit: Let's keep a count of how many times we've had to deal with this upstream since Delta's App Store release! Number of corrupted saves: 20 I lost count

HELP-ME-PLZ123 commented 4 months ago

Can i please get some assistance :)

jgottula commented 4 months ago

It really would be nice if Delta could get at-least-somewhat-vaguely-updated cores.

I decided to take a look at each of the cores in Delta and compare their version with the latest upstream version, to get a general sense of the degree of old-itude. It's really bad.

Delta Core Emulator Delta Version Upstream Version Oldness
NES Nestopia 1.48 (2017-09-03) 1.52.1 (2024-03-29) 6.6 years
SNES snes9x 1.55+[^1] (2018-02-27) 1.62.3 (2024-03-30) 5.1 years
GBC gambatte f8a810b (2016-05-02) nightly (current)[^3] 8.0 years
GBA VBA-M 2.1.0+[^1] (2018-11-04) 2.1.9 (2024-02-03) 5.3 years
N64 Mupen64Plus 2.5.9+[^1] (2019-03-03) nightly (current)[^4] 5.1 years
DS DeSmuME 0.9.11+[^2] (2019-07-27) 0.9.13 (2022-05-23) 2.8~4.8 years[^5]
DS melonDS 0.9.1 (2021-12-25) 0.9.5 (2022-11-03) 0.9~2.3 years[^5]
GEN Genesis-Plus-GX 58758ae (2020-12-08) nightly (current) 3.4 years

[^1]: For these cores, Delta uses an arbitrary git revision between two stable emulator versions, despite stable versions being released on a relatively frequent basis. This is an odd choice. (Invariably, it turns out to be "whichever git revision was latest at whatever time the given Delta core was being implemented or modified".) [^2]: For DeSmuME, Delta uses an arbitrary git revision between two stable versions (which two versions is actually not particularly easy to figure out). But it's not necessarily odd, since DeSmuME's stable releases are very infrequent nowadays. [^3]: The original fork of the gambatte emulator, used by Delta, doesn't even really exist anymore; however a libretro fork exists which continues active development and has recent updates. [^4]: Mupen64Plus appears to have given up on the notion of doing stable releases anymore a long time ago, and pretty much just does git/nightly versions these days, it seems. [^5]: The degree of old-itude in these cases varies a fair bit, depending on whether you want to judge by the most recent stable release or the current nightly/git version.

jgottula commented 4 months ago

After doing the research for the table above, I decided to look into things a bit further: for each Delta core, I checked the update history: how many times, and how far back, updates to the upstream core code actually occurred.

(Note that the first item in each list is the version used to start with for the initial implementation, and then subsequent items—if any—constitute updates that happened after that.)

NES

2018-02-25: FCEUX 2.2.1(?) 2018-05-29: Nestopia 1.48

SNES

2015-09-12: snes9x 1.53(?) 2017-04-29: snes9x most-recent-git 2019-02-28: snes9x most-recent-git

GBC

2017-04-13: gambatte f8a810b

GBA

2016-06-03: VBA-M 2.0.0b1(?) 2017-04-30: VBA-M most-recent-git 2018-11-08: VBA-M most-recent-git

N64

2019-03-27: Mupen64Plus most-recent-git

DS (DeSmuME)

2019-08-05: DeSmuME most-recent-git

DS (melonDS)

2020-04-02: melonDS most-recent-git 2020-10-23: melonDS 0.9-ish[^1] 2021-01-08: melonDS 0.9.1

GEN

2021-02-02: Genesis-Plus-GX most-recent-git

[^1]: This one is funny: the Delta commit message says "Updates melonDS to 0.9"; but it's actually ef4215e, which is 13 commits after 0.9.

jgottula commented 4 months ago

So:

None of the cores (by which I mean the actual upstream emulator code) have been updated since Feb 2021.


I spent several hours looking through commit logs and figuring out versions and so forth to write these comments. And now I'm just kind of depressed.

Like... I get that the initial goal was to write this emulator... but then attention got diverted into developing AltStore because Delta wouldn't be able to be on the App Store... and so yeah that makes sense as an explanation for why Delta itself would get less care and attention.

But like... now it is on the App Store, but with kinda-really-embarrassingly-not-updated cores. Including ones with known save corruption bugs, that the upstream developer is trying to get attention directed toward, that I guess just don't get updated anyway, because who cares.

Sigh.

jgottula commented 4 months ago

@nadiaholmquist Consider updating the issue title to mention that this involves a KNOWN SAVE-CORRUPTION BUG affecting VERY POPULAR titles. That might make it slightly more likely to grab attention at a quick glance.

jgottula commented 4 months ago

@rileytestut Delta's melonDS core has a KNOWN SAVE CORRUPTION BUG AFFECTING VERY POPULAR MAINLINE POKEMON SERIES TITLES and needs to be updated.

(I love your work and I support you on Patreon. But frankly, it's a little disappointing to find that most-to-all of Delta's cores could really, really use some updates to less-ancient upstream versions. And melonDS in particular would be ideal to look into first.)

jgottula commented 4 months ago

See also: this already-existent pull request from a few months back to at the very least bring Delta's forked melonDS repo up to 0.9.4.

rileytestut/melonDS#2

Looks like it might need a few small Delta-specific commits on top of 0.9.1 to be rebased. And it may as well bring things up to 0.9.5, if an update is to be done.


I would literally just go ahead and make my own complete set of PRs that would update Delta's forked melonDS repo to 0.9.5; rebase the Delta-specific commits onto 0.9.5 where/as necessary; update the submodule reference in this repo; check for any code interface changes that might be needed here; and then do a full build of Delta to check for any compilation errors and run it in the simulator and then on a device to at least ensure that everything basically works.

But unfortunately, as it currently stands, I don't have a macOS system + Xcode development environment handy and ready to go to facilitate that; and I'm neither an Objective-C nor a Swift person, I'm a C++ guy.

Still, I would totally do that if it would make it any more likely that this gets acted upon.

jgottula commented 4 months ago

See also: several issue threads (linked to below) on the upstream melonDS GitHub in which, thanks to Delta's old-and-known-to-be-buggy melonDS core version, users have to be somewhat tediously helped by melonDS devs through the process of (1) getting their save file out of Delta, (2) running a specialized tool on it to fix it, and then (3) getting their save file back into Delta.

melonDS-emu/melonDS#2016 melonDS-emu/melonDS#2020 melonDS-emu/melonDS#2014 melonDS-emu/melonDS#739

(And this is just what's going on in GitHub issue threads, to say nothing of similar stuff happening on Discord etc.)

dns13 commented 4 months ago

Riley just announced this on Mastodon:

Updates on Delta’s melonDS core:

• We’re planning to update melonDS core to 0.9.5 with the next major Delta update (1.6)
• The reason we’re still using 0.9.1 is because updating will break save states, and *lots* of Delta users rely on them
• We’ve come up with a solution that will let people convert legacy save states to save files (.sav) — even after Delta has been updated
• Please stop hounding the melonDS devs, this is a Delta issue and we’re doing our best to release this ASAP 🙂

https://mastodon.social/@rileytestut/112379329866783610

jgottula commented 4 months ago

Fantastic! 😃

akim12312 commented 3 months ago

@nadiaholmquist So sorry to bother you, but could I get some help :,)

nadiaholmquist commented 2 months ago

Hey, just because you shipped the newer core in the paid "beta" version does not mean the issue is gone for everyone and we don't have to deal with it anymore. How about you actually get this resolved already?