trunk/src/mame/drivers/dreambal.c
| r21661 | r21662 | |
| 8 | 8 | 59 (68000 CPU) |
| 9 | 9 | 141 (Tilemap GFX) |
| 10 | 10 | 71 (usually sprites? or mixer?) |
| 11 | HD63B50P in I/O section (maybe hopper comms?) |
| 11 | 12 | |
| 13 | -- |
| 14 | todo: |
| 15 | emulate hopper |
| 16 | lamps? |
| 17 | |
| 18 | |
| 12 | 19 | */ |
| 13 | 20 | |
| 14 | 21 | #include "emu.h" |
| r21661 | r21662 | |
| 26 | 33 | dreambal_state(const machine_config &mconfig, device_type type, const char *tag) |
| 27 | 34 | : driver_device(mconfig, type, tag), |
| 28 | 35 | m_eeprom(*this, "eeprom") |
| 29 | | |
| 30 | | /* , |
| 31 | | |
| 32 | | m_pf1_rowscroll(*this, "pf1_rowscroll"), |
| 33 | | m_pf2_rowscroll(*this, "pf2_rowscroll"), |
| 34 | | */ |
| 35 | 36 | { } |
| 36 | 37 | |
| 37 | | /* memory pointers */ |
| 38 | | /* |
| 39 | | required_shared_ptr<UINT16> m_pf1_rowscroll; |
| 40 | | required_shared_ptr<UINT16> m_pf2_rowscroll; |
| 41 | | required_shared_ptr<UINT16> m_spriteram; |
| 42 | | */ |
| 43 | 38 | required_device<eeprom_device> m_eeprom; |
| 44 | 39 | |
| 45 | 40 | /* devices */ |
| r21661 | r21662 | |
| 98 | 93 | AM_RANGE(0x140000, 0x1403ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") |
| 99 | 94 | AM_RANGE(0x161000, 0x16100f) AM_DEVWRITE_LEGACY("tilegen1", deco16ic_pf_control_w) |
| 100 | 95 | |
| 101 | | AM_RANGE(0x160088, 0x160089) AM_READ_PORT("UNK1") |
| 102 | | AM_RANGE(0x160292, 0x160293) AM_READ_PORT("UNK2") |
| 103 | | AM_RANGE(0x16036C, 0x16036D) AM_READ_PORT("UNK3") |
| 104 | | AM_RANGE(0x180000, 0x180001) AM_NOP // OKI? |
| 96 | AM_RANGE(0x160088, 0x160089) AM_READ_PORT("INP") |
| 97 | AM_RANGE(0x160292, 0x160293) AM_READ_PORT("SYS") |
| 98 | AM_RANGE(0x16036C, 0x16036D) AM_READ_PORT("COIN") |
| 99 | |
| 100 | |
| 101 | AM_RANGE(0x180000, 0x180001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) |
| 102 | |
| 103 | AM_RANGE(0x162000, 0x162001) AM_WRITENOP // writes 0003 on startup |
| 104 | AM_RANGE(0x163000, 0x163001) AM_WRITENOP // something on bit 1 |
| 105 | AM_RANGE(0x164000, 0x164001) AM_WRITENOP // something on bit 1 |
| 105 | 106 | |
| 106 | 107 | AM_RANGE(0x165000, 0x165001) AM_WRITE( dreambal_eeprom_w ) // EEP Write? |
| 107 | 108 | |
| 109 | AM_RANGE(0x16c002, 0x16c00d) AM_WRITENOP // writes 0000 to 0005 on startup |
| 110 | AM_RANGE(0x1a0000, 0x1a0001) AM_WRITENOP // writes 33 and 1a on startup |
| 111 | |
| 108 | 112 | ADDRESS_MAP_END |
| 109 | 113 | |
| 110 | 114 | |
| r21661 | r21662 | |
| 137 | 141 | GFXDECODE_END |
| 138 | 142 | |
| 139 | 143 | static INPUT_PORTS_START( dreambal ) |
| 140 | | PORT_START("UNK1") |
| 141 | | PORT_DIPNAME( 0x0001, 0x0001, "2" ) |
| 142 | | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) |
| 143 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 144 | | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) |
| 145 | | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 146 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 147 | | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) |
| 148 | | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) |
| 149 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 150 | | PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) |
| 151 | | PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) |
| 152 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 153 | | PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) |
| 154 | | PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) |
| 155 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 156 | | PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) |
| 157 | | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) |
| 158 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 144 | PORT_START("INP") |
| 145 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) |
| 146 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // currently causes hopper error |
| 147 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) // fold? |
| 148 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Double Up") |
| 149 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Small") |
| 150 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5") |
| 159 | 151 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) |
| 160 | 152 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 161 | 153 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| r21661 | r21662 | |
| 165 | 157 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) |
| 166 | 158 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) |
| 167 | 159 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 168 | | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) |
| 169 | | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) |
| 170 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 171 | | PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) |
| 172 | | PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) |
| 173 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 174 | | PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) |
| 175 | | PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) |
| 176 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 177 | | PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) |
| 178 | | PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) |
| 179 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 160 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) |
| 161 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1) PORT_NAME("Start / Proceed") |
| 162 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Big") |
| 163 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4") |
| 180 | 164 | PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) |
| 181 | 165 | PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) |
| 182 | 166 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| r21661 | r21662 | |
| 187 | 171 | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 188 | 172 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 189 | 173 | |
| 190 | | PORT_START("UNK2") |
| 174 | PORT_START("SYS") |
| 191 | 175 | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) |
| 192 | 176 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) |
| 193 | 177 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| r21661 | r21662 | |
| 235 | 219 | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 236 | 220 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 237 | 221 | |
| 238 | | PORT_START("UNK3") |
| 239 | | PORT_DIPNAME( 0x0001, 0x0001, "2" ) |
| 240 | | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) |
| 241 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 242 | | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) |
| 243 | | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 244 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 245 | | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) |
| 222 | PORT_START("COIN") |
| 223 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 224 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 225 | PORT_DIPNAME( 0x0004, 0x0004, "3" ) // freeze / vbl? |
| 246 | 226 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) |
| 247 | 227 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 248 | 228 | PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) |
| r21661 | r21662 | |
| 284 | 264 | PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) |
| 285 | 265 | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 286 | 266 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 287 | | |
| 288 | | PORT_START("UNK4") |
| 289 | | PORT_DIPNAME( 0x0001, 0x0001, "2" ) |
| 290 | | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) |
| 291 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 292 | | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) |
| 293 | | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 294 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 295 | | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) |
| 296 | | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) |
| 297 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 298 | | PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) |
| 299 | | PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) |
| 300 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 301 | | PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) |
| 302 | | PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) |
| 303 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 304 | | PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) |
| 305 | | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) |
| 306 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 307 | | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) |
| 308 | | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 309 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 310 | | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) |
| 311 | | PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) |
| 312 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 313 | | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) |
| 314 | | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) |
| 315 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 316 | | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) |
| 317 | | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) |
| 318 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 319 | | PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) |
| 320 | | PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) |
| 321 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 322 | | PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) |
| 323 | | PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) |
| 324 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 325 | | PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) |
| 326 | | PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) |
| 327 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 328 | | PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) |
| 329 | | PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) |
| 330 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 331 | | PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) |
| 332 | | PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) |
| 333 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 334 | | PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) |
| 335 | | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 336 | | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 337 | 267 | INPUT_PORTS_END |
| 338 | 268 | |
| 339 | 269 | static int dreambal_bank_callback( const int bank ) |
| r21661 | r21662 | |
| 416 | 346 | } |
| 417 | 347 | |
| 418 | 348 | // Ver 2.4 JPN 93.12.02 |
| 419 | | GAME( 1993, dreambal, 0, dreambal, dreambal, dreambal_state, dreambal, ROT0, "Data East", "Dream Ball (Japan V2.4)", GAME_NOT_WORKING ) |
| 349 | GAME( 1993, dreambal, 0, dreambal, dreambal, dreambal_state, dreambal, ROT0, "NDK / Data East", "Dream Ball (Japan V2.4)", 0 ) // copyright shows NDK, board is Data East, code seems Data East-like too |