diff options
| -rw-r--r-- | Makefile | 5 | ||||
| -rw-r--r-- | README | 2 | ||||
| -rw-r--r-- | main.asm | 226 | ||||
| -rw-r--r-- | textpre.awk | 311 | ||||
| -rw-r--r-- | textpre.py | 334 | 
5 files changed, 414 insertions, 464 deletions
| @@ -1,6 +1,3 @@ -#gawk sort order -export LC_CTYPE=C -  .SUFFIXES: .asm .tx .o .gbc  TEXTFILES =	text/oakspeech.tx text/pokedex.tx text/mapRedsHouse1F.tx \ @@ -18,7 +15,7 @@ redrle: extras/redrle.c  	${CC} -o $@ $>  .asm.tx: -	awk -f textpre.awk < $< > $@ +	python textpre.py  < $< > $@  pokered.gbc: pokered.o  	rgblink -o $@ $< @@ -14,3 +14,5 @@ Then copy the Pokémon ROM to this directory as "baserom.gbc".  Then run "make" in your shell.  This will output a file named "pokered.gbc". + +nucleus.kafuka.org #skeetendo @@ -3329,7 +3329,7 @@ PrintBCDNumber: ; 15CD  	jr z,.loop\@  	bit 7,b  	jr nz,.loop\@ -	ld [hl],$f0 ; currency symbol +	ld [hl],"¥"  	inc hl  .loop\@  	ld a,[de] @@ -3368,7 +3368,7 @@ PrintBCDDigit: ; 1604  ; if bit 7 is set, then no numbers have been printed yet  	bit 5,b ; print the currency symbol?  	jr z,.skipCurrencySymbol\@ -	ld [hl],$f0 ; currency symbol +	ld [hl],"¥"  	inc hl  	res 5,b  .skipCurrencySymbol\@ @@ -5258,66 +5258,25 @@ TextScriptEnd: ; 24D7 24d7  UnnamedText_24db: ; 0x24db  	TX_FAR _UnnamedText_24db -	db $50 +	db "@"  ; 0x24db + 5 bytes  UnnamedText_24e0: ; 0x24e0  	TX_FAR _UnnamedText_24e0 -	db $50 +	db "@"  ; 0x24e0 + 5 bytes -VictoryRoad3Text10: -VictoryRoad3Text9: -VictoryRoad3Text8: -VictoryRoad3Text7: -VictoryRoad2Text13: -VictoryRoad2Text12: -VictoryRoad2Text11: -SeafoamIslands1Text2: -SeafoamIslands1Text1: -SeafoamIslands5Text2: -SeafoamIslands5Text1: -SeafoamIslands4Text6: -SeafoamIslands4Text5: -SeafoamIslands4Text4: -SeafoamIslands4Text3: -SeafoamIslands4Text2: -SeafoamIslands4Text1: -SeafoamIslands3Text2: -SeafoamIslands3Text1: -SeafoamIslands2Text2: -SeafoamIslands2Text1: -FuchsiaHouse2Text3: -VictoryRoad1Text7: -VictoryRoad1Text6: -VictoryRoad1Text5: ; 0x24e5 -	TX_FAR _VictoryRoad1Text5 -	db $50 - -SaffronCityText19: -CinnabarIslandText4: -FuchsiaCityText14: -VermilionCityText9: -LavenderTownText6: -CeruleanCityText14: -PewterCityText8: -ViridianCityText11: ; 0x24ea -	TX_FAR _ViridianCityText11 -	db $50 - -PewterCityText9: -CeruleanCityText15: -LavenderTownText7: -VermilionCityText10: -CeladonCityText12: -FuchsiaCityText15: -CinnabarIslandText5: -SaffronCityText23: -Route4Text4: -Route10Text8: -ViridianCityText12: ; 0x24ef -	TX_FAR _ViridianCityText12 -	db $50 +BoulderText: ; 0x24e5 +	TX_FAR _BoulderText +	db "@" + +MartSignText: ; 0x24ea +	TX_FAR _MartSignText +	db "@" + +PokeCenterSignText: ; 0x24ef +	TX_FAR _PokeCenterSignText +	db "@"  Route2Text1:  Route4Text3: @@ -6175,7 +6134,7 @@ DisplayChooseQuantityMenu: ; 2D57  	ret  InitialQuantityText: ; 2E30 -	db $f1,"01@" +	db "×01@"  SpacesBetweenQuantityAndPriceText: ; 2E34  	db "      @" @@ -6340,7 +6299,7 @@ PrintListMenuEntries: ; 2E5A  	push hl  	ld bc,20 + 8 ; 1 row down and 8 columns right  	add hl,bc -	ld a,$f1 +	ld a,"×"  	ldi [hl],a  	ld a,[$d11e]  	push af @@ -21261,7 +21220,7 @@ CeladonCityObject: ; 0x18022 (size=189)  	db $9 ; signs  	db $f, $1b, $a ; CeladonCityText10  	db $f, $13, $b ; CeladonCityText11 -	db $9, $2a, $c ; CeladonCityText12 +	db $9, $2a, $c ; PokeCenterSignText  	db $1d, $d, $d ; CeladonCityText13  	db $9, $15, $e ; CeladonCityText14  	db $d, $c, $f ; CeladonCityText15 @@ -21395,8 +21354,8 @@ ViridianCityObject: ; 0x18384 (size=104)  	db $11, $11, $8 ; ViridianCityText8  	db $1, $13, $9 ; ViridianCityText9  	db $1d, $15, $a ; ViridianCityText10 -	db $13, $1e, $b ; ViridianCityText11 -	db $19, $18, $c ; ViridianCityText12 +	db $13, $1e, $b ; MartSignText +	db $19, $18, $c ; PokeCenterSignText  	db $7, $1b, $d ; ViridianCityText13  	db $7 ; people @@ -21462,8 +21421,8 @@ PewterCityObject: ; 0x18577 (size=111)  	db $7 ; signs  	db $1d, $13, $6 ; PewterCityText6  	db $13, $21, $7 ; PewterCityText7 -	db $11, $18, $8 ; PewterCityText8 -	db $19, $e, $9 ; PewterCityText9 +	db $11, $18, $8 ; MartSignText +	db $19, $e, $9 ; PokeCenterSignText  	db $9, $f, $a ; PewterCityText10  	db $11, $b, $b ; PewterCityText11  	db $17, $19, $c ; PewterCityText12 @@ -21545,8 +21504,8 @@ CeruleanCityObject: ; 0x18786 (size=170)  	db $6 ; signs  	db $13, $17, $c ; CeruleanCityText12  	db $1d, $11, $d ; CeruleanCityText13 -	db $19, $1a, $e ; CeruleanCityText14 -	db $11, $14, $f ; CeruleanCityText15 +	db $19, $1a, $e ; MartSignText +	db $11, $14, $f ; PokeCenterSignText  	db $19, $b, $10 ; CeruleanCityText16  	db $15, $1b, $11 ; CeruleanCityText17 @@ -21621,8 +21580,8 @@ VermilionCityObject: ; 0x189ba (size=133)  	db $7 ; signs  	db $3, $1b, $7 ; VermilionCityText7  	db $d, $25, $8 ; VermilionCityText8 -	db $d, $18, $9 ; VermilionCityText9 -	db $3, $c, $a ; VermilionCityText10 +	db $d, $18, $9 ; MartSignText +	db $3, $c, $a ; PokeCenterSignText  	db $d, $7, $b ; VermilionCityText11  	db $13, $7, $c ; VermilionCityText12  	db $f, $1d, $d ; VermilionCityText13 @@ -21700,8 +21659,8 @@ FuchsiaCityObject: ; 0x18bd4 (size=178)  	db $17, $f, $b ; FuchsiaCityText11  	db $f, $19, $c ; FuchsiaCityText12  	db $5, $11, $d ; FuchsiaCityText13 -	db $d, $6, $e ; FuchsiaCityText14 -	db $1b, $14, $f ; FuchsiaCityText15 +	db $d, $6, $e ; MartSignText +	db $1b, $14, $f ; PokeCenterSignText  	db $1d, $1b, $10 ; FuchsiaCityText16  	db $f, $15, $11 ; FuchsiaCityText17  	db $1d, $5, $12 ; FuchsiaCityText18 @@ -21983,7 +21942,7 @@ ViridianCityScript0: ; 0x19005  INCBIN "baserom.gbc",$1900b,$d9  ViridianCityTexts: ; 0x190e4 -	dw ViridianCityText1, ViridianCityText2, ViridianCityText3, ViridianCityText4, ViridianCityText5, ViridianCityText6, ViridianCityText7, ViridianCityText8, ViridianCityText9, ViridianCityText10, ViridianCityText11, ViridianCityText12, ViridianCityText13, ViridianCityText14, ViridianCityText15 +	dw ViridianCityText1, ViridianCityText2, ViridianCityText3, ViridianCityText4, ViridianCityText5, ViridianCityText6, ViridianCityText7, ViridianCityText8, ViridianCityText9, ViridianCityText10, MartSignText, PokeCenterSignText, ViridianCityText13, ViridianCityText14, ViridianCityText15  ViridianCityText1: ; 0x19102  	TX_FAR _ViridianCityText1 @@ -22214,7 +22173,7 @@ PewterCityScript0: ; 0x19251  INCBIN "baserom.gbc",$1925e,$12d  PewterCityTexts: ; 0x1938b -	dw PewterCityText1, PewterCityText2, PewterCityText3, PewterCityText4, PewterCityText5, PewterCityText6, PewterCityText7, PewterCityText8, PewterCityText9, PewterCityText10, PewterCityText11, PewterCityText12, PewterCityText13, PewterCityText14 +	dw PewterCityText1, PewterCityText2, PewterCityText3, PewterCityText4, PewterCityText5, PewterCityText6, PewterCityText7, MartSignText, PokeCenterSignText, PewterCityText10, PewterCityText11, PewterCityText12, PewterCityText13, PewterCityText14  PewterCityText1: ; 0x193a7  	TX_FAR _PewterCityText1 @@ -22547,7 +22506,7 @@ CeruleanCityScript3: ; 0x19610  ; 0x1962d  CeruleanCityTexts: ; 0x1962d -	dw CeruleanCityText1, CeruleanCityText2, CeruleanCityText3, CeruleanCityText4, CeruleanCityText5, CeruleanCityText6, CeruleanCityText7, CeruleanCityText8, CeruleanCityText9, CeruleanCityText10, CeruleanCityText11, CeruleanCityText12, CeruleanCityText13, CeruleanCityText14, CeruleanCityText15, CeruleanCityText16, CeruleanCityText17 +	dw CeruleanCityText1, CeruleanCityText2, CeruleanCityText3, CeruleanCityText4, CeruleanCityText5, CeruleanCityText6, CeruleanCityText7, CeruleanCityText8, CeruleanCityText9, CeruleanCityText10, CeruleanCityText11, CeruleanCityText12, CeruleanCityText13, MartSignText, PokeCenterSignText, CeruleanCityText16, CeruleanCityText17  CeruleanCityText1: ; 0x1964f  	db $08 ; asm @@ -22846,7 +22805,7 @@ VermilionCityScript1: ; 0x1985f  ; 0x1986f  VermilionCityTexts: ; 0x1986f -	dw VermilionCityText1, VermilionCityText2, VermilionCityText3, VermilionCityText4, VermilionCityText5, VermilionCityText6, VermilionCityText7, VermilionCityText8, VermilionCityText9, VermilionCityText10, VermilionCityText11, VermilionCityText12, VermilionCityText13 +	dw VermilionCityText1, VermilionCityText2, VermilionCityText3, VermilionCityText4, VermilionCityText5, VermilionCityText6, VermilionCityText7, VermilionCityText8, MartSignText, PokeCenterSignText, VermilionCityText11, VermilionCityText12, VermilionCityText13  VermilionCityText1: ; 0x19889  	TX_FAR _VermilionCityText1 @@ -22994,7 +22953,7 @@ CeladonCityScript: ; 0x19956  ; 0x19966  CeladonCityTexts: ; 0x19966 -	dw CeladonCityText1, CeladonCityText2, CeladonCityText3, CeladonCityText4, CeladonCityText5, CeladonCityText6, CeladonCityText7, CeladonCityText8, CeladonCityText9, CeladonCityText10, CeladonCityText11, CeladonCityText12, CeladonCityText13, CeladonCityText14, CeladonCityText15, CeladonCityText16, CeladonCityText17, CeladonCityText18 +	dw CeladonCityText1, CeladonCityText2, CeladonCityText3, CeladonCityText4, CeladonCityText5, CeladonCityText6, CeladonCityText7, CeladonCityText8, CeladonCityText9, CeladonCityText10, CeladonCityText11, PokeCenterSignText, CeladonCityText13, CeladonCityText14, CeladonCityText15, CeladonCityText16, CeladonCityText17, CeladonCityText18  CeladonCityText1: ; 0x1998a  	TX_FAR _CeladonCityText1 @@ -23113,7 +23072,7 @@ FuchsiaCityScript: ; 0x19a2b  ; 0x19a2e  FuchsiaCityTexts: ; 0x19a2e -	dw FuchsiaCityText1, FuchsiaCityText2, FuchsiaCityText3, FuchsiaCityText4, FuchsiaCityText5, FuchsiaCityText6, FuchsiaCityText7, FuchsiaCityText8, FuchsiaCityText9, FuchsiaCityText10, FuchsiaCityText11, FuchsiaCityText12, FuchsiaCityText13, FuchsiaCityText14, FuchsiaCityText15, FuchsiaCityText16, FuchsiaCityText17, FuchsiaCityText18, FuchsiaCityText19, FuchsiaCityText20, FuchsiaCityText21, FuchsiaCityText22, FuchsiaCityText23, FuchsiaCityText24 +	dw FuchsiaCityText1, FuchsiaCityText2, FuchsiaCityText3, FuchsiaCityText4, FuchsiaCityText5, FuchsiaCityText6, FuchsiaCityText7, FuchsiaCityText8, FuchsiaCityText9, FuchsiaCityText10, FuchsiaCityText11, FuchsiaCityText12, FuchsiaCityText13, MartSignText, PokeCenterSignText, FuchsiaCityText16, FuchsiaCityText17, FuchsiaCityText18, FuchsiaCityText19, FuchsiaCityText20, FuchsiaCityText21, FuchsiaCityText22, FuchsiaCityText23, FuchsiaCityText24  FuchsiaCityText1: ; 0x19a5e  	TX_FAR _FuchsiaCityText1 @@ -24178,8 +24137,8 @@ CinnabarIslandObject: ; 0x1c022 (size=71)  	db $5 ; signs  	db $5, $9, $3 ; CinnabarIslandText3 -	db $b, $10, $4 ; CinnabarIslandText4 -	db $b, $c, $5 ; CinnabarIslandText5 +	db $b, $10, $4 ; MartSignText +	db $b, $c, $5 ; PokeCenterSignText  	db $b, $9, $6 ; CinnabarIslandText6  	db $3, $d, $7 ; CinnabarIslandText7 @@ -24534,7 +24493,7 @@ CinnabarIslandScript1: ; 0x1ca73  ; 0x1ca81  CinnabarIslandTexts: ; 0x1ca81 -	dw CinnabarIslandText1, CinnabarIslandText2, CinnabarIslandText3, CinnabarIslandText4, CinnabarIslandText5, CinnabarIslandText6, CinnabarIslandText7, CinnabarIslandText8 +	dw CinnabarIslandText1, CinnabarIslandText2, CinnabarIslandText3, MartSignText, PokeCenterSignText, CinnabarIslandText6, CinnabarIslandText7, CinnabarIslandText8  CinnabarIslandText8: ; 0x1ca91  	TX_FAR _CinnabarIslandText8 @@ -43097,8 +43056,8 @@ LavenderTownObject: ; 0x4402d (size=88)  	db $6 ; signs  	db $9, $b, $4 ; LavenderTownText4  	db $3, $9, $5 ; LavenderTownText5 -	db $d, $10, $6 ; LavenderTownText6 -	db $5, $4, $7 ; LavenderTownText7 +	db $d, $10, $6 ; MartSignText +	db $5, $4, $7 ; PokeCenterSignText  	db $9, $5, $8 ; LavenderTownText8  	db $7, $11, $9 ; LavenderTownText9 @@ -43129,7 +43088,7 @@ LavenderTownScript: ; 0x4410b  ; 0x4410e  LavenderTownTexts: ; 0x4410e -	dw LavenderTownText1, LavenderTownText2, LavenderTownText3, LavenderTownText4, LavenderTownText5, LavenderTownText6, LavenderTownText7, LavenderTownText8, LavenderTownText9 +	dw LavenderTownText1, LavenderTownText2, LavenderTownText3, LavenderTownText4, LavenderTownText5, MartSignText, PokeCenterSignText, LavenderTownText8, LavenderTownText9  LavenderTownText1: ; 0x44120  	db $08 ; asm @@ -43752,7 +43711,7 @@ SeafoamIslands1Script_Unknown44846: ; 0x44846  INCBIN "baserom.gbc",$44846,$5  SeafoamIslands1Texts: ; 0x4484b -	dw SeafoamIslands1Text1, SeafoamIslands1Text2 +	dw BoulderText, BoulderText  SeafoamIslands1Object: ; 0x4484f (size=72)  	db $7d ; border tile @@ -43847,7 +43806,7 @@ VictoryRoad3Script_Unknown44996: ; 0x44996  INCBIN "baserom.gbc",$44996,$8e  VictoryRoad3Texts: ; 0x44a24 -	dw VictoryRoad3Text1, VictoryRoad3Text2, VictoryRoad3Text3, VictoryRoad3Text4, VictoryRoad3Text5, VictoryRoad3Text6, VictoryRoad3Text7, VictoryRoad3Text8, VictoryRoad3Text9, VictoryRoad3Text10 +	dw VictoryRoad3Text1, VictoryRoad3Text2, VictoryRoad3Text3, VictoryRoad3Text4, VictoryRoad3Text5, VictoryRoad3Text6, BoulderText, BoulderText, BoulderText, BoulderText  VictoryRoad3TrainerHeaders:  VictoryRoad3TrainerHeader0: ; 0x44a38 @@ -45616,7 +45575,7 @@ SeafoamIslands2Script_Unknown4636d: ; 0x4636d  INCBIN "baserom.gbc",$4636d,$5  SeafoamIslands2Texts: ; 0x46372 -	dw SeafoamIslands2Text1, SeafoamIslands2Text2 +	dw BoulderText, BoulderText  SeafoamIslands2Object: ; 0x46376 (size=72)  	db $7d ; border tile @@ -45701,7 +45660,7 @@ SeafoamIslands3Script_Unknown464a9: ; 0x464a9  INCBIN "baserom.gbc",$464a9,$5  SeafoamIslands3Texts: ; 0x464ae -	dw SeafoamIslands3Text1, SeafoamIslands3Text2 +	dw BoulderText, BoulderText  SeafoamIslands3Object: ; 0x464b2 (size=72)  	db $7d ; border tile @@ -45845,7 +45804,7 @@ SeafoamIslands4Script3: ; 0x4668f  ; 0x4669a  SeafoamIslands4Texts: ; 0x4669a -	dw SeafoamIslands4Text1, SeafoamIslands4Text2, SeafoamIslands4Text3, SeafoamIslands4Text4, SeafoamIslands4Text5, SeafoamIslands4Text6 +	dw BoulderText, BoulderText, BoulderText, BoulderText, BoulderText, BoulderText  SeafoamIslands4Object: ; 0x466a6 (size=96)  	db $7d ; border tile @@ -45948,7 +45907,7 @@ SeafoamIslands5Script1: ; 0x46807  INCBIN "baserom.gbc",$46816,$66  SeafoamIslands5Texts: ; 0x4687c -	dw SeafoamIslands5Text1, SeafoamIslands5Text2, SeafoamIslands5Text3, SeafoamIslands5Text4, SeafoamIslands5Text5 +	dw BoulderText, BoulderText, SeafoamIslands5Text3, SeafoamIslands5Text4, SeafoamIslands5Text5  SeafoamIslands5TrainerHeaders:  SeafoamIslands5TrainerHeader0: ; 0x46886 @@ -50336,11 +50295,11 @@ SaffronCityObject: ; 0x509dc (size=188)  	db $5, $11, $10 ; SaffronCityText16  	db $5, $1b, $11 ; SaffronCityText17  	db $5, $23, $12 ; SaffronCityText18 -	db $b, $1a, $13 ; SaffronCityText19 +	db $b, $1a, $13 ; MartSignText  	db $13, $27, $14 ; SaffronCityText20  	db $15, $5, $15 ; SaffronCityText21  	db $15, $f, $16 ; SaffronCityText22 -	db $1d, $a, $17 ; SaffronCityText23 +	db $1d, $a, $17 ; PokeCenterSignText  	db $1d, $1b, $18 ; SaffronCityText24  	db $13, $1, $19 ; SaffronCityText25 @@ -50379,7 +50338,7 @@ SaffronCityScript: ; 0x50c00  ; 0x50c03  SaffronCityTexts: ; 0x50c03 -	dw SaffronCityText1, SaffronCityText2, SaffronCityText3, SaffronCityText4, SaffronCityText5, SaffronCityText6, SaffronCityText7, SaffronCityText8, SaffronCityText9, SaffronCityText10, SaffronCityText11, SaffronCityText12, SaffronCityText13, SaffronCityText14, SaffronCityText15, SaffronCityText16, SaffronCityText17, SaffronCityText18, SaffronCityText19, SaffronCityText20, SaffronCityText21, SaffronCityText22, SaffronCityText23, SaffronCityText24, SaffronCityText25 +	dw SaffronCityText1, SaffronCityText2, SaffronCityText3, SaffronCityText4, SaffronCityText5, SaffronCityText6, SaffronCityText7, SaffronCityText8, SaffronCityText9, SaffronCityText10, SaffronCityText11, SaffronCityText12, SaffronCityText13, SaffronCityText14, SaffronCityText15, SaffronCityText16, SaffronCityText17, SaffronCityText18, MartSignText, SaffronCityText20, SaffronCityText21, SaffronCityText22, PokeCenterSignText, SaffronCityText24, SaffronCityText25  SaffronCityText1: ; 0x50c35  	TX_FAR _SaffronCityText1 @@ -51787,7 +51746,7 @@ VictoryRoad2Script_Unknown517c4: ; 0x517c4  INCBIN "baserom.gbc",$517c4,$57  VictoryRoad2Texts: ; 0x5181b -	dw VictoryRoad2Text1, VictoryRoad2Text2, VictoryRoad2Text3, VictoryRoad2Text4, VictoryRoad2Text5, VictoryRoad2Text6, VictoryRoad2Text7, VictoryRoad2Text8, VictoryRoad2Text9, VictoryRoad2Text10, VictoryRoad2Text11, VictoryRoad2Text12, VictoryRoad2Text13 +	dw VictoryRoad2Text1, VictoryRoad2Text2, VictoryRoad2Text3, VictoryRoad2Text4, VictoryRoad2Text5, VictoryRoad2Text6, VictoryRoad2Text7, VictoryRoad2Text8, VictoryRoad2Text9, VictoryRoad2Text10, BoulderText, BoulderText, BoulderText  VictoryRoad2TrainerHeaders:  VictoryRoad2TrainerHeader0: ; 0x51835 @@ -53404,7 +53363,7 @@ Route4Object: ; 0x543b2 (size=58)  	db $5, $18, $7, MT_MOON_2  	db $3 ; signs -	db $5, $c, $4 ; Route4Text4 +	db $5, $c, $4 ; PokeCenterSignText  	db $7, $11, $5 ; Route4Text5  	db $7, $1b, $6 ; Route4Text6 @@ -54092,7 +54051,7 @@ Unknown_5566b: ; 0x5566b  INCBIN "baserom.gbc",$5566b,$6  Route4Texts: ; 0x55671 -	dw Route4Text1, Route4Text2, Route4Text3, Route4Text4, Route4Text5, Route4Text6 +	dw Route4Text1, Route4Text2, Route4Text3, PokeCenterSignText, Route4Text5, Route4Text6  Route4TrainerHeaders:  Route4TrainerHeader0: ; 0x5567d @@ -56921,7 +56880,7 @@ Route10Object: ; 0x582f6 (size=96)  	db $4 ; signs  	db $13, $7, $7 ; Route10Text7 -	db $13, $c, $8 ; Route10Text8 +	db $13, $c, $8 ; PokeCenterSignText  	db $37, $9, $9 ; Route10Text9  	db $29, $5, $a ; Route10Text10 @@ -57847,7 +57806,7 @@ Route10_Unknown59349: ; 0x59349  INCBIN "baserom.gbc",$59349,$6  Route10Texts: ; 0x5934f -	dw Route10Text1, Route10Text2, Route10Text3, Route10Text4, Route10Text5, Route10Text6, Route10Text7, Route10Text8, Route10Text9, Route10Text10 +	dw Route10Text1, Route10Text2, Route10Text3, Route10Text4, Route10Text5, Route10Text6, Route10Text7, PokeCenterSignText, Route10Text9, Route10Text10  Route10TrainerHeaders:  Route10TrainerHeader0: ; 0x59363 @@ -63292,7 +63251,7 @@ VictoryRoad1Script: ; 0x5da0a  INCBIN "baserom.gbc",$5da27,$38  VictoryRoad1Texts: ; 0x5da5f -	dw VictoryRoad1Text1, VictoryRoad1Text2, VictoryRoad1Text3, VictoryRoad1Text4, VictoryRoad1Text5, VictoryRoad1Text6, VictoryRoad1Text7 +	dw VictoryRoad1Text1, VictoryRoad1Text2, VictoryRoad1Text3, VictoryRoad1Text4, BoulderText, BoulderText, BoulderText  VictoryRoad1TrainerHeaders:  VictoryRoad1TrainerHeader0: ; 0x5da6d @@ -68774,9 +68733,9 @@ Unnamed_74f9e: ; 0x74f9e  	db "SODA POP",$4E  	db "LEMONADE",$4E  	db "CANCEL@" -	db $F0,"200",$4E -	db $F0,"300",$4E -	db $F0,"350",$4E,"@" +	db "¥200",$4E +	db "¥300",$4E +	db "¥350",$4E,"@"  UnnamedText_74fd3: ; 0x74fd3  	TX_FAR _UnnamedText_74fd3 @@ -68928,7 +68887,7 @@ FuchsiaHouse2Script: ; 0x750b5  ; 0x750b8  FuchsiaHouse2Texts: ; 0x750b8 -	dw FuchsiaHouse2Text1, FuchsiaHouse2Text2, FuchsiaHouse2Text3, FuchsiaHouse2Text4, FuchsiaHouse2Text5 +	dw FuchsiaHouse2Text1, FuchsiaHouse2Text2, BoulderText, FuchsiaHouse2Text4, FuchsiaHouse2Text5  FuchsiaHouse2Text1: ; 0x750c2  	db $08 ; asm @@ -72769,47 +72728,16 @@ _UnnamedText_24e0: ; 0x80096  	db "somewhere!", $57  ; 0x80096 + 27 bytes -_VictoryRoad3Text10: -_VictoryRoad3Text9: -_VictoryRoad3Text8: -_VictoryRoad3Text7: -_VictoryRoad2Text13: -_VictoryRoad2Text12: -_VictoryRoad2Text11: -_SeafoamIslands1Text2: -_SeafoamIslands1Text1: -_SeafoamIslands5Text2: -_SeafoamIslands5Text1: -_SeafoamIslands4Text6: -_SeafoamIslands4Text5: -_SeafoamIslands4Text4: -_SeafoamIslands4Text3: -_SeafoamIslands4Text2: -_SeafoamIslands4Text1: -_SeafoamIslands3Text2: -_SeafoamIslands3Text1: -_SeafoamIslands2Text2: -_SeafoamIslands2Text1: -_FuchsiaHouse2Text3: -_VictoryRoad1Text7: -_VictoryRoad1Text6: -_VictoryRoad1Text5: ; 0x800b1 +_BoulderText: ; 0x800b1  	db $0, "This requires", $4f  	db "STRENGTH to move!", $57 -_SaffronCityText19: -_CinnabarIslandText4: -_FuchsiaCityText14: -_VermilionCityText9: -_LavenderTownText6: -_CeruleanCityText14: -_PewterCityText8: -_ViridianCityText11: ; 0x800d2 +_MartSignText: ; 0x800d2  	db $0, "All your item", $4f  	db "needs fulfilled!", $55  	db "#MON MART", $57 -_ViridianCityText12: ; 0x800fc +_PokeCenterSignText: ; 0x800fc  	db $0, "Heal Your #MON!", $4f  	db "#MON CENTER", $57 @@ -76582,7 +76510,7 @@ _UnnamedText_3c63e: ; 0x896c7  ; 0x896c7 + 22 bytes = 0x896dd  _UnnamedText_3c6e4: ; 0x896dd -	db $0, $52, " got ", $f0, "@" +	db $0, $52, " got ¥@"  	;XXX $2  	db $2, $79, $d0, $c3  	db $0, $4f @@ -77036,7 +76964,7 @@ SafariZoneAngryText: ; 0x89d6a  ; $2, pointer, byte  _UnnamedText_1386b: ; 0x89d80  	db $0, $52, " picked up", $4f -	db $f0, "@" +	db "¥@"  	db $2, $e5, $cc, $c3  	db $0, "!", $58 @@ -77498,7 +77426,7 @@ _UnnamedText_4935c: ; 0x8a976  	db "just for you!", $51  	db "I'll let you have", $4f  	db "a swell MAGIKARP", $55 -	db "for just ", $f0, "500!", $55 +	db "for just ¥500!", $55  	db "What do you say?", $57  ; 0x8a976 + 118 bytes @@ -77605,7 +77533,7 @@ UnknownText_8ac67: ; 0x8ac67  ; 0x8ac67 + 22 bytes  _UnnamedText_56428: ; 0x8ac7d -	db $0, "You owe me ", $f0, "@" +	db $0, "You owe me ¥@"  ; 0x8ac7d + 14 bytes  ;XXX @@ -77674,7 +77602,7 @@ _UnnamedText_5644f: ; 0x8c090  _UnnamedText_56454: ; 0x8c0ad  	db $0, "Hey, you don't", $4f -	db "have enough ", $f0, "!", $57 +	db "have enough ¥!", $57  ; 0x8c0ad + 30 bytes  _UndergroundTunnelEntranceRoute6Text1: ; 0x8c0cb @@ -77735,7 +77663,7 @@ _RockTunnelPokecenterText1: ; 0x8c2c0  _RockTunnelPokecenterText3: ; 0x8c316  	db $0, "I sold a useless", $4f -	db "NUGGET for ", $f0, "5000!", $57 +	db "NUGGET for ¥5000!", $57  _UnnamedText_44588: ; 0x8c33a  	db $0, "This tunnel goes", $4f @@ -82289,14 +82217,14 @@ _UnnamedText_5c21a: ; 0x9652c  ; 0x9652c + 13 bytes  _UnnamedText_5c21f: ; 0x96539 -	db $0, "It's ", $f0, "50 for a", $4f +	db $0, "It's ¥50 for a", $4f  	db "child's ticket.", $51  	db "Would you like to", $4f  	db "come in?", $57  ; 0x96539 + 57 bytes  _UnnamedText_5c224: ; 0x96572 -	db $0, "Right, ", $f0, "50!", $4f +	db $0, "Right, ¥50!", $4f  	db "Thank you!", $57  ; 0x96572 + 24 bytes @@ -82597,7 +82525,7 @@ _UnnamedText_74cc6: ; 0x985ac  	db "this really weird", $55  	db "fish #MON!", $51  	db "It's totally weak", $4f -	db "and it cost ", $f0, "500!", $57 +	db "and it cost ¥500!", $57  ; 0x985ac + 96 bytes  _UnnamedText_74cd5: ; 0x9860c @@ -83466,7 +83394,7 @@ _UnnamedText_5c958: ; 0x9a1e3  	db "in the mountains.", $51  	db "I thought it was", $4f  	db "useless, but it", $55 -	db "sold for ", $f0, "5000!", $57 +	db "sold for ¥5000!", $57  ; 0x9a1e3 + 85 bytes  _LavenderHouse2Text1: ; 0x9a238 @@ -84535,7 +84463,7 @@ _UnnamedText_48d22: ; 0x9d91a  	db "GAME CORNER!", $51  	db "Do you need some", $4f  	db "game coins?", $51 -	db "It's ", $f0, "1000 for 50", $4f +	db "It's ¥1000 for 50", $4f  	db "coins. Would you", $55  	db "like some?", $57  ; 0x9d91a + 106 bytes @@ -84954,7 +84882,7 @@ _SafariZoneEntranceText1: ; 0x9e6c7  	db "SAFARI ZONE!", $57  UnnamedText_9e6e4: ; 0x9e6e4 -	db $0, "For just ", $f0, "500,", $4f +	db $0, "For just ¥500,", $4f  	db "you can catch all", $55  	db "the #MON you", $55  	db "want in the park!", $51 @@ -84963,7 +84891,7 @@ UnnamedText_9e6e4: ; 0x9e6e4  ; 0x9e747  UnnamedText_9e747: ; 0x9e747 -	db $0, "That'll be ", $f0, "500", $4f +	db $0, "That'll be ¥500", $4f  	db "please!", $51  	db "We only use a", $4f  	db "special # BALL", $55 @@ -86291,7 +86219,7 @@ _PokemartTellBuyPrice: ; 0xa2619  	TX_RAM $cf4b  	db $0, "?", $4f  	db "That will be", $55 -	db $f0, "@" +	db "¥@"  	db $2, $9f, $ff, $c3  	db $0, ". OK?", $57  ; 0xa2639 @@ -86318,7 +86246,7 @@ _PokemonSellingGreetingText: ; 0xa2690  _PokemartTellSellPrice: ; 0xa26ae  	db $0, "I can pay you", $4f -	db $f0, "@" +	db "¥@"  	db $2, $9f, $ff, $c3 ; XXX  	db $0, " for that.", $57  ; 0xa26cf diff --git a/textpre.awk b/textpre.awk deleted file mode 100644 index 6c1eeac0..00000000 --- a/textpre.awk +++ /dev/null @@ -1,311 +0,0 @@ -BEGIN { -FS = "\"" - -char["ガ"] = "$05" -char["ギ"] = "$06" -char["グ"] = "$07" -char["ゲ"] = "$08" -char["ゴ"] = "$09" -char["ザ"] = "$0A" -char["ジ"] = "$0B" -char["ズ"] = "$0C" -char["ゼ"] = "$0D" -char["ゾ"] = "$0E" -char["ダ"] = "$0F" -char["ヂ"] = "$10" -char["ヅ"] = "$11" -char["デ"] = "$12" -char["ド"] = "$13" -char["バ"] = "$19" -char["ビ"] = "$1A" -char["ブ"] = "$1B" -char["ボ"] = "$1C" -char["が"] = "$26" -char["ぎ"] = "$27" -char["ぐ"] = "$28" -char["げ"] = "$29" -char["ご"] = "$2A" -char["ざ"] = "$2B" -char["じ"] = "$2C" -char["ず"] = "$2D" -char["ぜ"] = "$2E" -char["ぞ"] = "$2F" -char["だ"] = "$30" -char["ぢ"] = "$31" -char["づ"] = "$32" -char["で"] = "$33" -char["ど"] = "$34" -char["ば"] = "$3A" -char["び"] = "$3B" -char["ぶ"] = "$3C" -char["べ"] = "$3D" -char["ぼ"] = "$3E" -char["パ"] = "$40" -char["ピ"] = "$41" -char["プ"] = "$42" -char["ポ"] = "$43" -char["ぱ"] = "$44" -char["ぴ"] = "$45" -char["ぷ"] = "$46" -char["ぺ"] = "$47" -char["ぽ"] = "$48" -char["ア"] = "$80" -char["イ"] = "$81" -char["ウ"] = "$82" -char["エ"] = "$83" -char["ォ"] = "$84" -char["カ"] = "$85" -char["キ"] = "$86" -char["ク"] = "$87" -char["ケ"] = "$88" -char["コ"] = "$89" -char["サ"] = "$8A" -char["シ"] = "$8B" -char["ス"] = "$8C" -char["セ"] = "$8D" -char["ソ"] = "$8E" -char["タ"] = "$8F" -char["チ"] = "$90" -char["ツ"] = "$91" -char["テ"] = "$92" -char["ト"] = "$93" -char["ナ"] = "$94" -char["ニ"] = "$95" -char["ヌ"] = "$96" -char["ネ"] = "$97" -char["ノ"] = "$98" -char["ハ"] = "$99" -char["ヒ"] = "$9A" -char["フ"] = "$9B" -char["ホ"] = "$9C" -char["マ"] = "$9D" -char["ミ"] = "$9E" -char["ム"] = "$9F" -char["メ"] = "$A0" -char["モ"] = "$A1" -char["ヤ"] = "$A2" -char["ユ"] = "$A3" -char["ヨ"] = "$A4" -char["ラ"] = "$A5" -char["ル"] = "$A6" -char["レ"] = "$A7" -char["ロ"] = "$A8" -char["ワ"] = "$A9" -char["ヲ"] = "$AA" -char["ン"] = "$AB" -char["ッ"] = "$AC" -char["ャ"] = "$AD" -char["ュ"] = "$AE" -char["ョ"] = "$AF" -char["ィ"] = "$B0" -char["あ"] = "$B1" -char["い"] = "$B2" -char["う"] = "$B3" -char["え"] = "$B4" -char["お"] = "$B5" -char["か"] = "$B6" -char["き"] = "$B7" -char["く"] = "$B8" -char["け"] = "$B9" -char["こ"] = "$BA" -char["さ"] = "$BB" -char["し"] = "$BC" -char["す"] = "$BD" -char["せ"] = "$BE" -char["そ"] = "$BF" -char["た"] = "$C0" -char["ち"] = "$C1" -char["つ"] = "$C2" -char["て"] = "$C3" -char["と"] = "$C4" -char["な"] = "$C5" -char["に"] = "$C6" -char["ぬ"] = "$C7" -char["ね"] = "$C8" -char["の"] = "$C9" -char["は"] = "$CA" -char["ひ"] = "$CB" -char["ふ"] = "$CC" -char["へ"] = "$CD" -char["ほ"] = "$CE" -char["ま"] = "$CF" -char["み"] = "$D0" -char["む"] = "$D1" -char["め"] = "$D2" -char["も"] = "$D3" -char["や"] = "$D4" -char["ゆ"] = "$D5" -char["よ"] = "$D6" -char["ら"] = "$D7" -char["り"] = "$D8" -char["る"] = "$D9" -char["れ"] = "$DA" -char["ろ"] = "$DB" -char["わ"] = "$DC" -char["を"] = "$DD" -char["ん"] = "$DE" -char["っ"] = "$DF" -char["ゃ"] = "$E0" -char["ゅ"] = "$E1" -char["ょ"] = "$E2" -char["ー"] = "$E3" - - -char["@"] = "$50" -char["#"] = "$54" -char["…"] = "$75" - -# textbox borders -char["┌"] = "$79" -char["─"] = "$7A" -char["┐"] = "$7B" -char["│"] = "$7C" -char["└"] = "$7D" -char["┘"] = "$7E" - -char["{"] = "" -char["}"] = "" - -char["№"] = "$74" - -char[" "] = "$7F" -char["A"] = "$80" -char["B"] = "$81" -char["C"] = "$82" -char["D"] = "$83" -char["E"] = "$84" -char["F"] = "$85" -char["G"] = "$86" -char["H"] = "$87" -char["I"] = "$88" -char["J"] = "$89" -char["K"] = "$8A" -char["L"] = "$8B" -char["M"] = "$8C" -char["N"] = "$8D" -char["O"] = "$8E" -char["P"] = "$8F" -char["Q"] = "$90" -char["R"] = "$91" -char["S"] = "$92" -char["T"] = "$93" -char["U"] = "$94" -char["V"] = "$95" -char["W"] = "$96" -char["X"] = "$97" -char["Y"] = "$98" -char["Z"] = "$99" -char["("] = "$9A" -char[")"] = "$9B" -char[":"] = "$9C" -char[";"] = "$9D" -char["["] = "$9E" -char["]"] = "$9F" -char["a"] = "$A0" -char["b"] = "$A1" -char["c"] = "$A2" -char["d"] = "$A3" -char["e"] = "$A4" -char["f"] = "$A5" -char["g"] = "$A6" -char["h"] = "$A7" -char["i"] = "$A8" -char["j"] = "$A9" -char["k"] = "$AA" -char["l"] = "$AB" -char["m"] = "$AC" -char["n"] = "$AD" -char["o"] = "$AE" -char["p"] = "$AF" -char["q"] = "$B0" -char["r"] = "$B1" -char["s"] = "$B2" -char["t"] = "$B3" -char["u"] = "$B4" -char["v"] = "$B5" -char["w"] = "$B6" -char["x"] = "$B7" -char["y"] = "$B8" -char["z"] = "$B9" -char["é"] = "$BA" -char["'d"] = "$BB" -char["'l"] = "$BC" -char["'s"] = "$BD" -char["'t"] = "$BE" -char["'v"] = "$BF" -char["'"] = "$E0" -char["-"] = "$E3" -char["'r"] = "$E4" -char["'m"] = "$E5" -char["?"] = "$E6" -char["!"] = "$E7" -char["."] = "$E8" -char["♂"] = "$EF" -char["¥"] = "$F0" -char["/"] = "$F3" -char[","] = "$F4" -char["♀"] = "$F5" -char["0"] = "$F6" -char["1"] = "$F7" -char["2"] = "$F8" -char["3"] = "$F9" -char["4"] = "$FA" -char["5"] = "$FB" -char["6"] = "$FC" -char["7"] = "$FD" -char["8"] = "$FE" -char["9"] = "$FF" -} - -# skip lines that actually do use ASCII in quotes -tolower($1) ~ /section/ || -tolower($1) ~ /include/ ||  -tolower($1) ~ /incbin/ - -!(tolower($1) ~ /section/ || tolower($1) ~ /include/ || tolower($1) ~ /incbin/) { -i = 1 -ORS = "" - -while (i <= NF) { -if (i % 2 == 1) -	print $(i) -else { -	f = $(i) -	while (f != "") { -		c = substr(f,1,1) -		f = substr(f,2,length(f) - 1) -		if (c > "𐀀") { # U+10000 -			c = c substr(f,1,3) -			f = substr(f,4,length(f) - 3) -		} else if (c > "ࠀ") { # U+0800 -			c = c substr(f,1,2) -			f = substr(f,3,length(f) - 2) -		} else if (c > "") { # U+0080 -			c = c substr(f,1,1) -			f = substr(f,2,length(f) - 1) -		} - -		if (c == "'") { -			if (substr(f,1,1) == "m" || -			    substr(f,1,1) == "r" || -			    substr(f,1,1) == "t" || -			    substr(f,1,1) == "s" || -			    substr(f,1,1) == "v" || -                substr(f,1,1) == "d" || -			    substr(f,1,1) == "l") { -				c = c substr(f,1,1) -				f = substr(f,2,length(f) - 1) -			} -		} - -		print char[c] -		if (length(f)) -			print ", " -	} -} - -i = i + 1 -} -print "\n" -ORS = "\n" -} diff --git a/textpre.py b/textpre.py new file mode 100644 index 00000000..ca292b0f --- /dev/null +++ b/textpre.py @@ -0,0 +1,334 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import sys + +chars = { +"ガ": 0x05, +"ギ": 0x06, +"グ": 0x07, +"ゲ": 0x08, +"ゴ": 0x09, +"ザ": 0x0A, +"ジ": 0x0B, +"ズ": 0x0C, +"ゼ": 0x0D, +"ゾ": 0x0E, +"ダ": 0x0F, +"ヂ": 0x10, +"ヅ": 0x11, +"デ": 0x12, +"ド": 0x13, +"バ": 0x19, +"ビ": 0x1A, +"ブ": 0x1B, +"ボ": 0x1C, +"が": 0x26, +"ぎ": 0x27, +"ぐ": 0x28, +"げ": 0x29, +"ご": 0x2A, +"ざ": 0x2B, +"じ": 0x2C, +"ず": 0x2D, +"ぜ": 0x2E, +"ぞ": 0x2F, +"だ": 0x30, +"ぢ": 0x31, +"づ": 0x32, +"で": 0x33, +"ど": 0x34, +"ば": 0x3A, +"び": 0x3B, +"ぶ": 0x3C, +"べ": 0x3D, +"ぼ": 0x3E, +"パ": 0x40, +"ピ": 0x41, +"プ": 0x42, +"ポ": 0x43, +"ぱ": 0x44, +"ぴ": 0x45, +"ぷ": 0x46, +"ぺ": 0x47, +"ぽ": 0x48, +"ア": 0x80, +"イ": 0x81, +"ウ": 0x82, +"エ": 0x83, +"ォ": 0x84, +"カ": 0x85, +"キ": 0x86, +"ク": 0x87, +"ケ": 0x88, +"コ": 0x89, +"サ": 0x8A, +"シ": 0x8B, +"ス": 0x8C, +"セ": 0x8D, +"ソ": 0x8E, +"タ": 0x8F, +"チ": 0x90, +"ツ": 0x91, +"テ": 0x92, +"ト": 0x93, +"ナ": 0x94, +"ニ": 0x95, +"ヌ": 0x96, +"ネ": 0x97, +"ノ": 0x98, +"ハ": 0x99, +"ヒ": 0x9A, +"フ": 0x9B, +"ホ": 0x9C, +"マ": 0x9D, +"ミ": 0x9E, +"ム": 0x9F, +"メ": 0xA0, +"モ": 0xA1, +"ヤ": 0xA2, +"ユ": 0xA3, +"ヨ": 0xA4, +"ラ": 0xA5, +"ル": 0xA6, +"レ": 0xA7, +"ロ": 0xA8, +"ワ": 0xA9, +"ヲ": 0xAA, +"ン": 0xAB, +"ッ": 0xAC, +"ャ": 0xAD, +"ュ": 0xAE, +"ョ": 0xAF, +"ィ": 0xB0, +"あ": 0xB1, +"い": 0xB2, +"う": 0xB3, +"え": 0xB4, +"お": 0xB5, +"か": 0xB6, +"き": 0xB7, +"く": 0xB8, +"け": 0xB9, +"こ": 0xBA, +"さ": 0xBB, +"し": 0xBC, +"す": 0xBD, +"せ": 0xBE, +"そ": 0xBF, +"た": 0xC0, +"ち": 0xC1, +"つ": 0xC2, +"て": 0xC3, +"と": 0xC4, +"な": 0xC5, +"に": 0xC6, +"ぬ": 0xC7, +"ね": 0xC8, +"の": 0xC9, +"は": 0xCA, +"ひ": 0xCB, +"ふ": 0xCC, +"へ": 0xCD, +"ほ": 0xCE, +"ま": 0xCF, +"み": 0xD0, +"む": 0xD1, +"め": 0xD2, +"も": 0xD3, +"や": 0xD4, +"ゆ": 0xD5, +"よ": 0xD6, +"ら": 0xD7, +"り": 0xD8, +"る": 0xD9, +"れ": 0xDA, +"ろ": 0xDB, +"わ": 0xDC, +"を": 0xDD, +"ん": 0xDE, +"っ": 0xDF, +"ゃ": 0xE0, +"ゅ": 0xE1, +"ょ": 0xE2, +"ー": 0xE3, + + +"@": 0x50, +"#": 0x54, +"…": 0x75, + +"┌": 0x79, +"─": 0x7A, +"┐": 0x7B, +"│": 0x7C, +"└": 0x7D, +"┘": 0x7E, + +"№": 0x74, + +" ": 0x7F, +"A": 0x80, +"B": 0x81, +"C": 0x82, +"D": 0x83, +"E": 0x84, +"F": 0x85, +"G": 0x86, +"H": 0x87, +"I": 0x88, +"J": 0x89, +"K": 0x8A, +"L": 0x8B, +"M": 0x8C, +"N": 0x8D, +"O": 0x8E, +"P": 0x8F, +"Q": 0x90, +"R": 0x91, +"S": 0x92, +"T": 0x93, +"U": 0x94, +"V": 0x95, +"W": 0x96, +"X": 0x97, +"Y": 0x98, +"Z": 0x99, +"(": 0x9A, +")": 0x9B, +":": 0x9C, +";": 0x9D, +"[": 0x9E, +"]": 0x9F, +"a": 0xA0, +"b": 0xA1, +"c": 0xA2, +"d": 0xA3, +"e": 0xA4, +"f": 0xA5, +"g": 0xA6, +"h": 0xA7, +"i": 0xA8, +"j": 0xA9, +"k": 0xAA, +"l": 0xAB, +"m": 0xAC, +"n": 0xAD, +"o": 0xAE, +"p": 0xAF, +"q": 0xB0, +"r": 0xB1, +"s": 0xB2, +"t": 0xB3, +"u": 0xB4, +"v": 0xB5, +"w": 0xB6, +"x": 0xB7, +"y": 0xB8, +"z": 0xB9, +"é": 0xBA, +"'d": 0xBB, +"'l": 0xBC, +"'s": 0xBD, +"'t": 0xBE, +"'v": 0xBF, +"'": 0xE0, +"-": 0xE3, +"'r": 0xE4, +"'m": 0xE5, +"?": 0xE6, +"!": 0xE7, +".": 0xE8, +"♂": 0xEF, +"¥": 0xF0, +"×": 0xF1, +"/": 0xF3, +",": 0xF4, +"♀": 0xF5, +"0": 0xF6, +"1": 0xF7, +"2": 0xF8, +"3": 0xF9, +"4": 0xFA, +"5": 0xFB, +"6": 0xFC, +"7": 0xFD, +"8": 0xFE, +"9": 0xFF + +} + +for l in sys.stdin: + +    # strip comments +    line = l.partition(";") +    i = 0 +    asm = "" +    while i < len(line) and l[0] != ";": +        asm = asm + line[i] +        i = i + 1 + +    # skip asm with no quotes +    if "\"" not in asm: +        sys.stdout.write(l) +        continue + +    # split by quotes +    asms = asm.split("\"") + +    # skip asm that actually does use ASCII in quotes +    lowasm = asms[0].lower() +    if "section" in lowasm \ +    or "include" in lowasm \ +    or "incbin" in lowasm: +        sys.stdout.write(l) +        continue + +    even = False +    i = 0 +    for token in asms: +        i = i + 1 +        if even: +            # token is a string to convert to byte values + +            while len(token): +                # read a single UTF-8 codepoint +                char = token[0] +                if ord(char) >= 0xFC: +                    char = char + token[1:6] +                    token = token[6:] +                elif ord(char) >= 0xF8: +                    char = char + token[1:5] +                    token = token[5:] +                elif ord(char) >= 0xF0: +                    char = char + token[1:4] +                    token = token[4:] +                elif ord(char) >= 0xE0: +                    char = char + token[1:3] +                    token = token[3:] +                elif ord(char) >= 0xC0: +                    char = char + token[1:2] +                    token = token[2:] +                else: +                    token = token[1:] + +                    # certain apostrophe-letter pairs are only a single byte +                    if char == "'" and \ +                        (token[0] == "d" or \ +                         token[0] == "l" or \ +                         token[0] == "m" or \ +                         token[0] == "r" or \ +                         token[0] == "s" or \ +                         token[0] == "t" or \ +                         token[0] == "v"): +                        char = char + token[0] +                        token = token[1:] + +                sys.stdout.write("${0:02X}".format(chars[char])) + +                if len(token): +                    sys.stdout.write(", ") + +        else: +            sys.stdout.write(token) +        even = not even | 
