電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

今でもできるMSXの開発メモ 2020年版

前回のゲームボーイの開発環境に続き、MSXの開発環境も2020年の最新情報で書き直します。

ふとMSXで自作ゲームを作りたいと思い、開発環境を整えて作ってみました。

BASICではつまらない、だからと言って実機でアセンブラやC言語を書くのはつらいと思い、色々なC言語のクロス開発環境を色々試してみた結果、z88dkにしました。他の環境はそれぞれ独特の癖があったりしましたが、z88dkはANSI Cに準拠した形で書いていけば一番素直に動く印象でした。

どこかで2次元配列は使えないようなことを書いてあるサイトを見ましたが、現在のバージョンでは問題無く使えます。プログラム中で4次元配列まで使いましたが、特に問題はありませんでした。

z88dk

 ダウンロードサイト

http://nightly.z88dk.org/

こちらから最新版をダウンロードしました。

2020年の現在でも更新を続けています。
どこかで2次元配列は使えないようなことを書いてあるサイトを見ましたが、現在のバージョンでは問題無く使えます。プログラム中で4次元配列まで使いましたが、特に問題はありませんでした。

環境変数PATHへz88dkのルートフォルダ以下のbinフォルダを追加してください

環境変数ZCCCFGへz88dkのルートフォルダ以下のLib\Configフォルダを追加してください

コンパイルはbinフォルダ中にあるzccコマンドでできます。

zccコマンドのパラメータ-subtype=msxdosでmsx-dos実行用comファイルで出力され、-subtype=romでROMイメージのromファイルが出力されます。

他の環境変数まで書き換えるのが嫌なので、以下のようなバッチファイルを作り、コンパイルを実行してました。

MSX-DOS実行用comファイル作成
(ソースファイル名:test.c, 出力ファイル名 test.com)
set PATH=<z88dkのルートフォルダ>\bin
set ZCCCFG=<z88dkのルートフォルダ>\Lib\Config
zcc +msx -lm -subtype=msxdos test.c -o test.com
ROMイメージ用romファイル作成
(ソースファイル名:test.c, 出力ファイル名 test.rom)
set PATH=<z88dkのルートフォルダ>\bin
set ZCCCFG=<z88dkのルートフォルダ>\Lib\Config
zcc +msx -lm -create-app -subtype=rom test.c -o test.rom

パラメータの細かい意味は調べてませんが、以上のような組み合わせでコンパイルできました。

実際にゲームを作ってみました

 TI-Nspire でパズルゲームでもグラフ電卓用に作ったパズルゲームをMSX用に作ってみました。

このパズルゲームは自分のチュートリアルの意味で新しい環境で開発する際の題材にしているので、実はGB版があったりと様々な環境で作ってます。

f:id:uosoft:20180818235648j:plain f:id:uosoft:20180818235702j:plain

せっかくなので、フロッピー版とROM版を作りました。

フロッピー版はMSX-DOSのディスクへnu.comを入れて、autoexec.batで自動実行するようにしました。

ROM版はMSXで遊ぶ! Mega Flash ROMで作り方を紹介したフラッシュROMを停止スイッチ無しで作ってそこに入れました。

OPFで出力されたROMファイルを書き込むことができます。

f:id:uosoft:20180818235904j:plain

無事に出力されたROMファイルを書き込むことができました。

ラベルまで作るといい感じになります。

f:id:uosoft:20180820001330j:plain

 

COMファイルはともかく、ROMファイルで出力されたものも結構素直に動作しました。

パラメータを変えるだけでROMファイルまで簡単に出力できるのは他の環境では中々ないので、z88dkはお勧めできます。

 

MSXパーフェクトカタログ (G-MOOK)

 

今でもできるゲームボーイの開発メモ 2020年版

以前ゲームボーイの開発環境を書いたのですが、現在リンク切れや便利なツールを見つけたので、2020年版として新たに書き直します。

ダウンロード

GBDK (Gameboy Developers Kit)

開発で使うSDK(Windows環境)。C言語です。
GBDKバージョン2.1.5ダウンロードページ

GBTD (Gameboy Tile Designer)

ゲーム上で動くアイコンを作成するためのツール
ダウンロードページ

GBMB (Gameboy Map Builder)

マップを作成するためのツール
ダウンロードページ

Pic2Tiles

ビットマップ(bmp)形式のファイルからGBDKで扱えるタイルデータ(unsigned charの配列)のソースを生成するツール
ダウンロードページ

GBエミュレータ

このリンクのサイト等から探してください
BGBなんて良いかもしれません。2020年でもバージョンアップされています。

実機で動かすために

海外通販等で探せば空FLASHカートリッジに書き込むものもありますが、出力したROMファイルをSDカードに入れて実行できるEverDrive GBを使用すると手軽にできます。

環境構築

  1. GBDKを解凍すると"SDK"ファルダがあるので、これをCドライブの直下に置く
  2. DOSプロンプトを開く
  3. カレントディレクトリを"C:\SDK\gbz80-gb\2-1-5\lib"へ変更する
    • c:
    • cd \SDK\gbz80-gb\2-1-5\lib
  4. "make.bat"を実行する
    • make.batを実行する
  5. 環境変数の設定(しなくても良いが、してると便利)
    • システム環境変数のPathへ";C:\SDK\gbz80-gb\2-1-5\bin"を追加する
    • GBTDとGBMBとPic2Tilesは単体のツールなので、解凍し適当なフォルダに置く

試しに実行してみる

サンプルソース

簡単ですが、このソースを"test.c"と名前をつけて保存します。

#include<stdio.h>

void main()
{
    printf("GAME BOY TEST");
}

コンパイルし、ROMファイルを生成します

lcc -o test.gb test.c

エミュレータで動かしてみる

生成された test.gb をエミュレータで実行します

