改造系の情報及び技術発信☆です

最新

沙羅曼蛇AC DELTA07のプロテクト☆だ

沙羅曼蛇AC DELTA07には実機判別プログラムが搭載されています。
精度・判断基準・ロジックについては試作の域です。

まずは、実機判別プログラムが引き起こす現象について解説します。(かなり曖昧にしてあります)

 【発動条件】
   通常プレイで半月くらいすると条件が満たされます。プレイ実績を集計した複合条件です。
 【発動結果】
   起動不能になります。予備知識がなければカセットが壊れたと思えます。

発動条件が満たされるまで、一切の制限を受けずプレイする事ができます。
実際にプロテクトの存在を公表するまで誰もプロテクトに気がついた人は居なかったハズです。



■プロテクトの目的

 オークション売買対策とプロテクト技術提供が目的となります。



■プロテクト古今東西

 昔からPC向けのゲームやアプリで多くのプロテクトが存在していました。
 コピープロテクトと呼ばれるその技術は多種多様で、コピーが上手くいったかの様に見えていざ起動してみると・・・

  村人からコピーだと罵られたり
  仲間との会話がギクシャクしたり
  ラスボスが倒せなかったり
  親子が乗った船が港に着かなかったり

 オンライン認証とは一味違うユニークなプロテクトは、それ自体がネタとして楽しめたのです。



■プロテクトによりオークションは?

 オークションで取引されているハックロム(海賊版扱い)への対抗手段はこれまで限られていました。
 唯一と言われている「違反商品の申告」も残念ながらあまり効果的ではありません。

 ところが、プロテクトという1つの可能性を示したことにより、これまで後手に回っていたハックロム開発者が初めて先手を打てるのです。

  ・売りにくいハックロムにする。
  ・買いにくいハックロムにする。
  ・実機で完全動作するのはそのまま。

 この条件を満たすのが実機判別プログラムによる時限式プロテクトです。
 プロテクトが搭載されている(搭載の可能性がある)ハックロムは商品価値が格段に下がるでしょう。



■プロテクトの仕組み

 簡単に説明するとセーブデータの初期値が実機とエミュでは異なります。

 エミュレーターで新規にゲームを起動するとセーブデータは「ALL 0」で自動作成されますが、
 実機では「前に焼いたゲームのセーブデータ」「不定値」のいずれかが入っています。
 仮に電池を抜いてSRAMを初期化しても「不定値」で埋め尽くされています。


 ではSRAMの中身を表示するプログラムの実行結果を御覧ください。

参考画像1 エミュレーターのALL0画像 自動生成されたセーブデータ(仮想SRAM)
SRAM_EMU



参考画像2 実機の不定値画像 電池抜いて初期化されたセーブデータ(SRAM)
SRAM_REAL

 明らかな違いが見て取れます。
 この現象を利用し実機判定プログラムは実機とエミュを判別します。


 ちなみに、実機ROMを使用し統計データを取りました。
 状況別にプロテクトが発動するのは以下の確率となります。

  エミュレーター                      0%
  実機(別ゲームのセーブデータが書き込まれている)   100%
  実機(電池を抜いてSRAMを初期化した)          20%

 約80%の実機ROMでは初期化しても不定値になりませんでした。
 なぜ不定値にならないのかは不明です。「SRAMの種類か?」という仮説以上の進展がありません。

 沙羅曼蛇AC DELTA07は初回起動時に実機判定を確定します。
 1度目の書き込みでSRAMを沙羅曼蛇AC DELTA07のデータに書き換えて、2回目を焼いても・・・判定は覆りません。



■プロテクトの展望

 プロテクトの欠点として「個人的に実機で楽しんでいる人にも影響が及んでしまう」という事でしょうか、
 救済策として事前にtwitterで実機派の方へ呼びかけ応じて頂けた方には「プロテクト解除用の隠しコマンド」が提供されています。

 ※WEB上での活動実績を示して頂ければ個別対応致します。


 残念ながらプロテクトが発動してしまった方は・・・・電池を抜いてSRAMのプレイ実績を初期状態に戻せば最初から遊べます。
 電池を抜いておけばプロテクトは発動しませんが、ハイスコアとコンフィグのデータ保存が無効になるペナルティーが発生します。

 ※サウンドテストはゲームクリア特典として用意されていましたが、誰でも楽しめるようにリリース版で制限は解除してあります。


 プロテクトの仕組みさえ解ればプログラムを修正し回避する事が可能です。コマンドの流出もやむを得ません。
 また、もう少し簡単に回避する事もできますが、一応伏せておきます。

 この仕組みの解説がプロテクト技術に波紋の様な波を立てるか、消えていくのか見守りたいと考えております。



