Nintendo

【スーファミミニ】hakchi2と出来る事

投稿日:11月 10, 2017 更新日:

ニンテンドークラシックミニ スーパーファミコン(スーファミミニ)の改造方法、その後に出来ることをまとめておきたいと思います。

初回の設定方法

【1】hakchi2をダウンロードする。
※debugやweb_installerがあるが、無印が無難。

【2】ダウンロードしたものを解凍してhakchi.exeを起動する。

【3】初回起動時に下のようなポップアップが出るので、今回はスーファミミニの為、Super Famicom Miniを選択する。

※なんだか嬉しい気分にさせる画像

【4】カーネルタブの「カーネルをダンプ」を選択する。

【5】画面の指示に従って行き、最後にドライバーをインストール、を押す。

※エラーとなる場合はUSBポートを変える等をして何度か試してください。

【6】ダンプが終わると、hakchi2\dump\kernel_super_famicom.imgに保存される。

※ダンプしたkernel_super_famicom.imgのmd5が
632e179db63d9bcd42281f776a030c14
c3378edfc1b96a5268a066d5fbe12d89
のどちらかであることを確認しておくこと。

【7】続いてカーネルタブの「カスタムカーネルを書き込み」を選択する。

【8】終わったら、念のために「複合化されたNAND-Bパーティションをダンプ」する。

ゲームの追加方法

【1】hakchi2を起動する。

【2】追加したいゲームをドラッグ&ドロップ、又はゲームの新規追加ボタンを押して追加したいゲームを選択する。

【3】必要ならば右側に必要な情報を入力する。(テキトーで可)

【4】最後に同期を押せば実機で起動可能となる。

※GBA等の他のものを起動した場合は、下の作業も行ってください。

スーファミ以外のゲームの追加

【1】retroarch_with_cores.zipをダウンロードする。

【2】zipのまま、hakchi2にドラッグ&ドロップをする。

【3】下の画像のものが出たらOKを押し、画面の指示に従う。

これで、起動できるようになります。

書き込む可能領域を増やす

【1】hakchi2のモジュールタブより、拡張モジュールをインストールをクリックする。

【2】モジュールの一覧の中のextra_spaceにチェックを入れOKを押す。

【3】画面の指示に従いスーファミミニを接続する。

完了すると50MB書き込み可能領域が増えます。

Sponsored Link

-Nintendo

