# NOTE: XCode CLI Tools required
# install SDL2
brew install sdl2
# download repository
git clone https://github.com/suzukiplan/vgszero
# move to this dir
cd vgszero/src/sdl2
# build
make
# execute
./vgs0 ../../example/01_hello/game.pkg
# install GNU Make, GCC and other
sudo apt install build-essential
# install SDL2
sudo apt-get install libsdl2-dev
# install ALSA
sudo apt-get install libasound2
sudo apt-get install libasound2-dev
# download repository
git clone https://github.com/suzukiplan/vgszero
# move to this dir
cd vgszero/src/sdl2
# build
make
# execute
./vgs0 ../../example/01_hello/game.pkg
usage: vgs0 /path/to/game.pkg ....... Specify game package to be used
[-g { None .............. GPU: Do not use
| OpenGL ............ GPU: OpenGL <default>
| Vulkan ............ GPU: Vulkan
| Metal ............. GPU: Metal
}]
[-f] .................... Full Screen Mode
[-d] .................... Enable Debug Mode (NOP break)
デバッグモード (-d
) で実行すると NOP
命令を検出したタイミングでレジスタ情報をダンプしてコマンド入力待ち状態になります。
2024.05.27 13:17:27 NOP at 0x0021
A :0x01 F :0xA0, B :0x00, C :0x00, D :0x81, E :0x96, H :0x00, L :0x6F
A':0x00 F':0x00, B':0x00, C':0x00, D':0x00, E':0x00, H':0x00, L':0x00
PC:0x0021, SP:0xFFFF, IX:0x0000, IY:0x0000, I :0x00, R :0x5C
ROM BANK: 0x00, 0x01, 0x02, 0x03
RAM BANK: 0x00
SCANLINE: V=200, H=174
SCROLL: BGX=0, BGY=0, FGX=0, FGY=0
>
コマンドは大文字と小文字を区別しません。
M アドレス サイズ
を実行することでメモリの内容をダンプします- アドレスは 16 進数で指定してください(デフォルト: 0xC000)
- サイズは 10 進数で指定してください(デフォルト: 256)
m8170 64
Dump from 0x8170 (64 bytes)
ADDR +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F ASCII
8170: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
8180: 00 00 00 00 00 00 00 00 - 00 00 48 45 4C 4C 4F 2C ..........HELLO,
8190: 57 4F 52 4C 44 21 00 00 - 00 00 00 00 00 00 00 00 WORLD!..........
81A0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
D
を入力するとディスアセンブルの 有効 or 無効 をトグルすることができます- ディスアセンブルを有効にするとプログラムの実行速度が著しく遅くなるため注意してください
- ディスアセンブルしたい極小範囲に
NOP
を仕掛けて区間的に命令の流れをデバッグすることに指摘しています
D
E
を入力するとプロセスを終了します。
E
H
または ?
を入力するとコマンドのヘルプを表示します。
H
プログラムを再開します。