Bond697 icon

Pokemon Colo Bonus Disc Multiboot ROM (Partial) Disassembly

Bond697 | PRO | 10/06/11 03:12:08 AM UTC | 0 ⭐ | 11178 👁️ | Never ⏰ | []
ARM |

10.94 KB

|

None

|

0 👍

/

0 👎

    .text
    .align  2
    .code   32
    .arm
 
 
entry:
020000C0 E3A00012 mov     r0,#0x12
020000C4 E129F000 msr     cpsr_fc,r0
020000C8 E59FD028 ldr     r13,=#0x3007FA0
020000CC E3A0001F mov     r0,#0x1F
020000D0 E129F000 msr     cpsr_fc,r0
020000D4 E59FD018 ldr     r13,=#0x3007E60
020000D8 E59F101C ldr     r1,=#0x3007FFC
020000DC E28F0020 add     r0,=#0x2000104
020000E0 E5810000 str     r0,[r1]
020000E4 E59F1014 ldr     r1,=#0x2000241
020000E8 E1A0E00F mov     r14,r15
020000EC E12FFF11 bx      r1
020000F0 EAFFFFF2 b       #0x20000C0
 
.pool
020000F4 03007E60 
020000F8 03007FA0 
020000FC 03007FFC 
02000100 02000241 
 
 
irq handler:
02000104 E3A03301 mov     r3,#0x4000000
02000108 E2833C02 add     r3,r3,#0x200
0200010C E5932000 ldr     r2,[r3]
02000110 E1D310B8 ldrh    r1,[r3,#0x8]
02000114 E14F0000 mrs     r0,spsr
02000118 E92D400F stmfd   r13!,{r0-r3,r14}
0200011C E3A00001 mov     r0,#0x1
02000120 E1C300B8 strh    r0,[r3,#0x8]
02000124 E0021822 and     r1,r2,r2,lsr #0x10
02000128 E3A0C000 mov     r12,#0x0
0200012C E2110080 ands    r0,r1,#0x80
02000130 1A000027 bne     #0x20001D4
02000134 E28CC004 add     r12,r12,#0x4
02000138 E2110001 ands    r0,r1,#0x1
0200013C 1A000024 bne     #0x20001D4
02000140 E28CC004 add     r12,r12,#0x4
02000144 E2110002 ands    r0,r1,#0x2
02000148 1A000021 bne     #0x20001D4
0200014C E28CC004 add     r12,r12,#0x4
02000150 E2110004 ands    r0,r1,#0x4
02000154 1A00001E bne     #0x20001D4
02000158 E28CC004 add     r12,r12,#0x4
0200015C E2110008 ands    r0,r1,#0x8
02000160 1A00001B bne     #0x20001D4
02000164 E28CC004 add     r12,r12,#0x4
02000168 E2110010 ands    r0,r1,#0x10
0200016C 1A000018 bne     #0x20001D4
02000170 E28CC004 add     r12,r12,#0x4
02000174 E2110020 ands    r0,r1,#0x20
02000178 1A000015 bne     #0x20001D4
0200017C E28CC004 add     r12,r12,#0x4
02000180 E2110040 ands    r0,r1,#0x40
02000184 1A000012 bne     #0x20001D4
02000188 E28CC004 add     r12,r12,#0x4
0200018C E2110C01 ands    r0,r1,#0x100
02000190 1A00000F bne     #0x20001D4
02000194 E28CC004 add     r12,r12,#0x4
02000198 E2110C02 ands    r0,r1,#0x200
0200019C 1A00000C bne     #0x20001D4
020001A0 E28CC004 add     r12,r12,#0x4
020001A4 E2110B01 ands    r0,r1,#0x400
020001A8 1A000009 bne     #0x20001D4
020001AC E28CC004 add     r12,r12,#0x4
020001B0 E2110B02 ands    r0,r1,#0x800
020001B4 1A000006 bne     #0x20001D4
020001B8 E28CC004 add     r12,r12,#0x4
020001BC E2110A01 ands    r0,r1,#0x1000
020001C0 1A000003 bne     #0x20001D4
020001C4 E28CC004 add     r12,r12,#0x4
020001C8 E2110A02 ands    r0,r1,#0x2000
020001CC 1543017C strneb  r0,[r3,-#0x17C]
020001D0 1AFFFFFE bne     #0x20001D0
020001D4 E1C300B2 strh    r0,[r3,#0x2]
020001D8 E3A01D83 mov     r1,#0x20C0
020001DC E1C22000 bic     r2,r2,r0
020001E0 E0011002 and     r1,r1,r2
020001E4 E1C310B0 strh    r1,[r3]
020001E8 E10F3000 mrs     r3,cpsr
020001EC E3C330DF bic     r3,r3,#0xDF
020001F0 E383301F orr     r3,r3,#0x1F
020001F4 E129F003 msr     cpsr_fc,r3
020001F8 E59F1038 ldr     r1,=#0x2014390
020001FC E081100C add     r1,r1,r12
02000200 E5910000 ldr     r0,[r1]
02000204 E92D4000 stmfd   r13!,{r14}
02000208 E28FE000 add     r14,=#0x2000210
0200020C E12FFF10 bx      r0
02000210 E8BD4000 ldmfd   r13!,{r14}
02000214 E10F3000 mrs     r3,cpsr
02000218 E3C330DF bic     r3,r3,#0xDF
0200021C E3833092 orr     r3,r3,#0x92
02000220 E129F003 msr     cpsr_fc,r3
02000224 E8BD400F ldmfd   r13!,{r0-r3,r14}
02000228 E1C320B0 strh    r2,[r3]
0200022C E1C310B8 strh    r1,[r3,#0x8]
02000230 E169F000 msr     spsr_fc,r0
02000234 E12FFF1E bx      r14
 
.pool
02000238 02014390     
 
 
    .text
    .align 2
    .code   16
    .thumb
 
 
0200023C 4770     bx      r14
0200023E 0000     lsl     r0,r0,#0x0(padding)
 
agbMain:
02000240 B510     push    {r4,r14}
02000242 4C0F     ldr     r4,=#0x3000130
02000244 490F     ldr     r1,=#0x4000208    // IME
02000246 2000     mov     r0,#0x0
02000248 8008     strh    r0,[r1]       // IME = 0, turn off interrupts
0200024A 20FC     mov     r0,#0xFC      // pass 0xFC to 0x20002A0 as an argument
0200024C F000F828 bl      #0x20002A0
02000250 490D     ldr     r1,=#0x4000204    // cart waitstate control
02000252 4A0E     ldr     r2,=#0x45B4
02000254 1C10     mov     r0,r2         // waitstate control = 0x45b4
02000256 8008     strh    r0,[r1]       // set waitstates, prefetch buffer
02000258 4A0D     ldr     r2,=#0x40000D4    // DMA3 source 
0200025A 480E     ldr     r0,=#0x20143C8    // use this as DMA3 source
0200025C 6010     str     r0,[r2]       // set DMA3 src
0200025E 20C0     mov     r0,#0xC0      // r0 = 0xC
02000260 0480     lsl     r0,r0,#0x12       // r0 = 0x3000000
02000262 6050     str     r0,[r2,#0x4]      // DMA3 dest = 0x3000000
02000264 480C     ldr     r0,=#0x30001C4    
02000266 490D     ldr     r1,=#0x3000000
02000268 1A40     sub     r0,r0,r1      // r0 = r0-r1 = 0x1C4
0200026A 0FC1     lsr     r1,r0,#0x1F       // r1 = 0
0200026C 1840     add     r0,r0,r1      
0200026E 1040     asr     r0,r0,#0x1
02000270 2180     mov     r1,#0x80
02000272 0609     lsl     r1,r1,#0x18
02000274 4308     orr     r0,r1
02000276 6090     str     r0,[r2,#0x8]
02000278 6890     ldr     r0,[r2,#0x8]
0200027A F000F81B bl      #0x20002B4
0200027E E7FE     b       #0x200027E
 
.pool
02000280 0130    
02000282 0300    
(0x03000130)
 
02000284 0208     
02000286 0400   
(0x04000208)
 
02000288 0204    
0200028A 0400    
(0x04000204)
 
0200028C 45B4     
0200028E 0000     
(0x030045B4)
 
02000290 00D4    
02000292 0400     
(0x040000D4)
 
02000294 43C8 
02000296 0201     
(0x020143C8)
 
02000298 01C4    
0200029A 0300    
(0x030001C4)
 
0200029C 0000     
0200029E 0300    
(0x03000000)
 
 
020002A0 DF01     swi     #0x1    ;RegisterRamReset
020002A2 4770     bx      r14
 
020002A4 4700     bx      r0
020002A6 46C0     nop
 
020002A8 4708     bx      r1
020002AA 46C0     nop
 
020002AC 4710     bx      r2
020002AE 46C0     nop
 
020002B0 4718     bx      r3
020002B2 46C0     nop
 
020002B4 4720     bx      r4
020002B6 46C0     nop
 
020002B8 4728     bx      r5
020002BA 46C0     nop
 
020002BC 4730     bx      r6
020002BE 46C0     nop
 
020002C0 4738     bx      r7
020002C2 46C0     nop
 
020002C4 4740     bx      r8
020002C6 46C0     nop
 
020002C8 4748     bx      r9
020002CA 46C0     nop
 
020002CC 4750     bx      r10
020002CE 46C0     nop
 
020002D0 4758     bx      r11
020002D2 46C0     nop
 
020002D4 4760     bx      r12
020002D6 46C0     nop
 
020002D8 4768     bx      r13
020002DA 46C0     nop
 
020002DC 4770     bx      r14
020002DE 46C0     nop
020002E0 0000     lsl     r0,r0,#0x0(padding)
 
 
    .text
    .align 2
    .code   32
    .arm
 
 
020143C8 E1A0C00D mov     r12,r13
020143CC E92DDFF0 stmfd   r13!,{r4-r12,r14,r15}
020143D0 E24CB004 sub     r11,r12,#0x4
020143D4 E1A07000 mov     r7,r0
020143D8 E4973004 ldr     r3,[r7],#0x4
020143DC E1A0E001 mov     r14,r1
020143E0 E08E9443 add     r9,r14,r3,asr #0x8
020143E4 E15E0009 cmp     r14,r9
020143E8 2A000040 bcs     #0x20144F0
020143EC E3A08EFF mov     r8,#0xFF0
020143F0 E288800F add     r8,r8,#0xF
020143F4 E3A05080 mov     r5,#0x80
020143F8 E4D7A001 ldrb    r10,[r7],#0x1
020143FC E11A0005 tst     r10,r5
02014400 0A000033 beq     #0x20144D4
02014404 E4D73001 ldrb    r3,[r7],#0x1
02014408 E4D71001 ldrb    r1,[r7],#0x1
0201440C E24E0001 sub     r0,r14,#0x1
02014410 E1811403 orr     r1,r1,r3,lsl #0x8
02014414 E0013008 and     r3,r1,r8
02014418 E0630000 rsb     r0,r3,r0
0201441C E18E2000 orr     r2,r14,r0
02014420 E3120001 tst     r2,#0x1
02014424 E1A01641 mov     r1,r1,asr #0xC
02014428 E2810003 add     r0,r1,#0x3
0201442C 1A00000F bne     #0x2014470
02014430 E1A0C141 mov     r12,r1,asr #0x2
02014434 E35C0000 cmp     r12,#0x0
02014438 E2014002 and     r4,r1,#0x2
0201443C E2016001 and     r6,r1,#0x1
02014440 E1A010A5 mov     r1,r5,lsr #0x1
02014444 0A000005 beq     #0x2014460
02014448 E0D030B2 ldrh    r3,[r0],#0x2
0201444C E0CE30B2 strh    r3,[r14],#0x2
02014450 E0D030B2 ldrh    r3,[r0],#0x2
02014454 E0CE30B2 strh    r3,[r14],#0x2
02014458 E25CC001 subs    r12,r12,#0x1
0201445C 1AFFFFF9 bne     #0x2014448
02014460 E3540000 cmp     r4,#0x0
02014464 10D030B2 ldrneh  r3,[r0],#0x2
02014468 10CE30B2 strneh  r3,[r14],#0x2
0201446C EA000014 b       #0x20144C4
02014470 E1A0C141 mov     r12,r1,asr #0x2
02014474 E35C0000 cmp     r12,#0x0
02014478 E2014002 and     r4,r1,#0x2
0201447C E2016001 and     r6,r1,#0x1
02014480 E1A010A5 mov     r1,r5,lsr #0x1
02014484 0A000009 beq     #0x20144B0
02014488 E4D03001 ldrb    r3,[r0],#0x1
0201448C E4CE3001 strb    r3,[r14],#0x1
02014490 E4D02001 ldrb    r2,[r0],#0x1
02014494 E4CE2001 strb    r2,[r14],#0x1
02014498 E4D03001 ldrb    r3,[r0],#0x1
0201449C E4CE3001 strb    r3,[r14],#0x1
020144A0 E4D02001 ldrb    r2,[r0],#0x1
020144A4 E4CE2001 strb    r2,[r14],#0x1
020144A8 E25CC001 subs    r12,r12,#0x1
020144AC 1AFFFFF5 bne     #0x2014488
020144B0 E3540000 cmp     r4,#0x0
020144B4 14D03001 ldrneb  r3,[r0],#0x1
020144B8 14CE3001 strneb  r3,[r14],#0x1
020144BC 14D02001 ldrneb  r2,[r0],#0x1
020144C0 14CE2001 strneb  r2,[r14],#0x1
020144C4 E3560000 cmp     r6,#0x0
020144C8 0A000004 beq     #0x20144E0
020144CC E5D03000 ldrb    r3,[r0]
020144D0 EA000001 b       #0x20144DC
020144D4 E4D73001 ldrb    r3,[r7],#0x1
020144D8 E1A010A5 mov     r1,r5,lsr #0x1
020144DC E4CE3001 strb    r3,[r14],#0x1
020144E0 E21150FF ands    r5,r1,#0xFF
020144E4 1AFFFFC4 bne     #0x20143FC
020144E8 E15E0009 cmp     r14,r9
020144EC 3AFFFFC0 bcc     #0x20143F4
020144F0 E91B6FF0 ldmdb   r11,{r4-r11,r13,r14}
020144F4 E12FFF1E bx      r14
 
020144F8 E1A0C00D mov     r12,r13
020144FC E92DD830 stmfd   r13!,{r4,r5,r11,r12,r14,r15}
02014500 E3A030AC mov     r3,#0xAC
02014504 E2833402 add     r3,r3,#0x2000000
02014508 E3A01000 mov     r1,#0x0
0201450C E59F2068 ldr     r2,=#0x2014384
02014510 E24CB004 sub     r11,r12,#0x4
02014514 E59FC064 ldr     r12,=#0x20003E0
02014518 E3A05402 mov     r5,#0x2000000
0201451C E5934000 ldr     r4,[r3]
02014520 E06C2002 rsb     r2,r12,r2
02014524 E2620402 rsb     r0,r2,#0x2000000
02014528 E2800BFF add     r0,r0,#0x3FC00
0201452C E280C003 add     r12,r0,#0x3
02014530 E1510002 cmp     r1,r2
02014534 AA000004 bge     #0x201454C
02014538 E7DC3001 ldrb    r3,[r12,r1]
0201453C E7C03001 strb    r3,[r0,r1]
02014540 E2811001 add     r1,r1,#0x1
02014544 E1510002 cmp     r1,r2
02014548 BAFFFFFA blt     #0x2014538
0201454C E3A03F82 mov     r3,#0x208
02014550 E2833301 add     r3,r3,#0x4000000
02014554 E3A02000 mov     r2,#0x0
02014558 E1C320B0 strh    r2,[r3]
0201455C E3A01402 mov     r1,#0x2000000
02014560 EBFFFF98 bl      #0x20143C8
02014564 E3A030AC mov     r3,#0xAC
02014568 E2833402 add     r3,r3,#0x2000000
0201456C E5834000 str     r4,[r3]
02014570 E1A0E00F mov     r14,r15
02014574 E12FFF15 bx      r5
02014578 EA000001 b       #0x2014584
 
.pool
0201457C 02014384    
02014580 020003E0  
 
 
02014584 E91B6830 ldmdb   r11,{r4,r5,r11,r13,r14}
02014588 E12FFF1E bx      r14
 
 
.data
0201458C 53595346 "FSYS" - begin/end file system?

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