suloku / gcmm

A gamecube/wii memory card manager
GNU General Public License v3.0
251 stars 24 forks source link

SD2SP2 not working on version 15 #43

Closed f3bandit closed 2 years ago

f3bandit commented 2 years ago

SD2SP2 is detected perfectly in version 14g beta 2 and 14g beta 3. can backup and restore game saves and restore no problem. version 15 does not detect SD2SP2 at all. thx :)

suloku commented 2 years ago

After some testing, it seems there's some kind of conflict when using latest swiss versions, which prevent libfat's implementation of sd2sp2 from correctly working (it can't even detect sd2sp2 being inserted if swiss has been launched at some point).

Using old swiss versions (with no sd2sp2 support) seems to allow gcmm sd2sp2 implementation work. Gonna see if I can do something on my end, but maybe this can be addressed at swiss too. Afaik swiss doesn't use libfat anymore, that's probably the reason.

f3bandit commented 2 years ago

which verion of swiss do you reccomend?

suloku commented 2 years ago

I don't think it's a problem with swiss anymore, 1.4g beta 2 and 3 won't work for me...at least not if I boot from sd2sp2.

Booting from memory card or sdloader works, but it seems that once sd2sp2 device has been used it won't work anymore, this includes using swiss.

I'm not sure what the problem might be, maybe it's some kind of bug in libfat's implementation of sd2sp2 (swiss uses it's own library, which supports many more devices). Gonna do some more tests this afternoon, but I'm commited to get this working.

Extrems commented 2 years ago

The issue is in libogc. As WinterMute blocked me from the devkitPro organization last year, I cannot (attempt to) submit a fix.

f3bandit commented 2 years ago

would a sdgecko solve my issue?

Extrems commented 2 years ago

Not necessarily. They can also be affected by the bug.

suloku commented 2 years ago

Oh I see. That was something I was gonna try too: use swiss's fork of libogc. Thanks for pointing it out, I'll switch to yours, If I see any of card.c's bug fixes found over the years missing I'll do a PR to swiss's fork.

Too bad this means going back to using custom card.c/h, I'll try to keep it in a way it will be easy to get back to libogc in case the official one merges changes.

I can't get the changes needed done until friday unfortunately.

Extrems commented 2 years ago

The official repository for this fork is now https://github.com/extremscorner/libogc2. You'll also need https://github.com/extremscorner/libfat. See extremscorner/gamecube-examples@0c92030198f6cbc540d941cc4243abd0dcedc5f8 for a migration example.

suloku commented 2 years ago

Thank you very much. By the way, I've been checking card.c and this is missing: https://github.com/devkitPro/libogc/issues/113

I made a pull request already.

suloku commented 2 years ago

@f3bandit finally it's working fine on my end, thanks to Extrems's pointers.

Besides SD2SP2 working and using Extrems's updated libfat, there's also a fix Extrems implemented in libogc2 in january in card.c, current device is now shown on screen (below version number) and the boot secuence has been updated.

I've also added some command line arguments to use with swiss to make it easier to use if one prefers using sdgecko over sd2sp2 for storage (in case someone uses both). I've included a txt with detailed information.

Please try this version @f3bandit: gcmm1.5.1beta1.zip

f3bandit commented 2 years ago

@suloku You sir are a champion of light, ty sir for your hard work! :)

f3bandit commented 2 years ago

@suloku Works brilliantly thank you again good sir! :)

Extrems commented 2 years ago

You should probably add GC Loader support, as you can now.

Extrems commented 2 years ago

I've combed through the CARD API and made more corrections.

suloku commented 2 years ago

I've seen the changes on libogc2, there seeems to have been lots of loose ends still there. About gcloader support, I don't see any reason not to add it, besides not owning one so I won't be able to test. If someone is willing to test I'll work on it. Also, it seems I should code some kind of device selection screen. I'll dig into how swiss detects an sd gecko being inserted, as the only method I can think of right now is trying to mount both memcard slots and asume that wrong device error will be an sd gecko.

Also, dark theme seems like a great idea, I'll test your designs, they look fantastic. If you still have the psd would you mind sending it to sulokutdcmago@gmail.com?

suloku commented 2 years ago

Thank you, it was so it can be added to source if future editong is needed

Jman1070 commented 2 years ago

@f3bandit finally it's working fine on my end, thanks to Extrems's pointers.

Besides SD2SP2 working and using Extrems's updated libfat, there's also a fix Extrems implemented in libogc2 in january in card.c, current device is now shown on screen (below version number) and the boot secuence has been updated.

I've also added some command line arguments to use with swiss to make it easier to use if one prefers using sdgecko over sd2sp2 for storage (in case someone uses both). I've included a txt with detailed information.

Please try this version @f3bandit: gcmm1.5.1beta1.zip

You are a legend, I spent hours trying to figure out how to make it work. Thank you!

f3bandit commented 2 years ago

looks amazing and works great, thank you so much! you are a god among men :)

On Sat, Nov 20, 2021 at 7:16 AM suloku @.***> wrote:

Closed #43 https://github.com/suloku/gcmm/issues/43.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/suloku/gcmm/issues/43#event-5648881807, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABFW3XH4N3YAXFWPOBYJZGDUM6GQ5ANCNFSM5FTVKPHQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.