コード例 #1
0
ファイル: reinsert.py プロジェクト: 46OkuMen/insiders
    Based on the CRW reinserter.
"""

import os

from rominfo import FILES, FILE_BLOCKS, CONTROL_CODES, UNCOMPRESSED_FILES
from romtools.disk import Disk, Gamefile, Block
from romtools.dump import DumpExcel, PointerExcel
from codec import encode

ORIGINAL_ROM_PATH = os.path.join('original', 'Insiders94.hdm')
TARGET_ROM_PATH = os.path.join('patched', 'Insiders94.hdm')
DUMP_XLS_PATH = 'insiders_dump.xlsx'
POINTER_XLS_PATH = 'insiders_pointers.xlsx'

Dump = DumpExcel(DUMP_XLS_PATH)
PtrDump = PointerExcel(POINTER_XLS_PATH)

OriginalINS = Disk(ORIGINAL_ROM_PATH, dump_excel=Dump, pointer_excel=PtrDump)
TargetINS = Disk(TARGET_ROM_PATH)

FILES_TO_REINSERT = ['IDS', 'ISS']

# TODO: Unsure if there are multiple pointer files, but there is ICS so far
pointer_gamefile_path = os.path.join('original', 'ICS')
pointer_gamefile = Gamefile(pointer_gamefile_path,
                            disk=OriginalINS,
                            dest_disk=TargetINS,
                            pointer_sheet_name='IDS.decompressed')

for filename in FILES_TO_REINSERT:
コード例 #2
0
"""
    Dante98-II reinserter.
    Based on the CRW reinserter base.
"""

import os

from rominfo import FILE_BLOCKS, ORIGINAL_ROM_PATH, TARGET_ROM_PATH
from romtools.disk import Disk, Gamefile, Block
from romtools.dump import DumpExcel, PointerExcel

DUMP_XLS_PATH = 'dante98-II_dump.xlsx'
POINTER_XLS_PATH = 'dante98-II_pointer_dump.xlsx'

Dump = DumpExcel(DUMP_XLS_PATH)
PtrDump = PointerExcel(POINTER_XLS_PATH)
OriginalDante = Disk(ORIGINAL_ROM_PATH, dump_excel=Dump, pointer_excel=PtrDump)
TargetDante = Disk(TARGET_ROM_PATH)

#FILES_TO_REINSERT = ['EDENEMY.EXE', ]
FILES_TO_REINSERT = ['EDENEMY.EXE', 'EDPLAYER.EXE', 'EDWORD.EXE',
                     'EDMAGIC.EXE', 'EDITEM.EXE', 'EDMAP.EXE',
                     'EDCHIP.EXE', 'EDCONV.EXE',  'EDPACK.EXE',
                     'EDUSAGE.EXE',
                     'ENEMY.DAT', 'MAPNAME.DAT', 'PLAYER.DAT', 'WORD.DAT']

for filename in FILES_TO_REINSERT:
    if filename.endswith('.DAT'):
        path_in_disk = "DANTE2\\DAT_RPG"
        gamefile_path = os.path.join('original', 'DANTE2', 'DAT_RPG', filename)
        pointers = []
コード例 #3
0
    Based on the CRW reinserter base.
"""

import os
from shutil import copyfile

from rominfo import SEGMENTS, ORIGINAL_DATA_TRACK, ImgSegment, SjisSegment, PointerSegment, CodeSegment
from rominfo import MERGED_STRINGS
from asm import EDITS
from romtools.dump import DumpExcel, SegmentPointer

MAPPING_MODE = True

DUMP_XLS_PATH = 'LA_Text.xlsx'

Dump = DumpExcel(DUMP_XLS_PATH)

copyfile('original/LA7.iso', 'patched/LA7.iso')

STRING_COUNT = 0
TRANSLATED_STRING_COUNT = 0

