パスワードを忘れた? アカウント作成
15495688 story
ゲーム

ソーサリアンの移植時の解析で分かった技術を解説するサイト 37

ストーリー by nagazou
解析 部門より
ファルコムのPC-8801mkIISR版「ソーサリアン」をX68000シリーズ向けに移植した経験を持つPI.氏。この移植はあくまで個人の範囲内で独自に行ったものだが、同氏はその過程で得られた種々の技術を解説するページを公開している。基本的にはPC-88の内部構造やプログラミングの知識を持つ方向けの内容となっているが、解析により判明したこぼれ話、秘話なども含まれており、一般のソーサリアンファンも楽しめる内容となっている(ソーサリアン~内部解析からわかったこと~ by PI.)。

tamaco 曰く、

mdxで実機からコンバートしたFM音源の曲でよくお見かけしたPI.氏の記事。X68000,FM-7,PC-8801FAなどのエミュレータなどもあります。技術的に読ませる良記事

  • by Anonymous Coward on 2021年11月26日 15時16分 (#4159253)

    久々にスラドで読みたい記事が読めてtamacoさんに感謝。

    ここに返信
    • by tamaco (19059) on 2021年11月27日 0時40分 (#4159525)

      ありがとうございます。
      当時自分でもSorcerianやYS1/2辺りは結構解析していたので、あるある~って楽しく読めた記事でした。

      簡単な専用ファイルシステムを使っていて、曲を示すクラスタ番号から音楽を吸い出して、Mucom88 [onitama.tv](当時はMusic LALFとか、同人版Splitと呼んでいました)で再生していました。
      参考:作者の古代祐三さんの解説 [youtu.be]

      ファルコムのSorcerianやYSの音楽ドライバは、厳密には古代さんのMucom88ではなく、同じデータを再生できるようファルコムの橋本さんが作ったもののようですが、Z80のインデックスレジスタIXをFM音源、IYをSSGに使用するよう、リアルタイムでコードの自己書き換えやっており、すげーコードだなと感心した覚えがあります。

      知人がX1を持っておりSorcerianがOPM対応であることに気付きました。当時PC88FH+SB2ユーザーだった私は、PC88で動く専用ドライバ作成して(たしかIXレジスタを2回コールしてFM6音に対応させたんだと思う)、高校の学際で見せびらかしてた微笑ましい思い出がありました(X1版の方がPC88版に比べ音が拡張されていた)

      とにかくPC88/X1の時代は面白かったですね。FDCなどサブシステムを扱う解析記事も雑誌などで豊富であり技術的好奇心を満たせるものでした。
      その後のPC98では処理速度は上がりましたが、ディスクアクセスもInt1Bhばっかりで、つまらなくなりました。さらにWindows3.1/95時代以降はハードウェアを直接叩くこと自体が困難ですしね。
      80年代後半はPCやアーケードゲームなども、とにかく日進月歩で技術革新が進む良い時代でした。

    • by Anonymous Coward on 2021年11月26日 15時24分 (#4159261)

      ソーサリアンの設計技術はマジですごいな

      • by Anonymous Coward on 2021年11月26日 17時43分 (#4159350)

        追加シナリオ作成したほかのソフトハウスが褒めてましたね
        プラットフォームとしても練られてるそうで

      • by Anonymous Coward

        この頃の少ないリソースでいろいろ上手くやる工夫って、よくそこまで考えるよなぁと思いますよね。
        FDDヘッドのシーク時間を考慮したデータのセクタ配置の話とか。
        #ソーサリアンじゃなくてイースだっけ?

        • by Anonymous Coward

          >FDDヘッドのシーク時間を考慮したデータのセクタ配置
          純正でキリキリ調整すると、サードパーティ製ドライブでタイミング違うので
          そっちで動作させた場合逆にエライ時間がかかる、なんてことも今は昔。
          リソースやりくり、デバイスの裏技駆使する箱庭感は面白かったですねぇ
          中村光一氏のニュートロンでの木を蹴っ飛ばしたときの画面の揺れとか
          CRTCのクロックパラメタをいじってたのかな?
          ああいうのはエミュレートできるのだろうか。再現苦労すると思う。

          • by Anonymous Coward

            セクタサイズまで変えて大容量化してたのもあるな

            2Dで400KB位にしてた

            (*´ω`*)

            • by Anonymous Coward

              セクタサイズかもだが、ギャップ小さくして増やしたのでは?
              フロッピいじるのも楽しかったですね手近なエレメカでした
              ゲーム本体よりプロテクト外しが面白かったり。
              # 鳴り物入り?で登場のozawaチェッカは大したことなかったなぁ

              • by Anonymous Coward

                2Dはセクタサイズ1KBにすると1トラックに5セクタ入って80トラックで400KB
                ちな標準はセクタサイズ256Byteで1トラックに16セクタ

                ギャップ削るのはやったことない

              • by Anonymous Coward

                Write OnceならGapいらないですよね。
                ゲームには適していたかもしれません。

    • by Anonymous Coward on 2021年11月26日 18時59分 (#4159394)

      読んでとても懐かしかった。
      pushとpopで画面書き換えとか当時は目からうろこで感動したよ。

      • by Anonymous Coward on 2021年11月26日 19時23分 (#4159412)

        pushを1ライン分40個並べて塗りつぶし幅に応じて途中に飛び込むとか、DDA [wikipedia.org]とか、ブレゼンハムのアルゴリズム [wikipedia.org]は結局除算を引き算の繰り返しでやっていることになるので、短い直線とかでなければ先に明示的に除算したほうがいいとか、定数での乗除算の最適化とか、そういう話が雑誌によく載っていました。

        • by Anonymous Coward on 2021年11月26日 21時05分 (#4159453)

          そういう話の元ネタは、コンピュータ科学のちゃんとした教科書だったり、DDJ [wikipedia.org]やBYTE [wikipedia.org]といった洋雑誌だったりしました。
          当時は大学生がアルバイトでゲームを作ることがよくありました。

        • by Anonymous Coward

          ブレゼンハムのアルゴリズムで線分を描く場合

                    for x from x0 to x1 with increment inc // 修正
                            if steep then plot(y,x) else plot(x,y)
                            // increment により描画順序が制御される
                            error := error - deltay
                            if error < 0 then
           

      • by Anonymous Coward

        > pushとpopで画面書き換えとか当時は目からうろこ
         
        わかる。
        パソ通も夢の話で、月イチのASCIIとI/O、そしてZ80入門とかしかなかった時代。
        PUSH, POPってサブルーチンでのレジスタ退避以外に使う発想がなかったです。
        XOR A,Aぐらいしか知らなかった。

    • by Anonymous Coward

      というか件のページが実に古い時代の黎明期テキストサイト的フォーマットで懐かしくなった。インターネッツ考古学ページで学ぶオールドPCゲーム考古学って感じだ。

      • by Anonymous Coward

        2000年前後、液晶ディスプレイ利用者がこんな感じの色使いをしていたな。
        ブラウン管だとどぎつい配色なんだが、当時の液晶ディスプレイ低性能だとキレイにみえるという。

  • by Anonymous Coward on 2021年11月26日 17時56分 (#4159360)

    いっちょプロテクトでも外したれ(→未遂)っていって読んでいったら、
    最序盤からきれいにモジュール化されてて唸った記憶がある
    BGMエンジンまでは読破したかな、あのときの知見は間違いなく今でも自分の基本に近いところにある

    最近の若い子なら、そういう経験は、githubでするんだろうな

    ここに返信
    • by Anonymous Coward

      技術に明るい知り合いが、当時やっぱり解析してましたね。
      上のソースで軽く触られてる魔法構造を教えてくれて、独自魔法とか作ってた覚えがあります。

      # 魔法の飛び方、弾の形、魔法の効果、効果のある敵の種類、消費魔力ってデータだった

typodupeerror

日本発のオープンソースソフトウェアは42件 -- ある官僚

読み込み中...