電子趣味の部屋

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

今でもできるゲームボーイの開発メモ 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 AS12と一緒にKZ S1も購入していました。
こちらは音楽用というより、PCで使うことを目的に音質はそんなにこだわらないので低価格のKZ S1にしました。

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

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

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

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

KZ AS12 私的レビュー

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

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

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

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

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

FPGAで遊ぶ 基本編

今回は比較的入手しやすいDE0-CV 開発キットを使用して解説します。
これは INTEL (ALTERA) のFPGAのCyclone Vを搭載した入門用FPGA開発キットで、ボタンやVGA出力等の豊富なI/Oが初めから搭載されています。

ハードウェア記述言語はVerilog HDLを使用します。
今回は機種依存の書き方はしないので、基本的にXILINXや他のFPGAでもそのまま使用できます。
INTEL (ALTERA) のFPGAは開発環境としてQuartusを使用します。ここではQuartusの使用方法やピンの配置方法は説明をしません。

単純な回路の例

まずはVerilog HDLのソース

module sample01(LED, KEY);

    input [3:0] KEY;
    output [3:0] LED;
	 
    assign LED[3] = KEY[3];
    assign LED[2] = KEY[2];
    assign LED[1] = KEY[1];
    assign LED[0] = KEY[0];

endmodule

このソースの意味はKEYを入力に設定、LEDを出力に設定、KEYとLEDをそれぞれ接続しています。

ソフトウェアのプログラム言語に慣れていると「LED[3] = KEY[3]」を実行した後に「LED[2] = KEY[2]」が実行されてるように思いがちですが、このソースの場合はLEDとKEYをそれぞれ論理的に配線をして、リアルタイムに電気が流れます。

DE0-CVの場合のピン配置を下の様に設定してください。

Node Name Location
KEY[3] PIN_M6
KEY[2] PIN_M7
KEY[1] PIN_W9
KEY[0] PIN_U7
LED[3] PIN_Y3
LED[2] PIN_W2
LED[1] PIN_AA1
LED[0] PIN_AA2

これをDE0-CVで実行した場合は4個のLEDが点灯されていて、タクトスイッチを押すと対応するLEDが消えると思います。
タクトスイッチを押してLEDが消えるのは、タクトスイッチがプルアップされているからです。普段は電気が流れていて、ボタンを押すと電気がGNDに流れるのでOFFになります。

ソフトウェアで処理する場合はクロック等を上から順番にトリガーにしてタクトスイッチの状態を順番にLEDに渡すようなイメージですが、ハードウェアで処理する場合は単なる配線なので常に同時に電気が流れてリアルタイムで同時に処理ができます。例えばGPU等の様にソフトウェアで処理できることもあえて専用のハードを使う意味が分かりますね。

YAMAHA MU2000

前にMU1000を持っていることを書きましたが、スマートメディアがあれば単体でMIDIを演奏できるのに憧れて、MU2000を入手してしまいました。

MU1000入手当時は少し安いからと思って選んだのですが、実はずっとモヤモヤしてました。
オークションで15,000円程です。MU1000はそのままオークションに放出して10,000円程で落札されました。手数料と送料を考慮すると8,000円くらいの差額でした。
メディアプレイヤー機能とサンプリング機能が追加されている以外はMU1000を同じです。

MU1000の時と同様にExtended Editionにアップグレードしたので、GSモード時にはGSマークが表示されます。
Windows10 64bitでもMU2000 Extended Edition R1 アップデータ for Windowsでアップデートできました。(自己責任でお願いします。)

MU2000

パート数:64
最大同時発音数:128
音色数:1396
ドラムセット:58
エフェクト:リバーブ18タイプ、コーラス20タイプ、バリエーション97タイプ、インサーション1〜4各97タイプ、EQ4タイプ

作りながら覚える 3日で作曲入門

作りながら覚える 3日で作曲入門