- Joined
- Nov 15, 2011
- Messages
- 5,210
- Reaction score
- 2,080
- Trophies
- 0
- Age
- 42
- Location
- Deep in GBAtemp addiction
- Website
- gbadev.googlecode.com
- XP
- 1,730
- Country

I think it's time to throw up some more Assembly up for discussion again (ARM assembly this time). I finally got around to trying out some of my idea for patching the core enabling race attack into IOS ... BUT the PPC doesn't even get reset.
I haven't really done a WHOLE lot of testing on this but I thought I'd throw it out there in case anyone has any further ideas.
Here's the hex I'm patching into the IOS:
https://code.google.com/p/gbadev/so...=53a5860eee1d5ed922298518649a350838da6161#126
the IOS syscalls (undefined instructions) are based off of this
http://wiibrew.org/wiki/IOS/Syscalls
but I'm not 100% sure if I'm setting the arguments right.
When I run my hex through this disassembler:
http://www.onlinedisassembler.com/odaweb/#view/tab-assembly/offset/00000000
(set to big endian ARMv5te) I get this
Edit : I see a typo on the last memory patching address ... that might be it. I'll have to test.
I haven't really done a WHOLE lot of testing on this but I thought I'd throw it out there in case anyone has any further ideas.
Here's the hex I'm patching into the IOS:
https://code.google.com/p/gbadev/so...=53a5860eee1d5ed922298518649a350838da6161#126
the IOS syscalls (undefined instructions) are based off of this
http://wiibrew.org/wiki/IOS/Syscalls
but I'm not 100% sure if I'm setting the arguments right.
When I run my hex through this disassembler:
http://www.onlinedisassembler.com/odaweb/#view/tab-assembly/offset/00000000
(set to big endian ARMv5te) I get this
Code:
.data:0x00000000 477846c0 ldrbmi r4, [r8, -r0, asr #13]!
.data:0x00000004 e59f005c ldr r0, [pc, #92] ; 0x00000068
.data:0x00000008 e6000830 ; <UNDEFINED> instruction: 0xe6000830
.data:0x0000000c e59f0044 ldr r0, [pc, #68] ; 0x00000058
.data:0x00000010 e5902000 ldr r2, [r0]
.data:0x00000014
.data:0x00000014 loc_00000014:
.data:0x00000014 e59f003c ldr r0, [pc, #60] ; 0x00000058
.data:0x00000018 e3a01020 mov r1, #32
.data:0x0000001c e60007f0 ; <UNDEFINED> instruction: 0xe60007f0
.data:0x00000020 e59f0030 ldr r0, [pc, #48] ; 0x00000058
.data:0x00000024 e5903000 ldr r3, [r0]
.data:0x00000028 e1520003 cmp r2, r3
.data:0x0000002c 0afffff8 beq loc_00000014
.data:0x00000030 e59f0020 ldr r0, [pc, #32] ; 0x00000058
.data:0x00000034 e59f1020 ldr r1, [pc, #32] ; 0x0000005c
.data:0x00000038 e5801000 str r1, [r0]
.data:0x0000003c e59f101c ldr r1, [pc, #28] ; 0x00000060
.data:0x00000040 e5801004 str r1, [r0, #4]
.data:0x00000044 e59f1018 ldr r1, [pc, #24] ; 0x00000064
.data:0x00000048 e5801008 str r1, [r0, #8]
.data:0x0000004c e3a01020 mov r1, #32
.data:0x00000050 e6000810 ; <UNDEFINED> instruction: 0xe6000810
.data:0x00000054 e12fff1e bx lr
.data:0x00000058 01330100 teqeq r3, r0, lsl #2
.data:0x0000005c 38802000 stmcc r0, {sp}
.data:0x00000060 7c800124 stfvcs f0, [r0], {36} ; 0x24
.data:0x00000064 48001802 stmdami r0, {r1, fp, ip}
.data:0x00000068 00000000 andeq r0, r0, r0
Edit : I see a typo on the last memory patching address ... that might be it. I'll have to test.