無事に表示されました。

実機で動かしてみる

EverDrive GBを使用して初代ゲームボーイで動かしてみました。画面表示に違和感があるのは、バックライト液晶に改造してあるからです。この事もそのうち書きたいと思います。

iPhoneでもAndroidでも言えますが、実機で動くと楽しくなります。

ブログ名を変更します

ちょうどiOS SDK (当時はiPhone SDK)が公開されたころに、自分のメモ用にiOSの開発ネタを書いたのが始まりの当ブログですが、仕事や生活の変化でなかなか個人で開発することが少なくなり、すっかり趣味のページになってしまいました。
ブログの名前も色々変えてきたのですが、本日よりシンプルに「電子趣味の部屋」に変更します。

また個人で借りてるサーバ上にサブブログ「電子趣味の部屋 別館」を開設しました。
はてなの仕様上扱えないJavaScriptを使った記事や色々と実験的な事や、本家では扱いたくないグレーな話題等はサブブログで公開していくつもりです。

今後とも本家、サブページ共々よろしくお願いします。

Roland SC-8820

実家に置いてあるものを整理してたらRolandのSC-8820を見つけました。
f:id:uosoft:20200820163243p:plain

以前SC-88Proを持っていることを書きましたが、
購入前の時期(東方とかニコ動文化の全盛期だったかな?)にSC-88Proが中古でも価格が再上昇した時期にSC-88Proの代わりに購入したものです。
オークションでSC-88Proが3万円だった頃に2万円以下で買ったと思います。

SC-8850をグレードダウンさせたような機種ですが、88Pro以前用のデータの再現性は8850よりも高いようです。
本来USBバスパワーで動作するのですが、所有している個体は毎回30分ほどで音が鳴らなくなるのでACアダプタで動作してました。

サイズ的にもコンパクトなので、普段はしまっておいて使用するときだけ接続するような使い方ではお勧めできる機種だと思います。

パート数:32
最大同時発音数:64
音色数:1608
ドラムセット:63
音色マップ:4(SC-55/SC-88/SC-88Pro/SC-8820)

KZ S1 私的レビュー

KZ S1と一緒にKZ S1も購入していました。
こちらは音楽用というより、PCで使うことを目的に音質はそんなにこだわらないので低価格のKZ S1にしました。

ドライバは片側1BA+1DDの構成です。
同シリーズとされている1DDのKZ S1Dは低音が強いということで、KZ S1を選びました。

NUARL N6 Proと比較すると明らかに音質や接続の安定性は劣りますが、それ以前に低価格の機種をいつか試したときの物よりは結構良くいです。さすがにKZと言ったところでしょうか

音の傾向は典型的なやや低音よりのドンシャリ型で、KZ ZSTと似ているように感じました。
ただ聴こえる範囲内で超高音や超低音は伸びがあまり感じなく、この価格帯での限界と感じました。

ワイヤードイヤホンと同様にTWSも低価格の物の中では音質はKZのものが頭一つ飛び抜けていていると思います。

ウィザードリィの話

古いソフトを整理してたらWindows版のウィザードリィ リルガミン サーガを見つけました。

windows98の時代のゲームです。
Windows10で試したところインストールこそできたものの、起動時にd3drm.dllが無いと言われて起動できませんでした。古いDirextXからd3drm.dllを取り出して入れれば起動しそうな気もしますが、そこまで試してません。

初めてウィザードリィを遊んだのはMSXでした。遅い当時のPCの中でも特に遅いディスクアクセスで良くやったものです。
とりあえず1~3はMSXで、4はPC98で、5はSFCで一応はクリアまでやってます。特に5はやりこんでレベルも200以上になってたと思います。1~3は他機種で何度もやってました。6,7,8も一応やりましたが、最後までやらずに飽きてしまってます。やはりオールドタイプの方が好きです。
他のシリーズもGBの外伝シリーズやアンパイアシリーズ他GBAのの時代までのは機種に関わらず全て手を出しているような気がします。
その後のDSのものやエクスシリーズ以降は何か違う気がしてどうしてもやる気が起きませんでしたが、五つの試練や戦闘の監獄で久しぶりにまともに遊びました。戦闘の監獄は今でもやりたいと思いiOS版を買ってあります。

最近はバックライト液晶に換装したゲームボーイポケットで外伝シリーズを遊んます。やっぱりモノクロのゲームはゲームボーイカラーではなくて、モノクロの機種で遊んだほうがいいですね。色々なゲームボーイをバックライト液晶に交換して遊んでるので、こちらのこともそのうち書きたいと思います。

ウィザードリィ リルガミンサーガ

ウィザードリィ リルガミンサーガ

  • 発売日: 1998/02/26
  • メディア: Video Game

KZ AS12 私的レビュー

久しぶりにKZのイヤホンを買いました。
今回はKZ AS12です。

しばらくイヤホン沼が落ち着いて好きなものを数個だけ残して安定していたのですが、ゴールドの外見に惹かれて買ってしまいました。

ドライバは片側5BA+1DDの構成です。
箱出し後はゴチャゴチャした感じでしたが、一晩エージングしたら落ち着いてました。
やはりKZのドライバは一晩程度のエージング効果はあると思います。
今回もKZらしいドンシャリ傾向です。最近のKZは低音が強い印象で個人的にはあまり好きではなかったのですが、少し抑えられた感じです。それでも他の音域と比較すると強めに感じます。
高音も刺さりは感じません。だからと言ってこもることも無く今まで経験したKZの中でもクリアだと思います。

KZ AS16より後発のせいか、KZ AS16よりもドライバ数が少ないもの、より混ざりも無く音が分離されているように感じます。

気が付けば1年近くKZのイヤホンを買ってなかったのですが、全体的に品質の向上を実感しました。