bus/nes: Added support for Chinese translations of Genghis Khan, Square's Tom Sawyer, and Tenchi wo Kurau II. (#9569)

Software list items promoted to working (nes.xml)
---------------------------------------
Dàtáng Fēngyún VI Dài (China)
Chéngjísīhán (China)
Fēngsè Huànxiǎng (China)
Tāngmǔ Lìxiǎn Jì (China)
Tenchi wo Kurau II - Shokatsu Koumei Den (China)
Tenchi wo Kurau II - Shokatsu Koumei Den (China, alt)
Tūnshí Tiāndì II (China)
Tūnshí Tiāndì II (China, alt)
Tūnshí Tiāndì II (China, alt 2)
Tūnshí Tiāndì III (China)
This commit is contained in:
0kmg 2022-04-14 18:10:32 -08:00 committed by GitHub
parent acb30d42ba
commit 2aeed0b4fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 143 additions and 133 deletions

View File

@ -57904,21 +57904,24 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="chengji" supported="no">
<description>Cheng Ji Si Han (Chi)</description>
<year>19??</year>
<software name="chengji" cloneof="genghis">
<description>Chéngjísīhán (China)</description>
<year>2005</year>
<publisher>Waixing</publisher>
<info name="serial" value="ES-1110"/>
<info name="alt_title" value="成吉思汗"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_a" />
<feature name="pcb" value="WAIXING-A" /> <!-- Wrong pcb, but header says mapper 198 which is wrong too -->
<feature name="slot" value="waixing_f1" />
<feature name="pcb" value="WAIXING-F1" />
<dataarea name="prg" size="524288">
<rom name="[es-1110] cheng ji si han (c).prg" size="524288" crc="935f2119" sha1="ca7fe978a1926827c6d3eb670d8e1ff9903614b7" offset="00000" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -57926,21 +57929,24 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tmlxj" cloneof="sqtomsaw" supported="no">
<description>Tang Mu Li Xian Ji (Chi)</description>
<year>19??</year>
<software name="tmlxj" cloneof="sqtomsaw">
<description>Tāngmǔ Lìxiǎn Jì (China)</description>
<year>2005</year>
<publisher>Waixing</publisher>
<info name="serial" value="ES-1111"/>
<info name="alt_title" value="汤姆历险记"/>
<info name="alt_title" value="湯姆歷險記"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_i" />
<feature name="pcb" value="WAIXING-I" />
<feature name="slot" value="waixing_f1" />
<feature name="pcb" value="WAIXING-F1" />
<dataarea name="prg" size="524288">
<rom name="tang mu li xian ji (ch).prg" size="524288" crc="2ca9bf7f" sha1="b9f444ff60f60c177eeec8671bec3731b0f6fe49" offset="00000" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -58102,21 +58108,28 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="fengshx" supported="no">
<description>Feng Se Huan Xiang (Chi)</description>
<year>19??</year>
<software name="fengshx" cloneof="sqtomsaw">
<description>Fēngsè Huànxiǎng (China)</description>
<year>2005</year>
<publisher>Waixing</publisher>
<info name="serial" value="ES-1138"/>
<info name="alt_title" value="风色幻想"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" /> <!-- Header says mapper 4 but there are tons of unmapped accesses -->
<feature name="slot" value="waixing_f1" />
<feature name="pcb" value="WAIXING-F1" />
<dataarea name="prg" size="524288">
<rom name="[es-1138] feng se huan xiang (c).prg" size="524288" crc="2389335f" sha1="8148813ca6225c01088bbc9a4af2031176632b4d" offset="00000" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
</dataarea>
</part>
</software>
@ -62301,9 +62314,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tenchik2c" cloneof="tenchik2" supported="no">
<description>Tenchi wo Kurau II - Shokatsu Koumei Den (Chi, Simplified)</description>
<year>19??</year>
<software name="tenchik2c" cloneof="tenchik2">
<description>Tenchi wo Kurau II - Shokatsu Koumei Den (China)</description>
<year>1994</year>
<publisher>Waixing?</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_f" />
@ -62314,6 +62327,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -62321,9 +62337,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tenchik2c1" cloneof="tenchik2" supported="no">
<description>Tenchi wo Kurau II - Shokatsu Koumei Den (Chi, Traditional)</description>
<year>19??</year>
<software name="tenchik2c1" cloneof="tenchik2">
<description>Tenchi wo Kurau II - Shokatsu Koumei Den (China, alt)</description>
<year>1994</year>
<publisher>Waixing?</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_f" />
@ -62334,6 +62350,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -62341,9 +62360,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tstd2b" cloneof="tenchik2" supported="no">
<description>Tun Shi Tian Di II (Chi, Alt 2)</description>
<year>19??</year>
<software name="tstd2b" cloneof="tenchik2">
<description>Tūnshí Tiāndì II (China, alt 2)</description>
<year>1994</year>
<publisher>XianFeng Katong</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_f" />
@ -62354,6 +62373,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -62361,9 +62383,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tstd2" cloneof="tenchik2" supported="no">
<description>Tun Shi Tian Di II (Chi)</description>
<year>19??</year>
<software name="tstd2" cloneof="tenchik2">
<description>Tūnshí Tiāndì II (China)</description>
<year>1994</year>
<publisher>XianFeng Katong</publisher>
<info name="alt_title" value="吞食天地II-诸葛孔明传"/>
<part name="cart" interface="nes_cart">
@ -62375,6 +62397,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -62382,9 +62407,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tstd2a" cloneof="tenchik2" supported="no">
<description>Tun Shi Tian Di II (Chi, Alt)</description>
<year>19??</year>
<software name="tstd2a" cloneof="tenchik2">
<description>Tūnshí Tiāndì II (China, alt)</description>
<year>1994</year>
<publisher>XianFeng Katong</publisher>
<info name="alt_title" value="吞食天地II-诸葛孔明传"/>
<part name="cart" interface="nes_cart">
@ -62396,6 +62421,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -62403,11 +62431,11 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="tstd3" cloneof="tenchik2" supported="no">
<description>Tun Shi Tian Di III (Chi)</description>
<year>19??</year>
<software name="tstd3" cloneof="tenchik2">
<description>Tūnshí Tiāndì III (China)</description>
<year>1994</year>
<publisher>Waixing?</publisher>
<info name="alt_title" value="吞Ⅲ"/>
<info name="alt_title" value="吞食天地Ⅲ"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_f" />
<feature name="pcb" value="WAIXING-F" />
@ -62417,6 +62445,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />
@ -64214,20 +64245,23 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="datangf6" supported="no">
<description>Da Tang Feng Yun VI Dai (Chi)</description>
<software name="datangf6" cloneof="genghis">
<description>Dàtáng Fēngyún VI Dài (China)</description>
<year>19??</year>
<publisher>HengGedianzi</publisher>
<info name="alt_title" value="大唐风云VI代"/>
<info name="alt_title" value="大唐风云VI代"/> <!-- Is 代 really in the title? -->
<part name="cart" interface="nes_cart">
<feature name="slot" value="waixing_a" />
<feature name="pcb" value="WAIXING-A" />
<feature name="slot" value="waixing_f1" />
<feature name="pcb" value="WAIXING-F1" />
<dataarea name="prg" size="524288">
<rom name="[hengge] da tang feng yun vi dai (c).prg" size="524288" crc="92a14846" sha1="3660539682971d5727140d3cd298c3fdd979208a" offset="00000" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
<!-- 4k WRAM on cartridge -->
<dataarea name="wram" size="4096">
</dataarea>
<!-- 8k WRAM on cartridge, battery backed up -->
<dataarea name="bwram" size="8192">
<rom value="0x00" size="8192" offset="0" loadflag="fill" />

