Add German Eon Ticket script from debug version

This commit is contained in:
Háčky 2014-11-22 05:11:37 +00:00
parent b9edbfa98b
commit 17853b8026
10 changed files with 94 additions and 36 deletions

View File

@ -3,4 +3,4 @@ Pokémon Card e
This is a disassembly of the e-Reader cards released for Pokémon Ruby and Sapphire. Currently, it includes the English release of the Pokémon Battle e series, and the Eon Ticket.
RGBDS is needed to compile the Z80 binary for each card. To build a working e-Reader card, you will need to compress the binary with nevpk and add the card metadata with nedcenc—both tools are from the nedclib package, which is unfortunately Windows-only.
RGBDS is needed to compile the Z80 binary for each card. To build a working e-Reader card, you will need to compress the binary and add the card metadata using nedcmake from the nedclib package, which is unfortunately Windows-only.

3
eonticket/00-C000-de.asm Normal file
View File

@ -0,0 +1,3 @@
INCLUDE "../macros.asm"
REGION EQU REGION_DE
INCLUDE "00-C000.tx"

3
eonticket/00-C000-en.asm Normal file
View File

@ -0,0 +1,3 @@
INCLUDE "../macros.asm"
REGION EQU REGION_EN
INCLUDE "00-C000.tx"

View File

@ -1,5 +1,3 @@
INCLUDE "../macros.asm"
SECTION "eonticket",ROM0[$100]
jp Start
db $00
@ -16,15 +14,19 @@ Prologue:
Text "e reader" ; no string terminator
db 0,0,0,0,$01,$55
db 0,0,0,0
db REGION_EN
db REGION
db 0
db "GameFreak inc."
db 0,0
DataPacket: ; 164a
Insert_Header REGION_EN
Insert_Header REGION
db MULTIPLE_DATA
INCBIN "eonticket.bin"
IF REGION == REGION_DE
INCBIN "eonticket-de.bin"
ELSE
INCBIN "eonticket-en.bin"
ENDC
db 0,0,0 ; padding
INCLUDE "../common/mem_struct.asm"
@ -142,7 +144,6 @@ Start: ; 1ae2
API $0C6
DrawText RegionHandlePtr, Instructions1, 8, 4
API $08D
INCLUDE "../common/wait_for_link.asm"

View File

@ -1,23 +1,30 @@
all: 00-C000.z80
all: 00-C000-de.z80 00-C000-en.z80
eonticket-%.tx: eonticket.asm
python ../scripts/charmap.py $< $@
%.tx: %.asm
python ../scripts/charmap.py $< $@
00-C000.o: 00-C000.tx eonticket.bin
00-C000-%.o: 00-C000-%.asm 00-C000.tx eonticket-%.bin
rgbasm -o $@ $<
eonticket.o: eonticket.tx
eonticket-%.o: eonticket-%.asm eonticket-%.tx
rgbasm -o $@ $<
%.gbc: %.o
rgblink -o $@ $<
# hack to use RGBDS for something other than its intended purpose
00-C000.z80: 00-C000.gbc
00-C000-de.z80: 00-C000-de.gbc
dd if=$< of=$@ bs=1 skip=256 count=7134
00-C000-en.z80: 00-C000-en.gbc
dd if=$< of=$@ bs=1 skip=256 count=7074
# cmp -b ../z80/$@ $@
eonticket.z80: eonticket.gbc
eonticket-de.z80: eonticket-de.gbc
dd if=$< of=$@ bs=1 skip=256 count=691
eonticket-en.z80: eonticket-en.gbc
dd if=$< of=$@ bs=1 skip=256 count=631
eonticket.bin: eonticket.z80
eonticket-%.bin: eonticket-%.z80
python ../scripts/scriptchecksum.py $< $@
clean:

View File

@ -0,0 +1,3 @@
INCLUDE "../macros.asm"
REGION EQU REGION_DE
INCLUDE "eonticket-de.tx"

View File

@ -0,0 +1,3 @@
INCLUDE "../macros.asm"
REGION EQU REGION_EN
INCLUDE "eonticket-en.tx"

View File

