- Joined
- Dec 20, 2002
- Messages
- 316
- Trophies
- 0
- Location
- The Lost City of Atlantis
- Website
- Visit site
- XP
- 222
- Country
First, I'd like to ask those that simply just want to play the game to refer to the other thread. I'm more interested here in what exactly the game is doing to detect a backup. So here goes:
http://www.ibm.com/developerworks/eserver/...chguide-v2.html
Using the above link to download the architecture for the PowerPC CPU in the Wii at the time of the spec, here's what I've come up with.
Thanks to NeverSoft for pointing me in the right direction.
Old Command: 94 21 FF D0 = 10010100001000011111111111010000
New Command: 4E 80 00 20 = 01001110010000000000000000100000
The first 6-bits represent the instruction opcode
So for the old command, the first 6 bits are a hex 25 or decimal 37 which is an STU (Store Word with Update D-Form) command which is broken down this way:
I[0..5] = 100101 = opcode = 37 (25h)
I[6..10] = 00001 = RS = 1 (1h)
I[11..15] = 00001 = RA = 1 (1h)
I[16..31] = 1111111111010000 = D = (FFD0h)
For the new command, the first 6 bits are a hex 13 or decimal 19 which when combined with the extend opcode makes it a BCLR (Branch Condition to Link Register) command which is broken down this way:
I[0..5] = 010011 = opcode = 19 (13h)
I[6..10] = 10010 = BO = 18 (12h)
I[11..15] = 00000 = BI = 0 (0h)
I[16..18] = 000 = NOT USED
I[19..20] = 00 = BH = 0 (0h)
I[21..30] = 000010000 = extended opcode = 16 (10h)
I[31] = 0 = LK = 0 (0h)
Obviously, the first command is the one triggering the error. The code for that particular instruction states the following:
EA
http://www.ibm.com/developerworks/eserver/...chguide-v2.html
Using the above link to download the architecture for the PowerPC CPU in the Wii at the time of the spec, here's what I've come up with.
Thanks to NeverSoft for pointing me in the right direction.
Old Command: 94 21 FF D0 = 10010100001000011111111111010000
New Command: 4E 80 00 20 = 01001110010000000000000000100000
The first 6-bits represent the instruction opcode
So for the old command, the first 6 bits are a hex 25 or decimal 37 which is an STU (Store Word with Update D-Form) command which is broken down this way:
I[0..5] = 100101 = opcode = 37 (25h)
I[6..10] = 00001 = RS = 1 (1h)
I[11..15] = 00001 = RA = 1 (1h)
I[16..31] = 1111111111010000 = D = (FFD0h)
For the new command, the first 6 bits are a hex 13 or decimal 19 which when combined with the extend opcode makes it a BCLR (Branch Condition to Link Register) command which is broken down this way:
I[0..5] = 010011 = opcode = 19 (13h)
I[6..10] = 10010 = BO = 18 (12h)
I[11..15] = 00000 = BI = 0 (0h)
I[16..18] = 000 = NOT USED
I[19..20] = 00 = BH = 0 (0h)
I[21..30] = 000010000 = extended opcode = 16 (10h)
I[31] = 0 = LK = 0 (0h)
Obviously, the first command is the one triggering the error. The code for that particular instruction states the following:
EA