Beispiel #1
0
        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);
        }
Beispiel #2
0
		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;
		}