summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/alien.cpp
blob: 2f22185b43a03000bc3442e554b0540f8c44e42a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// license:BSD-3-Clause
// copyright-holders:Angelo Salese
/**********************************************************************************

    Alien: The Arcade Medal Edition (c) 2005 Capcom

    skeleton driver

   Main board:
    - Hitachi SH-4 HD6417750S at 200MHz
    - 2 x Fujitsu MB86292 Graphics Controller
    - Altera ACEX 1K PLD
    - M48T35Y timekeeper device
    - YMZ770B-F
   Upper board (game specific):
    - CF interface
    - 2 x Panasonic MN677511DE MPEG2 decoders (optional)

   Known undumped games:
    - Donkey Kong: Jungle Fever (c) 2005 Capcom / Nintendo / Namco
    - Donkey Kong: Banana Kingdom (c) 2006 Capcom / Nintendo / Namco

***********************************************************************************/


#include "emu.h"
#include "cpu/sh/sh4.h"
#include "screen.h"
#include "speaker.h"

#define MASTER_CLOCK    XTAL_200MHz

class alien_state : public driver_device
{
public:
	alien_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag),
			m_maincpu(*this, "maincpu")
	{ }

	DECLARE_READ64_MEMBER(test_r);

	uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);

	void alien(machine_config &config);
protected:

	// devices
	required_device<cpu_device> m_maincpu;

	// driver_device overrides
	virtual void machine_reset() override;
	virtual void video_start() override;
};

void alien_state::video_start()
{
}

uint32_t alien_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
	return 0;
}

READ64_MEMBER( alien_state::test_r )
{
	return machine().rand();
}

static ADDRESS_MAP_START( alien_map, AS_PROGRAM, 64, alien_state )
	AM_RANGE(0x00000000, 0x0003ffff) AM_ROM
	AM_RANGE(0x08000000, 0x08000007) AM_READ(test_r) //hangs if zero
	AM_RANGE(0x0cfe0000, 0x0cffffff) AM_RAM
	AM_RANGE(0x10000000, 0x13ffffff) AM_RAM
	AM_RANGE(0x18000000, 0x1800000f) AM_READ(test_r) AM_WRITENOP
ADDRESS_MAP_END




static INPUT_PORTS_START( alien )

INPUT_PORTS_END


void alien_state::machine_reset()
{
	//m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
}

MACHINE_CONFIG_START(alien_state::alien)
	/* basic machine hardware */
	MCFG_CPU_ADD("maincpu", SH4LE, MASTER_CLOCK)    /* 200MHz */
	MCFG_CPU_PROGRAM_MAP(alien_map)
	MCFG_CPU_FORCE_NO_DRC()

	/* video hardware */

	MCFG_SCREEN_ADD("screen", RASTER)
	MCFG_SCREEN_REFRESH_RATE(60)
	MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
	MCFG_SCREEN_UPDATE_DRIVER(alien_state, screen_update)
	MCFG_SCREEN_SIZE((32)*8, (32)*8)
	MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)

	MCFG_PALETTE_ADD("palette", 0x1000)

	/* sound hardware */
	MCFG_SPEAKER_STANDARD_MONO("mono")

MACHINE_CONFIG_END


/*************************
*        Rom Load        *
*************************/

ROM_START( alien )
	ROM_REGION( 0x800000, "maincpu", 0 ) // BIOS code
	ROM_LOAD32_WORD( "aln_s04.4.ic30", 0x000000, 0x400000, CRC(11777d3f) SHA1(8cc9fcae7911e6be273b4532d89b44a309687ead) )
	ROM_LOAD32_WORD( "aln_s05.5.ic33", 0x000002, 0x400000, CRC(71d2f22c) SHA1(16b25aa34f8b0d988565e7ab7cecc4df62ee8cf3) )

	ROM_REGION( 0x800100, "ymz770b", 0 ) //sound samples flash rom
	ROM_LOAD( "s29jl064hxxtfi00.u35", 0x000000, 0x800100, CRC(01890c61) SHA1(4fad321f42eab835351c6d5f73539bdbed80affe) )

	ROM_REGION( 0x8000, "nvram", ROMREGION_ERASEFF) //timekeeper device
	ROM_LOAD( "m48t35y.3.ic26", 0x000000, 0x007ff8, CRC(060b0a75) SHA1(7ddf380ee0e7b54533ef7e248405bfce1c5dbb4b) )

	DISK_REGION( "card" ) //compact flash
	DISK_IMAGE( "alien", 0, SHA1(0328f12765db41a9ef5c8bfb88d4983345093072) )
ROM_END

// ROM board only dumped, main board is missing, presumable similar to Alien: The Arcade medal hardware
ROM_START( pingu )
	ROM_REGION( 0x800000, "maincpu", 0 ) // BIOS code
	ROM_LOAD32_WORD( "ic30", 0x000000, 0x400000, NO_DUMP )
	ROM_LOAD32_WORD( "ic33", 0x000002, 0x400000, NO_DUMP )

	ROM_REGION( 0x800100, "ymz770b", 0 ) //sound samples flash rom
	ROM_LOAD( "ic10", 0x000000, 0x800100, CRC(04cf9722) SHA1(854e056a03d6f7ac9b438ba9ce8a0499a79bdec8) )

	DISK_REGION( "card" ) //compact flash
	DISK_IMAGE( "pingu", 0, SHA1(9163fb1d4dd96ef4417cad458f2270bf7bd58f01) )
ROM_END


GAME( 2005, alien,  0,      alien, alien, alien_state, 0, ROT0, "Capcom", "Alien: The Arcade Medal Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 2006, pingu,  0,      alien, alien, alien_state, 0, ROT0, "Pygos Group / Capcom", "Pingu's Ice Block", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )