summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
author 0kmg <9137159+0kmg@users.noreply.github.com>2021-10-07 04:06:31 -0800
committer GitHub <noreply@github.com>2021-10-07 08:06:31 -0400
commit9cc814751eddbbcb5e614156030b51eac53ab568 (patch)
treedf256837912589004a0afd64fb1829b10362d76c /src/devices
parentaf18af07e920f39803027ad06e0bface94bd7bd4 (diff)
bus/nes: Set multicart bank size in softlist when appropriate. (#8644)
New working software list additions (nes.xml) ----------------------------------- 1996 Super HiK 4 in 1 (JY-004) [NewRisingSun, taizou] 1998 Super Game 8 in 1 (JY-111) [Consolethinks, NewRisingSun] 1997 8 in 1 (JY-112) [Consolethinks, NewRisingSun]
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/bus/nes/mmc3_clones.cpp59
-rw-r--r--src/devices/bus/nes/mmc3_clones.h42
-rw-r--r--src/devices/bus/nes/nes_carts.cpp6
-rw-r--r--src/devices/bus/nes/nes_ines.hxx59
-rw-r--r--src/devices/bus/nes/nes_pcb.hxx28
-rw-r--r--src/devices/bus/nes/nes_slot.cpp3
-rw-r--r--src/devices/bus/nes/nes_slot.h8
7 files changed, 103 insertions, 102 deletions
diff --git a/src/devices/bus/nes/mmc3_clones.cpp b/src/devices/bus/nes/mmc3_clones.cpp
index b4282eacd06..aba487fccba 100644
--- a/src/devices/bus/nes/mmc3_clones.cpp
+++ b/src/devices/bus/nes/mmc3_clones.cpp
@@ -53,13 +53,11 @@ DEFINE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device, "nes_shero",
DEFINE_DEVICE_TYPE(NES_A9746, nes_a9746_device, "nes_bmc_a9746", "NES Cart A-9746 PCB")
DEFINE_DEVICE_TYPE(NES_A88S1, nes_a88s1_device, "nes_a88s1", "NES Cart BMC A88S-1 PCB")
-DEFINE_DEVICE_TYPE(NES_FCGJ8IN1, nes_fcgj8in1_device, "nes_fcgj8in1", "NES Cart BMC FC Genjin 8 in 1 PCB")
+DEFINE_DEVICE_TYPE(NES_BMC_EL86XC, nes_bmc_el86xc_device, "nes_bmc_el86xc", "NES Cart BMC EL860947C/EL861121C PCB")
DEFINE_DEVICE_TYPE(NES_FK23C, nes_fk23c_device, "nes_fk23c", "NES Cart FK23C PCB")
DEFINE_DEVICE_TYPE(NES_FK23CA, nes_fk23ca_device, "nes_fk23ca", "NES Cart FK23CA PCB")
DEFINE_DEVICE_TYPE(NES_NT639, nes_nt639_device, "nes_nt639", "NES Cart NT-639 PCB")
-DEFINE_DEVICE_TYPE(NES_RESETTXROM0, nes_resettxrom0_device, "nes_resettxrom0", "NES Cart BMC RESET-TXROM 128K/128K PCB")
-DEFINE_DEVICE_TYPE(NES_RESETTXROM1, nes_resettxrom1_device, "nes_resettxrom1", "NES Cart BMC RESET-TXROM 256K/128K PCB")
-DEFINE_DEVICE_TYPE(NES_RESETTXROM2, nes_resettxrom2_device, "nes_resettxrom2", "NES Cart BMC RESET-TXROM 128K/256K PCB")
+DEFINE_DEVICE_TYPE(NES_RESETTXROM, nes_resettxrom_device, "nes_resettxrom", "NES Cart BMC RESET-TXROM PCB")
DEFINE_DEVICE_TYPE(NES_S24IN1SC03, nes_s24in1sc03_device, "nes_s24in1c03", "NES Cart Super 24 in 1 SC-03 PCB")
DEFINE_DEVICE_TYPE(NES_TECHLINE9IN1, nes_tech9in1_device, "nes_tech9in1", "NES Cart Techline 9 in 1 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_8IN1, nes_bmc_8in1_device, "nes_bmc_8in1", "NES Cart BMC GRM070 8 in 1 PCB")
@@ -257,8 +255,8 @@ nes_a88s1_device::nes_a88s1_device(const machine_config &mconfig, const char *ta
{
}
-nes_fcgj8in1_device::nes_fcgj8in1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : nes_txrom_device(mconfig, NES_FCGJ8IN1, tag, owner, clock)
+nes_bmc_el86xc_device::nes_bmc_el86xc_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : nes_txrom_device(mconfig, NES_BMC_EL86XC, tag, owner, clock)
{
}
@@ -282,23 +280,8 @@ nes_nt639_device::nes_nt639_device(const machine_config &mconfig, const char *ta
{
}
-nes_resettxrom0_device::nes_resettxrom0_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prg_shift, int chr_shift)
- : nes_txrom_device(mconfig, type, tag, owner, clock), m_count(-1), m_prg_shift(prg_shift), m_chr_shift(chr_shift)
-{
-}
-
-nes_resettxrom0_device::nes_resettxrom0_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : nes_resettxrom0_device(mconfig, NES_RESETTXROM0, tag, owner, clock, 4, 7)
-{
-}
-
-nes_resettxrom1_device::nes_resettxrom1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : nes_resettxrom0_device(mconfig, NES_RESETTXROM1, tag, owner, clock, 5, 7)
-{
-}
-
-nes_resettxrom2_device::nes_resettxrom2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : nes_resettxrom0_device(mconfig, NES_RESETTXROM2, tag, owner, clock, 4, 8)
+nes_resettxrom_device::nes_resettxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : nes_txrom_device(mconfig, NES_RESETTXROM, tag, owner, clock), m_count(-1)
{
}
@@ -620,10 +603,10 @@ void nes_a88s1_device::pcb_reset()
update_banks();
}
-void nes_fcgj8in1_device::pcb_reset()
+void nes_bmc_el86xc_device::pcb_reset()
{
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
- mmc3_common_initialize(0x1f, 0x7f, 0);
+ mmc3_common_initialize((m_outer_prg_size >> 3) - 1, 0x7f, 0);
}
void nes_fk23c_device::device_start()
@@ -666,20 +649,20 @@ void nes_nt639_device::pcb_reset()
}
// These reset-based PCBs are emulated here with no additional handlers
-void nes_resettxrom0_device::device_start()
+void nes_resettxrom_device::device_start()
{
mmc3_start();
save_item(NAME(m_count));
}
-void nes_resettxrom0_device::pcb_reset()
+void nes_resettxrom_device::pcb_reset()
{
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
- mmc3_common_initialize((1 << m_prg_shift) - 1, (1 << m_chr_shift) - 1, 0);
+ mmc3_common_initialize((m_outer_prg_size >> 3) - 1, m_outer_chr_size - 1, 0);
m_count = (m_count + 1) & 3;
- m_prg_base = m_count << m_prg_shift;
- m_chr_base = m_count << m_chr_shift;
+ m_prg_base = m_count << (31 - count_leading_zeros_32(m_outer_prg_size) - 3); // << std::countr_zero(m_outer_prg_size) - 3; in C++20
+ m_chr_base = m_count << (31 - count_leading_zeros_32(m_outer_chr_size)); // << std::countr_zero(m_outer_chr_size); in C++20
set_prg(m_prg_base, m_prg_mask);
set_chr(m_chr_source, m_chr_base, m_chr_mask);
}
@@ -2759,27 +2742,27 @@ void nes_bmc_f600_device::chr_cb(int start, int bank, int source)
/*-------------------------------------------------
- BMC-FCGENJIN-8IN1
+ BMC EL860947C and EL861121C boards
- Unknown Multigame Bootleg Board
- Games: 8 in 1 (JY-119)
+ Games: 8 in 1 (JY-111, JY-112, and JY-119)
MMC3 clone with banking for multigame menu.
- NES 2.0: mapper 267
+ NES 2.0: mapper 267 and mapper 377
In MAME: Supported.
-------------------------------------------------*/
-void nes_fcgj8in1_device::write_m(offs_t offset, u8 data)
+void nes_bmc_el86xc_device::write_m(offs_t offset, u8 data)
{
- LOG_MMC(("fcgj8in1 write_m, offset: %04x, data: %02x\n", offset, data));
+ LOG_MMC(("bmc_el86xc write_m, offset: %04x, data: %02x\n", offset, data));
if (!(offset & 0x1000)) // game only banks via 0x6000, this mask is a guess
{
- m_prg_base = (data & 0x20) << 2 | (data & 0x06) << 4;
+ int outer = bitswap<3>(data, 5, 2, 1);
+ m_prg_base = outer << (31 - count_leading_zeros_32(m_outer_prg_size) - 3); // << std::countr_zero(m_outer_prg_size) - 3; in C++20
set_prg(m_prg_base, m_prg_mask);
- m_chr_base = m_prg_base << 2;
+ m_chr_base = outer << 7;
set_chr(m_chr_source, m_chr_base, m_chr_mask);
}
}
diff --git a/src/devices/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h
index f5cf970728b..f1d73d146f2 100644
--- a/src/devices/bus/nes/mmc3_clones.h
+++ b/src/devices/bus/nes/mmc3_clones.h
@@ -475,13 +475,13 @@ private:
};
-// ======================> nes_fcgj8in1_device
+// ======================> nes_bmc_el86xc_device
-class nes_fcgj8in1_device : public nes_txrom_device
+class nes_bmc_el86xc_device : public nes_txrom_device
{
public:
// construction/destruction
- nes_fcgj8in1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+ nes_bmc_el86xc_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void write_m(offs_t offset, u8 data) override;
@@ -543,46 +543,22 @@ public:
};
-// ======================> nes_resettxrom0_device
+// ======================> nes_resettxrom_device
-class nes_resettxrom0_device : public nes_txrom_device
+class nes_resettxrom_device : public nes_txrom_device
{
public:
// construction/destruction
- nes_resettxrom0_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+ nes_resettxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void pcb_reset() override;
protected:
- // construction/destruction
- nes_resettxrom0_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prg_shift, int chr_shift);
-
// device-level overrides
virtual void device_start() override;
private:
int m_count;
- int m_prg_shift, m_chr_shift;
-};
-
-
-// ======================> nes_resettxrom1_device
-
-class nes_resettxrom1_device : public nes_resettxrom0_device
-{
-public:
- // construction/destruction
- nes_resettxrom1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-};
-
-
-// ======================> nes_resettxrom2_device
-
-class nes_resettxrom2_device : public nes_resettxrom0_device
-{
-public:
- // construction/destruction
- nes_resettxrom2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
@@ -1072,13 +1048,11 @@ DECLARE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device)
DECLARE_DEVICE_TYPE(NES_A9746, nes_a9746_device)
DECLARE_DEVICE_TYPE(NES_A88S1, nes_a88s1_device)
-DECLARE_DEVICE_TYPE(NES_FCGJ8IN1, nes_fcgj8in1_device)
+DECLARE_DEVICE_TYPE(NES_BMC_EL86XC, nes_bmc_el86xc_device)
DECLARE_DEVICE_TYPE(NES_FK23C, nes_fk23c_device)
DECLARE_DEVICE_TYPE(NES_FK23CA, nes_fk23ca_device)
DECLARE_DEVICE_TYPE(NES_NT639, nes_nt639_device)
-DECLARE_DEVICE_TYPE(NES_RESETTXROM0, nes_resettxrom0_device)
-DECLARE_DEVICE_TYPE(NES_RESETTXROM1, nes_resettxrom1_device)
-DECLARE_DEVICE_TYPE(NES_RESETTXROM2, nes_resettxrom2_device)
+DECLARE_DEVICE_TYPE(NES_RESETTXROM, nes_resettxrom_device)
DECLARE_DEVICE_TYPE(NES_S24IN1SC03, nes_s24in1sc03_device)
DECLARE_DEVICE_TYPE(NES_TECHLINE9IN1, nes_tech9in1_device)
DECLARE_DEVICE_TYPE(NES_BMC_8IN1, nes_bmc_8in1_device)
diff --git a/src/devices/bus/nes/nes_carts.cpp b/src/devices/bus/nes/nes_carts.cpp
index c90ea67c8bf..1a9ba571c45 100644
--- a/src/devices/bus/nes/nes_carts.cpp
+++ b/src/devices/bus/nes/nes_carts.cpp
@@ -430,13 +430,11 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("resetsxrom", NES_RESETSXROM);
// misc multigame cart MMC3 clone boards
device.option_add_internal("a88s1", NES_A88S1);
- device.option_add_internal("fcgj8in1", NES_FCGJ8IN1);
+ device.option_add_internal("bmc_el86xc", NES_BMC_EL86XC);
device.option_add_internal("fk23c", NES_FK23C);
device.option_add_internal("fk23ca", NES_FK23CA);
device.option_add_internal("nt639", NES_NT639);
- device.option_add_internal("resettxrom0", NES_RESETTXROM0);
- device.option_add_internal("resettxrom1", NES_RESETTXROM1);
- device.option_add_internal("resettxrom2", NES_RESETTXROM2);
+ device.option_add_internal("resettxrom", NES_RESETTXROM);
device.option_add_internal("s24in1c03", NES_S24IN1SC03);
device.option_add_internal("tech9in1", NES_TECHLINE9IN1);
device.option_add_internal("bmc_8in1", NES_BMC_8IN1);
diff --git a/src/devices/bus/nes/nes_ines.hxx b/src/devices/bus/nes/nes_ines.hxx
index 1eaae491cfb..01da0d79db4 100644
--- a/src/devices/bus/nes/nes_ines.hxx
+++ b/src/devices/bus/nes/nes_ines.hxx
@@ -302,7 +302,7 @@ static const nes_mmc mmc_list[] =
{ 264, YOKO_BOARD },
{ 265, BMC_T262 },
{ 266, UNL_CITYFIGHT },
- { 267, BMC_FCGENJIN_8IN1 },
+ { 267, BMC_EL861121C },
// 268 COOLBOY and MINDKIDS
// 269 mc_gx121 seems to be a PnP, but there are two actual multicarts for this mapper?
// 270 multicarts on OneBus Famiclones
@@ -348,7 +348,7 @@ static const nes_mmc mmc_list[] =
// 310 variant of mapper 125?
// 311 Unused (previously assigned in error to a bad SMB2 pirate dump)
{ 312, KAISER_KS7013B }, // Highway Star Kaiser bootleg
- { 313, BMC_RESETTXROM0 },
+ { 313, BMC_RESETTXROM },
{ 314, BMC_64IN1NR },
// 315 820732C and 830134C multicarts, not in nes.xml?
// 316 Unused
@@ -412,7 +412,7 @@ static const nes_mmc mmc_list[] =
{ 374, BMC_RESETSXROM },
// 375 135-in-1 2MB multicart
{ 376, BMC_YY841155C },
- // 377 JY-111 multicart, similar to mapper 367
+ { 377, BMC_EL860947C },
// 378 8-in-1 multicart, which one?
// 379 35-in-1 multicart, similar to mapper 38
{ 380, BMC_970630C },
@@ -748,6 +748,32 @@ void nes_cart_slot_device::call_load_ines()
submapper = 0;
logerror("Unimplemented NES 2.0 submapper: CAMERICA-BF9096.\n");
}
+ // 313: BMC RESET-TXROM
+ else if (mapper == 313)
+ {
+ if (submapper == 0)
+ {
+ m_cart->set_outer_prg_size(128);
+ m_cart->set_outer_chr_size(128);
+ }
+ else if (submapper == 1)
+ {
+ m_cart->set_outer_prg_size(256);
+ m_cart->set_outer_chr_size(128);
+ }
+ else if (submapper == 2)
+ {
+ m_cart->set_outer_prg_size(128);
+ m_cart->set_outer_chr_size(256);
+ }
+ else if (submapper == 3)
+ {
+ m_cart->set_outer_prg_size(256);
+ m_cart->set_outer_chr_size(256);
+ }
+ else
+ logerror("Unimplemented NES 2.0 submapper: %d\n", submapper);
+ }
else if (submapper)
{
submapper = 0;
@@ -937,15 +963,6 @@ void nes_cart_slot_device::call_load_ines()
m_pcb_id = RCM_GS2013;
break;
- case BMC_RESETTXROM0:
- if (submapper == 1)
- m_pcb_id = BMC_RESETTXROM1;
- else if (submapper == 2)
- m_pcb_id = BMC_RESETTXROM2;
- else if (submapper > 2)
- logerror("Unimplemented NES 2.0 submapper: %d\n", submapper);
- break;
-
case HES_BOARD:
if (crc_hack)
m_cart->set_pcb_ctrl_mirror(true); // Mapper 113 is used for 2 diff boards
@@ -999,7 +1016,16 @@ void nes_cart_slot_device::call_load_ines()
case NAMCOT_163:
mapper_sram_size = m_cart->get_mapper_sram_size();
break;
- //FIXME: we also have to fix Action 52 PRG loading somewhere...
+
+ case BMC_EL860947C:
+ m_cart->set_outer_prg_size(128);
+ break;
+
+ case BMC_EL861121C:
+ m_cart->set_outer_prg_size(256);
+ break;
+
+ //FIXME: we also have to fix Action 52 PRG loading somewhere...
case BANDAI_DATACH:
fatalerror("Bandai Datach games have to be mounted in the Datach subslot!\n");
@@ -1283,13 +1309,6 @@ const char * nes_cart_slot_device::get_default_card_ines(get_default_card_softwa
if (ROM[4] >= 20)
pcb_id = RCM_GS2013;
break;
-
- case BMC_RESETTXROM0: // Mapper 313 is used for 3 diff boards
- if (submapper == 1)
- pcb_id = BMC_RESETTXROM1;
- if (submapper == 2)
- pcb_id = BMC_RESETTXROM2;
- break;
}
return nes_get_slot(pcb_id);
diff --git a/src/devices/bus/nes/nes_pcb.hxx b/src/devices/bus/nes/nes_pcb.hxx
index ea4ee0b70b5..e9287db7d0e 100644
--- a/src/devices/bus/nes/nes_pcb.hxx
+++ b/src/devices/bus/nes/nes_pcb.hxx
@@ -303,14 +303,12 @@ static const nes_pcb pcb_list[] =
{ "bmc_g146", BMC_G146 },
{ "bmc_11160", BMC_11160 },
{ "a88s1", BMC_A88S1 },
- { "fcgj8in1", BMC_FCGENJIN_8IN1 },
+ { "bmc_el86xc", BMC_EL860947C },
{ "fk23c", BMC_FK23C },
{ "fk23ca", BMC_FK23CA },
{ "nt639", BMC_NT639 },
{ "resetsxrom", BMC_RESETSXROM },
- { "resettxrom0", BMC_RESETTXROM0 },
- { "resettxrom1", BMC_RESETTXROM1 },
- { "resettxrom2", BMC_RESETTXROM2 },
+ { "resettxrom", BMC_RESETTXROM },
{ "s24in1c03", BMC_S24IN1SC03 },
{ "tech9in1", BMC_TECHLINE9IN1 },
{ "bmc_8in1", BMC_8IN1 },
@@ -668,6 +666,28 @@ void nes_cart_slot_device::call_load_pcb()
m_cart->set_n163_vol(n163_get_submapper_num(get_feature("n163-vol")));
}
+ // get outer PRG bank size for multicart boards that use this feature
+ if (m_pcb_id == BMC_EL860947C || m_pcb_id == BMC_RESETTXROM)
+ {
+ const char *size = get_feature("outer-prg-size");
+ int kbyte = 128;
+
+ if (size == nullptr || sscanf(size, "%u%*c", &kbyte) != 1 || kbyte & (kbyte - 1) || kbyte <= 0)
+ logerror("Unexpected outer-prg-size: %s\n", size ? size : "(nullptr)");
+ m_cart->set_outer_prg_size(kbyte);
+ }
+
+ // get outer CHR bank size for multicart boards that use this feature
+ if (m_pcb_id == BMC_RESETTXROM)
+ {
+ const char *size = get_feature("outer-chr-size");
+ int kbyte = 128;
+
+ if (size == nullptr || sscanf(size, "%u%*c", &kbyte) != 1 || kbyte & (kbyte - 1) || kbyte <= 0)
+ logerror("Unexpected outer-chr-size: %s\n", size ? size : "(nullptr)");
+ m_cart->set_outer_chr_size(kbyte);
+ }
+
// pirate variants of boards with bus conflict are often not suffering from it
// and actually games glitch if bus conflict is emulated...
diff --git a/src/devices/bus/nes/nes_slot.cpp b/src/devices/bus/nes/nes_slot.cpp
index 53fc0a2f058..ec839fb1e7b 100644
--- a/src/devices/bus/nes/nes_slot.cpp
+++ b/src/devices/bus/nes/nes_slot.cpp
@@ -126,6 +126,9 @@ device_nes_cart_interface::device_nes_cart_interface(const machine_config &mconf
, m_vrc_ls_prg_a(0)
, m_vrc_ls_prg_b(0)
, m_vrc_ls_chr(0)
+ , m_n163_vol(0)
+ , m_outer_prg_size(0)
+ , m_outer_chr_size(0)
, m_mirroring(PPU_MIRROR_NONE)
, m_pcb_ctrl_mirror(false)
, m_four_screen_vram(false)
diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h
index b83a4eecc65..d36d1ffc0af 100644
--- a/src/devices/bus/nes/nes_slot.h
+++ b/src/devices/bus/nes/nes_slot.h
@@ -98,14 +98,14 @@ enum
BMC_60311C, BMC_80013B, BMC_810544C, BMC_830425C,
BMC_830928C, BMC_850437C, BMC_970630C,
BMC_N32_4IN1, BMC_NT639, BMC_NTD_03,
- BMC_FCGENJIN_8IN1, BMC_FK23C, BMC_FK23CA, BMC_JY820845C,
+ BMC_EL860947C, BMC_EL861121C, BMC_FK23C, BMC_FK23CA, BMC_JY820845C,
BMC_PJOY84, BMC_TH22913, BMC_11160, BMC_G146,
BMC_2751, BMC_8157, BMC_00202650,
BMC_820720C, BMC_830118C, BMC_830832C, BMC_YY841101C, BMC_YY841155C,
BMC_411120C, BMC_GOLD150, BMC_GOLD260,
BMC_12IN1, BMC_4IN1RESET, BMC_42IN1RESET, BMC_LITTLECOM160, BMC_CTC09,
BMC_K1029, BMC_K3006, BMC_K3033, BMC_K3036, BMC_K3046, BMC_SA005A, BMC_TJ03,
- BMC_RESETSXROM, BMC_RESETTXROM0, BMC_RESETTXROM1, BMC_RESETTXROM2, BMC_TECHLINE9IN1,
+ BMC_RESETSXROM, BMC_RESETTXROM, BMC_TECHLINE9IN1,
// Unlicensed
UNL_8237, UNL_8237A, UNL_CC21, UNL_AX5705, UNL_KN42, UNL_KOF97,
UNL_N625092, UNL_SC127, UNL_SMB2J, UNL_T230, UNL_MMALEE,
@@ -223,6 +223,8 @@ public:
void set_mmc1_type(mmc1_type val) { m_mmc1_type = val; }
void set_vrc_lines(int PRG_A, int PRG_B, int CHR) { m_vrc_ls_prg_a = PRG_A; m_vrc_ls_prg_b = PRG_B; m_vrc_ls_chr = CHR; }
void set_n163_vol(int vol) { m_n163_vol = vol; }
+ void set_outer_prg_size(int val) { m_outer_prg_size = val; }
+ void set_outer_chr_size(int val) { m_outer_chr_size = val; }
void set_x1_005_alt(bool val) { m_x1_005_alt_mirroring = val; }
void set_bus_conflict(bool val) { m_bus_conflict = val; }
uint8_t get_open_bus() { return m_open_bus; }
@@ -296,6 +298,8 @@ protected:
int m_vrc_ls_prg_b;
int m_vrc_ls_chr;
int m_n163_vol;
+ int m_outer_prg_size;
+ int m_outer_chr_size;
int m_mirroring;
bool m_pcb_ctrl_mirror, m_four_screen_vram, m_has_trainer;