--- nono/lib/config.cpp 2026/04/29 17:05:35 1.1.1.17 +++ nono/lib/config.cpp 2026/04/29 17:05:39 1.1.1.18 @@ -31,8 +31,8 @@ Config::Config() Add("cgrom-image", "", VMCap::X68030); // VM 内の時計を同期する時間軸。 - // [ real, virtual ] - Add("clock-sync", "real"); + // "real" か "virtual"。初期値は各 VM クラスで設定している。 + Add("clock-sync"); // デバッガコンソール Add("debugger-driver", "none"); @@ -222,9 +222,6 @@ Config::Config() Add(string_format("spc0-id%u-image", id), scsicap); // エミュレータ的に書き込みを禁止するか Add(string_format("spc0-id%u-writeignore", id), 0, scsicap); - // エミュレータ的に書き込みを禁止するか - // (後方互換、十分不要になった頃に削除する) - Add(string_format("spc0-id%u-writeprotect", id), 0, scsicap); // シークタイム [msec] Add(string_format("spc0-id%u-seektime", id), 0, scsicap); } @@ -233,13 +230,19 @@ Config::Config() Add("sram-sync-ramsize", 1, VMCap::X68030); // virtio 設定。 + auto viocap = VMCap::VIRT68K; for (int id = 0; id < 8; id++) { - auto viocap = VMCap::VIRT68K; // イメージパス Add(string_format("virtio-block%u-image", id), viocap); // エミュレータ的に書き込みを禁止するか Add(string_format("virtio-block%u-writeignore", id), 0, viocap); } + for (int id = 0; id < 8; id++) { + // 種別とイメージパス + Add(string_format("virtio-scsi-id%u-image", id), viocap); + // エミュレータ的に書き込みを禁止するか + Add(string_format("virtio-scsi-id%u-writeignore", id), 0, viocap); + } // Windrv パス。 Add("windrv-path", "", VMCap::X68030); @@ -381,9 +384,11 @@ Config::Update(const std::string& line, } // 更新1行分の共通処理。 -// キーが見付からない場合、コマンドラインからならエラーとし、 -// それ以外からの場合は警告のみで無視する。 -// エラーが起きたらエラーメッセージを表示して false を返す。 +// キーが見付からない場合は from によって動作が異なる。 +// o 共通設定ファイルでなら、何もせず true を返す。 +// o VM 設定ファイルでなら、エラーメッセージを表示するが true を返す。 +// o コマンドラインでなら、エラーメッセージを表示して false を返す。 +// 戻り値 false は実行中止を示す。 bool Config::UpdateLine(const std::string& line, ConfigItem::from_t from, const std::string& where) @@ -583,7 +588,7 @@ Config::Fix() assert(fixed == false); // ここで、この機種に不要な変数を削除する。 - // が、その前にその変数がユーザから指定されていればエラーにする。 + // その変数がユーザから指定されていればエラーにする。 for (auto it = list.begin(); it != list.end(); ) { ConfigItem& item = *it; VMCap vmcap = item.GetVMCap();