diff --git a/compiled/vwf.c b/compiled/vwf.c index 03a89eb..1931501 100644 --- a/compiled/vwf.c +++ b/compiled/vwf.c @@ -159,8 +159,8 @@ byte print_character_with_callback(byte chr, int x, int y, int font, int foregro int print_window_header_string(int *dest, byte *str, int x, int y) { - int pixelX = 0; - int *destOffset = dest + (x + (y * 32)) * 8; + int pixelX = x & 7; + int *destOffset = dest + ((x & ~7) + (y * 32)); for (;;) { @@ -177,7 +177,7 @@ int print_window_header_string(int *dest, byte *str, int x, int y) pixelX += print_character_to_ram(decode_character(*str++), destOffset, pixelX, 4, 0xF); } - return (pixelX + 7) >> 3; + return pixelX - (x & 7); } void weld_entry(WINDOW *window, byte *str) diff --git a/m2-hack.asm b/m2-hack.asm index f2ea7c4..626cb7e 100644 --- a/m2-hack.asm +++ b/m2-hack.asm @@ -382,7 +382,14 @@ b 0x80C9788 // CAB90 hacks (print window header string) //--------------------------------------------------------- -.org 0x80CAB90 :: push {lr} :: bl print_window_header_string :: pop {pc} +.org 0x80CAB90 +push {lr} +lsl r2,r2,3 +lsl r3,r3,3 // tiles to pixels +bl print_window_header_string +add r0,7 +lsr r0,r0,3 // pixels to tiles +pop {pc} //--------------------------------------------------------- // CABF8 hacks (print checkerboard string)