SMB Laboratoryのタイトル画像

このサイトについて

 1985年9月13日に任天堂からファミリーコンピューター用ソフトとして発売され、日本では681万本売れ、「世界一売れたゲームソフト」としてギネスブックにも記録されているスーパーマリオブラザーズ。このスーパーマリオブラザーズのカセットデータをPCに読み出し、それを編集してマップやゲームシステムを改造したものは、俗に改造マリオと呼ばれます。このサイトでは、改造マリオの作品やその製作・公開の際に使用するSMB UtilityやWinIPSなどのソフトウェアの公開を行っています。

 なお、このサイト及び配布しているソフトウェア・改造マリオなどは、スーパーマリオブラザーズの開発元である任天堂とは一切関係ありません。

更新履歴

改造マリオ関連のソフトウェア

SMB UtilityのアイコンSMB Utility
SMB Utilityのスクリーンショット
 SMB Utilityは、ファミコン用ゲームソフトとしてNintendo®より発売された「Super Mario Bros.™」のレベル(マップ)を編集することができるWindows®用アプリケーションです。内蔵エミュレータにより、編集した内容を即テストプレイすることもできます。使用する為には、ゲームカセット内のROMデータを.NESフォーマットでPCに出力することが必要です。
 

- スーパーマリオ改造計画とSMB Utility -

 1998年11月29日、ファミコン版スーパーマリオブラザーズ(TM)のオリジナルマップを高い自由度で作成できるようにすることを最終目標においた「スーパーマリオ改造計画」を私(M.K.S)とM.K.Hとで発足させました。その頃は、「Mario Improvement」というツールを使用してオリジナルマップを作成していたのですが、このツールは、敵の編集ができなかったり、ルーム間の移動の設定ができなかったりと、色々な制約があったため、それに合わせて地形を編集しなければならなく、オリジナルマップ作成の自由度は高いと言えるものではありませんでした。

 そのような中、まず、敵を編集できるようにしようとそれに関する情報を収集していたところ、トンカチエディタで改造をされていたけい1様がトンカチエディタでの敵データの詳細を提供してくださいました。その情報は、トンカチエディタ用のもので、そのまま使用することはできなかったのですが、その中の敵の種類と番号の対応に関するデータと実際の敵の配置から値を予想し、それをファイル内で検索するという地道な作業を繰り返した結果、1998年12月中旬、敵データの位置を特定することに成功し、それにより、ほとんどの敵の位置や種類を編集できるようになりました。また、それから間もなくして、敵データの中で意味が知られていなかったフラグビットが、5-3以降に出現する敵であるかを示すことも発見することができました。

 それからは、「Mario Improvement」と紙と鉛筆とバイナリエディタを使用すれば、敵と地形の両方を改造したオリジナルマップを作成できるようになりました。そのうち、敵を編集するためのプログラムがあれば敵の編集が行いやすくなるというM.K.Hからの意見もあり、私は、そのためのプログラム「smb Badguys Editor」を開発しました(これは、一般公開しませんでした)。

 地形と敵が編集できるようになり、オリジナルマップ作成の自由度は高まりましたが、最終目標を達成したとは言えない状況でした。まだまだ解明できていない点が多かったのです。サブルームも含めたすべての敵データの位置、ルームの属性(空・地下・海・城)、ルーム間の移動、城面のループなどがそれにあたりました。私は、まずルームの属性の解明から着手しました。この頃から、プログラムロムの逆アセンブルや自作のファミコンエミュレータ(※1)によるプログラムロムのトレースを解析に取り入れ始めました。その力もあって、これも解明することができ、ルームの属性を変更するプログラム「smbAttr」を開発し、一般公開しました。ルームの属性についての解析の過程で、すべての地形・敵データの位置を算出する方法、ルーム間の移動についても解明することに成功しました。さらにループについても解明することができ、けい1さんのオブジェクトデータの詳細とあわせれば、かなり自由度の高いオリジナルマップを作成できるようになりました。

 しかし、そうは言っても、様々なツールを駆使しなければならないので、時間がかかる上、誰にでも手軽にというわけにはいきませんでした。そして、オリジナルマップの作成をひとつのプログラムで行うことのできる環境を構築しようと決意したのです。これが「SMB Utility」誕生の瞬間でした。先に開発した「smb Badguys Editor」をベースにして、開発は始まりました。CUIアプリケーションだった「smbAttr」も組み込んだりして、開発は着実に進んでいきました。作成中のマップを即座にテストプレイする仕組みを実現できないものかと模索し、なんとかその方法を見つけ出すことができ、自作のファミコンエミュレータ「Nester」を組み込んで実装することができました。そして、1999年の中頃にバージョン0.31から一般公開を開始しました。その後、不具合の修正や使いやすさの向上を主な内容としたバージョンアップを重ね、2001年11月29日、「SMB Utility」の正式版バージョン1.00のリリースに至りました。

 ※1 私はハードウェアに弱いので、ファミコンエミュレータを開発するにあたって、他の方によるファミコン解析情報に頼らざるを得ませんでした。当時、ネットには、そういった情報はあまり多く公開されていませんでしたが、BERO様の開発されたMS-DOS用ファミコンエミュレータ「FCE」のソースコードやMarat Fayzullin様の「Nintendo Entertainment System Architecture」、Y0SHi様の「Nintendo Entertainment System Documentation」などを参考にして開発しました。また、このNESエミュレータを「Nester」と呼んでいましたが、広く知られている同名のものとは全く関係ありません。

 SMB Utility 1.08 sha1sum : 58aa406ed83302a067f5c46ffc4d100c1949b662

 SMB Utility 1.08 International sha1sum : 5f8d83e45a6bb2ddb7b0ff5cc1637218259d9760

 SMB Utility 1.08 ソースコード (Source Code) sha1sum : 48359a81816761a30519c3fdb36d2889199ebed3

