From 2300a01dd55f2a2c21e7dfdaa2ffc9f0962fcb81 Mon Sep 17 00:00:00 2001 From: Couriersud Date: Thu, 12 Jun 2008 00:43:49 +0000 Subject: [PATCH] Moved calipso to galdrvr.c/galaxian.c --- src/mame/drivers/galaxian.c | 19 +++++++++ src/mame/drivers/galdrvr.c | 66 ++++++++++++++++++++++++++++- src/mame/drivers/scobra.c | 80 ------------------------------------ src/mame/includes/galaxian.h | 3 ++ src/mame/includes/galaxold.h | 1 - src/mame/video/galaxian.c | 15 +++++++ src/mame/video/galaxold.c | 19 --------- 7 files changed, 102 insertions(+), 101 deletions(-) diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 6e9c16e994e..5e8c2446a59 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -145,6 +145,16 @@ Notes about 'frogg' : bit 5 of IN1 is tested if "Cabinet" Dip Switch is set to "Cocktail". +Notes about 'calipso' : +--------------------- + + Calipso was apperantly redesigned for two player simultanious play. + There is code at $298a to flip the screen, but location $8669 has to be + set to 2. It's set to 1 no matter how many players are playing. + It's possible that there is a cocktail version of the game. + + + TO DO : ------- @@ -2829,4 +2839,13 @@ static DRIVER_INIT( superbon ) decode_superbon(); } + +static DRIVER_INIT( calipso ) +{ + + /* video extensions */ + common_init(machine, scramble_draw_bullet, scramble_draw_background, NULL, calipso_extend_sprite_info); + +} + #include "galdrvr.c" diff --git a/src/mame/drivers/galdrvr.c b/src/mame/drivers/galdrvr.c index 7f8b7b859b3..6b93ca30cce 100644 --- a/src/mame/drivers/galdrvr.c +++ b/src/mame/drivers/galdrvr.c @@ -2153,6 +2153,48 @@ INPUT_PORTS_START( anteater ) INPUT_PORTS_END +/* cocktail mode is N/A */ +static INPUT_PORTS_START( calipso ) + PORT_START_TAG("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) + + PORT_START_TAG("IN1") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START_TAG("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) + PORT_DIPNAME( 0x08, 0x08, "Cabinet (Not Supported)" ) + PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + /************************************* * @@ -4716,6 +4758,27 @@ ROM_START( superbon ) ROM_END +ROM_START( calipso ) + ROM_REGION( 0x10000, REGION_CPU1, 0 ) + ROM_LOAD( "calipso.2c", 0x0000, 0x1000, CRC(0fcb703c) SHA1(2bb096f114911973afdf3088c860c9566df06f60) ) + ROM_LOAD( "calipso.2e", 0x1000, 0x1000, CRC(c6622f14) SHA1(475164aed703a97275ff285ecaec9d8fd4fe723b) ) + ROM_LOAD( "calipso.2f", 0x2000, 0x1000, CRC(7bacbaba) SHA1(d321d6d09c689123eb1e5d758d95ccecec225252) ) + ROM_LOAD( "calipso.2h", 0x3000, 0x1000, CRC(a3a8111b) SHA1(3d9500c676563ebfc27aebb07716e6a966f00c35) ) + ROM_LOAD( "calipso.2j", 0x4000, 0x1000, CRC(fcbd7b9e) SHA1(5cc1edcc8b9867bb7849c8d97d1096bb6464f562) ) + ROM_LOAD( "calipso.2l", 0x5000, 0x1000, CRC(f7630cab) SHA1(482ee91cccd8a7c5768a1d6a9772d797769fe2dc) ) + + ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound code */ + ROM_LOAD( "calipso.5c", 0x0000, 0x0800, CRC(9cbc65ab) SHA1(b4ce04d18f9536c0ddd2f9c15edda75570e750e5) ) + ROM_LOAD( "calipso.5d", 0x0800, 0x0800, CRC(a225ee3b) SHA1(dba111f89851c69fb6fce16219cb2b0cb3294c15) ) + + ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) + ROM_LOAD( "calipso.5f", 0x0000, 0x2000, CRC(fd4252e9) SHA1(881b988cdc9b7913f577573f8a15af7a7c7cc67f) ) + ROM_LOAD( "calipso.5h", 0x2000, 0x2000, CRC(1663a73a) SHA1(95b6ed25b656afdfb70fac35efa2e005185e4343) ) + + ROM_REGION( 0x0020, REGION_PROMS, 0 ) + ROM_LOAD( "calipso.clr", 0x0000, 0x0020, CRC(01165832) SHA1(bfef0459492dbd5febf3030916b6438eb6be71de) ) +ROM_END + /************************************* * @@ -4922,6 +4985,8 @@ GAME( 1982, anteater, 0, anteater, anteater, anteater, ROT90, "[Stern] ( GAME( 1984, spdcoin, 0, scobra, spdcoin, scobra, ROT90, "Stern", "Speed Coin (prototype)", GAME_SUPPORTS_SAVE ) GAME( 1985, superbon, 0, scobra, superbon, superbon, ROT90, "Signatron USA", "Agent Super Bond (Scobra Hardware)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) +GAME( 1982, calipso, 0, scobra, calipso, calipso, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE ) + /* currently in galaxold.c and should be moved here */ @@ -4975,7 +5040,6 @@ GAME( 1985, superbon, 0, scobra, superbon, superbon, ROT90, "Signatron //GAME( 1981, moonwara, moonwar, scobra/*moonwar*/, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE ) //GAME( 1982, darkplnt, 0, scobra/*darkplnt*/, darkplnt, darkplnt, ROT180, "Stern", "Dark Planet", GAME_SUPPORTS_SAVE ) //GAME( 1982, tazmani2, tazmania, scobra/*type2*/, tazmania, tazmani2, ROT90, "Stern", "Tazz-Mania (set 2)", GAME_SUPPORTS_SAVE ) -//GAME( 1982, calipso, 0, scobra/*calipso*/, calipso, scobra, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE ) //GAME( 1983, anteatg, anteater, scobra/*anteatg*/, anteatg, scramble_ppi, ROT90, "TV-Tuning (F.E.G. license)", "Ameisenbaer (German)", GAME_SUPPORTS_SAVE ) //GAME( 1983, anteatgb, anteater, scobra/*anteatgb*/, anteatgb, scramble_ppi, ROT90, "Free Enterprise Games", "The Anteater (UK)", GAME_SUPPORTS_SAVE ) //GAME( 1982, rescue, 0, scobra/*rescue*/, rescue, rescue, ROT90, "Stern", "Rescue", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c index 414d44f9bfb..6bfdc3cd26b 100644 --- a/src/mame/drivers/scobra.c +++ b/src/mame/drivers/scobra.c @@ -31,11 +31,6 @@ Notes/Tidbits: bits for the 2nd player controls. Maybe the games was meant to use 2 joysticks at one time. -- Calipso was apperantly redesigned for two player simultanious play. - There is code at $298a to flip the screen, but location $8669 has to be - set to 2. It's set to 1 no matter how many players are playing. - It's possible that there is a cocktail version of the game. - - Video Hustler and its two bootlegs all have identical code, the only differences are the title, copyright removed, different encryptions or no encryption, plus hustlerb has a different memory map. @@ -750,47 +745,6 @@ static INPUT_PORTS_START( tazmania ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -/* cocktail mode is N/A */ -static INPUT_PORTS_START( calipso ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x08, 0x08, "Cabinet (Not Supported)" ) - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END /* cocktail mode not working due to bug in game code */ static INPUT_PORTS_START( anteater ) @@ -1326,18 +1280,6 @@ static MACHINE_DRIVER_START( minefld ) MACHINE_DRIVER_END -/* same as the others, but no sprite flipping, but instead the bits are used - as extra sprite code bits, giving 256 sprite images */ -static MACHINE_DRIVER_START( calipso ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(type1) - - /* video hardware */ - MDRV_VIDEO_START(calipso) -MACHINE_DRIVER_END - - static MACHINE_DRIVER_START( mimonkey ) /* basic machine hardware */ @@ -1718,27 +1660,6 @@ ROM_START( tazmani2 ) ROM_LOAD( "colr6f.cpu", 0x0000, 0x0020, CRC(fce333c7) SHA1(f63a214dc47c5e7c80db000b0b6a261ca8da6629) ) ROM_END -ROM_START( calipso ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "calipso.2c", 0x0000, 0x1000, CRC(0fcb703c) SHA1(2bb096f114911973afdf3088c860c9566df06f60) ) - ROM_LOAD( "calipso.2e", 0x1000, 0x1000, CRC(c6622f14) SHA1(475164aed703a97275ff285ecaec9d8fd4fe723b) ) - ROM_LOAD( "calipso.2f", 0x2000, 0x1000, CRC(7bacbaba) SHA1(d321d6d09c689123eb1e5d758d95ccecec225252) ) - ROM_LOAD( "calipso.2h", 0x3000, 0x1000, CRC(a3a8111b) SHA1(3d9500c676563ebfc27aebb07716e6a966f00c35) ) - ROM_LOAD( "calipso.2j", 0x4000, 0x1000, CRC(fcbd7b9e) SHA1(5cc1edcc8b9867bb7849c8d97d1096bb6464f562) ) - ROM_LOAD( "calipso.2l", 0x5000, 0x1000, CRC(f7630cab) SHA1(482ee91cccd8a7c5768a1d6a9772d797769fe2dc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound code */ - ROM_LOAD( "calipso.5c", 0x0000, 0x0800, CRC(9cbc65ab) SHA1(b4ce04d18f9536c0ddd2f9c15edda75570e750e5) ) - ROM_LOAD( "calipso.5d", 0x0800, 0x0800, CRC(a225ee3b) SHA1(dba111f89851c69fb6fce16219cb2b0cb3294c15) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "calipso.5f", 0x0000, 0x2000, CRC(fd4252e9) SHA1(881b988cdc9b7913f577573f8a15af7a7c7cc67f) ) - ROM_LOAD( "calipso.5h", 0x2000, 0x2000, CRC(1663a73a) SHA1(95b6ed25b656afdfb70fac35efa2e005185e4343) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "calipso.clr", 0x0000, 0x0020, CRC(01165832) SHA1(bfef0459492dbd5febf3030916b6438eb6be71de) ) -ROM_END - ROM_START( anteater ) ROM_REGION( 0x10000, REGION_CPU1, 0 ) ROM_LOAD( "ra1-2c", 0x0000, 0x1000, CRC(58bc9393) SHA1(7122782a69ef0d2196ec16833f229b6286802668) ) @@ -2018,7 +1939,6 @@ GAME( 1981, moonwar, 0, moonwar, moonwar, moonwar, ROT90, "Stern GAME( 1981, moonwara, moonwar, moonwar, moonwara, moonwar, ROT90, "Stern", "Moonwar (older)", GAME_SUPPORTS_SAVE ) GAME( 1982, darkplnt, 0, darkplnt, darkplnt, darkplnt, ROT180, "Stern", "Dark Planet", GAME_SUPPORTS_SAVE ) GAME( 1982, tazmani2, tazmania, type2, tazmania, tazmani2, ROT90, "Stern", "Tazz-Mania (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1982, calipso, 0, calipso, calipso, scobra, ROT90, "[Stern] (Tago license)", "Calipso", GAME_SUPPORTS_SAVE ) GAME( 1983, anteatg, anteater, anteatg, anteatg, scramble_ppi, ROT90, "TV-Tuning (F.E.G. license)", "Ameisenbaer (German)", GAME_SUPPORTS_SAVE ) GAME( 1983, anteatgb, anteater, anteatgb, anteatgb, scramble_ppi, ROT90, "Free Enterprise Games", "The Anteater (UK)", GAME_SUPPORTS_SAVE ) GAME( 1982, rescue, 0, rescue, rescue, rescue, ROT90, "Stern", "Rescue", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index a2c1fb9884c..6be1ee4dd6c 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -112,6 +112,9 @@ void moonqsr_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 * void mshuttle_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); void mshuttle_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); +/* Calipso extensions */ +void calipso_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); + /* Jumpbug extensions */ void jumpbug_extend_tile_info(UINT16 *code, UINT8 *color, UINT8 attrib, UINT8 x); void jumpbug_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color); diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h index b6f92cd0161..a9eaed291da 100644 --- a/src/mame/includes/galaxold.h +++ b/src/mame/includes/galaxold.h @@ -73,7 +73,6 @@ VIDEO_START( theend ); VIDEO_START( darkplnt ); VIDEO_START( rescue ); VIDEO_START( minefld ); -VIDEO_START( calipso ); VIDEO_START( stratgyx ); VIDEO_START( mimonkey ); VIDEO_START( turtles ); diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c index e69c2c6cb90..101b3ab08a6 100644 --- a/src/mame/video/galaxian.c +++ b/src/mame/video/galaxian.c @@ -1346,6 +1346,21 @@ void mshuttle_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 } +/************************************* + * + * Calipso extensions + * + *************************************/ + +void calipso_extend_sprite_info(const UINT8 *base, UINT8 *sx, UINT8 *sy, UINT8 *flipx, UINT8 *flipy, UINT16 *code, UINT8 *color) +{ + /* same as the others, but no sprite flipping, but instead the bits are used + as extra sprite code bits, giving 256 sprite images */ + /* No flips */ + *code = base[1]; + *flipx = 0; + *flipy = 0; +} /************************************* * diff --git a/src/mame/video/galaxold.c b/src/mame/video/galaxold.c index 1303305f6a5..54ced0eab24 100644 --- a/src/mame/video/galaxold.c +++ b/src/mame/video/galaxold.c @@ -59,7 +59,6 @@ static void dambustr_modify_charcode(UINT16 *code,UINT8 x); static void (*modify_spritecode)(UINT8 *spriteram,int*,int*,int*,int); /* function to call to do sprite banking */ static void mshuttle_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs); -static void calipso_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs); static void mimonkey_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs); static void batman2_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs); static void dkongjrm_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs); @@ -594,17 +593,6 @@ VIDEO_START( ckongs ) modify_spritecode = mshuttle_modify_spritecode; } -VIDEO_START( calipso ) -{ - VIDEO_START_CALL(galaxold_plain); - - draw_bullets = scramble_draw_bullets; - - draw_background = scramble_draw_background; - - modify_spritecode = calipso_modify_spritecode; -} - VIDEO_START( mariner ) { VIDEO_START_CALL(galaxold_plain); @@ -1168,13 +1156,6 @@ static void mshuttle_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *code |= ((spriteram[offs + 2] & 0x30) << 2); } -static void calipso_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs) -{ - /* No flips */ - *code = spriteram[offs + 1]; - *flipx = 0; - *flipy = 0; -} static void mimonkey_modify_spritecode(UINT8 *spriteram,int *code,int *flipx,int *flipy,int offs) {