4dsdev
Views: 603,628 Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search 10-18-17 11:39 PM
Guest:

0 users reading Reading NDS save files (pxi:dev 0x000D0688) | 1 bot

Main - Reverse-engineering - Reading NDS save files (pxi:dev 0x000D0688) New reply


TuxSH
Posted on 01-20-16 07:00 AM Link | #891
PokéTransporter uses pxi:dev 0x000D0688 to read/write to NDS save files.

However this function have no less than 33 args, and I can't find its backend implementation (which should be more or less documented by savegame-manager).

I know I can just RE PokéTransporter, but I'd prefer to know how this function exactly works.

Any help or advice would be greatly appreciated ;).

Steveice10
Posted on 01-21-16 12:46 AM Link | #893
Just documented the basic command layout and functionality of that command, hope it helps.

https://www.3dbrew.org/wiki/PXIDEV:SPIMultiWriteRead

TuxSH
Posted on 01-21-16 06:48 AM (rev. 3 of 01-21-16 04:31 PM) Link | #895
Wow, this is just amazing :D.

This will definitely help when I'm on my computer this evening.

Edit: Started looking at the function. One argument seems to be missing.

Steveice10
Posted on 01-21-16 06:45 PM Link | #896
If you mean on the wiki page, none of them are missing there.

TuxSH
Posted on 01-22-16 04:56 PM (rev. 2 of 01-22-16 05:34 PM) Link | #897
Yeah, sorry, it just seems that the function sending the sync. request has unused parameters.

EDIT: no, it's just ida having problems with the calling conventions, since I've labeled each of its stack variables/params.

TuxSH
Posted on 01-28-16 04:24 PM (rev. 2 of 01-29-16 03:14 PM) Link | #922
I've managed to get things working (https://github.com/TuxSH/TWLSaveTool/blob/master/source/SPI.cpp) , except for a few things:

* Chips whose JEDEC ID is 0x204013 seem to reject every single PW or SE command, even though WEL=1. This chip is sometimes used for example for Zelda:PH, Pokémon Black2 (maybe the chip used is not the same for everyone, but I doubt it). In fact, even after WEL to 1, it reverts back to 0.

* 512-byte EEPROM chips seem to get stuck in an endless loop waiting for WEL to be 1.

Any idea why?


Main - Reverse-engineering - Reading NDS save files (pxi:dev 0x000D0688) New reply

Page rendered in 0.036 seconds. (2048KB of memory used)
MySQL - queries: 26, rows: 73/73, time: 0.025 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2015-10-07)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.