void SuperGameBoy::power() { unsigned frequency = (cartridge.supergameboy_version() == Cartridge::SuperGameBoyVersion::Version1 ? system.cpu_frequency() / 10 : 2097152); create(SuperGameBoy::Enter, frequency); audio.coprocessor_enable(true); audio.coprocessor_frequency(cartridge.supergameboy_version() == Cartridge::SuperGameBoyVersion::Version1 ? 2147727.0 : 2097152.0); sgb_rom(memory::gbrom.data(), memory::gbrom.size()); sgb_ram(memory::gbram.data(), memory::gbram.size()); sgb_rtc(memory::gbrtc.data(), memory::gbrtc.size()); bool version = (cartridge.supergameboy_version() == Cartridge::SuperGameBoyVersion::Version1) ? 0 : 1; if(sgb_init) sgb_init(version); if(sgb_power) sgb_power(); }
void SuperGameBoy::power() { audio.coprocessor_enable(true); audio.coprocessor_frequency(2147727.2); bus.map(Bus::MapDirect, 0x00, 0x3f, 0x6000, 0x7fff, *this); bus.map(Bus::MapDirect, 0x80, 0xbf, 0x6000, 0x7fff, *this); sgb_rom(memory::gbrom.data(), memory::gbrom.size() == -1U ? 0 : memory::gbrom.size()); sgb_ram(memory::gbram.data(), memory::gbram.size() == -1U ? 0 : memory::gbram.size()); sgb_rtc(memory::gbrtc.data(), memory::gbrtc.size() == -1U ? 0 : memory::gbrtc.size()); //determine whether to use SGB1 or SGB2 mode based on the cartridge title (look for the '2') if(sgb_init) sgb_init(memory::cartrom[0x7fcd] != 0x32 ? SuperGameBoy1 : SuperGameBoy2); if(sgb_power) sgb_power(); }