今日はMUGENのSFFファイル解析に丸一日を費やしました。 やったことはGitHubに上げるほどでもないけど残したい。 たまには「はてな民」らしくブログにコード貼り付けで。
import java.io.File; import java.io.BufferedInputStream; import java.io.RandomAccessFile; import java.io.FileInputStream; import java.io.IOException; class FileDump { public static void main(String args[]) throws IOException { String inputFile = "billyrb2.sff"; RandomAccessFile bis = new RandomAccessFile(new File(inputFile),"r"); int code; int i = 0; byte h[] = new byte[512]; byte s[] = new byte[32]; int seek = 0; bis.read(h); int next_subfile = Integer.decode(String.format("0x%02x%02x%02x%02x",h[27],h[26],h[25],h[24])); for(int n=0; n<512;n++){ System.out.print(Integer.toHexString(h[n])); } System.out.print("\n"); System.out.print(String.format("0x%02x%02x%02x%02x",h[27],h[26],h[25],h[24])); System.out.print(Integer.toHexString(next_subfile)); System.out.print("\n"); int prev_subfile = 0; while (prev_subfile != next_subfile) { bis.seek(next_subfile); bis.read(s); prev_subfile = next_subfile; System.out.print(Integer.toHexString(i++)); System.out.print("\n"); next_subfile = Integer.decode(String.format("0x%02x%02x%02x%02x",s[3],s[2],s[1],s[0])); System.out.print(String.format("0x%02x%02x%02x%02x",s[3],s[2],s[1],s[0])); System.out.print(Integer.toHexString(next_subfile)); System.out.print("\n"); } bis.close(); } }
今日のカプエス2はブロッキングのPで草薙京・八神庵・ロレントでゴッドルガールで1回コンティニュー。 たまに負けることあるから、新鮮味が戻って面白いんですよね。もっとカッコイイムーヴで戦いたい。 MUGENのチームはストZEROリュウ・初侍ガルフォード・リアルバウトビリーです。