src/mame/drivers/senjyo.c
| r953 | r954 | |
| 224 | 224 | #endif |
| 225 | 225 | ADDRESS_MAP_END |
| 226 | 226 | |
| 227 | /* For the bootleg */ |
| 228 | |
| 229 | /* are scroll registers 1+2 linked on the bootleg?, only one copy is written */ |
| 230 | static WRITE8_HANDLER(starforb_scrolly2) |
| 231 | { |
| 232 | senjyo_scrolly2[offset] = data; |
| 233 | senjyo_scrolly1[offset] = data; |
| 234 | } |
| 235 | |
| 236 | static WRITE8_HANDLER(starforb_scrollx2) |
| 237 | { |
| 238 | senjyo_scrollx2[offset] = data; |
| 239 | senjyo_scrollx1[offset] = data; |
| 240 | } |
| 241 | |
| 242 | |
| 243 | static ADDRESS_MAP_START( starforb_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 244 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) |
| 245 | AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) |
| 246 | AM_RANGE(0x9000, 0x93ff) AM_WRITE(senjyo_fgvideoram_w) AM_BASE(&senjyo_fgvideoram) |
| 247 | AM_RANGE(0x9400, 0x97ff) AM_WRITE(senjyo_fgcolorram_w) AM_BASE(&senjyo_fgcolorram) |
| 248 | AM_RANGE(0x9800, 0x987f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 249 | AM_RANGE(0x9c00, 0x9dff) AM_WRITE(paletteram_IIBBGGRR_w) AM_BASE(&paletteram) |
| 250 | |
| 251 | /* The format / use of the ram here is different on the bootleg */ |
| 252 | AM_RANGE(0x9e20, 0x9e21) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrolly3) |
| 253 | AM_RANGE(0x9e25, 0x9e25) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrollx3) |
| 254 | AM_RANGE(0x9e30, 0x9e31) AM_WRITE(starforb_scrolly2) AM_BASE(&senjyo_scrolly2) // ok |
| 255 | AM_RANGE(0x9e35, 0x9e35) AM_WRITE(starforb_scrollx2) AM_BASE(&senjyo_scrollx2) // ok |
| 256 | AM_RANGE(0x9e00, 0x9e3f) AM_WRITE(MWA8_RAM) |
| 257 | |
| 258 | AM_RANGE(0xa000, 0xa7ff) AM_WRITE(senjyo_bg3videoram_w) AM_BASE(&senjyo_bg3videoram) |
| 259 | AM_RANGE(0xa800, 0xafff) AM_WRITE(senjyo_bg2videoram_w) AM_BASE(&senjyo_bg2videoram) |
| 260 | AM_RANGE(0xb000, 0xb7ff) AM_WRITE(senjyo_bg1videoram_w) AM_BASE(&senjyo_bg1videoram) |
| 261 | AM_RANGE(0xb800, 0xbbff) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_radarram) |
| 262 | AM_RANGE(0xd000, 0xd000) AM_WRITE(flip_screen_w) |
| 263 | AM_RANGE(0xd004, 0xd004) AM_WRITE(z80pioA_0_p_w) |
| 264 | |
| 265 | /* these aren't used / written, left here to make sure memory is allocated */ |
| 266 | AM_RANGE(0xfe00, 0xfe1f) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_fgscroll) |
| 267 | AM_RANGE(0xfe27, 0xfe27) AM_WRITE(senjyo_bgstripes_w) AM_BASE(&senjyo_bgstripesram) /* controls width of background stripes */ |
| 268 | AM_RANGE(0xfe28, 0xfe29) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrolly1) |
| 269 | AM_RANGE(0xfe2d, 0xfe2d) AM_WRITE(MWA8_RAM) AM_BASE(&senjyo_scrollx1) |
| 270 | ADDRESS_MAP_END |
| 271 | |
| 272 | |
| 273 | static ADDRESS_MAP_START( starforb_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 274 | AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) |
| 275 | AM_RANGE(0x4000, 0x43ff) AM_READ(MRA8_RAM) |
| 276 | AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM) |
| 277 | ADDRESS_MAP_END |
| 278 | |
| 279 | static ADDRESS_MAP_START( starforb_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 280 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) |
| 281 | AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM) |
| 282 | AM_RANGE(0x8000, 0x8000) AM_WRITE(SN76496_0_w) |
| 283 | AM_RANGE(0x9000, 0x9000) AM_WRITE(SN76496_1_w) |
| 284 | AM_RANGE(0xa000, 0xa000) AM_WRITE(SN76496_2_w) |
| 285 | AM_RANGE(0xd000, 0xd000) AM_WRITE(senjyo_volume_w) |
| 286 | #if 0 |
| 287 | AM_RANGE(0xe000, 0xe000) AM_WRITE(unknown) |
| 288 | AM_RANGE(0xf000, 0xf000) AM_WRITE(unknown) |
| 289 | #endif |
| 290 | |
| 291 | AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) |
| 292 | ADDRESS_MAP_END |
| 293 | |
| 227 | 294 | static WRITE8_HANDLER( pio_w ) |
| 228 | 295 | { |
| 229 | 296 | if (offset & 1) |
| r953 | r954 | |
| 596 | 663 | static MACHINE_DRIVER_START( senjyo ) |
| 597 | 664 | |
| 598 | 665 | /* basic machine hardware */ |
| 599 | | MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz? */ |
| 666 | MDRV_CPU_ADD_TAG("main", Z80, 4000000) /* 4 MHz? */ |
| 600 | 667 | MDRV_CPU_PROGRAM_MAP(readmem,writemem) |
| 601 | 668 | MDRV_CPU_VBLANK_INT(senjyo_interrupt,1) |
| 602 | 669 | |
| 603 | | MDRV_CPU_ADD(Z80, 2000000) |
| 670 | MDRV_CPU_ADD_TAG("sub", Z80, 2000000) |
| 604 | 671 | MDRV_CPU_CONFIG(daisy_chain) |
| 605 | 672 | /* audio CPU */ /* 2 MHz? */ |
| 606 | 673 | MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) |
| r953 | r954 | |
| 640 | 707 | MACHINE_DRIVER_END |
| 641 | 708 | |
| 642 | 709 | |
| 710 | static MACHINE_DRIVER_START( starforb ) |
| 711 | |
| 712 | /* basic machine hardware */ |
| 713 | MDRV_IMPORT_FROM(senjyo) |
| 714 | MDRV_CPU_MODIFY("main") |
| 715 | MDRV_CPU_PROGRAM_MAP(readmem,starforb_writemem) |
| 716 | |
| 717 | MDRV_CPU_MODIFY("sub") |
| 718 | MDRV_CPU_PROGRAM_MAP(starforb_sound_readmem,starforb_sound_writemem) |
| 719 | MACHINE_DRIVER_END |
| 720 | |
| 721 | |
| 643 | 722 | /*************************************************************************** |
| 644 | 723 | |
| 645 | 724 | Game driver(s) |
| r953 | r954 | |
| 724 | 803 | ROM_LOAD( "07b.bin", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */ |
| 725 | 804 | ROM_END |
| 726 | 805 | |
| 806 | ROM_START( starforb ) |
| 807 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 808 | ROM_LOAD( "a2.8m", 0x0000, 0x2000, CRC(e81e8b7d) SHA1(829a082a335a0cf5bf8cc97bee96e62271f03ff4) ) |
| 809 | ROM_LOAD( "a3.8k", 0x2000, 0x2000, CRC(7e98f0ab) SHA1(76eb387fbf5d04b7951a115d29076d1fd21346c4) ) |
| 810 | ROM_LOAD( "a4.8j", 0x4000, 0x2000, CRC(285bc599) SHA1(c2f294a5e3ca39084e8f8503d6e9e00885ad0609) ) |
| 811 | ROM_LOAD( "a5.8f", 0x6000, 0x2000, CRC(74d328b1) SHA1(3098438d47f650507de8b1d0aecfca81663cbe9c) ) |
| 812 | |
| 813 | ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound board */ |
| 814 | ROM_LOAD( "a0.2e", 0x0000, 0x2000, CRC(5ab0e2fa) SHA1(78f0290d1e006a39bb8ee5a29cf229ed2c1f2b09) ) |
| 815 | |
| 816 | ROM_REGION( 0x03000, REGION_GFX1, ROMREGION_DISPOSE ) |
| 817 | ROM_LOAD( "b8.8h", 0x00000, 0x1000, CRC(f4803339) SHA1(a119d68c2dd1c0e191231ce77353b31f30f7aa76) ) /* fg */ |
| 818 | ROM_LOAD( "b7.8f", 0x01000, 0x1000, CRC(96979684) SHA1(bb4f7d3afc8dfaa723dfb5374996cc4bfd76fa3c) ) |
| 819 | ROM_LOAD( "b6.8d", 0x02000, 0x1000, CRC(eead1d5c) SHA1(7c9165ed227c5228122b494a265cbfd6e843ba61) ) |
| 820 | |
| 821 | ROM_REGION( 0x06000, REGION_GFX2, ROMREGION_DISPOSE ) |
| 822 | ROM_LOAD( "c17.8a", 0x00000, 0x2000, CRC(c3bda12f) SHA1(3748ea8e34222a31a365a02ec77430f268b0b397) ) /* bg1 */ |
| 823 | ROM_LOAD( "c16.7a", 0x02000, 0x2000, CRC(9e9384fe) SHA1(3aaa9cc64ef3775325f64733da4f6c328abf6514) ) |
| 824 | ROM_LOAD( "c15.6a", 0x04000, 0x2000, CRC(84603285) SHA1(f4d6dfa3968fbd8ebf1a6451d5ea1821d65d9b49) ) |
| 825 | |
| 826 | ROM_REGION( 0x06000, REGION_GFX3, ROMREGION_DISPOSE ) |
| 827 | ROM_LOAD( "c20.8k", 0x00000, 0x2000, CRC(fdd9e38b) SHA1(3766835d9e9fc7e5dd99521e7303562029b78a65) ) /* bg2 */ |
| 828 | ROM_LOAD( "c19.7k", 0x02000, 0x2000, CRC(668aea14) SHA1(62eb0df48f2f0c5778bb230cc3bf0b8eb3b4e3f8) ) |
| 829 | ROM_LOAD( "c18.6k", 0x04000, 0x2000, CRC(c62a19c1) SHA1(9ce0e29630d3c8cba4db4cff333b250481348968) ) |
| 830 | |
| 831 | ROM_REGION( 0x03000, REGION_GFX4, ROMREGION_DISPOSE ) |
| 832 | ROM_LOAD( "c5.8n", 0x00000, 0x1000, CRC(6455c3ad) SHA1(b163ccd3dc26ccfa8be1d16d52e17bc660ff84e3) ) /* bg3 */ |
| 833 | ROM_LOAD( "c4.7n", 0x01000, 0x1000, CRC(68c60d0f) SHA1(1152ba0c274ecadb534133a860bbc8a93577dcf2) ) |
| 834 | ROM_LOAD( "c3.6n", 0x02000, 0x1000, CRC(ce20b469) SHA1(60177a669d9c8cbeedd03ca5e2edf3f589c1c815) ) |
| 835 | |
| 836 | ROM_REGION( 0x0c000, REGION_GFX5, ROMREGION_DISPOSE ) |
| 837 | ROM_LOAD( "b13.8p", 0x00000, 0x2000, CRC(1cfc88a8) SHA1(2948864ed88ba3b1d500047e2ef594b67274710c) ) /* sprites */ |
| 838 | ROM_LOAD( "b14.8r", 0x02000, 0x2000, CRC(902060b4) SHA1(f371aa12ba3f554918e8a482114df166cd007b0e) ) /* sprites */ |
| 839 | ROM_LOAD( "b11.8m", 0x04000, 0x2000, CRC(7676b970) SHA1(f5fcee4ca555e7c880c6bf5d5ea01ff8d619a837) ) |
| 840 | ROM_LOAD( "b12.8n", 0x06000, 0x2000, CRC(6f4a5d67) SHA1(182be475dfee4d272f57c030e3acd4e8cfa4fc53) ) |
| 841 | ROM_LOAD( "b9.8j", 0x08000, 0x2000, CRC(e7d51959) SHA1(34d9afb0f31dc1d02e7b85aa69345fc66cf0f554) ) |
| 842 | ROM_LOAD( "b10.8l", 0x0a000, 0x2000, CRC(6ea27bec) SHA1(30da81a99d5920107751afda359576e426c497c4) ) |
| 843 | |
| 844 | ROM_REGION( 0x0020, REGION_PROMS, 0 ) /* PROMs */ |
| 845 | ROM_LOAD( "a18s030.7b", 0x0000, 0x0020, CRC(68db8300) SHA1(33cd6b5ed92d7b73a708f2e4b12b6e7f6496d0c6) ) /* unknown - timing? */ |
| 846 | ROM_END |
| 847 | |
| 848 | |
| 727 | 849 | ROM_START( starfore ) |
| 728 | 850 | ROM_REGION( 2*0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */ |
| 729 | 851 | ROM_LOAD( "starfore.005", 0x0000, 0x2000, CRC(825f7ebe) SHA1(d63fd516e075bcc28d42189216b95bbf491a4cd1) ) |
| r953 | r954 | |
| 839 | 961 | |
| 840 | 962 | |
| 841 | 963 | |
| 842 | | GAME( 1983, senjyo, 0, senjyo, senjyo, senjyo, ROT90, "Tehkan", "Senjyo", 0 ) |
| 843 | | GAME( 1984, starforc, 0, senjyo, starforc, starforc, ROT90, "Tehkan", "Star Force", 0 ) |
| 844 | | GAME( 1984, starfore, starforc, senjyo, starforc, starfore, ROT90, "Tehkan", "Star Force (encrypted)", 0 ) |
| 845 | | GAME( 1985, megaforc, starforc, senjyo, starforc, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", 0 ) |
| 846 | | GAME( 1986, baluba, 0, senjyo, baluba, starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu", GAME_IMPERFECT_COLORS ) |
| 964 | GAME( 1983, senjyo, 0, senjyo, senjyo, senjyo, ROT90, "Tehkan", "Senjyo", 0 ) |
| 965 | GAME( 1984, starforc, 0, senjyo, starforc, starforc, ROT90, "Tehkan", "Star Force", 0 ) |
| 966 | GAME( 1984, starfore, starforc, senjyo, starforc, starfore, ROT90, "Tehkan", "Star Force (encrypted)", 0 ) |
| 967 | GAME( 1984, starforb, starforc, starforb,starforc, starfore, ROT90, "[Tehkan] (bootleg)", "Star Force (encrypted, bootleg)", 0 ) |
| 968 | GAME( 1985, megaforc, starforc, senjyo, starforc, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", 0 ) |
| 969 | GAME( 1986, baluba, 0, senjyo, baluba, starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu", GAME_IMPERFECT_COLORS ) |
src/mame/drivers/galaxian.c
| r953 | r954 | |
| 1200 | 1200 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w) |
| 1201 | 1201 | ADDRESS_MAP_END |
| 1202 | 1202 | |
| 1203 | static ADDRESS_MAP_START( kkgalax_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 1204 | |
| 1205 | AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) |
| 1206 | AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM) |
| 1207 | AM_RANGE(0x9000, 0x93ff) AM_READ(galaxian_videoram_r) |
| 1208 | AM_RANGE(0x9800, 0x98ff) AM_READ(MRA8_RAM) |
| 1209 | AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) |
| 1210 | AM_RANGE(0xa800, 0xa800) AM_READ(input_port_1_r) |
| 1211 | AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r) |
| 1212 | // AM_RANGE(0xcc00, 0xcc00) AM_READ(watchdog_reset_r) |
| 1213 | |
| 1214 | ADDRESS_MAP_END |
| 1215 | |
| 1216 | static ADDRESS_MAP_START( kkgalax_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 1217 | AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_NOP) |
| 1218 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_RAM) |
| 1219 | AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxian_videoram_w) AM_BASE(&galaxian_videoram) |
| 1220 | AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxian_attributesram_w) AM_BASE(&galaxian_attributesram) |
| 1221 | AM_RANGE(0x9840, 0x985f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_spriteram) AM_SIZE(&galaxian_spriteram_size) |
| 1222 | AM_RANGE(0x9860, 0x987f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_bulletsram) AM_SIZE(&galaxian_bulletsram_size) |
| 1223 | AM_RANGE(0x9880, 0x98ff) AM_WRITE(MWA8_RAM) |
| 1224 | // AM_RANGE(0xc000, 0xc001) AM_WRITE(galaxian_leds_w) |
| 1225 | // AM_RANGE(0xc002, 0xc002) AM_WRITE(galaxian_coin_lockout_w) |
| 1226 | // AM_RANGE(0xc003, 0xc003) AM_WRITE(galaxian_coin_counter_w) |
| 1227 | // AM_RANGE(0xc004, 0xc007) AM_WRITE(galaxian_lfo_freq_w) |
| 1228 | // AM_RANGE(0xc400, 0xc402) AM_WRITE(galaxian_background_enable_w) |
| 1229 | // AM_RANGE(0xc403, 0xc403) AM_WRITE(galaxian_noise_enable_w) |
| 1230 | // AM_RANGE(0xc405, 0xc405) AM_WRITE(galaxian_shoot_enable_w) |
| 1231 | // AM_RANGE(0xc406, 0xc407) AM_WRITE(galaxian_vol_w) |
| 1232 | AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxian_nmi_enable_w) |
| 1233 | // AM_RANGE(0xc804, 0xc804) AM_WRITE(MWA8_NOP) // link cut |
| 1234 | // AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxian_flip_screen_x_w) |
| 1235 | // AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxian_flip_screen_y_w) |
| 1236 | // AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w) |
| 1237 | ADDRESS_MAP_END |
| 1238 | |
| 1203 | 1239 | static READ8_HANDLER( hexpoola_data_port_r ) |
| 1204 | 1240 | { |
| 1205 | 1241 | switch (activecpu_get_pc()) |
| r953 | r954 | |
| 3889 | 3925 | PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 3890 | 3926 | INPUT_PORTS_END |
| 3891 | 3927 | |
| 3928 | /* not correct */ |
| 3929 | INPUT_PORTS_START( kkgalax ) |
| 3930 | PORT_START_TAG("IN0") |
| 3931 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 3932 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL |
| 3933 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY |
| 3934 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY |
| 3935 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY |
| 3936 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY |
| 3937 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 3938 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 3892 | 3939 | |
| 3940 | PORT_START_TAG("IN1") |
| 3941 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // button 1 and start 1 |
| 3942 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL // button 1 and start 2? |
| 3943 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL |
| 3944 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL |
| 3945 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL |
| 3946 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL |
| 3947 | PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) |
| 3948 | PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) |
| 3949 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) |
| 3950 | // PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) |
| 3951 | PORT_DIPSETTING( 0xc0, DEF_STR( Free_Play ) ) |
| 3952 | |
| 3953 | PORT_START_TAG("DSW0") |
| 3954 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| 3955 | PORT_DIPSETTING( 0x00, "1" ) |
| 3956 | PORT_DIPSETTING( 0x01, "2" ) |
| 3957 | PORT_DIPSETTING( 0x02, "3" ) |
| 3958 | PORT_DIPSETTING( 0x03, "4" ) |
| 3959 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) |
| 3960 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 3961 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 3962 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) |
| 3963 | PORT_DIPSETTING( 0x08, "500000" ) |
| 3964 | PORT_DIPSETTING( 0x00, "750000" ) |
| 3965 | PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 3966 | INPUT_PORTS_END |
| 3967 | |
| 3893 | 3968 | INPUT_PORTS_START( porter ) |
| 3894 | 3969 | PORT_START_TAG("IN0")\ |
| 3895 | 3970 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| r953 | r954 | |
| 4687 | 4762 | |
| 4688 | 4763 | MACHINE_DRIVER_END |
| 4689 | 4764 | |
| 4765 | static MACHINE_DRIVER_START( kkgalax ) |
| 4766 | |
| 4767 | /* basic machine hardware */ |
| 4768 | MDRV_IMPORT_FROM(galaxian) |
| 4769 | MDRV_CPU_MODIFY("main") |
| 4770 | MDRV_CPU_PROGRAM_MAP(kkgalax_readmem,kkgalax_writemem) |
| 4771 | |
| 4772 | MDRV_GFXDECODE(gmgalax_gfxdecodeinfo) |
| 4773 | |
| 4774 | MDRV_VIDEO_START(ckongs) |
| 4775 | |
| 4776 | MACHINE_DRIVER_END |
| 4777 | |
| 4778 | |
| 4690 | 4779 | static MACHINE_DRIVER_START( hexpoola ) |
| 4691 | 4780 | |
| 4692 | 4781 | /* basic machine hardware */ |
| r953 | r954 | |
| 4928 | 5017 | ROM_LOAD( "mmi6331.7f", 0x0000, 0x0020, CRC(24652bc4) SHA1(d89575f3749c75dc963317fe451ffeffd9856e4d) ) /* Compatible with 82s123 prom */ |
| 4929 | 5018 | ROM_END |
| 4930 | 5019 | |
| 5020 | /* was marked 'star fighter' but doesn't appear to be the above game */ |
| 5021 | ROM_START( galaxbsf ) |
| 5022 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 5023 | ROM_LOAD( "1.bn", 0x0000, 0x0400, CRC(cc37b774) SHA1(5b7d9e3c896a1f5b0353732806568d4ffead3ead) ) |
| 5024 | ROM_LOAD( "2.bn", 0x0400, 0x0400, CRC(c6d21f03) SHA1(64784915bf988fd2a3eea5f219c95c8498175018) ) |
| 5025 | ROM_LOAD( "3.bn", 0x0800, 0x0400, CRC(30e28016) SHA1(07a621e5061d85a9559a920d76716ea4db61b674) ) |
| 5026 | ROM_LOAD( "4.bn", 0x0c00, 0x0400, CRC(de7e7770) SHA1(b06043a1d898eb323ddabffd3d2a3b1f63df0e5e) ) |
| 5027 | ROM_LOAD( "5.bn", 0x1000, 0x0400, CRC(a916c919) SHA1(b3e264ff92687022a0f2f551d5df36db848b48eb) ) |
| 5028 | ROM_LOAD( "6.bn", 0x1400, 0x0400, CRC(9175882b) SHA1(d9943efcb9245af7f01aecc533a699bdefc7d283) ) |
| 5029 | ROM_LOAD( "7.bn", 0x1800, 0x0400, CRC(1237b9da) SHA1(00e11532c599fca452a816683b361a24476b7100) ) |
| 5030 | ROM_LOAD( "8.bn", 0x1c00, 0x0400, CRC(78c53607) SHA1(780acff57b594185eb5f4b24ae7d8b4992d96611) ) |
| 5031 | ROM_LOAD( "9.bn", 0x2000, 0x0400, CRC(901894cc) SHA1(a189a8ab0068e9acc3be7b8e87adc1eadfd6b708) ) |
| 5032 | ROM_LOAD( "10.bn", 0x2400, 0x0400, CRC(5876f695) SHA1(e8c0d13066cfe4a409293b9e1380513099b35330) ) |
| 5033 | |
| 5034 | ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) |
| 5035 | ROM_LOAD( "11.bn", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) ) |
| 5036 | ROM_LOAD( "12.bn", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) ) |
| 5037 | |
| 5038 | ROM_REGION( 0x0020, REGION_PROMS, 0 ) |
| 5039 | ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) |
| 5040 | ROM_END |
| 5041 | |
| 5042 | |
| 4931 | 5043 | ROM_START( tst_galx ) |
| 4932 | 5044 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 4933 | 5045 | ROM_LOAD( "test.u", 0x0000, 0x0800, CRC(0614cd7f) SHA1(12440678be8a27a6c3032b6e43c45e27905ffa83) ) /* The Test ROM */ |
| r953 | r954 | |
| 6695 | 6807 | ROM_LOAD( "ck_cp.bin", 0x0000, 0x0020, CRC(7e0b79cb) SHA1(72ef3eb5f09e10c13dcf6fd568a6d16658055a16) ) |
| 6696 | 6808 | ROM_END |
| 6697 | 6809 | |
| 6810 | ROM_START( kkgalax ) |
| 6811 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 6812 | ROM_LOAD( "kc1.bin", 0x0000, 0x0800, CRC(a87fc828) SHA1(f66b72427d8cdfabdf2274e22bdb10018ac7d2f9) ) |
| 6813 | ROM_CONTINUE( 0x2000, 0x0800) |
| 6814 | ROM_LOAD( "kc2.bin", 0x0800, 0x0800, CRC(94a13dec) SHA1(d3bfd5a266bb1f0e66d847e15b51bdd4c9a15e37) ) |
| 6815 | ROM_CONTINUE( 0x2800, 0x0800) |
| 6816 | ROM_LOAD( "kc3.bin", 0x1000, 0x0800, CRC(5efc6705) SHA1(9af59a9cb58599b1c7ce0a063929531f6c73b912) ) |
| 6817 | ROM_CONTINUE( 0x3000, 0x0800) |
| 6818 | ROM_LOAD( "kc4.bin", 0x1800, 0x0800, CRC(ac917d66) SHA1(63a0db01bb93e052fec64fa69ebcbae3b0b8aa04) ) |
| 6819 | ROM_CONTINUE( 0x3800, 0x0800) |
| 6820 | ROM_LOAD( "kc5.bin", 0x4000, 0x0800, CRC(5a9ee1ed) SHA1(1bc420a42a4931c389b4f8db451de7c59786dfbc) ) |
| 6821 | ROM_LOAD( "kc6.bin", 0x4800, 0x0800, CRC(f787431e) SHA1(5cee497b8f4072509920d982470cbe06bd18f88b) ) |
| 6822 | ROM_LOAD( "kc7.bin", 0x5000, 0x0800, CRC(7a185e31) SHA1(a257f32958af6b2c1c9007b46bd1dc984670b0d9) ) |
| 6698 | 6823 | |
| 6824 | ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) |
| 6825 | ROM_LOAD( "kc8carat.bin", 0x0000, 0x1000, CRC(7866d2cb) SHA1(62dd8b80bc0459c7337d8a8cb83e53b999e7f4a9) ) |
| 6826 | ROM_LOAD( "kc9carat.bin", 0x1000, 0x1000, CRC(7311a101) SHA1(49d54c8b94cae4ba81d7a7684eaa4e87815bb4da) ) |
| 6827 | |
| 6828 | ROM_REGION( 0x0020, REGION_PROMS, 0 ) // not in this set |
| 6829 | ROM_LOAD( "ck_cp.bin", 0x0000, 0x0020, CRC(7e0b79cb) SHA1(72ef3eb5f09e10c13dcf6fd568a6d16658055a16) ) |
| 6830 | ROM_END |
| 6831 | |
| 6832 | |
| 6699 | 6833 | ROM_START( porter ) |
| 6700 | 6834 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 6701 | 6835 | ROM_LOAD( "port1.bin", 0x0000, 0x0800, CRC(babaf7fe) SHA1(2138abf57990df9b6f9953efd3be9b2bede49520) ) |
| r953 | r954 | |
| 6727 | 6861 | GAME( 1979, galap1, galaxian, galaxian, superg, 0, ROT90, "hack", "Space Invaders Galactica", GAME_SUPPORTS_SAVE ) |
| 6728 | 6862 | GAME( 1979, galap4, galaxian, galaxian, superg, 0, ROT90, "hack", "Galaxian Part 4", GAME_SUPPORTS_SAVE ) |
| 6729 | 6863 | GAME( 1979, galturbo, galaxian, galaxian, superg, 0, ROT90, "hack", "Galaxian Turbo", GAME_SUPPORTS_SAVE ) |
| 6730 | | GAME( 1979, swarm, galaxian, galaxian, swarm, 0, ROT90, "hack", "Swarm", GAME_SUPPORTS_SAVE ) |
| 6864 | GAME( 1979, swarm, galaxian, galaxian, swarm, 0, ROT90, "[Namco] (Sub-Electro bootleg)", "Swarm (hack of Galaxian)", GAME_SUPPORTS_SAVE ) |
| 6731 | 6865 | GAME( 1979, zerotime, galaxian, galaxian, zerotime, 0, ROT90, "Petaco S.A.", "Zero Time", GAME_SUPPORTS_SAVE ) |
| 6732 | | GAME( 1979, starfght, galaxian, galaxian, swarm, 0, ROT90, "Jeutel", "Star Fighter", GAME_SUPPORTS_SAVE ) |
| 6866 | GAME( 1979, starfght, galaxian, galaxian, swarm, 0, ROT90, "Jeutel", "Star Fighter (bootleg of Galaxian)", GAME_SUPPORTS_SAVE ) |
| 6867 | GAME( 1979, galaxbsf, galaxian, galaxian, galaxian, 0, ROT90, "bootleg", "Galaxian (bootleg)", GAME_SUPPORTS_SAVE ) |
| 6733 | 6868 | GAME( 19??, tst_galx, galaxian, galaxian, galaxian, 0, ROT90, "Test ROM", "Galaxian Test ROM", GAME_SUPPORTS_SAVE ) |
| 6734 | 6869 | GAME( 1981, gmgalax, 0, gmgalax, gmgalax, gmgalax, ROT90, "bootleg", "Ghostmuncher Galaxian (bootleg)", GAME_SUPPORTS_SAVE ) |
| 6735 | 6870 | GAME( 19??, pisces, 0, pisces, pisces, pisces, ROT90, "Subelectro", "Pisces", GAME_SUPPORTS_SAVE ) |
| r953 | r954 | |
| 6813 | 6948 | GAME( 1980, luctoday, 0, galaxian, luctoday, 0, ROT270, "Sigma", "Lucky Today",GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
| 6814 | 6949 | GAME( 19??, chewing, 0, galaxian, luctoday, 0, ROT90, "unknown", "Chewing Gum", GAME_SUPPORTS_SAVE ) |
| 6815 | 6950 | GAME( 1982, catacomb, 0, galaxian, catacomb, 0, ROT90, "MTM Games", "Catacomb", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
| 6816 | | GAME( 1981, ckongg, 0, ckongg , ckongg, 0, ROT90, "bootleg", "Crazy Kong (galaxian)", GAME_SUPPORTS_SAVE ) |
| 6951 | GAME( 1981, ckongg, 0, ckongg, ckongg, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, set 1)", GAME_SUPPORTS_SAVE ) |
| 6952 | GAME( 1981, kkgalax, ckongg, kkgalax, kkgalax, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) |
| 6817 | 6953 | GAME( 19??, porter, 0, mooncrst, porter, 0, ROT90, "[Nova Games Ltd.] (bootleg)", "Port Man (bootleg on Moon Cresta hardware)", GAME_IMPERFECT_GRAPHICS ) // missing GFX bank switch! |
src/mame/drivers/scramble.c
| r953 | r954 | |
| 197 | 197 | ADDRESS_MAP_END |
| 198 | 198 | |
| 199 | 199 | |
| 200 | static ADDRESS_MAP_START( turpins_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 201 | AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) |
| 202 | AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) |
| 203 | AM_RANGE(0x9000, 0x93ff) AM_READ(MRA8_RAM) |
| 204 | AM_RANGE(0x9400, 0x97ff) AM_READ(galaxian_videoram_r) |
| 205 | AM_RANGE(0x9800, 0x98ff) AM_READ(MRA8_RAM) |
| 206 | |
| 207 | AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) |
| 208 | AM_RANGE(0xa001, 0xa001) AM_READ(input_port_1_r) |
| 209 | AM_RANGE(0xa002, 0xa002) AM_READ(input_port_2_r) |
| 210 | |
| 211 | AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) |
| 212 | // AM_RANGE(0x8100, 0x8103) AM_READ(ppi8255_0_r) |
| 213 | // AM_RANGE(0x8200, 0x8203) AM_READ(ppi8255_1_r) |
| 214 | |
| 215 | AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM) |
| 216 | ADDRESS_MAP_END |
| 217 | |
| 218 | static ADDRESS_MAP_START( turpins_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 219 | AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) |
| 220 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) |
| 221 | AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxian_videoram_w) AM_BASE(&galaxian_videoram) |
| 222 | AM_RANGE(0x9400, 0x97ff) AM_WRITE(galaxian_videoram_w) |
| 223 | AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxian_attributesram_w) AM_BASE(&galaxian_attributesram) |
| 224 | AM_RANGE(0x9840, 0x985f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_spriteram) AM_SIZE(&galaxian_spriteram_size) |
| 225 | AM_RANGE(0x9860, 0x987f) AM_WRITE(MWA8_RAM) AM_BASE(&galaxian_bulletsram) AM_SIZE(&galaxian_bulletsram_size) |
| 226 | AM_RANGE(0x9880, 0x98ff) AM_WRITE(MWA8_RAM) |
| 227 | |
| 228 | AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxian_nmi_enable_w) |
| 229 | AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxian_coin_counter_w) |
| 230 | AM_RANGE(0xa804, 0xa804) AM_WRITE(galaxian_stars_enable_w) |
| 231 | AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxian_flip_screen_x_w) |
| 232 | AM_RANGE(0xa807, 0xa807) AM_WRITE(galaxian_flip_screen_y_w) |
| 233 | /* don't know where these are */ |
| 234 | // AM_RANGE(0x8100, 0x8103) AM_WRITE(ppi8255_0_w) |
| 235 | // AM_RANGE(0x8200, 0x8203) AM_WRITE(ppi8255_1_w) |
| 236 | ADDRESS_MAP_END |
| 237 | |
| 200 | 238 | static ADDRESS_MAP_START( explorer_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 201 | 239 | AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) |
| 202 | 240 | AM_RANGE(0x4000, 0x4bff) AM_READ(MRA8_RAM) |
| r953 | r954 | |
| 1028 | 1066 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1029 | 1067 | INPUT_PORTS_END |
| 1030 | 1068 | |
| 1069 | |
| 1070 | INPUT_PORTS_START( turpins ) |
| 1071 | PORT_START_TAG("IN0") |
| 1072 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 1073 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably space for button 2 */ |
| 1074 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 1075 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 1076 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 1077 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 1078 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 1079 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1080 | |
| 1081 | PORT_START_TAG("IN1") |
| 1082 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| 1083 | PORT_DIPSETTING( 0x00, "3" ) |
| 1084 | PORT_DIPSETTING( 0x01, "4" ) |
| 1085 | PORT_DIPSETTING( 0x02, "5" ) |
| 1086 | PORT_DIPSETTING( 0x03, "126 (Cheat)") |
| 1087 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably space for player 2 button 2 */ |
| 1088 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 1089 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL |
| 1090 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 1091 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) |
| 1092 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) |
| 1093 | |
| 1094 | PORT_START_TAG("IN2") |
| 1095 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 1096 | PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) ) |
| 1097 | PORT_DIPSETTING( 0x00, "A 1/1 B 2/1 C 1/1" ) |
| 1098 | PORT_DIPSETTING( 0x02, "A 1/2 B 1/1 C 1/2" ) |
| 1099 | PORT_DIPSETTING( 0x04, "A 1/3 B 3/1 C 1/3" ) |
| 1100 | PORT_DIPSETTING( 0x06, "A 1/4 B 4/1 C 1/4" ) |
| 1101 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) |
| 1102 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 1103 | PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) |
| 1104 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 1105 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 1106 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 1107 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1108 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 1109 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 1110 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1111 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1112 | INPUT_PORTS_END |
| 1113 | |
| 1031 | 1114 | INPUT_PORTS_START( triplep ) |
| 1032 | 1115 | PORT_START_TAG("IN0") |
| 1033 | 1116 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL |
| r953 | r954 | |
| 2479 | 2562 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 2480 | 2563 | MACHINE_DRIVER_END |
| 2481 | 2564 | |
| 2565 | static MACHINE_DRIVER_START( turpins ) |
| 2566 | |
| 2567 | /* basic machine hardware */ |
| 2568 | MDRV_IMPORT_FROM(scramble) |
| 2569 | MDRV_CPU_MODIFY("main") |
| 2570 | MDRV_CPU_PROGRAM_MAP(turpins_readmem,turpins_writemem) |
| 2571 | MACHINE_DRIVER_END |
| 2572 | |
| 2482 | 2573 | /*************************************************************************** |
| 2483 | 2574 | |
| 2484 | 2575 | Game driver(s) |
| r953 | r954 | |
| 2686 | 2777 | ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) ) |
| 2687 | 2778 | ROM_END |
| 2688 | 2779 | |
| 2780 | |
| 2781 | |
| 2689 | 2782 | ROM_START( frogf ) |
| 2690 | 2783 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 2691 | 2784 | ROM_LOAD( "6.bin", 0x0000, 0x1000, CRC(8ff0a973) SHA1(adb1c28617d915fbcfa9190bd8589a56a8858e25) ) |
| r953 | r954 | |
| 3326 | 3419 | ROM_END |
| 3327 | 3420 | |
| 3328 | 3421 | |
| 3422 | ROM_START( turpins ) |
| 3423 | ROM_REGION( 0x10000, REGION_CPU1, 0 ) |
| 3424 | ROM_LOAD( "t1.bin", 0x0000, 0x1000, CRC(89dd50cc) SHA1(90e18f71324056a63272a02cabb0a6fe2a96dd0d) ) |
| 3425 | ROM_LOAD( "t3.bin", 0x1000, 0x1000, CRC(9562dc29) SHA1(e4fe51176e554d159342f2ba6ff6886723df0ec4) ) |
| 3426 | ROM_LOAD( "t4.bin", 0x2000, 0x1000, CRC(62291652) SHA1(82965d3e9608afde4ff06cba1d7a4b11cd904c11) ) |
| 3427 | ROM_LOAD( "t5.bin", 0x3000, 0x1000, CRC(804118e8) SHA1(6f733d0f688df73e36bac6635aa9e9163fbae141) ) |
| 3428 | ROM_LOAD( "t2.bin", 0x4000, 0x1000, CRC(8024f678) SHA1(3285f64ad55b3f4131d70e027751d587313c18ac) ) |
| 3429 | |
| 3430 | ROM_REGION( 0x10000, REGION_CPU2, 0 ) |
| 3431 | ROM_LOAD( "8tur.bin", 0x0000, 0x1000, CRC(c97ed8ab) SHA1(675e464eff7b2fa4a5c909d807a454440e7c96c9) ) |
| 3432 | ROM_LOAD( "5tur.bin", 0x1000, 0x1000, CRC(af5fc43c) SHA1(8a49c55feba094b07380615cf0b6f0878c25a260) ) |
| 3433 | |
| 3434 | ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) |
| 3435 | ROM_LOAD( "tur.4f", 0x0000, 0x0800, CRC(e5999d52) SHA1(bc3f52cf6c6e19dfd2dacd1e8c9128f437e995fc) ) |
| 3436 | ROM_LOAD( "tur.5f", 0x0800, 0x0800, CRC(c3ffd655) SHA1(dee51d77be262a2944488e381541c10a2b6e5d83) ) |
| 3437 | |
| 3438 | ROM_REGION( 0x0020, REGION_PROMS, 0 ) // missing, but the original hw is so close to scramble that the original prom works |
| 3439 | ROM_LOAD( "turtles.clr", 0x0000, 0x0020, CRC(f3ef02dd) SHA1(09fd795170d7d30f101d579f57553da5ff3800ab) ) |
| 3440 | ROM_END |
| 3441 | |
| 3329 | 3442 | GAME( 1981, scramble, 0, fscramble,scramble, scramble, ROT90, "Konami", "Scramble", GAME_SUPPORTS_SAVE ) |
| 3330 | 3443 | GAME( 1981, scrambls, scramble, fscramble,scramble, scrambls, ROT90, "[Konami] (Stern license)", "Scramble (Stern)", GAME_SUPPORTS_SAVE ) |
| 3331 | 3444 | GAME( 1981, explorer, scramble, explorer, explorer, 0, ROT90, "bootleg", "Explorer", GAME_SUPPORTS_SAVE ) |
| r953 | r954 | |
| 3362 | 3475 | GAME( 1982, scrpiona, scorpion, scorpion, scorpion, scorpion, ROT90, "Zaccaria", "Scorpion (set 2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE) |
| 3363 | 3476 | GAME( 1982, scrpionb, scorpion, scorpion, scorpion, scorpion, ROT90, "Zaccaria", "Scorpion (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE) |
| 3364 | 3477 | GAME( 1983, ad2083, 0, ad2083, ad2083, ad2083, ROT90, "Midcoin", "A. D. 2083", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE) |
| 3478 | GAME( 1981, turpins, turtles, turpins, turpins, 0, ROT90, "[Sega] (bootleg)", "Turpin (bootleg on Scramble hardware)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // haven't hooked up the sound CPU yet |
src/mame/drivers/srmp6.c
| r953 | r954 | |
| 2 | 2 | Super Real Mahjong P6 (JPN Ver.) |
| 3 | 3 | (c)1996 Seta |
| 4 | 4 | |
| 5 | | WIP driver by Sebastien Volpe |
| 5 | WIP driver by Sebastien Volpe, Tomasz Slanina and David Haywood |
| 6 | 6 | |
| 7 | Emulation Notes: |
| 8 | The graphics are compressed, using the same 8bpp RLE scheme as CPS3 uses |
| 9 | for the background on Sean's stage of Street Fighter III. |
| 10 | |
| 11 | DMA Operations are not fully understood |
| 12 | |
| 13 | |
| 7 | 14 | according prg ROM (offset $0fff80): |
| 8 | 15 | |
| 9 | 16 | S12 SYSTEM |
| r953 | r954 | |
| 13 | 20 | V1.00 |
| 14 | 21 | |
| 15 | 22 | TODO: |
| 16 | | - gfx decoding / emulation |
| 17 | 23 | - sound emulation (appears to be really close to st0016) |
| 24 | - fix DMA operations |
| 25 | - fix video emulation |
| 18 | 26 | |
| 19 | 27 | Are there other games on this 'System S12' hardware ??? |
| 20 | 28 | |
| r953 | r954 | |
| 54 | 62 | |
| 55 | 63 | |
| 56 | 64 | Dumped 06/15/2000 |
| 65 | |
| 57 | 66 | */ |
| 58 | 67 | |
| 59 | 68 | |
| 60 | 69 | #include "driver.h" |
| 61 | 70 | |
| 71 | static UINT16* tileram; |
| 72 | static UINT8* dirty_tileram; |
| 73 | static UINT16* dmaram; |
| 62 | 74 | |
| 63 | | /*************************************************************************** |
| 64 | | video - VERY preliminary |
| 65 | | ***************************************************************************/ |
| 75 | static UINT16 *sprram; |
| 66 | 76 | |
| 67 | | VIDEO_START(srmp6) |
| 77 | #define SRMP6_VERBOSE 0 |
| 78 | |
| 79 | static const gfx_layout tiles8x8_layout = |
| 68 | 80 | { |
| 69 | | } |
| 81 | 8,8, |
| 82 | (0x100000*16)/0x40, |
| 83 | 8, |
| 84 | { 0,1,2,3,4,5,6,7 }, |
| 85 | { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, |
| 86 | { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64 }, |
| 87 | 8*64 |
| 88 | }; |
| 70 | 89 | |
| 71 | | /* sprite RAM format: 8 words, 1st word = 0x8000 means end of list |
| 72 | 90 | |
| 73 | | Offset: Format: Value: |
| 91 | static VIDEO_START(srmp6) |
| 92 | { |
| 93 | /* create the char set (gfx will then be updated dynamically from RAM) */ |
| 94 | machine->gfx[0] = allocgfx(&tiles8x8_layout); |
| 95 | machine->gfx[0]->total_colors = machine->drv->total_colors / 256; |
| 96 | machine->gfx[0]->color_granularity=256; |
| 74 | 97 | |
| 75 | | 0000.w |
| 76 | | f--- ---- ---- ---- End of list |
| 77 | | -??? ???? ???? ???- |
| 78 | | ---- ---- ---- ---0 Sprite visible? |
| 98 | tileram = auto_malloc(0x100000*16); |
| 99 | dirty_tileram = auto_malloc((0x100000*16)/0x40); // every 8x8x8 tile is 0x40 bytes |
| 79 | 100 | |
| 80 | | 0002.w Code |
| 81 | | 0004.w X Position |
| 82 | | 0006.w Y Position |
| 101 | memset(tileram,(0x100000*16),0x00); |
| 102 | memset(dirty_tileram,(0x100000*16)/0x40,1); |
| 83 | 103 | |
| 84 | | 0008.w attributes/color? |
| 85 | | 000a.w attributes/color? |
| 104 | dmaram = auto_malloc(0x100); |
| 105 | } |
| 86 | 106 | |
| 87 | | 000c.l used ? |
| 107 | /* Debug code */ |
| 108 | static void srmp6_decode_charram(void) |
| 109 | { |
| 110 | if(input_code_pressed_once(KEYCODE_Z)) |
| 111 | { |
| 112 | int i; |
| 113 | for (i=0;i<(0x100000*16)/0x40;i++) |
| 114 | { |
| 115 | decodechar(Machine->gfx[0], i, (UINT8*)tileram, &tiles8x8_layout); |
| 116 | dirty_tileram[i] = 0; |
| 117 | } |
| 118 | } |
| 119 | } |
| 88 | 120 | |
| 89 | | cpu #0 (PC=00011B2A): unmapped program memory word write to 00400490 = 0001 & FFFF - sprite visible ? |
| 90 | | cpu #0 (PC=00011B2E): unmapped program memory word write to 00400492 = 0233 & FFFF - code |
| 91 | | cpu #0 (PC=00011B32): unmapped program memory word write to 00400494 = 00D8 & FFFF - x |
| 92 | | cpu #0 (PC=00011B36): unmapped program memory word write to 00400496 = 0080 & FFFF - y |
| 93 | | cpu #0 (PC=00011B3A): unmapped program memory word write to 00400498 = E000 & FFFF - attributes/color? |
| 94 | | cpu #0 (PC=00011B3E): unmapped program memory word write to 0040049A = 0000 & FFFF - attributes/color? |
| 95 | | cpu #0 (PC=00011B40): unmapped program memory word write to 0040049C = 0000 & FFFF -\ |
| 96 | | cpu #0 (PC=00011B40): unmapped program memory word write to 0040049E = 0000 & FFFF -/ used ? |
| 121 | #if 0 |
| 122 | static int xixi=0; |
| 123 | #endif |
| 97 | 124 | |
| 98 | | cpu #0 (PC=00011B4E): unmapped program memory word write to 004004B0 = 8000 & FFFF - end of list |
| 99 | | */ |
| 125 | static VIDEO_UPDATE(srmp6) |
| 126 | { |
| 127 | int x,y,tileno,height,width,xw,yw,sprite,xb,yb; |
| 128 | UINT16 *sprite_list=sprram; |
| 129 | UINT16 mainlist_offset = 0; |
| 100 | 130 | |
| 101 | | /* tile RAM format: where's color ? |
| 131 | union |
| 132 | { |
| 133 | INT16 a; |
| 134 | UINT16 b; |
| 135 | } temp; |
| 102 | 136 | |
| 103 | | cpu #0 (PC=000118E8): unmapped program memory word write to 00412002 = 0005 & FFFF - kind of init, interleaved with 'meaningful' words |
| 104 | | cpu #0 (PC=000118EE): unmapped program memory word write to 00412008 = 0000 & FFFF |
| 105 | | cpu #0 (PC=000118F4): unmapped program memory word write to 0041200A = 0000 & FFFF |
| 106 | | ... |
| 107 | | cpu #0 (PC=000118E8): unmapped program memory word write to 00416EB2 = 0005 & FFFF |
| 108 | | cpu #0 (PC=000118EE): unmapped program memory word write to 00416EB8 = 0000 & FFFF |
| 109 | | cpu #0 (PC=000118F4): unmapped program memory word write to 00416EBA = 0000 & FFFF |
| 137 | fillbitmap(bitmap,0,&machine->screen[0].visarea); |
| 110 | 138 | |
| 139 | #if 0 |
| 140 | /* debug */ |
| 141 | srmp6_decode_charram(); |
| 111 | 142 | |
| 112 | | cpu #0 (PC=0001170A): unmapped program memory word write to 00412000 = 4004 & FFFF |
| 113 | | cpu #0 (PC=00011712): unmapped program memory word write to 00412004 = 0000 & FFFF |
| 114 | | cpu #0 (PC=0001171A): unmapped program memory word write to 00412006 = 0000 & FFFF |
| 115 | | ... |
| 116 | | cpu #0 (PC=0001170A): unmapped program memory word write to 004133A0 = 4004 & FFFF - tile code [*] |
| 117 | | cpu #0 (PC=00011712): unmapped program memory word write to 004133A4 = 0140 & FFFF - x (00..140, step 16d) -> res = 320d |
| 118 | | cpu #0 (PC=0001171A): unmapped program memory word write to 004133A6 = 00E0 & FFFF - y (00..F0, step 16d) -> res = 240d |
| 119 | 143 | |
| 120 | | [*] tile code is 'incremented by 4', suggesting there are 4 8x8 tiles arranged to make a 16x16 one ??? |
| 121 | | */ |
| 122 | 144 | |
| 123 | | VIDEO_UPDATE(srmp6) |
| 124 | | { |
| 125 | | const UINT16 *source = spriteram16; |
| 126 | | const UINT16 *finish = source+spriteram_size/2; |
| 127 | | const gfx_element *gfx = machine->gfx[0]; |
| 145 | /* debug */ |
| 146 | if(input_code_pressed_once(KEYCODE_Q)) |
| 147 | { |
| 148 | ++xixi; |
| 149 | printf("%x\n",xixi); |
| 150 | } |
| 128 | 151 | |
| 129 | | fillbitmap(bitmap, get_black_pen(machine), cliprect); |
| 152 | if(input_code_pressed_once(KEYCODE_W)) |
| 153 | { |
| 154 | --xixi; |
| 155 | printf("%x\n",xixi); |
| 156 | } |
| 157 | #endif |
| 130 | 158 | |
| 131 | | // parse sprite list |
| 132 | | while( source<finish ) |
| 159 | /* Main spritelist is 0x0000 - 0x1fff in spriteram, sublists follow */ |
| 160 | while (mainlist_offset<0x2000/2) |
| 133 | 161 | { |
| 134 | | int num = source[1]; |
| 135 | | int xpos = source[2]; |
| 136 | | int ypos = source[3]; |
| 137 | | int color = 0; |
| 138 | | int flipx = 0; |
| 139 | | int flipy = 0; |
| 140 | 162 | |
| 141 | | if (source[0]&0x8000) break; // end of list |
| 163 | UINT16 *sprite_sublist=&sprram[sprite_list[mainlist_offset+1]<<3]; |
| 164 | UINT16 sublist_length=sprite_list[mainlist_offset+0]&0x7fff; //+1 ? |
| 165 | INT16 global_x,global_y; |
| 166 | UINT16 global_pal; |
| 142 | 167 | |
| 143 | | drawgfx( |
| 144 | | bitmap, |
| 145 | | gfx, |
| 146 | | num, |
| 147 | | color, |
| 148 | | flipx,flipy, |
| 149 | | xpos,ypos, |
| 150 | | cliprect, |
| 151 | | TRANSPARENCY_PEN,0 |
| 152 | | ); |
| 168 | /* end of list marker */ |
| 169 | if (sprite_list[mainlist_offset+0] == 0x8000) |
| 170 | return 0; |
| 153 | 171 | |
| 154 | | source += 0x8; |
| 172 | |
| 173 | if(sprite_list[mainlist_offset+0]!=0) |
| 174 | { |
| 175 | temp.b=sprite_list[mainlist_offset+2]; |
| 176 | global_x=temp.a; |
| 177 | temp.b=sprite_list[mainlist_offset+3]; |
| 178 | global_y=temp.a; |
| 179 | |
| 180 | global_pal = sprite_list[mainlist_offset+4] & 0xf; |
| 181 | |
| 182 | // printf("%x %x \n",sprite_list[mainlist_offset+1],sublist_length); |
| 183 | |
| 184 | while(sublist_length) |
| 185 | { |
| 186 | sprite=sprite_sublist[0]&0x3fff; |
| 187 | temp.b=sprite_sublist[2]; |
| 188 | x=temp.a; |
| 189 | temp.b=sprite_sublist[3]; |
| 190 | y=temp.a; |
| 191 | x+=global_x; |
| 192 | y+=global_y; |
| 193 | |
| 194 | width=((sprite_sublist[1])&0x3); |
| 195 | height=((sprite_sublist[1]>>2)&0x3); |
| 196 | |
| 197 | height = 1 << height; |
| 198 | width = 1 << width; |
| 199 | |
| 200 | tileno = sprite&0x3fff; |
| 201 | //tileno += (sprite_list[4]&0xf)*0x4000; // this makes things worse in places (title screen for example) |
| 202 | |
| 203 | for(xw=0;xw<width;xw++) |
| 204 | { |
| 205 | for(yw=0;yw<height;yw++) |
| 206 | { |
| 207 | |
| 208 | xb=x+xw*8; |
| 209 | yb=y+yw*8; |
| 210 | |
| 211 | if (dirty_tileram[tileno]) |
| 212 | { |
| 213 | decodechar(Machine->gfx[0], tileno, (UINT8*)tileram, &tiles8x8_layout); |
| 214 | dirty_tileram[tileno] = 0; |
| 215 | } |
| 216 | |
| 217 | drawgfx(bitmap,machine->gfx[0],tileno,global_pal,0,0,xb,yb,cliprect,TRANSPARENCY_PEN,0); |
| 218 | tileno++; |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | sprite_sublist+=8; |
| 223 | --sublist_length; |
| 224 | } |
| 225 | } |
| 226 | mainlist_offset+=8; |
| 155 | 227 | } |
| 228 | |
| 156 | 229 | return 0; |
| 157 | 230 | } |
| 158 | 231 | |
| r953 | r954 | |
| 203 | 276 | |
| 204 | 277 | static UINT16 srmp6_input_select = 0; |
| 205 | 278 | |
| 206 | | WRITE16_HANDLER( srmp6_input_select_w ) |
| 279 | static WRITE16_HANDLER( srmp6_input_select_w ) |
| 207 | 280 | { |
| 208 | 281 | srmp6_input_select = data & 0x0f; |
| 209 | 282 | } |
| 210 | 283 | |
| 211 | | READ16_HANDLER( srmp6_inputs_r ) |
| 284 | static READ16_HANDLER( srmp6_inputs_r ) |
| 212 | 285 | { |
| 213 | 286 | if (offset == 0) // DSW |
| 214 | 287 | return readinputport(4); |
| r953 | r954 | |
| 227 | 300 | |
| 228 | 301 | static UINT16 *video_regs; |
| 229 | 302 | |
| 230 | | WRITE16_HANDLER( video_regs_w ) |
| 303 | static WRITE16_HANDLER( video_regs_w ) |
| 231 | 304 | { |
| 232 | 305 | switch(offset) |
| 233 | 306 | { |
| 234 | 307 | |
| 235 | 308 | case 0x5e/2: // bank switch, used by ROM check |
| 309 | #if SRMP6_VERBOSE |
| 310 | printf("%x\n",data); |
| 311 | #endif |
| 312 | |
| 236 | 313 | memory_set_bankptr(1,(UINT16 *)(memory_region(REGION_USER2) + (data & 0x0f)*0x200000)); |
| 237 | 314 | break; |
| 238 | 315 | |
| r953 | r954 | |
| 257 | 334 | COMBINE_DATA(&video_regs[offset]); |
| 258 | 335 | } |
| 259 | 336 | |
| 260 | | READ16_HANDLER( video_regs_r ) |
| 337 | static READ16_HANDLER( video_regs_r ) |
| 261 | 338 | { |
| 262 | 339 | logerror("video_regs_r (PC=%06X): %04x\n", activecpu_get_previouspc(), offset*2); |
| 263 | 340 | return video_regs[offset]; |
| 264 | 341 | } |
| 265 | 342 | |
| 266 | 343 | |
| 344 | /* DMA RLE stuff - the same as CPS3 */ |
| 345 | static unsigned short lastb; |
| 346 | static unsigned short lastb2; |
| 347 | static int destl; |
| 348 | |
| 349 | static UINT32 process(UINT8 b,UINT32 dst_offset) |
| 350 | { |
| 351 | |
| 352 | int l=0; |
| 353 | |
| 354 | UINT8 *tram=(UINT8*)tileram; |
| 355 | |
| 356 | if(lastb==lastb2) //rle |
| 357 | { |
| 358 | int i; |
| 359 | int rle=(b+1)&0xff; |
| 360 | |
| 361 | for(i=0;i<rle;++i) |
| 362 | { |
| 363 | tram[dst_offset+destl] = lastb; |
| 364 | dirty_tileram[(dst_offset+destl)/0x40] = 1; |
| 365 | |
| 366 | dst_offset++; |
| 367 | ++l; |
| 368 | } |
| 369 | lastb2=0xffff; |
| 370 | |
| 371 | return l; |
| 372 | } |
| 373 | else |
| 374 | { |
| 375 | lastb2=lastb; |
| 376 | lastb=b; |
| 377 | tram[dst_offset+destl] = b; |
| 378 | dirty_tileram[(dst_offset+destl)/0x40] = 1; |
| 379 | |
| 380 | return 1; |
| 381 | } |
| 382 | } |
| 383 | |
| 384 | |
| 385 | static WRITE16_HANDLER(srmp6_dma_w) |
| 386 | { |
| 387 | COMBINE_DATA(&dmaram[offset]); |
| 388 | if(offset==13 && dmaram[offset]==0x40) |
| 389 | { |
| 390 | UINT32 srctab=2*((((UINT32)dmaram[5])<<16)|dmaram[4]); |
| 391 | UINT32 srcdata=2*((((UINT32)dmaram[11])<<16)|dmaram[10]); |
| 392 | UINT32 len=(((((UINT32)dmaram[7])<<16)|dmaram[6])+1); //??? WRONG! |
| 393 | int tempidx=0; |
| 394 | |
| 395 | /* show params */ |
| 396 | #if SRMP6_VERBOSE |
| 397 | printf("DMA! %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x\n", |
| 398 | dmaram[0x00/2], |
| 399 | dmaram[0x02/2], |
| 400 | dmaram[0x04/2], |
| 401 | dmaram[0x06/2], |
| 402 | dmaram[0x08/2], |
| 403 | dmaram[0x0a/2], |
| 404 | dmaram[0x0c/2], |
| 405 | dmaram[0x0e/2], |
| 406 | dmaram[0x10/2], |
| 407 | dmaram[0x12/2], |
| 408 | dmaram[0x14/2], |
| 409 | dmaram[0x16/2], |
| 410 | dmaram[0x18/2], |
| 411 | dmaram[0x1a/2]); |
| 412 | #endif |
| 413 | |
| 414 | destl=dmaram[9]*0x100000; |
| 415 | |
| 416 | lastb=0xfffe; |
| 417 | lastb2=0xffff; |
| 418 | |
| 419 | while(1) |
| 420 | { |
| 421 | int i; |
| 422 | UINT8 ctrl=memory_region(REGION_USER2)[srcdata]; |
| 423 | ++srcdata; |
| 424 | |
| 425 | for(i=0;i<8;++i) |
| 426 | { |
| 427 | UINT8 p=memory_region(REGION_USER2)[srcdata]; |
| 428 | |
| 429 | if(ctrl&0x80) |
| 430 | { |
| 431 | UINT8 real_byte; |
| 432 | p&=0x7f; |
| 433 | real_byte = memory_region(REGION_USER2)[srctab+p*2]; |
| 434 | tempidx+=process(real_byte,tempidx); |
| 435 | real_byte = memory_region(REGION_USER2)[srctab+p*2+1];//px[DMA_XOR((current_table_address+p*2+1))]; |
| 436 | tempidx+=process(real_byte,tempidx); |
| 437 | } |
| 438 | else |
| 439 | { |
| 440 | tempidx+=process(p,tempidx); |
| 441 | } |
| 442 | |
| 443 | ctrl<<=1; |
| 444 | ++srcdata; |
| 445 | |
| 446 | |
| 447 | if(tempidx>=len) |
| 448 | { |
| 449 | #if SRMP6_VERBOSE |
| 450 | printf("%x\n",srcdata); |
| 451 | #endif |
| 452 | return; |
| 453 | } |
| 454 | } |
| 455 | } |
| 456 | } |
| 457 | } |
| 458 | |
| 459 | /* if tileram is actually bigger than the mapped area, how do we access the rest? */ |
| 460 | static READ16_HANDLER(tileram_r) |
| 461 | { |
| 462 | // return tileram[offset]; |
| 463 | return 0x0000; |
| 464 | } |
| 465 | |
| 466 | static WRITE16_HANDLER(tileram_w) |
| 467 | { |
| 468 | //UINT16 tmp; |
| 469 | // COMBINE_DATA(&tileram[offset]); |
| 470 | |
| 471 | /* are the DMA registers enabled some other way, or always mapped here, over RAM? */ |
| 472 | if (offset >= 0xfff00/2 && offset <= 0xfff1a/2 ) |
| 473 | { |
| 474 | offset &=0x1f; |
| 475 | srmp6_dma_w(offset,data,mem_mask); |
| 476 | } |
| 477 | } |
| 267 | 478 | static ADDRESS_MAP_START( srmp6, ADDRESS_SPACE_PROGRAM, 16 ) |
| 268 | 479 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 269 | 480 | AM_RANGE(0x200000, 0x23ffff) AM_RAM // work RAM |
| r953 | r954 | |
| 275 | 486 | AM_RANGE(0x4d0000, 0x4d0001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // watchdog |
| 276 | 487 | |
| 277 | 488 | // OBJ RAM: checked [$400000-$47dfff] |
| 278 | | AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // 512 sprites |
| 279 | | AM_RANGE(0x402000, 0x47dfff) AM_RAM // tiles? layout is different from sprites |
| 280 | | // AM_RANGE(0x402000, 0x40200f) AM_RAM // set by routine $11c48 |
| 281 | | // AM_RANGE(0x402010, 0x40806f) AM_RAM // set by routine $11bf6 - 2nd sprite RAM maybe ? |
| 282 | | // AM_RANGE(0x412000, 0x416ebf) AM_RAM // probably larger |
| 489 | AM_RANGE(0x400000, 0x47ffff) AM_RAM AM_BASE(&sprram) |
| 283 | 490 | |
| 284 | 491 | // CHR RAM: checked [$500000-$5fffff] |
| 285 | | AM_RANGE(0x500000, 0x5fffff) AM_RAM |
| 286 | | // AM_RANGE(0x500000, 0x505cff) AM_RAM |
| 287 | | // AM_RANGE(0x505d00, 0x5fffff) AM_RAM |
| 492 | AM_RANGE(0x500000, 0x5fffff) AM_READWRITE(tileram_r,tileram_w)//AM_RAM AM_BASE(&tileram) |
| 493 | // AM_RANGE(0x5fff00, 0x5fffff) AM_WRITE(dma_w) AM_BASE(&dmaram) |
| 288 | 494 | |
| 289 | 495 | AM_RANGE(0x4c0000, 0x4c006f) AM_READWRITE(video_regs_r, video_regs_w) AM_BASE(&video_regs) // ? gfx regs ST-0026 NiLe |
| 290 | 496 | // AM_RANGE(0x4e0000, 0x4e00ff) AM_READWRITE(sound_regs_r, sound_regs_w) AM_BASE(&sound_regs) // ? sound regs (data) ST-0026 NiLe |
| r953 | r954 | |
| 292 | 498 | // AM_RANGE(0x4e0110, 0x4e0111) AM_NOP // ? accessed once ($268dc, written $b.w) |
| 293 | 499 | // AM_RANGE(0x5fff00, 0x5fff1f) AM_RAM // ? see routine $5ca8, video_regs related ??? |
| 294 | 500 | |
| 295 | | |
| 296 | 501 | // AM_RANGE(0xf00004, 0xf00005) AM_RAM // ? |
| 297 | 502 | // AM_RANGE(0xf00006, 0xf00007) AM_RAM // ? |
| 298 | 503 | |
| r953 | r954 | |
| 389 | 594 | PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) |
| 390 | 595 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 391 | 596 | PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) |
| 392 | | |
| 393 | 597 | INPUT_PORTS_END |
| 394 | 598 | |
| 395 | 599 | /*************************************************************************** |
| 396 | | Graphics definitions |
| 600 | Machine driver |
| 397 | 601 | ***************************************************************************/ |
| 398 | 602 | |
| 399 | | /* all this is plain wrong, failed attempt at decoding the gfx */ |
| 400 | | /* |
| 401 | | static const gfx_layout wrong_layout = |
| 603 | INTERRUPT_GEN(srmp6_interrupt) |
| 402 | 604 | { |
| 403 | | 8,8, |
| 404 | | RGN_FRAC(1,1), |
| 405 | | 8, |
| 406 | | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 407 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 408 | | { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64}, |
| 409 | | 8*8*8 |
| 410 | | }; |
| 605 | if(!cpu_getiloops()) |
| 606 | { |
| 607 | cpunum_set_input_line(0,3,HOLD_LINE); |
| 608 | } |
| 609 | else |
| 610 | { |
| 611 | cpunum_set_input_line(0,4,HOLD_LINE); |
| 612 | } |
| 613 | } |
| 411 | 614 | |
| 412 | | static const gfx_layout wrong_layout2 = |
| 413 | | { |
| 414 | | 8,8, |
| 415 | | RGN_FRAC(1,1), |
| 416 | | 1, |
| 417 | | { 0 }, |
| 418 | | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 419 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 420 | | 8*8*1 |
| 421 | | }; |
| 422 | | */ |
| 423 | | static const gfx_layout wrong_layout3 = /* 16x16x9? seems to be some 18 bytes granularity in roms */ |
| 424 | | { |
| 425 | | 16,16, |
| 426 | | RGN_FRAC(1,1), |
| 427 | | 8/*9*/, |
| 428 | | { /*0,*/ 1, 2, 3, 4, 5, 6, 7, 8 }, |
| 429 | | { STEP16(0,1)/*STEP16(0,9)*/ }, |
| 430 | | { STEP16(0,16*9) }, |
| 431 | | 16*16*9 |
| 432 | | }; |
| 433 | | |
| 434 | | |
| 435 | | static const gfx_decode gfxdecodeinfo[] = |
| 436 | | { |
| 437 | | // { REGION_GFX1, 0, &wrong_layout, 0, 0x100 }, // sprites (8x8x?) |
| 438 | | // { REGION_GFX1, 0, &wrong_layout2, 0, 0x100 }, // tiles (16x16x?) |
| 439 | | { REGION_GFX1, 0, &wrong_layout3, 0, 0x100 }, // tiles (16x16x9) |
| 440 | | { -1 } |
| 441 | | }; |
| 442 | | |
| 443 | | /*************************************************************************** |
| 444 | | Machine driver |
| 445 | | ***************************************************************************/ |
| 446 | | |
| 447 | 615 | static MACHINE_DRIVER_START( srmp6 ) |
| 448 | 616 | MDRV_CPU_ADD(M68000, 16000000) |
| 449 | 617 | MDRV_CPU_PROGRAM_MAP(srmp6,0) |
| 450 | | MDRV_CPU_VBLANK_INT(irq4_line_hold,1) // don't trigger IT 3 for now... |
| 618 | MDRV_CPU_VBLANK_INT(srmp6_interrupt,2) |
| 451 | 619 | |
| 452 | 620 | MDRV_SCREEN_REFRESH_RATE(60) |
| 453 | 621 | MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) |
| 454 | 622 | |
| 455 | | MDRV_GFXDECODE(gfxdecodeinfo) |
| 456 | | |
| 457 | 623 | MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) |
| 458 | | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 624 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) |
| 459 | 625 | MDRV_SCREEN_SIZE(64*8, 64*8) |
| 460 | | MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) |
| 626 | MDRV_SCREEN_VISIBLE_AREA(0*8, 340, 2*8, 256) |
| 461 | 627 | MDRV_PALETTE_LENGTH(0x800) |
| 462 | 628 | |
| 463 | 629 | MDRV_VIDEO_START(srmp6) |
| r953 | r954 | |
| 492 | 658 | ROM_REGION( 0x200000, REGION_USER1, 0 ) /* 68000 Data */ |
| 493 | 659 | ROM_LOAD( "sx011-09.10", 0x000000, 0x200000, CRC(58f74438) SHA1(a256e39ca0406e513ab4dbd812fb0b559b4f61f2) ) |
| 494 | 660 | |
| 495 | | ROM_REGION( 0x1400000, REGION_GFX1, ROMREGION_DISPOSE) |
| 496 | | ROM_LOAD( "sx011-05.18", 0x0000000, 0x400000, CRC(87e5fea9) SHA1(abd751b5744d6ac7e697774ea9a7f7455bf3ac7c) ) // CHR03 |
| 497 | | ROM_LOAD( "sx011-04.19", 0x0400000, 0x400000, CRC(e90d331e) SHA1(d8afb1497cec8fe6de10d23d49427e11c4c57910) ) // CHR04 |
| 498 | | ROM_LOAD( "sx011-03.20", 0x0800000, 0x400000, CRC(f1f24b35) SHA1(70d6848f77940331e1be8591a33d62ac22a3aee9) ) // CHR05 |
| 499 | | ROM_LOAD( "sx011-02.21", 0x0c00000, 0x400000, CRC(c56d7e50) SHA1(355c64b38e7b266f386b9c0b906c8581fc15374b) ) // CHR06 |
| 500 | | ROM_LOAD( "sx011-01.22", 0x1000000, 0x400000, CRC(785409d1) SHA1(3e31254452a30d929161a1ea3a3daa69de058364) ) // CHR07 |
| 501 | | |
| 502 | | ROM_REGION( 0xc00000, REGION_SOUND1, 0) /* Samples */ |
| 503 | | ROM_LOAD( "sx011-08.15", 0x0000000, 0x400000, CRC(01b3b1f0) SHA1(bbd60509c9ba78358edbcbb5953eafafd6e2eaf5) ) // CHR00 |
| 504 | | ROM_LOAD( "sx011-07.16", 0x0400000, 0x400000, CRC(26e57dac) SHA1(91272268977c5fbff7e8fbe1147bf108bd2ed321) ) // CHR01 |
| 505 | | ROM_LOAD( "sx011-06.17", 0x0800000, 0x400000, CRC(220ee32c) SHA1(77f39b54891c2381b967534b0f6d380962eadcae) ) // CHR02 |
| 506 | | |
| 507 | | /* CHRxx loaded here undecoded for ROM Check */ |
| 661 | /* these are accessed directly by the 68k, DMA device etc. NOT decoded */ |
| 508 | 662 | ROM_REGION( 0x2000000, REGION_USER2, 0) /* Banked ROM */ |
| 509 | | ROM_LOAD( "sx011-08.15", 0x0000000, 0x400000, CRC(01b3b1f0) SHA1(bbd60509c9ba78358edbcbb5953eafafd6e2eaf5) ) // CHR00 |
| 510 | | ROM_LOAD( "sx011-07.16", 0x0400000, 0x400000, CRC(26e57dac) SHA1(91272268977c5fbff7e8fbe1147bf108bd2ed321) ) // CHR01 |
| 511 | | ROM_LOAD( "sx011-06.17", 0x0800000, 0x400000, CRC(220ee32c) SHA1(77f39b54891c2381b967534b0f6d380962eadcae) ) // CHR02 |
| 512 | | ROM_LOAD( "sx011-05.18", 0x0c00000, 0x400000, CRC(87e5fea9) SHA1(abd751b5744d6ac7e697774ea9a7f7455bf3ac7c) ) // CHR03 |
| 513 | | ROM_LOAD( "sx011-04.19", 0x1000000, 0x400000, CRC(e90d331e) SHA1(d8afb1497cec8fe6de10d23d49427e11c4c57910) ) // CHR04 |
| 514 | | ROM_LOAD( "sx011-03.20", 0x1400000, 0x400000, CRC(f1f24b35) SHA1(70d6848f77940331e1be8591a33d62ac22a3aee9) ) // CHR05 |
| 515 | | ROM_LOAD( "sx011-02.21", 0x1800000, 0x400000, CRC(c56d7e50) SHA1(355c64b38e7b266f386b9c0b906c8581fc15374b) ) // CHR06 |
| 516 | | ROM_LOAD( "sx011-01.22", 0x1c00000, 0x400000, CRC(785409d1) SHA1(3e31254452a30d929161a1ea3a3daa69de058364) ) // CHR07 |
| 663 | ROM_LOAD16_WORD_SWAP( "sx011-08.15", 0x0000000, 0x0400000, CRC(01b3b1f0) SHA1(bbd60509c9ba78358edbcbb5953eafafd6e2eaf5) ) // CHR00 |
| 664 | ROM_LOAD16_WORD_SWAP( "sx011-07.16", 0x0400000, 0x0400000, CRC(26e57dac) SHA1(91272268977c5fbff7e8fbe1147bf108bd2ed321) ) // CHR01 |
| 665 | ROM_LOAD16_WORD_SWAP( "sx011-06.17", 0x0800000, 0x0400000, CRC(220ee32c) SHA1(77f39b54891c2381b967534b0f6d380962eadcae) ) // CHR02 |
| 666 | ROM_LOAD16_WORD_SWAP( "sx011-05.18", 0x0c00000, 0x0400000, CRC(87e5fea9) SHA1(abd751b5744d6ac7e697774ea9a7f7455bf3ac7c) ) // CHR03 |
| 667 | ROM_LOAD16_WORD_SWAP( "sx011-04.19", 0x1000000, 0x0400000, CRC(e90d331e) SHA1(d8afb1497cec8fe6de10d23d49427e11c4c57910) ) // CHR04 |
| 668 | ROM_LOAD16_WORD_SWAP( "sx011-03.20", 0x1400000, 0x0400000, CRC(f1f24b35) SHA1(70d6848f77940331e1be8591a33d62ac22a3aee9) ) // CHR05 |
| 669 | ROM_LOAD16_WORD_SWAP( "sx011-02.21", 0x1800000, 0x0400000, CRC(c56d7e50) SHA1(355c64b38e7b266f386b9c0b906c8581fc15374b) ) // CHR06 |
| 670 | ROM_LOAD16_WORD_SWAP( "sx011-01.22", 0x1c00000, 0x0400000, CRC(785409d1) SHA1(3e31254452a30d929161a1ea3a3daa69de058364) ) // CHR07 |
| 517 | 671 | ROM_END |
| 518 | 672 | |
| 519 | 673 | |
| r953 | r954 | |
| 531 | 685 | ***************************************************************************/ |
| 532 | 686 | |
| 533 | 687 | /*GAME( YEAR,NAME,PARENT,MACHINE,INPUT,INIT,MONITOR,COMPANY,FULLNAME,FLAGS)*/ |
| 534 | | GAME( 1995, srmp6, 0, srmp6, srmp6, srmp6, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", GAME_NOT_WORKING | GAME_NO_SOUND) |
| 688 | GAME( 1995, srmp6, 0, srmp6, srmp6, srmp6, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND) |
| 535 | 689 | |
src/mame/drivers/nmk16.c
| r953 | r954 | |
| 133 | 133 | #include "sound/3812intf.h" |
| 134 | 134 | #include "machine/nmk004.h" |
| 135 | 135 | #include "machine/nmk112.h" |
| 136 | #include "cpu/pic16c5x/pic16c5x.h" |
| 136 | 137 | |
| 137 | 138 | |
| 138 | 139 | extern UINT16 *nmk_bgvideoram,*nmk_fgvideoram,*nmk_txvideoram; |
| r953 | r954 | |
| 3221 | 3222 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 3222 | 3223 | MACHINE_DRIVER_END |
| 3223 | 3224 | |
| 3225 | static MACHINE_DRIVER_START( vandykeb ) |
| 3226 | |
| 3227 | /* basic machine hardware */ |
| 3228 | MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ |
| 3229 | MDRV_CPU_PROGRAM_MAP(vandyke_readmem,vandyke_writemem) |
| 3230 | MDRV_CPU_VBLANK_INT(nmk_interrupt,2) |
| 3231 | MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */ |
| 3232 | |
| 3233 | MDRV_CPU_ADD(PIC16C57, (12000000/PIC16C5x_CLOCK_DIVIDER)) /* 3MHz */ |
| 3234 | MDRV_CPU_FLAGS(CPU_DISABLE) |
| 3235 | |
| 3236 | MDRV_SCREEN_REFRESH_RATE(60) |
| 3237 | MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) |
| 3238 | //MDRV_MACHINE_RESET(NMK004) // no NMK004 |
| 3239 | |
| 3240 | /* video hardware */ |
| 3241 | MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) |
| 3242 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 3243 | MDRV_SCREEN_SIZE(256, 256) |
| 3244 | MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
| 3245 | MDRV_GFXDECODE(macross_gfxdecodeinfo) |
| 3246 | MDRV_PALETTE_LENGTH(1024) |
| 3247 | |
| 3248 | MDRV_VIDEO_START(macross) |
| 3249 | MDRV_VIDEO_EOF(nmk) |
| 3250 | MDRV_VIDEO_UPDATE(macross) |
| 3251 | |
| 3252 | /* sound hardware */ |
| 3253 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 3254 | |
| 3255 | MDRV_SOUND_ADD(OKIM6295, 16000000/4) |
| 3256 | MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) |
| 3257 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) |
| 3258 | MACHINE_DRIVER_END |
| 3259 | |
| 3224 | 3260 | static MACHINE_DRIVER_START( acrobatm ) |
| 3225 | 3261 | |
| 3226 | 3262 | /* basic machine hardware */ |
| r953 | r954 | |
| 3819 | 3855 | ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ |
| 3820 | 3856 | ROM_END |
| 3821 | 3857 | |
| 3858 | ROM_START( vandykeb ) |
| 3859 | ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ |
| 3860 | ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(9c269702) SHA1(831ff9d499aa94d85f62b8613477a95f00f62b34) ) |
| 3861 | ROM_LOAD16_BYTE( "1.bin", 0x00001, 0x20000, CRC(dd6303a1) SHA1(3c225ff1696adc1af05b1b36d8cf1f220181861c) ) |
| 3862 | |
| 3863 | ROM_REGION(0x10000, REGION_CPU2, 0 ) /* PIC is read protected */ |
| 3864 | ROM_LOAD( "pic16c57", 0x00000, 0x2d4c, BAD_DUMP CRC(bdb3920d) SHA1(2ef8d2aa3817cebea8e2443bc995cec3a3f88835) ) |
| 3865 | |
| 3866 | ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) |
| 3867 | ROM_LOAD( "3.bin", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ |
| 3868 | |
| 3869 | ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) |
| 3870 | ROM_LOAD( "4.bin", 0x000000, 0x040000, CRC(4ba4138d) SHA1(56f9c9422085eaf74ddec8977663a33c122b7e8b) ) /* 16x16 tiles */ |
| 3871 | ROM_LOAD( "5.bin", 0x000000, 0x040000, CRC(9a1ac697) SHA1(a8200b10606edf4578c7e2f53a0046bb1209a041) ) /* 16x16 tiles */ |
| 3872 | |
| 3873 | ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) |
| 3874 | ROM_LOAD16_BYTE( "13.bin", 0x000000, 0x040000, CRC(bb561871) SHA1(33dcaf956112181eed531320d3ececb90b17a599) ) /* Sprites */ |
| 3875 | ROM_LOAD16_BYTE( "12.bin", 0x080000, 0x040000, CRC(cdef9b17) SHA1(ec024a21685b87c82dc574cd050118d856a3cf57) ) /* Sprites */ |
| 3876 | ROM_LOAD16_BYTE( "17.bin", 0x000001, 0x040000, CRC(346e3b66) SHA1(34df7167ed4048e1f236e7d8fa6dcdffb0965c71) ) /* Sprites */ |
| 3877 | ROM_LOAD16_BYTE( "16.bin", 0x080001, 0x040000, CRC(beda678c) SHA1(3dfb8763241a97b9d65113c6eb99b52ec5245cd6) ) /* Sprites */ |
| 3878 | ROM_LOAD16_BYTE( "11.bin", 0x100000, 0x020000, CRC(823185d9) SHA1(eaf0f3ab0921d894eb1d09d5b2e9d5b785928804) ) /* Sprites */ |
| 3879 | ROM_LOAD16_BYTE( "10.bin", 0x140000, 0x020000, CRC(388b1abc) SHA1(9d1c43070130672a5e1a41807d796c944b0676ae) ) /* Sprites */ |
| 3880 | ROM_LOAD16_BYTE( "15.bin", 0x100001, 0x020000, CRC(149f3247) SHA1(5f515cb10468da048c89b543807280bd3e39e45a) ) /* Sprites */ |
| 3881 | ROM_LOAD16_BYTE( "14.bin", 0x140001, 0x020000, CRC(32eeba37) SHA1(0d0218e864ed647bd33bbe379f0ef76ccefbd06c) ) /* Sprites */ |
| 3882 | |
| 3883 | ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ |
| 3884 | ROM_LOAD( "9.bin", 0x000000, 0x020000, CRC(56bf774f) SHA1(5ece618fff22483adb5dff062dd4ec212aab0f01) ) |
| 3885 | ROM_LOAD( "8.bin", 0x000000, 0x020000, CRC(89851fcf) SHA1(7b6284cb929059371dd2b5410cd18373834ba76b) ) |
| 3886 | ROM_LOAD( "7.bin", 0x000000, 0x020000, CRC(d7bf0f6a) SHA1(413713576692676a831949e0d4dc5574da338380) ) |
| 3887 | ROM_LOAD( "6.bin", 0x000000, 0x020000, CRC(a7fcf709) SHA1(dc6298b43a472e92e99b8286bd4d26f7e72fd278) ) |
| 3888 | ROM_END |
| 3889 | |
| 3822 | 3890 | ROM_START( tharrier ) |
| 3823 | 3891 | ROM_REGION( 0x40000, REGION_CPU1, 0 ) |
| 3824 | 3892 | ROM_LOAD16_BYTE( "2" , 0x00000, 0x20000, CRC(78923aaa) SHA1(28338f49581180604403e1bd200f524fc4cb8b9f) ) |
| r953 | r954 | |
| 5085 | 5153 | // rom[0x08f74/2] = 0x4e71); |
| 5086 | 5154 | } |
| 5087 | 5155 | |
| 5156 | /* NO NMK004, it has a PIC instead */ |
| 5157 | READ16_HANDLER( vandykeb_r ) { return 0x0000; }; |
| 5158 | static DRIVER_INIT (vandykeb) |
| 5159 | { |
| 5160 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x08000e, 0x08000f, 0, 0, vandykeb_r ); |
| 5161 | memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x08001e, 0x08001f, 0, 0, MWA16_NOP ); |
| 5162 | } |
| 5163 | |
| 5088 | 5164 | GAME( 1989, tharrier, 0, tharrier, tharrier, 0, ROT270, "UPL (American Sammy license)", "Task Force Harrier", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) |
| 5089 | 5165 | GAME( 1989, tharierj, tharrier,tharrier, tharrier, 0, ROT270, "UPL", "Task Force Harrier (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) |
| 5090 | 5166 | GAME( 1990, mustang, 0, mustang, mustang, mustang, ROT0, "UPL", "US AAF Mustang (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND) // Playable but there are Still Protection Problems |
| r953 | r954 | |
| 5094 | 5170 | GAME( 1990, vandyke, 0, vandyke, vandyke, 0, ROT270, "UPL", "Vandyke (Japan)", GAME_IMPERFECT_SOUND ) |
| 5095 | 5171 | GAME( 1990, vandyjal, vandyke, vandyke, vandyke, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, Set 1)", GAME_IMPERFECT_SOUND ) |
| 5096 | 5172 | GAME( 1990, vandyja2, vandyke, vandyke, vandyke, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, Set 2)", GAME_IMPERFECT_SOUND ) |
| 5173 | GAME( 1990, vandykeb, vandyke, vandykeb, vandyke, vandykeb, ROT270, "[UPL] (bootleg)", "Vandyke (bootleg with PIC16c57)", GAME_NOT_WORKING ) |
| 5097 | 5174 | GAME( 1991, blkheart, 0, macross, blkheart, blkheart, ROT0, "UPL", "Black Heart", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) // Playable but there are Still Protection Problems |
| 5098 | 5175 | GAME( 1991, blkhearj, blkheart,macross, blkheart, blkheart, ROT0, "UPL", "Black Heart (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) // Playable but there are Still Protection Problems |
| 5099 | 5176 | GAME( 1991, acrobatm, 0, acrobatm, acrobatm, 0, ROT270, "UPL (Taito license)", "Acrobat Mission", GAME_IMPERFECT_SOUND ) |
whatsnew.txt
| r953 | r954 | |
| 1 | | 0.118 |
| 1 | 0.119 |
| 2 | 2 | ----- |
| 3 | 3 | |
| 4 | 4 | |
| 5 | MAMETesters Bugs Fixed |
| 6 | ---------------------- |
| 7 | vr0118u6yel [Aaron Giles] |
| 8 | |
| 9 | |
| 10 | |
| 5 | 11 | Source Changes |
| 6 | 12 | -------------- |
| 7 | | Changed INI parsing so that mame.ini is parsed twice, picking up |
| 8 | | changes to the inipath. [Aaron Giles] |
| 13 | Improved graphics and cleaned up driver for srmp6. |
| 14 | [David Haywood, Tomasz Slanina] |
| 9 | 15 | |
| 10 | | Fixed bug in options handling introduced with recent changes. |
| 11 | | [Nathan Woods] |
| 16 | Fixed bug in model 2 polygon clipping. [Ernesto Corvi] |
| 12 | 17 | |
| 13 | | Fixed macros in stvcd.c to work with C89 compilers. [Mike Haaland] |
| 18 | Fixed input port so that shadfrcj doesn't skip straight to the end |
| 19 | sequence. [stephh] |
| 14 | 20 | |
| 15 | | Fixed some more 64-bit warnings and unused functions. |
| 16 | | [Oliver Stoneberg] |
| 21 | Fixed recent changes to the MB86233 core that broke Virtua Racing. |
| 22 | [Aaron Giles] |
| 17 | 23 | |
| 18 | | Fixed DIP switch "Difficulty" in fstarfrc. Also added DIP locations |
| 19 | | to the tecmo16 driver. [BisonSAS] |
| 24 | Added intelligence around the UPDATE_HAS_NOT_CHANGED flag, which is |
| 25 | returned from VIDEO_UPDATE. If all screens in the game return |
| 26 | UPDATE_HAS_NOT_CHANGED, then that frame is effectively skipped (up |
| 27 | to 3 frames in a row) in terms of throttling. This allows games that |
| 28 | render every other frame to not throttle during their "off frames". |
| 29 | Updated the midvunit driver to return UPDATE_HAS_NOT_CHANGED. You |
| 30 | should see an improvement in framerate with throttling enabled for |
| 31 | these games. Note that this only kicks in if frameskip is set to 0. |
| 32 | [Aaron Giles] |
| 20 | 33 | |
| 21 | | Simplified the nemesis video driver code. [Atari Ace] |
| 22 | 34 | |
| 23 | | Modularized the TMS5220 code. [Lord Nightmare] |
| 24 | 35 | |
| 25 | | Fixed issues with recent R-Type ROMset. [Brian Troha] |
| 36 | New clones added |
| 37 | ---------------- |
| 38 | Turpin (bootleg on Scramble hardware) [David Haywood] |
| 39 | Operation Wolf (World, set 2) [David Haywood] |
| 40 | Star Force (encrypted, bootleg) [David Haywood] |
| 41 | Galaxian (bootleg) [David Haywood] |
| 42 | Crazy Kong (bootleg on Galaxian hardware, set 2) [David Haywood] |
| 43 | Vandyke (bootleg with PIC16c57) [David Haywood] |
| 26 | 44 | |
| 27 | | Fixed a number of issues in the HD6309 core. [Darren Atkinson] |
| 28 | 45 | |
| 29 | | Sync with AGEMAME: [James Wallace] |
| 30 | | * removed the 'lamps.c' module from the source tree |
| 31 | | * cleaned up names in the BFM BD1 driver |
| 32 | | * moved VFD drawing functions out of the video update |
| 33 | | * overhauled the sound system in the MPU4 driver |
| 34 | 46 | |
| 35 | | Changed windows builds so that all tools use the utf8_main entry |
| 36 | | point consistently. [Aaron Giles] |
| 47 | 0.118u6 |
| 48 | ------- |
| 37 | 49 | |
| 38 | 50 | |
| 51 | MAMETesters Bugs Fixed |
| 52 | ---------------------- |
| 53 | cave0118u5red [Aaron Giles] |
| 54 | radikalb0118u5red [Aaron Giles] |
| 55 | chdrewrite0118u5red [smf] |
| 56 | pacland0118u5yel [Aaron Giles] |
| 57 | sspaceat0118u1red [Aaron Giles] |
| 58 | yamato0118u5red [Aaron Giles] |
| 59 | ym2203_0118u1yel [Aaron Giles] |
| 60 | profiler0116u2yel (maybe) [Aaron Giles] |
| 39 | 61 | |
| 62 | |
| 63 | |
| 64 | Source Changes |
| 65 | -------------- |
| 66 | Updated TMS5220 core to use shifts instead of divides for the |
| 67 | parameter interpolation. Also added support for internal clamping to |
| 68 | 8-bit output when using the internal DAC. [Lord Nightmare] |
| 69 | |
| 70 | Fixed regression that caused CHD games to crash if the CHD was not |
| 71 | present. Also fixed change that required write access to CHDs. [smf] |
| 72 | |
| 73 | Fixed CHD search paths again so that they look in parent |
| 74 | subdirectories. [Aaron Giles] |
| 75 | |
| 76 | Fixed security cassette contents to get Guitar Freaks 3rd Mix |
| 77 | (GE949 VER. JAB) in game. [smf] |
| 78 | |
| 79 | Exposed core_vfprintf(), and implemented mame_vfprintf() in terms of |
| 80 | that call. [Nathan Woods] |
| 81 | |
| 82 | Some improvements to the Wheels + Fire driver. Still not right. |
| 83 | [David Haywood] |
| 84 | |
| 85 | Added SCSIOP_GET_INQUIRY_BUFFER to scsicd & scsihd. [smf] |
| 86 | |
| 87 | MB86233 core changes: [ElSemi] |
| 88 | * fixed a double move opcode |
| 89 | * added a previously unknown double move opcode |
| 90 | |
| 91 | Changed the way MAME handles options internally. Changed |
| 92 | mame_options_init() to return a core_options object, which is now |
| 93 | passed into mame_execute(). Moved mame_options() to mame.c, which is |
| 94 | now only valid while the emulation is running. Audit functions now |
| 95 | take a core_options parameter. [Nathan Woods] |
| 96 | |
| 97 | More HD6309 fixes: [Tim Lindner] |
| 98 | * the SEXW instruction not longer clears the overflow flag |
| 99 | * now generating an illegal instruction trap if invalid registers |
| 100 | specified for TFM |
| 101 | |
| 102 | Changed Windows message filtering to only apply to MAME game windows. |
| 103 | [Nathan Woods] |
| 104 | |
| 105 | Made a cleanup pass through the new x86emit.h code emitters, changing |
| 106 | the way memory is referenced and replacing macros with inline |
| 107 | functions. [Aaron Giles] |
| 108 | |
| 109 | Updated MIPS and PowerPC drc cores to use the new emitters. Removed |
| 110 | the old macro-based ones in x86drc.h. [Aaron Giles] |
| 111 | |
| 112 | Added save state support to pacland. [Aaron Giles] |
| 113 | |
| 114 | Made -autoframeskip aware of the -speed setting. [Aaron Giles] |
| 115 | |
| 116 | Fixed stack buffer overrun in install_mem_handler() that broke the |
| 117 | Hyperstone-based games under gcc 4.2.1. [Aaron Giles] |
| 118 | |
| 119 | |
| 120 | |
| 40 | 121 | New games added or promoted from NOT_WORKING status |
| 41 | 122 | --------------------------------------------------- |
| 42 | | Dancing Stage Euro Mix 2 [smf] |
| 123 | Yukon [Al Kossow, Aaron Giles] |
| 124 | Mega Man - The Power Battle [Nicola Salmoria, David Haywood] |
| 43 | 125 | |
| 44 | 126 | |
| 45 | 127 | |
| 46 | 128 | New clones added |
| 47 | 129 | ---------------- |
| 48 | | Maximum Force (No Gore version) [Brian Troha] |
| 130 | Hard Times (set 2) [David Haywood] |
| 131 | Scorpion (set 3) [David Haywood] |
| 132 | Satan of Saturn (set 2) [David Haywood] |
| 133 | Street Fighter Alpha 3 (Euro 980904) [David Haywood] |
| 134 | Dimahoo (Euro 000121) [David Haywood] |
| 135 | Crush Roller (bootleg) [David Haywood] |
| 136 | Crush Roller (Sidam bootleg) [David Haywood] |
| 137 | Moon War (Moon Cresta bootleg) [David Haywood] |
| 138 | Port Man (bootleg on Moon Cresta hardware) [David Haywood] |
| 49 | 139 | |
| 50 | 140 | |
| 51 | 141 | |
| 52 | | 0.117u3 |
| 142 | New games marked as GAME_NOT_WORKING |
| 143 | ------------------------------------ |
| 144 | Astropal [David Haywood] |
| 145 | Come On Baby [MooglyGuy] |
| 146 | |
| 147 | |
| 148 | |
| 149 | 0.118u5 |
| 53 | 150 | ------- |
| 54 | 151 | |
| 55 | 152 | |
| 56 | 153 | MAMETesters Bugs Fixed |
| 57 | 154 | ---------------------- |
| 58 | | headon0117u2ora [Aaron Giles] |
| 59 | | numpadremap0117u2gra [Aaron Giles] |
| 60 | | joystick0117u2gra [Aaron Giles] |
| 61 | | NewUI0117u2ora [Aaron Giles] |
| 62 | | mtrap0117u2ora [Aaron Giles] |
| 63 | | verifyroms0117u2ora [Aaron Giles] |
| 155 | mappyc0118u1red [Aaron Giles] |
| 156 | mappy0116u2gre [Aaron Giles] |
| 157 | namcona1c057red [Atari Ace] |
| 158 | 9ballsh3097red [Atari Ace] |
| 64 | 159 | |
| 65 | 160 | |
| 66 | 161 | |
| 67 | 162 | Source Changes |
| 68 | 163 | -------------- |
| 69 | | Added some more setup code for the Naomi driver. [R. Belmont] |
| 164 | Updated memconv.h to convert from basically any to any widths |
| 165 | (8/16/32/64), on both little and big endian. Also added macros to |
| 166 | create the stubs for the most commonly used mappings, both in the |
| 167 | 1:1 fashion, or the LSB/MSB/LSW/MSW style. [Ernesto Corvi] |
| 70 | 168 | |
| 71 | | Improved DIP switches in powerins driver. [BisonSAS] |
| 169 | CuboCD32/Amiga updates: [Ernesto Corvi] |
| 170 | - Finished implementing the CDROM controller, so now the games boot |
| 171 | - Moved the entire Akiko code to machine/cubocd32.c to make things |
| 172 | a little more easier to work with |
| 173 | - Added CDDA audio support to the CDROM controller and driver |
| 174 | - Systems with the AGA chipset no longer connect bit 0 of the CIA |
| 175 | that was previously connected to the Overlay pin not connected |
| 176 | - Made BLTDDAT return it's value. This is a readable register which |
| 177 | we were not handling. |
| 178 | - Initialized the SERDATR register upon reset to reflect that the |
| 179 | transfer buffer/shift reg is empty. |
| 72 | 180 | |
| 73 | | Added some basic cdrom switching to the system 573 driver. Hooked it |
| 74 | | up for best of cool dancers to work and the Club versions. Added |
| 75 | | DIP locations. Moved fake switches to the configuration menu. [smf] |
| 181 | Added support for the PowerPC 601. [Ville Linde] |
| 76 | 182 | |
| 77 | | Added preliminary video hw emulation and sound support to the |
| 78 | | 2 Minute Drill driver. [Tomasz Slanina] |
| 183 | Fixed missing PLD region in -listxml. [MASH] |
| 79 | 184 | |
| 80 | | Added an optional vsync callback to the TIA emulation to allow a |
| 81 | | driver to dynamically change the screen configuration. [Wilbert Pol] |
| 185 | Changed all comparison for CPU and sound chip types to compare |
| 186 | against CPU_DUMMY or SOUND_DUMMY instead of 0. Also updated usages |
| 187 | of sndti_to_sndnum() so that they use sndti_exists() where appropriate. |
| 188 | [Atari Ace] |
| 82 | 189 | |
| 83 | | Cleaned up redundant function names. [Atari Ace] |
| 190 | Removed CHD interface structure. CHDs now rely on the corefile |
| 191 | routines to perform file I/O. Updated the rest of the system to |
| 192 | handle this reality. A side-effect is that "split" CHDs, which never |
| 193 | got much play, have now been deprecated. [Nathan Woods] |
| 84 | 194 | |
| 85 | | Changed CreateWindowEx() call to be win_create_window_ex_utf8(), |
| 86 | | removing the need for a string conversion. [Nathan Woods] |
| 195 | Added new core library utility module palette.c for managing palettes. |
| 196 | Renamed emulator-specific palette code to emupal.c and restructured |
| 197 | to live on top of the core library code. [Aaron Giles] |
| 87 | 198 | |
| 88 | | Fixed running the konamigx BIOS on its own do what it should: |
| 89 | | display a scrolling marquee telling the operator to attach |
| 90 | | a ROM board. [Alex Jackson] |
| 199 | Added support for attaching palettes to bitmaps in the core. Removed |
| 200 | support for the 16-pixel bitmap "safety" zone by default, since most |
| 201 | drivers do not need it. Added new function bitmap_alloc_slop() which |
| 202 | supports creating bitmaps with caller-specified slop values. |
| 203 | [Aaron Giles] |
| 91 | 204 | |
| 92 | | Added new debugger commands for hardreset and softreset. |
| 93 | | [Nathan Woods] |
| 205 | Removed the gfx_element.colortable element and replaced it with a new |
| 206 | element color_base which specifies the global color offset. This |
| 207 | breaks an awkward dependency between the palette and graphics code, |
| 208 | and removes a lot of odd pointer arithmetic in the system. |
| 209 | [Aaron Giles] |
| 94 | 210 | |
| 95 | | Added built-in support for 14-segment and 16-segment LEDs with |
| 96 | | comma/period additions. Split vacfdisp into component specific |
| 97 | | drivers. The system now supports the Rockwell 10937 (aka MSC1937) |
| 98 | | and 10957, as well as the BD1. All relevant drivers have been |
| 99 | | updated with the new code, and new layouts have been prepared. |
| 100 | | [James Wallace] |
| 211 | Tagged Machine->pens, Machine->colortable, and |
| 212 | Machine->remapped_colortable as const to prevent their abuse. Fixed |
| 213 | several abusing drivers, and tagged the remainder for future |
| 214 | cleanup. [Aaron Giles] |
| 101 | 215 | |
| 102 | | Fixed a few more 64-bit build errors. [Aaron Giles] |
| 216 | Added new colortable management functions in emupal.c. These functions |
| 217 | can be used to manage a colortable on top of the core palette in |
| 218 | cases where TRANSPARENCY_COLOR is currently used (essentially mapping |
| 219 | to a pen mask for TRANSPARENCY_PENS). Updated pacman, mappy, toypop, |
| 220 | and several other drivers to use the new functions. [Aaron Giles] |
| 103 | 221 | |
| 104 | | Separated build tools from general tools. Build tools are now located |
| 105 | | in the build/ subdirectory. [Aaron Giles] |
| 222 | Vastly simplified the rendering code in docastle. [Aaron Giles] |
| 106 | 223 | |
| 107 | | Added new general library module astring.c, which supports allocated |
| 108 | | strings of arbitrary length and a number of basic functions on them. |
| 224 | Fixed remaining errors and warnings when building under gcc 4.2.1. |
| 109 | 225 | [Aaron Giles] |
| 110 | 226 | |
| 111 | | Replaced assemble_x_strings() functions with the astring equivalents. |
| 112 | | Updated code in several places to use astrings where appropriate. |
| 113 | | [Aaron Giles] |
| 227 | Added new function render_target_set_max_update_rate() which allows |
| 228 | the OSD layer to inform MAME of the target's refresh rate (or 0 if |
| 229 | there is no maximum). This is used to allow for the dynamic speed |
| 230 | adjustment parameter below. [Aaron Giles] |
| 114 | 231 | |
| 115 | | Added new tool src2html which is used to convert the MAME source tree |
| 116 | | to HTML format with linked include files and color coded keywords |
| 117 | | and comments. [Aaron Giles] |
| 232 | Added new parameter -refreshspeed (-rs for short) which dynamically |
| 233 | adjusts the -speed parameter to keep the effective refresh rate below |
| 234 | that of the lowest screen refresh rate. [Aaron Giles] |
| 118 | 235 | |
| 119 | | Converted the memory pool code to a more generic resource pool. |
| 120 | | Changed internal MAME tracking of timers and save state registrations |
| 121 | | over to using the new system. [Aaron Giles] |
| 236 | Added more opcode emitters to x86emit.h. [Aaron Giles] |
| 122 | 237 | |
| 123 | | Removed underscores from some keycode token names. Thus, |
| 124 | | KEYCODE_0_PAD now becomes KEYCODE_0PAD. This is to prevent confusion |
| 125 | | when parsing multiple keyboard items. Due to this change, also removed |
| 126 | | imperfect backward compatibility with older configs; some mappings |
| 127 | | will still work, but some won't. Note that this change will also |
| 128 | | break some existing ctrlr files; new ones will be provided. |
| 129 | | [Aaron Giles] |
| 130 | 238 | |
| 131 | | Did some cleanup of the tilemap interfaces. Changed tilemap type |
| 132 | | constants to be an enum prefixed by TILEMAP_TYPE_* instead of simply |
| 133 | | TILEMAP_*. Removed unused members from the tile_info structure. |
| 239 | |
| 240 | New games added or promoted from NOT_WORKING status |
| 241 | --------------------------------------------------- |
| 242 | Last Fighting [Luca Elia] |
| 243 | Bishou Jan [Luca Elia] |
| 244 | Almond Pinky [Luca Elia] |
| 245 | Mahjong Cafe Time [Luca Elia] |
| 246 | Mahjong Comic Gekijou Vol.1 [Luca Elia] |
| 247 | Super Eagle Shot [Tomasz Slanina, pSXAuthor] |
| 248 | Date Quiz Go Go Episode 2 [Pierpaolo Prazzoli] |
| 249 | Dancing Stage featuring Dreams Come True [smf] |
| 250 | |
| 251 | |
| 252 | |
| 253 | New clones added |
| 254 | ---------------- |
| 255 | X-Men: Children of the Atom (Japan 941222) [Nicola Salmoria] |
| 256 | Quintoon (UK, Game Card 95-750-206) [James Wallace] |
| 257 | |
| 258 | |
| 259 | |
| 260 | New games marked as GAME_NOT_WORKING |
| 261 | ------------------------------------ |
| 262 | Super Real Mahjong Part 1 [Luca Elia] |
| 263 | Dance Dance Revolution Extreme [smf] |
| 264 | |
| 265 | |
| 266 | |
| 267 | 0.118u4 |
| 268 | ------- |
| 269 | |
| 270 | |
| 271 | Source Changes |
| 272 | -------------- |
| 273 | Converted the inputs in galaga.c to tags, using INCLUDE/MODIFY for |
| 274 | clones, and fixing the conditional extra lives dips in xevious and |
| 275 | digdug (bosco and galaga still need doing). Also added much more |
| 276 | information on the digdug sets, thanks to some excellent work by |
| 277 | stephh. [Alex Jackson] |
| 278 | |
| 279 | Fixed sound chip frequency in the superdq driver. [Jim Hernandez] |
| 280 | |
| 281 | chdman improvements: [smf] |
| 282 | * Fixed toc parsing to allow spaces and quotes in file names |
| 283 | * Supports "offset start length" track syntax that cdrdao creates |
| 284 | if you don't read subcode |
| 285 | * Tracks are always padded with zeros & not whatever data happens |
| 286 | to follow |
| 287 | * Moved cdrom_track_input_info out of src/lib/util/cdrom.h and |
| 288 | into src/tools/chdcd.h |
| 289 | * Added audio byte swapping support |
| 290 | |
| 291 | Fixed DIP switches for Oscar (Japan Revision 0). [Corrado Tomaselli] |
| 292 | |
| 293 | Added DIP locations to the aerofgt driver. [Fabio Priuli] |
| 294 | |
| 295 | Amiga updates: [Erneso Corvi] |
| 296 | - Implemented ECS-Only BLTCON0L register |
| 297 | - Modified the amiga_interface structure to add a nmi callback and |
| 298 | a flags variable. |
| 299 | - Added AGA chipmem mask definition |
| 300 | - Added 32 bit data bus support to chipram. It's automatically used |
| 301 | if the chipset is AGA. |
| 302 | - Added clock chip constants in machine/amiga.h for 68k PAL and NTSC, |
| 303 | and 68EC00 NTSC. Updates drivers to use those constants. |
| 304 | - Added convenience macros to determine wether we're running with an |
| 305 | ECS chipset, AGA chipset, or 'ECS or AGA chipset'. |
| 306 | - Changed autoconfig reads to return 0x0000 instead of 0xffff. |
| 307 | - Fixed MSB value timer reads on the 8520 cia. We were previously only |
| 308 | updating the count for the timer when the LSB value was read. |
| 309 | - Added basic Akiko emulation to the cubocd32 driver. Both the Chunky |
| 310 | to Planar converter, and the I2C NVRAM should be fully implemented, |
| 311 | however, the CDROM functionality is not complete. It's only enough |
| 312 | to make the kickstart pass the Akiko checks. |
| 313 | |
| 314 | Taito input ports cleanup, continued: [stephh] |
| 315 | - Updated includes/taitoipt.h with macros for games with only 1 button |
| 316 | - Converted the following drivers and added more documentation, fixing |
| 317 | incorrect inputs and DIP switches along the way: taitoair.c, |
| 318 | taito_h.c, taito_x.c |
| 319 | - Slightly changed the C-Chip emulation for 'superman' to behave in a |
| 320 | similar way as other Taito games |
| 321 | - Corrected some notes in some other Taito drivers |
| 322 | |
| 323 | Changed verinfo code to parse the version.c file instead of relying |
| 324 | on linking against version.o. This appears to fix the link ordering |
| 325 | problem and also prevents it from being constantly regenerated on |
| 326 | each build. [Aaron Giles] |
| 327 | |
| 328 | Significantly improved the i386 disassembler. Changed it so that it |
| 329 | no longer outputs 'byte ptr' except for ambiguous cases. Updated for |
| 330 | full 64-bit disassembly support. Added support for the full IA32 |
| 331 | opcode matrix as specified by recent Intel manuals, including all |
| 332 | SSE opcodes and variants. [Aaron Giles] |
| 333 | |
| 334 | Updated the x86 drc helper code to support externally-allocated cache. |
| 335 | Also added support for allocating data structures out of the cache. |
| 336 | Modified initialization so that it does not immediately generate code |
| 337 | but rather waits for a reset to do that. Fixed code generation bug |
| 338 | when generating [reg*scale] modrm forms. [Aaron Giles] |
| 339 | |
| 340 | Added new functions to the memory system to support CPU cores |
| 341 | explicitly specifying the access mask on 32-bit and 64-bit data bus |
| 342 | systems. This enables the MIPS core to handle SWL/SWR and SDL/SDR |
| 343 | without a read/modify/write cycle. Updated the C and DRC MIPS cores |
| 344 | to use this new mechanism. [Aaron Giles] |
| 345 | |
| 346 | Added new module x86emit.h which supports dynamic code generation for |
| 347 | both x86 and x64 systems. This new system is a far more complete |
| 348 | solution, though not all opcodes are defined yet. The interface for |
| 349 | this is also cleaner than the previous one defined in x86drc.h. |
| 350 | Existing DRC cores are still using the old interface, but the new one |
| 351 | is preferred for new development. [Aaron Giles] |
| 352 | |
| 353 | Fixed recently introduced bug in the mips3 core that caused the C |
| 354 | core to launch off into nowhere after the first instruction. |
| 134 | 355 | [Aaron Giles] |
| 135 | 356 | |
| 136 | 357 | |
| 137 | 358 | |
| 138 | 359 | New clones added |
| 139 | 360 | ---------------- |
| 140 | | Cross Blades! (Japan) [Stefan Lindberg] |
| 141 | | Shadow Force (Japan Version 2) [Stefan Lindberg] |
| 142 | | Dig Dug (Sidam bootleg) [David Haywood] |
| 143 | | Dance Dance Revolution Best of Cool Dancers [smf] |
| 361 | Undercover Cops (Alpha Renewal Version) [Guru] |
| 362 | Final Fight (US) [Corrado Tomaselli] |
| 144 | 363 | |
| 145 | 364 | |
| 146 | 365 | |
| 147 | 366 | New games marked as GAME_NOT_WORKING |
| 148 | 367 | ------------------------------------ |
| 149 | | Astron Belt [Andrew Gardner] |
| 150 | | Cobra Command (Sega LaserDisc Hardware) [Andrew Gardner] |
| 151 | | Galaxy Ranger [Andrew Gardner] |
| 152 | | Star Blazer [Andrew Gardner] |
| 368 | Interstellar Laser Fantasy [Andrew Gardner] |
| 153 | 369 | |
| 154 | 370 | |
| 155 | 371 | |
| 156 | | 0.117u2 |
| 372 | 0.118u3 |
| 157 | 373 | ------- |
| 158 | 374 | |
| 159 | 375 | |
| 160 | 376 | MAMETesters Bugs Fixed |
| 161 | 377 | ---------------------- |
| 162 | | joystickremap0117u1gra [Aaron Giles] |
| 163 | | mallocerror0117u1gra [Aaron Giles] |
| 164 | | mouse0117u1gra [Aaron Giles] |
| 165 | | newinterface0117u1gra [Aaron Giles] |
| 166 | | tapper0102gre2 [Ernesto Corvi] |
| 167 | | timber0100u3gre [Ernesto Corvi] |
| 168 | | tapper0102gre1 [Aaron Giles] |
| 169 | | timber099gre [Aaron Giles] |
| 170 | | mcr0103u3yel [Aaron Giles] |
| 171 | | dotrone0101u5yel [Aaron Giles] |
| 378 | qbert0118u2gra [Aaron Giles] |
| 379 | zoom909_0118u2ora [Aaron Giles] |
| 172 | 380 | |
| 173 | 381 | |
| 174 | 382 | |
| 175 | 383 | Source Changes |
| 176 | 384 | -------------- |
| 177 | | Imola GP updates: [Phil Stroffolino] |
| 178 | | - renamed from "monzagp" |
| 179 | | - the leds are fully mapped |
| 180 | | - fixes for blitter modes, that affect the "tunnel" area |
| 181 | | - dipswitch/port fixes; game now starts in attract mode, rather |
| 182 | | than immediately starting |
| 183 | | - placeholder (handpicked) colors |
| 385 | Updated dacholer.c driver with now all known Dip Switches. [stephh] |
| 184 | 386 | |
| 185 | | Updated DIP switches for topland & ainferno according to their |
| 186 | | manuals. [Fabio Priuli] |
| 387 | Changed MDRV_VBLANK_DURATION macro to accept subseconds directly |
| 388 | instead of converting from double. Added new macro USEC_TO_SUBSECONDS |
| 389 | to assist in this. Converted all drivers over to using it. |
| 390 | [Atari Ace] |
| 187 | 391 | |
| 188 | | More SH-4 core improvements: [Samuele Zannoli] |
| 189 | | - fixes some problems in the disassembly and instruction execution |
| 190 | | from the previous patch |
| 191 | | - adds interrupt management |
| 192 | | - implements register bank switching |
| 193 | | - adds RTC timer counters |
| 194 | | - adds memory refresh timer |
| 195 | | - adds three timers of the TMU |
| 196 | | - adds a configuration structure that specifies the processor mode |
| 197 | | pin settings |
| 198 | | - internal processor clock frequencies calculated from mode pins and |
| 199 | | cpu clock |
| 200 | | - systems using the sh4 processor secify its configuration structure |
| 392 | Improved/fixed validation of memory maps to match current logic in |
| 393 | memory.c. Fixed a few problems that were identified this way. |
| 394 | Also removed construct_map_0 and isolated map construction to a |
| 395 | single function. [Atari Ace] |
| 201 | 396 | |
| 202 | | Fixed some DIP switches in littlerb. [Sonikos] |
| 397 | Added new AM_READ_PORT() macro which lets you define an input port |
| 398 | read callback based on a port tag. This is now preferred over the |
| 399 | previous technique of calling port_tag_to_handler() within an |
| 400 | AM_READ() macro. Updated all drivers that were using the latter |
| 401 | pattern to the new system. [Atari Ace] |
| 203 | 402 | |
| 204 | | Made some minor code quality changes across the code: [Atari Ace] |
| 205 | | - avoided exporting a few global variables |
| 206 | | - fixed variable names that conflicted with typedef names |
| 207 | | - removed some shadow variables that were bugs or unnecessary |
| 208 | | - removed extraneous #defines |
| 403 | Fixed subtle monymony regression from 0.36b10(!) [Atari Ace] |
| 209 | 404 | |
| 210 | | Fixed up sc61860 core, f3853 core, and pckeybd.c to work with new |
| 211 | | timing code. [Nathan Woods] |
| 405 | Fixed F8 CPU core to not clobbert the irq_callback on a reset. |
| 406 | [Wilbert Pol] |
| 212 | 407 | |
| 213 | | More TIA improvements: [Wilbert Pol] |
| 214 | | - fixed some minor missile graphics positioning issues |
| 215 | | - moved some initialization code from tia_init to tia_reset |
| 408 | Amiga system updates: [Ernesto Corvi] |
| 409 | - Implemented the ECS-only BLTSIZV and BLTSIZH custom registers, |
| 410 | and modified BLTSIZE and the blitter to use them. |
| 411 | - Properly implemented the bit in VPOSR that indicates if we're |
| 412 | running on a PAL or NTSC Amiga. |
| 413 | - Fixed the PAL clock on the Pictomatic driver in alg.c |
| 216 | 414 | |
| 217 | | Fixed a few errors related to headers in the source code. Added |
| 218 | | missing self-includes, removed dead prototypes, and added location |
| 219 | | comments in headers in mame/includes. In a few cases the audit |
| 220 | | showed items that didn't need to be exported so they were made |
| 221 | | static. [Atari Ace] |
| 415 | Added counter emulation to the COP420 CPU core. Hooked it up to |
| 416 | Thayer's Quest and added an alternate set. [Andrew Gardner] |
| 222 | 417 | |
| 223 | | Cleaned up the inputs in gdrawpkr and changed the hold buttons to |
| 224 | | "discard" since they are in fact discard buttons. [Roberto Fresca] |
| 418 | Added missing PROMs to the Status Trivia driver. [Brian Troha] |
| 225 | 419 | |
| 226 | | Added support for 14- and 16-segment LED displays to the MAME |
| 227 | | artwork system. [Dirk Best] |
| 420 | Cleaned up several Taito drivers (opwolf.c, othunder.c, topspeed.c, |
| 421 | warriorb.c, wgp.c, rastan.c, rainbow.c, volfied.c) to use common |
| 422 | input port macros. Fixed the Dip Switches for all games (a few still |
| 423 | remain unknown though) and added many notes. Also fixed a couple of |
| 424 | things which were wrong in ninjaw.c driver. Improved the C-chip |
| 425 | emulation for "Operation Wolf" and its clones so it can now handle |
| 426 | multiple coinage settings. [stephh] |
| 228 | 427 | |
| 229 | | Fixed button 4 of player 2 inputs in bloodwar. [Barry Harris] |
| 428 | Improved the MCU simulation for aladbl so now the game handles coins |
| 429 | correctly. Fixed the Inputs to match an arcade cabinet and added |
| 430 | Dip Switches according to the game M68000 code. [stephh] |
| 230 | 431 | |
| 231 | | Connected S14001A speech to the wolfpack driver. [Lord Nightmare] |
| 432 | Added build tool to extract version information and add it to the |
| 433 | Windows version resource. [Nathan Woods] |
| 232 | 434 | |
| 233 | | Fixed incorrect implementation of SSIO volume controls in the MCR |
| 234 | | driver. This makes the engine sound in Spy Hunter audible again, |
| 235 | | among other things. [Ernesto Corvi] |
| 435 | Added a fairly complete WD33C93 SCSI controller emulation, and also |
| 436 | updated the cps3.c driver to use it. [Ernesto Corvi] |
| 236 | 437 | |
| 237 | | Added support back for the "none" option for the various *_device |
| 238 | | options. [Nathan Woods] |
| 438 | Hooked up lamps in Chase HQ. [R. Belmont, couriersud] |
| 239 | 439 | |
| 240 | | Fixed HD6309 dissaembly of the post-byte for ,W++ and ,--W. |
| 241 | | [Captain Ahab] |
| 440 | Changed NEC V30 CPU core to use a 16-bit data bus. Updated affected |
| 441 | drivers: raiden, raiden2, m72, m90, m92, m107, segas32, hng64, |
| 442 | deadang, dynduke, sengokmj, shanghai, lockon, tatsumi, fantland, |
| 443 | twins, gunpey, ttchamp. Separated V-series disassembler from the |
| 444 | i386 disassembler and updated it to use proper register and |
| 445 | opcode terminology. [Aaron Giles, Philip Bennett, Pierpaolo Prazzoli] |
| 242 | 446 | |
| 243 | | Updated the 6532 riot interface to be more like the 6522via and |
| 244 | | 6821pia interfaces. [Wilbert Pol] |
| 447 | Changed I8086 CPU core to use a 16-bit data bus. Updated affected |
| 448 | drivers: gottlieb, leland, tx1, fantland, tetriunk. Cleaned up |
| 449 | naming of CPUs (i86 -> i8086, etc.) [Aaron Giles] |
| 245 | 450 | |
| 246 | | Improved -listxml output to reflect new BIOS flag. New attribute |
| 247 | | isbios="yes" indicates that a given game is a BIOS. [Aaron Giles] |
| 451 | Added 16-bit handlers to a number of the shared PC components. |
| 452 | [Nathan Woods] |
| 248 | 453 | |
| 249 | | Further tweaks to the game selection UI: [Aaron Giles] |
| 250 | | - disabled the tab key |
| 251 | | - added hook for general input configuration from the menu |
| 252 | | - split set names from friendly names into left/right columns |
| 253 | | - added a background to the descriptive names of clones |
| 254 | | - if you start with the game selection menu, hitting Esc to exit |
| 255 | | a game brings you back to the menu rather than quitting |
| 256 | | immediately |
| 257 | | - fixed logic so that INI files are reloaded for each game |
| 258 | | |
| 259 | | Moved INI file handling fully into the core. As a side-effect of this |
| 260 | | change, <exename>.ini is no longer parsed. Changed -createconfig to |
| 261 | | always output mame.ini instead of <exename>.ini as a result. |
| 454 | Consolidated common code between drc and non-drc MIPS cores. |
| 262 | 455 | [Aaron Giles] |
| 263 | | |
| 264 | | Renamed run_game() to mame_execute(). The game driver is no longer |
| 265 | | specified as a parameter; rather, this information is extracted from |
| 266 | | the options via OPTION_GAMENAME. [Aaron Giles] |
| 267 | 456 | |
| 268 | | Fixed raw input-based lightgun buttons. [Aaron Giles] |
| 269 | 457 | |
| 270 | | Cleaned up options.c code. Added priority levels to options as they |
| 271 | | are set. New options are only accepted if they have greater or equal |
| 272 | | priority to a previous change. Added new function options_revert() to |
| 273 | | revert options below a given priority to their defaults. Changed |
| 274 | | options_get_string() so that it always returns a valid string |
| 275 | | (never NULL). Invalid strings are returned as empty strings. |
| 276 | | [Aaron Giles] |
| 277 | 458 | |
| 278 | | Added new functions core_filename_extract_base() and |
| 279 | | core_filename_ends_with() to corefile.h. [Aaron Giles] |
| 459 | New games added or promoted from NOT_WORKING status |
| 460 | --------------------------------------------------- |
| 461 | Aladdin (bootleg of Japanese Megadrive version) [stephh] |
| 280 | 462 | |
| 281 | | Changed menu rendering a bit. Added a background hilight to more |
| 282 | | strongly emphasize the current item. Added rendered arrows to indicate |
| 283 | | more items on the top/bottom and to indicate selection options in the |
| 284 | | DIP switch menus. Changed hilighting to be a bit less garish. Fixed |
| 285 | | repeat rates on keys to no longer be tied to the framerate. |
| 286 | | [Aaron Giles] |
| 287 | 463 | |
| 288 | | Added support for page up/page down generically in menus. Also made |
| 289 | | pause toggle work while menus are visible. [Aaron Giles] |
| 290 | 464 | |
| 291 | | Changed render_textures to allocate in a pool model, to avoid high |
| 292 | | memory overhead when allocating large numbers of textures (for example |
| 293 | | in the 14- and 16-segment LED displays). [Aaron Giles] |
| 465 | New clones added |
| 466 | ---------------- |
| 467 | Raiden Fighters (Italy) [Corrado Tomaselli] |
| 294 | 468 | |
| 295 | | Fixed a number of 64-bit compiler warnings. [Aaron Giles] |
| 296 | 469 | |
| 297 | 470 | |
| 471 | 0.118u2 |
| 472 | ------- |
| 298 | 473 | |
| 299 | | New games added or promoted from NOT_WORKING status |
| 300 | | --------------------------------------------------- |
| 301 | | King Pin [Andrew Gardner] |
| 302 | | King Pin Multi-Game [Andrew Gardner] |
| 474 | NOTE: If you are experiencing sound stuttering due to not being able |
| 475 | to run your display at >60Hz, please give the -speed option a try. |
| 476 | You should be able to run MAME at a small emulation speed decrease |
| 477 | in order to get the game under your monitor's refresh rate. |
| 303 | 478 | |
| 304 | 479 | |
| 305 | 480 | |
| 306 | | 0.117u1 |
| 307 | | ------- |
| 308 | | |
| 309 | | |
| 310 | 481 | MAMETesters Bugs Fixed |
| 311 | 482 | ---------------------- |
| 312 | | brkthru091u1gra [Luigi30] |
| 313 | | debbuger+psx_0117ora [Aaron Giles] |
| 314 | | cbtime0117red [Zsolt Vasvari] |
| 315 | | hotpinbl0117gra [Roberto Fresca] |
| 316 | | batrider0114red [Alex Jackson] |
| 317 | | battleg0113u4red [Alex Jackson] |
| 318 | | battleg0116u1ora [Alex Jackson] |
| 319 | | |
| 320 | | |
| 483 | boogwing0118yel [Aaron Giles] |
| 484 | starblad0113u3red [Atari Ace] |
| 485 | mgakuen0106u1red [Atari Ace] |
| 321 | 486 | |
| 487 | |
| 488 | |
| 322 | 489 | Source Changes |
| 323 | 490 | -------------- |
| 324 | | Fixed bug in screenless systems. [Nathan Woods] |
| 491 | Fixed recently introduced regression in nemesis driver. [Atari Ace] |
| 325 | 492 | |
| 326 | | Fixed crash in chd code if reading beyond the end of the file. |
| 327 | | [Roman Scherzer] |
| 493 | Improved fixes to the chdman CD creating code. [smf] |
| 328 | 494 | |
| 329 | | Moved Sand Scorpian and Gals Panic over to use the Pandora emulation. |
| 330 | | Also fixed some problems in the pandora emulation which improves the |
| 331 | | sprites in Djboy. [David Haywood] |
| 495 | Updated amspdwy.c driver to fix the DIP Switches for 'amspdwy' which |
| 496 | are slightly different than the ones for 'amspdwya' which were |
| 497 | correct. [stephh] |
| 332 | 498 | |
| 333 | | Added new function timer_call_after_resynch(), which effectively |
| 334 | | sets a zero-duration timer for resynchronization. Replaced instances |
| 335 | | of zero-duration timers in the code with this more descriptive call. |
| 336 | | [Zsolt Vasvari] |
| 499 | Fixed HP Saturn CPU core disassembler. [Wilbert Pol] |
| 337 | 500 | |
| 338 | | Defined new macro TIMER_CALLBACK, which should be used to wrap |
| 339 | | timer callbacks. Added a running_machine * parameter to timer |
| 340 | | callbacks. Updated all existing timer callbacks to use the new |
| 341 | | macro. [Zsolt Vasvari] |
| 501 | Fixed clock speed and colors in Trivia Genius. [Lord Nightmare] |
| 342 | 502 | |
| 343 | | Added more opcode decryption to gussun. [Robiza] |
| 503 | Cleaned up Taito drivers to use common defines for common input |
| 504 | ports across drivers. [stephh] |
| 344 | 505 | |
| 345 | | Added discrete sound to headon and clones in vicdual.c. [couriersud] |
| 506 | Removed redundant hard-coded definitions for Pole Position pedals. |
| 507 | [Alex Jackson] |
| 346 | 508 | |
| 347 | | Added two inverter oscillators supporting enable and mixing in signals |
| 348 | | to discrete.h / disc_wav.c. [couriersud] |
| 509 | Improved DIP switches for bombjack. [stephh] |
| 349 | 510 | |
| 350 | | Fixed a few bugs in the change lanes video emulation. [Adam Bousley] |
| 511 | Changed default layouts in BFM games to hide VFD by default since it |
| 512 | is not visible. [James Wallace] |
| 351 | 513 | |
| 352 | | Updated the monzagp driver into a somewhat playable state. There are |
| 353 | | still some graphics problems. LEDs still need to be hooked up for |
| 354 | | score/time-remaining display. [Phil Stroffolino] |
| 514 | Further improvements to the TMS5220 emulation and more unification |
| 515 | with the TMS5110 core. [Lord Nightmare] |
| 355 | 516 | |
| 356 | | Neo-Geo update: [Zsolt Vasvari] |
| 357 | | - BIOS only driver 'neogeo' no longer crashes |
| 358 | | - Cleaned up memory banking code to use memory_set_bank() instead |
| 359 | | of memory_set_bank_ptr() |
| 360 | | - Fixed LEDs |
| 517 | Changed INI parsing to look for source file INIs in <inipath>/source |
| 518 | first. This is to disambiguate INIs where the game name matches the |
| 519 | source filename. If the INI file is not found in <inipath>/source, |
| 520 | then it is looked for in the <inipath> as before. [Aaron Giles] |
| 361 | 521 | |
| 362 | | Improvements to the toaplan2 driver: [Alex Jackson] |
| 363 | | - Replaced byteswapped truxton2 M68K program ROM with correct one |
| 364 | | - Fixed sound CPU communications in the Raizing games. This is |
| 365 | | educated guesswork, but it's more complete and probably more |
| 366 | | correct than what was there before, and doesn't rely on excessive |
| 367 | | use of cpu_yield() |
| 368 | | - Added more information about the Raizing sets to the comments in |
| 369 | | the driver, and corrected some errors |
| 370 | | - Reorganized the Battle Garegga sets in a more sensible fashion |
| 522 | Merged Raiden memory maps. Cleaned up the COP emulation code in |
| 523 | Raiden 2. [Aaron Giles] |
| 371 | 524 | |
| 372 | | Reworked input system to push more features into the core. Cleaned |
| 373 | | up architecture to properly separate dependencies. Please note that |
| 374 | | this change only addresses the lower layer of input handling. The |
| 375 | | upper layer (i.e., input port handling at the driver layer) remains |
| 376 | | the same. [Aaron Giles] |
| 525 | Added new experimental control for overall emulation speed. This |
| 526 | lets you specify how fast/slow the gameplay should happen relative to |
| 527 | the original. -speed 1.0 means run at normal speed. -speed 2.0 means |
| 528 | run at 2x speed. -speed 0.5 means run at half speed. Note that the |
| 529 | sound pitch is shifted as a result. If you are running early Namco |
| 530 | games that normally run at 60.60Hz, you can run them at -speed 0.99 |
| 531 | and it should run at under 60Hz, which should prevent sound stuttering |
| 532 | if your monitor is not capable of greater than 60Hz refresh rates. |
| 533 | If this turns out to be useful, future versions may support a |
| 534 | -speed refresh parameter that automatically tweaks the speed to keep |
| 535 | you under your monitor's refresh rate. [Aaron Giles] |
| 377 | 536 | |
| 378 | | Major changes include: |
| 537 | Fixed disassembly of V30 bit instructions. [Aaron Giles] |
| 379 | 538 | |
| 380 | | * Removed the concept of os_code from the system. Now all codes |
| 381 | | are defined via a set of macros in input.h. Each code is a 32-bit |
| 382 | | value that encodes a device class, device index, item class, |
| 383 | | item modifier, and item ID. |
| 384 | | |
| 385 | | * Removed OSD functions osd_get_code_list() and osd_get_code_value(). |
| 386 | | Instead, the OSD layer during osd_init() must register one or more |
| 387 | | devices and the input items attached to each device via two new |
| 388 | | functions input_device_add() and input_device_item_add(). |
| 389 | | |
| 390 | | * Separated input sequence code into new module inputseq.c. |
| 391 | | |
| 392 | | * Moved support for the following options into the core: -mouse, |
| 393 | | -joystick, -lightgun, -steadykey, -offscreen_reload, -joy_deadzone, |
| 394 | | -joy_saturation, -paddle_device, -adstick_device, -pedal_device, |
| 395 | | -dial_device, -trackball_device, -lightgun_device, |
| 396 | | -positional_device, -mouse_device. The OSD layer should simply |
| 397 | | register all devices at osd_init() time and allow the core to |
| 398 | | enable/disable them according to the options. |
| 399 | | |
| 400 | | * Added two new options: -multikeyboard and -multimouse. By default, |
| 401 | | both options are OFF. When OFF, the core will combine all keyboard |
| 402 | | or mouse input into a single keyboard or mouse device. When ON, |
| 403 | | these options instruct the core to keep inputs for each keyboard |
| 404 | | and/or mouse independent. |
| 405 | | |
| 406 | | * Added new option: -joystick_map. This option allows for a 9x9 grid |
| 407 | | to be specified which controls analog-to-digital mapping of |
| 408 | | joystick inputs. |
| 409 | | |
| 410 | | * Changed the Windows implementation of input handling to fully |
| 411 | | support the raw input interfaces for keyboard and mouse. |
| 412 | | DirectInput is still used for all joystick inputs, as well as for |
| 413 | | keyboard and mouse inputs on pre-Windows XP systems. This allows |
| 414 | | for multiple keyboards and mice to be supported. Also changed |
| 415 | | keyboard and mouse behavior to use non-exclusive mode in |
| 416 | | DirectInput, and to keep the devices alive during pause for more |
| 417 | | consistent input handling. |
| 418 | 539 | |
| 419 | | * Broke windows.txt into config.txt, which contains all common |
| 420 | | core-supported options and commmands, and windows.txt, which now |
| 421 | | only lists Windows-specific additions. |
| 422 | 540 | |
| 423 | | Added support for frame update callbacks, similar to pause and exit |
| 424 | | callbacks but called at the same time as osd_update(). [Aaron Giles] |
| 541 | New games added or promoted from NOT_WORKING status |
| 542 | --------------------------------------------------- |
| 543 | El Grande - 5 Card Draw [Roberto Fresca] |
| 425 | 544 | |
| 426 | | Changed osd_init() to no longer return a value. OSD initialization |
| 427 | | should now rely on fatalerror() to report fatal initialization |
| 428 | | problems. [Aaron Giles] |
| 429 | 545 | |
| 430 | | Added new function mame_schedule_new_driver() which allows for a new |
| 431 | | driver to be queued after a hard reset. [Aaron Giles] |
| 432 | 546 | |
| 433 | | Added experimental new minimal game selection user interface. This |
| 434 | | interface can be accessed if MAME is started with no parameters, or |
| 435 | | via the main menu by choosing "Select a New Game". This interface |
| 436 | | allows you to select a game driver by typing in the name of the game. |
| 437 | | As you type, MAME's fuzzy name matching code will list the top 15 |
| 438 | | selections that match. The interface will only display games that |
| 439 | | it finds in your rompath. [Aaron Giles] |
| 547 | New clones added |
| 548 | ---------------- |
| 549 | Kickman [Aaron Giles] |
| 550 | Trivia ? Whiz (Edition 3 - Vertical) [Pierpaolo Prazzoli] |
| 440 | 551 | |
| 441 | | Added "empty" driver which is used to host the game selection screen |
| 442 | | when no valid game is selected. [Aaron Giles] |
| 443 | 552 | |
| 444 | | Changed behavior in the Windows build so that double-clicking on |
| 445 | | MAME brings up the new game selection interface. [Aaron Giles] |
| 446 | 553 | |
| 447 | | Removed the NOT_A_DRIVER flag which was overloaded to mean two |
| 448 | | different things. There are now two new flags: GAME_IS_BIOS_ROOT |
| 449 | | indicates that a particular driver represents a BIOS rather than |
| 450 | | a full game. And GAME_NO_STANDALONE indicates that the given driver |
| 451 | | should not be listed or permitted to execute on its own. For MAME, |
| 452 | | most BIOSes are executable on their own, so they have the |
| 453 | | GAME_IS_BIOS_ROOT flag set but not the GAME_NO_STANDALONE flag. |
| 454 | | [Aaron Giles] |
| 554 | New games marked as GAME_NOT_WORKING |
| 555 | ------------------------------------ |
| 556 | Big Apple Games [Pierpaolo Prazzoli] |
| 557 | Thayer's Quest [Andrew Gardner] |
| 455 | 558 | |
| 456 | | Added new routines mame_openpath(), mame_readpath(), and |
| 457 | | mame_closepath() for iterating over all files in a path specification, |
| 458 | | including support for multiple paths. [Aaron Giles] |
| 459 | 559 | |
| 460 | | Changed audit interfaces to take a game_driver * instead of a game |
| 461 | | index. [Aaron Giles] |
| 462 | 560 | |
| 463 | | Changed driver_get_approx_matches() and driver_get_count() APIs to |
| 464 | | work on arbitrary driver lists rather than being hard-coded to the |
| 465 | | static driver list. Renamed the functions from driver_get_* to |
| 466 | | driver_list_get_* [Aaron Giles] |
| 561 | 0.118u1 |
| 562 | ------- |
| 467 | 563 | |
| 468 | 564 | |
| 565 | MAMETesters Bugs Fixed |
| 566 | ---------------------- |
| 567 | boogwing0118yel [Aaron Giles] |
| 469 | 568 | |
| 470 | | New games added or promoted from NOT_WORKING status |
| 471 | | --------------------------------------------------- |
| 472 | | Sliver [Tomasz Slanina] |
| 473 | 569 | |
| 474 | 570 | |
| 571 | Source Changes |
| 572 | -------------- |
| 573 | Fixed behavior of auto_realloc() so that it always reallocs from its |
| 574 | original pool. [Atari Ace] |
| 475 | 575 | |
| 476 | | New clones added |
| 477 | | ---------------- |
| 478 | | Space Dragon (Moon Cresta bootleg) [David Haywood] |
| 479 | | Battle Garegga - Type 2 (Europe / USA / Japan / Asia) [Alex Jackson] |
| 576 | Fixed divide-by-zero when running with -video none in some cases. |
| 577 | [Atari Ace] |
| 480 | 578 | |
| 579 | ARM7 core fixes: [R. Belmont, Ryan Holtz] |
| 580 | - Fixed behavior when R15 is the source of a MOV |
| 581 | - Fixed flags calc for ADC/SBC |
| 582 | - Fixed flags calc for NEG |
| 583 | - Fixed flags calc for CMP |
| 584 | - Fixed time running backwards on Thumb instructions |
| 585 | - Fixed some ARM instructions doing indiscriminate change_pc()s |
| 481 | 586 | |
| 587 | Fixed converting CD's containing audio that were ripped by cdrdao, |
| 588 | which was broken recently. The code is cleaner and more maintainable |
| 589 | now. [smf] |
| 482 | 590 | |
| 591 | Fixed chdman_open() "w" to always create/truncate the file, leaving |
| 592 | "r+" to try opening first and then truncating. This matches behavior |
| 593 | in the core. [smf] |
| 594 | |
| 595 | Added missing port 3/4 to M6803 cpu core. [Curt Coder] |
| 596 | |
| 597 | Changed 6850ACIA to use MSB/LSB read handlers. [Curt Coder] |
| 598 | |
| 599 | Fixed two minor bugs in the COP400 CPU disassembler. Hooked up the |
| 600 | internal 64 bytes of DATA RAM to the core. [Andrew Gardner] |
| 601 | |
| 602 | Added support in the debugger for reading/writing memory without |
| 603 | translation. [Olivier Galibert] |
| 604 | |
| 605 | MSM6242 updates: [Ernesto Corvi] |
| 606 | - Added support for 12/24 hour mode |
| 607 | - Added support for the HOLD bit |
| 608 | |
| 609 | Galaxian driver updates: [stephh] |
| 610 | - fixed 'spcdraga' GFX ROMS loading |
| 611 | - 100% verified Dip Switches for all sets |
| 612 | - added long notes for all sets |
| 613 | |
| 614 | Significantly revamped the tilemap rendering code. There are now only |
| 615 | two tilemap types, based on whether or not you want transparency |
| 616 | based on pen or color. All existing tilemap effects are built on top |
| 617 | of these two modes. The internal tilemap handling code has been |
| 618 | reorganized and simplified in a number of cases. For most games, this |
| 619 | change is transparent (har har), apart from the change in tilemap |
| 620 | type values. Several concepts within the tilemap system now have |
| 621 | different terminology for clarity and to remove some ambiguous naming |
| 622 | ('priority', for example, was overloaded). A small tutorial and better |
| 623 | documentation is now present at the top of tilemap.h and provides |
| 624 | more details of the changes. [Aaron Giles] |
| 625 | |
| 626 | |
| 627 | |
| 483 | 628 | New games marked as GAME_NOT_WORKING |
| 484 | 629 | ------------------------------------ |
| 485 | | Gals Panic (US, EXPRO-02 PCB) [David Haywood] |
| 486 | | Balloon & Balloon [Pierpaolo Prazzoli] |
| 630 | Mahjong Almond Pinky [BET] (Roberto Fresca) |
| 631 | Jack Potten's Poker (bootleg 2) (Roberto Fresca) |