mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
machines promoted to WORKING
----- Konami Collector's Series Arcade Advanced [David Haywood]
This commit is contained in:
parent
ff4f63b8d7
commit
30cac51f50
@ -124,6 +124,9 @@ public:
|
||||
void vt_external_space_map_1mbyte(address_map& map);
|
||||
void vt_external_space_map_512kbyte(address_map& map);
|
||||
|
||||
void nes_vt_1mb_majkon(machine_config& config);
|
||||
void vt_external_space_map_1mbyte_majkon(address_map& map);
|
||||
|
||||
void init_protpp();
|
||||
|
||||
protected:
|
||||
@ -368,8 +371,6 @@ public:
|
||||
void nes_vt_vg_8mb(machine_config& config);
|
||||
void nes_vt_vg_16mb(machine_config& config);
|
||||
|
||||
|
||||
void nes_vt_vg_1mb_majkon(machine_config& config);
|
||||
void nes_vt_fp(machine_config& config);
|
||||
void nes_vt_fp_16mb(machine_config& config);
|
||||
void nes_vt_fp_32mb(machine_config& config);
|
||||
@ -481,6 +482,12 @@ void nes_vt_swap_op_d5_d6_state::vt_external_space_map_senwld_512kbyte(address_m
|
||||
map(0x0180000, 0x01fffff).r(FUNC(nes_vt_swap_op_d5_d6_state::vt_rom_r));
|
||||
}
|
||||
|
||||
void nes_vt_state::vt_external_space_map_1mbyte_majkon(address_map &map)
|
||||
{
|
||||
map(0x0000000, 0x00fffff).mirror(0x1f00000).r(FUNC(nes_vt_state::vt_rom_r));
|
||||
map(0x1400000, 0x1401fff).ram(); // rush'n attack writes to chr space, after setting the program and character outer bank to a mirror, is the correct way to handle it?
|
||||
}
|
||||
|
||||
// bitboy is 2 16Mbyte banks
|
||||
uint8_t nes_vt_cy_state::vt_rom_banked_r(offs_t offset)
|
||||
{
|
||||
@ -1117,13 +1124,6 @@ void nes_vt_hh_state::nes_vt_vg_16mb(machine_config& config)
|
||||
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_hh_state::vt_external_space_map_16mbyte);
|
||||
}
|
||||
|
||||
void nes_vt_hh_state::nes_vt_vg_1mb_majkon(machine_config &config)
|
||||
{
|
||||
nes_vt_dg(config);
|
||||
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_hh_state::vt_external_space_map_1mbyte);
|
||||
m_soc->force_raster_timing_hack();
|
||||
}
|
||||
|
||||
|
||||
// New mystery handheld architecture, VTxx derived
|
||||
void nes_vt_hh_state::nes_vt_hh(machine_config &config)
|
||||
@ -1159,6 +1159,16 @@ void nes_vt_hh_state::nes_vt_hh_4mb(machine_config& config)
|
||||
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_hh_state::vt_external_space_map_4mbyte);
|
||||
}
|
||||
|
||||
|
||||
void nes_vt_state::nes_vt_1mb_majkon(machine_config& config)
|
||||
{
|
||||
NES_VT_SOC(config, m_soc, NTSC_APU_CLOCK);
|
||||
configure_soc(m_soc);
|
||||
m_soc->set_addrmap(AS_PROGRAM, &nes_vt_state::vt_external_space_map_1mbyte_majkon);
|
||||
m_soc->force_raster_timing_hack();
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( nes_vt )
|
||||
PORT_START("IO0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("A")
|
||||
@ -2190,7 +2200,7 @@ CONS( 2005, ablpinb, 0, 0, nes_vt_pal_2mb, ablpinb, nes_vt_ablpinb_state, e
|
||||
CONS( 2004, sporzpp, 0, 0, nes_vt_waixing_alt_4mb_sporzpp, sporzpp, nes_vt_waixing_alt_sporzpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Duet Play Ping-Pong", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
// has some longer than expected delays when sounds should play on the Boxing part, but NES hacks are all functional
|
||||
CONS( 2004, sporzbx, 0, 0, nes_vt_waixing_alt_4mb_sporzpp, sporzpp, nes_vt_waixing_alt_sporzpp_state, empty_init, "Macro Winners", "Game Sporz Wireless Boxing", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
// has some longer than expected delays when sounds should play on the Tennis part, but NES hacks are all functional
|
||||
// has some longer than expected delays when sounds should play on the Tennis part, but NES hacks are all functional, US version is sold in DreamGear branded box.
|
||||
CONS( 2004, sporztn, 0, 0, nes_vt_pal_4mb, sporzpp, nes_vt_wldsoctv_state, empty_init, "Macro Winners (Play Vision license)", "Wireless Tennis (PAL, Play Vision)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
// missing PCM audio, but regular APU SFX work
|
||||
CONS( 200?, wldsoctv, 0, 0, nes_vt_pal_4mb, nes_vt, nes_vt_wldsoctv_state, empty_init, "Taikee", "World Soccer TV Game 10-in-1 (PAL)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
@ -2204,7 +2214,7 @@ CONS( 200?, mc_dgear, 0, 0, nes_vt_4mb, nes_vt, nes_vt_state, empty_init,
|
||||
// all games work OK except Frogger which has serious graphical issues
|
||||
CONS( 2006, vgtablet, 0, 0, nes_vt_vg_4mb_rasterhack, nes_vt, nes_vt_hh_state, empty_init, "Performance Designed Products (licensed by Konami)", "VG Pocket Tablet (VG-4000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // raster timing for Frogger needs a hack
|
||||
// There is a 2004 Majesco Frogger "TV game" that appears to contain the same version of Frogger as above but with no other games, so probably fits here.
|
||||
CONS( 2004, majkon, 0, 0, nes_vt_vg_1mb_majkon, nes_vt, nes_vt_hh_state, empty_init, "Majesco (licensed from Konami)", "Konami Collector's Series Arcade Advanced", MACHINE_NOT_WORKING ) // raster timing for Frogger needs a hack, Green Beret has other serious issues
|
||||
CONS( 2004, majkon, 0, 0, nes_vt_1mb_majkon, nes_vt, nes_vt_state, empty_init, "Majesco (licensed from Konami)", "Konami Collector's Series Arcade Advanced", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // raster timing for Frogger needs a hack, Rush'n Attack also has raster timing issues on the status bar split
|
||||
|
||||
CONS( 200?, majgnc, 0, 0, nes_vt_vg_1mb_majgnc, majgnc, nes_vt_vg_1mb_majgnc_state, empty_init, "Majesco", "Golden Nugget Casino", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
|
@ -473,7 +473,7 @@ uint8_t nes_vt_soc_device::spr_r(offs_t offset)
|
||||
|
||||
uint8_t nes_vt_soc_device::chr_r(offs_t offset)
|
||||
{
|
||||
if (m_4242 & 0x1 || m_411d & 0x04)
|
||||
if (m_4242 & 0x1 || m_411d & 0x04) // newer VT platforms only (not VT03/09), split out
|
||||
{
|
||||
return m_chrram[offset];
|
||||
}
|
||||
@ -489,11 +489,18 @@ uint8_t nes_vt_soc_device::chr_r(offs_t offset)
|
||||
|
||||
void nes_vt_soc_device::chr_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (m_4242 & 0x1 || m_411d & 0x04)
|
||||
if (m_4242 & 0x1 || m_411d & 0x04) // newer VT platforms only (not VT03/09), split out
|
||||
{
|
||||
logerror("vram write %04x %02x\n", offset, data);
|
||||
m_chrram[offset] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
int realaddr = calculate_real_video_address(offset, 1, 0);
|
||||
|
||||
address_space& spc = this->space(AS_PROGRAM);
|
||||
return spc.write_byte(realaddr, data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -775,7 +782,7 @@ void nes_vt_soc_device::scrambled_8000_w(uint16_t offset, uint8_t data)
|
||||
offset &= 0x7fff;
|
||||
|
||||
uint16_t addr = offset+0x8000;
|
||||
if ((m_411d & 0x01) && (m_411d & 0x03))
|
||||
if ((m_411d & 0x01) && (m_411d & 0x03)) // this condition is nonsense, maybe should be ((m_411d & 0x03) == 0x03) check it! (newer VT only, not VT03/09, split)
|
||||
{
|
||||
//CNROM compat
|
||||
logerror("%s: vtxx_cnrom_8000_w real address: (%04x) translated address: (%04x) %02x\n", machine().describe_context(), addr, offset + 0x8000, data);
|
||||
@ -787,13 +794,13 @@ void nes_vt_soc_device::scrambled_8000_w(uint16_t offset, uint8_t data)
|
||||
m_ppu->set_201x_reg(0x5, data * 8 + 7);
|
||||
|
||||
}
|
||||
else if (m_411d & 0x01)
|
||||
else if (m_411d & 0x01) // (newer VT only, not VT03/09, split)
|
||||
{
|
||||
//MMC1 compat, TODO
|
||||
logerror("%s: vtxx_mmc1_8000_w real address: (%04x) translated address: (%04x) %02x\n", machine().describe_context(), addr, offset + 0x8000, data);
|
||||
|
||||
}
|
||||
else if (m_411d & 0x02)
|
||||
else if (m_411d & 0x02) // (newer VT only, not VT03/09, split)
|
||||
{
|
||||
//UNROM compat
|
||||
logerror("%s: vtxx_unrom_8000_w real address: (%04x) translated address: (%04x) %02x\n", machine().describe_context(), addr, offset + 0x8000, data);
|
||||
@ -802,7 +809,7 @@ void nes_vt_soc_device::scrambled_8000_w(uint16_t offset, uint8_t data)
|
||||
m_410x[0x8] = ((data & 0x0F) << 1) + 1;
|
||||
update_banks();
|
||||
}
|
||||
else
|
||||
else // standard mode (VT03/09)
|
||||
{
|
||||
//logerror("%s: vtxx_mmc3_8000_w real address: (%04x) translated address: (%04x) %02x\n", machine().describe_context(), addr, offset+0x8000, data );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user