View File

@ -345,7 +345,7 @@ void nes_txrom_device::write_m(offs_t offset, uint8_t data)
{
if (!m_battery.empty())
m_battery[offset & (m_battery.size() - 1)] = data;
if (!m_prgram.empty())
else if (!m_prgram.empty())
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
}

View File

@ -237,6 +237,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("waixing_d", NES_WAIXING_D);
device.option_add_internal("waixing_e", NES_WAIXING_E);
device.option_add_internal("waixing_f", NES_WAIXING_F);
device.option_add_internal("waixing_f1", NES_WAIXING_F1);
device.option_add_internal("waixing_g", NES_WAIXING_G);
device.option_add_internal("waixing_h", NES_WAIXING_H);
device.option_add_internal("waixing_h1", NES_WAIXING_H1); // FIXME: Made up boards the different WRAM protect banks (see Shen Mi Jin San Jiao)

View File

@ -232,7 +232,7 @@ static const nes_mmc mmc_list[] =
{ 196, BTL_SBROS11 },
{ 197, UNL_SF3 },
{ 198, WAIXING_TYPE_F },
{ 199, WAIXING_TYPE_G },
{ 199, WAIXING_TYPE_F1 },
{ 200, BMC_36IN1 },
{ 201, BMC_21IN1 },
{ 202, BMC_150IN1 },

