- 97
- Posts
- 16
- Years
- Seen Oct 3, 2016
hello to everybody, most people use writebytetooffset to do a simple thing that it is:
[align=center]
[/align]
There are more wbto, specially to change the palette ¿no?
Well i made a routine that do it, that is the next:
And after that, how to push it normal.
[align=center]
![[PokeCommunity.com] Routine of the "thinking event" [PokeCommunity.com] Routine of the "thinking event"](https://i.imgur.com/GUDpjAs.png)
There are more wbto, specially to change the palette ¿no?
Well i made a routine that do it, that is the next:
FOR RUBY:
Code:
.align 2
.thumb
main:
push {r0-r2,lr}
ldr r0,.dispcnt
ldrh r1, .dispcntv
strh r1,[r0]
ldr r0, .textbox_pos
mov r1, #0x5f
strb r1,[r0]
ldr r0, .textbox_data
ldrh r1, .ff
strh r1, [r0]
mov r2, #0x0
b bucle
bucle:
add r2, #0x2
mov r1, #0x00
strh r1, [r0, r2]
cmp r2, #0x1C
beq end
b bucle
end:
pop {r0-r2,pc}
.align 2
.textbox_data: .word 0x0202f0aa
.ff: .word 0x0000ffff
.dispcnt: .word 0x04000000
.dispcntv: .word 0x00006161
.textbox_pos: .word 0x04000012
Code:
.align 2
.thumb
main:
push {r0-r3,lr}
ldr r0, .dispcnt
ldr r1, .dispcntv
strh r1,[r0]
ldr r0, .textbox_pos
mov r1, #0x0
strb r1,[r0]
mov r2, #0x0
ldr r0, .textbox
ldr r1, .textboxv
b change
change:
ldr r3,[r1] @valor xxxx xxxx r1
str r3,[r0,r2]
add r2,#0x2
add r1,#0x2
cmp r2, #0x1c
beq fin
b change
fin:
pop {r0-r3,pc}
.align 2
.textbox: .word 0x0202f0aa
.dispcnt: .word 0x04000000
.dispcntv: .word 0x00001F70
.textboxv: .word 0x0202ECA8
.textbox_pos: .word 0x04000012
FOR FR:
First of all, you need to paste this routine in some free space in your rom.
Here compilated:
Then, you need to search for 32 bytes of free space, to copy this new colours of the textbox, and paste the offset in the above XX XX XX
when you finish it, you need to edit the load_palettes_textbox routine, that is in the next offset: 08150448
When you are here, you need to paste this:
Where XX XX XX is the offset+1 where you paste the routine.
Finally, you need a simple script like that:
As you can see, to determine what type of textbox you will load, we will use a setvar 0x8004. (0x1 for "thinkin events", and 0x0 to back normal..)
Also, if you know asm or are learing, this routine allow to you, edit and add new properties to the default textbox, for example semitransparents textboxes.
To end, i only need that if you have some bug, notific me.
Credits to eing if you use that.
First of all, you need to paste this routine in some free space in your rom.
Code:
.align 2
.thumb
main:
push {r0,r3}
ldr r0, .var
ldrh r0, [r0,#0x0]
cmp r0, #0x0
beq normal
ldr r0,.dispcnt
ldrh r3, .dispcntv
strh r3,[r0]
ldr r0, .textbox_pos
mov r3, #0x5f
strb r3,[r0]
pop {r0,r3}
ldr r1, .black_box
add r0,r0,r1
pop {r1}
bx r1
normal:
ldr r0,.dispcnt
ldrh r3, .dispcntvn
strh r3,[r0]
ldr r0, .textbox_pos
mov r3, #0x0
strb r3,[r0]
pop {r0,r3}
ldr r1, .normal_msgbox
add r0,r0,r1
pop {r1}
bx r1
.align 2
.var: .word 0x020370c0 @var 0x8004
.dispcnt: .word 0x04000000
.dispcntv: .word 0x00006161
.dispcntvn: .word 0x00007f60
.textbox_pos: .word 0x04000012
.normal_msgbox: .word 0x08471dec
.black_box: .word 0x089F3A10
Code:
09 B4 0D 48 00 88 00 28 0A D0 0C 48 0C 4B 03 80 0D 48 5F 23 03 70 09 BC 0D 49 40 18 02 BC 08 47 06 48 08 4B 03 80 08 48 00 23 03 70 09 BC 07 49 40 18 02 BC 08 47 C0 46 C0 70 03 02 00 00 00 04 61 61 00 00 60 7F 00 00 12 00 00 04 EC 1D 47 08 XX XX XX 08
Code:
2E 53 00 00 FF 7F 00 00 FF 7F FF 7F FF 7F FF 7F FF 7F FF 00 00 00 00 00 00 00 00 00 00 00 00 00
When you are here, you need to paste this:
Code:
00 4F 38 47 XX XX XX 08
Finally, you need a simple script like that:
Code:
#org 0xoffset
setvar 0x8004 0x1
msgbox 0x8offset
callstd 0x6
setvar 0x8004 0x0
callasm 0xyour_routine
end
Also, if you know asm or are learing, this routine allow to you, edit and add new properties to the default textbox, for example semitransparents textboxes.
To end, i only need that if you have some bug, notific me.
Credits to eing if you use that.
Last edited: