Homebrew Official [Download] Decrypt9 - Open Source Decryption Tools (WIP)

  • Thread starter Thread starter d0k3
  • Start date Start date
  • Views Views 935,300
  • Replies Replies 4,476
  • Likes Likes 71
A friend tried to inject a Visual Boy Advance save to GBA VC (rename game.sav to game.bin) but it doesn't work.
We can only inject saves exported from VC?
 
A friend tried to inject a Visual Boy Advance save to GBA VC (rename game.sav to game.bin) but it doesn't work.
We can only inject saves exported from VC?
GBAVCSAVE.BIN should be the appropriate name for the file for decrypt9 to recognize. Also it must be within the proper folder, it should be decrypt9 or files9 and make sure the game you wanna inject is the last game you played on the system.

--------------------- MERGED ---------------------------

GBAVCSAVE.BIN should be the appropriate name for the file for decrypt9 to recognize. Also it must be within the proper folder, it should be decrypt9 or files9 and make sure the game you wanna inject is the last game you played on the system.
@d0k3 I did like you said and decrypted the title game, but is still the same exact file, even though it says success. I wanted to extract the save data from the 00000001.sav file. So i can inject the save data into another sd card. (For reasons unknown i can't load system menu to use save manager homebrew to do it.)
 
  • Like
Reactions: GilgameshArcher
GBAVCSAVE.BIN should be the appropriate name for the file for decrypt9 to recognize. Also it must be within the proper folder, it should be decrypt9 or files9 and make sure the game you wanna inject is the last game you played on the system.

--------------------- MERGED ---------------------------


@d0k3 I did like you said and decrypted the title game, but is still the same exact file, even though it says success. I wanted to extract the save data from the 00000001.sav file. So i can inject the save data into another sd card. (For reasons unknown i can't load system menu to use save manager homebrew to do it.)
Well, tbh, you may be better off with some kind of save manager. D9 can directly decrypt the stuff from your SD folder and it can also encrypt it again, but you need to do the legwork yourself. You may even find a tutorial, SD crypto is one of the oldest features in D9.
 
  • Like
Reactions: GilgameshArcher
Well, tbh, you may be better off with some kind of save manager. D9 can directly decrypt the stuff from your SD folder and it can also encrypt it again, but you need to do the legwork yourself. You may even find a tutorial, SD crypto is one of the oldest features in D9.
Okay, well i tried to do the Ticket/title/moveable.sed inject and the system wouldn't boot. So i just reinjected a back up, but i had the perform system set up again. What do i need to do to make the sd card from one system function with another, so i can use a save manager on a working system?
 
Okay, well i tried to do the Ticket/title/moveable.sed inject and the system wouldn't boot. So i just reinjected a back up, but i had the perform system set up again. What do i need to do to make the sd card from one system function with another, so i can use a save manager on a working system?
With a save manager, you actually back up the saves and set them up fresh on the new system. No migrating the SD card. You, with what you want to do, may be better off doing a CTRNAND transfer (check the readme...), but you need to have A9LH set up on the receiving system. After the NAND transfer, inject the movable.sed from the original system into the receiving system. No guarantees it will work.

You may also want to make a separate thread for this to try and work this out together with others.
 
There is too many options, and it take a long time to load every sub-options (and some are just so useless...), even the main load at the boot...
How to speed-up ?
 
So, as recommended by @Sonic Angel Knight, I plopped my GBA saves into VBA-M.
...Surprise, surprise, they work perfectly.
I also downloaded the latest Decrypt9. The exact same thing happens; it also seems to think [again] there's no gbavcsave.bin when I try to use PMD:RRS.
I must be doing something wrong... I'm renaming the files from .sav to .bin. Is that the problem?
 
So, as recommended by @Sonic Angel Knight, I plopped my GBA saves into VBA-M.
...Surprise, surprise, they work perfectly.
I also downloaded the latest Decrypt9. The exact same thing happens; it also seems to think [again] there's no gbavcsave.bin when I try to use PMD:RRS.
I must be doing something wrong... I'm renaming the files from .sav to .bin. Is that the problem?
Have you trimmed you GBA save? If not, dumb the save of the game you want to inject to, look at its size, get a gba save trimmer, trim your save you want to inject and then rename it into the bin format. You can also skip the dumping part by just taking the save file and trimming it into different sizes (most of the time, you have to trim it half its size, so if it is 64 kb, it should work with 32 kb)
 
Have you trimmed you GBA save? If not, dumb the save of the game you want to inject to, look at its size, get a gba save trimmer, trim your save you want to inject and then rename it into the bin format. You can also skip the dumping part by just taking the save file and trimming it into different sizes (most of the time, you have to trim it half its size, so if it is 64 kb, it should work with 32 kb)
Though that might explain why PMD:RRS doesn't work (as a 128kb file) half of my saves are 8kb, so I don't think that's the issue. And won't trimming damage my save somehow, or make it less usable? (I know nothing about the GBA scene)
 
Though that might explain why PMD:RRS doesn't work (as a 128kb file) half of my saves are 8kb, so I don't think that's the issue. And won't trimming damage my save somehow, or make it less usable? (I know nothing about the GBA scene)
Not that Im an expert on Gba (or anything releated nintendo, to be honest), but I had to trim nearly every of my game and did not lose anything. Also, try dumping you save first, and if you see you need to trim, just try it.
 
@d0k3

I have a feature to request. How technically possible it is, is something that I don't know.

Something the scene keeps discussing every now and then, is bad tickets. Recent topic here:
http://gbatemp.net/threads/ctrnand-...db-etc-it-can-remove-your-bad-tickets.439802/

Is it possible to implement a simple way into D9 (or GM9?) to clean out the bad tickets from ticket.db

The thread above explains how it's currently possible using the ctrnand transfer, and why this method is better than FBI's method.

FYI, I have been hearing conflicting reports about FBI. People say FBI marks them for deletion and they are deleted from the db on the next installation of whatever, and people like in the thread above say it just disables them.

Anyway, it would be great if a better solution can be implemented for this
@d0k3

Any chance you had the time to look at this?
 
How do I see I need to trim a save? :unsure:
Well, for example, lets take Mario 4 Advance.
1. Start Mario 4
2. Leave it and start D9
3. Dump the Gba save.
4. Look at the size it is, lets call it Needed Size. In this example, it might be 16 kb
5. Compare it with the size of your save. Its 32 kb
6. Use a gba savetrimmer if it is different (https://xerodotc.wordpress.com/2012/06/11/visualboyadvance-sav-file-trimmer/)
7. If asked what size you wish your save to be, use the Needed size (so in this case, put 16 kb into it)
8. rename it and inject it
 
Though that might explain why PMD:RRS doesn't work (as a 128kb file) half of my saves are 8kb, so I don't think that's the issue. And won't trimming damage my save somehow, or make it less usable? (I know nothing about the GBA scene)
Yeah, Pokemon games use Flash 1M save type, which is not supported by AGB_FIRM.
That's why those game require special patching before injecting into VC.
Patched Pokemon games will use 64kb save, so trimming may help (at least other people said that it helps, never tested myself).

Super Mario World and Mario & Luigi: Superstar Saga both use EEPROM save type.
AGB_FIRM has only partial support of that save type.
A lot of games can't save at all without patching them to SRAM.
But some games can work as is. For example, your two games will save properly.
Thing is: EEPROM saves from carts or emulators are 64-bit byteswapped, AGB_FIRM doesn't support those.
There's a workaround, you can byteflip them in Hex Workshop:

1. Open your save with Hex Workshop;
2. Then do: "Tools->Operations->Byte Flip"
3. Choose "Treat Data As: 64 Bit Unsigned Quad"
4. Press "OK" and save the file.
5. Rename save file and try to inject, it should work.
 
  • Like
Reactions: Swiftloke and d0k3
@d0k3

Any chance you had the time to look at this?
Not really. "Manual" (as in not via Nintendos own functions) edits of the ticket.db are a bad idea generally, though. A better idea would be to make a ticket.db backup at an early point (or from an earlier backup, or after a system format, or from a different system) and inject that back.

For the tickets you actually want to keep, there is a ticket dumper in D9 now (compile from source). You just need to reinstall via FBI.
 
  • Like
Reactions: Madridi
Yeah, Pokemon games use Flash 1M save type, which is not supported by AGB_FIRM.
That's why those game require special patching before injecting into VC.
Patched Pokemon games will use 64kb save, so trimming may help (at least other people said that it helps, never tested myself).

Super Mario World and Mario & Luigi: Superstar Saga both use EEPROM save type.
AGB_FIRM has only partial support of that save type.
A lot of games can't save at all without patching them to SRAM.
But some games can work as is. For example, your two games will save properly.
Thing is: EEPROM saves from carts or emulators are 64-bit byteswapped, AGB_FIRM doesn't support those.
There's a workaround, you can byteflip them in Hex Workshop:

1. Open your save with Hex Workshop;
2. Then do: "Tools->Operations->Byte Flip"
3. Choose "Treat Data As: 64 Bit Unsigned Quad"
4. Press "OK" and save the file.
5. Rename save file and try to inject, it should work.
Damn, totaly forgot those, haha. So yeah,trimming stuff which isnt Pokemon is a very effectiv methode, even if it does not work a the end, since it is reallativly time efficent and, if it works, well it works (and it works for alot of games(atleast from the 20 different ones I tryed, including some popular and some not so popular games)). I think this shows the "offical" sizes for the game saves http://offlinelistgba.free.fr/index.php but I never tryed it, so dunno.
 
Not really. "Manual" (as in not via Nintendos own functions) edits of the ticket.db are a bad idea generally, though. A better idea would be to make a ticket.db backup at an early point (or from an earlier backup, or after a system format, or from a different system) and inject that back.

For the tickets you actually want to keep, there is a ticket dumper in D9 now (compile from source). You just need to reinstall via FBI.
Thanks, I know the best method is to just make a backup early in the system, but that doesn't help people who have been using their 3ds for a long time.

As for formatting, from what I understand, I think it was @MelonGx who deduced that it doesn't restore the .db to it's original state

We can get a clean .db from any system and inject it? That's safe??
 

Site & Scene News

Popular threads in this forum