【FC】スーパーマリオブラザーズ改造しようぜ!
質問 オリジナルでは、地下のボーナスステージで死ぬと中間エリアから再開できるけど 自作のステージで同じ事をしようとすると、どうしてもスタート地点に戻されてしまう マップ移動先で死んだときに、移動元の中間エリアから開始するための 条件ってあるんでしょうか >>102 地下ボーナスのページ数がエリアの中間地点に設定したページ数の前か後かってことが影響する オリジナルでも1-2の地下ボーナスは中間後だけど地下ボーナスのページ数若いのでTIME UPするとエリアの最初に戻される 移動先のルームの何ページ目で死んだかで、そのエリアの途中ページを超えたかどうかを判定する という方がわかりやすいか 移動先のページを変えると中間エリアから再開できました。 >>103 >>104 ありがとうございます! スーマリで各ワールドの3面の最後の城ですが、あそこにもゴール後城の旗が出ている事を確認しました バグを使えば本当に出ている事が分かります 今日判明しました これは知られていないのではないでしょうか ちなみに城ブロックの裏に隠れていますがね あるバグを使えば実機でも確認可能です 改造しません 画面左端にめり込むとマリオの半身が右端に見えるが、これを利用してツタワープならぬ画面端ワープは可能にならないか? さすがにプログラム上無理か あとyoutubeにある スーパーマリオブラザーズ 謎の無限1UP という平地1UPのやり方教えてください アレを試すと確かに1回は反射してきたノコノコを踏めるが持続しない w7nさんのはプレビューバージョンってことで、完全版じゃないみたいだけど完成が楽しみだわ 左右スクロールや背景の多重スクロール、蹴った甲羅のブロックへの当たり判定や謎解き効果音、音楽と素晴らしいな 謎解き失敗したら死亡確定にしないで、前のフロアに戻れてやり直せるチャンスくれたら無駄なストレスも減りそうだが 彼らに(得点的なものを)許せって何だろう マリオの残機!? youtubeにある スーパーマリオブラザーズ 謎の無限1UP という平地1UPのやり方教えてください スレ主はSMB3の改造を公開→スレを乗っ取るように初代SMBの改造→スレに誰もいなくなる みたいな流れだったし既に1はいないのかも SMBアーカイブにちょこちょこ新作出たり掲示板に書き込みあるし初代に限っては絶滅したわけでもなさそうだけど >>75 スーパーマリオブラザーズ2の1024wのワールドセレクトもお願いします。 マリオ2はイレギュラーなワールドに居たらリセットされたり、自動的にプログラムバンクが切り替わったりするし面倒だった記憶が 5-1以降に入ると一度ディスク読み込む(1と違ってRAMアダプタに入りきらない) からそのせいなのかな >>119 マリオ1は自分で調べてもこのスレでも分かるけど、マリオ2は具体的な16進数さえ分かりません、数か月調べても… どうかお願いします。 ディスクシステムも命令自体は6502そのままだから ディスク版1と見比べればいいんじゃない >>75 fdsのT-2はカセット版のT-1らしい 一緒かどうかは定かじゃないけど >>122 23CF〜23D3、2405付近の命令を見比べてみたのですが素人にはかなり難しいです、と言うかさっぱり分かりません。 頭が沸騰寸前と言うより蒸発した感じです。 6502命令について勉強してみたのですが、1つ1つの命令が抽象的すぎて、その周辺がどう機能しているのか想像すら出来ません。 正直、>>75 のような直接的な答えが欲しいのですが…… どうか宜しくお願いします。 >>123 fdsはT-1らしい面が結構あるよ、それに、それぞれ微妙に違うみたい >>124 言うほど抽象的か?命令表では小難しく書かれてるかもしれないが 基本的に足し算と引き算しかしてないと考えればわかると思う。 もしや逆アセンブラ使わずにバイナリだけで見てない? それだとめちゃくちゃ非効率だから逆アセンブラ使ったほうがいい。 ・・ただ>>75 はよく見たらタイトル画面Bボタン選択用プログラムのあたりか。 このコンテ方法、2だと無くなってるからこれ参考にしても意味ねーすまない。 だから直接ステージ番号指定してる箇所を変更するしかないが これは逆アセンブルしなくてもチート探す要領でメモリ検索していけばたぶん見つかる ttp://www.romhacking.net/forum/index.php?topic=13848 やっぱ向こうの人でも嫌がる人は嫌がるんだねぇ >>129 本当に感謝してるんだけど、なんせ俺の頭脳は一般人以下、数日かけて色々やってもさっぱり分からんかった… エミュレータでメモリ弄るんなら、以下のやり方でも行けるんじゃない? ・ワールドA−1まで到達する ・チート機能か何かでワールド管理メモリ:075F に値:FF を格納する ・1機死ぬ(面データを再読み込みさせるため) ・リトライすると、そのままW1024-1が始まる >>132 075Fのアドレスの値を変えたらいけそうだけど、もう1つアドレス必要だよね、あれ?要らないか? おかしなワールドを入力した時点で死ぬ前に止まるんよねー確か >>134 そのやり方あってるの?何か方法があるような気がする >>133 ごめん、未検証。SMB2は確認できる環境持ってないのよ。 4つめのマップ構造体を参照しているのが、 ワールドA,B,C,Dの時らしいからってだけの理由で立てた仮説だから、 止まっちゃう可能性も十分あると思う。 確かに、参照先を決めているメモリが分かれば、もっと簡単だろうけどね。 >>136 なるほど、075Fの他にあと3つのアドレスが分からないと1024Wワールドセレクトはできない訳ね 止まる現象はしょうがないのかな >>137 どうだろうね。止まるタイミングが詳しくわかれば、見当つくかもしれないけど… なんかPC漁っていたら、昔SMB Softwareで配布されてた資料見つけたから、 関係ありそうなメモリを列挙してみるよ。 $07FB:A,B,C,D面フラグ。★8つ以上、かつタイトルでA押下しながらスタートでON $D29F:クリア回数。ディスク直書きなので、編集はバイナリエディタで可能(?) 普通に検索すれば出てくるよ。 ここのSMB2逆アセンブルテキストが今の話題にドンピシャ。 2007年に更新されていたとは知らなかったな。 >>140 ttp://www.geocities.jp/smbsoftware/ ここだよね?ページないよ >>141 逆アセンブルテキストは無くなってたから、Wayback Machine使った。 それともページ自体ダメ?こっちではアクセスできたけど。 Insectduel hacks All Night Nippon Super Mario Bros. http://www.youtube.com/watch?v=bMAWf6Ggynw All Night Nippon Super Mario Bros. - Custom World 1-3 http://www.youtube.com/watch?v=PTF47zUldaw SMB2J+2 Mystic Land - W9 (Super Mario Bros. 2 FDS ROM-Hack) http://www.youtube.com/watch?v=4a_E26viAro むしろぶっとびならではの通常運転な気がしてならない マリオマフィア2のIPSってどこかで配布されていないの? >>149 SMBアーカイブにあったけどアプロダ荒らしのせいで流れた でも無断転載されてる ttp://ux.getuploader.com/smbarchive/ の uploder.exe を解答して出てくる 106.zip _,.._,.=-_-、 ,r;r '´ `ヽ ,r:i' ヽ /::::;! ヽ ;!:::::::'! ., _ _,.......i:、 ;i:::::::::::::l. ,;r''_:::::'' ::r_;ニ;.:l:::i r'::::::::::::r "'"`=';' ' i:::`;::::l:;! /::::::::::r:ミ ;::::. ´'´ r )´ '::l! !::::::::::::、_,.:::::: /.:::::::::ヾ、.::l ヾ:::;、::::!::::::. ..::' ';':::::::::::::::::ヽl! ` ヾi ::::::ミ:、-':::::;:r―::、:::ij;! ,.r!i ミ::_;::::''::::::::::::::;r/::`::::-.、 ,...-:::::::::/ `r、__,-―--‐'´ /::::::::::::::::::::::..、 :::::::::::::::i'' ー-'r--r.、´ヽ /::::::::::::::::::::::::::::::::`::、 ネーヨ [Naryo.W] (1915〜1985 ポーランド) 間違えて再調整前のデータアップしてると気付いたときの絶望感 某ROM版SMB2と某ROM版SMB2(ワールドセレクト付き)のを比較してみたけど、 差分みる? >>155 SMB2J-マッパー4(73,744バイト) 標準(本家と同じ仕様) $447E AD FC 06 29 10 F0 $447D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 50 07 A9 00 8D 60 07 ワールドセレクト版(AボタンとBボタンでワールドとステージを選択) $447E 20 00 fb 4c 50 f8 $447D EA EA EA 4C EC C4 $4507 EA EA EA EA EA EA EA EA EA EA EA EA EA EA EA 上記のコードをそのままSMB2J-マッパー40の物に適用してみたが作動しなかった、 本家FDS版も作動しなかった。マッパー制御(バンク切り替え)の部分叩いて いるのだろうか? あとSMB2J-マッパー4-SRAMセーブ付き(81,936バイト)には一応適用可能。 大文字に統一 SMB2J-マッパー4(73,744バイト) 標準(本家と同じ仕様) $447E AD FC 06 29 10 F0 $447D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 50 07 A9 00 8D 60 07 ワールドセレクト版(AボタンとBボタンでワールドとステージを選択) $447E 20 00 FB 4C 50 F8 $447D EA EA EA 4C EC C4 $4507 EA EA EA EA EA EA EA EA EA EA EA EA EA EA EA >>156 ありがとう 変えている場所はまんまワールドセレクトに絡んでいるっぽいね $07FBのセーブ機能を消してるようにも見えるけど、 もしやワールドセレクト版は、A,B,C,Dに正規の方法で行けなかったりするのかな >>159 そこまで試してなかったな。検証してみる。 >>160 あくまで推測だからなんとも言えんけども あと、本家FDS版で動かなかったのは 単純にROMの構造がNES版とことなるからかも ワールドセレクト版にサブルーチンへ飛ぶ 20 00 FB の記載があるけど >>141 の資料を見るに$F000番台が存在しないっぽい SRAMセーブ版でも>158のコードでワールドセレクト化できたけど、 ワールドセレクト版を元に改造したROMかも知れないな >>158 素人です。73,744 バイトのnesをバイナリエディタでそのアドレス見ても標準(本家と同じ仕様)のコードが無いっす。 ていうか書かれているコードの意味が理解できていないのですが、 $447E AD FC 06 29 10 F0 のADは$447E0のADでしょうか? アドレス$447E(0x447E)です。改造ROMはいくつかあるので種類によって違う 可能性もあります。 もし$447E0(0x447E)だったらそのファイルサイズは273,000バイト以上になります。 >>163 "AD"は lda $yyxx を指すコードで、さらに続く"FC 06"がそれぞれxxとyyに当てはまる 要約すると"AD FC 06"は、lda $06FC の意味 どのバイナリコードが何の命令子かは、検索掛ければ出てくる そもそもldaって何よってのも、探している過程でわかってくるはず >>164 >>165 種類がたくさんあるみたいですね、サイズは一緒でも種類が違うと適用しないのでしょうか? AD FC 06 29 10 F0 でバイナリエディタの検索するとアドレスは違うけど2か所ありました。 他の2つはないみたいです。 サイズ、アドレスは違ってもバイナリエディタ検索で一致したところをワールドセレクト版へ変えても可能でしょうか? >>169 可能ってのはワールドセレクトできるようになるかってことかな 試しにやってみて動くようなら動くんだろうね もし $447E 20 00 FB 4C 50 F8 で呼び飛びしてるルーチンが ワールドセレクト版固有のものだったら動かないだろうけど 俺もド素人だけどそもそもバイナリエディタ? SMB2専用の何かで見ないといけないとか? バイナリエディタと必要に応じて6502逆アセンブラ SMB Utilityの「アクティブオブジェクトを他ルームへ送る」って一体何に使えるんですか? 必ず「送り元のオブジェクトは、ページの関係に影響を与えるオブジェクトです。」と出るんですが >>175 そのブロックや キャラクタを他の部屋に移動させる事が出来る そのレベル内に使うブロックが余ったときや足りないとき等。 ・送れないケース1 オブジェクトリストから見たとき、各ページの先頭においてあるオブジェクトは送れない。 キャラクタ編集時も大体同じ 実際編集したときに改ページフラグにチェックが入ってる奴。 ・送れないケース2 ・ページ送りコマンドによって白紙状態が確定してるページ ・各ルームの最後のオブジェクトより後ろなどオブジェクトがそもそも存在しないページ 対策としては、ページ送りコマンドを外したり、前後のページに送ったりしてから 改ページフラグを駆使してその送りたいページにオブジェクトを運ぶ。 >>176 とても参考になりました、ありがとうございます 引き続き質問なのですが、 今、コースにオブジェクト配置の編集を行っているのですが 始めから設定してあるページ送りコマンドのせいで手間取っています。 ページ送りコマンドを敵オブジェクトに変更して消そうとすると、その削除したページより後にあるオブジェクトが 全部前のページに来てしまい、その後のページが全て白紙判定されてしまって編集できない、という壁にぶち当たっています。 編集可能なページは変更されずにページ送りを無効には出来ませんか? 説明下手ですいません…;; >>177 ページ送りコマンドを敵オブジェクトに変更するときに そのオブジェクトの改ページフラグも一緒にチェックすると、多少マシになるかな あるいは、SMBアーカイブの旧UPローダー369に 「nothing1.10」っていうフォーマットパッチがあるから 初めから新しく作るときはこれを使うと楽かもね オールナイトニッポン版スーパーマリオを奇跡的に手に入れたんだけど、 これを256W選択できるようにするにはどうバイナリ弄れば良いかわかる人いる? 宜しく頼む ルイージにカーソル合う処理潰してやってみた 俺の持ってるやつの 8A4C h の AD 53 07 49 01 8d 53 07 ↓ EE 5F 07 20 39 66 60 EA にしてみたらワールドセレクトできたけど$075Fが9ワールド以降を指した瞬間リセットかかるわ オールナイトニッポン版SMBの逆アセンブルテキストをキボンヌ キラーを1画面に5匹出現させる事は可能ですか? もし可能ならポールの旗が消え、点数が入りません すなわちロースコアクリアが300点に更新できる可能性があります 少し検証してみた所3匹同時が限界? 出現タイマーだか何かがネックになり無制限とはいかないんですかね S.M.B. Remodelerで色弄って遊んでたんだが、コインの色のパターンを違う系統の色に変えてみたら ステージ始めの残機表示してる画面で、画面上部のコインの色とか ルーム入った瞬間の光るオブジェクトの初期色(地上&地下、海、城の三カ所?)とか 一瞬でも見た目が不自然なところ気になったのでバイナリエディタで手動変更して整える必要あった YYエディタとマリオえでぃた〜併用でレンガや使用済みブロックのグラフィックのアドレス変えた時も 叩いた後のレンガや使用済みブロックは元のアドレス残ってて、それらもバイナリエディタで手動変更する必要あった 例えツールで弄れる範囲の改造しかしてなくても、ツールを過信し過ぎるのはダメなのね ツタを出した後右寄せで次の土管に入るとボーナスステージの上から降ってきてしかもツタが消えてるんだな そんなバグ知らんかったわ 土管やツタ毎に行き先設定されているのではなく、どこまで画面がスクロールしたかで行き先設定されているからなー 改造で複数の行き先あるルーム作る時はうまく横位置考えて設定しないと作者の予期せぬ場所に出たりハマったりする 意地の悪い改造作品ではスクロールで正しい行き先になるように調整しないとクリアできないようなのもあったような チビマリが高さ2ブロックの角に入れません マリオの横位置が関係してるんですか?何度か試すと簡単に入る時があります 1マス手前くらいから <>B >A > > > > > > > > > < < < の入力をすれば入れるやつです ようは1-1の最初の土管に最速で角入りできないのは何故かという事です 少しマリオの位置が戻れば多分入れる気がする 一見ノーマルレイアウトで普通にクリアできるけど 意外な所に奇想天外な楽しい仕掛けがたくさん仕込んであるようなのを誰か作ってくれないだろうか? 動画を見た人が無改造のやつで試したくなっちゃうようなやつ ぶっとびねっとそろそろやばいぞ SMBアーカイブのファイルが欠けまくってる >>192 簡単にSMB2のワールドセレクトできる改造マリオつくって オブジェクトを他のルームから移動させまくって置ける限界まで使いきった面ばかりにしようとしたら 限界まで12ルーム+残り滓で1ルーム組むみたいな構成になった 今回ルーム間の移動は使わない予定なので、ボーナス面みたいなの出す代わりにコインの配置を増やすが 4ステージ構成の3ワールドでクリアにして面セレクトでしか行けないようにした4ワールドをオマケ扱いにすべきか 4ワールドだけ半端な長さでクリアにすべきかで迷っている スーマリのバグ発見 7-4で右寄せしてると迷路が永久に脱出できない 多分4-4でもそうなんじゃねーかな ツタが再開地点から生えてくるバグとかも今世紀になってから発見されてる まだまだ未知のバグがあるはずだよ 残機を16進数でいいので表示できるようにしてください 昔自分でやったのですが文字の色を白くできませんでした 無改造で何度も階段無限増殖やって増やし過ぎガメオベてるうちにデフォルトはなんとなく残機わかるようになるけど 独自にキャラ書き換えたり並び換えたりしてる改造のやつはメモでも見ながらじゃないとすぐわからなくなる自信がある 100匹前後の模様がゴリラやパンツに見えてたけど実際はコインブロックを分割したものだった わざわざあんな模様を作ってたワケではないんだよな〜他の模様もスプライトが適当にあてがわれてるだけ でも現役当時は意味の無い妙な模様がどれも意図して作られたものだと思ってた純粋な心でプレイしてた >>75 のワールドセレクトみたいに、 SMB2の1024Wでも出来ないかな? すっげーどうでも良いぐらいよくある事 2の8-2でそれで止まったことあるわ 試しにそこでやってみたら画面表示エラーなら起こせた ファイアボール表示が消えたりもするね 途中ページ設定してて思ったんだけど、やられて途中ページに戻ったときマリオが出てくる縦位置って変えられます? 484 名前: 名前が無い@ただの名無しのようだ [sage] 投稿日: 2013/10/30(水) 13:37:57.87 ID:H+nyEnMG0 任天堂の倒し方知ってる? 495 名前: 名前が無い@ただの名無しのようだ [sage] 投稿日: 2013/10/30(水) 13:41:37.88 ID:2zbs6ste0 >>484 フリスクのケースにマジックで任天堂って書いた後立たせて 人差し指でちょんって押してみ フリスクのケースってのが大事だからなければ買って来い >>214 ありがとう もし位置変更できたとしても他のフロアの出現位置まで崩れることになるなら諦めがつく むかし怪しげな中古ゲーム屋でディスクシステム2台を接続したとおもわれる怪しげな書き換え機があって それを使ってスーパーマリオ3(1を改造した物)を販売していたんだが、あれの通称とかわかる人いないかな? ステージセレクトができるがめちゃくちゃに改造されており、まともにクリアできないステージが大量にあって 酷い場合はスタート直後に地面がなくてそのままゲームオーバー あれがもし入手できるならそれなりにマトモに遊べるように改造したいんだよな >>216 SMB1の改造はたくさんあるけど、その当時はまだ無かったはず。実に興味深い。 ステージセレクトと言えばSMB2の1024W、簡単に行ける改造方法ないかな? トンカチマリオをコピーして販売してたんじゃないのかね ワールドセレクト君の全く関係ない話題の途中にまで自分の要望を書き込むやり方は ガンダムのブラウザゲーにスパロボ機を追加しろと連呼してサイト潰した基地外と同じ臭いがする なんとなく作り始めて全3ワールド中1ワールドできたが、通しでやってみると他人様にやらせるには微妙な出来に思った ブロスがハンマー投げて画面内にあるとき1UPキノコを出すと下部分が消えているバグを発見 その瞬間のスクリーンショットでも無いと断定はできないけど スプライトが横に4つ以上並ぶと、ひとつ見えなくなるファミコンの性能の話ではなく? 6-1で後半くらいにある段差上の10コインを画面左端数ピクセル開けてデカマリオで突入するとハマって抜けられなくなるバグを発見 その時マリオはグラフィックが半分になっている そのさいに左側のブロックを先に壊しておく必要がありますがね 5-2の後半の高さ2の所の2連ブロックでもできますね 要するに左に空間があり壊せないブロックにデカで入ると詰むようです イマイチ状況わからんので写真撮るかフロアの何ページ目かだけでも http://i.imgur.com/q0xfZ3R.jpg この状態だとハマって抜け出せません、右端にマリオが出てきているのにも注目 2-4とかのファイアバーのないブロックでも同じ事ができる よく見つけたなー というか、わざわざブロックを右側から下をくぐり抜けに行くなんて器用だなw 2-4の終わりのほう、コイン6枚ある付近の使用済みブロックでも同様のことができるね(裏面はファイアバーあり不可) 4-2は当時ツタワープに失敗してよくはまってたなぁ ツタワープは左端に行き過ぎると右に出てくるのを示唆するのであって通常テクでも可能性が感ぜられる TASの最速記録更新はああいう事の発展系かもしれない なるほど、甲羅が当たると跳ね返るような種類のツタは、下から当たると壊せないブロックみたいな当たり判定あるから ツタでハマるのはブロックくぐり抜けて左端でハマるのと同じ種類のバグなんだな >甲羅が当たると跳ね返る ツタってカメ当てると反射すんの?スタート地点にツタを生やすバグで5-1の最初のノコノコ当てても素通りしたけど 説明不足&少々勘違いあって矛盾すまん ツタと言っても本来のツタじゃなくて、横から当たるとツタのように掴まる(捕まる?)事ができる地形の中でも 敵が通過する種類と、敵が当たると跳ね返る種類があって、その後者の話をしたつもりだった 前者は下から叩いても掴まりはするけど頭ぶつけないから話変わってくるかもしれない ツタのように掴まる事ができる地形というのが余計わからん 改造マリオでのポールの丸とかのあれかな?実機では出てこない状態で >ツタのように掴まる事ができる地形 改造マリオの草木が邪魔とかいうやつでまりおえでぃたー使って草や柵を1マス浮かせて試してみた 草の方は下から突き上げるとすり抜け、柵の方は下から突き上げると頭ぶつける判定あったのだが どちらもデカマリオの上半分が横から当たっても引っかかる判定が無いみたいで、左端で下くぐってもハマらなかった 4-2のツタブロックの下にある隠しコイン出してからデカマリオでツタブロックの下潜ろうとしてるが 難易度高い操作いるな >錦織は日本でハンバーガーチェーンを経営するセレブだ そこに忍者設定が加わっていれば完璧だった 凄い改造を見つけた。 SMB1 + SMB2J SRAM Plus (FDS hack) http://forums.nesdev.com/viewtopic.php?f=22& ;t=11576 SMB2(lost levels)をベースにステージ構成は基本はSMB1だが、 ディスクシステム版SMB1やVS.システム版SMB1やオールナイトニッポン版SMB1や PC-88版SMB1やX1版SMB1の要素が採り入れられているマニアックな改造。 ようつべでそこらの「野」に出回ってる改造のプレイ動画見てるとよく0-1から始まってバグってるけどあれ原因何なの 今年こそゆっくりマリオ作れるとか思ったのに新年が開幕モンスターハウスで涙目 >>225-231 3連以下の壊せないブロックに大マリオで右から入るとハマるね んで解決法 1.3連以下のブロックを配置したい場合、壊せるブロックにしておく 2.どうしても3連以下の壊せないブロックを配置したい場合、 ハマリ後にファイアバー等敵と接触してミスできるようにしておく 3.ブロックを4連以上にする (4連以上だと滑り込みの距離が足りなくて奥まで入れない) >>251 4.そもそも壊せないブロックの下に1ブロック分の空間を作らないようにする でも、高さ5のジャンプしないと抜けられない土管の左とかでダッシュジャンプできずにハマったり 城で強引に壁登りして天井裏からクッパの部屋行ってハマったりと、故意にハマろうとした結果なら 因果応報だし、個人的にはそんなに目くじら立てて対策する必要があるとまでは感じないかなぁ >>252 高さ5の土管でハマるというのは今日の今日まで見事に見落としてた…thx やっぱり人の意見は聞いてみるもんだ んで豆の木にまつわるバグ?をひとつ 豆の木の移動先を奇数ページにすると、そのページの横位置4(=豆の木が伸びてくる位置)・ 縦位置12に足場が無い場合はマリオが豆の木から落ちる際に方向を左か右に入力していないと そのまま画面外へ落下してミスになる ページの使い回しでもしない限り気にする必要も無いと思うけど、参考までに 改造マリオを扱うサイトでも不思議と言及されてないようなんで >縦位置12に足場が無い場合は(略) >そのまま画面外へ落下してミスになる なるほど、その条件って移動先が奇数ページのときだったのか 豆の木掴まった状態から下押して降りても画面外まで落ちるし、穴の判定になったりならなかったり不思議には思ってた オリジナルだと雲ボーナスやワープゾーンの0ページ目だけだし、移動先奇数ページの豆の木は改造マリオ特有の罠だな あの後気になってもっかい調べてみたところ、一部勘違いがあったようで失礼 縦位置11に足場があってもどうやら落下事故は防げる様子なんで追記 ただどっちも豆の木が地形でぶった切られた状態になるんで見た目が奇妙に もちろんマップ使い回しをしなければ多分発生しない問題ではあるけれど 縦位置10〜12の足場は落下防止策として有効 9だとゲームが止まる 8以下だと無意味 面白い使い方としてはアスレチック面とかで使う島を足場とする方法 豆の木葉」島の後ろに隠れるんで島から豆の木が生えてくる感じになる 世界観しだいでは利用できることがあるかも知れない 豆の木が背景の裏に隠れる事を利用する手法には、山の裏から現れるなんてのもある 偶数ページの豆の木部分の穴にはマリオのみならずノコノコやクリボーも落ちず、奇数ページではマリオ同様穴に落ちる 見えないブロックがそこに存在すると考えれば当然と言えば当然なのか >>259 遅レスだけどその通り SMBはマップ2画面分をメモリに格納して、それをスクロールに合わせて書き換えてる (偶数ぺ―ジ:0500-$05CF、奇数ページ:$05D0-$069F) んで、豆の木出す時に穴を塞ぐ処理を$B0C4でやってるんだけど ここで格納されてるのは、偶数ページの座標X=4,Y=11のブロック情報なのよ ニコニコにクリア動画上がってたはず と思って探してみたら、歯抜けで削除されてた MARIO MAKERの影響かTAS動画や改造マリオ動画が通報されて消されまくっている(…のか?)のは、なんか違う気がするな ループとかルーム間移動とかの仕様の違いはあるかもしれないけど、裏技無し系の改造マリオの再現程度はできるからか !マリオ長らくプレイしてないけど、4-1かぐらいで忘れたけどクッパ斧ダメージでデカチビ逆転して進むとこなかったっけ? ダメージ食らった直後にブロック崩せる状態が必須ってこと? おそらくそうだな 4-1をチビ状態でスタートすると詰んじゃうってことかな ちなみに>>267 の書き込みは>>262 と同一人物です はやマリオ消えてたのか… 逆に死屍累々さんのとかは生きてるのね 削除の基準がよくわからん >>262 Re-Distributionに リプレイデータがあるでしょ スーパーマリオ30周年おめでとうございます 1995年がつい最近の出来事にしか思えませんが あの当時でもたった10年しか経ってなかったんですねぇ… 遠い目 もうマリオメーカーも出ちゃったし みんなも改造はそっちに移行しちゃう感じ? 今からFC用の支援パッチ集めようにもサイトが閉鎖されてたり うpろだが死んでたりであまり当時のパッチを集められなかった・・ トゲパッチとか水中でコインを叩けるパッチとかもうないんだよね 多くのパッチを持ってる有志が消えない場所にアーカイブしとくのが理想的だな マリオ文化を絶やさない為に WIIのメーカーなんぞはプログラムの原理が違うし初代のバグ利用ができんだろどうせ 改造は独自要素を加えた王道系で作りたいのがまだいくらかあるんだけど、 リアルのほうがいわゆるデスマ状態でここ半年SMBUtilすら起動できてねえ >>273 節子、それ10年やない、20年や! >>274 マリオメーカー買ったけどガチで期待外れだった ていうかSMBX遊ぶほうがマシなレベル >>276 95年はマリオ発売からたった10年しか経ってなかったって意味ね そして当時から今までの20年はファミコン時代の濃厚な時の流れと比べたら数年レベルしかない感覚だ… >>276 うーむ。期待はずれでしたか 確かに初代の裏技やテクはできなくなってる感じだしなぁ >>275 マリメカの制作放送見てて久しぶりに改造熱に火がついたんだけど 支援パッチが手に入りづらい現状を目の当たりにして みんなでパッチを持ち寄って保管しあえないものかなってちょっと思ってる トゲパッチの復元に成功・・他のパッチも復元できないか試してみる。 SMB30周年おめでとう! 発売当初、開発者様方もまさか改造されるほどに幅広い人気を得るとは思わなかっただろうなぁw マリオメーカーまだ起動できてないけど、 作り気を刺激されたら改造マリオもまた弄ってみたいな 王道系は需要なさそう 経験上 基地外マニアが激難系求めるのが関の山 この鯖も書けねえのかよ・・・ おπ送り気勢きつすぎだろ マンゴーまじ死ね >>276 王道系は需要なさそう 経験上 基地外マニアが激難系求めるのが関の山 >>Ybg3JXLZ お前が近年のSMB1事情に疎いにわかというのはよくわかった >>284 ほう ではその事情とやらに詳しいお前が説明してくれ 水中の滑らかな浮遊感は死んだ岩田社長のプログラム 先人の遺した偉大なゲームを私達は遊び続ける 確かにマリオは一生遊んでいられるゲームだと思う。 改造?改悪?を始めてからは特にそう思う。 ただ俺には6502とか逆アセンブリの知識がまるでないんだ そこら辺を自由自在にいじれるようになったらきっと楽しいと思うんだけどなぁ。 6502の知識が無くても、大抵の欲求はSMBUtil、SMBRemodeler、YYCHR辺りで叶ってた気もするw ただ、SMB以上のことができない制約はあったから、 強制スクロールとかのギミックは、逆アセンブルテキストとの戦いだったっけ すずめ愛好会とか懐かしい…今はNES研究室辺りがメジャーなのかな 4-2で半分スクロールさせ消えたツタは捕まるとスタックしますが抜け出せる場合があります 左半分以上消して右から出る場合を除く ツタを出して「伸びている間」におおむねブロック半分までスクロール→それでスタックしてもジャンプ連打+↑入力をすれば痙攣マリオが登って行く場合があります お試しください 正確には→+↑入力です なおチビマリオではできないと思います 初代マリオで甲羅蹴っ飛ばしてブロック壊したり ?ブロック開けたりする改造ってかなり難しい? エクストラマリオブラザーズみたいに完全に別物にまで完成してる改造もあるからイケるんじゃね ファイアでブロック壊せるしなあれも 例えばマリオ3の横壊し横開けを管理してる箇所? マリオ1にコピペしてそこら辺を読みこめばいい・・って敷居高いな! そこまでいくともう1からプログラム組むのとあんま変わんなそう コウラでブロック破壊はSMBアーカイブに上がってるやつで実装されてるぞ Rohrleitung Gateって作品 簡単か難しいかっつったら難しいだろうけどなぁ もちろん知ってるとも、あの改造は凄かった。 問題はその部分を引っこ抜く技術が俺にはないという事だ・・。 (´・ω・`) しかもスーマリはコピー防止も視野に入れてプログラムを難解にしてるらしいからな コピー防止目的で難解にしてるってのは初耳だな 容量をいかに節約するかって組み方から、可読性が低いソースになっている感じはするけど コピー防止まで考慮されていたとは思わなんだ なんか30周年の裏話みたいなんで書いてあっただけだし 話を適当に盛ってる可能性はある 後日談なんていくらでもこじつけできるしな >>298 ないない 1byteの容量を削るために飢えた 当時の技術者なら 普通に思いつく程度のトリックをつかってるだけ >>301 普通に思いつく程度、とはいうけど あれだけの密度をしっかり40KB内に収めた腕前は正直凄いと思うんだ… 容量は小さいけど可読性の低いスパゲティコードでしか収まらないサイズだし ライブラリ組んで可読性は高くなるけど容量大きくなる傾向の現在とだいぶ違う 改造マリオって何十周年になる? 最初の改造マリオってトンカチとかマリブラザーズなんだろけど 機会があればやってみたいねぇ マリブラザーズの方はパッチ公開されてるのかも謎だけど メモリアルな年数迎えたとしても、このまま死に体じゃあ素直に祝えないぜ… 久しぶりにSMBUtil開いてみたけど、マリオメーカーじゃできないことって結構あるんだよなぁと実感 あっちは案外、置けるブロック数やステージの長さが物足りないわ 確かにメーカーは2フロアを上下に区切って土管でつないでも、断然短い オブジェクト数の制限はあっても、改造マリオの方が長いルーム作れるなぁ でもまぁいいんじゃないか?死に体でも 本来陽の光が当たるところでガバッと遊ぶもんでもないし FCの改造マリオが好きって連中がほそぼそと遊んで命を繋いでいくくらいでちょうどいいと思うよ >>307 プログラム弄れる人は自分好みにカスタマイズできるのも FC版改造マリオの魅力じゃろうな なんか好きな改造マリオある? あったら教えて?わしは sakura.nes seasideisland 水夏withSMBとか この辺が好きだった マリ ブラザーズ とかいうタイトルには衝撃を受けたw 中身は知らん ノーマル系 Strange Mario Bros 前半のフリーダムさが好き Frank`s Ultimate 3rd 1週目のバランスが好き あとExtra Advシリーズとか ハード系 !マリオ これまた絶妙なバランス ハゲオ体験版 1-1のみの城の奴 改造初プレイゆえの単なる思い入れ グラフィックがリンクの冒険になってる改造はわろた 逆だったかな?リンクの冒険にマリオだったか… まあ初期の改造は粗製濫造で楽しかった そういえばネット始めた最初の頃あなたの知らないマリオってサイトから256Wとか改造マリオ知ったなあ あの奇怪なステージとか見てるだけで面白かった あのサイト覚えてる人いる? みんなそれぞれ好きな改造マリオってやっぱ違うんですな そこが面白い。だからもう少しだけ語りたい 王道系ならやっぱマリオマニアやマリオファンは外せないと思う マリオファンはコマンドプロンプトの使い方がわからなくて起動させるまでに苦労したっけなぁ あとはベータ氏のマリオタワーやランドマイズ。あれも好きだった なんでベータ氏サイト閉鎖してしまったんだ・・ あとは裏技系だとスーパーマリオABCステート無しでクリアできるようになったらかなりかっこいいマリオだと思う バグ系で言ったらスーパーマリオRegistryマリオと同じ顔で驚いてる自分がいる あとはkiriって名前の王道系のやつバランスよくて好き それとjigokuとgokudoあそこまでオブジェクトの配置が雑すぎるともはや個性だね あとは帰り氏のルイージ踏みとAlcatraz、DSに入れてやってたけど難しかったな スーパーマリブラザーズって動画だけでもぜひ見たいねぇ トンカチマリオは素敵だった 長文レス失礼しますた(´・ω・`) ベータさんとこはInfoseekだから消えちゃったんじゃなかったっけ kiriって霧風さんとこのかと思ったけど、スター手裏剣シリーズのことかな 確かにあのバランス調整はいい感じだったなぁ 王道なら、ワンダーシリーズや、みかマリシリーズなんかもよかった わんだー氏のあれ、出回ってる詰め合わせの奴がバグっててねぇ わんだー氏本人がHP再開時に自分の作品無くしたって言ってて、某氏がアップロードした奴。 41,488バイトのが正常なのにsmbfixかけてから再パッチ化されて40.976バイトになったっぽい奴だから、 プログラムが存在しない領域(トレーナーって$7000台だっけ?忘れた)を参照しようとして止まるんだよね。 >>319 さっき起動させてみたら確かに霧風氏の作品だった! ベータ氏はInfoseek以外でも再開してほしいなぁ。このまま消えるには惜しいマリオやパッチがいっぱいあった >>320 さっきフォルダの中のNESファイルの中に WONDER1〜4と2000、Wonderfulmario2ってのを見つけたけどこれ? 起動は確認したけどクリアできるかはわからない。 SMBUtilで開けたから多分バグで止まることはないかと。 ただリードミーテキストが無いせいでWONDER2、3が6-4で終了なのかまだ未改造なのかがわからない 欲しければパッチあげるよ?転載禁止なら氏のホームページ教えてほしい。 本人に渡して再配布してもらうように頼んでみる。 >>321 いや、wonder4と2000のゲーム自体は起動するんだけど、具体的に言うと毒キノコを取る・敵が弾け飛ぶ等が起こるとフリーズするんよ 毒キノコの処理は1UP潰してるだけみたいなんで、 わいわい氏のパッチ方式で書き直せばなんとかなりそうだけど、 弾け飛びの処理はよくわからん あとwonderfulmario2っていうのは霧風氏沙作くのオマージュ?リスペクト作品? (を作ろうとしたけど自分テイストの濃い違うものが出来た云々)で、わんだー氏の作品じゃないよ >>322 わしのも確認したらフリーズしたわ(´・ω・`) あとはマップインポートと毒キノコパッチで限りなくオリジナルに近いものを 復元するくらいのことしか思い浮かばないや(´・ω・`) トレーナー付きとか懐かしい響きだなw そのトレーナー付き用のパッチならこちらから提供できるけども、需要あるだろうか このスレの最初のほうのレスにわんだー氏のを発掘したとかいうレスなかったっけ? >>325 ほんとだ。レスが有るね wonder5は知ってるけどhardstyleってのは初めて知ったな >>324 毒キノコや甲羅蹴飛ばしでフリーズしないならきっと需要あると思うよ? その時は「単にトレーナー化パッチ」もセットにしていただけるとありがたい。 wonder2000と4はコーズの復元だけなら出来た。 タイトルの色が違うのとデモレコーダーの再現ができなくて完全復元というわけにはいかなかった(´・ω・`) 8-4で空中から謎のパックンが出てくるバグがあるのか 一体どこまで奥深い世界なんだ 子供の頃に8-4の天井からキノコ出てきた時は驚いたものさ(´・ω・) それマジ!? 覚えてるなら詳細を ちなみに空中パックンは8-4コインのあるループの所で土管を行き過ぎた時に左に出現するらしい もちろんマジさ 今でも覚えてる。8-4のパタパタが2匹跳ねてきて隠し1ブロックを出して空中ドカンに入るところ その辺りの天井を叩いた時にキノコがポロッと出たのよ。 と言っても天井伝いにスーッと行ってしまったんで絶対に取れなかったけどね(´・ω・) その現象を見たのは後にも先にもその一回きり、当時は幼稚園か小学校低学年だったんで もちろんFC実機での事だった。 ちなみに空中パックンのバグは初めて聞きました。 ほほー… あの辺りには何か秘密があるようですね… 特に怪しいのはループの継ぎ目に関連してるっぽい雰囲気がする あらら、サイトが見つかってたんならお役御免かな トレーナー付きにするパッチは、確かwinipsで作るとほぼROM出てきちゃうから厳しいな 単純にトレーナー付けるなら、バイナリエディタで0006h番地を"01"⇒"05"に変えて、 0010h番地から512byte分の"00"を挿入すればできあがりさね トレーナー無し用である程度再現できたら、それはそれで需要ありそう >>332 氏のサイト訪ねてwonder2000と4のパッチ当ててもやっぱりフリーズした トレーナー付きのROMに当ててもダメだった(´・ω・`) >>333 問題はどこにうpするかなんよね 完全復元ではない以上「こっちを使ってください」死んでも言えない まずは復元したものでも本人に許可取るべきだろうか?(´・ω・) >>334 おかしいな、某配信者はそこから落としたやつで5プレイしてた エミュが対応してないのかもしれん FCEUX、Nestopiaとかそれ以降のはトレーナーサポートしてないからそれかも >>335 調べてみたらvirtuanesとかなら、ちゃんと起動するみたいねNestopiaでやるとフリーズした。 ただサイトからのDLだと各タイトルとスクショがズレてる上にwonder1と2が無いみたい? 1と2は出回ってる詰め合わせの奴で問題なさそう あとwonder4 2-3中間地点以降で死ぬと詰む 3-3中間地点以降で死ぬと空中からスタート 4-3中間地点以降で死ぬと詰む 個人的には、中間で詰むのはルーム移動先の設定ミスによるフリーズ並みにシラケるが いっぱいあるのは、罠としてあえてそう作っているんだろうな >>338 某アトランティスの42面と同じ匂いを感じるな フリーズを正当化する王道系とか聞いた事無いんだけど そもそも後発の5もそういうの排除してる方向性だし単なるチェックミスだろ というかどうしてそういう解釈になるのか改造SMB的な面での読解力を疑うわ 雲に捕まるとフリーズの世界に連れて行かれることもあったが、確かにあれは正統派ではなかった 最初の改造マリオとされるトンカチからしてフリーズや中間ハメは仕様とされているから業が深い もしかしてここ数年の作品もチェックしてない古参だか新人だかもいるのか 2年半ほど前、旧UPローダーに草木が邪魔なるフリーズも仕様だと謳った作品を投下していった剛の者がいた ID変わってるけど俺342 >>343 ああそういうことか wonder4の事言ってるんかと思ったわすまん 気がつくと作成中のまま放置状態で数年経過している改造マリオなんかがあって 試しに完成済み部分をプレーしてみるものの、自分自身クリア出来なくて笑う ここの住人の目に留まってない改造マリオがあるならそれは比較的まともな作品 難易度高すぎて自分にはクリアできそうにないのも多いが、プレイ動画見てる分には、他人の作ったやつは概ね楽しい 個人的には難しい裏技をステートで突破するやつよりは、難易度控えめの非裏技系なんかが見つかると嬉しい 俺ももうステート使わん奴しかやってない 裏ワザ系は後期になって即死トゲと壁抜け壁ジャンとスローで過度な作業ゲー化しすぎて飽きた 最初は裏技ステート多様マリオやってたけど だんだんマリオ2的な難易度の改造マリオを好んでやるようになったなあ 俺にはノーセーブノーコンティニューで程々に達成感を味わえる難易度がちょうどいいよ >>229 1年後の発見ですがこれは抜けられます しゃがみジャンプ中右入力で1ドットずつズレていきます シビアなコントロール必須ですw 高さ1スペースデカマリオしゃがみ強要を利用した鬼畜マリオとか作ったら面白そう 4-2の豆の木消えたブロックで足の裏がくっついたようになった場合とかも、もしかして同じように脱出できたりする? もし脱出できなければ、違う現象だったと言える材料が増えるというだけの興味本位だけど ツタにハマった状態はしゃがみジャンプで抜けようとしてもやっぱりツタをつかんでしまって脱出不可能みたいです さっき試しました ツタハマリは根本的に横に行こうとしても戻されるものだという事 そして>>289 のように伸びている時にツタ表示を消した場合はハマりから脱出可能な場合があります ツタが伸び切らないんですが原因わかりませんかね? ほかの配置物との兼ね合いなんでしょうか 大体そう 敵が5体画面に出てると大体止まる パックンフラワーなんかは倒しても死骸残るからキャラオーバーの一因になりやすい あと仮に伸び切ってもブロックの高さ配置6以上からじゃないと画面上部に届かない なるほど表示止まるのってキャラ数依存だったのかー 画面上部のツタ触ると強制的に登ってしまう動作も気になる スーマリに関しては発売2−3年であらゆるバグが発見されてるよな 6-3の謎リフト線とか256Wとか 当時ファミコン雑誌でそういうの知るたび心躍ったものだ 天秤リフトのあるところでキラー踏むと線が出るやつ、改造マリオだとゲッソーなんかでも同じような線が出てたな マリオメーカー並に使い勝手のいいハックソフトてないの マリオメーカーできることなさ杉てクソつまらん マリオのバグを利用してマリオ内にマリオメーカーを作ってしまえ スーパーマリオワールドのようにな >>364 お前が作れよ C#ならドラッグ&ドロップの処理だろうが C++の時代より簡単だろ 今ある質のいいツールに文句出る時点でそもそもハック作者に向いてないし、ましてやツール作るなんて無理だろう 時には縁がないと思い諦めることも必要だ マリオメーカーは、水中のこれじゃない感、初代スキンのデカキャラや本来存在しないキャラ混在のこれじゃない感、 スクロールのこれじゃない感で、改造マリオっぽくなくて、発売までの動画見たそのような感想から結局購入を見送った 正直SMBXのほうが出来が良い あっちはレイヤーとイベントの組み方次第で色々出来るし 手軽さ重視で遊びも入ったI/Fは流石だと思ったけどな マリオメーカーそのものがちゃんとゲームしてる感じ そりゃあ改造やフリーツールと比べるとできることに差はあるけど、これはこれで十分おもろいや 1-2で最初の連クリボーを同時踏みで倒す (降ってきてから動かずその場で待った) 右にBを使わず歩いて行って最初のブロックで右連打でマリオが左の位置にずれていく事を起こす 次にジャンプして2番目のブロックを飛び越した所で何かを「踏む音」がしました!!マリオが反動で浮いたかはメモリを見ていて不明です チートやエラーでは決してありません!! 多分見えないクリボー判定が発生したと思われます 聞き間違いでもないと思いますので1-2のこの場所で再現可能かを検証したいと思ってます https://www.youtube.com/watch?v=vhsuPO8oCtc 現在ではこの見えない判定というのは存在が認知されており、不可視クリボーを踏んだのもありえるはず よくわからんけどページ送りコマンドとそのページ先頭キャラの改ページフラグか何かが化けてバグるのかな キャラの残骸が残るんでしょう 6-3リフトの糸も1画面前のリフトが描写されてると思われます クリボーかノコノコを倒すと大体1画面後に何故かパックンに変化して当たり判定が出現すると マリオが死んだ後も透明落下が継続しててハンマーにだけは当たって死に続けるのと似たシステムになっている 改造マリオ詳しい人に聞きたいんだけど、オリジナルの8-1みたいな長いルームでオブジェクト動かそうとすると 8-1で言う17ページ目のページ送りコマンド付近で並びが変わったりしない? 仕方ないから直前と同じ無意味な背景変更に変え改ページフラグ入れて元と同じ見た目になるようごまかしてるんだけど なんでそうなるか法則わかってないから、並びが勝手に変わりそうでページ送りコマンドが怖くて使えない ツタ左右同時押しワープ後時々マリオが前を向いてるのに後ろにファイアが出ますね この状態で土管の「中にいるパックン」を倒す事もできる 普通に左右同時押しの高速バックファイアなら当たるけど ファイアが頭のてっぺんから出ることを利用して上から降ってきた敵をシューティングのサイドアタック的に倒して進む みたいなコンセプトの改造マリオ思いついたけど、ブロック配置や敵の配置うまくいかなくて俺には実現できそうにない あまり話題に上がらないけどスーパー丸腰ブラザーズ1と2は隠れた名作だと思ってる ttps://www.youtube.com/watch?v=jWFb4tT76tY Luaを駆使してるらしい カセットを斜め挿ししたら画像がいい感じにバグってくれるよ Googieはマジで進歩ねえなあ 相変わらず土管と横ハテナしかねえじゃねえか 帽子(を除いて背景色になった)マリオ 足元見えないと、地味に操作しづらそう 昔デフォマップだけどマリオ以外何も見えない「マリオマスター」ってのがあったな 透明な地形や透明な敵は時々改造マリオで見かけることあるけど 操作する側のマリオを透明にするってのはまた違う難しさがあるな SMBアーカイブのロダとうとう終了?(遮断って、出る) 今回、SMBアーカイブのトップページは見えるけど旧UPローダーはDSNエラーになるな これまでぶっとびNET不調のときの多くはトップページ自体見えなくなってたが、ついにロダ逝った? 消滅疑い多くて疑心暗鬼 新UPBBSん時と同じような落ち方してんのね 高負荷CGIを検知〜とかって出るけど、ちゃんとphpだしあそこのどこが高負荷やねん http://betaworld.hp.infoseek.co.jp/tool.html にあった 改造マリオ「ベータマリオ」誰かもっていませんか? どこにもアーカイブが残っていない >>372 の現象はLUA使用により簡単に探せますねえ HITBOX表示のやつを使えばクリボーを踏んだあとマリオの進んだ位置によって時々一瞬当たり判定が出現しています クリボーも踏んだけど当たり判定が出たり出なかったりと良く分からん法則があるようですが 1-1で最後のクリボー2匹踏んだあとゴール前に当たり判定が出現するのもHITBOX枠で確認できます ポール超えした後もずーっと判定が残るのでやってみれば楽しいかも? あと4-2で右寄せした状態でツタを出し、戻ってフラワーを出すと空中に当たり判定が出現します これも延々残るので当て続けられます 5-3でも永続当たり判定発生を確認 最初のクリボー2匹をノンストップで踏み抜ける ファイアで倒すのではなく必ず踏まなければなりません 後ろの1匹だけでもいける時があります そのまま進んで(Bダッシュし続けの方が成功しやすい傾向)次の上下パタパタくらいまで来たらクリボーを踏んだ高さ付近に空中にファイアがヒットします マリオの少し後ろ側、点数の下〜コインの表示の範囲ですね これは当たり判定が簡単に出現したりしなかったりと条件は確定しておりません キラーの出現と関連しているかも?ともあれLUA見ながらならすぐ分かる 当たり判定が出たらずーっと維持されたままなので、ゴールの高台の一番上で当て続けると楽しいです さすが過疎ってるとはいえSMBのスレ この何気にまだ残ってるところがスゴイ ようつべで改造のマリオ3とかの動画が英語でうpされているけどあれってオリジナルのROM がないと遊べないの? 改造元のオリジナルROMデータを吸い出して持ってる前提だし、差分パッチ単体では遊べない敷居の高さはあるな 差分パッチを配布するのは、改造してあるとはいえ、ほぼ原作そのままのROMを直接配布するのは違法性が高いからで 取り敢えずスーマリ立ち上がって、 タイトルの後にデモが動き出したら、 イジェクトを使い本体が電源ONのままで、 カセットを強制排出し、 入れ替えでテニスを強制的に差し込む。 リセットボタンを押してタイトルが出たら、 プレイ開始。 ボールを3ないし4回上に上げた後に、 相手コートに打ちつつ、 プレイヤーを右端まで移動させ直ぐにまた真ん中辺りまで戻り、直ぐに先ほどと同様に電源をONのままで、 カセットを強制排出。 スーマリに入れ替え、リセットボタンを押してタイトルが出た後に、 プレイすると9-1とかが始まる。 テニスプレイ中の動作そのものよりも、テニスをプレイしてる時間でコンティニュー先の変数が書き変わってるとかで テニスを同じようにプレイして狙って同じタイミングにすれば何度でも同じワールドを再現して遊べるとか Romhacking.netのSUPER ASCII BROTHERSを元にCHRをMZ-700風に変えたヤツをスーマリ用のハックツールを使って作ってみた。 自分的には難易度やコース、ギミックの改造にはまだまだ興味が湧きません。 無敵時のパレット変更や1UPキノコを点滅させたりしたいけど超初心者なのでバイナリエディタはまだまだ使えませんです… _(:3」∠)_ オデッセイにて、不可解なバグがあちこちに見受けられますね。 リンクをステージの壁にめり込ませると、そのままステージの外に転落してダメージを受ける。 ※リンクの場合は、奈落の落とし穴に落ちると、ハートが1個減るダメージを受けて、先程に飛び込んだ場所に戻される。 これは昔のゼルダからの仕様だ。 ちなみに、不可解な落下バグでも、ハートが残り1個でやると、 ステージの外にめり込む形で落下して、リンクの姿が見えない状態のままで ゲームオーバーの文字が浮かび上がるだけになります。 ま、奈落の落とし穴に落っこちたら、リンクの姿が見えるわけでもないや…。 オールナイトニッポン版スーパーマリオブラザーズのROM版作って見ようと思い、 スーパマリオブラザーズ2(SMB2J)のFDS版とMMC3版(ハック)のバイナリを比べて みたが意外と差異は少なかったので、できない事はないと思った。 >>157 亀レスだがワールドセレクトはSuper Mario Bros 2 (J) (Kaiser Pirate) [マッパー142]に実装されていた。MMC3版もこのコードが導入されているのでは >>158 kaiser版 $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C >>158 手元にあるMMC3のワールドセレクト対応版も >>409 と同じになっていた。 オリジナルと自分がパッチしたやつが混在していてもはや分けの分からない 状況だが >>158 マッパー40とマッパー4のROMを取り違えていたは SMB2J-マッパー40 ワールドセレクト無し $447E AD FC 06 29 10 F0 $447D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 50 07 A9 00 8D 60 07 SMB2J-マッパー40 ワールドセレクト無し $447E 8D FA 07 8D FC 07 $447D 8D FB 07 AD 00 60 $4507C9 00 90 0A AD FC 06 29 80 F0 03 EE SMB2J-マッパー40 ワールドセレクト有り $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C SMB2J-KAISER-マッパー142 $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C >>158 また間違えた SMB2J-マッパー40 ワールドセレクト無し $447E AD FC 06 29 10 F0 $447D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 50 07 A9 00 8D 60 07 SMB2J-マッパー4 ワールドセレクト無し $447E 8D FA 07 8D FC 07 $447D 8D FB 07 AD 00 60 $4507C9 00 90 0A AD FC 06 29 80 F0 03 EE SMB2J-マッパー4 ワールドセレクト有り $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C SMB2J-KAISER-マッパー142 $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C >>158 >>412 更に訂正 SMB2J-マッパー40 ワールドセレクト無し $447E AD FC 06 29 10 F0 $447D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 50 07 A9 00 8D 60 07 SMB2J-マッパー4 ワールドセレクト無し $447E 8D FA 07 8D FC 07 $447D 8D FB 07 AD 00 60 $4507C9 00 90 0A AD FC 06 29 80 F0 03 EE FB 07 4C EC SMB2J-マッパー4 ワールドセレクト有り $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C SMB2J-KAISER-マッパー142 $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C >>158 >>411-413 また完全に間違えていた。 マッパー40は調査中 SMB2J-マッパー4 ワールドセレクト無し $447E 8D FA 07 8D FC 07 $447D 8D FB 07 AD 00 60 $4507 C9 00 90 0A AD FC 06 29 80 F0 03 EE FB 07 4C EC SMB2J-マッパー4 ワールドセレクト有り $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C SMB2J-KAISER-マッパー142 $447E 8D FA 07 8D FC 07 $447D EA EA EA 4C EC C4 $4507 C9 00 90 0A AD FC 06 29 80 D0 03 EE FB 07 4C 分析してみた結果 SMB2J-マッパー4は少なくとも2種類のビルドがあり、 片方はSRAMが無効かつワールドセレクトルーチンが無く、 もう片方がSRAMが有効かつワールドセレクトルーチンが 無効であると思われる。つまり後者は後からSRAM機能と ワールドセレクト機能を追加したのだろう。 >>158 >>411-414 まだ間違いあった。酒飲み過ぎたかも マッパー40は調査中 SMB2J-マッパー4 ワールドセレクト無し $447E AD FC 06 29 10 F0 $447D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 SMB2J-マッパー4 ワールドセレクト有り $447E 8D FA 07 8D FC 07 $447D 20 00 FB 4C 50 F8 $4507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 SMB2J-KAISER-マッパー142 $447E 8D FA 07 8D FC 07 $447D 20 00 FB 4C 50 F8 $4507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 結論 SMB2J-マッパー4はSRAM機能のあるものと無いものがある。 いずれもワールドセレクトルーチンがある。 FDS版はどうなっているかというと @AD FC 06 29 10 F0 A8D FB 07 AD 9F D2 BA9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 となっていました。オフセットは同じです。(ちなみにROM版のアドレスは iNESヘッダを含めたROMファイルのアドレスです。 マッパー40版はマッパーが異なるのでROMイメージでの場所も異なりますが、 オフセットは同じです $047E AD FC 06 29 10 F0 $048D FB 07 AD 9F D2 $0507 A9 00 20 00 E0 A9 00 8D 5C 07 A9 00 8D 60 07 三番目のコードがFDSやマッパー4のものと異なります >>158 >>411-415 アドレスが… SMB2J-マッパー4 ワールドセレクト無し $447E AD FC 06 29 10 F0 $448D 8D FB 07 AD 00 60 $4507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 SMB2J-マッパー4 ワールドセレクト有り $447E 8D FA 07 8D FC 07 $448D 20 00 FB 4C 50 F8 $4507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 SMB2J-KAISER-マッパー142 $447E 8D FA 07 8D FC 07 $448D 20 00 FB 4C 50 F8 $4507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 >>417 マッパー40 $047E AD FC 06 29 10 F0 $048D FB 07 AD 9F D2 $0507 A9 00 20 00 E0 A9 00 8D 5C 07 A9 00 8D 60 07 三番目のコードがFDSやマッパー4のものと異なります >>416 比較しやすいようにSM2MAINのプログラム部に16バイトのヘッダを付けて $647E AD FC 06 29 10 F0 $648D 8D FB 07 AD 00 60 $6507 A9 00 8D 5F 07 A9 00 8D 5C 07 A9 00 8D 60 07 エミュレーターで起動してワールドセレクトルーチンを探してみます。 でFDSとマッパー40で同じコードがあるか探したがやはり無いようです >>421 マッパー40のはKAISER(マッパー142)と似ていたので、とりあえず、 (実機アドレス) $E000〜$FFFFに該当する部分をKAISERのものに置き換えたら ワールドセレクトが出来るようになりました。 FDS版のワールドセレクトの実装は容量的に厳しい感じです。 SM2MAINは殆どMAX容量を使っています。 ROM版のワールドセレクトは$E000〜$FFFFの部分に実装されていて、 これはDisk BIOSのエミュレーションとバンク切り替え制御のサブルーチン等が 入っています。FDS版ではこの部分はDisk BIOSが占有しているのでユーザー が書き換えることはできません。 >>422 間違えました。失敗でした。起動するファイルを取り違えていた。 起動しませんでした。しかし容量てきには余裕はある w7nです。まだMario Gaidenを作っています。 誰かがChacky(Super Mario Freedomの作者)の連絡先を知れば教えて下さい。誠にありがとう。 GBAの"ファミコンミニ"からNESのROMを取り出す方法があるみたいだが、 ("ニンテンドークラシックミニ ファミリーコンピュータ"では無い) FDSのROMは取り出せるか調べてみたが、メモリ上に展開されたデータを 取り出してみたが、独自の形式になっていた(QD形式と互換性はあるのか不明。) どうもデーターが少しパッチしてあるようで違うようです。 で早速試しにSM2MAINのデーターに該当する部分を本家のFDSにコピーして 起動してみたが起動せず、エミュレーターによっては未定義命令でエラー。 またDISKBIOSもメモリーに展開されていたのでこれを使ってFDSのソフトを起動 してみたが起動せず、エミュレーターによっては未定義命令でエラー、 しかし未定義命令を無視する設定のあるエミュレーターならNINTENDOの画面と 音が出たが、読み込みが進まないようだ。 誰かQDをFDS変換するツールMGD1CNV持っていないかな? ぽんRev!!さんのファイル置き場(SkyDrive)にあったやつ データー構造解析中 とりあえずファイルの前はFDS形式ではブロックID3とブロックID4の計17バイトあるが、 GBAのものはファイル名の8バイトが省略されて9バイトとなっている。 ブロック01も省略されていて10バイトになっており、 メーカーコード、ゲーム名称、ゲームバージョンで残りの部分が不明、 ブロック02はそのままで2バイト まとめ ブロック01 ボリュームラベルブロック 10バイト (Byte) 位置 機能概要 1 メーカーコード 1 16 メーカーID (メーカーID表を参照) 2 ゲーム名称 4 17 ゲーム名称 (FMC-LNK等) 3 ゲームバージョン 1 ゲームバージョン 4 不明 1 不明 5 不明 1 不明 6 不明 1 不明 7 不明 1 不明 ブロック02 ファイル数ブロック 2バイト (Byte) 位置 機能概要 1 ブロックコード 1 1 ブロック識別コード ($02=ファイル数ブロック) 固定 2 全体ファイル数 1 2 片面に収録されている全ファイルの個数 ブロック03 ファイルヘッダブロック 16バイト (Byte) 位置 機能概要 1 ブロックコード 1 1 ブロック識別コード ($03=ファイルヘッダヘッダブロック) 固定 2 シーケンシャルファイル番号 1 2 先頭から順番に振られた番号(DISK-BIOSでは未使用) 3 ロードナンバー 1 3 ディスクシステム起動時や、ディスクアクセス時にキーになる番号 4 ファイルロード先アドレス 2 ファイルをロードする先のアドレス 5 ファイルサイズ 2 ファイルサイズ 6 データ格納先 1 ファイルロード時のデータ格納先 0=メインメモリ 1,2=VRAM ブロック04 QuickDisk ファイルデータブロック 1バイト〜(可変長) 項番 項目名称 サイズ (Byte) 位置 機能概要 1 ブロックコード 1 1 ブロック識別コード ($04=ファイルデータブロック) 固定 2 ファイル実バイナリデータ 不定 2 ファイルの実データ(可変長 0バイト〜64,000バイト) あとはGBAのROM上では圧縮されているので、圧縮方式が分かれば 中身の置き換えが出来るかも。 ちなみにファミコンミニのROMのソフトはNESヘッダが付いていないようです。 ファミコンミニの第2次スーパーロボット大戦を英語のするパッチ作った人がいるから、 作ることは可能だろう。しかし圧縮かスクランブルかかってるがその情報が全然 見つからない。 nes_classic_zelda_crack-howto_internal_gba-rs.zipか nes_classic_zelda_crack-howto_internal_gba-rs.7zって というドキュメントに詳細なハック方法があるようだが もはや何処にも無い… >>436 ファミコンミニの第2次スーパーロボット大戦を英語化するパッチ作った人がいるから、 作ることは可能だろう。しかし圧縮かスクランブルかかってるがその情報が全然 見つからない。 関連情報 Classic NES Series Anti-Emulation Measures https://mgba.io/2014/12/28/classic-nes/ >>436 たぶんROMはGBA BIOSのファンクションで展開できるLZSS(GBA LZ77)で 圧縮されていると思うが、ヘッダ情報は解析しないと分からないな。 205名無しさん@お腹いっぱい。2018/01/01(月) 09:47:21.51ID:jkJabgVJ 解析の結果とても素人じゃ無理だと分かったので、気合でネット上探しまくって R@M見つけたのでパッチ作りました。32Mbit(4MB)のROMイメージにパッチして 下さい。そのごお好みで8Mbit(1MB)、2Mbit(256KB)にトリミングしてもいいです。 Famicom Mini - Dai 2 Ji Super Robot Taisen (J) (Promo).ips https://www.axfc.net/u/3875791.zip Famicom Mini - Kido Senshi ZGundam Hot Scramble (J) (Promo).zip https://www.axfc.net/u/3875880.zip Famicom Mini - Vol. 01 - Super Mario Bros. (J) (V1.1).zip https://www.axfc.net/u/3876221.zip Famicom Mini - Vol. 02 - Donkey Kong (J).zip https://www.axfc.net/u/3876222.zip Famicom Mini - Vol. 03 - Ice Climber (J).zip https://www.axfc.net/u/3876223.zip Famicom Mini - Vol. 06 - Pac-Man (J).zip https://www.axfc.net/u/3876224.zip Famicom Mini - Vol. 07 - Xevious (J).zip https://www.axfc.net/u/3876225.zip Famicom Mini - Vol. 08 - Mappy (J).zip https://www.axfc.net/u/3876226.zip 夢工場ドキドキパニックのROM版 Doki Doki Panic (FDS Conversion).nes を見つけた。 マッパーは103のようだ オールナイトニッポン版スーパーマリオブラザーズを逆アセンブル中 オールナイトニッポン版スーパーマリオブラザーズをカセット化しようと思ったら、 プログラムを$6000から置けるマッパーを使用して、$E000から一部DISKBIOSのエミュレーション 及びバンク制御等を実装すればいけそうだな。$E000の部分はカセット版スーパーマリオブラザーズ2の データを使用して、バンクもそれにならってデーターを配置し、DISKBIOSを呼び出して いる所をパッチすれば理論上動くはずだ。 MMC3版のSMB2Jは中国の海賊ROMを元に作られました。 MMC3版は無理やりというか$6000がRAMになっているのでそこに プログラム置いている。$8000からはバンク切り替えで配置している。 シンプルにSMB2のファイルを$6000から置けるマッパー(例えばFME7)に入れて テストしてみると、タイトル表示までは出るんだよね。クリア回数でFDSの機能 呼び出すからハングしている感じ。 >>423 FDSはディスクのデーターをRAMの好きなところにロードできるので、 ワールドセレクトのデーターを置くことは出来るだろう。 ROMチェッカーはトレイナー付のROMは読み込んでくれないな。 トレイナー付ROMを作成する場合は先にトレイナー無しのROMに ヘッダをトレイナー有りにしてから、バイナリエディタでNESヘッダの後に 512バイト分00を追加すればいける トレーナーは、もともとゲームを特定のマッパーにハックするために使われた512バイトの コードブロックでした。 トレーナーは廃止され、現在のエミュレーターによってほとんど 無視されます。 トレイナー領域はハック用に追加のプログラムを置くことができます。 たとえばマッパー0のROMでプログラムが32KBを超えて容量が足りない場合 の追加コードに使用されました。トレイナー領域のプログラムは$7000から 512バイト配置されます。トレイナーを要求するROMのトレイナーを取り除く場合は $7000にプログラムを置けるマッパーを使用するなどの方法が考えられます。 トレイナー領域にHello worldと表示するプログラムを置いてみました。 (RESETの割り込みベクタを$7000に設定しました。) エミュレーターがトレイナー領域をサポートするかどうかのチェックにも 使用できます。 http://smbarchives.run.buttobi.net/up/file/444.zip What is a trainer in iNES format? http://forums.nesdev.com/viewtopic.php?t=3657 kyuusaku NESトレーナーは512バイトのコードで、ゲーム開始前に$ 7000にロードされます。 Famicom複写機は、複写機自身のマッパーシステムにマッパー書込みを翻訳するコードを 保持するためにそれらを使用した。 ゲームは元のマッパーに書き込む代わりに、トレーナーの サブルーチンにジャンプするように変更されました。 おそらく、今日私たちがすべてのゲームの ハッキングされていないROMダンプを持つようになった今、エミュレートする必要はありません。 ハッカーが新しいコードのROMに静的スペースを割り当てることができなかったため、古い ハックが使用されることがあります。 http://en.wikipedia.org/wiki/Nintendo_Vs._Series Dwedit トレーナーを使用するカートリッジとしてスーパーマリオブラザーズのハッキング版は ありませんか? Disch いくつかのSMB ROMハックがトレーナーを利用しています。 私はカートリッジには何かが あるとは思っていませんが(トレーナーはカートリッジには存在しないからです)。 私は自分のエミュでトレーナーを完全に無視します(彼らがそこにいるならば、飛ばして ください)。 私はこれに何ら問題はなかった。 トレーナーは、とにかく(PRG-RAMのような) $ 7xxx に実際に存在する可能性がある他のものと競合します。 私が知っている限り、トレーナーは、iNES形式の廃止され、廃止された機能であり、 無視/回避する必要があります。 tepples いくつかのマッパー(例えば、SMB2j海賊マッパーとSunsoft FME-7)は、トレーナーが行く ROMを入れませんか? NROM / CNROM / UNROMから始め、別のPRG ROMチップを追加 し、7400シリーズのロジックを少し入れて$ 6000〜$ 7FFFの読み取りをデコードし、 iNESトレーナーをハードウェアで実装します。 しかし、誰もがそのような複製物を作ったことは ありえないとあなたは正しい。 ヘッダーにバッテリビットが設定されていないか、または.savファイルが見つからない場合、 PRG-RAMの最初の内容としてトレーナーを扱わない限り。 ここ http://smblabo.web.fc2.com/ のマリオマニアをマッパー40のトレイナー無しに変換してみました。 INES Mapper 040 https://wiki.nesdev.com/w/index.php/INES_Mapper_040 こまかい事書くと長くなるがとりあえず動きました。 トレイナーをサポートしないNintendulatorやNestopaで動きました。 マッパー40を使った理由は細かいセットアップが不要の為です。 (CPU$C000はバンク切り替え可能ですが、特に何も指定しない場合は バンク0が読み込まれ、他の場所はバンク固定です) https://i.imgur.com/7FEqt6b.jpg >>454 Dirtyな代替手段としてはマッパー1にしてセーブを有効にして、 (エミュによってはマッパー0のままでもいけるかも知れません) セーブデーターにトレイナーのデーターを置く方法もあります。 トレイナー領域がよく使われるのはFront FarEast社の たとえばGame Doctorといような、ROMをFDSディスクに コピーするツールで使われました。創世機ファミーよりも 強力で大容量ROMに対応(MMC3あたりまで)してました。 その装置の制御用のコードやROMを作動させる為のパッチを ディスクに記録していて、iNES形式でそれを再現する為に、 トレイナー領域が設けられそこにコードを配置したと思われます。 なおこれらのマッパーでもトレイナー領域を使っていないROMダンプも あるようです。 マッパー6(FFE F4xxx) マッパー8(FFE F3xxx) マッパー12(FFE F6xxx) マッパー17(FFE F8xxx) >>460 : Yes. Please patch this to a ROM image of 40,976 bytes. (When patched, the ROM itself is 41,048) ttps://www.dropbox.com/s/37bvuthvokpdnb5/unemari2test409.ips?dl=0 U1 gave me the patch a year ago. How did you still know about this hack? _ / ) | ̄|/ └┐ | | |いいね! |_|―、_ノ 改造スーパーマリオブラザーズをマリオコレクションのスーパーマリオブラザーズに 移植するSMB2SMCってツールがあるけど、 理論上スーパーマリオブラザーズとVS.スーパーマリオブラザーズと スーパーマリオブラザーズ(FDS版)とスーパーマリオブラザーズ(スーパーマリオコレクション 及びSuper Mario All-Stars)の面データーの相互変換は可能だよな? 裏技のように自動的にお金を収集してくれる方法とは グーグル検索⇒『稲本のメツイオウレフフレゼ』 D828Q SMB Utility を弄り倒して全ステージオリジナルにして遊んでたんですけど SMB2のFDSを改造するツールはないんでしょうか? >>470 smb2のアイテムを追加したりしてそれっぽくする事は出来るがsmb2のツールは無いと思う 俺も最近smb2改造したくなって海外の色んなフォーラム探したんだけど無かったんだよね マリオメーカーもいいんだけど、 エミュで改造マリオやってた身としてはFCのシステム面での制約に縛られた中で 如何にグラフィックや配置を良く見せるかと言う工夫が出来るのが魅力だと思う マップも単にカオスで高難易度な傾向の作品も少なくはなかったが、 中には原型をとどめてないくらい高度な改造をなさってた人がとても多かった マリメもバイナリやグラフィックエディタみたいなのを有料でもいいから DLCに組み込んでほしい >>472 わかるわかる。 敵を置きまくると、消えちゃうから、いかにして多く見せるとか こだわるのが楽しかった Uの改造ツールでないかな マリオメーカーやった事無いんだけど ファミコンやスーファミみたいな挙動の爽快感はあるのだろうか? NEWスーパーマリオWiiやって 凄くモッサリしていたので…。 3DSのファミコン(NES)バーチャルコンソールにはTNES形式が採用されている。 ines形式では正しく表現できないギャラクシアン(Galaxian)のROMも正しく表現できる SMBアーカイブが死んでるので念の為のURLのメモ SMBアーカイブ掲示板 ttps://jbbs.shitaraba.net/computer/28712/ 代理うpろだ ttps://ux.getuploader.com/smbarchive/ 👀 Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) SMBラボもWINIPSしか置いていないけど、任●堂法○部にやられた? ファミコンってPRG-ROMが8Kや16Kの場合はミラーリングしているけど、 プログラムは大抵一番高いアドレスを使用しているね。 反応無いからもう一度いうね ファミコンってPRG-ROMが8Kや16Kの場合はミラーリングしているけど、 プログラムは大抵一番高いアドレスを使用しているね。 反応無いからもう一度いうね ファミコンってPRG-ROMが8Kや16Kの場合はミラーリングしているけど、 プログラムは大抵一番高いアドレスを使用しているね。 最後にもう一度いうね ファミコンってPRG-ROMが8Kや16Kの場合はミラーリングしているけど、 プログラムは大抵一番高いアドレスを使用しているね それでも反応無いからもう一度いうね ファミコンってPRG-ROMが8Kや16Kの場合はミラーリングしているけど、 プログラムは大抵一番高いアドレスを使用しているね。 Romhacking.net - Utilities - [FDS] Super Mario Bros 2 (Japan) Level Editor - jGreatEd https://www.romhacking.net/utilities/1485/ オールナイトニッポン版スーパーマリオブラザーズをSMB2Jのマッパー40に移植できないかと 試した所、一応動いた。しかし4-4までしか遊べない。メインプログラムの改造はほぼうまくいった が、DETA2〜DETA4の部分は手抜きしたから駄目だったかも。 改造コードメモ マリオ便利改造コード集 ttp://k1ilove.yu-nagi.com/mariocod.html >>486 メインプログラムに誤植がありました。ディスクシステムのファイルブロックの読み込みを バンク切り替えで代替する部分を間違えていたのでそりゃあ動かないですね。 修正したところバンク切り替えが機能するようになりました。 とりあえずデバッグプレイ メインプログラムのパッチ(と更にアドレス修正)はしたのだが、 現状ワールド5移行に行こうとすると黒画面で固まってしまうのと、タイトル画面で A+startでワールドAに行けますがソフトリセットで黒画面で固まってしまう。 ここまでやって駄目ならマッパー40の改変FDS BIOS部分が怪しい。 マッパー40はRAMが無いので書き換え必要なデータはFDS RAMではなく メインメモリに割り当てるような処理があったのでこの辺を調査 6502のJMP命令は直接相対と間接絶対しかないのが落とし穴だった。 それっぽい所の改変FDS BIOS部のJMP命令書き換えたけどうまくいかない。 半分匙投げかけた。もしかすると他の部分のミスもあるかも知れない。 本当にスーパーマリオーブラザース2とオールナイトニッポン版スーパーマリオ ブラザーズはFDSの容量限界まで使ってって追加のコードを入れるのが 難しいです。なので海賊版スーパーマリオーブラザース2も奇妙なスパゲッティーな パッチを使っているので解析は一筋縄にはいかない。 とりあえず作成途中のオールナイトニッポン版スーパーマリオブラザーズの 逆アセンブルリストを途中まで作ったがまずはこれを完成させるか。 1022240722100710新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 2542240742250725新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 4902240702490749新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 2808240708280728新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミックの 1819240719180718新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミックの 0330240730030703新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミックの 0735240735070707新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 5150240750510751新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミックの 5455240755540754新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 0616240716060706新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 1836240736180718新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 3356240756330733新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 4616240716460746新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック 5836240736580758新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミック >>491 バンク切り替えはうまくいきました。メモリアドレス$C046〜$C047の部分を間違えていました。 いざプレイしてみると8-4クリアでハングしてしまいました。グラフィックRAMの書き換え部分で バグっています。そもそもmapper40はグラフィックRAMが無いのである。どうなるか気になって 試してみた結果残念な結果に。(改変FDS BIOSがグラフィック処理の部分を潰して場合は そこにアクセスしようとすれば不具合が生じるだろう) とりあえずテスト用のIPSを作成しました。 オールナイトニッポン スーパーマリオブラザーズのROM移植版(マッパー40) 未完成テスト版です。 エンディングでフリーズします。 https://www.axfc.net/u/4025396.zip ↑ROM版のスーパーマリオブラザーズのNESファイルにパッチを当てて下さい。 エンディングでバグる現象はFCEUXでは発生しましたが、VirtuaNESでは 発生しませんでした。 具体的にバグの現象、エンディングのBGMが鳴らずに、地上のBGMがなってしまう。 そしてTHANK YOU MARIOで背景が水色になるときに、ザーとノイズが鳴り固まってしまう。 念の為、FDS版オールナイトニッポン スーパーマリオブラザーズをFCEUXで動かしてみましたが、 正常作動でした。 >>507-508 ファイル差し替えました。前のはフリーズ回避する為の試行錯誤でコードが 汚くなっていたので https://www.axfc.net/u/4025452.zip SMB2Jの海賊版の特徴まとめ タイトル画面がハックされているケースが多い。 MARIOやLUIGIの名前がROMEOやRAMBOになっている場合がある。 ●マッパー40 ルイージの特性(ジャンプ力と滑りと画面左上表示)が有効なもの(e.g. Lost Levels)と 無効化されているもの(e.g. Alt Levels)が存在する ●マッパー50 マッパー40の物のコードがベース ●マッパー43 マッパー40の物のコードがベース。 しかし少なくとも2つの異なったマッパーがマッパー43に割り当てられている為、 エミュレーターによって解釈が異なる。 ●マッパー142 Kaiserのやつ。ワールド&ステージセレクト機能が実装されている。 ●マッパー4(MMC3) マッパー142のコードがベースになっている。ワールド&ステージセレクト機能は 無効化されているが、パッチすることにより復元可能。 ちょっと訂正 SMB2Jの海賊版の特徴まとめ タイトル画面がハックされているケースが多い。 MARIOやLUIGIの名前がROMEOやRAMBOになっている場合がある。 ●マッパー40 ルイージの特性(ジャンプ力と滑りと画面左上表示)が有効なもの(画面左上表示が マリオかルイージで変化するもの)と 無効化されているもの(e.g. 画面左上表示がSCORE になっているもの))が存在する ●マッパー50 マッパー40の物のコードがベース ●マッパー43 マッパー40の物のコードがベース。 しかし少なくとも2つの異なったマッパーがマッパー43に割り当てられている為、 エミュレーターによって解釈が異なる。 ●マッパー142 Kaiserのやつ。ワールド&ステージセレクト機能が実装されている。 ●マッパー4(MMC3) マッパー142のコードがベースになっている。ワールド&ステージセレクト機能は 無効化されているが、パッチすることにより復元可能。 ルイージの特性の有効、無効はエミュレーターによって挙動が異なることが分かりました。 FCEUXではルイージを選んでも画面左上はMARIO表示で挙動はマリオのままでした。 ありますが、VirtuaNESでは画面左上はLUIGI表示になり、ルイージの挙動になりました。 謎が深まるばかりです。 FCEUXでタイトル表示が無効化されているROMでルイージ特性になるものもありますが、 タイトル表示を有効化すると、ルイージ特性が無効化するものがありました。 >>512 ●マッパー40のものは十字キーを押しながらスタートボタンを押すことで 開始ワールドが選べるものもあるようです。 ルイージの特性問題とANNSMBのエンディングの問題はYレジスタの値が関与している と思われます。可能性が高いのはディスクアクセス関連のコードは未パッチの部分が 多くあり、改変FDS BIOSも多くのコードが機能する状態で残っています。 そのため存在しないはずのディスクにアクセスした時の値がエミュレータによって異なる 可能性があります。マジコン等を使って実機でどのように作動するか検証する必要があります。 もしVirtuaNESと実機の挙動が同じであれば、VirtuaNESの再現性が高いことになります。 詳しく調べてみるとマッパー40やマッパー50のSMB2JはVirtuaNESでルイージを選んでも、 どうもルイージの滑りとジャンプ力は反映されていないようです。 マッパー142のものをマッパー40に移植しようとしたところ、バンク切り替えの処理の挙動が 謎で断念。方針転換でマッパー4(MMC3)のものをマッパー40に移植を試したところ、 すんなり作動。NESヘッダ以外は弄っていないのに1-4、5-8、9、A-D切り替えがちゃんと 動いていて、ありあんほどの驚きだ。IRQもバンク切り替えも両方対応仕様なのか? マッパー142とマッパー4のやつのワールドセレクト機能はワールド表示部分はCHR-RAMを 直接書き換えているようだ。なのでマッパー40では1-1のままで変化しないが、ボタンを 押した数に応じてワールドセレクトはできるようだ。 >>519 は間違いだった。 マッパー変更でそんなにすんなり動く筈がなかった。ヘッダのマッパー変更がうまくいっていなかった。 ワールドセレクト化でタイトル画面の数字げ変化しなかったのはその部分のパッチが当たって いなかったから。CHR-RAMは多分関係ないです。 >>510 ROMにパッチしてVirtuaNESでやってみた エンディングで崩壊キャラに囲まれた https://light.dotup.org/uploda/light.dotup.org665607.png その後BGM止まって真っ暗になったところでフリーズした リセットすると"未定義命令を実行しました"と表示が出て閉じてしまった Super Mario All Stars NES https://www.romhacking.net/hacks/2422/ これはどうやって2を動かしてるんだろうか? ディスクシステムの起動画面から表示されるから面倒くさいことしてるのかもしれないけど >>521 やっぱりバグってますね。崩壊キャラについては仕様です。マッパー40はCHR-ROMが8KB なので、エンゲィングのグラを正しく表示することができません。 まあNSMCHAR2のデーターにすればエンディングのグラは正常化しますが、 今度は敵キャラのグラがおかしくなります。8-4がSM2仕様でめちゃくちゃ難しいので デバッグが大変です。しかも8-4クリアでフリーズするという絶望感。 ということでMMC3版を製作中です...(完成するまで黙っておこうと思ったが) ٩( 'ω' )و ガンバ!! 私のSM2SAVEの戦闘力は 30年前時点で、20近いです。 ですが もちろん フルパワーでワープなしで 1Wから9Wまで多く戦った結果 少なく刻まれているだけなので ご心配なく… とりあえずオールナイトニッポン スーパーマリオブラザーズのMMC3移植のテスト版が 出来ました。 https://dotup.org/uploda/dotup.org2218195.zip.html CHRバンク切り替え実装、(デバッグ用)ワールドセレクト機能実装。 ただし8-4クリア後にタイトル画面に戻らずにエラーが出るのと、A-Dワールドで敵に 当たるとゲームオーバーになります。 2113040813210821新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 0134040834010801新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 2730040830270827新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 2521040821250825新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 4136040836410841新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 0457040857040804新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 1903040803190819新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 3212040812320832新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 5249040849520852新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 1121040821110811新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 2413040813240824新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 1616040816160816新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 2821040821280828新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP 5531040831550855新しい豚インフ人にも感染と報告 [87類終了】人間に感染する新型豚インフルエンフル701] (9) 12:インフルエン的流胞に感染する豚のインフルエンフル型インフルエンザインフルエンザ発見 「パンデミックの恐ンザが発見される パンデミ<SP PRG-RAMのないマッパーの海賊版SMB2Jの再現性が一部不完全だったりする場合が多いのは 本体WRAMだけじゃ変数を置ける容量が足りないのかも知れないな。 SMB2JのMMC移植版はいくつかあり再現性は高いが、PRG-RAMが$6000-$8000しかないので、 なんとか本体WRAMとPRG-RAMの空きに無理やり押し込んでいる感じだな。(ややダーティー なコード) オールナイトニッポン スーパーマリオブラザーズの768Wでなく1024Wの可能性。 オールナイトニッポン スーパーマリオブラザーズは9面がありませんが、 ワールド9ならリセットする処理を潰せば、9-1に行けます。 9-1は強制移動の雲のバグ面で途中の土管でストップします。クッパも登場するので ハンマーに当たる場合もあります。9-2,3,4は海のバグ面でプレイ可能です。 空を飛ぶプクプクが出ますが、エンディング用のCHRに変更されているので、 プクプクの場合はステルスで見えません。すべての敵キャラが表示できるように CHRを変更するか、通常のCHRを使用した方がよいでしょう。 ANNSMBのMMC3移植版はとりあえず遊べる程度のものは完成しました。 しかし問題点はルイージでクリアした時のテキストをLUIGIにする機能が 正常に作動しなかったのとワールドセレクト機能も実装されていますが、 ワールドA-Dを選択するとフリーズしてしまうようです。 原因はパッチするコードを間違えている可能性もありますが、 とりあえず手抜きで敵処理関係のコードは面倒なので弄っていないのですが、 これが原因で変数が衝突している可能性があります。 完全版はANNSMB逆アセンブルリストを完成させてからとなりそうです。 とりあえず現状の試作物です。 オールナイトニッポン スーパーマリオブラザーズ(ANNSMB) MMC3移植テスト https://www.axfc.net/u/4025895.zip 標準版とワールドセレクト版が入っています。通常のスーパーマリオブラザーズの NESファイルにパッチを当ててください。 ルイージでクリアしたときのエンディングの文字をLUIGIにする処理とその関連 処理は未実装。ワールドセレクト版でタイトル画面でワールドA-Dを選択して マリオが動き出すとフリーズします 一応こちらのMMC3版のSMB2Jのコードを元にしています。 Super Mario Bros 2 Special by Jordan Bieber (SMB1 Hack).nes これはSMB1 Hackと付いていますが、コードを見てみるとSMB1を改造したものではなく SMB2Jを改造したものです。 あとこれはCHRが改造されていて1バンク(8kB)しかないですが、CHRのバンク切り替え 機能も実装されているようで、エンディング用のCHRを用意して、2バンク(16kB)に すると正常に作動するようです。 ANNSMBは解析途中ですが、見た感じSMB2エンジンを使用しているというよりは、 SMB1とSMB2のハイブリッドな感じです。例えばワープゾーンの土管の処理はSMB1仕様の ようですが、パラレルワールド用の処理が追加されているので若干複雑です。 あとANNSMBには毒キノコや嵐のコードは入っていないようです。 ANNSMBのNSMDATA1のマップデータ直前までの解析は概ね完了しました。 2821190821280828ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 5047190847500850ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 4920190820490849ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 1126190826110811ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 0647190847060806ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 1952190852190819ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 0308190808030803ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 1913190813190819ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 1734190834170817ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 2900190800290829ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 2721190821270827ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね 2458190858240824ポンペオ国務長官「反シオニズムは反ユダヤ主義!」 [195740AAS こういうこと言うからユダヤ嫌い 5オニズムに反対しているユダヤ人たちも普通にいるんだけどな 6: (ワッチョ こいhk3G0(1) AAS イスラエルなんて今やただの侵略者だよね AAS 正体表したね スーパーマリオ256Wについて解説するページ ttp://smb.lsi.harisen.jp/index.html オールナイトニッポンスーパーマリオブラザーズ 暫定 敵データ・マップデータ ; 自動歩行 マップデータ C270 : 38 11 0F 26 AD 40 3D C7 ; C278 : FD ; ; 全ブロック共通マップデータ? : 地下・海を抜けた後のポールのあるルーム マップデータ? C279 : 90 31 39 F1 5F 38 6D C1 AF 26 8D ; C283 : 8D C7 ; C285 : FD ;開始エリア C339 : 00 05 0A 0E 13 17 1B 20 ; ;エリア開始ルーム C341 : 25 3B C0 26 60 ;World 1 C346 : 28 29 01 27 62 ;World 2 C34B : 24 35 20 63 ;World 3 C34F : 22 29 41 2C 61 ;World 4 C354 : 2A 31 36 67 ;World 5 C358 : 2E 23 2D 66 ;World 6 C35C : 33 29 03 37 64 ;World 7 C361 : 30 32 21 65 ;World 8 ; ループ戻り位置 C365 : 12 36 0E 0E 0E 32 32 32 0C 54 ; ;敵キャラコマンドアドレスヘッダ C36F : 28 08 24 00 ; ;敵データ開始アドレス ;エリア C373 : 45 C7 ; 1-4 (S1) C375 : 62 C7 ; 2-4 (S1) C377 : 7B C7 ; 3-4 (S1) C379 : 9E C7 ; 4-4 (S1) C37B : 2C C6 ; 7-4 (S2) C37D : 41 C6 ; 8-4 (S2) C37F : D0 C5 ; 6-4 (S2) C381 : 05 C6 ; 5-4 (S2) C383 : C7 C7 ; 3-3 (S1) C385 : 81 C6 ; 8-3 (S2) C387 : E8 C7 ; 4-1 (S1) C389 : 9E C6 ; 6-2 (S2) C38B : F8 C7 ; 3-1 (S1) C38D : 29 C8 ; 1-1 (S1) C38F : 47 C8 ; 1-3 (S1) C391 : 60 C8 ; 2-3 (S1) C393 : 67 C8 ; 2-1 (S1) C395 : 6F C2 ; 土管 C397 : 05 C7 ; 5-1 (S2) C399 : 96 C8 ; 天空ボーナス (S1) C39B : 9C C8 ; 4-3 (S1) C39D : 2F C7 ; 6-3 (S2) C39F : 52 C7 ; 6-1 (S2) C3A1 : C0 C8 ; 天空ワープ (S1) C3A3 : 5B C7 ; 8-1 (S2) C3A5 : 95 C7 ; 5-2 (S2) C3A7 : C0 C7 ; 8-2 (S2) C3A9 : F0 C7 ; 7-1 (S2) C3AB : C1 C8 ; 天空ボーナス (S1) C3AD : C7 C8 ; 3-2 (S1) C3AF : C5 C6 ; 5-3 (S2) C3B1 : E8 C6 ; 7-3 (S2) C3B3 : 6F C2 ; 地下・海の出口 C3B5 : 29 C7 ; 天空ボーナス (S2) C3B7 : 0C C8 ; 夜空ボーナス (S2) C3B9 : EB C8 ; 土管(夜) (S1) C3BB : EC C8 ; 1-2 (S1) C3BD : 19 C9 ; 4-2 (S1) C3BF : 47 C9 ; 地下室 (S1) C3C1 : 12 C8 ; 地下室 (S2) C3C3 : 2B C8 ; 水中ボーナス (S2) C3C5 : 62 C9 ; 2-2 (S1) C3C7 : 6A C8 ; 8-4 (S2) C3C9 : 3C C8 ; 7-2 (S2) C3CB : 6F C2 ;ワープゾーン? ;マップコマンドアドレスヘッダ C3CD : 28 08 24 00 ; ;マップデータ開始アドレス ;エリア C3D1 : 7B C9 ; 1-4 (S1) C3D3 : D2 C9 ; 4-4 (S1) C3D5 : 53 CA ; 2-4 (S1) C3D7 : C2 CA ; 3-4 (S1) C3D9 : 7A C9 ; 7-4 (S2) C3Db : 05 CA ; 8-4 (S2) C3DD : 78 C8 ; 6-4 (S2) C3DF : ED C8 ; 5-4 (S2) C3E1 : 2D CB ; 3-3 (S1) C3E3 : D8 CA ; 8-3 (S2) C3E5 : 8A CB ; 4-1 (S1) C3E7 : 45 CB ; 6-2 (S2) C3E9 : DD CB ; 3-1 (S1) C3EB : 4E CC ; 1-1 (S1) C3ED : B3 CC ; 1-3 (S1) C3EF : 08 CD ; 2-3 (S1) C3F1 : 85 CD ; 2-1 (S1) C3F3 : 70 C2 ; 土管 C3F5 : 8C CC ; 5-1 (S2) C3F7 : E8 CD ; 天空ボーナス (S1) C3F9 : FD CD ; 4-3 (S1) C3FB : E2 CC ; 6-3 (S2) C3FD : 49 CD ; 6-1 (S2) C3FF : 54 CE ; 天空ワープ (S1) C401 : BE CD ; 8-1 (S2) C403 : 53 CE ; 5-2 (S2) C405 : CA CE ; 8-2 (S2) C407 : 47 CF ; 7-1 (S2) C409 : 85 CE ; 天空ボーナス (S1) C40B : B0 CE ; 3-2 (S1) C40D : D6 CB ; 5-3 (S2) C40F : 1F CC ; 7-3 (S2) C411 : 79 C2 ; 地下・海の出口 C413 : CD CC ; 天空ボーナス (S2) C415 : A8 CF ; 夜空ボーナス (S2) C417 : E7 CE ; 土管(夜) (S1) C419 : F0 CE ; 1-2 (S1) C41B : 91 CF ; 4-2 (S1) C41D : 36 D0 ; 地下室 (S1) C41F : D3 CF ; 地下室 (S2) C421 : 2C D0 ; 水中ボーナス (S2) C423 : C3 D0 ; 2-2 (S1) C425 : 36 D1 ; 8-4 (S2) C427 : 6D D0 ; 7-2 (S2) C429 : 85 C2 ;ワープゾーン? 1245210845120812telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 2550210850250825telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 3955210855390839telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 5816210816580858telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 5232210832520852telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 0838210838080808telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 3010210810300830telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 4815210815480848telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ 4536210836450845telから流出20GBファームウェコードからbackdoorの処見つかってし913] (10ス) Intel leak: 0GB of soure, intter.com WannaCryはそこる ソースくらいは貼るわ 外ww.newsw 対外情報監視法 ◆アメ国家的盗聴は有名IT・通信企業が協力している[2013日] ク:wpb.shha.co.jp 「マイクロソフグーグルなど、NSAは大手IT企ベッタリ つい最ロソフトが過去3年間、自社サイトのユーザーが交換する情報を 『NSAが監視う、暗号システムを迂回させる措置を取っ ライン上の情報蓄積サービス『スカイドライブ NSMDATA1のマップデータの次の領域$D13E-$D2E4が不明なデータだったが エンディング処理の関係かな? ; 6324 : BD FA 62 LDA $62FA,X ; ; 632A : BD FA 62 LDA $62FA,X ; 62FA : 3E D1 ; 62FC : 9E D1 ; 62FE : FE D1 ; 6300 : 5E D2 ; 6302 : 4F D1 ; 6304 : AF D1 ; 6306 : 0F D2 ; ; 6331 : BD 08 63 LDA $6308,X ; 6308 : 0C 07 0E ; ; 6337 : BD 0B 63 LDA $630B,X ; 630B : D0 A0 ; ; 6344 : DD 0E 63 CMP $630E,X ; 630B : E0 30 50 60 ; ;エンディング画面切り替え処理? 6311 : AD 5C 07 LDA $075C ; 6314 : C9 03 CMP #$03 ; 6316 : D0 39 BNE $6351 ; 6318 : AC FB 07 LDY $07FB ; 631B : D0 34 BNE $6351 ; 631D : 84 06 STY $06 ; 631F : AD 5F 07 LDA $075F ; 6322 : 0A ASL A ; 6323 : AA TAX ; 6324 : BD FA 62 LDA $62FA,X ; 6327 : 85 00 STA $00 ; 6329 : E8 INX ; 632A : BD FA 62 LDA $62FA,X ; 632D : 85 01 STA $01 ; 632F : A6 06 LDX $06 ; 6331 : BD 08 63 LDA $6308,X ; 6334 : 8D 06 20 STA $2006 ; 6337 : BD 0B 63 LDA $630B,X ; 633A : 8D 06 20 STA $2006 ; 633D : B1 00 LDA ($00),Y ; 633F : 8D 07 20 STA $2007 ; 6342 : C8 INY ; 6343 : 98 TYA ; 6344 : DD 0E 63 CMP $630E,X ; 6347 : D0 F4 BNE $633D ; 6349 : E6 06 INC $06 ; 634B : A5 06 LDA $06 ; 634D : C9 03 CMP #$03 ; 634F : D0 DE BNE $632F ; 6351 : 4C B9 63 JMP $63B9 ; ; 6382 : B9 54 63 LDA $6354,Y ; ; 6382 : B9 54 63 LDA $6354,Y ; 6354 : 63 63 ; 6356 : 65 63 ; 6358 : 67 63 ; 635A : 69 63 ; ; 637F : BC 5C 63 LDY $635C,X ; 635C : 04 02 00 04 02 00 08 ; ; 6363 : 30 12 ; 6365 : 30 1A ; 6367 : 30 16 ; 6369 : 17 2A ; 636B : 3F DB ; 636C : 18 CLC ; 636D : 04 DB ; 636E : 0F DB ; 636F : 36 ROL $00,X ; ; 6391 : 99 70 63 STA $6370,Y ; 6370: 00 ; 6371 : 00 ; 6372 : 00 ; ; <$0772=01> クッパの橋がおちた後 (パラレルワールドの時の分岐等)A 6373 : AD FB 07 LDA $07FB ; 6376 : D0 26 BNE $639E ; 6378 : AE 5F 07 LDX $075F ; 637B : E0 07 CPX #$07 ; 637D : F0 1F BEQ $639E ; 637F : BC 5C 63 LDY $635C,X ; 6382 : B9 54 63 LDA $6354,Y ; 6385 : 85 00 STA $00 ; 6387 : C8 INY ; 6388 : B9 54 63 LDA $6354,Y ; 638B : 85 01 STA $01 ; 638D : A0 00 LDY #$00 ; 638F : B1 00 LDA ($00),Y ; 6391 : 99 70 63 STA $6370,Y ; 6394 : C8 INY ; 6395 : C0 02 CPY #$02 ; 6397 : D0 F6 BNE $638F ; 6399 : A9 1D LDA #$1D ; 639B : 8D 73 07 STA $0773 ; ; <$0772=01> クッパの橋がおちた後 (パラレルワールドの時の分岐等)B 639E : AE 1B 07 LDX $071B ; 63A1 : E8 INX ; 63A2 : 86 34 STX $34 ; 63A4 : AD FB 07 LDA $07FB ; パラレルワールドか 63A7 : F0 0C BEQ $63B5 ; パラレルワールドでなければジャンプ 63A9 : AD 5F 07 LDA $075F ; 現在のワールド 63AC : C9 03 CMP #$03 ; ワールドDか 63AE : 90 05 BCC $63B5 ; ワールドDに達していなければジャンプ 63B0 : A9 07 LDA #$07 ; ワールド8 63B2 : 8D 5F 07 STA $075F ; ワールド8と同じ扱い 63B5 : A9 08 LDA #$08 ; 斧獲得BGM指定 63B7 : 85 FC STA $FC ; PORT_$2005_V なんとなくマッパー40版がvirtuanesで動いた理由がわかった。 恐らくvirtuanesだと$6000-$6FFFがROMでも書き込みできてしまう為だと 思われます。 あとMMC3のワールドセレクト版で タイトル画面でワールドA-Dにしたときにバグって しまう原因はまだ掴めていません。>>544 のは 敵処理関係のパッチは赤パックンフラワーの処理ですが、ANNSMBには登場しない のでたぶん関係なさそうです。タイトル画面でワールドA-Dを選択すると敵データとマップデーター の開始アドレスの部分が変わってしまって、正常に作動しないのではないかと考えられます。 SMB2ではたまたま動いてしまっているのか、それを回避するコードが入っているがSMB2用の ままではANNSMBで正常作動しないかのいずれかかが考えられます。 hps//youtube.com/watch?v=RPqSnJez-YI 3651290851360836類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 4906290806490849類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 1828290828180818類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 1444290844140814類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 2205290805220822類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 2626290826260826類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 3547290847350835類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 4614290814460846類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 5346290846530853類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 0308300808030803類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] 1029300829100810類終了】人間に感染する新型豚インフルエンザ発見 [536779938] (31) 7:豚インフルエンザ ウクライナで60人死亡 [487816701] (9) 8:人の細胞に感染する豚のインフルエンザウイルス見つかる 中国 [402859164] (21) 9:中国の豚から新型インフルエンザが発見される パンデミックの可能性 [878898748] p://youtube.com/watch?v=8Ch4X1AeEn0 3302040902330933>>○○○ こら、おまえは統一教会の工作員か? 統一教会工作員でないなら以下の文章をこのスレにコピペしてみろ。 コピペできなければおまえは統一教会工作員だ。 文鮮明はウンコでサタン 統一教会はサタニスト団体 ki 教祖は北朝鮮出身の文鮮明氏で現在の妻は韓鶴子女史 ... 韓国系宗教かつ北朝鮮とも仲 ガブリエルさんの好き ttps://www.romhacking.net/community/5869/ 難しすぎず手軽に遊べる難易度がいい ANNSMBのNSMDATA1の解析は一応完成した。 パソコンフリーズしたときにデーターが消えてしまって最悪な予感がしたが、 なんとか救出できた。 >>545 少しだけ修正晩。あいかわらずワールドセレクト版はA〜Dを選択するとうまく機能しません。 https://www.axfc.net/u/4029468.zip いつのまにかようつべで2の1024ワールド解析目指してる人いるね >>601 荒らしの時期と被って大変でしたけどおつかれさまです エンディングのルイージの方は直りましたか? ルイージの機能の事忘れてました。まだ直ってません。NSMDATA3の解析が必要だわ。 ワールドセレクト版のA-Dは何が悪いのかちんぷんかんぷん。 大体は嵐関係の処理でANNSMBには関係ないと思ってパッチしていない部分に起因 しているか、SMB2とANNSMBでフラグ関係で少し違う部分がありますが、ワールドセレクト版は SMB2の未使用部分を使用しているがANNSMBでは衝突してしまうのかなと。 あとはアドレス修正の見落としの可能性もあるが。 とりあえず次ぎはエンディングのルイージの修正に取り組む予定 >>599 NSMDATA1じゃなくてNSMMAINですね。 あとFDSBIOS呼び出し部の未パッチ分も調査しないと エンディングのMARIOとLUIGI表示切り替え、結構いい感じになってきたけど まだバグってる。 エンディングの表示問題は解決しました。原因はアドレスの値を16進数で計算すべきなのに 10進数でやってしまっていた箇所があったw そういえばワープ土管の仕様はSMB1(ANNSMB含む)とSMB2で仕様が違っていたな 通常版はほぼ完璧な作動。ワールドセレクト版のバグが直らないので頭を抱えているとこ ワールドセレクト機能の不具合は$C000付近のパッチを間違えている可能性が浮上 >>613 再検証の結果、たぶん$C000付近は問題なさそうだった。 ワールドセレクト機能の不具合判明しました。 結論から言うと、オールナイトニッポン スーパーマリオブラザーズのプログラム本体の部分に 問題がありそうです。 パラレルワールドフラグが$7FBにあるのですが、(FDSの)スーパーマリオブラザーズ2で この部分の値を$1にしてもタイトル画面でマリオが動き出し画面スクロールしてもフリーズ しないのに対し、(FDSの)オールナイトニッポン スーパーマリオブラザーズではマリオが動き 出し画面スクロールするとフリーズします。 こうゆう仕様のようです。 一応フリーズ箇所のトレースログ f617 A:00 X:00 Y:01 S:BA $61CC:AD 3F 07 LDA $073F = #$32 f617 A:32 X:00 Y:01 S:BA $61CF:8D 05 20 STA $2005 = #$02 f617 A:32 X:00 Y:01 S:BA $61D2:AD 40 07 LDA $0740 = #$00 f617 A:00 X:00 Y:01 S:BA $61D5:8D 05 20 STA $2005 = #$02 f617 A:00 X:00 Y:01 S:BA $61D8:A9 00 LDA #$00 f617 A:00 X:00 Y:01 S:BA $61DA:8D 7B 07 STA $077B = #$00 f617 A:00 X:00 Y:01 S:BA $61DD:4C E4 61 JMP $61E4 f617 A:00 X:00 Y:01 S:BA $61E4:68 PLA f617 A:01 X:00 Y:01 S:BB $61E5:A8 TAY f617 A:01 X:00 Y:01 S:BB $61E6:68 PLA f617 A:00 X:00 Y:01 S:BC $61E7:AA TAX f617 A:00 X:00 Y:01 S:BC $61E8:68 PLA f617 A:02 X:00 Y:01 S:BD $61E9:28 PLP f617 A:02 X:00 Y:01 S:BE $61EA:58 CLI f617 A:02 X:00 Y:01 S:BE $61EB:40 RTI Bad Opcode Breakpoint Hit at $22BD NSMDATA3の逆アセンブルリスト作成していたが、パソコンがフリーズしたときに データー消失してしまったorz と思ったら見つけました。良かった。NSMMAINの逆アセンブルリストもデーター消失の 危機があったが、CHKDSKの作ったファイルの中から見つけ何とかなった。 ワールドセレクト版のエリア選択がバグっていた。うっかり見落としていた。 なんでズレてるかは分かった。地下・水中ステージがある面で最初の土管進入の部分 ということでワールドセレクト版でスタートエリアが不正だったのを修正。 https://www.axfc.net/u/4029714.zip これでほぼバグは潰せたと思う。(フリーズ問題以外は) なんでデバッグで気づかなかったんでしょうね? 1面と8面とA面とD面ばかりやってたからかな。他の面でも、 エリア1と2は正常だったから気づくの遅れた。 ANNSMB ;開始エリア 0000C357: 00 05 09 0E 12 17 1C 20 24 ;エリア開始ルーム 0000C360: 20 29 40 21 60 ;World 1 $0 0000C365: 22 23 24 61 ;World 2 $1 0000C369: 25 29 00 26 62 ;World 3 $2 0000C36E: 27 28 2A 63 ;World 4 $3 0000C371: 2B 29 43 2C 64 ;World 5 $4 0000C376: 2D 29 01 2E 65 ;World 6 $5 0000C37B: 2F 30 31 66 ;World 7 $6 0000C37F: 32 35 36 67 ;World 8 $7 *0000C383: 38 06 68 07 ;World 9 $8 SMB2(J) ;開始エリア C339 : 00 05 0A 0E 13 17 1B 20 ; ;エリア開始ルーム C341 : 25 3B C0 26 60 ;World 1 $0 C346 : 28 29 01 27 62 ;World 2 $1 C34B : 24 35 20 63 ;World 3 $2 C34F : 22 29 41 2C 61 ;World 4 $3 C354 : 2A 31 36 67 ;World 5 $4 C358 : 2E 23 2D 66 ;World 6 $5 C35C : 33 29 03 37 64 ;World 7 $6 C361 : 30 32 21 65 ;World 8 $7 なので FB8B LDA $75F FB8E LDX $7FB FB91 BNE loc_FBAA FB93 CMP #1 FB95 BEQ loc_FB6A FB97 CMP #3 FB99 BEQ loc_FB6A FB9B CMP #6 FB9D BEQ loc_FB6A FB9F CMP #7 FBA1 BEQ loc_FB6A FBA3 CMP #8 FBA5 BEQ loc_FB6A ↓ FB8B LDA $75F FB8E LDX $7FB FB91 BNE loc_FBAA FB93 CMP #2 FB95 BEQ loc_FB6A FB97 CMP #4 FB99 BEQ loc_FB6A FB9B CMP #5 FB9D BEQ loc_FB6A FB9F CMP #7 FBA1 BEQ loc_FB6A FBA3 CMP #8 FBA5 BEQ loc_FB6A のように修正 解析お疲れ様!なんだけどプレイしてみると1-4.2-4と各キノピオが当時のオールナイトのMCに代わってなかったから完全にオールナイトベースじゃなくて既にカセット変換された2ベースにオールナイトにタイトルとか書き換えたパッチだったのね8-4クリアーしても☆マークはタイトルに付かない仕様の >>627 エミュレーターは何を使ってますか?それとも実機? 当方ではfceux 2.2.3とVirtuaNES 0.97でピノキオがMCに置き換わっているのを確認しています。 プログラムはANNSMBをベースにMMC3版SMB2JのパッチをANNSMBに合わせて適用しています。 ☆マークが付かないのは元にしたMMC3版SMB2Jの仕様ですが、☆マークの付く仕様も 作成可能です。 ご参考までにプレイ動画です。 https://www.nicovideo.jp/watch/sm37877451 https://www.nicovideo.jp/watch/sm37864910 ピノキオがMCになっているのが確認できます。 下の動画はエンディングの確認の為にゲームオーバになると城クリアになるようにパッチした ものです。 あと以前作ったマッパー40版はCHR-ROMのバンク切り替えに対応していないので ピノキオのままです。 8-4クリアで☆マークの付く仕様は、セーブ機能付きMMC3版SMB2Jのコードを使うことにより 可能ですが、パッチ箇所が思ったよりも多いのでしばらく時間がかかりそうです。 改造やってるバカは死ね てめえらは生きる価値がねえゴミだ smb2j-glitchedworldsをANNSMBに移植しようとしたがうまくいかなかった。 試行錯誤メモ 625B : A9 60 LDA #$60 ;lda #>(GL_ENTER - 1) * 625D : 48 PHA ;pha 625E : A9 31 LDA #$31 ;lda #<(GL_ENTER - 1) * 6260 : 48 PHA ;pha 6261 : A9 C2 LDA #$C2 ;lda #>(LoadAreaPointer - 1) * 6263 : 48 PHA ;pha 6264 : A9 A3 LDA #$A3 ;lda #<(LoadAreaPointer - 1) * 6266 : 48 PHA ;pha 62D1 : D2 C0 ;.word DiskIDString * 62FD : A0 03 LDY #$03 ;ldy #$03 62FF : 8C 09 C1 STY $C109 ;sty ListPointer+1 * 6302 : A0 00 LDY #$00 ;ldy #$00 6304 : 8C 08 C1 STY $C108 ;sty ListPointer * 6313 : 4C 03 C1 JMP $C103 ;jmp LoadFilesDirect * GL_ENTER 6032 6035 LoadAreaPointer C2A4 C286 DiskIDString "D2C0" "E8C0" ListPointer C108 C11D LoadFilesDirect C103 C119 ANNSMBでエンディングになるステージの設定を弄れば、バグった9面もプレイ可能で、 理屈の上では768Wではなく1024Wも可能だが、NSMDATA3にステージ情報が入っていない ので遊べる面が少ないのと、CHRセットがMC用に変わっているので、プクプクなどの 敵キャラが表示されないので、ステルス攻撃に注意が必要。CHRを弄ればいいけど。 MMC3版SMB2Jが$6000-$7FFFのRAMに依存しない仕様っぽかったのですが、 MMC3版ANNSMBではエンディング処理でこの部分に書き込みしています。 早速RAMに依存しないはすぐに出来るだろうと思ってやってみたのですが、 おもったよりも複雑で失敗。NSMDATA2とNSMDATA4を含む全解析が必要だと確信 NSMMAINだけで大体わかったけど、 "(Indirect), Y"使ってるのか。複雑だな ;$00 = #$636B 6DC4:B1 00 LDA ($00),Y @ $6370 = #$30; 6DC4:B1 00 LDA ($00),Y @ $6371 = #$12; ;$00 = #$6372 6DED:B1 00 LDA ($00),Y @ $6372 = #$00 しかし上記のANNSMB特有の書き換え部分が$6000-$7FFFに収まっていたのは奇跡的だな こういうのってバイナリでできる? マリオ2のfds版でA〜D面行くのを 8回クリアでなくても1回とか 何なら0回でもタイトルでB押しながらスタートで 可能にするっていうの >>638 出来ます。このケースだと8回クリアしているかチェックしていルーチンがあるので そこを8から任意の値にするだけなので、たった1バイトの変更でできます。 マリオ便利改造コード集 http://k1ilove.yu-nagi.com/mariocod.html ↑ここにいろいろある。 ただ実際にパッチを当てようと思ってもFDSファイルの構造を理解していないと 難しい。バイナリエディタの外にFDS Studyとかのツールは必要かも。 あと16進数の計算できる電卓。(Windowsの電卓とか) >>640 のリンクでは、親切にコード列が載っているから、バイナリエディタでサーチすれば すぐに場所は分かるだろう MMC3版でパラレルワールド(A-D)の途中開始地点が落下する理不尽な場所になっていて ミスってると思ったけど、そうゆう仕様のようですね。 開始同時にAボタン押せば突破できるので そもそもSMB2のパラレルワールドも途中開始位置がそんな感じだったかと >>640 これってFDSのROMのバイナリを 直接書き換えるのとは違うの? アドレスサーチしてもそれらしい部分がない >>644 アドレスサーチではなくてバイナリ列をサーチするのです。 アドレスサーチでやりたいなら一応詳しく書くと 次のような例では、 ワールドAに行ける条件となっているワールド8のクリア回数8回の変更 ●マリオ2 FILE No.03 C484番地 08 ...とありますが、 FDSstudyでSMB2のファイルを開くと //////////////////////// Side-A //////////////////////// No LoadNo FileName LoadAdd Size Type 00 00 KYODAKU- 2800 E0 2 (NT) 01 01 SM2CHAR1 0 2000 1 (Chr) 02 10 SM2CHAR2 760 40 1 (Chr) 03 05 SM2MAIN 6000 8000 0 (Prg) 04 20 SM2DATA2 C470 E2F 0 (Prg) 05 30 SM2DATA3 C5D0 CCF 0 (Prg) 06 40 SM2DATA4 C2B4 F4C 0 (Prg) 07 0F SM2SAVE D29F 1 0 (Prg) ------------------------------------------------------- FDS Study ( Ver.0.8f ) まあこんな感じになっているでしょう。 FILE No.03なのでSM2MAINですね。 LoadAddが$6000でサイズが$8000ということは終端は、 $6000+$8000-$1=$DFFFとなります。 FDSのデーターはFile Header BlockとFile Data Blockで構成されており、 File Header Blockは10バイトです。 バイト 1 $03 1 File Number 1 File Indicate Code (ファイル識別コード) 8 File Name 2 File Address 2 File Size 1 Kind of File 次にFile Data Blockが続きます。 1 $04 それ以降がデータとなっています。 簡単にはSM2MAINの部分から14バイト先からデータが入っています。 FDSファイルにはFDSヘッダのあるものとないものがあります。 FDSヘッダは16バイトです。 手元にあるFDSヘッダ付きSMB2のFDSファイルをバイナリエディタで開くと21A0番地から SM2MAINの文字列があります、その14バイト先が21AE番地です。 FDSファイルの$21AE番地が実記では$6000番地にマップされます。 ワールド8のクリア回数8回の変更だと $C484-$6000+$21AE=$8624 ということでFDSファイルの$8624番地ということになります。 すごい説明が下手でスマン。 ちょっとミスったので訂正 アドレスサーチでやりたいなら一応詳しく書くと 次のような例では、 ワールドAに行ける条件となっているワールド8のクリア回数8回の変更 ●マリオ2 FILE No.03 C484番地 08 ...とありますが、 FDSstudyでSMB2のファイルを開くと //////////////////////// Side-A //////////////////////// No LoadNo FileName LoadAdd Size Type 00 00 KYODAKU- 2800 E0 2 (NT) 01 01 SM2CHAR1 0 2000 1 (Chr) 02 10 SM2CHAR2 760 40 1 (Chr) 03 05 SM2MAIN 6000 8000 0 (Prg) 04 20 SM2DATA2 C470 E2F 0 (Prg) 05 30 SM2DATA3 C5D0 CCF 0 (Prg) 06 40 SM2DATA4 C2B4 F4C 0 (Prg) 07 0F SM2SAVE D29F 1 0 (Prg) ------------------------------------------------------- FDS Study ( Ver.0.8f ) まあこんな感じになっているでしょう。 FILE No.03なのでSM2MAINですね。 LoadAddが$6000でサイズが$8000ということは終端は、 $6000+$8000-$1=$DFFFとなります。 FDSのデーターはFile Header BlockとFile Data Blockで構成されており、 File Header Blockは10バイトです。 バイト 1 $03 1 File Number 1 File Indicate Code (ファイル識別コード) 8 File Name 2 File Address 2 File Size 1 Kind of File 次にFile Data Blockが続きます。 1 $04 それ以降がデータとなっています。 簡単にはSM2MAINの部分から14バイト先からデータが入っています。 FDSファイルにはFDSヘッダのあるものとないものがあります。 FDSヘッダは16バイトです。 手元にあるFDSヘッダ付きSMB2のFDSファイルをバイナリエディタで開くと21A0番地から SM2MAINの文字列があります、その14バイト先が21AE番地です。 FDSファイルの$21AE番地が実記では$6000番地にマップされます。 ワールド8のクリア回数8回の変更だと $C484-$6000+$21AE=$8632 ということでFDSファイルの$8632番地ということになります。 $8632に$08の値があれば正解です。FDSヘッダの無い奴だと$8622番地です。 すごい説明が下手でスマン。 更に訂正 アドレスサーチでやりたいなら一応詳しく書くと 次のような例では、 ワールドAに行ける条件となっているワールド8のクリア回数8回の変更 ●マリオ2 FILE No.03 C484番地 08 ...とありますが、 FDSstudyでSMB2のファイルを開くと //////////////////////// Side-A //////////////////////// No LoadNo FileName LoadAdd Size Type 00 00 KYODAKU- 2800 E0 2 (NT) 01 01 SM2CHAR1 0 2000 1 (Chr) 02 10 SM2CHAR2 760 40 1 (Chr) 03 05 SM2MAIN 6000 8000 0 (Prg) 04 20 SM2DATA2 C470 E2F 0 (Prg) 05 30 SM2DATA3 C5D0 CCF 0 (Prg) 06 40 SM2DATA4 C2B4 F4C 0 (Prg) 07 0F SM2SAVE D29F 1 0 (Prg) ------------------------------------------------------- FDS Study ( Ver.0.8f ) まあこんな感じになっているでしょう。 FILE No.03なのでSM2MAINですね。 LoadAddが$6000でサイズが$8000ということは終端は、 $6000+$8000-$1=$DFFFとなります。 FDSのファイル部分はFile Header BlockとFile Data Blockで構成されており、 File Header Blockは10バイトです。 バイト 1 $03 1 File Number 1 File Indicate Code (ファイル識別コード) 8 File Name 2 File Address 2 File Size 1 Kind of File 次にFile Data Blockが続きます。 1 $04 それ以降がゲームデータとなっています。 簡単にはSM2MAINの部分から14バイト先からデータが入っています。 FDSファイルにはFDSヘッダのあるものとないものがあります。 FDSヘッダは16バイトです。 手元にあるFDSヘッダ付きSMB2のFDSファイルをバイナリエディタで開くと21A0番地から SM2MAINの文字列があります、その14バイト先が21AE番地です。 FDSファイルの$21AE番地が実記では$6000番地にマップされます。 ワールド8のクリア回数8回の変更だと $C484-$6000+$21AE=$8632 ということでFDSファイルの$8632番地ということになります。 $8632に$08の値があれば正解です。FDSヘッダの無い奴だと$8622番地です。 すごい説明が下手でスマン。 >>646-648 いや、とても丁寧にありがとう 今日夜の2交代シフトだから 明日の朝にでも試してみるよ >>633 最初の方のコードでNOPで埋められている部分があると思いますが、そこに意味があるの かも知れません。 ANNSMBでNSMDATA3を読み込んだ面(いわゆる9面)はエリアコードを直接指定することでかなり ユニークなステージが登場することがわかりました。9-1ならエリアコードの場所は$C266番地です。 (この部分は$C265から始まるループ戻り位置指定となっております。) 9-1だとミスすると自動歩行雲面に飛ばされてしまうので9-2以降の方がいいかも。 9-2はのエリアコードの場所は$C267番地です。 >>648 とりあえず該当アドレスで08の値があった 00にしてもA面にならなかったので 01にして機能するか試してみる FDSのゲームはエミュレーターがセーブファイルとしてFDSそのままか独自形式で保持している のでそれを削除するか、ファイル名を変更して保存しないと、パッチが適用されていない 状態になるとので注意。 >>627-628 1-7で城クリアの時に出るピノキオ(MC)がA-D面のものになっていますね。 これには気づいていなかった。もしかしてCHR-RAMが必要かな? 調べてみるとやはり、D13E番地からMCのスプライトが入っているようです。 CHR-RAMが必要なのは確定 >>636 とりあえずアドレス指定箇所調べたメモ ;色指定やテキストのアドレス指定 6063 : 01 03 ; <00> 6065 : 1F 6C ; <01> 海のパレット 6067 : 43 6C ; <02> 地上のパレット 6069 : 67 6C ; <03> 地下のパレット 606B : 8B 6C ; <04> 城のパレット 606D : E6 C5 ; <05> タイトルコード 606F : 41 03 ; <06> 6071 : 41 03 ; <07> 6073 : C7 6C ; <08> 斧以降の場合のパレット 6075 : AF 6C ; <09> 緑色を白色に変更する場合のパレット 6077 : B7 6C ; <0A> 緑色を白色、背景を黒に変更する場合のパレット 6079 : BF 6C ; <0B> 雲足場面の場合のパレット 607B : CF 6C ; <0C> [THANK YOU MARIO!] 607D : E3 6C ; <0D> [BUT OUR PRINCESS IS IN] [ANOTHER CASTLE!] 607F : 8D C8 ; <0E> 6081 : 96 C8 ; <0F> 6083 : AA C8 ; <10> [THANK YOU MARIO!] 6085 : C2 C8 ; <11> [PEACE IS PAVED] 6087 : D8 C8 ; <12> [WITH KINGDOM SAVED] 6089 : EE C8 ; <13> [HURRAH TO MARIO] 608B : 02 C9 ; <14> [OUR ONLY HERO] 608D : 13 C9 ; <15> [THIS ENDS YOUR TRIP] 608F : 2A C9 ; <16> [OF A LONG FRIENDSHIP] 6091 : 42 C9 ; <17> [100000 PTS.ADDED] 6093 : 5A C9 ; <18> [FOR EACH PLAYER LEFT.] 6095 : 5F C1 ; <19> ゲーム途中のディスク読み込み時エラー表示? 6097 : 21 C1 ; <1A> 6099 : 83 C9 ; <1B> 609B : CB C4 ; <1C> PLAYER選択キノコ 609D : 6B 63 ; <1D> ? 609F : 73 C9 ; <1E>[YOU'RE A SUPER PLAYER!] [WE HOPE WE'LL] [SEE YOU AGAIN.] [MARIO AND STAFF.] --------- ; BG制御 60ED : AD 73 07 LDA $0773 ; 60F0 : 0A ASL A ; 60F1 : AA TAX ; 60F2 : BD 63 60 LDA $6063,X ; 60F5 : 85 00 STA $00 ; 60F7 : E8 INX ;| 構造体アドレスをストア 60F8 : BD 63 60 LDA $6063,X ; 60FB : 85 01 STA $01 ; 60FD : 20 E8 6D JSR $6DE8 ; sub: 描画コードをレジスタへ 6100 : A0 00 LDY #$00 ; 6102 : AE 73 07 LDX $0773 ; 6105 : E0 06 CPX #$06 ; 6107 : D0 01 BNE $610A ; 6109 : C8 INY ; 610A : BE A1 60 LDX $60A1,Y ; 610D : A9 00 LDA #$00 ; 610F : 9D 00 03 STA $0300,X ; VRAM_BUFFER 6112 : 9D 01 03 STA $0301,X ; VRAM_BUFFER 6115 : 8D 73 07 STA $0773 ; 6118 : AD 79 07 LDA $0779 ; 611B : 8D 01 20 STA $2001 ; PPUコントロールレジスタ2 611E : 58 CLI ; --------- ; 6382 : B9 54 63 LDA $6354,Y ; ; 6382 : B9 54 63 LDA $6354,Y ; 6354 : 63 63 ; 6356 : 65 63 ; 6358 : 67 63 ; 635A : 69 63 ; ; 637F : BC 5C 63 LDY $635C,X ; 635C : 04 02 00 04 02 00 08 ; ;60F2 : BD 63 60 LDA $6063,X ; ;60F8 : BD 63 60 LDA $6063,X ; 6363 : 30 12 ; 6365 : 30 1A ; 6367 : 30 16 ; 6369 : 17 2A ; ;6391 : 99 70 63 STA $6370,Y ; 636B : 3F 18 ; 636D : 04 0F ; 636F : 36 00 ; 6371 : 00 00 ; ; <$0772=01> クッパの橋がおちた後 (パラレルワールドの時の分岐等) 6373 : AD FB 07 LDA $07FB ; 6376 : D0 26 BNE $639E ; 6378 : AE 5F 07 LDX $075F ; 637B : E0 07 CPX #$07 ; 637D : F0 1F BEQ $639E ; 637F : BC 5C 63 LDY $635C,X ; 6382 : B9 54 63 LDA $6354,Y ; 6385 : 85 00 STA $00 ; 6387 : C8 INY ; 6388 : B9 54 63 LDA $6354,Y ; 638B : 85 01 STA $01 ; 638D : A0 00 LDY #$00 ; 638F : B1 00 LDA ($00),Y ; 6391 : 99 70 63 STA $6370,Y ; 6394 : C8 INY ; 6395 : C0 02 CPY #$02 ; 6397 : D0 F6 BNE $638F ; 6399 : A9 1D LDA #$1D ; 639B : 8D 73 07 STA $0773 ; 639E : AE 1B 07 LDX $071B ; 63A1 : E8 INX ; 63A2 : 86 34 STX $34 ; 63A4 : AD FB 07 LDA $07FB ; パラレルワールドか 63A7 : F0 0C BEQ $63B5 ; パラレルワールドでなければジャンプ 63A9 : AD 5F 07 LDA $075F ; 現在のワールド 63AC : C9 03 CMP #$03 ; ワールドDか 63AE : 90 05 BCC $63B5 ; ワールドDに達していなければジャンプ 63B0 : A9 07 LDA #$07 ; ワールド8 63B2 : 8D 5F 07 STA $075F ; ワールド8と同じ扱い 63B5 : A9 08 LDA #$08 ; 斧獲得BGM指定 63B7 : 85 FC STA $FC ; PORT_$2005_V 63B9 : EE 72 07 INC $0772 ; 63BC : 60 RTS ; 63BD : AD 70 07 LDA $0770 ; A=$0770 63C0 : D0 F7 BNE $63B9 ; タイトル描画の必要なしならjump 63C2 : A9 05 LDA #$05 ; 63C4 : 4C 28 66 JMP $6628 ; ---------- ; $0300-$03??の描画コードをレジスタへ出力 6D9D : 8D 06 20 STA $2006 ; VRAM_ADD 6DA0 : C8 INY ; 6DA1 : B1 00 LDA ($00),Y ; JSR1/DAT_L/PT_L 6DA3 : 8D 06 20 STA $2006 ; VRAM_ADD 6DA6 : C8 INY ; 6DA7 : B1 00 LDA ($00),Y ; JSR1/DAT_L/PT_L 6DA9 : 0A ASL A ; 6DAA : 48 PHA ; 6DAB : AD 78 07 LDA $0778 ; 6DAE : 09 04 ORA #$04 ; 6DB0 : B0 02 BCS $6DB4 ; 縦向き描画ならjump 6DB2 : 29 FB AND #$FB ; 6DB4 : 20 F8 6D JSR $6DF8 ; 6DB7 : 68 PLA ; 6DB8 : 0A ASL A ; 6DB9 : 90 03 BCC $6DBE ; 6DBB : 09 02 ORA #$02 ; 6DBD : C8 INY ; 6DBE : 4A LSR A ; 6DBF : 4A LSR A ; 6DC0 : AA TAX ; 6DC1 : B0 01 BCS $6DC4 ; 6DC3 : C8 INY ; 6DC4 : B1 00 LDA ($00),Y ; 6DC6 : 8D 07 20 STA $2007 ; VRAM_DATA 6DC9 : CA DEX ; 6DCA : D0 F5 BNE $6DC1 ; 6DCC : 38 SEC ; 6DCD : 98 TYA ; 6DCE : 65 00 ADC $00 ; 6DD0 : 85 00 STA $00 ; 6DD2 : A9 00 LDA #$00 ; 6DD4 : 65 01 ADC $01 ; 6DD6 : 85 01 STA $01 ; 6DD8 : A9 3F LDA #$3F ; 6DDA : 8D 06 20 STA $2006 ; VRAM_ADD 6DDD : A9 00 LDA #$00 ; 6DDF : 8D 06 20 STA $2006 ; VRAM_ADD 6DE2 : 8D 06 20 STA $2006 ; VRAM_ADD 6DE5 : 8D 06 20 STA $2006 ; VRAM_ADD ; サブルーチンとしての最初の呼び出しはここから 6DE8 : AE 02 20 LDX $2002 ; PPU_STATUS 6DEB : A0 00 LDY #$00 ; 6DED : B1 00 LDA ($00),Y ; 6DEF : D0 AC BNE $6D9D ; 6DF1 : 8D 05 20 STA $2005 ; PPU_BG_SCROLL 6DF4 : 8D 05 20 STA $2005 ; PPU_BG_SCROLL 6DF7 : 60 RTS ; $6000-7FFFをROM化するためには、 適当なところに$636B-6372の8バイトをWRAMの開き領域に転送するプログラムを書く、 $609D-607EにWRAMに転送したアドレスの値を入れる $6392-6392に転送したアドレスの値+$6を入れる >>654 一応ファイル名を変更したり セーブデータの.sdkファイル消したりしたけど Bボタン押しながらスタートでも00でA面に行かない アドレス違ってんでしょうか? ピノキオ(MC)の処理関係 ;ピノキオ(MC)切り替え処理? 6311 : AD 5C 07 LDA $075C ; 6314 : C9 03 CMP #$03 ; 6316 : D0 39 BNE $6351 ; 6318 : AC FB 07 LDY $07FB ; 631B : D0 34 BNE $6351 ; 631D : 84 06 STY $06 ; 631F : AD 5F 07 LDA $075F ; 6322 : 0A ASL A ; 6323 : AA TAX ; 6324 : BD FA 62 LDA $62FA,X ; 6327 : 85 00 STA $00 ; 6329 : E8 INX ; 632A : BD FA 62 LDA $62FA,X ; 632D : 85 01 STA $01 ; 632F : A6 06 LDX $06 ; 6331 : BD 08 63 LDA $6308,X ; 6334 : 8D 06 20 STA $2006 ; VRAM_ADD 6337 : BD 0B 63 LDA $630B,X ; 633A : 8D 06 20 STA $2006 ; VRAM_ADD 633D : B1 00 LDA ($00),Y ; 633F : 8D 07 20 STA $2007 ; VRAM_DATA 6342 : C8 INY ; 6343 : 98 TYA ; 6344 : DD 0E 63 CMP $630E,X ; 6347 : D0 F4 BNE $633D ; 6349 : E6 06 INC $06 ; 634B : A5 06 LDA $06 ; 634D : C9 03 CMP #$03 ; 634F : D0 DE BNE $632F ; 6351 : 4C B9 63 JMP $63B9 ; ---------- ; 画面のモードによる分岐? アドレス指定 7AAD : 5E C0 ; 7AAF : C9 6E ; RAMリセットやハードモード設定など 7AB1 : 11 63 ; ピノキオ(MC)切り替え処理? 7AB3 : 4C 65 ; 画面切り替え総合管理(イントロ作成, 表示) 7AB5 : 48 6F ; BGM指定や0爆弾ストアなど 7AB7 : B9 7A ; 通常のゲームプレイ >>664 飛ばしてしまった ; 6324 : BD FA 62 LDA $62FA,X ; ; 632A : BD FA 62 LDA $62FA,X ; 62FA : 3E D1 ; 62FC : 9E D1 ; 62FE : FE D1 ; 6300 : 5E D2 ; 6302 : 4F D1 ; 6304 : AF D1 ; 6306 : 0F D2 ; ; 6331 : BD 08 63 LDA $6308,X ; 6308 : 0C 07 0E ; ; 6337 : BD 0B 63 LDA $630B,X ; 630B : D0 A0 E0 ; ; 6344 : DD 0E 63 CMP $630E,X ; 630E : 30 50 60 ; >>656 一応CHR-RAMmmmmじゃなくて、CHR-ROMのバンク切り替えでもいけそうだが、 768W(1024W)の城クリアでバグMCが登場する挙動が再現できないのでNG CHR-RAM使うのは凄い面倒いなぁ。 普通には PRG-ROM→CHR-RAM と転送しないといけない。 特殊なマッパー使えば CHR-ROM→PRG-RAM→CHR-RAM バグ挙動の再現を諦めれば、 CHR-ROMのバンク切り替えが一番楽だな。 も可能だが画面が出るまでにラグが出る >>663 正しくパッチすれば、$00にした場合はstart+Aでディスクロードの為に黒画面が出てから A-1からスタートすると思いますが。 >>668 CHR-RAM使うのは凄い面倒いなぁ。 普通には PRG-ROM→CHR-RAM と転送しないといけない。 特殊なマッパー使えば CHR-ROM→PRG-RAM→CHR-RAM も可能だが画面が出るまでにラグが出る バグ挙動の再現を諦めれば、 CHR-ROMのバンク切り替えが一番楽だな。しかし余分に容量食う kaiserのマッパー142のSMB2JはCHR-RAMだが8-4クリア時のドア→ピーチになるのを 上手く再現している。PRG-ROMには32KBのCHRデータが入ってた。 ドア8KB+ピーチ8KB+ドア8KB+ピーチ8KBの構成。 作動の軽快だったからCHR-RAM方式でもスムーズに作動するようだ 海賊版SMB2Jのマッパー40、43、50のものは8-4クリア(エンディング)の挙動に問題がある ようです。エンディングのBGMが流れない、黒画面で固まる。9-1に行けない等。 (VirtuaNESはエンディングのBGMは流れるが他の問題は発生する。これは恐らく VirtuaNESが$6000-7FFFがROMであるべき時でも書き換え出来てしまう為でしょう。) (※また、マッパー43は異なる仕様ものが重複して割り当てられている為にエミュレーターに よって解釈が異なります。) マッパー142のおのは比較的良い移植ですが、ソフトウェアリセットで固まってしまうようです。 MMC3版はマッパー142をベースに作られているでしょう。マッパー142はVRC3をベースにした 拡張版で$6000-7FFFにもROMが割り当てられるようにした物の用です。 海賊版SMB2Jのマッパー40、43、50のものは8-4クリア(エンディング)の挙動に問題がある ようです。エンディングのBGMが流れない、黒画面で固まる。9-1に行けない等。 (VirtuaNESはエンディングのBGMは流れるが他の問題は発生する。これは恐らく VirtuaNESが$6000-7FFFがROMであるべき時でも書き換え出来てしまう為でしょう。) (※また、マッパー43は異なる仕様ものが重複して割り当てられている為にエミュレーターに よって解釈が異なります。) マッパー142のものは比較的良い移植ですが、ソフトウェアリセットで固まってしまうようです。 MMC3版はマッパー142をベースに作られているでしょう。マッパー142はVRC3をベースにした 拡張版で$6000-7FFFにもROMが割り当てられるようにした物のようです。 >>669 ごめん、いけた BボタンじゃなくてAボタン押しながらスタートだったのね 黒い画面だったから一瞬データ壊れたかと思ったけど あれは読み込み中だったのね マッパー43は実際には少なくとも3種類の異なるマッパーが重複して割り当てられているので 非常に厄介です。 TONY-I CHR-ROM IRQ制御$4122 YS-612 CHR-ROM IRQ制御$8122 Mr. Mary 2 CHR-RAM IRQ制御$4122 マッパー43は実際には少なくとも3種類の異なるマッパーが重複して割り当てられているので 非常に厄介です。 TONY-I NESファイル88KB CHR-ROM IRQ制御$4122 YS-612 NESファイル88KB CHR-ROM IRQ制御$8122 Mr. Mary 2 NESファイル80KB CHR-RAM IRQ制御$4122 PRG-ROMからCHR-RAMに転送するルーチンは LDA ($?),Y STA $2007 INY BNE が基本のようです。 ループさせて$2007に8192回書き込みます。 8bitCPUなので256×32回という処理になります。 海賊版SMB2Jの場合、$C000-DFFFにCHRデーターを出現させて転送するようですが、 ×32回の部分はどうやっているかっていうと、アドレス$E000になったらループから抜けるか、 $20回(32回)を超えたらループから抜けるみたいな処理になっているようです。 ファミコンは$2007に読み込みまたは書き込みで自動でインクリメントされる仕様でこれを 使っているようです。 ($2006で初期アドレスを指定します。2バイトなので二回書き込みです。) CHR-ROMからCHR-RAMに転送しようと思うと一旦8K全部PRG-RAMに転送してからCHR-RAMに 転送するようにしないと凄く複雑(かつ遅い)コードになってしまいます。 1バイトづつCHR-ROM→本体WRAM→CHR-RAMやろうと思うと、$2007が読み込みで インクリメントされ、書き込みでインクリメントされる為うまくいきません。 素直にやろうとすると一々$2006でアドレス指定する複雑かつ重いコードとなって しまいます。読み書きでインクリメントされてズレるのを悪用する方法も出来なくはないです が、高速バンク切り替えでバグってしまう可能性はあります。 海賊版SMB2Jの原本はこれだと言われてます。 https://wiki.nesdev.com/w/index.php/NES_2.0_Mapper_368 通称Yung-08 他の派生マッパー(40、43、50)の物は殆どYung-08がベースです。 マッパー142のSMB2Jは比較的良く出来た移植です。 ただしソフトウェアリセットにバグがあるようです。 Yung-08をベースにしているかどうかは分かりません。がYung-08系列じゃない可能性が 高いです。 MMC3移植版はマッパー142をベースにしている可能性が極めて高いです。 Yung-08系列はエンディングのBGMがおかしい、9-1に行けない等の不具合があります。 マッパー142をベースにマッパー50に移植することは理論上可能と覆われます。 マッパー142をベースにマッパー50に移植することは理論上可能と思われます CHR-RAMなMMC3でANNSMBを最小限の変更で再現するには、少なくとも4KBの CHR-RAMが必要のようです。 MMS3版ANNSMBはセーブ機能を搭載する予定なので、セーブ関連のコードを入れた 開き領域にCHR-RAM関連のコードを入れる予定 PPUDATA読み取りバッファー(フェッチ後) VRAMアドレスが0〜 $ 3EFFの範囲にあるとき(つまり、パレットの前)に読み取ると、読み取りは内部読み取りバッファーの内容を返します。 この内部バッファは、PPUDATAを読み取るときにのみ更新されるため、フレーム間で保持されます。 CPUが内部バッファの内容を読み取って取得した後、PPUはすぐに現在のVRAMアドレスのバイトで内部バッファを更新します。 したがって、VRAMアドレスを設定した後、最初にこのレジスタを読み取ってパイプラインを準備し、結果を破棄する必要があります。 $ 3F00〜 $ 3FFFからのパレットデータの読み取りは動作が異なります。 パレットデータはデータバスにすぐに配置されるため、プライミング読み取りは必要ありません。 パレットを読み取ると、内部バッファは更新されますが、そこに配置されるデータは、パレットの「下」に表示されるミラーリングされた名前テーブルデータです。 (PPUメモリマップを確認すると、これがより明確になるはずです。) PPU registers https://wiki.nesdev.com/w/index.php/PPU_registers#The_PPUDATA_read_buffer_.28post-fetch.29 CHR-ROM→PRG-RAM→CHR-RAMに転送する適当に書いたコード A5 FE LDA $00FE 29 E7 AND #$E7 8D 01 20 STA $2001 AE 02 20 LDX $2002 A0 00 LDY #$00 8C 06 20 STY $2006 C 06 20 STY $2006 84 0A STY $000A A9 A0 LDA #$A0 85 0B STA $000B A2 20 LDX #$20 :_A B1 0A LDA ($0A),Y 8D 07 20 STA $2007 C8 INY D0 F8 BNE _A E6 0B INC $000B CA DEX D0 F3 BNE _A A5 FE LDA $00FE 29 E7 AND #$E7 8D 01 20 STA $2001 AE 02 20 LDX $2002 A0 00 LDY #$00 8C 06 20 STY $2006 8C 06 20 STY $2006 84 0A STY $000A A9 60 LDA #$60 85 0B STA $000B A2 20 LDX #$20 AD 07 20 LDA $2007 :_B AD 07 20 LDA $2007 91 0A STA ($0A),Y C8 INY D0 F8 BNE _B E6 0B INC $000B CA DEX D0 F3 BNE _B A5 FE LDA $00FE 29 E7 AND #$E7 8D 01 20 STA $2001 AE 02 20 LDX $2002 A0 00 LDY #$00 8C 06 20 STY $2006 8C 06 20 STY $2006 84 0A STY $000A A9 60 LDA #$60 85 0B STA $000B A2 20 LDX #$20 :_C B1 0A LDA ($0A),Y @ $8000 8D 07 20 STA $2007 C8 INY D0 F8 BNE _C E6 0B INC $000B CA DEX D0 F3 BNE _C 4C 00 80 JMP $8000 一応城クリアでMCのグラがちゃんと替わる仕様のものもとりあえず出来たが... 一旦ソフトウェアリセットしないとグラフィックがバグってしまう不具合がありましたが、 解消できました。原因は改変FDS BIOS部に$2007に書き込みするルーチンが 残っていあした。無意味な上に起動ラグの原因なのでカットしました。 ということでMC正常表示できるようにしました。しかしMMC3でCHR-RAMを使いたいって 事で変態なマッパー195を採用しました。ということで古いエミュレータでは動かない可能性 大です。 FCEUXとVirtuaNES Plusで作動確認。 https://www.axfc.net/u/4030465.zip ただ$6000-7FFF部の書き換え部分はまだ修正していません。がSMB2J(改変BDS BIOS部)の嵐部分 のコードが不要なのでそこにコードを配置することは可能でしょう。 PRG-RAMかつ$6000-7FFF部にコードが置けるマッパーは$6000-7FFFがROMの場合が 多いのでマッパー移植性を考慮するとROMでも作動するようにする必要があります。 >>637 MMC3版のSMB2Jは$6000-$7FFFに書き込むコードは残っているようです。 >>696 テスト版的なものは"すぐに消えるロダ"に上げたりしています。 マッパー142のSMB2Jのソフトウェアリセットがエミュレーターによってはうまくいかないのが 謎だな。同じマッパー142のバブルボブルはソフトウェアリセットは正常なので 問題の箇所をトレースログを追って特定しました。 ($FFFA:8B E1 24 EE C7 E1) $EE9E:58 CLI $EE9F:6C FC DF JMP ($DFFC) = $6000 FCEUXの場合、 $EE9E:58 CLI $EE9F:6C FC DF JMP ($DFFC) = $6000 $E1C7:2C 01 01 BIT $0101 = #$80 ...(略) $E1F6:68 PLA $E1F7:40 RTI $E1C7:2C 01 01 BIT $0101 = #$80 ... ↑無限ループ VirtuaNESの場合、 $EE9E:58 CLI $EE9F:6C FC DF JMP ($DFFC) = $6000 $E1C7:2C 01 01 BIT $0101 = #$80 $6000:A5 FA LDA $00FA = #$00 $E1C7:2C 01 01 BIT $0101 = #$80 ...(略) $E1F6:68 PLA $E1F7:40 RTI $6002:29 F7 AND #$F7 ......(略々) $E1F6:68 PLA $E1F7:40 RTI $604F:8D 01 01 STA $0101 = #$C0 $E1C7:2C 01 01 BIT $0101 = #$C0 $E1CA:30 1E BMI $E1EA $E1EA:50 03 BVC $E1EF $E1EC:6C FE DF JMP ($DFFE) = $61A2 $61A1:40 RTI $61A2:78 SEI $61A3:08 PHP $61A4:48 PHA $61A5:8A TXA $61A6:48 PHA $61A7:98 TYA $61A8:48 PHA ... ↑ とりあえずIRQ割り込みが1命令ごとに発生し、$6000からゆっくりとプログラムが 進むが$604Fまで行くとIRQ割り込みから抜け正常作動。 とりあえず、$EE9EをNOP($EA)で潰してしまえばFCEUXでもソフトウェアリセットが 働くのを確認。VirtuaNESでもソフトウェアリセット時の遅延がなくなります。 >>702 訂正 VirtuaNESの場合、 $EE9E:58 CLI $EE9F:6C FC DF JMP ($DFFC) = $6000 $E1C7:2C 01 01 BIT $0101 = #$80 ...(略) $E1F6:68 PLA $E1F7:40 RTI $6000:A5 FA LDA $00FA = #$00 $E1C7:2C 01 01 BIT $0101 = #$80 ...(略) $E1F6:68 PLA $E1F7:40 RTI $6002:29 F7 AND #$F7 ......(略々) $E1F6:68 PLA $E1F7:40 RTI $604F:8D 01 01 STA $0101 = #$C0 $E1C7:2C 01 01 BIT $0101 = #$C0 $E1CA:30 1E BMI $E1EA $E1EA:50 03 BVC $E1EF $E1EC:6C FE DF JMP ($DFFE) = $61A2 $61A1:40 RTI $61A2:78 SEI $61A3:08 PHP $61A4:48 PHA $61A5:8A TXA $61A6:48 PHA $61A7:98 TYA $61A8:48 PHA ... ↑ とりあえずIRQ割り込みが1命令ごとに発生し、$6000からゆっくりとプログラムが 進むが$604Fまで行くとIRQ割り込みから抜け正常作動。 VirtuaNES以外のエミュレーターだと $EE9F:6C FC DF JMP ($DFFC)の 後にIRQ割り込みで$E1C7:2C 01 01 BIT $0101に行き、$E1F7:40 RTIで $E1C7に行ってしまうからデッドロックしてしまうんやな。 ちょっとNESや6502の仕様を調べてみないと分からんな。 マッパー142のSMB2Jのバンク構成を解析してみた。 prg $6000 0B $8000 0C $A000 0D $C000 00 01 02 03 $E000 last bank(0F) chr 04 05 残りのバンクはミラーのようです 04 05 ↓ ↓ 06 07 00 01 02 03 ↓ ↓ ↓ ↓ 0E 08 09 0A マッパー50は複雑怪奇で解析する気力が出ない。 バンク指定がスクランブルされていて次のようになります。 実際のバンク → 指定する数値 0 (0000) → 0 (0000) 1 (0001) → 6 (0110) 2 (0010) → 1 (0001) 3 (0011) → 7 (0111) 4 (0100) → 8 (1000) 5 (0101) → E (1110) 6 (0110) → 9 (1001) 7 (0111) → F (1111) SMB2Jの$6000-$7FFFを完全にROM化して、本体WRAMで処理しようとすると 空き容量が足りない。ひとつ思いついた方法は1バイト(8bit)単位ではなくて1bit単位で 記録するようにすればなんとかなるかも知れない。しかしコードを書くのが面倒だな まあわざわざ書かなくても大丈夫だと思いますが、IPSファイルはNTSC版のSMBの NESファイルに適用してください >>703 NESファイルではアドレス0x1EEAFを58からEAに置き換えるということです。 逆にROMカセットをFDSに容易に変換するには、 PRG-ROMが16KBかつプログラムが$8000からスタートするようにコードされていること。 しかし、PRG-ROMが16KBのソフトは$C000からスタートの場合が多い。 上記の条件に適合するのは例えばキン肉マン マッスルタッグマッチが該当するようです。 レリクス暗黒要塞をRom化して、オマチクダサイ を無くす事はできないの? >>714 これってディスクロードが非常に多いと言われているゲームだね。 >>627 >>685 結果的にCHR-RAM化が先となってしまいました。このあとセーブ機能の導入にあたって、 問題が発生(後述)することが判明したので結果的に良かったです。 CHR-RAM化する為にCHR-ROMのデータを$6000-$7FFFの領域に書きこんで、 それからCHR-RAMに書き込む方式としました。そのあと$C000-$DFFFに "$6000-$7FFFのデータ"の入ったバンクを出現させて$6000-$7FFFに書き込みます。 ところがセーブ仕様のSMB-2Jは$6000にセーブデータを置く仕様になっており、 $6001-$7FFFに書き込む仕様となっており、CHR-RAM初期化ルーチンと 衝突すると思ったわけです、なのでCHR-RAMのPPU$0000の部分だけ本体WRAMに 一旦転送するようにすれば解決はできます。ところがわざわざこんな処理をしなくても 大丈夫な事がでした。城クリア時のMC(ピノキオ)表示のために必要な CHR-RAMは4KBで十分な事が分かっていたので、上位アドレスから使ったほうが 無難ということで最初からCHR-ROMのデータを$7000-$7FFFに転送する仕様に していたので、セーブに使われる$6000と衝突しないので大丈夫のようです。 もしセーブデータを一旦WRAMに退避させてからCHR-RAMの初期化で$6000を使用する ような仕様とした場合は、電源投入直後にリセットとかリセット連打でセーブデータが 壊れてしまうことは容易に分かるでしょう あとなぜPRG-ROM→CHR-RAMとせずにCHR-ROM→PRG-RAM→CHR-RAMのように 面倒な構成としたのは、主に容量の問題です。ROMチップの容量は一般的に2の累乗です。 CHR-ROM16KB + PRG-ROM64KBなら計72Kですが、CHRのデーターをROMに置こうとすると PRG-ROMが最低でも72KB必要ですがそんな半端なROMチップは一般的に無いので 128KBとなってしまいます。しかし余分に容量を消費するのは美しくない。 容量の異なるROMチップを組み合わせてアドレスを割り当てる方法もありますが、 余計にコストがかかります。ということでこのようになりました。 SMB2JのMMC3版をテストしていたら赤パックンフラワーの所はパッチされているが、 赤パックンが出現しなかった。修正版パッチもあるけど、ちょっと調査してみる。 赤パックンフラワーの処理を正常化しようと思うと結構パッチが必要なようだ。 本家FDS SMB2J ; 赤パックン切り替え(パックンフラワー初期設定) 9398:A9 22 LDA #$22 939A:85 00 STA $0000 = #$02 939C:A9 13 LDA #$13 939E:85 01 STA $0001 = #$03 93A0:AD FB 07 LDA $07FB = #$00 93A3:D0 0D BNE $93B2 93A5:AD 5F 07 LDA $075F = #$04 93A8:C9 03 CMP #$03 93AA:B0 06 BCS $93B2 93AC:C6 00 DEC $0000 = #$02 93AE:A9 21 LDA #$21 93B0:85 01 STA $0001 = #$03 93B2:A5 00 LDA $0000 = #$02 93B4:8D 17 B5 STA $B517 = #$21 93B7:A5 01 LDA $0001 = #$03 93B9:8D FE 9F STA $9FFE = #$21 93BC:A9 01 LDA #$01 93BE:95 58 STA $58,X @ $005F = #$00 93C0:4A LSR 93C1:95 1E STA $1E,X @ $0025 = #$00 93C3:95 A0 STA $A0,X @ $00A7 = #$00 93C5:B5 CF LDA $CF,X @ $00D6 = #$00 93C7:9D 34 04 STA $0434,X @ $043B = #$00 93CA:38 SEC 93CB:E9 18 SBC #$18 93CD:9D 17 04 STA $0417,X @ $041E = #$00 93D0:A9 09 LDA #$09 93D2:4C 10 94 JMP $9410 kaiser版とMMC3版赤パックン処理未対策 9398:A9 22 LDA #$22 939A:85 00 STA $0000 = #$02 939C:A9 13 LDA #$13 939E:85 01 STA $0001 = #$03 93A0:AD FB 07 LDA $07FB = #$00 93A3:D0 0D BNE $93B2 93A5:AD 5F 07 LDA $075F = #$04 93A8:C9 03 CMP #$03 93AA:B0 06 BCS $93B2 93AC:C6 00 DEC $0000 = #$02 93AE:A9 21 LDA #$21 93B0:85 01 STA $0001 = #$03 93B2:A5 00 LDA $0000 = #$02 93B4:EA NOP 93B5:EA NOP 93B6:EA NOP 93B7:A5 01 LDA $0001 = #$03 93B9:EA NOP 93BA:EA NOP 93BB:EA NOP 93BC:A9 01 LDA #$01 93BE:95 58 STA $58,X @ $005F = #$00 93C0:4A LSR 93C1:95 1E STA $1E,X @ $0025 = #$00 93C3:95 A0 STA $A0,X @ $00A7 = #$00 93C5:B5 CF LDA $CF,X @ $00D6 = #$00 93C7:9D 34 04 STA $0434,X @ $043B = #$00 93CA:38 SEC 93CB:E9 18 SBC #$18 93CD:9D 17 04 STA $0417,X @ $041E = #$00 93D0:A9 09 LDA #$09 93D2:4C 10 94 JMP $9410 MMC3版赤パックン処理対策版 9398:A9 21 LDA #$21 939A:85 50 STA $0050 = #$00 939C:85 51 STA $0051 = #$00 939E:AD FB 07 LDA $07FB = #$00 93A1:D0 07 BNE $93AA 93A3:AD 5F 07 LDA $075F = #$04 93A6:C9 03 CMP #$03 93A8:90 06 BCC $93B0 93AA:E6 50 INC $0050 = #$00 93AC:A9 13 LDA #$13 93AE:85 51 STA $0051 = #$00 93B0:A9 01 LDA #$01 93B2:95 58 STA $58,X @ $005F = #$00 93B4:4A LSR 93B5:95 1E STA $1E,X @ $0025 = #$00 93B7:95 A0 STA $A0,X @ $00A7 = #$00 93B9:B5 CF LDA $CF,X @ $00D6 = #$00 93BB:9D 34 04 STA $0434,X @ $043B = #$00 93BE:38 SEC 93BF:E9 18 SBC #$18 93C1:9D 17 04 STA $0417,X @ $041E = #$00 93C4:A9 09 LDA #$09 93C6:4C 10 94 JMP $9410 93C9:B9 0A B5 LDA $B50A,Y @ $B50A = #$01 93CC:C0 0D CPY #$0D 93CE:D0 02 BNE $93D2 93D0:A5 50 LDA $0050 = #$00 93D2:60 RTS 93D3:FF UNDEFINED 93D4:FF UNDEFINED マッパーのレジスタと干渉しないように$EA(NOP)で潰したのでしょうな。当然緑パックンの ままになります。 ただ赤パックン作動をさせる為には>>724 のパッチだけでは駄目で他の部分の修正も必要 のようです セーブ化はそんなに多くの変更を行わなくてもいけそうですが、赤パックン処理関係で 結構エグい変更が必要になる模様。 本家FDS SMB2J ;パックンフラワー動作処理付近 A01F:A5 09 LDA $0009 = #$22 A021:4A LSR A022:90 19 BCC $A03D A024:AD 47 07 LDA $0747 = #$00 A027:D0 14 BNE $A03D A029:B5 CF LDA $CF,X @ $00D6 = #$00 A02B:18 CLC A02C:75 58 ADC $58,X @ $005F = #$00 A02E:95 CF STA $CF,X @ $00D6 = #$00 A030:C5 00 CMP $0000 = #$00 A032:D0 09 BNE $A03D A034:A9 00 LDA #$00 A036:95 A0 STA $A0,X @ $00A7 = #$00 A038:A9 40 LDA #$40 A03A:9D 8A 07 STA $078A,X @ $0791 = #$00 A03D:A9 20 LDA #$20 kaiser版とMMC3版赤パックン処理未対策 A01F:A5 09 LDA $0009 = #$C4 A021:4A LSR A022:90 19 BCC $A03D A024:AD 47 07 LDA $0747 = #$00 A027:D0 14 BNE $A03D A029:B5 CF LDA $CF,X @ $00D4 = #$00 A02B:18 CLC A02C:75 58 ADC $58,X @ $005D = #$00 A02E:95 CF STA $CF,X @ $00D4 = #$00 A030:C5 00 CMP $0000 = #$00 A032:D0 09 BNE $A03D A034:A9 00 LDA #$00 A036:95 A0 STA $A0,X @ $00A5 = #$00 A038:A9 40 LDA #$40 A03A:9D 8A 07 STA $078A,X @ $078F = #$00 A03D:A9 20 LDA #$20 MMC3版赤パックン処理対策版 A01F:C9 21 CMP #$21 A021:90 3C BCC $A05F A023:B5 58 LDA $58,X @ $0058 = #$00 A025:49 FF EOR #$FF A027:18 CLC A028:69 01 ADC #$01 A02A:95 58 STA $58,X @ $0058 = #$00 A02C:F6 A0 INC $A0,X @ $00A0 = #$00 A02E:BD 34 04 LDA $0434,X @ $0434 = #$00 A031:B4 58 LDY $58,X @ $0058 = #$00 A033:10 03 BPL $A038 A035:BD 17 04 LDA $0417,X @ $0417 = #$00 A038:85 00 STA $0000 = #$FF A03A:AD 17 B5 LDA $B517 = #$21 本家FDS SMB2Jとkaiser版とMMC3版赤パックン処理未対策 ; 敵キャラ色指定 B5ED:B9 0A B5 LDA $B50A,Y @ $B50A = #$01 MMC3版赤パックン処理対策版 B5ED:20 C9 93 JSR $93C9 そんなに大げさに変更しなくても良いことが分かりました。 とりあえず懸念事項が解決したのでセーブ機能付きの製作に取り掛かります。 >>733 削除しました。なんか8-4クリアでドアのままでした。 inesヘッダ修正しわすれていて、CHRが8KBのままでしたorz. 今日は眠いので寝ます。 あとルーイジクリアでW9に行くとなぜかマリオになってしまったので要調査です スーパージャンプ台も修正必要かも。本来緑なのに赤のまま スーマリの音をVRC6で鳴らすハックがあるね まだ出来はヒドいけどw でも行動に移すってスゴいなぁと思う 今後のブラッシュアップに勝手に期待してる パックン Pirahna Plant ジャンプ台 Spring スーパージャンプ台を緑色にする為のコードを置く領域が厳しいかも知れない。 (赤)パックンの修正はbeneficii氏によるもののようです。 8-4またはD-4クリア時の修正は誰が行ったのか謎です。 loopy氏の改造版を見ると(緑)スーパージャンプ台の為にコードが大幅に変更された 可能性があります。 >>733 再うpします。 https://www.mediafire.com/file/34p445eaifh2uu8/Super_Mario_Bros_2_J_%2528Lost_Levels%2529__MPR4_turbo4.zip 赤パックンの他に、エンディング処理の問題も見つかったので修正しました。 (改変FDS BIOS部分の無駄なルーチンの削除も含まれています。 あと以前うpしたファイルはNESヘッダのCHRサイズが間違っていましたorz) あと改造のベースとしたMMC3版SMB2Jです。(NESヘッダのCHRサイズは修正済み。) https://www.mediafire.com/file/tu7lkinjvgu4o4k/SMB2J.zip これはkaiser版SMB2Jに近いものです。 ソースのファイルがバイナリエディタで間違って変更したものだったり、NESヘッダが 間違えていたりで、訳の分からない状態となっていたorz. とりあえず、>>742-744 のファイルはその辺を見直したつもり... >>738 パックン Piranha Plant ジャンプ台 Spring ジャンプ台の処理はコードサイズを削減する為か改造はかなり難解な模様。 エンディング処理関係のコード 本家FDS SMB2J SM2DATA3 C759:A9 07 LDA #$07 C75B:20 39 E2 JSR $E239 C75E:D2 C0 UNDEFINED C760:48 C7 UNDEFINED kaiser版とMMC3版エンディング処理未対策 C759:A9 58 LDA #$58 C75B:8D 6F 01 STA $016F = #$00 C75E:4C 6A C7 JMP $C76A C761C7 UNDEFINED MMC3版エンディング処理未対策済 C759:4C 6A C7 JMP $C76A C75C:A9 58 LDA #$58 C75E:8D 6F 01 STA $016F = #$00 C761C7 UNDEFINED 実態は赤パックン処理のコードに少し手を加えただけ 93C9:B9 0A B5 LDA $B50A,Y @ $B50A = #$01 93CC:C0 0D CPY #$0D 93CE:D0 02 BNE $93D2 93D0:A5 50 LDA $0050 = #$00 93D2:4C 20 E0 JMP $E020 E020:C0 1B CPY #$1B E022:B0 06 BCS $E02A E024:C0 18 CPY #$18 E026:90 02 BCC $E02A E028:A5 52 LDA $0052 = #$02 E02A:60 RTS ; ジャンプ台色切り替え B52C:A9 02 LDA #$02 B52E:AC 5F 07 LDY $075F = #$00 B531:C0 01 CPY #$01 B533:F0 08 BEQ $B53D B535:C0 02 CPY #$02 B537:F0 04 BEQ $B53D B539:C0 06 CPY #$06 B53B:D0 01 BNE $B53E B53D:4A LSR B53E:85 52 STA $0052 = #$02 B540:EA NOP B541:EA NOP B542:EA NOP B543:EA NOP B544:EA NOP B545:EA NOP B546:EA NOP ; 敵キャラ描画 B82E:0D 52 00 ORA $0052 = #$02 理由は些細な事なのですが、改造ANNSMBでCHR-RAM初期化コードを最初$E040に置こう としていたのですが、誤って$E030に置いてしまいました。とくに問題は無かったので 放置していたのですが...、そのため$E0C0にコード置ける領域が余ってるのを思い出したので そこに配置しました。メンテナンス性を考えてANNSMBとSMB2Jの追加コードを別アドレスに 配置しています。このためANNSMBではスーパージャンプ台は赤色ですが、緑色に変更する ということも可能になります。 >>751 は次のようになりました。 93C9:B9 0A B5 LDA $B50A,Y @ $B50A = #$01 93CC:C0 0D CPY #$0D 93CE:D0 02 BNE $93D2 93D0:A5 50 LDA $0050 = #$00 93D2:4C C0 E0 JMP $E0C0 E0C0:C0 1B CPY #$1B E0C2:B0 06 BCS $E02A E0C4:C0 18 CPY #$18 E0C6:90 02 BCC $E02A E0C8:A5 52 LDA $0052 = #$02 E0CA:60 RTS ちょっと間違えました。 >>751 は次のようになりました。 93C9:B9 0A B5 LDA $B50A,Y @ $B50A = #$01 93CC:C0 0D CPY #$0D 93CE:D0 02 BNE $93D2 93D0:A5 50 LDA $0050 = #$00 93D2:4C C0 E0 JMP $E0C0 E0C0:C0 1B CPY #$1B E0C2:B0 06 BCS $E0CA E0C4:C0 18 CPY #$18 E0C6:90 02 BCC $E0CA E0C8:A5 52 LDA $0052 = #$02 E0CA:60 RTS ゼロページの未使用領域に割り当てたデーターはこのようになっています。 $50 パックンフラワーの色 $51 パックンフラワーの作動 $52 ジャンプ台の色 セーブ機能付けようとしたところ、8-4クリア回数の星が付かないことが判明。 原因はタイトルコード書き換えて★を付けているようで、結構大幅なコード変更が必要な事が 判明 >>758 タイトルコードの$26が★になると$F1になるみたいです。 ★表示がかなり鬼門だったとは。 タイトルコードだけで312バイトもあります。 ★表示に関係ある部分でもざっと52バイトもあります。 SRAMセーブ機能が付いたSMB2Jは大幅にコードの再配置が行われていますが、 理由はこれでしょう。 こんな空き領域は本体WRAMにはありません。スタック領域に置こうとしても 厳しい。となるとRPG-RAMを使うことになりますが、プログラムの最初の方を $E000-$FFF9に移動させる必要が生じてきます。MMC5でやればこんなに 苦労しない。 改造ANNAMBに★表示を実装しているのですがバグちゃって駄目だった。 ワールドセレクト版でパワレルワールド選択してマリオが動き出すとバグるのと関連しているのかな? >>763 61E8: 40 RTIの次で変なアドレスに行っちゃってるみたいです。 Programming with unofficial opcodes https://wiki.nesdev.com/w/index.php/Programming_with_unofficial_opcodes SKB #i ($80 ii, $82 ii, $89 ii, $C2 ii, $E2 ii; 2 cycles) These unofficial opcodes just read an immediate byte and skip it, like a different address mode of NOP. One of these even works almost the same way on 65C02, HuC6280, and 65C816: BIT #i ($89 ii), whose only difference from the 6502 is that it affects the NVZ flags like the other BIT instructions. Use this SKB if you want your code to be portable to Lynx, TG16, or Super NES. Puzznic uses $89, and Beauty and the Beast uses $80. Also called DOP, NOP (distinguished from the 1-byte encoding by the addressing mode). 【まだ】単品CPU Z80とか6809/6502 (【現役】 http://science4.5ch.net/test/read.cgi/denki/1150952925/ 110 :774ワット発電中さん:2006/10/01(日) 21:01:30 ID:tYTmehRZ BRN:Branch Neverって命令あったよね。 最初NOPと何が違うのかと思ってた。 オペランドに何を入れておいても良いので、データを隠しておいて 解析されにくくするのに使ってた。 117 :774ワット発電中さん:2006/10/04(水) 01:24:38 ID:hcYn7IPe >>110 BRNは、ハンドアセンブルみたいにコード追加でのアドレス再計算が 困難なときに所々にはさんでおいて、コード追加時にBRA等に書き換える、 みたいなことをどこかで読んだ記憶がある。 でも、実際は6809をハンドアセンブルしようなんて言う強者はそうそう いなくて、1byte skipにしか使われていなかったのではないだろうか。 118 :安田某:2006/10/05(木) 23:27:58 ID:/lpvVcZC BRNは手作業でパッチを当てる時に,Bxxをとりあえず分岐しないように 使うんだろう.(オフセットはいじらないですむように) ところでC級トラ擬で6502連載してるな.C-MOS版じゃない,ノーマル(N-MOS)の 6502欲しいんだがどっかで売っているか? ついでに6521も・・・ ひとつ謎が解決しました。手元にあるSRAMセーブ付きのMMC3移植のSMB2Jが出所不明 だったのですがloopy氏のSMB2Jの2007年5月2日バージョンであることが分かりました。 他のハッカーがloopy氏のコードを真似て作ったものと思っていたのですが、loopy氏が 作ったものそのものです。 手元に用意できたloopy氏のものは、 2007年5月2日版と2014年12月11日版と2015年6月19日版があります。 2007年5月2日版は★表示機能はの為のコード再配置が行われている。 緑のジャンプ台は未修正。赤パックンフラワーとエンディングのルイージテキストは 正常表示。 2014年12月11日版は大幅に大改修。赤パックンフラワーと緑のジャンプ台関連の コードも再配置された。しかしエンディングのルイージテキストの修正を忘れています。 2015年6月19日版はルーイジテキストの部分を再配置して修正。 の模様 ipsファイルは同じ>>759 と同じ物で余計に入ってたnesファイル消しただけって事ね 個人的なメモ ANNSMBを$6000-$7FFFがROMでもエンディング正常作動するように改造したい。 あとはPCエンジン版SMBは出来は良いががPALのNESベースでスピードが速いので NTSCのNESのように作動するようになんとかしたい Super Mario Bros. 1 (NES) - Paper Mario Graphics. ?? https://youtu.be/d7Kni_yQiP4 かきかえて かいぞうまりお あのむずい ですね (ら−めす レベル10) 書き換えて 改造マリオ あの…… ムズいですね >>580 ,636,657 $6370〜$6372は 書き込み時のアドレス指定は$6370+Yレジスタ、 読み込み時のアドレス指定は$6B63+Yレジスタ という感じかな? >>694 ,778 試しにマッパー40でやってみたけどうまくいかなかった。 更に解析が必要なのと、すでにパッチ当てまくって訳の分からんやつで試したってのもあるけど。 Super Mario Bros. Special - 35th Anniversary Edition (2021) / Complete Playthrough / SMB ROM Hack https://youtu.be/WtcMCccN0zQ >>780 これは、スーパーマリオスペシャルものでは、決定版といえるハック 自分が持ってるのロムはゲームは1のままで絵が3風になってたやつだったw これはコースも違うのか 元はハドソンソフトの移植版みたいだけど あとGB版のスパマリランドDX+ドクマリDXも探して入れといたw カラー化してたんでな >>783 これはゲームとしての難易度もヤベェやつだ 頭がそこらのブロックに引っかかりまくるw チビマリオ状態でスーパーマリオと同じ判定サイズ(左右端は判定がない)だからクリアは保証されてる。 ノーワープで全エリア踏破はできた。 何でもなかった場所がハマりトラップとなり別ルートを余儀なくされるなど新たなゲーム性も提供している。 スーパーマリオ状態を維持するにはしゃがみジャンプやしゃがみ滑り込みを当然のように使うことになる。 数多のマリオハックと互換性があるためそれらも新たに楽しめるね。 前にマリオ2のバイナリ改造で A〜D面行きのクリア回数いじれるってのあったけど これオールナイトニッポンスーパーマリオブラザーズでもできるかな? SMB2Jで$6000-$8000をROMで構成する場合、FDSのコードをそのまま持ってきた場合、 ルイージ(LUIGI)がうまく機能しない。しかし$6000-$8000をバンク切り替えを使えば うまくいくのではないか... >>290 エンディングのテキストも同様にバンク切り替えで行けそうやな... >>290 $6000-$8000をROMでかつバンク切り替えしない場合だと MARIO、LUIGIの表示部分は比較的修正し易いと思うが、 ジャンプ力と滑りの部分が面倒臭い。FDSの場合はマリオ・ルイージの動きの部分ルーチンの そばに係数のテーブルがあるけど、ルイージの場合はその係数を書き換えている。 エレガントじゃない実装としてはマリオ用とルイージ用のルーチンを2つ用意して、 例えばルイージの時は$E000〜に飛ばしてやるという方法も考えられるがあまりエレガントじゃないな... 欧州(PAL)版スーパーマリオブラザーズは一部のバグ修正と一部の敵の動きの簡略化が行われえて いるらしいが、これはバグ修正の為に一部の敵の動きの簡略化して空き容量を確保したのかな? あとVS.スーパーマリオブラザーズは明らかにステージデータと音楽データが増加しているけど、 PRG-ROMは32KBで通常のスーパーマリオブラザーズと同じ。ということは何らかのコードの簡略化または最適化が 行われているのかな?まあCHR-ROMは16KBで通常のスーパーマリオブラザーズ倍あるから こっちにコード置く方法も考えられるが。この辺の詳細があまり詳しく解析した情報があまりないので謎 >>393 ROM覗いてみるとCHR-ROMの最初の8Kが通常のタイルで、後ろの8Kがタイルじゃないもので、 試しに後ろの8Kを除去したらタイトルがバグって、ステージもバグったので、後ろの8Kに コードが入っているのは確定 >>774 なんか出来そうな気がしたのでやってみたら、2時間でパッチが完成した。 IPSファイル https://www.a%78fc.net/u/4066523.zip このパッチは64KBのPCエンジン版Super Mario Bros.用です。 NTSC版をPCエンジンに移植した人は既にいるようだが、肝心のパッチとかがぐぐっても出てこないんだよな Super Mario Bros Image Conversion NTSC Version NINTENDO NES TO PC ENGINE CONVERTION HACK TAYLOR EVE https://www.youtube.com/watch?v=aScgDA8wTaI SUPER MARIO BROS NES TO PC ENGINE CONVERSION WIP THANKS TO Taylor's Everything Channel https://www.youtube.com/watch?v=ZZcwsvwmeyM >>786 何でもない夜の事 二度とは戻れない夜~ >>796 の別のエミュレータで動かした版 PCエンジン版スーパーマリオブラザーズが正しい速度で動作するようにしてみた(その2) https://www.nicovideo.jp/watch/sm42365989 >>793 欧州(PAL)版スーパーマリオブラザーズは甲羅で無限1UPできないらしいぞ。 >>662 この部分はフリーズとはあまり関係ないようだ。 アドレス$6370-$6371は城クリア時のMC(ピノキオ)のパレット。 $6371は常に0。0以外にするとグラフィックの書き換えがバグる。 >>680 マッパー142の奴も8-4やD-4クリア時にBGMがバグったりフリーズするぞ。(但し$6000-$7FFFが 常に書き込み可能なエミュレーターの場合は上手く動作してしまいます。) SMB2(J)とANN-SMBは $6000-$7FFFがROMの場合、 エンディング時に音楽がおかしくなって、大抵フリーズします。とうのが結論。 次の箇所にサウンドサブルーチンのアドレスを指定している箇所ががあります。 SMB2(J) 611C: 20 A0 D2 ;JSR $D2E5 ANN-SMB 611F : 20 E5 D2 ;JSR $D2E5 エンディング時は直接そこのアドレスを書き換える箇所があります。 サウンドエンジンはプログラムメインループに組み込まれていますから、 不正な値やアドレスが入ってしまうとフリーズするのは無理もありません。 ミスった SMB2(J)とANN-SMBは $6000-$7FFFがROMの場合、 エンディング時に音楽がおかしくなって、大抵フリーズします。とうのが結論。 次の箇所にサウンドルーチン(サウンドエンジン)のアドレスを指定している箇所ががあります。 SMB2(J) 611C: 20 A0 D2 ;JSR $D2A0 ANN-SMB 611F : 20 E5 D2 ;JSR $D2E5 エンディング時は直接そこのアドレスを書き換える箇所があります。 サウンドルーチン(サウンドエンジン)はプログラムメインループに組み込まれていますから、 不正な値やアドレスが入ってしまうとフリーズするのは無理もありません。 書き換えてる部分は(SM2DATA3またはNSMDATA3) SMB2(J) C623: A9 CC ;LDA #$CC C625: 8D 1E 61 ;STA $611E C628: A9 5F ;LDA ##$5F C62A: 8D 1D 61 ;STA $611D C76A: A9 D2 ;LDA #$D2 C76C: 8D 1E 61 ;STA $611E C76F: A9 A0 ;LDA #$A0 C771: 8D 1D 61 ;STA $611D ANN-SMB C600: A9 CC ;LDA #$CC C602: 8D 21 61 ;STA $6121 C605: A9 B1 ;LDA #$B1 C607: 8D 20 61 ;STA $6120 C760: A9 D2 ;LDA #$D2 C762: 8D 21 61 ;STA $6121 C765: A9 E5 ;LDA #$E5 C767: 8D 20 61 ;STA $6120 パッチ案としてはサウンドサブルーチンサウンドサブルーチンのアドレスを指定箇所を $E000〜の開き領域に飛ばして、本体内蔵RAMに一つ変数つくって分岐させるって考えられるが、 命令サイクルが変わって動作や音楽にどのような影響があるかは未知数。 ANN-SMBは城クリア時のMC(ピノキオ)のカラーパレットもパッチしないと... >>809 これ結構うまくいかないぞ。 サブルーチン入れ子、フラグ破壊、レジスタ破壊、スタック破壊。メインループだから超高難易度。 もとのFDS Convertionに採用されていないのはこのためか... 一から書き直すつもりで作らないと無理っぽい。匙投げました。 >>706 訂正 chr 04 05 06 07 詳細はRAM $07f7に連動 04 (ワールド1〜4; 0) 05 (ワールド5〜8; 1) 06 (エンディング、ワールド9; 2) 07 (ワールドA〜D; 3) CHRを8KB全部書き換えているようです。 >>396 バグ発見してしまったorz 早速修正版です。 ANNSMB_MPR195_v09c https://www.a%78fc.net/u/4067016.zip 変更点 v0.9→v0.9a ワールドセレクト版じゃない方に盆ミスが判明。それを修正。一応動いていたが... v0.9a→v0.9c ワールドセレクト版で8-4をクリアするとタイトル画面に戻ったときに画面が点滅して操作不能になる。 どうもパッチした箇所が不適切なようでした。ワールドセレクト版じゃないほうにも同じコードが入っていましたが、こちらは タイトル画面に戻っていたので、見落としていた。(但し状況によっては同様のバグが発生する可能性有り。) の修正。 理論上はマッパー142でも動くと思っていたので作業を行っていた所、バグを発見したというヲチ。 いろいろ試してみるものですね... https://i.imgur.com/vEJ1m3C.jpg >>816 マッパー142版ANNSMBはMMC3またはマッパー195版のコードを殆どコピペしただけですんなり動きました。 それならばと、再現性の高いMMC版SMB2Jをマッパー142でもすんあり動くんじゃねと、上記の手順でやって みた所、う動かない... コピペで手抜きではいけないのかも。 こちらは、嵐のコード、赤いパックンフラワー、ワールド9用コードがあるので、 こちらは手抜きコピペではなく、慎重にマッパー142版SMB2Jにパッチを当てる必要があるかも。 >>816 マッパー142版ANNSMBは$6000-$7FFFはROMになっていますがエンディングでフリーズしない 事を確認。但しエンディングの音楽はバグっています。エンディングの音楽がちゃんと鳴るように $6000-$7FFFをバンク切り替えするバージョンも作って見ましたが、こちらは完璧な動作です。 >>819 SMB2Jが動かなかったのは手抜きし過ぎたのが駄目だった。ANNSMBの方は丁寧にパッチしてあったわ。 仕切りなおしで、SMB2J Keiser(マッパー142)版に赤パックンと緑ジャンプ台のコードを移植したら 問題なく動作しました。 嵌まった箇所としては ● Keiser(マッパー142)版とMMC3版はタイトル画面でスタートボタンを押したときと、ゲームオーバーに なった時の処理がそれぞれ異なるパッチが当てられていた。しかも$E000-FFFFにパッチコードを 置いているが同じアドレスを使っていてややこしい。(keiser版は残機が減らないモードがついている?) 要調査。 ● 赤パックンと緑ジャンプ台も空き容量の関係で$E000-FFFFにパッチコードを置いていますが、 赤パックンと緑ジャンプ台のパッチコードが全然違う場所に配置されていた。そのためにメンテナンス性が 悪化していた。どうしてこんなことに... 備考 E0C0: C0 1B CPY #$1B E0C2: B0 06 BCS $E0CA E0C4: C0 18 CPY #$18 E0C6: 90 02 BCC $E0CA E0C8: A5 52 LDA $52 = #$02 E0CA: 60 RTS FBD0: B5 1E LDA $1E,X @ $0025 = #$00 FBD2: 4C 00 A0 JMP $A000 関連するコードだから隣接して配置すべき。 >>819 メモ程度に FDS 701B: CE 5A 07 DEC $075A 702B: AD 5F 07 LDA $075F 7FF9: F0 11 BEQ $800C Kaiser(マッパー142)版 701B: 20 00 FC JSR $FC00 702B: 4C A0 F8 JMP $F8A0 7FF9: 4C 00 FC JMP $FC00 MMC3版 701B: 20 00 FC JSR $FC00 702B: 4C A0 F8 JMP $F8A0 7FF9: F0 11 BEQ $800C FDS 701B: CE 5A 07 DEC $075A 7020: A9 00 LDA #$00 7022: 8D 72 07 STA $0772 7025: A9 03 LDA #$03 7027: 8D 70 07 STA $0770 702A: 60 RTS 702B: AD 5F 07 LDA $075F Kaiser(マッパー142)版 701B: 20 00 FC JSR $FC00 701E: 10 0B BPL $702B 7020: A9 00 LDA #$00 7022: 8D 72 07 STA $0772 = #$04 7025: A9 03 LDA #$03 7027: 8D 70 07 STA $0770 = #$00 702A: 60 RTS 702B: 4C A0 F8 JMP $F8A0 MMC3版 701B: 20 00 FC JSR $FC00 701E: 10 0B BPL $702B 7020: A9 00 LDA #$00 7022: 8D 72 07 STA $0772 = #$04 7025: A9 03 LDA #$03 7027: 8D 70 07 STA $0770 = #$00 702A: 60 RTS 702B: 4C A0 F8 JMP $F8A0 続き Kaiser(マッパー142)版とMMC3版 共通 F8A0: AD FB 07 LDA $07FB = #$00 F8A3: C9 00 CMP #$00 F8A5: D0 06 BNE $F8AD F8A7: AD 5F 07 LDA $075F = #$00 F8AA: 4C 2E 70 JMP $702E F8AD: AD 5F 07 LDA $075F = #$00 F8B0: 0A ASL F8B1: AA TAX F8B2: AD 5C 07 LDA $075C = #$00 F8B5: 29 02 AND #$02 F8B7: F0 01 BEQ $F8BA F8B9: E8 INX F8BA: BC C0 F8 LDY $F8C0,X @ $F8CD = #$EF F8BD: 4C 3B 70 JMP $703B Kaiser(マッパー142)版 FC00: AD E7 01 LDA $01E7 = #$FF FC03: C9 5A CMP #$5A FC05: F0 03 BEQ $FC0A FC07: CE 5A 07 DEC $075A = #$02 FC0A: 60 RTS MMC3版 FC00: F0 0B BEQ $FC0D FC02: AD 04 07 LDA $0704 = #$00 FC05: F0 03 BEQ $FC0A FC07: 4C 00 80 JMP $8000 FC0A: 4C 88 80 JMP $8088 FC0D: 4C 0C 80 JMP $800C >>822 コード長いから最小限だけ貼ろうとしたら余分に貼ってしまった。 ついでなので メモ程度に FDS 7FF7: A5 1D LDA $1D 7FF9: F0 11 BEQ $800C 7FFB: AD 04 07 LDA $0704 7FFE: F0 F4 BEQ $7FF4 Kaiser(マッパー142)版 7FF7: A5 1D LDA $1D = #$00 7FF9: F0 11 BEQ $800C 7FFB: AD 04 07 LDA $0704 = #$00 7FFE: F0 F4 BEQ $7FF4 MMC3版 7FF7: A5 1D LDA $1D = #$00 7FF9: 4C 00 FC JMP $FC00 7FFC: EA NOP 7FFD: EA NOP 7FFE: F0 F4 BEQ $7FF4 >>822-825 アドレス$FC00-FC0F及び $701B、$702B、$7FF9のパッチすれば、相互変換できます。(MMC3版のコードをマッパー142に 導入して動作確認。) MMC3版のコードの方が洗練されている気がするが、Kaiserの方が$FE00-FFFFのアドレスパッチが 多少なく済むかな... でなんでこのようなパッチが当てられているかというと、ルイージのジャンプ力と滑りの為に導入されていると 思われる。 >>706 >>813 keiser(マッパー版SMB2J)のバンク配置の詳細 バンク 0($00000) PRG $6000 #0 1($02000) PRG $6000 #1 2($04000) PRG $6000 #2 3($06000) PRG $6000 #3 4($08000) CHR #0 5($0A000) CHR #1 6($0C000) CHR #2 7($0E000) CHR #3 8($10000) 未使用(PRG $6000 #1の未パッチデータ?) 9($12000) 未使用(PRG $6000 #2の未パッチデータ?) A($14000) 未使用(PRG $6000 #3の未パッチデータ?) B($16000) PRG $6000 C($18000) PRG $8000 D($1A000) PRG $A000 E($1C000) 未使用(PRG $6000 #0の未パッチデータ?) F($1E000) PRG $E000 バンク切り替えにはメモリー$7F7を使っている。 CHRには$7F7を#$4とORした値。(CHR-RAMに転送) PRG $6000には$7F7をそのまま指定するようになっている。この処理はセットで行われます。 CHRは無駄に使用しているように見えるがシンプルなバンク切り替えコードの為にこのようになっているようです。 PRGの他の部分はAND $FFFFした値がCPUアドレスと一致するように配置されています。 意外と合理的な配置でした。 >>827 ミスってたorz >>706 >>813 keiser(マッパー版SMB2J)のバンク配置の詳細 バンク 0($00000) PRG $C000 #0 1($02000) PRG $C000 #1 2($04000) PRG $C000 #2 3($06000) PRG $C000 #3 4($08000) CHR #0 5($0A000) CHR #1 6($0C000) CHR #2 7($0E000) CHR #3 8($10000) 未使用(PRG $C000 #1の未パッチデータ?) 9($12000) 未使用(PRG $C000 #2の未パッチデータ?) A($14000) 未使用(PRG $C000 #3の未パッチデータ?) B($16000) PRG $6000 C($18000) PRG $8000 D($1A000) PRG $A000 E($1C000) 未使用(PRG $C000 #0の未パッチデータ?) F($1E000) PRG $E000 バンク切り替えにはメモリー$7F7を使っている。 CHRには$7F7を#$4とORした値。(CHR-RAMに転送) PRG $C000には$7F7をそのまま指定するようになっている。この処理はセットで行われます。 CHRは無駄に使用しているように見えるがシンプルなバンク切り替えコードの為にこのようになっているようです。 PRGの他の部分はAND $FFFFした値がCPUアドレスと一致するように配置されています。 意外と合理的な配置でした。 そういばMMC3(マッパー4)版では、 PRGバンク 0($0000) PRG $6000(PRG-RAM) 1($2000) PRG $8000 2($4000) PRG $C000 #0 3($6000) PRG $C000 #1 4($8000) PRG $C000 #2 5($A000) PRG $C000 #3 6($C000) PRG $A000 7($E000) PRG $E000 CHRバンク 0($0000) CHR #0 1($2000) CHR #1 という構成だった希ガス。 PRG-RAM($6000)に転送するバンクは先頭。 バンク切り替えを行う$C000はメモリ$7F7を#$2とORした値。 最終バンクはやはり$E000。 $8000と$A000は残りのバンクに昇順に配置という感じか 女装深夜徘徊してくるわ、いつものとこ(ダークウェブ)で配信するから良かったら見にきてくれ! >>829 MMC3だと$C000-DFFFをバンク切り替えできるモードにした場合、 $8000-9FFFは最後から2番目のバンクに固定されるので、 PRGバンク 0($0000) PRG $6000(PRG-RAM) 1($2000) PRG $A000 2($4000) PRG $C000 #0 3($6000) PRG $C000 #1 4($8000) PRG $C000 #2 5($A000) PRG $C000 #3 6($C000) PRG $8000 7($E000) PRG $E000 CHRバンク 0($0000) CHR #0 1($2000) CHR #1 仕様上、変な配置になっているようだ Celeste Mario's Zap & Dash! - Hack of Super Mario Bros. [NES] https://youtu.be/dTT8Af6t4os >>832 これは凄いな マッパー142(kaiser)のIRQ Acknowledgeについて、 レジスタ$C000-$CFFFにbit0=1の値を書き込んでから、レジスタ$D000-$DFFFに何か書き込むとIRQ Acknowledgeするらしいが(VRC3ほぼ互換)、そうではなく、 レジスタ$E000-$EFFFにbit0=1かつbit4=1の値を書き込んでから、レジスタ$F000-$FFFFにbit4=1の値を書き込んむとIRQ Acknowledgeする可能性あり... >>814 >>819 パッチです。(ANNSMBとSMB2J) 見落とされていたFDS BIOS部?のコードベースの共通化しました。 試しにマッパー142版を作ってみました。LUIGIの表示がMARIOになってしまいますが、 そこはまだ直していません。(SMB2JとANNSMB) エンディングの音楽はちゃんと鳴ると思います。(手抜きバンク切り替え) 動作検証用として 斧 /u/4067211.zip >>792 >MARIO、LUIGIの表示部分は比較的修正し易いと思うが そんなこと無かったわ。 確かにスコアの上の所をLUIGI表示にするのは比較的簡単だが、エンディングの所のLUIGI表示は 糞面倒臭い。 FDSだとTHANK YOU MARIOの文字列のMARIOを直接LUIGIに書き換えてる。 MMC3版ではその領域はROMなので書き換えられないので、空き領域にLUIGI用の文字列"群"を 用意して、THANK YOU MARIO処理のポインタを書き換えている。(その領域は$6000-$7FFFでRAM) つまりメインプログラム書き換えるか、バンク切り替えしかないな。 だから海賊版でLUIGI処理に手を加えてものが無い。 MARIO・LUIGI表示に関連する部分は ●スコア上部 ●通常城クリア ●エンディング とある。 通常城クリアとエンディングは ポインタ(構造体)からポインタ(構造体)を読むような処理で複雑です。 ポインタ(構造体)を本体RAMに入れてしまうって方法も考えられますが、 これも容量食う上に面倒臭い上にダーティになります。 バンク切り替えでなんとかする場合は、トータルで考えてMMC3版をベースに$6000-$7FFFを 通常MARIO、通常LUIGI、エンディング音楽MARIO、エンディング音楽LUIGIと4バンク用意するのが シンプルとなります。 >>841 もう少し整理してみると、 斧取得後のスクリプトへのポインタ(構造体)とスクリプトがある。 その"どちらか"を書き換えれば、メインプログラムへの変更は最小限に抑えられる。 ポインタ(構造体)は60バイト、スクリプトはLUIGIに対応させる必要のあるのは 6078: 3D 6C :<0C> [THANK YOU MARIO!] →6C3D 20バイト 6080: 93 C8 :<10> [THANK YOU MARIO!] →C8D7 24バイト 6086: D7 C8 :<13> [HURRAH TO MARIO] →C8D7 20バイト の計64バイト 本体RAMはスタック領域の未使用部分を使用に連続で64バイト確保できる場所がある。 (嵐用で使っている部分を考慮しても64バイト確保可能たぶん) スクリプトを置く場合でも工夫すれば24バイトで済む。ただしプログラム難易度は上がるでしょう。 >その"どちらか"を書き換えれば その"どちらか"を本体RAMに移動させれば >>840 スコア上部も意外と厄介だったorz。スクリプトが39バイトもある... マッパー195のANNSMBは4KBのCHR-RAMを使っているが、2KBに削減は可能。 しかしベースのMMC3版SMB2Jが$8000.D7=0の設定で作られている。 $8000.D7=1の設定にするにはCHRバンクを設定している所を弄らないといけないが、コードサイズが 増えるんだよね... Sunsoft FME-7( + CHR-RAM)に移植は面白いかなと考えていた所、 Namco 163が結構イイ感じだと思った、これはマッパー195のCHR-ROM + CHR-RAMが再現できます。 CHR-RAMを2KBに削減した場合は マッパー194(MMC3ベース) マッパー252(VRC4ベース) マッパー253(VRC4ベース) で利用可能です。 あとFDSのIRQを再現するにはスキャンラインIRQよりもサイクルIRQの方が再現性が高くなります。 またSMB2JまたはANNSMBの場合はスキャンラインIRQよりも12bit固定タイミング サイクルIRQの 方が再現性が高くなります。 MMC5A + CHR-RAMが優れているのは言うまでもありません。 あとメモとして マッパー40はサブマッパー1を使用した場合アウターバンクレジスタでCHR-ROMのバンクが変更可能です。 マッパー40版の作成は凍結していたが、海外でこんなスレ見つけた。 Super Mario Bros 2j NES Restoration https://www.romhacking.net/forum/index.php?topic=31652.0 理論上、マッパー142(kaiser)のやつをマッパー40に移植することは可能。 利点は ちゃんとルイージのジャンプ力と滑りになる。(但し表示はLUIGIにならない) エンディングでフリーズしない。9-1に行ける。(但し音楽は変) という感じでやや微妙な感じで作成熱意が... マッパー40はIRQの勉強にはいいでしょう。 マッパー142のIRQは謎が多すぎる。 ANNSMBまだバグあるな。パワレルワールド行ってから、ゲームオーバーになってRetryを選択して 1-1からスタートして遊んでみたところ1-3の中間地点で乙る事が判明orz >>856 ベースにしたMMC3版SMB2Jも同様にパラレールワールドクリア後にRetryして、2-1を遊んだら、 中間地点で乙りました。 つまりパラレルワールド用の途中開始ページ(中間地点)指定の値がそのままになってしまっている。 >>822-826 この処理部でkaiser版とMMC3版の違いの肝要なところは、 FDS版では [SM2MAIN] ; 7038: BC FD 6F LDY $6FFD,X ; 途中開始ページ(2バイトで1ワールド分) 6FFD: 66 60 World 1 6E00: 88 60 World 2 6E02: 66 70 World 3 6E04: 77 60 World 4 6E06: D6 00 World 5 6E08: 77 80 World 6 6E0A: 70 B0 World 7 6E0C: 00 00 World 8 6E0E: 00 00 World 9 ; 死亡処理(リトライ 途中開始ページ) 702B: AD 5F 07 LDA $075F ; A=ワールド 702E: 0A ASL A ; A=A*2 702F: AA TAX ; X=A 7030: AD 5C 07 LDA $075C ; A=エリア 7033: 29 02 AND #$02 ; A=A AND 00000010 7035: F0 01 BEQ $7038 ; 3,4以外のエリアならjump 7037: E8 INX ; X++ 7038: BC FD 6F LDY $6FFD,X ; Y=途中開始ページ [SM2DATA4] ; 途中開始ページ C3CE: 76 50 C3D0: 65 50 C3D2: 75 B0 C3D4: 00 00 ; BFEE: 20 D6 C3 JSR $C3D6 C3D6: A0 07 LDY #$07 C3D8: B9 CE C3 LDA $C3CE,Y C3DB: 99 FD 6F STA $6FFD,Y C3DE: 88 DEY C3DF: 10 F7 BPL $C3D8 C3E1: 60 RTS となっており、 つまりFDS版ではパラレルワールドの時は$6FFDの値を$C3CEの値に書き変える処理があります。 kaiser版では$6000-$7FFFがROMで書き変えられないので、まだコードじっくり見ていないので推測だが、 パラレルワールドの時は$6FFDでは無く$C3CEの値参照するようにコードが変更されていると思われる。 MMC3版は$6000-$7FFFがRAMなので再びFDSと同様の処理を行うように変更されました。 しかしそこに落とし穴がありました。パラレルワールドでゲームオーバー時にRetryでタイトル画面に 戻った時、アドレス$6FFD(途中開始ページ)の初期化が行われていない為に問題が発生するようです。 FDS版はSM2DATA2、SM2DATA4(、SM2DATA3)が読み込まれた状態でRetryするとSM2MAINを 再ロードする為問題ありません。 MMC3版の途中開始ページ問題の対処法はいくつか考えられるが、 一つはkaiser版コードを使用する。 もう一つはRetry時に$6FFD(途中開始ページ)を初期化するコードを導入する。 MMC3版SMB2Jは改良派生版がいくつかあるので要調査。 個人的にはkaiser版コードで問題ないと思う。 >>819 >keiser版は残機が減らないモードがついている? おそらく、途中開始ページの処理の関係でそうなっているのかも。 確かに特定の値を入れると残機が減らないけど >>860 >MMC3版SMB2Jは改良派生版がいくつかあるので要調査 SRAMセーブ付きのやつで、途中開始ページ対処したのあるけど、 コード変更されすぎていて変更部追えない... 海外のスレッド徹底的に調べてみる?古いサイトとか見つけにくかったりするからな... Anna's Fantasy Crusade - Hack of Super Mario Bros. [NES] https://youtu.be/GjEIdtzC0NY >>826 >MMC3版のコードをマッパー142に導入して動作確認 逆も試してみました。全く問題ないようです >>860 途中開始ページは英語でどう表現するのか? 逆汗のコメントでは HalfwayPageNybblesとかHalfwayPageのようだ >>852 途中開始ページ問題修正版。 kaiser版コードを使用することにしました。 https://www.%61x%66c.net/%75/ 4067697 Super Mario Adventures - Hack of Tiny Toon Adventures [NES] おすすめ。 なんかTiny Toon Adventures [NES]の動きがマリオ3とそっくりじゃね(意味深) と話題になり、それで作られたハックロム >>866 これで考えられるカセット化で発生するバグは全て潰せた気がします。( 画面上部は実機や精度の高いエミュでは少し境界がブレるかも知れませんがMMC3 IRQの仕様です...) 検証してくれる人大募集。 あとはFDS版にもともとあるバグはそのままです。(特にANNSMBのワールドセレクト版の方は タイトル画面でワールドA-Dにしてマリオが動き出すとクラッシュします。) あとは通常プレイではあり得ないが、マリオかルイージの変数は$0か$1ですが、FDS版では$2以上にすると バグった名前と変な色のキャラになりますが、その挙動までは再現されません。 それを再現するにはMMC5(A)が必要。) >>868 >画面上部は実機や精度の高いエミュでは少し境界がブレるかも知れませんがMMC3 IRQの仕様です...) まあMMC3でもSRAM版とかは適切に表示できるようなので、修正は可能でしょう >>809 >>811-812 サウンド部分は適切な処置を行えば、割合ゲームの他の部分への影響を与えずに弄ることができます。 で追加のコードやデーターの為にサウンドエンジンを別バンクに移動させることもしばしば行われます。 エンディングの音楽の部分は$6000-$7FFFをバンク切り替えさせる方法が手っ取り速いですが、 他の事にも$6000-$7FFFのバンク切り替えも使う場合に厄介であるうえにシンプルさを損ないます。 そこで、$6000-$7FFFのバンク切り替えを使わずかつ元のサウンドエンジンに手を加えずに対処する方法、 @本体電源ON時に本体RAMにサウンドエンジン用2バイトのポインタを初期化、 Aサウンドエンジンに飛ぶJSR命令の飛び先を適当なROMの空き領域に指定、 Bそこにインダイレクトジャンプ命令[JMP (IM16)]で本体RAMにサウンドエンジン用2バイトのポインタを指定 これでいける筈... これでルーイージテキスト表示のみに$6000-$7FFFのバンク切り替えができるぞと思ったところ、 インダイレクトジャンプ命令[JMP (IM16)]を二段活用すれば同様にけるのではないかと思った。 クール&ダーティーな方法ですねぇ ■夏のつべら第6弾 『視聴者が創りしUNKマリオ2 完全攻略放送』 ▽マリオメーカー2/創作ステージ 「SUPER MARIO 2 UNK WORLD」 1-1『デコボコへいげん』~8-4『最終決戦』 36時間放送(12:00~) ttps://www.youtube.com/live/RxQf-J8qGKw 1以降の配信 ↓ ttp://youtube.com/@junchannel 3改造のrainbow realmsってやつが結構おもしろかった 3136626974e381a7e4bc9ae8a9b1e38197e381abe69da5e3819fe38288 Astral World - Hack of Super Mario Bros. [NES] https://youtu.be/1nIkDdCiS-8 read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる