if you have the ordinary VBA, copy it's .ini file and paste the same directory as the debugger.
Hmm...how would I do that excatly? And what's the ordinary VBA?
if you have the ordinary VBA, copy it's .ini file and paste the same directory as the debugger.
here's a default ini file for the debugger, just save it the same directory as your debugger.Hmm...how would I do that excatly? And what's the ordinary VBA?
.VAR:
.word 0x020270B6 + (0x800D * 2)
+ (0x800D * 2)
I was wondering, is the
in the ASM code in lesson 1 for the buffer part of the script? I don't know since I'm still new to assembly and scripting. The main reason I'm asking is because I'd like to know how I can modify the .word portion. Additionally, what is theCode:.VAR: .word 0x020270B6 + (0x800D * 2)
for?Code:+ (0x800D * 2)
Edit: One thing I forgot to mention: I'm hacking Fire Red.
I found out that 0x800D is the buffer (yay, scripting tutorials), but what's the times 2 thing for?
Also, what does address 0x020270B6 do (in Fire Red)?
#dynamic 0x800000
#org @start
callasm YourOffset
buffernumber 0x0 LASTRESULT
msgbox @secret 0x2
end
#org @secret
= Sshh! I'll tell you a secret[.]\nYour Secret ID is [buffer1]!
.text
.align 2
.thumb
.thumb_func
.global lesson1
main:
push {r0-r1, lr}
ldr r0, .PLAYER_DATA
ldr r0, [r0]
ldr r1, .VAR
ldrh r0, [r0, #0xA]
strh r0, [r1]
ldr r0, .PLAYER_DATA
ldr r0, [r0]
ldrh r0, [r0, #0xC]
strh r0, [r1, #0x2]
pop {r0-r1, pc}
.align 2
.PLAYER_DATA:
.word 0x03005D90
.VAR:
.word 0x020275D6 + (0x800D * 2)
Hi, how exactly the extended script looks like regarding to the Trainer ID + Secret ID in the 1st ASM Lesson? I just manage to get the Trainer ID to show up but not the Secret ID.
I'll just recopy the script part from the 1st Lesson so anyone of you don't have to look back:
Spoiler:Code:#dynamic 0x800000 #org @start callasm YourOffset buffernumber 0x0 LASTRESULT msgbox @secret 0x2 end #org @secret = Sshh! I'll tell you a secret[.]\nYour Secret ID is [buffer1]!
and the ASM that I'm based on (Emerald):
Spoiler:Code:.text .align 2 .thumb .thumb_func .global lesson1 main: push {r0-r1, lr} ldr r0, .PLAYER_DATA ldr r0, [r0] ldr r1, .VAR ldrh r0, [r0, #0xA] strh r0, [r1] ldr r0, .PLAYER_DATA ldr r0, [r0] ldrh r0, [r0, #0xC] strh r0, [r1, #0x2] pop {r0-r1, pc} .align 2 .PLAYER_DATA: .word 0x03005D90 .VAR: .word 0x020275D6 + (0x800D * 2)
And, do you set the [buffer1] twice in the strings area or split it to something like [buffer1] and [buffer2]?
I really like to know how it's done because the extended script isn't covered in any of the tutorials (only the crucial asm part was covered in the end of 2nd ASM Lesson).
#dynamic 0x800000
#org @start
callasm YourOffset
buffernumber 0x0 0x800D
buffernumber 0x1 0x800E
msgbox @secret 0x2
end
#org @secret
= Sshh! I'll tell you a secret[.]\nYour Secret ID is [buffer1]! Also, your Trainer ID is [buffer2].
#dynamic 0x800000
#org @start
callasm YourOffset
buffernumber 0x0 LASTRESULT
buffernumber 0x1 LASTRESULT
msgbox @secret 0x2
end
#org @secret
= [buffer1] and [buffer2].
So, yes, you would use 'buffer2'. Just remember that you have to buffer the second number and use '0x01' as the first parameter. It's a little counterintuitive because the number stored in 'buffer 0x0' is accessed via 'buffer1' and the number stored in 'buffer 0x1' is accessed via 'buffer2' but you'll get the hang of it. Also note that since you stored the second number at 'r0 + #0x02', the number would be contained in the variable after LASTRESULT (0x800D), i.e., 0x800E.
This has cleared a few things up for me thanks ^.^, But just a question, do you actually need ASM to script, or can I just never go near ASM and just use XSE to compile scripts without it?