void nes_action53_device::update_prg() { uint8_t prg_lo, prg_hi, helper; uint8_t out = (m_reg[3] & 0x3f) << 1; // Outer PRG reg uint8_t size = (m_reg[2] & 0x30) >> 4; // Game size uint8_t mask = (1 << (size + 1)) - 1; // Bits to be taken from PRG reg if (!BIT(m_reg[2], 3)) { helper = (out & ~mask) | ((m_reg[1] << 1) & mask); //32K mode prg_lo = (helper & 0xfe); prg_hi = (helper | 0x01); } else { helper = (out & ~mask) | (m_reg[1] & mask); if (BIT(m_reg[2], 2)) { //16K mode with fixed HI prg_lo = helper; prg_hi = (out | 0x01); } else { //16K mode with fixed LO prg_lo = (out & 0xfe); prg_hi = helper; } } // printf("banks : 0x%2X - 0x%2X\n", prg_lo, prg_hi); prg16_89ab(prg_lo); prg16_cdef(prg_hi); }
void nes_dreamtech_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(8); chr8(0, m_chr_source); }
void nes_exrom_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(m_prg_chunks - 2); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_count = 0; m_irq_status = 0; m_irq_enable = 0; m_mult1 = m_mult2 = 0; m_mmc5_scanline = 0; m_vrom_page_a = m_vrom_page_b = 0; m_floodtile = m_floodattr = 0; m_prg_mode = 3; m_chr_mode = 0; m_wram_base = 0; m_wram_protect_1 = 0; m_wram_protect_2 = 0; m_mmc5_last_chr_a = 1; m_high_chr = 0; m_split_scr = 0; m_split_ctrl = 0; m_split_yst = 0; m_split_bank = 0; memset(m_vrom_bank, 0x3ff, ARRAY_LENGTH(m_vrom_bank)); m_prg_regs[0] = 0xfc; m_prg_regs[1] = 0xfd; m_prg_regs[2] = 0xfe; m_prg_regs[3] = 0xff; }
void nes_sachen_tca01_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(1); chr8(0, m_chr_source); }
void nes_holydivr_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); }
void nes_jf17_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_latch = 0; }
void nes_karaokestudio_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef((m_prg_chunks - 1) ^ 0x08); chr8(0, m_chr_source); m_exp_active = 0; }
void nes_sunsoft_2_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); if (m_pcb_ctrl_mirror) set_nt_mirroring(PPU_MIRROR_LOW); }
void nes_subor1_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(0x07); chr8(0, m_chr_source); memset(m_reg, 0, sizeof(m_reg)); }
void nes_fukutake_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(0); chr8(0, m_chr_source); m_latch = 0; }
void nes_konami_vrc1_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); memset(m_mmc_vrom_bank, 0, sizeof(m_mmc_vrom_bank)); }
void nes_waixing_ffv_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(0x1f); chr8(0, m_chr_source); m_reg[0] = m_reg[1] = 0; }
void nes_btl_dn_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_count = 0; }
void nes_racermate_device::pcb_reset() { // m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr4_0(0, CHRRAM); chr4_4(0, CHRRAM); m_latch = 0; }
void nes_daou306_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(m_prg_chunks - 2); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); set_nt_mirroring(PPU_MIRROR_LOW); memset(m_reg, 0, sizeof(m_reg)); }
void nes_bf9096_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; chr8(0, m_chr_source); m_latch = 0x00; m_bank_base = 0x0c; prg16_89ab(m_bank_base | m_latch); prg16_cdef(m_bank_base | 3); }
void nes_sunsoft_3_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_toggle = 0; m_irq_count = 0; m_irq_enable = 0; }
void nes_namcot3425_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_latch = 0; memset(m_reg, 0, sizeof(m_reg)); }
void nes_futuremedia_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_clear = 0; m_irq_enable = 0; m_irq_count = m_irq_count_latch = 0; }
void nes_fxrom_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_reg[0] = m_reg[2] = 0; m_reg[1] = m_reg[3] = 0; m_latch1 = m_latch2 = 0xfe; }
void nes_holydivr_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("holy diver write_h, offset: %04x, data: %02x\n", offset, data)); // this pcb is subject to bus conflict data = account_bus_conflict(offset, data); set_nt_mirroring(BIT(data, 3) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ); chr8(data >> 4, CHRROM); prg16_89ab(data); }
void nes_tc0190fmc_pal16r4_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_enable = 0; m_irq_count = 0; m_irq_count_latch = 0; }
void nes_namcot340_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); set_nt_mirroring(PPU_MIRROR_VERT); m_irq_enable = 0; m_irq_count = 0; }
void nes_lz93d50_24c01_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_enable = 0; m_irq_count = 0; m_i2c_dir = 0; }
void nes_ks7017_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(2); chr8(0, m_chr_source); m_latch = 0; m_irq_enable = 0; m_irq_count = 0; m_irq_status = 0; }
void nes_sunsoft_4_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_reg = 0; m_latch1 = 0; m_latch2 = 0; m_wram_enable = 0; }
void nes_konami_vrc3_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_irq_mode = 0; m_irq_enable = 0; m_irq_enable_latch = 0; m_irq_count = 0; m_irq_count_latch = 0; }
void nes_cityfight_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); memset(m_mmc_vrom_bank, 0, sizeof(m_mmc_vrom_bank)); m_prg_reg = 0; m_prg_mode = 0; m_irq_enable = 0; m_irq_count = 0; }
void nes_nanjing_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(m_prg_chunks - 2); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_count = 0xff; m_latch1 = 0; m_latch2 = 0; m_reg[0] = 0xff; m_reg[1] = 0; }
void nes_ks7032_device::pcb_reset() { m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; prg16_89ab(0); prg16_cdef(m_prg_chunks - 1); chr8(0, m_chr_source); m_latch = 0; m_irq_enable = 0; m_irq_count = 0; memset(m_reg, 0, sizeof(m_reg)); prg_update(); }