カテゴリー「NEWゼビウス for X1」の記事

2016年6月26日 (日)

X1版NEWゼビウス 最終版 【MI68展示】

6月25日のMI68(マイコン・インフィニット☆64) に一般参加してきました。
 
20150625_x1xevious_mi68
 
普段からネットで、やり取りをさせていただいている、すーぱーたーぼさん、hex125さん、Kei Moroboshiさん、紅皐月さん、けんたろさんとお会い出来て、とても嬉しく思いました。
また、沢山の方々との同一の(マニアックな?)趣味のお話が出来て本当に楽しい一日でした。
 
パネルディスカッションも、当時の事を思い返させていただきました。
何だか、一気に少年に若返ったような気分になってしまいましたよ。
 
「あぁ、話をしている事と(現在でも)やっている事が10代の頃と変わらん・・」
(プログラミング環境は劇的に変化しましたが・・)
 
そして、けんたろさんのライブは鳥肌が立ってしまうほど、大変素晴らしく思いました。
生演奏を聴く機会が殆どありませんでしたので、とても感動いたしました。
 
さて、展示して下さった「X1版NEWゼビウス」は「最終版」となります。
「完成版」・・・と言いたいところですが、まだ、やり残している箇所もあるのです
 
おそらく、これ以上は「X1版NEWゼビウス」に手を入れる事は無いと思いますので、MI68に展示させていただいた最終版の動画を作ってみました。
 
 
 
【ニコニコ動画】X1版NEWゼビウス 最終版 【MI68展示】
 
※16エリアまで全部お見せ出来る動画を作りたかったのですが、残念ながらAREA13の終盤でやられてしまいました。
皆様、またお会い出来る事を楽しみにしております。
ありがとうございました!

| | コメント (0) | トラックバック (0)

2016年6月20日 (月)

MI68にX1版NEWゼビウスが展示されます

6月25日のMI68 (マイコン・インフィニット☆PRO-68K)のプレイアブルコーナーに「X1版NEWゼビウス」を展示して下さる事になりました。

これは、すーぱーたーぼさんのご協力により実現出来た事であり、多くの方に体感していただけますと、幸いに思います。
 
そして、以下と同内容の「紹介パネル」を掲示する予定です。
 
*************************************
 
●開発コンセプト 
  
 ①滑らかに動かす (静より動を優先) 
  ・ 2ドットスクロール
  ・ キャラクタの最小描画単位は1ドット
  ・ 自機の応答は約1/30秒
  
 ②縦画面 
  ・ アーケード版と同様の縦画面
  (62.5%の縮小版)
  
 ③チラつかない、穴が開かない 
  ・ 完全な重ね合せ処理の実装
 
     Xmil0089t
  
 ④ノーマルX1でも動く 
  ・ X1/turbo/Z全機種対応
  
 ⑤オンメモリ動作 
  ・ 全16エリアを一括ロード
 
●スクリーンショット比較
Xevious
 
プレイ感覚は、アーケード版を極力再現させました。
(させたつもりです)
是非、お試し下さい!
*************************************
・・・・という次第です。
開発コンセプトに「滑らかに動かす」、そして、「プレイ感覚は、アーケード版を極力再現させました」・・なんて書きましたが、フレームレートは低くて(自機以外は、約10FPS) カクカクしています。
 
プログラミングに精通された方が、同手法で作られたら、もっと良いものが出来る事でしょう。
しかし、私の技術レベルでは、コレが精一杯なのです。
 
「もはや、ここまで」・・なのです。
 
よって、X1版ゼビウスの開発は、これをもって(一旦)終了といたします。
 
今後は、新たな取り組みをしていきたい・・・とは考えています。何をするかは、またこのブログで発表しようかな。
 
 
【最後に】
 
このX1版NEWゼビウスがココまで作れたのは、当ブログにて「愛のある」コメント、ご指摘を下さった皆様のお陰でもあります。
おそらく、当時(30年前)だったら、Ver.1(のBGM音痴版)で満足して終わっていた事でしょう。
(いや、終わっていました。当時作ったゼビウスもどきが、そんな完成度でした)
  
