#13 武蔵を探して...旅に出た。(2006-01/29その2)
#13 武蔵を探して...旅に出た。(2006-01/29その2)MAMEオフィシャルには、わたしの様な過去を知らない若造の為に(?) (2005-12からネット始めたんです。それ以前は、まだらにしか判らない) ttp://www.mame.net/oldmame.html 1997~2003年までのMAMEの(主要な)ソースがDL出来る。 素敵なページがある。 取り敢えず、~2001年位までのソースはDLしてCDに焼いたが気力が尽きた。 これは後で絶対に役に立つだろう。(著作権法上、問題ありません)
さて、MUSASI殿。まずはジャブ。 2000-03-21 MAME0.36(正式リリース版)mame036s.zip, 3971 kB MAME0.36は、 (C)1999 MUSASI 2.1 (C)1998-99 MAKE68k 0.18 くうっ。こんな攻撃では歯がたたん。このVerのmake68kは、 80x86アセンブラコアしか吐けないようだ。(Cのコアを生成できない) PSPのアッセンブラがバリバリ判る程、年季が入ってれば、 これでいいのかも知れないが、管理人には意味不明。
  | 
さて、次の攻撃は...、 う~ん過去へ行った方がいいのか?それとも未来か? くぅ... ぢゃあ。 1999-07-04 MAME0.35(バグ有り版) mame035s.zip, 3113 kB 1999-07-05 (↑のバグ抜きパッチ) mame035s_fix.zip, 66 kB (注:バグは今回全く関係ない部分でした。MSDOSとか...) MAME0.35は、 (C)1999 MUSASI 2.0A (C)1998-99 MAKE68k 0.16
おぉ。ここには、Cのコアを吐く「m68kmake.c」があるぞ! main()から読んでって、如何(イカ)にも怪しい generate_funcs(略)を 辿ってみると...
アドレッシングモード別に処理を分けている部分の一部
if(ea & 0x200) /* AI */ { /* print new function name */ fprintf(output_file, "void %s_ai%s(void)\n", name, insert); /* print up to ea line */ for(i=1;i<ea_line;i++) fprintf(output_file, "%s", strstr(func_lines[i], "USE_CLKS") == NULL ? func_lines[i] : replace_clk_string(func_lines[i], "USE_CLKS", get_clk_add(func_num, 0x10))); /* print new ea mode */ if(strstr(func_lines[ea_line], "uint ea") != NULL) fprintf(output_file, "%suint ea = EA_AI;\n", ea_spaces); else fprintf(output_file, "%s", modify_ea_string(func_lines[ea_line], "EA_AI")); /* print rest of function */ for(i=ea_line+1;i<num_lines;i++) fprintf(output_file, "%s", strstr(func_lines[i], "USE_CLKS") == NULL ? func_lines[i] : replace_clk_string(func_lines[i], "USE_CLKS", get_clk_add(func_num, 0x10))); /* print 2 newlines */ fprintf(output_file, "\n\n"); }
はい、ありましたね。問題のクロックです。後は68Kの正しいクロックを調べて、 (もちろん最新)MUSASI3.3のmake68kを Cのコア生成時にクロックを、吐かせる様に改造するだけです。
言うのは、簡単ですけど、やるのは大変です。 作業量、多そうです。 とにかく絶対にエンバグしては駄目ですから、 単純に作業をするのではなく。 「作業計画」を考え出さなくては、いけません。 もう少し、MUSASIのmake68kの構造 (プログラムの構造や実装ではなくて、論理的な全体構造) を研究する必要があります。
まあ、こんなに慎重に進めなくても単にアドレッシングモード別に、 クロック追加してけば、(ほんの10ヶ所ぐらいの作業で) 大体OKなんですが、 それだと矛盾点が出てきてしまうかもしれない。
うーん。案ずるより、産むが易しかな?
MAMEオフィシャルには、わたしの様な過去を知らない若造の為に(?)
(2005-12からネット始めたんです。それ以前は、まだらにしか判らない)
ttp://www.mame.net/oldmame.html
1997~2003年までのMAMEの(主要な)ソースがDL出来る。
素敵なページがある。
取り敢えず、~2001年位までのソースはDLしてCDに焼いたが気力が尽きた。
これは後で絶対に役に立つだろう。(著作権法上、問題ありません)