Mother2GbaTranslation/m2-vwf.asm

64 lines
1.4 KiB
NASM

//=============================================================================
// void print_string_hlight_pixels(WINDOW* window, char* str, int x,
// int y, bool highlight)
// In:
// r0: window
// r1: address of string to print
// r2: x (pixel)
// r3: y (pixel)
// sp: highlight
// Out:
// r0: number of characters printed
// r1: number of pixels printed
//=============================================================================
print_string_hlight_pixels:
// Copied from C96F0
// Basically it's the exact same subroutine, only in pixels instead of tiles
push {r4-r7,lr}
mov r7,r8
push {r7}
mov r6,r1
ldr r1,[sp,0x18]
lsl r1,r1,0x10
mov r7,0
ldr r5,=0x3005228
ldrh r4,[r5,0]
lsl r4,r4,0x10
asr r4,r4,0x1C
mov r8,r4
lsr r4,r1,0x10
mov r12,r4
asr r1,r1,0x10
add r1,r8
lsl r1,r1,0xC
strh r1,[r5,0]
ldrh r1,[r0,0x22]
lsl r1,r1,3
add r1,r1,r2
ldrh r2,[r0,0x24]
lsl r2,r2,3
add r2,r2,r3
mov r0,r6
bl print_string
lsr r1,r0,16
lsl r0,r0,16
lsr r7,r0,16
ldrh r0,[r5,0]
lsl r0,r0,0x10
asr r0,r0,0x1C
mov r4,r12
lsl r3,r4,0x10
asr r3,r3,0x10
sub r0,r0,r3
lsl r0,r0,0xC
strh r0,[r5,0]
lsl r0,r7,0x10
asr r0,r0,0x10
pop {r3}
mov r8,r3
pop {r4-r7}
pop {r2}
bx r2
.pool