松下電子工業が1981年に発売した8ビットマイコンJR-100のエミュレータのバージョン2です。
- Java SE 12以上のJava実行環境
- JR-100実機
Releasesから最新版のZIPファイルをダウンロードします。ファイル名はjr100v2-2.x.x.zip
という形式です。
適当なフォルダ内にダウンロードしたzipファイルを解凍します。
JR-100実機からBASIC ROMデータを読み出して、JR-100エミュレータ用のPROG形式のファイルに格納します。読み出しにはJR-100 Emulator Libraryのfskloaderコマンドを使うのが便利です。コマンドの詳細はFSK Loaderのマニュアルを参照してください。ここではBASIC ROMの読み出し方を抜粋します。
JR-100とオーディオキャプチャデバイスを接続します。キャプチャ条件は以下を推奨します。
- サンプリング周波数: 22050Hz
- サンプリング ビット数: 16bit
- チャンネル数: 1 (モノラル)
JR-100 Emulator LibraryはPython 3.7以上の実行環境が必要です。あらかじめPC上にPython環境を構築してから、pipでパッケージをインストールします。これによりPythonパッケージと音声データ取り込み用のコマンドfskloader
がPC上にインストールされます。
$ pip install jr100emulib
PCでキャプチャ開始してから、JR-100上でBASIC ROM領域($E000〜$FFFF)全てをマシン語データとしてセーブするコマンドを実行します。MSAVEで指定するプログラム名(この例ではJR100ROM
)は任意の文字列で構いません。
MSAVE "JR100ROM", $E000, $FFFF
セーブが完了したらキャプチャを停止し、音声データを以下の内容でファイルに保存します。現時点でFSK LoaderはMP3には未対応です。
- ファイル名: jr100rom.wav (任意で良いです)
- ファイル形式: WAV形式 (必須)
fskloader
コマンドに先ほど保存したWAVファイルを指定し、jr100rom.prg
というファイル名でPROG形式のファイルに保存してください。
$ fskloader jr100rom.wav -o jr100rom.prg
あらかじめ用意しておいたJR-100のBASIC ROMファイルをjr100rom.prg
というファイル名で、ZIPファイルを解凍したフォルダ直下に格納します。
jr100v2 -+- external -+- jinput.jar # ゲームパッド用ライブラリ
| +- README-jinput.md # jinputのREADME
| +- nativelib -+- jinput-dx8.dll # ゲームパッド用ライブラリ(ネイティブ)
| +- jinput-dx3_64.dll
| +- jinput-raw_64.dll
| +- libjinput-linux.so
| +- libjinput-linux64.so
| +- libjinput-osx.jnilib
+- jr100v2.jar # エミュレータ本体
+- jr100v2.sh # エミュレータ起動用シェルスクリプト(macOS, Linux)
+- jr100v2.vbs # エミュレータ起動用シェルスクリプト(Windows)
+- jr100rom.prg # JR-100 BASIC ROMデータ
+- manual.jar # エミュレータ画面から呼び出すマニュアル
jar100v2.jar
を実行してください。
$ java -Djava.library.path=./external/nativelib -jar jr100v2.jar
なおOS毎に同梱のシェルスクリプトを実行するのが便利です。
jr100v2.vbs
(Windows)jr100v2.sh
(macOS, Linux)
解凍したフォルダを丸ごと削除してください。このフォルダ以外の場所にファイルを作成することはありません。
JR-100 Emulator version 2 is licensed under the MIT License. See the LICENSE file for details.
JR-100 Emulator version 2はMITライセンスの元にライセンスされています。詳細はLICENSEを参照してください。
Licensed under BSD License, copyright is attributed in each source file committed.
ゲームパッドからの入力を処理するためにJInputのJARファイル及びDLLファイルを取り込んでいます。