• R/O
  • SSH
  • HTTPS

unagi: コミット


コミットメタ情報

リビジョン228 (tree)
日時2008-12-30 08:54:56
作者(del#36800)

ログメッセージ

rom script 0.36.0 release

変更サマリ

差分

--- script_rom/tag/0.36.0/syntax.txt (revision 0)
+++ script_rom/tag/0.36.0/syntax.txt (revision 228)
@@ -0,0 +1,168 @@
1+unagi script syntax 0.5.2
2+
3+--スクリプト仕様--
4+==概要==
5+テキストファイルで15程度の命令を組み合わせたものです。命令は上から下へ
6+順番に実行しますが、ごく簡素なループを設定することが出来ます。
7+行数制限は 256 です。
8+
9+==定数の表記方法==
10+数字の頭に下記の記号をいれると各進数を使うことが出来ます。
11+0b, %: 2進数
12+0x, $: 16進数
13+(なし): 10進数
14+
15+10進数字の末尾に文字をいれると下記の扱いになります。
16+M: 値 * 0x20000
17+
18+==変数の表記方法==
19+一部の命令の引数として変数を使うことが出来ます。変数の有効範囲は
20+STEP_START から STEP_END のループ内部で、ループを抜けると使えません。
21+変数名は単語の先頭1文字だけで識別しています。
22+
23+==変数と演算子の使い方==
24+変数展開は実装が非常に複雑なので、制限が多く、単純なものになってしまい
25+ました。実装できる人はぜひ拡張をしてください。
26+変数は下記のように1つか3つの単語で記載します。3つの場合は必ずスペース
27+をはさんでください。
28+
29+[ex0] [ex1] [ex2]
30+ex0, ex2 - 定数か変数
31+ex1 - 演算子, 下記が使用できます
32+
33++ 算術加算
34+>> 論理右シフト
35+<< 論理左シフト
36+& AND, 論理積
37+| OR, 論理和
38+^ XOR, 排他的論理和
39+
40+シフトで指定ビットのみ出したいという要望があるかもしれないのですが、問
41+題となる MMC1 はマッパ側でビット0だけ読んでいるのでなしにしました。必
42+要がありましたらお問い合わせください。
43+
44+==行頭空白について==
45+行頭の空白とタブは無視しますので、ループのネストに使ってください。
46+
47+==エラーチェック==
48+各種入力文字の妥当性判断と、ROM/RAM イメージサイズと設定値と命令での読
49+み込みサイズを比較します。
50+
51+--スクリプト命令リファレンス--
52+モードによって使用可能な命令が異なります。
53+d: ROM DUMP MODE
54+r: RAM READ MODE
55+w: RAM WRITE MODE
56+f: flashmemory/SRAM PROGRAM MODE
57+
58+------------------------------
59+(改行のみ)
60+mode: 全て
61+なにも行いません。
62+
63+------------------------------
64+#
65+mode: 全て
66+コメント扱いでなにも行いません。
67+
68+------------------------------
69+MAPPER [num]
70+mode: df
71+NES ヘッダのマッパ番号を記載します。
72+
73+------------------------------
74+MIRROR [HVA]
75+mode: d
76+スクロール方式を指定します。指定しない場合は H とみなしますが、初期の
77+マッパ(nrom, unrom など)を除いてこの項目は指定する必要がありません。
78+
79+------------------------------
80+CPU_ROMSIZE [bytesize]
81+mode: df
82+プログラムROMイメージの容量をバイト単位で記載します。
83+値は最大値にしても構いませんが、読み込み時間がかかります。
84+0x4000 未満を指定すると NES ヘッダをつけません。
85+
86+------------------------------
87+CPU_RAMSIZE [bytesize]
88+mode: rw
89+バックアップRAMイメージの容量をバイト単位で記載します。
90+
91+------------------------------
92+PPU_ROMSIZE [bytesize]
93+mode: df
94+キャラクタROMイメージの容量をバイト単位で記載します。指定しない場合は
95+キャラクタRAMとみなします。
96+
97+------------------------------
98+DUMP_START
99+mode: 全て
100+上記の設定が完了したと明示します。この後に上記の命令を使用するとエラー
101+になります。
102+
103+------------------------------
104+CPU_READ [address] [length]
105+mode: d
106+CPUアドレスから指定の長さのデータを読み込みます。定数のみ。
107+address 有効範囲は 0x8000-0xffff.
108+length 有効範囲は 1-0x4000.
109+
110+------------------------------
111+CPU_WRITE [address] [ex0] [ex1] [ex2]
112+mode: 全て
113+CPUアドレスに ex012 を計算したデータを書き込みます。ex0 のみでも可。
114+address 有効範囲は 0x5000-0xffff.
115+
116+------------------------------
117+CPU_RAMRW [address] [length]
118+mode: rw
119+コマンドラインのモードによって異なります。
120+RAM DUMP: CPUアドレスから指定の長さのデータを読み込みます。定数のみ。
121+RAM WRITE: target file を読み込み、指定アドレスへデータを書き込みます。
122+ 書き込み完了後、同じエリアを読み込み、確認結果を表示します。
123+address 有効範囲は 0x6000-0x7fff.
124+length 有効範囲は 1-0x2000.
125+
126+------------------------------
127+PPU_RAMFIND
128+PPU_RAMTEST (旧称, client 0.5.3 で廃止します)
129+mode: d
130+mmc1/3 のようにソフトによってキャラクタのメモリが RAM か ROM か異なる
131+場合に使用します。PPU メモリ領域に書き込みを行い、書き込みが成功した場
132+合は以後の命令を中断します。CPU メモリ領域の読み込みが完了した後に使用
133+します。
134+
135+------------------------------
136+PPU_READ [address] [length]
137+mode: d
138+PPUアドレスから指定の長さのデータを読み込みます。定数のみ。
139+address 有効範囲は 0x0000-0x1fff.
140+length 有効範囲は 0-0x2000.
141+length 0 時は実際にはアクセスしますが、バッファに保存されません。
142+mmc2/4 の制御にのみ必要。
143+
144+------------------------------
145+STEP_START [name] [start] [end] [next]
146+mode: 全て
147+ループの開始と変数宣言を行います。ループは C でいうところの
148+for(name = start; name < end; name += next) と同じ物です。引数の制限が
149+多いので無限ループが起きないはずです。
150+name - 変数名, 重複不可。
151+start - 変数初期値, 0 から 0xff まで。
152+end - ループ脱出条件, 1 から 0x100 まで, 条件は < です。<= ではあり
153+ ません。
154+next - ループ加算値, 1 から 0x100 まで。
155+
156+必要性と簡素化のためループは2つまでです。問題がありましたらお問い合わ
157+せください。
158+
159+------------------------------
160+STEP_END
161+mode: 全て
162+ループの変数更新とループ分岐を行います。ループが終わった場合は変数を破
163+棄します。
164+
165+------------------------------
166+DUMP_END
167+mode: 全て
168+スクリプトの終了を明示します。それ以降の命令を読み込みません。
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
--- script_rom/tag/0.36.0/readme.txt (revision 0)
+++ script_rom/tag/0.36.0/readme.txt (revision 228)
@@ -0,0 +1,160 @@
1+famicom ROM cartridge utility - unagi
2+ROM dump script version 0.36.0
3+公式サイト http://unagi.sourceforge.jp/
4+
5+--スクリプトファイルと nes header マッパ番号一覧--
6+==Nintendo 製とその互換品==
7+script #
8+----------------
9+nrom.ud 0
10+cnrom.ud 3
11+unrom.ud 2
12+uorom.ud 2
13+gnrom.ud 66
14+mmc1normal.ud 1
15+mmc1_4M.ud 1
16+mmc2.ud 9
17+mmc3.ud 4,118,etc..
18+mmc4.ud 10
19+mmc5.ud 5
20+
21+==Konami 製とその互換品==
22+注意: VRC2,4 はマッパ番号があまり役に立ちません。
23+script #
24+----------------
25+rc809.ud 87
26+vrc1.ud 75
27+vrc2a01.ud 23
28+vrc2a10.ud 22
29+vrc3.ud 73
30+vrc4a.ud 21
31+vrc4b.ud 25
32+vrc4c.ud 21
33+vrc4d.ud 25
34+vrc4e.ud 23
35+vrc6.ud 24,26
36+vrc7.ud 85
37+
38+==Sunsoft 製== ==Taito 製== ==Irem 製==
39+script # script # script #
40+---------------- ---------------- ----------------
41+sunsoft2b.ud 89 x1_005.ud 80 irem_g101.ud 32
42+sunsoft3.ud 67 x1_017.ud 82
43+sunsoft5b.ud 69 tc0190.ud 33
44+
45+==Namcot 製== ==Bandai 製==
46+script # script #
47+---------------- ----------------
48+namcot118.ud 88 bandai_70.ud 70
49+namcot163.ud 19 fcg1.ud 16
50+ lz93d50.ud 16
51+
52+--補足説明--
53+補足説明にて必要動作未確認と記載したもので動作確認がとれたものは是非報
54+告をお願いします。
55+
56+特定のソフトは個別にコマンドラインオプションをつける必要があります。
57+この場合下記の要素を追加してください。
58+ unagi.exe d [スクリプトファイル] [出力ファイル] [flag] [mapper]
59+mapper の部分はなくてもよい場合が多いです。
60+
61+==diskbios.ud==
62+disksystem の bios 専用です。このスクリプトは、NESヘッダを生成しません。
63+
64+==unrom.ud, uorom.ud==
65+mapper:2 のうち下記のソフトは uorom.ud を使用してください。
66+ エスパ冒険隊
67+ マニアックマンション
68+ 松本亨の株式必勝学
69+ 桃太郎電鉄 (初代)
70+ 星霊狩り
71+全て uorom.ud でもいいんですが、読みだし時間が2倍かかります。
72+
73+==mmc1_4M.ud==
74+大容量ROM搭載のファイナルファンタジーI.IIとドラゴンクエストIV専用です。
75+
76+==mmc1normal.ud==
77+上記以外の MMC1 搭載ソフトに使用してください。
78+
79+==mmc3.ud==
80+flag:S mapper:118
81+ ワンダラーズフロムイース
82+ RPG 人生ゲーム
83+flag:_ mapper:118
84+ アルマジロ
85+
86+==namcot163.ud==
87+ワギャンランド2,3 以外はミラーリングを設定する必要があるようです。
88+flag:SV
89+ ファミリーサーキット'91
90+
91+==fcg1.ud, lz93d50.ud==
92+mapper 16 同士ですが、ソフトによってどちらか1つが使えます。詳細な調査
93+はしていませんが、バックアップRAMが載っていたり、1990年以降のソフトは
94+lz93d50.ud を使用した方がよいようです。
95+
96+==sunsoft3.ud==
97+コメントにも書いたんですが、スクリプトを書き終わった後にこのマッパのカ
98+セットを持ってないことに気づきました。動作未確認です。
99+
100+--Konami VRC series--
101+マッパ番号はあてになりません。ゲームタイトルと一致するスクリプトを使用
102+してください。vrc シリーズを採用していないものは無関係です。
103+
104+vrc1.ud:
105+ がんばれゴエモン!からくり道中
106+ キングコング2 怒りのメガトンパンチ
107+ エキサイティングボクシング
108+ 鉄腕アトム
109+vrc2a01.ud:
110+ コナミ ワイワイワールド
111+ 月風魔伝
112+ ドラゴンスクロール 甦りし魔竜
113+ 魂斗羅 (注:初代)
114+ じゃりん子チエ
115+ がんばれゴエモン2
116+vrc2a10.ud:
117+ がんばれペナントレース
118+ ツインビー3 ポコポコ大魔王
119+vrc3.ud:
120+ 沙羅曼蛇
121+vrc4a.ud:
122+ ワイワイワールド2 SOS!!パセリ城
123+vrc4b.ud:
124+ バイオミラクル ぼくってウパ (注:ROM)
125+ がんばれゴエモン外伝 消えた黄金キセル (本当は VRC2)
126+ グラディウスII
127+ レーサーミニ四駆 ジャパンカップ
128+vrc4c.ud:
129+ がんばれゴエモン外伝2 天下の財宝
130+vrc4d.ud:
131+ Teenage Mutant Ninja Turtles
132+ Teenage Mutant Ninja Turtles 2
133+vrc4e.ud:
134+ パロディウスだ!
135+ 悪魔城すぺしゃる ぼくドラキュラくん
136+ クライシスフォース
137+ タイニートゥーン・アドベンチャーズ (注:初代)
138+vrc6.ud:
139+ 悪魔城伝説
140+vrc6.ud: flag:S mapper:26
141+ 魍魎戦記 MADARA
142+ エスパードリーム2
143+vrc7.ud:
144+ ラグランジュポイント
145+ タイニートゥーン・アドベンチャーズ2
146+
147+--スクリプト募集--
148+150くらいあるマッパのスクリプトを全て私だけで書くことは出来ません。手
149+軽にスクリプトを追加することが出来るので、スクリプトが書けた人は公式サ
150+イトまで連絡をください。
151+採用基準は下記とさせていただきます。
152+
153+* そのスクリプトを使って実際に動作確認をして読み出せたこと(とかいって
154+ おきながら sunsoft3.ud は動作未確認...)
155+* 動作確認をしたソフト数本の名称か型番をスクリプト先頭にコメントをいれ
156+ ること
157+* 読み出しに必要なレジスタは初期化してから読み出すこと (マッパのマイ
158+ ナーバージョンによって電源投入後の初期値が異なる場合があるので必ず
159+ 行ってください)
160+
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
旧リポジトリブラウザで表示