jaleco/psychic5.cpp: Added DIP switch locations. [Domenico Cervini]

This commit is contained in:
Vas Crabb 2023-04-01 01:46:58 +11:00
parent 31349a6a29
commit 4f01591d28
2 changed files with 36 additions and 36 deletions

View File

@ -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);

View File

@ -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));
}