グラディウスシリーズ(MSX)を改造しよう

MSXのグラディウスシリーズの改造をまとめました。


ライト派

簡単に楽しみたい方はこちら。

BASICで1行実行するだけで、スロット2に他のカートリッジが差してある状態を再現します。

改造ですらありません。

グラディウスを改造しよう(ライト派)

グラディウスは「スロット2にツインビーのROMが差してあると自機がツインビーになる」という仕様なのですが、ツインビーのROMが無くても、その状態にすることができます。

  1. RAM32KB以上のMSXを用意します。
  2. BASICを起動して、以下の1行を実行します。

    FORI=0TO5:POKE&HBFFA+I,VAL("&H"+MID$("AC81910640AA",I*2+1,2)):NEXT

  3. 電源をOFFにして、グラディウスのROMをセットし、本体を再起動します。
  4. 自機がツインビーになります。

※元に戻す場合は、電源を切って数分放置してください。

グラディウス2を改造しよう(ライト派)

裏RAMに他のカートリッジの情報を書いておくことで、あたかもスロット2に別のカートリッジを差しているように誤認させる方法です。

  1. MSX2+/turboRを用意します(64KB以上のマッパーRAM搭載MSXでも可)
  2. BASICを起動して、以下の1行を実行します。

    OUT&HFE,2:FORI=0TO3:POKE&H8010+I,VAL("&H"+MID$("43440743",I*2+1,2)):NEXT

    赤字の部分は「スロット2に差したことにしたいROM」に対応する文字列を以下の中から選んでください。

  3. 電源をOFFにして、グラディウス2のROMをセットし、本体を再起動します。

※元に戻す場合は、電源を切って数分放置してください。

沙羅曼蛇を改造しよう(ライト派)

同様に、スロット2に「グラディウス2」を差しているように誤認させることで、真のエンディングを見ることができるはず!

…と思ったのですが、残念ながら、グラディウス2のROMにあるデータを使用しているようで、画面が崩れてしまいました。

一応、エンディングが見られることは確認しましたが、これはどうしようもないですね😅

それでも試してみたい、という方へ。

  1. MSX2+/turboRを用意します(64KB以上のマッパーRAM搭載MSXでも可)
  2. BASICを起動して、以下の1行を実行します。

    OUT&HFE,2:FORI=0TO3:POKE&H8010+I,VAL("&H"+MID$("43440751",I*2+1,2)):NEXT

  3. 電源をOFFにして、沙羅曼蛇のROMをセットし、本体を再起動します。

※元に戻す場合は、電源を切って数分放置してください。


ガチ派

挑戦的に楽しみたい方はこちら。

グラディウス2を改造しよう(ガチ派)

割込みフックを乗っ取って、ひたすらワークエリアに特定の値を書き込むという方法です。

昔、何かの雑誌(テクポリ?Hacker?)に載っていて、当時は結構画期的な方法だと思ったんですが、ネットで検索してもなかなか見つからなかったので、自分で作ってみました。

※ROMの後差しについては、あくまでも自己責任のもとでお願いします。

基本的な方法

  1. 本体の電源を入れる
  2. 電源を入れたまま、スロット1にグラディウス2のカートリッジを入れる(自己責任)
  3. 以下のプログラムを実行する

10 FOR I=&HFD00 TO &HFD27:READ A$:POKE I,VAL("&H"+A$):NEXT 20 DATA F3,ED,56,3E,C3,32,9A,FD 30 DATA 21,18,FD,22,9B,FD,3E,01 40 DATA 26,40,CD,24,00,C3,9E,40 50 (後述) 60 DATA C3,23,40,00,00,00,00,00 70 DEFUSR=&HFD00:A=USR(0)

50行目は、次の中から目的に合わせて選んでください。

1) スロット2に何かを差したことにする

50 DATA 3E,??,32,F5,F0,00,00,00

??には以下の数値を足したものを16進で書いてください。

2) 残機∞

50 DATA 3E,99,32,00,E2,00,00,00

残機のワークに毎フレーム99を書きます。

3) ずっと無敵

50 DATA 21,01,FF,22,46,E4,00,00

Qバートの隠しコマンド(METALION)で使われる無敵タイマーを毎フレームセットすることで永久無敵に。地形に当たると死にます。

沙羅曼蛇を改造しよう(ガチ派)

同様に、割込みフックを乗っ取って、ひたすらワークエリアに特定の値を書き込むという方法です。

基本的な方法

  1. 本体の電源を入れる
  2. 電源を入れたまま、スロット1に沙羅曼蛇のカートリッジを入れる(自己責任)
  3. 以下のプログラムを実行する

