From d1267b18fc482a6258915558d5d763be694c3585 Mon Sep 17 00:00:00 2001 From: grinvader <> Date: Mon, 18 Jul 2005 18:13:11 +0000 Subject: [PATCH] ZSNES now decodes shift-jis headers correctly... but the font is still limited to 5x5. -_- --- zsnes/src/gui/gui.asm | 317 +++++++++++++++++++++++++++++++++++- zsnes/src/initc.c | 31 ++-- zsnes/src/video/procvid.asm | 48 +++--- 3 files changed, 352 insertions(+), 44 deletions(-) diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 5c1b414b..99dbd3e5 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -3787,7 +3787,7 @@ GUIMousePtr db 50+88,47+88,45+88,43+88,42+88,00,00,00 db 00,00,00,00,00,00,52,00 NEWSYM GUIFontData - db 0,0,0,0,0 + db 0,0,0,0,0; empty space db 01110000b db 10011000b db 10101000b @@ -4173,6 +4173,321 @@ NEWSYM GUIFontData db 10001000b db 10001000b db 11111000b; Maximize (Linux) + db 00000000b + db 00000000b + db 00100000b + db 01010000b + db 00100000b; shw fullstop 0x4E + db 01110000b + db 01000000b + db 01000000b + db 01000000b + db 00000000b; shw left bracket 0x4F + db 00000000b + db 00010000b + db 00010000b + db 00010000b + db 01110000b; shw right bracket 0x50 + db 00000000b + db 00000000b + db 00000000b + db 01000000b + db 00100000b; shw comma 0x51 + db 00000000b + db 00100000b + db 01110000b + db 00100000b + db 00000000b; shw mid-dot 0x52 + db 11111000b + db 00001000b + db 11110000b + db 00100000b + db 11000000b; shw wo 0x53 + db 00000000b + db 11111000b + db 01010000b + db 01100000b + db 01000000b; shw mini a 0x54 + db 00000000b + db 00010000b + db 00100000b + db 11100000b + db 00100000b; shw mini i 0x55 + db 00000000b + db 00100000b + db 11111000b + db 10001000b + db 00110000b; shw mini u 0x56 + db 00000000b + db 00000000b + db 11111000b + db 00100000b + db 11111000b; shw mini e 0x57 + db 00000000b + db 00010000b + db 11111000b + db 00110000b + db 11010000b; shw mini o 0x58 + db 00000000b + db 01000000b + db 11111000b + db 01010000b + db 01000000b; shw mini ya 0x59 + db 00000000b + db 00000000b + db 11110000b + db 00010000b + db 11111000b; shw mini yu 0x5A + db 00000000b + db 11111000b + db 00001000b + db 01111000b + db 11111000b; shw mini yo 0x5B + db 00000000b + db 10101000b + db 10101000b + db 00010000b + db 01100000b; shw mini tsu 0x5C + db 00000000b + db 10000000b + db 01111000b + db 00000000b + db 00000000b; shw prolong 0x5D + db 11111000b + db 00101000b + db 00110000b + db 00100000b + db 11000000b; shw a 0x5E + db 00001000b + db 00110000b + db 11100000b + db 00100000b + db 00100000b; shw i 0x5F + db 00100000b + db 11111000b + db 10001000b + db 00010000b + db 01100000b; shw u 0x60 + db 11111000b + db 00100000b + db 00100000b + db 00100000b + db 11111000b; shw e 0x61 + db 00010000b + db 11111000b + db 00110000b + db 01010000b + db 10010000b; shw o 0x62 + db 01000000b + db 11111000b + db 01001000b + db 01001000b + db 10011000b; shw ka 0x63 + db 00100000b + db 11111000b + db 00100000b + db 11111000b + db 00100000b; shw ki 0x64 + db 01000000b + db 01111000b + db 10001000b + db 00010000b + db 01100000b; shw ku 0x65 + db 01000000b + db 01111000b + db 10010000b + db 00010000b + db 01100000b; shw ke 0x66 ^^ + db 11111000b + db 00001000b + db 00001000b + db 00001000b + db 11111000b; shw ko 0x67 + db 01010000b + db 11111000b + db 01010000b + db 00010000b + db 01100000b; shw sa 0x68 + db 01000000b + db 10101000b + db 01001000b + db 00010000b + db 11100000b; shw shi 0x69 + db 11111000b + db 00001000b + db 00010000b + db 00110000b + db 11001000b; shw su 0x6A + db 01000000b + db 11111000b + db 01010000b + db 01000000b + db 00111000b; shw se 0x6B + db 10001000b + db 01001000b + db 00001000b + db 00010000b + db 01100000b; shw so 0x6C + db 01000000b + db 01111000b + db 11001000b + db 00110000b + db 01100000b; shw ta 0x6D + db 11111000b + db 00100000b + db 11111000b + db 00100000b + db 01000000b; shw chi 0x6E + db 10101000b + db 10101000b + db 00001000b + db 00010000b + db 01100000b; shw tsu 0x6F + db 11111000b + db 00000000b + db 11111000b + db 00100000b + db 11000000b; shw te 0x70 + db 01000000b + db 01000000b + db 01100000b + db 01010000b + db 01000000b; shw to 0x71 + db 00100000b + db 11111000b + db 00100000b + db 00100000b + db 01000000b; shw na 0x72 + db 11110000b + db 00000000b + db 00000000b + db 00000000b + db 11111000b; shw ni 0x73 + db 11111000b + db 00001000b + db 00101000b + db 00010000b + db 011010000b; shw nu 0x74 + db 00100000b + db 11111000b + db 00001000b + db 01110000b + db 10101000b; shw ne 0x75 + db 00001000b + db 00001000b + db 00001000b + db 00010000b + db 01100000b; shw no 0x76 + db 01010000b + db 01010000b + db 01010000b + db 10001000b + db 10001000b; shw ha 0x77 + db 10000000b + db 10011000b + db 11100000b + db 10000000b + db 01111000b; shw hi 0x78 + db 11111000b + db 00001000b + db 00001000b + db 00010000b + db 01100000b; shw hu 0x79 + db 01000000b + db 10100000b + db 10010000b + db 00001000b + db 00000000b; shw he 0x7A + db 00100000b + db 11111000b + db 01110000b + db 10101000b + db 00100000b; shw ho 0x7B + db 11111000b + db 00001000b + db 10010000b + db 01100000b + db 00100000b; shw ma 0x7C + db 11111000b + db 00000000b + db 11111000b + db 00000000b + db 11111000b; shw mi 0x7D + db 00100000b + db 01000000b + db 01000000b + db 10010000b + db 11111000b; shw mu 0x7E + db 00001000b + db 01001000b + db 00110000b + db 00110000b + db 11001000b; shw me 0x7F + db 11111000b + db 00100000b + db 11111000b + db 00100000b + db 00111000b; shw mo 0x80 + db 01000000b + db 11111100b + db 01001000b + db 00100000b + db 0010000b; shw ya 0x81 + db 11110000b + db 00010000b + db 00010000b + db 00010000b + db 11111000b; shw yu 0x82 + db 11111000b + db 00001000b + db 11111000b + db 00001000b + db 11111000b; shw yo 0x83 + db 11111000b + db 00000000b + db 11111000b + db 00010000b + db 01100000b; shw ra 0x84 + db 10001000b + db 10001000b + db 10001000b + db 00010000b + db 01100000b; shw ri 0x85 + db 01100000b + db 01100000b + db 01101000b + db 01101000b + db 10110000b; shw ru 0x86 + db 10000000b + db 10000000b + db 10001000b + db 10001000b + db 11110000b; shw re 0x87 + db 11111000b + db 10001000b + db 10001000b + db 10001000b + db 11111000b; shw ro 0x88 + db 11111000b + db 10001000b + db 00001000b + db 00010000b + db 01100000b; shw wa 0x89 + db 10000000b + db 01001000b + db 00001000b + db 00010000b + db 11100000b; shw n 0x8A + db 10100000b + db 10100000b + db 00000000b + db 00000000b + db 00000000b; shw voiced 0x8B + db 01000000b + db 10100000b + db 01000000b + db 00000000b + db 00000000b; shw halfvoiced 0x8C ; 189 .. 220 GUIIconDataClose: diff --git a/zsnes/src/initc.c b/zsnes/src/initc.c index 8a0558c7..b8c2fb5a 100755 --- a/zsnes/src/initc.c +++ b/zsnes/src/initc.c @@ -721,7 +721,6 @@ void DumpROMLoadInfo() fputs("\n", fp); fclose(fp); } - } @@ -1858,21 +1857,21 @@ unsigned int showinfogui() memcpy (CSStatus+29, "NORMAL ", 8); - if (SA1Enable) { memcpy (CSStatus+29, "SA-1 ", 8); } - if (RTCEnable) { memcpy (CSStatus+29, "RTC ", 8); } - if (SPC7110Enable) { memcpy (CSStatus+29, "SPC7110 ", 8); } - if (SFXEnable) { memcpy (CSStatus+29, "SUPER FX", 8); } - if (C4Enable) { memcpy (CSStatus+29, "C4 ", 8); } - if (DSP1Enable) { memcpy (CSStatus+29, "DSP-1 ", 8); } - if (DSP2Enable) { memcpy (CSStatus+29, "DSP-2 ", 8); } - if (DSP3Enable) { memcpy (CSStatus+29, "DSP-3 ", 8); } - if (DSP4Enable) { memcpy (CSStatus+29, "DSP-4 ", 8); } - if (SDD1Enable) { memcpy (CSStatus+29, "S-DD1 ", 8); } - if (OBCEnable) { memcpy (CSStatus+29, "OBC1 ", 8); } - if (SETAEnable) { memcpy (CSStatus+29, "SETA DSP", 8); } - if (ST18Enable) { memcpy (CSStatus+29, "ST018 ", 8); } - if (SGBEnable) { memcpy (CSStatus+29, "SGB ", 8); } - if (BSEnable) { memcpy (CSStatus+29, "BROADCST", 8); + if (SA1Enable) { memcpy (CSStatus+29, "SA-1 ", 8); } + if (RTCEnable) { memcpy (CSStatus+29, "RTC ", 8); } + if (SPC7110Enable) { memcpy (CSStatus+29, "SPC7110 ", 8); } + if (SFXEnable) { memcpy (CSStatus+29, "SUPER FX", 8); } + if (C4Enable) { memcpy (CSStatus+29, "C4 ", 8); } + if (DSP1Enable) { memcpy (CSStatus+29, "DSP-1 ", 8); } + if (DSP2Enable) { memcpy (CSStatus+29, "DSP-2 ", 8); } + if (DSP3Enable) { memcpy (CSStatus+29, "DSP-3 ", 8); } + if (DSP4Enable) { memcpy (CSStatus+29, "DSP-4 ", 8); } + if (SDD1Enable) { memcpy (CSStatus+29, "S-DD1 ", 8); } + if (OBCEnable) { memcpy (CSStatus+29, "OBC1 ", 8); } + if (SETAEnable) { memcpy (CSStatus+29, "SETA DSP", 8); } + if (ST18Enable) { memcpy (CSStatus+29, "ST018 ", 8); } + if (SGBEnable) { memcpy (CSStatus+29, "SGB ", 8); } + if (BSEnable) { memcpy (CSStatus+29, "BROADCST", 8); // dummy out date so CRC32 matches ROM[infoloc + 22] = 0x42; ROM[infoloc + 23] = 0x00; diff --git a/zsnes/src/video/procvid.asm b/zsnes/src/video/procvid.asm index 6ee0c5a5..f44cf5d0 100644 --- a/zsnes/src/video/procvid.asm +++ b/zsnes/src/video/procvid.asm @@ -480,44 +480,44 @@ NEWSYM ASCII2Font db 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh,20h,21h,22h,23h,24h,43h,00h,44h,27h,00h db 0Dh,1Fh,0Fh,0Bh,0Bh,0Bh,0Bh,0Dh,0Fh,0Fh,0Fh,13h,13h,13h,0Bh,0Bh db 0Fh,0Bh,0Bh,19h,19h,19h,1Fh,1Fh,23h,19h,1Fh,0Dh,10h,23h,1Ah,10h - db 0Bh,13h,19h,1Fh,18h,18h,0Bh,19h,00h,00h,00h,00h,00h,00h,00h,00h - db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h - db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h - db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h + db 0Bh,4Eh,4Fh,50h,51h,52h,53h,54h,55h,56h,57h,58h,59h,5Ah,5Bh,5Ch + db 5Dh,5Eh,5Fh,60h,61h,62h,63h,64h,65h,66h,67h,68h,69h,6Ah,6Bh,6Ch + db 6Dh,6Eh,6Fh,70h,71h,72h,73h,74h,75h,76h,77h,78h,79h,7Ah,7Bh,7Ch + db 7Dh,7Eh,7Fh,80h,81h,82h,83h,84h,85h,86h,87h,88h,89h,8Ah,8Bh,8Ch db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h db 00h,00h,00h,00h,00h,00h,00h,4Dh,4Ch,4Bh,4Ah,45h,46h,47h,48h,49h NEWSYM FontData db 0,0,0,0,0,0,0,0 - db 01111100b,11000110b,11001110b,11010110b ; 0, 1 + db 01111100b,11000110b,11001110b,11010110b ; 0, 01 db 11100110b,11000110b,01111100b,00000000b - db 00011000b,00111000b,01111000b,00011000b ; 1, 2 + db 00011000b,00111000b,01111000b,00011000b ; 1, 02 db 00011000b,00011000b,01111110b,00000000b - db 01111100b,11000110b,00001100b,00011000b ; 2, 3 + db 01111100b,11000110b,00001100b,00011000b ; 2, 03 db 00110000b,01100110b,11111110b,00000000b - db 01111100b,11000110b,00000110b,00111100b ; 3, 4 + db 01111100b,11000110b,00000110b,00111100b ; 3, 04 db 00000110b,11000110b,01111100b,00000000b - db 00111100b,01101100b,11001100b,11111110b ; 4, 5 + db 00111100b,01101100b,11001100b,11111110b ; 4, 05 db 00001100b,00001100b,00001100b,00000000b - db 11111110b,11000000b,11000000b,11111100b ; 5, 6 + db 11111110b,11000000b,11000000b,11111100b ; 5, 06 db 00000110b,11000110b,01111100b,00000000b - db 00111100b,01100000b,11000000b,11111100b ; 6, 7 + db 00111100b,01100000b,11000000b,11111100b ; 6, 07 db 11000110b,11000110b,01111100b,00000000b - db 11111110b,11000110b,00000110b,00001100b ; 7, 8 + db 11111110b,11000110b,00000110b,00001100b ; 7, 08 db 00011000b,00011000b,00011000b,00000000b - db 01111100b,11000110b,11000110b,01111100b ; 8, 9 + db 01111100b,11000110b,11000110b,01111100b ; 8, 09 db 11000110b,11000110b,01111100b,00000000b - db 01111100b,11000110b,11000110b,01111110b ; 9, A + db 01111100b,11000110b,11000110b,01111110b ; 9, 0A db 00000110b,11000110b,01111100b,00000000b - db 00111000b,01101100b,11000110b,11111110b ; A, B + db 00111000b,01101100b,11000110b,11111110b ; A, 0B db 11000110b,11000110b,11000110b,00000000b - db 11111100b,11000110b,11000110b,11111100b ; B, C + db 11111100b,11000110b,11000110b,11111100b ; B, 0C db 11000110b,11000110b,11111100b,00000000b - db 01111100b,11000110b,11000000b,11000000b ; C, D + db 01111100b,11000110b,11000000b,11000000b ; C, 0D db 11000000b,11000110b,01111100b,00000000b - db 11111100b,11000110b,11000110b,11000110b ; D, E + db 11111100b,11000110b,11000110b,11000110b ; D, 0E db 11000110b,11000110b,11111100b,00000000b - db 11111110b,11000000b,11000000b,11111000b ; E, F + db 11111110b,11000000b,11000000b,11111000b ; E, 0F db 11000000b,11000000b,11111110b,00000000b db 11111110b,11000000b,11000000b,11111000b ; F, 10 db 11000000b,11000000b,11000000b,00000000b @@ -581,14 +581,8 @@ NEWSYM FontData db 00001000b,00001000b,00111000b,00000000b db 00000000b,00011000b,00011000b,00000000b ; :, 2E db 00011000b,00011000b,00000000b,00000000b - db 00011000b - db 00100100b - db 00011000b - db 00111010b ; &, 2F - db 01000100b - db 01000110b - db 00111010b - db 00000000b + db 00011000b,00100100b,00011000b,00111010b ; &, 2F + db 01000100b,01000110b,00111010b,00000000b ; Arrow, 30 ; #, 31 (, 3A {, 43 ; =, 32 ), 3B }, 44