trunk/src/mame/drivers/subsino.cpp
| r250277 | r250278 | |
| 21 | 21 | |
| 22 | 22 | To Do: |
| 23 | 23 | |
| 24 | | - Remove ROM patches from smoto, stisub and tesorone, emulate the protection instead. |
| 25 | | - Hopper emulation currently hooked up in stisub, tesorone and smoto. Add to others. |
| 24 | - Remove ROM patches from smoto, stbsub and tesorone, emulate the protection instead. |
| 25 | - Hopper emulation currently hooked up in stbsub, tesorone and smoto. Add to others. |
| 26 | 26 | |
| 27 | 27 | **************************************************************************** |
| 28 | 28 | |
| r250277 | r250278 | |
| 247 | 247 | m_reel1_ram(*this, "reel1_ram"), |
| 248 | 248 | m_reel2_ram(*this, "reel2_ram"), |
| 249 | 249 | m_reel3_ram(*this, "reel3_ram"), |
| 250 | | m_stisub_out_c(*this, "stisub_out_c"), |
| 250 | m_stbsub_out_c(*this, "stbsub_out_c"), |
| 251 | 251 | m_maincpu(*this, "maincpu"), |
| 252 | 252 | m_gfxdecode(*this, "gfxdecode"), |
| 253 | 253 | m_palette(*this, "palette") { |
| r250277 | r250278 | |
| 261 | 261 | optional_shared_ptr<UINT8> m_reel1_ram; |
| 262 | 262 | optional_shared_ptr<UINT8> m_reel2_ram; |
| 263 | 263 | optional_shared_ptr<UINT8> m_reel3_ram; |
| 264 | | optional_shared_ptr<UINT8> m_stisub_out_c; |
| 264 | optional_shared_ptr<UINT8> m_stbsub_out_c; |
| 265 | 265 | |
| 266 | 266 | tilemap_t *m_tmap; |
| 267 | 267 | tilemap_t *m_reel1_tilemap; |
| r250277 | r250278 | |
| 276 | 276 | UINT8 m_flash_packet; |
| 277 | 277 | UINT8 m_flash_packet_start; |
| 278 | 278 | int m_colordac_offs; |
| 279 | | UINT8 *m_stisub_colorram; |
| 279 | UINT8 *m_stbsub_colorram; |
| 280 | 280 | |
| 281 | 281 | ticket_dispenser_device *m_hopper; |
| 282 | 282 | |
| r250277 | r250278 | |
| 295 | 295 | DECLARE_WRITE8_MEMBER(colordac_w); |
| 296 | 296 | DECLARE_WRITE8_MEMBER(reel_scrollattr_w); |
| 297 | 297 | DECLARE_READ8_MEMBER(reel_scrollattr_r); |
| 298 | DECLARE_DRIVER_INIT(stbsub); |
| 298 | 299 | DECLARE_DRIVER_INIT(stisub); |
| 299 | 300 | DECLARE_DRIVER_INIT(tesorone); |
| 300 | 301 | DECLARE_DRIVER_INIT(tesorone230); |
| r250277 | r250278 | |
| 309 | 310 | DECLARE_DRIVER_INIT(tisub); |
| 310 | 311 | DECLARE_DRIVER_INIT(mtrainnv); |
| 311 | 312 | TILE_GET_INFO_MEMBER(get_tile_info); |
| 312 | | TILE_GET_INFO_MEMBER(get_stisub_tile_info); |
| 313 | TILE_GET_INFO_MEMBER(get_stbsub_tile_info); |
| 313 | 314 | TILE_GET_INFO_MEMBER(get_subsino_reel1_tile_info); |
| 314 | | TILE_GET_INFO_MEMBER(get_stisub_reel1_tile_info); |
| 315 | TILE_GET_INFO_MEMBER(get_stbsub_reel1_tile_info); |
| 315 | 316 | TILE_GET_INFO_MEMBER(get_subsino_reel2_tile_info); |
| 316 | | TILE_GET_INFO_MEMBER(get_stisub_reel2_tile_info); |
| 317 | TILE_GET_INFO_MEMBER(get_stbsub_reel2_tile_info); |
| 317 | 318 | TILE_GET_INFO_MEMBER(get_subsino_reel3_tile_info); |
| 318 | | TILE_GET_INFO_MEMBER(get_stisub_reel3_tile_info); |
| 319 | TILE_GET_INFO_MEMBER(get_stbsub_reel3_tile_info); |
| 319 | 320 | DECLARE_VIDEO_START(subsino); |
| 320 | 321 | DECLARE_PALETTE_INIT(subsino_2proms); |
| 321 | 322 | DECLARE_PALETTE_INIT(subsino_3proms); |
| 322 | 323 | DECLARE_VIDEO_START(subsino_reels); |
| 323 | | DECLARE_VIDEO_START(stisub); |
| 324 | DECLARE_VIDEO_START(stbsub); |
| 324 | 325 | UINT32 screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 325 | 326 | UINT32 screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 326 | | UINT32 screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 327 | UINT32 screen_update_stbsub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 327 | 328 | virtual void machine_start(); |
| 328 | 329 | required_device<cpu_device> m_maincpu; |
| 329 | 330 | required_device<gfxdecode_device> m_gfxdecode; |
| r250277 | r250278 | |
| 368 | 369 | SET_TILE_INFO_MEMBER(0, code, color, 0); |
| 369 | 370 | } |
| 370 | 371 | |
| 371 | | TILE_GET_INFO_MEMBER(subsino_state::get_stisub_tile_info) |
| 372 | TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_tile_info) |
| 372 | 373 | { |
| 373 | 374 | UINT16 code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8); |
| 374 | 375 | code&= 0x3fff; |
| r250277 | r250278 | |
| 402 | 403 | 0); |
| 403 | 404 | } |
| 404 | 405 | |
| 405 | | TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel1_tile_info) |
| 406 | TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_reel1_tile_info) |
| 406 | 407 | { |
| 407 | 408 | int code = m_reel1_ram[tile_index]; |
| 408 | 409 | int attr = m_reel1_attr[tile_index]; |
| r250277 | r250278 | |
| 431 | 432 | 0); |
| 432 | 433 | } |
| 433 | 434 | |
| 434 | | TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel2_tile_info) |
| 435 | TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_reel2_tile_info) |
| 435 | 436 | { |
| 436 | 437 | int code = m_reel2_ram[tile_index]; |
| 437 | 438 | int attr = m_reel2_attr[tile_index]; |
| r250277 | r250278 | |
| 459 | 460 | 0); |
| 460 | 461 | } |
| 461 | 462 | |
| 462 | | TILE_GET_INFO_MEMBER(subsino_state::get_stisub_reel3_tile_info) |
| 463 | TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_reel3_tile_info) |
| 463 | 464 | { |
| 464 | 465 | int code = m_reel3_ram[tile_index]; |
| 465 | 466 | int attr = m_reel3_attr[tile_index]; |
| r250277 | r250278 | |
| 485 | 486 | |
| 486 | 487 | } |
| 487 | 488 | |
| 488 | | VIDEO_START_MEMBER(subsino_state,stisub) |
| 489 | VIDEO_START_MEMBER(subsino_state,stbsub) |
| 489 | 490 | { |
| 490 | | m_tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 ); |
| 491 | m_tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20 ); |
| 491 | 492 | m_tmap->set_transparent_pen(0 ); |
| 492 | 493 | |
| 493 | | m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); |
| 494 | | m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); |
| 495 | | m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stisub_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); |
| 494 | m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); |
| 495 | m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); |
| 496 | m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8); |
| 496 | 497 | |
| 497 | 498 | m_reel1_tilemap->set_scroll_cols(64); |
| 498 | 499 | m_reel2_tilemap->set_scroll_cols(64); |
| r250277 | r250278 | |
| 538 | 539 | } |
| 539 | 540 | |
| 540 | 541 | |
| 541 | | UINT32 subsino_state::screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 542 | UINT32 subsino_state::screen_update_stbsub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 542 | 543 | { |
| 543 | 544 | int i; |
| 544 | 545 | bitmap.fill(0, cliprect); |
| r250277 | r250278 | |
| 1081 | 1082 | break; |
| 1082 | 1083 | |
| 1083 | 1084 | case 1: |
| 1084 | | m_stisub_colorram[m_colordac_offs] = data; |
| 1085 | m_stbsub_colorram[m_colordac_offs] = data; |
| 1085 | 1086 | m_palette->set_pen_color(m_colordac_offs/3, |
| 1086 | | pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+0]), |
| 1087 | | pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+1]), |
| 1088 | | pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+2]) |
| 1087 | pal6bit(m_stbsub_colorram[(m_colordac_offs/3)*3+0]), |
| 1088 | pal6bit(m_stbsub_colorram[(m_colordac_offs/3)*3+1]), |
| 1089 | pal6bit(m_stbsub_colorram[(m_colordac_offs/3)*3+2]) |
| 1089 | 1090 | ); |
| 1090 | 1091 | m_colordac_offs = (m_colordac_offs+1) % (256*3); |
| 1091 | 1092 | break; |
| r250277 | r250278 | |
| 1104 | 1105 | // not 100% sure on the bank bits.. other bits are also set |
| 1105 | 1106 | WRITE8_MEMBER(subsino_state::reel_scrollattr_w) |
| 1106 | 1107 | { |
| 1107 | | if (*m_stisub_out_c & 0x20) |
| 1108 | if (*m_stbsub_out_c & 0x20) |
| 1108 | 1109 | { |
| 1109 | 1110 | if (offset<0x200) |
| 1110 | 1111 | { |
| r250277 | r250278 | |
| 1151 | 1152 | return m_reel1_attr[offset]; |
| 1152 | 1153 | } |
| 1153 | 1154 | |
| 1154 | | static ADDRESS_MAP_START( stisub_map, AS_PROGRAM, 8, subsino_state ) |
| 1155 | static ADDRESS_MAP_START( stbsub_map, AS_PROGRAM, 8, subsino_state ) |
| 1155 | 1156 | AM_RANGE( 0x00000, 0x0bfff ) AM_ROM |
| 1156 | 1157 | |
| 1157 | 1158 | AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM |
| r250277 | r250278 | |
| 1164 | 1165 | AM_RANGE( 0x0d005, 0x0d005 ) AM_READ_PORT( "INB" ) |
| 1165 | 1166 | AM_RANGE( 0x0d006, 0x0d006 ) AM_READ_PORT( "INA" ) |
| 1166 | 1167 | |
| 1167 | | AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stisub_out_c") |
| 1168 | AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stbsub_out_c") |
| 1168 | 1169 | |
| 1169 | 1170 | AM_RANGE( 0x0d009, 0x0d009 ) AM_WRITE(subsino_out_b_w ) |
| 1170 | 1171 | AM_RANGE( 0x0d00a, 0x0d00a ) AM_WRITE(subsino_out_a_w ) |
| r250277 | r250278 | |
| 1204 | 1205 | AM_RANGE( 0x0d004, 0x0d004 ) AM_READ_PORT( "SW4" ) |
| 1205 | 1206 | AM_RANGE( 0x0d005, 0x0d005 ) AM_READ_PORT( "INB" ) |
| 1206 | 1207 | AM_RANGE( 0x0d006, 0x0d006 ) AM_READ_PORT( "INA" ) |
| 1207 | | AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stisub_out_c") |
| 1208 | AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stbsub_out_c") |
| 1208 | 1209 | // AM_RANGE( 0x0d009, 0x0d009 ) AM_WRITE |
| 1209 | 1210 | // AM_RANGE( 0x0d00a, 0x0d00a ) AM_WRITE |
| 1210 | 1211 | // AM_RANGE( 0x0d00b, 0x0d00b ) AM_WRITE |
| r250277 | r250278 | |
| 1592 | 1593 | INPUT_PORTS_END |
| 1593 | 1594 | |
| 1594 | 1595 | |
| 1595 | | static INPUT_PORTS_START( stisub ) |
| 1596 | static INPUT_PORTS_START( stbsub ) |
| 1596 | 1597 | PORT_START("SW1") |
| 1597 | 1598 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") |
| 1598 | 1599 | PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) |
| r250277 | r250278 | |
| 2786 | 2787 | GFXDECODE_ENTRY( "reels", 0, layout_8x32x4, 0, 16 ) |
| 2787 | 2788 | GFXDECODE_END |
| 2788 | 2789 | |
| 2789 | | static GFXDECODE_START( subsino_stisub ) |
| 2790 | static GFXDECODE_START( subsino_stbsub ) |
| 2790 | 2791 | GFXDECODE_ENTRY( "tilemap", 0, layout_8x8x8, 0, 1 ) |
| 2791 | 2792 | GFXDECODE_ENTRY( "reels", 0, layout_8x32x8, 0, 1 ) |
| 2792 | 2793 | GFXDECODE_END |
| r250277 | r250278 | |
| 2943 | 2944 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 2944 | 2945 | MACHINE_CONFIG_END |
| 2945 | 2946 | |
| 2946 | | static MACHINE_CONFIG_START( stisub, subsino_state ) |
| 2947 | static MACHINE_CONFIG_START( stbsub, subsino_state ) |
| 2947 | 2948 | /* basic machine hardware */ |
| 2948 | 2949 | MCFG_CPU_ADD("maincpu", Z180, XTAL_12MHz / 8) /* Unknown clock */ |
| 2949 | | MCFG_CPU_PROGRAM_MAP(stisub_map) |
| 2950 | MCFG_CPU_PROGRAM_MAP(stbsub_map) |
| 2950 | 2951 | MCFG_CPU_IO_MAP(subsino_iomap) |
| 2951 | 2952 | |
| 2952 | 2953 | MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) |
| r250277 | r250278 | |
| 2957 | 2958 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 2958 | 2959 | MCFG_SCREEN_SIZE(512, 256) |
| 2959 | 2960 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) |
| 2960 | | MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_stisub_reels) |
| 2961 | MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_stbsub_reels) |
| 2961 | 2962 | MCFG_SCREEN_PALETTE("palette") |
| 2962 | 2963 | |
| 2963 | | MCFG_GFXDECODE_ADD("gfxdecode", "palette", subsino_stisub) |
| 2964 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", subsino_stbsub) |
| 2964 | 2965 | |
| 2965 | 2966 | MCFG_PALETTE_ADD("palette", 0x100) |
| 2966 | 2967 | //MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms) |
| 2967 | 2968 | |
| 2968 | | MCFG_VIDEO_START_OVERRIDE(subsino_state,stisub) |
| 2969 | MCFG_VIDEO_START_OVERRIDE(subsino_state,stbsub) |
| 2969 | 2970 | |
| 2970 | 2971 | /* sound hardware */ |
| 2971 | 2972 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r250277 | r250278 | |
| 2974 | 2975 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 2975 | 2976 | MACHINE_CONFIG_END |
| 2976 | 2977 | |
| 2977 | | static MACHINE_CONFIG_DERIVED( mtrainnv, stisub ) |
| 2978 | static MACHINE_CONFIG_DERIVED( mtrainnv, stbsub ) |
| 2978 | 2979 | |
| 2979 | 2980 | /* basic machine hardware */ |
| 2980 | 2981 | MCFG_CPU_MODIFY("maincpu") |
| r250277 | r250278 | |
| 3613 | 3614 | |
| 3614 | 3615 | ***************************************************************************/ |
| 3615 | 3616 | |
| 3616 | | ROM_START( stisub ) |
| 3617 | ROM_START( stbsub ) |
| 3617 | 3618 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3618 | 3619 | ROM_LOAD( "trbon-rlu16.u12", 0x00000, 0x10000, CRC(07771290) SHA1(c485943045396d8580271504a1fec7c88579f4a2) ) |
| 3619 | 3620 | |
| r250277 | r250278 | |
| 3630 | 3631 | ROM_LOAD( "sti-alpha_9-ver1.1.u22", 0x60000, 0x20000, CRC(9710a223) SHA1(76ef6bd77ae33d91a9b6a9a615d07caee3356dfb) ) |
| 3631 | 3632 | ROM_END |
| 3632 | 3633 | |
| 3634 | |
| 3635 | |
| 3636 | ROM_START( stisub ) |
| 3637 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3638 | ROM_LOAD( "b1", 0x00000, 0x10000, CRC(3f7adf66) SHA1(6ff37d070c7866133853c7cb3e2fbcb5610d87e8) ) |
| 3639 | |
| 3640 | ROM_REGION( 0x100000, "tilemap", 0 ) |
| 3641 | ROM_LOAD( "-2.u30", 0x00000, 0x40000, CRC(c7435727) SHA1(115f41fe8da7be1e3928c1539e901b4b54132616) ) |
| 3642 | ROM_LOAD( "b-3.u29", 0x40000, 0x40000, CRC(eb0968d3) SHA1(5313150725d9b7019ddaddc0b1cdb92330ab0b49) ) |
| 3643 | ROM_LOAD( "b-4.u28", 0x80000, 0x40000, CRC(ee5024ba) SHA1(cf65bbee12f6aaf8bb22c2a03e7b360fa58f3b80) ) |
| 3644 | ROM_LOAD( "a-5.u27", 0xc0000, 0x40000, CRC(6748c76d) SHA1(1013f5924c584df4bd6a1a3dbd0fff96c1313ed3) ) |
| 3645 | |
| 3646 | ROM_REGION( 0x80000, "reels", 0 ) |
| 3647 | ROM_LOAD( "a-6.u25", 0x00000, 0x20000, CRC(69a19c43) SHA1(d90a59bfee500ea9b1a21f60bc2fd7c3ddadb6a6) ) |
| 3648 | ROM_LOAD( "b-7.u24", 0x20000, 0x20000, CRC(09173bec) SHA1(c9bf491a9d4009d1debf7a19657129a209f02768) ) |
| 3649 | ROM_LOAD( "b-8.u23", 0x40000, 0x20000, CRC(10ff8fdf) SHA1(1f07ce5517c816852e5b739e3170d104c080ea18) ) |
| 3650 | ROM_LOAD( "a-9.u22", 0x60000, 0x20000, CRC(ce1e9a3d) SHA1(263e396058e74ae55834dc028b477eb21ceab9b9) ) |
| 3651 | ROM_END |
| 3652 | |
| 3653 | |
| 3654 | |
| 3633 | 3655 | /*************************************************************************** |
| 3634 | 3656 | |
| 3635 | 3657 | Tesorone Dell'Isola (2 sets) |
| r250277 | r250278 | |
| 3810 | 3832 | rom[0x6498] = 0x00; |
| 3811 | 3833 | } |
| 3812 | 3834 | |
| 3813 | | DRIVER_INIT_MEMBER(subsino_state,stisub) |
| 3835 | DRIVER_INIT_MEMBER(subsino_state,stbsub) |
| 3814 | 3836 | { |
| 3815 | 3837 | #if 1 |
| 3816 | 3838 | UINT8 *rom = memregion( "maincpu" )->base(); |
| r250277 | r250278 | |
| 3819 | 3841 | rom[0x957] = 0x18; //patch "losing protection" check |
| 3820 | 3842 | #endif |
| 3821 | 3843 | |
| 3822 | | m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3844 | m_stbsub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3823 | 3845 | |
| 3824 | 3846 | m_reel1_scroll.allocate(0x40); |
| 3825 | 3847 | m_reel2_scroll.allocate(0x40); |
| r250277 | r250278 | |
| 3829 | 3851 | m_reel2_attr = auto_alloc_array(machine(), UINT8, 0x200); |
| 3830 | 3852 | m_reel3_attr = auto_alloc_array(machine(), UINT8, 0x200); |
| 3831 | 3853 | } |
| 3854 | |
| 3855 | DRIVER_INIT_MEMBER(subsino_state, stisub) |
| 3856 | { |
| 3857 | UINT8 *rom = memregion( "maincpu" )->base(); |
| 3858 | rom[0x0FA0] = 0x28; |
| 3859 | rom[0x0FA1] = 0x1d; //patch protection check |
| 3860 | |
| 3861 | m_stbsub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3862 | |
| 3863 | m_reel1_scroll.allocate(0x40); |
| 3864 | m_reel2_scroll.allocate(0x40); |
| 3865 | m_reel3_scroll.allocate(0x40); |
| 3866 | |
| 3867 | m_reel1_attr = auto_alloc_array(machine(), UINT8, 0x200); |
| 3868 | m_reel2_attr = auto_alloc_array(machine(), UINT8, 0x200); |
| 3869 | m_reel3_attr = auto_alloc_array(machine(), UINT8, 0x200); |
| 3870 | } |
| 3871 | |
| 3832 | 3872 | DRIVER_INIT_MEMBER(subsino_state,tesorone) |
| 3833 | 3873 | { |
| 3834 | 3874 | #if 1 |
| r250277 | r250278 | |
| 3839 | 3879 | rom[0xa84] = 0x18; //patch "losing protection" check |
| 3840 | 3880 | #endif |
| 3841 | 3881 | |
| 3842 | | m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3882 | m_stbsub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3843 | 3883 | |
| 3844 | 3884 | m_reel1_scroll.allocate(0x40); |
| 3845 | 3885 | m_reel2_scroll.allocate(0x40); |
| r250277 | r250278 | |
| 3860 | 3900 | rom[0xa88] = 0x18; //patch "losing protection" check |
| 3861 | 3901 | #endif |
| 3862 | 3902 | |
| 3863 | | m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3903 | m_stbsub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3864 | 3904 | |
| 3865 | 3905 | m_reel1_scroll.allocate(0x40); |
| 3866 | 3906 | m_reel2_scroll.allocate(0x40); |
| r250277 | r250278 | |
| 3874 | 3914 | |
| 3875 | 3915 | DRIVER_INIT_MEMBER(subsino_state,mtrainnv) |
| 3876 | 3916 | { |
| 3877 | | m_stisub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3917 | m_stbsub_colorram = auto_alloc_array(machine(), UINT8, 256*3); |
| 3878 | 3918 | |
| 3879 | 3919 | m_reel1_scroll.allocate(0x40); |
| 3880 | 3920 | m_reel2_scroll.allocate(0x40); |
| r250277 | r250278 | |
| 3899 | 3939 | |
| 3900 | 3940 | GAMEL( 1991, crsbingo, 0, crsbingo, crsbingo, subsino_state, crsbingo, ROT0, "Subsino", "Poker Carnival", 0, layout_crsbingo ) |
| 3901 | 3941 | |
| 3902 | | GAMEL( 1995, stisub, 0, stisub, stisub, subsino_state, stisub, ROT0, "American Alpha", "Treasure Bonus (Subsino, v1.6)", 0, layout_stisub ) // board CPU module marked 'Super Treasure Island' (alt title?) |
| 3903 | | GAMEL( 1995, tesorone, stisub, stisub, tesorone, subsino_state, tesorone, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.41)", 0, layout_stisub ) |
| 3904 | | GAMEL( 1995, tesorone240, stisub, stisub, tesorone, subsino_state, tesorone, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.40)", 0, layout_stisub ) |
| 3905 | | GAMEL( 1995, tesorone230, stisub, stisub, tesorone, subsino_state, tesorone230,ROT0,"Subsino", "Tesorone Dell'Isola (Italy, v2.30)", 0, layout_stisub ) |
| 3942 | GAMEL( 1995, stbsub, 0, stbsub, stbsub, subsino_state, stbsub, ROT0, "American Alpha", "Treasure Bonus (Subsino, v1.6)", 0, layout_stisub ) // board CPU module marked 'Super Treasure Island' (alt title?) |
| 3943 | GAMEL( 1995, stisub, stbsub, stbsub, stbsub, subsino_state, stisub, ROT0, "Subsino", "Super Treasure Island (Italy, v1.6)", MACHINE_NOT_WORKING, layout_stisub ) // need proper patches |
| 3944 | GAMEL( 1995, tesorone, stbsub, stbsub, tesorone, subsino_state, tesorone, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.41)", 0, layout_stisub ) |
| 3945 | GAMEL( 1995, tesorone240, stbsub, stbsub, tesorone, subsino_state, tesorone, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.40)", 0, layout_stisub ) |
| 3946 | GAMEL( 1995, tesorone230, stbsub, stbsub, tesorone, subsino_state, tesorone230,ROT0,"Subsino", "Tesorone Dell'Isola (Italy, v2.30)", 0, layout_stisub ) |
| 3906 | 3947 | |
| 3907 | 3948 | GAMEL( 1996, sharkpy, 0, sharkpy, sharkpy, subsino_state, sharkpy, ROT0, "Subsino", "Shark Party (Italy, v1.3)", 0, layout_sharkpy ) // missing POST messages? |
| 3908 | 3949 | GAMEL( 1996, sharkpya, sharkpy, sharkpy, sharkpy, subsino_state, sharkpy, ROT0, "Subsino", "Shark Party (Italy, v1.6)", 0, layout_sharkpy ) // missing POST messages? |
| r250277 | r250278 | |
| 3915 | 3956 | GAMEL( 1996, smoto20, 0, srider, smoto20, subsino_state, smoto20, ROT0, "Subsino", "Super Rider (Italy, v2.0)", 0, layout_smoto ) |
| 3916 | 3957 | GAMEL( 1996, smoto16, smoto20, srider, smoto16, subsino_state, smoto16, ROT0, "Subsino", "Super Moto (Italy, v1.6)", 0, layout_smoto ) |
| 3917 | 3958 | |
| 3918 | | GAME ( 1996, mtrainnv, mtrain, mtrainnv, stisub, subsino_state, mtrainnv, ROT0, "Subsino", "Magic Train (Clear NVRAM ROM?)", MACHINE_NOT_WORKING ) |
| 3959 | GAME ( 1996, mtrainnv, mtrain, mtrainnv, stbsub, subsino_state, mtrainnv, ROT0, "Subsino", "Magic Train (Clear NVRAM ROM?)", MACHINE_NOT_WORKING ) |