bus/nes: Added support for a Highway Star bootleg.

- Renamed hstarfds to highwayk. It cannot be an FDS bootleg since Highway Star only appeared on cart.
- Demoted all Rad Racer/Highway Star games to partially supported due to severity of graphical issues (car dashboard flickers to top of screen, etc).

New working software list additions (nes.xml)
-----------------------------------
Highway Star (Whirlwind Manu bootleg) [krzysiobal]
This commit is contained in:
0kmg 2021-08-24 14:08:35 -08:00
parent 756616a2b5
commit 4c6d6fe936
8 changed files with 123 additions and 35 deletions

View File

@ -16488,7 +16488,7 @@ license:CC0
</part>
</software>
<software name="highway" cloneof="radracer">
<software name="highway" cloneof="radracer" supported="partial">
<description>Highway Star (Jpn)</description>
<year>1987</year>
<publisher>Square</publisher>
@ -30442,7 +30442,7 @@ license:CC0
</part>
</software>
<software name="radraceru" cloneof="radracer">
<software name="radraceru" cloneof="radracer" supported="partial">
<description>Rad Racer (USA)</description>
<year>1987</year>
<publisher>Nintendo</publisher>
@ -30462,7 +30462,7 @@ license:CC0
</part>
</software>
<software name="radracer">
<software name="radracer" supported="partial">
<description>Rad Racer (Euro)</description>
<year>1988</year>
<publisher>Nintendo</publisher>
@ -63266,6 +63266,38 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="highwayk" cloneof="radracer" supported="partial">
<description>Highway Star (Kaiser bootleg)</description>
<year>19??</year>
<publisher>Kaiser</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="ks7013b" />
<feature name="pcb" value="UNL-KS7013B" />
<dataarea name="prg" size="131072">
<rom name="ks114" size="131072" crc="95ce148a" sha1="eabaefb8ef07c701f7c2d8df6b132a7974c1e9b4" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
</part>
</software>
<software name="highwayw" cloneof="radracer" supported="partial">
<description>Highway Star (Whirlwind Manu bootleg)</description>
<year>19??</year>
<publisher>Whirlwind Manu</publisher>
<info name="serial" value="LH42"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="unl_lh42" />
<dataarea name="prg" size="131072">
<rom name="highway star (whirlwind manu).prg" size="131072" crc="8f4ae8aa" sha1="ce4851d8f89cacb212ef645f20201c2634f7253a" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
</part>
</software>
<software name="hstar2" cloneof="f1hero2">
<description>High Way Star II (Ripped from F-646 HIGH K Power Sports 4-in-1)</description>
<year>19??</year>
@ -67406,22 +67438,6 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
</part>
</software>
<software name="hstarfds">
<description>Highway Star (Asia, FDS conversion)</description>
<year>19??</year>
<publisher>Kaiser</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="ks7013b" />
<feature name="pcb" value="UNL-KS7013B" />
<dataarea name="prg" size="131072">
<rom name="highway star (kaiser) (fds conversion) (unl).prg" size="131072" crc="95ce148a" sha1="eabaefb8ef07c701f7c2d8df6b132a7974c1e9b4" offset="00000" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
</part>
</software>
<software name="hikaris">
<description>Hikari Shinwa - Palthena no Kagami (Asia, FDS conversion)</description>
<year>19??</year>
@ -69250,7 +69266,7 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
</software>
<!-- is this correct?!? -->
<software name="highwayh" cloneof="radracer" supported="partial">
<software name="highwayh" cloneof="radracer" supported="no">
<description>Highway Star (FMG pirate)</description>
<year>1987</year>
<publisher>FMG</publisher>

View File

