holeland.cpp: add dip locations and screen raw parameters [Angelo Salese]

This commit is contained in:
angelosa 2020-03-13 22:38:28 +01:00
parent 49c7f576db
commit 3463c5fab3
2 changed files with 78 additions and 75 deletions

View File

@ -6,9 +6,13 @@
driver by Mathis Rosenhauer
Notes:
- In stop mode press p1 start to freeze the screen, p2 start to resume
TODO:
- missing high bit of sprite X coordinate? (see round 2 and 3 of attract
mode in crzrally)
- crzrally: emulate steering wheel;
***************************************************************************/
@ -84,61 +88,62 @@ static INPUT_PORTS_START( holeland )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
// change any dipswitch in input test to show the list of settings
PORT_START("DSW1")
PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
PORT_SERVICE( 0x01, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW1:1")
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x00, DEF_STR( English ) )
PORT_DIPSETTING( 0x04, "Nihongo" )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x04, DEF_STR( Japanese ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x08, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x00, "60000" )
PORT_DIPSETTING( 0x20, "90000" )
PORT_DIPNAME( 0x40, 0x00, "Fase 3 Difficulty")
PORT_DIPNAME( 0x40, 0x00, "Phase 3 Difficulty") PORT_DIPLOCATION("SW1:7")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
PORT_DIPNAME( 0x80, 0x80, "Coin Mode" )
PORT_DIPNAME( 0x80, 0x80, "Coin Mode" ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x80, "A" )
PORT_DIPSETTING( 0x00, "B" )
PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x00, "Coin Case" )
PORT_DIPNAME( 0x03, 0x00, "Coin Case" ) PORT_DIPLOCATION("SW2:1,2")
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x01, "2" )
PORT_DIPSETTING( 0x02, "3" )
PORT_DIPSETTING( 0x03, "4" )
PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) )
PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4")
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x04, "3" )
PORT_DIPSETTING( 0x08, "4" )
PORT_DIPSETTING( 0x0c, "5" )
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) )
PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy) )
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:5,6")
PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy ) )
PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard ) )
PORT_DIPNAME( 0x40, 0x40, "Monsters" )
PORT_DIPNAME( 0x40, 0x40, "Monsters" ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x40, "Min" )
PORT_DIPSETTING( 0x00, "Max" )
PORT_DIPNAME( 0x80, 0x80, "Mode" ) /* seems to have no effect */
PORT_DIPNAME( 0x80, 0x80, "Mode" ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x00, "Stop" )
PORT_DIPSETTING( 0x80, "Play" )
INPUT_PORTS_END
static INPUT_PORTS_START( holeland2 )
PORT_INCLUDE( holeland )
PORT_INCLUDE( holeland )
PORT_MODIFY("DSW1")
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) )
PORT_MODIFY("DSW1")
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x00, DEF_STR( English ) )
PORT_DIPSETTING( 0x04, DEF_STR( Spanish ) )
PORT_DIPSETTING( 0x04, DEF_STR( Spanish ) )
INPUT_PORTS_END
static INPUT_PORTS_START( crzrally )
@ -160,51 +165,51 @@ static INPUT_PORTS_START( crzrally )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PC=1f37 (from 1f6c): accelerator in steering wheel mode
PORT_START("DSW1")
PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:1")
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x0c, 0x00, "Drive" )
PORT_DIPNAME( 0x0c, 0x00, "Drive" ) PORT_DIPLOCATION("SW1:3,4")
PORT_DIPSETTING( 0x00, "A" )
PORT_DIPSETTING( 0x04, "B" )
PORT_DIPSETTING( 0x08, "C" )
PORT_DIPSETTING( 0x0c, "D" )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x60, 0x60, "Extra Time" )
PORT_DIPNAME( 0x60, 0x60, "Extra Time" ) PORT_DIPLOCATION("SW1:6,7")
PORT_DIPSETTING( 0x00, DEF_STR( None ) )
PORT_DIPSETTING( 0x20, "5 Sec" )
PORT_DIPSETTING( 0x40, "10 Sec" )
PORT_DIPSETTING( 0x60, "15 Sec" )
PORT_DIPNAME( 0x80, 0x00, "Coin Mode" )
PORT_DIPNAME( 0x80, 0x00, "Coin Mode" ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) )
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2")
PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_B ) )
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:3,4")
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Difficulty ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Controller ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Joystick ) )
PORT_DIPSETTING( 0x00, "Wheel" )
PORT_DIPNAME( 0x80, 0x80, "Mode" ) /* seems to have no effect */
PORT_DIPSETTING( 0x00, "Steering Wheel" )
PORT_DIPNAME( 0x80, 0x80, "Mode" ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x00, "Stop" )
PORT_DIPSETTING( 0x80, "Play" )
INPUT_PORTS_END
@ -292,10 +297,8 @@ void holeland_state::holeland(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*16, 32*16);
screen.set_visarea(0*16, 32*16-1, 2*16, 30*16-1);
// TODO: 448i, compensate.
screen.set_raw((20000000/4)*4, 332*2, 0, 256*2, 256*2, 16*2, 240*2);
screen.set_screen_update(FUNC(holeland_state::screen_update_holeland));
screen.set_palette(m_palette);
@ -321,40 +324,6 @@ void holeland_state::holeland(machine_config &config)
speech.add_route(ALL_OUTPUTS, "mono", 1.0);
}
/*
Crazy Rally
Tecfri, 1985
PCB Layout
|----------------------------------------------|
| 20MHz |
| Z80 |
| PAL |
| 3.7D 2149 |
| AY-3-8910 |
| DSW2 DSW1 2.7F 2149 82S147.1F|
|1 |
|8 AY-3-8910 1.7G 5.5G |
|W 555 |
|A 4.5H |
|Y |
| VOL 2128 9.1I |
| 741 |
| TDA1510 8.1K |
| 2149 2149 PAL |
| 82S129.9L 2149 2149 PAL 7.1L |
| 82S129.9M 2149 2149 PAL |
| 82S129.9N 2149 2149 6.1N |
|----------------------------------------------|
Notes:
Z80 clock - 5.000MHz [20/4]
AY3-8910 clock - 1.25MHz [20/16]
VSync - 59Hz
HSync - 15.08kHz
*/
void holeland_state::crzrally(machine_config &config)
{
/* basic machine hardware */
@ -373,10 +342,7 @@ void holeland_state::crzrally(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(59);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_raw(20000000/4, 332, 0, 256, 256, 16, 240);
screen.set_screen_update(FUNC(holeland_state::screen_update_crzrally));
screen.set_palette(m_palette);
@ -461,6 +427,40 @@ ROM_START( holeland2 )
ROM_LOAD( "82s129.3n", 0x0200, 0x0100, CRC(3d7b3af6) SHA1(0c4f95b26e9fe25a5d8c79f06e7ceab78a07d35c) ) /* Blue component */
ROM_END
/*
Crazy Rally
Tecfri, 1985
PCB Layout
|----------------------------------------------|
| 20MHz |
| Z80 |
| PAL |
| 3.7D 2149 |
| AY-3-8910 |
| DSW2 DSW1 2.7F 2149 82S147.1F|
|1 |
|8 AY-3-8910 1.7G 5.5G |
|W 555 |
|A 4.5H |
|Y |
| VOL 2128 9.1I |
| 741 |
| TDA1510 8.1K |
| 2149 2149 PAL |
| 82S129.9L 2149 2149 PAL 7.1L |
| 82S129.9M 2149 2149 PAL |
| 82S129.9N 2149 2149 6.1N |
|----------------------------------------------|
Notes:
Z80 clock - 5.000MHz [20/4]
AY3-8910 clock - 1.25MHz [20/16]
VSync - 59Hz
HSync - 15.08kHz
*/
ROM_START( crzrally )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "1.7g", 0x0000, 0x4000, CRC(8fe01f86) SHA1(3e08f2cdcd08b25f2bb32d1c4d4caf4ac60c94d6) )

View File

@ -6347,6 +6347,9 @@ static INPUT_PORTS_START( twineagl )
// default taken off original Japanese DIP sheet
// Cabinet is user choice
// We use Licensor Option 2 instead of 1 just to avoid the "For use in Japan"
// TODO: the copyright dips actually don't have any effect on a real (European) PCB
// Most likely these are overwritten by the lead JPs that the board has
// (4x3 near SW2 at J2, 2x3 near two empty ROM sockets U31/U37 at C10).
PORT_START("DSW") //2 DSWs - $600001 & 3.b
PORT_DIPNAME( 0x0001, 0x0001, "Copyright / License" ) PORT_DIPLOCATION("SW1:1") /* Always "Seta" if sim. players = 1 */
PORT_DIPSETTING( 0x0000, "Taito America / Romstar" ) PORT_CONDITION("DSW",0x4000,NOTEQUALS,0x4000)