mirror of
https://github.com/YohannDR/mzm.git
synced 2024-10-06 18:13:20 +00:00
Start extracting text data
This commit is contained in:
parent
dcb4b09d1a
commit
e0f6976efb
3
Makefile
3
Makefile
@ -41,6 +41,7 @@ PREPROC = tools/preproc/preproc
|
||||
ASFLAGS = -mcpu=arm7tdmi
|
||||
CFLAGS = -Werror -O2 -mthumb-interwork -fhex-asm -f2003-patch
|
||||
CPPFLAGS = -nostdinc -Iinclude/
|
||||
PREPROCFLAGS = charmap.txt
|
||||
|
||||
# Objects
|
||||
CSRC = $(wildcard src/**.c) $(wildcard src/**/**.c) $(wildcard src/**/**/**.c)
|
||||
@ -123,7 +124,7 @@ $(ELF) $(MAP): $(OBJ) linker.ld
|
||||
|
||||
%.s: %.c
|
||||
$(MSG) CC $@
|
||||
$Q$(PREPROC) $< | $(CPP) $(CPPFLAGS) | $(CC) -o $@ $(CFLAGS) && printf '\t.align 2, 0 @ dont insert nops\n' >> $@
|
||||
$Q$(PREPROC) $< $(PREPROCFLAGS) | $(CPP) $(CPPFLAGS) | $(CC) -o $@ $(CFLAGS) && printf '\t.align 2, 0 @ dont insert nops\n' >> $@
|
||||
|
||||
src/sram/%.s: CFLAGS = -O1 -mthumb-interwork -fhex-asm
|
||||
src/sram/%.s: src/sram/%.c
|
||||
|
@ -4,7 +4,7 @@ This is a work in progress decompilation of Metroid - Zero Mission.
|
||||
|
||||
2673/2721 functions decompiled (98.24%, 48 left)
|
||||
|
||||
0x35b9c0/0x76b014 bytes of data not in blobs (45.27%, 0x40f654 left)
|
||||
0x388ac0/0x76b014 bytes of data not in blobs (47.63%, 0x3e2554 left)
|
||||
|
||||
Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0
|
||||
|
||||
|
1317
charmap.txt
Normal file
1317
charmap.txt
Normal file
File diff suppressed because it is too large
Load Diff
281
charmap_backup.txt
Normal file
281
charmap_backup.txt
Normal file
@ -0,0 +1,281 @@
|
||||
|
||||
'1' = 005E
|
||||
'0' = 00F0
|
||||
'1' = 00F1
|
||||
'2' = 00F2
|
||||
'3' = 00F3
|
||||
'4' = 00F4
|
||||
'5' = 00F5
|
||||
'6' = 00F6
|
||||
'7' = 00F7
|
||||
'8' = 00F8
|
||||
'9' = 00F9
|
||||
'¥' = 0345
|
||||
'¥' = 045C
|
||||
'ª' = 034A
|
||||
'º' = 035A
|
||||
'=' = 0400
|
||||
'!' = 0401
|
||||
'”' = 0402
|
||||
'#' = 0403
|
||||
'$' = 0404
|
||||
'%' = 0405
|
||||
'&' = 0406
|
||||
''' = 0407
|
||||
'(' = 0408
|
||||
')' = 0409
|
||||
'*' = 040A
|
||||
'+' = 040B
|
||||
',' = 040C
|
||||
'-' = 040D
|
||||
'.' = 040E
|
||||
'/' = 040F
|
||||
'0' = 0410
|
||||
'1' = 0411
|
||||
'2' = 0412
|
||||
'3' = 0413
|
||||
'4' = 0414
|
||||
'5' = 0415
|
||||
'6' = 0416
|
||||
'7' = 0417
|
||||
'8' = 0418
|
||||
'9' = 0419
|
||||
':' = 041A
|
||||
';' = 041B
|
||||
'Ü' = 041C
|
||||
'ü' = 041D
|
||||
'“' = 041E
|
||||
'?' = 041F
|
||||
'A' = 0441
|
||||
'B' = 0442
|
||||
'C' = 0443
|
||||
'D' = 0444
|
||||
'E' = 0445
|
||||
'F' = 0446
|
||||
'G' = 0447
|
||||
'H' = 0448
|
||||
'I' = 0449
|
||||
'J' = 044A
|
||||
'K' = 044B
|
||||
'L' = 044C
|
||||
'M' = 044D
|
||||
'N' = 044E
|
||||
'O' = 044F
|
||||
'P' = 0450
|
||||
'Q' = 0451
|
||||
'R' = 0452
|
||||
'S' = 0453
|
||||
'T' = 0454
|
||||
'U' = 0455
|
||||
'V' = 0456
|
||||
'W' = 0457
|
||||
'X' = 0458
|
||||
'Y' = 0459
|
||||
'Z' = 045A
|
||||
'[' = 045B
|
||||
']' = 045D
|
||||
'a' = 0481
|
||||
'b' = 0482
|
||||
'c' = 0483
|
||||
'd' = 0484
|
||||
'e' = 0485
|
||||
'f' = 0486
|
||||
'g' = 0487
|
||||
'h' = 0488
|
||||
'i' = 0489
|
||||
'j' = 048A
|
||||
'k' = 048B
|
||||
'l' = 048C
|
||||
'm' = 048D
|
||||
'n' = 048E
|
||||
'o' = 048F
|
||||
'p' = 0490
|
||||
'q' = 0491
|
||||
'r' = 0492
|
||||
's' = 0493
|
||||
't' = 0494
|
||||
'u' = 0495
|
||||
'v' = 0496
|
||||
'w' = 0497
|
||||
'x' = 0498
|
||||
'y' = 0499
|
||||
'z' = 049A
|
||||
'{' = 049B
|
||||
'|' = 049C
|
||||
'}' = 049D
|
||||
DEL = 049F
|
||||
'。' = 04C2
|
||||
'「' = 04C4
|
||||
'」' = 04C6
|
||||
'、' = 04C8
|
||||
'・' = 04CA
|
||||
'ヲ' = 04CC
|
||||
'ァ' = 04CE
|
||||
'ィ' = 04D0
|
||||
'ゥ' = 04D2
|
||||
'ェ' = 04D4
|
||||
'ォ' = 04D6
|
||||
'ャ' = 04D8
|
||||
'ュ' = 04DA
|
||||
'ョ' = 04DC
|
||||
'ッ' = 04DE
|
||||
'ー' = 0500
|
||||
'ア' = 0502
|
||||
'イ' = 0504
|
||||
'ウ' = 0506
|
||||
'エ' = 0508
|
||||
'オ' = 050A
|
||||
'カ' = 050C
|
||||
'キ' = 050E
|
||||
'ク' = 0510
|
||||
'ケ' = 0512
|
||||
'コ' = 0514
|
||||
'サ' = 0516
|
||||
'シ' = 0518
|
||||
'ス' = 051A
|
||||
'セ' = 051C
|
||||
'ソ' = 051E
|
||||
'タ' = 0540
|
||||
'チ' = 0542
|
||||
'ツ' = 0544
|
||||
'テ' = 0546
|
||||
'ト' = 0548
|
||||
'ナ' = 054A
|
||||
'ニ' = 054C
|
||||
'ヌ' = 054E
|
||||
'ネ' = 0550
|
||||
'ノ' = 0552
|
||||
'ハ' = 0554
|
||||
'ヒ' = 0556
|
||||
'フ' = 0558
|
||||
'ヘ' = 055A
|
||||
'ホ' = 055C
|
||||
'マ' = 055E
|
||||
'ミ' = 0580
|
||||
'ム' = 0582
|
||||
'メ' = 0584
|
||||
'モ' = 0586
|
||||
'ヤ' = 0588
|
||||
'ユ' = 058A
|
||||
'ヨ' = 058C
|
||||
'ラ' = 058E
|
||||
'リ' = 0590
|
||||
'ル' = 0592
|
||||
'レ' = 0594
|
||||
'ロ' = 0596
|
||||
'ワ' = 0598
|
||||
'ン' = 059A
|
||||
'゛' = 059C
|
||||
'゜' = 059E
|
||||
'ダ' = 05C0
|
||||
'ヂ' = 05C2
|
||||
'ヅ' = 05C4
|
||||
'デ' = 05C6
|
||||
'ド' = 05C8
|
||||
'バ' = 05D4
|
||||
'ビ' = 05D6
|
||||
'ブ' = 05D8
|
||||
'ベ' = 05DA
|
||||
'ボ' = 05DC
|
||||
'パ' = 05DE
|
||||
'ピ' = 0600
|
||||
'プ' = 0602
|
||||
'ペ' = 0604
|
||||
'ポ' = 0606
|
||||
'ガ' = 060C
|
||||
'ギ' = 060E
|
||||
'グ' = 0610
|
||||
'ゲ' = 0612
|
||||
'ゴ' = 0614
|
||||
'ザ' = 0616
|
||||
'ジ' = 0618
|
||||
'ズ' = 061A
|
||||
'ゼ' = 061C
|
||||
'ゾ' = 061E
|
||||
'を' = 064C
|
||||
'ぁ' = 064E
|
||||
'ぃ' = 0650
|
||||
'ぅ' = 0652
|
||||
'ぇ' = 0654
|
||||
'ぉ' = 0656
|
||||
'ゃ' = 0658
|
||||
'ゅ' = 065A
|
||||
'ょ' = 065C
|
||||
'っ' = 065E
|
||||
'あ' = 0682
|
||||
'い' = 0684
|
||||
'う' = 0686
|
||||
'え' = 0688
|
||||
'お' = 068A
|
||||
'か' = 068C
|
||||
'き' = 068E
|
||||
'く' = 0690
|
||||
'け' = 0692
|
||||
'こ' = 0694
|
||||
'さ' = 0696
|
||||
'し' = 0698
|
||||
'す' = 069A
|
||||
'せ' = 069C
|
||||
'そ' = 069E
|
||||
'た' = 06C0
|
||||
'ち' = 06C2
|
||||
'つ' = 06C4
|
||||
'て' = 06C6
|
||||
'と' = 06C8
|
||||
'な' = 06CA
|
||||
'に' = 06CC
|
||||
'ぬ' = 06CE
|
||||
'ね' = 06D0
|
||||
'の' = 06D2
|
||||
'は' = 06D4
|
||||
'ひ' = 06D6
|
||||
'ふ' = 06D8
|
||||
'へ' = 06DA
|
||||
'ほ' = 06DC
|
||||
'ま' = 06DE
|
||||
'み' = 0700
|
||||
'む' = 0702
|
||||
'め' = 0704
|
||||
'も' = 0706
|
||||
'や' = 0708
|
||||
'ゆ' = 070A
|
||||
'よ' = 070C
|
||||
'ら' = 070E
|
||||
'り' = 0710
|
||||
'る' = 0712
|
||||
'れ' = 0714
|
||||
'ろ' = 0716
|
||||
'わ' = 0718
|
||||
'ん' = 071A
|
||||
'だ' = 0740
|
||||
'ぢ' = 0742
|
||||
'づ' = 0744
|
||||
'で' = 0746
|
||||
'ど' = 0748
|
||||
'ば' = 0754
|
||||
'び' = 0756
|
||||
'ぶ' = 0758
|
||||
'べ' = 075A
|
||||
'ぼ' = 075C
|
||||
'ぱ' = 075E
|
||||
'ぴ' = 0780
|
||||
'ぷ' = 0782
|
||||
'ぺ' = 0784
|
||||
'ぽ' = 0786
|
||||
'が' = 078C
|
||||
'ぎ' = 078E
|
||||
'ぐ' = 0790
|
||||
'げ' = 0792
|
||||
'ご' = 0794
|
||||
'ざ' = 0796
|
||||
'じ' = 0798
|
||||
'ず' = 079A
|
||||
'ぜ' = 079C
|
||||
'ぞ' = 079E
|
||||
'X' = 07C0
|
||||
'~' = 07C6
|
||||
'『' = 07C8
|
||||
'』' = 07CA
|
||||
'℃' = 07CC
|
||||
'応' = 0FD8
|
||||
'壊' = 145C
|
@ -1122,6 +1122,10 @@ menus/EraseSram/QuestionEnglish.gfx.lz;1006;0x413c64;4
|
||||
menus/EraseSram/Box.tt;137;0x414c1c;4
|
||||
menus/EraseSram/Background.tt;368;0x414e40;4
|
||||
|
||||
# Text
|
||||
|
||||
characters_graphics.gfx;180224;0x415460;1
|
||||
|
||||
# Pause screen
|
||||
|
||||
menus/PauseScreen/40dd10.pal;96;0x40dd10;2
|
||||
@ -2697,7 +2701,7 @@ Blob_2320ec_2376a8.bin;21948;0x2320ec;1
|
||||
Blob_238b68_23a5bc.bin;6740;0x238b68;1
|
||||
Blob_2d5ba0_2d7ae7.bin;7988;0x2d5ba0;1
|
||||
Blob_34099c_345868.bin;20172;0x34099c;1
|
||||
Blob_415460_446d68.bin;203016;0x415460;1
|
||||
Blob_442560_446d68.bin;18440;0x442560;1
|
||||
Blob_479400_4bfee4.bin;289508;0x479400;1
|
||||
Blob_60c630_74f8b4.bin;1323652;0x60c630;1
|
||||
Blob_754bd0_75e6a8.bin;39640;0x754bd0;1
|
||||
|
@ -2,8 +2,212 @@
|
||||
#define TEXT_DATA_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "structs/text.h"
|
||||
|
||||
extern const u8 sCharactersGfx[176 * 1024];
|
||||
|
||||
extern const u16 sJapaneseText_Message_Dummy[];
|
||||
extern const u16 sJapaneseText_Message_EnergyTankAcquired[];
|
||||
extern const u16 sJapaneseText_Message_MissileTankAcquired[];
|
||||
extern const u16 sJapaneseText_Message_FirstMissileTank[];
|
||||
extern const u16 sJapaneseText_Message_SuperMissileTankAcquired[];
|
||||
extern const u16 sJapaneseText_Message_FirstSuperMissileTank[];
|
||||
extern const u16 sJapaneseText_Message_PowerBombTankAqcuired[];
|
||||
extern const u16 sJapaneseText_Message_FirstPowerBombTank[];
|
||||
extern const u16 sJapaneseText_Message_LongBeam[];
|
||||
extern const u16 sJapaneseText_Message_ChargeBeam[];
|
||||
extern const u16 sJapaneseText_Message_IceBeam[];
|
||||
extern const u16 sJapaneseText_Message_WaveBeam[];
|
||||
extern const u16 sJapaneseText_Message_UnknownItemPlasma[];
|
||||
extern const u16 sJapaneseText_Message_Bomb[];
|
||||
extern const u16 sJapaneseText_Message_VariaSuit[];
|
||||
extern const u16 sJapaneseText_Message_UnknownItemGravity[];
|
||||
extern const u16 sJapaneseText_Message_MorphBall[];
|
||||
extern const u16 sJapaneseText_Message_SpeedBooster[];
|
||||
extern const u16 sJapaneseText_Message_HighJump[];
|
||||
extern const u16 sJapaneseText_Message_ScrewAttack[];
|
||||
extern const u16 sJapaneseText_Message_UnknownItemSpaceJump[];
|
||||
extern const u16 sJapaneseText_Message_PowerGrip[];
|
||||
extern const u16 sJapaneseText_Message_SavePrompt[];
|
||||
extern const u16 sJapaneseText_Message_SaveComplete[];
|
||||
extern const u16 sJapaneseText_Message_WeaponRessuplyComplete[];
|
||||
extern const u16 sJapaneseText_Message_EnergyTankRechargeComplete[];
|
||||
extern const u16 sJapaneseText_Message_WeaponsAndEnergyRestored[];
|
||||
extern const u16 sJapaneseText_Message_BrinstarMap[];
|
||||
extern const u16 sJapaneseText_Message_KraidMap[];
|
||||
extern const u16 sJapaneseText_Message_NorfairMap[];
|
||||
extern const u16 sJapaneseText_Message_RidleyMap[];
|
||||
extern const u16 sJapaneseText_Message_MotherShipMap[];
|
||||
extern const u16 sJapaneseText_Message_FullyPoweredSuit[];
|
||||
extern const u16 sJapaneseText_Message_ZebesEscape[];
|
||||
extern const u16 sJapaneseText_Message_ChozodiaEscape[];
|
||||
extern const u16 sJapaneseText_Message_EnemyLocationAbnormal[];
|
||||
extern const u16 sJapaneseText_Message_ActivateEasySleep[];
|
||||
extern const u16 sJapaneseText_Message_PressSelectLAndR[];
|
||||
extern const u16 sJapaneseText_Message_EasySleepPrompt[];
|
||||
|
||||
extern const u16 sJapaneseText_Location_Brinstar[];
|
||||
extern const u16 sJapaneseText_Location_Kraid[];
|
||||
extern const u16 sJapaneseText_Location_Norfair[];
|
||||
extern const u16 sJapaneseText_Location_Ridley[];
|
||||
extern const u16 sJapaneseText_Location_Tourian[];
|
||||
extern const u16 sJapaneseText_Location_Crateria[];
|
||||
extern const u16 sJapaneseText_Location_Chozodia[];
|
||||
extern const u16 sJapaneseText_Location_Mothership[];
|
||||
extern const u16 sJapaneseText_Location_PlanetZebes[];
|
||||
extern const u16 sJapaneseText_Location_SaveRoom[];
|
||||
extern const u16 sJapaneseText_Location_ResearchRoom[];
|
||||
extern const u16 sJapaneseText_Location_MapRoom[];
|
||||
extern const u16 sJapaneseText_Location_ChozoRuins[];
|
||||
extern const u16 sJapaneseText_Location_Starship[];
|
||||
extern const u16 sJapaneseText_Location_Unused7[];
|
||||
extern const u16 sJapaneseText_Location_Unused8[];
|
||||
extern const u16 sJapaneseText_Location_Unused9[];
|
||||
extern const u16 sJapaneseText_Location_Unused10[];
|
||||
extern const u16 sJapaneseText_Location_Unused11[];
|
||||
extern const u16 sJapaneseText_Location_Unused12[];
|
||||
extern const u16 sJapaneseText_Location_Unused13[];
|
||||
extern const u16 sJapaneseText_Location_Unused14[];
|
||||
extern const u16 sJapaneseText_Location_Unused15[];
|
||||
extern const u16 sJapaneseText_Location_Unused16[];
|
||||
extern const u16 sJapaneseText_Location_Unused17[];
|
||||
extern const u16 sJapaneseText_Location_Unused18[];
|
||||
|
||||
extern const u16 sHiraganaText_Message_Dummy[];
|
||||
extern const u16 sHiraganaText_Message_EnergyTankAcquired[];
|
||||
extern const u16 sHiraganaText_Message_MissileTankAcquired[];
|
||||
extern const u16 sHiraganaText_Message_FirstMissileTank[];
|
||||
extern const u16 sHiraganaText_Message_SuperMissileTankAcquired[];
|
||||
extern const u16 sHiraganaText_Message_FirstSuperMissileTank[];
|
||||
extern const u16 sHiraganaText_Message_PowerBombTankAqcuired[];
|
||||
extern const u16 sHiraganaText_Message_FirstPowerBombTank[];
|
||||
extern const u16 sHiraganaText_Message_LongBeam[];
|
||||
extern const u16 sHiraganaText_Message_ChargeBeam[];
|
||||
extern const u16 sHiraganaText_Message_IceBeam[];
|
||||
extern const u16 sHiraganaText_Message_WaveBeam[];
|
||||
extern const u16 sHiraganaText_Message_UnknownItemPlasma[];
|
||||
extern const u16 sHiraganaText_Message_Bomb[];
|
||||
extern const u16 sHiraganaText_Message_VariaSuit[];
|
||||
extern const u16 sHiraganaText_Message_UnknownItemGravity[];
|
||||
extern const u16 sHiraganaText_Message_MorphBall[];
|
||||
extern const u16 sHiraganaText_Message_SpeedBooster[];
|
||||
extern const u16 sHiraganaText_Message_HighJump[];
|
||||
extern const u16 sHiraganaText_Message_ScrewAttack[];
|
||||
extern const u16 sHiraganaText_Message_UnknownItemSpaceJump[];
|
||||
extern const u16 sHiraganaText_Message_PowerGrip[];
|
||||
extern const u16 sHiraganaText_Message_SavePrompt[];
|
||||
extern const u16 sHiraganaText_Message_SaveComplete[];
|
||||
extern const u16 sHiraganaText_Message_WeaponRessuplyComplete[];
|
||||
extern const u16 sHiraganaText_Message_EnergyTankRechargeComplete[];
|
||||
extern const u16 sHiraganaText_Message_WeaponsAndEnergyRestored[];
|
||||
extern const u16 sHiraganaText_Message_BrinstarMap[];
|
||||
extern const u16 sHiraganaText_Message_KraidMap[];
|
||||
extern const u16 sHiraganaText_Message_NorfairMap[];
|
||||
extern const u16 sHiraganaText_Message_RidleyMap[];
|
||||
extern const u16 sHiraganaText_Message_MotherShipMap[];
|
||||
extern const u16 sHiraganaText_Message_FullyPoweredSuit[];
|
||||
extern const u16 sHiraganaText_Message_ZebesEscape[];
|
||||
extern const u16 sHiraganaText_Message_ChozodiaEscape[];
|
||||
extern const u16 sHiraganaText_Message_EnemyLocationAbnormal[];
|
||||
extern const u16 sHiraganaText_Message_ActivateEasySleep[];
|
||||
extern const u16 sHiraganaText_Message_PressSelectLAndR[];
|
||||
extern const u16 sHiraganaText_Message_EasySleepPrompt[];
|
||||
|
||||
extern const u16 sHiraganaText_Location_Brinstar[];
|
||||
extern const u16 sHiraganaText_Location_Kraid[];
|
||||
extern const u16 sHiraganaText_Location_Norfair[];
|
||||
extern const u16 sHiraganaText_Location_Ridley[];
|
||||
extern const u16 sHiraganaText_Location_Tourian[];
|
||||
extern const u16 sHiraganaText_Location_Crateria[];
|
||||
extern const u16 sHiraganaText_Location_Chozodia[];
|
||||
extern const u16 sHiraganaText_Location_Mothership[];
|
||||
extern const u16 sHiraganaText_Location_PlanetZebes[];
|
||||
extern const u16 sHiraganaText_Location_SaveRoom[];
|
||||
extern const u16 sHiraganaText_Location_ResearchRoom[];
|
||||
extern const u16 sHiraganaText_Location_MapRoom[];
|
||||
extern const u16 sHiraganaText_Location_ChozoRuins[];
|
||||
extern const u16 sHiraganaText_Location_Starship[];
|
||||
extern const u16 sHirganaText_Location_Unused7[];
|
||||
extern const u16 sHirganaText_Location_Unused8[];
|
||||
extern const u16 sHirganaText_Location_Unused9[];
|
||||
extern const u16 sHirganaText_Location_Unused10[];
|
||||
extern const u16 sHirganaText_Location_Unused11[];
|
||||
extern const u16 sHirganaText_Location_Unused12[];
|
||||
extern const u16 sHirganaText_Location_Unused13[];
|
||||
extern const u16 sHirganaText_Location_Unused14[];
|
||||
extern const u16 sHirganaText_Location_Unused15[];
|
||||
extern const u16 sHirganaText_Location_Unused16[];
|
||||
extern const u16 sHirganaText_Location_Unused17[];
|
||||
extern const u16 sHirganaText_Location_Unused18[];
|
||||
|
||||
extern const u16 sEnglishText_Message_Dummy[];
|
||||
extern const u16 sEnglishText_Message_EnergyTankAcquired[];
|
||||
extern const u16 sEnglishText_Message_MissileTankAcquired[];
|
||||
extern const u16 sEnglishText_Message_FirstMissileTank[];
|
||||
extern const u16 sEnglishText_Message_SuperMissileTankAcquired[];
|
||||
extern const u16 sEnglishText_Message_FirstSuperMissileTank[];
|
||||
extern const u16 sEnglishText_Message_PowerBombTankAqcuired[];
|
||||
extern const u16 sEnglishText_Message_FirstPowerBombTank[];
|
||||
extern const u16 sEnglishText_Message_LongBeam[];
|
||||
extern const u16 sEnglishText_Message_ChargeBeam[];
|
||||
extern const u16 sEnglishText_Message_IceBeam[];
|
||||
extern const u16 sEnglishText_Message_WaveBeam[];
|
||||
extern const u16 sEnglishText_Message_UnknownItemPlasma[];
|
||||
extern const u16 sEnglishText_Message_Bomb[];
|
||||
extern const u16 sEnglishText_Message_VariaSuit[];
|
||||
extern const u16 sEnglishText_Message_UnknownItemGravity[];
|
||||
extern const u16 sEnglishText_Message_MorphBall[];
|
||||
extern const u16 sEnglishText_Message_SpeedBooster[];
|
||||
extern const u16 sEnglishText_Message_HighJump[];
|
||||
extern const u16 sEnglishText_Message_ScrewAttack[];
|
||||
extern const u16 sEnglishText_Message_UnknownItemSpaceJump[];
|
||||
extern const u16 sEnglishText_Message_PowerGrip[];
|
||||
extern const u16 sEnglishText_Message_SavePrompt[];
|
||||
extern const u16 sEnglishText_Message_SaveComplete[];
|
||||
extern const u16 sEnglishText_Message_WeaponRessuplyComplete[];
|
||||
extern const u16 sEnglishText_Message_EnergyTankRechargeComplete[];
|
||||
extern const u16 sEnglishText_Message_WeaponsAndEnergyRestored[];
|
||||
extern const u16 sEnglishText_Message_BrinstarMap[];
|
||||
extern const u16 sEnglishText_Message_KraidMap[];
|
||||
extern const u16 sEnglishText_Message_NorfairMap[];
|
||||
extern const u16 sEnglishText_Message_RidleyMap[];
|
||||
extern const u16 sEnglishText_Message_MotherShipMap[];
|
||||
extern const u16 sEnglishText_Message_FullyPoweredSuit[];
|
||||
extern const u16 sEnglishText_Message_ZebesEscape[];
|
||||
extern const u16 sEnglishText_Message_ChozodiaEscape[];
|
||||
extern const u16 sEnglishText_Message_EnemyLocationAbnormal[];
|
||||
extern const u16 sEnglishText_Message_ActivateEasySleep[];
|
||||
extern const u16 sEnglishText_Message_PressSelectLAndR[];
|
||||
extern const u16 sEnglishText_Message_EasySleepPrompt[];
|
||||
|
||||
extern const u16 sEnglishText_Location_Brinstar[];
|
||||
extern const u16 sEnglishText_Location_Kraid[];
|
||||
extern const u16 sEnglishText_Location_Norfair[];
|
||||
extern const u16 sEnglishText_Location_Ridley[];
|
||||
extern const u16 sEnglishText_Location_Tourian[];
|
||||
extern const u16 sEnglishText_Location_Crateria[];
|
||||
extern const u16 sEnglishText_Location_Chozodia[];
|
||||
extern const u16 sEnglishText_Location_Mothership[];
|
||||
extern const u16 sEnglishText_Location_PlanetZebes[];
|
||||
extern const u16 sEnglishText_Location_SaveRoom[];
|
||||
extern const u16 sEnglishText_Location_ResearchRoom[];
|
||||
extern const u16 sEnglishText_Location_MapRoom[];
|
||||
extern const u16 sEnglishText_Location_ChozoRuins[];
|
||||
extern const u16 sEnglishText_Location_Starship[];
|
||||
extern const u16 sEnglishText_Location_Unused7[];
|
||||
extern const u16 sEnglishText_Location_Unused8[];
|
||||
extern const u16 sEnglishText_Location_Unused9[];
|
||||
extern const u16 sEnglishText_Location_Unused10[];
|
||||
extern const u16 sEnglishText_Location_Unused11[];
|
||||
extern const u16 sEnglishText_Location_Unused12[];
|
||||
extern const u16 sEnglishText_Location_Unused13[];
|
||||
extern const u16 sEnglishText_Location_Unused14[];
|
||||
extern const u16 sEnglishText_Location_Unused15[];
|
||||
extern const u16 sEnglishText_Location_Unused16[];
|
||||
extern const u16 sEnglishText_Location_Unused17[];
|
||||
extern const u16 sEnglishText_Location_Unused18[];
|
||||
|
||||
// Temp
|
||||
extern const u16** const sStoryTextPointers[7];
|
||||
extern const u16** const sLocationTextpointers[7];
|
||||
@ -11,8 +215,6 @@ extern const u16** const sMessageTextpointers[7];
|
||||
extern const u16** const sFileScreenTextPointers[7];
|
||||
extern const u16** const sDescriptionTextPointers[7];
|
||||
|
||||
extern const u8 sCharactersGfx[180224];
|
||||
|
||||
extern u32 sArray_7602f0[9];
|
||||
extern u32 sArray_760314[9];
|
||||
extern u32 sArray_760338[24];
|
||||
|
@ -176,6 +176,7 @@
|
||||
#define PEN_GET_ENERGY(pen) (LOW_BYTE((pen) >> 24))
|
||||
|
||||
|
||||
#define INCTEXT(x) {0}
|
||||
|
||||
#define INCBIN(...) {0}
|
||||
#define INCBIN_U8 INCBIN
|
||||
|
@ -694,6 +694,7 @@ SECTIONS {
|
||||
src/data/menus/pause_screen_map_data.o(.rodata);
|
||||
src/data/save_file_data.o(.rodata);
|
||||
src/data/menus/erase_sram_data.o(.rodata);
|
||||
src/data/text_data.o(.rodata);
|
||||
/* 415460-446d68 */
|
||||
src/data/menus/title_screen_data.o(.rodata);
|
||||
src/data/menus/game_over_data.o(.rodata);
|
||||
|
@ -381,5 +381,3 @@ const struct OamArray sEraseSramMenuOam[7] = {
|
||||
.preAction = OAM_ARRAY_PRE_ACTION_RESET_FRAME
|
||||
},
|
||||
};
|
||||
|
||||
static const u8 sTempArray_415460[0x31908] = INCBIN_U8("data/Blob_415460_446d68.bin");
|
||||
|
@ -1,4 +1,213 @@
|
||||
#include "data/text_data.h"
|
||||
#include "macros.h"
|
||||
|
||||
#include "constants/text.h"
|
||||
|
||||
const u8 sCharactersGfx[176 * 1024] = INCBIN_U8("data/characters_graphics.gfx");
|
||||
|
||||
const u16 sJapaneseText_Message_Dummy[] = INCTEXT("{WIDTH(98)}ダミー\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_EnergyTankAcquired[] = INCTEXT("{WIDTH(38)}{COLOR(5)}ENERGY TANK エネルギータンク\n{WIDTH(62)}{COLOR(0)}体力の最大値が{UP}した");
|
||||
const u16 sJapaneseText_Message_MissileTankAcquired[] = INCTEXT("{WIDTH(38)}{COLOR(5)}MISSILE TANK ミサイルタンク\n{WIDTH(34)}{COLOR(0)}保有できるミサイルの最大値が{UP}した");
|
||||
const u16 sJapaneseText_Message_FirstMissileTank[] = INCTEXT("{WIDTH(38)}{COLOR(5)}MISSILE TANK ミサイルタンク\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_SuperMissileTankAcquired[] = INCTEXT("{WIDTH(2)}{COLOR(5)}SUPER MISSILE TANK スーパーミサイルタンク\n{WIDTH(18)}{COLOR(0)}保有できるスーパーミサイルの最大値が{UP}した");
|
||||
const u16 sJapaneseText_Message_FirstSuperMissileTank[] = INCTEXT("{WIDTH(2)}{COLOR(5)}SUPER MISSILE TANK スーパーミサイルタンク\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_PowerBombTankAqcuired[] = INCTEXT("{WIDTH(23)}{COLOR(5)}POWER BOMB TANK パワーボムタンク\n{WIDTH(30)}{COLOR(0)}保有できるパワーボムの最大値が{UP}した");
|
||||
const u16 sJapaneseText_Message_FirstPowerBombTank[] = INCTEXT("{WIDTH(23)}{COLOR(5)}POWER BOMB TANK パワーボムタンク\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_LongBeam[] = INCTEXT("{WIDTH(52)}{COLOR(5)}LONG BEAM ロングビーム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_ChargeBeam[] = INCTEXT("{WIDTH(40)}{COLOR(5)}CHARGE BEAM チャージビーム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_IceBeam[] = INCTEXT("{WIDTH(56)}{COLOR(5)}ICE BEAM アイスビーム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_WaveBeam[] = INCTEXT("{WIDTH(46)}{COLOR(5)}WAVE BEAM ウェイブビーム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_UnknownItemPlasma[] = INCTEXT("{WIDTH(84)}{COLOR(5)}未詳アイテム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_Bomb[] = INCTEXT("{WIDTH(84)}{COLOR(5)}BOMB ボム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_VariaSuit[] = INCTEXT("{WIDTH(50)}{COLOR(5)}VARIA SUIT バリアスーツ\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_UnknownItemGravity[] = INCTEXT("{WIDTH(84)}{COLOR(5)}未詳アイテム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_MorphBall[] = INCTEXT("{WIDTH(48)}{COLOR(5)}MORPH BALL モーフボール\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_SpeedBooster[] = INCTEXT("{WIDTH(26)}{COLOR(5)}SPEED BOOSTER スピードブースター\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_HighJump[] = INCTEXT("{WIDTH(58)}{COLOR(5)}HI-JUMP ハイジャンプ\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_ScrewAttack[] = INCTEXT("{WIDTH(30)}{COLOR(5)}SCREW ATTACK スクリューアタック\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_UnknownItemSpaceJump[] = INCTEXT("{WIDTH(84)}{COLOR(5)}未詳アイテム\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_PowerGrip[] = INCTEXT("{WIDTH(44)}{COLOR(5)}POWER GRIP パワーグリップ\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_SavePrompt[] = INCTEXT("{WIDTH(78)}セーブしますか?\n{WIDTH(94)}{YES}Yes{NO}No");
|
||||
const u16 sJapaneseText_Message_SaveComplete[] = INCTEXT("{WIDTH(88)}セーブ完了\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_WeaponRessuplyComplete[] = INCTEXT("{WIDTH(100)}武器\n{WIDTH(82)}全補給 完了");
|
||||
const u16 sJapaneseText_Message_EnergyTankRechargeComplete[] = INCTEXT("{WIDTH(100)}体力\n{WIDTH(82)}全回復{SPACE_JP}完了");
|
||||
const u16 sJapaneseText_Message_WeaponsAndEnergyRestored[] = INCTEXT("{WIDTH(75)}武器 体力ともに\n{WIDTH(82)}全回復 完了");
|
||||
const u16 sJapaneseText_Message_BrinstarMap[] = INCTEXT("{WIDTH(33)}{COLOR(9)}BRINSTAR{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を取得した\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_KraidMap[] = INCTEXT("{WIDTH(43)}{COLOR(8)}KRAID{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を取得した\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_NorfairMap[] = INCTEXT("{WIDTH(36)}{COLOR(6)}NORFAIR{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を取得した\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_RidleyMap[] = INCTEXT("{WIDTH(40)}{COLOR(7)}RIDLEY{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を取得した\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_MotherShipMap[] = INCTEXT("{WIDTH(36)}{COLOR(10)}マザーシップ{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を取得した\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_FullyPoweredSuit[] = INCTEXT("{WIDTH(46)}伝説の{COLOR(5)}パワードスーツ{COLOR(0)}を取得した\n{WIDTH(110)}");
|
||||
const u16 sJapaneseText_Message_ZebesEscape[] = INCTEXT("{WIDTH(76)}自爆装置作動{BANG_BANG_JP}\n{WIDTH(88)}脱出せよ{BANG_BANG_JP}");
|
||||
const u16 sJapaneseText_Message_ChozodiaEscape[] = INCTEXT("{WIDTH(76)}自爆装置作動{BANG_BANG_JP}\n{WIDTH(88)}脱出せよ{BANG_BANG_JP}");
|
||||
const u16 sJapaneseText_Message_EnemyLocationAbnormal[] = INCTEXT("{WIDTH(69)}敵配置データが異常\n{WIDTH(24)}メッセージフレームが配置されていませんか?");
|
||||
const u16 sJapaneseText_Message_ActivateEasySleep[] = INCTEXT("{WIDTH(53)}スリープモードに入りますか?\n{WIDTH(56)}スリープモードから戻る時は");
|
||||
const u16 sJapaneseText_Message_PressSelectLAndR[] = INCTEXT("{WIDTH(50)}{Select_button} と {L_button_left} と {R_button_left} を\n{WIDTH(67)}同時に押してください");
|
||||
const u16 sJapaneseText_Message_EasySleepPrompt[] = INCTEXT("{WIDTH(101)}Yes\n{WIDTH(104)}No");
|
||||
|
||||
const u16 sJapaneseText_Location_Brinstar[] = INCTEXT("{WIDTH(43)}BRINSTAR - ブリンスタ -");
|
||||
const u16 sJapaneseText_Location_Kraid[] = INCTEXT("{WIDTH(57)}KRAID - クレイド -");
|
||||
const u16 sJapaneseText_Location_Norfair[] = INCTEXT("{WIDTH(46)}NORFAIR - ノルフェア -");
|
||||
const u16 sJapaneseText_Location_Ridley[] = INCTEXT("{WIDTH(54)}RIDLEY - リドリー -");
|
||||
const u16 sJapaneseText_Location_Tourian[] = INCTEXT("{WIDTH(46)}TOURIAN - ツーリアン -");
|
||||
const u16 sJapaneseText_Location_Crateria[] = INCTEXT("{WIDTH(43)}CRATERIA - クレテリア -");
|
||||
const u16 sJapaneseText_Location_Chozodia[] = INCTEXT("{WIDTH(34)}CHOZODIA - チョウゾディア -");
|
||||
const u16 sJapaneseText_Location_Mothership[] = INCTEXT("{WIDTH(47)}スペースパイレーツ{SPACE_JP}マザーシップ");
|
||||
const u16 sJapaneseText_Location_PlanetZebes[] = INCTEXT("{WIDTH(84)}惑星ゼーベス");
|
||||
const u16 sJapaneseText_Location_SaveRoom[] = INCTEXT("{WIDTH(86)}セーブルーム");
|
||||
const u16 sJapaneseText_Location_ResearchRoom[] = INCTEXT("{WIDTH(78)}リチャージルーム");
|
||||
const u16 sJapaneseText_Location_MapRoom[] = INCTEXT("{WIDTH(86)}マップルーム");
|
||||
const u16 sJapaneseText_Location_ChozoRuins[] = INCTEXT("{WIDTH(90)}鳥人遺跡");
|
||||
const u16 sJapaneseText_Location_Starship[] = INCTEXT("{WIDTH(86)}スターシップ");
|
||||
const u16 sJapaneseText_Location_Unused7[] = INCTEXT("{WIDTH(98)}空き7");
|
||||
const u16 sJapaneseText_Location_Unused8[] = INCTEXT("{WIDTH(97)}空き{NUMBER_8_JP}");
|
||||
const u16 sJapaneseText_Location_Unused9[] = INCTEXT("{WIDTH(97)}空き{NUMBER_9_JP}");
|
||||
const u16 sJapaneseText_Location_Unused10[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_0_JP}");
|
||||
const u16 sJapaneseText_Location_Unused11[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_1_JP}");
|
||||
const u16 sJapaneseText_Location_Unused12[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_2_JP}");
|
||||
const u16 sJapaneseText_Location_Unused13[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_3_JP}");
|
||||
const u16 sJapaneseText_Location_Unused14[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_4_JP}");
|
||||
const u16 sJapaneseText_Location_Unused15[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_5_JP}");
|
||||
const u16 sJapaneseText_Location_Unused16[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_6_JP}");
|
||||
const u16 sJapaneseText_Location_Unused17[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_7_JP}");
|
||||
const u16 sJapaneseText_Location_Unused18[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_8_JP}");
|
||||
|
||||
const u16 sHiraganaText_Message_Dummy[] = INCTEXT("{WIDTH(98)}ダミー\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_EnergyTankAcquired[] = INCTEXT("{WIDTH(78)}{COLOR(5)}エネルギータンク\n{WIDTH(40)}{COLOR(0)}たいりょくの{SPACE_JP}さいだいちが{SPACE_JP}あがった");
|
||||
const u16 sHiraganaText_Message_MissileTankAcquired[] = INCTEXT("{WIDTH(82)}{COLOR(5)}ミサイルタンク\n{WIDTH(17)}{COLOR(0)}ミサイルを{SPACE_JP}もてるかずの{SPACE_JP}さいだいちが{SPACE_JP}あがった");
|
||||
const u16 sHiraganaText_Message_FirstMissileTank[] = INCTEXT("{WIDTH(82)}{COLOR(5)}ミサイルタンク\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_SuperMissileTankAcquired[] = INCTEXT("{WIDTH(66)}{COLOR(5)}スーパーミサイルタンク\n{WIDTH(1)}{COLOR(0)}スーパーミサイルを{SPACE_JP}もてるかずの{SPACE_JP}さいだいちが{SPACE_JP}あがった");
|
||||
const u16 sHiraganaText_Message_FirstSuperMissileTank[] = INCTEXT("{WIDTH(66)}{COLOR(5)}スーパーミサイルタンク\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_PowerBombTankAqcuired[] = INCTEXT("{WIDTH(78)}{COLOR(5)}パワーボムタンク\n{WIDTH(13)}{COLOR(0)}パワーボムを{SPACE_JP}もてるかずの{SPACE_JP}さいだいちが{SPACE_JP}あがった");
|
||||
const u16 sHiraganaText_Message_FirstPowerBombTank[] = INCTEXT("{WIDTH(78)}{COLOR(5)}パワーボムタンク\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_LongBeam[] = INCTEXT("{WIDTH(86)}{COLOR(5)}ロングビーム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_ChargeBeam[] = INCTEXT("{WIDTH(82)}{COLOR(5)}チャージビーム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_IceBeam[] = INCTEXT("{WIDTH(86)}{COLOR(5)}アイスビーム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_WaveBeam[] = INCTEXT("{WIDTH(82)}{COLOR(5)}ウェイブビーム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_UnknownItemPlasma[] = INCTEXT("{WIDTH(56)}{COLOR(5)}なにか{SPACE_JP}わからない{SPACE_JP}アイテム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_Bomb[] = INCTEXT("{WIDTH(102)}{COLOR(5)}ボム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_VariaSuit[] = INCTEXT("{WIDTH(86)}{COLOR(5)}バリアスーツ\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_UnknownItemGravity[] = INCTEXT("{WIDTH(56)}{COLOR(5)}なにか{SPACE_JP}わからない{SPACE_JP}アイテム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_MorphBall[] = INCTEXT("{WIDTH(86)}{COLOR(5)}モーフボール\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_SpeedBooster[] = INCTEXT("{WIDTH(74)}{COLOR(5)}スピードブースター\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_HighJump[] = INCTEXT("{WIDTH(86)}{COLOR(5)}ハイジャンプ\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_ScrewAttack[] = INCTEXT("{WIDTH(74)}{COLOR(5)}スクリューアタック\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_UnknownItemSpaceJump[] = INCTEXT("{WIDTH(56)}{COLOR(5)}なにか{SPACE_JP}わからない{SPACE_JP}アイテム\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_PowerGrip[] = INCTEXT("{WIDTH(82)}{COLOR(5)}パワーグリップ\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_SavePrompt[] = INCTEXT("{WIDTH(78)}セーブしますか?\n{WIDTH(90)}{YES}はい{NO}いいえ");
|
||||
const u16 sHiraganaText_Message_SaveComplete[] = INCTEXT("{WIDTH(82)}セーブしました\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_WeaponRessuplyComplete[] = INCTEXT("{WIDTH(98)}ぶきが\n{WIDTH(56)}ぜんぶ{SPACE_JP}ほきゅう{SPACE_JP}されました");
|
||||
const u16 sHiraganaText_Message_EnergyTankRechargeComplete[] = INCTEXT("{WIDTH(86)}たいりょくが\n{WIDTH(56)}ぜんぶ{SPACE_JP}かいふく{SPACE_JP}されました");
|
||||
const u16 sHiraganaText_Message_WeaponsAndEnergyRestored[] = INCTEXT("{WIDTH(71)}ぶきも{SPACE_JP}たいりょくも\n{WIDTH(56)}ぜんぶ{SPACE_JP}かいふく{SPACE_JP}されました");
|
||||
const u16 sHiraganaText_Message_BrinstarMap[] = INCTEXT("{WIDTH(35)}{COLOR(9)}ブリンスタ{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を{SPACE_JP}てにいれた\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_KraidMap[] = INCTEXT("{WIDTH(39)}{COLOR(8)}クレイド{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を てにいれた\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_NorfairMap[] = INCTEXT("{WIDTH(35)}{COLOR(6)}ノルフェア{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を{SPACE_JP}てにいれた\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_RidleyMap[] = INCTEXT("{WIDTH(39)}{COLOR(7)}リドリー{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を{SPACE_JP}てにいれた\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_MotherShipMap[] = INCTEXT("{WIDTH(23)}{COLOR(10)}うちゅうかいぞくせん{COLOR(0)}の{COLOR(5)}マップデータ{COLOR(0)}を{SPACE_JP}とった\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_FullyPoweredSuit[] = INCTEXT("{WIDTH(35)}でんせつの{COLOR(5)}パワードスーツ{COLOR(0)}を{SPACE_JP}てにいれた\n{WIDTH(110)}");
|
||||
const u16 sHiraganaText_Message_ZebesEscape[] = INCTEXT("{WIDTH(67)}じばくそうち{SPACE_JP}さどう{BANG_BANG_JP}\n{WIDTH(78)}だっしゅつせよ{BANG_BANG_JP}");
|
||||
const u16 sHiraganaText_Message_ChozodiaEscape[] = INCTEXT("{WIDTH(67)}じばくそうち{SPACE_JP}さどう{BANG_BANG_JP}\n{WIDTH(78)}だっしゅつせよ{BANG_BANG_JP}");
|
||||
const u16 sHiraganaText_Message_EnemyLocationAbnormal[] = INCTEXT("{WIDTH(58)}てきはいちデータがいじょう\n{WIDTH(22)}メッセージフレームがはいちされていませんか?");
|
||||
const u16 sHiraganaText_Message_ActivateEasySleep[] = INCTEXT("{WIDTH(50)}スリープモードにはいりますか?\n{WIDTH(50)}スリープモードからもどるときは");
|
||||
const u16 sHiraganaText_Message_PressSelectLAndR[] = INCTEXT("{WIDTH(50)}{Select_button} と {L_button_left} と {R_button_left} を\n{WIDTH(66)}どうじにおしてください");
|
||||
const u16 sHiraganaText_Message_EasySleepPrompt[] = INCTEXT("{WIDTH(102)}はい\n{WIDTH(98)}いいえ");
|
||||
|
||||
const u16 sHiraganaText_Location_Brinstar[] = INCTEXT("{WIDTH(90)}ブリンスタ");
|
||||
const u16 sHiraganaText_Location_Kraid[] = INCTEXT("{WIDTH(94)}クレイド");
|
||||
const u16 sHiraganaText_Location_Norfair[] = INCTEXT("{WIDTH(90)}ノルフェア");
|
||||
const u16 sHiraganaText_Location_Ridley[] = INCTEXT("{WIDTH(94)}リドリー");
|
||||
const u16 sHiraganaText_Location_Tourian[] = INCTEXT("{WIDTH(90)}ツーリアン");
|
||||
const u16 sHiraganaText_Location_Crateria[] = INCTEXT("{WIDTH(90)}クレテリア");
|
||||
const u16 sHiraganaText_Location_Chozodia[] = INCTEXT("{WIDTH(82)}チョウゾディア");
|
||||
const u16 sHiraganaText_Location_Mothership[] = INCTEXT("{WIDTH(70)}うちゅうかいぞくせん");
|
||||
const u16 sHiraganaText_Location_PlanetZebes[] = INCTEXT("{WIDTH(78)}わくせいゼーベス");
|
||||
const u16 sHiraganaText_Location_SaveRoom[] = INCTEXT("{WIDTH(86)}セーブルーム");
|
||||
const u16 sHiraganaText_Location_ResearchRoom[] = INCTEXT("{WIDTH(78)}リチャージルーム");
|
||||
const u16 sHiraganaText_Location_MapRoom[] = INCTEXT("{WIDTH(86)}マップルーム");
|
||||
const u16 sHiraganaText_Location_ChozoRuins[] = INCTEXT("{WIDTH(78)}ちょうじんいせき");
|
||||
const u16 sHiraganaText_Location_Starship[] = INCTEXT("{WIDTH(86)}スターシップ");
|
||||
const u16 sHirganaText_Location_Unused7[] = INCTEXT("{WIDTH(98)}空き7");
|
||||
const u16 sHirganaText_Location_Unused8[] = INCTEXT("{WIDTH(97)}空き{NUMBER_8_JP}");
|
||||
const u16 sHirganaText_Location_Unused9[] = INCTEXT("{WIDTH(97)}空き{NUMBER_9_JP}");
|
||||
const u16 sHirganaText_Location_Unused10[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_0_JP}");
|
||||
const u16 sHirganaText_Location_Unused11[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_1_JP}");
|
||||
const u16 sHirganaText_Location_Unused12[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_2_JP}");
|
||||
const u16 sHirganaText_Location_Unused13[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_3_JP}");
|
||||
const u16 sHirganaText_Location_Unused14[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_4_JP}");
|
||||
const u16 sHirganaText_Location_Unused15[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_5_JP}");
|
||||
const u16 sHirganaText_Location_Unused16[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_6_JP}");
|
||||
const u16 sHirganaText_Location_Unused17[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_7_JP}");
|
||||
const u16 sHirganaText_Location_Unused18[] = INCTEXT("{WIDTH(93)}空き{NUMBER_1_JP}{NUMBER_8_JP}");
|
||||
|
||||
static const u8 sTempArray_442560[0x4808] = INCBIN_U8("data/Blob_442560_446d68.bin");
|
||||
|
||||
/*
|
||||
const u16 sEnglishText_Message_Dummy[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_EnergyTankAcquired[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_MissileTankAcquired[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_FirstMissileTank[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_SuperMissileTankAcquired[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_FirstSuperMissileTank[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_PowerBombTankAqcuired[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_FirstPowerBombTank[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_LongBeam[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_ChargeBeam[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_IceBeam[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_WaveBeam[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_UnknownItemPlasma[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_Bomb[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_VariaSuit[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_UnknownItemGravity[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_MorphBall[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_SpeedBooster[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_HighJump[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_ScrewAttack[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_UnknownItemSpaceJump[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_PowerGrip[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_SavePrompt[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_SaveComplete[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_WeaponRessuplyComplete[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_EnergyTankRechargeComplete[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_WeaponsAndEnergyRestored[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_BrinstarMap[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_KraidMap[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_NorfairMap[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_RidleyMap[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_MotherShipMap[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_FullyPoweredSuit[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_ZebesEscape[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_ChozodiaEscape[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_EnemyLocationAbnormal[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_ActivateEasySleep[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_PressSelectLAndR[] = INCTEXT("");
|
||||
const u16 sEnglishText_Message_EasySleepPrompt[] = INCTEXT("");
|
||||
|
||||
const u16 sEnglishText_Location_Brinstar[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Kraid[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Norfair[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Ridley[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Tourian[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Crateria[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Chozodia[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Mothership[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_PlanetZebes[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_SaveRoom[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_ResearchRoom[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_MapRoom[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_ChozoRuins[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Starship[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused7[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused8[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused9[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused10[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused11[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused12[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused13[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused14[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused15[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused16[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused17[] = INCTEXT("");
|
||||
const u16 sEnglishText_Location_Unused18[] = INCTEXT("");
|
||||
|
||||
const u8 sCharacterWidths[1184] = {
|
||||
0
|
||||
@ -6,7 +215,7 @@ const u8 sCharacterWidths[1184] = {
|
||||
|
||||
const struct Message sMessage_Empty = {
|
||||
.textIndex = 0,
|
||||
.indent = 0,
|
||||
.WIDTH = 0,
|
||||
.timer = 0,
|
||||
.color = 0,
|
||||
.line = 0,
|
||||
@ -21,7 +230,7 @@ const struct Message sMessage_Empty = {
|
||||
|
||||
const struct Message sMessageStoryText_Empty = {
|
||||
.textIndex = 0,
|
||||
.indent = 0,
|
||||
.WIDTH = 0,
|
||||
.timer = 0,
|
||||
.color = 0,
|
||||
.line = 0,
|
||||
@ -36,7 +245,7 @@ const struct Message sMessageStoryText_Empty = {
|
||||
|
||||
const struct Message sMessageFileScreen_Empty = {
|
||||
.textIndex = 0,
|
||||
.indent = 0,
|
||||
.WIDTH = 0,
|
||||
.timer = 0,
|
||||
.color = 0,
|
||||
.line = 0,
|
||||
@ -51,7 +260,7 @@ const struct Message sMessageFileScreen_Empty = {
|
||||
|
||||
const struct Message sMessageDescription_Empty = {
|
||||
.textIndex = 0,
|
||||
.indent = 0,
|
||||
.WIDTH = 0,
|
||||
.timer = 0,
|
||||
.color = 0,
|
||||
.line = 0,
|
||||
@ -63,3 +272,4 @@ const struct Message sMessageDescription_Empty = {
|
||||
.isMessage = FALSE,
|
||||
.messageEnded = FALSE
|
||||
};
|
||||
*/
|
@ -196,10 +196,13 @@ void CFile::TryConvertString()
|
||||
long oldLineNum = m_lineNum;
|
||||
bool noTerminator = false;
|
||||
|
||||
if (m_buffer[m_pos] != '_' || (m_pos > 0 && IsIdentifierChar(m_buffer[m_pos - 1])))
|
||||
// printf("%c", m_buffer[m_pos]);
|
||||
std::string identifier("INCTEXT");
|
||||
|
||||
if (!CheckIdentifier(identifier) || (m_pos > 0 && IsIdentifierChar(m_buffer[m_pos - 1])))
|
||||
return;
|
||||
|
||||
m_pos++;
|
||||
m_pos += identifier.size();
|
||||
|
||||
if (m_buffer[m_pos] == '_')
|
||||
{
|
||||
@ -228,7 +231,7 @@ void CFile::TryConvertString()
|
||||
|
||||
if (m_buffer[m_pos] == '"')
|
||||
{
|
||||
unsigned char s[kMaxStringLength];
|
||||
unsigned short s[kMaxStringLength];
|
||||
int length;
|
||||
StringParser stringParser(m_buffer, m_size);
|
||||
|
||||
@ -241,8 +244,9 @@ void CFile::TryConvertString()
|
||||
RaiseError(e.what());
|
||||
}
|
||||
|
||||
// printf("\n\n%d ; %s\n\n", length, s);
|
||||
for (int i = 0; i < length; i++)
|
||||
printf("0x%02X, ", s[i]);
|
||||
printf("0x%04X, ", s[i]);
|
||||
}
|
||||
else if (m_buffer[m_pos] == ')')
|
||||
{
|
||||
@ -263,7 +267,7 @@ void CFile::TryConvertString()
|
||||
if (noTerminator)
|
||||
std::printf(" }");
|
||||
else
|
||||
std::printf("0xFF }");
|
||||
std::printf("CHAR_TERMINATOR }");
|
||||
}
|
||||
|
||||
bool CFile::CheckIdentifier(const std::string& ident)
|
||||
|
@ -43,6 +43,66 @@ void PrintAsmBytes(unsigned char *s, int length)
|
||||
}
|
||||
}
|
||||
|
||||
void PreprocAsmFile(std::string filename)
|
||||
{
|
||||
std::stack<AsmFile> stack;
|
||||
|
||||
stack.push(AsmFile(filename));
|
||||
|
||||
for (;;)
|
||||
{
|
||||
while (stack.top().IsAtEnd())
|
||||
{
|
||||
stack.pop();
|
||||
|
||||
if (stack.empty())
|
||||
return;
|
||||
else
|
||||
stack.top().OutputLocation();
|
||||
}
|
||||
|
||||
Directive directive = stack.top().GetDirective();
|
||||
|
||||
switch (directive)
|
||||
{
|
||||
case Directive::Include:
|
||||
stack.push(AsmFile(stack.top().ReadPath()));
|
||||
stack.top().OutputLocation();
|
||||
break;
|
||||
case Directive::String:
|
||||
{
|
||||
unsigned char s[kMaxStringLength];
|
||||
int length = stack.top().ReadString(s);
|
||||
PrintAsmBytes(s, length);
|
||||
break;
|
||||
}
|
||||
case Directive::Braille:
|
||||
{
|
||||
unsigned char s[kMaxStringLength];
|
||||
int length = stack.top().ReadBraille(s);
|
||||
PrintAsmBytes(s, length);
|
||||
break;
|
||||
}
|
||||
case Directive::Unknown:
|
||||
{
|
||||
std::string globalLabel = stack.top().GetGlobalLabel();
|
||||
|
||||
if (globalLabel.length() != 0)
|
||||
{
|
||||
const char *s = globalLabel.c_str();
|
||||
std::printf("%s: ; .global %s\n", s, s);
|
||||
}
|
||||
else
|
||||
{
|
||||
stack.top().OutputLine();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PreprocCFile(const char * filename, bool isStdin)
|
||||
{
|
||||
CFile cFile(filename, isStdin);
|
||||
@ -72,18 +132,22 @@ char* GetFileExtension(char* filename)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc < 2 || argc > 3)
|
||||
if (argc < 3 || argc > 4)
|
||||
{
|
||||
std::fprintf(stderr, "Usage: %s SRC_FILE [-i]\nwhere -i denotes if input is from stdin\n", argv[0]);
|
||||
std::fprintf(stderr, "Usage: %s SRC_FILE CHARMAP_FILE [-i]\nwhere -i denotes if input is from stdin\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
g_charmap = new Charmap(argv[2]);
|
||||
|
||||
char* extension = GetFileExtension(argv[1]);
|
||||
|
||||
if (!extension)
|
||||
FATAL_ERROR("\"%s\" has no file extension.\n", argv[1]);
|
||||
|
||||
if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) {
|
||||
if ((extension[0] == 's') && extension[1] == 0)
|
||||
PreprocAsmFile(argv[1]);
|
||||
else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) {
|
||||
if (argc == 4) {
|
||||
if (argv[3][0] == '-' && argv[3][1] == 'i' && argv[3][2] == '\0') {
|
||||
PreprocCFile(argv[1], true);
|
||||
@ -97,4 +161,4 @@ int main(int argc, char **argv)
|
||||
FATAL_ERROR("\"%s\" has an unknown file extension of \"%s\".\n", argv[1], extension);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
@ -113,7 +113,8 @@ std::string StringParser::ReadBracketedConstants()
|
||||
while (IsIdentifierChar(m_buffer[m_pos]))
|
||||
m_pos++;
|
||||
|
||||
std::string sequence = g_charmap->Constant(std::string(&m_buffer[startPos], m_pos - startPos));
|
||||
std::string txt = std::string(&m_buffer[startPos], m_pos - startPos);
|
||||
std::string sequence = g_charmap->Constant(txt);
|
||||
|
||||
if (sequence.length() == 0)
|
||||
{
|
||||
@ -121,6 +122,22 @@ std::string StringParser::ReadBracketedConstants()
|
||||
RaiseError("unknown constant '%s'", &m_buffer[startPos]);
|
||||
}
|
||||
|
||||
if (m_buffer[m_pos] == '(')
|
||||
{
|
||||
m_pos++; // (
|
||||
|
||||
Integer integer = ReadInteger();
|
||||
|
||||
unsigned short mask = sequence[0] << 8 | (sequence[1] & 0xFF);
|
||||
|
||||
mask |= integer.value;
|
||||
|
||||
sequence[0] = mask >> 8;
|
||||
sequence[1] = mask;
|
||||
|
||||
m_pos++; // )
|
||||
}
|
||||
|
||||
totalSequence += sequence;
|
||||
}
|
||||
else if (IsAsciiDigit(m_buffer[m_pos]))
|
||||
@ -166,7 +183,7 @@ std::string StringParser::ReadBracketedConstants()
|
||||
}
|
||||
|
||||
// Reads a charmap string.
|
||||
int StringParser::ParseString(long srcPos, unsigned char* dest, int& destLength)
|
||||
int StringParser::ParseString(long srcPos, unsigned short* dest, int& destLength)
|
||||
{
|
||||
m_pos = srcPos;
|
||||
|
||||
@ -183,11 +200,17 @@ int StringParser::ParseString(long srcPos, unsigned char* dest, int& destLength)
|
||||
{
|
||||
std::string sequence = (m_buffer[m_pos] == '{') ? ReadBracketedConstants() : ReadCharOrEscape();
|
||||
|
||||
for (const char& c : sequence)
|
||||
for (size_t i = 0; i < sequence.size(); i += 2)
|
||||
{
|
||||
if (destLength == kMaxStringLength)
|
||||
RaiseError("mapped string longer than %d bytes", kMaxStringLength);
|
||||
|
||||
unsigned int c;
|
||||
if (sequence[i] == 0)
|
||||
c = sequence[i + 1] & 0xFF;
|
||||
else
|
||||
c = sequence[i] << 8 | (sequence[i + 1] & 0xFF);
|
||||
|
||||
dest[destLength++] = c;
|
||||
}
|
||||
}
|
||||
@ -336,7 +359,10 @@ StringParser::Integer StringParser::ReadHex()
|
||||
StringParser::Integer StringParser::ReadInteger()
|
||||
{
|
||||
if (!IsAsciiDigit(m_buffer[m_pos]))
|
||||
{
|
||||
// printf("\n\n\nXXXXXX\n%s\n\n\n", &m_buffer[m_pos]);
|
||||
RaiseError("expected integer");
|
||||
}
|
||||
|
||||
if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x')
|
||||
{
|
||||
|
@ -29,7 +29,7 @@ class StringParser
|
||||
{
|
||||
public:
|
||||
StringParser(char* buffer, long size) : m_buffer(buffer), m_size(size), m_pos(0) {}
|
||||
int ParseString(long srcPos, unsigned char* dest, int &destLength);
|
||||
int ParseString(long srcPos, unsigned short* dest, int &destLength);
|
||||
|
||||
private:
|
||||
struct Integer
|
||||
|
Loading…
Reference in New Issue
Block a user