スーパーマリオ逆解析で勉強
■ このスレッドは過去ログ倉庫に格納されています
0001リバースマリオ
02/03/31 07:49ID:???http://www.geocities.co.jp/SiliconValley-Bay/7981/misc.html
データ構造の圧縮方法などがとてもためになるYO。
みんなで勉強するのDA!
0002名前は開発中のものです。
02/03/31 08:19ID:??? ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
∩ ∩
〜| ∪ | (´´
:・‥ ヘノ ノ (´⌒(´
・:・:・((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
‥∵・  ̄ ̄ ̄(´⌒(´⌒;;
グシャァァーーーーーッ
0003名前は開発中のものです。
02/03/31 08:26ID:???00009066: 8D 54 07 sta $0754 ; プレイヤの大きさ(0=Big,1=small)→チビに設定
00009069: A9 02 lda #$02 ; 3人
0000906B: 8D 5A 07 sta $075A ; =マリオ(現在のプレイヤ)残り人数
0000906E: 8D 61 07 sta $0761 ; =ルイージ(待ちのプレイヤ)の残り人数
8bit時代ってメモリ少ないからプレイヤーの大きさなどを示すBOOL変数に
1バイトも使ってるていうのはちょっとビクーリ。
0004名前は開発中のものです。
02/03/31 08:30ID:???0000F4DA: 4C 52 4C 48 3E 36 3E 36 30 28 4A
あのパワーアップの音って長いけど、こんな短いテーブルだったのか!!
費用対効果を考えるとコスト安いな
0005名前は開発中のものです。
02/03/31 08:32ID:???いや、$0757はファイヤーマリオも記録しているからBOOL値では
すまない罠。
ま、2ビットで足りるけどね。
0006名前は開発中のものです。
02/03/31 08:38ID:???あと地形マップのデータ構造、エキサイトバイクのそれに似てるね。
マップ生成は初期化時に3pass。
0007名前は開発中のものです。
02/03/31 08:39ID:???0008名前は開発中のものです。
02/03/31 08:48ID:???例えば、512Bhにクッパが斧を投げ始めるワールド数が格納されてるけど
これはソース中で記述可能でしょ?
バランス調節のしやすさを意識してる様子が、、
0009名前は開発中のものです。
02/03/31 08:53ID:???その環境に合わせてパレットを用意しているという丁寧さに脱帽。
確かに土管の色も何パターンかあったなぁ
0010名前は開発中のものです。
02/03/31 08:58ID:???0011名前は開発中のものです。
02/03/31 09:03ID:???そうそう、6502にはレジスタがほぼ単一だから、ニーモニックに
レジスタ表記がないのが特徴だったっけ。
0012名前は開発中のものです。
02/03/31 09:06ID:???>その環境に合わせてパレットを用意しているという丁寧さに脱帽。
確かに、ある意味リアルだよね。
0013名前は開発中のものです。
02/03/31 09:25ID:???00_80h だから 8000h が先頭。
で、その後、初期化を行って$8057で無限ループストップ。
つまり完全にNMI割り込み依存なのか!美しい。メインルーチンゼロ。
0014名前は開発中のものです。
02/03/31 09:37ID:???RESET割り込みは置いといて、IRQ割り込みとNMI割り込み。
で、CPUパワーの少ない当時において絶対にかかる割り込みというのが
必要で、それが後者のNMI割り込み。これは割り込み禁止が不可能な
割り込みで、CPUがいかなる状態であれこの割り込みだけはV-Blank突入時に
発生してくれた。CPUのコンテキストをスタック領域に保存するのも、
なんとCPUが自動でやってくれたので、当時の方が割り込みハンドラによる
プログラミングがある意味、お手軽だったし盛んだった。
メインルーチンが while(1); なのは何もスーマリだけじゃないよ。
0015名前は開発中のものです。
02/03/31 09:39ID:???■ このスレッドは過去ログ倉庫に格納されています