New working software items (a2600.xml)

--------------------------------------
Tarzan (prototype) [Hidden Palace, AJR]
This commit is contained in:
AJR 2026-05-23 12:14:31 -04:00
parent 4ca7063111
commit dd4991f318
5 changed files with 56 additions and 0 deletions

View File

@ -17034,6 +17034,18 @@ MOS Atari-made game NTSC ROMs had a CO16xxx number and PAL ROMs had CO17xxx numb
</part>
</software>
<software name="tarzan">
<description>Tarzan (prototype)</description>
<year>1984</year>
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="slot" value="a26_f0" />
<dataarea name="rom" size="16384">
<rom name="atari_tarzan_42a3.bin" size="16384" crc="15e22f06" sha1="a6d9a3375f9ca62123353760d0c78d05717de7d2"/>
</dataarea>
</part>
</software>
<software name="taskfrce">
<description>Task Force</description>
<year>1987</year>

View File

@ -41,6 +41,7 @@ DEFINE_DEVICE_TYPE(A26_ROM_4IN1, a26_rom_4in1_device, "vcs_4in1", "Atari VCS
DEFINE_DEVICE_TYPE(A26_ROM_8IN1, a26_rom_8in1_device, "vcs_8in1", "Atari VCS 2600 ROM Cart 8 in 1")
DEFINE_DEVICE_TYPE(A26_ROM_32IN1, a26_rom_32in1_device, "vcs_32in1", "Atari VCS 2600 ROM Cart 32 in 1")
DEFINE_DEVICE_TYPE(A26_ROM_X07, a26_rom_x07_device, "vcs_x07", "Atari VCS 2600 ROM Carts w/X07 bankswitch")
DEFINE_DEVICE_TYPE(A26_ROM_F0, a26_rom_f0_device, "vcs_f0", "Atari VCS 2600 ROM Carts w/F0 bankswitch")
@ -883,3 +884,31 @@ void a26_rom_x07_device::change_bank2(offs_t address)
{
m_bank->set_entry((address >> 4) & 0x0f);
}
/*-------------------------------------------------
"F0 Bankswitch" Carts:
read/write access to 0x1ff0-0x1ff1 & 0x1ff8-0x1ff9
determines the 4K ROM bank to be read
GAMES: Atari Tarzan (prototype)
-------------------------------------------------*/
a26_rom_f0_device::a26_rom_f0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: a26_rom_f6_device(mconfig, A26_ROM_F0, tag, owner, clock)
{
}
void a26_rom_f0_device::install_memory_handlers(address_space *space)
{
m_bank->configure_entries(0, 4, get_rom_base(), 0x1000);
space->install_read_bank(0x1000, 0x1fff, m_bank);
space->install_write_handler(0x1ff0, 0x1ff1, write8sm_delegate(*this, FUNC(a26_rom_f0_device::switch_bank)));
space->install_write_handler(0x1ff8, 0x1ff9, write8sm_delegate(*this, [this] (offs_t offset, u8) { switch_bank(offset + 2, 0); }, "bank"));
install_super_chip_handlers(space);
space->install_read_tap(0x1ff0, 0x1ff1, "bank",
[this] (offs_t address, u8 &, u8) { if (!machine().side_effects_disabled()) switch_bank(address - 0x1ff0, 0); });
space->install_read_tap(0x1ff8, 0x1ff9, "bank",
[this] (offs_t address, u8 &, u8) { if (!machine().side_effects_disabled()) switch_bank(address - 0x1ff8 + 2, 0); });
}

View File

@ -360,6 +360,17 @@ private:
};
// ======================> a26_rom_f0_device
class a26_rom_f0_device : public a26_rom_f6_device
{
public:
a26_rom_f0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void install_memory_handlers(address_space *space) override;
};
// device type definition
DECLARE_DEVICE_TYPE(A26_ROM_2K_4K, a26_rom_2k_4k_device)
@ -382,6 +393,7 @@ DECLARE_DEVICE_TYPE(A26_ROM_4IN1, a26_rom_4in1_device)
DECLARE_DEVICE_TYPE(A26_ROM_8IN1, a26_rom_8in1_device)
DECLARE_DEVICE_TYPE(A26_ROM_32IN1, a26_rom_32in1_device)
DECLARE_DEVICE_TYPE(A26_ROM_X07, a26_rom_x07_device)
DECLARE_DEVICE_TYPE(A26_ROM_F0, a26_rom_f0_device)
#endif // MAME_BUS_VCS_ROM_H

View File

@ -50,6 +50,7 @@ enum
A26_CM,
A26_X07,
A26_HARMONY,
A26_F0,
};
//-------------------------------------------------
@ -175,6 +176,7 @@ static const vcs_slot slot_list[] =
{ A26_32IN1, "a26_32in1" },
{ A26_X07, "a26_x07" },
{ A26_HARMONY, "a26_harmony" },
{ A26_F0, "a26_f0" },
};
static int vcs_get_pcb_id(const char *slot)

View File

@ -587,6 +587,7 @@ static void a2600_cart(device_slot_interface &device)
device.option_add("a26_32in1", A26_ROM_32IN1);
device.option_add("a26_x07", A26_ROM_X07);
device.option_add("a26_harmony", A26_ROM_HARMONY);
device.option_add("a26_f0", A26_ROM_F0);
}
void a2600_cons_state::a2600_cartslot(machine_config &config)