サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
セキュリティ
taotao54321.hatenablog.com
今回は CPU について扱います。NES の PPU や APU はかなり複雑ですが、CPU は単純なので理解は容易です。CPU さえ理解しておけば乱数などの「目に見えない値」を探したり、ダメージ計算などの内部ロジックを追うには十分です。 ロジックを追う際は別にアセンブリ全体を読む必要はなく、デバッガで適当にブレークを仕掛けてその周辺を読む程度で大抵は事足ります。NES ゲームは大半がアセンブラ直書きだと思われるので、人間には読めないようなコードはそうそう出てこないはずです。PPU や APU を扱うコードを除けばそんなに凝ったアルゴリズムも使われていない様子です。 NES の CPU は 6502 カスタムの 2A03 です。オリジナル 6502 からの変更点は: Decimal mode (10進演算)の削除 サウンド、DMA, コントローラ制御機能追加 といったところですが、コードを
何回かに分けて NES に関する基礎知識を書いていこうと思います。簡単なリバースエンジニアリングができるようになる程度の内容を予定しています(ゲーム自作までは扱いません、というか扱えません)。ほとんど NesDevWiki に書いてあることばかりなので、ガチ勢の方にとっては特に目新しい内容はないと思います。ツールは好きなものを使えば良いと思いますが、一応 FCEUX を推奨しておきます。 今回はメモリについて扱います。自機座標やHPなどといった「目に見える値」のアドレスを探すだけならこれを知っていれば十分です。 NES の CPU 論理アドレス空間は16bit, 即ち $0000-$FFFF です。大まかなレイアウトは以下のようになっています(NESは memory-mapped I/O なので、I/O レジスタも含まれます): アドレス 内容 $0000-$07FF RAM $0800-
今回は PPU について扱います…が、正直難しいのでゲーム内のロジックを調べたいだけなら完全に理解する必要はないと思います(私もきちんと理解してません)。完全に理解したければ NesDevWiki の PPU の項目などを参照。 NTSC を前提とします。PAL などはよくわからないので扱えません。 まず、PPU と CPU (と、APU)は並列に動作しています。3 PPU サイクル = 1 CPU サイクルです。 NES の解像度は 256*240 *1ですが、内部的には 341*262 とみなすことができ、1 PPU サイクルで 1 dot 処理されます。そして、341*262 = 89342 PPU サイクルが 1 フレームとなります(厳密には偶奇フレームで 1 PPU サイクル変動します)。 341 dot の水平線 1 本を「スキャンライン」または単に「ライン」と呼びます。各ライ
TAS さんや攻略のための解析がしたい人向けです。ゲームを自作したい人は NesDevWiki をしっかり読んだ方がいいでしょう。 メモリ CPU コード読解 コントローラ PPU APU (ほとんど無内容) 他機種向けにこういう記事書いてくれる人いないかなー(チラッ
このページを最初にブックマークしてみませんか?
『壁は通り抜けられませんよ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く