■引用考察資料など

ファミコンのネタ!!
Yahoo!オークションのファミコン違法コピーソフト問題まとめ
http://famicoroti.blog81.fc2.com/blog-entry-828.html


naruko の開発メモ
シルヴァ・サーガのセーブデータ
http://d.hatena.ne.jp/na6ko/20130909/p1


■更新履歴

 20150226 「プロテクトの仕組み」の発動確率を詳細に説明

広告

「沙羅曼蛇 AC DELTA 0.7」リリース★です

■download
  沙羅曼蛇AC DELTA 0.7  次バージョンのリリースにより停止しました

■プレイ動画
  【FC ハックロム】沙羅曼蛇AC DELTA 0.7 プレイ動画(ニコニコ動画)  
 沙羅曼蛇 AC DELTA 0.7 for NES (YouTube)
■改造内容・改造履歴

  2015.02.16 DELTA 0.7
      ・各ステージ
          1面……BG多重スクロール化
                  オクタの動作パターン修正(※1)
                  肉壁再生のスピード調整(※1)
                  ゴーレム出現位置を肉壁直後に移動
                  ゴーレムが埋まっている肉壁を変更
          2面……ステージ前半を空中戦に変更(隕石から肉団子)
                  一部キャラの書き換えと配置修正
                  ステージ後半の難易度を下方修正
          3面……炎壁のドット絵修正とヌルヌル化
                  フェニックスの耐久力を下方修正(HP1)(※1)
          4面……ウグの上昇スピード向上と敵配置の調整(※1)
                  浮き岩を掘削できるように修正
                  噴火口を破壊不可能に変更(例外として上記浮き岩の噴火口は破壊可能)
                  掘削岩壁のドット絵修正
                  要塞ヴァリスのブルーボールが視認外でバウンドしていた現象を修正
          5面……ステージ前半を空中戦に変更
      ・オプション
          DIFFICULTY・・・難易度が選べます(HARDESTは非推奨)
          LIVES ・・・・・自機数を設定できます
          CREDIT・・・・・コンティニュー回数を設定できます(規定値を超える数に設定するとエンディングがヘルメット固定)
          KEY ・・・・・・ボタンを入れ替える事が出来ます
          SOUND ・・・・・ゲーム内で使用されているBGMが再生できます。
                          A+Bでフェードアウトします。同時押ししても「ん?押すの失敗したかな?」と思うくらい待たされます(6秒くらい)
          SE・・・・・・・ゲーム内で使用されている効果音が再生できます。
                          ST1~ST6のSOUNDは前奏が終わるまでSEを鳴らさないように作られているらしい・・・
          RESET ・・・・・規定値に戻りますが、サウンドテスト系の数値は戻りません。(オプション画面を開いたときには初期値です)
      ・システム関連
          SRAMに対応(スコア&オプション設定項目の自動保存 サウンドテスト系は除く)
          CHR-RAMからCHR-ROM(512k)に変更
          起動画面を追加
          ゲームオーバー画面にCREDIT表示と背景追加
          操作系の変更(タイトル画面・コンティニュー画面・オプション画面で十字キーとABボタンで項目移動と選択可能に)
          上記に該当しないシステムやドット絵の修正

      ※1.スクロール速度向上によるバランス調整


  2013.xx.xx DELTA 0.6 (非公開)
      ・以下の2ステージを入れ替え
          2面 火山ステージ
          4面 細胞ステージII
      ・各ステージ
          1面……全体的に作り直し
          2面……ステージ前半を空中に変更(この時点では隕石)
                  ギーガからガウへ変更
                  パレットの制限でボスを1画面後ろに移動

■スクリーンショット
SACDELTA07

とあるハックロムの開発風景な沙羅曼☆だ

Edit_2014-01-16_1

さて、この岩でも壊せるようにするか・・・と弄りまくる
正攻法は無理なので画面が書き換わった直後に属性を変換(判定あり→崩せる)





☆沙羅曼蛇AC DELTA07 201401141948554

