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:
Couriersud 2008-08-18 23:25:42 +00:00
parent c0fae223af
commit 7d16a28e7f
6 changed files with 188 additions and 15 deletions

View File

@ -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
/*************************************
*

View File

@ -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 )

View File

@ -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 )

View File

@ -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 );

View File

@ -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 */

View File

@ -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
/*************************************