trunk/src/mame/drivers/suprloco.c
| r18824 | r18825 | |
| 9 | 9 | to make red parts of sprites blink to purple, it's not clear how this is |
| 10 | 10 | implemented in hardware, there's a hack to support it. |
| 11 | 11 | |
| 12 | Sega PCB 834-5137 |
| 13 | Sega 315-5015 (Sega custom encrypted Z80) |
| 14 | Sega 315-5011 |
| 15 | Sega 315-5012 |
| 16 | Z80 |
| 17 | 8255 |
| 18 | 8 switch Dipswitch x 2 |
| 19 | |
| 12 | 20 | ******************************************************************************/ |
| 13 | 21 | |
| 14 | 22 | #include "emu.h" |
| r18824 | r18825 | |
| 81 | 89 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 82 | 90 | |
| 83 | 91 | PORT_START("DSW1") |
| 84 | | PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_A ) ) |
| 92 | PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3") |
| 85 | 93 | PORT_DIPSETTING( 0x07, DEF_STR( 5C_1C ) ) |
| 86 | 94 | PORT_DIPSETTING( 0x06, DEF_STR( 4C_1C ) ) |
| 87 | 95 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| r18824 | r18825 | |
| 90 | 98 | PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) |
| 91 | 99 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) |
| 92 | 100 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) |
| 93 | | PORT_DIPNAME( 0x38, 0x00, DEF_STR( Coin_B ) ) |
| 101 | PORT_DIPNAME( 0x38, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:4,5,6") |
| 94 | 102 | PORT_DIPSETTING( 0x38, DEF_STR( 5C_1C ) ) |
| 95 | 103 | PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) |
| 96 | 104 | PORT_DIPSETTING( 0x28, DEF_STR( 3C_1C ) ) |
| r18824 | r18825 | |
| 99 | 107 | PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) |
| 100 | 108 | PORT_DIPSETTING( 0x10, DEF_STR( 1C_3C ) ) |
| 101 | 109 | PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) |
| 102 | | PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) ) |
| 110 | PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:7,8") |
| 103 | 111 | PORT_DIPSETTING( 0x00, "2" ) |
| 104 | 112 | PORT_DIPSETTING( 0x40, "3" ) |
| 105 | 113 | PORT_DIPSETTING( 0x80, "4" ) |
| 106 | 114 | PORT_DIPSETTING( 0xc0, "5" ) |
| 107 | 115 | |
| 108 | 116 | PORT_START("DSW2") |
| 109 | | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) |
| 117 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:1,2") |
| 110 | 118 | PORT_DIPSETTING( 0x00, "20000" ) |
| 111 | 119 | PORT_DIPSETTING( 0x01, "30000" ) |
| 112 | 120 | PORT_DIPSETTING( 0x02, "40000" ) |
| 113 | 121 | PORT_DIPSETTING( 0x03, "50000" ) |
| 114 | | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) |
| 122 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWB:3") |
| 115 | 123 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 116 | 124 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 117 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) |
| 125 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SWB:4") |
| 118 | 126 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 119 | 127 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 120 | | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) |
| 128 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:5") |
| 121 | 129 | PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) |
| 122 | 130 | PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) |
| 123 | | PORT_DIPNAME( 0x20, 0x20, "Infinite Lives (Cheat)") |
| 131 | PORT_DIPNAME( 0x20, 0x20, "Infinite Lives (Cheat)") PORT_DIPLOCATION("SWB:6") |
| 124 | 132 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 125 | 133 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 126 | | PORT_DIPNAME( 0x40, 0x40, "Initial Entry" ) |
| 134 | PORT_DIPNAME( 0x40, 0x40, "Initial Entry" ) PORT_DIPLOCATION("SWB:7") |
| 127 | 135 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 128 | 136 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 129 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) |
| 137 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:8") |
| 130 | 138 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 131 | 139 | PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) |
| 132 | 140 | INPUT_PORTS_END |
| r18824 | r18825 | |
| 210 | 218 | |
| 211 | 219 | ROM_START( suprloco ) |
| 212 | 220 | ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ |
| 213 | | ROM_LOAD( "ic37.bin", 0x0000, 0x4000, CRC(57f514dd) SHA1(707800b90a22547a56b01d1e11775e9ee5555d23) ) /* encrypted */ |
| 214 | | ROM_LOAD( "ic15.bin", 0x4000, 0x4000, CRC(5a1d2fb0) SHA1(fdb9416e5530718245fd597073a63feddb233c3c) ) /* encrypted */ |
| 221 | ROM_LOAD( "epr-5226a.37", 0x0000, 0x4000, CRC(33b02368) SHA1(c6e3116ad4b52bcc3174de5770f7a7ce024790d5) ) /* encrypted */ |
| 222 | ROM_LOAD( "epr-5227a.15", 0x4000, 0x4000, CRC(a5e67f50) SHA1(1dd52e4cf00ce414fe1db8259c9976cdc23513b4) ) /* encrypted */ |
| 215 | 223 | ROM_LOAD( "epr-5228.28", 0x8000, 0x4000, CRC(a597828a) SHA1(61004d112591fd2d752c39df71c1304d9308daae) ) |
| 216 | 224 | |
| 217 | 225 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| r18824 | r18825 | |
| 229 | 237 | /* 0x6000 empty */ |
| 230 | 238 | |
| 231 | 239 | ROM_REGION( 0x0620, "proms", 0 ) |
| 232 | | ROM_LOAD( "pr-5220.100", 0x0100, 0x0080, CRC(7b0c8ce5) SHA1(4e1ea5ce38198a3965dfeb609ba0c7e8211531c3) ) /* color PROM */ |
| 240 | ROM_LOAD( "pr-5220.100", 0x0100, 0x0080, CRC(7b0c8ce5) SHA1(4e1ea5ce38198a3965dfeb609ba0c7e8211531c3) ) /* color PROM */ |
| 233 | 241 | ROM_CONTINUE( 0x0000, 0x0080 ) |
| 234 | 242 | ROM_CONTINUE( 0x0180, 0x0080 ) |
| 235 | 243 | ROM_CONTINUE( 0x0080, 0x0080 ) |
| 236 | | ROM_LOAD( "pr-5219.89", 0x0200, 0x0400, CRC(1d4b02cb) SHA1(00d822f1bc4f57f2f5d5a0615241f8136246a842) ) /* 3bpp to 4bpp table */ |
| 244 | ROM_LOAD( "pr-5219.89", 0x0200, 0x0400, CRC(1d4b02cb) SHA1(00d822f1bc4f57f2f5d5a0615241f8136246a842) ) /* 3bpp to 4bpp table */ |
| 237 | 245 | ROM_LOAD( "pr-5221.7", 0x0600, 0x0020, CRC(89ba674f) SHA1(17c87840c8011968675a5a6f55966467df02364b) ) /* unknown */ |
| 238 | 246 | ROM_END |
| 239 | 247 | |
| 240 | | ROM_START( suprlocoa ) |
| 248 | ROM_START( suprlocoo ) |
| 241 | 249 | ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ |
| 242 | | ROM_LOAD( "epr-5226a.37", 0x0000, 0x4000, CRC(33b02368) SHA1(c6e3116ad4b52bcc3174de5770f7a7ce024790d5) ) /* encrypted */ |
| 243 | | ROM_LOAD( "epr-5227a.15", 0x4000, 0x4000, CRC(a5e67f50) SHA1(1dd52e4cf00ce414fe1db8259c9976cdc23513b4) ) /* encrypted */ |
| 250 | ROM_LOAD( "epr-5226.37", 0x0000, 0x4000, CRC(57f514dd) SHA1(707800b90a22547a56b01d1e11775e9ee5555d23) ) /* encrypted */ |
| 251 | ROM_LOAD( "epr-5227.15", 0x4000, 0x4000, CRC(5a1d2fb0) SHA1(fdb9416e5530718245fd597073a63feddb233c3c) ) /* encrypted */ |
| 244 | 252 | ROM_LOAD( "epr-5228.28", 0x8000, 0x4000, CRC(a597828a) SHA1(61004d112591fd2d752c39df71c1304d9308daae) ) |
| 245 | 253 | |
| 246 | 254 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| r18824 | r18825 | |
| 258 | 266 | /* 0x6000 empty */ |
| 259 | 267 | |
| 260 | 268 | ROM_REGION( 0x0620, "proms", 0 ) |
| 261 | | ROM_LOAD( "pr-5220.100", 0x0100, 0x0080, CRC(7b0c8ce5) SHA1(4e1ea5ce38198a3965dfeb609ba0c7e8211531c3) ) /* color PROM */ |
| 269 | ROM_LOAD( "pr-5220.100", 0x0100, 0x0080, CRC(7b0c8ce5) SHA1(4e1ea5ce38198a3965dfeb609ba0c7e8211531c3) ) /* color PROM */ |
| 262 | 270 | ROM_CONTINUE( 0x0000, 0x0080 ) |
| 263 | 271 | ROM_CONTINUE( 0x0180, 0x0080 ) |
| 264 | 272 | ROM_CONTINUE( 0x0080, 0x0080 ) |
| 265 | | ROM_LOAD( "pr-5219.89", 0x0200, 0x0400, CRC(1d4b02cb) SHA1(00d822f1bc4f57f2f5d5a0615241f8136246a842) ) /* 3bpp to 4bpp table */ |
| 273 | ROM_LOAD( "pr-5219.89", 0x0200, 0x0400, CRC(1d4b02cb) SHA1(00d822f1bc4f57f2f5d5a0615241f8136246a842) ) /* 3bpp to 4bpp table */ |
| 266 | 274 | ROM_LOAD( "pr-5221.7", 0x0600, 0x0020, CRC(89ba674f) SHA1(17c87840c8011968675a5a6f55966467df02364b) ) /* unknown */ |
| 267 | 275 | ROM_END |
| 268 | 276 | |
| r18824 | r18825 | |
| 306 | 314 | |
| 307 | 315 | |
| 308 | 316 | |
| 309 | | GAME( 1982, suprloco, 0, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive", 0 ) |
| 310 | | GAME( 1982, suprlocoa, suprloco, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive (Rev.A)", 0 ) |
| 317 | GAME( 1982, suprloco, 0, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive (Rev.A)", 0 ) |
| 318 | GAME( 1982, suprlocoo, suprloco, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive", 0 ) |