1 // license:BSD-3-Clause
2 // copyright-holders:Nicola Salmoria
3 /***************************************************************************
4
5 Scramble hardware
6
7 NOTE: Eventually to be merged into GALAXIAN.C
8
9 Interesting tidbit:
10
11 There is a bug in Amidars and Triple Punch. Look at the loop at 0x2715.
12 It expects DE to be saved during the call to 0x2726, but it can be destroyed,
13 causing the loop to read all kinds of bogus memory locations.
14
15
16 To Do:
17
18 - Mariner has discrete sound circuits connected to the 8910's output ports
19
20
21 Notes:
22
23 - While Atlantis has a cabinet switch, it doesn't use the 2nd player controls
24 in cocktail mode.
25 - DIP locations have been verified from manuals for:
26 800fath
27 scramble
28
29 ***************************************************************************/
30
31 #include "emu.h"
32 #include "includes/scramble.h"
33
34 #include "cpu/s2650/s2650.h"
35 #include "cpu/z80/z80.h"
36 #include "machine/gen_latch.h"
37 #include "machine/i8255.h"
38 #include "machine/watchdog.h"
39 #include "sound/ay8910.h"
40 #include "speaker.h"
41
42
scramble_map(address_map & map)43 void scramble_state::scramble_map(address_map &map)
44 {
45 map(0x0000, 0x3fff).rom();
46 map(0x4000, 0x47ff).ram();
47 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
48 map(0x4c00, 0x4fff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); /* mirror address */
49 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
50 map(0x5040, 0x505f).ram().share("spriteram");
51 map(0x5060, 0x507f).ram().share("bulletsram");
52 map(0x5080, 0x50ff).ram();
53 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
54 map(0x6802, 0x6802).w(FUNC(scramble_state::galaxold_coin_counter_w));
55 map(0x6804, 0x6804).w(FUNC(scramble_state::galaxold_stars_enable_w));
56 map(0x6806, 0x6806).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
57 map(0x6807, 0x6807).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
58 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
59 map(0x7800, 0x7800).r("watchdog", FUNC(watchdog_timer_device::reset_r));
60 map(0x8100, 0x8103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
61 map(0x8110, 0x8113).r(m_ppi8255_0, FUNC(i8255_device::read)); /* mirror for Frog */
62 map(0x8200, 0x8203).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
63 }
64
scramble_soundram_r(offs_t offset)65 uint8_t scramble_state::scramble_soundram_r(offs_t offset)
66 {
67 return m_soundram[offset & 0x03ff];
68 }
69
scramble_soundram_w(offs_t offset,uint8_t data)70 void scramble_state::scramble_soundram_w(offs_t offset, uint8_t data)
71 {
72 m_soundram[offset & 0x03ff] = data;
73 }
74
scramble_sound_map(address_map & map)75 void scramble_state::scramble_sound_map(address_map &map)
76 {
77 map(0x0000, 0x2fff).rom();
78 map(0x8000, 0x8fff).rw(FUNC(scramble_state::scramble_soundram_r), FUNC(scramble_state::scramble_soundram_w)).share("soundram");
79 map(0x9000, 0x9fff).nopw(); // w(FUNC(scramble_state::scramble_filter_w)); - scramble doesn't instantiate any RC filters. This is dead code!
80 }
81
scramble_sound_io_map(address_map & map)82 void scramble_state::scramble_sound_io_map(address_map &map)
83 {
84 map.global_mask(0xff);
85 map(0x10, 0x10).w("8910.1", FUNC(ay8910_device::address_w));
86 map(0x20, 0x20).rw("8910.1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
87 map(0x40, 0x40).w("8910.2", FUNC(ay8910_device::address_w));
88 map(0x80, 0x80).rw("8910.2", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
89 }
90
91
ckongs_map(address_map & map)92 void scramble_state::ckongs_map(address_map &map)
93 {
94 map(0x0000, 0x5fff).rom();
95 map(0x6000, 0x6bff).ram();
96 map(0x7000, 0x7003).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
97 map(0x7800, 0x7803).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
98 map(0x9000, 0x93ff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
99 map(0x9800, 0x983f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
100 map(0x9840, 0x985f).ram().share("spriteram");
101 map(0x9860, 0x987f).ram().share("bulletsram");
102 map(0x9880, 0x98ff).ram();
103 map(0xa801, 0xa801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
104 map(0xa802, 0xa802).w(FUNC(scramble_state::galaxold_coin_counter_w));
105 map(0xa806, 0xa806).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
106 map(0xa807, 0xa807).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
107 map(0xb000, 0xb000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
108 }
109
110
111
mars_ppi8255_0_r(offs_t offset)112 uint8_t scramble_state::mars_ppi8255_0_r(offs_t offset)
113 {
114 return m_ppi8255_0->read(((offset >> 2) & 0x02) | ((offset >> 1) & 0x01));
115 }
116
mars_ppi8255_1_r(offs_t offset)117 uint8_t scramble_state::mars_ppi8255_1_r(offs_t offset)
118 {
119 return m_ppi8255_1->read(((offset >> 2) & 0x02) | ((offset >> 1) & 0x01));
120 }
121
mars_ppi8255_0_w(offs_t offset,uint8_t data)122 void scramble_state::mars_ppi8255_0_w(offs_t offset, uint8_t data)
123 {
124 m_ppi8255_0->write(((offset >> 2) & 0x02) | ((offset >> 1) & 0x01), data);
125 }
126
mars_ppi8255_1_w(offs_t offset,uint8_t data)127 void scramble_state::mars_ppi8255_1_w(offs_t offset, uint8_t data)
128 {
129 m_ppi8255_1->write(((offset >> 2) & 0x02) | ((offset >> 1) & 0x01), data);
130 }
131
mars_map(address_map & map)132 void scramble_state::mars_map(address_map &map)
133 {
134 map(0x0000, 0x3fff).rom();
135 map(0x4000, 0x47ff).ram();
136 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
137 map(0x4c00, 0x4fff).r(FUNC(scramble_state::galaxold_videoram_r));
138 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
139 map(0x5040, 0x505f).ram().share("spriteram");
140 map(0x5060, 0x507f).ram().share("bulletsram");
141 map(0x5080, 0x50ff).ram();
142 map(0x6800, 0x6800).w(FUNC(scramble_state::galaxold_coin_counter_1_w));
143 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_stars_enable_w));
144 map(0x6802, 0x6802).w(FUNC(scramble_state::galaxold_nmi_enable_w));
145 map(0x6808, 0x6808).w(FUNC(scramble_state::galaxold_coin_counter_0_w));
146 map(0x6809, 0x6809).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
147 map(0x680b, 0x680b).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
148 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
149 map(0x7000, 0x7000).nopr();
150 map(0x8100, 0x810f).rw(FUNC(scramble_state::mars_ppi8255_0_r), FUNC(scramble_state::mars_ppi8255_0_w));
151 map(0x8200, 0x820f).rw(FUNC(scramble_state::mars_ppi8255_1_r), FUNC(scramble_state::mars_ppi8255_1_w));
152 }
153
154
155
newsin7_map(address_map & map)156 void scramble_state::newsin7_map(address_map &map)
157 {
158 map(0x0000, 0x3fff).rom();
159 map(0x4000, 0x47ff).ram();
160 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
161 map(0x4c00, 0x4fff).r(FUNC(scramble_state::galaxold_videoram_r));
162 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
163 map(0x5040, 0x505f).ram().share("spriteram");
164 map(0x5060, 0x507f).ram().share("bulletsram");
165 map(0x5080, 0x50ff).ram();
166 map(0x6800, 0x6800).w(FUNC(scramble_state::galaxold_coin_counter_1_w));
167 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_stars_enable_w));
168 //map(0x6802, 0x6802).w(FUNC(scramble_state::galaxold_nmi_enable_w));
169 map(0x6808, 0x6808).w(FUNC(scramble_state::galaxold_coin_counter_0_w));
170 map(0x6809, 0x6809).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
171 map(0x680b, 0x680b).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
172 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
173 map(0x8200, 0x820f).rw(FUNC(scramble_state::mars_ppi8255_1_r), FUNC(scramble_state::mars_ppi8255_1_w));
174 map(0xa000, 0xafff).rom();
175 map(0xc100, 0xc10f).rw(FUNC(scramble_state::mars_ppi8255_0_r), FUNC(scramble_state::mars_ppi8255_0_w));
176 }
177
178
179
mrkougar_map(address_map & map)180 void scramble_state::mrkougar_map(address_map &map)
181 {
182 map(0x0000, 0x3fff).rom();
183 map(0x4000, 0x47ff).ram();
184 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
185 map(0x4c00, 0x4fff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w));
186 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
187 map(0x5040, 0x505f).ram().share("spriteram");
188 map(0x5060, 0x507f).ram().share("bulletsram");
189 map(0x5080, 0x50ff).ram();
190 map(0x6800, 0x6800).w(FUNC(scramble_state::galaxold_coin_counter_1_w));
191 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
192 map(0x6808, 0x6808).w(FUNC(scramble_state::galaxold_coin_counter_0_w));
193 map(0x6809, 0x6809).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
194 map(0x680b, 0x680b).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
195 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
196 map(0x8100, 0x810f).rw(FUNC(scramble_state::mars_ppi8255_0_r), FUNC(scramble_state::mars_ppi8255_0_w));
197 map(0x8200, 0x820f).rw(FUNC(scramble_state::mars_ppi8255_1_r), FUNC(scramble_state::mars_ppi8255_1_w));
198 }
199
200
201
hotshock_map(address_map & map)202 void scramble_state::hotshock_map(address_map &map)
203 {
204 map(0x0000, 0x3fff).rom();
205 map(0x4000, 0x47ff).ram();
206 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
207 map(0x4c00, 0x4fff).r(FUNC(scramble_state::galaxold_videoram_r));
208 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
209 map(0x5040, 0x505f).ram().share("spriteram");
210 map(0x5060, 0x507f).ram().share("bulletsram");
211 map(0x5080, 0x50ff).ram();
212 map(0x6000, 0x6000).w(FUNC(scramble_state::galaxold_coin_counter_2_w));
213 map(0x6002, 0x6002).w(FUNC(scramble_state::galaxold_coin_counter_1_w));
214 map(0x6004, 0x6004).w(FUNC(scramble_state::hotshock_flip_screen_w));
215 map(0x6005, 0x6005).w(FUNC(scramble_state::galaxold_coin_counter_0_w));
216 map(0x6006, 0x6006).w(FUNC(scramble_state::galaxold_gfxbank_w));
217 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
218 map(0x7000, 0x7000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
219 map(0x8000, 0x8000).portr("IN0").w(m_soundlatch, FUNC(generic_latch_8_device::write));
220 map(0x8001, 0x8001).portr("IN1");
221 map(0x8002, 0x8002).portr("IN2");
222 map(0x8003, 0x8003).portr("IN3");
223 map(0x9000, 0x9000).w(FUNC(scramble_state::hotshock_sh_irqtrigger_w));
224 }
225
226
227
hunchbks_map(address_map & map)228 void scramble_state::hunchbks_map(address_map &map)
229 {
230 map(0x0000, 0x0fff).rom();
231 map(0x1210, 0x1213).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
232 map(0x1400, 0x143f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
233 map(0x1440, 0x145f).ram().share("spriteram");
234 map(0x1460, 0x147f).ram().share("bulletsram");
235 map(0x1480, 0x14ff).ram();
236 map(0x1500, 0x1503).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
237 map(0x1606, 0x1606).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
238 map(0x1607, 0x1607).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
239 map(0x1680, 0x1680).r("watchdog", FUNC(watchdog_timer_device::reset_r));
240 map(0x1780, 0x1780).r("watchdog", FUNC(watchdog_timer_device::reset_r));
241 map(0x1800, 0x1bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
242 map(0x1c00, 0x1fff).ram();
243 map(0x2000, 0x2fff).rom();
244 map(0x3000, 0x3fff).rw(FUNC(scramble_state::hunchbks_mirror_r), FUNC(scramble_state::hunchbks_mirror_w));
245 map(0x4000, 0x4fff).rom();
246 map(0x5000, 0x5fff).rw(FUNC(scramble_state::hunchbks_mirror_r), FUNC(scramble_state::hunchbks_mirror_w));
247 map(0x6000, 0x6fff).rom();
248 map(0x7000, 0x7fff).rw(FUNC(scramble_state::hunchbks_mirror_r), FUNC(scramble_state::hunchbks_mirror_w));
249 }
250
251
252
mimonscr_map(address_map & map)253 void scramble_state::mimonscr_map(address_map &map)
254 {
255 map(0x0000, 0x3fff).rom();
256 map(0x4000, 0x47ff).ram();
257 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
258 map(0x4c00, 0x4fff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); /* mirror address */
259 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
260 map(0x5040, 0x505f).ram().share("spriteram");
261 map(0x5060, 0x507f).ram().share("bulletsram");
262 map(0x5080, 0x50ff).ram();
263 map(0x6800, 0x6802).w(FUNC(scramble_state::galaxold_gfxbank_w));
264 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
265 map(0x6806, 0x6806).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
266 map(0x6807, 0x6807).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
267 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
268 map(0x8100, 0x8103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
269 map(0x8200, 0x8203).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
270 map(0xc000, 0xffff).rom();
271 }
272
273
274
ad2083_map(address_map & map)275 void scramble_state::ad2083_map(address_map &map)
276 {
277 map(0x0000, 0x3fff).rom();
278 map(0x4000, 0x47ff).ram();
279 map(0x4800, 0x4bff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
280 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
281 map(0x5040, 0x505f).ram().share("spriteram");
282 map(0x5060, 0x507f).ram().share("bulletsram");
283 map(0x6004, 0x6004).w(FUNC(scramble_state::hotshock_flip_screen_w));
284 map(0x6800, 0x6800).w(FUNC(scramble_state::galaxold_coin_counter_2_w));
285 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
286 map(0x6802, 0x6802).w(FUNC(scramble_state::galaxold_coin_counter_0_w));
287 map(0x6803, 0x6803).w(FUNC(scramble_state::scrambold_background_blue_w));
288 map(0x6805, 0x6805).w(FUNC(scramble_state::galaxold_coin_counter_1_w));
289 map(0x6806, 0x6806).w(FUNC(scramble_state::scrambold_background_red_w));
290 map(0x6807, 0x6807).w(FUNC(scramble_state::scrambold_background_green_w));
291 map(0x8000, 0x8000).w(m_soundlatch, FUNC(generic_latch_8_device::write));
292 map(0x9000, 0x9000).w(FUNC(scramble_state::hotshock_sh_irqtrigger_w));
293 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
294 map(0x8000, 0x8000).portr("IN0");
295 map(0x8001, 0x8001).portr("IN1");
296 map(0x8002, 0x8002).portr("IN2");
297 map(0x8003, 0x8003).portr("IN3");
298 map(0xa000, 0xdfff).rom();
299 map(0xe800, 0xebff).ram();
300 }
301
302
303
triplep_map(address_map & map)304 void scramble_state::triplep_map(address_map &map)
305 {
306 map(0x0000, 0x3fff).rom();
307 map(0x4000, 0x47ff).ram();
308 map(0x4800, 0x4bff).ram().w(FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
309 map(0x4c00, 0x4fff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); /* mirror address */
310 map(0x5000, 0x503f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
311 map(0x5040, 0x505f).ram().share("spriteram");
312 map(0x5060, 0x507f).ram().share("bulletsram");
313 map(0x5080, 0x50ff).ram();
314 map(0x5800, 0x67ff).rom();
315 map(0x6801, 0x6801).w(FUNC(scramble_state::galaxold_nmi_enable_w));
316 map(0x6802, 0x6802).w(FUNC(scramble_state::galaxold_coin_counter_w));
317 map(0x6804, 0x6804).w(FUNC(scramble_state::galaxold_stars_enable_w));
318 map(0x6806, 0x6806).w(FUNC(scramble_state::galaxold_flip_screen_x_w));
319 map(0x6807, 0x6807).w(FUNC(scramble_state::galaxold_flip_screen_y_w));
320 map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
321 map(0x8100, 0x8103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
322 }
323
triplep_io_map(address_map & map)324 void scramble_state::triplep_io_map(address_map &map)
325 {
326 map.global_mask(0xff);
327 map(0x00, 0x01).w("8910.1", FUNC(ay8910_device::data_address_w));
328 map(0x01, 0x01).r("8910.1", FUNC(ay8910_device::data_r));
329 map(0x02, 0x02).r(FUNC(scramble_state::triplep_pip_r));
330 map(0x03, 0x03).r(FUNC(scramble_state::triplep_pap_r));
331 }
332
hotshock_sound_io_map(address_map & map)333 void scramble_state::hotshock_sound_io_map(address_map &map)
334 {
335 map.global_mask(0xff);
336 map(0x10, 0x10).w("8910.1", FUNC(ay8910_device::address_w));
337 map(0x20, 0x20).rw("8910.1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
338 map(0x40, 0x40).rw("8910.2", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
339 map(0x80, 0x80).w("8910.2", FUNC(ay8910_device::address_w));
340 }
341
342
343
hncholms_prot_r()344 uint8_t scramble_state::hncholms_prot_r()
345 {
346 if(m_maincpu->pc() == 0x2b || m_maincpu->pc() == 0xa27)
347 return 1;
348 else
349 return 0;
350 }
351
hunchbks_readport(address_map & map)352 void scramble_state::hunchbks_readport(address_map &map)
353 {
354 map(0x00, 0x00).r(FUNC(scramble_state::hncholms_prot_r));
355 }
356
357
358 // Harem
359
harem_map(address_map & map)360 void scramble_state::harem_map(address_map &map)
361 {
362 map(0x0000, 0x1fff).rom();
363
364 map(0x2000, 0x27ff).ram();
365
366 map(0x4000, 0x403f).ram().w(FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
367 map(0x4040, 0x405f).ram().share("spriteram");
368 map(0x4060, 0x407f).ram().share("bulletsram");
369 map(0x4080, 0x47ff).ram();
370
371 map(0x4800, 0x4bff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
372 map(0x4c00, 0x4fff).rw(FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); // mirror address
373
374 map(0x5000, 0x5000).ram().w(FUNC(scramble_state::racknrol_tiles_bank_w)).share("racknrol_tbank"); // high bits of tiles, 1 bit every 4 columns
375 map(0x5800, 0x5800).r("watchdog", FUNC(watchdog_timer_device::reset_r)).w(FUNC(scramble_state::galaxold_nmi_enable_w));
376
377 map(0x5801, 0x5801).w(FUNC(scramble_state::harem_decrypt_clk_w)); // run-time bitswap selection
378 map(0x5802, 0x5802).w(FUNC(scramble_state::harem_decrypt_bit_w));
379 map(0x5803, 0x5803).w(FUNC(scramble_state::harem_decrypt_rst_w));
380
381 map(0x5804, 0x5804).w(FUNC(scramble_state::galaxold_coin_counter_w));
382 map(0x5805, 0x5805).w(FUNC(scramble_state::galaxold_gfxbank_w)); // bit 0 = sprite tiles high bit
383 map(0x5806, 0x5806).w(FUNC(scramble_state::galaxold_flip_screen_x_w)); // maybe (0 at boot)
384 map(0x5807, 0x5807).w(FUNC(scramble_state::galaxold_flip_screen_y_w)); // ""
385
386 map(0x6100, 0x6103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
387 map(0x6200, 0x6203).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
388
389 map(0x8000, 0x9fff).bankr("rombank"); // bitswapped rom
390 }
391
decrypted_opcodes_map(address_map & map)392 void scramble_state::decrypted_opcodes_map(address_map &map)
393 {
394 map(0x0000, 0x1fff).rom().region("maincpu", 0);
395 map(0x8000, 0x9fff).bankr("rombank_decrypted");
396 }
397
harem_sound_map(address_map & map)398 void scramble_state::harem_sound_map(address_map &map)
399 {
400 map(0x0000, 0x2fff).rom();
401 map(0x6000, 0x6000).r(FUNC(scramble_state::harem_digitalker_intr_r));
402 map(0x8000, 0x83ff).ram();
403 map(0xa000, 0xafff).nopw(); // w(FUNC(scramble_state::scramble_filter_w)); - scramble/harem don't instantiate any RC filters. This is dead code!
404 }
405
harem_sound_io_map(address_map & map)406 void scramble_state::harem_sound_io_map(address_map &map)
407 {
408 map.global_mask(0xff);
409
410 // ports->speech:
411 map(0x04, 0x04).w("8910.3", FUNC(ay8910_device::address_w));
412 map(0x08, 0x08).rw("8910.3", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
413 // same as scramble:
414 map(0x10, 0x10).w("8910.1", FUNC(ay8910_device::address_w));
415 map(0x20, 0x20).rw("8910.1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
416 map(0x40, 0x40).w("8910.2", FUNC(ay8910_device::address_w));
417 map(0x80, 0x80).rw("8910.2", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); // read soundlatch
418 }
419
420
421
422 /**************************************************************************/
423
424 static INPUT_PORTS_START( scramble )
425 PORT_START("IN0")
426 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
427 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
428 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
429 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
430 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
431 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
432 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
433 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
434
435 PORT_START("IN1")
DEF_STR(Lives)436 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1")
437 PORT_DIPSETTING( 0x00, "3" )
438 PORT_DIPSETTING( 0x01, "4" )
439 PORT_DIPSETTING( 0x02, "5" )
440 PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) )
441 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
442 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
443 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
444 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
445 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
446 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
447
448 PORT_START("IN2")
449 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
450 PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,4")
451 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
452 PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
453 PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
454 PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
455 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3")
456 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
457 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
458 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
459 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) /* protection bit */
460 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
461 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) /* protection bit */
462 INPUT_PORTS_END
463
464 static INPUT_PORTS_START( 800fath )
465 PORT_START("IN0")
466 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
467 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
468 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
469 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
470 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
471 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
472 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
473 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
474
475 PORT_START("IN1")
476 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
477 PORT_DIPSETTING( 0x00, "3" )
478 PORT_DIPSETTING( 0x01, "4" )
479 PORT_DIPSETTING( 0x02, "5" )
480 PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) )
481 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
482 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
483 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
484 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
485 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
486 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
487
488 PORT_START("IN2")
489 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
490 PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3")
491 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
492 PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
493 PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) )
494 PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) )
495 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:4")
496 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
497 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
498 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
499 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) /* protection bit */
500 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
501 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) /* protection bit */
502 INPUT_PORTS_END
503
504 static INPUT_PORTS_START( triplep )
505 PORT_START("IN0")
506 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
507 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
508 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
509 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
510 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
511 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
512 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
513 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
514
515 PORT_START("IN1")
516 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
517 PORT_DIPSETTING( 0x00, "3" )
518 PORT_DIPSETTING( 0x01, "4" )
519 PORT_DIPSETTING( 0x02, "5" )
520 PORT_DIPSETTING( 0x03, "256 (Cheat)")
521 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
522 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
523 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
524 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
525 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
526 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
527
528 PORT_START("IN2")
529 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
530 PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
531 PORT_DIPSETTING( 0x02, "A 1/2 B 1/1 C 1/2" )
532 PORT_DIPSETTING( 0x04, "A 1/3 B 3/1 C 1/3" )
533 PORT_DIPSETTING( 0x00, "A 1/1 B 2/1 C 1/1" )
534 PORT_DIPSETTING( 0x06, "A 1/4 B 4/1 C 1/4" )
535 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
536 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
537 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
538 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
539 PORT_SERVICE( 0x20, IP_ACTIVE_HIGH )
540 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
541 PORT_DIPNAME( 0x80, 0x00, "Rack Test (Cheat)" ) PORT_CODE(KEYCODE_F1)
542 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
543 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
544 INPUT_PORTS_END
545
546 static INPUT_PORTS_START( knockoutb )
547 PORT_INCLUDE(triplep)
548
549 PORT_MODIFY("IN1")
550 PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
551 PORT_DIPSETTING( 0x00, "1" )
552 PORT_DIPSETTING( 0x01, "2" )
553 PORT_DIPSETTING( 0x02, "3" )
554 PORT_DIPSETTING( 0x03, "256 (Cheat)")
555 INPUT_PORTS_END
556
557 /* ckongs coinage DIPs are spread across two input ports */
558 template <int Mask>
559 READ_LINE_MEMBER(scramble_state::ckongs_coinage_r)
560 {
561 return (ioport("FAKE")->read() & Mask) ? 1 : 0;
562 }
563
564 static INPUT_PORTS_START( ckongs )
565 PORT_START("IN0")
566 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
567 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
568 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
569 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
570 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
571 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
572 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
573 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
574
575 PORT_START("IN1")
576 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(scramble_state, ckongs_coinage_r<0x01>)
577 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(scramble_state, ckongs_coinage_r<0x02>)
578 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
579 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
580 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
581 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
582 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
583 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
584
585 PORT_START("IN2")
586 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
587 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
588 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
589 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
590 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
591 PORT_DIPSETTING( 0x04, "3" )
592 PORT_DIPSETTING( 0x00, "4" )
593 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(scramble_state, ckongs_coinage_r<0x04>)
594 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
595 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
596 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
597 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
598
599 PORT_START("FAKE")
600 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
601 PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
602 PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
603 PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
604 PORT_DIPSETTING( 0x05, DEF_STR( 2C_1C ) )
605 PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
606 PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
607 PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) )
608 PORT_DIPSETTING( 0x02, DEF_STR( 1C_4C ) )
609 INPUT_PORTS_END
610
611 static INPUT_PORTS_START( mars )
612 PORT_START("IN0")
613 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY PORT_PLAYER(2)
614 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
615 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY
616 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY
617 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY
618 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY
619 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
620 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
621
622 PORT_START("IN1")
623 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Coin_B ) )
624 PORT_DIPSETTING( 0x00, DEF_STR( 1C_3C ) )
625 PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
626 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coin_A ) )
627 PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
628 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
629 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY PORT_PLAYER(2)
630 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY PORT_PLAYER(2)
631 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_PLAYER(2)
632 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY PORT_PLAYER(2)
633 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
634 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
635
636 PORT_START("IN2")
637 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY PORT_PLAYER(2) /* this also control cocktail mode */
638 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
639 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
640 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
641 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
642 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
643 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
644 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )
645 PORT_DIPSETTING( 0x08, "3" )
646 PORT_DIPSETTING( 0x00, "255 (Cheat)")
647 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY
648 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY
649 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY
650 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY
651
652 PORT_START("IN3")
653 PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNKNOWN )
654 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY PORT_PLAYER(2)
655 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
656 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY PORT_PLAYER(2)
657 INPUT_PORTS_END
658
659 static INPUT_PORTS_START( devilfsh )
660 PORT_START("IN0")
661 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
662 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
663 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
664 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
665 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
666 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
667 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
668 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
669
670 PORT_START("IN1")
671 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Bonus_Life ) )
672 PORT_DIPSETTING( 0x00, "10000" )
673 PORT_DIPSETTING( 0x01, "15000" )
674 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
675 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
676 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
677 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
678 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
679 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
680 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
681 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
682 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
683
684 PORT_START("IN2")
685 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
686 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) )
687 PORT_DIPSETTING( 0x00, "4" )
688 PORT_DIPSETTING( 0x02, "5" )
689 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coin_A ) )
690 PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
691 PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )
692 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coin_B ) )
693 PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
694 PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
695 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
696 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
697 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
698 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
699 INPUT_PORTS_END
700
701 static INPUT_PORTS_START( newsin7 )
702 PORT_START("IN0")
703 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
704 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
705 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
706 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
707 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
708 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
709 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
710 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
711
712 PORT_START("IN1")
713 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
714 PORT_DIPSETTING( 0x03, " A 1C/1C B 2C/1C" )
715 PORT_DIPSETTING( 0x01, " A 1C/3C B 3C/1C" )
716 PORT_DIPSETTING( 0x02, " A 1C/2C B 1C/1C" )
717 PORT_DIPSETTING( 0x00, " A 1C/4C B 4C/1C" )
718 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
719 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
720 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
721 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
722 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
723 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
724
725 PORT_START("IN2") /* IN2 */
726 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
727 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) )
728 PORT_DIPSETTING( 0x02, DEF_STR( Upright ) )
729 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
730 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* difficulty? */
731 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
732 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
733 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Lives ) )
734 PORT_DIPSETTING( 0x00, "3" )
735 PORT_DIPSETTING( 0x08, "5" )
736 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
737 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
738 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
739 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
740 INPUT_PORTS_END
741
742 static INPUT_PORTS_START( mrkougar )
743 PORT_START("IN0")
744 PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNKNOWN )
745 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
746 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
747 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
748 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
749 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
750 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
751
752 PORT_START("IN1")
753 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Coin_B ) )
754 PORT_DIPSETTING( 0x00, DEF_STR( 1C_3C ) )
755 PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
756 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coin_A ) )
757 PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
758 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
759 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
760 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
761 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
762 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
763 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
764 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
765
766 PORT_START("IN2")
767 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
768 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
769 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
770 PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
771 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) )
772 PORT_DIPSETTING( 0x00, "3" )
773 PORT_DIPSETTING( 0x04, "5" )
774 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) )
775 PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
776 PORT_DIPSETTING( 0x08, DEF_STR( Easy ) )
777 PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
778 INPUT_PORTS_END
779
780 static INPUT_PORTS_START( hotshock )
781 PORT_START("IN0")
782 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
783 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
784 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
785 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
786 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
787 PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
788
789 PORT_START("IN1")
790 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
791 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
792 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
793 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
794 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 )
795 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* pressing this disables the coins */
796 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
797 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
798
799 PORT_START("IN2")
800 PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_B ) )
801 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
802 PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) )
803 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
804 PORT_DIPSETTING( 0x0a, DEF_STR( 2C_3C ) )
805 PORT_DIPSETTING( 0x0b, DEF_STR( 2C_4C ) )
806 PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
807 PORT_DIPSETTING( 0x0c, DEF_STR( 2C_5C ) )
808 PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C ) )
809 PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
810 PORT_DIPSETTING( 0x0e, DEF_STR( 2C_7C ) )
811 PORT_DIPSETTING( 0x0f, DEF_STR( 2C_8C ) )
812 PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) )
813 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
814 PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )
815 PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) )
816 PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) )
817 PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_A ) )
818 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
819 PORT_DIPSETTING( 0x90, DEF_STR( 2C_2C ) )
820 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
821 PORT_DIPSETTING( 0xa0, DEF_STR( 2C_3C ) )
822 PORT_DIPSETTING( 0xb0, DEF_STR( 2C_4C ) )
823 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
824 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_5C ) )
825 PORT_DIPSETTING( 0xd0, DEF_STR( 2C_6C ) )
826 PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) )
827 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_7C ) )
828 PORT_DIPSETTING( 0xf0, DEF_STR( 2C_8C ) )
829 PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
830 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) )
831 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )
832 PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) )
833 PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) )
834
835 PORT_START("IN3")
836 PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
837 PORT_DIPSETTING( 0x00, "2" )
838 PORT_DIPSETTING( 0x01, "3" )
839 PORT_DIPSETTING( 0x02, "4" )
840 PORT_DIPSETTING( 0x03, "5" )
841 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) )
842 PORT_DIPSETTING( 0x04, DEF_STR( English ) )
843 PORT_DIPSETTING( 0x00, DEF_STR( Italian ) )
844 PORT_DIPNAME( 0x18, 0x00, DEF_STR( Bonus_Life ) )
845 PORT_DIPSETTING( 0x00, "75000" )
846 PORT_DIPSETTING( 0x08, "150000" )
847 PORT_DIPSETTING( 0x10, "200000" )
848 PORT_DIPSETTING( 0x18, DEF_STR( None ) )
849 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
850 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
851 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
852 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
853 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
854 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
855 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
856 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
857 PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
858 INPUT_PORTS_END
859
860 static INPUT_PORTS_START( hunchbks )
861 PORT_START("IN0")
862 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
863 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
864 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
865 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
866 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
867 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
868 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
869 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
870
871 PORT_START("IN1")
872 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
873 PORT_DIPSETTING( 0x01, "3" )
874 PORT_DIPSETTING( 0x00, "5" )
875 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) )
876 PORT_DIPSETTING( 0x02, "A 2/1 B 1/3" )
877 PORT_DIPSETTING( 0x00, "A 1/1 B 1/5" )
878 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
879 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
880 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
881 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
882 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
883 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
884
885 PORT_START("IN2")
886 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
887 PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) )
888 PORT_DIPSETTING( 0x00, "10000" )
889 PORT_DIPSETTING( 0x02, "20000" )
890 PORT_DIPSETTING( 0x04, "40000" )
891 PORT_DIPSETTING( 0x06, "80000" )
892 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
893 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
894 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
895 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
896 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection check? */
897 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
898 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection check? */
899 INPUT_PORTS_END
900
901 static INPUT_PORTS_START( hncholms )
902 PORT_START("IN0")
903 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
904 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
905 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
906 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
907 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
908 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
909 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
910 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
911
912 PORT_START("IN1")
913 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
914 PORT_DIPSETTING( 0x01, "3" )
915 PORT_DIPSETTING( 0x00, "5" )
916 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Coinage ) )
917 PORT_DIPSETTING( 0x00, "A 2/1 B 1/3" )
918 PORT_DIPSETTING( 0x02, "A 1/1 B 1/5" )
919 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
920 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
921 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
922 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
923 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
924 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
925
926 PORT_START("IN2")
927 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
928 PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) )
929 PORT_DIPSETTING( 0x00, "10000" )
930 PORT_DIPSETTING( 0x02, "20000" )
931 PORT_DIPSETTING( 0x04, "40000" )
932 PORT_DIPSETTING( 0x06, "80000" )
933 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
934 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
935 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
936 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
937 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection check? */
938 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
939 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection check? */
940 INPUT_PORTS_END
941
942 static INPUT_PORTS_START( cavelon )
943 PORT_START("IN0")
944 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
945 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
946 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* force UR controls in CK mode? */
947 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
948 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
949 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
950 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
951 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
952
953 PORT_START("IN1")
954 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
955 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
956 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
957 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) )
958 PORT_DIPSETTING( 0x00, "A 1/1 B 1/6" )
959 PORT_DIPSETTING( 0x02, "A 2/1 B 1/3" )
960 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
961 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
962 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
963 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
964 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
965 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
966
967 PORT_START("IN2")
968 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
969 PORT_DIPNAME( 0x06, 0x02, DEF_STR( Lives ) )
970 PORT_DIPSETTING( 0x00, "5" )
971 PORT_DIPSETTING( 0x04, "4" )
972 PORT_DIPSETTING( 0x02, "3" )
973 PORT_DIPSETTING( 0x06, "2" )
974 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown) )
975 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
976 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
977 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
978 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection check? */
979 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
980 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* protection check? */
981 INPUT_PORTS_END
982
983 /* Same as 'mimonkey' (scobra.cpp driver) */
984 static INPUT_PORTS_START( mimonscr )
985 PORT_START("IN0")
986 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
987 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
988 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
989 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
990 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
991 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
992 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
993 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
994
995 PORT_START("IN1")
996 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
997 PORT_DIPSETTING( 0x00, "3" )
998 PORT_DIPSETTING( 0x01, "4" )
999 PORT_DIPSETTING( 0x02, "5" )
1000 PORT_DIPSETTING( 0x03, "6" )
1001 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1002 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1003 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1004 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1005 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1006 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1007
1008 PORT_START("IN2")
1009 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1010 PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
1011 PORT_DIPSETTING( 0x06, DEF_STR( 3C_1C ) )
1012 PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
1013 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1014 PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
1015 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
1016 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
1017 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
1018 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
1019 PORT_DIPNAME( 0x20, 0x00, "Infinite Lives (Cheat)")
1020 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1021 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1022 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
1023 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) /* used, something to do with the bullets */
1024 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1025 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1026 INPUT_PORTS_END
1027
1028 static INPUT_PORTS_START( ad2083 )
1029 /* There are no Player 2 controls for this game:
1030 * Dipswitch is read upon startup. If Cabinet = Cocktail, a 1 is stored @400F.
1031 * 400F in turn is only read just before Player 2 turn. If 400F=1 then flip line
1032 * is set. That is all. If there is a dedicated player 2 input,
1033 * it must be multiplexed by flip line. */
1034 PORT_START("IN0")
1035 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
1036 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
1037 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
1038 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
1039 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
1040 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
1041 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1042 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1043
1044 PORT_START("IN1")
1045 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1046 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1047 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
1048 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1049 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE1 )
1050 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // if ON it doesn't accept any COIN
1051 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
1052 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
1053
1054 PORT_START("IN2")
1055 PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) )
1056 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
1057 PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) )
1058 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1059 PORT_DIPSETTING( 0x0a, DEF_STR( 2C_3C ) )
1060 PORT_DIPSETTING( 0x0b, DEF_STR( 2C_4C ) )
1061 PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
1062 PORT_DIPSETTING( 0x0c, DEF_STR( 2C_5C ) )
1063 PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C ) )
1064 PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
1065 PORT_DIPSETTING( 0x0e, DEF_STR( 2C_7C ) )
1066 PORT_DIPSETTING( 0x0f, DEF_STR( 2C_8C ) )
1067 PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) )
1068 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1069 PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )
1070 PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) )
1071 PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) )
1072 PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) )
1073 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
1074 PORT_DIPSETTING( 0x90, DEF_STR( 2C_2C ) )
1075 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
1076 PORT_DIPSETTING( 0xa0, DEF_STR( 2C_3C ) )
1077 PORT_DIPSETTING( 0xb0, DEF_STR( 2C_4C ) )
1078 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
1079 PORT_DIPSETTING( 0xc0, DEF_STR( 2C_5C ) )
1080 PORT_DIPSETTING( 0xd0, DEF_STR( 2C_6C ) )
1081 PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) )
1082 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_7C ) )
1083 PORT_DIPSETTING( 0xf0, DEF_STR( 2C_8C ) )
1084 PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
1085 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) )
1086 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )
1087 PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) )
1088 PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) )
1089
1090 PORT_START("IN3")
1091 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
1092 PORT_DIPSETTING( 0x03, "2" )
1093 PORT_DIPSETTING( 0x02, "3" )
1094 PORT_DIPSETTING( 0x01, "4" )
1095 PORT_DIPSETTING( 0x00, "5" )
1096 PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
1097 PORT_DIPSETTING( 0x0c, DEF_STR( None ) )
1098 PORT_DIPSETTING( 0x04, "150000" )
1099 PORT_DIPSETTING( 0x08, "100000" )
1100 PORT_DIPSETTING( 0x00, "200000" )
1101 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
1102 PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
1103 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
1104 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) )
1105 PORT_DIPSETTING( 0x20, DEF_STR( No ) )
1106 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
1107 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
1108 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1109 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1110 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
1111 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1112 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1113 INPUT_PORTS_END
1114
1115
1116 static INPUT_PORTS_START( harem ) /* Switch 8 doesn't appear to mapped (just like Scorpion) */
1117 PORT_START("IN0") // $6100 - PPI0 Port A
1118 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Same hardware as Scorpion: P2 Up in Cocktail - Not Used */
1119 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
1120 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1121 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1122 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
1123 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
1124 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1125 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1126
1127 PORT_START("IN1") // $6101 - PPI0 Port B
1128 PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
1129 PORT_DIPSETTING( 0x03, "2" )
1130 PORT_DIPSETTING( 0x02, "3" )
1131 PORT_DIPSETTING( 0x01, "4" )
1132 PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) )
1133 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Same hardware as Scorpion: P2 Button2 in Cocktail - Not Used */
1134 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Same hardware as Scorpion: P2 Button1 in Cocktail - Not Used */
1135 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Same hardware as Scorpion: P2 Right in Cocktail - Not Used */
1136 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Same hardware as Scorpion: P2 Left in Cocktail - Not Used */
1137 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1138 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1139
1140 PORT_START("IN2") // $6102 - PPI0 Port C
1141 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Same hardware as Scorpion: P2 Down in Cocktail */
1142 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5")
1143 PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
1144 PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
1145 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:3,4")
1146 PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) )
1147 PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) )
1148 PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
1149 PORT_DIPSETTING( 0x00, DEF_STR( 1C_3C ) )
1150 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
1151 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
1152 PORT_DIPNAME( 0xa0, 0xa0, "Initial Bonus Points" ) PORT_DIPLOCATION("SW1:6,7")
1153 PORT_DIPSETTING( 0xa0, "500" )
1154 PORT_DIPSETTING( 0x80, "850" )
1155 PORT_DIPSETTING( 0x20, "1150" )
1156 PORT_DIPSETTING( 0x00, "1350" )
1157 INPUT_PORTS_END
1158
1159
1160
1161 /**************************************************************************/
1162
1163 static const gfx_layout scramble_charlayout =
1164 {
1165 8,8,
1166 RGN_FRAC(1,2),
1167 2,
1168 { RGN_FRAC(0,2), RGN_FRAC(1,2) },
1169 { 0, 1, 2, 3, 4, 5, 6, 7 },
1170 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1171 8*8
1172 };
1173 static const gfx_layout scramble_spritelayout =
1174 {
1175 16,16,
1176 RGN_FRAC(1,2),
1177 2,
1178 { RGN_FRAC(0,2), RGN_FRAC(1,2) },
1179 { 0, 1, 2, 3, 4, 5, 6, 7,
1180 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
1181 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1182 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
1183 32*8
1184 };
1185
1186 static const gfx_layout devilfsh_charlayout =
1187 {
1188 8,8, /* 8*8 characters */
1189 256, /* 256 characters */
1190 2, /* 2 bits per pixel */
1191 { 0, 2*256*8*8 }, /* the bitplanes are separated */
1192 { 0, 1, 2, 3, 4, 5, 6, 7 },
1193 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1194 8*8 /* every char takes 8 consecutive bytes */
1195 };
1196 static const gfx_layout devilfsh_spritelayout =
1197 {
1198 16,16, /* 16*16 sprites */
1199 64, /* 64 sprites */
1200 2, /* 2 bits per pixel */
1201 { 0, 2*64*16*16 }, /* the bitplanes are separated */
1202 { 0, 1, 2, 3, 4, 5, 6, 7,
1203 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
1204 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1205 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
1206 32*8 /* every sprite takes 32 consecutive bytes */
1207 };
1208 static const gfx_layout newsin7_charlayout =
1209 {
1210 8,8, /* 8*8 characters */
1211 256, /* 256 characters */
1212 3, /* 3 bits per pixel */
1213 { 2*2*256*8*8, 0, 2*256*8*8 }, /* the bitplanes are separated */
1214 { 0, 1, 2, 3, 4, 5, 6, 7 },
1215 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1216 8*8 /* every char takes 8 consecutive bytes */
1217 };
1218 static const gfx_layout newsin7_spritelayout =
1219 {
1220 16,16, /* 16*16 sprites */
1221 64, /* 64 sprites */
1222 3, /* 3 bits per pixel */
1223 { 2*2*64*16*16, 0, 2*64*16*16 }, /* the bitplanes are separated */
1224 { 0, 1, 2, 3, 4, 5, 6, 7,
1225 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
1226 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1227 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
1228 32*8 /* every sprite takes 32 consecutive bytes */
1229 };
1230
1231 static const gfx_layout mrkougar_charlayout =
1232 {
1233 8,8,
1234 256,
1235 2,
1236 { 0, 4 },
1237 { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 },
1238 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1239 16*8
1240 };
1241 static const gfx_layout mrkougar_spritelayout =
1242 {
1243 16,16,
1244 64,
1245 2,
1246 { 0, 4 },
1247 { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3,
1248 24*8+0, 24*8+1, 24*8+2, 24*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3 },
1249 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1250 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
1251 64*8
1252 };
1253
1254 static const gfx_layout ad2083_charlayout =
1255 {
1256 8,8, /* 8*8 characters */
1257 RGN_FRAC(1,2),
1258 2, /* 2 bits per pixel */
1259 { RGN_FRAC(0,2), RGN_FRAC(1,2) }, /* the two bitplanes are separated */
1260 { 0, 1, 2, 3, 4, 5, 6, 7 },
1261 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1262 8*8 /* every char takes 8 consecutive bytes */
1263 };
1264 static const gfx_layout ad2083_spritelayout =
1265 {
1266 16,16, /* 16*16 sprites */
1267 RGN_FRAC(1,2),
1268 2, /* 2 bits per pixel */
1269 { RGN_FRAC(0,2), RGN_FRAC(1,2) }, /* the two bitplanes are separated */
1270 { 0, 1, 2, 3, 4, 5, 6, 7,
1271 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
1272 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
1273 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
1274 32*8 /* every sprite takes 32 consecutive bytes */
1275 };
1276
1277 static GFXDECODE_START( gfx_scramble )
1278 GFXDECODE_ENTRY( "gfx1", 0x0000, scramble_charlayout, 0, 8 )
1279 GFXDECODE_ENTRY( "gfx1", 0x0000, scramble_spritelayout, 0, 8 )
1280 GFXDECODE_END
1281
GFXDECODE_START(gfx_devilfsh)1282 static GFXDECODE_START( gfx_devilfsh )
1283 GFXDECODE_ENTRY( "gfx1", 0x0000, devilfsh_charlayout, 0, 8 )
1284 GFXDECODE_ENTRY( "gfx1", 0x0800, devilfsh_spritelayout, 0, 8 )
1285 GFXDECODE_END
1286
1287 static GFXDECODE_START( gfx_newsin7 )
1288 GFXDECODE_ENTRY( "gfx1", 0x0000, newsin7_charlayout, 0, 4 )
1289 GFXDECODE_ENTRY( "gfx1", 0x0800, newsin7_spritelayout, 0, 4 )
1290 GFXDECODE_END
1291
1292 static GFXDECODE_START( gfx_mrkougar )
1293 GFXDECODE_ENTRY( "gfx1", 0x0000, mrkougar_charlayout, 0, 8 )
1294 GFXDECODE_ENTRY( "gfx1", 0x0000, mrkougar_spritelayout, 0, 8 )
1295 GFXDECODE_END
1296
1297 static GFXDECODE_START( gfx_ad2083 )
1298 GFXDECODE_ENTRY( "gfx1", 0x0000, ad2083_charlayout, 0, 8 )
1299 GFXDECODE_ENTRY( "gfx1", 0x0000, ad2083_spritelayout, 0, 8 )
1300 GFXDECODE_END
1301
1302
1303 /**************************************************************************/
1304
1305 void scramble_state::scramble(machine_config &config)
1306 {
1307 /* basic machine hardware */
1308 Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
1309 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::scramble_map);
1310
1311 Z80(config, m_audiocpu, 14318000/8); /* 1.78975 MHz */
1312 m_audiocpu->set_addrmap(AS_PROGRAM, &scramble_state::scramble_sound_map);
1313 m_audiocpu->set_addrmap(AS_IO, &scramble_state::scramble_sound_io_map);
1314 m_audiocpu->set_irq_acknowledge_callback(FUNC(scramble_state::scramble_sh_irq_callback));
1315
1316 ttl7474_device &ttl7474_9m_1(TTL7474(config, "7474_9m_1", 0));
1317 ttl7474_9m_1.output_cb().set(FUNC(scramble_state::galaxold_7474_9m_1_callback));
1318
1319 ttl7474_device &ttl7474_9m_2(TTL7474(config, "7474_9m_2", 0));
1320 ttl7474_9m_2.comp_output_cb().set(FUNC(scramble_state::galaxold_7474_9m_2_q_callback));
1321
1322 ttl7474_device &konami_7474(TTL7474(config, "konami_7474", 0));
1323 konami_7474.comp_output_cb().set(FUNC(scramble_state::scramble_sh_7474_q_callback));
1324
1325 TIMER(config, "int_timer").configure_generic(FUNC(scramble_state::galaxold_interrupt_timer));
1326
1327 WATCHDOG_TIMER(config, "watchdog");
1328
1329 MCFG_MACHINE_RESET_OVERRIDE(scramble_state,scramble)
1330
1331 I8255A(config, m_ppi8255_0);
1332 m_ppi8255_0->in_pa_callback().set_ioport("IN0");
1333 m_ppi8255_0->in_pb_callback().set_ioport("IN1");
1334 m_ppi8255_0->in_pc_callback().set_ioport("IN2");
1335
1336 I8255A(config, m_ppi8255_1);
1337 m_ppi8255_1->out_pa_callback().set(m_soundlatch, FUNC(generic_latch_8_device::write));
1338 m_ppi8255_1->out_pb_callback().set(FUNC(scramble_state::scramble_sh_irqtrigger_w));
1339
1340 /* video hardware */
1341 SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
1342 m_screen->set_refresh_hz(16000.0/132/2);
1343 m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
1344 m_screen->set_size(32*8, 32*8);
1345 m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
1346 m_screen->set_screen_update(FUNC(scramble_state::screen_update_galaxold));
1347 m_screen->set_palette(m_palette);
1348
1349 GFXDECODE(config, "gfxdecode", m_palette, gfx_scramble);
1350 PALETTE(config, m_palette, FUNC(scramble_state::scrambold_palette), 32+64+2+1); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1351
1352 MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold)
1353
1354 /* sound hardware */
1355 SPEAKER(config, "mono").front_center();
1356
1357 GENERIC_LATCH_8(config, m_soundlatch);
1358
1359 AY8910(config, "8910.1", 14318000/8).add_route(ALL_OUTPUTS, "mono", 0.16);
1360
1361 ay8910_device &ay2(AY8910(config, "8910.2", 14318000/8));
1362 ay2.port_a_read_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read));
1363 ay2.port_b_read_callback().set(FUNC(scramble_state::scramble_portB_r));
1364 ay2.add_route(ALL_OUTPUTS, "mono", 0.16);
1365 }
1366
mars(machine_config & config)1367 void scramble_state::mars(machine_config &config)
1368 {
1369 scramble(config);
1370
1371 /* basic machine hardware */
1372 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::mars_map);
1373
1374 m_ppi8255_1->out_pa_callback().set(m_soundlatch, FUNC(generic_latch_8_device::write));
1375 m_ppi8255_1->out_pb_callback().set(FUNC(scramble_state::scramble_sh_irqtrigger_w));
1376 m_ppi8255_1->in_pc_callback().set_ioport("IN3");
1377
1378 /* video hardware */
1379 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1380 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1381 }
1382
devilfsh(machine_config & config)1383 void scramble_state::devilfsh(machine_config &config)
1384 {
1385 scramble(config);
1386
1387 /* basic machine hardware */
1388 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::mars_map);
1389
1390 /* video hardware */
1391 subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_devilfsh);
1392 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1393 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1394 }
1395
newsin7(machine_config & config)1396 void scramble_state::newsin7(machine_config &config)
1397 {
1398 scramble(config);
1399
1400 /* basic machine hardware */
1401 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::newsin7_map);
1402 m_maincpu->set_vblank_int("screen", FUNC(scramble_state::irq0_line_hold)); // newsin7a has a corrupt opcode at 0x67, the irq routine instead of NMI avoids it by jumping to 0x68 after doing some other things, probably intentional. newsin7 has this fixed, maybe a bootleg?
1403
1404 /* video hardware */
1405 subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_newsin7);
1406 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1407 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1408 MCFG_VIDEO_START_OVERRIDE(scramble_state,newsin7)
1409 }
1410
mrkougb(machine_config & config)1411 void scramble_state::mrkougb(machine_config &config)
1412 {
1413 scramble(config);
1414
1415 /* basic machine hardware */
1416 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::mrkougar_map);
1417
1418 m_ppi8255_1->out_pa_callback().set(m_soundlatch, FUNC(generic_latch_8_device::write));
1419 m_ppi8255_1->out_pb_callback().set(FUNC(scramble_state::mrkougar_sh_irqtrigger_w));
1420 m_ppi8255_1->in_pc_callback().set_constant(0);
1421
1422 /* video hardware */
1423 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1424 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1425 }
1426
mrkougar(machine_config & config)1427 void scramble_state::mrkougar(machine_config &config)
1428 {
1429 mrkougb(config);
1430
1431 /* video hardware */
1432 subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_mrkougar);
1433 }
1434
ckongs(machine_config & config)1435 void scramble_state::ckongs(machine_config &config)
1436 {
1437 scramble(config);
1438
1439 /* basic machine hardware */
1440 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::ckongs_map);
1441
1442 /* video hardware */
1443 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1444 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1445 MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs)
1446 }
1447
hotshock(machine_config & config)1448 void scramble_state::hotshock(machine_config &config)
1449 {
1450 scramble(config);
1451
1452 /* basic machine hardware */
1453 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::hotshock_map);
1454
1455 config.device_remove( "ppi8255_0" );
1456 config.device_remove( "ppi8255_1" );
1457
1458 m_audiocpu->set_addrmap(AS_IO, &scramble_state::hotshock_sound_io_map);
1459
1460 MCFG_MACHINE_RESET_OVERRIDE(scramble_state,galaxold)
1461
1462 /* video hardware */
1463 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1464 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1465 MCFG_VIDEO_START_OVERRIDE(scramble_state,pisces)
1466
1467 subdevice<ay8910_device>("8910.1")->reset_routes().add_route(ALL_OUTPUTS, "mono", 0.33);
1468
1469 subdevice<ay8910_device>("8910.2")->port_a_read_callback().set(FUNC(scramble_state::hotshock_soundlatch_r));
1470 subdevice<ay8910_device>("8910.2")->reset_routes().add_route(ALL_OUTPUTS, "mono", 0.33);
1471 }
1472
cavelon(machine_config & config)1473 void scramble_state::cavelon(machine_config &config)
1474 {
1475 scramble(config);
1476
1477 /* basic machine hardware */
1478
1479 /* video hardware */
1480 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets, 0/1 for background
1481 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1482 MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs)
1483 }
1484
mimonscr(machine_config & config)1485 void scramble_state::mimonscr(machine_config &config)
1486 {
1487 scramble(config);
1488
1489 /* basic machine hardware */
1490 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::mimonscr_map);
1491
1492 /* video hardware */
1493 MCFG_VIDEO_START_OVERRIDE(scramble_state,mimonkey)
1494 }
1495
1496 /* Triple Punch and Mariner are different - only one CPU, one 8910 */
triplep(machine_config & config)1497 void scramble_state::triplep(machine_config &config)
1498 {
1499 scramble(config);
1500
1501 /* basic machine hardware */
1502 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::triplep_map);
1503 m_maincpu->set_addrmap(AS_IO, &scramble_state::triplep_io_map);
1504
1505 config.device_remove("audiocpu");
1506 config.device_remove("ppi8255_1");
1507 config.device_remove("konami_7474");
1508
1509 /* video hardware */
1510 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets
1511 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1512
1513 /* sound hardware */
1514 subdevice<ay8910_device>("8910.1")->set_clock(18432000/12); // triple punch/knock out ay clock is 1.535MHz, derived from main cpu xtal; verified on hardware
1515 subdevice<ay8910_device>("8910.1")->reset_routes().add_route(ALL_OUTPUTS, "mono", 1.0);
1516
1517 config.device_remove("8910.2");
1518 }
1519
mariner(machine_config & config)1520 void scramble_state::mariner(machine_config &config)
1521 {
1522 triplep(config);
1523
1524 /* video hardware */
1525 m_palette->set_entries(32+64+2+16); // 32 for characters, 64 for stars, 2 for bullets, 16 for background
1526 m_palette->set_init(FUNC(scramble_state::mariner_palette));
1527
1528 MCFG_VIDEO_START_OVERRIDE(scramble_state,mariner)
1529 }
1530
1531 /* Hunchback replaces the Z80 with a S2650 CPU */
hunchbks(machine_config & config)1532 void scramble_state::hunchbks(machine_config &config)
1533 {
1534 scramble(config);
1535
1536 /* basic machine hardware */
1537 s2650_device &maincpu(S2650(config.replace(), m_maincpu, 18432000/6));
1538 maincpu.set_addrmap(AS_PROGRAM, &scramble_state::hunchbks_map);
1539 maincpu.set_addrmap(AS_IO, &scramble_state::hunchbks_readport);
1540 maincpu.sense_handler().set("screen", FUNC(screen_device::vblank));
1541 maincpu.intack_handler().set_constant(0x03);
1542 maincpu.set_vblank_int("screen", FUNC(scramble_state::hunchbks_vh_interrupt));
1543
1544 m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
1545
1546 /* video hardware */
1547 m_palette->set_entries(32+64+2+0); // 32 for characters, 64 for stars, 2 for bullets
1548 m_palette->set_init(FUNC(scramble_state::galaxold_palette));
1549 }
1550
hncholms(machine_config & config)1551 void scramble_state::hncholms(machine_config &config)
1552 {
1553 hunchbks(config);
1554
1555 /* basic machine hardware */
1556 m_maincpu->set_clock(18432000/6/2/2);
1557
1558 MCFG_VIDEO_START_OVERRIDE(scramble_state,scorpion)
1559 }
1560
ad2083(machine_config & config)1561 void scramble_state::ad2083(machine_config &config)
1562 {
1563 /* basic machine hardware */
1564 Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
1565 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::ad2083_map);
1566
1567 ttl7474_device &ttl7474_9m_1(TTL7474(config, "7474_9m_1", 0));
1568 ttl7474_9m_1.output_cb().set(FUNC(scramble_state::galaxold_7474_9m_1_callback));
1569
1570 ttl7474_device &ttl7474_9m_2(TTL7474(config, "7474_9m_2", 0));
1571 ttl7474_9m_2.comp_output_cb().set(FUNC(scramble_state::galaxold_7474_9m_2_q_callback));
1572
1573 ttl7474_device &konami_7474(TTL7474(config, "konami_7474", 0));
1574 konami_7474.comp_output_cb().set(FUNC(scramble_state::scramble_sh_7474_q_callback));
1575
1576 TIMER(config, "int_timer").configure_generic(FUNC(scramble_state::galaxold_interrupt_timer));
1577
1578 WATCHDOG_TIMER(config, "watchdog");
1579
1580 MCFG_MACHINE_RESET_OVERRIDE(scramble_state,galaxold)
1581
1582 /* video hardware */
1583 SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
1584 m_screen->set_refresh_hz(16000.0/132/2);
1585 m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
1586 m_screen->set_size(32*8, 32*8);
1587 m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
1588 m_screen->set_screen_update(FUNC(scramble_state::screen_update_galaxold));
1589 m_screen->set_palette(m_palette);
1590
1591 GFXDECODE(config, "gfxdecode", m_palette, gfx_ad2083);
1592 PALETTE(config, m_palette, FUNC(scramble_state::turtles_palette), 32+64+2+8); // 32 for characters, 64 for stars, 2 for bullets, 8 for background
1593
1594 MCFG_VIDEO_START_OVERRIDE(scramble_state,ad2083)
1595
1596 /* sound hardware */
1597
1598 ad2083_audio(config);
1599
1600 }
1601
1602
harem(machine_config & config)1603 void scramble_state::harem(machine_config &config)
1604 {
1605 scramble(config);
1606
1607 /* basic machine hardware */
1608 m_maincpu->set_addrmap(AS_PROGRAM, &scramble_state::harem_map);
1609 m_maincpu->set_addrmap(AS_OPCODES, &scramble_state::decrypted_opcodes_map);
1610
1611 m_audiocpu->set_addrmap(AS_PROGRAM, &scramble_state::harem_sound_map);
1612 m_audiocpu->set_addrmap(AS_IO, &scramble_state::harem_sound_io_map);
1613
1614 MCFG_VIDEO_START_OVERRIDE(scramble_state,harem)
1615
1616 /* extra AY8910 with I/O ports */
1617 ay8910_device &ay3(AY8910(config, "8910.3", 14318000/8));
1618 ay3.add_route(ALL_OUTPUTS, "mono", 0.16);
1619 ay3.port_a_write_callback().set(m_digitalker, FUNC(digitalker_device::digitalker_data_w));
1620 ay3.port_b_write_callback().set(FUNC(scramble_state::harem_digitalker_control_w));
1621
1622 DIGITALKER(config, m_digitalker, 4000000).add_route(ALL_OUTPUTS, "mono", 0.16);
1623 }
1624
1625 /***************************************************************************
1626
1627 Game driver(s)
1628
1629 ***************************************************************************/
1630
1631 ROM_START( triplep )
1632 ROM_REGION( 0x10000, "maincpu", 0 )
1633 ROM_LOAD( "triplep.2g", 0x0000, 0x1000, CRC(c583a93d) SHA1(2bd4a02f945d64ef3ff814d0b8cbf32380d3f790) )
1634 ROM_LOAD( "triplep.2h", 0x1000, 0x1000, CRC(c03ddc49) SHA1(5a2fba848c4ddf2ef0bb0f00e93dbd88e939441a) )
1635 ROM_LOAD( "triplep.2k", 0x2000, 0x1000, CRC(e83ca6b5) SHA1(b16690cfe6fb45cf7b9a9cfa22822ba947c0e432) )
1636 ROM_LOAD( "triplep.2l", 0x3000, 0x1000, CRC(982cc3b9) SHA1(28bb08679126e5aa8bd0b8f387b881fe799fb009) )
1637
1638 ROM_REGION( 0x1000, "gfx1", 0 )
1639 ROM_LOAD( "triplep.5f", 0x0000, 0x0800, CRC(d51cbd6f) SHA1(c3766a69a4599e54b8d7fb893e45802ec8bf6713) )
1640 ROM_LOAD( "triplep.5h", 0x0800, 0x0800, CRC(f21c0059) SHA1(b1ba87f13908e3e662de8bf444f59bd5c2009720) )
1641
1642 ROM_REGION( 0x0020, "proms", 0 )
1643 ROM_LOAD( "tripprom.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
1644 ROM_END
1645
1646 ROM_START( knockout )
1647 ROM_REGION( 0x10000, "maincpu", 0 )
1648 ROM_LOAD( "knockout.2h", 0x0000, 0x1000, CRC(eaaa848e) SHA1(661026567db87206200ee610c3d5f5eb725aeec9) )
1649 ROM_LOAD( "knockout.2k", 0x1000, 0x1000, CRC(bc26d2c0) SHA1(b9934ddb2918f6c4123dafd07cc39ae31d7e28e9) )
1650 ROM_LOAD( "knockout.2l", 0x2000, 0x1000, CRC(02025c10) SHA1(16ffc7681d949172034b8c85dc72c1a528309abf) )
1651 ROM_LOAD( "knockout.2m", 0x3000, 0x1000, CRC(e9abc42b) SHA1(93b9c55a76e273b4709ee65870c0848a0d3db7cc) )
1652
1653 ROM_REGION( 0x1000, "gfx1", 0 )
1654 ROM_LOAD( "triplep.5f", 0x0000, 0x0800, CRC(d51cbd6f) SHA1(c3766a69a4599e54b8d7fb893e45802ec8bf6713) )
1655 ROM_LOAD( "triplep.5h", 0x0800, 0x0800, CRC(f21c0059) SHA1(b1ba87f13908e3e662de8bf444f59bd5c2009720) )
1656
1657 ROM_REGION( 0x0020, "proms", 0 )
1658 ROM_LOAD( "tripprom.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
1659 ROM_END
1660
1661 /***************************************************************************
1662 Triple Punch
1663 (C)1982 KKI
1664
1665 board silkscreend PCO-008-01
1666
1667 Empty 24 pin socket at 2E
1668 Empty 40 pin socket at 0A
1669
1670 .2h 2732 stickered TD4
1671 .2k 2732 stickered TC3
1672 .2l 2732 stickered TE2
1673 .2m 2732 stickered TD1
1674 .5h 2716 stickered TA7
1675 .5f 2716 stickered TA6
1676 .6e 82s123 stickered TA
1677 ***************************************************************************/
1678
1679 ROM_START( triplepa )
1680 ROM_REGION( 0x10000, "maincpu", 0 )
1681 ROM_LOAD( "td4.2h", 0x0000, 0x1000, CRC(15a6d46a) SHA1(a76d97876268d303bc18bf6f18f05227a6689b9d) )
1682 ROM_LOAD( "tc3.2k", 0x1000, 0x1000, CRC(bc26d2c0) SHA1(b9934ddb2918f6c4123dafd07cc39ae31d7e28e9) )
1683 ROM_LOAD( "te2.2l", 0x2000, 0x1000, CRC(02025c10) SHA1(16ffc7681d949172034b8c85dc72c1a528309abf) )
1684 ROM_LOAD( "td1.2m", 0x3000, 0x1000, CRC(e9abc42b) SHA1(93b9c55a76e273b4709ee65870c0848a0d3db7cc) )
1685
1686 ROM_REGION( 0x1000, "gfx1", 0 )
1687 ROM_LOAD( "ta6.5f", 0x0000, 0x0800, CRC(d51cbd6f) SHA1(c3766a69a4599e54b8d7fb893e45802ec8bf6713) )
1688 ROM_LOAD( "ta7.5h", 0x0800, 0x0800, CRC(f21c0059) SHA1(b1ba87f13908e3e662de8bf444f59bd5c2009720) )
1689
1690 ROM_REGION( 0x0020, "proms", 0 )
1691 ROM_LOAD( "ta.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
1692 ROM_END
1693
1694 ROM_START( knockoutb )
1695 ROM_REGION( 0x10000, "maincpu", 0 )
1696 ROM_LOAD( "k1-2h.bin", 0x0000, 0x1000, CRC(f16bdd40) SHA1(e14aad2f2820f643f32e1ee4dbb78cd469367498) )
1697 ROM_LOAD( "k2-2k.bin", 0x1000, 0x1000, CRC(fa6214ef) SHA1(5e569b2a4eaf5e4f033cf2375d607c54fb96b1f8) )
1698 ROM_LOAD( "k3-2l.bin", 0x2000, 0x1000, CRC(9f734d29) SHA1(430c53b9c3fa888fe45f9feeb4ad8f92011adc05) )
1699 ROM_LOAD( "k4-2m.bin", 0x3000, 0x1000, CRC(1809ec77) SHA1(97d575f47f861a572a483559790e271c21775ac5) )
1700 ROM_LOAD( "k5-2p.bin", 0x6000, 0x0800, CRC(60c1aa52) SHA1(f0598be70cfca8651edb7bb3c58f01368d6965ce) )
1701 ROM_CONTINUE( 0x5800, 0x0800 )
1702
1703 ROM_REGION( 0x1000, "gfx1", 0 )
1704 ROM_LOAD( "ta6.5f", 0x0000, 0x0800, CRC(d51cbd6f) SHA1(c3766a69a4599e54b8d7fb893e45802ec8bf6713) )
1705 ROM_LOAD( "ta7.5h", 0x0800, 0x0800, CRC(f21c0059) SHA1(b1ba87f13908e3e662de8bf444f59bd5c2009720) )
1706
1707 ROM_REGION( 0x0020, "proms", 0 )
1708 ROM_LOAD( "ta.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
1709 ROM_END
1710
1711 ROM_START( knockoutc )
1712 ROM_REGION( 0x10000, "maincpu", 0 )
1713 ROM_LOAD( "1.bin", 0x0000, 0x1000, CRC(7c386d1e) SHA1(e846a70bebd41b240758ffb2c7801fa7260b314e) )
1714 ROM_LOAD( "2.bin", 0x1000, 0x1000, CRC(85dc1d78) SHA1(61e82cfb5b0f0da6413713293c382ea57074e801) )
1715 ROM_LOAD( "3.bin", 0x2000, 0x1000, CRC(9f734d29) SHA1(430c53b9c3fa888fe45f9feeb4ad8f92011adc05) )
1716 ROM_LOAD( "4.bin", 0x3000, 0x1000, CRC(48e2d6cd) SHA1(7eea464b8cfef84dbad66e33dffaba9515605da6) )
1717 ROM_LOAD( "5.bin", 0x6000, 0x0800, CRC(26ac55ba) SHA1(876b8bf2ddb0ffb6256d1447408c8b7f7d048d9f) )
1718 ROM_CONTINUE( 0x5800, 0x0800 )
1719
1720 ROM_REGION( 0x1000, "gfx1", 0 )
1721 ROM_LOAD( "6.bin", 0x0000, 0x0800, CRC(d51cbd6f) SHA1(c3766a69a4599e54b8d7fb893e45802ec8bf6713) )
1722 ROM_LOAD( "7.bin", 0x0800, 0x0800, CRC(f21c0059) SHA1(b1ba87f13908e3e662de8bf444f59bd5c2009720) )
1723
1724 ROM_REGION( 0x0020, "proms", 0 )
1725 ROM_LOAD( "ta.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
1726 ROM_END
1727
1728 ROM_START( mariner )
1729 ROM_REGION( 0x10000, "maincpu", 0 )
1730 ROM_LOAD( "tp1.2h", 0x0000, 0x1000, CRC(dac1dfd0) SHA1(57b9106bb7452640544ba0ab2d2ba290cccb45f0) )
1731 ROM_LOAD( "tm2.2k", 0x1000, 0x1000, CRC(efe7ca28) SHA1(496f8eb2ebc9edeed5b19d87f437f23bbeb2a007) )
1732 ROM_LOAD( "tm3.2l", 0x2000, 0x1000, CRC(027881a6) SHA1(47953aa5140a157ade484341609d477510e8342b) )
1733 ROM_LOAD( "tm4.2m", 0x3000, 0x1000, CRC(a0fde7dc) SHA1(ea6700520b1bd31e6c6bfac6f067bbf652676eef) )
1734 ROM_LOAD( "tm5.2p", 0x6000, 0x0800, CRC(d7ebcb8e) SHA1(bddefdc5f04c2f940e08a6968fbd6f930d16b8e4) )
1735 ROM_CONTINUE( 0x5800, 0x0800 )
1736
1737 ROM_REGION( 0x2000, "gfx1", 0 )
1738 ROM_LOAD( "tm8.5f", 0x0000, 0x1000, CRC(70ae611f) SHA1(2686dc6d3910bd58b290d6296f30c552686709f5) )
1739 ROM_LOAD( "tm9.5h", 0x1000, 0x1000, CRC(8e4e999e) SHA1(195e6896ca2f3175137d8c92777ba32c41e835d3) )
1740
1741 ROM_REGION( 0x0020, "proms", 0 )
1742 ROM_LOAD( "t4.6e", 0x0000, 0x0020, CRC(ca42b6dd) SHA1(d1e224e788e3dcf57249e72f03f9fe3fd71e6c12) )
1743
1744 ROM_REGION( 0x0100, "user1", 0 )
1745 ROM_LOAD( "t6.6p", 0x0000, 0x0100, CRC(ad208ccc) SHA1(66a4122e46467344a7f3ddcc953a5f7f451411fa) ) /* background color prom */
1746
1747 ROM_REGION( 0x0020, "user2", 0 )
1748 ROM_LOAD( "t5.7p", 0x0000, 0x0020, CRC(1bd88cff) SHA1(8d1620386ef654d99c51e489c822eeb2e8a4fe76) ) /* char banking and star placement */
1749 ROM_END
1750
1751 ROM_START( 800fath )
1752 ROM_REGION( 0x10000, "maincpu", 0 )
1753 ROM_LOAD( "tu1.2h", 0x0000, 0x1000, CRC(5dd3d42f) SHA1(887403c385897044e1cb9709ab2b6ff5abdf9eb4) )
1754 ROM_LOAD( "tm2.2k", 0x1000, 0x1000, CRC(efe7ca28) SHA1(496f8eb2ebc9edeed5b19d87f437f23bbeb2a007) )
1755 ROM_LOAD( "tm3.2l", 0x2000, 0x1000, CRC(027881a6) SHA1(47953aa5140a157ade484341609d477510e8342b) )
1756 ROM_LOAD( "tm4.2m", 0x3000, 0x1000, CRC(a0fde7dc) SHA1(ea6700520b1bd31e6c6bfac6f067bbf652676eef) )
1757 ROM_LOAD( "tu5.2p", 0x6000, 0x0800, CRC(f864a8a6) SHA1(bd0c84284d13d099da4e139db7c9948a074d6774) )
1758 ROM_CONTINUE( 0x5800, 0x0800 )
1759
1760 ROM_REGION( 0x2000, "gfx1", 0 )
1761 ROM_LOAD( "tm8.5f", 0x0000, 0x1000, CRC(70ae611f) SHA1(2686dc6d3910bd58b290d6296f30c552686709f5) )
1762 ROM_LOAD( "tm9.5h", 0x1000, 0x1000, CRC(8e4e999e) SHA1(195e6896ca2f3175137d8c92777ba32c41e835d3) )
1763
1764 ROM_REGION( 0x0020, "proms", 0 )
1765 ROM_LOAD( "t4.6e", 0x0000, 0x0020, CRC(ca42b6dd) SHA1(d1e224e788e3dcf57249e72f03f9fe3fd71e6c12) )
1766
1767 ROM_REGION( 0x0100, "user1", 0 )
1768 ROM_LOAD( "t6.6p", 0x0000, 0x0100, CRC(ad208ccc) SHA1(66a4122e46467344a7f3ddcc953a5f7f451411fa) ) /* background color prom */
1769
1770 ROM_REGION( 0x0020, "user2", 0 )
1771 ROM_LOAD( "t5.7p", 0x0000, 0x0020, CRC(1bd88cff) SHA1(8d1620386ef654d99c51e489c822eeb2e8a4fe76) ) /* char banking and star placement */
1772 ROM_END
1773
1774 ROM_START( 800fatha )
1775 ROM_REGION( 0x10000, "maincpu", 0 )
1776 ROM_LOAD( "tq1.2h", 0x0000, 0x1000, CRC(d858c242) SHA1(3f236ae6ac60067eec4f5df0746435e6dfde0401) ) /* older based on letter revision, Q vs U */
1777 ROM_LOAD( "tm2.2k", 0x1000, 0x1000, CRC(efe7ca28) SHA1(496f8eb2ebc9edeed5b19d87f437f23bbeb2a007) )
1778 ROM_LOAD( "tm3.2l", 0x2000, 0x1000, CRC(027881a6) SHA1(47953aa5140a157ade484341609d477510e8342b) )
1779 ROM_LOAD( "tm4.2m", 0x3000, 0x1000, CRC(a0fde7dc) SHA1(ea6700520b1bd31e6c6bfac6f067bbf652676eef) )
1780 ROM_LOAD( "tm5.2p", 0x6000, 0x0800, CRC(d7ebcb8e) SHA1(bddefdc5f04c2f940e08a6968fbd6f930d16b8e4) )
1781 ROM_CONTINUE( 0x5800, 0x0800 )
1782
1783 ROM_REGION( 0x2000, "gfx1", 0 )
1784 ROM_LOAD( "tm8.5f", 0x0000, 0x1000, CRC(70ae611f) SHA1(2686dc6d3910bd58b290d6296f30c552686709f5) )
1785 ROM_LOAD( "tm9.5h", 0x1000, 0x1000, CRC(8e4e999e) SHA1(195e6896ca2f3175137d8c92777ba32c41e835d3) )
1786
1787 ROM_REGION( 0x0020, "proms", 0 )
1788 ROM_LOAD( "t4.6e", 0x0000, 0x0020, CRC(ca42b6dd) SHA1(d1e224e788e3dcf57249e72f03f9fe3fd71e6c12) )
1789
1790 ROM_REGION( 0x0100, "user1", 0 )
1791 ROM_LOAD( "t6.6p", 0x0000, 0x0100, CRC(ad208ccc) SHA1(66a4122e46467344a7f3ddcc953a5f7f451411fa) ) /* background color prom */
1792
1793 ROM_REGION( 0x0020, "user2", 0 )
1794 ROM_LOAD( "t5.7p", 0x0000, 0x0020, CRC(1bd88cff) SHA1(8d1620386ef654d99c51e489c822eeb2e8a4fe76) ) /* char banking and star placement */
1795 ROM_END
1796
1797 ROM_START( ckongs )
1798 ROM_REGION( 0x10000, "maincpu", 0 )
1799 ROM_LOAD( "vid_2c.bin", 0x0000, 0x1000, CRC(49a8c234) SHA1(91d8da03a76094b6fed4bf1d9a3943dee72bf039) )
1800 ROM_LOAD( "vid_2e.bin", 0x1000, 0x1000, CRC(f1b667f1) SHA1(c09e0f3b70afd5a4b6ec47ac9237f278dff75783) )
1801 ROM_LOAD( "vid_2f.bin", 0x2000, 0x1000, CRC(b194b75d) SHA1(514b195dd02a7324e439dd63ae654af117e0c70d) )
1802 ROM_LOAD( "vid_2h.bin", 0x3000, 0x1000, CRC(2052ba8a) SHA1(e4200219d1a142a4aba8ef21ae1dd806400f4422) )
1803 ROM_LOAD( "vid_2j.bin", 0x4000, 0x1000, CRC(b377afd0) SHA1(8e42e7623a1749cea1c9861cd7dfa9b97571dc8b) )
1804 ROM_LOAD( "vid_2l.bin", 0x5000, 0x1000, CRC(fe65e691) SHA1(736fe70c9adc6d2c142fa876f1a1e3c6879eccd8) )
1805
1806 ROM_REGION( 0x10000, "audiocpu", 0 )
1807 ROM_LOAD( "turt_snd.5c", 0x0000, 0x1000, CRC(f0c30f9a) SHA1(5621f336e9be8acf986a34bbb8855ed5d45c28ef) )
1808 ROM_LOAD( "snd_5d.bin", 0x1000, 0x1000, CRC(892c9547) SHA1(c3ec98049b560eb0ddefdb1e1b2d551b418b9a1c) )
1809
1810 ROM_REGION( 0x2000, "gfx1", 0 )
1811 ROM_LOAD( "vid_5f.bin", 0x0000, 0x1000, CRC(7866d2cb) SHA1(62dd8b80bc0459c7337d8a8cb83e53b999e7f4a9) )
1812 ROM_LOAD( "vid_5h.bin", 0x1000, 0x1000, CRC(7311a101) SHA1(49d54c8b94cae4ba81d7a7684eaa4e87815bb4da) )
1813
1814 ROM_REGION( 0x0020, "proms", 0 )
1815 ROM_LOAD( "vid_6e.bin", 0x0000, 0x0020, CRC(5039af97) SHA1(b1a5b32b8c944bf19d9d97aaf678726df003c194) )
1816 ROM_END
1817
1818 ROM_START( mars )
1819 ROM_REGION( 0x10000, "maincpu", 0 )
1820 ROM_LOAD( "u26.3", 0x0000, 0x0800, CRC(2f88892c) SHA1(580c7b502321868f63d9e67286e63b5c5268827c) )
1821 ROM_LOAD( "u56.4", 0x0800, 0x0800, CRC(9e6bcbf7) SHA1(c3acdba073a1f3703776a7905867d81acf328f37) )
1822 ROM_LOAD( "u69.5", 0x1000, 0x0800, CRC(df496e6e) SHA1(b597e996ac797a239e4bc8f242f59c98a850723c) )
1823 ROM_LOAD( "u98.6", 0x1800, 0x0800, CRC(75f274bb) SHA1(2eb83ccc8404c69ab262bf680dce892c23c94f39) )
1824 ROM_LOAD( "u114.7", 0x2000, 0x0800, CRC(497fd8d0) SHA1(545aaf1d68ff727df356bbcf8ddd23df75b5ce97) )
1825 ROM_LOAD( "u133.8", 0x2800, 0x0800, CRC(3d4cd59f) SHA1(da96d96a40a896e1272700c50cc34f91ac9f7a23) )
1826
1827 ROM_REGION( 0x10000, "audiocpu", 0 )
1828 ROM_LOAD( "u39.9", 0x0000, 0x0800, CRC(bb5968b9) SHA1(8bc57fd80da7aff294e12e991e9acf60c1ab2893) )
1829 ROM_LOAD( "u51.10", 0x0800, 0x0800, CRC(75fd7720) SHA1(3ee4ca0d85ffacf0388cada17581da0cdaaf83ef) )
1830 ROM_LOAD( "u78.11", 0x1000, 0x0800, CRC(72a492da) SHA1(a272f72378850f7ecf52498746c2015f6dad3ab9) )
1831
1832 ROM_REGION( 0x1000, "gfx1", 0 )
1833 ROM_LOAD( "u72.1", 0x0000, 0x0800, CRC(279789d0) SHA1(3ccf39da252df8b3605efc26299831279d697dd8) )
1834 ROM_LOAD( "u101.2", 0x0800, 0x0800, CRC(c5dc627f) SHA1(529307238707d0676d1cae508f4eb66bbdd623d7) )
1835
1836 ROM_REGION( 0x0020, "proms", 0 )
1837 ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
1838 ROM_END
1839
1840 ROM_START( devilfsh )
1841 ROM_REGION( 0x10000, "maincpu", 0 )
1842 ROM_LOAD( "u26.1", 0x0000, 0x0800, CRC(ec047d71) SHA1(c35555010fe239213e92946b65a54612d5a23399) )
1843 ROM_LOAD( "u56.2", 0x0800, 0x0800, CRC(0138ade9) SHA1(8c75572fa0a5d0665cc46b1c0080192bb0148df9) )
1844 ROM_LOAD( "u69.3", 0x1000, 0x0800, CRC(5dd0b3fc) SHA1(cf19193986920853d93e4ff38b70dcd46b42276b) )
1845 ROM_LOAD( "u98.4", 0x1800, 0x0800, CRC(ded0b745) SHA1(2a3c741f11d211b4ec8dfa2dd2b3ae0c0a2d9590) )
1846 ROM_LOAD( "u114.5", 0x2000, 0x0800, CRC(5fd40176) SHA1(536dd870057c48591f0bee468325c8780afb7026) )
1847 ROM_LOAD( "u133.6", 0x2800, 0x0800, CRC(03538336) SHA1(66cffcbc53e42c626880151a62721ef3e6bf90bc) )
1848 ROM_LOAD( "u143.7", 0x3000, 0x0800, CRC(64676081) SHA1(6ae628ad582680d6a825238b60d1195990dbb56f) )
1849 ROM_LOAD( "u163.8", 0x3800, 0x0800, CRC(bc3d6770) SHA1(ac8803520a668b1759acba23f06ba7a6c5792cbd) )
1850
1851 ROM_REGION( 0x10000, "audiocpu", 0 )
1852 ROM_LOAD( "u39.9", 0x0000, 0x0800, CRC(09987e2e) SHA1(6b0d8413a137726a67ceedeacfc0c48b058698f1) )
1853 ROM_LOAD( "u51.10", 0x0800, 0x0800, CRC(1e2b1471) SHA1(3ba33b26a5bff21b9ddc34e0a468db7b89361314) )
1854 ROM_LOAD( "u78.11", 0x1000, 0x0800, CRC(45279aaa) SHA1(20aca9bcfa1010311290cb3d8e4fb548182dcd4b) )
1855
1856 ROM_REGION( 0x2000, "gfx1", 0 )
1857 ROM_LOAD( "u72.12", 0x0000, 0x1000, CRC(5406508e) SHA1(1d01a796c3ac22e3fddd1ec2103ef5bd8c409278) )
1858 ROM_LOAD( "u101.13", 0x1000, 0x1000, CRC(8c4018b6) SHA1(83c4f73a3e40fa6ecece38404fa5f64ab59d7b4e) )
1859
1860 ROM_REGION( 0x0020, "proms", 0 )
1861 ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
1862 ROM_END
1863
1864 ROM_START( newsin7 )
1865 ROM_REGION( 0x10000, "maincpu", 0 )
1866 ROM_LOAD( "newsin.1", 0x0000, 0x1000, CRC(e6c23fe0) SHA1(b15c56ca7868be0f038c246f29ba54f41b5cb755) )
1867 ROM_LOAD( "newsin.2", 0x1000, 0x1000, CRC(3d477b5f) SHA1(9e22f7262077ce6b00b2efbba0e13dcec143d122) )
1868 ROM_LOAD( "newsin.3", 0x2000, 0x1000, CRC(7dfa9af0) SHA1(8cbbfff22a3c6429f7ab22d86c8d760b08871bac) )
1869 ROM_LOAD( "newsin.4", 0x3000, 0x1000, CRC(d1b0ba19) SHA1(66c128bc9b306aa6470de5d413f782ae17e78b14) )
1870 ROM_LOAD( "newsin.5", 0xa000, 0x1000, CRC(06275d59) SHA1(a5a5436c0b014af06181eeb044d8c4e3188414ea) )
1871
1872 ROM_REGION( 0x10000, "audiocpu", 0 )
1873 ROM_LOAD( "newsin.13", 0x0000, 0x0800, CRC(d88489a2) SHA1(ab10fd4862129824301a0a847de298f1826aa03e) )
1874 ROM_LOAD( "newsin.12", 0x0800, 0x0800, CRC(b154a7af) SHA1(91ca28b2530f22786ff581e5710b40f0cf99f516) )
1875 ROM_LOAD( "newsin.11", 0x1000, 0x0800, CRC(7ade709b) SHA1(bda1401172139cd6e3e03424c56e4f59e5afebd5) )
1876
1877 ROM_REGION( 0x3000, "gfx1", 0 )
1878 ROM_LOAD( "newsin.7", 0x2000, 0x1000, CRC(6bc5d64f) SHA1(4f52224a4d5294a7487a1fc55eba13cf0b5fb6af) )
1879 ROM_LOAD( "newsin.8", 0x1000, 0x1000, CRC(0c5b895a) SHA1(994ad7f051b30a3045ffc08ac8d9d7092fbadef3) )
1880 ROM_LOAD( "newsin.9", 0x0000, 0x1000, CRC(6b87adff) SHA1(c0943832e498ab04978b11b163ba951d4a7e2e60) )
1881
1882 ROM_REGION( 0x0020, "proms", 0 )
1883 ROM_LOAD( "newsin.6", 0x0000, 0x0020, CRC(5cf2cd8d) SHA1(0c85737add75545ab11aaf64fe37c7bd078308c9) )
1884 ROM_END
1885
1886 ROM_START( newsin7a )
1887 ROM_REGION( 0x10000, "maincpu", 0 )
1888 ROM_LOAD( "epr2732-1.u26", 0x0000, 0x1000, CRC(67bd4b05) SHA1(a3e397fe0b9baba48fa876c9cf53319f5c7c73f6) )
1889 ROM_LOAD( "epr2732-2.u56", 0x1000, 0x1000, CRC(93ac59de) SHA1(8eed2bab741ca3d0deeeaede22547ebe90b46a46) )
1890 ROM_LOAD( "epr2732-3.u69", 0x2000, 0x1000, CRC(6a778d95) SHA1(bf94017f06e7029a8a70e7b7ae741f7eac9d3e07) )
1891 ROM_LOAD( "epr2732-4.u98", 0x3000, 0x1000, CRC(7f351640) SHA1(5db70661c75f125eb531e84df66d0127c29cb821) )
1892 ROM_LOAD( "epr2732-5.u114", 0xa000, 0x1000, CRC(06275d59) SHA1(a5a5436c0b014af06181eeb044d8c4e3188414ea) )
1893
1894 ROM_REGION( 0x10000, "audiocpu", 0 )
1895 ROM_LOAD( "epr2716.u39", 0x0000, 0x0800, CRC(d88489a2) SHA1(ab10fd4862129824301a0a847de298f1826aa03e) )
1896 ROM_LOAD( "epr2716.u51", 0x0800, 0x0800, CRC(b154a7af) SHA1(91ca28b2530f22786ff581e5710b40f0cf99f516) )
1897 ROM_LOAD( "epr2716.u78", 0x1000, 0x0800, CRC(7ade709b) SHA1(bda1401172139cd6e3e03424c56e4f59e5afebd5) ) /* u78 socket was empty, using the newsin7 one */
1898
1899 ROM_REGION( 0x3000, "gfx1", 0 )
1900 ROM_LOAD( "epr2732-7.db", 0x2000, 0x1000, CRC(6bc5d64f) SHA1(4f52224a4d5294a7487a1fc55eba13cf0b5fb6af) )
1901 ROM_LOAD( "epr2732-6.u133", 0x1000, 0x1000, CRC(0c5b895a) SHA1(994ad7f051b30a3045ffc08ac8d9d7092fbadef3) )
1902 ROM_LOAD( "epr2732-8.db", 0x0000, 0x1000, CRC(6b87adff) SHA1(c0943832e498ab04978b11b163ba951d4a7e2e60) )
1903
1904 ROM_REGION( 0x0020, "proms", 0 )
1905 ROM_LOAD( "prom.u59", 0x0000, 0x0020, CRC(16cb5f4e) SHA1(36753611808d245d4f3ee55f71394297dd2afc09) ) /* Slightly different color prom */
1906 ROM_END
1907
1908 ROM_START( mrkougar )
1909 ROM_REGION( 0x10000, "maincpu", 0 )
1910 ROM_LOAD( "2732-7.bin", 0x0000, 0x1000, CRC(fd060ffb) SHA1(b3bee6fe879f13f3178bef3b2dff3041e698f061) )
1911 ROM_LOAD( "2732-6.bin", 0x1000, 0x1000, CRC(9e05d868) SHA1(802514f5de347913f0315b42b3689baa37030141) )
1912 ROM_LOAD( "2732-5.bin", 0x2000, 0x1000, CRC(cbc7c536) SHA1(b959c29bb7ab81ee123ba2f397eef1e32656b441) )
1913
1914 ROM_REGION( 0x10000, "audiocpu", 0 )
1915 ROM_LOAD( "atw-6w-2.bin", 0x0000, 0x1000, CRC(af42a371) SHA1(edacbb29df34fdf400a5c726d851af1479a34c70) )
1916 ROM_LOAD( "atw-6y-3.bin", 0x1000, 0x1000, CRC(862b8902) SHA1(91dcbc634f7c7ed78dfbd0be5cf1e0631429cfbf) )
1917 ROM_LOAD( "atw-6z-4.bin", 0x2000, 0x1000, CRC(a0396cc8) SHA1(c8266b58b144a4bc564f3a2503d5b953c0ba6ca7) )
1918
1919 ROM_REGION( 0x1000, "gfx1", 0 )
1920 ROM_LOAD( "2732-1.bin", 0x0000, 0x1000, CRC(60ef1d43) SHA1(ab42fa98350051526fcc4bfe35ebed3d6daf424f) )
1921
1922 ROM_REGION( 0x0020, "proms", 0 )
1923 ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
1924 ROM_END
1925
1926 ROM_START( mrkougar2 )
1927 ROM_REGION( 0x10000, "maincpu", 0 )
1928 ROM_LOAD( "atw-7l-7.bin", 0x0000, 0x1000, CRC(7b34b198) SHA1(c7793c49c5bd1360ef2d419bc4710b35f0a02760) )
1929 ROM_LOAD( "atw-7k-6.bin", 0x1000, 0x1000, CRC(fbca23c7) SHA1(da24a01d83174bad36072d4bf6764c5a3e242561) )
1930 ROM_LOAD( "atw-7h-5.bin", 0x2000, 0x1000, CRC(05b257a2) SHA1(728df1f1cb726d333818db8fedb27bf537be8a36) )
1931
1932 ROM_REGION( 0x10000, "audiocpu", 0 )
1933 ROM_LOAD( "atw-6w-2.bin", 0x0000, 0x1000, CRC(af42a371) SHA1(edacbb29df34fdf400a5c726d851af1479a34c70) )
1934 ROM_LOAD( "atw-6y-3.bin", 0x1000, 0x1000, CRC(862b8902) SHA1(91dcbc634f7c7ed78dfbd0be5cf1e0631429cfbf) )
1935 ROM_LOAD( "atw-6z-4.bin", 0x2000, 0x1000, CRC(a0396cc8) SHA1(c8266b58b144a4bc564f3a2503d5b953c0ba6ca7) )
1936
1937 ROM_REGION( 0x1000, "gfx1", 0 )
1938 ROM_LOAD( "atw-1h-1.bin", 0x0000, 0x1000, CRC(38fdfb63) SHA1(9fc4eafd6d106ffe35c179e59a234c706c489f8c) )
1939
1940 ROM_REGION( 0x0020, "proms", 0 )
1941 ROM_LOAD( "atw-prom.bin", 0x0000, 0x0020, CRC(c65db188) SHA1(90f0a5f22bb761693ab5895da08b20821e79ba65) )
1942 ROM_END
1943
1944 ROM_START( mrkougb )
1945 ROM_REGION( 0x10000, "maincpu", 0 )
1946 ROM_LOAD( "p01.bin", 0x0000, 0x0800, CRC(dea0cde1) SHA1(aaf9c622b86d475a90f91628d033989e72dda361) )
1947 ROM_LOAD( "p02.bin", 0x0800, 0x0800, CRC(c8017751) SHA1(021bd6a6efb90119767162a5847b4bbbc47f321e) )
1948 ROM_LOAD( "p03.bin", 0x1000, 0x0800, CRC(b8921984) SHA1(1adccd2bad8f748995f844183cac487ad00dd71e) )
1949 ROM_LOAD( "p04.bin", 0x1800, 0x0800, CRC(b3c9754c) SHA1(16a162a19079125fa01f49d90dbf8cd61b9b4833) )
1950 ROM_LOAD( "p05.bin", 0x2000, 0x0800, CRC(8d94adbc) SHA1(ac5932c84864e08c6b7937ef20d5bdceb48e2d24) )
1951 ROM_LOAD( "p06.bin", 0x2800, 0x0800, CRC(acc921ff) SHA1(f75158c62c6b9871ef05a6a97542469698100eb0) )
1952
1953 ROM_REGION( 0x10000, "audiocpu", 0 )
1954 ROM_LOAD( "atw-6w-2.bin", 0x0000, 0x1000, CRC(af42a371) SHA1(edacbb29df34fdf400a5c726d851af1479a34c70) )
1955 ROM_LOAD( "atw-6y-3.bin", 0x1000, 0x1000, CRC(862b8902) SHA1(91dcbc634f7c7ed78dfbd0be5cf1e0631429cfbf) )
1956 ROM_LOAD( "atw-6z-4.bin", 0x2000, 0x1000, CRC(a0396cc8) SHA1(c8266b58b144a4bc564f3a2503d5b953c0ba6ca7) )
1957
1958 ROM_REGION( 0x1000, "gfx1", 0 )
1959 ROM_LOAD( "g07.bin", 0x0000, 0x0800, CRC(0ecfd116) SHA1(0ea173c4f7f2613ef71ee5dcd52c4c6f640020b7) )
1960 ROM_LOAD( "g08.bin", 0x0800, 0x0800, CRC(00bfa3c6) SHA1(57a7fc48ec740b72baece96d50380dbbc826af77) )
1961
1962 ROM_REGION( 0x0020, "proms", 0 )
1963 ROM_LOAD( "atw-prom.bin", 0x0000, 0x0020, CRC(c65db188) SHA1(90f0a5f22bb761693ab5895da08b20821e79ba65) )
1964 ROM_END
1965
1966 ROM_START( mrkougb2 )
1967 ROM_REGION( 0x10000, "maincpu", 0 )
1968 ROM_LOAD( "mrk1.bin", 0x0000, 0x0800, CRC(fc93acb9) SHA1(e53373d47959a99f0b6574654d198f43b493c20f) )
1969 ROM_LOAD( "p02.bin", 0x0800, 0x0800, CRC(c8017751) SHA1(021bd6a6efb90119767162a5847b4bbbc47f321e) )
1970 ROM_LOAD( "p03.bin", 0x1000, 0x0800, CRC(b8921984) SHA1(1adccd2bad8f748995f844183cac487ad00dd71e) )
1971 ROM_LOAD( "p04.bin", 0x1800, 0x0800, CRC(b3c9754c) SHA1(16a162a19079125fa01f49d90dbf8cd61b9b4833) )
1972 ROM_LOAD( "p05.bin", 0x2000, 0x0800, CRC(8d94adbc) SHA1(ac5932c84864e08c6b7937ef20d5bdceb48e2d24) )
1973 ROM_LOAD( "p06.bin", 0x2800, 0x0800, CRC(acc921ff) SHA1(f75158c62c6b9871ef05a6a97542469698100eb0) )
1974
1975 ROM_REGION( 0x10000, "audiocpu", 0 )
1976 ROM_LOAD( "atw-6w-2.bin", 0x0000, 0x1000, CRC(af42a371) SHA1(edacbb29df34fdf400a5c726d851af1479a34c70) )
1977 ROM_LOAD( "atw-6y-3.bin", 0x1000, 0x1000, CRC(862b8902) SHA1(91dcbc634f7c7ed78dfbd0be5cf1e0631429cfbf) )
1978 ROM_LOAD( "atw-6z-4.bin", 0x2000, 0x1000, CRC(a0396cc8) SHA1(c8266b58b144a4bc564f3a2503d5b953c0ba6ca7) )
1979
1980 ROM_REGION( 0x1000, "gfx1", 0 )
1981 ROM_LOAD( "g07.bin", 0x0000, 0x0800, CRC(0ecfd116) SHA1(0ea173c4f7f2613ef71ee5dcd52c4c6f640020b7) )
1982 ROM_LOAD( "g08.bin", 0x0800, 0x0800, CRC(00bfa3c6) SHA1(57a7fc48ec740b72baece96d50380dbbc826af77) )
1983
1984 ROM_REGION( 0x0020, "proms", 0 )
1985 ROM_LOAD( "atw-prom.bin", 0x0000, 0x0020, CRC(c65db188) SHA1(90f0a5f22bb761693ab5895da08b20821e79ba65) )
1986 ROM_END
1987
1988 ROM_START( troopy )
1989 ROM_REGION( 0x10000, "maincpu", 0 )
1990 ROM_LOAD( "ic2cb.bin", 0x0000, 0x1000, CRC(a1798961) SHA1(45a1f6183016229fced3b459c95c99d83408151a) )
1991 ROM_LOAD( "ic2eb.bin", 0x1000, 0x1000, CRC(7f3572f9) SHA1(2f89f743a32378ed4ac4184627ed9be007c3334a) )
1992 ROM_LOAD( "ic2fb.bin", 0x2000, 0x1000, CRC(42e666fd) SHA1(caa6a2b07098ef1d6203309ddd3a591194b4ac70) )
1993
1994 ROM_REGION( 0x10000, "audiocpu", 0 )
1995 ROM_LOAD( "ic5c.bin", 0x0000, 0x1000, CRC(af42a371) SHA1(edacbb29df34fdf400a5c726d851af1479a34c70) )
1996 ROM_LOAD( "ic5d.bin", 0x1000, 0x1000, CRC(862b8902) SHA1(91dcbc634f7c7ed78dfbd0be5cf1e0631429cfbf) )
1997 ROM_LOAD( "ic5e.bin", 0x2000, 0x1000, CRC(a0396cc8) SHA1(c8266b58b144a4bc564f3a2503d5b953c0ba6ca7) )
1998
1999 ROM_REGION( 0x1000, "gfx1", 0 )
2000 ROM_LOAD( "ic5h_neu.bin", 0x0000, 0x0800, CRC(0f4a2394) SHA1(a6c309ca6afa59fbe6549d6fd282902f018a1a48) )
2001 ROM_LOAD( "ic5f_neu.bin", 0x0800, 0x0800, CRC(cbbfefc2) SHA1(2378949275b8d3fc69551b00d9b2c654b91fd780) )
2002
2003 ROM_REGION( 0x0020, "proms", 0 )
2004 ROM_LOAD( "82s123", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2005 ROM_END
2006
2007 ROM_START( hotshock )
2008 ROM_REGION( 0x10000, "maincpu", 0 )
2009 ROM_LOAD( "0d.l10", 0x0000, 0x1000, CRC(3e8aeaeb) SHA1(0572623928d36d106c9d8028d92fbd02375291a5) )
2010 ROM_LOAD( "1d.l9", 0x1000, 0x1000, CRC(0eab3246) SHA1(fac21e341186a7b70893c48cc00b1209dc31bcca) )
2011 ROM_LOAD( "2d.l8", 0x2000, 0x1000, CRC(e646bde3) SHA1(a0349a096ea00c077d162a945e4797e164a1508f) )
2012 ROM_LOAD( "3d.l7", 0x3000, 0x1000, CRC(5bde9312) SHA1(d3ba06790c8210f41902bb8ad27a1e5abafccb33) )
2013
2014 ROM_REGION( 0x10000, "audiocpu", 0 )
2015 ROM_LOAD( "6d.b3", 0x0000, 0x1000, CRC(c5e02651) SHA1(105b28d28cad2cddfc0a32b5dec1d21d1ef3f663) )
2016 ROM_LOAD( "7d.b4", 0x1000, 0x1000, CRC(49dc113d) SHA1(c59642d6cbd6e9c54c9802b8ec550b106e6a3ec3) )
2017
2018 ROM_REGION( 0x2000, "gfx1", 0 )
2019 ROM_LOAD( "4d.h3", 0x0000, 0x1000, CRC(751c850e) SHA1(067aaea400bbbcb0819d74a24fba5d7e035c2466) )
2020 ROM_LOAD( "5d.h5", 0x1000, 0x1000, CRC(fc74282e) SHA1(9a7df0a972cba4ee3c317ef3617b1d69d516bebb) )
2021
2022 ROM_REGION( 0x0020, "proms", 0 )
2023 ROM_LOAD( "18s030.1k", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2024 ROM_END
2025
2026 ROM_START( hotshockb )
2027 ROM_REGION( 0x10000, "maincpu", 0 )
2028 ROM_LOAD( "hotshock.l10", 0x0000, 0x1000, CRC(401078f7) SHA1(d4415a41eba1d3a2dcbb119f3136c177b02d1fb6) )
2029 ROM_LOAD( "hotshock.l9", 0x1000, 0x1000, CRC(af76c237) SHA1(bb54e1652a2d2e56731434ed85b40dab4aad91c9) )
2030 ROM_LOAD( "hotshock.l8", 0x2000, 0x1000, CRC(30486031) SHA1(bed06cb62afee6b000a0e21927559ac5d3538b38) )
2031 ROM_LOAD( "hotshock.l7", 0x3000, 0x1000, CRC(5bde9312) SHA1(d3ba06790c8210f41902bb8ad27a1e5abafccb33) )
2032
2033 ROM_REGION( 0x10000, "audiocpu", 0 )
2034 ROM_LOAD( "hotshock.b3", 0x0000, 0x1000, CRC(0092f0e2) SHA1(d85b05370fa0ce4ba27fd331bb6a7fae067ce83b) )
2035 ROM_LOAD( "hotshock.b4", 0x1000, 0x1000, CRC(c2135a44) SHA1(809cf305b1f43f99f2248020c369fb5f1d7c5c44) )
2036
2037 ROM_REGION( 0x2000, "gfx1", 0 )
2038 ROM_LOAD( "hotshock.h4", 0x0000, 0x1000, CRC(60bdaea9) SHA1(fd10109803661dc1ce72e1291e3721bdb2bb159f) )
2039 ROM_LOAD( "hotshock.h5", 0x1000, 0x1000, CRC(4ef17453) SHA1(7dc58456b2f25775c85b3ae92f605d69bb68d590) )
2040
2041 ROM_REGION( 0x0020, "proms", 0 )
2042 ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2043 ROM_END
2044
2045 /*
2046
2047 Conqueror (c) ???? ????
2048 ROM data reveals that it's a space shooter, based on Domino's Hot Shocker, >=1982.
2049
2050 CPU: Z80 (x2)
2051 Sound: AY-3-8910 (x2)
2052 RAM: 74S201 (x5), 2114 (x8), Mostek MN4801AN-3IRL
2053 X1: ??
2054
2055 Notes: Has a very crude, homemade looking potted module which crumbled apart when handled.
2056 Contained two 20-pin DIP chips with no markings. Could be PROMs, PLDs or TTL
2057
2058 */
2059
2060 ROM_START( conquer )
2061 ROM_REGION( 0x10000, "maincpu", 0 )
2062 ROM_LOAD( "conquer3.l10", 0x0000, 0x1000, BAD_DUMP CRC(a33a824f) SHA1(787ac1f1942ba97c64317b9455d6788281c02f60) )
2063 ROM_LOAD( "conquer2.l9", 0x1000, 0x1000, CRC(3ffa8285) SHA1(a110e52fe5f637606c1be3a9e290fc6625b9aa48) )
2064 ROM_LOAD( "conquer1.l8", 0x2000, 0x1000, CRC(9ded2dff) SHA1(9364195d3f86e55df5ecf90d53041517c3658388) )
2065
2066 ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound code */
2067 ROM_LOAD( "conquer6.b3", 0x0000, 0x1000, CRC(d363b2ea) SHA1(ca4887d51eee4053cd981b4a97fb8a29eecd14e9) )
2068 ROM_LOAD( "conquer7.b4", 0x1000, 0x1000, CRC(e6a63d71) SHA1(84e199cd214046829f038bc9f151373e9ced575c) )
2069
2070 ROM_REGION( 0x2000, "gfx1", 0 )
2071 ROM_LOAD( "conquer4.h3", 0x0000, 0x1000, CRC(ac533893) SHA1(bb1fee3ec1b856423aa032a905c90a62f405bba8) )
2072 ROM_LOAD( "conquer5.h5", 0x1000, 0x1000, CRC(d884fd49) SHA1(108ed4a1aebd20b2c44e0bf07c2144b9b58dbda1) ) // data unused? (hotshock gfx still intact)
2073
2074 ROM_REGION( 0x0020, "proms", 0 )
2075 ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2076 ROM_END
2077
2078 ROM_START( hunchbks )
2079 ROM_REGION( 0x8000, "maincpu", 0 )
2080 ROM_LOAD( "2c_hb01.bin", 0x0000, 0x0800, CRC(8bebd834) SHA1(08f2ce732d2d8754bf559260e1f656a33e2a06a5) )
2081 ROM_LOAD( "2e_hb02.bin", 0x0800, 0x0800, CRC(07de4229) SHA1(9f333509ae3d6c579f6d96caa172a0abe9eefb30) )
2082 ROM_LOAD( "2f_hb03.bin", 0x2000, 0x0800, CRC(b75a0dfc) SHA1(c60c833f28c6de027d46f5a2a54ad5646ec58453) )
2083 ROM_LOAD( "2h_hb04.bin", 0x2800, 0x0800, CRC(f3206264) SHA1(36a614db3fda4f97cc085d84bd13ea44969de95b) )
2084 ROM_LOAD( "2j_hb05.bin", 0x4000, 0x0800, CRC(1bb78728) SHA1(aebfca355d937825217d069689f9b4d7a113b10a) )
2085 ROM_LOAD( "2l_hb06.bin", 0x4800, 0x0800, CRC(f25ed680) SHA1(7854e4975a4f75916f60749ac24147c335927394) )
2086 ROM_LOAD( "2m_hb07.bin", 0x6000, 0x0800, CRC(c72e0e17) SHA1(90da1e375733873bc592e11980bdaf8168bd5aea) )
2087 ROM_LOAD( "2p_hb08.bin", 0x6800, 0x0800, CRC(412087b0) SHA1(4d6f343577ae73031f32cda8903c74e5a840e71d) )
2088
2089 ROM_REGION( 0x10000, "audiocpu", 0 )
2090 ROM_LOAD( "11d_snd.bin", 0x0000, 0x0800, CRC(88226086) SHA1(fe2da172313063e5b056fc8c8d8b2a5c64db5179) )
2091
2092 ROM_REGION( 0x1000, "gfx1", 0 )
2093 ROM_LOAD( "5f_hb09.bin", 0x0000, 0x0800, CRC(db489c3d) SHA1(df08607ad07222c1c1c4b3589b50b785bdeefbf2) )
2094 ROM_LOAD( "5h_hb10.bin", 0x0800, 0x0800, CRC(3977650e) SHA1(1de05d6ceed3f2ed0925caa8235b63a93f03f61e) )
2095
2096 ROM_REGION( 0x0020, "proms", 0 )
2097 ROM_LOAD( "6e_prom.bin", 0x0000, 0x0020, CRC(01004d3f) SHA1(e53cbc54ea96e846481a67bbcccf6b1726e70f9c) )
2098 ROM_END
2099
2100 ROM_START( hunchbks2 )
2101 ROM_REGION( 0x8000, "maincpu", 0 )
2102 ROM_LOAD( "hb01.bin", 0x0000, 0x0800, CRC(fec3466a) SHA1(d8ec3b432f7037e99bf1ac1ba7911a34eff6869d) )
2103 ROM_LOAD( "2e_hb02.bin", 0x0800, 0x0800, CRC(07de4229) SHA1(9f333509ae3d6c579f6d96caa172a0abe9eefb30) )
2104 ROM_LOAD( "2f_hb03.bin", 0x2000, 0x0800, CRC(b75a0dfc) SHA1(c60c833f28c6de027d46f5a2a54ad5646ec58453) )
2105 ROM_LOAD( "hb04.bin", 0x2800, 0x0800, CRC(731e349b) SHA1(cfa1ac322cdfe1d4d112b0a4dd85d3552a6e33d0) )
2106 ROM_LOAD( "2j_hb05.bin", 0x4000, 0x0800, CRC(1bb78728) SHA1(aebfca355d937825217d069689f9b4d7a113b10a) )
2107 ROM_LOAD( "2l_hb06.bin", 0x4800, 0x0800, CRC(f25ed680) SHA1(7854e4975a4f75916f60749ac24147c335927394) )
2108 ROM_LOAD( "2m_hb07.bin", 0x6000, 0x0800, CRC(c72e0e17) SHA1(90da1e375733873bc592e11980bdaf8168bd5aea) )
2109 ROM_LOAD( "2p_hb08.bin", 0x6800, 0x0800, CRC(412087b0) SHA1(4d6f343577ae73031f32cda8903c74e5a840e71d) )
2110
2111 ROM_REGION( 0x10000, "audiocpu", 0 )
2112 ROM_LOAD( "11d_snd.bin", 0x0000, 0x0800, CRC(88226086) SHA1(fe2da172313063e5b056fc8c8d8b2a5c64db5179) )
2113
2114 ROM_REGION( 0x1000, "gfx1", 0 )
2115 ROM_LOAD( "5f_hb09.bin", 0x0000, 0x0800, CRC(db489c3d) SHA1(df08607ad07222c1c1c4b3589b50b785bdeefbf2) )
2116 ROM_LOAD( "5h_hb10.bin", 0x0800, 0x0800, CRC(3977650e) SHA1(1de05d6ceed3f2ed0925caa8235b63a93f03f61e) )
2117
2118 ROM_REGION( 0x0020, "proms", 0 )
2119 ROM_LOAD( "6e_prom.bin", 0x0000, 0x0020, CRC(01004d3f) SHA1(e53cbc54ea96e846481a67bbcccf6b1726e70f9c) )
2120 ROM_END
2121
2122
2123 ROM_START( hncholms )
2124 ROM_REGION( 0x8000, "maincpu", 0 )
2125 ROM_LOAD( "hncholym.2d", 0x0000, 0x0800, CRC(fb453f9c) SHA1(e4c059b10af1aa8405958c0fd139fb84d08ec9f3) )
2126 ROM_LOAD( "hncholym.2e", 0x0800, 0x0800, CRC(b1429420) SHA1(9e393750e5651c8b14acc11e3591db0a0a599a4d) )
2127 ROM_LOAD( "hncholym.2f", 0x2000, 0x0800, CRC(afc98e28) SHA1(efc7918a95d9011cbc0c5fbaee3793d95ecbcf89) )
2128 ROM_LOAD( "hncholym.2h", 0x2800, 0x0800, CRC(6785bf17) SHA1(e0dadda7d55d2046312a87ed700654952662a6b3) )
2129 ROM_LOAD( "hncholym.2j", 0x4000, 0x0800, CRC(0e1e4133) SHA1(84c3b8e3e81f6ef3311f1272ee6633cec10b796e) )
2130 ROM_LOAD( "hncholym.2l", 0x4800, 0x0800, CRC(6e982609) SHA1(2d2aa16ad27f6de486eebfd82b23f7ac706faee5) )
2131 ROM_LOAD( "hncholym.2m", 0x6000, 0x0800, CRC(b9141914) SHA1(955f7b909b3ec27a07817d031fcbb4029e1cff81) )
2132 ROM_LOAD( "hncholym.2p", 0x6800, 0x0800, CRC(ca37b55b) SHA1(cb423c1aac91654657e72d0a0cbc311cffc9df0c) )
2133
2134 ROM_REGION( 0x10000, "audiocpu", 0 )
2135 ROM_LOAD( "hncholym.5c", 0x0000, 0x0800, CRC(e7758775) SHA1(3ca843e7519d7f38812e6e2e7b5bb78ac3c02676) )
2136
2137 ROM_REGION( 0x2000, "gfx1", 0 )
2138 ROM_LOAD( "hncholym.5f", 0x0000, 0x1000, CRC(75ad3542) SHA1(1094a30861c68c1f4fc85fbfd5606c5feec3843b) )
2139 ROM_LOAD( "hncholym.5h", 0x1000, 0x1000, CRC(6fec9dd3) SHA1(2366b10e8f9ba58a565ef2e1a6eddf7c4b51fe79) )
2140
2141 ROM_REGION( 0x0020, "proms", 0 )
2142 ROM_LOAD( "prom.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2143
2144 ROM_REGION( 0x0200, "user1", 0 ) /* unknown - from the custom module */
2145 ROM_LOAD( "82s147.1a", 0x0000, 0x0200, CRC(d461a48b) SHA1(832fc1de4875d5f19e53d72ccf5dcdb5bcbee1af) )
2146 ROM_END
2147
2148 ROM_START( cavelon )
2149 ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k + 16K banked for code */
2150 ROM_LOAD( "2.bin", 0x00000, 0x2000, CRC(a3b353ac) SHA1(1d5cc402f83c410f2ccd186dafb8bf16a7778fb0) )
2151 ROM_LOAD( "1.bin", 0x02000, 0x2000, CRC(3f62efd6) SHA1(b03a46f8478f499812c5d9c11816ee28d67fb77b) )
2152 ROM_RELOAD( 0x12000, 0x2000)
2153 ROM_LOAD( "3.bin", 0x10000, 0x2000, CRC(39d74e4e) SHA1(4789eab2741555f59a97ef5a10b0500f6b64a6ce) )
2154
2155 ROM_REGION( 0x10000, "audiocpu", 0 )
2156 ROM_LOAD( "1c_snd.bin", 0x0000, 0x0800, CRC(f58dcf55) SHA1(517dab8684109188d7d78c8a2cf94a4fac17d40c) )
2157
2158 ROM_REGION( 0x2000, "gfx1", 0 )
2159 ROM_LOAD( "h.bin", 0x0000, 0x1000, CRC(d44fcd6f) SHA1(c275741bb1d876e7308e131cac2f1fee249613c7) )
2160 ROM_LOAD( "k.bin", 0x1000, 0x1000, CRC(59bc7f9e) SHA1(4374955d0fdfbba57ba432da22b0d94b66832fb8) )
2161
2162 ROM_REGION( 0x0020, "proms", 0 )
2163 ROM_LOAD( "cavelon.clr", 0x0000, 0x0020, CRC(d133356b) SHA1(58db4013a9ad77107f0d462c96363d7c38d86fa2) )
2164 ROM_END
2165
2166 ROM_START( mimonscr )
2167 ROM_REGION( 0x10000, "maincpu", 0 )
2168 ROM_LOAD( "mm1", 0x0000, 0x1000, CRC(0399a0c4) SHA1(8314124f9b535ce531663625d19cd3a76782ed3b) )
2169 ROM_LOAD( "mm2", 0x1000, 0x1000, CRC(2c5e971e) SHA1(39f979b99566e30a19c63115c936bb11fae4c609) )
2170 ROM_LOAD( "mm3", 0x2000, 0x1000, CRC(24ce1ce3) SHA1(ae5ba6913cabab2152bf48c0c0d5983ecbe5c700) )
2171 ROM_LOAD( "mm4", 0x3000, 0x1000, CRC(c83fb639) SHA1(38ddd80b25cc0707b9e53396c322fe731ea8bc3e) )
2172 ROM_LOAD( "mm5", 0xc000, 0x1000, CRC(a9f12dfc) SHA1(c279e3ac84194cc83642a2c330fd869eaae8f063) )
2173 ROM_LOAD( "mm6", 0xd000, 0x1000, CRC(e492a40c) SHA1(d01d6f9c18821fd8c7ed11d65d13bd0c9595881f) )
2174 ROM_LOAD( "mm7", 0xe000, 0x1000, CRC(5339928d) SHA1(7c28516fb7d762e2f77d0ed3dc56a57d0213dbf9) )
2175 ROM_LOAD( "mm8", 0xf000, 0x1000, CRC(eee7a12e) SHA1(bde6bfe98b15215c48c85a22615b0242ea4f0224) )
2176
2177 ROM_REGION( 0x10000, "audiocpu", 0 )
2178 ROM_LOAD( "mmsound1", 0x0000, 0x1000, CRC(2d14c527) SHA1(062414ce0415b6c471149319ecae22f465df3a4f) )
2179 ROM_LOAD( "mmsnd2a", 0x1000, 0x1000, CRC(35ed0f96) SHA1(5aaacae5c2acf97540b72491f71ea823f5eeae1a) )
2180
2181 ROM_REGION( 0x4000, "gfx1", 0 )
2182 ROM_LOAD( "mmgfx1", 0x0000, 0x2000, CRC(4af47337) SHA1(225f7bcfbb61e3a163ecaed675d4c81b3609562f) )
2183 ROM_LOAD( "mmgfx2", 0x2000, 0x2000, CRC(def47da8) SHA1(8e62e5dc5c810efaa204d0fcb3d02bc84f61ba35) )
2184
2185 ROM_REGION( 0x0020, "proms", 0 )
2186 ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2187 ROM_END
2188
2189
2190 ROM_START( mimonscra )
2191 ROM_REGION( 0x10000, "maincpu", 0 )
2192 ROM_LOAD( "1.c2", 0x0000, 0x1000, CRC(cfff26f3) SHA1(6e611e370ce5a93099bdcdb3b34b86c9c6d49180) )
2193 ROM_LOAD( "2.e2", 0x1000, 0x1000, CRC(1fca805f) SHA1(eb85d3c08b141d8bd85da38936a5fafcdd2ff709) )
2194 ROM_LOAD( "3.f2", 0x2000, 0x1000, CRC(24ce1ce3) SHA1(ae5ba6913cabab2152bf48c0c0d5983ecbe5c700) )
2195 ROM_LOAD( "4.h2", 0x3000, 0x1000, CRC(c83fb639) SHA1(38ddd80b25cc0707b9e53396c322fe731ea8bc3e) )
2196 ROM_LOAD( "5.j2", 0xc000, 0x1000, CRC(a9f12dfc) SHA1(c279e3ac84194cc83642a2c330fd869eaae8f063) )
2197 ROM_LOAD( "6.l2", 0xd000, 0x1000, CRC(e492a40c) SHA1(d01d6f9c18821fd8c7ed11d65d13bd0c9595881f) )
2198 ROM_LOAD( "7.m2", 0xe000, 0x1000, CRC(5339928d) SHA1(7c28516fb7d762e2f77d0ed3dc56a57d0213dbf9) )
2199 ROM_LOAD( "8.p2", 0xf000, 0x1000, CRC(0b9915b8) SHA1(bb5155eede699d0b612cae458499bd245ab44b4d) )
2200
2201 ROM_REGION( 0x10000, "audiocpu", 0 )
2202 ROM_LOAD( "2732.c5", 0x0000, 0x1000, CRC(5995f24b) SHA1(e3cad71006346e6ca6579c09e65195718687dca1) )
2203 ROM_LOAD( "2732.d5", 0x1000, 0x1000, CRC(35ed0f96) SHA1(5aaacae5c2acf97540b72491f71ea823f5eeae1a) )
2204
2205 ROM_REGION( 0x4000, "gfx1", 0 )
2206 ROM_LOAD( "top.g5", 0x0000, 0x1000, CRC(f73a8412) SHA1(9baf4336cceb9b039372b0a1c733910aeab5ec6d) )
2207 ROM_LOAD( "bottom.g5", 0x1000, 0x1000, CRC(3828c9db) SHA1(eaf9e81c803ad2be6c2db3104f07f80788378286) )
2208 ROM_LOAD( "top.f5", 0x2000, 0x1000, CRC(9e0e9289) SHA1(79d412dbceb364bc798feda658b15792feb63338) )
2209 ROM_LOAD( "bottom.f5", 0x3000, 0x1000, CRC(92085b0c) SHA1(a791703fa9f17e42450c871d902430fc3c6b10ef) )
2210
2211 ROM_REGION( 0x0020, "proms", 0 )
2212 ROM_LOAD( "mb7051.e6", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
2213 ROM_END
2214
2215 ROM_START( ad2083 )
2216 ROM_REGION( 0x10000, "maincpu", 0 )
2217 ROM_LOAD( "ad0.10o", 0x0000, 0x2000, CRC(4d34325a) SHA1(4a0eb1cd94382c44ab2642d734d3da9025872eba) )
2218 ROM_LOAD( "ad1.9o", 0x2000, 0x2000, CRC(0f37134b) SHA1(a935ae013e9fb26b5ef44f7ebd2a043763b146db) )
2219 ROM_LOAD( "ad2.8o", 0xa000, 0x2000, CRC(bcfa655f) SHA1(6a552c67f48e9ece6c6d38b4151ff6f3dbfd8dcb) )
2220 ROM_LOAD( "ad3.7o", 0xc000, 0x2000, CRC(60655225) SHA1(628796b23ad66f8f7b2c160d923ecbea10fd7553) )
2221
2222 ROM_REGION( 0x10000, "audiocpu", 0 )
2223 ROM_LOAD( "ad1s.3d", 0x0000, 0x2000, CRC(80f39b0f) SHA1(35671eaf6fc7643ad691414349f1b2772d020e9a) )
2224 ROM_LOAD( "ad2s.4d", 0x2000, 0x1000, CRC(5177fe2b) SHA1(9aee953ae43131c4db9db71ca69a8ce9ad62ff05) )
2225
2226 ROM_REGION( 0x4000, "gfx1", 0 )
2227 ROM_LOAD( "ad4.5k", 0x0000, 0x2000, CRC(388cdd21) SHA1(52f97d8e4f7c7f45a2875f03eadc622b540693e7) )
2228 ROM_LOAD( "ad5.3k", 0x2000, 0x2000, CRC(f53f3449) SHA1(0711f2e47504f256d46eea1e225e35f9bde8b9fb) )
2229
2230 ROM_REGION( 0x2000, "tmsprom", 0 ) /* data for the TMS5110 speech chip */
2231 ROM_LOAD( "ad1v.9a", 0x0000, 0x1000, CRC(4cb93fff) SHA1(2cc686a9a58a85f2bb04fb6ced4626e9952635bb) )
2232 ROM_LOAD( "ad2v.10a", 0x1000, 0x1000, CRC(4b530ea7) SHA1(8793b3497b598f33b34bf9524e360c6c62e8001d) )
2233
2234 ROM_REGION( 0x0020, "proms", 0 )
2235 ROM_LOAD( "prom-am27s19dc.1m", 0x0000, 0x0020, CRC(2759aebd) SHA1(644fd2c95ca49cbbc0ee1b88ca2563451ddd4fe0) )
2236
2237 ROM_REGION( 0x0020, "5110ctrl", 0 ) /* data to program TMS5110 speech chip 3x Reset 1x speak */
2238 ROM_LOAD( "prom-sn74s188.8a", 0x0000, 0x0020, BAD_DUMP CRC(c58a4f6a) SHA1(35ef244b3e94032df2610aa594ea5670b91e1449) )
2239 ROM_END
2240
2241
2242 ROM_START( harem ) /* Main PCB version similar to Scorpion (also developed by I.G.R), sound PCB is identical to Scorpion */
2243 ROM_REGION( 0x10000, "maincpu", 0 )
2244 ROM_LOAD( "harem_prom0.ic85", 0x0000, 0x2000, CRC(4521b753) SHA1(9033f9c3be8fec1e5ff251e9f60faaf3848a1a1e) )
2245 ROM_LOAD( "harem_prom1.ic87", 0x8000, 0x2000, CRC(3cc5d1e8) SHA1(827e2d20de2a00ec016ead249ed3afdccd0c856c) ) // encrypted
2246
2247 ROM_REGION( 0x10000, "audiocpu", 0 )
2248 ROM_LOAD( "harem_sound1.ic12", 0x0000, 0x2000, CRC(b54799dd) SHA1(b6aeb010257cba48a52afd33b4f8031c7d99550c) )
2249 ROM_LOAD( "harem_sound2.ic13", 0x2000, 0x1000, CRC(2d5573a4) SHA1(1fdcd99d89e078509634742b2116a35bb199fe4b) )
2250
2251 ROM_REGION( 0x2000, "digitalker", 0 ) // DigiTalker ROM (same exact sound PCB as Scorpion (galaxian.cpp))
2252 ROM_LOAD( "harem_h1+h2.ic25", 0x0000, 0x2000, CRC(279f923a) SHA1(166b1b625997766f0de7cc18af52c42268022fcb) )
2253
2254 ROM_REGION( 0x4000, "gfx1", 0 )
2255 ROM_LOAD( "harem_mask1.ic37", 0x0000, 0x2000, CRC(cb0324fb) SHA1(61612f683810339d5d5f31daa4c475d0338d446f) )
2256 ROM_LOAD( "harem_mask0.ic36", 0x2000, 0x2000, CRC(64b3c6d6) SHA1(e71092585f7ffdae85b2a4c9add1bc71e5a608a8) )
2257
2258 ROM_REGION( 0x0020, "proms", 0 )
2259 ROM_LOAD( "74s288.ic46", 0x0000, 0x0020, CRC(c9a2bf73) SHA1(dad65ebf43a5df147e334afd552e67f5fcd26df7) ) /* BPROM type is 74S288 */
2260 ROM_END
2261
2262
2263 GAME( 1982, triplep, 0, triplep, triplep, scramble_state, init_scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 1)", MACHINE_SUPPORTS_SAVE )
2264 GAME( 1982, triplepa, triplep, triplep, triplep, scramble_state, init_scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 2)", MACHINE_SUPPORTS_SAVE )
2265 GAME( 1982, knockout, triplep, triplep, triplep, scramble_state, init_scramble_ppi, ROT90, "bootleg? (KKK)", "Knock Out!! (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
2266 GAME( 1982, knockoutb,triplep, triplep, knockoutb,scramble_state, init_scramble_ppi, ROT90, "bootleg", "Knock Out!! (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
2267 GAME( 1982, knockoutc,triplep, triplep, knockoutb,scramble_state, init_scramble_ppi, ROT90, "bootleg (ESG)", "Knock Out!! (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // ESG = Elektronik Spiel Gerate
2268
2269 GAME( 1981, mariner, 0, mariner, scramble, scramble_state, init_mariner, ROT90, "Amenip", "Mariner", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
2270 GAME( 1981, 800fath, mariner, mariner, 800fath, scramble_state, init_mariner, ROT90, "Amenip (US Billiards Inc. license)", "800 Fathoms", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
2271 GAME( 1981, 800fatha, mariner, mariner, 800fath, scramble_state, init_mariner, ROT90, "Amenip (US Billiards Inc. license)", "800 Fathoms (older)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
2272
2273 GAME( 1981, ckongs, ckong, ckongs, ckongs, scramble_state, empty_init, ROT90, "bootleg", "Crazy Kong (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
2274
2275 GAME( 1981, mars, 0, mars, mars, scramble_state, init_mars, ROT90, "Artic", "Mars", MACHINE_SUPPORTS_SAVE )
2276
2277 GAME( 1982, devilfsh, 0, devilfsh, devilfsh, scramble_state, init_devilfsh, ROT90, "Artic", "Devil Fish", MACHINE_SUPPORTS_SAVE )
2278
2279 GAME( 1983, newsin7, 0, newsin7, newsin7, scramble_state, init_mars, ROT90, "ATW USA, Inc.", "New Sinbad 7 (set 1)", MACHINE_SUPPORTS_SAVE )
2280 GAME( 1982, newsin7a, newsin7, newsin7, newsin7, scramble_state, init_newsin7a, ROT90, "ATW USA, Inc", "New Sinbad 7 (set 2)", MACHINE_SUPPORTS_SAVE )
2281
2282 GAME( 1984, mrkougar, 0, mrkougar, mrkougar, scramble_state, init_mrkougar, ROT90, "ATW", "Mr. Kougar", MACHINE_SUPPORTS_SAVE )
2283 GAME( 1983, mrkougar2,mrkougar, mrkougar, mrkougar, scramble_state, init_mrkougar, ROT90, "ATW", "Mr. Kougar (earlier)", MACHINE_SUPPORTS_SAVE )
2284 GAME( 1984, mrkougb, mrkougar, mrkougb, mrkougar, scramble_state, empty_init, ROT90, "bootleg (Gross)", "Mr. Kougar (German bootleg)", MACHINE_SUPPORTS_SAVE )
2285 GAME( 1983, mrkougb2, mrkougar, mrkougb, mrkougar, scramble_state, empty_init, ROT90, "bootleg", "Mr. Kougar (bootleg)", MACHINE_SUPPORTS_SAVE )
2286 GAME( 1984, troopy, mrkougar, mrkougb, mrkougar, scramble_state, init_mrkougar, ROT90, "bootleg", "Troopy (bootleg of Mr. Kougar)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // wrong loading / decoding or bad GFX ROMs?
2287
2288 GAME( 1982, hotshock, 0, hotshock, hotshock, scramble_state, init_hotshock, ROT90, "E.G. Felaco (Domino license)", "Hot Shocker", MACHINE_SUPPORTS_SAVE )
2289 GAME( 1982, hotshockb,hotshock, hotshock, hotshock, scramble_state, init_hotshock, ROT90, "E.G. Felaco", "Hot Shocker (early revision?)", MACHINE_SUPPORTS_SAVE ) // has "Dudley presents" (protagonist of the game), instead of Domino
2290
2291 GAME( 198?, conquer, 0, hotshock, hotshock, scramble_state, empty_init, ROT90, "<unknown>", "Conqueror", MACHINE_NOT_WORKING )
2292
2293 GAME( 1983, hunchbks, hunchbak, hunchbks, hunchbks, scramble_state, init_scramble_ppi, ROT90, "Century Electronics", "Hunchback (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
2294 GAME( 1983, hunchbks2,hunchbak, hunchbks, hunchbks, scramble_state, init_scramble_ppi, ROT90, "bootleg (Sig)", "Hunchback (Scramble hardware, bootleg)", MACHINE_SUPPORTS_SAVE )
2295
2296 GAME( 1984, hncholms, huncholy, hncholms, hncholms, scramble_state, init_scramble_ppi, ROT90, "Century Electronics / Seatongrove Ltd", "Hunchback Olympic (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
2297
2298 GAME( 1983, cavelon, 0, cavelon, cavelon, scramble_state, init_cavelon, ROT90, "Jetsoft", "Cavelon", MACHINE_SUPPORTS_SAVE )
2299
2300 GAME( 1982, mimonscr, mimonkey, mimonscr, mimonscr, scramble_state, init_mimonscr, ROT90, "bootleg", "Mighty Monkey (bootleg on Scramble hardware)", MACHINE_SUPPORTS_SAVE )
2301 GAME( 1982, mimonscra,mimonkey, mimonscr, mimonscr, scramble_state, init_mimonscr, ROT90, "bootleg (Kaina Games)","Mighty Monkey (Kaina Games, bootleg on Scramble hardware)", MACHINE_SUPPORTS_SAVE )
2302
2303 GAME( 1983, ad2083, 0, ad2083, ad2083, scramble_state, init_ad2083, ROT90, "Midcoin", "A. D. 2083", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
2304
2305 GAME( 1983, harem, 0, harem, harem, scramble_state, init_harem, ROT90, "I.G.R.", "Harem", MACHINE_SUPPORTS_SAVE )
2306