Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 030449A8 set when assigning tracks for Edit Cup MFS header 1
- 0304D918 set when assigning tracks for Edit Cup MFS header 1
- 0311BC28 set when assigning track for Edit Cup 1
- 0311EBF8 set when assigning track for Edit Cup 6
- filetable at 0x72030 -> 0x116C2D8
- 00524D60 00527AF0 03F74500 03F77290 0x2D90 `MML.tbl
- 00528730 00F67900 000010E8 00A402B8 0xA3F1D0 `MML.trk
- 00527AF0 00528730 03F77290 03F77ED0 0xC40 `MML.hdr
- 002787F0 0027F200 03F32E50 03F39860 0x6A10 `N-logo.c16
- 002B9EA0 00524920 00EF6B48 011615C8 0x26AA80 **object_resources
- 002AD1E0 002B9EA0 03F67840 03F74500 0xCCC0 `track data
- 002747F0 002787F0 03F2EE50 03F32E50 0x4000 `Building 1 image bank and super racer icons
- 0017B1E0 0017B960 03E35840 03E35FC0 0x780 `track_display_lists.bin
- 001B8550 001E23F0 03E72BB0 03E9CA50 0x29EA0 `race_resources.bin
- 001E23F0 0022B0A0 03E9CA50 03EE5700 0x48CB0 `wreck.obj
- 0017B960 001B8550 03E35FC0 03E72BB0 0x3CBF0 `car_resources.bin
- 00145B70 001535B0 03E13280 03E20CC0 0xDA40 `Shared editor resources
- 001535B0 00166660 00000000 00000000 0x137B0 Old track editor resources
- 0027F200 002AD1E0 03F39860 03F67840 0x2DFE0 `
- 0022B0A0 00235130 03EE5700 03EEF790 0xA090 `
- 0016C8A0 0017B1E0 03E26F00 03E35840 0xE940 `track_resources.bin
- 00235130 00239A80 03EEF790 03EF40E0 0x4950 `
- 00239A80 0023EC50 03EF40E0 03EF92B0 0x51D0 `
- 0023EC50 00243D90 03EF92B0 03EFE3F0 0x5140 `
- 00243D90 0024A270 03EFE3F0 03F048D0 0x64E0 `
- 0024A270 002507F0 03F048D0 03F0AE50 0x6580 `
- 002507F0 00255100 03F0AE50 03F0F760 0x4910 `
- 00255100 00259600 03F0F760 03F13C60 0x4500 `
- 00259600 0025F360 03F13C60 03F199C0 0x5D60 `
- 0025F360 00266C20 03F199C0 03F21280 0x78C0 `
- 00266C20 0026D780 03F21280 03F27DE0 0x6B60 `
- 0026D780 002738A0 03F27DE0 03F2DF00 0x6120 `
- 002738A0 002747F0 03F2DF00 03F2EE50 0xF50 `
- 00166660 0016C8A0 03E20CC0 03E26F00 0x6240 `car editor resources
- Move music.ctl to 0xEB9F18 LBA 0357/033F (0xCF6E80 to set LBA)
- system code (0xA4060) to LBA 02D1 0xC778B8, 0x1BC970
- move MFS reset to LBA 2F7, preferably done as "cart data". 0xD1B918
- +_+
- Object table offsets that move!
- english japanese
- 00110000 0F000004 013000F0 00014A5D 00110000 0F000004 013000F0 00014A5D title 1
- 00110000 0F014A68 014000F0 000118DB 00110000 0F014A68 014000F0 000118DB title 2
- 00110000 0F026348 014000F0 00009E0A 00110000 0F026348 014000F0 00009E0A title 3
- 00120000 0F030158 00A00041 000026C0 00120000 0F030158 00A00041 0000291A F-Zero X logo
- 00120000 0F033328 00500028 00000389 00120000 0F033998 00500028 00000389 PUSH START
- 00140000 0F03281C 00A00020 00000259 00140000 0F032A78 00A00020 00000504 No controller
- 00140000 0F032A7C 00A00020 000004EA 00140000 0F032F80 00A00020 000004FF Is the memory expansion pak inserted correctly?
- 00140000 0F032F6C 00A00020 000003B7 00140000 0F033484 00A00020 0000050F Did you insert the correct disk?
- 00110000 0F0336B8 0080000E 000003EC 00110000 0F033D28 0080000E 000003EC 1998 Nintendo
- english japanese pilots
- 00110000 0F033AB4 00B400F5 00004AF4 00110000 0F034124 00B400F5 00004AF4
- 00110000 0F0385AC 00B400F5 00006604 00110000 0F038C1C 00B400F5 00006604
- 00110000 0F03EBB4 00B400F5 00005573 00110000 0F03F224 00B400F5 00005573
- 00110000 0F04412C 00B400F5 000076B4 00110000 0F04479C 00B400F5 000076B4
- 00110000 0F04B7E4 00B400F5 000067F2 00110000 0F04BE54 00B400F5 000067F2
- 00110000 0F051FDC 00B400F5 000063BB 00110000 0F05264C 00B400F5 000063BB
- 00110000 0F05839C 00B400F5 00005EE9 00110000 0F058A0C 00B400F5 00005EE9
- 00110000 0F05E28C 00B400F5 00007184 00110000 0F05E8FC 00B400F5 00007184
- 00110000 0F065414 00B400F5 00005666 00110000 0F065A84 00B400F5 00005666
- 00110000 0F06AA80 00B400F5 00005A49 00110000 0F06B0F0 00B400F5 00005A49
- 00110000 0F0704D0 00B400F5 000055C1 00110000 0F070B40 00B400F5 000055C1
- 00110000 0F075A98 00B400F5 0000594F 00110000 0F076108 00B400F5 0000594F
- 00110000 0F07B3EC 00B400F5 00007A7A 00110000 0F07BA5C 00B400F5 00007A7A
- 00110000 0F082E6C 00B400F5 00006444 00110000 0F0834DC 00B400F5 00006444
- 00110000 0F0892B4 00B400F5 0000623A 00110000 0F089924 00B400F5 0000623A
- 00110000 0F08F4F4 00B400F5 00006F78 00110000 0F08FB64 00B400F5 00006F78
- 00110000 0F096470 00B400F5 00005C56 00110000 0F096AE0 00B400F5 00005C56
- 00110000 0F09C0CC 00B400F5 000059E6 00110000 0F09C73C 00B400F5 000059E6
- 00110000 0F0A1AB8 00B400F5 00005B58 00110000 0F0A2128 00B400F5 00005B58
- 00110000 0F0A7614 00B400F5 00006B2D 00110000 0F0A7C84 00B400F5 00006B2D
- 00110000 0F0AE148 00B400F5 00004E48 00110000 0F0AE7B8 00B400F5 00004E48
- 00110000 0F0B2F94 00B400F5 00006D92 00110000 0F0B3604 00B400F5 00006D92
- 00110000 0F0B9D2C 00B400F5 00005AB3 00110000 0F0BA39C 00B400F5 00005AB3
- 00110000 0F0BF7E4 00B400F5 00005E3B 00110000 0F0BFE54 00B400F5 00005E3B
- 00110000 0F0C5624 00B400F5 00006EAC 00110000 0F0C5C94 00B400F5 00006EAC
- 00110000 0F0CC4D4 00B400F5 00004D32 00110000 0F0CCB44 00B400F5 00004D32
- 00110000 0F0D120C 00B400F5 0000603A 00110000 0F0D187C 00B400F5 0000603A
- 00110000 0F0D724C 00B400F5 000060B6 00110000 0F0D78BC 00B400F5 000060B6
- 00110000 0F0DD308 00B400F5 00005534 00110000 0F0DD978 00B400F5 00005534
- 00110000 0F0E2840 00B400F5 00005DA7 00110000 0F0E2EB0 00B400F5 00005DA7
- 00110000 0F0E85EC 00B400F5 00005CB2 00110000 0F0E8C5C 00B400F5 00005CB2
- 00110000 0F0EE2A4 00B400F5 00006590 00110000 0F0EE914 00B400F5 00006590
- 00110000 0F0F4838 00B400F5 00005022 00110000 0F0F4EA8 00B400F5 00005022
- 00110000 0F0F9860 00B400F5 000058F4 00110000 0F0F9ED0 00B400F5 000058F4
- english japanese
- 00110000 0F0FF164 00280028 0000077F 00110000 0F0FF7D4 00280028 0000077F
- 00110000 0F0FF8E8 00280028 000008AF 00110000 0F0FFF58 00280028 000008AF
- 00110000 0F10019C 00280028 00000875 00110000 0F10080C 00280028 00000875
- 00110000 0F100A18 00280028 00000935 00110000 0F101088 00280028 00000935
- 00110000 0F101354 00280028 000008EB 00110000 0F1019C4 00280028 000008EB
- 00110000 0F101C44 00280028 00000908 00110000 0F1022B4 00280028 00000908
- 00110000 0F102550 00280028 00000919 00110000 0F102BC0 00280028 00000919
- 00110000 0F102E70 00280028 00000989 00110000 0F1034E0 00280028 00000989
- 00110000 0F103800 00280028 0000082D 00110000 0F103E70 00280028 0000082D
- 00110000 0F104034 00280028 000008F8 00110000 0F1046A4 00280028 000008F8
- 00110000 0F104930 00280028 00000908 00110000 0F104FA0 00280028 00000908
- 00110000 0F10523C 00280028 000008EE 00110000 0F1058AC 00280028 000008EE
- 00110000 0F105B30 00280028 000009AD 00110000 0F1061A0 00280028 000009AD
- 00110000 0F1064E4 00280028 00000923 00110000 0F106B54 00280028 00000923
- 00110000 0F106E0C 00280028 0000093A 00110000 0F10747C 00280028 0000093A
- 00110000 0F10774C 00280028 0000097F 00110000 0F107DBC 00280028 0000097F
- 00110000 0F1080D0 00280028 00000A3D 00110000 0F108740 00280028 00000A3D
- 00110000 0F108B14 00280028 000008AB 00110000 0F109184 00280028 000008AB
- 00110000 0F1093C4 00280028 000008A0 00110000 0F109A34 00280028 000008A0
- 00110000 0F109C68 00280028 0000089B 00110000 0F10A2D8 00280028 0000089B
- 00110000 0F10A508 00280028 000006D1 00110000 0F10AB78 00280028 000006D1
- 00110000 0F10ABE0 00280028 00000958 00110000 0F10B250 00280028 00000958
- 00110000 0F10B53C 00280028 000008D8 00110000 0F10BBAC 00280028 000008D8
- 00110000 0F10BE18 00280028 000008E8 00110000 0F10C488 00280028 000008E8
- 00110000 0F10C704 00280028 00000A0A 00110000 0F10CD74 00280028 00000A0A
- 00110000 0F10D114 00280028 00000797 00110000 0F10D784 00280028 00000797
- 00110000 0F10D8B0 00280028 00000896 00110000 0F10DF20 00280028 00000896
- 00110000 0F10E14C 00280028 000008BC 00110000 0F10E7BC 00280028 000008BC
- 00110000 0F10EA0C 00280028 00000879 00110000 0F10F07C 00280028 00000879
- 00110000 0F10F28C 00280028 000007AB 00110000 0F10F8FC 00280028 000007AB
- 00110000 0F10FA3C 00280028 00000859 00110000 0F1100AC 00280028 00000859
- 00110000 0F11029C 00280028 00000813 00110000 0F11090C 00280028 00000813
- 00110000 0F110AB4 00280028 00000859 00110000 0F111124 00280028 00000859
- english japanese pilot names
- 00120000 0F111314 00500028 000006B4 00120000 0F111984 00500028 000006B4 Captain Falcon
- 00120000 0F1119CC 00500028 00000653 00120000 0F11203C 00500028 00000653
- 00120000 0F112024 00500028 000004BD 00120000 0F112694 00500028 000004BD
- 00120000 0F1124E8 00500028 00000770 00120000 0F112B58 00500028 00000770
- 00120000 0F112C5C 00500028 000005F4 00120000 0F1132CC 00500028 000005F4
- 00120000 0F113254 00500028 00000505 00120000 0F1138C4 00500028 00000505
- 00120000 0F113760 00500028 0000059A 00120000 0F113DD0 00500028 0000059A
- 00120000 0F113D00 00500028 0000054E 00120000 0F114370 00500028 0000052F
- 00120000 0F114254 00500028 00000639 00120000 0F1148A4 00500028 00000639
- 00120000 0F114894 00500028 00000651 00120000 0F114EE4 00500028 00000651
- 00120000 0F114EEC 00500028 000005E1 00120000 0F11553C 00500028 000005E1
- 00120000 0F1154D4 00500028 000005A4 00120000 0F115B24 00500028 000005A4
- 00120000 0F115A7C 00500028 000005E4 00120000 0F1160CC 00500028 000005E4
- 00120000 0F116064 00500028 000005FA 00120000 0F1166B4 00500028 000005FA
- 00120000 0F116664 00500028 00000734 00120000 0F116CB4 00500028 00000734
- 00120000 0F116D9C 00500028 00000626 00120000 0F1173EC 00500028 00000626
- 00120000 0F1173C8 00500028 000005E7 00120000 0F117A18 00500028 000005E7
- 00120000 0F1179B4 00500028 0000064D 00120000 0F118004 00500028 0000064D
- 00120000 0F11855C 00500028 000005FF 00120000 0F118BAC 00500028 000005FF
- 00120000 0F118008 00500028 0000054E 00120000 0F118658 00500028 0000054E
- 00120000 0F118B60 00500028 000006C2 00120000 0F1191B0 00500028 000006C2
- 00120000 0F119228 00500028 000004CB 00120000 0F119878 00500028 000004CB
- 00120000 0F1196F8 00500028 000005ED 00120000 0F119D48 00500028 000005ED
- 00120000 0F119CEC 00500028 000007A4 00120000 0F11A33C 00500028 000007A4
- 00120000 0F11A494 00500028 000004E6 00120000 0F11AAE4 00500028 000004E6
- 00120000 0F11A980 00500028 00000465 00120000 0F11AFD0 00500028 00000465
- 00120000 0F11ADEC 00500028 0000050A 00120000 0F11B43C 00500028 0000050A
- 00120000 0F11B2FC 00500028 000006BF 00120000 0F11B94C 00500028 000006BF
- 00120000 0F11CAFC 00500028 00000468 00120000 0F11D14C 00500028 000005A2
- 00120000 0F11CF68 00500028 00000454 00120000 0F11D6F4 00500028 0000068A
- english japanese
- 00040000 0F11D3C8 00A00018 00000000 00040000 0F11DD88 00A00018 00000000 SELECT MACHINE
- 00110000 0F11B9C0 00280028 0000019E 00110000 0F11C010 00280028 0000019E 1P
- 00110000 0F11BB64 00280028 0000019C 00110000 0F11C1B4 00280028 0000019C 2P
- 00110000 0F11BD04 00280028 0000019A 00110000 0F11C354 00280028 0000019A 3P
- 00110000 0F11BEA4 00280028 0000019A 00110000 0F11C4F4 00280028 0000019A 4P
- english japanese
- 00110000 0F11C044 00280028 00000277 00110000 0F11C694 00280028 00000277 starburst
- 00110000 0F11C2C0 00800040 00000837 00110000 0F11C910 00800040 00000837 scale
- 00110000 0F11DB4C 00800040 000007E9 00110000 0F11E50C 00800040 00000962 acceleration<->max speed
- 00110000 0F11E33C 00800040 000007E4 00110000 0F11EE74 00800040 000008CB body/boost/grip
- 00120000 0F11EB24 00500028 000004C2 00120000 0F11F744 00500028 000004C2 MP scale
- 00120000 0F11EFEC 00500028 0000033E 00120000 0F11FC0C 00500028 0000049A MP acceleration<->max speed
- 00110000 0F11F330 00500028 0000035E 00110000 0F1200AC 00500028 0000051F MP body/boost/grip
- 00110000 0F11F694 00100010 00000066 00110000 0F1205D0 00100010 00000066 arrow for stats slider
- english japanese
- 00110000 0F11F700 00140008 0000005E 00110000 0F12063C 00140008 0000005E BOOST
- 00110000 0F11F764 00100008 00000046 00110000 0F1206A0 00100008 00000046 BODY
- 00110000 0F11F7B0 00100008 0000004F 00110000 0F1206EC 00100008 0000004F GRIP
- english japanese
- 00110000 0F11F804 00100010 00000092 00110000 0F120740 00100010 00000092 novice Jack Cup trophy
- 00110000 0F11F89C 00100010 00000093 00110000 0F1207D8 00100010 00000093 novice Queen Cup trophy
- 00110000 0F11F934 00100010 00000098 00110000 0F120870 00100010 00000098 novice King Cup trophy
- 00110000 0F11F9D0 00100010 00000091 00110000 0F12090C 00100010 00000091 novice Joker Cup trophy
- 00110000 0F11FA68 00100010 00000097 00110000 0F1209A4 00100010 00000097 novice X Cup trophy
- 00110000 0F11FB04 00100010 000000A6 00110000 0F120A40 00100010 000000A6 standard Jack Cup trophy
- 00110000 0F11FBB0 00100010 000000A3 00110000 0F120AEC 00100010 000000A3 standard Queen Cup trophy
- 00110000 0F11FC58 00100010 000000B4 00110000 0F120B94 00100010 000000B4 standard King Cup trophy
- 00110000 0F11FD10 00100010 0000009C 00110000 0F120C4C 00100010 0000009C standard Joker Cup trophy
- 00110000 0F11FDB0 00100010 000000A2 00110000 0F120CEC 00100010 000000A2 standard X Cup trophy
- 00110000 0F11FE58 00100010 000000AA 00110000 0F120D94 00100010 000000AA expert Jack Cup trophy
- 00110000 0F11FF08 00100010 000000B1 00110000 0F120E44 00100010 000000B1 expert Queen Cup trophy
- 00110000 0F11FFC0 00100010 000000B6 00110000 0F120EFC 00100010 000000B6 expert King Cup trophy
- 00110000 0F12007C 00100010 000000A8 00110000 0F120FB8 00100010 000000A8 expert Joker Cup trophy
- 00110000 0F120128 00100010 00000097 00110000 0F121064 00100010 00000097 expert X Cup trophy
- 00110000 0F1201C4 00100010 000000CB 00110000 0F121100 00100010 000000CB master Jack Cup trophy
- 00110000 0F120294 00100010 000000D4 00110000 0F1211D0 00100010 000000D4 master Queen Cup trophy
- 00110000 0F12036C 00100010 000000DD 00110000 0F1212A8 00100010 000000DD master King Cup trophy
- 00110000 0F120450 00100010 000000C8 00110000 0F12138C 00100010 000000C8 master Joker Cup trophy
- 00110000 0F12051C 00100010 000000BF 00110000 0F121458 00100010 000000BF master X Cup trophy
- 00110000 0F1205E0 00100010 00000059 00110000 0F12151C 00100010 00000059 placeholder
- english japanese pink letters from name entry
- 00110000 0F120644 00100010 000000D7 00110000 0F121584 00100010 000000D7 A
- 00110000 0F120720 00100010 000000D6 00110000 0F121660 00100010 000000D6 B
- 00110000 0F1207FC 00100010 000000DB 00110000 0F12173C 00100010 000000DB C
- 00110000 0F1208DC 00100010 000000DD 00110000 0F12181C 00100010 000000DD D
- 00110000 0F1209C0 00100010 000000BC 00110000 0F121900 00100010 000000BC E
- 00110000 0F120A80 00100010 000000B5 00110000 0F1219C0 00100010 000000B5 F
- 00110000 0F120B3C 00100010 000000F2 00110000 0F121A7C 00100010 000000F2 G
- 00110000 0F120C34 00100010 000000C5 00110000 0F121B74 00100010 000000C5 H
- 00110000 0F120D00 00080010 0000008E 00110000 0F121C40 00080010 0000008E I
- 00110000 0F120D94 00100010 000000CF 00110000 0F121CD4 00100010 000000CF J
- 00110000 0F120E68 00100010 000000EE 00110000 0F121DA8 00100010 000000EE K
- 00110000 0F120F5C 00100010 000000AC 00110000 0F121E9C 00100010 000000AC L
- 00110000 0F12100C 00100010 0000010B 00110000 0F121F4C 00100010 0000010B M
- 00110000 0F12111C 00100010 000000F3 00110000 0F12205C 00100010 000000F3 N
- 00110000 0F121214 00100010 000000E8 00110000 0F122154 00100010 000000E8 O
- 00110000 0F121300 00100010 000000C6 00110000 0F122240 00100010 000000C6 P
- 00110000 0F1213CC 00100010 00000101 00110000 0F12230C 00100010 00000101 Q
- 00110000 0F1214D4 00100010 000000DA 00110000 0F122414 00100010 000000DA R
- 00110000 0F1215B4 00100010 000000DF 00110000 0F1224F4 00100010 000000DF S
- 00110000 0F121698 00100010 000000B9 00110000 0F1225D8 00100010 000000B9 T
- 00110000 0F121758 00100010 000000E4 00110000 0F122698 00100010 000000E4 U
- 00110000 0F121840 00100010 000000D6 00110000 0F122780 00100010 000000D6 V
- 00110000 0F12191C 00100010 00000100 00110000 0F12285C 00100010 00000100 W
- 00110000 0F121A20 00100010 000000D8 00110000 0F122960 00100010 000000D8 X
- 00110000 0F121AFC 00100010 000000D4 00110000 0F122A3C 00100010 000000D4 Y
- 00110000 0F121BD4 00100010 000000AB 00110000 0F122B14 00100010 000000AB Z
- 00110000 0F121C84 00080010 00000070 00110000 0F122BC4 00080010 00000070
- 00110000 0F121CF8 00080010 00000056 00110000 0F122C38 00080010 00000056
- 00110000 0F121D54 00080010 0000005C 00110000 0F122C94 00080010 0000005C
- 00110000 0F121DB4 00080010 00000080 00110000 0F122CF4 00080010 00000080
- 00110000 0F122108 00100010 000000DA 00110000 0F123048 00100010 000000DA
- 00110000 0F1221E8 00080010 0000008E 00110000 0F123128 00080010 0000008E
- 00110000 0F12227C 00100010 000000DB 00110000 0F1231BC 00100010 000000DB
- 00110000 0F12235C 00100010 000000E4 00110000 0F12329C 00100010 000000E4
- 00110000 0F122444 00100010 000000C3 00110000 0F123384 00100010 000000C3
- 00110000 0F12250C 00100010 000000D8 00110000 0F12344C 00100010 000000D8
- 00110000 0F1225E8 00100010 000000DB 00110000 0F123528 00100010 000000DB
- 00110000 0F1226C8 00100010 000000B5 00110000 0F123608 00100010 000000B5
- 00110000 0F122784 00100010 000000F4 00110000 0F1236C4 00100010 000000F4
- 00110000 0F12287C 00100010 000000EB 00110000 0F1237BC 00100010 000000EB
- 00110000 0F121E38 00100010 00000056 00110000 0F122D78 00100010 00000056
- 00110000 0F121E94 00100010 00000097 00110000 0F122DD4 00100010 00000097
- 00110000 0F121F30 00100010 0000006A 00110000 0F122E70 00100010 0000006A
- 00110000 0F121FA0 00100010 0000005E 00110000 0F122EE0 00100010 0000005E
- 00110000 0F122004 00100010 000000FD 00110000 0F122F44 00100010 000000FD
- english japanese
- 00110000 0F12296C 00100010 000000B3 00110000 0F1238AC 00100010 000000B3 A
- 00110000 0F122A24 00100010 000000BF 00110000 0F123964 00100010 000000BF B
- 00110000 0F122AE8 00100010 000000B5 00110000 0F123A28 00100010 000000B5 C
- 00110000 0F122BA4 00100010 000000C9 00110000 0F123AE4 00100010 000000C9 D
- 00110000 0F122C74 00100010 00000097 00110000 0F123BB4 00100010 00000097 E
- english japanese
- 00110000 0F122D10 00080010 000000CE 00110000 0F123C50 00080010 000000CE digital 0
- 00110000 0F122DE4 00040010 0000005B 00110000 0F123D24 00040010 0000005B digital 1
- 00110000 0F122E44 00080010 00000082 00110000 0F123D84 00080010 00000082 digital 2
- 00110000 0F122ECC 00080010 0000007E 00110000 0F123E0C 00080010 0000007E digital 3
- 00110000 0F122F50 00080010 0000008F 00110000 0F123E90 00080010 0000008F digital 4
- 00110000 0F122FE4 00080010 0000007F 00110000 0F123F24 00080010 0000007F digital 5
- 00110000 0F123068 00080010 00000096 00110000 0F123FA8 00080010 00000096 digital 6
- 00110000 0F123104 00080010 0000006D 00110000 0F124044 00080010 0000006D digital 7
- 00110000 0F123178 00080010 000000AA 00110000 0F1240B8 00080010 000000AA digital 8
- 00110000 0F123228 00080010 00000096 00110000 0F124168 00080010 00000096 digital 9
- english japanese small font
- 00110000 0F1232C4 00080008 0000003A 00110000 0F124204 00080008 0000003A A
- 00110000 0F123304 00080008 00000040 00110000 0F124244 00080008 00000040 B
- 00110000 0F123348 00080008 0000003F 00110000 0F124288 00080008 0000003F C
- 00110000 0F12338C 00080008 0000003D 00110000 0F1242CC 00080008 0000003D D
- 00110000 0F1233D0 00080008 00000037 00110000 0F124310 00080008 00000037 E
- 00110000 0F12340C 00080008 00000035 00110000 0F12434C 00080008 00000035 F
- 00110000 0F123448 00080008 00000041 00110000 0F124388 00080008 00000041 G
- 00110000 0F123490 00080008 0000003A 00110000 0F1243D0 00080008 0000003A H
- 00110000 0F1234D0 00040008 0000002D 00110000 0F124410 00040008 0000002D I
- 00110000 0F123504 00080008 00000039 00110000 0F124444 00080008 00000039 J
- 00110000 0F123544 00080008 0000003B 00110000 0F124484 00080008 0000003B K
- 00110000 0F123584 00080008 00000035 00110000 0F1244C4 00080008 00000035 L
- 00110000 0F1235C0 00080008 0000003A 00110000 0F124500 00080008 0000003A M
- 00110000 0F123600 00080008 0000003F 00110000 0F124540 00080008 0000003F N
- 00110000 0F123644 00080008 0000003D 00110000 0F124584 00080008 0000003D O
- 00110000 0F123688 00080008 0000003A 00110000 0F1245C8 00080008 0000003A P
- 00110000 0F1236C8 00080008 00000041 00110000 0F124608 00080008 00000041 Q
- 00110000 0F123710 00080008 0000003C 00110000 0F124650 00080008 0000003C R
- 00110000 0F123750 00080008 00000040 00110000 0F124690 00080008 00000040 S
- 00110000 0F123794 00080008 00000035 00110000 0F1246D4 00080008 00000035 T
- 00110000 0F1237D0 00080008 0000003D 00110000 0F124710 00080008 0000003D U
- 00110000 0F123814 00080008 0000003D 00110000 0F124754 00080008 0000003D V
- 00110000 0F123858 00080008 00000040 00110000 0F124798 00080008 00000040 W
- 00110000 0F12389C 00080008 00000049 00110000 0F1247DC 00080008 00000049 X
- 00110000 0F1238EC 00080008 00000037 00110000 0F12482C 00080008 00000037 Y
- 00110000 0F123928 00080008 00000035 00110000 0F124868 00080008 00000035 Z
- 00110000 0F123964 00080008 0000002E 00110000 0F1248A4 00080008 0000002E ,
- 00110000 0F123998 00080008 0000002D 00110000 0F1248D8 00080008 0000002D .
- 00110000 0F1239CC 00080008 00000031 00110000 0F12490C 00080008 00000031 '
- 00110000 0F123A04 00080008 00000026 00110000 0F124944 00080008 00000026 -
- 00110000 0F123A30 00080008 0000004D 00110000 0F124970 00080008 0000004D kg
- 00110000 0F123A84 00080008 0000003F 00110000 0F1249C4 00080008 0000003F &
- 00110000 0F123AC8 00080008 00000037 00110000 0F124A08 00080008 00000037 0
- 00110000 0F123B04 00080008 00000037 00110000 0F124A44 00080008 00000037 1
- 00110000 0F123B40 00080008 0000003B 00110000 0F124A80 00080008 0000003B 2
- 00110000 0F123B80 00080008 00000039 00110000 0F124AC0 00080008 00000039 3
- 00110000 0F123BC0 00080008 0000003D 00110000 0F124B00 00080008 0000003D 4
- 00110000 0F123C04 00080008 00000039 00110000 0F124B44 00080008 00000039 5
- 00110000 0F123C44 00080008 0000003C 00110000 0F124B84 00080008 0000003C 6
- 00110000 0F123C84 00080008 00000031 00110000 0F124BC4 00080008 00000031 7
- 00110000 0F123CBC 00080008 00000038 00110000 0F124BFC 00080008 00000038 8
- 00110000 0F123CF8 00080008 0000003B 00110000 0F124C38 00080008 0000003B 9
- english japanese course name font
- 00040000 0F123D34 00100010 00000000 00040000 0F124C74 00100010 00000000 A
- 00040000 0F123DB4 00100010 00000000 00040000 0F124CF4 00100010 00000000 B
- 00040000 0F123E34 00100010 00000000 00040000 0F124D74 00100010 00000000 C
- 00040000 0F123EB4 00100010 00000000 00040000 0F124DF4 00100010 00000000 D
- 00040000 0F123F34 00100010 00000000 00040000 0F124E74 00100010 00000000 E
- 00040000 0F123FB4 00100010 00000000 00040000 0F124EF4 00100010 00000000 F
- 00040000 0F124034 00100010 00000000 00040000 0F124F74 00100010 00000000 G
- 00040000 0F1240B4 00100010 00000000 00040000 0F124FF4 00100010 00000000 H
- 00040000 0F124134 00100010 00000000 00040000 0F125074 00100010 00000000 I
- 00040000 0F1241B4 00100010 00000000 00040000 0F1250F4 00100010 00000000 J
- 00040000 0F124234 00100010 00000000 00040000 0F125174 00100010 00000000 K
- 00040000 0F1242B4 00100010 00000000 00040000 0F1251F4 00100010 00000000 L
- 00040000 0F124334 00100010 00000000 00040000 0F125274 00100010 00000000 M
- 00040000 0F1243B4 00100010 00000000 00040000 0F1252F4 00100010 00000000 N
- 00040000 0F124434 00100010 00000000 00040000 0F125374 00100010 00000000 O
- 00040000 0F1244B4 00100010 00000000 00040000 0F1253F4 00100010 00000000 P
- 00040000 0F124534 00100010 00000000 00040000 0F125474 00100010 00000000 Q
- 00040000 0F1245B4 00100010 00000000 00040000 0F1254F4 00100010 00000000 R
- 00040000 0F124634 00100010 00000000 00040000 0F125574 00100010 00000000 S
- 00040000 0F1246B4 00100010 00000000 00040000 0F1255F4 00100010 00000000 T
- 00040000 0F124734 00100010 00000000 00040000 0F125674 00100010 00000000 U
- 00040000 0F1247B4 00100010 00000000 00040000 0F1256F4 00100010 00000000 V
- 00040000 0F124834 00100010 00000000 00040000 0F125774 00100010 00000000 W
- 00040000 0F1248B4 00100010 00000000 00040000 0F1257F4 00100010 00000000 X
- 00040000 0F124934 00100010 00000000 00040000 0F125874 00100010 00000000 Y
- 00040000 0F1249B4 00100010 00000000 00040000 0F1258F4 00100010 00000000 Z
- 00040000 0F124A34 00100010 00000000 00040000 0F125974 00100010 00000000 alpha
- 00040000 0F124AB4 00100010 00000000 00040000 0F1259F4 00100010 00000000 beta
- 00040000 0F124B34 00100010 00000000 00040000 0F125A74 00100010 00000000 gamma
- 00040000 0F124BB4 00100010 00000000 00040000 0F125AF4 00100010 00000000 '
- 00040000 0F124C34 00100010 00000000 00040000 0F125B74 00100010 00000000 ellipsis
- 00040000 0F124CB4 00100010 00000000 00040000 0F125BF4 00100010 00000000 :
- 00040000 0F124D34 00100010 00000000 00040000 0F125C74 00100010 00000000 .
- 00040000 0F124DB4 00100010 00000000 00040000 0F125CF4 00100010 00000000 &
- 00040000 0F124E34 00100010 00000000 00040000 0F125D74 00100010 00000000 ,
- 00040000 0F124EB4 00100010 00000000 00040000 0F125DF4 00100010 00000000 -
- 00040000 0F124F34 00100010 00000000 00040000 0F125E74 00100010 00000000 0
- 00040000 0F124FB4 00100010 00000000 00040000 0F125EF4 00100010 00000000 1
- 00040000 0F125034 00100010 00000000 00040000 0F125F74 00100010 00000000 2
- 00040000 0F1250B4 00100010 00000000 00040000 0F125FF4 00100010 00000000 3
- 00040000 0F125134 00100010 00000000 00040000 0F126074 00100010 00000000 4
- 00040000 0F1251B4 00100010 00000000 00040000 0F1260F4 00100010 00000000 5
- 00040000 0F125234 00100010 00000000 00040000 0F126174 00100010 00000000 6
- 00040000 0F1252B4 00100010 00000000 00040000 0F1261F4 00100010 00000000 7
- 00040000 0F125334 00100010 00000000 00040000 0F126274 00100010 00000000 8
- 00040000 0F1253B4 00100010 00000000 00040000 0F1262F4 00100010 00000000 9
- english japanese
- 00040000 0F125434 00080008 00000000 00040000 0F126374 00080008 00000000 A
- 00040000 0F125474 00080008 00000000 00040000 0F1263B4 00080008 00000000 D
- 00040000 0F1254B4 00080008 00000000 00040000 0F1263F4 00080008 00000000 E
- 00040000 0F1254F4 00080008 00000000 00040000 0F126434 00080008 00000000 M
- 00040000 0F125534 00080008 00000000 00040000 0F126474 00080008 00000000 &
- 00040000 0F125BF4 00080008 00000000 00040000 0F1264B4 00080008 00000000
- 00040000 0F125C34 00080008 00000000 00040000 0F1264F4 00080008 00000000
- 00040000 0F125C74 00080008 00000000 00040000 0F126534 00080008 00000000
- 00040000 0F125CB4 00080008 00000000 00040000 0F126574 00080008 00000000
- 00040000 0F125CF4 00080008 00000000 00040000 0F1265B4 00080008 00000000
- 00040000 0F125D34 00080008 00000000 00040000 0F1265F4 00080008 00000000
- 00040000 0F125D74 00080008 00000000 00040000 0F126634 00080008 00000000
- 00040000 0F125DB4 00080008 00000000 00040000 0F126674 00080008 00000000
- 00040000 0F125DF4 00080008 00000000 00040000 0F1266B4 00080008 00000000
- 00040000 0F125E34 00080008 00000000 00040000 0F1266F4 00080008 00000000
- 00040000 0F125E74 00080008 00000000 00040000 0F126734 00080008 00000000
- 00040000 0F125EB4 00080008 00000000 00040000 0F126774 00080008 00000000
- 00040000 0F125EF4 00080008 00000000 00040000 0F1267B4 00080008 00000000
- 00040000 0F125F34 00080008 00000000 00040000 0F1267F4 00080008 00000000
- 00040000 0F125F74 00080008 00000000 00040000 0F126834 00080008 00000000
- 00040000 0F125FB4 00080008 00000000 00040000 0F126874 00080008 00000000
- 00040000 0F125FF4 00080008 00000000 00040000 0F1268B4 00080008 00000000
- 00040000 0F126034 00080008 00000000 00040000 0F1268F4 00080008 00000000
- 00040000 0F1260B4 00080008 00000000 00040000 0F126974 00080008 00000000
- 00040000 0F1260F4 00080008 00000000 00040000 0F1269B4 00080008 00000000
- 00040000 0F126074 00080008 00000000 00040000 0F126934 00080008 00000000
- 00040000 0F126134 00080008 00000000 00040000 0F1269F4 00080008 00000000
- 00040000 0F126174 00080008 00000000 00040000 0F126A34 00080008 00000000
- 00040000 0F1261B4 00080008 00000000 00040000 0F126A74 00080008 00000000
- 00040000 0F1261F4 00080008 00000000 00040000 0F126AB4 00080008 00000000
- 00040000 0F126234 00080008 00000000 00040000 0F126AF4 00080008 00000000
- 00040000 0F126274 00080008 00000000 00040000 0F126B34 00080008 00000000
- 00040000 0F1262B4 00080008 00000000 00040000 0F126B74 00080008 00000000
- 00040000 0F1262F4 00080008 00000000 00040000 0F126BB4 00080008 00000000
- 00040000 0F126334 00080008 00000000 00040000 0F126BF4 00080008 00000000
- 00040000 0F126374 00080008 00000000 00040000 0F126C34 00080008 00000000
- 00040000 0F1263B4 00080008 00000000 00040000 0F126C74 00080008 00000000
- 00040000 0F1263F4 00080008 00000000 00040000 0F126CB4 00080008 00000000
- 00040000 0F126434 00080008 00000000 00040000 0F126CF4 00080008 00000000
- 00040000 0F126474 00080008 00000000 00040000 0F126D34 00080008 00000000
- 00040000 0F1264B4 00080008 00000000 00040000 0F126D74 00080008 00000000
- 00040000 0F1264F4 00080008 00000000 00040000 0F126DB4 00080008 00000000
- 00040000 0F126534 00080008 00000000 00040000 0F126DF4 00080008 00000000
- 00040000 0F126574 00080008 00000000 00040000 0F126E34 00080008 00000000
- 00040000 0F1265B4 00080008 00000000 00040000 0F126E74 00080008 00000000
- 00040000 0F1265F4 00080008 00000000 00040000 0F126EB4 00080008 00000000
- 00040000 0F126634 00080008 00000000 00040000 0F126EF4 00080008 00000000
- 00040000 0F126674 00080008 00000000 00040000 0F126F34 00080008 00000000
- 00040000 0F1266B4 00080008 00000000 00040000 0F126F74 00080008 00000000
- 00040000 0F1266F4 00080008 00000000 00040000 0F126FB4 00080008 00000000
- 00040000 0F126734 00080008 00000000 00040000 0F126FF4 00080008 00000000
- 00040000 0F126774 00080008 00000000 00040000 0F127034 00080008 00000000
- 00040000 0F1267B4 00080008 00000000 00040000 0F127074 00080008 00000000
- 00040000 0F1267F4 00080008 00000000 00040000 0F1270B4 00080008 00000000
- 00040000 0F126834 00080008 00000000 00040000 0F1270F4 00080008 00000000
- 00040000 0F126874 00080008 00000000 00040000 0F127134 00080008 00000000
- 00040000 0F1268B4 00080008 00000000 00040000 0F127174 00080008 00000000
- 00040000 0F1268F4 00080008 00000000 00040000 0F1271B4 00080008 00000000
- 00040000 0F126934 00080008 00000000 00040000 0F1271F4 00080008 00000000
- 00040000 0F126974 00080008 00000000 00040000 0F127234 00080008 00000000
- 00040000 0F1269B4 00080008 00000000 00040000 0F127274 00080008 00000000
- 00040000 0F1269F4 00080008 00000000 00040000 0F1272B4 00080008 00000000
- 00040000 0F126A34 00080008 00000000 00040000 0F1272F4 00080008 00000000
- 00040000 0F126A74 00080008 00000000 00040000 0F127334 00080008 00000000
- 00040000 0F126AB4 00080008 00000000 00040000 0F127374 00080008 00000000
- 00040000 0F126AF4 00080008 00000000 00040000 0F1273B4 00080008 00000000
- 00040000 0F126B34 00080008 00000000 00040000 0F1273F4 00080008 00000000
- 00040000 0F126B74 00080008 00000000 00040000 0F127434 00080008 00000000
- 00040000 0F126BB4 00080008 00000000 00040000 0F127474 00080008 00000000
- 00040000 0F126BF4 00080008 00000000 00040000 0F1274B4 00080008 00000000
- 00040000 0F126C34 00080008 00000000 00040000 0F1274F4 00080008 00000000
- 00040000 0F126C74 00080008 00000000 00040000 0F127534 00080008 00000000
- 00040000 0F126CB4 00080008 00000000 00040000 0F127574 00080008 00000000
- 00040000 0F126CF4 00080008 00000000 00040000 0F1275B4 00080008 00000000
- 00040000 0F126D34 00080008 00000000 00040000 0F1275F4 00080008 00000000
- 00040000 0F126D74 00080008 00000000 00040000 0F127634 00080008 00000000
- 00040000 0F126DB4 00080008 00000000 00040000 0F127674 00080008 00000000
- 00040000 0F126DF4 00080008 00000000 00040000 0F1276B4 00080008 00000000
- 00040000 0F126E34 00080008 00000000 00040000 0F1276F4 00080008 00000000
- 00040000 0F126E74 00080008 00000000 00040000 0F127734 00080008 00000000
- 00040000 0F126EB4 00080008 00000000 00040000 0F127774 00080008 00000000
- 00040000 0F126EF4 00080008 00000000 00040000 0F1277B4 00080008 00000000
- 00040000 0F126F34 00080008 00000000 00040000 0F1277F4 00080008 00000000
- 00040000 0F126F74 00080008 00000000 00040000 0F127834 00080008 00000000
- 00040000 0F126FB4 00080008 00000000 00040000 0F127874 00080008 00000000 0
- 00040000 0F126FF4 00080008 00000000 00040000 0F1278B4 00080008 00000000 1
- 00040000 0F127034 00080008 00000000 00040000 0F1278F4 00080008 00000000 2
- 00040000 0F127074 00080008 00000000 00040000 0F127934 00080008 00000000 3
- 00040000 0F1270B4 00080008 00000000 00040000 0F127974 00080008 00000000 4
- 00040000 0F1270F4 00080008 00000000 00040000 0F1279B4 00080008 00000000 5
- 00040000 0F127134 00080008 00000000 00040000 0F1279F4 00080008 00000000 6
- 00040000 0F127174 00080008 00000000 00040000 0F127A34 00080008 00000000 7
- 00040000 0F1271B4 00080008 00000000 00040000 0F127A74 00080008 00000000 8
- 00040000 0F1271F4 00080008 00000000 00040000 0F127AB4 00080008 00000000 9
- 00040000 0F127234 00080008 00000000 00040000 0F127AF4 00080008 00000000 '
- 00040000 0F127274 00080008 00000000 00040000 0F127B34 00080008 00000000 "
- 00040000 0F127374 00080008 00000000 00040000 0F127C34 00080008 00000000 ST
- 00040000 0F1273B4 00080008 00000000 00040000 0F127C74 00080008 00000000 ND
- 00040000 0F1273F4 00080008 00000000 00040000 0F127CB4 00080008 00000000 RD
- 00040000 0F127434 00080008 00000000 00040000 0F127CF4 00080008 00000000 TH
- 00040000 0F1272B4 00080008 00000000 00040000 0F127B74 00080008 00000000 +
- 00040000 0F1272F4 00080008 00000000 00040000 0F127BB4 00080008 00000000 -
- 00040000 0F127334 00100008 00000000 00040000 0F127BF4 00100008 00000000 PTS.
- only in english:
- 00040000 0F125574 00080008 00000000 B
- 00040000 0F1255B4 00080008 00000000 C
- 00040000 0F1255F4 00080008 00000000 F
- 00040000 0F125634 00080008 00000000 G
- 00040000 0F125674 00080008 00000000 H
- 00040000 0F1256B4 00080008 00000000 I
- 00040000 0F1256F4 00080008 00000000 J
- 00040000 0F125734 00080008 00000000 K
- 00040000 0F125774 00080008 00000000 L
- 00040000 0F1257B4 00080008 00000000 N
- 00040000 0F1257F4 00080008 00000000 O
- 00040000 0F125834 00080008 00000000 P
- 00040000 0F125874 00080008 00000000 Q
- 00040000 0F1258B4 00080008 00000000 R
- 00040000 0F1258F4 00080008 00000000 S
- 00040000 0F125934 00080008 00000000 T
- 00040000 0F125974 00080008 00000000 U
- 00040000 0F1259B4 00080008 00000000 V
- 00040000 0F1259F4 00080008 00000000 W
- 00040000 0F125A34 00080008 00000000 X
- 00040000 0F125A74 00080008 00000000 Y
- 00040000 0F125AB4 00080008 00000000 Z
- 00040000 0F125AF4 00080008 00000000 c
- 00040000 0F125B34 00080008 00000000 r
- 00040000 0F125B74 00080008 00000000 s
- 00040000 0F125BB4 00080008 00000000 ,
- english japanese
- 00040000 0F127474 00100010 00000000 00040000 0F127D34 00100010 00000000 0
- 00040000 0F1274F4 00100010 00000000 00040000 0F127DB4 00100010 00000000 1
- 00040000 0F127574 00100010 00000000 00040000 0F127E34 00100010 00000000 2
- 00040000 0F1275F4 00100010 00000000 00040000 0F127EB4 00100010 00000000 3
- 00040000 0F127674 00100010 00000000 00040000 0F127F34 00100010 00000000 4
- 00040000 0F1276F4 00100010 00000000 00040000 0F127FB4 00100010 00000000 5
- 00040000 0F127774 00100010 00000000 00040000 0F128034 00100010 00000000 6
- 00040000 0F1277F4 00100010 00000000 00040000 0F1280B4 00100010 00000000 7
- 00040000 0F127874 00100010 00000000 00040000 0F128134 00100010 00000000 8
- 00040000 0F1278F4 00100010 00000000 00040000 0F1281B4 00100010 00000000 9
- 00040000 0F127974 00100010 00000000 00040000 0F128234 00100010 00000000 V
- 00040000 0F1279F4 00100010 00000000 00040000 0F1282B4 00100010 00000000 (
- 00040000 0F127A74 00100010 00000000 00040000 0F128334 00100010 00000000 )
- 00040000 0F127AF4 00100010 00000000 00040000 0F1283B4 00100010 00000000 st
- 00040000 0F127B74 00100010 00000000 00040000 0F128434 00100010 00000000 nd
- 00040000 0F127BF4 00100010 00000000 00040000 0F1284B4 00100010 00000000 rd
- 00040000 0F127C74 00100010 00000000 00040000 0F128534 00100010 00000000 th
- 00040000 0F127CF4 00100010 00000000 00040000 0F1285B4 00100010 00000000 +
- 00040000 0F127DF4 00100010 00000000 00040000 0F1286B4 00100010 00000000 up arrow
- 00040000 0F127E74 00100010 00000000 00040000 0F128734 00100010 00000000 down arrow
- 00040000 0F1284CC 00100010 00000000 00040000 0F128D0C 00100010 00000000 right arrow
- 00140000 0F127D78 00200010 0000007B 00140000 0F128638 00200010 0000007B pts.
- 00140000 0F127EF8 00500010 0000016C 00140000 0F1287B8 00500010 000000F7 Player
- 00140000 0F128068 00500010 000001C8 00140000 0F1288B4 00500010 00000133 Computer
- 00140000 0F128234 00600010 000001D2 00140000 0F1289EC 00600010 000001DF Select Course
- 00140000 0F12840C 00200010 000000C0 00140000 0F128BD0 00300010 0000013B Quit
- english japanese
- 00040000 0F128A4C 00100010 00000000 00040000 0F12928C 00100010 00000000 A
- 00040000 0F128ACC 00100010 00000000 00040000 0F12930C 00100010 00000000 B
- 00040000 0F128B4C 00100010 00000000 00040000 0F12938C 00100010 00000000 C
- 00040000 0F128BCC 00100010 00000000 00040000 0F12940C 00100010 00000000 D
- 00040000 0F128C4C 00100010 00000000 00040000 0F12948C 00100010 00000000 E
- 00040000 0F128CCC 00100010 00000000 00040000 0F12950C 00100010 00000000 F
- 00040000 0F128D4C 00100010 00000000 00040000 0F12958C 00100010 00000000 G
- 00040000 0F128DCC 00100010 00000000 00040000 0F12960C 00100010 00000000 H
- 00040000 0F128E4C 00100010 00000000 00040000 0F12968C 00100010 00000000 I
- 00040000 0F128ECC 00100010 00000000 00040000 0F12970C 00100010 00000000 J
- 00040000 0F128F4C 00100010 00000000 00040000 0F12978C 00100010 00000000 K
- 00040000 0F128FCC 00100010 00000000 00040000 0F12980C 00100010 00000000 L
- 00040000 0F12904C 00100010 00000000 00040000 0F12988C 00100010 00000000 M
- 00040000 0F1290CC 00100010 00000000 00040000 0F12990C 00100010 00000000 N
- 00040000 0F12914C 00100010 00000000 00040000 0F12998C 00100010 00000000 O
- 00040000 0F1291CC 00100010 00000000 00040000 0F129A0C 00100010 00000000 P
- 00040000 0F12924C 00100010 00000000 00040000 0F129A8C 00100010 00000000 Q
- 00040000 0F1292CC 00100010 00000000 00040000 0F129B0C 00100010 00000000 R
- 00040000 0F12934C 00100010 00000000 00040000 0F129B8C 00100010 00000000 S
- 00040000 0F1293CC 00100010 00000000 00040000 0F129C0C 00100010 00000000 T
- 00040000 0F12944C 00100010 00000000 00040000 0F129C8C 00100010 00000000 U
- 00040000 0F1294CC 00100010 00000000 00040000 0F129D0C 00100010 00000000 V
- 00040000 0F12954C 00100010 00000000 00040000 0F129D8C 00100010 00000000 W
- 00040000 0F1295CC 00100010 00000000 00040000 0F129E0C 00100010 00000000 X
- 00040000 0F12964C 00100010 00000000 00040000 0F129E8C 00100010 00000000 Y
- 00040000 0F1296CC 00100010 00000000 00040000 0F129F0C 00100010 00000000 Z
- 00040000 0F12854C 00100010 00000000 00040000 0F128D8C 00100010 00000000 0
- 00040000 0F1285CC 00100010 00000000 00040000 0F128E0C 00100010 00000000 1
- 00040000 0F12864C 00100010 00000000 00040000 0F128E8C 00100010 00000000 2
- 00040000 0F1286CC 00100010 00000000 00040000 0F128F0C 00100010 00000000 3
- 00040000 0F12874C 00100010 00000000 00040000 0F128F8C 00100010 00000000 4
- 00040000 0F1287CC 00100010 00000000 00040000 0F12900C 00100010 00000000 5
- 00040000 0F12884C 00100010 00000000 00040000 0F12908C 00100010 00000000 6
- 00040000 0F1288CC 00100010 00000000 00040000 0F12910C 00100010 00000000 7
- 00040000 0F12894C 00100010 00000000 00040000 0F12918C 00100010 00000000 8
- 00040000 0F1289CC 00100010 00000000 00040000 0F12920C 00100010 00000000 9
- 00040000 0F12974C 00100010 00000000 00040000 0F129F8C 00100010 00000000 alpha
- 00040000 0F1297CC 00100010 00000000 00040000 0F12A00C 00100010 00000000 beta
- 00040000 0F12984C 00100010 00000000 00040000 0F12A08C 00100010 00000000
- 00040000 0F1298CC 00100010 00000000 00040000 0F12A10C 00100010 00000000 &
- 00040000 0F12994C 00100010 00000000 00040000 0F12A18C 00100010 00000000 ,
- 00040000 0F1299CC 00100010 00000000 00040000 0F12A20C 00100010 00000000 "
- 00040000 0F129A4C 00100010 00000000 00040000 0F12A28C 00100010 00000000 -
- 00040000 0F129ACC 00100010 00000000 00040000 0F12A30C 00100010 00000000 .
- 00040000 0F129B4C 00100010 00000000 00040000 0F12A38C 00100010 00000000 '
- 00040000 0F129BCC 00100010 00000000 00040000 0F12A40C 00100010 00000000 _
- english japanese
- 00110000 0F129C54 00400056 00000F57 00110000 0F12A494 00400056 00000F57 GP RACE
- 00110000 0F12ABB0 00400056 00001049 00110000 0F12B3F0 00400056 00001049 TIME ATTACK
- 00110000 0F12BC00 00400056 00000F98 00110000 0F12C440 00400056 00000F98 VS BATTLE
- 00110000 0F12CB9C 00400056 00000F76 00110000 0F12D3DC 00400056 00000F76 PRACTICE
- 00110000 0F12DB18 00400056 00000E83 00110000 0F12E358 00400056 00000E83 DEATH RACE
- 00110000 0F12E9A0 00400056 00000F8F 00110000 0F12F1E0 00400056 00000F8F OPTIONS
- 00110000 0F12F934 00400056 00001016 00110000 0F130174 00400056 00001016 COURSE EDIT
- 00110000 0F130950 00400056 00001012 00110000 0F131190 00400056 00001012 CREATE MACHINE
- english japanese
- 00040000 0F134760 00800018 00000000 00040000 0F134FA0 00800018 00000000 SELECT MODE
- 00110000 0F131968 00800050 00002A0E 00110000 0F1321A8 00800050 00002A0E flames
- 00110000 0F134D64 00400012 00000144 00110000 0F1355A4 00400012 0000014E novice
- 00110000 0F134EAC 00400012 0000014C 00110000 0F1356F8 00400012 00000160 standard
- 00110000 0F134FFC 00400012 00000149 00110000 0F13585C 00400012 00000163 expert
- 00110000 0F13514C 00400012 0000014E 00110000 0F1359C4 00400012 00000156 master
- 00110000 0F13437C 00400012 00000146 00110000 0F134BBC 00400012 00000146 2 players
- 00110000 0F1344C8 00400012 00000142 00110000 0F134D08 00400012 00000142 3 players
- 00110000 0F134610 00400012 00000143 00110000 0F134E50 00400012 00000143 4 players
- 00120000 0F1352A0 00580012 000001B1 00120000 0F135B20 00580012 000001C5 time attack
- 00110000 0F135458 00400012 00000149 00110000 0F135CEC 00400012 00000157 records
- english japanese
- 00110000 0F1355B4 00400060 000006DF 00110000 0F135E54 00400060 000006DF JACK CUP
- 00110000 0F135C98 00400060 0000072D 00110000 0F136538 00400060 0000072D QUEEN CUP
- 00110000 0F1363CC 00400060 00000738 00110000 0F136C6C 00400060 00000738 KING CUP
- 00110000 0F136B08 00400060 000006D4 00110000 0F1373A8 00400060 000006D4 JOKER CUP
- 00110000 0F137668 00400060 000006C5 00110000 0F137F08 00400060 000006C5 X CUP
- 00110000 0F1371E0 00400040 00000483 00110000 0F137A80 00400040 00000483 EDIT CUP
- 00110000 0F137D34 00400060 000007CE 00110000 0F1385D4 00400060 000007CE ? placeholder
- english japanese
- 00040000 0F139830 00A00018 00000000 00040000 0F13A0D0 00A00018 00000000 SELECT COURSE
- 00040000 0F138510 00600018 00000000 00040000 0F138DB0 00600018 00000000 RECORDS
- 00110000 0F139710 00200010 00000112 00110000 0F139FB0 00200010 00000112 OK?
- 00110000 0F138994 00200020 00000120 00110000 0F139234 00200020 00000120 left arrow
- 00110000 0F138AB8 00400040 000009E8 00110000 0F139358 00400040 000009E8 helmet
- 00110000 0F000004 013000F0 00014A5D 00110000 0F000004 013000F0 00014A5D title 1
- 00110000 0F014A68 014000F0 000118DB 00110000 0F014A68 014000F0 000118DB title 2
- 00110000 0F026348 014000F0 00009E0A 00110000 0F026348 014000F0 00009E0A title 3
- english japanese
- 00110000 0F1394A4 00100010 00000075 00110000 0F139D44 00100010 00000075 x (green)
- 00110000 0F139520 00100010 00000075 00110000 0F139DC0 00100010 00000075 x (blue)
- 00110000 0F13959C 00100010 00000076 00110000 0F139E3C 00100010 00000076 x (purple)
- 00110000 0F139618 00100010 00000075 00110000 0F139EB8 00100010 00000075 x (red)
- english japanese
- 00040000 0F13A9E0 00200010 00000000 00040000 0F13B280 00200010 00000000 Ghost bubble
- 00110000 0F139694 00100010 00000075 00110000 0F139F34 00100010 00000075 X
- 00040000 0F139FB8 00400010 00000000 00040000 0F13A858 00400010 00000000 With Ghost
- 00040000 0F13A1C0 00400010 00000000 00040000 0F13AA60 00400010 00000000 Without Ghost
- 00040000 0F13A3C8 00400010 00000000 00040000 0F13AC68 00400010 00000000 Staff Ghost
- 00040000 0F13A5D0 00400010 00000000 00040000 0F13AE70 00400010 00000000 Celebrity Ghost
- 00040000 0F13A7D8 00400010 00000000 00040000 0F13B078 00400010 00000000 Champ Ghost
- english japanese
- 00110000 0F1C417C 005000B6 000025D1 00110000 0F1C4A1C 005000B6 000025D1 woman
- 00110000 0F1C6754 00400040 0000095A 00110000 0F1C6FF4 00400040 0000095A See you again!
- 00110000 0F1C70B4 00500048 00001662 00110000 0F1C7954 00500048 00001662 announcer
- english japanese victory pictures of pilot with car
- 00120000 0F1C871C 00800055 00002289 00120000 0F1C8FBC 00800055 00002289
- 00120000 0F1CA9AC 0080005E 00002905 00120000 0F1CB24C 0080005E 00002905
- 00120000 0F1CD2B8 00800071 00002DBA 00120000 0F1CDB58 00800071 00002DBA
- 00120000 0F1D0078 0080005B 00002A88 00120000 0F1D0918 0080005B 00002A88
- 00120000 0F1D2B04 0080005E 00001DDB 00120000 0F1D33A4 0080005E 00001DDB
- 00120000 0F1D48E4 0080004F 000024F5 00120000 0F1D5184 0080004F 000024F5
- 00120000 0F1D6DE0 0080005C 00002C79 00120000 0F1D7680 0080005C 00002C79
- 00120000 0F1D9A60 00800057 00002A05 00120000 0F1DA300 00800057 00002A05
- 00120000 0F1DC46C 00800060 00003077 00120000 0F1DCD0C 00800060 00003077
- 00120000 0F1DF4E8 00800052 0000272B 00120000 0F1DFD88 00800052 0000272B
- 00120000 0F1E1C18 00800064 00002D0A 00120000 0F1E24B8 00800064 00002D0A
- 00120000 0F1E4928 00800061 00003694 00120000 0F1E51C8 00800061 00003694
- 00120000 0F1E7FC0 00800054 00002674 00120000 0F1E8860 00800054 00002674
- 00120000 0F1EA638 0080005D 000025D7 00120000 0F1EAED8 0080005D 000025D7
- 00120000 0F1ECC14 00800055 000021A2 00120000 0F1ED4B4 00800055 000021A2
- 00120000 0F1EEDBC 00800056 0000226D 00120000 0F1EF65C 00800056 0000226D
- 00120000 0F1F1030 00800060 00002E39 00120000 0F1F18D0 00800060 00002E39
- 00120000 0F1F3E70 00800065 0000309E 00120000 0F1F4710 00800065 0000309E
- 00120000 0F1F6F14 00800076 00002B7C 00120000 0F1F77B4 00800076 00002B7C
- 00120000 0F1F9A94 00800062 00002EF3 00120000 0F1FA334 00800062 00002EF3
- 00120000 0F1FC98C 00800067 00002D69 00120000 0F1FD22C 00800067 00002D69
- 00120000 0F1FF6FC 0080005E 00002E5F 00120000 0F1FFF9C 0080005E 00002E5F
- 00120000 0F202560 00800053 00002432 00120000 0F202E00 00800053 00002432
- 00120000 0F204998 0080005C 00002CB2 00120000 0F205238 0080005C 00002CB2
- 00120000 0F207650 00800052 000022C9 00120000 0F207EF0 00800052 000022C9
- 00120000 0F209920 00800065 00002B2E 00120000 0F20A1C0 00800065 00002B2E
- 00120000 0F20C454 00800058 0000287D 00120000 0F20CCF4 00800058 0000287D
- 00120000 0F20ECD8 0080005D 00002488 00120000 0F20F578 0080005D 00002488
- 00120000 0F211164 00800052 000022DA 00120000 0F211A04 00800052 000022DA
- 00120000 0F213444 0080005C 0000276B 00120000 0F213CE4 0080005C 0000276B
- english japanese options menu
- 0F262FB4 00200010 0F25D9D0 00200010 with
- 0F262ED0 00200010 0F25D928 00200010 w/o
- 0F262FB4 00200010 0F25D9D0 00200010 with
- 0F262ED0 00200010 0F25D928 00200010 w/o
- 0F262ED0 00200010 0F25D928 00200010 w/o
- 0F263190 00200010 0F25DB40 00200010 EXIT
- 0F263230 00200010 0F25DBE0 00200010 +1
- 0F2632E8 00400010 0F25DC98 00400010 STEREO
- 0F2634A4 00400010 0F25DDA0 00400010 MONO
- 0F2637DC 00200010 0F25E00C 00200010 +2
- 0F2636F0 00200010 0F25DF34 00200010 +3
- english japanese
- 0F261AD4 0F25C634 VS COM (2P,3P) 128x16.ia8
- 0F262184 0F25CD24 VS Slot 96x16.ia8
- 0F261E80 0F25CA38 VS Handicap 96x16.ia8
- 0F262398 0F25CF50 Sound Mode 96x16.ia8
- 0F262688 0F25D190 All data clear 96x16.ia8
- 0F263DA8 0F25E5AC Copying ghost 96x16.ia8
- 0F2630C8 0F25DA78 EXIT 40x16.ia8
- english japanese
- 0F13AAE4 0F13B384
- 0F255FF8 0F2507E4
- 0F15DEA8 0F15E748
- 0F2457C4 0F245DBC c16; J 196x16, USA 196x32 victory caption
- 0F1A1758 0F1A1FF8
- 0F2461CC 0F2463B8 c16; J 196x16, USA 196x32 victory caption
- 0F16FEEC 0F17078C
- 0F246C18 0F2469E4 c16; J 196x16, USA 196x32 victory caption
- 0F180754 0F180FF4
- 0F247590 0F246FC4 c16; J 196x16, USA 196x32 White Cat victory caption
- 0F193DC4 0F194664
- 0F247F40 0F2475F0
- 0F166A40 0F1672E0
- 0F248844 0F247BC0
- 0F146944 0F1471E4
- 0F2490D0 0F248120
- 0F19CD38 0F19D5D8
- 0F249A78 0F24875C
- 0F16B94C 0F16C1EC
- 0F24A294 0F248D04
- 0F1882F0 0F188B90
- 0F24AC0C 0F2492C8
- 0F1A9E6C 0F1AA70C
- 0F24B444 0F2498AC
- 0F17CDC8 0F17D668
- 0F24BD9C 0F249E00
- 0F18BDDC 0F18C67C
- 0F24C588 0F24A3C4
- 0F13EC40 0F13F4E0
- 0F24CE20 0F24A9A0
- 0F151B38 0F1523D8
- 0F24D864 0F24AF10
- 0F18FFC0 0F190860
- 0F24E224 0F24B494
- 0F179494 0F179D34
- 0F24EC48 0F24BA04
- 0F142BF0 0F143490
- 0F24F4A0 0F24C01C
- 0F198B8C 0F19942C
- 0F24FD5C 0F24C5EC
- 0F184744 0F184FE4
- 0F2505E8 0F24CBF8
- 0F14A3CC 0F14AC6C
- 0F250D64 0F24D198
- 0F1B2DBC 0F1B365C
- 0F251718 0F24D7E8
- 0F159288 0F159B28
- 0F252134 0F24DDA4
- 0F1AE278 0F1AEB18
- 0F252AF8 0F24E424
- 0F1A5D74 0F1A6614
- 0F2532F0 0F24EA1C
- 0F1619EC 0F16228C
- 0F253C68 0F24F03C
- 0F14E458 0F14ECF8
- 0F254468 0F24F660
- 0F174BF0 0F175490
- 0F254EF0 0F24FC40
- 0F15538C 0F155C2C
- 0F25577C 0F2501E4
- 0F1B72F0 0F1B7B90
- 00000000 00000000
- 0F1C0524 0F1C0DC4
- 0F244F14 0F2457B4 c16; J 196x16, USA 196x32 Captain Falcon victory caption
- 0F1B9F4C 0F1BA7EC
- 00000000 00000000
- 0F1BD278 0F1BDB18
- 00000000 00000000
- 0F243410 0F243CB0
- 0F243610 0F243EB0
- 0F243710 0F243FB0
- 0F243910 0F2441B0
- 0F243B10 0F2443B0
- 0F243D10 0F2445B0
- 0F243F10 0F2447B0
- 0F244110 0F2449B0
- 0F244310 0F244BB0
- 0F244510 0F244DB0
- 0F244710 0F244FB0
- 0F244910 0F2451B0
- 0F244B10 0F2453B0
- 0F244D10 0F2455B0
- english japanese
- 0F220810 0F2210B0
- 0F221010 0F2218B0
- 0F221210 0F221AB0
- 0F221A10 0F2222B0
- 0F221C10 0F2224B0
- 0F222410 0F222CB0
- 0F222610 0F222EB0
- 0F222E10 0F2236B0
- 0F223010 0F2238B0
- 0F223810 0F2240B0
- 0F223A10 0F2242B0
- 0F224210 0F224AB0
- 0F224410 0F224CB0
- 0F224C10 0F2254B0
- 0F224E10 0F2256B0
- 0F225610 0F225EB0
- 0F225810 0F2260B0
- 0F226010 0F2268B0
- 0F226210 0F226AB0
- 0F226A10 0F2272B0
- 0F226C10 0F2274B0
- 0F227410 0F227CB0
- 0F227610 0F227EB0
- 0F227E10 0F2286B0
- 0F228010 0F2288B0
- 0F228810 0F2290B0
- 0F228A10 0F2292B0
- 0F229210 0F229AB0
- 0F229410 0F229CB0
- 0F229C10 0F22A4B0
- 0F229E10 0F22A6B0
- 0F22A610 0F22AEB0
- 0F22A810 0F22B0B0
- 0F22B010 0F22B8B0
- 0F22B210 0F22BAB0
- 0F22BA10 0F22C2B0
- 0F22BC10 0F22C4B0
- 0F22C410 0F22CCB0
- 0F22C610 0F22CEB0
- 0F22CE10 0F22D6B0
- 0F22D010 0F22D8B0
- 0F22D810 0F22E0B0
- 0F22DA10 0F22E2B0
- 0F22E210 0F22EAB0
- 0F22E410 0F22ECB0
- 0F22EC10 0F22F4B0
- 0F22EE10 0F22F6B0
- 0F22F610 0F22FEB0
- 0F22F810 0F2300B0
- 0F230010 0F2308B0
- 0F230210 0F230AB0
- 0F230A10 0F2312B0
- 0F230C10 0F2314B0
- 0F231410 0F231CB0
- 0F231610 0F231EB0
- 0F231E10 0F2326B0
- 0F232010 0F2328B0
- 0F232810 0F2330B0
- 0F232A10 0F2332B0
- 0F233210 0F233AB0
- 0F233410 0F233CB0
- 0F233C10 0F2344B0
- 0F233E10 0F2346B0
- 0F234610 0F234EB0
- 0F234810 0F2350B0
- 0F235010 0F2358B0
- 0F235210 0F235AB0
- 0F235A10 0F2362B0
- 0F235C10 0F2364B0
- 0F236410 0F236CB0
- 0F236610 0F236EB0
- 0F236E10 0F2376B0
- 0F237010 0F2378B0
- 0F237810 0F2380B0
- 0F237A10 0F2382B0
- 0F238210 0F238AB0
- 0F238410 0F238CB0
- 0F238C10 0F2394B0
- 0F238E10 0F2396B0
- 0F239610 0F239EB0
- 0F239810 0F23A0B0
- 0F23A010 0F23A8B0
- 0F23A210 0F23AAB0
- 0F23AA10 0F23B2B0
- 0F23AC10 0F23B4B0
- 0F23B410 0F23BCB0
- 0F23B610 0F23BEB0
- 0F23BE10 0F23C6B0
- 0F23C010 0F23C8B0
- 0F23C810 0F23D0B0
- 0F23CA10 0F23D2B0
- 0F23D210 0F23DAB0
- 0F23D410 0F23DCB0
- 0F23DC10 0F23E4B0
- 0F23DE10 0F23E6B0
- 0F23E610 0F23EEB0
- 0F23E810 0F23F0B0
- 0F23F010 0F23F8B0
- 0F23F210 0F23FAB0
- 0F23FA10 0F2402B0
- 0F23FC10 0F2404B0
- 0F240410 0F240CB0
- 0F240610 0F240EB0
- 0F240E10 0F2416B0
- 0F241010 0F2418B0
- 0F241810 0F2420B0
- 0F241A10 0F2422B0
- 0F242210 0F242AB0
- 0F242410 0F242CB0
- 0F242C10 0F2434B0
- english japanese palettes
- 0F215F30 FCC0FD00 0000C882 F0000002 0F2167D0 FCC0FD00 0000C882 F0000002
- 0F215C30 9BF7F5D2 FFE69BF7 F5000002 0F2164D0 9BF7F5D2 FFE69BF7 F5000002
- 0F215DB0 E0EAD200 0000E1BE A0000002 0F216650 E0EAD200 0000E1BE A0000002
- 0F215D30 97C2DAD2 FFE697C2 DA000002 0F2165D0 97C2DAD2 FFE697C2 DA000002
- 0F215E30 020217F5 A2637D9B B9000005 0F2166D0 020217F5 A2637D9B B9000005
- 0F215CB0 FFE09000 0000FFE0 CC000002 0F216550 FFE09000 0000FFE0 CC000002
- 0F215EB0 F5A26300 0000F5A2 63000002 0F216750 F5A26300 0000F5A2 63000002
- 0F215BB0 FAFFFF00 0000B4C8 B4000002 0F216450 FAFFFF00 0000B4C8 B4000002
- english japanese
- 0F215FB0 3CF5C28F 3CF5C28F 00000000 00000000 0F216850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F216FB0 3CF5C28F 3CF5C28F 00000000 00000000 0F217850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F217FB0 3CF5C28F 3CF5C28F 3C23D70A 3C23D70A 0F218850 3CF5C28F 3CF5C28F 3C23D70A 3C23D70A
- 0F218FB0 3CF5C28F 3CF5C28F 00000000 00000000 0F219850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F219FB0 3CF5C28F 3CF5C28F 00000000 00000000 0F21A850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F21AFB0 3CF5C28F 3CF5C28F 00000000 00000000 0F21B850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F21BFB0 3CF5C28F 3CF5C28F 00000000 00000000 0F21C850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F21CFB0 3CF5C28F 3CF5C28F 00000000 00000000 0F21D850 3CF5C28F 3CF5C28F 00000000 00000000
- 0F21DFB0 3CF5C28F 3CF5C28F 3BA3D70A 3BA3D70A 0F21E850 3CF5C28F 3CF5C28F 3BA3D70A 3BA3D70A
- 0F21EFB0 3CF5C28F 3CF5C28F 00000000 00000000 0F21F850 3CF5C28F 3CF5C28F 00000000 00000000
- english japanese sizes at 0xB098C0
- 0F25F0B0 0x280 0x100 0F2595E0 0x280 0x144 Retry 40x16.ci8
- 0F25F1B0 0x400 0x184 0F259724 0x400 0x1A4 Settings 64x16.ci8
- 0F25F334 0x180 0xCC 0F2598C8 0x200 0x124 Quit 24x16.ci8
- 0F25F400 0x400 0x29C 0F2599EC 0x400 0x208 Change Machine 64x16.ci8
- 0F25F69C 0x400 0x278 0F259BF4 0x400 0x1CC Change Course 64x16.ci8
- 0F25F914 0x400 0x1BC 0F259DC0 0x400 0x1A8 Ghost Save 64x16.ci8
- 0F25FAD0 0x800 0x2A0 0F259F68 0x800 0x310 Overwrite Data? 128x16.ci8
- 0F25FD70 0x280 0x124 0F25A278 0x400 0x1E4 Saving 40x16.ci8
- 0F25FE94 0x400 0x1F8 0F25A45C 0x400 0x17C To Game Pak 64x16.ci8
- 0F26008C 0x280 0x134 0F25A5D8 0x400 0x164 To Disk 40x16.ci8
- 0F2601C0 0x800 0x2A0 0F25A73C 0x800 0x2EC Overwrite Data? 128x16.ci8
- 0F260460 0x400 0x1EC 0F25AA28 0x400 0x1D8 Clear Record 64x16.ci8
- 0F26064C 0xC00 0x44C 0F25AC00 0x1000 0x6C0 Erase saved data for this course? 96x32.ci8
- 0F260A98 0x400 0x11C 0F25B2C0 0x400 0x1E0 Clear Ghost 64x16.ci8
- 0F260C64 0xC00 0x44C 0F25B4A0 0x1000 0x690 Erase saved data for this course? 96x32.ci8
- 0F2610B0 0x400 0x174 0F25BB30 0x400 0x16C Continue 64x16.ci8
- 0F2636F0 0x200 0xEC 0F25DF34 0x200 0xD8 Yes 32x16.ci8
- 0F2637DC 0x200 0xD8 0F25E00C 0x200 0xD4 No 32x16.ci8
- 0F261224 0x400 0x140 0F25BC9C 0x400 0x1F4 Saved 64x16.ci8
- 0F261364 0x400 0x1C4 0F25BE90 0x400 0x170 New Ghost 64x16.ci8
- 0F261528 0x800 0x244 0F25C000 0x800 0x2CC Saved Ghost 128x16.ci8
- 0F2638B4 0x1000 0x4F4 0F25E0E0 0x1000 0x4CC Race data can not be saved for ghost. 128x32.ci8
- 0F263648 0x100 0x54 0F25DE8C 0x100 0x54 left arrow 16x16.ci8
- 0F26369C 0x100 0x54 0F25DEE0 0x100 0x54 right arrow 16x16.ci8
- english japanese
- 0F264110 0F25E7C0
- 0F264340 0F25E9F0
- 0F264450 0F25EB00
- 0F2641D8 0F25E888
- 0F264690 0F25ED40
- 0F264540 0F25EBF0
- 0F264920 0F25EFD0
- 0F264860 0F25EF10
- 0F264740 0F25EDF0
- 0F264C80 0F25F330
- 0F264B40 0F25F1F0
- 0F2652B0 0F25F960
- 0F264DE0 0F25F490
- 0F264F08 0F25F5B8
- 0F2650B0 0F25F760
- 0F2651C8 0F25F878
- 0F264A58 0F25F108
- 0F2656C8 0F25FD78
- 0F265530 0F25FBE0
- 0F2659E0 0F260090
- 0F2658D0 0F25FF80
- 0F265B70 0F260220
- 0F2653E8 0F25FA98
- 0F265D08 0F2603B8
- english japanese
- 0F265E80 0F260530
- 0F268A80 0F263130
- 0F266880 0F260F30
- 0F267A80 0F262130
- 0F268680 0F262D30
- 0F266280 0F260930
- 0F267C80 0F262330
- 0F266080 0F260730
- 0F267880 0F261F30
- 0F267080 0F261730
- 0F269680 0F263D30
- 0F266480 0F260B30
- 0F268080 0F262730
- 0F269280 0F263930
- 0F268C80 0F263330
- 0F266A80 0F261130
- 0F269480 0F263B30
- 0F266680 0F260D30
- 0F267280 0F261930
- 0F268880 0F262F30
- 0F269080 0F263730
- 0F267480 0F261B30
- 0F268E80 0F263530
- 0F266E80 0F261530
- 0F269880 0F263F30
- 0F268480 0F262B30
- 0F266C80 0F261330
- 0F267680 0F261D30
- 0F268280 0F262930
- 0F267E80 0F262530
- 0F269A80 0F264130
- 0F269C80 0F264330
- 0F269E80 0F264530
- 0F26A080 0F264730
- 0F26A280 0F264930
- 0F26A480 0F264B30
- 0F26A680 0F264D30
- 0F26A880 0F264F30
- english japanese
- AE38C4 0F25A8F0 0F254E20
- AE38E8 0F25B8F0 0F255E20
- AE390C 0F25F070 0F2595A0 palette for in-game menu
- AE392C 0F25F0B0 0F2595E0 Retry 40x16.ci8
- AE3948 0F25F1B0 0F259724 Settings 64x16.ci8
- AE3964 0F25F334 0F2598C8 Quit 24x16.ci8
- AE3980 0F2610B0 0F25BB30
- AE39AC 0F25F400 0F2599EC Change Machine 64x16.ci8
- AE39C8 0F243290 0F243B30
- AE39EC 0F25F400 0F2599EC Change Machine 64x16.ci8
- AE3A14 0F25F69C 0F259BF4 Change Course 64x16.ci8
- AE3A30 0F25F914 0F259DC0 Ghost Save 64x16.ci8
- AE3A4C 0F25FAD0 0F259F68
- AE3A68 0F261224 0F25BC9C
- AE3A84 0F25FD70 0F25A278 Saving 40x16.ci8
- AE3AA0 0F2636F0 0F25DF34
- AE3ABC 0F2637DC 0F25E00C
- AE3AD8 0F261364 0F25BE90
- AE3AF4 0F261528 0F25C000
- AE3B10 0F2638B4 0F25E0E0
- AE3B2C 0F263648 0F25DE8C
- AE3B48 0F26369C 0F25DEE0
- AE3B64 0F25FE94 0F25A45C
- AE3B80 0F26008C 0F25A5D8 To Disk 40x16.ci8
- AE3B9C 0F2601C0 0F25A73C
- AE3BB8 0F25CCF0 0F257220
- AE3BD8 0F25D650 0F257B80
- AE3C64 0F25BAF0 0F256020
- AE3CA0 0F25CAF0 0F257020
- AE2D08 0F25F69C 0F259BF4 Change Course 64x16.ci8
- AE3D24 0F25D858 0F257D88
- AE3D40 0F25E060 0F258590
- AE3D5C 0F25E868 0F258D98
- AE3F34 0F25D858 0F257D88
- AE3F40 0F25E060 0F258590
- AE3F4C 0F25E868 0F258D98
- AEB0BC 0F25F070 0F2595A0
- AEB248 0F25F070 0F2595A0
- AEB6CC 0F25F070 0F2595A0
- AEBE40 0F25F070 0F2595A0
- AEC7AC 0F25F070 0F2595A0
- AECB14 0F25F070 0F2595A0
- AECD5C 0F25F070 0F2595A0
- AED628 0F25F070 0F2595A0
- AEDC44 0F25F070 0F2595A0
- AEE2BC 0F25F070 0F2595A0
- AEE82C 0F25F070 0F2595A0
- AEF034 0F25F070 0F2595A0
- AEF778 0F25F070 0F2595A0
- AF2FE8 0F243290 0F243B30
- AF8968 0F243290 0F243B30
- AFE450 0F243290 0F243B30
- AFEA60 0F243290 0F243B30
- AFFF78 0F21FFB8 0F220858
- AFFFA8 0F2207C8 0F221068
- B0362C 0F243290 0F243B30
- B03654 0F242E10 0F2436B0
- B03678 0F243210 0F243AB0
- B036B0 0F138994 0F139234
- B03CA8 0F138994 0F139234
- B043E4 0F243290 0F243B30
- B05308 0F242E10 0F2436B0
- B05424 0F243210 0F243AB0
- B12744 0F000004 0F000004 title 1
- B21600 0F1C417C 0F1C4A1C woman
- B21BBC 0F1C6754 0F1C6FF4 See you again!
- B22038 0F1C70B4 0F1C7954 announcer
- B247A4 0F25F070 0F2595A0
- B247C0 0F138AB8 0F139358
- B247DC 0F26176C 0F25C2CC OPTIONS 96x24
- B247F8 0F2629A8 0F25D428 Erase all saved data?
- B24814 0F262ED0 0F25D928 w/o 32x16.ia8
- B24830 0F262FB4 0F25D9D0 with 32x16.ia8
- B2484C 0F263190 0F25DB40 EXIT 40x16.ia8
- B24868 0F263230 0F25DBE0 +1 32x16.ia8
- B24884 0F2632E8 0F25DC98
- B248A0 0F2634A4 0F25DDA0
- B248BC 0F263648 0F25DE8C
- B248D8 0F26369C 0F25DEE0
- B248F4 0F2637DC 0F25E00C
- B24910 0F2636F0 0F25DF34
- B2497C 0F000000 0F000000
- B249D4 0F014A68 0F014A68 title 2
- B24A38 0F026348 0F026348 title 3
- B25520 0F000004 0F000004 title 1
- B2558C 0F138AB8 0F139358
- B2563C 0F26176C 0F25C2CC OPTIONS 96x24
- B2565C 0F25F070 0F2595A0
- B25784 0F263648 0F25DE8C
- B257E8 0F26369C 0F25DEE0
- B25930 0F2629A8 0F25D428 Erase all saved data?
- B25948 0F25F070 0F2595A0
- B259BC 0F263648 0F25DE8C
- B25A18 0F26369C 0F25DEE0
- B2B948 0F256900 0F250E30
- B2B968 0F243410 0F243CB0
- B2B984 0F243610 0F243EB0
- B2B9A0 0F243710 0F243FB0
- B2B9BC 0F243910 0F2441B0
- B2B9D8 0F243B10 0F2443B0
- B2B9F4 0F243D10 0F2445B0
- B2BA10 0F243F10 0F2447B0
- B2BA2C 0F244110 0F2449B0
- B2BA48 0F244310 0F244BB0
- B2BA64 0F244510 0F244DB0
- B2BA80 0F244710 0F244FB0
- B2BA9C 0F244910 0F2451B0
- B2BAB8 0F244B10 0F2453B0
- B2BAD4 0F244D10 0F2455B0
- B2C680 0F256900 0F250E30
- B340A4 0F25F070 0F2595A0
- B34114 0F26064C 0F25AC00 Erase saved data for this course? 96x32.ci8
- B34130 0F260C64 0F25B4A0 Erase saved data for this course? 96x32.ci8
- B3414C 0F263648 0F25DE8C
- B34168 0F26369C 0F25DEE0
- B34184 0F2637DC 0F25E00C
- B341A0 0F2636F0 0F25DF34
- B341BC 0F13A9E0 0F13B280 Ghost bubble
- B341D8 0F25FE94 0F25A45C
- B341F4 0F26008C 0F25A5D8 To Disk 40x16.ci8
- B3554C 0F13A9E0 0F13B280 Ghost bubble
- B3571C 0F25F070 0F2595A0
- B3582C 0F25F070 0F2595A0
- B358A0 0F263648 0F25DE8C
- B358FC 0F26369C 0F25DEE0
- B36310 0F25F070 0F2595A0
- BE5E30 0F25F070 0F2595A0
- BE5E4C 0F25F334 0F2598C8 Quit 24x16.ci8
- BE5E68 0F2610B0 0F25BB30
- BE6020 0F25F070 0F2595A0
- options on record page
- B33D00 8009B170
- B36D50
- 00000000 00000003 0F25F69C 0040 0010 Change Course 64x16.ci8
- 00000000 00000002 0F25F334 0018 0010 Quit 24x16.ci8
- 00000000 00000000 0F260460 0040 0010 Clear Record 64x16.ci8
- 00000000 00000001 0F260A98 0040 0010 Clear Ghost 64x16.ci8
- 00000000 00000004 8009F360 0040 0010 Copy Ghost
- B36E58 B37660 8009E2C0 8009EAC8 どのゴ一ストをコピーしますか? 128x16.ci8 Which file would you like to copy?
- B376A8 B37EB0 8009EB10 8009F318 どへコピーしますか? 128x16.ci8 Copy to which location?
- B37EF8 B38300 8009F360 8009F768 ゴーストコピー 64x16.ci8 Copy Ghost
- 0000DEF7 8C63294B 10854A53 18C74211 AD6BC631 BDEFFFFF CE732109 5295EF7B 5AD70843 94A59CE7 6319F7BD B5AD39CF D6B56B5B 7BDF739D 318DE739 A5298421
- B38348 B38750 8009F7B0 8009FBB8 コピーしました, 64x16.ci8 Copied.
- 000039CF 2109D6B5 6B5B4A53 18C70843 42118421 CE73BDEF C631AD6B F7BD94A5 739D1085 52957BDF B5ADFFFF 9CE7294B 8C63318D E739DEF7 5AD7EF7B 6319A529
- B38798 B38BA0 8009FC00 800A0008 カセットゴースト 64x16.ci8 Cartridge Ghost
- B38BE8 B38FF0 800A0050 800A0458 ディスクゴースト1 64x16.ci8 Disk Ghost 1
- B39038 B39440 800A04A0 800A08A8 ディスクゴースト2 64x16.ci8 Disk Ghost 2
- B39488 B39890 800A08F0 800A0CF8 ディスクゴースト3 64x16.ci8 Disk Ghost 3
- B398D8 B3A8E0 800A0D40 800A1D48 コピーしたいティスクた\nいれかえてください。 128x32.ci8 Please select the slot on the disk to copy to.
- 00110000 0F134D64 00400012 00000144 novice
- 00110000 0F134EAC 00400012 0000014C standard
- 00110000 0F134FFC 00400012 00000149 expert
- 00110000 0F13514C 00400012 0000014E master
- +_+
- general images pushed to different offsets:
- D140 shared/tab/0x200.file.48x16.c16
- D740 shared/0xE00.load.48x16.i4
- D8C0 shared/0xF80.delete.48x16.i4
- trackedit
- "Node" needs to preceed numeral in info window. Those E4 texrects need to change value, and surprise surprise they're generated.
- NODE 0004 001C 18
- 1st 001F 0029 C->A
- 2nd 0029 0035 C
- @800E23B4 0xBD1F4C second digit lrx
- ADDIU T3,S1,000F lrx 2 -> lrx 1/ulx 2 262B0029 ADDIU T3,S1,0029
- ...
- @800E2418 0xBD1FB0 skip first digit if zero
- 10A0005D BEQ A1,R0,800E2590 -> 10A00059
- ...
- @800E24FC 0xBD2094 first digit texrect
- ADDIU T8,S1,000F lrx 1 -> lrx 2 (A2) to 800E2410 26380035 ADDIU T8,S1,0035
- SLL T7,T8,0x2 to 800E2414 00187880
- ADDIU T6,A0,0008
- SW T6,0278 (SP)
- ANDI T9,T7,0FFF to 800E2418 31F90FFF
- SLL T6,T9,0xC -> to 800E241C 00193300 SLL A2,T8,0xC
- ADDIU T7,S0,000C
- LUI AT,E400
- OR T8,T6,AT -> 0161C025 OR T8,T3,AT
- SLL T9,T7,0x2
- ANDI T6,T9,0FFF
- OR T7,T8,T6
- ADDIU T9,S1,0003 ulx -> 001E
- SLL T8,T9,0x2
- ANDI T6,T8,0FFF
- SW T7,0000 (A0)
- SLL T7,T6,0xC
- OR T9,T7,T0
- SW T9,0004 (A0)
- ...
- @800E2678 0xBD2210 second digit texrect (A2 unused until this point)
- ADDIU A2,S1,001B lrx 2 -> ulx Node 26260004 ADDIU A2,S1,0004
- SLL A2,A2,0x2
- ANDI A2,A2,0FFF
- SLL A2,A2,0xC
- LUI AT,E400 3C01E400 move to 800E2678
- ADDIU T6,A0,0008
- ANDI T1,T1,0FFF
- SW T6,0278 (SP)
- OR T7,A2,AT 00C17825 move to 800E267C, before ADDIU A2,S1,00**
- OR T9,T7,T1
- OR T8,T3,T0
- SW T8,0004 (A0)
- SW T9,0000 (A0)
- ...
- @800E26F0 0xBD2288 Node image
- LUI T9,0900
- ADDIU T9,T9,1788
- ...
- @800E27A8 0xBD2340 Node texrect
- LW A1,0278 (SP)
- ADDIU T8,S1,0033 lrx -> 001C
- SLL T6,T8,0x2
- ADDIU T9,A1,0008
- SW T9,0278 (SP)
- ANDI T7,T6,0FFF
- SLL T9,T7,0xC
- OR T8,T9,AT
- OR T6,T8,T1
- OR T7,A2,T0
- SW T7,0004 (A1)
- SW T6,0000 (A1)
- 800EDE68(p->target, value, min_digits) # convert at least A2 digits from numeral A1 to string A0
- +_+
- Options menu:
- 801195EC 0xC09184 X/Y for options on/off tags
- BB 44 -> 41
- BB 54 -> 51
- BB 70 -> 71
- BB 80 -> 82
- BB 90 -> 92
- +_+
- Car edit namespace 04
- 0xC19038 80138B30 48x16 save convert to "load", since that's in shared namespace
- switch 80138B30 to 04000D80 "save as"
- AD8410, C127DC+C127F8
- switch 04001500 to 80138B30 "load"
- AD83EC, C126BC+C126D8
- 0xC191B8 80138CB0 48x16 delete
- switch these around
- 0xC18898, 0x240 bin 80138390.machine_name.48x12.i8
- C12038+C1203C; w C1201C, h C12018
- 0xC18AD8, 0x360 bin 801385D0.settings.72x12.i8
- C12084+C1209C; w C1206C, h C12070
- 0xC18E38, 0x200 bin 80138930.weight.32x16.i8
- C0FFF4+C10014; w C0FFFC, h C10000; x C1001C, y C10010
- 07008780
- USA has a slightly different lineup; conversion table here
- size Japanese English
- 0x180 04000000 04000000 caredit/tab/parts.0x0.48x16.i4 AD852C
- 0x180 04000180 04000180 caredit/tab/design.0x180.48x16.i4 AD8550
- 0x180 04000300 04000300 caredit/tab/settings.0x300.48x16.i4 AD8574
- 0x600 04000480 -------- tab_machine_file-48x16.c16
- 0x180 04000A80 04000480 caredit/tab/mark.0x480.48x16.i4 AD8370, C1286C+C12888
- 0x180 04000C00 04000600 caredit/tab/color.0x600.48x16.i4 AD8394, C128B4+C128D0, C128FC+C12918, C12988+C129A4, C12A14+C12A30, C12AA0+C12ABC
- 0x180 04000D80 04000780 caredit/tab/body.0x780.48x16.i4 AD8288, C1293C+C1295C
- 0x180 04000F00 04000900 caredit/tab/line.0x900.48x16.i4 AD82AC, AD834C, C12824+C12840, C129C8+C129E8
- 0x180 04001080 04000A80 caredit/tab/number.0xA80.48x16.i4 AD82D0, C12A54+C12A74
- 0x180 04001200 04000C00 caredit/tab/cockpit.0xC00.48x16.i4 AD82F4, C12AE0+C12B00
- 0x180 04001380 -------- label_machine_name-48x16.i4
- 0x180 04001500 -------- option_machine_load-48x16.i4 AD83EC, C126BC+C126D8
- 0x180 04001680 04000D80 caredit/tab/save_as.0xD80.48x16.i4
- 0x180 04001800 04000F00 caredit/tab/use.0xF00.48x16.i4 AD848C, C1274C+C12768
- 0x180 04001980 04001080 caredit/tab/clear.0x1080.48x16.i4 AD84B0, C12794+C127B0
- 0x240 04001B00 04001200 caredit/tab/line/1.0x1200.24x12.c16 AD8050
- 0x240 04001D40 04001440 caredit/tab/line/2.0x1440.24x12.c16 AD8074
- 0x240 04001F80 04001680 caredit/tab/line/3.0x1680.24x12.c16 AD8098
- 0x240 040021C0 040018C0 caredit/tab/line/4.0x18C0.24x12.c16 AD80BC
- 0x240 04002400 04001B00 caredit/tab/line/5.0x1B00.24x12.c16 AD80E0
- 0x240 04002640 04001D40 caredit/tab/mark/1.0x1D40.24x12.c16 AD8138
- 0x240 04002880 04001F80 caredit/tab/mark/2.0x1F80.24x12.c16 AD815C
- 0x240 04002AC0 040021C0 caredit/tab/mark/3.0x21C0.24x12.c16 AD8180
- 0x240 04002D00 04002400 caredit/tab/mark/4.0x2400.24x12.c16 AD81A4
- 0x240 04002F40 04002640 caredit/tab/mark/5.0x2640.24x12.c16 AD81C8
- 0x240 04003180 04002880 caredit/tab/mark/6.0x2880.24x12.c16 AD81EC
- 0x240 040033C0 04002AC0 caredit/tab/mark/7.0x2AC0.24x12.c16 AD8210
- 0x240 04003600 04002D00 caredit/tab/mark/8.0x2D00.24x12.c16 AD8234
- 0x200 04003840 04002F40 caredit/settings/body.0x2F40.32x16.ia8 C15834+C1584C, C159B4+C159CC
- 0x200 04003A40 04003140 caredit/settings/boost.0x3140.32x16.ia8 C1585C+C15870, C159DC+C159F0
- 0x200 04003C40 04003340 caredit/settings/grip.0x3340.32x16.ia8 C15884+C15898, C15A04+C15A18
- 0x300 04003E40 04003540 caredit/settings/A_lit.0x3540.24x16.c16 C17558
- 0x300 04004140 04003840 caredit/settings/A.0x3840.24x16.c16 C17554
- 0x300 04004440 04003B40 caredit/settings/A_hid.0x3B40.24x16.c16 C17550
- 0x300 04004740 04003E40 caredit/settings/B_lit.0x3E40.24x16.c16 C1754C
- 0x300 04004A40 04004140 caredit/settings/B.0x4140.24x16.c16 C17548
- 0x300 04004D40 04004440 caredit/settings/B_hid.0x4440.24x16.c16 C17544
- 0x300 04005040 04004740 caredit/settings/C_lit.0x4740.24x16.c16 C17540
- 0x300 04005340 04004A40 caredit/settings/C.0x4A40.24x16.c16 C1753C
- 0x300 04005640 04004D40 caredit/settings/C_hid.0x4D40.24x16.c16 C17538
- 0x300 04005940 04005040 caredit/settings/D_lit.0x5040.24x16.c16 C17534
- 0x300 04005C40 04005340 caredit/settings/D.0x5340.24x16.c16 C17530
- 0x300 04005F40 04005640 caredit/settings/D_hid.0x5640.24x16.c16 C1752C
- 0x300 04006240 04005940 caredit/settings/E_lit.0x5940.24x16.c16 C17528
- 0x300 04006540 04005C40 caredit/settings/E.0x5C40.24x16.c16 C17524
- 0x300 04006840 04005F40 caredit/settings/E_hid.0x5F40.24x16.c16 C17520
- +_+
- Fake EUC_JP; A5 is stripped off and fixed value subtracted to create an offset.
- pointers at 0xB1A63C.
- 0xB1A7B8 8007BEA0 8007BEA0 エイトロード FIGURE EIGHT
- 0xB1A7C8 8007BEB0 8007BEAE ハイスピード HIGH SPEED
- 0xB1A7D8 8007BEC0 8007BEBA パイプ PIPE
- 0xB1A7E0 8007BEC8 8007BEC0 スクリュー CORKSCREW
- 0xB1A7EC 8007BED4 8007BECA シリンダー CYLINDER
- 0xB1A7F8 8007BEE0 8007BED4 ハイジャンプ HIGH JUMP
- 0xB1A808 8007BEF0 8007BEDE ロールオーバー INVERTED LOOP
- 0xB1A818 8007BF00 8007BEEC ジャンプジャンプ MULTI JUMP
- 0xB1A82C 8007BF14 8007BEF8 アップダウン UP AND DOWN
- 0xB1A83C 8007BF24 8007BF04 テクニカル TECHNIQUE
- 0xB1A848 8007BF30 8007BF0E クイックターン QUICK TURN
- 0xB1A858 8007BF40 8007BF1A ステップアップロード DANGEROUS STEPS
- 0xB1A870 8007BF58 8007BF2A ジグザグジャンプ ZIG-ZAG JUMP
- 0xB1A884 8007BF6C 8007BF38 ウェーブロード WAVY ROAD
- 0xB1A894 8007BF7C 8007BF42 ムーンサルト DOUBLE SOMERSAULT
- 0xB1A8A4 8007BF8C 8007BF54 スリムライン SLIM LINE
- 0xB1A8B4 8007BF9C 8007BF5E ハーフパイプ HALF PIPE
- 0xB1A8C4 8007BFAC 8007BF68 クランククランク JUMPS OF DOOM
- 0xB1A8D8 8007BFC0 8007BF76 レインボーロード PSYCHEDELIC EXPERIENCE
- 0xB1A8EC 8007BFD4 8007BF8E ミラーロード MIRROR ROAD
- 0xB1A8FC 8007BFE4 8007BF9A シリンダー&ハイジャンプ CYLINDER & HIGH JUMP
- 0xB1A914 8007BFFC 8007BFB0 ウェーブパニック WAVE PANIC
- 0xB1A928 8007C010 8007BFBC スネークロード SNAKE ROAD
- 0xB1A938 8007C020 8007BFC8 ビッグハンド DEADLY CURVES
- 0xB1A948 8007C030 8007C074
- 0xB1A94C 8007C034 8007C074
- 0xB1A950 8007C038 8007C074
- 0xB1A954 8007C03C 8007C074
- 0xB1A958 8007C040 8007C074
- 0xB1A95C 8007C044 8007C074
- 0xB1A960 8007C048 8007BFD6 アウトサイドループ OUTSIDE LOOP
- 0xB1A974 8007C05C 8007BFE4 シリンダーループ CYLINDER LOOPS
- 0xB1A988 8007C070 8007BFF4 ダイビング HIGH DIVE
- 0xB1A994 8007C07C 8007BFFE ジグザグクランク ZIG-ZAG CRANK
- 0xB1A9A8 8007C090 8007C00C エックス CROSS ROAD
- 0xB1A9B4 8007C09C 8007C018 ジャポン JAPAN
- 0xB1A9C0 8007C0A8 8007C01E スリムハーフパイプ SLIM HALF PIPE
- 0xB1A9D4 8007C0BC 8007C02E ストレートジャンプ STRAIGHT JUMPS
- 0xB1A9E8 8007C0D0 8007C03E トラップロード TRAP ROAD
- 0xB1A9F8 8007C0E0 8007C048 180ローリング 180 ROLLOVER
- 0xB1AA08 8007C0F0 8007C056 スター GREAT STAR
- 0xB1AA10 8007C0F8 8007C062 ビッグフット VERY DEADLY CURVES
- 0xB1AA20 8007C108 8007C074
- 0xB1AA24 8007C10C 8007C074
- 0xB1AA28 8007C110 8007C074
- 0xB1AA2C 8007C114 8007C074
- 0xB1AA30 8007C118 8007C074
- 0xB1AA34 8007C11C 8007C074
- 0xB1AA38 8007C120 8007C074
- 0xB1AA3C センタク デキマセン selection made?
- 0xB1AA50 センタク デキマセン
- 0xB1AA64
- probably printed via 800AD4A4(p->txt, font=4, spacing=0) at 8007A438
- font = 3 font for main track names (16x16)
- font = 4 font for descriptions (8x8)
- Font 4 remaps letters to defaults using a ludicris pointer table at 800C0458 (0xB5AAE0).
- Make entries for the missing letters someplace, then shove pointers here.
- 800BFDE8 A 800BFDE8
- 800BFDE8 B -> 800C23B0
- 800BFDE8 C -> 800C23C0
- 800BFDF8 D 800BFDF8
- 800BFE08 E 800BFE08
- 800BFDE8 F -> 800C23D0
- 800BFDE8 G -> 800C23E0
- 800BFDE8 H -> 800C23F0
- 800BFDE8 I -> 800C2400
- 800BFDE8 J -> 800C2410
- 800BFDE8 K -> 800C2420
- 800BFDE8 L -> 800C2430
- 800BFE18 M 800BFE18
- 800BFDE8 N -> 800C2440
- 800BFDE8 O -> 800C2450
- 800BFDE8 P -> 800C2460
- 800BFDE8 Q -> 800C2470
- 800BFDE8 R -> 800C2480
- 800BFDE8 S -> 800C2490
- 800BFDE8 T -> 800C24A0
- 800BFDE8 U -> 800C24B0
- 800BFDE8 V -> 800C24C0
- 800BFDE8 W -> 800C24D0
- 800BFDE8 X -> 800C24E0
- 800BFDE8 Y -> 800C24F0
- 800BFDE8 Z -> 800C2500
- 0xB5AB90 800C2510 00040000 0F125AF4 00080008 00000000 c
- 0xB5AB94 800C2520 00040000 0F125B34 00080008 00000000 r
- 0xB5AB98 800C2530 00040000 0F125B74 00080008 00000000 s
- 0xB5AB8C 800C2540 00040000 0F125BB4 00080008 00000000 .
- maybe remap c, r, s to unused punctuation to avoid redoing the whole blasted interpretter.
- 0x2C-0x2F open ('*', '(', ')')
- Set spacing for c, r, s:
- Could make some room by condensing tables starting at 800C1F90 (0xB5C618) into single bytes.
- Pushes above to 800C23B0 (0xB5CA38).
- New pointers:
- 800C1F90 0x60 -> 800C1F90 0x30
- 800C1FF0 0x60 -> 800C1FC0 0x30
- 800C2050 0x1D4 -> 800C1FF0 0xEA
- 800C2224 0x1D8 -> 800C20DA 0xEC
- 800C23FC 0x1D8 -> 800C21C6 0xEC
- 800C25D4 0x1DC -> 800C22B2 0xEE
- 0x276 empty
- alter pointers and offsets in tables
- 0xB47A50
- 0xB47A60
- 0xB47A70
- 0xB47A80
- 0xB47A90
- 0xB47AA0
- 0xB47B00
- 00000021 NADA
- 0062C021 ADDU T8,V1,V0
- BEQ
- 93070000 LBU A3,0000 (T8)
- 0xB47B8C
- 0xB47B9C
- 0xB47BAC
- 0xB47BBC
- 0xB47BCC
- 0xB47BDC
- 0xB47C20
- 00000021 NADA
- 0242C821 ADDU T9,S2,V0
- 93280000 LBU T0,0000 (T9)
- 0xB47E5C 1FC0
- 0xB47E80 1FF0
- 0xB47EA4 20DA
- 0xB47EC8 21C6
- 0xB47EEC 22B2
- 0xB47F10
- 0xB4800C
- 00000021 NADA
- 03D1C821 ADDU T9,S8,S1
- 93280000 LBU T0,0000 (T9)
- 0xB48124 1FC0
- 0xB48144 1FF0
- 0xB48164 20DA
- 0xB48184 21C6
- 0xB481A4 22B2
- 0xB481C4
- 0xB482FC
- 00000021 NADA
- 02F17021 ADDU T6,S7,S1
- 91CF0000 LBU T7,0000 (T6)
- 800ADFFC
- ADDIU S7,S7,27B0 ->
- 800AE00C
- 00000021 NADA
- 02E2C021 ADDU T8,S7,V0
- @8007A428
- width = call 800AD4A4(8007BD24[track+cup], 4, 0)
- cup = @8007C2A0
- track = @8007B9D8
- description = 8007BD24[track+cup]
- if width < 0:
- width += 1
- xpos = 0xA0 - width/2
- DL = call 800AD758(p->DL, xpos, 0xD2, description, 0, 4, 0)
- return DL
- 8007A4C4
- 800AD1E4
- accepts: A0=p->char, A1=mode (False if font type 4 else True)
- c = A0[0]
- if 'a' <= c <= 'z':
- return c - 'a' # ('a':'z') returns (0:0x19)
- elif c in range(0x7B, 0x80):
- return 1 if mode else (c - 0x31)
- elif 'A' <= c <= 'Z':
- return c - 'A' # ('A':'Z') returns (0:0x19)
- elif '0' <= c <= '9':
- return c - 0x10 # ('0':'9') returns (0x20:0x29)
- elif c == ' ':
- return -1
- elif c & 0x80:
- c += 0x5F # (0xA1:0xAB) returns (0:0xA)
- # call 800C27C4[c]()
- if c in (0, 2, 0xA):
- # 800AD2CC
- return call 800AD12C(A0[1])
- elif c == 3:
- # 800AD2AC
- return call 800AD0A4(A0[1])
- elif c == 4:
- # 800AD2BC
- return call 800AD108(A0[1])
- else:
- return 1
- elif c < 0x3F:
- c -= 0x21
- # call 800C27F0[c]()
- if c == 0:
- return 0x1F # '!'
- elif c == 1:
- return 0x1B # '"'
- elif c == 3:
- return 0x1F # '$'
- elif c == 5:
- return 0x1C # '&'
- elif c == 6:
- return 0x1A # "'"
- elif c == 7:
- return 0x2D # '('
- elif c == 8:
- return 0x2E # ')'
- elif c == 9:
- return 0x2C # '*'
- elif c == 0xA:
- return 0x1D # '+'
- elif c == 0xB:
- return 0x2F # ','
- elif c == 0xC:
- return 0x1E # '-'
- elif c == 0xD:
- return 0x2B # '.'
- elif c == 0x19:
- return 0x2A # ':'
- elif c == 0x1B:
- return 0x2C # '<'
- elif c == 0x1D:
- return 0x2D # '>'
- else:
- return -2
- elif c == "_":
- return 0x2E
- else:
- return -2
- 800AD394
- 800AD4A4 V0=width of VWF string A0, using font type A1 and spacing A2
- accepts: A0=p->string, A1=font type, A2=spacing
- s, l, font = A0, 0, A1
- # uses pointer table at 800C2880
- if font == 2:
- func, def = 800C1FF0, 3
- elif font == 3:
- func, def = 800C2050, 6
- elif font == 4:
- func, def = 800C2224, 3
- elif font == 5:
- func, def = 800C23FC, 3
- elif font == 6:
- func, def = 800C25D4, 3
- else:
- func, def = 800C1F90, 7
- # 800AD570
- while s[0]:
- v = call 800AD1E4(s, font!=4)
- if v >= 0:
- l += func[v]
- elif v == -1:
- l += def
- l += A2
- s += 1 if s[0] >= 0 else 2
- return l
- 800AD610
- 800AD758 V0=p->DL A0 after printing string A3 at (A1, A2) using spacing SP+18 and font type SP+14 (SP+10 is some kind of mode?)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->string, SP+10=spacing, SP+14=font type, SP+18=spacing
- # call 800C28B0[font-1]()
- if font==2:
- func, SP+6C, SP+70 = 800C1FF0, 3, 800BF6A0
- ypos -= 8
- elif font==3:
- func, SP+6C, SP+70 = 800C2050, 6, 800BFA40
- ypos -= 16
- elif font==4:
- func, SP+6C, SP+70 = 800C2224, 3, 800C0458
- ypos -= 8
- elif font==5:
- func, SP+6C, SP+70 = 800C23FC, 3, 800C09A4
- ypos -= 16
- elif font==6:
- func, SP+6C, SP+70 = 800C25D4, 3, 800C1030
- ypos -= 16
- else:
- func, SP+6C, SP+70 = 800C1F90, 7, 800BF340
- ypos -= 16
- # 800AD898
- if not s[0]:
- return
- # 800AD8B8
- width = call 800AD1E4(s, font==4)
- if width>=0:
- call 800AE17C(@SP+70[]
- # 800AD99C
- 800ADA1C
- 800ADF74 print LCD-style digits A3 to DL A0 at (A0, A1)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=value
- 8007BEA0
- 8007BEAE
- 8007BEBA
- 8007BEC0
- 8007BECA
- 8007BED4
- 8007BEDE
- 8007BEEC
- 8007BEF8
- 8007BF04
- 8007BF0E
- 8007BF1A
- 8007BF2A
- 8007BF38
- 8007BF42
- 8007BF54
- 8007BF5E
- 8007BF68
- 8007BF76
- 8007BF8E
- 8007BF9A
- 8007BFB0
- 8007BFBC
- 8007BFC8
- 8007BFD6
- 8007BFE4
- 8007BFF4
- 8007BFFE
- 8007C00C
- 8007C018
- 8007C01E
- 8007C02E
- 8007C03E
- 8007C048
- 8007C056
- 8007C062
- 0xB0AE48 0x2D680 start of racer names (same as 0xD41EC J, 0xD45BC E); pointers at 0xB099A4
- 8006C960 キャプテン ファルコン 8006C960 CAPTAIN FALCON
- 8006C978 ドクター スチュワート 8006C970 Dr. STEWART
- 8006C990 ピコ 8006C97C PICO
- 8006C998 サムライ ゴロー 8006C984 SAMURAI GOROH
- 8006C9A8 ジョディ サマー 8006C994 JODY SUMMER
- 8006C9B8 MM ガゼル 8006C9A0 MIGHTY GAZELLE
- 8006C9C4 ミスター EAD 8006C9B0 Mr. EAD
- 8006C9D4 ババ 8006C9B8 BABA
- 8006C9DC オクトマン 8006C9C0 OCTOMAN
- 8006C9E8 ゴマー&シオー 8006C9C8 GOMAR&SHIOH
- 8006C9F8 ケイト アレン 8006C9D4 KATE ALEN
- 8006CA08 ロジャー バスター 8006C9E0 ROGER BUSTER
- 8006CA1C ジェームズ マクラウド 8006C9F0 JAMES McCLOUD
- 8006CA34 レオン 8006CA00 LEON
- 8006CA3C アントニオ ガスター 8006CA08 ANTONIO GUSTER
- 8006CA50 ブラック シャドー 8006CA18 BLACK SHADOW
- 8006CA64 マイケル チェーン 8006CA28 MICHAEL CHAIN
- 8006CA78 ジャック レビン 8006CA38 JACK LEVIN
- 8006CA88 スーパー アロー 8006CA44 SUPER ARROW
- 8006CA98 ミセス アロー 8006CA50 Mrs. ARROW
- 8006CAA8 ジョン タナカ 8006CA5C JOHN TANAKA
- 8006CAB8 ビーストマン 8006CA68 BEASTMAN
- 8006CAC8 ゾーダ 8006CA74 ZODA
- 8006CAD0 ドクター クラッシュ 8006CA7C Dr. CLASH
- 8006CAE4 シルバー ニールセン 8006CA88 SILVER NEELSEN
- 8006CAF8 バイオレックス 8006CA98 BIO REX
- 8006CB08 ドラク 8006CAA0 DRAQ
- 8006CB10 ビリー 8006CAA8 BILLY
- 8006CB18 アービン ゴードン 8006CAB0 THE SKULL
- 8006CB2C ブラッド ファルコン 8006CABC BLOOD FALCON
- 8006CB40 リタイア RETIRE
- 80140570 0xC20A78 pilot names
- Pointers to these at 0xC16B5C
- 0xC20A78 80140570 MM ガゼル 80140570 MIGHTY GAZELLE
- 0xC20A84 8014057C ジョディ サマー 80140580 JODY SUMMER
- 0xC20A94 8014058C ドクター スチュワート 8014058C Dr. STEWART
- 0xC20AAC 801405A4 ババ 80140598 BABA
- 0xC20AB4 801405AC サムライ ゴロー 801405A0 SAMURAI GOROH
- 0xC20AC4 801405BC ピコ 801405B0 PICO
- 0xC20ACC 801405C4 キャプテン ファルコン 801405B8 CAPTAIN FALCON
- 0xC20AE4 801405DC オクトマン 801405C8 OCTOMAN
- 0xC20AE4 801405E8 ミスター EAD 801405D0 Mr. EAD
- 0xC20AE4 801405F8 ジェームズ マクラウド 801405D8 JAMES McCLOUD
- 0xC20AE4 80140610 ビリー 801405E8 BILLY
- 0xC20AE4 80140618 ケイト アレン 801405F0 KATE ALEN
- 0xC20AE4 80140628 ゾーダ 801405FC ZODA
- 0xC20AE4 80140630 ジャック レビン 80140604 JACK LEVIN
- 0xC20AE4 80140640 バイオレックス 80140610 BIO REX
- 0xC20AE4 80140650 アービン ゴードン 80140618 THE SKULL
- 0xC20AE4 80140664 アントニオ ガスター 80140624 ANTONIO GUSTER
- 0xC20AE4 80140678 ビーストマン 80140634 BEASTMAN
- 0xC20AE4 80140688 レオン 80140640 LEON
- 0xC20AE4 80140690 スーパー アロー 80140648 SUPER ARROW
- 0xC20AE4 801406A0 ミセス アロー 80140654 Mrs. ARROW
- 0xC20AE4 801406B0 ゴマー&シオー 80140660 GOMAR&SHIOH
- 0xC20AE4 801406C0 シルバー ニールセン 8014066C SILVER NEELSEN
- 0xC20AE4 801406D4 マイケル チェーン 8014067C MICHAEL CHAIN
- 0xC20AE4 801406E8 ブラッド ファルコン 8014068C BLOOD FALCON
- 0xC20AE4 801406FC ジョン タナカ 8014069C JOHN TANAKA
- 0xC20AE4 8014070C ドラク 801406A8 DRAQ
- 0xC20AE4 80140714 ロジャー バスター 801406B0 ROGER BUSTER
- 0xC20AE4 80140728 ドクター クラッシュ 801406C0 Dr. CLASH
- 0xC20AE4 8014073C ブラック シャドー 801406CC BLACK SHADOW
- +_+
- 80705310 generate and send ASIC read/write (A1) command at A0 for length SP+10 between LBA A2 and rdram A3
- accepts: A0=p->buffer for ASIC command, A1=mode {0:read, 1:write}, A2=LBA, A3=rdram, SP+10=length
- called by
- 80767958
- accepts:
- @80736618
- target = @S1+2000
- lba = 80771DCE[0:2] # lba 03EA/0402
- cart = @807C1BE0
- call 80734BF8(target, cart, lba) # loads cart and disk MML.hdr
- @80736630
- target = @S1+2004
- lba = 80771DCA[0:2] # lba 03E8/0400
- cart = @807C1BE4
- call 80734BF8(target, cart, lba) # loads cart and disk MML.tbl
- +_+
- controls help images:
- 07000000
- クイックカメラ quick camera
- 3Dスティック 3D stick カメラをまわす turn the camera
- ABボタン AB buttons ズームイン・ズームアウト zoom-in ・ zoom out
- スタートボタン start button エディットモードにもどろ return to edit mode
- エディットの操作説明 editor operation controls
- 3D stick 失印の趍動 ポイントムーブ move cursor or selected point
- B button キヤンセル cancel
- Z button ボイソトセレクト ダブルクリックでセンタルンゲ select point; center (screen) with double-click
- A button 決定 コースセット set course element
- start button クイックカメラに切りかえ switch to quick camera
- カメラの操作説明 camera operation controls
- L button zoom out
- R button zoom in
- + pad カメラを回.する rotate camera
- c buttons カメラを上下左右 にスライドする slide(pan) camera up, down, left, right
- +_+
- Extend beyond five chars to 7+NULL
- 800E4EA8 0xBD4A40
- 91D80004 LBU T8,0004 (T6) -> 8DD80004 LW,0004 (T6)
- 24010003 ADDIU AT,R0,0003
- 00008025 OR S0,R0,R0
- A0F80004 SB T8,0004 (A3) -> ACF80004 SW,0004 (A3)
- also this one?
- 0xBD45BC
- 91D80004 LBU T8,0004 (T6) -> 8DD80004 LW,0004 (T6)
- 24010003 ADDIU AT,R0,0003
- 00008025 OR S0,R0,R0
- A0F80004 SB T8,0004 (A3) -> ACF80004 SW,0004 (A3)
- 800F7090
- 0xBE6C28 208FB3DB00000000 ドウロ Road
- 0xBE6C30 20488FB3DB000000 Hドウロ H-Road
- 0xBE6C38 2095B29700000000 パイプ Pipe
- 0xBE6C40 BCD8DD8BB0000000 シリンダー Cylinder
- 0xBE6C48 CAB0CC95B2970000 ハーフパイプ Halfpipe
- 0xBE6C50 20C4DDC8D9000000 トンネル Tunnel
- 0xBE6C58 20BD98B0BD000000 スペース Space
- 0xBE6C60 20548FB3DB000000 Tドウロ T-Road
- 800F7150
- 0xBE6CE8 83D8AF8F グリッド grid
- 0xBE6CF0 8BAFBCAD ダッシュ dash
- 0xBE6CF8 87ACDD97 ジャンプ jump
- 0xBE6D00 C4D7AF97 トラップ trap
- 0xBE6D08 B59287AA オブジェ object
- 0xBE6D10 99B2DDC4 ポイント point maybe use "Size", since it tacks values to the end of this
- 800E3580 dynamically assembles the string from hardcoded letters, the jerks
- 90DDB8 バンク bank
- Just change the pattern string.
- 800F7274 0xBE6E0C %c%c%c -> Bank
- 800F7280 0xBE6E18 %c%c%c%c -> Width
- Clip out the first three variables, probably write centered too.
- 800F73AC 0xBE6F44 %c%c%c%d -> Course %d
- @800EA484 0xBDA01C
- 3C018003 LUI AT,8003
- NADA
- NADA
- NADA
- 3C07800F LUI A3,800F
- 27290001 ADDIU T1,T9,0001
- AC202AD0 SW R0,2AD0 (AT)
- AFA90010 SW T1,0010 (SP)
- 24E773AC ADDIU A3,A3,73AC
- NADA
- NADA
- NADA
- 8FA40028 LW A0,0028 (SP)
- 240500D8 ADDIU A1,R0,00D8
- 0C00A493 JAL 8002924C
- 24060050 ADDIU A2,R0,0050
- 00402025 OR A0,V0,R0
- @800EA4C8: move target to 800EA4B0
- @800EA4D4: move target to 800EA4BC
- 80119880 file menu options
- 0 load
- 1 save
- 2 delete
- 3 rename
- 4 (unused) protect
- 5 course select for Edit Cup tracks
- 7 copy
- ???; used w/i 800F2E4C
- unlinked, displayed if 800D6CA8 == 3 [file/submenu], 80119880 == 4 [file menu option]
- プロテクト_をかけたい_ファイル_を Please select the file you want to protect.
- せんたくしてください
- プロテクト_がすでにかかっている If the selected file is already protected
- ファイル_をせんたくすると
- プロテクト_をかいじょできます protection will be removed
- message generated from following components
- 0xBF4AC0 80104F28 プロテクト
- 800F2FC0+800F2FCC
- 800F3078+800F3080
- 800F310C+800F3114
- protect
- 0xBF4AC8 80104F30 をかけたい
- 800F2FE0+800F2FE8
- --want to apply/make
- 0xBF4AD0 80104F38 ファイル
- 800F2FFC+800F3004
- 800F30B4+800F30BC
- file
- 0xBF4AD8 80104F40 を
- 800F3018+800F3020
- 0xBF4ADC 80104F44 せんたくしてください
- 800F3038+800F3040
- please select
- 0xBF4AE8 80104F50 がすでにかかっている
- 800F3094+800F309C
- it is already ???
- 0xBF4AF4 80104F5C をせんたくすると
- 800F30EC+800F30F4
- --if you select
- 0xBF4B00 80104F68 をかいじょできます
- 800F3128+800F3130
- --can (be) cancel(ed)
- help tooltips
- 0xBF4B0C 80104F74 さくせいしたコースを テストそうこうできます。
- 800F35A4+800F35A8 BE313C+BE3140 80104F88
- Test-run the created course.
- 0xBF4B2C 80104F94 コースを ラインで ひょうじします。
- 800F35BC+800F35C0 BE3154+BE3158 80104FA7
- Display the course as a line.
- 0xBF4B44 80104FAC ポイントのおきばしょをせいげんして ちょくせんをつくりやすくします。
- 800F35D4+800F35D8 BE316C+BE3170 80104FC2
- Make it easier to draw a straight line by limitting to homeroom points. (intervals of 50)
- 0xBF4B6C 80104FD4 ベースとなるコースを つくります。
- 800F3680+800F3684 BE321C 80104FDF
- It will use this course as a base.
- 0xBF4B84 80104FEC コースのポイントを いどうなどさせます。
- 800F36C0+800F36C4 BE325C 80104FFA
- It will not be such as moving the point of course.
- 0xBF4BA0 80105008 どうろのタイプなどを へんこうします。
- 800F3700+800F3704 BE329C 80105014
- It will change, such as the type of road.
- 0xBF4BBC 80105024 どうろにおけるシカケ またはビルなどを いれます。
- 800F3740+800F3744 BE32DC 8010502E
- It will put such gimmick or building in the road.
- 0xBF4BE0 80105048 はいけいのシーンとそらを へんこうします。
- 800F377C+800F3784 BE331C 80105048
- It will change the background of the scene and the sky.
- 0xBF4BFC 80105064 BGMを へんこうします。
- 800F3798+800F37A0 BE3338 80105065
- It will change the BGM.
- 0xBF4C10 80105078 コースポイントを セットします。
- 800F37E4+800F37E8 BE3380 80105082
- It will set the course point.
- 0xBF4C28 80105090 スタートの ばしょを いどうします。
- 800F3800+800F3804 BE339C 80105095
- It will move the start location.
- 0xBF4C44 801050AC コースぜんたいを ちゅうしんにいどうします。
- 800F381C+800F3820 BE33B8 801050AE
- It will move the entire course to the center.
- 0xBF4C64 801050CC コースの しんこうほうこうを かえます。
- 800F3838+800F383C BE33D4 801050C8
- It will change the direction of travel of the course.
- 0xBF4C80 801050E8 コースぜんたいを けします。
- 800F3854+800F3858 BE33F0 801050F3
- You turn off the entire course.
- 0xBF4C94 801050FC ポイントを へいこういどうさせます。
- 800F38A0+800F38A4 BE343C 80105106
- Point I will let the parallel movement.
- 0xBF4CAC 80105114 ポイントの たかさを かえます。
- 800F38BC+800F38C0 BE3458 8010511E
- It changed the height of the point.
- 0xBF4CC4 8010512C ポイントを ちゅうしんに みちはばを かえます。
- 800F38D8+800F38DC BE3474 80105137
- You can buy a road width of the point at the center.
- 0xBF4CE4 8010514C ポイントを ちゅうしんに みちの かたむきを かえます。
- 800F38F4+800F38F8 BE3490 80105151
- The point at the center it will change the slope of the road.
- 0xBF4D0C 80105174 みちはばの ちゅうしんてんを かえます。
- 800F3910+800F3914 BE34AC 80105170
- You can buy the Chushinten of road width.
- 0xBF4D28 80105190 せんたくしたポイントを けします。
- 800F392C+800F3930 BE34C8 8010518F
- You turn off the point that you selected.
- 0xBF4D40 801051A8 せんたくしたふくすうのポイントを まっすぐにならべます。
- 800F3948+800F394C BE34E4 801051A7
- It is straight arranging a plurality point of the selected.
- 0xBF4D68 801051D0 ガードレールのある ふつうの どうろです。
- 800F3AD0+800F3AD4 BE366C 801051CF
- It is an ordinary road with guardrails.
- 0xBF4D88 801051F0 たかいガードレールがセットされる どうろです。
- 800F3AEC+800F3AF0 BE3688 801051F1
- It is a road where high guardrail is set.
- 0xBF4DA8 80105210 ガードレールがない きけんな どうろです。
- 800F3B08+800F3B0C BE36A4 8010520E
- Guardrail is there is no dangerous road.
- 0xBF4DC8 80105230 トンネルつきの どうろです。
- 800F3B24+800F3B28 BE36C0 80105233
- It is a road tunnel with.
- 0xBF4DDC 80105244 パイプじょうの なかをはしる どうろです。
- 800F3B40+800F3B44 BE36DC 8010524B
- It is a road that runs among the pipe-shaped.
- 0xBF4DF8 80105260 ハーフパイプじょうの なかをはしる どうろです。
- 800F3B5C+800F3B60 BE36F8 80105260
- It is a road that runs among the half-pipe-shaped.
- 0xBF4E18 80105280 パイプじょうの そとをはしる どうろです。
- 800F3B78+800F3B7C BE3714 8010527E
- This is the road that runs outside of the pipe-like.
- 0xBF4E34 8010529C どうろと どうろのあいだに くうかんを つくります。
- 800F3B94+800F3B98 BE3730 8010529E
- It will create a space between the road and the road.
- 0xBF4E58 801052C0 ポイントどうしのあいだに ループを つくります。
- 800F3BB0+800F3BB4 BE374C 801052BB
- We will create a loop in between of each other point.
- 0xBF4E78 801052E0 エネルギーを かいふくさせるエリアです。
- 800F3BFC+800F3C00 BE3798 801052DB
- This area is used to recover the energy.
- 0xBF4E94 801052FC いちじてきに かそくできるプレートです。
- 800F3C18+800F3C1C BE37B4 801052F9
- One thing is the manner accelerated can plate.
- 0xBF4EB0 80105318 げんそくするエリアです。
- 800F3C34+800F3C38 BE37D0 80105317
- General rule This area is used to. (dirt)
- 0xBF4EC0 80105328 すべりやすいエリアです。
- 800F3C50+800F3C54 BE37EC 80105334
- It is a slippery area.
- 0xBF4ED4 8010533C ふむと ジャンプするプレートです。
- 800F3C6C+800F3C70 BE3808 80105349
- Hmm and it is the plate to jump.
- 0xBF4EEC 80105354 ふむと とばされてダメージも うけるワナです。
- 800F3C88+800F3C8C BE3824 8010535B
- It is a trap that also receives damage by being skipped When you collide
- 0xBF4F0C 80105374 はいけいの ゲートるいです。
- 800F3CA4+800F3CA8 BE3840 80105379
- It is a gate Rui background.
- 0xBF4F20 80105388 はいけいの ビル いわなどです。
- 800F3CC0+800F3CC4 BE385C 80105394
- Background building rocks and so on.
- 0xBF4F38 801053A0 はいけいの かんばんるいです。
- 800F3CDC+800F3CE0 BE3878 801053AF
- It is a sign Rui background.
- 0xBF4F4C 801053B4 コースファイルを よみだします。
- 800F3994+800F3998 BE3530 801053CB
- You will read the course files.
- 0xBF4F60 801053C8 コースファイルを かきこみます。
- 800F39B0+800F39B4 BE354C 801053E0
- You will write the course files.
- 0xBF4F74 801053DC コースファイルの なまえを へんこうします。
- 800F39CC+800F39D0 BE3568 801053F5
- It will change the name of the course files.
- 0xBF4F90 801053F8 コースファイルを けします。
- 800F39E8+800F39EC BE3584 8010540D
- Turn off the course files.
- 0xBF4FA4 8010540C コースファイルを ほかへ コピーします。
- 800F3A04+800F3A08 BE35A0 8010541E
- Copy the course files to another.
- 0xBF4FC0 80105428 コースファイルを エディットカップに エントリーします。
- 800F3A3C+800F3A64 BE35FC 80105437
- I will entry the course files to edit cup.
- 0xBF4FE4 8010544C エントリーしているコースを かいじょします。
- 800F3A70+800F3A74 BE360C 80105455
- It will release a course that entry.
- 0xBF5004 8010546C エントリーしているコースを すべてかいじょします。
- 800F3A88+800F3A8C BE3624 80105470
- All of the courses that are entry it will release.
- 8074B120 prints "No Title"
- 8074B770
- 800290D0 V0 = p->end of A2 bytes copied from A1 to A0
- accepts: A0=p->target, A1=p->src, A2=length
- return A2 + call 8074B960(A0, A1, A2)
- 800290F4 V0=updated DL A0 for char A3 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=char
- 80032ACC = A3 // 96
- if @80032ACC == 0: # ascii
- dl.append(DE000000, 07020850)
- elif @80032ACC == 1: # hana
- dl.append(DE000000, 07020890)
- A3 -= 0x60
- elif @80032ACC == 2: # kana
- dl.append(DE000000, 070208D0)
- A3 -= 0xC0
- lrx = xpos + 8
- lry = ypos + 8
- dl.append(E4000000 | (lrx << 14) | (lry << 2), (xpos << 14) | (ypos << 2))
- dl.append(E1000000, (A3 & 15) << 0x18 | (A3 >> 4) << 8)
- dl.append(F1000000, 04000400)
- 80029218 V0=charcode for char A0
- V0=A0 + 0x40 if (not A0 < 0x80) and (@80032AD0) else A0 - 0x20
- ASCII (0x20:0x80) -> (0:0x60)
- hana (0x80:0xE0) -> (0x60:0xC0)
- kana (0x80:0xE0) -> (0xC0:0x120)
- 8002924C V0=p->DL A0 for printed tooltip string A3 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->string
- 80032ACC = -1
- l = call 8074B120(800290D0, SP+48, s, SP+160) # returns length of expanded string A2 encoded to A1 using function A0 and vars @A3
- if l < 0:
- return dl
- for i in SP+48: # technically for l
- if i == 1:
- 80032AD0 = 0
- elif i == 2:
- 80032AD0 = 1
- dl = call 800290F4(dl, xpos, ypos, call 80029218(i))
- xpos += 8
- return dl
- 80029350
- alter widths of copied stuff; centered is 6 wchars * 8, or 48
- This works because upper byte of SP+98 will always be zero (simple bool value stored as a word)
- @800E32EC
- if @801197EC+30:
- SP+278 = call 8002924C(@SP+278, S1, S0, 800F7090 + T0*8)
- else:
- SP+90[0:5] = 800F7150[0:5]
- 80032AD0 = 0
- SP+278 = call 8002924C(@SP+278, S1, S0, SP+90)
- @800E3350
- hacked
- @800E32F0 0xBD2E88
- 3C18800F LUI T8,800F
- 27047150 ADDIU A0,T8,7150
- 51E00005 BEQL T7,R0,800E3310
- AD200000 SW R0,0000 (T1)
- 000870C0 SLL T6,T0,0x3
- 27197090 ADDIU T9,T8,7090
- 00000021 NADA
- 032E2021 ADDU A0,T9,T6
- @800E3310
- 24050008 ADDIU A1,R0,0008
- 0C03099D JAL 800C2674
- AFA40090 SW A0,0090 (SP)
- 8FB90090 LW T9,0090 (SP)
- 00021042 SRL V0,V0,0x1
- 26250018 ADDIU A1,S1,0018
- 00A22823 SUBU A1,A1,V0
- 8F2E0000 LW T6,0000 (T9)
- 8F2F0004 LW T7,0004 (T9)
- 8FA40278 LW A0,0278 (SP)
- 27A70090 ADDIU A3,SP,0090
- 02003025 OR A2,S0,R0
- AFAE0090 SW T6,0090 (SP)
- 0C00A493 JAL 8002924C
- AFAF0094 SW T7,0094 (SP)
- AFA20278 SW V0,0278 (SP)
- @800E3350
- new function: phys.width of string A0 up to optional length A1
- 800C2670 0xB5CCF8 V0=physical width of Null-terminated string A0
- 2405FFFF ADDIU A1,R0,FFFF
- 800C2674 0xB5CCFC V0=physical width of A1 chars in string A0
- 3C03800C LUI V1,800C
- 00A42821 ADDU A1,A1,A0
- 00000825 OR AT,R0,R0
- 00001025 OR V0,R0,R0
- 24080001 ADDIU T0,R0,0001
- 24090002 ADDIU T1,R0,0002
- 908B0000 LBU T3,0000 (A0)
- @loop
- 1160000C BEQ T3,R0,return
- 006B5021 ADDU T2,V1,T3
- 51680007 BEQL T3,T0,+7
- 00000825 OR AT,R0,R0
- 51690005 BEQL T3,T1,+5
- 24010060 ADDIU AT,R0,0060
- 01415021 ADDU T2,T2,AT
- 914C2530 LBU T4,2530 (T2)
- 318D000F ANDI T5,T4,000F
- 004D1021 ADDU V0,V0,T5
- 24840001 ADDIU A0,A0,0001
- 1485FFF4 BNE A0,A1,loop
- 908B0000 LBU T3,0000 (A0)
- @return
- 03E00008 JR RA
- 00000000 NOP
- Do a widths table at 800C2550 (0xB5CBD8):
- F0 shift left
- 0F advance
- Specials at 9A-9F, for spacing 1,2,3,5,6,7.
- @800292B0
- 3C10800C LUI S0,800C
- 0040B025 OR S6,V0,R0
- 26102550 ADDIU S0,S0,2550
- ...
- @800292C8
- 24010002 ADDIU AT,R0,0002
- 92240000 LBU A0,0000 (S1)
- 52640010 BEQL S3,A0,80029314
- AE800000 SW R0,0000 (S4)
- 5024000E BEQL AT,A0,80029314
- AE930000 SW S3,0000 (S4)
- 0C00A486 JAL 80029218
- 00000000 NOP
- 02021821 ADDU V1,S0,V0
- 02A02025 OR A0,S5,R0
- 90610000 LBU AT,0000 (V1)
- 02E03025 OR A2,S7,R0
- 00011902 SRL V1,AT,0x4
- 00403825 OR A3,V0,R0
- 3021000F ANDI AT,AT,000F
- 02432823 SUBU A1,S2,V1
- 0C00A43D JAL 800290F4
- 02419021 ADDU S2,S2,AT
- 0040A825 OR S5,V0,R0
- @80029314
- 26D6FFFF ADDIU S6,S6,FFFF
- 16C0FFEB BNEZ S6,800292C8
- 26310001 ADDIU S1,S1,0001
- 800F3320 V0 = length of string A0
- 800F335C draw box for tooltip
- accepts: A0=p->p->DL, A1=ypos, A2=p->string
- dl = @A0
- l = call 800F3320(string)
- n = 0x22 - l
- w = l << 3
- if n < 0:
- n += 1
- n >>= 1 # half of width
- n <<= 3 # converted to width
- SP+24 = 0x18 - n
- w = 0x1A + w - n
- dl.append(DE000000, 03000510)
- dl.append(FA000000, FFFFFFFF)
- x = 0x16 + n
- dl.append(E4000000 | w<<14 | (ypos + 10)<<2, x<<14 | (ypos - 2)<<2)
- dl.append(E1000000, 00000000)
- dl.append(F1000000, 04000400)
- dl.append(E7000000, 00000000)
- dl.append(FA000000, 000000FF)
- w = 0x18 + w - n + 1
- dl.append(E4000000 | w<<14 | (ypos + 9)<<2, (x - 1)<<14 | (ypos - 1)<<2)
- dl.append(E1000000, 00000000)
- dl.append(F1000000, 04000400)
- dl.append(DE000000, 03000540)
- dl.append(FA000000, FFFFFFFF)
- dl = call 8002924C(dl, @SP+24, ypos, p->string) # V0=p->DL A0 for printed tooltip string A3 at (A1, A2)
- 800F3548
- Convert to pixels and use widthfinder
- @800F337C 0xBE2F14
- 0C03099C JAL 800C2670
- 00C02025 OR A0,A2,R0
- 240F0110 ADDIU T7,R0,0110
- 01E21823 SUBU V1,T7,V0
- 00404825 OR T1,V0,R0
- ...
- @800F33C0 0xBE2F58
- 00000021 NADA
- 0C03CCC8 00C02025 240F0022 01E21823 000248C0
- 000318C0
- 0xB1AA3C センタク できません can not select / can't make selection
- 0xB1AA50 センタク できません can not select / can't make selection
- +_+
- ASCII conversion for char codes
- 0x92 +62 0-9
- 0x9C +5B A-Z
- 0xB6 +55 a-z
- 8075BD6E (0xCE0E26) is where the shift_jis table overlaps the ASCII table for numerals and letters.
- There's 0x60 room at 8006CAE0 (0xB0AFC8).
- Also at 800C26EC (0xB5CD74), prob. better of the two. Enough room for a conversion table.
- Aegh, have to move to 80773A50 (0xCF8B08) due to one blasted font writer.
- index, left shift, value subtracted from width 16
- 00 0A
- ! 09 57
- " 28 09
- # 53 13
- $ 4F 24
- % 52 13
- & 54 13
- ' 26 1F
- ( 29 92
- ) 2A 0F
- * 55 24
- + 3B 13
- , 03 0C
- - 3C 13
- . 04 0C
- / 1E 02
- 0 92 25
- 1 93 37
- 2 94 35
- 3 95 35
- 4 96 25
- 5 97 35
- 6 98 35
- 7 99 35
- 8 9A 25
- 9 9B 35
- : 06 56
- ; 07 56
- < 42 02
- = 40 03
- > 43 02
- ? 08 25
- @ 56 03
- A 9C 14
- B 9D 24
- C 9E 24
- D 9F 23
- E A0 24
- F A1 34
- G A2 14
- H A3 24
- I A4 57
- J A5 26
- K A6 24
- L A7 34
- M A8 13
- N A9 24
- O AA 13
- P AB 34
- Q AC 23
- R AD 24
- S AE 24
- T AF 14
- U B0 24
- V B1 24
- W B2 02
- X B3 24
- Y B4 24
- Z B5 24
- [ 2D 72
- \ 1F 01
- ] 2E 0A
- ^ 0F 46
- _ 11 00
- ` 25 93
- a B6 35
- b B7 34
- c B8 35
- d B9 25
- e BA 35
- f BB 36
- g BC 24
- h BD 35
- i BE 57
- j BF 47
- k C0 35
- l C1 57
- m C2 13
- n C3 35
- o C4 35
- p C5 34
- q C6 25
- r C7 45
- s C8 35
- t C9 46
- u CA 35
- v CB 25
- w CC 03
- x CD 24
- y CE 34
- z CF 35
- { 2F 82
- | 22 68
- } 30 0A
- ~ 20 02
- moved from 800C26CC 0xB5CD54
- 80773A30 0xCF8AE8 A0, V0, V1 = index, left offset, and width of ASCII char A0
- 00040840 SLL AT,A0,0x1
- 3C028077 LUI V0,800C
- 00411021 ADDU V0,V0,AT
- 90443A10 LBU A0,26AC (V0)
- 90433A11 LBU V1,26AD (V0)
- 00031102 SRL V0,V1,0x4
- 03E00008 JR RA
- 3063000F ANDI V1,V1,000F
- Does have a copy of the IPL's type 2 table at 8075C690 (0xCE1748).
- 8075BB20 V0 = index of shift_jis code A0 in font table or -1 if invalid NOTE! does not accept ASCII
- uses table at 8005BBD8
- 8075BBD8
- 8075C620 V0 = offset to char #A0 in IPL font or -1 if invalid, where A1 is width, A2 is height, and A3 vertical offset
- accepts: A0=char index, A1=p-width, A2=p->height, A3=p->vertical offset
- if not 0 < A0 < 0x908:
- return -1
- entry = 8075C690[index]
- A2 = (entry[2] & 0xF) + 1
- w = (entry[2] >> 4) + 1
- A1 = w | (entry[3] & 1)<<4
- A3 = entry[3] >> 1
- offset = entry[0:2] << 1
- offset += 0x7EE80
- return offset
- 8075C690
- 807602E4 V0 = -1; would have returned V0 = offset for shift_jis wchar A0 in IPL font or -1 if invalid, where A1 is width, A2 is height, and A3 vertical offset
- call 8075BB20(0)
- return call 8075C620(0, 0, 0, 0)
- 80760320
- #800EE2D0: draw box for string
- S8 = 03000510
- SP+40 = 03000540
- S2 = call 80762B1C(8003339C[S1]) * 8
- call 800EE578(S2)
- 80025C20 V0=strlen(A0)
- If newline, don't count and advance 1.
- Else, count+1 and advance 2.
- 80025C58 V0 = length of all strings in tables at 800331F0 and 8003339C
- v = 0
- for i in 800331F0: # read all pointers in table from 800331F0 to 8003326C
- v += call 80025C20(i)
- for i in 8003339C: # read all pointers in table from 8003339C to 800333CC
- v += call 80025C20(i)
- return v
- 80025CD8 True if wchar A0 not in table at @8003A54C else False
- accepts: A0=wchar
- base = @8003A54C
- for i in range(@8003A494):
- if wchar == base[i]:
- return False
- return True
- 80025D2C creates table of unique wchars in string A0 at @8003A54C
- accepts: A0=p->string
- pos = 0
- while True:
- if not s[pos]:
- return
- if s[pos] == 10:
- pos += 1
- continue
- c = s[pos:pos+2]
- v = call 80025CD8(c) # True if wchar not in table @8003A54C else False
- if v:
- @8003A54C[@8003A494] = c
- @8003A494 += 1
- pos += 2
- 80025DE4 fill table @8003A54C with all unique wchars in strings at 800331F0 and 8003339C
- v = @80030080
- 80030084 = 0
- for i in range(v):
- stupidly increment a value pointlessly by 1 so in the end it matches v
- 8003A494 = 0
- call 80025D2C(@800331F0)
- for i in 800331F0: # read all pointers in table from 800331F0 to 8003326C
- call 80025D2C(i)
- for i in 8003339C: # read all pointers in table from 8003339C to 800333CC
- call 80025D2C(i)
- 80025E8C V0 = index of A0 in table at @8003A54C or next index if not found
- for i in range(@8003A494):
- if 8003A54C[i:i+2] == A0:
- break
- return i
- 80025ED4 fill table @8003A548 with pointers to font images for string A0
- c = next(A0)
- while c:
- if c == 10:
- next(A0)
- continue
- c = (c << 8) | next(A0)
- v = call 80025E8C(c) # index of A0 in table at @8003A54C
- @8003A548[@80030080] = 8003A488 + 0xE00 + v * 0x80
- 80030080 += 1
- next(A0)
- 80025F98 load all wchars used by strings at 800331F0 and 8003339C and convert to list of pointers and indicies
- cnt = call 80025C58() # V0 = length of all strings in tables at 800331F0 and 8003339C
- 80030080 = cnt
- 8003A54C = call 807084E4(0, cnt<<1)
- 8003A548 = call 807084E4(0, cnt<<2)
- v = call 80025DE4() # fill table @8003A54C with all unique wchars in strings at 800331F0 and 800331F0
- 8003A494 = v
- 8003A488 = call 807084E4(0, 0xE00 + v * 0x80)
- @8003A490 += 0xE00
- call 800267C4(@8003A54C) # load wchars from strings from IPL
- 80030080 = 0
- for i in 800331F0: # read all pointers in table from 800331F0 to 8003326C
- 8003A498[@80030080] = @8003A548[@80030080]
- call 80025ED4(@80030080)
- 80030080 += 1
- for i in 800331F0: # read all pointers in table from 800331F0 to 8003326C
- 8003A518[@80030080] = @8003A548[@80030080]
- call 80025ED4(@80030080)
- 80030080 += 1
- 800260E4 8003A490 = 0
- 800260F0 V0 = updated display list A0 printing char A3 to (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=char
- v = call 8075BB20(wchar) # V0 = index for wchar A0
- req = 8003A470
- req[2] = 0
- req[4:8] = 8079A0A8
- req[8:12] = @8003A488 + @8003A490 # p->allocated space (807F5660) + size of it (0xE00)
- req[12:16] = 0xA0000 | v
- req[16:20] = 0x80
- @8079A340[20:24] = 2
- call 80768B88(@8079A340, req, False)
- call 80746000(8079A0A8, None, True)
- #80026188 draw the char to DL A0 at (A1, A2)
- DL.append(FD900000, @8003A488 + @8003A490)
- DL.append(F5900000, 07080200)
- DL.append(E6000000, 00000000)
- DL.append(F3000000, 0703F800)
- DL.append(E7000000, 00000000)
- DL.append(F5800200, 00080200)
- lry = (ypos + 0x10) << 2
- lrx = (xpos + 0x10) << 2
- DL.append(F2000000, 0003C03C)
- xpos <<= 2
- ypos <<= 2
- DL.append(E4000000 | lrx << 12 | lry, xpos << 12 | ypos)
- DL.append(E1000000, 00000000)
- DL.append(F1000000, 04000400)
- 8003A490 += 0x80
- return p->DL
- 800262F4 V0 = updated display list A0 printing string A3 to (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->string
- if 80794E14[0] or not A3[0]:
- return p->DL
- for i in A3[::2]:
- p->DL = call 800260F0(p->DL, xpos, ypos, i)
- xpos += 0x10
- return p->DL
- 800263B0 V0 = updated display list A0 printing char A3 to (A1, A2)
- 800264C0 print list of pre-loaded chars for warning A3 from table at 800331F0 to DL A0 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=index
- s = 8003A498[index]
- for i in 800331F0[index][::2]:
- if not i or i==10: # if None or newline, return
- return
- p->DL = call 800263B0(p->DL, xpos, ypos, next(s))
- xpos += 16
- return p->DL
- 8002656C print list of pre-loaded chars starting from SP+10 for warning A3 from table at 800331F0 to DL A0 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=index, SP+10=#chars to skip
- s = 8003A498[index]
- for c, i in enumerate(800331F0[index][::2]):
- if not i or i==10: # if None or newline, return
- if c:
- c = 0
- else:
- break
- if c:
- c -= 1
- else:
- p->DL = call 800263B0(p->DL, xpos, ypos, next(s))
- xpos += 16
- return p->DL
- 80026670 print list of pre-loaded chars for warning A3 from table at 8003339C to DL A0 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=index
- s = 8003A518[index]
- for i in 8003339C[index][::2]:
- if not i or i==10: # if None or newline, return
- return
- p->DL = call 800263B0(p->DL, xpos, ypos, next(s))
- xpos += 16
- return p->DL
- 8002671C load wchar A0 from IPL
- accepts: A0=wchar
- v = call 8075BB20(wchar) # V0 = index for wchar A0
- 8003A470[2] = 0
- 8003A470[4:8] = 8079A0A8
- 8003A470[8:12] = @8003A490 + @8003A488
- 8003A470[12:16] = 0xA0000 | v # p->allocated space (807F5660) + size of it (0xE00)
- 8003A470[16:20] = 0x80
- base = @8079A340
- base[20:24] = 2
- call 80768B88(@8079A340, 8003A470, False)
- call 80746000(8079A0A8, 0, True)
- @8003A490 += 0x80
- 800267C4 load wchars from strings to IPL
- accepts: A0=p->@8003A54C
- for i in range(@8003A494):
- call 8002671C(A0[i]) # load wchar A0 from IPL
- 80026830 A1 = p->shift_jis string for single-byte encoded string A0
- for i in A0:
- if not i:
- break
- A1.append(800300F0[i]) # i is a byte; 800300F0 is shorts, as is A1
- A1.append(b'\x00')
- 80026870
- 8002C420 display one of several file messages inside a stupid fixed-size box the jerks
- accepts: A0=p->DL, A1=xpos, A2=ypos
- if not @80032BD4:
- return A0
- v = @80119880
- if v in (7, 8):
- w = 0x100
- else:
- w = 0xB0
- dl.append(DE000000, 03000510)
- dl.append(FA000000, 8080FFFF)
- lrx = (xpos + w + 2) << 2
- lrx &= 0xFFF
- lry = ypos << 2
- lry &= 0xFFF
- uly = (ypos - 2) << 2
- uly &= 0xFFF
- ulx = (xpos - 2) << 2
- ulx &= 0xFFF
- dl.append(E4000000 | (lrx << 12) | lry, (ulx << 12) | uly)
- dl.append(E1000000, 00000000)
- lry = ypos + 0x12
- uly = ypos + 0x10
- dl.append(F1000000, 04000400)
- ...blah blah blah draws more boxes
- # 8002C6C0
- if @80119880 in (7, 8):
- call 800264C0(dl, xpos, ypos, 0xF)
- else:
- call 800264C0(dl, xpos, ypos, 0)
- return dl
- 8002C720 V0 = updated p->DL A0 for printing single-width string A3 to (A1, A2) when 80032BD8 nonzero
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->string, SP+10=index for message
- if not 80032BD8:
- return
- call 80026830(A3, SP+1B4) # A1 = p->shift_jis string for single-byte encoded string A0
- call 80762B78(SP+B4, 800331F0[@SP+10 + 1]) # copy string A1 to A0
- SP+4C = call 80762B1C(SP+1B4) ;memlen(A0)
- l = call 80762B1C(SP+B4) ;memlen(A0)
- l += @SP+4C
- v = 0x22 - l
- dl.append(DE000000, 03000510)
- w = l * 8
- dl.append(FA000000, FFFFFFFF)
- ...
- proceeds to set display lists for printing the strings.
- ...
- # 8002CA04
- dl = call 800262F4(dl, xpos, ypos, SP+1B4)
- w = call 80762B1C(SP+1B4) << 3
- dl.append(E7000000, 00000000)
- dl.append(FA000000, FFFFFFFF)
- dl = call 800264C0(dl, xpos + w, ypos, @SP+10 + 1)
- return dl
- 8002CA80 V0 = @80032BD8
- 8002CA8C 80032BD8 = 0
- 8002CA98 V0 = strcmp(A0, A1)
- 8002CB30
- 80762B1C V0 = memlen(A0)
- 80762B78 copy string at A1 to A0
- 80762BEC
- 80025C20 0xACC3A8 V0=strlen(A0), editted to detect ASCII as ASCII
- 00001025 OR V0,R0,R0
- 80830000 LB V1,0000 (A0)
- 10600007 BEQ V1,R0,return
- 2C610020 SLTIU AT,V1,0020
- 04620003 BLTZL V1,+3
- 24840002 ADDIU A0,A0,0002
- 1420FFFA BNE AT,R0,80025C24
- 24840001 ADDIU A0,A0,0001
- 1000FFF8 BEQ R0,R0,80025C24
- 24420001 ADDIU V0,V0,0001
- 03E00008 JR RA
- 00000000 NOP
- 80025C58
- Printers rewritten to handle VWF ASCII
- 800264C0 file menu messages
- 8002656C help messages
- 80026670
- 800331F0 8003A498 8003339C 8003A518
- 80025D2C 0xACC4B4 creates table of unique wchars in string A0 at @8003A54C
- accepts: A0=p->string
- 3C0A8004 LUI T2,8004
- @loop
- 80820000 LB V0,0000 (A0)
- 10400014 BEQ V0,R0,return
- 2C410020 SLTIU AT,V0,0020
- 1420FFFC BNE AT,R0,loop
- 24840001 ADDIU A0,A0,0001
- 1C400005 BGTZ V0,+5
- 8D59A494 LW T9,A494 (T2)
- 00021200 SLL V0,V0,0x8
- 90830000 LBU V1,0000 (A0)
- 24840001 ADDIU A0,A0,0001
- 00431025 OR V0,V0,V1
- 272B0001 ADDIU T3,T9,0001
- 8D49A54C LW T1,A54C (T2)
- 1B200005 BLEZ T9,set
- 85230000 LH V1,0000 (T1)
- 1043FFF0 BEQ V0,V1,loop
- 2739FFFF ADDIU T9,T9,FFFF
- 1F20FFFC BGTZ T9,-4
- 25290002 ADDIU T1,T1,0002
- @set
- AD4BA494 SW T3,A494 (T2)
- 1000FFEB BEQ R0,R0,loop
- A5220000 SH V0,0000 (T1)
- @return
- 03E00008 JR RA
- 00000000 NOP
- pos = 0
- while True:
- if not s[pos]:
- return
- if s[pos] == 10:
- pos += 1
- continue
- c = s[pos:pos+2]
- v = call 80025CD8(c) # True if wchar not in table @8003A54C else False
- if v:
- @8003A54C[@8003A494] = c
- @8003A494 += 1
- pos += 2
- 80025DE4 fill table @8003A54C with all unique wchars in strings at 800331F0 and 800331F0
- 80025ED4 0xACC65C fill table @8003A548 with pointers to font images for string A0
- 27BDFFD0 ADDIU SP,SP,FFD0
- AFB40024 SW S4,0024 (SP)
- AFB30020 SW S3,0020 (SP)
- AFB1001C SW S1,001C (SP)
- AFB00018 SW S0,0018 (SP)
- 3C118003 LUI S1,8003
- 3C148004 LUI S4,8004
- 00808025 OR S0,A0,R0
- AFBF002C SW RA,002C (SP)
- 2693A548 ADDIU S3,S4,A548
- 2694A488 ADDIU S4,S4,A488
- 26310080 ADDIU S1,S1,0080
- @next
- 82040000 LB A0,0000 (S0)
- 10800017 BEQ A0,R0,return
- 2C810020 SLTIU AT,A0,0020
- 1420FFFC BNE AT,R0,-4
- 26100001 ADDIU S0,S0,0001
- 1C800005 BGTZ A0,+5 ;pretty sure can get away with the ASCII value as key, so long as lookup uses it
- 00000000 NOP
- 00041200 SLL V0,A0,0x8
- 92030000 LBU V1,0000 (S0)
- 26100001 ADDIU S0,S0,0001
- 00432025 OR A0,V0,V1
- 0C0097A3 JAL 80025E8C
- 3084FFFF ANDI A0,A0,FFFF
- 8E990000 LW T9,0000 (S4)
- 8E2B0000 LW T3,0000 (S1)
- 8E6A0000 LW T2,0000 (S3)
- 0002C1C0 SLL T8,V0,0x7
- 03194021 ADDU T0,T8,T9
- 000B6080 SLL T4,T3,0x2
- 25090E00 ADDIU T1,T0,0E00
- 014C6821 ADDU T5,T2,T4
- ADA90000 SW T1,0000 (T5)
- 256F0001 ADDIU T7,T3,0001
- 1000FFE8 BEQ R0,R0,next
- AE2F0000 SW T7,0000 (S1)
- @return
- 8FBF002C LW RA,002C (SP)
- 8FB00018 LW S0,0018 (SP)
- 8FB1001C LW S1,001C (SP)
- 8FB30020 LW S3,0020 (SP)
- 8FB40024 LW S4,0024 (SP)
- 03E00008 JR RA
- 27BD0030 ADDIU SP,SP,0030
- c = next(A0)
- while c:
- if c == 10:
- next(A0)
- continue
- c = (c << 8) | next(A0)
- v = call 80025E8C(c) # index of A0 in table at @8003A54C
- @8003A548[@80030080] = @8003A488 + 0xE00 + v * 0x80
- 80030080 += 1
- next(A0)
- 80025F98
- Hack this to look at the list of previously loaded chars.
- 800260F0 0xACC878 V0 = updated display list A0 printing char A3 to (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=char
- 27BDFFE0 ADDIU SP,SP,FFE0
- AFB00018 SW S0,0018 (SP)
- 00808025 OR S0,A0,R0
- AFBF001C SW RA,001C (SP)
- AFA50024 SW A1,0024 (SP)
- AFA60028 SW A2,0028 (SP)
- 3C088004 LUI T0,8004
- 8D09A494 LW T1,A494 (T0) ;#entries
- 8D0AA54C LW T2,A54C (T0)
- 00005825 OR T3,R0,R0 ;keep track from bottom up to generate an offset
- 11690007 BEQ T3,T1,load
- 854C0000 LH T4,0000 (T2)
- 254A0002 ADDIU T2,T2,0002
- 54ECFFFC BNEL A3,T4,-4
- 256B0001 ADDIU T3,T3,0001
- 000B11C0 SLL V0,T3,0x7 ;offset from @8003A488, passed to display list
- 10000020 BEQ R0,R0,dldraw
- 24420E00 ADDIU V0,V0,0E00
- @load
- 0C1D6EC8 JAL 8075BB20 ;V0=index for wchar A0
- 00E02025 OR A0,A3,R0
- 3C188004 LUI T8,8004
- 2705A470 ADDIU A1,T8,A470
- 3C03807A LUI V1,807A
- 246EA0A8 ADDIU T6,V1,A0A8
- A0A00002 SB R0,0002 (A1)
- ACAE0004 SW T6,0004 (A1)
- 8F0FA488 LW T7,A488 (T8)
- 8F18A490 LW T8,A490 (T8)
- 8C64A340 LW A0,A340 (V1)
- 3C01000A LUI AT,000A
- 00414821 ADDU T1,V0,AT
- 240A0080 ADDIU T2,R0,0080
- 01F8C821 ADDU T9,T7,T8
- ACB90008 SW T9,0008 (A1)
- ACA9000C SW T1,000C (A1)
- ACAA0010 SW T2,0010 (A1)
- 240B0002 ADDIU T3,R0,0002
- AC8B0014 SW T3,0014 (A0)
- 0C1DA2E2 JAL 80768B88 ;send or jam (A2) msg A1 to queue A0
- 00003025 OR A2,R0,R0
- 3C04807A LUI A0,807A
- 2484A0A8 ADDIU A0,A0,A0A8
- 00002825 OR A1,R0,R0
- 0C1D1800 JAL 80746000 ;read or wait (A2) to write msg from queue A0 to A1
- 24060001 ADDIU A2,R0,0001
- 3C098004 LUI T1,8004
- 8D22A490 LW V0,A490 (T1)
- 24430080 ADDIU V1,V0,0080
- AD23A490 SW V1,A490 (T1)
- @dldraw
- 3C0DFD90 LUI T5,FD90
- 3C0E8004 LUI T6,8004
- 8DCEA488 LW T6,A488 (T6)
- AE0D0000 SW T5,0000 (S0)
- 01C2C021 ADDU T8,T6,V0
- AE180004 SW T8,0004 (S0)
- 3C090708 LUI T1,0708
- 35290200 ORI T1,T1,0200
- 3C19F590 LUI T9,F590
- AE190008 SW T9,0008 (S0)
- AE09000C SW T1,000C (S0)
- 3C0AE600 LUI T2,E600
- AE0A0010 SW T2,0010 (S0)
- AE000014 SW R0,0014 (S0)
- 3C0C0703 LUI T4,0703
- 358CF800 ORI T4,T4,F800
- 3C0BF300 LUI T3,F300
- AE0B0018 SW T3,0018 (S0)
- AE0C001C SW T4,001C (S0)
- 3C0DE700 LUI T5,E700
- AE0D0020 SW T5,0020 (S0)
- AE000024 SW R0,0024 (S0)
- 8FA60024 LW A2,0024 (SP)
- 8FA70028 LW A3,0028 (SP)
- 3C0F0008 LUI T7,0008
- 3C0EF580 LUI T6,F580
- 35CE0200 ORI T6,T6,0200
- 35EF0200 ORI T7,T7,0200
- 24C90010 ADDIU T1,A2,0010
- AE0F002C SW T7,002C (S0)
- AE0E0028 SW T6,0028 (S0)
- 00095080 SLL T2,T1,0x2
- 3C190003 LUI T9,0003
- 314B0FFF ANDI T3,T2,0FFF
- 3739C03C ORI T9,T9,C03C
- 3C18F200 LUI T8,F200
- 000B6300 SLL T4,T3,0xC
- 3C01E400 LUI AT,E400
- 24EE0010 ADDIU T6,A3,0010
- AE180030 SW T8,0030 (S0)
- AE190034 SW T9,0034 (S0)
- 000E7880 SLL T7,T6,0x2
- 01816825 OR T5,T4,AT
- 00064880 SLL T1,A2,0x2
- 312A0FFF ANDI T2,T1,0FFF
- 31F80FFF ANDI T8,T7,0FFF
- 00076080 SLL T4,A3,0x2
- 318E0FFF ANDI T6,T4,0FFF
- 01B8C825 OR T9,T5,T8
- 000A5B00 SLL T3,T2,0xC
- 016E7825 OR T7,T3,T6
- AE190038 SW T9,0038 (S0)
- AE0F003C SW T7,003C (S0)
- 3C0DE100 LUI T5,E100
- AE0D0040 SW T5,0040 (S0)
- AE000044 SW R0,0044 (S0)
- 3C190400 LUI T9,0400
- 37390400 ORI T9,T9,0400
- 3C18F100 LUI T8,F100
- AE180048 SW T8,0048 (S0)
- AE19004C SW T9,004C (S0)
- 8FBF001C LW RA,001C (SP)
- 26020050 ADDIU V0,S0,0050
- 8FB00018 LW S0,0018 (SP)
- 03E00008 JR RA
- 27BD0020 ADDIU SP,SP,0020
- v = call 8075BB20(wchar) # V0 = index for wchar A0
- req = 8003A470
- req[2] = 0
- req[4:8] = 8079A0A8
- req[8:12] = @8003A488 + @8003A490 # p->allocated space (807F5660) + size of it (0xE00)
- req[12:16] = 0xA0000 | v
- req[16:20] = 0x80
- @8079A340[20:24] = 2
- call 80768B88(@8079A340, req, False)
- call 80746000(8079A0A8, None, True)
- #80026188 draw the char to DL A0 at (A1, A2)
- DL.append(FD900000, @8003A488 + @8003A490)
- DL.append(F5900000, 07080200)
- DL.append(E6000000, 00000000)
- DL.append(F3000000, 0703F800)
- DL.append(E7000000, 00000000)
- DL.append(F5800200, 00080200)
- lry = (ypos + 0x10) << 2
- lrx = (xpos + 0x10) << 2
- DL.append(F2000000, 0003C03C)
- xpos <<= 2
- ypos <<= 2
- DL.append(E4000000 | lrx << 12 | lry, xpos << 12 | ypos)
- DL.append(E1000000, 00000000)
- DL.append(F1000000, 04000400)
- 8003A490 += 0x80
- return p->DL
- 800262F4 0xACCA7C V0 = updated display list A0 printing string A3 to (A1, A2)
- Important note! Buffer overrun occurs when strings exceed 0x1C unloaded chars!
- 3C0E8079 LUI T6,8079
- 27BDFFD8 ADDIU SP,SP,FFD8
- 91CF4E14 LBU T7,4E14 (T6)
- AFBF0024 SW RA,0024 (SP)
- 15E00026 BNE T7,R0,return
- 00801025 OR V0,A0,R0
- AFB50020 SW S5,0020 (SP)
- AFB4001C SW S4,001C (SP)
- AFB30018 SW S3,0018 (SP)
- AFB20014 SW S2,0014 (SP)
- 00A09025 OR S2,A1,R0
- 00E0A025 OR S4,A3,R0
- 00C0A825 OR S5,A2,R0
- @loop
- 00409825 OR S3,V0,R0
- 82840000 LB A0,0000 (S4)
- 0482000B BLTZL A0,wchar
- 26940002 ADDIU S4,S4,0002
- 2402000A ADDIU V0,R0,000A
- 2C810020 SLTIU AT,A0,0020
- 5082FFF9 BEQL A0,V0,loop ;if newline, push ypos down
- 26B50010 ADDIU S5,S5,0010
- 54200011 BNEL AT,R0,endloop
- 02601025 OR V0,S3,R0
- 0C1DCE8C JAL 80773A30 ;A0, V0, V1 = index, left offset, and width of ASCII char A0
- 26940001 ADDIU S4,S4,0001
- 02429023 SUBU S2,S2,V0
- 10000004 BEQ R0,R0,print
- @wchar
- 9287FFFF LBU A3,FFFF (S4)
- 00042200 SLL A0,A0,0x8
- 00001825 OR V1,R0,R0
- 00873825 OR A3,A0,A3
- @print
- 02402825 OR A1,S2,R0
- 02602025 OR A0,S3,R0
- 02A03025 OR A2,S5,R0
- 26520010 ADDIU S2,S2,0010
- 30E7FFFF ANDI A3,A3,FFFF
- 02439023 SUBU S2,S2,V1
- 0C00983C JAL 800260F0 ;V0=updated DL A0 printing char A3 to (A1, A2)
- 27FFFF98 ADDIU RA,RA,FF98
- @endloop
- 8FB20014 LW S2,0014 (SP)
- 8FB30018 LW S3,0018 (SP)
- 8FB4001C LW S4,001C (SP)
- 8FB50020 LW S5,0020 (SP)
- @return
- 8FBF0024 LW RA,0024 (SP)
- 03E00008 JR RA
- 27BD0028 ADDIU SP,SP,0028
- 800264C0 0xACCC48 print list of pre-loaded chars for warning A3 from table at 800331F0 to DL A0 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=index
- 3C028003 LUI V0,8003
- 3C038004 LUI V1,8004
- 244231F0 ADDIU V0,V0,31F0
- 2463A498 ADDIU V1,V1,A498
- 27BDFFD0 ADDIU SP,SP,FFD0
- AFB00014 SW S0,0014 (SP)
- AFB10018 SW S1,0018 (SP)
- 00070880 SLL AT,A3,0x2
- AFBF002C SW RA,002C (SP)
- 00411021 ADDU V0,V0,AT
- 00611821 ADDU V1,V1,AT
- AFB2001C SW S2,001C (SP)
- AFB30020 SW S3,0020 (SP)
- AFB40024 SW S4,0024 (SP)
- 8C500000 LW S0,0000 (V0)
- 8C710000 LW S1,0000 (V1)
- 00A09025 OR S2,A1,R0
- 00809825 OR S3,A0,R0
- 00C0A025 OR S4,A2,R0
- @loop
- 82040000 LB A0,0000 (S0)
- 2C810020 SLTIU AT,A0,0020
- 14200010 BNE AT,R0,return
- 00001825 OR V1,R0,R0
- 04820004 BLTZL A0,+4
- 26100002 ADDIU S0,S0,0002
- 0C1DCE8C JAL 80773A30 ;A0, V0, V1 = index, left offset, and width of ASCII char A0
- 26100001 ADDIU S0,S0,0001
- 02429023 SUBU S2,S2,V0
- 02602025 OR A0,S3,R0
- 02402825 OR A1,S2,R0
- 02803025 OR A2,S4,R0
- 26520010 ADDIU S2,S2,0010
- 8E270000 LW A3,0000 (S1)
- 0C0098EC JAL 800263B0
- 02439023 SUBU S2,S2,V1
- 26310004 ADDIU S1,S1,0004
- 1000FFEE BEQ R0,R0,loop
- 00409825 OR S3,V0,R0
- @return
- 02601025 OR V0,S3,R0
- 8FBF002C LW RA,002C (SP)
- 8FB00014 LW S0,0014 (SP)
- 8FB10018 LW S1,0018 (SP)
- 8FB2001C LW S2,001C (SP)
- 8FB30020 LW S3,0020 (SP)
- 8FB40024 LW S4,0024 (SP)
- 03E00008 JR RA
- 27BD0030 ADDIU SP,SP,0030
- s = 8003A498[index]
- for i in 800331F0[index][::2]:
- if not i or i==10: # if None or newline, return
- return
- p->DL = call 800263B0(p->DL, xpos, ypos, next(s))
- xpos += 16
- return p->DL
- 8002656C 0xACCCF4 print list of pre-loaded chars starting from SP+10 for warning A3 from table at 800331F0 to DL A0 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=index, SP+10=#chars to skip
- 27BDFFC8 ADDIU SP,SP,FFC8
- AFB50028 SW S5,0028 (SP)
- AFB1001C SW S1,001C (SP)
- AFB00018 SW S0,0018 (SP)
- 8FB50048 LW S5,0048 (SP) ;moved after SWs to pipeline better
- 00071880 SLL V1,A3,0x2
- 3C118004 LUI S1,8004
- 3C108003 LUI S0,8003
- AFB6002C SW S6,002C (SP)
- AFB40024 SW S4,0024 (SP)
- AFB30020 SW S3,0020 (SP)
- 02238821 ADDU S1,S1,V1
- 02038021 ADDU S0,S0,V1
- 00A09825 OR S3,A1,R0
- 0080A025 OR S4,A0,R0
- 00C0B025 OR S6,A2,R0
- AFBF0034 SW RA,0034 (SP)
- 8E31A498 LW S1,A498 (S1)
- 10000016 BEQ R0,R0,loop
- 8E1031F0 LW S0,31F0 (S0)
- @800265BC
- 2C810020 SLTIU AT,A0,0020
- 04820004 BLTZL A0,+4
- 26100002 ADDIU S0,S0,0002
- 26100001 ADDIU S0,S0,0001
- 54200010 BNEL AT,R0,loop
- 26B5FFFF ADDIU S5,S5,FFFF
- 1EA0000E BGTZ S5,+14
- 26310004 ADDIU S1,S1,0004
- 04800004 BLTZ A0,+4
- 00001825 OR V1,R0,R0
- 0C1DCE8C JAL 80773A30 ;A0, V0, V1 = index, left offset, and width of ASCII char A0
- 00000000 NOP
- 02629823 SUBU S3,S3,V0
- 02802025 OR A0,S4,R0
- 02602825 OR A1,S3,R0
- 02C03025 OR A2,S6,R0
- 26730010 ADDIU S3,S3,0010
- 8E27FFFC LW A3,FFFC (S1)
- 0C0098EC JAL 800263B0
- 02639823 SUBU S3,S3,V1
- 0040A025 OR S4,V0,R0
- @loop
- 06A00003 BLTZ S5,+3
- 82040000 LB A0,0000 (S0)
- 1480FFE8 BNE A0,R0,800265BC
- 02801025 OR V0,S4,R0
- @return
- 8FBF0034 LW RA,0034 (SP)
- 8FB40024 LW S4,0024 (SP)
- 8FB00018 LW S0,0018 (SP)
- 8FB1001C LW S1,001C (SP)
- 8FB30020 LW S3,0020 (SP)
- 8FB50028 LW S5,0028 (SP)
- 8FB6002C LW S6,002C (SP)
- 03E00008 JR RA
- 27BD0038 ADDIU SP,SP,0038
- s = 8003A498[index]
- for c, i in enumerate(800331F0[index][::2]):
- if not i or i==10: # if None or newline, return
- if c:
- c = 0
- else:
- break
- if c:
- c -= 1
- else:
- p->DL = call 800263B0(p->DL, xpos, ypos, next(s))
- xpos += 16
- return p->DL
- 80026670 0xACCDF8 print list of pre-loaded chars for warning A3 from table at 8003339C to DL A0 at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=index
- 3C028003 LUI V0,8003
- 3C038004 LUI V1,8004
- 2442339C ADDIU V0,V0,339C
- 08009934 J 800264D0
- 2463A518 ADDIU V1,V1,A518
- s = 8003A518[index]
- for i in 8003339C[index][::2]:
- if not i or i==10: # if None or newline, return
- return
- p->DL = call 800263B0(p->DL, xpos, ypos, next(s))
- xpos += 16
- return p->DL
- 800266A8 0xACCE30 width of longest line in string A0
- 27BDFFE8 ADDIU SP,SP,FFE8
- AFBF0014 SW RA,0014 (SP)
- 00802825 OR A1,A0,R0
- 00004825 OR T1,R0,R0
- 00004025 OR T0,R0,R0
- 80A40000 LB A0,0000 (A1)
- 2C810020 SLTIU AT,A0,0020
- 14200009 BNE AT,R0,return
- 24A50001 ADDIU A1,A1,0001
- 25080010 ADDIU T0,T0,0010
- 0482FFFA BLTZL A0,-6
- 24A50001 ADDIU A1,A1,0001
- 0C1DCE8C JAL 80773A30 ;A0, V0, V1 = index, left offset, and width of ASCII char A0
- 00000000 NOP
- 00431021 ADDU V0,V0,V1
- 1000FFF5 BEQ R0,R0,-11
- 01024023 SUBU T0,T0,V0
- @return
- 0128082A SLT AT,T1,T0
- 54200001 BNEL AT,R0,+1
- 01004825 OR T1,T0,R0
- 1480FFEF BNE A0,R0,-17
- 01201025 OR V0,T1,R0
- 8FBF0014 LW RA,0014 (SP)
- 03E00008 JR RA
- 27BD0018 ADDIU SP,SP,0018
- 8002C420 0xAD2BA8 display one of several file messages inside a stupid fixed-sze box the jerks
- accepts: A0=p->DL, A1=xpos, A2=ypos
- 27BDFFA8 ADDIU SP,SP,FFA8
- 3C038003 LUI V1,8003
- 24A50003 ADDIU A1,A1,0003
- AFB00018 SW S0,0018 (SP)
- AFBF001C SW RA,001C (SP)
- 8C6E2BD4 LW T6,2BD4 (V1)
- AFA5005C SW A1,005C (SP) ;xpos
- 00C08025 OR S0,A2,R0 ;ypos
- 51C000B2 BEQL T6,R0,+179
- 00801025 OR V0,A0,R0
- 3C028012 LUI V0,8012
- 8C429880 LW V0,9880 (V0)
- AFA40058 SW A0,0058 (SP)
- 2448FFF9 ADDIU T0,V0,FFF9
- 2D010002 SLTIU AT,T0,0002
- 54200001 BNEL AT,R0,+1
- 2463003C ADDIU V1,V1,003C
- 0C0099AA JAL 800266A8 ;width of string A0
- 8C6431F0 LW A0,31F0 (V1)
- 24470006 ADDIU A3,V0,0006 ;adds padding to string width
- 3C0AE100 LUI T2,E100
- 3C0FDE00 LUI T7,DE00
- 8FA40058 LW A0,0058 (SP)
- `strike this line
- 3C180300 LUI T8,0300
- 27180510 ADDIU T8,T8,0510
- 24840008 ADDIU A0,A0,0008
- AC8FFFF8 SW T7,FFF8 (A0)
- AC98FFFC SW T8,FFFC (A0)
- @8002C478 go on to add +3, -3 to box width when printing
- ...
- @8002C4A8 0xAD2C30
- 8FAD005C LW T5,005C (SP)
- 3C01E400 LUI AT,E400
- 00103080 SLL A2,S0,0x2
- 01A77823 SUBU T7,T5,A3
- ...
- @8002C4D8
- AFAF005C SW T7,005C (SP)
- AC980000 SW T8,0000 (A0)
- ...
- @8002C504
- AC980004 SW T8,0004 (A0)
- ...
- @8002C6D0 0xAD2E58
- 8FA5005C LW A1,005C (SP)
- 02003025 OR A2,S0,R0
- 00003825 OR A3,R0,R0
- 50410001 BEQL V0,AT,+1
- 2407000F ADDIU A3,R0,000F
- 24010008 ADDIU AT,R0,0008
- 50410001 BEQL V0,AT,+1
- 2407000F ADDIU A3,R0,000F
- 24A50003 ADDIU A1,A1,0003
- 0C009930 JAL 800264C0
- 27FF0008 ADDIU RA,RA,0008
- 00000021 NADA
- 00000021 NADA
- tinker with positions so it prints left from xpos using 8002C420.
- @800EDFD0 0xBDDB68
- 240500BD ADDIU A1,R0,00BD
- ...
- @800EE01C 0xBDDBB4
- 240500EB ADDIU A1,R0,00EB
- ...
- @800EE044 0xBDDBDC
- 240500EB ADDIU A1,R0,00EB
- 8075BB20 0xCE0BD8 V0 = index of shift_JIS or ASCII wchar A0
- 2C810080 SLTIU AT,A0,0080
- 14200026 BNEZ AT,ASCII
- 34018140 ORI AT,R0,8140
- 0081082A SLT AT,A0,AT
- 14200027 BNEZ AT,return
- 34019873 ORI AT,R0,9873
- 0081082A SLT AT,A0,AT
- 50200024 BEQL AT,R0,return
- 00001025 OR V0,R0,R0
- 34018800 ORI AT,R0,8800
- 0081082A SLT AT,A0,AT
- 00042A02 SRL A1,A0,0x8
- 1420000D BNEZ AT,8075BB84
- 240600BC ADDIU A2,R0,00BC
- 20A5FF78 ADDI A1,A1,FF78
- 00C50019 MULTU A2,A1
- 308700FF ANDI A3,A0,00FF
- 20E7FFC0 ADDI A3,A3,FFC0
- 28E10040 SLTI AT,A3,0040
- 00003012 MFLO A2
- 50200001 BEQL AT,R0,+1
- 20E7FFFF ADDI A3,A3,FFFF
- 20E7030A ADDI A3,A3,030A
- 00E63820 ADD A3,A3,A2
- 03E00008 JR RA
- 000711C0 SLL V0,A3,0x7
- @8075BB84
- 20A5FF7F ADDI A1,A1,FF7F
- 00C50019 MULTU A2,A1
- 308700FF ANDI A3,A0,00FF
- 20E7FFC0 ADDI A3,A3,FFC0
- 28E10040 SLTI AT,A3,0040
- 00003012 MFLO A2
- 50200001 BEQL AT,R0,+1
- 20E7FFFF ADDI A3,A3,FFFF
- 00E63821 ADDU A3,A3,A2
- 3C058076 LUI A1,8076
- 00073840 SLL A3,A3,0x1
- 00E52820 ADD A1,A3,A1
- 1000FFF1 BEQ R0,R0,-15
- 84A7BBD8 LH A3,BBD8 (A1)
- @ASCII
- 3C068077 LUI A2,800C
- 00042040 SLL A0,A0,0x1
- 00C41821 ADDU V1,A2,A0
- 90623A10 LBU V0,26AC (V1)
- @return
- 03E00008 JR RA
- 000211C0 SLL V0,V0,0x7
- Move [?] icon to align to text (probably)
- Uses two string length finders, though neither user looks at the first's results.
- 800F2AC0 800F3DE0, 800EE6C8
- V0 = #non-newline chars
- 800F2AF4 800F3DEC, 800EE6E4
- V0 = longest line of non-newline chars
- 80119890 1 if clearing one course, 2 if clearing all
- 800EA948 0xBDA4E0 display one of two! terrible messages
- 800F3084 0xBE2C1C
- 3C0E800D LUI T6,800D
- 8DCE6CA8 LW T6,6CA8 (T6)
- 27BDFFD0 ADDIU SP,SP,FFD0
- 24010023 ADDIU AT,R0,0023
- AFBF001C SW RA,001C (SP)
- 15C10024 BNE T6,AT,800EA998 ;skip if in a different mode
- AFA40030 SW A0,0030 (SP)
- 3C088012 LUI T0,8012
- 8C980000 LW T8,0000 (A0) ;p->DL
- 8D089890 LW T0,9890 (T0) ;80119890 is suboption for menu
- 2501FFFE ADDIU AT,T0,FFFE
- 3C078003 LUI A3,8003
- 14020009 BNE AT,R0,clear
- AFB80020 SW T8,0020 (SP)
- @clearall
- 24190017 ADDIU T9,R0,0017 ;string 17
- 8CE7324C LW A3,324C (A3) ;p->string 17
- 00002825 OR A1,R0,R0
- 24060048 ADDIU A2,R0,0048
- 27A40020 ADDIU A0,SP,0020 ;p->p->DL
- AFB90010 SW T9,0010 (SP) ;string #17, DESPITE LOADING THE STRING
- 0C03BB35 JAL 800EECD4
- 27FF0044 ADDIU RA,RA,0044
- @clear
- 0C0099AA JAL 800266A8 ;0C009764 JAL 80025D90
- 8CE431EC LW A0,31EC (A3) ;p->string
- 3407843F ORI A3,R0,843F
- 2408FFEC ADDIU T0,R0,FFEC ;printing to 0x52
- 24060001 ADDIU A2,R0,0001
- 00402825 OR A1,V0,R0
- AFA80010 SW T0,0010 (SP)
- 0C00BABD JAL 8002EAF4 ;alternate entry where SP+10 is Y offset
- 8FA40020 LW A0,0020 (SP)
- 3C078003 LUI A3,8003
- 3C058004 LUI A1,8004
- 27A40020 ADDIU A0,SP,0020
- 94A6BBA8 LHU A2,BBA8 (A1)
- 94A5BBA0 LHU A1,BBA0 (A1)
- 8CE731EC LW A3,31EC (A3)
- 0C1C3DB2 JAL 8070F6C8
- AFA20020 SW V0,0020 (SP)
- @setdl
- 8FA80020 LW T0,0020 (SP)
- 8FA90030 LW T1,0030 (SP)
- AD280000 SW T0,0000 (T1)
- @800EA998
- 8FBF001C LW RA,001C (SP)
- 03E00008 JR RA
- 27BD0030 ADDIU SP,SP,0030
- Might need to use 8002EA10 directly to draw boxes. Or hack 8002EAF0 to accept an optional vertical offset...
- 8002EAF0 0xAD5278
- AFA00010 SW R0,0010 (SP) ;push everything else forward 1 opcode
- ...
- @8002EB34 0xAD52BC use a table instead, and modify the values
- 2CC10005 SLTIU AT,A2,0005
- 3C038004 LUI V1,8004
- 10C00011 BEQ A2,R0,8002EC94
- 2463BBA8 ADDIU V1,V1,BBA8
- 1020000F BEQ AT,R0,8002EC94
- 3C088003 LUI T0,8003
- 00066040 SLL T4,A2,0x1
- 51600001 BEQL T3,R0,+1
- 25080008 ADDIU T0,T0,0008
- 010C4021 ADDU T0,T0,T4
- 8FA10030 LW AT,0030 (SP) ;y correction to fix an edge-case
- 950EEBD2 LHU T6,EBD2 (T0)
- 01C17021 ADDU T6,T6,AT
- 25CF0014 ADDIU T7,T6,0014
- 25D80028 ADDIU T8,T6,0028
- 25D9003C ADDIU T9,T6,003C
- A46E0000 SH T6,0000 (V1)
- A46F0002 SH T7,0002 (V1)
- A4780004 SH T8,0004 (V1)
- A4790006 SH T9,0006 (V1)
- ...@8002EC94 0xAD541C use A2 instead of a copy
- 00065840 SLL T3,A2,0x1
- Yes, these can be calculated but not like there isn't room for a table.
- @8002EBD4 0xAD535C
- 006E 006B 0068 0065
- 006E 0064 005A 0050
- Convert these to center box, starting at a certain ypos.
- 8002EBE4 0xAD536C V0=updated DL A2 for box in color SP+10 with A1 lines at A3, fit to strings A0
- accepts: A0=p->string pointers, A1=#lines, A2=p->DL, A3=ypos, SP+10=color
- 27BDFFE8 ADDIU SP,SP,FFE8
- 00051900 SLL V1,A1,0x4
- 00671821 ADDU V1,V1,A3
- AFBF0014 SW RA,0014 (SP)
- AFA60020 SW A2,0020 (SP)
- AFA70024 SW A3,0024 (SP)
- 0C00BB23 JAL 8002EC8C ;V0=longest of A1 strings at A0
- AFA3001C SW V1,001C (SP)
- 24420006 ADDIU V0,V0,0006
- 00021842 SRL V1,V0,0x1
- 8FA40020 LW A0,0020 (SP)
- 8FBF0014 LW RA,0014 (SP)
- 246700A0 ADDIU A3,V1,00A0
- 8FA60024 LW A2,0024 (SP)
- 8FA8001C LW T0,001C (SP)
- 8FA10028 LW AT,0028 (SP)
- 00E22823 SUBU A1,A3,V0
- 27BD0018 ADDIU SP,SP,0018
- 3C098004 LUI T1,8004
- AFA80010 SW T0,0010 (SP)
- AFA10014 SW AT,0014 (SP)
- 0800BA84 J 8002EA10 ;V0=updated DL A0 for box in color SP+14 drawn at (A1,A2),(A3,SP+10)
- A525BBA0 SH A1,BBA0 (T1)
- 24A30003 ADDIU V1,A1,0003
- 0800BA84 J 8002EA10 ;V0=updated DL A0 for box in color SP+14 drawn at (A1,A2),(A3,SP+10)
- A523BBA0 SH V1,BBA0 (T1)
- Let's make a thing that takes a list of string pointers and #entries, returning longest line.
- 8002EC8C 0xAD5414 V0=longest of A1 strings at A0
- accepts: A0=p->string pointers, A1=#entries (1-4)
- 27BDFFD8 ADDIU SP,SP,FFD8
- AFBF0024 SW RA,0024 (SP)
- AFB20020 SW S2,0020 (SP)
- AFB1001C SW S1,001C (SP)
- AFB00018 SW S0,0018 (SP)
- 00009025 OR S2,R0,R0
- 24B1FFFF ADDIU S1,A1,FFFF
- 00808025 OR S0,A0,R0
- 0C0099AA JAL 800266A8 ;width of string A0
- 8E040000 LW A0,0000 (S0)
- 0242082A SLT AT,S2,V0
- 26100004 ADDIU S0,S0,0004
- 54200001 BNEL AT,R0,+1
- 00409025 OR S2,V0,R0
- 1E20FFF9 BGTZ S1,-7
- 2631FFFF ADDIU S1,S1,FFFF
- 02401025 OR V0,S2,R0
- 8FBF0024 LW RA,0024 (SP)
- 8FB20020 LW S2,0020 (SP)
- 8FB1001C LW S1,001C (SP)
- 8FB00018 LW S0,0018 (SP)
- 03E00008 JR RA
- 27BD0028 ADDIU SP,SP,0028
- Basically don't touch. Happens to line up, and writing a finder for width of string before 8140 is annoying.
- @800F3DDC: 0xBE3974 replace with width finder instead, though unused?
- LUI A0,8003
- 0C0099AA JAL 800266A8 ;width of string A0
- LW A0,3248 (A0)
- LUI A0,8003
- 0C0099AA JAL 800266A8 ;width of string A0
- LW A0,3248 (A0)
- @800F3DF4
- 240D0220 ADDIU T5,R0,0220 ;midpoint of displayable screen
- SUBU A1,T5,V0
- LUI A3,8003
- ADDIU T6,R0,0016 ;text line#
- SW T6,0010 (SP)
- LW A3,3248 (A3)
- ADDIU A0,SP,0078
- BGEZ A1,+2
- ADDU AT,A1,R0
- ADDIU AT,A1,0001
- SRA A1,AT,0x1
- 00000020 NADA
- ADDIU A1,A1,0018 ;0x18 is left edge
- JAL 800EECD4
- ADDIU A2,R0,0058
- @800F3E30
- ..
- @800F3E54
- LUI T9,0900
- ADDIU T9,T9,2788
- in 800EECD4, drawing box and printing text!
- @800EED28 0xBDE8C0
- 24150110 ADDIU S5,R0,0110
- ...
- @800EED40 0xBDE8D8 JAL 80762B1C -> 800266A8
- 0C0099AA JAL 800266A8
- OR A0,S6,R0
- 24420006 ADDIU V0,V0,0006 ;pad text width so window is more awesome
- SUBU V1,S5,V0
- BGEZ V1,+2
- ADDU AT,V1,R0
- ADDIU AT,V1,0001
- SRA V1,AT,0x1
- ...
- @800EED70 0xBDE908
- 2474FFFD ADDIU S4,V1,FFFD ;S4 is xpos, -3 so window frame is more awesome
- ...
- @800EEDEC 0xBDE984
- 02E0C025 OR T8,S7,R0
- ...
- @800EF024 0xBDEBBC
- 26850003 ADDIU A1,S4,0003 ;text appears at xpos origially given
- 800EE6E4 0xBDE27C gets width of string, used to draw box
- 0C0099AA JAL 800266A8 ;JAL 800F2AF4
- LW A0,31F0 (A0)
- LUI V1,8010
- LW V1,4380 (V1)
- 240C0110 ADDIU T4,R0,0110
- SUBU A1,T4,V0
- LUI A3,8003
- SLL T5,V1,0x2
- ADDU A3,A3,T5
- LW A3,31F0 (A3)
- ADDIU A0,SP,0050
- BGEZ A1,+2
- ADDU AT,A1,R0
- ADDIU AT,A1,0001
- SRA A1,AT,0x1
- 00000020 NADA ;SLL A1,A1,0x3
- Rollover from existing function works, but could relink properly by using "copy" as a base.
- 800F2E44 0xBE29DC
- 8FA40000 LW A0,0000 (SP)
- 00000020 NADA
- new:
- 0xBF4AC0 80104F28 Select a file.
- 0xBF4AD0 80104F38 Protection will be added (yellow)
- 0xBF4AE9 80104F51 to unprotected files (yellow)
- 0xBF4AFE 80104F66 or
- 0xBF4AB2 80104F6A removed if already (yellow)
- 0xBF4B14 80104F7C protected. (yellow)
- replacable!
- 800F3600
- 800F61DC
- @800F6288 0xBE5E20
- 0803CB93 J 800F2E4C
- 800F2E4C 0xBE29E4 revised "protect" prompt to use static lines.
- 27BDFFD8 ADDIU SP,SP,FFD8
- 3C0E800D LUI T6,800D
- 8DCE6CA8 LW T6,6CA8 (T6)
- 24010003 ADDIU AT,R0,0003
- AFBF0024 SW RA,0024 (SP)
- AFB20020 SW S2,0020 (SP)
- AFB1001C SW S1,001C (SP)
- AFB00018 SW S0,0018 (SP)
- 15C1007F BNE T6,AT,800F314C
- AFA40028 SW A0,0028 (SP)
- 3C0F8012 LUI T7,8012
- 8DEF9880 LW T7,9880 (T7)
- 24010004 ADDIU AT,R0,0004
- 3C08FA00 LUI T0,FA00
- 15E10079 BNE T7,AT,800F314C
- 3C0BDE00 LUI T3,DE00
- @800F2E8C
- 8C840000 LW A0,0000 (A0)
- 3C190300 LUI T9,0300
- 27390510 ADDIU T9,T9,0510
- AC8B0000 SW T3,0000 (A0)
- AC990004 SW T9,0004 (A0)
- 240EFFFF ADDIU T6,R0,FFFF
- AC8E000C SW T6,000C (A0)
- AC880008 SW T0,0008 (A0)
- 3C0FE426 LUI T7,E426
- 3C180005 LUI T8,0005
- 37188178 ORI T8,T8,8178
- 35EF8228 ORI T7,T7,8228
- AC8F0010 SW T7,0010 (A0)
- AC980014 SW T8,0014 (A0)
- 3C0CE100 LUI T4,E100
- AC8C0018 SW T4,0018 (A0)
- AC80001C SW R0,001C (A0)
- 3C1F0400 LUI RA,0400
- 3C0DF100 LUI T5,F100
- 37FF0400 ORI RA,RA,0400
- AC9F0024 SW RA,0024 (A0)
- AC8D0020 SW T5,0020 (A0)
- 3C19E700 LUI T9,E700
- AC990028 SW T9,0028 (A0)
- AC80002C SW R0,002C (A0)
- 240E00FF ADDIU T6,R0,00FF
- AC8E0034 SW T6,0034 (A0)
- AC880030 SW T0,0030 (A0)
- 3C180005 LUI T8,0005
- 3C0FE426 LUI T7,E426
- 35EF4224 ORI T7,T7,4224
- 3718C17C ORI T8,T8,C17C
- AC98003C SW T8,003C (A0)
- AC8F0038 SW T7,0038 (A0)
- AC800044 SW R0,0044 (A0)
- AC8C0040 SW T4,0040 (A0)
- AC9F004C SW RA,004C (A0)
- AC8D0048 SW T5,0048 (A0)
- 3C190300 LUI T9,0300
- 27390540 ADDIU T9,T9,0540
- AC990054 SW T9,0054 (A0)
- AC8B0050 SW T3,0050 (A0)
- 240FFFFF ADDIU T7,R0,FFFF
- 3C0EFA00 LUI T6,FA00
- AC8E0058 SW T6,0058 (A0)
- AC8F005C SW T7,005C (A0)
- 3C18E300 LUI T8,E300
- 3C118003 LUI S1,8003
- 37181201 ORI T8,T8,1201
- 26312AD0 ADDIU S1,S1,2AD0
- AC980060 SW T8,0060 (A0)
- AC800064 SW R0,0064 (A0)
- @800F2FC0: print first line at (18, 60)
- 24100060 ADDIU S0,R0,0060
- 3C078010 LUI A3,8010
- 24840068 ADDIU A0,A0,0068
- AE200000 SW R0,0000 (S1)
- 24E74F28 ADDIU A3,A3,4F28
- 24050018 ADDIU A1,R0,0018
- 0C00A493 JAL 8002924C
- 02003025 OR A2,S0,R0
- @800F2FDC: print second line to (18, 68) in yellow
- 3C0FFFFF LUI T7,FFFF
- 3C19E700 LUI T9,E700
- 35EF00FF ORI T7,T7,00FF
- 3C0EFA00 LUI T6,FA00
- AC590000 SW T9,0000 (V0)
- AC400004 SW R0,0004 (V0)
- AC4E0008 SW T6,0008 (V0)
- AC4F000C SW T7,000C (V0)
- 3C078010 LUI A3,8010
- AE320000 SW S2,0000 (S1)
- 24E74F38 ADDIU A3,A3,4F38
- 26060008 ADDIU A2,S0,0008
- 24440010 ADDIU A0,V0,0010
- 0C00A493 JAL 8002924C
- 24050018 ADDIU A1,R0,0018
- @800F3054: print third line to (18, 70) in yellow
- 3C078010 LUI A3,8010
- AE200000 SW R0,0000 (S1)
- 24E74F51 ADDIU A3,A3,4F51
- 26060010 ADDIU A2,S0,0010
- 00402025 OR A0,V0,R0
- 0C00A493 JAL 8002924C
- 24050018 ADDIU A1,R0,0018
- @800F30D0: print "or " to (18, 78) in white
- 3C18E700 LUI T8,E700
- 3C19FA00 LUI T9,FA00
- 240EFFFF ADDIU T6,R0,FFFF
- AC580000 SW T8,0000 (V0)
- AC400004 SW R0,0004 (V0)
- AC4E000C SW T6,000C (V0)
- AC590008 SW T9,0008 (V0)
- 3C078010 LUI A3,8010
- AE320000 SW S2,0000 (S1)
- 24E74F66 ADDIU A3,A3,4F66
- 24440010 ADDIU A0,V0,0010
- 24050018 ADDIU A1,R0,0018
- 0C00A493 JAL 8002924C
- 26060018 ADDIU A2,S0,0018
- 3C0FFFFF LUI T7,FFFF
- 3C19E700 LUI T9,E700
- 35EF00FF ORI T7,T7,00FF
- 3C0EFA00 LUI T6,FA00
- AC590000 SW T9,0000 (V0)
- AC400004 SW R0,0004 (V0)
- AC4E0008 SW T6,0008 (V0)
- AC4F000C SW T7,000C (V0)
- 3C078010 LUI A3,8010
- AE320000 SW S2,0000 (S1)
- 24E74F6A ADDIU A3,A3,4F6A
- 26060018 ADDIU A2,S0,0018
- 24440010 ADDIU A0,V0,0010
- 0C00A493 JAL 8002924C
- 24050027 ADDIU A1,R0,0027
- 3C078010 LUI A3,8010
- AE200000 SW R0,0000 (S1)
- 24E74F7D ADDIU A3,A3,4F7D
- 26060020 ADDIU A2,S0,0020
- 00402025 OR A0,V0,R0
- 0C00A493 JAL 8002924C
- 24050018 ADDIU A1,R0,0018
- 8FAF0028 LW T7,0028 (SP)
- ADE20000 SW V0,0000 (T7)
- @800F314C
- 8FBF0024 LW RA,0024 (SP)
- 8FB00018 LW S0,0018 (SP)
- 8FB1001C LW S1,001C (SP)
- 8FB20020 LW S2,0020 (SP)
- 03E00008 JR RA
- 27BD0028 ADDIU SP,SP,0028
- ...
- 800F3164 0xBE2CFC
- 800EE578 0xBDE110 compute window xpos
- 3C038013 LUI V1,8013
- 8C638CA0 LW V1,8CA0 (V1)
- 24070110 ADDIU A3,R0,0110
- 00E27023 SUBU T6,A3,V0
- 01C43023 SUBU A2,T6,A0
- 04C10002 BGEZ A2,+2
- 3C0F800F LUI T7,800F
- 24C60001 ADDIU A2,A2,0001
- 00063043 SRA A2,A2,0x1
- 24C50018 ADDIU A1,A2,0018
- 28A10018 SLTI AT,A1,0018
- 10200002 BEQ AT,R0,+2
- 3C028013 LUI V0,8013
- 24050018 ADDIU A1,R0,0018
- 8C428CA4 LW V0,8CA4 (V0)
- 3C18800F LUI T8,800F
- 00A2082A SLT AT,A1,V0
- 54200001 BNEL AT,R0,+1
- 00402825 OR A1,V0,R0
- 8DEF6824 LW T7,6824 (T7)
- 29E100E1 SLTI AT,T7,00E1
- 1420000E BNEZ AT,800EE638
- 8F18703C LW T8,703C (T8)
- 2401FFFF ADDIU AT,R0,FFFF
- 1301000B BEQ T8,AT,800EE638
- 00000000 NOP
- 24650020 ADDIU A1,V1,0020
- 00854021 ADDU T0,A0,A1
- 29010129 SLTI AT,T0,0129
- 14200006 BNEZ AT,800EE638
- 00000000 NOP
- 00E42823 SUBU A1,A3,A0
- 00A0082A SLT AT,A1,R0
- 00A12821 ADDU A1,A1,AT
- 00012843 SRA A1,AT,0x1
- 24A50018 ADDIU A1,A1,0018
- @800EE638
- 03E00008 JR RA
- 00A01025 OR V0,A1,R0
- v = max(7, @80128CA0) >> 3
- v = 0x22 - v - A0
- v += v < 0
- v = (v >> 1) << 3
- xpos = max(0x18, v + 0x18)
- xpos = max(xpos, @800F6CA4)
- if @800F6824 < 0xE1:
- return xpos
- if @800F703C == -1:
- return xpos
- v = (A0 << 3) + @80128CA0 + 0x20
- if v < 0x129:
- return xpos
- v = min(0x22 - v, 0x23 - v) >> 1
- return 0x18 + v << 3
- 800EE640
- @800DFD7C 0xBCF914
- 15E10095 BNE T7,AT,800DFFD4
- AFA200D8 SW V0,00D8 (SP)
- 3C048003 LUI A0,8003
- 0C0099AA JAL 800266A8
- 8C843230 LW A0,3230 (A0)
- 240500A0 ADDIU A1,R0,00A0
- 00022043 SRA A0,V0,0x1
- 3C080400 LUI T0,0400
- 00A42823 SUBU A1,A1,A0
- 3C0D0300 LUI T5,0300
- 8FA300D8 LW V1,00D8 (SP)
- 00451021 ADDU V0,V0,A1
- 25AD0510 ADDIU T5,T5,0510
- 30A403FF ANDI A0,A1,03FF ;ulx
- 304203FF ANDI V0,V0,03FF ;lrx
- 3C19DE00 LUI T9,DE00
- 00042380 SLL A0,A0,0xE
- 00021380 SLL V0,V0,0xE
- AC790000 SW T9,0000 (V1)
- AC6D0004 SW T5,0004 (V1)
- 3C188080 LUI T8,8080
- 3C0CFA00 LUI T4,FA00
- 3718FFFF ORI T8,T8,FFFF
- 3C0EE400 LUI T6,E400
- 240F80D8 ADDIU T7,R0,80D8 ;000580D8 (16, 36) (-2, 36)
- 35CE80E0 ORI T6,T6,80E0 ;E44680E0 (11A, 38) (2, 38)
- AC6C0008 SW T4,0008 (V1)
- AC78000C SW T8,000C (V1)
- 01C27021 ADDU T6,T6,V0
- 01E47821 ADDU T7,T7,A0
- AC6E0010 SW T6,0010 (V1)
- AC6F0014 SW T7,0014 (V1)
- 3C09E100 LUI T1,E100
- 35080400 ORI T0,T0,0400
- 3C0BF100 LUI T3,F100
- 3C19E400 LUI T9,E400
- AC690018 SW T1,0018 (V1)
- AC60001C SW R0,001C (V1)
- AC6B0020 SW T3,0020 (V1)
- AC680024 SW T0,0024 (V1)
- 37398128 ORI T9,T9,8128 ;E4468128 (11A, 4A) (2, 4A)
- 240D8120 ADDIU T5,R0,8120 ;00058120 (16, 48) (-2, 48)
- 0322C821 ADDU T9,T9,V0
- 01A46821 ADDU T5,T5,A0
- AC790028 SW T9,0028 (V1)
- AC6D002C SW T5,002C (V1)
- 24060038 ADDIU A2,R0,0038
- AC690030 SW T1,0030 (V1)
- AC600034 SW R0,0034 (V1)
- 3C0FE400 LUI T7,E400
- 35EF0120 ORI T7,T7,0120 ;E4060120 (18, 48) (0, 48)
- 241880E0 ADDIU T8,R0,80E0 ;000580E0 (16, 38) (-2, 38)
- AFB900D8 SW T9,00D8 (SP)
- AC6B0038 SW T3,0038 (V1)
- AC68003C SW T0,003C (V1)
- 01E47821 ADDU T7,T7,A0
- 0304C021 ADDU T8,T8,A0
- AC6F0040 SW T7,0040 (V1)
- AC780044 SW T8,0044 (V1)
- 24070010 ADDIU A3,R0,0010
- 3C0DE400 LUI T5,E400
- 35AD8120 ORI T5,T5,8120 ;E4468120 (11A, 48) (2, 48)
- 340E00E0 ORI T6,R0,00E0 ;004600E0 (118, 38)
- AC690048 SW T1,0048 (V1)
- AC60004C SW R0,004C (V1)
- 01A26821 ADDU T5,T5,V0
- 01C27021 ADDU T6,T6,V0
- AC6B0050 SW T3,0050 (V1)
- AC680054 SW T0,0054 (V1)
- AC6D0058 SW T5,0058 (V1)
- AC6E005C SW T6,005C (V1)
- AC690060 SW T1,0060 (V1)
- AC600064 SW R0,0064 (V1)
- 3C18E700 LUI T8,E700
- AC6B0068 SW T3,0068 (V1)
- AC68006C SW T0,006C (V1)
- 3C19E400 LUI T9,E400
- 340D00E0 ORI T5,R0,00E0 ;000600E0 (18, 38) (0, 38)
- 37390120 ORI T9,T9,0120 ;E4460120 (118, 48)
- AC780070 SW T8,0070 (V1)
- AC600074 SW R0,0074 (V1)
- 240E00A0 ADDIU T6,R0,00A0
- 0322C821 ADDU T9,T9,V0
- 01A46821 ADDU T5,T5,A0
- 3C18E100 LUI T8,E100
- AC6C0078 SW T4,0078 (V1)
- AC6E007C SW T6,007C (V1)
- AC790080 SW T9,0080 (V1)
- AC6D0084 SW T5,0084 (V1)
- AC780088 SW T8,0088 (V1)
- AC60008C SW R0,008C (V1)
- AC6B0090 SW T3,0090 (V1)
- AC680094 SW T0,0094 (V1)
- 3C0D0300 LUI T5,0300
- 25AD0540 ADDIU T5,T5,0540
- 3C19DE00 LUI T9,DE00
- AC790098 SW T9,0098 (V1)
- AC6D009C SW T5,009C (V1)
- 2419FFFF ADDIU T9,R0,FFFF
- 3C18FA00 LUI T8,FA00
- 246400A8 ADDIU A0,V1,00A8
- AC7900A4 SW T9,00A4 (V1)
- AC7800A0 SW T8,00A0 (V1)
- AFA400D8 SW A0,00D8 (SP)
- 0C009930 JAL 800264C0
- 27FF00AC ADDIU RA,RA,00AC
- @800DFFD4
- uses of strlen 80762B1C
- @8002C77C 0xAD2F04 "FILENAME: do you really want to delete, etc."
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- ADDIU A0,SP,01B4
- SW V0,004C (SP)
- @8002C788
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- OR A0,S1,R0
- LW T6,004C (SP)
- 240F0110 ADDIU T7,R0,0110 ;ADDIU T7,R0,0022
- OR A1,S0,R0
- ADDU A0,V0,T6
- SUBU V1,T7,A0
- LUI T9,0300
- ADDIU T9,T9,0510
- LUI T8,DE00
- SW T8,0000 (A1)
- SW T9,0004 (A1)
- 248C0006 ADDIU T4,A0,0006 ;SLL T4,A0,0x3
- ...
- @8002C7F8
- 00000020 NADA ;SLL V1,V1,0x3
- ...
- OR A2,S2,R0
- JAL 800262F4
- 26250003 ADDIU A1,S1,0003
- OR S0,V0,R0
- @8002CA1C 0xAD31A4
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- ADDIU A0,SP,01B4
- LUI T6,E700
- SW T6,0000 (S0)
- ADDIU T0,S0,0008
- SW R0,0004 (S0)
- LUI T9,FA00
- ADDIU T8,R0,FFFF
- SW T8,0004 (T0)
- SW T9,0000 (T0)
- LW A3,02D0 (SP)
- 244F0003 ADDIU T7,V0,0003 ;SLL T7,V0,0x3
- @800ECDDC 0xBDC974 ->8003A560 initial filename count for "copy"
- @800EE2E4 0xBDDE7C "Cannot place a point here."
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- LW A0,339C (A0)
- 24520006 ADDIU S2,V0,0006 SLL S2,V0,0x3
- OR A0,V0,R0 ;000220C2 SRL A0,V0,0x3
- JAL 800EE578 ;sadly can't be super-lazy about this after all...
- SW S7,0054 (SP)
- @800EE514 0xBDE0AC
- 26E50003 ADDIU A1,S7,0003
- @800EE8D0 0xBDE468 "if you want to copy to another disk..." (0xC)
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- LW A0,3220 (A0)
- 24420006 ADDIU V0,V0,0006
- 24180110 ADDIU T8,R0,0110
- SUBU V1,T8,V0
- OR A0,S0,R0
- LUI T6,0300
- ADDIU T6,T6,0510
- LUI T9,DE00
- SW T9,0000 (A0)
- SW T6,0004 (A0)
- ...
- @800EE93C 0xBDE4D4
- 00404825 OR T1,V0,R0 ;SLL V1,V1,0x3
- ...
- @800EEAF4 0xBDE68C
- 26250003 ADDIU A1,S1,0003 ;OR A1,S1,R0
- @800EEB0C 0xBDE6A4 "insert the disk now." (0xD)
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- LW A0,3224 (A0)
- 24180110 ADDIU T8,R0,0110
- ...
- @800EEB58 on second thought, pull following commands up a couple OPs to overwrite NADAs
- 00000020 NADA ;SLL A1,A1,0x3
- ADDIU A1,A1,0018
- 00000020 NADA ;OR S1,A1,R0
- ...
- @800EEB98 0xBDE730 "OK" (0xE), followed by (A); can somewhat safely save its width to SP+DC
- 24500010 ADDIU S0,V0,0010
- 3C048003 LUI A0,8003
- 0C0099AA JAL 800266A8
- 8C843228 LW A0,3228 (A0)
- 240100A0 ADDIU AT,R0,00A0 ;0x110 is midpoint, but you add 0x30 to the result
- 24420018 ADDIU V0,V0,0018 ;add width of a half-space + icon
- 00021843 SRA V1,V0,0x1
- 02002025 OR A0,S0,R0
- 00232823 SUBU A1,AT,V1
- 00A28821 ADDU S1,A1,V0 ;S1 = right pos of complete string
- ADDIU A2,R0,0080
- JAL 800264C0
- ADDIU A3,R0,000E ;string ID
- LUI T6,FCFF
- 3C09E700 LUI T1,E700
- ORI T6,T6,FFFF
- LUI T7,FFFC
- AC490000 SW T1,0000 (V0)
- ORI T7,T7,F279
- SW T6,0008 (V0)
- SW T8,0010 (V0)
- LUI T6,F510
- LUI T9,0700
- ADDIU T9,T9,4900
- SW T6,0018 (V0)
- LUI T8,E600
- LUI T7,0700
- SW T7,001C (V0)
- SW T8,0020 (V0)
- LUI T6,071F
- SW T9,0014 (V0)
- LUI T9,F300
- ORI T6,T6,F200
- LUI T8,F510
- ; 800EEC08: eliminate LUI T7,E700
- AC490030 SW T1,0030 (V0)
- ORI T8,T8,0800
- SW T6,002C (V0)
- SW T9,0028 (V0)
- 00118880 SLL S1,S1,0x2 ;800EEC1C
- LUI T9,F200
- LUI T6,0003
- SW T8,0038 (V0)
- 262FFFC0 ADDIU T7,S1,FFC0 ; T7 is now the left edge, not right
- ORI T6,T6,C07C
- SW T9,0040 (V0)
- ; 800EEC38: eliminate SLL T8,T7,0x2
- SW T6,0044 (V0)
- 32390FFF ANDI T9,S1,0FFF
- 24090200 ADDIU T1,R0,0200 ; T1 is now precalculated 0x80 << 2
- SLL T6,T9,0xC
- 24180240 ADDIU T8,R0,0240 ; T8 is precalculed 0x90 << 2
- LUI AT,E400
- 01C17025 OR T6,T6,AT
- ; 800EEC58: eliminate SLL T9,T8,0x2
- ; 800EEC5C: eliminate ANDI T6,T9,0FFF
- 030EC025 OR T8,T8,T6
- ; 800EEC64: eliminate SLL T9,S1,0x2
- 31EF0FFF ANDI T7,T7,0FFF
- SW T8,0048 (V0)
- ; 800EEC70: eliminate SLL T8,T1,0x2
- LUI T2,0400
- ; 800EEC78: eliminate ANDI T9,T8,0FFF
- SLL T6,T7,0xC
- ORI T2,T2,0400
- LUI RA,E100
- 01C97825 OR T7,T6,T1
- dl.append(E7000000, 00000000)
- dl.append(FA000000, FFFFFFFF)
- call 800264C0(dl, xpos+0x48, 0x80, 0xE) # print string index A3 to DL A0 at (A1, A2)
- dl.append(E7000000, 00000000)
- dl.append(FCFFFFFF, FFFCF279)
- dl.append(FD100000, 07004900)
- dl.append(F5100000, 07000000)
- dl.append(E6000000, 00000000)
- dl.append(F3000000, 071FF200)
- dl.append(E7000000, 00000000)
- dl.append(F5100800, 00000000)
- dl.append(F2000000, 0003C07C)
- xpos += 0x70
- lrx = (xpos + 0x10) << 2
- lrx &= 0xFFF
- xpos = (xpos << 2) & 0xFFF
- uly = (0x80 << 2) & 0xFFF
- lry = (0x90 << 2) & 0xFFF
- dl.append(E4000000 | lrx << 12 | lry, xpos << 12 | uly)
- dl.append(E1000000, 00000000)
- dl.append(F1000000, 04000400)
- @800EECD4
- @800F2BC8 0xBE2760 "(B) undo the most recent change."
- 0C0099AA JAL 800266A8 ;JAL 80762B1C
- LW A0,3244 (A0)
- 24480003 ADDIU T0,V0,0003 ;string still prints in original location but right side padded
- These use a totally different print function series.
- Expedite this by making a redirection function for 8002EAF0.
- 80025D90 0xACC518 V0 = p->updated DL for centered text box in color A2 fitting string A1
- accepts: A0=p->DL, A1=p->string, A2=color
- 27BDFFD8 ADDIU SP,SP,FFD8
- AFBF0024 SW RA,0024 (SP)
- AFA60020 SW A2,0020 (SP)
- AFA40018 SW A0,0018 (SP)
- 2401000A ADDIU AT,R0,000A
- 00A02025 OR A0,A1,R0
- 24020001 ADDIU V0,R0,0001 ;always at least one line
- 90A30000 LBU V1,0000 (A1)
- 50610001 BEQL V1,AT,+1
- 24420001 ADDIU V0,V0,0001
- 1460FFFC BNE V1,R0,-4
- 24A50001 ADDIU A1,A1,0001
- 0C0099AA JAL 800266A8 # V0=width of longest line in string A0
- AFA2001C SW V0,001C (SP)
- 8FBF0024 LW RA,0024 (SP)
- 8FA70020 LW A3,0020 (SP)
- 8FA6001C LW A2,001C (SP)
- 8FA40018 LW A0,0018 (SP)
- 00402825 OR A1,V0,R0
- 0800BABC J 8002EAF0
- 27BD0028 ADDIU SP,SP,0028
- Another redirection service:
- 8002EC50 0xAD53D8 redirect for 8002EAF0: V0=updated DL A2 for centered box in color A3 for A1 strings at A0
- accepts: A0=p->strings, A1=#strings, A2=p->DL, A3=color
- 27BDFFE8 ADDIU SP,SP,FFE8
- AFBF0014 SW RA,0014 (SP)
- AFA5001C SW A1,001C (SP)
- AFA60020 SW A2,0020 (SP)
- 0C00BB23 JAL 8002EC8C ;V0=longest of A1 strings at A0
- AFA70024 SW A3,0024 (SP)
- 8FA40020 LW A0,0020 (SP)
- 8FA6001C LW A2,001C (SP)
- 8FA70024 LW A3,0024 (SP)
- 8FBF0014 LW RA,0014 (SP)
- 00402825 OR A1,V0,R0
- 0800BABC J 8002EAF0 ;V0=updated DL A0 for centered box in color A3 with A2 lines and width A1
- 27BD0018 ADDIU SP,SP,0018
- 8002ED64 prints error messages
- #8002EFA8
- v = 807C6EA8[8:12]
- if v < 0x1C:
- # jump 80033580[v]
- if v == 1: #8002EFD4 "Please read the instruction manual."
- call 8002EAF0(@SP+38, 0xF0, 4, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @8076D370)
- T0 = 807C6EA8
- elif v == 2: #8002F018 "Do not remove the disk...read the manual."
- call 8002EAF0(@SP+38, 0xF0, 4, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @8076D374)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[2:4], @8076D378)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[4:6], @8076D37C)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[4:6], @8076D380)
- T0 = 807C6EA8
- elif v == 3: #8002F0BC "The wrong disk may be inserted..."
- call 8002EAF0(@SP+38, 0x110, 3, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @8076D38C)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[2:4], @8076D390)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[4:6], @8076D394)
- T0 = 807C6EA8
- elif v == 4: #8002F140 "Is the disk inserted?"
- call 8002EAF0(@SP+38, 0xF8, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @8076D398)
- T0 = 807C6EA8
- elif v == 6: #8002F184 "Saving..."
- call 8002EAF0(@SP+38, 0x68, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337D0)
- T0 = 807C6EA8
- elif v == 5: #8002F1C8 "Loading..."
- call 8002EAF0(@SP+38, 0x68, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337D4)
- T0 = 807C6EA8
- elif v == 7: #8002F20C "Copying."
- call 8002EAF0(@SP+38, 0x68, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337F4)
- T0 = 807C6EA8
- elif v == 8: #8002F250 "Setting entry."
- call 8002EAF0(@SP+38, 0x88, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337F8)
- T0 = 807C6EA8
- elif v == 9: #8002F294 "Cannot run while accessing the disk."
- call 8002EAF0(@SP+38, 0xD8, 1, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337D8)
- T0 = 807C6EA8
- elif v == 11: #8002F2D8 "Renaming file."
- call 8002EAF0(@SP+38, 0x88, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337DC)
- T0 = 807C6EA8
- elif v == 12: #8002F31C "Deleting file."
- call 8002EAF0(@SP+38, 0xA8, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337E0)
- T0 = 807C6EA8
- elif v == 13: #8002F360 "No File."
- if 80794E24[0]:
- 80033504[0:2] = 0
- 80794E24[0] = 0
- v = 80033500[0:2]
- if 80033504[0:2] < v:
- #8002F44C
- T0+8 = 0
- jump 8002F8BC
- if v < 0:
- v += 3
- v >>= 2
- if v < 80033504[0:2]:
- i = @8079A888 * 0x94
- i = 8079A584[i:i+2]
- if i & 0xC000:
- T0+8 = 0
- jump 8002F8BC
- #8002F3F4:
- SP+38 = call 8002EAF0(@SP+38, 0xA8, 1, 0x843F) # V0 = updated DL A0 for centered window A1 long with A2 lines in color A3
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337E4)
- 80033504[0:2] += 1
- T0 = 807C6EA8
- elif v == 14: #8002F454 "File is protected."
- call 8002EAF0(@SP+38, 0xC8, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337E8)
- T0 = 807C6EA8
- elif v == 15: #8002F498 "Removing protection."
- call 8002EAF0(@SP+38, 0xD8, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337EC)
- T0 = 807C6EA8
- ...
- elif v in (16, 27): #8002F4DC
- if 80794E1C[0]:
- 80033504[0:2] = 0
- 80794E1C[0] = 0
- if not 80033504[0:2] < 80033500[0:2]:
- T0+8 = 0
- jump 8002F8BC
- v = 80033500[0:2]
- if v < 0:
- v += 3
- v >> = 2
- if v < 80033504[0:2]:
- i = @8079A888 * 0x94
- i = 8079A584[i:i+2]
- if i & 0xC000:
- T0+8 = 0
- jump 8002F8BC
- #8002F570
- v = @T0+8
- if v == 0x10:
- #8002F598 # "Protecting file."
- SP+38 = call 8002EAF0(@SP+38, 0xD8, 1, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337F0)
- elif v == 0x1B:
- #8002F5DC
- SP+38 = call 8002EAF0(@SP+38, 0xB8, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @80033804)
- 80033504[0:2] += 1
- T0 = 807C6EA8
- elif v == 17: #8002F638 "Enter the machine's name."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0xC0, @801372B8, 0x843F)
- T0 = 807C6EA8
- elif v == 18: #8002F668 "Do you want to overwrite the file?"
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x100, @801372C0, 0x843F)
- call 8002D340(SP+38)
- T0 = 807C6EA8
- elif v == 19: #8002F6A0 "Out of disk space" "Delete files you do not need."
- SP+38 = call 8002EA10(@SP+38, 0x28, 0x28, 0x118, 0x48, 0xF801)
- SP+38 = call 800262F4(@SP+38, 0x28, 0x28, @801372C4)
- SP+38 = call 800262F4(@SP+38, 0x28, 0x38, @801372C8)
- T0 = 807C6EA8
- elif v == 20: #8002F70C "Clear all custom machine entries?"
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x110, @801372CC, 0x843F)
- T0 = 807C6EA8
- elif v == 21: #8002F744 "Previously saved data" "did not save properly"
- SP+38 = call 8002EA10(@SP+38, 0x30, 0x28, 0x110, 0x48, 0xF801)
- call 8070F6C8(SP+38, 0x30, 0x28, @8076D3A8)
- call 8070F6C8(SP+38, 0x30, 0x38, @8076D3AC)
- T0 = 807C6EA8
- elif v == 22: #8002F7A8 "Cannot be edited."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x70, @801372D0, 0xF801)
- T0 = 807C6EA8
- elif v == 23: #8002F7D8 "Cannot be saved."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x80, @801372D4, 0xF801)
- T0 = 807C6EA8
- elif v == 24: #8002F808 "Choose a machine entry."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x110, @801372DC, 0x843F)
- T0 = 807C6EA8
- elif v == 25: #8002F838 "Clearing entry."
- call 8002EAF0(@SP+38, 0x88, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @800337FC)
- T0 = 807C6EA8
- elif v == 26: #8002F87C "Saving options."
- call 8002EAF0(@SP+38, 0xB8, 1, 0x843F)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @80033800)
- T0 = 807C6EA8
- #8002F8BC disk switch messages
- DL = @SP+38
- xpos = 0x26
- if @807C6EA8+C == 1: #8002F8F0 "Please insert the disk."
- SP+38 = call 8002EA10(DL, xpos, 0xBB, 0x11A, 0xD1, 0xF801)
- call 8070F6C8(@SP+38, 0x2C, 0xBE, @8076D384)
- elif @807C6EA8+C == 2: #8002F930 "Please remove the disk."
- SP+38 = call 8002EA10(DL, 0x26, 0xBB, 0x11A, 0xD1, 0xF801)
- call 8070F6C8(@SP+38, 0x2C, 0xBE, @8076D3A4)
- elif @807C6EA8+C == 3: #8002F974 "Reinsert the disk." "original disk."
- SP+38 = call 8002EA10(DL, 0x32, 0xA7, 0x11A, 0x10E, 0xF801)
- call 8070F6C8(@SP+38, 0x38, 0xAA, @8076D388)
- call 8070F6C8(@SP+38, 0x38, 0xBE, @8076D3A0)
- #8002F9CC
- ...
- #8002F6A0
- ...
- 8002F9DC V0=updated p->DL A0 for printed "Please wait." message
- accepts: A0=p->DL
- if @807C6EA8 == 4:
- DL = call 8002EA10(p->DL, 0x3E, 0xBB, 0x102, 0xD1, 0x843F)
- DL = call 8070F6C8(DL, 0x44, 0xBE, @8076D3CC) # "Please wait."
- return p->DL
- 8002FA50
- 8012F7AC 0xC0FCB4 prints clear machine message "%s" "Clear this entry?"
- accepts: A0=p->DL, A1=p->string
- v = call 80762B1C(p->string) #V0 = memlen(A0)
- SP+43[0] = v < 9
- call 80026830(p->string, SP+44) # A1 = p->shift_jis string for single-byte encoded string A0
- if @SP+43:
- SP+30 = call 80762B1C(SP+44) #V0 = memlen(A0)
- width = call 80762B1C(@801372E0) #V0 = memlen(A0)
- width += @SP+30 #total width
- SP+67[0] = width
- ulx = 0x22 - width
- ulx += (ulx < 0)
- ulx >>= 1
- ulx <<= 3
- ulx += 0x18
- lrx = ulx + width * 8
- uly, lry = 0x2E, 0x4E
- p->DL = call 8002EA10(p->DL, ulx, uly, lrx, lry, 0x843F) # V0=p->updated DL A0 for box in color SP+14 at (A1,A2) (A3,SP+10)
- else:
- SP+2C = call 80762B1C(@801372E0) #V0 = memlen(A0)
- SP+30 = call 80762B1C(SP+44) #V0 = memlen(A0)
- width = call 80762B1C(@801372E4) #V0 = memlen(A0)
- width += @SP+2C + @SP+30 #total width
- ulx = 0x22 - width
- ulx += (ulx < 0)
- ulx >>= 1
- ulx <<= 3
- ulx += 0x18
- lrx = ulx + width * 8
- uly, lry = 0x36, 0x46
- p->DL = call 8002EA10(p->DL, ulx, uly, lrx, lry, 0x843F) # V0=p->updated DL A0 for box in color SP+14 at (A1,A2) (A3,SP+10)
- #8012F92C
- DL.append(FA000000, FF4040FF)
- p->DL = call 800262F4(p->DL, ulx, uly, SP+44) # V0=updated display list A0 printing string A3 to (A1, A2)
- v = call 80762B1C(SP+44) #V0 = memlen(A0)
- DL.append(E7000000, 00000000)
- xpos = ulx + v * 8
- DL.append(FA000000, FFFFFFFF)
- if @SP+43:
- p->DL = call 800262F4(p->DL, xpos, uly, @801372E0) # V0=updated display list A0 printing string A3 to (A1, A2)
- ulx = 0x22 - width
- ulx += (ulx < 0)
- ulx >>= 1
- ulx <<= 3
- ulx += 0x18
- p->DL = call 800262F4(p->DL, ulx, uly + 0x10, @801372E4) # V0=updated display list A0 printing string A3 to (A1, A2)
- else:
- p->DL = call 800262F4(p->DL, xpos, uly, @801372E0) # V0=updated display list A0 printing string A3 to (A1, A2)
- p->DL = call 800262F4(p->DL, xpos + 0x10, uly, @801372E4) # V0=updated display list A0 printing string A3 to (A1, A2)
- #8012FA70
- return call 8002D340(p->DL)
- 8012FA94
- 8002ECE8 0xAD5470 V0=updated DL A0 for text A3 printed centered at ypos A1 in box of width A2 in color SP+10
- accepts: A0=p->DL, A1=ypos, [A2=width], A3=p->string, SP+10=color
- 27BDFFD0 ADDIU SP,SP,FFD0
- AFA7002C SW A3,002C (SP)
- AFA50024 SW A1,0024 (SP)
- AFA40020 SW A0,0020 (SP)
- AFBF001C SW RA,001C (SP)
- 0C0099AA JAL 800266A8 # V0=width of longest line in string A0
- 00E02025 OR A0,A3,R0
- 240E0140 ADDIU T6,R0,0140
- 24420006 ADDIU V0,V0,0006
- 8FA60024 LW A2,0024 (SP)
- 01C22823 SUBU A1,T6,V0
- 24CF0010 ADDIU T7,A2,0010
- 00052843 SRA A1,A1,0x1
- 97B80042 LHU T8,0042 (SP)
- 8FA40020 LW A0,0020 (SP)
- 00A23821 ADDU A3,A1,V0
- AFAF0010 SW T7,0010 (SP)
- AFA50028 SW A1,0028 (SP)
- 0C00BA84 JAL 8002EA10 # V0=p->updated DL A0 for box in color SP+14 at (A1,A2) (A3,SP+10)
- AFB80014 SW T8,0014 (SP)
- 00402025 OR A0,V0,R0
- 8FA50028 LW A1,0028 (SP)
- 8FA60024 LW A2,0024 (SP)
- 8FA7002C LW A3,002C (SP)
- 0C0098BD JAL 800262F4 # V0=updated display list A0 printing string A3 to (A1, A2)
- 24A50003 ADDIU A1,A1,0003
- 8FBF001C LW RA,001C (SP)
- 03E00008 JR RA
- 27BD0030 ADDIU SP,SP,0030
- accepts: A0=p->DL, A1=ypos, A2=width, A3=p->string, SP+10=color
- xpos = (0x140 - width) >> 1
- p->DL = call 8002EA10(p->DL, xpos, ypos, xpos + width, ypos + 16, color)
- return call 800262F4(p->DL, xpos, ypos, p->string)
- 8002ED64
- Now to fix these with the new function.
- @8002EFD8 0xAD5760 "Refer to the instruction manual."
- 3C058077 LUI A1,8077
- 3406F801 ORI A2,R0,F801
- 0C009764 JAL 80025D90
- 8CA5D370 LW A1,D370 (A1)
- ...
- `@8002F018 0xAD57A0 multiline message, maybe skip
- 3C048077 LUI A0,8077
- 8FA60038 LW A2,0038 (SP)
- 24050004 ADDIU A1,R0,0004
- 3407F801 ORI A3,R0,F801
- 0C00BB14 JAL 8002EC50 ;redirect for 8002EAF0: V0=updated DL A2 for centered box in color A3 for A1 strings at A0
- 2484D374 ADDIU A0,A0,D374
- 3C058004 LUI A1,8004
- 3C078077 LUI A3,8077
- AFA20038 SW V0,0038 (SP)
- 8CE7D374 LW A3,D374 (A3)
- 94A6BBA8 LHU A2,BBA8 (A1)
- 94A5BBA0 LHU A1,BBA0 (A1)
- call 8002EAF0(@SP+38, 0xF0, 4, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @8076D374) "(Note) do not remove the disk"
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[2:4], @8076D378) "when the access light is blinking."
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[4:6], @8076D37C) "For more information,"
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[4:6], @8076D380) "read the instruction manual."
- T0 = 807C6EA8
- ...
- `@8002F0BC 0xAD5844
- 3C048077 LUI A0,8077
- 8FA60038 LW A2,0038 (SP)
- 24050003 ADDIU A1,R0,0003
- 3407F801 ORI A3,R0,F801
- 0C00BB14 JAL 8002EC50 ;redirect for 8002EAF0: V0=updated DL A2 for centered box in color A3 for A1 strings at A0
- 2484D38C ADDIU A0,A0,D38C
- 3C058004 LUI A1,8004
- 3C078077 LUI A3,8077
- AFA20038 SW V0,0038 (SP)
- 8CE7D38C LW A3,D38C (A3)
- 94A6BBA8 LHU A2,BBA8 (A1)
- 94A5BBA0 LHU A1,BBA0 (A1)
- call 8002EAF0(@SP+38, 0x110, 3, 0xF801)
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[0:2], @8076D38C) "It is possible the wrong"
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[2:4], @8076D390) "disk is inserted."
- call 8070F6C8(SP+38, 8003BBA0[0:2], 8003BBA8[4:6], @8076D394) "Please insert the correct disk."
- T0 = 807C6EA8
- ...
- @8002F144 0xAD58CC
- 3C058077 LUI A1,8077
- 3406F801 ORI A2,R0,F801
- 0C009764 JAL 80025D90
- 8CA5D398 LW A1,D398 (A1)
- ...
- @8002F188 0xAD5910
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537D0 LW A1,37D0 (A1)
- ...
- @8002F1CC 0xAD5954
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537D4 LW A1,37D4 (A1)
- ...
- @8002F210 0xAD5998
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537F4 LW A1,37F4 (A1)
- ...
- @8002F254 0xAD59DC
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537F8 LW A1,37F8 (A1)
- ...
- @8002F298 0xAD5A20
- 3C058003 LUI A1,8003
- 3406F801 ORI A2,R0,F801
- 0C009764 JAL 80025D90
- 8CA537D8 LW A1,37D8 (A1)
- ...
- @8002F2DC 0xAD5A64
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537DC LW A1,37DC (A1)
- ...
- @8002F320 0xAD5AA8
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537E0 LW A1,37E0 (A1)
- ...
- @8002F3F8 0xAD5B80
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537E4 LW A1,37E4 (A1)
- ...
- @8002F458 0xAD5BE0
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537E8 LW A1,37E8 (A1)
- ...
- @8002F49C 0xAD5C24
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537EC LW A1,37EC (A1)
- ...
- @8002F578 0xAD5D00
- 3C058003 LUI A1,8003
- 50410006 BEQL V0,AT,8002F598
- 8CA537F0 LW A1,37F0 (A1)
- 2401001B ADDIU AT,R0,001B
- 10410014 BEQ V0,AT,8002F5DC
- 00000000 NOP
- ...
- @8002F598 0xAD5D20
- 0C009764 JAL 80025D90
- 3406F801 ORI A2,R0,F801
- ...
- @8002F5E0 0xAD5D68
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA53804 LW A1,3804 (A1)
- ...
- elif v == 17: #8002F638 "Enter the machine's name."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0xC0, @801372B8, 0x843F)
- T0 = 807C6EA8
- elif v == 18: #8002F668 "Do you want to overwrite the file?"
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x100, @801372C0, 0x843F)
- call 8002D340(SP+38)
- T0 = 807C6EA8
- elif v == 19: #8002F6A0 "Out of disk space." "Delete files you do not need."
- @8002F6A0 0xAD5E28
- 3C048013 LUI A0,8013
- 3409F801 ORI T1,R0,F801
- 8FA60038 LW A2,0038 (SP)
- 248472C4 ADDIU A0,A0,72C4
- 24070028 ADDIU A3,R0,0028
- AFA90010 SW T1,0010 (SP)
- 0C00BAF9 JAL 8002EBE4 ;V0=updated DL A2 for box in color SP+10 with A1 lines at A3, fit to strings A0
- 24050002 ADDIU A1,R0,0002
- 3C058004 LUI A1,8004
- LUI A3,8013
- SW V0,0038 (SP)
- LW A3,72C4 (A3)
- OR A0,V0,R0
- 94A5BBA0 LHU A1,BBA0 (A1)
- JAL 800262F4
- ADDIU A2,R0,0028
- LUI A3,8013
- SW V0,0038 (SP)
- LW A3,72C8 (A3)
- OR A0,V0,R0
- 3C058004 LUI A1,8004
- 94A5BBA0 LHU A1,BBA0 (A1)
- JAL 800262F4
- ADDIU A2,R0,0038
- SW V0,0038 (SP)
- 1000006C BEQ R0,R0,8002F8B8
- 3C08807C LUI T0,807C
- SP+38 = call 8002EA10(@SP+38, 0x28, 0x28, 0x118, 0x48, 0xF801)
- SP+38 = call 800262F4(@SP+38, 0x28, 0x28, @801372C4)
- SP+38 = call 800262F4(@SP+38, 0x28, 0x38, @801372C8)
- T0 = 807C6EA8
- elif v == 20: #8002F70C "Clear all custom machine entries?"
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x110, @801372CC, 0x843F)
- T0 = 807C6EA8
- elif v == 21: #8002F744 "Previously saved data" "did not save properly"
- @8002F744 0xAD5ECC
- 3C048077 LUI A0,8077
- 340DF801 ORI T5,R0,F801
- 8FA60038 LW A2,0038 (SP)
- 2484D3A8 ADDIU A0,A0,D3A8
- 24070028 ADDIU A3,R0,0028
- AFAD0010 SW T5,0010 (SP)
- 0C00BAF9 JAL 8002EBE4 ;V0=updated DL A2 for box in color SP+10 with A1 lines at A3, fit to strings A0
- 24050002 ADDIU A1,R0,0002
- 3C058004 LUI A1,8004
- LUI A3,8077
- SW V0,0038 (SP)
- LW A3,D3A8 (A3)
- ADDU A0,SP,0038
- 94A5BBA0 LHU A1,BBA0 (A1)
- JAL 8070F6C8
- ADDIU A2,R0,0028
- LUI A3,8077
- 3C058004 LUI A1,8004
- LW A3,D3AC (A3)
- ADDIU A0,SP,0038
- 94A5BBA0 LHU A1,BBA0 (A1)
- JAL 8070F6C8
- ADDIU A2,R0,0038
- 10000045 BEQ R0,R0,8002F8B8
- LUI T0,807C
- ...
- elif v == 22: #8002F7A8 "Cannot be edited."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x70, @801372D0, 0xF801)
- T0 = 807C6EA8
- elif v == 23: #8002F7D8 "Cannot be saved."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x80, @801372D4, 0xF801)
- T0 = 807C6EA8
- elif v == 24: #8002F808 "Choose a machine entry."
- SP+38 = call 8002ECE8(@SP+38, 0x36, 0x110, @801372DC, 0x843F)
- T0 = 807C6EA8
- ...
- @8002F83C 0xAD5FC4 "Clearing entries."
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA537FC LW A1,37FC (A1)
- ...
- @8002F880 0xAD6008 "Saving options."
- 3C058003 LUI A1,8003
- 3406843F ORI A2,R0,843F
- 0C009764 JAL 80025D90
- 8CA53800 LW A1,3800 (A1)
- ...
- @8002F8BC 0xAD6044 disk switch messages, all in one monster routine
- 8D02000C LW V0,000C (T0)
- 3C048077 LUI A0,8077
- 24050001 ADDIU A1,R0,0001
- 24010002 ADDIU AT,R0,0002
- 24030003 ADDIU V1,R0,0003
- 8FA60038 LW A2,0038 (SP)
- 50450006 BEQL V0,A1,+6
- 2484D384 ADDIU A0,A0,D384
- 50410004 BEQL V0,AT,+4
- 2484D3A4 ADDIU A0,A0,D3A4
- 54430039 BNEL V0,V1,8002F9CC
- 8FBF001C LW RA,001C (SP)
- 2484D39C ADDIU A0,A0,D39C
- 8C830000 LW V1,0000 (A0)
- 3402F801 ORI V0,R0,F801
- 240700BB ADDIU A3,R0,00BB
- AFA20010 SW V0,0010 (SP)
- 0C00BAF9 JAL 8002EBE4 ;V0=updated DL A2 for box in color SP+10 with A1 lines at A3, fit to strings A0
- AFA3003C SW V1,003C (SP)
- 3C058004 LUI A1,8004
- 8FA7003C LW A3,003C (SP)
- 94A5BBA0 LHU A1,BBA0 (A1)
- 27A40038 ADDIU A0,SP,0038
- 240600BB ADDIU A2,R0,00BB
- AFA20038 SW V0,0038 (SP)
- 0C1C3DB2 JAL 8070F6C8
- 27FF00A0 ADDIU RA,RA,00A0 ;target is 8002F9CC
- @8002F9CC
- DL = @SP+38
- xpos = 0x26
- if @807C6EA8+C == 1: #8002F8F0 "Please insert the disk."
- SP+38 = call 8002EA10(DL, xpos, 0xBB, 0x11A, 0xD1, 0xF801)
- call 8070F6C8(@SP+38, 0x2C, 0xBE, @8076D384)
- elif @807C6EA8+C == 2: #8002F930 "Please remove the disk."
- SP+38 = call 8002EA10(DL, 0x26, 0xBB, 0x11A, 0xD1, 0xF801)
- call 8070F6C8(@SP+38, 0x2C, 0xBE, @8076D3A4)
- elif @807C6EA8+C == 3: #8002F974 "Please reinsert the" "original disk."
- SP+38 = call 8002EA10(DL, 0x32, 0xA7, 0x11A, 0x10E, 0xF801)
- call 8070F6C8(@SP+38, 0x38, 0xAA, @8076D388)
- call 8070F6C8(@SP+38, 0x38, 0xBE, @8076D3A0)
- 8002F9DC 0xAD6164 V0=updated p->DL A0 for printed "Please wait." message
- 3C0E807C LUI T6,807C
- 27BDFFE0 ADDIU SP,SP,FFE0
- 8DCF6EB4 LW T7,6EB4 (T6) ;@807C6EA8+C
- 24010004 ADDIU AT,R0,0004
- AFBF001C SW RA,001C (SP)
- 15E10012 BNE T7,AT,8002FA3C
- AFA40020 SW A0,0020 (SP)
- 00803025 OR A2,A0,R0
- 24050001 ADDIU A1,R0,0001
- 3401843F ORI AT,R0,843F
- 3C048077 LUI A0,8077
- 240700BB ORI A3,R0,00BB
- 2484D3CC ADDIU A0,A0,D3CC
- 0C00BAF9 JAL 8002EBE4 ;V0=updated DL A2 for box in color SP+10 with A1 lines at A3, fit to strings A0
- AFA10010 SW AT,0010 (SP)
- 3C078077 LUI A3,8077
- 3C058004 LUI A1,8004
- 94A5BBA0 LHU A1,BBA0 (A1)
- 27A40020 ADDIU A0,SP,0020
- 240600BB ADDIU A2,R0,00BB
- AFA20020 SW V0,0020 (SP)
- 0C1C3DB2 JAL 8070F6C8
- 8CE7D3CC LW A3,D3CC (A3)
- 8FBF001C LW RA,001C (SP)
- 8FA20020 LW V0,0020 (SP)
- 27BD0020 ADDIU SP,SP,0020
- 03E00008 JR RA
- 00000000 NOP
- accepts: A0=p->DL
- if @807C6EA8+C == 4:
- DL = call 8002EA10(p->DL, 0x3E, 0xBB, 0x102, 0xD1, 0x843F)
- DL = call 8070F6C8(DL, 0x44, 0xBE, @8076D3CC) # "Please wait."
- return p->DL
- 8002FA50
- Rewritten to size box and multiline properly. If it can't fit within 0x110, multiline.
- 8012F7AC 0xC0FCB4 prints clear machine message "%s" "Clear this entry?"
- accepts: A0=p->DL, A1=p->string
- 27BDFF90 ADDIU SP,SP,FF90
- AFBF001C SW RA,001C (SP)
- AFA40070 SW A0,0070 (SP)
- AFA50074 SW A1,0074 (SP)
- 8C880000 LW T0,0000 (A0)
- 00A02025 OR A0,A1,R0
- 27A50044 ADDIU A1,SP,0044
- 0C009A0C JAL 80026830 ;A1=p->shift_jis string for single-byte encoded string A0
- AFA8006C SW T0,006C (SP)
- 0C0099AA JAL 800266A8 ;V0=width of string A0
- 27A40044 ADDIU A0,SP,0044
- 3C048013 LUI A0,8013
- AFA2002C SW V0,002C (SP)
- 0C0099AA JAL 800266A8 ;V0=width of string A0
- 8C8472E4 LW A0,72E4 (A0) ;801372E4 = "Clear this entry?"
- 3C048013 LUI A0,8013
- AFA20034 SW V0,0034 (SP)
- 0C0099AA JAL 800266A8 ;V0=width of string A0
- 8C8472E0 LW A0,72E0 (A0) ;801372E0 = ": "
- 8FAB002C LW T3,002C (SP)
- 8FA80034 LW T0,0034 (SP) ;length of prompt; also offset to colon
- 01621821 ADDU V1,T3,V0 ;length of name + colon
- 01034821 ADDU T1,T0,V1 ;length of name + colon + prompt
- 2D210110 SLTIU AT,T1,0110
- 14200009 BNE AT,R0,single
- 240F00A0 ADDIU T7,R0,00A0
- @double
- 0103082B SLTU AT,T0,V1 ;True if prompt shorter than name
- 2406002E ADDIU A2,R0,002E
- 240D003E ADDIU T5,R0,003E
- 50200002 BEQL AT,R0,+2
- 01007025 OR T6,T0,R0
- 00607025 OR T6,V1,R0
- 10000005 BEQ R0,R0,box
- 00006025 OR T4,R0,R0 ;0 = offset to prompt
- @single
- 252E0006 ADDIU T6,T1,0006
- 24060036 ADDIU A2,R0,0036
- 240D0036 ADDIU T5,R0,0036
- 00606025 OR T4,V1,R0 ;length of name + colon = offset to prompt
- @box
- 25C90001 ADDIU T1,T6,0001 ;align to even number
- 00090842 SRL AT,T1,0x1
- 01E12823 SUBU A1,T7,AT ;ulx, and xpos for all lines
- A7A60032 SH A2,0032 (SP)
- A7AD003A SH T5,003A (SP)
- 24A10003 ADDIU AT,A1,0003
- 00A93821 ADDU A3,A1,T1 ;lrx
- 01615821 ADDU T3,T3,AT ;xpos for colon
- 01816021 ADDU T4,T4,AT ;xpos for prompt
- 25AA0010 ADDIU T2,T5,0010 ;lry
- A7A50030 SH A1,0030 (SP)
- A7AC0038 SH T4,0038 (SP)
- 3401843F ORI AT,R0,843F
- AFAB0034 SW T3,0034 (SP)
- AFAA0010 SW T2,0010 (SP)
- AFA10014 SW AT,0014 (SP)
- 0C00BA84 JAL 8002EA10 ;V0=p->updated DL A0 for box in color SP+14 at (A1,A2) (A3,SP+10)
- 8FA4006C LW A0,006C (SP)
- 24440008 ADDIU A0,V0,0008
- 3C09FF40 LUI T1,FF40
- 3C08FA00 LUI T0,FA00
- 97A50030 LHU A1,0030 (SP)
- 97A60032 LHU A2,0032 (SP)
- 352940FF ORI T1,T1,40FF
- AC480000 SW T0,0000 (V0)
- AC490004 SW T1,0004 (V0)
- 0C0098BD JAL 800262F4
- 27A70044 ADDIU A3,SP,0044
- 24440010 ADDIU A0,V0,0010
- 3C0AE700 LUI T2,E700
- 3C08FA00 LUI T0,FA00
- 3C078013 LUI A3,8013
- 8FA50034 LW A1,0034 (SP)
- 2409FFFF ADDIU T1,R0,FFFF
- AC4A0000 SW T2,0000 (V0)
- AC400004 SW R0,0004 (V0)
- AC480008 SW T0,0008 (V0)
- AC49000C SW T1,000C (V0)
- 8CE772E0 LW A3,72E0 (A3)
- 0C0098BD JAL 800262F4
- 97A60032 LHU A2,0032 (SP)
- 3C078013 LUI A3,8013
- 97A50038 LHU A1,0038 (SP)
- 97A6003A LHU A2,003A (SP)
- 00402025 OR A0,V0,R0
- 0C0098BD JAL 800262F4
- 8CE772E4 LW A3,72E4 (A3)
- 27A4006C ADDIU A0,SP,006C
- 0C00B4D0 JAL 8002D340 ;draw yes/no box
- AFA2006C SW V0,006C (SP)
- 8FB8006C LW T8,006C (SP)
- 8FB90070 LW T9,0070 (SP)
- AF380000 SW T8,0000 (T9)
- 8FBF001C LW RA,001C (SP)
- 27BD0070 ADDIU SP,SP,0070
- 03E00008 JR RA
- 00000000 NOP
- 8012FA94
- 0xAD60B0 0xA0 greetz.z
- 0xADD390 0x438 such.doge
- 8070F170 load image for wchar A0 to A1 from IPL(?)
- accepts: A0=wchar, A1=p->target
- i = call 8075BB20(wchar) # V0 = index of char A0 in font table or -1 if invalid
- s = @8079A340
- 8079FCA8[2] = 0
- 8079FCA8[4:8] = 8079FC88
- 8079FCA8[8:12] = p->target
- 8079FCA8[12:16] = 0xA0000 + i
- 8079FCA8[16:20] = 0x80
- s[20:24] = 2
- if @8079A32C == 2:
- call 80768B88(s, 8079FCA8, False)
- else:
- call 8074BA30(call 80747ED0(), 0x80)
- call 8074B840(@8079A340, 8079FCA8, False)
- call 80746000(8079FC88, None, True)
- 8070F240 fill 8079FCC0 with pointers to font images in 8076D3DC
- call 8074BA00(8079FC88, 8079FCA0, 1) # create msg queue A0 with A2 msgs at A1
- for i, wchar in enumerate(8076D3DC): # reads two bytes at a time, 0x6E entries
- 8079FCC0[i](wchar) # list of words
- call 8070F170(wchar, 8003BBD8 + i * 0x80) # load image for wchar A0 to A1 from IPL(?)
- 8070F2F8
- 8070F3B4 call 80703FC8()
- 8070F3D4 V0 = updated DL A0 for image A3 drawn at (A1, A2)
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->image
- 8070F634 V0 = p->image for char A0 in table at 8079FCC0 or @8003BBB0
- accepts: A0=char
- if wchar in 8079FCC0:
- v = 8079FCC0.index(wchar) # 0x6E entries
- return @8003BBD8[v * 0x80]
- if wchar in @8003BBB0:
- v = @8003BBB0.index(wchar) # 0x14 entries
- return @8003BBC0[v * 0x80]
- return 0
- 8070F6C8 print wchar string A3 to DL A0 at (A1, A2) used by disk error messages as well
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->string
- if A3[0]:
- for i in range(0, min(len(A3), 0x100), 2): # They & 0xFF the string offset for some reason...
- v = call 8070F634(A3[i:i+2])
- call 8070F3D4(A0, A1, A2, v)
- A1 += 0x10
- return len(A3)
- 8070F76C print numerals in string A3 to display list A0 at (A1, A2)
- accepts: p->DL, A1=xpos, A2=ypos, A3=p->string
- 8070F84C print disk error A0 (pretty sure this is not a "real" function)
- call 8074B794(SP+1C, 80775E30, A0) # A0 = C-style expansion of string A1 with args. ("%02d")
- call 8070F6C8(None, 0x6C, 0x46, @8076D36C)
- call 8070F76C(None, 0xC2, 0x46, SP+1C)
- 8070F8A4 (pretty sure this is not a "real" function)
- accepts: A0, A1
- ...
- # 8070F938
- call 8070F6C8(0, 0x44, 0xBE, @8076D344+88)
- Move some disk error strings to 80773A74 (0xCF8B2C). All unused.
- Rewritten to use variable encoding. Buffer is filled with wchar versions of ASCII since I'm lazy.
- 8070F6C8 0xC94780 print wchar string A3 to DL A0 at (A1, A2) used by disk error messages as well
- accepts: A0=p->DL, A1=xpos, A2=ypos, A3=p->string
- 27BDFFD0 ADDIU SP,SP,FFD0
- AFBF002C SW RA,002C (SP)
- AFB40028 SW S4,0028 (SP)
- AFA40024 SW A0,0024 (SP)
- AFA70020 SW A3,0020 (SP)
- AFB1001C SW S1,001C (SP)
- AFB00018 SW S0,0018 (SP)
- AFA60030 SW A2,0030 (SP)
- 00E08025 OR S0,A3,R0
- 00A08825 OR S1,A1,R0
- @loop
- 82040000 LB A0,0000 (S0)
- 10800015 BEQ A0,R0,return
- 00041A00 SLL V1,A0,0x8
- 04820006 BLTZL A0,+6
- 26100002 ADDIU S0,S0,0002
- 0C1DCE8C JAL 80773A30 ;this can only accept ASCII
- 26100001 ADDIU S0,S0,0001
- 02228823 SUBU S1,S1,V0
- 0060A025 OR S4,V1,R0
- 10000003 BEQ R0,R0,+3
- 9204FFFF LBU A0,FFFF (S0)
- 00642025 OR A0,V1,A0
- 0000A025 OR S4,R0,R0
- 0C1C3D8D JAL 8070F634
- 3084FFFF ANDI A0,A0,FFFF
- 8FA40024 LW A0,0024 (SP)
- 8FA60030 LW A2,0030 (SP)
- 02202825 OR A1,S1,R0
- 00403825 OR A3,V0,R0
- 26310010 ADDIU S1,S1,0010
- 02348823 SUBU S1,S1,S4
- 0C1C3CF5 JAL 8070F3D4
- 27FFFFA4 ADDIU RA,RA,FFA4
- @return
- 8FA70020 LW A3,0020 (SP)
- 02071023 SUBU V0,S0,A3
- 8FBF002C LW RA,002C (SP)
- 8FB00018 LW S0,0018 (SP)
- 8FB1001C LW S1,001C (SP)
- 8FB40028 LW S4,0028 (SP)
- 03E00008 JR RA
- 27BD0030 ADDIU SP,SP,0030
- if A3[0]:
- for i in range(0, min(len(A3), 0x100), 2): # They & 0xFF the string offset for some reason...
- v = call 8070F634(A3[i:i+2])
- call 8070F3D4(A0, A1, A2, v)
- A1 += 0x10
- return len(A3)
- The caption under the 1st place cup victory image needs to be twice as large.
- These are found in a bank at 80098D80. +0 is image, +4 is caption (or None)
- @80093030 0xB2BB58
- 24053300 ADDIU A1,R0,3300 ;ADDIU A1,R0,1880
- Allocation is stored to 8009AD1C.
- Image is set via code at 80093C8C-80093CE4 and 800951E0-8009521C.
- @80093C94 0xB2C7BC
- 240C0020 ADDIU T4,R0,0020 ;ADDIU T4,R0,0010 extend height by a row
- @8009521C 0xB2DD0C
- 240F0020 ADDIU T7,R0,0020 ;ADDIU T7,R0,0010 extend height by a row
- Somehow forgot about this, but set country code from (J) E848D316 to (E) 3ED98F23
- +_+
- def fontconv(s, cur=None):
- src = (r""" !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]^_ abcdefghijklmnopqrstuvwxyz{|}~ """,
- r""" ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ 。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜""",
- r""" がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ 。「」、・をぁぃぅぇぉゃゅょっーあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわん゛゜""",
- )
- if isinstance(s, str):
- out = bytearray()
- for i in s:
- if i in src[0]:
- out.append(src[0].index(i) + 0x20)
- elif cur in (1, 2) and i in src[cur]:
- out.append(src[cur].index(i) + 0x80)
- elif i in src[1]:
- out.append(1)
- cur = 1
- out.append(src[1].index(i) + 0x80)
- elif i in src[2]:
- out.append(2)
- cur = 2
- out.append(src[2].index(i) + 0x80)
- return bytes(out)
- else:
- out = []
- if cur is None:
- cur = 1
- for i in s:
- if 1 < i < 3:
- cur = i
- elif i < 0x20:
- raise ValueError("%02X is not a valid char." % i)
- else:
- i -= 0x20
- v = src[0][i] if i < 0x60 else src[cur][i-0x60]
- out.append(v)
- return ''.join(out)
- ci8 conversion
- Use png w/o alpha from GIMP; first index some stupid color like Slaneshi Pink.
- If below throws an error copy this after the palette:
- 00000001 74524E53 00 40E6D866 00000001 624B4744 00 88051D48
- def pal32to16(pal, swap=False):
- """Maps c32to16 to entire palette provided."""
- from array import array
- p = array('H')
- for i in pal:
- r = i[0]>>3
- g = i[1]>>3
- b = i[2]>>3
- a = i[3]>>7
- p.append((r<<11)|(g<<6)|(b<<1)|a)
- if swap:
- p.byteswap()
- return p.tobytes()
- def pngci(name):
- with open(name, 'rb') as f:
- data = f.read()
- import png
- p = png.Reader(bytes=data)
- p.preamble()
- pal = p.palette(alpha='force')
- npal = len(pal)
- pal = pal32to16(pal, True)
- w, h, i, m = p.read()
- d = m.get('bitdepth',8)
- if npal:
- t = 8 if npal>16 else 4
- else:
- t = d
- img = bytearray()
- if t==d or t==8:
- for j in i:
- img.extend(j[:w])
- elif t==4:
- from itertools import zip_longest
- for j in i:
- v = [k<<4 | l for k,l in zip_longest(j[::2], j[1::2], fillvalue=0)]
- img.extend(v[:w>>1])
- return img, pal
- # i4 or i8 conversion
- def pngi(name, depth=8):
- with open(name, 'rb') as f:
- data = f.read()
- import png
- p = png.Reader(bytes=data)
- p.preamble()
- w, h, i, m = p.read()
- img = bytearray()
- if depth==8:
- for j in i:
- img.extend(j[:w])
- elif depth==4:
- from itertools import zip_longest
- for j in i:
- v = [(k&0xF0) | (l>>4) for k,l in zip_longest(j[::2], j[1::2], fillvalue=0)]
- img.extend(v[:w>>1])
- return img
- def pngc16(name):
- with open(name, 'rb') as f:
- data = f.read()
- import png
- p = png.Reader(bytes=data)
- p.preamble()
- w, h, i, m = p.asRGBA8()
- img = bytearray()
- for j in i:
- img.extend(pal32to16(zip(*[iter(j)]*4), swap=True))
- return img
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement