d0k3 / Decrypt9WIP

Multipurpose content dumper and decryptor for the Nintendo 3DS
GNU General Public License v2.0
403 stars 59 forks source link

[Help needed] Undumpable carts and titles #147

Open d0k3 opened 7 years ago

d0k3 commented 7 years ago

The cart dumper still has problems with certain (or just one?) DSi exclusive titles and flashcarts. To get behind the reason of this problem, I'd need help from people who own DSi exclusive carts and (exotic?) flashcarts. You can use either Decrypt9WIP or GodMode9 for the dump (the internal code is the same), and it would be great if, in case of a failed dump, you could try the same cart in Woodumper.

Use the most recent builds of D9 / GM9 from here: https://d0k3.secretalgorithm.com/

Woodumper is included in YSMenu: https://filetrip.net/file.php?id=33466

Here's a list of DSi exclusive titles: https://en.wikipedia.org/wiki/Nintendo_DSi#Software_library

The DSi title list, in short form, and the current results: Face Training (E): dumpable in new test build, confirmed by @WinterMute, works in Woodumper (r88) Foto Showdown (J,U): known working (U), confirmed by @GerbilSoft Hidden Photo (E): known working, confirmed by @WinterMute Picture Perfect Hair Salon (U,E,A): known working (E), confirmed by @WinterMute System Flaw (U): known working, confirmed by @Gerbilsoft and @WinterMute DSi XL Demo Video (U): dumpable, confirmed by @einstein95 ,needs confirmation via Woodumper

Flashcarts with known problems: R4i (r4.ndsi.in): not dumpable, confirmed by @tetsuo55, doesn't work in Woodumper either M3 DS Simplay: not dumpable, confirmed by @tetsuo55, works in Woodumper DS-X (1): dumpable, but corrupted, confirmed by @ApacheThunder DS-X (2): falsely detected as a CTR card, confirmed by @WinterMute DSTT: detected, but not dumpable, confirmed by @d0k3

Help on this is greatly appreciated. If you test one that is available in multiple regions / revisions, also let us know the region and the revision.

einstein95 commented 7 years ago

Nintendo DSi XL Demo Video (U): Dumps, "Invalid secure area (85ED82B2 61D0B841)"

ObscenityIB commented 7 years ago

The only cart i havent sold off is Pokemon White 2, not sure if thats any use.

mariomadproductions commented 7 years ago

to add to einstein95's contribution: you can get a wooddumper dump of that cart fom a no-intro set

einstein95 commented 7 years ago

@mariomadproductions: no, that's not a wooddumper dump. That's a dump using a dumper created by Normmatt.

On Thu, 26 Jan 2017 7:44 am mariomadproductions notifications@github.com wrote:

to add to einstein95's contribution: you can get a wooddumper dump of that cart fom a no-intro set

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/d0k3/Decrypt9WIP/issues/147#issuecomment-275195518, or mute the thread https://github.com/notifications/unsubscribe-auth/ACWN9Xypp5kACp6-_eTDTZnNmH21UwyNks5rV5gLgaJpZM4LthQm .

d0k3 commented 7 years ago

@einstein95 - That error is actually not a problem. I'll have that error message removed by the next release, and GM9 already does not have it. I didn't even know there were demo carts....

mariomadproductions commented 7 years ago

the "Nintendo - Nintendo DS" and "Nintendo - Nintendo DSi" databases on this site may be useful for you http://datomatic.no-intro.org/

WinterMute commented 7 years ago

Hidden Photo (E):dumped & verified Picture Perfect Hair Salon (E): dumped & verified

d0k3 commented 7 years ago

That research would go nowhere without @WinterMute's help :). Thank you! I see where this is going, Face Training maybe the only undumpable title left in the end.

GerbilSoft commented 7 years ago

Just got Foto Showdown (U).

Dumped using Decrypt9WIP:

tetsuo55 commented 7 years ago

Could you all report your redump verifications to no-intro? This is not about piracy but preservation, there are never enough verifications.

What you need is: Name the dumping tool and revision of it photo/scan of the front of the cart photo/scan of the back of the cart scanning your dump with gameheader *posting these results on the no-intro forum

d0k3 commented 7 years ago

Thanks, @GerbilSoft! So... that leaves us with one indumpable title, which is pretty annoying. I'll have to look into this.

tetsuo55 commented 7 years ago

not exclusive dsi related.

But have you confirmed NTR-031 (ir enabled) titles are dumped correctly?

d0k3 commented 7 years ago