すーぱーたーぼさんには、技術的なアイデア(やアドバイス)も頂き、今回展示のNEWゼビウス "Ver.2"となっています。
そして、(サウンドデータを作成していただいた)紅皐月さん、(サウンドプログラムを作成していただいた)hex125さんのご協力により、BGM、SEは(私が作成したモノと比較にならぬ程)素晴らしいものとなっています。
 
思い返せば、X1ゼビウスの開発のきっかけはOKIさんとの会合でした。
初コンタクトもゼビウスに関する事であり、それのやり取りが無かったら、このような人との繋がりは無かったんだろうなぁと思うと何だか不思議な気持ちになります。
 
皆様、本当にありがとうございました。
 
(ブログの最終回みたい・・・ですが備忘録は続きます)

| | コメント (2) | トラックバック (0)

2016年5月 4日 (水)

X1でゼビウスを作るVer.2 【検証作業-ログラム】

シャープ X1 (初代発売は1982年)
そんな古いパソコンで、今更ながらゼビウスを作っています。
(2015年までのバージョンを「Ver.1」とし、2016年以降、作成中のものを「Ver.2」としています)
 
今回は、「ログラムの弾(スパリオ)発射タイミング」の検証作業を行います。

ログラムの弾発射は、ランダムにより発射間隔を設定しているような気がするのですが、単発発射と連射(2発)の場合もあります。

この辺りが、どうも良く分かっていなかったので、本家AC版の全82個のログラムの弾発射の座標を調べてみました。

03_0__
【画像1】

上の状態のスパリオのY座標(上) を記録していきます。


03_3___resize
 
(最近、こんなメモばっかりとっているな。面倒でツマラナイんですよね~)
 
これをExcelに入力していきます。
 
03_4__


「画面座標」とはスクリーン座標、「実座標」がゼビウスのプレイ画面(224×288内) の座標を示しています。
 
そして、集計結果です。

03_5__

さらに、座標データをActiveBasicで表示させてみました。

03_6_

赤線が弾を発射した座標、上部の数値(Hex)はAREAを示しています。
これを見ると、AREA4以前とAREA5以降とで、大きく変化している事が分かりました。
 
AREA4以前の発射数平均は、約2個 (ログラム一体が弾を発射する平均)
ログラムが登場してから、初弾発射のY座標も随分と下側になっています。
また、連射回数も少なめであり、(弾発射の)「間隔平均」の値も大きいです。
※表の黄色部分

・初弾
  最小値は   -9
 最大値は 112
 
・間隔(2発目以降の前発射との間隔ドット数)
  最小値は   15
  最大値は 109

・連射
  8回
  全発射数 66発に対し7回
  連射を1回として考えると、全発射回数59回に対し7回が連射。
 すなわち11.86%の確率で連射を行う。

・最後に発射した座標
  147

これが、AREA5以降になると、発射数平均は、5~6個と途端に跳ね上がります。
(最大値は7個発射というのがありました)
また、初弾発射のY座標が、かなり上部からの発射になっている事が分かりました。
 
・初弾
  最小値は -15
 最大値は  44
 
・間隔(2発目以降の前発射との間隔ドット数)
  最小値は  14
  最大値は  77

・連射
  55回
  全発射数 257発に対し48回
  連射を1回として考えると、全発射回数209回に対し48回が連射。
 すなわち22.96%の確率で連射を行う。
・最後に発射した座標
  208
 
なお、発射のY座標最大値は208でした。
つまり、209以上では、弾は発射しません。(下部になると弾は発射しないという事)
今回もサンプリング数が少ないので、「ある程度の傾向」までしか分かりませんでしたが、発射タイミングをパターン化(テーブル化)しているのかもしれません。
 