以前のバージョン(older version)のSMB Utilityはこちらからダウンロードできます。

SMB ReformerのアイコンSMB Reformer
SMB Reformerのスクリーンショット
 SMB Reformerは、スーパーマリオブラザーズの追加プログラミングによるゲームシステムの改造を再利用可能なコンポーネントとして管理し、コンポーネントへのコード及びRAM領域の割り当てやコンポーネント同士の特定アドレスへの二重書き込みのチェックなどを行いながら、複数のコンポーネントを組み合わせてパッチを適用するWindows用ソフトウェアです。
 

- 開発背景 -

 マリオファンをリリース後、追加プログラミングの要素(ポール1UPや毒キノコなど)をコンポーネント化し、それらを自由に組み合わせることのできるようなツールがあれば、ゲームシステムの改造が容易に行えるのではないかと考えました。それを実現するためにこのソフトウエアを開発しました。

 SMB Reformer 0.10 sha1sum : b0378355ce12436d92148796d950160e526451ed

 SMB Reformer 0.10 ソースコード sha1sum : 77b3758b49fcd60a0bbc7964c17219578742d561

WinIPSのアイコンWinIPS
WinIPSのスクリーンショット
 WinIPSは、IPSによるパッチとIPSファイルの作成が可能なWindows用アプリケーションです。シェルスクリプトを利用したバッチ処理を行うこともできます。初めてWinIPSを使用してIPSパッチを行う方を対象としたIPSやWinIPSの使い方について説明したページもありますので、WinIPSでIPSファイルの使い方がよく分からないという方は、あわせてご覧ください。
 

- 掲載された雑誌(掲載時期順) -

晋遊舎様 iP【アイピー】誌 2004年9月号 29ページ

三才ブックス様 ゲームラボ誌 2005年11月号101ページ

- 開発背景 -

 私は、改造マリオを配布する方法として、海外でハックROMを配布するためのパッチ形式として広く使われていたIPSを採用することにしました。当初は、優れたIPSツールでもある「SnesTool」でIPSファイルを作成し、ユーザーによるIPSパッチも「SnesTool」で行うような方法で改造マリオを配布していました。すると、PC-98ユーザーの方々から「SnesTool」が動作しないとのご報告をいただき、それならWindows上でIPSファイルを処理できるソフトウエアを作成しようと考えました。これがWinIPS開発の動機です。WinIPSの登場によって、改造マリオをIPSファイルによってやりとりするという形式が徐々に確立され、現在では、事実上の標準形式となっています。また、「SnesTool」では、ファイルサイズの最適化のためにオリジナルのデータもIPSファイル内に書き込んでしまうことがあります。これは、あまりよろしくないと考え、WinIPSでは、変更前後でファイルサイズに変更がない場合に、変更点のみを含むIPSファイルを作成しています。

 WinIPS 0.71 sha1sum : 2b9fc2c129601fd6255cdc30dce4a20805a940b7

 WinIPS 0.71 English sha1sum : e796720fecde899ee855fedf52f221fb87bc24c7

 WinIPS 0.71 ソースコード (Source Code) sha1sum : 1691582ac233f24667d4d05edba8ed90d3cb2de3

以前のバージョン(older version)のWinIPSはこちらからダウンロードできます。

