スーパーマリオ逆解析で勉強
■ このスレッドは過去ログ倉庫に格納されています
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:???0016名前は開発中のものです。
02/03/31 09:41ID:???趣味レベルでは作れないですよねー
実際、あんまり見かけないですし
0017名前は開発中のものです。
02/03/31 09:41ID:???0018名前は開発中のものです。
02/03/31 09:49ID:???001914
02/03/31 09:56ID:???18さん、あなたも昔のゲームのフローやデータ構造の研究を
激しくお奨めしますよ。
今の若者が思っているより遥かに洗練されている部分もあるし、
遥かに幼稚な部分も稀にあったりして勉強になりますよ。
0020名前は開発中のものです。
02/03/31 11:30ID:???0021名前は開発中のものです。
02/03/31 11:51ID:???限られた資源のFCでよくできてるゲームは魔法みたいに見える。
当時の他のほとんどのゲームは最低限ゲームとして成り立たせることに手一杯で、
ここまで面白さを追求できてるものはなかったし。
もしかして今の時代、現役の開発者でもフルアセンブラで組んだことのある
人ってすでに少数派なのでは?
0022名前は開発中のものです。
02/03/31 12:16ID:???ここと読み合わせると威力倍増
0023名前は開発中のものです。
02/03/31 13:17ID:???ソースの中で記述してるジャン(w
0024名前は開発中のものです。
02/03/31 14:38ID:MGRxLFVr逆アセンブルのデータの区切り方が今現在間違ってる。
というか元になった資料が間違ってたりしてw
正確にはこうでした
; SQ2 : パワーアップ効果音の音符テーブルを形成。
0000F4DA: 4C 52 4C 48 3E 36 3E 36 30
0000F4E3: 28 4A 50 4A 64 3C 32 3C 32
0000F4EC: 2C 24 3A 64 3A 34 2C 22 2C
; : パワーアップ効果音の様に思えるが、実は未使用領域。冗長な音を削ったのだろう
; : 和音としてはいいかんじ。
0000F4F5: 22 1C 14
データは F4F4から F4DA へと後ろから読んでいきます
002524
02/03/31 14:48ID:???0000F4DA:
4C 52 4C 48 3E 36 3E 36 30 28
4A 50 4A 64 3C 32 3C 32 2C 24
3A 64 3A 34 2C 22 2C
0026名前は開発中のものです。
02/03/31 17:03ID:???>> ソースの中で記述してるジャン(w
いや、多分、レジスタ即値比較で済むのに、わざわざデータセクションに
ある値で比較していることを指摘しているのだと思われ。
データセクションにある値はソースにあるとは限らないよ。
それいったら、マップデータもアセンブラソースにあるじゃんってことになる。
0027名前は開発中のものです。
02/03/31 17:17ID:???>もしかして今の時代、現役の開発者でもフルアセンブラで組んだことのある
>人ってすでに少数派なのでは?
さすがにフルアセはもうないかもね。
ps2のシステム班なら毎日アセンブラなんだけど、ゲーム全体となると・・・
スーマリのデータ構造見て感じたのだが、
その構造たるや、今のゲームやアプリケーションのそれとほとんど差が
ないことにびっくりした。
大枠の親セクションがあり、その中に子セクション郡へのindexがあって
さらにその各子セクションの中に孫セクションがあるという管理方法は
今でも良く使う、というかこのあたりの構造はあまり進化してないのか?
002827
02/03/31 17:18ID:???ケアはあまり進化してないなぁ
0029名前は開発中のものです。
02/03/31 17:22ID:???エリア間のノードをつないだんだと思うけど、今でも人的資源には
限界があるのだから、使えない手ではないよね。
0030名前は開発中のものです。
02/03/31 17:40ID:???デビルワールドも解析してちょ。
0031名前は開発中のものです。
02/03/31 18:16ID:???#でも、違法なんだよね…。
0032名前は開発中のものです。
02/04/01 03:54ID:???ここに関連しそうなスレ
このスレおもしろかったです。
俺も何かの解析記事うpしようかな…
0033名前は開発中のものです。
02/04/01 05:32ID:???6502の切り替えはたったの7サイクル、あろ?
レジスタ多い昨今のCPUはその分、大変かも。
0034エミュ野朗は自殺しろ
02/04/01 05:52ID:???▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0035名前は開発中のものです。
02/04/01 20:57ID:???任天堂法務部から告発食らってタイーホ、懲役3年実刑判決、
民事では1億円の損害賠償、
>>1は自己破産。
0036名前は開発中のものです。
02/04/02 19:47ID:???0037( ○ ´ ー ` ○ )エミュ大好き
02/04/03 05:45ID:???0038名前は開発中のものです。
02/04/03 06:37ID:???0039名前は開発中のものです。
02/04/03 09:07ID:???0040リバースマリオ
02/04/03 18:44ID:???http://www.geocities.co.jp/SiliconValley-Bay/7981/misc.html
データ構造の圧縮方法などがとてもためになるYO。
みんなで勉強するのDA!
0041名前は開発中のものです。
02/04/03 22:47ID:???0042名前は開発中のものです。
02/04/03 23:47ID:???0043ワケワカラン
02/04/04 01:07ID:???このスレに書かれている意味がわかりますか?
0044盗んだデータの解析自慢か
02/04/04 02:57ID:???0045名前は開発中のものです。
02/04/05 00:46ID:???と。
0046終了
02/04/05 00:53ID:???▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0047名前は開発中のものです。
02/04/05 01:20ID:???ッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフ
フッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カ
カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼
▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。
。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д
Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚
゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
ッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフ
フッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カ
カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼
▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。
。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д
Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚
゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼
0048名前は開発中のものです。
02/04/05 04:26ID:???解析の逆?
っていうツッコミが無かったのが不思議。
0049名前は開発中のものです。
02/04/05 11:22ID:???自分も激しく希望。
あのジャンプの感覚はいまでも匹敵するものはない。
どういうプログラムでどんな調整をするとあの感じが出せるのか?
1-2出口のの土管で1ブロックのこしてジャンプで後頭部をめり込ませると
なぜ壁をすり抜けるのか?
あのゲームはいろいろ謎が多いです。
>>48
対義語ってなんだろう?
0050▼゚Д。▼カフッ
02/04/05 23:20ID:???▼゚Д。▼カフッ
▼゚Д。▼カフッ
▼゚Д。▼カフッ
0051名前は開発中のものです。
02/04/14 10:02ID:???が全てのバグを利用しててカコイイ!!
0052名前は開発中のものです。
02/04/21 00:21ID:RqcwHmjw0053名前は開発中のものです。
02/04/21 02:01ID:???一発で仕止める言葉のドライブバイ♪
こいつやってもいいか♪
奴の命奪ってもいいか♪
\__________ ___________/
∨
∧_∧
Θ(´∀` ,,)
|| (つ∞> つ
|| ( ( (
|| (_(__)
0054名前は開発中のものです。
02/04/21 03:21ID:.gT5mREE0055名前は開発中のものです。
02/04/27 00:25ID:AoPtetmc0056名前は開発中のものです。
02/04/27 15:11ID:???これで何か出来るかな?
0057名前は開発中のものです。
02/04/27 23:56ID:6xop1EJM0058名前は開発中のものです。
02/04/30 02:55ID:???ジャンプの制御は、最初は数式で加速度を作ってたが、
気に入らなかったので担当の人(ミヤーモ?)が加速度テーブル
を手打ちで作ったと聞いている。
壁すり抜けに関しては前にスーマリパクリゲーを作った時
にこうではないかと感じた。
↓
マリオが宙に一個だけ浮いているブロックに頭突きをかました
場合、マリオの中心線がブロックと重なったときのみブロック
を叩ける。中心線がブロックと重ならなかったとき(半キャラ以上
ずれているとき)は、左か右にスルリと抜けてしまう。
上記の事から、以下の処理をしているのだろうと予測する。
■ このスレッドは過去ログ倉庫に格納されています