Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please update this to at least stable 0.9.5 #2

Open
nadiaholmquist opened this issue Apr 17, 2024 · 12 comments
Open

Please update this to at least stable 0.9.5 #2

nadiaholmquist opened this issue Apr 17, 2024 · 12 comments

Comments

@nadiaholmquist
Copy link

nadiaholmquist commented Apr 17, 2024

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
Copy link

Can i please get some assistance :)

@jgottula
Copy link

jgottula commented Apr 28, 2024

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)2 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)3 5.1 years
DS DeSmuME 0.9.11+4 (2019-07-27) 0.9.13 (2022-05-23) 2.8~4.8 years5
DS melonDS 0.9.1 (2021-12-25) 0.9.5 (2022-11-03) 0.9~2.3 years5
GEN Genesis-Plus-GX 58758ae (2020-12-08) nightly (current) 3.4 years

Footnotes

  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 3

  2. 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.

  3. 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.

  4. 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.

  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. 2

@jgottula
Copy link

jgottula commented Apr 28, 2024

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-ish1
2021-01-08: melonDS 0.9.1

GEN

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

Footnotes

  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
Copy link

So:

  • The N64, DS (DeSmuME), and Genesis cores all used whatever-the-latest-git-commit-happened-to-be when first implemented, and they have never been updated since
  • The GBC core used some-git-commit-maybe-it-was-the-latest-one, and has never been updated since
  • The NES core initially was based on one emulator, and then shortly switched to another emulator, but in any case has never been updated since
  • The SNES and GBA cores both received a jaw-dropping TWO updates to whatever-the-latest-git-commit-happened-to-be over the course of a few years, and then have never been updated in the 5+ years since
  • The DS (melonDS) core also got a mind-blowing TWO updates in the 7 months following initial implementation, and then has never been updated in the 3+ years since

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
Copy link

@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
Copy link

@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
Copy link

jgottula commented May 1, 2024

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
Copy link

jgottula commented May 1, 2024

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
Copy link

dns13 commented May 3, 2024

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
Copy link

jgottula commented May 3, 2024

Fantastic! 😃

@akim12312
Copy link

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

@nadiaholmquist
Copy link
Author

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants