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
149
150
|
// 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(200'000'000)
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);
void alien_map(address_map &map);
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();
}
void alien_state::alien_map(address_map &map)
{
map(0x00000000, 0x0003ffff).rom();
map(0x08000000, 0x08000007).r(this, FUNC(alien_state::test_r)); //hangs if zero
map(0x0cfe0000, 0x0cffffff).ram();
map(0x10000000, 0x13ffffff).ram();
map(0x18000000, 0x1800000f).r(this, FUNC(alien_state::test_r)).nopw();
}
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_DEVICE_ADD("maincpu", SH4LE, MASTER_CLOCK) /* 200MHz */
MCFG_DEVICE_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 )
|