Well... this has already been tested with a lot of carts, and there were never any negative reports about IR enabled gamecarts. Can you either test dump yourself or name a few titles that are IR enabled?

tetsuo55 commented 7 years ago

I don't have any such carts myself. But i got this unconfirmed list from wikipedia

"Examples of such game cards include Personal Trainer: Walking, which connect to the included pedometers, Pokémon HeartGold and SoulSilver, which connect to the included Pokéwalker accessory, and Pokémon Black and White and Pokémon Black 2 and White 2, which connect to other games"

d0k3 commented 7 years ago

Black and White have been tested without trouble, Black 2 and White 2 as well, afaik.

tetsuo55 commented 7 years ago

the pcb is standardised so its safe to say it works fine then.

So that leaves only Face Training

WinterMute commented 7 years ago

@tetsuo55 @d0k3 IR isn't relevant to cart dumping, it's only relevant to save dump/restore.

GerbilSoft commented 7 years ago

@tetsuo55 I'll scan in my DSi carts and post them on No-Intro sometime over the weekend.

ApacheThunder commented 7 years ago

Ok the only carts of note I have to test is my Sonic Classic Collection TWL cart and my DS-Xtreme flashcart:

Sonic Classic Collection (USA):

CRC32: 7344DF65 SHA256: 11AA9FBD1B4EE4264A35DCCA1467566520CD84922A86C4103EC0C97784DA81B1

DS-Xtreme (16Gb model with 1.2 firmware. 16Gb = 2Gigabytes)

CRC32: 979001DE SHA256: 4182297FDA03A5A85457879834F08B3D5E9825F99CAD40ECE147535E3B27629D

It will dump the DS-X without showing an error, but the dump is corrupted once the arm9 binary starts. It doesn't help that this cart has arm9 at an non standard location. :P

The one program that does dump it correctly is NDS Backup Tool Wifi 0.31 which is how I know when I have a valid dump. The rom will boot to the loading screen in No$GBA if it's a valid dump. But the corrupted ones will just have the emulator spit out an invalid opcode error. That and I can tell by just looking at the arm9 section in a hex editor and know that it is corrupt.

As for the Sonic game it appears to be valid. No$GBA starts it. However only if I start it directly. DSi System Menu refuses to boot it for some reason....Not sure if it's how my emulator is set up or not. :P

Dumped it twice and got the same hashes. If there is a problem it would be in the DSi Secure Area/Extended binaries. But the emulator does boot it if I have it set to start the rom directly.....

zg0 commented 7 years ago

What wrong with Face Training and wooddumper? I ordered game and dump it and dump match no-intro db. Proof: http://i.imgur.com/W23ckTz.jpg

d0k3 commented 7 years ago

No-intro is wrong about that one. Try to run the dump in No$GBA, it won't work.

zg0 commented 7 years ago

http://i.imgur.com/p44Ttvd.png http://i.imgur.com/fcy9uEc.png If you mean that no$gba doesn't support non-standart save chip, I don't think that this means that ump bad.

d0k3 commented 7 years ago

Okay, you may be right. Well, still not supported in the D9 / GM9 dumper code.

zg0 commented 7 years ago

try to change your so funny #define getRandomNumber() (4) to REAL random number generator.

d0k3 commented 7 years ago

I have my doubts that's what's causing it. Here's a test build if you want to try: https://transfer.sh/VYKBT/godmode9-20170227-134338.zip

d0k3 commented 7 years ago

Okay, @zg0 may have had a point there, but that wasn't the only required change.

Here's a new test build that may solve it all: https://transfer.sh/10yZpf/decrypt9wip-20170228-223011.zip

@WinterMute already tried this with Face Training, and it worked. What is required now is testing this build with the other mentioned carts and other DSi enhanced ones. Maybe even with some standard DS carts. I need to make sure the changes didn't lead to other carts being imcompatible.

So... @ApacheThunder, @tetsuo55, @GerbilSoft, @einstein95 and @WinterMute - can you maybe, perhaps, redump using this build and tell me the results?

ApacheThunder commented 7 years ago

Ok redumped my DS-Xtreme with that new build. The corruption still occurs it looks like. But instead of causing an invalid opcode in No$gba, it just crashes.

The corruption in the Arm9 binary changed. A good portion of it is FF bytes now instead of having garbage data. So it dumped differently, but still corrupt. Banner region still has valid data and arm7 binary appears correct.

d0k3 commented 7 years ago

Can you retry that dump in Woodumper?