今回の結果による推測です。(上記を踏まえ、キリの良い値にしています)


   AREA4以前

  ・Y座標が152以上では弾は発射しない。
  ・初弾座標は -15~112をランダムで決定           [128個のランダム]
  ・2発目以降の間隔は、15~110をランダムで決定  [ 96個のランダム]
  ・ランダム値(0~255)が32未満ならば、連射とする (12.5%)

   AREA5以降

  ・Y座標が208以上では弾は発射しない。
  ・初弾座標は -15~48をランダムで決定              [ 64個のランダム]
  ・2発目以降の間隔は、14~77をランダムで決定    [ 64個のランダム]
  ・ランダム値(0~255)が64未満ならば、連射とする (25%)
 
実際に試してみましたが、かなり良い感じになりました。

| | コメント (0) | トラックバック (0)

2016年4月24日 (日)

X1でゼビウスを作るVer.2 【検証作業-タルケン】

シャープ X1 (初代発売は1982年)
そんな古いパソコンで、今更ながらゼビウスを作っています。
(2015年までのバージョンを「Ver.1」とし、2016年以降、作成中のものを「Ver.2」としています)
 
今回は、タルケンの検証作業を行います。
「何だかチョット違う」と思い続けて来た訳ですが、それは当然です。
何故なら、今まで本家の座標等を確認もせずに、「こんなもんかな・・?」という感覚だけで作ってきました故。
 
なので、今回は以下の座標を記録してみました。
 
 ・タルケン出現時の座標
 ・そのタイミングの自機の座標
 ・タルケン反転時の座標
 ・タイミングの自機の座標
 
02_2_200
 
これを視覚的に分かるように、(このデータを) ActiveBasicで表示させてみると・・・・
 
02_2_201
これは、自機座標(は、様々の位置に居るの)を固定化して、タルケンの軌道を線で示したものです。

自機が下部に存在した際の線は緑、上部の場合は紫で描いています。
これで見ると、自機が上部の場合、タルケンは自機よりも下側まで移動して反転する事が分かります。
 
では、自機が下部の場合の反転箇所を抜き出してみます。
 
02_2_202
 
概ね、グレー部に集中するのだと予測できます。
 
次は自機が上部の場合です。
 
02_2_203
 
まだまだ、サンプリング数が少ないので今回の結果については予測の範囲を脱しないのです。
 
しかし、この作業を行う前のプログラムとして、自機上部の場合、タルケンが自機の下側にまで移動しないロジックだったので、少しは本家の動きに近づけたような気がします。
 
次回は、自機が左右の場合も検証してみます。
 
タルケンだけで、これだけ時間が掛かっているとなると、全部のキャラで検証が終わるのはいつの日になるのであろうか・・・・・

| | コメント (0) | トラックバック (0)

2016年4月10日 (日)

X1でゼビウスを作るVer.2 【検証作業-ザカート】

シャープ X1 (初代発売は1982年)
そんな古いパソコンで、今更ながらゼビウスを作っています。
(2015年までのバージョンを「Ver.1」とし、2016年以降、作成中のものを「Ver.2」としています)
 
けんたろさんからのご指摘を受け、ザカートの検証作業を行いました。
 
ゼビウスは空中敵が画面から消えても、存在自体がすぐに無くなってしまう訳ではありません。
しかし、真下に移動するタイプのザカートが画面外から弾を発射するのは、出現位置が低すぎる為だろうと思ったのです。

(いや、薄々は何だか違うんだよなぁ・・・とは思っていたのですけど。)
 
 
と言う訳で、本家ザカートの出現タイミングを画面キャプチャしました。
 
03screeshot
 
なお、これよりもずっと多くの画面をキャプチャしてあります。
そして、ひとつひとつのキャプチャ画面を開き、ザカートと自機の座標を確認します。
そして、その座標をExcelに入力していきます。
  
「めちゃめちゃ、飽きる作業だね」
 
04excel_position_set
 
全部で、約200個のザカートの出現座標(と併せて、その時の自機の座標位置)を確認しました。
もっと、数多くの確認をした方が良いのかもしれません。
(サンプリングが少ない気もしますが、もうこれ以上は集中力が維持出来ません)
 
そして、その座標をActiveBasicで読み取り、描画してみると・・・・
 
