trunk/src/mame/drivers/igs017.c
| r23877 | r23878 | |
| 22 | 22 | 99? Tarzan (V107)? NO-0248-1 Z180 M6295 IGS031 IGS025 Battery |
| 23 | 23 | 99? Tarzan (V109C)? NO-0228? Z180 M6295 IGS031 IGS025 IGS029 Battery |
| 24 | 24 | 00? Super Tarzan (V100I) NO-0230-1 Z180 M6295 IGS031 IGS025 Battery |
| 25 | ?? Super Poker / Formosa NO-0187 Z180 M6295 YM2413 IGS017 IGS025 Battery |
| 25 | 26 | ------------------------------------------------------------------------------------------------------------- |
| 26 | 27 | * not present in one set |
| 27 | 28 | To Do: |
| r23877 | r23878 | |
| 118 | 119 | DECLARE_WRITE8_MEMBER(tjsb_paletteram_w); |
| 119 | 120 | DECLARE_WRITE8_MEMBER(tjsb_output_w); |
| 120 | 121 | DECLARE_READ8_MEMBER(tjsb_input_r); |
| 122 | DECLARE_READ8_MEMBER(spkrform_input_r); |
| 121 | 123 | DECLARE_WRITE16_MEMBER(lhzb2a_paletteram_w); |
| 122 | 124 | DECLARE_READ16_MEMBER(lhzb2a_input_r); |
| 123 | 125 | DECLARE_WRITE16_MEMBER(lhzb2a_input_addr_w); |
| r23877 | r23878 | |
| 144 | 146 | DECLARE_DRIVER_INIT(starzan); |
| 145 | 147 | DECLARE_DRIVER_INIT(mgcs); |
| 146 | 148 | DECLARE_DRIVER_INIT(tjsb); |
| 149 | DECLARE_DRIVER_INIT(spkrform); |
| 147 | 150 | DECLARE_DRIVER_INIT(iqblockf); |
| 148 | 151 | DECLARE_DRIVER_INIT(sdmg2); |
| 149 | 152 | DECLARE_DRIVER_INIT(tarzan); |
| r23877 | r23878 | |
| 158 | 161 | DECLARE_MACHINE_RESET(mgcs); |
| 159 | 162 | DECLARE_MACHINE_RESET(lhzb2a); |
| 160 | 163 | UINT32 screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 161 | | TIMER_DEVICE_CALLBACK_MEMBER(irqblocka_interrupt); |
| 164 | TIMER_DEVICE_CALLBACK_MEMBER(iqblocka_interrupt); |
| 162 | 165 | TIMER_DEVICE_CALLBACK_MEMBER(mgcs_interrupt); |
| 163 | 166 | TIMER_DEVICE_CALLBACK_MEMBER(mgdh_interrupt); |
| 164 | 167 | void expand_sprites(); |
| r23877 | r23878 | |
| 178 | 181 | void lhzb2_decrypt_sprites(); |
| 179 | 182 | void slqz2_patch_rom(); |
| 180 | 183 | void slqz2_decrypt_tiles(); |
| 184 | void spkrform_decrypt_sprites(); |
| 181 | 185 | }; |
| 182 | 186 | |
| 183 | 187 | |
| r23877 | r23878 | |
| 512 | 516 | int addr = (i & ~0xff) | BITSWAP8(i,a7,a6,a5,a4,a3,a2,a1,a0); |
| 513 | 517 | rom[i] = tmp[addr]; |
| 514 | 518 | } |
| 519 | |
| 520 | #if 0 |
| 521 | FILE *f = fopen("igs017_decrypted.bin", "wb"); |
| 522 | fwrite(rom, 1, length, f); |
| 523 | fclose(f); |
| 524 | #endif |
| 515 | 525 | } |
| 516 | 526 | |
| 517 | 527 | |
| r23877 | r23878 | |
| 1250 | 1260 | slqz2_patch_rom(); |
| 1251 | 1261 | } |
| 1252 | 1262 | |
| 1263 | // spkrform |
| 1264 | |
| 1265 | void igs017_state::spkrform_decrypt_sprites() |
| 1266 | { |
| 1267 | int length = memregion("sprites")->bytes(); |
| 1268 | UINT8 *rom = memregion("sprites")->base(); |
| 1269 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 1270 | int i, addr; |
| 1271 | |
| 1272 | // address lines swap |
| 1273 | memcpy(tmp, rom, length); |
| 1274 | for (i = 0; i < length; i++) |
| 1275 | { |
| 1276 | if (i & 0x80000) |
| 1277 | addr = (i & ~0xff) | BITSWAP8(i,7,6,3,4,5,2,1,0); |
| 1278 | else |
| 1279 | addr = (i & ~0xffff) | BITSWAP16(i,15,14,13,12,11,10, 4, 8,7,6,5, 9,3,2,1,0); |
| 1280 | |
| 1281 | rom[i] = tmp[addr]; |
| 1282 | } |
| 1283 | } |
| 1284 | |
| 1285 | DRIVER_INIT_MEMBER(igs017_state,spkrform) |
| 1286 | { |
| 1287 | decrypt_program_rom(0x14, 7, 6, 5, 4, 3, 0, 1, 2); |
| 1288 | |
| 1289 | spkrform_decrypt_sprites(); |
| 1290 | } |
| 1291 | |
| 1253 | 1292 | /*************************************************************************** |
| 1254 | 1293 | Memory Maps |
| 1255 | 1294 | ***************************************************************************/ |
| r23877 | r23878 | |
| 1776 | 1815 | ADDRESS_MAP_END |
| 1777 | 1816 | |
| 1778 | 1817 | |
| 1818 | // spkrform |
| 1819 | |
| 1820 | |
| 1821 | static ADDRESS_MAP_START( spkrform_map, AS_PROGRAM, 8, igs017_state ) |
| 1822 | AM_RANGE( 0x00000, 0x0dfff ) AM_ROM |
| 1823 | AM_RANGE( 0x0e9bf, 0x0e9bf ) AM_NOP // hack: uncomment to switch to Formosa |
| 1824 | AM_RANGE( 0x0e000, 0x0efff ) AM_RAM |
| 1825 | AM_RANGE( 0x0f000, 0x0ffff ) AM_RAM |
| 1826 | AM_RANGE( 0x10000, 0x3ffff ) AM_ROM |
| 1827 | ADDRESS_MAP_END |
| 1828 | |
| 1829 | READ8_MEMBER(igs017_state::spkrform_input_r) |
| 1830 | { |
| 1831 | switch (m_input_select) |
| 1832 | { |
| 1833 | case 0x00: return ioport("PLAYER1")->read(); |
| 1834 | case 0x01: return ioport("PLAYER2")->read(); |
| 1835 | case 0x02: return ioport("COINS")->read(); |
| 1836 | case 0x03: |
| 1837 | { |
| 1838 | return ioport("BUTTONS")->read(); |
| 1839 | } |
| 1840 | |
| 1841 | default: |
| 1842 | logerror("%s: input %02x read\n", machine().describe_context(), m_input_select); |
| 1843 | return 0xff; |
| 1844 | } |
| 1845 | } |
| 1846 | |
| 1847 | static ADDRESS_MAP_START( spkrform_io, AS_IO, 8, igs017_state ) |
| 1848 | AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs |
| 1849 | |
| 1850 | AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram") |
| 1851 | AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w ) AM_SHARE("paletteram") |
| 1852 | AM_RANGE( 0x1c00, 0x1fff ) AM_RAM |
| 1853 | |
| 1854 | AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read) |
| 1855 | AM_RANGE( 0x2012, 0x2012 ) AM_WRITE(video_disable_w ) |
| 1856 | |
| 1857 | AM_RANGE( 0x2014, 0x2014 ) AM_WRITE(nmi_enable_w ) |
| 1858 | AM_RANGE( 0x2015, 0x2015 ) AM_WRITE(irq_enable_w ) |
| 1859 | |
| 1860 | AM_RANGE( 0x4000, 0x5fff ) AM_RAM_WRITE(fg_w ) AM_SHARE("fg_videoram") |
| 1861 | AM_RANGE( 0x6000, 0x7fff ) AM_RAM_WRITE(bg_w ) AM_SHARE("bg_videoram") |
| 1862 | |
| 1863 | AM_RANGE( 0x8000, 0x8000 ) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
| 1864 | |
| 1865 | AM_RANGE( 0x9000, 0x9001 ) AM_DEVWRITE("ymsnd", ym2413_device, write) |
| 1866 | |
| 1867 | AM_RANGE( 0xa000, 0xa000 ) AM_READ_PORT( "A000" ) // Game selection |
| 1868 | AM_RANGE( 0xa001, 0xa001 ) AM_READ_PORT( "A001" ) |
| 1869 | |
| 1870 | AM_RANGE( 0xb000, 0xb000 ) AM_WRITE(input_select_w ) |
| 1871 | AM_RANGE( 0xb001, 0xb001 ) AM_READ(spkrform_input_r ) |
| 1872 | ADDRESS_MAP_END |
| 1873 | |
| 1874 | |
| 1779 | 1875 | // lhzb2 |
| 1780 | 1876 | |
| 1781 | 1877 | |
| r23877 | r23878 | |
| 3179 | 3275 | |
| 3180 | 3276 | INPUT_PORTS_END |
| 3181 | 3277 | |
| 3278 | // to do: |
| 3279 | static INPUT_PORTS_START( spkrform ) |
| 3182 | 3280 | |
| 3281 | PORT_START("DSW1") |
| 3282 | PORT_DIPUNKNOWN( 0x01, 0x01 ) |
| 3283 | PORT_DIPUNKNOWN( 0x02, 0x02 ) |
| 3284 | PORT_DIPUNKNOWN( 0x04, 0x04 ) |
| 3285 | PORT_DIPUNKNOWN( 0x08, 0x08 ) |
| 3286 | PORT_DIPUNKNOWN( 0x10, 0x10 ) |
| 3287 | PORT_DIPUNKNOWN( 0x20, 0x20 ) |
| 3288 | PORT_DIPUNKNOWN( 0x40, 0x40 ) |
| 3289 | PORT_DIPUNKNOWN( 0x80, 0x80 ) |
| 3290 | |
| 3291 | PORT_START("DSW2") |
| 3292 | PORT_DIPUNKNOWN( 0x01, 0x01 ) |
| 3293 | PORT_DIPUNKNOWN( 0x02, 0x02 ) |
| 3294 | PORT_DIPUNKNOWN( 0x04, 0x04 ) |
| 3295 | PORT_DIPUNKNOWN( 0x08, 0x08 ) |
| 3296 | PORT_DIPUNKNOWN( 0x10, 0x10 ) |
| 3297 | PORT_DIPUNKNOWN( 0x20, 0x20 ) |
| 3298 | PORT_DIPUNKNOWN( 0x40, 0x40 ) |
| 3299 | PORT_DIPUNKNOWN( 0x80, 0x80 ) |
| 3300 | |
| 3301 | PORT_START("DSW3") |
| 3302 | PORT_DIPNAME( 0x03, 0x03, "Win Up Pool" ) |
| 3303 | PORT_DIPSETTING( 0x03, "300" ) |
| 3304 | PORT_DIPSETTING( 0x02, "500" ) |
| 3305 | PORT_DIPSETTING( 0x01, "800" ) |
| 3306 | PORT_DIPSETTING( 0x00, "800" ) |
| 3307 | PORT_DIPUNKNOWN( 0x04, 0x04 ) |
| 3308 | PORT_DIPUNKNOWN( 0x08, 0x08 ) |
| 3309 | PORT_DIPUNKNOWN( 0x10, 0x10 ) |
| 3310 | PORT_DIPUNKNOWN( 0x20, 0x20 ) |
| 3311 | PORT_DIPUNKNOWN( 0x40, 0x40 ) |
| 3312 | PORT_DIPUNKNOWN( 0x80, 0x80 ) |
| 3313 | |
| 3314 | PORT_START("PLAYER1") |
| 3315 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // ?? exit poker |
| 3316 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) |
| 3317 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) |
| 3318 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) |
| 3319 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // start (formosa) |
| 3320 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // up |
| 3321 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // down / start |
| 3322 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) |
| 3323 | |
| 3324 | PORT_START("PLAYER2") |
| 3325 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) |
| 3326 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) |
| 3327 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) |
| 3328 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) |
| 3329 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // right / bet |
| 3330 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // button1 / hold1 |
| 3331 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) // hold2 |
| 3332 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) |
| 3333 | |
| 3334 | PORT_START("COINS") |
| 3335 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) // left |
| 3336 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) // hold3 |
| 3337 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) // credit in |
| 3338 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) // credit out |
| 3339 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 3340 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 3341 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 3342 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) |
| 3343 | |
| 3344 | PORT_START("BUTTONS") |
| 3345 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) // coin (coin error) |
| 3346 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) // coin (coin error) |
| 3347 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) |
| 3348 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE4 ) // hopper error |
| 3349 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD) |
| 3350 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD) // record |
| 3351 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD) |
| 3352 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("4") PORT_CODE(KEYCODE_4_PAD) |
| 3353 | |
| 3354 | PORT_START("A000") |
| 3355 | PORT_DIPNAME( 0xff, 0xff, "A000" ) |
| 3356 | PORT_DIPSETTING( 0xff, DEF_STR( Off ) ) |
| 3357 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 3358 | |
| 3359 | PORT_START("A001") |
| 3360 | PORT_DIPNAME( 0xff, 0xff, "A001" ) |
| 3361 | PORT_DIPSETTING( 0xff, DEF_STR( Off ) ) |
| 3362 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 3363 | |
| 3364 | INPUT_PORTS_END |
| 3365 | |
| 3366 | |
| 3183 | 3367 | /*************************************************************************** |
| 3184 | 3368 | Graphics Layout |
| 3185 | 3369 | ***************************************************************************/ |
| r23877 | r23878 | |
| 3234 | 3418 | Machine Drivers |
| 3235 | 3419 | ***************************************************************************/ |
| 3236 | 3420 | |
| 3237 | | TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::irqblocka_interrupt) |
| 3421 | TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::iqblocka_interrupt) |
| 3238 | 3422 | { |
| 3239 | 3423 | int scanline = param; |
| 3240 | 3424 | |
| r23877 | r23878 | |
| 3269 | 3453 | MCFG_CPU_ADD("maincpu", Z180, XTAL_16MHz / 2) |
| 3270 | 3454 | MCFG_CPU_PROGRAM_MAP(iqblocka_map) |
| 3271 | 3455 | MCFG_CPU_IO_MAP(iqblocka_io) |
| 3272 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, irqblocka_interrupt, "screen", 0, 1) |
| 3456 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, iqblocka_interrupt, "screen", 0, 1) |
| 3273 | 3457 | |
| 3274 | 3458 | MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf ) |
| 3275 | 3459 | |
| r23877 | r23878 | |
| 3360 | 3544 | |
| 3361 | 3545 | |
| 3362 | 3546 | // lhzb2 |
| 3547 | |
| 3363 | 3548 | static I8255A_INTERFACE( lhzb2_ppi8255_intf ) |
| 3364 | 3549 | { |
| 3365 | 3550 | DEVCB_INPUT_PORT("COINS"), /* Port A read */ |
| r23877 | r23878 | |
| 3468 | 3653 | |
| 3469 | 3654 | |
| 3470 | 3655 | // sdmg2 |
| 3656 | |
| 3471 | 3657 | static I8255A_INTERFACE( sdmg2_ppi8255_intf ) |
| 3472 | 3658 | { |
| 3473 | 3659 | DEVCB_INPUT_PORT("DSW1"), /* Port A read */ |
| r23877 | r23878 | |
| 3563 | 3749 | MCFG_CPU_ADD("maincpu", Z180, XTAL_16MHz / 2) |
| 3564 | 3750 | MCFG_CPU_PROGRAM_MAP(tjsb_map) |
| 3565 | 3751 | MCFG_CPU_IO_MAP(tjsb_io) |
| 3566 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, irqblocka_interrupt, "screen", 0, 1) |
| 3752 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, iqblocka_interrupt, "screen", 0, 1) |
| 3567 | 3753 | |
| 3568 | 3754 | MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf ) |
| 3569 | 3755 | |
| r23877 | r23878 | |
| 3591 | 3777 | MACHINE_CONFIG_END |
| 3592 | 3778 | |
| 3593 | 3779 | |
| 3780 | // spkrform |
| 3781 | |
| 3782 | static MACHINE_CONFIG_START( spkrform, igs017_state ) |
| 3783 | MCFG_CPU_ADD("maincpu", Z180, XTAL_16MHz / 2) |
| 3784 | MCFG_CPU_PROGRAM_MAP(spkrform_map) |
| 3785 | MCFG_CPU_IO_MAP(spkrform_io) |
| 3786 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, iqblocka_interrupt, "screen", 0, 1) |
| 3787 | |
| 3788 | MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf ) |
| 3789 | |
| 3790 | MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) |
| 3791 | |
| 3792 | /* video hardware */ |
| 3793 | MCFG_SCREEN_ADD("screen", RASTER) |
| 3794 | MCFG_SCREEN_REFRESH_RATE(60) |
| 3795 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 3796 | MCFG_SCREEN_SIZE(512, 256) |
| 3797 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
| 3798 | MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) |
| 3799 | |
| 3800 | MCFG_GFXDECODE(igs017) |
| 3801 | MCFG_PALETTE_LENGTH(0x100*2) |
| 3802 | |
| 3803 | |
| 3804 | /* sound hardware */ |
| 3805 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 3806 | MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz) |
| 3807 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) |
| 3808 | |
| 3809 | MCFG_OKIM6295_ADD("oki", XTAL_16MHz / 16, OKIM6295_PIN7_HIGH) |
| 3810 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) |
| 3811 | MACHINE_CONFIG_END |
| 3812 | |
| 3813 | |
| 3594 | 3814 | /*************************************************************************** |
| 3595 | 3815 | ROMs Loading |
| 3596 | 3816 | ***************************************************************************/ |
| r23877 | r23878 | |
| 4172 | 4392 | ROM_LOAD( "palce22v10h_tar97_u20.u20", 0x2dd, 0x2dd, NO_DUMP ) |
| 4173 | 4393 | ROM_END |
| 4174 | 4394 | |
| 4395 | /*************************************************************************** |
| 4175 | 4396 | |
| 4176 | | GAME( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Shu Zi Le Yuan (V127M)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4177 | | GAME( 1996, iqblockf, iqblock, iqblocka, iqblocka, igs017_state, iqblockf, ROT0, "IGS", "Shu Zi Le Yuan (V113FR)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4178 | | GAME( 1997, mgdh, 0, mgdha, mgdh, igs017_state, mgdh, ROT0, "IGS", "Mahjong Man Guan Da Heng (Taiwan, V125T1)", 0 ) |
| 4179 | | GAME( 1997, mgdha, mgdh, mgdha, mgdh , igs017_state, mgdha, ROT0, "IGS", "Mahjong Man Guan Da Heng (Taiwan, V123T1)", 0 ) |
| 4180 | | GAME( 1997, sdmg2, 0, sdmg2, sdmg2, igs017_state, sdmg2, ROT0, "IGS", "Mahjong Super Da Man Guan II (China, V754C)", 0 ) |
| 4181 | | GAME( 1997, tjsb, 0, tjsb, tjsb, igs017_state, tjsb, ROT0, "IGS", "Mahjong Tian Jiang Shen Bing (V137C)", GAME_UNEMULATED_PROTECTION ) |
| 4182 | | GAME( 1998, mgcs, 0, mgcs, mgcs, igs017_state, mgcs, ROT0, "IGS", "Mahjong Man Guan Cai Shen (V103CS)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) |
| 4183 | | GAME( 1998, lhzb2, 0, lhzb2, lhzb2, igs017_state, lhzb2, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (set 1)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4184 | | GAME( 1998, lhzb2a, lhzb2, lhzb2a, lhzb2a, igs017_state, lhzb2a, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (VS221M)", 0 ) |
| 4185 | | GAME( 1998, slqz2, 0, slqz2, slqz2, igs017_state, slqz2, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 2 (VS203J)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4186 | | GAME( 1999?, tarzan, 0, iqblocka, iqblocka, igs017_state, tarzan, ROT0, "IGS", "Tarzan (V109C)", GAME_NOT_WORKING ) |
| 4187 | | GAME( 1999?, tarzana, tarzan, iqblocka, iqblocka, igs017_state, tarzana, ROT0, "IGS", "Tarzan (V107)", GAME_NOT_WORKING ) |
| 4188 | | GAME( 2000?, starzan, 0, iqblocka, iqblocka, igs017_state, starzan, ROT0, "IGS / G.F. Gioca", "Super Tarzan (Italy, V100I)", GAME_NOT_WORKING ) |
| 4397 | Super Poker (v100xD03) / Formosa |
| 4398 | |
| 4399 | PCB NO-0187 |
| 4400 | |
| 4401 | CPU Z8018008psc |
| 4402 | IGS017 |
| 4403 | IGS025 |
| 4404 | K668 (AD-65) |
| 4405 | UM3567 (YM2413) |
| 4406 | Audio Xtal 3.579545 |
| 4407 | CPU Xtal 16Mhz |
| 4408 | 3 x DSW8 |
| 4409 | |
| 4410 | ***************************************************************************/ |
| 4411 | |
| 4412 | ROM_START( spkrform ) |
| 4413 | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 4414 | ROM_LOAD( "super2in1-v100xd03.u29", 0x00000, 0x40000, CRC(e8f7476c) SHA1(e20241d68d22ee01a65f5d7921fe2291077f081f) ) |
| 4415 | |
| 4416 | ROM_REGION( 0x100000, "sprites", 0 ) |
| 4417 | ROM_LOAD( "super2in1.u26", 0x00000, 0x80000, CRC(af3b1d9d) SHA1(ce84b076939d2c9d959cd430d4f5664f32735d60) ) // FIXED BITS (xxxxxxxx0xxxxxxx) |
| 4418 | ROM_LOAD( "super2in1.u25", 0x80000, 0x80000, CRC(7ebaf0a0) SHA1(c278810742cd7e1daa89a93fd7fe82495543ccbf) ) // FIXED BITS (xxxxxxxx0xxxxxxx) |
| 4419 | |
| 4420 | ROM_REGION( 0x80000, "tilemaps", 0 ) |
| 4421 | ROM_LOAD( "super2in1.u24", 0x00000, 0x40000, CRC(54d68c49) SHA1(faad78779c3a5b4ecb1c733192d9477ce3324f71) ) |
| 4422 | |
| 4423 | ROM_REGION( 0x40000, "oki", 0 ) |
| 4424 | ROM_LOAD( "super2in1sp.u28", 0x00000, 0x40000, CRC(33e6089d) SHA1(cd1ad01e92c18bbeab3fe3ea9152f8b0a3eb1b29) ) |
| 4425 | ROM_END |
| 4426 | |
| 4427 | |
| 4428 | GAME( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Shu Zi Le Yuan (V127M)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4429 | GAME( 1996, iqblockf, iqblock, iqblocka, iqblocka, igs017_state, iqblockf, ROT0, "IGS", "Shu Zi Le Yuan (V113FR)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4430 | GAME( 1997, mgdh, 0, mgdha, mgdh, igs017_state, mgdh, ROT0, "IGS", "Mahjong Man Guan Da Heng (Taiwan, V125T1)", 0 ) |
| 4431 | GAME( 1997, mgdha, mgdh, mgdha, mgdh , igs017_state, mgdha, ROT0, "IGS", "Mahjong Man Guan Da Heng (Taiwan, V123T1)", 0 ) |
| 4432 | GAME( 1997, sdmg2, 0, sdmg2, sdmg2, igs017_state, sdmg2, ROT0, "IGS", "Mahjong Super Da Man Guan II (China, V754C)", 0 ) |
| 4433 | GAME( 1997, tjsb, 0, tjsb, tjsb, igs017_state, tjsb, ROT0, "IGS", "Mahjong Tian Jiang Shen Bing (V137C)", GAME_UNEMULATED_PROTECTION ) |
| 4434 | GAME( 1998, mgcs, 0, mgcs, mgcs, igs017_state, mgcs, ROT0, "IGS", "Mahjong Man Guan Cai Shen (V103CS)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) |
| 4435 | GAME( 1998, lhzb2, 0, lhzb2, lhzb2, igs017_state, lhzb2, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (set 1)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4436 | GAME( 1998, lhzb2a, lhzb2, lhzb2a, lhzb2a, igs017_state, lhzb2a, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (VS221M)", 0 ) |
| 4437 | GAME( 1998, slqz2, 0, slqz2, slqz2, igs017_state, slqz2, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 2 (VS203J)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |
| 4438 | GAME( 1999?, tarzan, 0, iqblocka, iqblocka, igs017_state, tarzan, ROT0, "IGS", "Tarzan (V109C)", GAME_NOT_WORKING ) |
| 4439 | GAME( 1999?, tarzana, tarzan, iqblocka, iqblocka, igs017_state, tarzana, ROT0, "IGS", "Tarzan (V107)", GAME_NOT_WORKING ) |
| 4440 | GAME( 2000?, starzan, 0, iqblocka, iqblocka, igs017_state, starzan, ROT0, "IGS / G.F. Gioca", "Super Tarzan (Italy, V100I)", GAME_NOT_WORKING ) |
| 4441 | GAME( ????, spkrform, spk116it, spkrform, spkrform, igs017_state, spkrform, ROT0, "IGS", "Super Poker (v100xD03) / Formosa", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) |