summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ltcasino.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ltcasino.cpp')
-rw-r--r--src/mame/drivers/ltcasino.cpp136
1 files changed, 102 insertions, 34 deletions
diff --git a/src/mame/drivers/ltcasino.cpp b/src/mame/drivers/ltcasino.cpp
index b346e674859..8d5ffbf5862 100644
--- a/src/mame/drivers/ltcasino.cpp
+++ b/src/mame/drivers/ltcasino.cpp
@@ -11,11 +11,13 @@
- Clocks need to be verified
- Figure out the rest of the dipswitches
- Keyboard
+ - Battery backed RAM for High Scores & Keyboard message
Notes:
+ - The color versions are commonly called Little Casino II (as stickered on cabinet) - This is NOT refected on the title screen
- Color version of the first version is undumped (flyer exists)?
- - At least one other version of ltcasinn is undumped. It shows
- 'PLEASE MAKE SELECTION!' instead of 'PLEASE PICK YOUR POSION!'
+ - In v18_10_rf.ic18, around 0x600 is text showing a service mode screen / dipswitch settings
+ How do you activate it?
Mini Vegas
@@ -151,6 +153,8 @@ void ltcasino_state::main_map(address_map &map)
// INPUT PORT DEFINITIONS
//**************************************************************************
+
+
static INPUT_PORTS_START( ltcasino )
PORT_START("COIN")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1) PORT_WRITE_LINE_DEVICE_MEMBER("pia0", pia6821_device, ca1_w)
@@ -162,13 +166,13 @@ static INPUT_PORTS_START( ltcasino )
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3) PORT_NAME("Button 3")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4) PORT_NAME("Button 4")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5) PORT_NAME("Button 5")
- PORT_DIPNAME(0x20, 0x00, "Enable Craps") // off to enter service
+ PORT_DIPNAME(0x20, 0x00, "Enable Craps") // off to enter service - likely mapped to DSW3
PORT_DIPSETTING( 0x20, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x40, 0x00, "Enable Poker") // off to enter service
+ PORT_DIPNAME(0x40, 0x00, "Enable Poker") // off to enter service - likely mapped to DSW3
PORT_DIPSETTING( 0x40, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x80, 0x00, "Enable Black Jack") // off to enter service
+ PORT_DIPNAME(0x80, 0x00, "Enable Black Jack") // off to enter service - likely mapped to DSW3
PORT_DIPSETTING( 0x80, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
@@ -178,12 +182,14 @@ static INPUT_PORTS_START( ltcasino )
PORT_DIPUNKNOWN_DIPLOC(0x04, IP_ACTIVE_LOW, "DSW3:3")
PORT_DIPUNKNOWN_DIPLOC(0x08, IP_ACTIVE_LOW, "DSW3:4")
PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "DSW3:5")
- PORT_DIPNAME(0x60, 0x00, DEF_STR( Service_Mode ))
+ PORT_DIPNAME(0x20, 0x00, DEF_STR( Service_Mode ))
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:6")
+ PORT_DIPNAME(0x40, 0x00, "Enable Hi-Lo") // off to enter service
PORT_DIPSETTING( 0x40, DEF_STR( Off ))
- PORT_DIPSETTING( 0x60, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:6,7")
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:7")
PORT_DIPNAME(0x80, 0x00, DEF_STR( Demo_Sounds ))
PORT_DIPSETTING( 0x80, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
@@ -206,8 +212,8 @@ static INPUT_PORTS_START( ltcasino )
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x10, DEF_STR( On )) // limits to 15 coins
PORT_DIPLOCATION("A:5")
- PORT_DIPNAME(0x20, 0x00, DEF_STR( Unknown ))
- PORT_DIPSETTING( 0x00, DEF_STR( On )) // needs to be 0 or ltcasinn can reset on coin-up
+ PORT_DIPNAME(0x20, 0x00, DEF_STR( Unknown )) // needs to be 0 or ltcasinn can reset on coin-up
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPSETTING( 0x20, DEF_STR( Off ))
PORT_DIPLOCATION("A:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, IP_ACTIVE_LOW, "A:7")
@@ -230,7 +236,7 @@ static INPUT_PORTS_START( ltcasino )
PORT_DIPSETTING( 0x40, "100000 & 200000")
PORT_DIPSETTING( 0x00, DEF_STR( None ))
PORT_DIPLOCATION("B:7")
- PORT_DIPNAME(0x80, 0x80, "Demo") // some kind of demo play?
+ PORT_DIPNAME(0x80, 0x80, "Auto Play")
PORT_DIPSETTING( 0x80, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPLOCATION("B:8")
@@ -242,30 +248,74 @@ static INPUT_PORTS_START( ltcasinn )
PORT_MODIFY("COIN")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_MODIFY("S")
+ PORT_DIPNAME(0x01, 0x01, "Keyboard")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:1")
+ PORT_DIPNAME(0x20, 0x00, "Enable Enable Horse")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:6")
+ PORT_DIPNAME(0x40, 0x00, "Enable Slots")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:7")
+
+ PORT_MODIFY("A")
+ PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "A:5") // Coin Limit for other sets, v18.1 always locked to 15 coins?
+ PORT_DIPUNKNOWN_DIPLOC(0x20, IP_ACTIVE_LOW, "A:6") // for v17.0 this one needs to be 0x00, but not here???
+ PORT_DIPNAME(0x40, 0x00, DEF_STR( Unknown ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On )) // needs to be 0x00 or ltcasinn can reset on coin-up - But controls Hi-scores display??????
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPLOCATION("A:7")
+
PORT_MODIFY("B")
+ PORT_DIPUNKNOWN_DIPLOC(0x01, IP_ACTIVE_LOW, "B:1") // Moves "Show High Scores" to A:7 - see about note
PORT_DIPNAME(0x02, 0x02, "Memory Test") // tests d000 to d7ff
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x02, DEF_STR( On ))
PORT_DIPLOCATION("B:2")
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( ltcasinna )
+ PORT_INCLUDE(ltcasino)
+
+ PORT_MODIFY("COIN")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_MODIFY("S")
PORT_DIPNAME(0x01, 0x01, "Keyboard")
PORT_DIPSETTING( 0x01, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPLOCATION("DSW3:1")
+ PORT_DIPNAME(0x20, 0x00, "Enable Enable Horse")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:6")
+
+ PORT_MODIFY("A")
+ PORT_DIPNAME(0x20, 0x00, DEF_STR( Unknown )) // needs to be 0x00 or v17.0 will reset on coin-up - different then v18.1
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_DIPLOCATION("A:6")
+ PORT_DIPUNKNOWN_DIPLOC(0x40, IP_ACTIVE_LOW, "A:7") // for v18.1 this one needs to be 0x00, but not here???
+
+ PORT_MODIFY("B")
+ PORT_DIPNAME(0x02, 0x02, "Memory Test") // tests d000 to d7ff
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( On ))
+ PORT_DIPLOCATION("B:2")
INPUT_PORTS_END
static INPUT_PORTS_START( mv4in1 )
PORT_INCLUDE(ltcasino)
PORT_MODIFY("Q")
- PORT_DIPNAME(0x20, 0x00, "Enable Dice") // must be off to enter service
+ PORT_DIPNAME(0x20, 0x00, "Enable Dice") // must be off to enter service - likely mapped to DSW3
PORT_DIPSETTING( 0x20, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x40, 0x00, "Enable Poker") // must be off to enter service
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x80, 0x00, "Enable 21") // must be off to enter service
+ PORT_DIPNAME(0x80, 0x00, "Enable 21") // must be off to enter service - likely mapped to DSW3
PORT_DIPSETTING( 0x80, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
@@ -274,6 +324,10 @@ static INPUT_PORTS_START( mv4in1 )
PORT_DIPSETTING( 0x01, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPLOCATION("DSW3:1")
+ PORT_DIPNAME(0x40, 0x00, "Red-Dog") // must be off to enter service
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPLOCATION("DSW3:7")
INPUT_PORTS_END
@@ -486,19 +540,6 @@ ROM_START( ltcasino )
ROM_LOAD( "v", 0x0000, 0x0800, CRC(f1f75675) SHA1(8f3777e6b2a3f824f94b28669cac501ec02bbf36) )
ROM_END
-ROM_START( ltcasinn )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "v17_00_ra.bin", 0x8000, 0x1000, CRC(1a595442) SHA1(b8fe3e5ed2024a57187c0ce547c1bbef2429ed63) )
- ROM_LOAD( "v17_00_rb.bin", 0x9000, 0x1000, CRC(4f5502c1) SHA1(cd1b7c08d26fed71c45e44ebd208bd18dc262e8f) )
- ROM_LOAD( "v17_00_rc.bin", 0xa000, 0x1000, CRC(990283b8) SHA1(8a3fe5be8381894b8e8dd14c7d42190e60a25600) )
- ROM_LOAD( "v17_00_rd.bin", 0xb000, 0x1000, CRC(884f39dc) SHA1(fe149faf118279205e82760c5052cefb88a2f5be) )
- ROM_LOAD( "v17_00_re.bin", 0xc000, 0x1000, CRC(fae38204) SHA1(e5908734cee0a89d873ab3761ded285f8ae138d3) )
- ROM_LOAD( "v17_00_rf.bin", 0xf000, 0x1000, CRC(7e8ad9d3) SHA1(8cbe342af7d9f32b2214664db318edd3d2e75630) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "v17_00_rv.bin", 0x0000, 0x1000, CRC(84cbee7b) SHA1(742831d5ae0db6c7c644a18a837831ee0474d472) )
-ROM_END
-
ROM_START( mv4in1 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "g.ic13", 0x8000, 0x1000, CRC(ac33bd85) SHA1(fd555f70d0a7040473d35ec38e19185671a471ea) )
@@ -512,12 +553,39 @@ ROM_START( mv4in1 )
ROM_LOAD( "a.ic19", 0x0000, 0x1000, CRC(a25c125e) SHA1(e0ba83ccddbd82a2bf52585ae0accb9192cbb00e) )
ROM_END
+ROM_START( ltcasin2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "v18_10_ra.bin", 0x8000, 0x1000, CRC(f0c5cc96) SHA1(ec50918ba2a2487df70694f9e1a52d4b8d1bc7e2) ) // board was marked version 18.1 (C)1984
+ ROM_LOAD( "v18_10_rb.bin", 0x9000, 0x1000, CRC(2ece16e4) SHA1(ef6adc45be2ecc510cd8b2e9682635066013a5e4) )
+ ROM_LOAD( "v18_10_rc.bin", 0xa000, 0x1000, CRC(16bae5c9) SHA1(e5cb61d9dcae3c46c7139f3494d1bf981ec8821f) )
+ ROM_LOAD( "v18_10_rd.bin", 0xb000, 0x1000, CRC(d12f2d6b) SHA1(e3544bf6b778c21b704a01f1ed06d6517ca01604) )
+ ROM_LOAD( "v18_10_re.bin", 0xc000, 0x1000, CRC(2acdad10) SHA1(2732b791fea0a9d1c6e4c174739381466f2b0270) )
+ ROM_LOAD( "v18_10_rf.bin", 0xf000, 0x1000, CRC(b711c779) SHA1(2bab84cab174a35fccfd23003a8a41aa241d4595) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v18_10_rv.bin", 0x0000, 0x1000, CRC(7209898d) SHA1(94bd7e8c3a544429af721e9564c11cc56d7805be) )
+ROM_END
+
+ROM_START( ltcasin2a )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "v17_00_ra.bin", 0x8000, 0x1000, CRC(1a595442) SHA1(b8fe3e5ed2024a57187c0ce547c1bbef2429ed63) )
+ ROM_LOAD( "v17_00_rb.bin", 0x9000, 0x1000, CRC(4f5502c1) SHA1(cd1b7c08d26fed71c45e44ebd208bd18dc262e8f) )
+ ROM_LOAD( "v17_00_rc.bin", 0xa000, 0x1000, CRC(990283b8) SHA1(8a3fe5be8381894b8e8dd14c7d42190e60a25600) )
+ ROM_LOAD( "v17_00_rd.bin", 0xb000, 0x1000, CRC(884f39dc) SHA1(fe149faf118279205e82760c5052cefb88a2f5be) )
+ ROM_LOAD( "v17_00_re.bin", 0xc000, 0x1000, CRC(fae38204) SHA1(e5908734cee0a89d873ab3761ded285f8ae138d3) )
+ ROM_LOAD( "v17_00_rf.bin", 0xf000, 0x1000, CRC(7e8ad9d3) SHA1(8cbe342af7d9f32b2214664db318edd3d2e75630) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v17_00_rv.bin", 0x0000, 0x1000, CRC(84cbee7b) SHA1(742831d5ae0db6c7c644a18a837831ee0474d472) )
+ROM_END
+
//**************************************************************************
// SYSTEM DRIVERS
//**************************************************************************
-// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
-GAMEL( 1982, ltcasino, 0, ltcasino, ltcasino, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino (older)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasino )
-GAMEL( 1983, mv4in1, ltcasino, mv4in1, mv4in1, ltcasino_state, init_mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
-GAMEL( 1984, ltcasinn, 0, ltcasinn, ltcasinn, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino (newer)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
+// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
+GAMEL( 1982, ltcasino, 0, ltcasino, ltcasino, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasino )
+GAMEL( 1983, mv4in1, ltcasino, mv4in1, mv4in1, ltcasino_state, init_mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
+GAMEL( 1984, ltcasin2, 0, ltcasinn, ltcasinn, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino II v18.1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
+GAMEL( 1984, ltcasin2a, ltcasin2, ltcasinn, ltcasinna, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino II v17.0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
/span>, 0x80, 0x80)); /* GREY */ palette_set_color(machine, 3, MAKE_RGB(0xff, 0xff, 0xff)); /* WHITE */ } /************************************* * * Read handlers * *************************************/ static READ8_HANDLER( canyon_switches_r ) { UINT8 val = 0; if ((input_port_read(machine, "IN2") >> (offset & 7)) & 1) { val |= 0x80; } if ((input_port_read(machine, "IN1") >> (offset & 3)) & 1) { val |= 0x01; } return val; } static READ8_HANDLER( canyon_options_r ) { return (input_port_read(machine, "DSW") >> (2 * (~offset & 3))) & 3; } /************************************* * * Write handlers * *************************************/ static WRITE8_HANDLER( canyon_led_w ) { set_led_status(offset & 0x01, offset & 0x02); } /************************************* * * Main CPU memory handlers * *************************************/ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM AM_RANGE(0x0400, 0x0401) AM_WRITE(canyon_motor_w) AM_RANGE(0x0500, 0x0500) AM_WRITE(canyon_explode_w) AM_RANGE(0x0501, 0x0501) AM_WRITE(watchdog_reset_w) /* watchdog, disabled in service mode */ AM_RANGE(0x0600, 0x0603) AM_WRITE(canyon_whistle_w) AM_RANGE(0x0680, 0x0683) AM_WRITE(canyon_led_w) AM_RANGE(0x0700, 0x0703) AM_WRITE(canyon_attract_w) AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(canyon_videoram_w) AM_BASE(&canyon_videoram) AM_RANGE(0x1000, 0x17ff) AM_READWRITE(canyon_switches_r, SMH_NOP) /* sloppy code writes here */ AM_RANGE(0x1800, 0x1fff) AM_READ(canyon_options_r) AM_RANGE(0x2000, 0x3fff) AM_ROM ADDRESS_MAP_END /************************************* * * Port definitions * *************************************/ static INPUT_PORTS_START( canyon ) PORT_START("DSW") PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW:1,2") PORT_DIPSETTING( 0x00, DEF_STR( English ) ) PORT_DIPSETTING( 0x01, DEF_STR( Spanish ) ) PORT_DIPSETTING( 0x02, DEF_STR( French ) ) PORT_DIPSETTING( 0x03, DEF_STR( German ) ) PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW:3" ) /* Manual says these are unused */ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW:4" ) /* Manual says these are unused */ PORT_DIPNAME( 0x30, 0x00, "Misses Per Play" ) PORT_DIPLOCATION("SW:5,6") PORT_DIPSETTING( 0x00, "3" ) PORT_DIPSETTING( 0x10, "4" ) PORT_DIPSETTING( 0x20, "5" ) PORT_DIPSETTING( 0x30, "6" ) PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:7,8") PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_START("IN2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) PORT_SERVICE( 0x10, IP_ACTIVE_HIGH ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Hiscore Reset") PORT_CODE(KEYCODE_H) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT ) /* SLAM */ PORT_START("MOTOR1") PORT_ADJUSTER( 20, "Motor 1 RPM" ) PORT_START("MOTOR2") PORT_ADJUSTER( 30, "Motor 2 RPM" ) PORT_START("WHISTLE1") PORT_ADJUSTER( 70, "Whistle 1 Freq" ) PORT_START("WHISTLE2") PORT_ADJUSTER( 80, "Whistle 2 Freq" ) INPUT_PORTS_END /************************************* * * Graphics definitions * *************************************/ static const gfx_layout tile_layout = { 8, 8, 64, 1, { 0 }, { 0x4, 0x5, 0x6, 0x7, 0xC, 0xD, 0xE, 0xF }, { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70 }, 0x80 }; static const gfx_layout sprite_layout = { 32, 16, 4, 1, { 0 }, { 0x007, 0x006, 0x005, 0x004, 0x003, 0x002, 0x001, 0x000, 0x00F, 0x00E, 0x00D, 0x00C, 0x00B, 0x00A, 0x009, 0x008, 0x107, 0x106, 0x105, 0x104, 0x103, 0x102, 0x101, 0x100, 0x10F, 0x10E, 0x10D, 0x10C, 0x10B, 0x10A, 0x109, 0x108 }, { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0 }, 0x200 }; static GFXDECODE_START( canyon ) GFXDECODE_ENTRY( "gfx1", 0, tile_layout, 0, 2 ) GFXDECODE_ENTRY( "gfx2", 0, sprite_layout, 0, 2 ) GFXDECODE_END /************************************* * * Machine driver * *************************************/ static MACHINE_DRIVER_START( canyon ) /* basic machine hardware */ MDRV_CPU_ADD("main", M6502, 12096000 / 16) MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", nmi_line_pulse) MDRV_WATCHDOG_VBLANK_INIT(8) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750)) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_SIZE(256, 240) MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) MDRV_GFXDECODE(canyon) MDRV_PALETTE_LENGTH(4) MDRV_PALETTE_INIT(canyon) MDRV_VIDEO_START(canyon) MDRV_VIDEO_UPDATE(canyon) /* sound hardware */ MDRV_SPEAKER_STANDARD_STEREO("left", "right") MDRV_SOUND_ADD("discrete", DISCRETE, 0) MDRV_SOUND_CONFIG_DISCRETE(canyon) MDRV_SOUND_ROUTE(0, "left", 1.0) MDRV_SOUND_ROUTE(1, "right", 1.0) MACHINE_DRIVER_END /************************************* * * ROM definitions * *************************************/ ROM_START( canyon ) ROM_REGION( 0x4000, "main", 0 ) ROM_LOAD_NIB_LOW ( "9499-01.j1", 0x3000, 0x0400, CRC(31800767) SHA1(d4aebe12d3c45a2a8a361dc6f63e1a6230a78c17) ) ROM_LOAD_NIB_HIGH( "9503-01.p1", 0x3000, 0x0400, CRC(1eddbe28) SHA1(7d30280bf9edff743c16386d7cdec78094477996) ) ROM_LOAD ( "9496-01.d1", 0x3800, 0x0800, CRC(8be15080) SHA1(095c15e9ac91623b2d514858dca2e4c261d36fd0) ) ROM_REGION( 0x0400, "gfx1", ROMREGION_DISPOSE ) ROM_LOAD( "9492-01.n8", 0x0000, 0x0400, CRC(7449f754) SHA1(a8ffc39e1a86c94487551f5026eedbbd066b12c9) ) ROM_REGION( 0x0100, "gfx2", ROMREGION_DISPOSE ) ROM_LOAD_NIB_LOW ( "9506-01.m5", 0x0000, 0x0100, CRC(0d63396a) SHA1(147fae3b02a86310c8d022a7e7cfbf71ea511616) ) ROM_LOAD_NIB_HIGH( "9505-01.n5", 0x0000, 0x0100, CRC(60507c07) SHA1(fcb76890cbaa37e02392bf8b97f7be9a6fe6a721) ) ROM_REGION( 0x0100, "proms", 0 ) ROM_LOAD( "9491-01.j6", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync (not used) */ ROM_END ROM_START( canyonp ) ROM_REGION( 0x4000, "main", 0 ) ROM_LOAD_NIB_LOW ( "cbp3000l.j1", 0x3000, 0x0800, CRC(49cf29a0) SHA1(b58f024f45f85e5c2a48a95c60e80fd1be60eaac) ) ROM_LOAD_NIB_HIGH( "cbp3000m.p1", 0x3000, 0x0800, CRC(b4385c23) SHA1(b550dfe9182f2b29aedba160a0917ca78b82f0e7) ) ROM_LOAD_NIB_LOW ( "cbp3800l.h1", 0x3800, 0x0800, CRC(c7ee4431) SHA1(7a0f4454a981c4e9ee27e273e9a8379458e660e5) ) ROM_LOAD_NIB_HIGH( "cbp3800m.r1", 0x3800, 0x0800, CRC(94246a9a) SHA1(5ff8b69fb744a5f62d4cf291e8f25e3620b479e7) ) ROM_REGION( 0x0400, "gfx1", ROMREGION_DISPOSE ) ROM_LOAD( "9492-01.n8", 0x0000, 0x0400, CRC(7449f754) SHA1(a8ffc39e1a86c94487551f5026eedbbd066b12c9) ) ROM_REGION( 0x0100, "gfx2", ROMREGION_DISPOSE ) ROM_LOAD_NIB_LOW ( "9506-01.m5", 0x0000, 0x0100, CRC(0d63396a) SHA1(147fae3b02a86310c8d022a7e7cfbf71ea511616) ) ROM_LOAD_NIB_HIGH( "9505-01.n5", 0x0000, 0x0100, CRC(60507c07) SHA1(fcb76890cbaa37e02392bf8b97f7be9a6fe6a721) ) ROM_REGION( 0x0100, "proms", 0 ) ROM_LOAD( "9491-01.j6", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync (not used) */ ROM_END /************************************* * * Game drivers * *************************************/ GAME( 1977, canyon, 0, canyon, canyon, 0, ROT0, "Atari", "Canyon Bomber", 0 ) GAME( 1977, canyonp, canyon, canyon, canyon, 0, ROT0, "Atari", "Canyon Bomber (prototype)", 0 )