Author Topic: Rumble Pak + Auto CPak Backup Bug  (Read 2940 times)

0 Members and 1 Guest are viewing this topic.

Offline rayrayrayraydog

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Rumble Pak + Auto CPak Backup Bug
« on: January 22, 2019, 02:38 AM »
I think I've found a bug in Everdrive 64 v3 w/ firmware 2.12.  I believe that the CPak Auto Backup feature will make a "backup" of a Rumble Pak when it's connected, and end up blanking out existing CPak saves.

I've been swapping between Ocarina of Time (uses Rumble Pak, not CPak) and Doom 64 (uses CPak for saves).  I had Auto Backup enabled.  After playing OoT I left the Rumble Pak in my gamepad and powered the system off and on, and then started Doom 64 BEFORE swapping in the CPak ... I noticed my mistake (error from game about missing CPak) and then powered the system off, plugged in CPak, powered on and loaded Doom 64 again.  Only now the auto-backup, and I guess the main mpak files for the ROM were blanked out, and my saves were gone.  I believe the Auto Backup ran for the Rumble Pak and caused this issue.

As a workaround, I started my game over with Auto Backup disabled, and I will remember to always start up the system with the CPak installed, and not the Rumble Pak.  I think the fix would be for the ED64 to detect the Rumble Pak and not attempt to run Auto Save against it.

I apologize if this is a known issue!

Offline Kenal

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: Rumble Pak + Auto CPak Backup Bug
« Reply #1 on: February 15, 2019, 12:27 PM »
I can confirm the problem exists on 2.13 version of OS. When I start the game with Rumble Pak in my gamepad and auto backup enabled, ED64 save the empty MPK file with the name of the previously launched game into CPAK folder. When I try to launch that previously played game again with CPak inserted, ED loads this blank file into CPak and all saves gone.
I think the only safe way of using auto backup is to not forget to change Rumble Pak to CPak BEFORE resetting the game or shutting down the console. And do not use any third party CPaks with multiple switchable memory banks when auto backup enabled, because it can cause the REAL mess with your game saves!

It would be nice if detection of Rumble Pad was added in the future OS releases.

Offline jonesalmighty

  • Full Member
  • ***
  • Posts: 199
  • Karma: +18/-0
    • View Profile
    • GitHub
Re: Rumble Pak + Auto CPak Backup Bug
« Reply #2 on: February 15, 2019, 06:23 PM »
I have just compiled a fix for this in my unofficial  official os... I can't really test it, so feel free to send me a PM and I will send a link... if it fixes the issue, I will add it as a release...
Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth...

Offline Kerr Avon

  • Hero Member
  • *****
  • Posts: 1581
  • Karma: +157/-3
    • View Profile
Re: Rumble Pak + Auto CPak Backup Bug
« Reply #3 on: February 15, 2019, 08:06 PM »
A good idea might be that, when the ED64 writes a game save to the SD card, instead of deleting any older game save for that game, it backs up the already existing game save. What I mean is, say the ED64 is going to save a file called 'Super Mario 64 (U).eep' to the SD card, but a file with that name already exists (which of course is an older save file than the one that the ED64 is going to write now), then the ED64 should rename the existing file from:

'Super Mario 64 (U).eep'

to

'Super Mario 64 (U).eep.bak'

and then save the new file with it's correct name of 'Super Mario 64 (U).eep'. Of course, if there's already a file called 'Super Mario 64 (U).eep.bak' on the SD card before the renaming takes place, then the existing 'Super Mario 64 (U).eep' file should be automatically deleted too.

That way, there will always be a backup of the last-but-one save of a given game, so then, if you find out that for whatever reason a bad or corrupt save file has been written to the SD card, then there will still be a last-but-one save on the SD card which hopefully will work properly (once you've manually deleted the existing save file ('Super Mario 64 (U).eep') and renamed the backup file to it's proper name (i.e. rename 'Super Mario 64 (U).eep.bak' to 'Super Mario 64 (U).eep').

Offline ka55

  • Newbie
  • *
  • Posts: 43
  • Karma: +2/-0
    • View Profile
Re: Rumble Pak + Auto CPak Backup Bug
« Reply #4 on: February 27, 2019, 05:07 AM »
Version 2.10 does not have this problem.
This bug started with version 2.11, and 2.12 also has this problem. I am using 2.10 because it does not have significant updates from this release and it does not have this problem.

Offline Kenal

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: Rumble Pak + Auto CPak Backup Bug
« Reply #5 on: March 04, 2019, 06:03 PM »
Version 2.10 does not have this problem.
This bug started with version 2.11, and 2.12 also has this problem. I am using 2.10 because it does not have significant updates from this release and it does not have this problem.

Yes, version 2.10 doesn't try to save rumble pak to file, but it also doesn't recognize third-party 2-in-1 CPak+Rumble Pak when it's switched in memory mode. Later versions of OS works fine with third-party accessories, but don't distinguish rumble pak from CPak.

Offline Lisko

  • Newbie
  • *
  • Posts: 12
  • Karma: +1/-0
    • View Profile
Re: Rumble Pak + Auto CPak Backup Bug
« Reply #6 on: March 05, 2019, 12:17 PM »
Version 2.10 does not have this problem.
This bug started with version 2.11, and 2.12 also has this problem. I am using 2.10 because it does not have significant updates from this release and it does not have this problem.

Yes, version 2.10 doesn't try to save rumble pak to file, but it also doesn't recognize third-party 2-in-1 CPak+Rumble Pak when it's switched in memory mode. Later versions of OS works fine with third-party accessories, but don't distinguish rumble pak from CPak.
Yeah, because some of the 3rd party memory cards identify themselves as rumble pack so krikzz had to remove the check. I think that a furter check could be implemented; something like that when saving the backup for a game with already one on the sd, check the current controller data, if all zeros then show a prompt to switch pak or else write data back to SD. But I'm sure there are also other ways to do this.