Skip to content

Latest commit

 

History

History

msx1-m5stamps3

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

micro MSX2+ for M5StampS3

./m5stamps3.jpg

  • micro-msx2p を M5StampS3 + ILI9341 LCD での動作をサポートしたものです
  • M5StampS3 の性能上の都合で MSX2/2+ の再現度の高いエミュレーションは難しいと判断したため MSX1 コアを使っています

Rquired Hardware

  • M5StampS3
  • LCD (ILI9341)
    • Display Resolution: 240x320 (QVGA)
    • Touch Feature: Not Required
  • DAC (UDA1334A)
  • Joypad (GPIO+GND直結)
  • Keyboard (かんたんUSBホスト)

References

Pin Assign

LCD + M5StampS3

LCD (ILI9341) M5StampS3 用途
VCC 3V3 電源給電
GND GND グランド
CS 1 (GPIO) LCD チップ選択有効化の信号
RESET EN リセット信号
DC 3 (GPIO) データ/レジスタ選択の信号
SDI (MOSI) 13 SDA I2C (Stamp→LCD方向のデータ送信)
SCK 15 SCL I2C (クロック同期)
LED 3V3 バックライト
SDO (MISO) 配線なし LCD→Stamp方向のデータ送信は不要なため
T_CS 配線なし タッチ機能は利用しないため
T_DIN 配線なし タッチ機能は利用しないため
T_DO 配線なし タッチ機能は利用しないため
T_IRQ 配線なし タッチ機能は利用しないため

DAC + M5StampS3

DAC (UDA1334A) M5StampS3 用途
VIN 5V 電源給電
GND GND グランド
WSEL 9 I2S (チャネルセレクタ)
DIN 7 I2S (データ送信)
BCLK 5 I2S (クロック同期)

Joypad + M5StampS3

Joypad M5StampS3 用途
GND GND グランド (※各ボタンのGNDを全て同じGNDに接続)
Start 10 スタートボタン (特殊キー割り当て)
Select 11 セレクトボタン (特殊キー割り当て)
A 12 Aボタン (トリガー1)
B 14 Bボタン (トリガー2)
Left 39 左キー
Right 40 右キー
Up 41 上キー
Down 42 下キー

Keyboard + M5StampS3

  • キーボードは (かんたんUSBホスト) 経由で USB キーボードを接続してご利用ください
  • 現状 Mac 用のキー割当になっています
  • 最後に受信したイベント(AABCC形式)を画面右下にプレビュー表示されるので、Mac 用の USB キーボード以外を利用したい場合、app.cppKantanUsbKeyboard::init メソッドのキーマップ(mapK, mapM)初期化処理を使いたいキーボードに合わせて適宜修正して利用する想定です
Easy USB Host M5StampS3 用途
GND GND グランド
5V 5V かんたん USB ホストの電源
VBUS 5V USB キーボードの電源
TX1 44 (U0RX) UART通信(Serial)
P3.3 - ModeGND - イベントモードに設定

Build

Support OS

  • macOS
  • Linux

ビルド以外にも色々な事前処理を行っており(詳細は Makefile を参照)、その関係で基本的に macOS または Linux 系 OS でのコマンドラインビルドのみサポート します。Windows で試したい場合は WSL2 等をご利用ください。

Middleware

Playform I/O は Visual Studio Code 経由で用いる方式が一般的には多いですが、本プロジェクトでは CLI (pioコマンド) のみ用いるので Visual Studio Code や Plugin のインストールは不要です。

How to Build

make

上記コマンドを実行すると次の手続きを実行します:

  1. MSX1 エミュレータコアモジュール src1include に展開
  2. bios 以下の ROM ファイルから src 以下に rom_xxx.c を自動生成
  3. src/rom_xxx.c から include 以下に roms.hpp を自動生成
  4. pio run -t upload で M5Stack 向けのビルドとアップロード(ファームウェア書き込み)

Build only

make build

ステップ 4 の手続きが pio run -t uploadpio run に変わります。

Replace ROM file

  1. bios/game.rom を更新
  2. src/rom_game.c を削除
  3. メガロムの場合 src/app.cppsetup 関数で実行している MSX1::loadRomMSX1_ROM_TYPE_ を対象のメガロム種別に変更

License

本プログラムのライセンスは MIT とします。

また、本プログラムには以下のソフトウェアに依存しているため、再配布時にはそれぞれのライセンス条項の遵守をお願いいたします。