View File

@ -145,6 +145,7 @@ static const nes_pcb pcb_list[] =
{ "waixing_d", WAIXING_TYPE_D },
{ "waixing_e", WAIXING_TYPE_E },
{ "waixing_f", WAIXING_TYPE_F },
{ "waixing_f1", WAIXING_TYPE_F1 },
{ "waixing_g", WAIXING_TYPE_G },
{ "waixing_h", WAIXING_TYPE_H },
{ "waixing_h1", WAIXING_TYPE_H1 },

View File

@ -139,7 +139,7 @@ enum
CNE_DECATHLON, CNE_FSB, CNE_SHLZ, COCOMA_BOARD, CONY_BOARD, CONY1K_BOARD, SMD133_BOARD, YOKO_BOARD,
RCM_GS2015, RCM_GS2004, RCM_GS2013, RCM_TF9IN1, RCM_3DBLOCK,
WAIXING_TYPE_A, WAIXING_TYPE_A1, WAIXING_TYPE_B, WAIXING_TYPE_C, WAIXING_TYPE_D,
WAIXING_TYPE_E, WAIXING_TYPE_F, WAIXING_TYPE_G, WAIXING_TYPE_H, WAIXING_TYPE_H1,
WAIXING_TYPE_E, WAIXING_TYPE_F, WAIXING_TYPE_F1, WAIXING_TYPE_G, WAIXING_TYPE_H, WAIXING_TYPE_H1,
WAIXING_TYPE_I, WAIXING_TYPE_J, WAIXING_FS304,
WAIXING_SGZLZ, WAIXING_SGZ, WAIXING_WXZS, WAIXING_SECURITY, WAIXING_SH2,
WAIXING_DQ8, WAIXING_FFV, WAIXING_WXZS2, SUPERGAME_LIONKING, SUPERGAME_BOOGERMAN,

View File