執筆者:


  1. windows_server_2003 より:

    https://drive.google.com/file/d/1sRSWvF5lfMWLhfRZvq82mAQKrPr8Mj7z/view?usp=sharing

    ソースコード
    https://github.com/windows-server-2003/GodMode9/tree/if-goto

    Godmode9のスクリプトにif, else, end, goto, labelコマンドを追加したビルドです。
    バグを発見してください。
    if – 引数2
    else – 引数0
    end – 引数0
    goto – 引数1
    label – 引数1
    ifの条件は続く引数2つが同じことです。
    その他は他の言語(Luaが一番似てるかな)と同じようなif-else-end構文の動作をするはずです。
    gotoとlabelに関してはlabelコマンドで後に続く引数をラベルの名前としてラベル(gotoでジャンプする先)を定義します。
    gotoの引数でラベル名を指定してやるとそこに飛びます。当然labelコマンドはgotoの前でも後でも構いません。同じラベルをlabelコマンドで二回定義すると上にあるほうが使われるはず。
    if構文の中にジャンプしたりifの外にジャンプしたりできます。(このあたりにバグは多く見つかりそう。)gotoを使うとlabelをスクリプトの最初から探し出すのでスクリプトのプレビューがオンになっていると少し遅いです。
    set PREVIEW_MODE off
    を推奨します。


    if test test # same
    echo “This will be shown”
    else
    echo “This will be skipped’
    end
    goto testlabel
    echo “This won’t be shown”
    label testlabel

    つまり最後から3行目のgotoから最終行のlabelにジャンプするためその間にあるコマンドは実行されません。
    何か予想外の動作をしたりエラーじゃないのにエラーになったらここにコメントしてください。助かります。

    • glanheit より:

      了解です。
      唯luaは未修のため、もう少しifについて書いておいていただけると捗るかと。

      • windows_server_2003 より:

        はーい

        説明するより実際に見てもらったほうが早いと思います。日本語コメントは動かないかもしれないのでエラーでたら取り除いてください。

        if test test # 同じ
        echo “This will be shown” # ここは実行される
        else
        echo “This will be skipped” # ここはelseのためifの二つの引数が合わなかったときだけ実行される->今回は実行されない
        end

        if test test1 # 違う
        echo “This will be skipped” # 今度はifの引数が合わなかったため実行されない
        else
        echo “This will be shown” # ここは実行される
        end

        if test test # 同じ
        echo “This will be shown” # 実行される
        if test test # ネストは255個までできる
        echo “This will be shown”
        end
        end # elseは無くても構わない

        goto testlabel # “testlabel” というのを引数に持ったlabelコマンドにジャンプする(その間にあるコマンドは実行されない)
        echo “This won’t be shown” # ここは実行されない。
        label testlabel # ここにあります
        echo “This will be shown” # ジャンプした後は普通に動く

        # gotoでifの中にジャンプするとifは評価されずジャンプした先から普通に動きます。
        goto label_1
        if test test1 # 違うが評価されない
        label label_1
        echo “This will be shown” # ifの引数が違うにも関わらず実行される
        end

        label label_2
        echo “Looping”
        goto label_2 # 後ろにもジャンプできる(この場合無限ループです、電源10秒押しでシャットダウンしてください)

        • windows_server_2003 より:

          おーっと
          インデントが効かないので読めないですね
          https://drive.google.com/open?id=1S-v5p84nvVFvUUc9ZFSVOmtK0d2t4ptz
          ここに上げときました

        • glanheit より:

          ああ、理解しました。
          シェルスクリプトってコメントは#何ですね(そこから

          rubyはやりませんし、C#は//ですし、Javaも//で、PHPは//と両方使えるので、#?なんぞ?とか思ってましたわ。。。

            • windows_server_2003 より:

              PythonもPythonで独特ですけどね
              vbsを長く使ってた僕は’がコメントという感覚が抜けないんですよ
              そして今Cをガンガン使ってると#をコメントに使うことに強烈な違和感を覚えます。

              GM9はスクリプトのインタプリタの仕様上一行一コマンドで固定個の引数なので一つのifに複数の条件を付けることは出来ません。

              • glanheit より:

                今基本的な動作の確認をしたところなので、これから変な動作が起こるか確認します

              • glanheit より:

                gotoでif内に飛んだときにどのような処理でendやelseを見ているのか少し興味が出ました^^;;

                行き当たりばったりでエラー出るかなと甘く見てましたが、しっかり作られてました。

                自分で処理を書いているうちに入れ子構造がこんがらがってきたので、明日時間が取れたら、複雑なものを一度視覚的に認識しやすいように書いてから試してみようと思います。

                追記
                goto時上からラベルを探す際に、ifの数やendの数を数えて何個目の入れ子かを見ているのですかね?

                • windows_server_2003 より:

                  さすがにバグだらけのもの上げても意味ないので。
                  ifとかはインデントはしないと読めなくなりますよー
                  >>追記
                  そうです。

                  自分で一つバグ発見しました。ソースコード見てて気づいただけで実際に試してないのですが。
                  こんな時に何もエラーじゃないのにエラーを吐きます。(多分)

                  goto label
                  if test test
                  else
                  end
                  if test test
                  else
                  end
                  label label

                  • glanheit より:

                    line 6のelseでエラー吐きますね。。

                    入れ子ばかり試してたので気付きませんでしたわ。。

                    • windows_server_2003 より:

                      ビルド、ソースコードともに修正しました。

                    • glanheit より:

                      記事として公開します?

                      あまりいないとは思いますが、不具合報告が入るかもしれませんし…。

  2. windows_server_2003 より:

    お願いします。ありがとうございます。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  • Loading...



その時その時書こうと思ったものを書いていきます。
yahooブログから始まりFC2を経て今ここです。
皆様の興味がそそる内容は少ないかもしれませんが、よろしくお願いします。