※ これらのソフトウェアを使用するにあたって
・ウィルスやスパイウェアに感染していないかのチェックを行っていますが、ご自身でもご使用前にチェックを行うようお願いします。
・問題が発生しないように細心の注意を払って製作しておりますが、万が一、ご使用の結果、なんらかの損害が生じてしまった場合でも、管理人(M.K.S)は一切の責任を負わないものとさせて頂きます。あらかじめご了承ください。
・いずれのソフトウェアも基本的に自由に配布・改変・複製及び、実行できますが、著作権は管理人(M.K.S)にあります。ソースコードの中には、一部に例外もありますので、詳しくは添付文書をご覧ください。

改造マリオ

 M.K.HとM.K.Sが製作した改造マリオを公開しています。改造マリオをどうすれば遊べるのか分からない方は、改造マリオの遊び方を紹介したページを参考にしてください。

当サイトで配布している改造用IPSファイルについて

 当サイトで配布している改造マリオ(マリオファンを除く)のパッチ用IPSファイルは、トレイナーの無い.NES形式のROMイメージ(ファイルサイズが40,976バイト)用のものであり、トレイナーのある.NES形式のROMイメージ(ファイルサイズが41,488バイト)に適用しても正しくパッチされません。

マリオマニア - M.K.H (マリオ工作員H)プロデュース第二弾作品

マリオマニア ( Mario Mania ) のゲーム画面1マリオマニア ( Mario Mania ) のゲーム画面2 マリオマニア ( Mario Mania ) のゲーム画面3マリオマニア ( Mario Mania ) のゲーム画面4

 プロデューサー : M.K.H
 データ編集 : M.K.S (バイナリエディタを使用)
 タイトル編集 : M.K.H (バイナリエディタを使用)
 レベル作成 : M.K.H (古いバージョンのSMB Utilityを使用)
 テストプレイ : M.K.S (Nesticleを使用)
 配布用IPS作成 : M.K.S (WinIPSを使用)

 雑誌掲載歴
 ・三才ブックス様ゲームラボ誌 2005年11月号 101ページ

マリオマニアのIPSパッチ sha1sum : 618971c0573d123ea5e92cb981ddbd7de3f269d8

マリオファン - M.K.H (マリオ工作員H)プロデュース第三弾作品

マリオファン ( Mario Fan ) のゲーム画面1マリオファン ( Mario Fan ) のゲーム画面2 マリオファン ( Mario Fan ) のゲーム画面3マリオファン ( Mario Fan ) のゲーム画面4

 プロデューサー : M.K.H
 追加プログラミング : M.K.S (バイナリエディタを使用)
 タイトル編集 : M.K.H (バイナリエディタを使用)
 レベル作成 : M.K.H (SMB Utilityを使用)
 テストプレイ : M.K.S (Nesticle を使用)
 配布用ファイル作成 : M.K.S (WinIPSとバイナリエディタを使用)

※ プレイするためには、トレイナー領域をサポートしたファミコンエミュレータが必要です。

マリオファンのIPSパッチ sha1sum : 1d211a8317fe48f244076a13f71db3428a5628db

ボンバーマリオ - M.K.S (マリオ工作員S)プロデュース第一弾作品

ボンバーマリオ ( Bomber Mario ) のゲーム画面1ボンバーマリオ ( Bomber Mario ) のゲーム画面2

 プロデューサー: M.K.S
 レベル作成: M.K.S (SMB Utilityを使用)
 追加プログラミング: M.K.S (バイナリエディタを使用)
 配布用IPS作成: M.K.S (WinIPSを使用)

ボンバーマリオのIPSパッチ sha1sum : 68f3dba19eb495474706024839b25c1e6463ebb1

256W

スーパーマリオブラザーズ 256W

スーパーマリオブラザーズ関連の資料

スーパーマリオブラザーズのストーリーと登場キャラクター

パンフレット

 その1 その2
 ※ プレイオフライン・ドットコム(管理人: KAMI様)より転載の許可をいただきました。

テレビCM

 YouTube

技術文書

逆アセンブル結果

 プログラムロムの逆アセンブル結果

 実行時のRAMにおけるアドレスと役割

※ 貢献してくださった方々(順不同):ATA様、F.H様、MHS様、ゆーだいデュン様、わいわい様、ドーコカラキ様、天津fan様

ATA様が大幅加筆してくださった逆アセンブル結果

 プログラムロムの逆アセンブル結果

 実行時のRAMにおけるアドレスと役割

その他

IPSパッチについて

.FDS形式ディスクイメージのファイルフォーマット

6502 CPUのbit命令を用いたコードサイズの縮小

SMBDIS.ASMをASM6でアセンブルできるように変更する方法

SMB2J DISASSEMBLYをエラー無しにアセンブルする方法

リンク集

