コード例 #1
0
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();
}
コード例 #2
0
ファイル: supergameboy.cpp プロジェクト: ben401/OpenEmu
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();
}