うおー崩せるようになったー





☆沙羅曼蛇AC DELTA07 201401142148459

うむ、綺麗に崩れた



















ふぁ?

STTONES2000リリース☆です

■更新履歴

  2013.06.30 2.0.0.0
    内部仕様変更

■ダウンロード
 STTONES2000

STTONES1100リリース☆です

■更新履歴
  2013.06.12 1.1.0.0
    ステートファイル読み込み時に行っていたファイルサイズの判定無効化

■ダウンロード
 STTONES1100

STTONES 一般リリース☆です

■概要
  ファミベで作成したプログラムを単体で動作可能にする変換ツール
  ※ファミリーベーシック(V3)のromイメージが別途必要です

■Download
  STTONES2000

■使用方法

Edit_2013-02-24_1
  1.VirtuaNESにファミリーベーシックのイメージを読み込ませて、BASICプログラムを入力します。

画像2
  2.入力後に[ファイルメニュー]→[編集]→[ステートセーブ]でステートファイルを作成します。

Edit_2013-02-24_4 
  3.VirtuaNESフォルダ下の[\state]に保存されます。


画像3

 4.上記3で作成されたSTファイルを STTONES にドロップします。

Edit_2013-02-24_6

  5.NESファイルが作成されます。

今回はファミリーベーシック界を牽引した天才プログラマーよっしん氏のプログラムを添付する事で話がまとまりました。
それでは、よっしん氏よりコメントを頂いておりますのでどうぞ。

「正直、中二病の過去を振りかえり枕にパンチしてる人の心境ですが、
かといってこんな昔にリリースしたモノを覚えている人がいてくれるのは
幸せなことなんでしょう。」

SPLASH!!吉田研究所@世田谷
http://www2.tky.3web.ne.jp/~yosshin/

以下のプログラムが同梱されています。
この同梱ファイルはSTTONESにドロップするだけでNESROMが生成されるハズです。※うまく動作しない場合は動作条件をご確認願います。
ザックナー1
ザックナー2
VS電電
メタルさ伊藤!
レッドアリャマー

V3-ザックナー1.st0 201302242218150 V3-ザックナー2 201302242218250 V3-VS電電.st0 201302242218102 V3-メタルさ伊藤.st0 201302242218315 V3-レッドアリャマー.st0 201302242218362



BASICに心得があればこのようなプログラムも作る事が・・・
※YY-Editorでフォントは修正済み
V3-バブルシステム起動PG 201302091258504

「SUPER MARIO BROS Special X1 for NES」リリース★です

■はじめに
  このパッチは既に公開されている「SMB Special for NES」(88版)から幾つかの修正を加え「SHARP X1版」っぽくするパッチとなります。
  ファミコンとはひと味違うスペシャルなマリオをお楽しみ頂ける方向けですので何卒ご理解願います。

■改造内容・改造履歴
  2012.07.16
    一般リリースに向けに内容を見直し

  2012.03.01~
    88版の不具合修正項目
      ・スターブロックが丸見えだったので見た目を通常のレンガに修正
      ・実機でリセットするとフリーズする現象が生じていたので修正
    X1版の変更項目
      ・タイトル画面がよりPC版っぽくなるように修正
      ・2Pモードを排除し1P専用に修正
      ・ドット絵と色彩をX1版っぽく修正
      ・スター・ファイヤーフラワー・コインをの点滅しないように修正
      ・1-2などのデモ画面で自動歩行を行わないように修正
    その他仕様
      ・ラウンドセレクトを標準搭載
      ・ファイヤーフラワーを連続で3個以上取得すると1UP(※1)
      ・エンディングメッセージを開発元へ向けたメッセージに変更(誤字修正済み)

    ※1.知る人ぞ知るウソテクがまさかの実装「やられずに36個フラワーを取れば1UPだ!」
        http://www.geocities.jp/omokurus2/1986-11.html
        ウソテクは36個ですが無理ゲーすぎるので3個にしてあります。
        1UPに必要な花の数は任意変更可能です。
          0xF429:03     ;03 003個で1UP
                        ;24 036個で1UP

■ダウンロード
SMBSX1-B20120716.ZIP (SkyDrive)

■動画など
【ハックロム】スーパーマリオブラザーズ Special X1 for NES プレイ動画 (ニコニコ動画)


■スクリーンショット