mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
jaleco/psychic5.cpp: Added DIP switch locations. [Domenico Cervini]
This commit is contained in:
parent
31349a6a29
commit
4f01591d28
@ -1055,47 +1055,38 @@ INPUT_PORTS_START( psychic5 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:6")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
|
||||
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1")
|
||||
PORT_DIPSETTING( 0x80, "2" )
|
||||
PORT_DIPSETTING( 0xc0, "3" )
|
||||
PORT_DIPSETTING( 0x40, "4" )
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Invulnerability (Cheat)" )
|
||||
PORT_DIPNAME( 0x01, 0x01, "Invulnerability (Cheat)" ) PORT_DIPLOCATION("SW2:8")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
|
||||
PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:6,5,4")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )
|
||||
@ -1104,6 +1095,15 @@ INPUT_PORTS_START( psychic5 )
|
||||
PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:3,2,1")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( bombsa )
|
||||
@ -1127,10 +1127,10 @@ INPUT_PORTS_START( bombsa )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW1:5" ) // Coin_B
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:4" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" )
|
||||
PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, "2 Coins 1 Credit/4 Coins 3 Credits" )
|
||||
PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:2,1")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, "2 Coins 1 Credit/4 Coins 3 Credits" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) )
|
||||
|
||||
PORT_START("DSW2")
|
||||
@ -1196,7 +1196,7 @@ void psychic5_state::psychic5(machine_config &config)
|
||||
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); // was 53.8 Hz before, assume same as Bombs Away
|
||||
screen.set_raw(XTAL(12'000'000)/2, 394, 0, 256, 282, 16, 240); // was 53.8 Hz before, assume same as Bombs Away
|
||||
screen.set_screen_update(FUNC(psychic5_state::screen_update));
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_psychic5);
|
||||
@ -1238,7 +1238,7 @@ void bombsa_state::bombsa(machine_config &config)
|
||||
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); // Measured as: VSync 54Hz, HSync 15.25kHz
|
||||
screen.set_raw(XTAL(12'000'000)/2, 394, 0, 256, 282, 16, 240); // Measured as: VSync 54Hz, HSync 15.25kHz
|
||||
screen.set_screen_update(FUNC(bombsa_state::screen_update));
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bombsa);
|
||||
|
@ -166,8 +166,8 @@ protected:
|
||||
void osborne1_op(address_map &map);
|
||||
void osborne1_io(address_map &map);
|
||||
|
||||
u8 bank2_2xxx_3xxx_r(offs_t offset);
|
||||
void bank2_2xxx_3xxx_w(offs_t offset, u8 data);
|
||||
u8 bank2_peripherals_r(offs_t offset);
|
||||
void bank2_peripherals_w(offs_t offset, u8 data);
|
||||
void videoram_w(offs_t offset, u8 data);
|
||||
u8 opcode_r(offs_t offset);
|
||||
void bankswitch_w(offs_t offset, u8 data);
|
||||
@ -271,8 +271,8 @@ protected:
|
||||
|
||||
void osborne1sp_mem(address_map &map);
|
||||
|
||||
u8 bank2_2xxx_3xxx_r(offs_t offset);
|
||||
void bank2_2xxx_3xxx_w(offs_t offset, u8 data);
|
||||
u8 bank2_peripherals_r(offs_t offset);
|
||||
void bank2_peripherals_w(offs_t offset, u8 data);
|
||||
|
||||
private:
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
@ -306,7 +306,7 @@ private:
|
||||
};
|
||||
|
||||
|
||||
u8 osborne1_state::bank2_2xxx_3xxx_r(offs_t offset)
|
||||
u8 osborne1_state::bank2_peripherals_r(offs_t offset)
|
||||
{
|
||||
// Since each peripheral only checks two bits, many addresses will
|
||||
// result in multiple peripherals attempting to drive the bus. This is
|
||||
@ -333,7 +333,7 @@ u8 osborne1_state::bank2_2xxx_3xxx_r(offs_t offset)
|
||||
return data;
|
||||
}
|
||||
|
||||
void osborne1_state::bank2_2xxx_3xxx_w(offs_t offset, u8 data)
|
||||
void osborne1_state::bank2_peripherals_w(offs_t offset, u8 data)
|
||||
{
|
||||
// Handle writes to the I/O area
|
||||
if ((offset & 0x900) == 0x100) // Floppy
|
||||
@ -346,9 +346,9 @@ void osborne1_state::bank2_2xxx_3xxx_w(offs_t offset, u8 data)
|
||||
m_pia1->write(offset & 0x03, data);
|
||||
}
|
||||
|
||||
u8 osborne1sp_state::bank2_2xxx_3xxx_r(offs_t offset)
|
||||
u8 osborne1sp_state::bank2_peripherals_r(offs_t offset)
|
||||
{
|
||||
u8 data = osborne1_state::bank2_2xxx_3xxx_r(offset);
|
||||
u8 data = osborne1_state::bank2_peripherals_r(offset);
|
||||
|
||||
if ((offset & 0xc00) == 0x400) // SCREEN-PAC
|
||||
data &= 0xfb;
|
||||
@ -356,9 +356,9 @@ u8 osborne1sp_state::bank2_2xxx_3xxx_r(offs_t offset)
|
||||
return data;
|
||||
}
|
||||
|
||||
void osborne1sp_state::bank2_2xxx_3xxx_w(offs_t offset, u8 data)
|
||||
void osborne1sp_state::bank2_peripherals_w(offs_t offset, u8 data)
|
||||
{
|
||||
osborne1_state::bank2_2xxx_3xxx_w(offset, data);
|
||||
osborne1_state::bank2_peripherals_w(offset, data);
|
||||
|
||||
if ((offset & 0xc00) == 0x400) // SCREEN-PAC
|
||||
{
|
||||
@ -808,14 +808,14 @@ void osborne1_state::osborne1_mem(address_map &map)
|
||||
|
||||
map(0x0000, 0x3fff).view(m_rom_view);
|
||||
m_rom_view[0](0x0000, 0x0fff).mirror(0x1000).rom().region("maincpu", 0).unmapw();
|
||||
m_rom_view[0](0x2000, 0x2fff).mirror(0x1000).rw(FUNC(osborne1_state::bank2_2xxx_3xxx_r), FUNC(osborne1_state::bank2_2xxx_3xxx_w));
|
||||
m_rom_view[0](0x2000, 0x2fff).mirror(0x1000).rw(FUNC(osborne1_state::bank2_peripherals_r), FUNC(osborne1_state::bank2_peripherals_w));
|
||||
}
|
||||
|
||||
void osborne1sp_state::osborne1sp_mem(address_map &map)
|
||||
{
|
||||
osborne1_mem(map);
|
||||
|
||||
m_rom_view[0](0x2000, 0x2fff).mirror(0x1000).rw(FUNC(osborne1sp_state::bank2_2xxx_3xxx_r), FUNC(osborne1sp_state::bank2_2xxx_3xxx_w));
|
||||
m_rom_view[0](0x2000, 0x2fff).mirror(0x1000).rw(FUNC(osborne1sp_state::bank2_peripherals_r), FUNC(osborne1sp_state::bank2_peripherals_w));
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user