改造マリオ関連

 ○だまり教のホームページ

 トンカチエディタ(Wikipediaのページ)というファミコンディスクシステム上で動作するエディタを使用し、PCを利用して改造マリオが作成できるようになる以前からオリジナルマップを作成されているけい1様のサイトです。けい1様のスーパーマリオブラザーズオリジナルマップ作成講座やご助力が無ければ、SMB Utilityは誕生していなかったと言っても過言ではありません。

 わいわいの巣

 改造マリオ界の大御所であり、ファミコンを含む家庭用ゲーム機のためのグラフィックエディタ「YY-CHR」やスーパーマリオブラザーズのマップエディタ「YY-ME」の開発者としても有名なわいわい様のサイトです。

 SMB アーカイブ

 現在は配布されていない改造マリオ作品も手に入れることのできるサイトです。アップローダーも設置されています。以前、本サイトに設置されていたアップロード掲示板に投稿された作品の公開も行ってくださっています。

ROM改造

 麟閣頁

 ROM改造一般について面白い内容を扱っていらっしゃる麟閣様のサイトです。

 Romhacking.net

 様々なゲーム機のROM改造を扱った英語のサイトです。スーパーマリオブラザーズの改造ツールや完成された逆アセンブル結果、主に海外の方が製作された改造マリオなどが再配布されています。

プレイムービー

 ハイレベルチャレンジ!

 WinIPSのユーザーインターフェイスや動作の改善についてご助言いただいたカシオン様が運営されている凄腕ゲーマーのゲームプレイムービーを紹介されているサイトです。

 Super Mario Bros. - Leaderboard - speedrun.com

 スーパーマリオブラザーズのクリアタイムランキングとそれぞれの記録が出たときの動画を閲覧できるサイトです。

ファミコン エミュレータ

 VirtuaNES Official Site

 Norix様が開発されたオープンソースのファミコンエミュレータ「VirtuaNES」のオフィシャルサイトです。

 FCEUX

 強力なデバッガを搭載したオープンソースのファミコンエミュレータ「FCEUX」のオフィシャルサイトです。

ファミコン技術情報・開発ツール

 NesDev

 ファミコン本体の様々な内部情報が入手できる英語のサイトです。

 Home Page of Marat Fayzullin

 .NES形式のROMイメージフォーマットの提唱者であるMarat Fayzullin様のサイトです。C言語で書かれ、様々なアーキテクチャーの計算機に移植可能な6502CPUエミュレータ「6502 Portable Emulation Package」や6502逆アセンブラが含まれている「EMUTools」をソースコードで入手できます。また、ファミコン本体の内部情報の詳細について説明した文書「Nintendo Entertainment System Architecture」も公開されています。

 loopy's home

 MS-DOS用ファミコンエミュレータ「loopynes」を開発され、近年ではGame Boy Advance用ファミコンエミュレータ「PocketNES」の開発にも携わっておられるloopy様のサイトです。オープンソースの6502アセンブラ「ASM6」などが配布されています。

インタビュー

 社長が訊く「スーパーマリオ25周年」 / ファミコンとマリオ篇

 ファミコン本体の開発時・発売後のお話に関して、当時のスタッフへのインタビューが掲載されています。

 社長が訊く『New スーパーマリオブラザーズ Wii』 / その1

 スーパーマリオブラザーズの主人公「マリオ」誕生までの話などがインタビュー形式で掲載されています。

 社長が訊く『New スーパーマリオブラザーズ Wii』 / その2

 スーパーマリオブラザーズの開発者へのインタビューが掲載されています。

 社長が訊く「スーパーマリオ25周年」 / 『スーパーマリオ』生みの親たち篇

 スーパーマリオブラザーズの開発者へのインタビューが掲載されています。

 「ニンテンドークラシックミニ ファミリーコンピュータ」発売記念インタビュー 第3回「スーパーマリオブラザーズ篇」

 スーパーマリオブラザーズの開発者へのインタビューが掲載されています。

読み物

 Farthest Guru

 任天堂の歴史や人物について考察した文章「Philosophy of Nintendo」を読むことができるサイトです。

スーパーマリオブラザーズ関連ページへのリンク

[CEDEC 2010]「スーパーマリオ」の上ボタンはなぜ押される? ゲームプレイの記録からゲームの本質に迫る,立命館大学上村研究室の研究報告

スーパーマリオブラザーズ - Wikipedia

過去のゲーム機で発売されたゲームソフトを任天堂の新しいゲーム機で再現する「バーチャルコンソール」でプレイできるスーパーマリオブラザーズ。3DS版とWii U版では、取扱説明書のダウンロードも行えます。 3DS版 Wii U版 Wii版

inserted by FC2 system