@ -62,6 +62,7 @@ DEFINE_DEVICE_TYPE(NES_LH10, nes_lh10_device, "nes_lh10", "N
DEFINE_DEVICE_TYPE(NES_LH28_LH54, nes_lh28_lh54_device, "nes_lh28_lh54", "NES Cart LH28/LH54 Pirate PCBs")
DEFINE_DEVICE_TYPE(NES_LH31, nes_lh31_device, "nes_lh31", "NES Cart LH31 Pirate PCB")
DEFINE_DEVICE_TYPE(NES_LH32, nes_lh32_device, "nes_lh32", "NES Cart LH32 Pirate PCB")
DEFINE_DEVICE_TYPE(NES_LH42, nes_lh42_device, "nes_lh42", "NES Cart LH42 Pirate PCB")
DEFINE_DEVICE_TYPE(NES_LH51, nes_lh51_device, "nes_lh51", "NES Cart LH51 Pirate PCB")
DEFINE_DEVICE_TYPE(NES_LH53, nes_lh53_device, "nes_lh53", "NES Cart LH53 Pirate PCB")
DEFINE_DEVICE_TYPE(NES_2708, nes_2708_device, "nes_2708", "NES Cart BTL-2708 Pirate PCB")
@ -177,6 +178,11 @@ nes_lh32_device::nes_lh32_device(const machine_config &mconfig, const char *tag,
{
}
nes_lh42_device::nes_lh42_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_nrom_device(mconfig, NES_LH42, tag, owner, clock), m_latch(0)
{
}
nes_lg25_device::nes_lg25_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_nrom_device(mconfig, NES_LG25, tag, owner, clock), m_latch(0)
{
@ -532,6 +538,21 @@ void nes_lh32_device::pcb_reset()
m_latch = 0xf;
}
void nes_lh42_device::device_start()
{
common_start();
save_item(NAME(m_latch));
}
void nes_lh42_device::pcb_reset()
{
prg16_89ab(0);
prg16_cdef(m_prg_chunks - 1); // Last 16K is fixed
chr8(0, CHRRAM);
m_latch = 0;
}
void nes_lg25_device::device_start()
{
common_start();
@ -567,11 +588,6 @@ void nes_lh10_device::pcb_reset()
std::fill(std::begin(m_reg), std::end(m_reg), 0x00);
}
void nes_lh51_device::device_start()
{
common_start();
}
void nes_lh51_device::pcb_reset()
{
prg32((m_prg_chunks >> 1) - 1); // first 8K is switchable, the rest fixed
@ -1674,6 +1690,42 @@ void nes_lh32_device::write_h(offs_t offset, uint8_t data)
m_prgram[offset & 0x1fff] = data;
}
/*-------------------------------------------------
UNL-LH42
Games: Highway Star (Whirlwind Manu bootleg)
NES 2.0: mapper 418
In MAME: Preliminary supported.
TODO: Investigate garbage tiles on bottom half of
course map screens. This should be car dashboard?
-------------------------------------------------*/
void nes_lh42_device::write_h(offs_t offset, u8 data)
{
LOG_MMC(("lh42 write_h, offset: %04x, data: %02x\n", offset, data));
if (BIT(offset, 0))
{
switch (m_latch)
{
case 1:
set_nt_mirroring(BIT(data, 0) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
break;
case 2:
case 3:
prg8_x(m_latch & 1, data & 0x0f);
break;
}
}
else
m_latch = data & 0x03;
}
/*-------------------------------------------------
UNL-LG25

View File

@ -463,6 +463,27 @@ private:
};
// ======================> nes_lh42_device
class nes_lh42_device : public nes_nrom_device
{
public:
// construction/destruction
nes_lh42_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
protected:
// device-level overrides
virtual void device_start() override;
private:
u8 m_latch;
};
// ======================> nes_lg25_device
class nes_lg25_device : public nes_nrom_device
@ -520,10 +541,6 @@ public:
virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
protected:
// device-level overrides
virtual void device_start() override;
};
@ -724,6 +741,7 @@ DECLARE_DEVICE_TYPE(NES_LH10, nes_lh10_device)
DECLARE_DEVICE_TYPE(NES_LH28_LH54, nes_lh28_lh54_device)
DECLARE_DEVICE_TYPE(NES_LH31, nes_lh31_device)
DECLARE_DEVICE_TYPE(NES_LH32, nes_lh32_device)
DECLARE_DEVICE_TYPE(NES_LH42, nes_lh42_device)
DECLARE_DEVICE_TYPE(NES_LH51, nes_lh51_device)
DECLARE_DEVICE_TYPE(NES_LH53, nes_lh53_device)
DECLARE_DEVICE_TYPE(NES_2708, nes_2708_device)

View File

@ -805,7 +805,7 @@ void nes_ks7012_device::write_h(offs_t offset, uint8_t data)
Kaiser Board KS7013B
Games: Highway Star FDS Conversion
Games: Highway Star bootleg
NES 2.0: mapper 312

View File

@ -255,7 +255,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("ks202", NES_KS202); // mapper 56
device.option_add_internal("ks7010", NES_KS7010); // used in Akumajo Dracula (FDS Conversion)
device.option_add_internal("ks7012", NES_KS7012); // used in Zanac (FDS Conversion)
device.option_add_internal("ks7013b", NES_KS7013B); // used in Highway Star (FDS Conversion)
device.option_add_internal("ks7013b", NES_KS7013B); // used in Highway Star Kaiser bootleg
device.option_add_internal("ks7016", NES_KS7016); // used in Exciting Basket (FDS Conversion)
device.option_add_internal("ks7016b", NES_KS7016B); // used in Meikyu Jiin Dababa alt (FDS Conversion)
device.option_add_internal("ks7017", NES_KS7017);
@ -320,6 +320,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("unl_lh28_lh54", NES_LH28_LH54); // used in Falsion, Meikyuu Jiin Dababa FDS conversions
device.option_add_internal("unl_lh31", NES_LH31); // used in Bubble Bobble alt FDS conversion
device.option_add_internal("unl_lh32", NES_LH32); // used by Monty no Doki Doki Daidassou FDS conversion
device.option_add_internal("unl_lh42", NES_LH42); // used by Highway Star Whirlwind Manu bootleg
device.option_add_internal("unl_lh51", NES_LH51); // used in Ai Senshi Nicol alt FDS conversion
device.option_add_internal("unl_lh53", NES_LH53); // used in Nazo no Murasamejou (FDS Conversion);
device.option_add_internal("unl_ac08", NES_AC08); // used by Green Beret FDS conversion

View File

@ -347,7 +347,7 @@ static const nes_mmc mmc_list[] =
{ 309, UNL_LH51 }, // Ai Senshi Nicol alt FDS conversion
// 310 variant of mapper 125?
// 311 Unused (previously assigned in error to a bad SMB2 pirate dump)
{ 312, KAISER_KS7013B }, // Highway Star FDS conversion
{ 312, KAISER_KS7013B }, // Highway Star Kaiser bootleg
{ 313, BMC_RESETTXROM0 },
{ 314, BMC_64IN1NR },
// 315 820732C and 830134C multicarts, not in nes.xml?
@ -453,7 +453,7 @@ static const nes_mmc mmc_list[] =
{ 415, BTL_0353 }, // Lucky (Roger) Rabbit FDS conversion
// 416 4-in-1 that includes mapper 50 SMB2j pirate
{ 417, BTL_BATMANFS }, // "Fine Studio" Batman bootleg
// { 418, UNL_LH42 } // Highway Star alt FDS conversion
{ 418, UNL_LH42 }, // Highway Star Whirlwind Manu bootleg
// 419 VT03 PnPs
// 420 Kasheng A971210 board
// 421 JY SC871115C board

View File

@ -167,7 +167,7 @@ static const nes_pcb pcb_list[] =
{ "ks202", KAISER_KS202 }, // mapper 56
{ "ks7010", KAISER_KS7010 }, // used in Akumajo Dracula (FDS Conversion)
{ "ks7012", KAISER_KS7012 }, // used in Zanac (FDS Conversion)
{ "ks7013b", KAISER_KS7013B }, // used in Highway Star (FDS Conversion)
{ "ks7013b", KAISER_KS7013B }, // used in Highway Star Kaiser bootleg
{ "ks7016", KAISER_KS7016 }, // used in Exciting Basketball (FDS Conversion)
{ "ks7016b", KAISER_KS7016B }, // used in Meikyuu Jiin Dababa alt (FDS Conversion)
{ "ks7017", KAISER_KS7017 },
@ -343,6 +343,7 @@ static const nes_pcb pcb_list[] =
{ "unl_lh28_lh54", UNL_LH28_LH54 },
{ "unl_lh31", UNL_LH31 },
{ "unl_lh32", UNL_LH32 },
{ "unl_lh42", UNL_LH42 },
{ "unl_lh51", UNL_LH51 },
{ "unl_lh53", UNL_LH53 },
{ "unl_ac08", UNL_AC08 },

View File

@ -124,7 +124,7 @@ enum
KAISER_KS7032, KAISER_KS7037, KAISER_KS7057, KAISER_KS7058,
// Whirlwind Manu
UNL_DH08, UNL_LE05, UNL_LG25, UNL_LH10, UNL_LH28_LH54,
UNL_LH31, UNL_LH32, UNL_LH51, UNL_LH53,
UNL_LH31, UNL_LH32, UNL_LH42, UNL_LH51, UNL_LH53,
// Misc: these are needed to convert mappers to boards, I will sort them later
OPENCORP_DAOU306, HES_BOARD, SVISION16_BOARD, RUMBLESTATION_BOARD, JYCOMPANY_A, JYCOMPANY_B, JYCOMPANY_C,
MAGICSERIES_MD, KASING_BOARD, FUTUREMEDIA_BOARD, FUKUTAKE_BOARD, SOMARI_SL12,