mirror of
https://github.com/holub/mame
synced 2025-04-30 19:57:11 +03:00
New games/clones: WW III (Irem 1981), I P M Invader (Incomplete Dump)
* Added roms/unemulated/Irem/iremM10_incomplete.zip as ipminva1 to m10.c * Marked as GAME_NOT_WORKING * The roms are all different from ipminvad, one is missing. The game does enough to see that it is some sort of invaders type game. * Added roms/unemulated/Irem/ww3_roms.zip as ww3 to redalert.c * Dumped by Stefan Lindberg * Please credit Stefan Lindberg as well * Either redalert is the clone or ww3 is the clone. Redalert has a speech board in addition to the m37b audio board. New games marked as GAME_NOT_WORKING ------------------------------------ I P M Invader (Incomplete Dump) [unknown dumper, Couriersud] New games added or promoted from NOT_WORKING status --------------------------------------------------- WW III [Stefan Lindberg, Couriersud]
This commit is contained in:
parent
c0fae223af
commit
7d16a28e7f
@ -143,6 +143,11 @@ static ADDRESS_MAP_START( redalert_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Red Alert audio board
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static SOUND_START( redalert_audio )
|
||||
{
|
||||
@ -151,7 +156,6 @@ static SOUND_START( redalert_audio )
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Red Alert voice board
|
||||
@ -209,34 +213,71 @@ static SOUND_START( redalert )
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Red Alert machine driver
|
||||
* Red Alert audio board (m37b)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_DRIVER_START( redalert_audio )
|
||||
static MACHINE_DRIVER_START( redalert_audio_m37b )
|
||||
|
||||
MDRV_CPU_ADD("audio", M6502, REDALERT_AUDIO_CPU_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(redalert_audio_map,0)
|
||||
MDRV_CPU_PERIODIC_INT(irq0_line_hold, REDALERT_AUDIO_CPU_IRQ_FREQ)
|
||||
|
||||
MDRV_CPU_ADD("voice", 8085A, REDALERT_VOICE_CPU_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(redalert_voice_map,0)
|
||||
|
||||
MDRV_SOUND_START( redalert )
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD("ay", AY8910, REDALERT_AY8910_CLOCK)
|
||||
MDRV_SOUND_CONFIG(redalert_ay8910_interface)
|
||||
MDRV_SOUND_ROUTE(0, "mono", 0.50)
|
||||
MDRV_SOUND_ROUTE(1, "mono", 0.50)
|
||||
/* channel C is used a noise source and is not connected to a speaker */
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Red Alert voice board (ue17b)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_DRIVER_START( redalert_audio_voice )
|
||||
|
||||
MDRV_CPU_ADD("voice", 8085A, REDALERT_VOICE_CPU_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(redalert_voice_map,0)
|
||||
|
||||
MDRV_SOUND_ADD("cvsd", HC55516, REDALERT_HC55516_CLOCK)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Red Alert
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_DRIVER_START( redalert_audio )
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_IMPORT_FROM( redalert_audio_m37b )
|
||||
MDRV_IMPORT_FROM( redalert_audio_voice )
|
||||
|
||||
MDRV_SOUND_START( redalert )
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Red Alert
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_DRIVER_START( ww3_audio )
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_IMPORT_FROM( redalert_audio_m37b )
|
||||
|
||||
MDRV_SOUND_START( redalert_audio )
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
|
@ -99,6 +99,16 @@ Notes (couriersud)
|
||||
|
||||
M10-Board: Has SN76477
|
||||
|
||||
ipminva1
|
||||
========
|
||||
|
||||
This is from an incomplete dump without documentation.
|
||||
The filename contained m10 and with a hack to work
|
||||
around the missing rom you get some action.
|
||||
|
||||
The files are all different from ipminvad. Either this has
|
||||
been a prototype or eventually the famous "capsule invader".
|
||||
|
||||
***************************************************************************/
|
||||
#include "driver.h"
|
||||
#include "sound/samples.h"
|
||||
@ -834,6 +844,16 @@ static MACHINE_DRIVER_START( headoni )
|
||||
MDRV_CPU_REPLACE("main", M6502,11730000/16)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Driver Initialization
|
||||
*
|
||||
*************************************/
|
||||
|
||||
/*
|
||||
* Hacks to work around missing roms to get at least some
|
||||
* video output
|
||||
*/
|
||||
static DRIVER_INIT( andromed )
|
||||
{
|
||||
int i;
|
||||
@ -843,6 +863,14 @@ static DRIVER_INIT( andromed )
|
||||
state->rom[i]=0x60;
|
||||
}
|
||||
|
||||
static DRIVER_INIT( ipminva1 )
|
||||
{
|
||||
int i;
|
||||
m10_state *state = machine->driver_data;
|
||||
|
||||
for (i=0x1400;i<0x17ff;i++)
|
||||
state->rom[i]=0x60;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@ -883,6 +911,22 @@ ROM_START( ipminvad )
|
||||
ROM_LOAD( "b10r", 0x0400, 0x0400, CRC(be4b8585) SHA1(0154eae62585e154cf20edcf4599bda8bd333aa9) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ipminva1 )
|
||||
ROM_REGION( 0x10000, "main", 0 )
|
||||
ROM_LOAD( "b1g", 0x1000, 0x0400, CRC(069102e2) SHA1(90affe384a688b0d42154633e80b708371117fc2) )
|
||||
ROM_LOAD( "b2f", 0x1400, 0x0400, CRC(a6aa5879) SHA1(959ab207110785c03e57ca69c0e62356dd974085) )
|
||||
ROM_LOAD( "b3f", 0x1800, 0x0400, CRC(0c09feb9) SHA1(0db43f480162f8e3fb8b61fcceb2884d19ff115b) )
|
||||
ROM_LOAD( "b4f", 0x1c00, 0x0400, CRC(a4d32207) SHA1(ea9a01d09d82b8c27701601f03989735558d975c) )
|
||||
ROM_RELOAD( 0xfc00, 0x0400 ) /* for the reset and interrupt vectors */
|
||||
ROM_LOAD( "b5f", 0x2000, 0x0400, CRC(192361c7) SHA1(b13e80429a9183ce78c4df52a32070416d4ec988) )
|
||||
ROM_LOAD( "b6f", 0x2400, 0x0400, NO_DUMP )
|
||||
ROM_LOAD( "b7f", 0x2800, 0x0400, CRC(0f5115ab) SHA1(3bdd3fc1cfe6bfacb5820ee12c15f2909d2f58d1) )
|
||||
|
||||
ROM_REGION( 0x0800, "gfx1", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "b9", 0x0000, 0x0400, CRC(f6cfa53c) SHA1(ec1076982edee95efb24a1bb08e733bcccacb922) )
|
||||
ROM_LOAD( "b10", 0x0400, 0x0400, CRC(63672cd2) SHA1(3d9fa15509a363e1a32e58a2242b266b1162e9a6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( skychut )
|
||||
ROM_REGION( 0x10000, "main", 0 )
|
||||
ROM_LOAD( "sc1d", 0x1000, 0x0400, CRC(30b5ded1) SHA1(3a8b4fa344522404661b062808a2ea1d5858fdd0) )
|
||||
@ -917,7 +961,7 @@ ROM_START( headoni )
|
||||
ROM_LOAD( "e2.9b", 0x1400, 0x0400, CRC(dada26a8) SHA1(1368ade1c0c57d33d15594370cf1edf95fc44fd1) )
|
||||
ROM_LOAD( "e3.9c", 0x1800, 0x0400, CRC(61ff24f5) SHA1(0e68aedd01b765fb2af76f914b3d287ecf30f716) )
|
||||
ROM_LOAD( "e4.9d", 0x1c00, 0x0400, CRC(ce4c5a67) SHA1(8db493d43f311a29127405aad7693bc08b570b14) )
|
||||
ROM_RELOAD( 0xfc00, 0x0400 ) /* for the reset and interrupt vectors */
|
||||
ROM_RELOAD( 0xfc00, 0x0400 ) /* for the reset and interrupt vectors */
|
||||
ROM_LOAD( "e5.9f", 0x2000, 0x0400, CRC(b5232439) SHA1(39b8fb4bbd00a73b9a2b68bc3e88fb45d3f62d7c) )
|
||||
ROM_LOAD( "e6.9g", 0x2400, 0x0400, CRC(99acd1a6) SHA1(799382c1b079aad3034a1cc738dc06954978a0ac) )
|
||||
ROM_END
|
||||
@ -938,6 +982,7 @@ ROM_END
|
||||
|
||||
GAME( 1979, andromed, 0, m11, skychut, andromed, ROT270, "Irem", "Andromeda (Japan?)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING )
|
||||
GAME( 1979?,ipminvad, 0, m10, ipminvad, 0, ROT270, "Irem", "I P M Invader", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
|
||||
GAME( ????, ipminva1, 0, m10, ipminvad, ipminva1, ROT270, "Irem", "I P M Invader (Incomplete Dump)", GAME_NOT_WORKING )
|
||||
GAME( 1980, skychut, 0, m11, skychut, 0, ROT270, "Irem", "Sky Chuter", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS )
|
||||
GAME( 1979, spacbeam, 0, m15, spacbeam, 0, ROT270, "Irem", "Space Beam", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS )
|
||||
GAME( 1979?,headoni, 0, headoni, headoni, 0, ROT270, "Irem", "Head On (Irem, M-15 Hardware)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS )
|
||||
|
@ -65,6 +65,20 @@
|
||||
* Game is NOT_WORKING due to missing graphics layer
|
||||
* Everything needs to be verified on real PCB or schematics
|
||||
|
||||
********************************************************************
|
||||
IREM 'WW III' 1981
|
||||
|
||||
From readme (Stefan Lindberg)
|
||||
|
||||
The PCB is not working so i don't know if the roms are fine, the soundrom
|
||||
was for sure bad it gave different checksums but most of the reads matched
|
||||
the MAME soundrom (red alert) it is marked exactly the same "w3s1"(IC5).
|
||||
The Bprom matched the Red Alert set also... marked "W3" i think?
|
||||
it's hard to see because the sticker has been damaged.
|
||||
The other eproms exept one did not match anything in MAME,
|
||||
ans#d only one of those had the eprom type markings on it... i read all
|
||||
like that type.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
@ -131,6 +145,21 @@ static ADDRESS_MAP_START( redalert_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("main", 0x8000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( ww3_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(redalert_bitmap_videoram_w) AM_BASE(&redalert_bitmap_videoram)
|
||||
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&redalert_charmap_videoram)
|
||||
AM_RANGE(0x5000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READ_PORT("C000") AM_WRITENOP
|
||||
AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READ_PORT("C010") AM_WRITENOP
|
||||
AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ_PORT("C020") AM_WRITENOP
|
||||
AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, redalert_audio_command_w)
|
||||
AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_video_control)
|
||||
AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_bitmap_color)
|
||||
AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
|
||||
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("main", 0x8000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( demoneye_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
||||
@ -283,6 +312,19 @@ static MACHINE_DRIVER_START( redalert )
|
||||
MDRV_IMPORT_FROM(redalert_audio)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( ww3 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("main", M6502, MAIN_CPU_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(ww3_main_map,0)
|
||||
MDRV_CPU_VBLANK_INT("main", redalert_vblank_interrupt)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_IMPORT_FROM(ww3_video)
|
||||
|
||||
/* audio hardware */
|
||||
MDRV_IMPORT_FROM(ww3_audio)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( demoneye )
|
||||
|
||||
@ -306,6 +348,25 @@ MACHINE_DRIVER_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
ROM_START( ww3 )
|
||||
ROM_REGION( 0x10000, "main", 0 )
|
||||
ROM_LOAD( "w3i5.3f", 0x5000, 0x1000, CRC(9fc24ad3) )
|
||||
ROM_LOAD( "w3i6.3d", 0x6000, 0x1000, CRC(cb2a308c) )
|
||||
ROM_LOAD( "w3i7b.3b", 0x7000, 0x1000, CRC(1a0c3936) )
|
||||
ROM_LOAD( "w3i8.3g", 0x8000, 0x1000, CRC(9e18a92c) )
|
||||
ROM_LOAD( "w3i9.3e", 0x9000, 0x1000, CRC(8c5884a4) )
|
||||
ROM_LOAD( "w3ia.3c", 0xa000, 0x1000, CRC(dccb8605) )
|
||||
ROM_LOAD( "w3ib.3a", 0xb000, 0x1000, CRC(3658e465) )
|
||||
|
||||
ROM_REGION( 0x10000, "audio", 0 )
|
||||
/* rom taken from redalert */
|
||||
ROM_LOAD( "w3s1", 0x7000, 0x0800, BAD_DUMP CRC(4af956a5) SHA1(25368a40d7ebc60316fd2d78ec4c686e701b96dc) )
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 ) /* color PROM */
|
||||
/* prom taken from redalert */
|
||||
ROM_LOAD( "m-257sc.1a", 0x0000, 0x0200, CRC(b1aca792) SHA1(db37f99b9880cc3c434e2a55a0bbb017d9a72aa3) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( redalert )
|
||||
ROM_REGION( 0x10000, "main", 0 )
|
||||
ROM_LOAD( "rag5", 0x5000, 0x1000, CRC(d7c9cdd6) SHA1(5ff5cdceaa00083b745cf5c74b096f7edfadf737) )
|
||||
@ -359,4 +420,5 @@ ROM_END
|
||||
*************************************/
|
||||
|
||||
GAME( 1981, redalert, 0, redalert, redalert, 0, ROT270, "Irem + GDI", "Red Alert", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, ww3, 0, ww3, redalert, 0, ROT270, "Irem", "WW III", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, demoneye, 0, demoneye, demoneye, 0, ROT270, "Irem", "Demoneye-X", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
|
@ -15,6 +15,7 @@ WRITE8_HANDLER( redalert_voice_command_w );
|
||||
WRITE8_HANDLER( demoneye_audio_command_w );
|
||||
|
||||
MACHINE_DRIVER_EXTERN( redalert_audio );
|
||||
MACHINE_DRIVER_EXTERN( ww3_audio );
|
||||
MACHINE_DRIVER_EXTERN( demoneye_audio );
|
||||
|
||||
|
||||
@ -26,5 +27,6 @@ extern UINT8 *redalert_charmap_videoram;
|
||||
extern UINT8 *redalert_video_control;
|
||||
WRITE8_HANDLER( redalert_bitmap_videoram_w );
|
||||
|
||||
MACHINE_DRIVER_EXTERN( ww3_video );
|
||||
MACHINE_DRIVER_EXTERN( redalert_video );
|
||||
MACHINE_DRIVER_EXTERN( demoneye_video );
|
||||
|
@ -1339,6 +1339,7 @@ const game_driver * const drivers[] =
|
||||
/* trivia: IREM means "International Rental Electronics Machines" */
|
||||
DRIVER( andromed ) /* (c) 1979 */
|
||||
DRIVER( ipminvad ) /* M10 no copyright notice */
|
||||
DRIVER( ipminva1 ) /* M10 incomplete dump */
|
||||
DRIVER( skychut ) /* Irem [1980] */
|
||||
DRIVER( spacbeam ) /* M15 no copyright notice */
|
||||
DRIVER( greenber ) /* Irem */
|
||||
@ -1346,6 +1347,8 @@ const game_driver * const drivers[] =
|
||||
|
||||
DRIVER( redalert ) /* (c) 1981 + "GDI presents" */
|
||||
DRIVER( demoneye ) /* (c) 1981 */
|
||||
DRIVER( ww3 ) /* (c) 1981 */
|
||||
|
||||
DRIVER( olibochu ) /* M47 (c) 1981 + "GDI presents" */
|
||||
DRIVER( mpatrol ) /* M52 (c) 1982 */
|
||||
DRIVER( mpatrolw ) /* M52 (c) 1982 + Williams license */
|
||||
|
@ -38,7 +38,7 @@ UINT8 *redalert_video_control;
|
||||
*************************************/
|
||||
|
||||
static UINT8 *redalert_bitmap_colorram;
|
||||
|
||||
static UINT8 redalert_control_xor;
|
||||
|
||||
|
||||
/*************************************
|
||||
@ -141,8 +141,16 @@ static VIDEO_START( redalert )
|
||||
redalert_bitmap_colorram = auto_malloc(0x0400);
|
||||
|
||||
state_save_register_global_pointer(redalert_bitmap_colorram, 0x0400);
|
||||
|
||||
redalert_control_xor = 0x00;
|
||||
}
|
||||
|
||||
static VIDEO_START( ww3 )
|
||||
{
|
||||
VIDEO_START_CALL( redalert );
|
||||
|
||||
redalert_control_xor = 0x04;
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
@ -198,7 +206,7 @@ static VIDEO_UPDATE( redalert )
|
||||
else
|
||||
pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
|
||||
|
||||
if (*redalert_video_control & 0x04)
|
||||
if ((*redalert_video_control ^ redalert_control_xor) & 0x04)
|
||||
*BITMAP_ADDR32(bitmap, y, x) = pen;
|
||||
else
|
||||
*BITMAP_ADDR32(bitmap, y ^ 0xff, x ^ 0xff) = pen;
|
||||
@ -299,9 +307,8 @@ static VIDEO_UPDATE( demoneye )
|
||||
*
|
||||
*************************************/
|
||||
|
||||
MACHINE_DRIVER_START( redalert_video )
|
||||
static MACHINE_DRIVER_START( redalert_video_common )
|
||||
|
||||
MDRV_VIDEO_START(redalert)
|
||||
MDRV_VIDEO_UPDATE(redalert)
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
@ -313,6 +320,19 @@ MACHINE_DRIVER_START( redalert_video )
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
MACHINE_DRIVER_START( redalert_video )
|
||||
|
||||
MDRV_VIDEO_START(redalert)
|
||||
MDRV_IMPORT_FROM( redalert_video_common )
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
MACHINE_DRIVER_START( ww3_video )
|
||||
|
||||
MDRV_VIDEO_START( ww3 )
|
||||
MDRV_IMPORT_FROM( redalert_video_common )
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
/*************************************
|
||||
|
Loading…
Reference in New Issue
Block a user