05basic_print_2
 
こんな感じです。
自機の位置が上だろうが、下だろうが、関係なく、上図の位置に収まっています。
これは、ザカートのタイプには関係無さそうです。
(ブラグ・ザカートも同様)
そして、自機と同じ座標で出現する事(いきなり衝突する事)はありませんでした。
 
【考察】
 
ザカート出現範囲 (x,y)は 
 
 y座標 30~156 → X1版 26~106
 x座標 12~204 → X1版 16~136
 
ただし、自機(y)ががそのザカート出現の(y座標)範囲内だった場合 
自機と近いx座標(※)には、出現しないようになっている 
 
※ザカートの座標は以下の範囲とする。
 その際は、(ザカートy座標は)
 12 ~ 自機 ( x -8 ) → X1版 16~自機(x-5)
 自機 (x + 16)~204 → X1版 自機(x+10)~204 
 [本家からX1版への座標変換は、 座標×0.625 + 8]
いずれにせよy座標は同計算で良い
・・・・という事になりました。
「合っているのかな~???」

| | コメント (0) | トラックバック (0)

2016年4月 2日 (土)

X1でゼビウスを作るVer.2 【解説ページ 第2回】

【解説ページ 第1回】  [第2回]  描画処理
※解説・・・大層なタイトルですが、備忘録のようなものです。
 
以前のバージョン(以降「Ver.1」と書きます) と大きく異なるのは、スクロール方式です。
これにより、描画処理ルーチンを全て変更しなければならなくなりました。
 
前章では、VRAM計算について触れましたが、今回は「描いて消す事」に関してを書いてみました。
 
Vram_v2
 
詳細ページはこちらです。

| | コメント (0) | トラックバック (0)

2016年3月27日 (日)

X1でゼビウスを作るVer.2 【本家との比較】

シャープ X1 (初代発売は1982年)
そんな古いパソコンで、今更ながらゼビウスを作っています。
(以降、作成中のものを「X1ゼビウスVer.2」と書きます)
 
 
今回は「敵の出現パターン」や「出現タイミング」を検証する為に作った動画です。
 
スクロールはX1版の方が速くなってしまっているので、速度はAC版を微妙に(若干早く)調整してあります
なお、速度比較は以前してありますので、よろしかったらご覧下さい。
              ↓
 
 
 
まだ、じっくりと(フレーム単位で)確認はしていません。
 
全般的に言えば
(X1ゼビウスVer.2について書いています)
 
 ・地上敵(固定)に関しては、概ね良い
   (ガルバーラ・ガルデロータ・ソルの位置は、ちょっと違っています。
    これは速度向上の為の妥協です)
 
 ・地上的(移動)は、及第点といったところ。
   (ドモグラムは、概ね良さそうですが、グロブターの動作はちょっと違うかなぁ)
 
 ・空中敵の出現パターンは合っている。
 
 ・しかし、空中敵の出現タイミングが微妙に早い
 
 ・アンドアジェネシスが強い
   (弾の発射率が高い気がする)
 
 ・ゾシーが強い
   (しつこい。中々帰ってくれない)
 
 ・バキュラの数が少ない箇所がある。
   (これは、速度向上の為の妥協です)
 
 ・ギドスパリオが大きい
   (これは、視認性確保の為の妥協です)
 
 
   「うーん、妥協が多い」
 
 
 
個別で気が付いた点
 
 ・AREA5  海(湖)から港にかけて、敵の出現が少ない。
 
 ・AREA7   終盤でバキュラ出現が早く終わってしまう。
 
 
いや、しかし(今回の目的は検証の為とは言え)、本家と並べて比較してしまうと、X1ゼビウスVer.2は、「ガッカリ移植だなぁ~」
 
やはり、カクカク感が非常に気になります。
 
※AC版動画について
 
私も、何度も本家 (NAMCO HISTRYですけど)による、ノーショットクリアをチャレンジしましたが、何度やってもダメでした。

動画左のAC版のノーショットは私がプレイした訳ではありません。
以下の方の動画を利用させていただいたのです。
 
