Quote:
Originally Posted by RichterSnipes
Ooh, really? That would be great! I tried making a custom item with JPAN's hacked engine late into my work, but I could never get it right. Every time I tried using it, the game froze. I'd love to be able to get this thing working.
Just out of curiosity, this code will work for making a Key Item, right?
And don't worry, people. I'll give you access to it right at the beginning of the game.
|
Yes, of course it does! That's a major difference between his and mines. Mines works as a key item! However, I do have to admit, mines is based off his, so I can't take full credit. I just worked out how to run it without his engine.
Quote:
Originally Posted by RichterSnipes
It's very humbling to know that I could please someone as accomplished at PokéCommunity as you, BTW.
|
Don't do that. I hate it when people treat me like I'm better than them!
Insert this following code and take note of it's location. It's important for later.
Code:
.text
.align 2
.thumb
.thumb_func
.global gbpitemroutine2
main:
push {r4,lr}
ldr r0, return
bx r0
.align
return: .word 0x080A1323
Now assemble and insert the following one too. Remember to take note of the location of the routine you just assembled. You'll need it before assembling the next routine.
Code:
.text
.align 2
.thumb
.thumb_func
.global gbpitemroutine
main:
push {r4,r5,lr}
lsl r0, r0, #0x18
lsr r5, r0, #0x18
ldr r0, place
ldr r1, place2
str r0, [r1, #0x0]
ldr r0, script
bl scriptexecuter
ldr r1, scriptflagset
mov r0, #0x1
strb r0, [r1, #0x0]
add r0, r5, #0x0
bl bagexiter
pop {r4,r5,pc}
scriptexecuter: ldr r1, address
bx r1
bagexiter: ldr r1, exit
bx r1
.align
script: .word 0x08FFFFFF
scriptflagset: .word 0x03000F9C
address: .word 0x08069AE5
exit: .word 0x080A103D
place: .word 0x08ZZZZZZ
place2: .word 0x02039998
Remember that earlier routine you assembled? Make place: .word 0x08ZZZZZZ point to it, adding one for thumb mode of course! Remember to make the script point to a valid GBP script also.
Assemble and insert. Note the address down. This is the routine the item will call later to execute a script. (Note how similar it is to JPAN's?)
Job done! Now you just create the item, and make the field behaviour point to that item routine. Easy, huh?
ETA:
http://www.youtube.com/watch?v=6AlWk9pWr4
Have a listen to that. It's your version of the main square instruments combined with a custom bass track I made. Sounds closer, doesn't it?