Add files

This commit is contained in:
Kaisaan 2025-04-19 17:43:01 -04:00
parent 6847b8a39b
commit efec93b5f3
5 changed files with 143 additions and 54 deletions

View File

@ -1,3 +1,4 @@
perl scripts\abcde\abcde.pl -cm abcde::Cartographer "extracted\DATA.BIN" datacommands.txt "scripts\dump" -m
perl scripts\abcde\abcde.pl -cm abcde::Cartographer "extracted\DATA.BIN" datacommands.txt "scripts\dump" -s
@pause

View File

@ -1,4 +1,5 @@
0A=[LINE]\n
@main
20=
21=!
22="
@ -10,7 +11,7 @@
2B=+
2D=-
2E=.
!2F=</>,2
30=0
31=1
32=2
@ -22,7 +23,7 @@
38=8
39=9
3A=:
3B=;
3C={
3D==
3E=}
@ -136,7 +137,7 @@ A5=・
81A2=△
81A3=▲
81A4=▽
81A5=▼
81A6=※
81A8=→
81A9=←
@ -1624,56 +1625,16 @@ E6D2=贅
E748=踪
E84A=鍮
FFFD=[WAIT]\n
0A=[LINE]\n
!2F=</>,2
38FF=[IDK1]\n
B0FF=[IDK2]\n
B4FF=[IDK3]\n
CEFF=[IDK4]\n
ECFF=[IDK5]\n
9CFF=[IDK6]\n
10FF=[IDK7]\n
F6FF=[IDK8]\n
C4FF=[IDK9]\n
A6FF=[IDKA]\n
88FF=[IDKB]\n
D8FF=[IDKC]\n
B5FF=[IDKD]\n
E2FF=[IDKE]\n
60FF=[IDKF]\n
F8FF=[IDKG]\n
A1FF=[IDKH]\n
B1FF=[IDKI]\n
1FFF=[IDKJ]\n
FBFF=[IDKK]\n
15FF=[IDKL]\n
!3B=<[CHAR]>,2
47FF=[idkG]\n
4CFF=[idkL]\n
58FF=[idkX]\n
42FF=[idkB]\n
6FFF=[idko]\n
44FF=[idkD]\n
51FF=[idkQ]\n
6AFF=[idkj]\n
57FF=[idkW]\n
!FFFD=<[PAUSE]>,1
/01FF=[END01]\n
/02FF=[END02]\n
/04FF=[END04]\n
/06FF=[END06]\n
/07FF=[END07]\n
/11FF=[END11]\n
/32FF=[END32]\n
/4EFF=[END4E]\n
/55FF=[END55]\n
#56FF=[END56]\n
/64FF=[END64]\n
#A5FF=[ENDA5]\n
81A5=[WAIT]\n
/000000FF=[ENDa]\n
/0000FF=[ENDb]\n
/00FF=[ENDc]\n
80=[LEN]
/FF=[ENDFF]
/FF=[END]\n

View File

