28001-R&FR|_ASM_|_Msgbox_Efecto_"pensamientos"_y_efecto_default
#15
eing 12479
@Jotta @PaladinBuceador @BLAx @Sayer301 @Dani_SR_17 @Echoriver @Д£EXI§ @Kyurem Beltza

Después de citaros a cada uno de vosotros, os dire que esta tarde estaba tan rallado con una rutina de rubí que no lograba sacar, que me pasé a FR.
Añadiendole que @Sayer301 se puso pesado(?)

Bien, el caso es que la rutina de los pensamientos y demás, está finalizada.
Es la siguiente:

.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
La dejo compilada:
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 10 3A 9F 08Si solo copian y pegan, en el offset: 9F 3A 10, habrán de copiar los nuevos colores del textbox. (Los que se usarán para el efecto pensamiento), que son los siguientes:

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*Nota: Si el espacio, donde van los nuevos colores está ocupada por algo vuestro, simplemente copien los colores en otro lado, y en la rutina cambien el offset de "black_box", por vuestro nuevo offset. (Y si usan ya la compilada cambiar 10 3a 9f 08 por el offset donde se hayen vuestros colores)

Luego, despues de tener los colores del textbox acabados, y la rutina compilada, hemos de ir al offset siguiente: 08150448

Ahí, habremos de colocar los siguientes valores:
00 4F 38 47 XX XX XX 08

(Donde XX XX XX será el offset donde colocasteis la rutina+1)

Por último, el script sería así:

#org 0xoffset
setvar 0x8004 0x1
msgbox 0x8offset
callstd 0x6
setvar 0x8004 0x0
callasm 0xoffset_rutina+1
CUando la variable esté a 1, se verá efecto pensamientos, si no pues normal.
(Y si, luego han de refrescar la pantalla, si no se continuará viendo negro. Cosas del fr.. ^^)

Ahora para los aprendices de ASM, o que saben asm directamente, pueden tener más efectos de textbox, modificando esta rutina. (Por ejemplo efecto invisble..)

Solo queda decir, que cualquier bug, notificarlo, y si la usais debeis dar creditos a eing.