trunk/src/mame/drivers/dreamwld.c
| r242073 | r242074 | |
| 160 | 160 | xsize = (source[0] & 0x00000e00) >> 9; |
| 161 | 161 | ysize = (source[0] & 0x0e000000) >> 25; |
| 162 | 162 | |
| 163 | | tileno = (source[1] & 0x0000ffff) >>0; |
| 163 | tileno = (source[1] & 0x0001ffff) >>0; |
| 164 | 164 | colour = (source[1] & 0x3f000000) >>24; |
| 165 | 165 | xflip = (source[1] & 0x40000000); |
| 166 | 166 | yflip = (source[1] & 0x80000000); |
| r242073 | r242074 | |
| 372 | 372 | |
| 373 | 373 | READ32_MEMBER(dreamwld_state::dreamwld_protdata_r) |
| 374 | 374 | { |
| 375 | | // static int count = 0; |
| 375 | // static int count = 0; |
| 376 | 376 | |
| 377 | | |
| 378 | | // printf("protection read %04x\n", count); |
| 379 | | // count++; |
| 380 | | |
| 381 | 377 | UINT8 *protdata = memregion("user1")->base(); |
| 382 | 378 | size_t protsize = memregion("user1")->bytes(); |
| 383 | 379 | UINT8 dat = protdata[(m_protindex++) % protsize]; |
| 384 | 380 | |
| 381 | // printf("protection read %04x %02x\n", count, dat); |
| 382 | // count++; |
| 383 | |
| 385 | 384 | // real hw returns 00 after end of data, I haven't checked if it's possible to overflow the read counter |
| 386 | 385 | // and read out the internal rom. |
| 387 | 386 | |
| 388 | 387 | return dat << 24; |
| 389 | 388 | } |
| 390 | 389 | |
| 390 | static ADDRESS_MAP_START( oki1_map, AS_0, 8, dreamwld_state ) |
| 391 | AM_RANGE(0x00000, 0x2ffff) AM_ROM |
| 392 | AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("oki1bank") |
| 393 | ADDRESS_MAP_END |
| 391 | 394 | |
| 395 | static ADDRESS_MAP_START( oki2_map, AS_0, 8, dreamwld_state ) |
| 396 | AM_RANGE(0x00000, 0x2ffff) AM_ROM |
| 397 | AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("oki2bank") |
| 398 | ADDRESS_MAP_END |
| 399 | |
| 392 | 400 | WRITE32_MEMBER(dreamwld_state::dreamwld_6295_0_bank_w) |
| 393 | 401 | { |
| 394 | | UINT8 *sound = memregion("oki1")->base(); |
| 395 | | |
| 396 | 402 | if (ACCESSING_BITS_0_7) |
| 397 | | memcpy(sound + 0x30000, sound + 0xb0000 + 0x10000 * (data&0x3), 0x10000); |
| 403 | membank("oki1bank")->set_entry(data&3); |
| 398 | 404 | else |
| 399 | 405 | logerror("OKI0: unk bank write %x mem_mask %8x\n", data, mem_mask); |
| 400 | 406 | } |
| 401 | 407 | |
| 402 | 408 | WRITE32_MEMBER(dreamwld_state::dreamwld_6295_1_bank_w) |
| 403 | 409 | { |
| 404 | | UINT8 *sound = memregion("oki2")->base(); |
| 405 | | |
| 406 | 410 | if (ACCESSING_BITS_0_7) |
| 407 | | memcpy(sound + 0x30000, sound + 0xb0000 + 0x10000 * (data&0x3), 0x10000); |
| 411 | membank("oki2bank")->set_entry(data&3); |
| 408 | 412 | else |
| 409 | 413 | logerror("OKI1: unk bank write %x mem_mask %8x\n", data, mem_mask); |
| 410 | 414 | } |
| r242073 | r242074 | |
| 570 | 574 | INPUT_PORTS_END |
| 571 | 575 | |
| 572 | 576 | |
| 577 | static INPUT_PORTS_START( cutefght ) |
| 578 | PORT_START("INPUTS") |
| 579 | PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 580 | PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 581 | PORT_BIT( 0x0000fffc, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 582 | PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_START2 ) |
| 583 | PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 584 | PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 585 | PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 586 | PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) |
| 587 | PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) |
| 588 | PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) |
| 589 | PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) |
| 590 | PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_START1 ) |
| 591 | PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) |
| 592 | PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) |
| 593 | PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) |
| 594 | PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) |
| 595 | PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) |
| 596 | PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) |
| 597 | PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) |
| 598 | |
| 599 | PORT_START("c00004") |
| 600 | PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "DSW") |
| 601 | PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "DSW") |
| 602 | |
| 603 | PORT_START("DSW") |
| 604 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) |
| 605 | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) |
| 606 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 607 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) |
| 608 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 609 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 610 | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) |
| 611 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) |
| 612 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 613 | PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) |
| 614 | PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) |
| 615 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 616 | PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) |
| 617 | PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) |
| 618 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 619 | PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) |
| 620 | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) |
| 621 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 622 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) |
| 623 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 624 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 625 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) |
| 626 | PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) |
| 627 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 628 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) |
| 629 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) |
| 630 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 631 | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) |
| 632 | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) |
| 633 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 634 | PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) |
| 635 | PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) |
| 636 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 637 | PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) |
| 638 | PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) |
| 639 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 640 | PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) |
| 641 | PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) |
| 642 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 643 | PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) |
| 644 | PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) |
| 645 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 646 | PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) |
| 647 | PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) |
| 648 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 649 | PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" ) |
| 650 | INPUT_PORTS_END |
| 651 | |
| 652 | |
| 573 | 653 | static const gfx_layout layout_16x16x4 = |
| 574 | 654 | { |
| 575 | 655 | 16,16, |
| r242073 | r242074 | |
| 591 | 671 | |
| 592 | 672 | void dreamwld_state::machine_start() |
| 593 | 673 | { |
| 674 | if (subdevice("oki1")) |
| 675 | { |
| 676 | membank("oki1bank")->configure_entries(0, 4, memregion("oki1")->base()+0x30000, 0x10000); |
| 677 | membank("oki1bank")->set_entry(0); |
| 678 | } |
| 679 | |
| 680 | if (subdevice("oki2")) |
| 681 | { |
| 682 | membank("oki2bank")->configure_entries(0, 4, memregion("oki2")->base()+0x30000, 0x10000); |
| 683 | membank("oki2bank")->set_entry(0); |
| 684 | } |
| 685 | |
| 594 | 686 | save_item(NAME(m_protindex)); |
| 595 | 687 | save_item(NAME(m_tilebank)); |
| 596 | 688 | save_item(NAME(m_tilebankold)); |
| r242073 | r242074 | |
| 633 | 725 | MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/32, OKIM6295_PIN7_LOW) /* 1MHz verified */ |
| 634 | 726 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) |
| 635 | 727 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) |
| 728 | MCFG_DEVICE_ADDRESS_MAP(AS_0, oki1_map) |
| 729 | |
| 636 | 730 | MACHINE_CONFIG_END |
| 637 | 731 | |
| 638 | 732 | static MACHINE_CONFIG_DERIVED( dreamwld, baryon ) |
| r242073 | r242074 | |
| 645 | 739 | MCFG_OKIM6295_ADD("oki2", XTAL_32MHz/32, OKIM6295_PIN7_LOW) /* 1MHz verified */ |
| 646 | 740 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) |
| 647 | 741 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) |
| 742 | MCFG_DEVICE_ADDRESS_MAP(AS_0, oki2_map) |
| 743 | |
| 648 | 744 | MACHINE_CONFIG_END |
| 649 | 745 | |
| 650 | 746 | |
| r242073 | r242074 | |
| 705 | 801 | ram. The interrupt vectors point at the code placed in RAM. */ |
| 706 | 802 | ROM_LOAD( "protdata.bin", 0x000, 0x6c9 , CRC(f284b2fd) SHA1(9e8096c8aa8a288683f002311b38787b120748d1) ) /* extracted */ |
| 707 | 803 | |
| 708 | | ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Samples - 1st chip */ |
| 804 | ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip */ |
| 709 | 805 | ROM_LOAD( "5.bin", 0x000000, 0x80000, CRC(9689570a) SHA1(4414233da8f46214ca7e9022df70953922a63aa4) ) |
| 710 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 711 | 806 | |
| 712 | | ROM_REGION( 0x100000, "oki2", 0 ) /* OKI Samples - 2nd chip */ |
| 807 | ROM_REGION( 0x80000, "oki2", 0 ) /* OKI Samples - 2nd chip */ |
| 713 | 808 | ROM_LOAD( "6.bin", 0x000000, 0x80000, CRC(c8b91f30) SHA1(706004ca56d0a74bc7a3dfd73a21cdc09eb90f05) ) |
| 714 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 715 | 809 | |
| 716 | 810 | ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */ |
| 717 | 811 | ROM_LOAD16_WORD_SWAP( "9.bin", 0x000000, 0x200000, CRC(fa84e3af) SHA1(5978737d348fd382f4ec004d29870656c864d137) ) |
| r242073 | r242074 | |
| 738 | 832 | ROM_REGION( 0x10000, "cpu1", 0 ) /* 87C52 MCU Code */ |
| 739 | 833 | ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped. */ |
| 740 | 834 | |
| 741 | | ROM_REGION( 0x1000, "user1", ROMREGION_ERASEFF ) /* Protection data */ // not read yet |
| 742 | | /* The MCU supplies this data. |
| 743 | | The 68k reads it through a port, taking the size and destination write address from the level 1 |
| 744 | | and level 2 irq positions in the 68k vector table (there is code to check that they haven't been |
| 745 | | modified!) It then decodes the data using the rom checksum previously calculated and puts it in |
| 746 | | ram. The interrupt vectors point at the code placed in RAM. */ |
| 747 | | ROM_LOAD( "protdata.bin", 0x000, 0x701 , NO_DUMP ) |
| 835 | ROM_REGION( 0x1000, "user1", ROMREGION_ERASEFF ) /* Protection data */ |
| 836 | ROM_LOAD( "protdata.bin", 0x000, 0x701 , CRC(764c3c0e) SHA1(ae044d016850b730b2d97ccb7845b6b438c1e074) ) |
| 748 | 837 | |
| 749 | | ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Samples - 1st chip */ |
| 838 | ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip */ |
| 839 | ROM_LOAD( "cf.2", 0x000000, 0x80000, CRC(694ddaf9) SHA1(f9138e7e1d8f771c4e69c17f27fb2b70fbee076a) ) |
| 840 | |
| 841 | ROM_REGION( 0x80000, "oki2", 0 ) /* OKI Samples - 2nd chip */ |
| 750 | 842 | ROM_LOAD( "cf.1", 0x000000, 0x80000, CRC(fa3b6890) SHA1(7534931c96d6fa05fee840a7ea07b87e2e2acc50) ) |
| 751 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 752 | 843 | |
| 753 | | ROM_REGION( 0x100000, "oki2", 0 ) /* OKI Samples - 2nd chip */ |
| 754 | | ROM_LOAD( "cf.2", 0x000000, 0x80000, CRC(694ddaf9) SHA1(f9138e7e1d8f771c4e69c17f27fb2b70fbee076a) ) |
| 755 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 756 | | |
| 757 | 844 | ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprite Tiles - decoded */ |
| 758 | 845 | ROM_LOAD16_WORD_SWAP( "cf.10", 0x000000, 0x200000, CRC(62bf1e6e) SHA1(fb4b0db313e26687f0ebc6a8505a02e5348776da) ) |
| 759 | 846 | ROM_LOAD16_WORD_SWAP( "cf.11", 0x200000, 0x200000, CRC(796f23a7) SHA1(adaa4c8525de428599f4489ecc8e966fed0d514d) ) |
| r242073 | r242074 | |
| 826 | 913 | ROM_REGION( 0x10000, "user1", ROMREGION_ERASE00 ) /* Protection data */ |
| 827 | 914 | ROM_LOAD( "protdata.bin", 0x000, 0x745, CRC(06b8a880) SHA1(b7d4bf26d34cb544825270c2c474bbd4c81a6c9e) ) /* extracted */ |
| 828 | 915 | |
| 829 | | ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Samples - 1st chip*/ |
| 916 | ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples - 1st chip*/ |
| 830 | 917 | ROM_LOAD( "mx27c4000_5.bin", 0x000000, 0x80000, CRC(7afa6adb) SHA1(d4049e1068a5f7abf0e14d0b9fbbbc6dfb5d0170) ) |
| 831 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 832 | 918 | |
| 833 | | ROM_REGION( 0x100000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */ |
| 919 | ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */ |
| 834 | 920 | /* not populared */ |
| 835 | 921 | |
| 836 | 922 | ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */ |
| r242073 | r242074 | |
| 896 | 982 | ROM_REGION( 0x6bd, "user1", 0 ) /* Protection data */ |
| 897 | 983 | ROM_LOAD( "protdata.bin", 0x000, 0x6bd, CRC(117f32a8) SHA1(837bea09d3e59ab9e13bd1103b1fc988edb361c0) ) /* extracted */ |
| 898 | 984 | |
| 899 | | ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Samples */ |
| 985 | ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples */ |
| 900 | 986 | ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(e0349074) SHA1(f3d53d96dff586a0ad1632f52e5559cdce5ed0d8) ) |
| 901 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 902 | 987 | |
| 903 | 988 | ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */ |
| 904 | 989 | ROM_LOAD16_WORD_SWAP( "9.bin", 0x000000, 0x200000, CRC(28bf828f) SHA1(271390cc4f4015a3b69976f0d0527947f13c971b) ) |
| r242073 | r242074 | |
| 929 | 1014 | ROM_REGION( 0x6bd, "user1", 0 ) /* Protection data - from baryon set, assumed to be the same */ |
| 930 | 1015 | ROM_LOAD( "protdata.bin", 0x000, 0x6bd, CRC(117f32a8) SHA1(837bea09d3e59ab9e13bd1103b1fc988edb361c0) ) /* extracted */ |
| 931 | 1016 | |
| 932 | | ROM_REGION( 0x100000, "oki1", 0 ) /* OKI Samples */ |
| 1017 | ROM_REGION( 0x80000, "oki1", 0 ) /* OKI Samples */ |
| 933 | 1018 | ROM_LOAD( "rom_1_27c040.bin", 0x000000, 0x80000, CRC(e0349074) SHA1(f3d53d96dff586a0ad1632f52e5559cdce5ed0d8) ) |
| 934 | | ROM_RELOAD(0x80000,0x80000) // for the banks |
| 935 | 1019 | |
| 936 | 1020 | ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */ |
| 937 | 1021 | ROM_LOAD16_WORD_SWAP( "rom_10_27c160.bin", 0x000000, 0x200000, CRC(28bf828f) SHA1(271390cc4f4015a3b69976f0d0527947f13c971b) ) |
| r242073 | r242074 | |
| 948 | 1032 | ROM_LOAD( "rom_9_27c512.bin", 0x000000, 0x10000, CRC(0da8db45) SHA1(7d5bd71c5b0b28ff74c732edd7c662f46f2ab25b) ) |
| 949 | 1033 | ROM_END |
| 950 | 1034 | |
| 1035 | |
| 1036 | |
| 951 | 1037 | GAME( 1997, baryon, 0, baryon, baryon, driver_device, 0, ROT270, "SemiCom", "Baryon - Future Assault (set 1)", GAME_SUPPORTS_SAVE ) |
| 952 | 1038 | GAME( 1997, baryona, baryon, baryon, baryon, driver_device, 0, ROT270, "SemiCom", "Baryon - Future Assault (set 2)", GAME_SUPPORTS_SAVE ) |
| 953 | 1039 | |
| 954 | 1040 | GAME( 2000, dreamwld, 0, dreamwld, dreamwld, driver_device, 0, ROT0, "SemiCom", "Dream World", GAME_SUPPORTS_SAVE ) |
| 955 | 1041 | |
| 956 | | GAME( 1998, cutefght, 0, dreamwld, dreamwld, driver_device, 0, ROT0, "SemiCom", "Cute Fighters", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // needs protection data |
| 1042 | GAME( 1998, cutefght, 0, dreamwld, cutefght, driver_device, 0, ROT0, "SemiCom", "Cute Fighter", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) // wrong linescroll? |
| 957 | 1043 | |
| 958 | 1044 | GAME( 1999, rolcrush, 0, baryon, rolcrush, driver_device, 0, ROT0, "Trust / SemiCom", "Rolling Crush (version 1.07.E - 1999/02/11)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) // wrong linescroll |