ApacheThunder commented 7 years ago

I can do that, but I did try this before and it also resulted in corrupted dumps. But I'll do it again. It will be a bit since DS wifi is slow.

Here's the txt file the wooddumper server reports:

rom: code: AYIEv00 size: 16777216 bytes card: 00000fc2 save: status: 000000ff id: 00ffffff

ApacheThunder commented 7 years ago

Ok Wooddumper's wifi seems incredibly unstable. I recall this being an issue last time I used it. Given that the estimated completion times exceed 2 hours and would have to completely restart if the connection drops, I won't be doing a dump of this card in wooddumper again. I simply don't have the time for it.

I did manage to get a dump of this card from wooddumper when I first got the card. I definitely remember the dump had similar corruption issues. The only tool that dumps it correctly right now is NDS Backup Tool wifi 0.31. I don't know why, but the transfer speeds from that old app were significantly better then wooddumper too.....

ApacheThunder commented 7 years ago

Ok managed to get it to dump. Just had to use a different FTP client. (transfer speeds were still awful).

Just as I remembered the rom dumps, but is corrupted. Get invalid opcode in No$GBA.

zg0 commented 7 years ago

the cart that had the same issue as face training is a jam with the band. both have nonstandard nand flash for savedata. maybe this is reason. 3rd game with nand save is a warioware - do it yourself, but i don't have it.

mariomadproductions commented 7 years ago

@ApacheThunder Make sure you are using the most up to date wooddumper (r89) to get proper DSi dumps. Also, the fact that No$GBA cannot emulate it isn't relevant to if the dump is good.

WinterMute commented 7 years ago

Latest build is misdetecting my ds-xtreme as a ctr card.

WarioWare DIY dumps & verifies fine.

ApacheThunder commented 7 years ago

@mariomadproductions Yes I used wooddumnper r89. I did not attempt to use outdated versions of Wooddumper. As for Emulation, sure maybe No$GBA can't validate a rom, but being that the only relevent card I had to test was a flashcard, there isn't a "known" CRC for this card.

Besides I know what a working rom dump of this card does. It boots to a loading screen in No$GBA and that was what I considered a valid rom dump for this card. NDS Backup Tool Wifi 0.31 dumps this cart correctly and I know this because at the time that's how I booted this card on a 3DS in the first place...By converting that rom into a rom that would boot on a 3DS.

So for this card I know what valid rom dump looks like in a hex editor and what it does in No$GBA. So I believe I have enough information about my particular card to know if it's dumping correctly.

As for WinterMute's card....I wonder what version his is. It must be an older smaller capacity one? (mine is a 2 gigabyte model or 16gigabit as it was advertised) Interesting that it's being misdetected as a CTR card. Never seen that happen with mine but I can download the latest build to make sure there wasn't a change that may have also caused mine to do that. :P

EDIT: Tested latest commit, still detects my DS-X as a NTR card. (it still dumps corrupted however)

d0k3 commented 7 years ago

@ApacheThunder - thanks a ton for all the effort you put into this. In fact, thank you all.

@WinterMute - if the latest build detects it as a CTR card, the previous one should have had the same problem.

By now (further testing is appreciated!), I'd almost assume that all retail cards are dumpable. Flashcards are special, and I might just ignore issues with dumping them for now, unsure.

d0k3 commented 7 years ago

Alright, here's a GM9 build with the same improvements to the TWL cart dumping code included: https://transfer.sh/MVVwZ/godmode9-20170310-124920.zip

Further testing is greatly appreciated. I'd also like to hear your take on undumpable flash carts. My DSTT, f.e. initializes properly (= shows up in GM9), but can't be copied or viewed in the hex editor.

tetsuo55 commented 7 years ago

using the latest builds my r4i is still misdetected as CTR

0xC0DEDEAD commented 7 years ago

Both D9 and GM9 can dump EZ-Flash V and EZ-Flash V+ but not the DSi compatible EZ-Flash Vi. D9 output for EZ-Falsh Vi Cartridge ID: 00000000 Cartridge Type: NTR/TWL Product name: Product ID: Product Version: 255 Cartridge data size: 0MB Cartridge used size: 4095MB Cartridge dump size: 0MB Used size exceeds cartridge size Dump Cart (full): failed!

GM9 on inserting cart shows Cart init failed!

d0k3 commented 7 years ago

Alright, thankyou. I am thinking about just ignoring flashcart compatibility for now. There are more pressing issues, such as access to cart savegames.