TAMA-TAMAうぉーず for Windowsについて

マイコンBASICマガジン(ベーマガ)1993年5月号に掲載されたPC-9801/286シリーズ(N88-日本語BASIC(86))用プログラム
「TAMA-TAMAうぉーず」を作者自らWindows 11に移植しました。
元のプログラムに忠実に640×400ドット 16色で当時の興奮をそのままWindows 11で楽しめます!!
画面サイズはフルスクリーンにも変更可能!

さらに当時は不可能だった、「PCM音源での爆発音+マシンガン音」に対応!!
ゲームスピードは「80286(16bit)相当」「80386(32bit)相当」に変更可で難易度を2段階に調整可!

※ハイスコアを競って遊べば結構現代でも遊べます。通常モードで簡単に全面クリアできるようになったら処理速度が速い「80386(32bit)相当」モードにチャレンジしてみてください。
※全7面です。

※言語はJavaを使用しています。Javaバーチャルマシン上での動作になりますので、Windowsの動作に悪影響を与えません。

Windows11版 操作方法

操作説明
基本操作
  • ①上下左右の操作はテンキーで行いますが、テンキーが無いPCは「I」「M」「J」「L」キーで行ってください。
  • ②マシンガンは「スペース」キーで。
  • ②ゲーム終了は「E」(End)キーで行ってください。
システム設定
  • ③ディスプレイサイズ変更「D」(Display)キーで、 「x1倍」 「x2倍」 「x4倍」 「フルスクリーン」の3種類に画面サイズを変更できます。
  • ④サウンド設定変更「S」(Sound)キーで「サウンドON(爆発音のみ)」 「サウンドON(爆発音+マシンガン)」 「サウンドOFF」に変更できます。
  • ⑤ゲームスピード変更「W」(Double)キーで「80286(16bit)相当」「80386(32bit)相当」にゲームスピードを変更できます。
ルール
  • マシンガンでノルマの数相手のタマを破壊すればクリアです。
  • 相手のタマに当たったらダメージを食らってLIFEが減っていきます。
  • LIFEがなくなったら墜落します。(ENERGYがマイナス20)
  • ENERGYは常に減り続けます。
  • クリアしたらENERGYがプラス130され、次のステージに進みます。

特徴

① グラフィック

PC-98と全く同じ640×400ドット16色で製作してます。グラフィックはPC98同等

② サウンド再生

BEEP音でのサウンドはさすがにJavaで再現できないのでPCMでサウンドを再生しています。サウンド OFFも可能

③ 速度調整

ゲームスピードは作者の意図通りの速度に数百ミリ秒単位で調整しています。(実際のPC98実機と全く同じ訳では無いが体感速度がほぼ同じになるようにしました)「80386(32bit)相当」を選択すれば当時デバックしていた最高速の環境相当でのゲーム体験が可能。

Windows11版画面キャプチャ(version1.1)

プレイ画面キャプチャ

改善事項

投稿の裏話で記載した事項を改善

① 玉の光源の方向

画面は回転しているのに「玉」の光源の方向が回転しないのを修正したかったが、大変手間がかかるので着手できなかった。
→画面の回転に付随して「玉」の光源がクルクルそのまま回るのはあまりやってることに意味がないので対応せず

② 敵の玉の描画

敵の「玉」は画面奥から手前に向かって描画しないと遠近感(前後関係)が狂うので修正すべきだった。
→修正しました

⑤ 玉の爆発ウェイト

玉の爆発、ダメージの際は負荷に応じた一定の長さのウェイトを入れないと、タイミングにより一瞬で爆発、ダメージ音が消えてしまう時があるので要修正。
→玉の爆発処理に軽いバグがありましたので修正しました。

⑦ BEEP音の音階

BEEP音が五月蠅いゲームだが、実はPC98においてBEEP音の音階の変更はそれなりに高等テクニックだったりします。今コーディングしたらもうちょっといい感じに仕上げられるのになぁと思います。当時の試作段階ではFM音源の効果音でしたが、処理速度面の都合で没にしました。
→BGMは追加しませんでしたが、爆発音は追加しました。

苦労した点など

① GOTO文の修正

N88BASICで頻繁に使用されるGOTO文は現代のプログラムではNGなので、すべてWhile文に修正しました。

② 小数点の演算誤差

N88BASICでは貨幣計算ができるように小数点が(COBOLのように)厳密に扱われるが、それをすべて64bit doubleに変更すると誤差が生じる(可能性がある)点に苦労した。

③ カラーパレットの仕様

PC98はカラーパレットがGRBだが、現代はRGBである。これに気づくまでマニュアルなど参照し時間がかかった。

④ ランキング機能の変更

ランキングを記録しディスクアクセスする部分は、今頃ランキングを競う人なんていないので、「ハイスコアと日時記録」に変更した。(※デスクトップにDATファイル作成します)

⑤ フォントの再現

フォントはさすがにPC98のフォントを使用できないので、Windowsのフォントを使用しています。(文字関係の外観がPC98版と異なります)

⑥ 円描画の質感

円を描く命令(いわゆるCIRCLE文)のドットの描き方はN88BASICとjavaとでは微妙に異なります。そのため球(TAMA)の質感に若干の違いがあります。

⑦ PCM音源のデバッグ

javaのPCM音源再生が思ったようにうまく動かなくて4日ぐらいデバックしていました。

注意点

ディスプレイドライバーの相性によりゲームが停止することがあります。その場合はディスプレイドライバーを最新に更新してみてください。

今後

評判がいいようならばNEXT版「TAMA-TAMAうおーず 2026」を作成するかもしれません。