trunk/src/mame/drivers/deniam.c
| r21177 | r21178 | |
| 10 | 10 | GO!GO! deniam-16b 1995/10/11 |
| 11 | 11 | Logic Pro deniam-16b 1996/10/20 |
| 12 | 12 | Karian Cross deniam-16b 1997/04/17 |
| 13 | | LOTTERY GAME deniam-16c 1997/05/21 |
| 13 | LOTTERY GAME deniam-16c 1997/05/21 UNDUMPED |
| 14 | 14 | Logic Pro 2 deniam-16c 1997/06/20 |
| 15 | | Propose deniam-16c 1997/06/21 |
| 15 | Propose deniam-16c 1997/06/21 UNDUMPED |
| 16 | 16 | |
| 17 | 17 | They call the hardware "deniam-16", but it's actually pretty much identical to |
| 18 | 18 | Sega System 16. |
| r21177 | r21178 | |
| 21 | 21 | Notes: |
| 22 | 22 | |
| 23 | 23 | - The logicpr2 OKIM6295 ROM has four banks, but the game seems to only use 0 and 1. |
| 24 | (the latter two banks are identical/nearly so to the first two?) |
| 24 | 25 | - logicpro dip switches might be wrong (using the logicpr2 ones) |
| 25 | 26 | - flip screen is not supported but these games don't use it (no flip screen dip |
| 26 | 27 | and no cocktail mode) |
| r21177 | r21178 | |
| 69 | 70 | device_t *device = machine().device("oki"); |
| 70 | 71 | if (ACCESSING_BITS_0_7) |
| 71 | 72 | { |
| 73 | if ((data&0xFE) != 0) popmessage("OKI bank was not 0 or 1! contact MAMEDEV!"); |
| 72 | 74 | okim6295_device *oki = downcast<okim6295_device *>(device); |
| 73 | 75 | oki->set_bank_base((data & 0x01) ? 0x40000 : 0x00000); |
| 74 | 76 | } |
| r21177 | r21178 | |
| 119 | 121 | AM_RANGE(0xc40000, 0xc40001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) |
| 120 | 122 | AM_RANGE(0xc40002, 0xc40003) AM_READWRITE(deniam_coinctrl_r, deniam_coinctrl_w) |
| 121 | 123 | AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w) |
| 124 | AM_RANGE(0xc40006, 0xc40007) AM_WRITE(deniam16c_oki_rom_bank_w) |
| 122 | 125 | AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM") |
| 123 | 126 | AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1") |
| 124 | | AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") AM_WRITENOP |
| 125 | | AM_RANGE(0xc44006, 0xc44007) AM_READNOP AM_WRITE(deniam16c_oki_rom_bank_w) /* read unused? */ |
| 127 | AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") |
| 128 | AM_RANGE(0xc44006, 0xc44007) AM_READNOP /* read unused? extra input port/dipswitches? */ |
| 126 | 129 | AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_w, 0xff00) |
| 127 | 130 | AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */ |
| 128 | 131 | AM_RANGE(0xff0000, 0xffffff) AM_RAM |
| r21177 | r21178 | |
| 262 | 265 | |
| 263 | 266 | void deniam_state::machine_reset() |
| 264 | 267 | { |
| 265 | | /* logicpr2 does not reset the bank base on startup */ |
| 268 | /* logicpr2 does not reset the bank base on startup, though it probably |
| 269 | doesn't matter since the coinup sfx (sample borrowed from 'tyrian' on PC) |
| 270 | exists in both banks; it properly sets the bank as soon as the ufo sfx |
| 271 | plays or a player character is selected on the character select screen */ |
| 266 | 272 | machine().device<okim6295_device>("oki")->set_bank_base(0x00000); |
| 267 | 273 | } |
| 268 | 274 | |
| r21177 | r21178 | |
| 431 | 437 | GAME( 1996, logicpro, 0, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 432 | 438 | GAME( 1996, croquis, logicpro, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Croquis (Germany)", GAME_SUPPORTS_SAVE ) |
| 433 | 439 | GAME( 1996, karianx, 0, deniam16b, karianx, deniam_state, karianx, ROT0, "Deniam", "Karian Cross (Rev. 1.0)", GAME_SUPPORTS_SAVE ) |
| 434 | | GAME( 1997, logicpr2, 0, deniam16c, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro 2 (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 440 | GAME( 1997, logicpr2, 0, deniam16c, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro 2 (Japan)", GAME_SUPPORTS_SAVE ) |