@ -38,6 +38,7 @@ DEFINE_DEVICE_TYPE(NES_WAIXING_C, nes_waixing_c_device, "nes_waixing_c",
DEFINE_DEVICE_TYPE(NES_WAIXING_D, nes_waixing_d_device, "nes_waixing_d", "NES Cart Waixing Type D PCB")
DEFINE_DEVICE_TYPE(NES_WAIXING_E, nes_waixing_e_device, "nes_waixing_e", "NES Cart Waixing Type E PCB")
DEFINE_DEVICE_TYPE(NES_WAIXING_F, nes_waixing_f_device, "nes_waixing_f", "NES Cart Waixing Type F PCB")
DEFINE_DEVICE_TYPE(NES_WAIXING_F1, nes_waixing_f1_device, "nes_waixing_f1", "NES Cart Waixing Type F1 PCB")
DEFINE_DEVICE_TYPE(NES_WAIXING_G, nes_waixing_g_device, "nes_waixing_g", "NES Cart Waixing Type G PCB")
DEFINE_DEVICE_TYPE(NES_WAIXING_H, nes_waixing_h_device, "nes_waixing_h", "NES Cart Waixing Type H PCB")
DEFINE_DEVICE_TYPE(NES_WAIXING_H1, nes_waixing_h1_device, "nes_waixing_h1", "NES Cart Waixing Type H (Alt) PCB")
@ -88,8 +89,18 @@ nes_waixing_e_device::nes_waixing_e_device(const machine_config &mconfig, const
{
}
nes_waixing_f_device::nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: nes_waixing_a_device(mconfig, NES_WAIXING_F, tag, owner, clock)
nes_waixing_f_device::nes_waixing_f_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
: nes_txrom_device(mconfig, type, tag, owner, clock)
{
}
nes_waixing_f_device::nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_waixing_f_device(mconfig, NES_WAIXING_F, tag, owner, clock)
{
}
nes_waixing_f1_device::nes_waixing_f1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_waixing_f_device(mconfig, NES_WAIXING_F1, tag, owner, clock)
{
}
@ -178,19 +189,6 @@ void nes_waixing_a_device::pcb_reset()
std::fill(std::begin(mapper_ram), std::end(mapper_ram), 0x00);
}
void nes_waixing_f_device::pcb_reset()
{
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
mmc3_common_initialize(0xff, 0xff, 0);
std::fill(std::begin(mapper_ram), std::end(mapper_ram), 0x00);
m_mmc_prg_bank[0] = 0x00;
m_mmc_prg_bank[1] = 0x01;
m_mmc_prg_bank[2] = 0x4e;
m_mmc_prg_bank[3] = 0x4f;
set_prg(m_prg_base, m_prg_mask);
}
void nes_waixing_g_device::pcb_reset()
{
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
@ -500,77 +498,49 @@ void nes_waixing_e_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, chr_src);
}
/*-------------------------------------------------
Waixing Board Type F
Waixing Board Type F, F1
Games: Tenchi wo Kurau II (C)
Games: Tenchi wo Kurau II translations (mapper 198),
and (mapper 199) Chengjisihan, Tangmu Lixian Ji,
Fengse Huanxiang, Datang Fengyun VI Dai
MMC3 clone.
MMC3 clone with an extra 4K WRAM at 0x5000-0x5fff.
Mapper 198 banks its 8K CHR RAM and 199 does not.
iNES: mapper 198
iNES: mappers 198, 199
In MESS: Preliminary support.
In MAME: Supported.
TODO: Sort out G board games which were assigned
to mapper 199 previously.
-------------------------------------------------*/
void nes_waixing_f_device::chr_cb(int start, int bank, int source)
u8 nes_waixing_f_device::read_l(offs_t offset)
{
chr1_x(start, bank, CHRRAM);
// LOG_MMC(("waixing_f read_l, offset: %04x\n", offset));
offset += 0x100;
if (!m_prgram.empty() && offset >= 0x1000)
return m_prgram[offset & 0x0fff & (m_prgram.size() - 1)];
return get_open_bus();
}
void nes_waixing_f_device::prg_cb(int start, int bank)
void nes_waixing_f_device::write_l(offs_t offset, u8 data)
{
// if (bank > 0x3f)
// bank = 0x40 | (bank & 0xf);
prg8_x(start, bank);
// LOG_MMC(("waixing_f write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
if (!m_prgram.empty() && offset >= 0x1000)
m_prgram[offset & 0x0fff & (m_prgram.size() - 1)] = data;
}
void nes_waixing_f_device::set_prg( int prg_base, int prg_mask )
void nes_waixing_f1_device::set_chr(u8 chr, int chr_base, int chr_mask)
{
uint8_t prg_flip = (m_latch & 0x40) ? 2 : 0;
prg_cb(0, m_mmc_prg_bank[0 ^ prg_flip]);
prg_cb(1, m_mmc_prg_bank[1]);
prg_cb(2, m_mmc_prg_bank[2 ^ prg_flip]);
prg_cb(3, m_mmc_prg_bank[3]);
}
void nes_waixing_f_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x6001)
{
case 0x0001:
cmd = m_latch & 0x07;
switch (cmd)
{
case 0: case 1: // these do not need to be separated: we take care of them in set_chr!
case 2: case 3: case 4: case 5:
m_mmc_vrom_bank[cmd] = data;
set_chr(m_chr_source, m_chr_base, m_chr_mask);
break;
case 6:
case 7:
case 8:
case 9:
m_mmc_prg_bank[cmd - 6] = data;
//printf("prg bank %d value %x\n", cmd - 6, data);
set_prg(m_prg_base, m_prg_mask);
break;
}
break;
case 0x2001:
break;
default:
waixing_write(offset, data);
break;
}
// ignore CHR banking as all F1 games use 8K unbanked CHR RAM
}
/*-------------------------------------------------

View File

@ -56,7 +56,6 @@ public:
// construction/destruction
nes_waixing_b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void chr_cb(int start, int bank, int source) override;
};
@ -69,7 +68,6 @@ public:
// construction/destruction
nes_waixing_c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void chr_cb(int start, int bank, int source) override;
};
@ -82,7 +80,6 @@ public:
// construction/destruction
nes_waixing_d_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void chr_cb(int start, int bank, int source) override;
};
@ -95,28 +92,37 @@ public:
// construction/destruction
nes_waixing_e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void chr_cb(int start, int bank, int source) override;
};
// ======================> nes_waixing_f_device
class nes_waixing_f_device : public nes_waixing_a_device
class nes_waixing_f_device : public nes_txrom_device
{
public:
// construction/destruction
nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// device-level overrides
virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual u8 read_l(offs_t offset) override;
virtual void write_l(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
protected:
// construction/destruction
nes_waixing_f_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
};
private:
virtual void set_prg(int prg_base, int prg_mask) override;
// ======================> nes_waixing_f1_device
class nes_waixing_f1_device : public nes_waixing_f_device
{
public:
// construction/destruction
nes_waixing_f1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
virtual void set_chr(uint8_t chr, int chr_base, int chr_mask) override;
};
@ -128,7 +134,6 @@ public:
// construction/destruction
nes_waixing_g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void write_h(offs_t offset, uint8_t data) override;
virtual void chr_cb(int start, int bank, int source) override;
@ -147,15 +152,13 @@ public:
// construction/destruction
nes_waixing_h_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void write_h(offs_t offset, uint8_t data) override;
virtual void chr_cb(int start, int bank, int source) override;
// This PCB does not have 1K of internal RAM, so it's not derived from nes_waixing_a_device!!
protected:
nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void write_h(offs_t offset, uint8_t data) override;
};
@ -167,7 +170,6 @@ public:
// construction/destruction
nes_waixing_h1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void write_h(offs_t offset, uint8_t data) override;
// This variant does not ignore the wram protect!
@ -215,14 +217,15 @@ public:
// construction/destruction
nes_waixing_sh2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual uint8_t chr_r(offs_t offset) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
protected:
// device-level overrides
virtual void device_start() override;
uint8_t m_reg[2];
};
@ -355,6 +358,7 @@ DECLARE_DEVICE_TYPE(NES_WAIXING_C, nes_waixing_c_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_D, nes_waixing_d_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_E, nes_waixing_e_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_F, nes_waixing_f_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_F1, nes_waixing_f1_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_G, nes_waixing_g_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_H, nes_waixing_h_device)
DECLARE_DEVICE_TYPE(NES_WAIXING_H1, nes_waixing_h1_device)