# Stuff to always include
EDITED_IMG_SEGMENTS = [
    ImgSegment(0x4a41b20, 0x4a42000, 'FontBlue-00-3f'),
    ImgSegment(0x4a42000, 0x4a42800, 'FontBlue-40-7f'),
    #ImgSegment(0x4a43000, 0x4a43800, 'FontBlue-c0-ff'),
    ImgSegment(0x4a43b20, 0x4a44000, 'FontBlack-00-3f'),
    ImgSegment(0x4a44000, 0x4a44800, 'FontBlack-40-7f'),
    ImgSegment(0x4a45000, 0x4a45800, 'FontBlack-c0-ff'),
]
コード例 #4
0
garbage_pointer_values = [
    0x0, 0xff, 0x8, 0x4, 0x200, 0x400, 0x800, 0xd00, 0x900, 0x1, 0x2, 0x3
]


def find_all(a_str, sub):
    start = 0
    while True:
        start = a_str.find(sub, start)
        if start == -1: return
        yield start
        start += len(sub)  # use start += 1 to find overlapping matches


DUMP_XLS_PATH = 'appareden_sys_dump.xlsx'
Dump = DumpExcel(DUMP_XLS_PATH)

#MSG_DUMP_XLSX_PATH = 'appareden_msg_dump.xlsx'
#MsgDump = DumpExcel(MSG_DUMP_XLSX_PATH)

OriginalAp = Disk(SRC_DISK, dump_excel=Dump)
OriginalCdAp = Disk(CD_SRC_DISK, dump_excel=Dump)

#files_to_search = ['ORFIELD.EXE', 'ORBTL.EXE', 'ORTITLE.EXE']

# TODO: Add ORITTLE back in once I've mapped the CD version.
files_to_search = ['ORFIELD.EXE', 'ORBTL.EXE', 'ORTITLE.EXE']

problem_count = 0

try:
コード例 #5
0
"""
    Text typesetter for Appareden.
    Truncates ORFIELD text that exceeds limits.
"""
from appareden.rominfo import WAITS, MSGS
from appareden.rominfo import DUMP_XLS_PATH, MAX_LENGTH
from appareden.utils import typeset, sjis_punctuate, WAITS, NAMES
#from appareden.reinsert import MSGS

from romtools.dump import DumpExcel
from openpyxl.styles import PatternFill

Dump = DumpExcel(DUMP_XLS_PATH)

filenames = ['ORFIELD.EXE', 'ORBTL.EXE']


def safe_print(s):
    if '\u014d' in s:
        s = s.replace('\u014d', '[o]')
    if '\u016b' in s:
        s = s.replace('\u016b', '[u]')
    print(s)


def starts_with_nametag(s):
    for n in NAMES:
        if s.split('[LN]')[0] == n:
            if s.split('[LN]')[1] != '':
                return True
    return False
コード例 #6
0
ファイル: reinsert.py プロジェクト: hollowaytape/kuro-no-ken
"""
    Kuro no Ken reinserter.
"""

import os
from shutil import copyfile
from romtools.disk import Disk, Gamefile, Block
from romtools.dump import DumpExcel, PointerExcel
from rominfo import SRC_DISK, DEST_DISK, FILES, FILES_TO_REINSERT, COMPRESSED_FILES_TO_EDIT, ARCHIVES_TO_REINSERT
from rominfo import FILE_BLOCKS, LENGTH_SENSITIVE_BLOCKS, NAMES
from rominfo import DUMP_XLS_PATH, POINTER_XLS_PATH, POINTERS_TO_REASSIGN, CONTROL_CODES

from asm import BYTE_EDITS
from fa1 import repack, unpack

Dump = DumpExcel(DUMP_XLS_PATH)
PtrDump = PointerExcel(POINTER_XLS_PATH)


def typeset(s):
    if s in NAMES:
        return s

    words = s.split(b' ')
    #print(words)
    lines = []
    this_line = b'  '
    while words:
        if (len(this_line) + len(words[0]) + 1) > 48:
            this_line = this_line.rstrip()
            lines.append(this_line)