https://youtu.be/Jxo5pjaQUFo?list=FL4DVgBal0jgMg2XiYotOhCg
 
https://youtu.be/6VmuEPsUuVg?list=FL4DVgBal0jgMg2XiYotOhCg

| | コメント (0) | トラックバック (0)

2016年3月21日 (月)

X1でゼビウスを作るVer.2 【動画】

「X1でゼビウスを作るVer.2」・・・とりあえず遊べるレベルまでになりました。

解説ページ(と言う程、大層なモノでは無く備忘録ですが) 等は追々と書いていきたいと思っていますが、まずは動作動画をアップしてみました。
なお、(エミュレータでのキャプチャなのですが)エミュレータだと、CRTCの設定が実機と異なるようで、プレイ画面が中央にする事が出来ませんでした。
 
まだ、最適化等は済んでいませんが、残りメモリは(何と!)僅か70Byteしか残っていません。
 
オプションメニューに、パレット設定※等も追加したいんですけどね。どうしようかな。
※今回のVer.2から、スクロール背景とキャラクタは別の色を(カラーコードにて)表示させているので、キャラクタの色変更(パレット)が自在に出来るようになったのです。
 
 
 
エリア16まで到達出来なかった・・・・残念だ。

| | コメント (0) | トラックバック (0)

2016年3月 6日 (日)

X1でゼビウスを作るVer.2 【解説ページ 第1回】

【解説ページ 第1回】  CRTC設定による2ドットスクロールとVRAM計算
※解説・・・大層なタイトルですが、備忘録のようなものです。
 
以前のバージョン(以降「Ver.1」と書きます) と大きく異なるのは、スクロール方式です。
Ver.1はタイルパターンとの併用による1プレーンの差分描画方式でした。(詳細はこちらに書いてあります)
 
 中々良いアイデアだとは思っていたのですが、1プレーンだけのスクロールでは随分と貧相な画面になっていました。
スクロール方式を変更し、「見た目」の改善を図ってみます。
 
X1xevious_screenshot01_2
↑結構、良い感じになってきた・・・と思う
 
これにより、大幅にプログラム変更が発生してしまうので、「Ver.2」と命名してみた訳です。
 
はっきり言って「他機種」に移植するようなもの・・・・・いや、それは大げさか。
 
「AE85改AE86を製作する」労力と、「AE86の主要機関 (エンジン・ミッション・サスペンション・ブレーキ周りなど)を全ての総脱着する」労力の違いのようなものでしょうか。・・・・・いや、ますます分かりづらい例えになってしまった。
 
詳細は、こちらに書きました。
 

| | コメント (0) | トラックバック (0)

2016年2月28日 (日)

X1でゼビウスを作るVer.2 【キャラクタ描画】

久しぶりの投稿になってしまいました。
「X1でゼビウスを作る」・・・を再始動させます。
題して「X1でゼビウスを作るVer.2」・・・です。
 
前回、テストプログラムにてCRTCを利用したハードウェアスクロールのテストプログラムを作成いたしました。
 
これにより、VRAMアドレスが常に変化してしまうのでキャラクタの描画ルーチンは全て作り直しです。
とりあえず、要所のキャラクタ描画箇所は作りました。
 
今回作成したのは、キャラ10ドット用、キャラ20ドット用、アンドアジェネシス、自機、照準の描画ルーチンです。
 
スクロールの処理コストは激減しましたが、キャラ描画にかなりの処理コストが掛かるようになってしまいました。
コスト増は、VRAMのループバック処理もそうですが、スクロール背景が2プレーンデータになった事で、キャラ描画は(データは2プレーン分しかないけど)3プレーンに書いているのです。
併せて消去処理(描画したキャラを背景で上書きする処理)も同様にコスト増です。
 
この辺りは、次回にでも説明記事を書いてみようかと思っています。
(何かもっと他に良い方法が無いかな~)

 
 
ゲームに早く組み込んでみたい。

| | コメント (0) | トラックバック (0)

より以前の記事一覧