Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .align 2
- .thumb
- Branch:
- ldr r1, .New_Routine
- bx r1
- mov r3, #0x0
- .align 2
- .New_Routine:
- .word 0x08800800 + 1
- Start:
- push {r0-r3}
- ldr r3, .RAM_Address
- ldr r1, .Ani_Table
- ldrb r2, [r3, #0x1] //Load next frame index.
- lsl r2, #0x3 //Multiply is by the size of the structure.
- add r1, r2 //Add it to the base table offset.
- ldrb r0, [r1, #0x4] //Load the delay for this frame.
- ldrb r2, [r3] //Load the delay counter.
- cmp r2, r0 //See if the delay has been met.
- bge LoadFrame
- add r2, #0x1 //Add one to the delay counter.
- strb r2, [r3]
- b Finish
- LoadFrame:
- mov r2, #0x0 //Set delay counter to zero for next frame.
- strb r2, [r3]
- ldrb r2, [r1, #0x5] //Next frame
- strb r2, [r3, #0x1]
- ldr r3, .Shifter
- ldrb r2, [r1, #0x6] //X-axis movement for this frame.
- neg r2, r2
- strh r2, [r3]
- ldrb r2, [r1, #0x7] //Y-axis movement for this frame.
- neg r2, r2
- strh r2, [r3, #0x2]
- ldr r0, [r1] //The pointer to the new image.
- ldr r1, .VRAM
- swi #0x12
- Finish:
- pop {r0-r3}
- ldr r1, [r0]
- ldr r0, .Frame_Count
- ldr r3, .Old_Routine
- bx r3
- .align 2
- .Ani_Table:
- .word 0x087FFF00
- .RAM_Address:
- .word 0x020370c0
- .VRAM:
- .word 0x06004000
- .Frame_Count:
- .word 0x00000A8B
- .Old_Routine:
- .word 0x08078C03
- .Shifter:
- .word 0x04000014
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement