Author Topic: Everdrive 64 v3 Save question (control pak related)  (Read 4993 times)

0 Members and 1 Guest are viewing this topic.

Offline infidelity

  • Jr. Member
  • **
  • Posts: 92
  • Karma: +0/-0
    • View Profile
Everdrive 64 v3 Save question (control pak related)
« on: June 30, 2015, 04:47 AM »
I've tried looking online for an answer to this, but have not found one. When I start Turok Dinosaur Hunter, it tells me control Pak not found, cant save. I read somewhere the everdrive just saves on it's own, does it itself with save type detection. So I get to the first save spot, says it can't save. So I reset, reload the game, and my work is gone.

How do I save and load to the SD card properly, when loading a game that uses the controller Pak?

I don't want to screw around with the Z button menu, in fear I'll screw something up. So if I need to alter the save type, please let me know!

Thanks! :-)

Offline merdink

  • Newbie
  • *
  • Posts: 22
  • Karma: +0/-0
    • View Profile
Re: Everdrive 64 v3 Save question (control pak related)
« Reply #1 on: June 30, 2015, 09:00 AM »
If a game only uses the controller pak, you will need a controller pak to save. It only saves to the SD card if its a game that would save to the cart/game itself.

Offline infidelity

  • Jr. Member
  • **
  • Posts: 92
  • Karma: +0/-0
    • View Profile
Re: Everdrive 64 v3 Save question (control pak related)
« Reply #2 on: June 30, 2015, 02:26 PM »
Ohhh ok. But you can transfer the saved content from the controller Pak, to the SD card correct? And can you reload a saved controller Pak from the SD card, and have it stored back onto the Pak?

Offline nuu

  • Hero Member
  • *****
  • Posts: 1422
  • Karma: +69/-2
    • View Profile
Re: Everdrive 64 v3 Save question (control pak related)
« Reply #3 on: June 30, 2015, 03:09 PM »
Yes the OS has that function in the menu. You can't do that when playing a game.

Offline Trevor

  • Goldfinger64 Dev Location:UK
  • Full Member
  • ***
  • Posts: 192
  • Karma: +5/-0
  • Everdrive64 v2 (PAL)
    • View Profile
Re: Everdrive 64 v3 Save question (control pak related)
« Reply #4 on: June 30, 2015, 04:31 PM »
Correct, the Everdrive only saves files that would normally be saved to cart.
The Evedrive does however allow backing up a controller pak to SD, so you could use a bad pak, format pak, load backup, load game, save ingame, reset save backup and switch off. next time you switch on you will need to start over but you will now have a save again to continue ingame.

This however only works for some people as, as far as I am aware, Krikzz still hasnt made the 1 line of code change to support all paks. (remove check) If you need to check then a different method is needed.

Basically, Libdragon has a 'feature' to check whether a controller pak or rumble pak is inserted, while the official SDK does not.
3rd party controller paks therefor show as rumble paks (which is why Nintendo didnt use the 'check')
The official way is to treat all paks as controller paks and if you want to save data you check for a success return (which rumble will not return).

This is how nintendo check for rumble and cpak.
Code: [Select]


  u8 pattern; // pretty sure Libdragon also provides pattern
  int channel;
  int ret;       // Return. 0 (No Error) PFS_ERR_ID_FATAL = 10 (dead ram pack) PFS_ERR_DEVICE=11 (wrong device type)

  osContInit(&n_siMessageQ, &pattern, contstat); //Initialise controller, return pattern
  for (channel = 0  ; channel < MAXCONTROLLERS ; channel ++) { //for 0 to 3 (4 con ports)
    joyport[channel] = 0;
    if ((pattern >> channel) & 1) { //If port has controller plugged
       if ((contstat[channel].type & CONT_JOYPORT) != 0 && (contstat[channel].status & CONT_CARD_ON) != 0) {
           // if controller is normal controller and not mouse AND
           // Cont_card_on = 1 if something connected to controller

           ret = osPfsInitPak(&n_siMessageQ, &pfs[channel], channel); //assume CPak and attempt initialise

           /* In case of game application, if PFS_ERR_ID_FATAL occurs */
           /* here, ID needs to be restored by player's judgement.   */
           /*                                                        */
           /*                                                        */
           /* if (ret == PFS_ERR_ID_FATAL)                           */
           /*     if (AskPlayer())                                   */
           /*         ret = osPfsRepairId(&pfs[channel]);            */
           /*                                                        */
           /* If only the Rumble Pak is used, Controller Pak does    */
           /* not need to be initialized.                            */

           if (ret == PFS_ERR_DEVICE) { // Something other than a Controller Pak is inserted into the Controller
               ret = osMotorInit(&n_siMessageQ, &pfs[channel], channel); //assume Rumble Pak
               if (!ret) { /* Motor is connected */ // !ret is another way of saying ret=0 = success (No Error)
                  printstr(WHITE, JOY_X-1+channel*DIS_X, JOY_Y + 3, "OK");
                  joyport[channel] = 1;
               } else { /* Device except Motor is connected */
                  // if wanted you could attempt initialise of GB Pak and continue untill success.
                  printstr(WHITE, JOY_X-1+channel*DIS_X, JOY_Y + 3, "--");
               }
           } else if (ret == 0){ /* CPAK is connected */
                   printstr(WHITE, JOY_X-1+channel*DIS_X, JOY_Y + 3, "CP");
       }
    }
  } //next Controller

Trev
« Last Edit: June 30, 2015, 04:37 PM by Trevor »

Offline saturnu

  • ヽ(^o^)丿
  • Hero Member
  • *****
  • Posts: 1181
  • Karma: +156/-0
    • View Profile
    • :D
Re: Everdrive 64 v3 Save question (control pak related)
« Reply #5 on: June 30, 2015, 05:40 PM »
3rd party controller paks therefor show as rumble paks (which is why Nintendo didnt use the 'check')

This couldn't be generalized. My 3rd party controller pak (even with bank switching) is recognized as a normal controller pak.
No rumble, whatsoever.
« Last Edit: June 30, 2015, 05:46 PM by saturnu »