예제 #1
0
  public void loadROM(ROM rom) {

    // System.out.println("Loading ROM.");

    if (!rom.isValid()) {
      // System.out.println("MMC2: Invalid ROM! Unable to load.");
      return;
    }

    // Get number of 16K banks:
    int num_16k_banks = rom.getRomBankCount() * 4;

    // Load PRG-ROM:
    loadRomBank(0, 0x8000);
    loadRomBank(num_16k_banks - 1, 0xC000);

    // Load CHR-ROM:
    loadCHRROM();

    // Load Battery RAM (if present):
    loadBatteryRam();

    // Do Reset-Interrupt:
    nes.getCpu().requestIrq(CPU.IRQ_RESET);
  }
예제 #2
0
  public void loadROM(ROM rom) {

    int num_8k_banks = rom.getRomBankCount() * 2;

    // Load PRG-ROM:
    load8kRomBank(0, 0x8000);
    load8kRomBank(1, 0xA000);
    load8kRomBank(num_8k_banks - 2, 0xC000);
    load8kRomBank(num_8k_banks - 1, 0xE000);

    // Load CHR-ROM:
    loadCHRROM();

    // Do Reset-Interrupt:
    nes.getCpu().requestIrq(CPU.IRQ_RESET);
  }
예제 #3
0
  public void loadROM(ROM rom) {

    // System.out.println("Loading ROM.");

    if (!rom.isValid()) {
      System.out.println("VRC2: Invalid ROM! Unable to load.");
      return;
    }

    // Get number of 8K banks:
    int num_8k_banks = rom.getRomBankCount() * 2;

    // Load PRG-ROM:
    load8kRomBank(0, 0x8000);
    load8kRomBank(1, 0xA000);
    load8kRomBank(num_8k_banks - 2, 0xC000);
    load8kRomBank(num_8k_banks - 1, 0xE000);

    // Load CHR-ROM:
    loadCHRROM();

    // Do Reset-Interrupt:
    nes.getCpu().requestIrq(CPU.IRQ_RESET);
  }