--- nono/vm/vm_luna.cpp 2026/04/29 17:05:25 1.1.1.13 +++ nono/vm/vm_luna.cpp 2026/04/29 17:05:34 1.1.1.15 @@ -13,15 +13,14 @@ #include "dipsw.h" #include "lcd.h" #include "lunakbd.h" -#include "mainapp.h" #include "mainbus_luna.h" #include "mpu64180.h" #include "mpu680x0.h" #include "mpu88xx0.h" -#include "msxdos.h" #include "nmi.h" #include "power.h" #include "renderer.h" +#include "ssg.h" #include "xpbus.h" // @@ -61,6 +60,8 @@ VM_LUNA1::VM_LUNA1() : inherited("LUNA-I") { // 機種固有パラメータ + // MPU 種別。 + gConfig->SetDefault("mpu-type", "68030"); // MPU クロックの初期値は機種ごとに異なる。単位は MHz gConfig->SetDefault("mpu-clock", 20); // RAM 初期値は MAX にしておく @@ -71,8 +72,15 @@ VM_LUNA1::VM_LUNA1() gConfig->Add("!sysclk-freq", 60); // デバイス - NEWDV(MPU, new MPU680x0Device()); + NEWDV(MPU, NewMPU680x0Device()); NEWDV(Mainbus, new Luna1Mainbus()); + NEWDV(SSG, new SSGDevice()); + + // バーストアクセスたぶんあり + auto mpu680x0 = GetMPU680x0Device(pMPU.get()); + if (mpu680x0) { + mpu680x0->EnableBurstAccess(true); + } } // デストラクタ @@ -102,6 +110,8 @@ VM_LUNA88K::VM_LUNA88K() // デバイス (順序に注意) NEWDV(MPU, new MPU88xx0Device()); NEWDV(Mainbus, new Luna88kMainbus()); + + // バーストアクセスあり (m88k では常に有効) } // デストラクタ