10 FOR I=&HFD00 TO &HFD27:READ A$:POKE I,VAL("&H"+A$):NEXT 20 DATA F3,ED,56,3E,C3,32,9A,FD 30 DATA 21,18,FD,22,9B,FD,3E,01 40 DATA 26,40,CD,24,00,C3,E8,40 50 (後述) 60 DATA C3,69,40,00,00,00,00,00 70 DEFUSR=&HFD00:A=USR(0)

50行目は、次の中から目的に合わせて選んでください。

1) 無敵

50 DATA 3E,00,32,02,E2,00,00,00

完全に無敵になります。地形に当たっても死にません。つまり、ゲームを終わらせることができません。

また、スコアが加算されません。

2) 残機∞

1人用

50 DATA 3E,99,32,00,E3,00,00,00

2人用

50 DATA 3E,99,32,00,E3,32,80,E3

1P,2Pの残機のワークに毎フレーム99を書きます。

3) どうしても真のエンディングを見たい

グラ2は持っていない、ただ、どうしても真のエンディングを見たい、という方は、BASICで以下のプログラムを実行してください。

"SET [SALAMANDER] CARTRIDGE" と表示されたら、電源を入れたまま「沙羅曼蛇」のカートリッジをスロットに差して、RETURN を押してください。

10 '------------------------- 20 ' MSX SALAMNADER LAUNCHER 30 '------------------------- 40 CLEAR50,&HBFFF 50 DEFINT A-Z:CLS 60 PRINT"MSX SALAMANDER LAUNCHER":PRINT 70 FOR I=&HFD00 TO &HFD2F:READ A$:POKE I,VAL("&H"+A$):NEXT 80 INPUT"-MUTEKI MODE ";A$:IF A$="Y" OR A$="y" THEN RESTORE 260:GOTO 110 90 INPUT"-ZANKI MUGEN ";A$:IF A$="Y" OR A$="y" THEN RESTORE 270:GOTO 110 100 GOTO 130 110 FOR I=&HFD26 TO &HFD29:READ A$:POKE I,VAL("&H"+A$):NEXT 120 ' 130 RESTORE 290 140 LOCATE 0,5:PRINT"PLEASE WAIT" 150 FOR I=&HC000 TO &HC5FF:READ A$:POKE I,VAL("&H"+A$):NEXT 160 LOCATE 0,5:PRINT"SET [SALAMANDER] CARTRIDGE" 170 PRINT" AND HIT RETURN" 180 IF INKEY$<>CHR$(13) THEN 180 190 DEFUSR=&HC000:A=USR(0) 200 END 210 ' INTERRUPT 220 DATA F3,ED,56,3E,C3,32,9A,FD,21,18,FD,22,9B,FD,3E,01 230 DATA 26,40,CD,24,00,C3,E8,40,3A,EC,C2,B7,20,04,3E,01 240 DATA 18,02,3E,02,D3,FE,C3,69,40,00,C3,69,40,00,00,00 250 ' CHEAT 260 DATA AF,32,02,E2 270 DATA 3E,99,32,00 280 ' OPERATION-X DATA 290 DATA F3,26,40,3E,83,CD,24,00,21,00,40,11,01,40,01,FF 300 DATA 7F,36,00,ED,B0,21,38,C0,7E,B7,CA,2C,C0,47,23,5E 310 DATA 23,56,23,7E,12,23,13,10,FA,C3,18,C0,26,40,AF,CD 320 DATA 24,00,FB,C3,00,FD,00,00,04,10,40,43,44,07,51,28 330 DATA A7,69,8F,7A,2B,0A,01,C3,22,1E,03,C0,1F,4F,A1,48 340 DATA AC,B8,04,00,8A,2A,EA,EA,2A,00,18,C0,7F,3F,01,03 350 DATA AF,85,18,03,FE,FC,80,03,F5,00,A7,B0,6A,AA,00,6A 360 DATA 62,26,15,91,49,2A,00,55,33,99,9F,40,2B,54,00,AA 370 DATA CC,99,F9,02,18,A2,55,54,AA,A9,64,C4,95,93,24,A4 380 DATA 54,54,95,A5,2A,32,00,67,03,54,8F,80,FE,BA,1D,37 390 DATA 6E,5D,5D,00,2E,5D,F7,FF,7E,DD,04,FD,82,63,1C,05 400 DATA 5D,8C,7F,6E,6E,6A,6E,64,64,24,22,40,5C,40,03,5C 410 DATA A7,40,7C,3E,00,3F,13,0C,5F,18,37,1C,00,DD,DC,DF 420 DATA 00,1C,1C,30,35,C5,30,B7,B1,B5,35,B5,35,B1,B7,C7 430 DATA 30,37,37,1C,0F,15,15,00,03,1C,88,6F,00,55,55,1F 440 DATA 3F,7F,00,06,5D,8A,5C,5D,FD,FC,1D,F1,15,F5,F1,F5 450 DATA 08,1C,90,32,1D,03,26,6D,49,5A,C3,FD,FC,FD,F1,F5 460 DATA F5,F1,F5,00,20,54,71,04,00,9C,E0,E8,9C,6C,00,18 470 DATA 18,1C,0C,0D,09,07,1E,00,1F,02,2D,2D,12,7F,E8,00 480 DATA F8,40,B4,B4,48,FE,00,10,57,6B,82,00,71,04,00,84 490 DATA 71,00,00,00,04,20,82,00,00,00,2E,CF,69,9C,F9,79 500 DATA 7E,1F,C3,1F,33,40,C7,EF,7C,83,BB,7E,FF,7E,3F,3F 510 DATA FF,F8,E0,F8,CC,02,00,7F,00,0F,04,00,04,7B,89,FF 520 DATA F8,06,07,E7,3F,7F,3F,01,03,AF,00,5D,FD,69,88,F3 530 DATA C0,1F,F8,F6,CC,3C,F8,04,00,A8,01,0F,1F,C0,00,00 540 DATA 01,1E,F9,E7,DC,31,06,3A,BA,52,C6,18,70,C0,03,0F 550 DATA 1C,3B,30,47,FC,00,DD,3B,F4,81,3F,E0,00,00,C7,CE 560 DATA 1C,F8,07,00,A5,07,1F,40,02,7A,00,07,DE,DC,83,0F 570 DATA FC,F2,FF,01,03,04,01,0C,26,60,07,1F,3F,7F,7F,0F 580 DATA 7F,17,07,1F,3F,7F,7F,0F,7F,17,00,11,5A,6A,02,00 590 DATA 86,18,3C,81,E7,42,7E,04,7B,84,00,F8,06,07,00,2B 600 DATA 6B,6A,95,00,BD,BD,00,BD,BD,81,3C,3C,81,BD,BD,00 610 DATA BD,BD,00,00,BD,BD,81,3C,06,00,87,3C,81,BD,BD,FF 620 DATA 00,68,05,00,81,68,04,00,81,24,03,00,00,28,C6,7F 630 DATA 8F,D6,80,80,50,E0,F0,F0,E0,F0,70,20,C6,83,20,C0 640 DATA 05,80,94,96,A6,80,80,64,54,50,70,C0,C0,20,30,64 650 DATA 54,50,70,C0,C0,20,30,00,92,98,80,02,20,81,C0,03 660 DATA 60,02,80,02,40,8F,C0,24,37,34,84,84,40,40,C0,24 670 DATA 37,34,84,84,90,04,80,02,60,81,90,04,80,05,60,8C 680 DATA 40,80,A0,90,C0,60,20,20,40,C0,70,40,04,30,88,40 690 DATA 20,30,C0,00,30,30,80,05,20,84,40,20,20,60,03,20 700 DATA 03,C0,81,20,03,30,06,20,93,30,C0,40,20,30,30,C0 710 DATA C0,30,20,C0,C0,30,70,C0,70,20,C0,30,06,20,02,30 720 DATA 87,80,C0,20,20,00,C0,70,04,20,89,30,20,20,30,3C 730 DATA C4,40,40,C0,07,20,81,C0,05,30,82,C0,30,08,20,02 740 DATA 40,04,C0,83,20,30,C0,05,30,82,C0,30,00,1E,0E,87 750 DATA 04,90,81,A0,03,90,03,F0,03,90,89,80,90,80,80,90 760 DATA 60,A0,80,60,03,90,86,80,60,A0,80,60,80,00,1E,80 770 DATA 87,04,70,81,E0,03,70,03,F0,03,70,89,50,70,50,50 780 DATA 70,40,E0,50,40,03,70,86,50,40,E0,50,40,50,00,12 790 DATA D4,81,90,80,90,A0,B0,A0,90,80,60,40,50,40,30,40 800 DATA 50,20,C0,00,2C,EE,7F,92,CA,C3,C3,C2,C2,20,20,A0 810 DATA C8,C8,C3,C3,C0,C2,22,20,CA,C3,03,C2,02,20,81,A0 820 DATA 09,C0,02,20,8D,30,00,C2,20,E3,C6,C2,20,30,C0,C0 830 DATA 20,30,00,4A,1A,80,87,E0,F0,50,40,40,50,70,07,F0 840 DATA 81,70,06,F0,03,70,03,F0,07,70,03,50,03,40,02,70 850 DATA 81,50,05,40,82,70,50,06,40,04,50,8F,40,20,40,50 860 DATA F0,F0,70,50,40,50,50,70,00,A0,30,03,20,02,C0,02 870 DATA 80,03,90,02,A9,83,FA,C0,C0,03,20,02,32,81,F3,00 880 DATA 12,64,80,02,00,8E,80,30,C0,C2,C2,C0,C0,20,20,30 890 DATA C0,C2,20,96,00,22,76,80,02,90,8C,60,90,90,60,90 900 DATA 96,96,90,60,90,60,60,04,90,83,60,90,96,06,90,85 910 DATA 96,90,60,90,00,08,40,08,60,00,76,6D,BF,86,60,98 920 DATA 06,01,06,18,0D,00,84,E0,10,10,0F,0A,00,86,38,04 930 DATA 3C,C3,80,80,04,00,85,70,0C,03,04,18,05,00,89,80 940 DATA 40,43,44,38,08,10,60,80,04,00,85,01,C1,3E,08,08 950 DATA 03,10,81,E0,05,00,83,01,0E,F0,04,20,82,40,80,07 960 DATA 00,02,08,82,06,03,06,00,82,33,CC,08,00,82,80,40 970 DATA 03,20,87,30,90,70,10,08,08,07,03,00,82,0C,33,04 980 DATA 00,02,01,84,0E,08,10,F0,04,00,83,EC,13,60,03,80 990 DATA 07,00,00,22,C2,99,A0,00,03,0F,30,FF,00,15,35,15 1000 DATA 00,FF,30,0F,03,00,00,F0,B8,5C,46,FF,60,F6,F4,F6 1010 DATA 60,FF,46,5C,B8,F0,00,00,61,01,96,83,37,08,03,04 1020 DATA 00,D9,01,04,1B,00,FE,06,30,1B,01,D8,E0,78,9A,40 1030 DATA 42,0C,5C,82,A9,0C,E9,8D,2A,84,D8,00,00,3B,1D,06 1040 DATA 00,01,04,1B,00,FE,06,30,1B,01,00,32,19,0E,03,E0 1050 DATA 03,5C,82,A8,0D,E9,8D,2A,84,E8,00,F4,3A,0C,01,00 1060 DATA 00,03,04,05,09,02,27,4E,99,36,60,EA,4E,34,18,04 1070 DATA C8,9A,1A,86,58,EC,58,30,60,00,00,00,FF,6C,55,20 1080 DATA 00,29,20,00,0D,23,00,6A,23,00,4C,2C,00,69,2C,00 1090 DATA 4D,32,00,29,32,00,0D,37,00,6A,37,00,4C,3E,00,69 1100 DATA 3E,00,4D,43,00,2A,43,00,0C,54,00,62,54,00,12,56 1110 DATA 00,22,56,00,52,5E,00,62,5E,00,12,70,00,10,72,00 1120 DATA 50,7C,00,22,7E,00,62,88,00,24,88,00,52,8A,00,64 1130 DATA 92,00,52,96,00,62,96,00,10,A8,00,22,A8,00,12,AA 1140 DATA 00,62,AA,00,52,B4,00,0C,B6,00,4C,B8,00,24,BA,00 1150 DATA 64,10,01,62,12,01,52,14,01,22,16,01,12,1E,01,62 1160 DATA 20,01,24,22,01,24,22,01,52,24,01,62,24,01,10,26 1170 DATA 01,10,28,01,52,30,01,22,30,01,12,32,01,12,34,01 1180 DATA 64,38,01,62,3C,01,2A,3C,01,10,3E,01,6A,3E,01,50 1190 DATA 40,01,06,48,01,2C,48,01,12,4A,01,6C,4A,01,52,4C 1200 DATA 01,2A,4C,01,10,4E,01,44,4E,01,6A,4E,01,50,54,01 1210 DATA 2A,56,01,62,5E,01,62,64,01,12,68,01,66,6C,01,24 1220 DATA 6E,01,52,8C,01,52,90,01,50,92,01,50,94,01,62,94 1230 DATA 01,4E,96,01,62,98,01,62,9E,01,62,9E,01,52,03,6B 1240 DATA 56,FF,FF,B4,00,E2,00,00,00,00,00,00,00,00,00,00


DEEP! P6! DEEP! MSX! に戻る