dmemHack.perl 1.09 KB
#! /usr/sbin/perl
#----------------------------------------------------------------------#
#	Copyright (C) 1997, Nintendo.
#	
#	File		dmemHack.perl
#	Coded    by	Yoshitaka Yasumoto.	Oct  3, 1997.
#	Modified by	
#	
#	$Id: dmemHack.perl,v 1.1.1.1 2002/05/02 03:29:12 blythe Exp $
#----------------------------------------------------------------------#
#
# Usage:
#
#    perl dmemHack.perl [label] [ucode] > outfile
#
# Function:
#      ucode.dbg から label を探し, ucode.dat の先頭から
#      label バイト分のデータを標準出力へ出力する.
#

# ファイルのオープン
open(DMEM_FILE, "$ARGV[1].dat") || die "Cannot open $ARGV[1].dat\n";
open(DBG_FILE,  "$ARGV[1].dbg") || die "Cannot open $ARGV[1].dbg\n";

# ラベルのサーチ
$dmem_size = -1;
while (<DBG_FILE>){
    /^$ARGV[0] (\S*)/ && ($dmem_size  = unpack("N",pack("H*", $1)));
}
# ラベルが見つからないなら終了
($dmem_size != -1) || die "Not found label $ARGV[0]\n";

# ファイルの先頭から dmem_size 分読み込む
read(DMEM_FILE, $buf, $dmem_size) == $dmem_size 
    || die "Too short file $ARGV[1]\n";

# 標準出力へ書き出す
print $buf;

#======== End of dmemHack.perl ========