public override bool Configure(NES.EDetectionOrigin origin) { //analyze board type switch (Cart.board_type) { case "MAPPER005": Cart.wram_size = 64; break; case "NES-ELROM": //Castlevania 3 - Dracula's Curse (U) case "HVC-ELROM": AssertPrg(128, 256); AssertChr(128); break; case "NES-EKROM": //Gemfire (U) AssertPrg(256); AssertChr(256); break; case "HVC-EKROM": break; case "NES-ETROM": case "HVC-ETROM": break; case "NES-EWROM": case "HVC-EWROM": break; default: return(false); } prg_bank_mask_8k = Cart.prg_size / 8 - 1; if (Cart.chr_size > 0) { chr_bank_mask_1k = Cart.chr_size - 1; } else { chr_bank_mask_1k = Cart.vram_size - 1; } PoweronState(); if (NES.apu != null) { audio = new MMC5Audio(NES.apu.ExternalQueue, e => { irq_audio = e; SyncIRQ(); }); } return(true); }
public override bool Configure(EDetectionOrigin origin) { //analyze board type switch (Cart.BoardType) { case "MAPPER005": Cart.WramSize = 64; break; case "NES-ELROM": //Castlevania 3 - Dracula's Curse (U) case "HVC-ELROM": AssertPrg(128, 256); AssertChr(128); break; case "NES-EKROM": //Gemfire (U) AssertPrg(256); AssertChr(256); break; case "HVC-EKROM": break; case "NES-ETROM": case "HVC-ETROM": break; case "NES-EWROM": case "HVC-EWROM": break; default: return false; } prg_bank_mask_8k = Cart.PrgSize / 8 - 1; if (Cart.ChrSize > 0) chr_bank_mask_1k = Cart.ChrSize - 1; else chr_bank_mask_1k = Cart.VramSize - 1; PoweronState(); if (NES.apu != null) audio = new MMC5Audio(NES.apu.ExternalQueue, e => { irq_audio = e; SyncIRQ(); }); return true; }