smurk-too / cleanrip

Automatically exported from code.google.com/p/cleanrip
0 stars 0 forks source link

Datel Disc Support #1

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
First off all thanks for this aazing program.

Second off all sorry for submitting this under issues, but this bugtracker 
doesn't seem to have a feature request setting and I wouldn't know how else to 
each you.

Would it be possible to implement the ripping of datel discs in this program? 
The only program I know of that could do that was softdevs disc ripper and 
sadly that one couldn't rip the later datel discs, since it switched into 
Datel-mode depending on game-ID.
So I still have my latest gamecube Action Replay disc here and have to swap it 
every time I want to use some cheats. If there was a ripper I could just 
extract the .dol and launch it via Gamecube Homebrew Launcher...

So if you could include this feature it would be really awesome.

Original issue reported on code.google.com by moritz.g...@gmail.com on 14 Sep 2010 at 7:17

GoogleCodeExporter commented 8 years ago
I plan to add in support for full datel disc dumps and not just the .dol file :)

Original comment by emuki...@gmail.com on 14 Sep 2010 at 11:23

GoogleCodeExporter commented 8 years ago

Original comment by emuki...@gmail.com on 15 Sep 2010 at 5:44

GoogleCodeExporter commented 8 years ago
In the meantime, you can just use SNEEK to dump datel discs. It has an option 
for error skipping.

Original comment by thealexb...@gmail.com on 15 Sep 2010 at 4:43

GoogleCodeExporter commented 8 years ago
Sorry if I'm writing here,  I only want to know how to use Sneek on a Wii to 
dump a Datel disc (AR, for example). I hope someone can help me!

Original comment by chabbyla...@gmail.com on 30 Jan 2013 at 2:52

GoogleCodeExporter commented 8 years ago
Awful hack to rip the Datel discs I have attached.

Original comment by greyro...@gmail.com on 8 Dec 2014 at 4:00

Attachments:

GoogleCodeExporter commented 8 years ago
More complete information on the list of data to read from the discs for anyone 
who wants it:
For both Action Replay (v1.14A) and AGP:
Offset 0x0, Size 0x440 = Standard Disc header
In header: At Offset 0x424 = FST.bin location (0x17000), 0x428 = FSB.bin size  
(0x24)
In FST.bin (0x17000): At Offset 0x170010 = opening.bnr location (0x18000), 
0x17014 = opening.bnr size = (0x1960)

Offset 0x2440, Size found at 0x2454 & 0x2458 (0xCCC + 0x192C0) = Apploader
Offset 0x2460, Size 0x19F8C = Apploader

All of the above can be read by just reading the first 0x100000 bytes from the 
disc,
(Offset 0, Size = 0x100000), which can be read without error.

After loading the apploader into memory, at address 0x812002E8 the main boot 
application is read (in memory 0x81200C20, which was originally from Offset 
0x3080).  There are two entries.  Format:
(Memory destination, Size, Offset)
For both discs the values are
(0x80003100, 0xBA000 or 0x335000, 0x50000000)
(0x817FE8C0, 0x40, 0x17000)

The second set is already contained in the above (0, 0x100000).
The size of 0x335000 is for the Action Replay disc, and is the only other data 
read from the disc (I think).  So the complete list of reads for AR 1.14A is
(0x00000000, 0x00100000)
(0x50000000, 0x00100000)
(0x50100000, 0x00100000)
(0x50200000, 0x00100000)
(0x50300000, 0x00100000)
The last one completes successfully, even if it doesn't need to read the full 
amount.

For the AGP (size 0xBA000) above, this is the main menu/appswitcher. We don't 
need the full amount, but it completes successfully if reading 0x100000.  So 
far we have:
(0x00000000, 0x100000)
(0x50000000, 0x100000)

In the main menu code, at 0x80003420 is starts to load r25 with 0x8003B770 
(Original Offset = 0x50038670).  It finally completes the address loading at 
0x80003864.  This then reads from 0x8003B770 or 0x8003B778 one of the two 
formatted sets:
(Offset, Size>>10)
(0x12D00000, 0x800 [0x00200000]) = AGP
(0x12B00000, 0x800 [0x00200000]) = Cheat Construction Kit
These are both loaded to 0x80003100.

The Cheat Construction Kit doesn't load anything from the disc.
The AGP in the function located at 0x80004410 loads from 0x80098040 + 12 * r3 
the GBA roms that are on the disc.  So the list at 0x80098040 (Original Offset 
0x12D94F40)
(??, Offset, Size>>10)

Bounty Hunter
(??, 0x09900000, 0x400 [0x00100000])

Chopper 2
(??, 0x0A900000, 0x400 [0x00100000])

Dragon Tiles 3
(??, 0x0B100000, 0x400 [0x00100000])

Invaders
(??, 0x0B900000, 0x400 [0x00100000])

Jetpack 2
(??, 0x0C100000, 0x400 [0x00100000])

Loop The Loop
(??, 0x0D900000, 0x400 [0x00100000])

Paddle Panic
(??, 0x0E100000, 0x400 [0x00100000])

Popem
(??, 0x0E900000, 0x400 [0x00100000])

Proxima
(??, 0x0F900000, 0x400 [0x00100000])

Super Power Shot
(??, 0x0F100000, 0x400 [0x00100000])

These are all exactly 0x100000 long, so we aren't reading past the end with 
0x100000 size reads.  There are further offsets/sizes in the list, so I was 
hoping there might be more hidden games, but the first is a repeat of one of 
the earlier ones with a different size, and I failed to read the one after 
that.  I'm assuming these were left over from earlier debug builds of the disc, 
As there are only 10 games selectable in the game.  So the complete list of 
offsets and sizes to read from the AGP disc:
(0x00000000, 0x00100000)
(0x50000000, 0x00100000)
(0x09900000, 0x00100000)
(0x0A900000, 0x00100000)
(0x0B100000, 0x00100000)
(0x0B900000, 0x00100000)
(0x0C100000, 0x00100000)
(0x0D900000, 0x00100000)
(0x0E100000, 0x00100000)
(0x0E900000, 0x00100000)
(0x0F900000, 0x00100000)
(0x0F100000, 0x00100000)

Original comment by greyro...@gmail.com on 12 Dec 2014 at 12:07

GoogleCodeExporter commented 8 years ago
Comment 6 is missing the AGP and Cheat Kit sections.  Should be:

(0x00000000, 0x00100000)
(0x50000000, 0x00100000)
(0x12D00000, 0x00100000)
(0x12E00000, 0x00100000)
(0x12B00000, 0x00100000)
(0x12C00000, 0x00100000)
(0x09900000, 0x00100000)
(0x0A900000, 0x00100000)
(0x0B100000, 0x00100000)
(0x0B900000, 0x00100000)
(0x0C100000, 0x00100000)
(0x0D900000, 0x00100000)
(0x0E100000, 0x00100000)
(0x0E900000, 0x00100000)
(0x0F900000, 0x00100000)
(0x0F100000, 0x00100000)

with just the first two reading extra data that isn't needed, but reads 
successfully.

Original comment by greyro...@gmail.com on 23 Dec 2014 at 4:10