You've already forked PythonLib
mirror of
https://github.com/lifebottle/PythonLib.git
synced 2026-02-13 15:25:50 -08:00
Merge pull request #53 from lifebottle/feature/rework-functions
Make some rework on functions
This commit is contained in:
BIN
10247.scpk
Normal file
BIN
10247.scpk
Normal file
Binary file not shown.
@@ -21,10 +21,10 @@ def open_apache3_iso(repo_name):
|
||||
send_keys('{ENTER}')
|
||||
|
||||
#Get the window about Drive missing
|
||||
print("Press Enter about Drive missing")
|
||||
drive_missing = app.Apache3Build.child_window(title="apache3", control_type="Window")
|
||||
drive_missing.set_focus()
|
||||
send_keys('{ENTER}')
|
||||
#print("Press Enter about Drive missing")
|
||||
#drive_missing = app.Apache3Build.child_window(title="apache3", control_type="Window")
|
||||
#drive_missing.set_focus()
|
||||
#send_keys('{ENTER}')
|
||||
|
||||
iso_path = os.path.join( os.path.normpath(os.getcwd() + os.sep + os.pardir), "Data",repo_name,"Disc","New","{}.iso".format(repo_name))
|
||||
|
||||
@@ -50,14 +50,13 @@ def locate_right_click(file_name, app):
|
||||
def browse_replace_file(file_replace_ele, new_file_path, repo_name):
|
||||
|
||||
#Browse the file and put the new file path
|
||||
new_file_path = os.path.join( os.path.normpath(os.getcwd() + os.sep + os.pardir), "Data",repo_name, "Menu", "New", "SLPS_254.50")
|
||||
file_replace_ele.child_window(auto_id="1095").wrapper_object().click()
|
||||
file_replace_ele.Dialog.child_window(title="File name:", auto_id="1152", control_type="Edit").wrapper_object().type_keys(new_file_path)
|
||||
file_replace_ele.Dialog.child_window(title="Open", auto_id="1", control_type="Button").wrapper_object().click()
|
||||
|
||||
#Click on the Replace File button
|
||||
file_replace_ele.child_window(title="Replace File", auto_id="1094", control_type="Button").wrapper_object().click()
|
||||
|
||||
#file_replace_ele.child_window(title="Replace File", auto_id="21608", control_type="Button").wrapper_object().click()
|
||||
mouse.click(button='left', coords=(1399, 655))
|
||||
|
||||
def replace_files(files_list, repo_name, app):
|
||||
|
||||
@@ -87,8 +86,8 @@ def apache_job(files_list, repo_name):
|
||||
original_path = os.path.join(os.getcwd(), "..", "Data", repo_name, "Disc", "Original", "{}.iso".format(repo_name))
|
||||
new_path = os.path.join(os.getcwd(), "..", "Data", repo_name, "Disc", "New", "{}.iso".format(repo_name))
|
||||
|
||||
print("Copy Original Iso into New folder")
|
||||
shutil.copy( original_path, new_path)
|
||||
#print("Copy Original Iso into New folder")
|
||||
#shutil.copy( original_path, new_path)
|
||||
|
||||
|
||||
try:
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
import ToolsTODDC
|
||||
import json
|
||||
import struct
|
||||
import comptolib
|
||||
import io
|
||||
import re
|
||||
import string
|
||||
import pandas as pd
|
||||
import json
|
||||
import os
|
||||
import lxml.etree as etree
|
||||
|
||||
|
||||
tool = ToolsTODDC.ToolsTODDC("TBL_All.json")
|
||||
|
||||
ele = tool.menu_files_json[0]
|
||||
tool.extract_Menu_File(ele)
|
||||
|
||||
repo_name = "Tales-Of-Destiny-DC"
|
||||
tblFile = "TBL_ALL.json"
|
||||
with open("../{}/Data/Misc/{}".format(repo_name, tblFile), encoding="utf-8") as f:
|
||||
jsonRaw = json.load(f)
|
||||
jsonTblTags ={ k1:{ int(k2) if (k2 != "TBL") else int(k2):v2 for k2,v2 in jsonRaw[k1].items()} for k1,v1 in jsonRaw.items()}
|
||||
#jsonTblTags = {k2:v2 for k2,v2 in jsonRaw[k1].items()} for k1,v1 in jsonRaw.items()}
|
||||
|
||||
|
||||
TAGS = jsonTblTags['TAGS']
|
||||
|
||||
with open("../Data/Tales-Of-Destiny-DC/Menu/New/00016/00016_0000d.unknown", "rb") as fileRead:
|
||||
|
||||
|
||||
fileRead.seek(0x3C87D)
|
||||
b = fileRead.read(1)
|
||||
|
||||
b = ord(b)
|
||||
finalText=""
|
||||
if (b >= 0x99 and b <= 0x9F) or (b >= 0xE0 and b <= 0xEB):
|
||||
c = (b << 8) + ord(fileRead.read(1))
|
||||
|
||||
# if str(c) not in json_data.keys():
|
||||
# json_data[str(c)] = char_index[decode(c)]
|
||||
try:
|
||||
finalText += (jsonTblTags['TBL'][str(c)])
|
||||
except KeyError:
|
||||
b_u = (c >> 8) & 0xff
|
||||
b_l = c & 0xff
|
||||
finalText += ("{%02X}" % b_u)
|
||||
finalText += ("{%02X}" % b_l)
|
||||
elif b == 0x1:
|
||||
finalText += ("\n")
|
||||
elif b in (0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xB, 0xC, 0xD, 0xE, 0xF):
|
||||
b2 = struct.unpack("<L", fileRead.read(4))[0]
|
||||
if b in TAGS:
|
||||
tag_name = TAGS.get(b)
|
||||
|
||||
tag_param = None
|
||||
tag_search = tag_name.upper()
|
||||
if (tag_search in jsonTblTags.keys()):
|
||||
tags2 = jsonTblTags[tag_search]
|
||||
tag_param = tags2.get(b2, None)
|
||||
if tag_param != None:
|
||||
finalText += tag_param
|
||||
else:
|
||||
finalText += ("<%s:%08X>" % (tag_name, b2))
|
||||
else:
|
||||
finalText += "<%02X:%08X>" % (b, b2)
|
||||
@@ -1,6 +0,0 @@
|
||||
import ToolsTOPX
|
||||
|
||||
tool = ToolsTOPX.ToolsTOPX("tbl")
|
||||
tool.extractAllSkits()
|
||||
|
||||
|
||||
105
ToolsTOR.py
105
ToolsTOR.py
@@ -24,10 +24,10 @@ class ToolsTOR(ToolsTales):
|
||||
|
||||
|
||||
#Path to used
|
||||
datBinOriginal = '../Data/Tales-Of-Rebirth/Disc/Original/DAT.BIN'
|
||||
datBinNew = '../Data/Tales-Of-Rebirth/Disc/New/DAT.BIN'
|
||||
elfOriginal = '../Data/Tales-Of-Rebirth/Disc/Original/SLPS_254.50'
|
||||
elfNew = '../Data/Tales-Of-Rebirth/Disc/New/SLPS_254.50'
|
||||
dat_bin_original = '../Data/Tales-Of-Rebirth/Disc/Original/DAT.BIN'
|
||||
dat_bin_new = '../Data/Tales-Of-Rebirth/Disc/New/DAT.BIN'
|
||||
elf_original = '../Data/Tales-Of-Rebirth/Disc/Original/SLPS_254.50'
|
||||
elf_new = '../Data/Tales-Of-Rebirth/Disc/New/SLPS_254.50'
|
||||
story_XML_new = '../Tales-Of-Rebirth/Data/TOR/Story/' #Story XML files will be extracted here
|
||||
story_XML_patch = '../Data/Tales-Of-Rebirth/Story/' #Story XML files will be extracted here
|
||||
skit_XML_patch = '../Data/Tales-Of-Rebirth/Skits/' #Skits XML files will be extracted here
|
||||
@@ -40,6 +40,7 @@ class ToolsTOR(ToolsTales):
|
||||
|
||||
#byteCode
|
||||
self.story_byte_code = b"\xF8"
|
||||
self.list_status_insertion = ['Done']
|
||||
|
||||
|
||||
|
||||
@@ -53,11 +54,11 @@ class ToolsTOR(ToolsTales):
|
||||
|
||||
self.mkdir( self.story_XML_patch + "XML")
|
||||
listFiles = [self.dat_archive_extract + 'SCPK/' + ele for ele in os.listdir( os.path.join(self.dat_archive_extract, "SCPK"))]
|
||||
for scpkFile in listFiles:
|
||||
for scpk_file in listFiles:
|
||||
|
||||
self.extract_TheirSce_XML(scpkFile)
|
||||
self.extract_TheirSce_XML(scpk_file)
|
||||
|
||||
def get_theirsce_from_scpk(self, scpk, scpkFileName, debug=False)->bytes:
|
||||
def get_theirsce_from_scpk(self, scpk, scpk_file_name, debug=False)->bytes:
|
||||
header = scpk.read(4)
|
||||
|
||||
if header != b"SCPK":
|
||||
@@ -92,20 +93,20 @@ class ToolsTOR(ToolsTales):
|
||||
|
||||
|
||||
# Extract THEIRSCE to XML
|
||||
def extract_TheirSce_XML(self, scpkFileName):
|
||||
def extract_TheirSce_XML(self, scpk_file_name):
|
||||
|
||||
#Create the XML file
|
||||
root = etree.Element('SceneText')
|
||||
etree.SubElement(root, "OriginalName").text = scpkFileName
|
||||
etree.SubElement(root, "OriginalName").text = scpk_file_name
|
||||
|
||||
stringsNode = etree.SubElement(root, "Strings")
|
||||
|
||||
#Open the SCPK file to grab the THEIRSCE file
|
||||
with open(scpkFileName, "rb") as scpk:
|
||||
theirsce = self.get_theirsce_from_scpk(scpk,scpkFileName,True)
|
||||
with open(scpk_file_name, "rb") as scpk:
|
||||
theirsce = self.get_theirsce_from_scpk(scpk,scpk_file_name,True)
|
||||
|
||||
#if (scpkFileName.endswith(".scpk") and debug):
|
||||
# with open("Debug/{}d.theirsce".format( self.get_file_name(scpkFileName)), "wb") as f:
|
||||
#if (scpk_file_name.endswith(".scpk") and debug):
|
||||
# with open("Debug/{}d.theirsce".format( self.get_file_name(scpk_file_name)), "wb") as f:
|
||||
# f.write(theirsce.read())
|
||||
|
||||
theirsce.seek(0)
|
||||
@@ -134,17 +135,37 @@ class ToolsTOR(ToolsTales):
|
||||
#Build the XML Structure with the information
|
||||
|
||||
|
||||
file_path = self.story_XML_patch +"XML/"+ self.get_file_name(scpkFileName)
|
||||
file_path = self.story_XML_patch +"XML/"+ self.get_file_name(scpk_file_name)
|
||||
root = self.create_Node_XML(file_path, list_informations, "SceneText")
|
||||
|
||||
|
||||
#Write the XML file
|
||||
txt=etree.tostring(root, encoding="UTF-8", pretty_print=True)
|
||||
|
||||
with open(os.path.join( self.story_XML_patch,"XML", self.get_file_name(scpkFileName)+".xml"), "wb") as xmlFile:
|
||||
with open(os.path.join( self.story_XML_patch,"XML", self.get_file_name(scpk_file_name)+".xml"), "wb") as xmlFile:
|
||||
xmlFile.write(txt)
|
||||
|
||||
def getNewTheirsce(self, theirsce, scpkFileName):
|
||||
def get_Node_Bytes(self, entry_node):
|
||||
|
||||
#Grab the fields from the Entry in the XML
|
||||
status = entry_node.find("Status").text
|
||||
japanese_text = entry_node.find("JapaneseText").text
|
||||
english_text = entry_node.find("EnglishText").text
|
||||
|
||||
#Use the values only for Status = Done and use English if non empty
|
||||
final_text = ''
|
||||
if (status in self.list_status_insertion):
|
||||
final_text = english_text or japanese_text or ''
|
||||
else:
|
||||
final_text = japanese_text or ''
|
||||
|
||||
|
||||
#Convert the text values to bytes using TBL, TAGS, COLORS, ...
|
||||
bytes_entry = self.text_to_bytes(final_text)
|
||||
|
||||
return bytes_entry
|
||||
|
||||
def get_New_Theirsce(self, theirsce, scpk_file_name):
|
||||
|
||||
#To store the new text_offset and pointers to update
|
||||
new_text_offsets = dict()
|
||||
@@ -155,37 +176,26 @@ class ToolsTOR(ToolsTales):
|
||||
print(strings_offset)
|
||||
|
||||
#Read the XML for the corresponding THEIRSCE
|
||||
file = self.story_XML_new +"XML/"+ self.get_file_name(scpkFileName)+'.xml'
|
||||
print("XML : {}".format(self.get_file_name(scpkFileName)+'.xml'))
|
||||
file = self.story_XML_new +"XML/"+ self.get_file_name(scpk_file_name)+'.xml'
|
||||
print("XML : {}".format(self.get_file_name(scpk_file_name)+'.xml'))
|
||||
tree = etree.parse(file)
|
||||
root = tree.getroot()
|
||||
|
||||
#Go at the start of the dialog
|
||||
#Loop on every Entry and reinsert
|
||||
theirsce.seek(strings_offset+1)
|
||||
for entry_node in root.iter("Entry"):
|
||||
|
||||
#Add the PointerOffset and TextOffset
|
||||
new_text_offsets[entry_node.find("PointerOffset").text] = theirsce.tell()
|
||||
|
||||
#Grab the fields from the Entry in the XML
|
||||
status = entry_node.find("Status").text
|
||||
japanese_text = entry_node.find("JapaneseText").text
|
||||
english_text = entry_node.find("EnglishText").text
|
||||
|
||||
#Use the values only for Status = Done and use English if non empty
|
||||
final_text = ''
|
||||
if (status == "Done"):
|
||||
final_text = english_text or japanese_text or ''
|
||||
else:
|
||||
final_text = japanese_text or ''
|
||||
|
||||
|
||||
#Convert the text values to bytes using TBL, TAGS, COLORS, ...
|
||||
bytesEntry = self.text_to_bytes(final_text)
|
||||
#Use the node to get the new bytes
|
||||
bytes_entry = self.get_Node_Bytes(entry_node)
|
||||
|
||||
#Write to the file
|
||||
theirsce.write(bytesEntry + b'\x00')
|
||||
theirsce.write(bytes_entry + b'\x00')
|
||||
|
||||
#Update the pointers
|
||||
#Update the pointers based on the new text_offset of the entries
|
||||
for pointer_offset, text_offset in new_text_offsets.items():
|
||||
|
||||
pointers_list = pointer_offset.split(",")
|
||||
@@ -200,13 +210,13 @@ class ToolsTOR(ToolsTales):
|
||||
return theirsce
|
||||
|
||||
#Repack SCPK files for Story
|
||||
def pack_Story_File(self, scpkFileName):
|
||||
def pack_Story_File(self, scpk_file_name):
|
||||
|
||||
#Copy the original SCPK file to the folder used for the new version
|
||||
shutil.copy( self.dat_archive_extract + "SCPK/" + scpkFileName, self.story_XML_patch + "New/" + scpkFileName)
|
||||
shutil.copy( self.dat_archive_extract + "SCPK/" + scpk_file_name, self.story_XML_patch + "New/" + scpk_file_name)
|
||||
|
||||
#Open the original SCPK
|
||||
with open( self.dat_archive_extract + "SCPK/" + scpkFileName, 'r+b') as scpk:
|
||||
with open( self.dat_archive_extract + "SCPK/" + scpk_file_name, 'r+b') as scpk:
|
||||
|
||||
|
||||
#Get nb_files and files_size
|
||||
@@ -248,7 +258,7 @@ class ToolsTOR(ToolsTales):
|
||||
# f.write(data_uncompressed)
|
||||
|
||||
#Update THEIRSCE uncompressed file
|
||||
theirsce = self.getNewTheirsce(io.BytesIO(data_uncompressed), scpkFileName)
|
||||
theirsce = self.get_New_Theirsce(io.BytesIO(data_uncompressed), scpk_file_name)
|
||||
|
||||
|
||||
theirsce.seek(0)
|
||||
@@ -292,7 +302,7 @@ class ToolsTOR(ToolsTales):
|
||||
self.mkdir("../Data/Tales-Of-Rebirth/DAT")
|
||||
|
||||
|
||||
f = open( self.datBinOriginal, "rb")
|
||||
f = open( self.dat_bin_original, "rb")
|
||||
|
||||
pointers = self.get_pointers(self.POINTERS_BEGIN)
|
||||
total_files = len(pointers)
|
||||
@@ -338,9 +348,6 @@ class ToolsTOR(ToolsTales):
|
||||
print("Writing file %05d/%05d..." % (i, total_files))
|
||||
f.close()
|
||||
|
||||
#Copy File 11181
|
||||
shutil.copy( self.dat_archive_extract+"BIN/11181.bin", self.dat_archive_extract+"PAK3/11181.pak3")
|
||||
os.remove( self.dat_archive_extract+"BIN/11181.bin")
|
||||
|
||||
def pack_Main_Archive(self):
|
||||
sectors = [0]
|
||||
@@ -350,7 +357,7 @@ class ToolsTOR(ToolsTales):
|
||||
|
||||
story_file_list = [self.get_file_name(ele) for ele in os.listdir( self.story_XML_patch +"New")]
|
||||
print(story_file_list)
|
||||
output_dat_path = self.datBinNew
|
||||
output_dat_path = self.dat_bin_new
|
||||
with open(output_dat_path, "wb") as output_dat:
|
||||
|
||||
print("Packing files into %s..." % os.path.basename(output_dat_path))
|
||||
@@ -416,10 +423,10 @@ class ToolsTOR(ToolsTales):
|
||||
print("Writing file %05d/%05d..." % (current - dummies, len(file_list)))
|
||||
|
||||
|
||||
shutil.copy( self.elfOriginal, self.elfNew)
|
||||
shutil.copy( self.elf_original, self.elf_new)
|
||||
|
||||
|
||||
with open(self.elfNew, "r+b") as output_elf:
|
||||
with open(self.elf_new, "r+b") as output_elf:
|
||||
output_elf.seek(self.POINTERS_BEGIN)
|
||||
|
||||
for i in range(len(sectors) - 1):
|
||||
@@ -430,9 +437,9 @@ class ToolsTOR(ToolsTales):
|
||||
|
||||
print("Recreating Story files")
|
||||
listFiles = [ele for ele in os.listdir( self.story_XML_patch + "New/")]
|
||||
for scpkFile in listFiles:
|
||||
self.pack_Story_File(scpkFile)
|
||||
print("Writing file {} ...".format(scpkFile))
|
||||
for scpk_file in listFiles:
|
||||
self.pack_Story_File(scpk_file)
|
||||
print("Writing file {} ...".format(scpk_file))
|
||||
|
||||
def insert_All(self):
|
||||
|
||||
|
||||
@@ -48,7 +48,13 @@ class ToolsTales:
|
||||
with open("../{}/Data/{}/Menu/MenuFiles.json".format(repo_name, gameName)) as f:
|
||||
self.menu_files_json = json.load(f)
|
||||
|
||||
|
||||
def generate_xdelta_patch(self, xdelta_name):
|
||||
|
||||
|
||||
print("Create xdelta patch")
|
||||
original_path = "../Data/{}/Disc/Original/{}.iso".format(self.repo_name, self.repo_name)
|
||||
new_path = "../Data/{}/Disc/New/{}.iso".format(self.repo_name, self.repo_name)
|
||||
subprocess.run(["xdelta", "-f", "-s", original_path, new_path, xdelta_name])
|
||||
|
||||
def mkdir(self, d):
|
||||
try: os.mkdir(d)
|
||||
@@ -119,7 +125,7 @@ class ToolsTales:
|
||||
|
||||
def get_pointers(self, start_offset):
|
||||
|
||||
f = open(self.elfOriginal , "rb")
|
||||
f = open(self.elf_original , "rb")
|
||||
|
||||
f.seek(start_offset, 0)
|
||||
pointers = []
|
||||
@@ -818,7 +824,7 @@ class ToolsTales:
|
||||
|
||||
|
||||
if file_path == '':
|
||||
file_path = self.elfOriginal
|
||||
file_path = self.elf_original
|
||||
|
||||
|
||||
f = open(file_path , "rb")
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,146 +0,0 @@
|
||||
//GAME NAME: Tales of Rebirth
|
||||
|
||||
// Define required TABLE variables and load the corresponding tables
|
||||
#VAR(Table_0, TABLE)
|
||||
#ADDTBL("C:\Users\Lauren\Downloads\abcde_Secret_Training\ToR.tbl", Table_0)
|
||||
|
||||
//BLOCK #000 NAME: Button_Bars
|
||||
#ACTIVETBL(Table_0) // Activate this block's starting TABLE
|
||||
|
||||
#JMP($112850, $112A2A) // Jump to insertion point
|
||||
#HDR($-FF000) // Difference between ROM and RAM addresses for pointer value calculations
|
||||
|
||||
//POINTER #0 @ $E6D20 - STRING #0 @ $112A20
|
||||
#W32($E6D20)
|
||||
[Circle_ani] Enter[END]
|
||||
// current address: $112A2B
|
||||
|
||||
//POINTER #1 @ $E6D24 - STRING #1 @ $112A10
|
||||
#W32($E6D24)
|
||||
[Circle_ani] Talk[END]
|
||||
// current address: $112A1B
|
||||
|
||||
//POINTER #2 @ $E6D28 - STRING #2 @ $1129F8
|
||||
#W32($E6D28)
|
||||
[Circle_ani] Leave [TAG_015][END]
|
||||
// current address: $112A0A
|
||||
|
||||
//POINTER #3 @ $E6D2C - STRING #3 @ $1129E8
|
||||
#W32($E6D2C)
|
||||
[Circle_ani] Shop[END]
|
||||
// current address: $1129F7
|
||||
|
||||
//POINTER #4 @ $E6D30 - STRING #4 @ $1129D8
|
||||
#W32($E6D30)
|
||||
[Circle_ani] Inspect[END]
|
||||
// current address: $1129E5
|
||||
|
||||
//POINTER #5 @ $E6D34 - STRING #5 @ $1129C8
|
||||
#W32($E6D34)
|
||||
[Circle_ani] Open[END]
|
||||
// current address: $1129D5
|
||||
|
||||
//POINTER #6 @ $E6D38 - STRING #6 @ $1129B8
|
||||
#W32($E6D38)
|
||||
[Circle_ani] Push[END]
|
||||
// current address: $1129C3
|
||||
|
||||
//POINTER #7 @ $E6D3C - STRING #7 @ $1129A8
|
||||
#W32($E6D3C)
|
||||
[Circle_ani] Pull[END]
|
||||
// current address: $1129B3
|
||||
|
||||
//POINTER #8 @ $E6D40 - STRING #8 @ $112998
|
||||
#W32($E6D40)
|
||||
[Circle_ani] Operate[END]
|
||||
// current address: $1129A3
|
||||
|
||||
//POINTER #9 @ $E6D44 - STRING #9 @ $112988
|
||||
#W32($E6D44)
|
||||
[Circle_ani] Switch[END]
|
||||
// current address: $112997
|
||||
|
||||
//POINTER #10 @ $E6D48 - STRING #10 @ $112978
|
||||
#W32($E6D48)
|
||||
[Circle_ani] Go Up[END]
|
||||
// current address: $112985
|
||||
|
||||
//POINTER #11 @ $E6D4C - STRING #11 @ $112968
|
||||
#W32($E6D4C)
|
||||
[Circle_ani] Go Down[END]
|
||||
// current address: $112975
|
||||
|
||||
//POINTER #12 @ $E6D50 - STRING #12 @ $112958
|
||||
#W32($E6D50)
|
||||
[Circle_ani] Jump[END]
|
||||
// current address: $112967
|
||||
|
||||
//POINTER #13 @ $E6D54 - STRING #13 @ $112948
|
||||
#W32($E6D54)
|
||||
[Circle_ani] Hit[END]
|
||||
// current address: $112955
|
||||
|
||||
//POINTER #14 @ $E6D58 - STRING #14 @ $112938
|
||||
#W32($E6D58)
|
||||
[Circle_ani] Read[END]
|
||||
// current address: $112943
|
||||
|
||||
//POINTER #15 @ $E6D5C - STRING #15 @ $112928
|
||||
#W32($E6D5C)
|
||||
[Circle_ani] Rest[END]
|
||||
// current address: $112933
|
||||
|
||||
//POINTER #16 @ $E6D60 - STRING #16 @ $112918
|
||||
#W32($E6D60)
|
||||
[Circle_ani] Eat[END]
|
||||
// current address: $112925
|
||||
|
||||
//POINTER #17 @ $E6D64 - STRING #17 @ $112908
|
||||
#W32($E6D64)
|
||||
[Circle_ani] Leave[END]
|
||||
// current address: $112913
|
||||
|
||||
//POINTER #18 @ $E6D68 - STRING #18 @ $1128F8
|
||||
#W32($E6D68)
|
||||
[Circle_ani] Move[END]
|
||||
// current address: $112905
|
||||
|
||||
//POINTER #19 @ $E6D6C - STRING #19 @ $1128E8
|
||||
#W32($E6D6C)
|
||||
[Circle_ani] Grab[END]
|
||||
// current address: $1128F5
|
||||
|
||||
//POINTER #20 @ $E6D70 - STRING #20 @ $1128D8
|
||||
#W32($E6D70)
|
||||
[Circle_ani] ???[END]
|
||||
// current address: $1128E5
|
||||
|
||||
//POINTER #21 @ $E6D74 - STRING #21 @ $1128C8
|
||||
#W32($E6D74)
|
||||
[Circle_ani] !!![END]
|
||||
// current address: $1128D5
|
||||
|
||||
//POINTER #22 @ $E6D78 - STRING #22 @ $1128B8
|
||||
#W32($E6D78)
|
||||
[Circle_ani] Save[END]
|
||||
// current address: $1128C5
|
||||
|
||||
//POINTER #23 @ $E6D7C - STRING #23 @ $1128A8
|
||||
#W32($E6D7C)
|
||||
[Circle_ani] Warp[END]
|
||||
// current address: $1128B5
|
||||
|
||||
//POINTER #24 @ $E6D80 - STRING #24 @ $112898
|
||||
#W32($E6D80)
|
||||
[Circle_ani] Next[END]
|
||||
// current address: $1128A3
|
||||
|
||||
//POINTER #25 @ $E6D84 - STRING #25 @ $112868
|
||||
#W32($E6D84)
|
||||
[Up+Down_blink] Select [Circle_ani] Confirm [Cross_ani] Cancel[END]
|
||||
// current address: $112891
|
||||
|
||||
//POINTER #26 @ $E6D88 - STRING #26 @ $112850
|
||||
#W32($E6D88)
|
||||
[Up+Down_blink] Select [Circle_ani] Confirm[END]
|
||||
// current address: $112867
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,336 +0,0 @@
|
||||
//GAME NAME: Tales of Rebirth
|
||||
|
||||
// Define required TABLE variables and load the corresponding tables
|
||||
#VAR(Table_0, TABLE)
|
||||
#ADDTBL("C:\Users\Lauren\Downloads\abcde_Secret_Training\ToR.tbl", Table_0)
|
||||
|
||||
//BLOCK #000 NAME: Names
|
||||
#ACTIVETBL(Table_0) // Activate this block's starting TABLE
|
||||
|
||||
#JMP($127720, $127aa9) // Jump to insertion point
|
||||
#HDR($-FF000) // Difference between ROM and RAM addresses for pointer value calculations
|
||||
|
||||
|
||||
//Text $127AA0
|
||||
#W32($10692C)
|
||||
//フィート[END]
|
||||
Feat [END]
|
||||
// current address: $127AA9
|
||||
|
||||
//Text $127A80
|
||||
#W32($106930)
|
||||
//斬撃攻撃力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Slash ATK.[LINE]
|
||||
[END]
|
||||
// current address: $127A9E
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127A70
|
||||
#W32($106940)
|
||||
//マッスル[END]
|
||||
Muscle [END]
|
||||
// current address: $127A79
|
||||
|
||||
//Text $127A50
|
||||
#W32($106944)
|
||||
//打撃攻撃力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Blow ATK.[LINE]
|
||||
[END]
|
||||
// current address: $127A6E
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127A40
|
||||
#W32($106954)
|
||||
//シールド[END]
|
||||
Shield [END]
|
||||
// current address: $127A49
|
||||
|
||||
//Text $127A20
|
||||
#W32($106958)
|
||||
//斬撃防御力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Slash DEF.[LINE]
|
||||
[END]
|
||||
// current address: $127A3E
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127A10
|
||||
#W32($106968)
|
||||
//プロテクト[END]
|
||||
Protect [END]
|
||||
// current address: $127A1B
|
||||
|
||||
//Text $1279F0
|
||||
#W32($10696C)
|
||||
//打撃防御力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Blow DEF.[LINE]
|
||||
[END]
|
||||
// current address: $127A0E
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $1279E0
|
||||
#W32($10697C)
|
||||
//マインド[END]
|
||||
Mind [END]
|
||||
// current address: $1279E9
|
||||
|
||||
//Text $1279C0
|
||||
#W32($106980)
|
||||
//術攻撃力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Spirit ATK.[LINE]
|
||||
[END]
|
||||
// current address: $1279DC
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $1279B0
|
||||
#W32($106990)
|
||||
//レジスト[END]
|
||||
Resist [END]
|
||||
// current address: $1279B9
|
||||
|
||||
//Text $127990
|
||||
#W32($106994)
|
||||
//術防御力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Spirit DEF.[LINE]
|
||||
[END]
|
||||
// current address: $1279AC
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127988
|
||||
#W32($1069A4)
|
||||
//ヒール[END]
|
||||
Heal [END]
|
||||
// current address: $12798F
|
||||
|
||||
//Text $127968
|
||||
#W32($1069A8)
|
||||
//HP回復力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases HP Regen.[LINE]
|
||||
[END]
|
||||
// current address: $127986
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127958
|
||||
#W32($1069B8)
|
||||
//フォルス[END]
|
||||
Force [END]
|
||||
// current address: $127961
|
||||
|
||||
//Text $127938
|
||||
#W32($1069BC)
|
||||
//FG回復力を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases FG Regen.[LINE]
|
||||
[END]
|
||||
// current address: $127956
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127930
|
||||
#W32($1069CC)
|
||||
//ライフ[END]
|
||||
Life [END]
|
||||
// current address: $127937
|
||||
|
||||
//Text $127910
|
||||
#W32($1069D0)
|
||||
//最大HPを上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Max HP.[LINE]
|
||||
[END]
|
||||
// current address: $12792C
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127900
|
||||
#W32($1069E0)
|
||||
//ネイチャー[END]
|
||||
Nature [END]
|
||||
// current address: $12790B
|
||||
|
||||
//Text $1278D0
|
||||
#W32($1069E4)
|
||||
//通常攻撃によるFG回復量を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases FG regained[LINE]
|
||||
from basic attacks.[END]
|
||||
// current address: $1278FC
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $1278C0
|
||||
#W32($1069F4)
|
||||
//メディカル[END]
|
||||
Medical [END]
|
||||
// current address: $1278CB
|
||||
|
||||
//Text $127898
|
||||
#W32($1069F8)
|
||||
//敵撃破時のHP回復量を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases HP regained[LINE]
|
||||
after defeating an enemy.[END]
|
||||
// current address: $1278C0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127888
|
||||
#W32($106A08)
|
||||
//メンタル[END]
|
||||
Mental [END]
|
||||
// current address: $127891
|
||||
|
||||
//Text $127860
|
||||
#W32($106A0C)
|
||||
//敵撃破時のFG回復量を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases FG regained[LINE]
|
||||
after defeating an enemy.[END]
|
||||
// current address: $127888
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127850
|
||||
#W32($106A1C)
|
||||
//ブレイク[END]
|
||||
Break [END]
|
||||
// current address: $127859
|
||||
|
||||
//Text $127820
|
||||
#W32($106A20)
|
||||
//ガードさせたときに追加でRGを減らす宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases RG reduction[LINE]
|
||||
when attacking guarding enemies.[END]
|
||||
// current address: $12784C
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127810
|
||||
#W32($106A30)
|
||||
//マイティ[END]
|
||||
Mighty [END]
|
||||
// current address: $127819
|
||||
|
||||
//Text $1277E8
|
||||
#W32($106A34)
|
||||
//上昇効果継続時間を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that increases Buff duration.[LINE]
|
||||
[END]
|
||||
// current address: $12780C
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $1277D8
|
||||
#W32($106A44)
|
||||
//リカバー[END]
|
||||
Recover [END]
|
||||
// current address: $1277E1
|
||||
|
||||
//Text $1277B0
|
||||
#W32($106A48)
|
||||
//減少効果継続時間を減少させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that lowers Debuff duration.[LINE]
|
||||
[END]
|
||||
// current address: $1277D4
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $1277A0
|
||||
#W32($106A58)
|
||||
//チャージ[END]
|
||||
Charge [END]
|
||||
// current address: $1277A9
|
||||
|
||||
//Text $127780
|
||||
#W32($106A5C)
|
||||
//チャージ速度を上昇させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that speeds up RG charge.[LINE]
|
||||
// current address: $1277A0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127770
|
||||
#W32($106A6C)
|
||||
//ミスティ[END]
|
||||
Misty [END]
|
||||
// current address: $127779
|
||||
|
||||
//Text $127750
|
||||
#W32($106A70)
|
||||
//詠唱時間を減少させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that lowers casting time.[LINE]
|
||||
[END]
|
||||
// current address: $12776C
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Text $127740
|
||||
#W32($106A80)
|
||||
//ピヨハン[END]
|
||||
Dizzy [END]
|
||||
// current address: $127749
|
||||
|
||||
//Text $127720
|
||||
#W32($106A84)
|
||||
//気絶時間を減少させる宝石。[LINE]
|
||||
//[END]
|
||||
A Gem that lowers dizzy duration.[LINE]
|
||||
[END]
|
||||
// current address: $12773C
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user