@ -1,4 +1,3 @@
INCLUDE "../macros.asm"
INCLUDE "../constants/items.asm"
INCLUDE "../constants/scriptcommands.asm"
ScriptBaseAddress EQU ($100 - $1E)
@ -15,7 +14,11 @@ SECTION "packet",ROM0[$100]
db MIX_RECORDS_ITEM
db 1 ; ???
db 30 ; distribution limit
IF REGION == REGION_DE
db 5 ; distribution limit
ELSE
db 30 ; distribution limit for English release
ENDC
dw EON_TICKET
@ -25,8 +28,11 @@ SECTION "packet",ROM0[$100]
db VARIABLE_LENGTH
GoSeeYourFather:
Text "Go see your father at the GYM in\n"
Text "PETALBURG.@"
Text_DE "Lauf und besuche deinen Vater in der\n"
Text_DE "ARENA von BLÜTENBURG CITY.@"
Text_EN "Go see your father at the GYM in\n"
Text_EN "PETALBURG.@"
NormanScriptStart:
setvirtualaddress NormanScriptStart
@ -68,23 +74,38 @@ NoRoomToGive:
release
end
; whoever wrote this text obviously wasnt
; familiar with R/Ss character set…
GoodToSeeYou:
Text "DAD“\v1! Good to see you!\n"
Text "Theres a letter here for you,\v1.@"
AppearsToBeAFerryTicket:
Text "DAD“It appears to be a ferry TICKET.\n"
Text "but Ive never seen one like it before.\l"
Text "You should visit LILYCOVE and ask\n"
Text "about it there.@"
KeyItemsPocketIsFull:
Text "DAD“\v1 the KEY ITEMS POCKET in\n"
Text "your BAG is full.\p"
Text "Move some key items for safekeeping\n"
Text "in your PC then come see me.@"
NormanScriptEnd:
Text_DE "VATER: \v1! Schön, dich zu sehen!\n"
Text_DE "Hier ist ein Brief für dich, \v1.@"
Text_EN "DAD“\v1! Good to see you!\n"
Text_EN "Theres a letter here for you,\v1.@"
AppearsToBeAFerryTicket:
Text_DE "VATER: Ich bin mir nicht sicher, es\n"
Text_DE "könnte ein TICKET für eine Fähre sein.\p"
Text_DE "Du solltest nach SEEGRASULB CITY gehen\n"
Text_DE "und dich dort genauer erkundigen.@"
Text_EN "DAD“It appears to be a ferry TICKET.\n"
Text_EN "but Ive never seen one like it before.\l"
Text_EN "You should visit LILYCOVE and ask\n"
Text_EN "about it there.@"
KeyItemsPocketIsFull:
Text_DE "VATER: \v1, die BASIS-TASCHE\n"
Text_DE "deines BEUTELS ist voll.\p"
Text_DE "Lagere einige deiner Basis-Items in\n"
Text_DE "deinem PC und komm dann wieder.@"
Text_EN "DAD“\v1 the KEY ITEMS POCKET in\n"
Text_EN "your BAG is full.\p"
Text_EN "Move some key items for safekeeping\n"
Text_EN "in your PC then come see me.@"
; whoever wrote the English text obviously wasnt
; familiar with R/Ss character set…
NormanScriptEnd:
PreloadScriptStart:
setvirtualaddress PreloadScriptStart
@ -116,9 +137,14 @@ NoRoomForEvent:
setbyte 3
end
; …or with the English language.
MayBeplayedOnlyOnce:
Text "This EVENT may beplayed only once.@"
Text_DE "Dieses GESCHEHEN kann nur einmal\n"
Text_DE "gespielt werden.@"
; …or with the English language.
Text_EN "This EVENT may beplayed only once.@"
BagsKeyItemsPocketFull:
Text "Your BAGs KEY ITEMS POCKET is full.@"
Text_DE "Deine BASIS-TASCHE ist voll.@"
Text_EN "Your BAGs KEY ITEMS POCKET is full.@"

View File

@ -83,6 +83,10 @@ Insert_Header: MACRO
REGION_JP EQU $01
REGION_EN EQU $02
REGION_FR EQU $03 ; ?
REGION_IT EQU $04 ; ?
REGION_DE EQU $05 ; !
REGION_ES EQU $07 ; ¿?
; types of card data
VARIABLE_LENGTH EQU $02

View File

@ -416,6 +416,10 @@ chars = {
':': '\xF0',
}
region = ""
if sys.argv[2][-6] == '-':
region = sys.argv[2][-5:-3].upper()
out = open(sys.argv[2], 'w')
with open(sys.argv[1], 'r') as f:
for asm in f:
@ -429,7 +433,11 @@ with open(sys.argv[1], 'r') as f:
asms[0] = asms[0].replace("Text", "db")
elif asms[0].strip() == "Tag_Text":
pad_length = 45
elif asms[0].find("OT_Name") == -1 and asms[0].find("Nickname") == -1 and asms[0].find("Insert_Prologue") == -1 and asms[0].find("Berry") == -1 and asms[0].find("Tag_Text") == -1:
elif asms[0].strip() == ("Text_" + region):
asms[0] = asms[0].replace("Text_" + region, "db")
elif asms[0].find("Text_") != -1:
asms[0] = ";"
elif asms[0].find("OT_Name") == -1 and asms[0].find("Nickname") == -1 and asms[0].find("Insert_Prologue") == -1 and asms[0].find("Berry") == -1:
print_macro = False
if print_macro: