■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50 [PR]ぜろちゃんねるプラス[PR]  
レス数が950を超えています。1000を超えると表示できなくなるよ。

FF7をファミコンに移植させた職人は神認定 Part7.5

681 :名前が無い@ただの名無しのようだ:2010/02/21(日) 18:21:49 ID:AjCoGi4h0
なんで何もしない人間が、知識も技術もある人間を追い出そうとしてるんだ?
知識を持った人間からの否定的意見を排除するんじゃ、むしろ可能性を閉ざすだけだぞ。

>>642
サンクス。圧縮方法は1と同じだね。
フィールドマップの格納方法も同じっぽい。

お礼と言うわけではないが、フィールドマップ展開方法の解説。
このスペースでの解説は難しいのでかなり箇条書きだけど。
(オフセットはすべてヘッダなしでの計算)
$D000 からインデックスデータ(フィールド1列ごとに2バイト)
下位バイトはそのままアドレスの下位バイト
上位バイトは、bank = ((data + $10) >> 5) + $06
addr(hi) = ((data + $10) & $1F) | $80
浮遊大陸の最初の列ならデータが 00 08 なので、bank=$06 addr=$9800
(ROMファイル内のオフセットは、bank * $2000 + (addr - $8000) で求められるはず)
データは最上位ビットが0ならそのまま1バイト出力し、
最上位ビットが1なら次の1バイトを個数 ($00なら256個) として、(data & $3F) を出力。
個数が256になったら1列分が終了。
最初の列なら、E4 00 なので、$64 が256個。
次の列は E4 0F E5 5F E4 92 なので、$64*15個、$65*95個、$64*146個。

少なくとも浮遊大陸は全列ぴったり256個の出力になったのでこれでいけるはず。
例として、$E01F の $79 を他の数字に変えると、ウルの町の右下が違うマップチップになる。

266KB
続きを読む

名前: E-mail(省略可)
READ.CGI - 0ch+ BBS 0.7.4 20131106
ぜろちゃんねるプラス