操作の目安: 1〜8=シーン再生 / Ctrl+数字=グループ選択(8×8=64) / W+1〜4=表示ページ / R+数字=自動シーケンス / Shift→W→R=LOCK。Shift/Ctrl/W/Rは先に押すと点灯(arm)し、続く数字/矢印で確定する。
✅ 実機ファームウェア(Mr_Dmx_v01)のソースコード(src/lcd.c・src/lcd.h・src/scene_data.c)を直接読み、座標・書式・フォントアセットを移植しました。
写真からの目視推測ではなく、ROW1_Y=10等の実座標マクロと print_version/pr_auto_sw/print_key_hexdata/print_Radd/print_add_sub/print_scene_no_sub の各関数のsprintf書式をそのまま使用しています。
5×7ドット(font5x7.c、HEXグリッド/キー値/AUTO表示用)と11×14ドット(font_mono9.c、バージョン/アドレス表示用)は実機と同一のビットマップです。
RGB565→RGB888変換は実機LCDコントローラのビット複製方式(r8=(r5<<3)|(r5>>2)等)をそのまま使用。
ステータス行の [XXXX](Radd = make_Radd(): (group×8+scene)×0x100、上限0x7F00)と key_d(直近キーコード)はその場で算出しており、固定文字列ではありません。
行1右の <AUTO-ON>/<AUTO-OFF>/<DMX-IN>/<Stop> 表示も pr_auto_sw() の優先順位(DMXスルー>停止>AUTO on/off)をそのまま実装。
⚠️ 近似・未実装の箇所: ①シーンの実際の色は実機EEPROM内の実データに依存するため、代表パレットで近似 ②グループ7-8の手続き的パターン(レインボー/カーテン等 test_groups.c)は未移植 ③行3右(シーン番号)は実ソースでは12ptフォント(FreeMonoBold12pt7b)だが、共有シミュレータコアに12pt相当の移植フォントが無いため9pt相当で代用 ④行1右のAUTO表示は実座標(x=200)のままだと画面右端をわずかに超える場合がある(実機TFT_eSPIのフォントサイズ2指定と、本シミュレータのfont5x7ダブルスケール近似との差によるもの)。
sim_layout.h の実測定数(GRAPH_AREA_X=18、BAR_GRAPH_Y=76 等)をそのまま使用この方式は、実機の液晶表示をPC上で100%再現する開発用シミュレーター基盤(LcdSimulator)と共通の考え方です。開発の現在地は開発ステータスをご覧ください。
🤝 AI協働でどう作ったか: 座標・フォント・状態遷移のロジックはAIが実機ファームウェアのソースコードを直接読んで移植しました。写真を見ながらの目分量再現ではなく、実装そのものから起こしているのがこのシリーズの作り方です。