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

[Feature request] Support savegames in 3DS AGBSAVE format #878

Closed
d0k3 opened this issue Sep 18, 2017 · 10 comments
Closed

[Feature request] Support savegames in 3DS AGBSAVE format #878

d0k3 opened this issue Sep 18, 2017 · 10 comments
Milestone

Comments

@d0k3
Copy link

d0k3 commented Sep 18, 2017

I'll just cross reference one of my own issues here:
d0k3/GodMode9#205

AGBSAVE is a partition inside the 3DS NAND flash memory, holding a 512 byte header + the savegame of the last played GBA Virtual Console title. The data inside the partition is easily recognizable by it's header. People use that partition to export their savegames from console to PC and vice versa. More info:
http://3dbrew.org/wiki/3DS_Virtual_Console#NAND_Savegame

From what I know so far, the byte ordering for EEPROM saves inside the 3DS ABGSAVE partition matches the byte ordering for savegames on carts, but it doesn't match the byte ordering used by emulators, like mGBA.

A fix on my side, like that guy suggested, would only lead to more confusion. Changing the byte ordering for EEPROM saves on mGBA side is out of question either, as it would make older savegames incompatible.

So, searching for a solution, would it be possible for mGBA to support savegames in the AGBSAVE format? Either as an additional savegame format or via export / import functionality. If required I can provide a sample save using the format.

@endrift
Copy link
Member

endrift commented Sep 18, 2017

Yeah, adding import/export sounds like a good idea. I might have time for that soon.

@endrift endrift modified the milestones: medusa 0.1.0, mGBA 0.7.0 Sep 20, 2017
@cheatfreak47
Copy link

cheatfreak47 commented Sep 23, 2017

This might not be necessary to implement anymore, and actually, theoretically impossible to do right if you're talking about dumping out actual AGBFIRM partition data as the header part of the contents of AGBSAVE partitions are user-specific.


If you're talking about supporting only the portion of the AGBSAVE partition that contains just save file data, well, this is kind of unnecessary too, now that GodMode9 just opted for doing a byteswap on read/write for EEPROM saves (which are stored byteswapped compared to how emulators do it).

It might be a good idea to add an option for importing/exporting byteswapped EEPROM *.sav files if the game uses EEPROM saves, but it'd be best to call that what it is "Import/export byteswapped EEPROM save" instead of AGBSAVE format, I think no$gba can output this type of save file too if you configure it to output "raw" save files.

All the other save file types (SRAM, FLASH) used by AGBSAVE are identical to the regular *.sav files we have, save for the file sizes sometimes being too large, but, that doesn't matter since the extra space is filled with nothing.

@endrift
Copy link
Member

endrift commented Sep 24, 2017

@d0k3 Anything I still need to do for this?

@d0k3
Copy link
Author

d0k3 commented Sep 25, 2017

While AGBSAVE import / export support would be nice to be have (especially for future iterations of Nintendo GBA VC), it would still be a hacky thing (cause you cannot know the title ID or the SD CID). I'd say, that thing is solved from our side. You might want to consider the no$gba handling, but I know it's not easily done.

@endrift endrift closed this as completed Sep 27, 2017
@wildgoosespeeder
Copy link

wildgoosespeeder commented Oct 11, 2017

What about Virtual Console GBA games on the Wii U? Is there anything known about saves of that nature? I have Super Mario Advance 3 and F-Zero: Maximum Velocity (Club Nintendo rewards).

Also there are some 3DS owners that got free games through the Ambassador's Program around the 3DS's price drop from $250 to $170. Is there anything on that? What it was:
http://nintendo.wikia.com/wiki/Nintendo_3DS_Ambassador_Program

@endrift
Copy link
Member

endrift commented Oct 11, 2017

This is literally about the backend used to implement the Ambassador Program. It's the same thing.

@wildgoosespeeder
Copy link

wildgoosespeeder commented Oct 11, 2017

Heh. I heard that the Ambassador's Program released games are different than the Virtual Console versions; native instruction execution vs. emulated instructions (New 3DS only). Guess that is wrong?

Anyways, the Wii U saves are likely different than the 3DS saves. Not sure.

@endrift
Copy link
Member

endrift commented Oct 11, 2017

there is no "GBA Virtual Console" on 3DS, only Ambassador Program titles and injection, which use this. N3DS-only VC is SNES.

Wii U is completely unrelated, off topic here, and already researched elsewhere.

@Whovian9369
Copy link

Whovian9369 commented Oct 11, 2017

@wildgoosespeeder ... And the Ambassador Program is the only legal way that GBA VCs were ever on the 3DS, predecessor to all of the others on 3DS.
The GBA VCs from The Program all write to a certain partition, which was the main topic of discussion in this Issue. Which definitely, as endrift points out, is highly unrelated to the Wii U VCs.

@wildgoosespeeder
Copy link

@Whovian9369 Man, my memory is faulty for the 3DS, and I own one.

@endrift Is there an issue number associated with the Wii U VC save imports feature?

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