Nice. Is it possible to get objects moving left to fight ie: fireballs going left and right rather than up and down?
I would think so, you would just have to find where their animation is controlled.
Also, will you ever release your ASM on this?
Nice. Is it possible to get objects moving left to fight ie: fireballs going left and right rather than up and down?
I think its awesome...but I think I'm blonde, I don't get ANY of the stuff you guys were talking about previously lol I must has this on my hacked rom...
Better start learning ASM, then :)
*cough cough* whats ASM? *cough cough* If I know what that means I can be on my way
Hi there, this is really great.
Are you thinking of making a tool that can change this without hexing?
Nope. Never. :) Once I release the highly commented code, it will be easy enough to implement.
.text
.align 2
.thumb
/*This goes at 78BF8*/
Branch:
ldr r1, .New_Routine
bx r1
pop {r3}
.align 2
.New_Routine:
.word 0x08XXXXXX + 1
.text
.align 2
.thumb
Start:
push {r0-r3}
ldr r3, .RAM_Address
ldr r1, .Ani_Table
ldrb r2, [r3, #0x1]
lsl r2, #0x3
add r1, r2
ldrb r0, [r1, #0x4]
ldrb r2, [r3]
cmp r2, r0
bge LoadFrame
add r2, #0x1
strb r2, [r3]
b PressStart
LoadFrame:
mov r2, #0x0
strb r2, [r3]
ldrb r2, [r1, #0x5]
strb r2, [r3, #0x1]
ldr r0, [r1]
ldr r1, .VRAM_Animated_Image
swi #0x12
PressStart:
ldrb r2, [r3, #0x2]
add r2, #1
strb r2, [r3, #0x2]
cmp r2, #0x10
ble Finish
mov r2, #0
strb r2, [r3, #0x2]
FlashOn:
ldrb r2, [r3, #0x3]
cmp r2, #0
bne FlashOff
ldr r0, .Start_Image
ldr r1, .VRAM_Start
swi #0x12
mov r2, #1
strb r2, [r3, #0x3]
b Finish
FlashOff:
ldr r0, .Blank
ldr r1, .VRAM_Start
ldr r2, .CPUSET
swi #0xB
mov r2, #0
strb r2, [r3, #0x3]
Finish:
pop {r0-r3}
ExitRightNow:
ldr r1, [r0]
ldr r0, .Frame_Count
push {r3}
ldr r3, .Old_Routine
bx r3
.align 2
.Ani_Table:
.word 0x08YYYYYY
.RAM_Address:
.word 0x020370c0
.VRAM_Animated_Image:
.word 0x06004000
.VRAM_Start:
.word 0x06001D40
.Frame_Count:
.word 0x0000FFFF
.Start_Image: /*An image of the press start, 256 color*/
.word 0x08BAA550
.Blank: /*An blank (completely transparent) image the same size as the press start, 256 color*/
.word 0x08BAA688
.Old_Routine:
.word 0x08078C01
.CPUSET:
.word 0x05000300
.text
.align 2
.thumb
Start:
push {r0-r3}
ldr r3, .RAM_Address
ldr r1, .Ani_Table
ldrb r2, [r3, #0x1]
lsl r2, #0x3
add r1, r2
ldrb r0, [r1, #0x4]
ldrb r2, [r3]
cmp r2, r0
bge LoadFrame
add r2, #0x1
strb r2, [r3]
b PressStart
LoadFrame:
mov r2, #0x0
strb r2, [r3]
ldrb r2, [r1, #0x5]
strb r2, [r3, #0x1]
ldr r0, [r1]
ldr r1, .VRAM_Animated_Image
swi #0x12
Finish:
pop {r0-r3}
ExitRightNow:
ldr r1, [r0]
ldr r0, .Frame_Count
push {r3}
ldr r3, .Old_Routine
bx r3
.align 2
.Ani_Table:
.word 0x08YYYYYY
.RAM_Address:
.word 0x020370c0
.VRAM_Animated_Image:
.word 0x06004000
.Frame_Count:
.word 0x0000FFFF
.Old_Routine:
.word 0x08078C01
.CPUSET:
.word 0x05000300
All credits go to Dathatron.
I will write a more thorough tutorial when I get around to it....
Can anyone tell me what i have to do that i can create a animated titlescreen in Fire red ?
Or can you give me a tutorial please i dont unsterstand this thread!
For anyone who's interested, at '0x078c1c'
there is a 32-bit number (the default value is
'0x00000a8b') which dictates the number of
frames for which the titlescreen is displayed
before resetting. The GBA operates at roughly
60 frames per second and '0xa8b' divided by
60 is 45 so the unedited titlescreen is
displayed for 45 seconds. You can change that
number (remember to reverse it) to lengthen
or shorten the amount of time it takes for the
titlescreen to reset.
This is for Fire Red, by the way.