High Level Challenge !
過去のゲストブック(2002年7月)
Guest book
ゲストブックに書き込む


通りすがり(4) - 02/07/11 00:40:38

コメント:
スターフォースを逆アセして解析すると、たぶんカシオン さんが喜びます。(ぉ



通りすがり(3) - 02/07/10 23:35:48

コメント:
ドラクエ ハ チカ゛ウヨ



魂太郎@フムフム φ(。。) - 02/07/09 00:17:04

コメント:
色々と意見有り難う御座います!
まず

 ▲カシオンさん▼
>通りすがり(1)さん、情報どうもです。 通りすがり(2)さんや、(3)さんとかもお待ちしてます(^-^)
 …コピーロボットみたいです…(笑)。

>そのうち必ず役に立つ情報になると思うので、頑張ってください。
 了解です!ヒマある限り頑張ってみます!く(^^)

 ▲通りすがり(2)さん▼
 これまた情報有り難う御座います!!m(_ _)m
>慣れないうちは、マッパーの無い初期のカセットから逆汗解析した方が
>楽だと思います。(マッパー番号0)
 『急がば回れ』ですね!まぁ確かに今のコードにナニが書いてあるのか
ワカラナイ以上、慣れる為にも簡単なR@Mから解析するのが早いですね。
となると、スーマリか…ドラクエですかね…情報たくさんありそうですし…。

>db (define byte)
 …また不安材料が増えましたデス…。(T_T)
逆アセして出たコードが必ずしも万能…と言う事では無い訳ですね…。

>(C言語でいうと const char みたいなもの
 ちなみにC言語もやった事がナイです…。(汁)

 ▼通りすがり(1)さん▲
 どうもです!
>ここの数字の先頭についている0xってのは16進数表記のことです。
>あと、ROMから0x2000区切ってのは0x2000 *byte* 区切です。
 と言う事は…1FFFを10進数に直すと8191…。
2000Byteって事はコレを10進数に直すと8192…。
…つまり、抽出したコード表では1つだけか書かれない命令が出る…
と言う事で宜しいのでしょうか??('^^;)
たかが命令1つ、されど命令1つって所でしょうか…('^^;)。

>最初はマッパーがない(mapper#0)からやったほうが楽だと思います。
 やっぱりそうでしょうか…。('^^;)
う〜ん、解析目的はタダのゲーム攻略なんですけど、
とりあえず他の攻略をするみたいにやってみようと思います('^^;)。

 皆様、色々とご意見有り難う御座います。m(_ _)m



通りすがり(1) - 02/07/08 14:27:40

コメント:
>魂太郎さん
言葉足らずだったようで。
>CPUアドレス0x8000-0x9FFF : ROMから0x2000区切りでどれかをマッピング
ここの数字の先頭についている0xってのは16進数表記のことです。
あと、ROMから0x2000区切ってのは0x2000 *byte* 区切です。

ファミコンに使われてる命令はは1〜3バイトの可変長命令なので、
気を付けてください。

あと、通りすがりさんが言うように最初はマッパーがない(mapper#0)からやったほうが楽だと思います。
私もその辺からはじめてステップアップしていったんで。



通りすがり(2) - 02/07/07 17:01:39

コメント:
自分も「レジスタ」って何?のような状態から始めました。


慣れないうちは、マッパーの無い初期のカセットから逆汗解析した方が楽だと思います。(マッパー番号0)


db (define byte) というのは、「1バイトの定数や変数の領域を確保せよ」ということをアセンブラに
知らせる擬似命令ってやつです。
6502では定数データを定義する為のものと考えてください。
機械語の中に定数が紛れ込んでいることが頻繁にあるわけです。
(C言語でいうと const char みたいなもの


逆アセンブルででてくるdbは
md6502がdbと判断して出力してくるのですが、それが常に適切とは限りません。
本来dbとすべき所を、なんらかの命令として出力してくることもあるので。



魂太郎@regamer - 02/07/07 03:57:48

コメント:
 ▼通りすがり(1)さん▲
アセンブラの経験は0です…7月入ってから始めた者なんで('^^;)。
とりあえずフツーのアセンブラ本など読んで何となく理解しつつ、
専門用語に苦労しながら逆アセしたコード見てます。
…が、『木を見て森見えず』でありまして、カシオンさんから頂いた
「命令・レジスタ・フラグ・アドレッシングの表」やすずめ愛好会さん所の
資料を(勝手に)DLして見ていますので、お陰様で各命令等は解るんですが…。('^^;)

 NESのヘッダは理解出来ました!が…よくよく考えたらmd6502でPRGだけを
逆アセしてるのでヘッダは入らないハズ…と思いました('^^;)。
と言う事は…各バンクを表す番号か何かかな?しかし抽出したPRGのコードの
頭のdb内の番号は(4つとも)全部同じなんですよね…一体なんなんだろう…。
  <各アセンブラコードの最初のdb

>ROMから0x2000区切りでどれかをマッピング
 う〜ん、コレがよくワカリマセンでした。
その32KBのPRGから逆アセンブラしたコードに入ってる$8000〜$FFFFの中に、
本来は2000個(10進数)の2byteのPRGDataが入ってる計算になるんですよね…。
2000個(10進数)がキチっとしたそのPRGDATAで、残りの6000個(10進数)のは…
と言う意味なのでしょうか?('^^;)
 まぁ、あんまり見ても解らないかもシレマセンが、namco106マッパーを
DLして見てみますです。('^^;)

>jmpなどのターゲットアドレスはCPUアドレスを常に指しています。
 と言う事は、コレはR@Mの中身確認ですか…バイナリを開いて、命令表の
コード(lda #$○○ならA9とか)と照らし合わせて見る…と言う事ですね。解りました!!

>カシオンさんはあんまり6502に詳しくないようなんで…
 いや、オイラよりは詳しいハズですので…('^^;)。

どうもコメントを有り難う御座いました!!m(_ _)m
アホウながら更に精進してみたいと思います。('^^;)ゞ



カシオン - 02/07/07 00:38:54

コメント:
通りすがり(1)さん、情報どうもです。
通りすがり(2)さんや、(3)さんとかもお待ちしてます(^-^)

ってか、絶対通りすがりさんじゃないよ(w

ええと、魂太郎さん、すぐには分からない可能性も大きいですが
そのうち必ず役に立つ情報になると思うので、頑張ってください。



通りすがり(1) - 02/07/06 16:26:29

コメント:
>魂太郎さん
通りすがりのものですが、いくらか助言できそうなのでコメントさせていただきます。

6502のアーキテクチャに関しては、nesdev.parodius.comにある
6502 Microprocessor infoってのが参考になりました。
マッパー関連に関してはComprehensive NES Mapper Document ってのです。
その他にも知識としてnestech.txt(Googleですぐ出た)とか、
すずめ愛好会の資料を読むといいかと思います。
他のアセンブラに触ったことがないとかだと、かなりきついかもしれません。

ご存知かもしれませんが、NESファイルの先頭には0x10byteのヘッダが存在して、
本来のカセットには存在しないものなので、そこも含めてディスアセンブルすると
オフセットが0x10バイトずつずれてしまいます。
気を付けて下さい。

また、Namcot106マッパーのものは
CPUアドレス0x8000-0x9FFF : ROMから0x2000区切りでどれかをマッピング
CPUアドレス0xA000-0xBFFF : ROMから0x2000区切りでどれかをマッピング
CPUアドレス0xC000-0xDFFF : ROMから0x2000区切りでどれかをマッピング
CPUアドレス0xE000-0xFFFF : ROMの最後の0x2000バイトが常にマッピング
というかんじになっています。
jmpなどのターゲットアドレスはCPUアドレスを常に指しています。
同じターゲットアドレスでもどのバンクがマッピングされているかで内容が全然違ったりします。

大変でしょうががんばって下さいませ。
#管理者のカシオンさんはあんまり6502に詳しくないようなんで…

…こんな分かりにくい助言書いてると、また管理者さんに怒られそうだな(苦笑)



魂太郎@regamer - 02/07/06 08:00:14

コメント:
命令表の送付、有り難う御座いました!
コレを見ながらとりあえず項目を理解して行こうと思います。
翻訳して行けば後はどうにか解っていくかと('^^;)。

自分の解る数値を入れて検索してるのですが…JMPした先の番号が良くワカリマセン。
逆アセしたコードの中は、先頭のdbってのはおそらくヘッダを指してると思うんで、
JMP先指定から1を引くのですが…
クワタさんwebsiteを拝見してこう書いてあるんですよね。

「では、jumpを追って$E328には何があるのでしょうか?
まぁヘッダとかもあるので正確には$6338なのですが」
(ちなみにゲームはドラクエ1のようですが)

…こう書いてあったのでホントのJMP先がドコなのかワカリマセンです('^^;)。

で、まだまだ問題は山積みです…。実際にメモリMAP内に
書いてあるPRG-romは$8000〜$C000、$C000〜$10000
の合計$8000なのに、逆汗して出て来たPRG-ROMは
$8000〜$10000が4つも…。コレはマッパーに関係してるんでしょうか?
ちなみにFCの女神転生1です。<確かマッパはnamco109だったかな?

「.NTB」ですが、ネームテーブルと書いてありますが…ハテ一体ナニコレ?
って思いました。…まぁ、解析にはあんまり関係して来ないようなので
この際気にしない事にします(笑)。

 と言う事で、とりあえずイロイロと書き殴ってみました。
大半は自分で調べりゃ解る事かもシレマセンが…。('^^;)ゞ



カシオン - 02/07/04 23:18:07

コメント:
本を読んでいきなり何かを作ろうと思っても、雲を掴むような感じで
分かり難いと思うので、好きなゲームの逆アセしたデータから自分の
分かる数値を設定している所等を見て、どうやって組んでいるのかを
考察していくってのも一つの手かも。

元のゲームに対する知識が十分ある様なら問題無いですね。
6502の命令表は紙一枚で全部まとまったりするんだよなあ・・・。
手持ちのをメールしときますね。多分最初は見てもわけわからんと思うけど。

同じROMで複数のマッパーがある物ってのは、NESticleで動かない物を、
プログラムに手を加えてマッパーを変更し、動くようにした物だと思います。
NESticleの使い勝手が良く再現度が高かったので、なんとか動かそうと
努力した先人が居た。と、いう事ですね。
自分で吸い出していればあんま関係ない事なのですが(^^;;;
マッパーの種類はエミュレータのドキュメントを見れば対応リストが
書いてある物もあるので確認してみるのが良いかと。

拡張子の「.FDS」はディスクカードのイメージファイルです。昔は
パソファミ用の「.DKA」「.DKA」や、Famicom(現Famtasia)の「.FAM」等の
複数の種類がありましたが、どちらの形式も若干の問題点があったため、
現在のFDSの規格が作られました。今はFDSがメインになっています。

「.NTB」って何だろう?とりあえず、俺は聞いた事無いです。
解析するには「.NES」とか、セーブファイルの種類とかを知っていれば、
そんなに気にしなくても良いかと。どっかのサイトに拡張子をいっぱい
まとめて紹介してた所があった気がするなあ・・・。

最近のパソファミは吸い出し機能が非常に充実していて、吸い出し機さえ
あれば誰でも吸い出せる様になってるんですよね。最近のもWinGなのかな?

それじゃ、頑張ってください。

と、思ったら、なんかメールが出せないなあ・・・。
最近トラブル多すぎ(T-T)そのうち送るので待っててください。

メールを出したのに登録されないとか、返事が来ない人とか居ましたら、
お手数ですが、もう一回メールください。届いて無いか、返事を出して
いるのに届いて無い可能性が大きいです。



魂太郎@regamer - 02/07/04 03:18:31
ホームページアドレス:http://www.geocities.co.jp/Playtown-Denei/4273/

コメント:
う〜ん、図書館でフツーのアセンブラの本を借りて読んでるのですが…難しくて難しくて…。
まず基本的なアセンブラの仕組みが解ってないンで、最初はソコからですかね。

元のゲームに関する知識は大丈夫です。とりあえず敵コード番号・道具コード番号などは
既に書き出してあり、バイナリで武器の値段をいぢったり出来ますから。
問題は6502の命令表ですね…外国siteを回ってそれらしきモンを発見したのですが、
翻訳siteで英語を日本語に翻訳したにも関わらず意味がワカラヘン…。(T_T)
…誰か6502の命令文一覧の本とか作ってくれないかなぁ…。(笑)

マッパーって、同じR@Mでもマッパー違うのとかあるじゃないですか。
アレって何故マッパーを変えているのか…とか、マッパーの種類とか…。
この辺はマッパーに関する情報があるwebsiteがあるようなので後で行ってみます。

拡張子って、.NESはともかく、FDSやNTBなどがよくワカリマセンです。
まぁ、ソレ位なら知らなくても大丈夫なのかもシレマセンが…('^^;)。

パソファミ…WinG入ってるヤツですよね?
WinG欲しくて入ってるんでコレも使ってみます!

情報、有り難う御座いました!早速先々を尋ねてみようと思います!
またよくワカラナイ事があればヨロシクお願い致します。m(_ _)m



カシオン - 02/07/03 23:09:27

コメント:
おっ、魂太郎さん、お久しぶりっす〜。もう留学から帰って来てたんですね。

6502のアセンブラの本は探しても見つからない可能性が高いかも。
解析するにあたって必要な物は・・・。俺は、ほとんどと言って良いほど
解析してないから。多分、もっとも必要なのは元のゲームに対する知識・・・
じゃないかな?逆アセして全部解析するなら必要無い気もするけど。
あと、6502の命令表とか無いと駄目っすね。

マッパーは・・・吸い出ししてればある程度分かる・・・ハズ。
ってか、最近はパソファミでオートだから関係ないのか。
拡張子って「.NES」とかの事じゃないですよね?
何の事を挿してるか良く分からないなあ・・・6502の命令の事かな?

一応参考リンクを幾つか

NesDev:有名サイト(英語)
http://nesdev.parodius.com/

すずめ愛好会:ゲームの開発の参考になる資料がある
http://float.jp/cafe/

GOROH'S PAGE:マッパーとか周辺機器とか情報
http://www.geocities.co.jp/SiliconValley/2368/

Console/Emulator Programming Page:技術情報とか色々
http://www.geocities.co.jp/Playtown/2004/

G-NES(ファミコンエミュレータ):デバッガ機能が充実してます
http://gigo.retrogames.com/

あと、IN1は安いの見付けたら買っといてってだけなので気にしなくて良いですよ。



ゲストブックに書き込む トップページ ゲームページ