@ -20,6 +20,11 @@ $00F69E00 has the value $01B08660
loading text is at $0025FD30
$0A is newline
DATA0.bin
filenames start at 0x24BE90 (0x34BE10)
pointer info is at 0x187A40 and ends at 0x18E7C0 (0x28E740)
stage00.bin
5A 00 5B 14 01 3A 02 $6005
@ -270,6 +275,8 @@ f53cd0
loading screen text is at 0x0025FD30 -> 0x0035FCB0 in exe
$2638D0 ($363850) has a table of names (character box names?)
$2298E0 ($00329860) has a pointer to these names
graphics file format
8h: Header starts with NAXA5010
@ -307,6 +314,55 @@ FUN_0017b900 checks for save data with link option
stage90.bin has the text for the titlescreen cutscene
38FF=[IDK1]\n
B0FF=[IDK2]\n
B4FF=[IDK3]\n
CEFF=[IDK4]\n
ECFF=[IDK5]\n
9CFF=[IDK6]\n
10FF=[IDK7]\n
F6FF=[IDK8]\n
C4FF=[IDK9]\n
A6FF=[IDKA]\n
88FF=[IDKB]\n
D8FF=[IDKC]\n
B5FF=[IDKD]\n
E2FF=[IDKE]\n
60FF=[IDKF]\n
F8FF=[IDKG]\n
A1FF=[IDKH]\n
B1FF=[IDKI]\n
1FFF=[IDKJ]\n
FBFF=[IDKK]\n
15FF=[IDKL]\n
47FF=[idkG]\n
4CFF=[idkL]\n
58FF=[idkX]\n
42FF=[idkB]\n
6FFF=[idko]\n
44FF=[idkD]\n
51FF=[idkQ]\n
6AFF=[idkj]\n
57FF=[idkW]\n
/01FF=[END01]\n
/02FF=[END02]\n
/04FF=[END04]\n
/06FF=[END06]\n
/07FF=[END07]\n
/11FF=[END11]\n
/32FF=[END32]\n
/4EFF=[END4E]\n
/55FF=[END55]\n
#56FF=[END56]\n
/64FF=[END64]\n
#A5FF=[ENDA5]\n
/000000FF=[ENDa]\n
/0000FF=[ENDb]\n
/00FF=[ENDc]\n
cartographer stuff
#BLOCK NAME:stage00.bin

View File

@ -1,11 +1,14 @@
.erroronwarning on
.erroronwarning off
.ps2
.open "extracted/DATA.BIN", "DATA.BIN", 0x0
.loadtable "kefin.tbl", "SJIS"
.loadtable "kefinold.tbl", "SJIS"
.orga 0x094BA800
.dw 0x5A, 0x00, 0x5B, 0x14, 0x01, 0x3A, 0x02, 0x0560
/*
.orga 0x094BC858
.db 0x3A, 0x80
@ -17,16 +20,34 @@
.strn "The City of Sand and Mirages", 0x81, 0x43, "Kefin?\n"
.strn "Apparently it used to be a magnificent kingdom.[WAIT]", 0x19, "<K0>"
.db 0x2F, 0x03, 0x00, 0x0A, 0x50, 0x00, 0x96, 0x00, 0x89, 0x80
*/
.orga 0x094BD0B2
.db 0x00, 0x3B, 0xC7, 0x01
.orga 0x094BD0EE
.db 0x00, 0x3B, 0xC6, 0x01
.close
.open "extracted/SLPM_663.60", "SLPM_663.60", 0x0
.orga 0x0025FD45
.strn "KaisaanTest", 0x81, 0xA5
.strn "KaisaanTest", 0x81, 0x43
.orga 0x0025FE70
.strn "Ys 3 Data found"
.orga 0x0025FEB0
.strn "No Ys 3 Data"
.orga 0x00260B70
.strn "Ys 3 Data search"
.orga 0x2638D8
.strn "Adol", 0x00, 0x00
.orga 0x2638E0
.strn "Dogi"
.close

50
pointer.py Normal file
View File

@ -0,0 +1,50 @@
slpm = open("extracted/SLPM_663.60", "rb")
def pointer(address):
ptrsize = 0x4
ptr = 0x0
invalid = [0, 1]
trueptr = 0x0
baseptr = 0xFFF80
readsize = 32
terminator = "\x00"
text = ""
slpm.seek(address)
ptr = slpm.read(ptrsize)
ptr = int.from_bytes(ptr, "little")
if ptr in invalid:
return "invalid"
trueptr = ptr - baseptr
slpm.seek(trueptr)
text = slpm.read(readsize)
text = text.decode(encoding="shift-jis", errors="backslashreplace")
text = text[:text.find(terminator)]
return f"address {address:X}\tvalue {ptr:X}\tpointer {trueptr:X}\ttext {text}"
startptr = 0x2298E0
read = startptr
endptr = 0x229A00
index = 0x0
log = open("chars.txt", "w", encoding="shift-jis")
log.write("Characters:\n")
while read < endptr:
print(f"{read:X}")
if (pointer(read) == "invalid"):
pass
else:
log.write(f"{pointer(read)}\t{index:X}\n")
index += 0x1
read += 0x4