Previous 15994 Revisions Next

r9536 Monday 8th November, 2010 at 09:25:44 UTC by Nathan Woods
Updating to MAME 0.140u1
[docs]messnew.txt
[src/emu]cheat.c cheat.h render.h rendfont.c rendfont.h
[src/emu/cpu/dsp56k]inst.h
[src/emu/debug]debugcmd.c debugcpu.c debugcpu.h debugvw.c express.c express.h
[src/emu/sound]asc.c disc_dev.c disc_mth.c
[src/lib/util]unicode.h
[src/mame]mame.mak mamedriv.c
[src/mame/audio]bzone.c copsnrob.c* dkong.c mario.c skyraid.c
[src/mame/drivers]artmagic.c blitz.c copsnrob.c cubocd32.c djboy.c dynax.c funworld.c gaelco.c lkage.c megadriv.c meritm.c naomi.c neodrvr.c royalmah.c segas16b.c system16.c tmaster.c
[src/mame/includes]copsnrob.h djboy.h lkage.h
[src/mame/machine]cubocd32.c naomibd.c
[src/mame/video]funworld.c lkage.c
[src/mess]mess.mak
[src/osd]osdepend.c osdepend.h
[src/osd/osdmini]minifile.c osdmini.h
[src/osd/sdl]osdsdl.h
[src/osd/windows]winmain.c winmain.h

src/mame/audio/bzone.c
r9535r9536
237237
238238#define CD4066_R_ON      270
239239
240static DISCRETE_STEP(bzone_custom_filter)
240DISCRETE_STEP(bzone_custom_filter)
241241{
242   struct bzone_custom_filter_context *context = (struct bzone_custom_filter_context *)node->context;
242   DISCRETE_DECLARE_CONTEXT(bzone_custom_filter)
243243
244244   int      in0 = (BZONE_CUSTOM_FILTER__IN0 == 0) ? 0 : 1;
245245   double   v;
r9535r9536
254254   node->output[0] += (v - node->output[0]) * context->exponent;
255255}
256256
257static DISCRETE_RESET(bzone_custom_filter)
257DISCRETE_RESET(bzone_custom_filter)
258258{
259   struct bzone_custom_filter_context   *context = (struct bzone_custom_filter_context *)node->context;
259   DISCRETE_DECLARE_CONTEXT(bzone_custom_filter)
260260
261261   context->gain[0] = BZONE_CUSTOM_FILTER__R1 + BZONE_CUSTOM_FILTER__R2;
262262   context->gain[0] = BZONE_CUSTOM_FILTER__R5 / context->gain[0] + 1;
src/mame/audio/copsnrob.c
r0r9536
1/************************************************************************
2 * copsnrob Sound System Analog emulation
3 * Nov 2010, Derrick Renaud
4 ************************************************************************/
5#include "emu.h"
6#include "includes/copsnrob.h"
7#include "sound/discrete.h"
8
9
10/* Discrete Sound Input Nodes */
11#define COPSNROB_MOTOR0_INV         NODE_01
12#define COPSNROB_MOTOR1_INV         NODE_02
13#define COPSNROB_MOTOR2_INV         NODE_03
14#define COPSNROB_MOTOR3_INV         NODE_04
15#define COPSNROB_ZINGS_INV         NODE_05
16#define COPSNROB_FIRES_INV         NODE_06
17#define COPSNROB_CRASH_INV         NODE_07
18#define COPSNROB_SCREECH_INV      NODE_08
19#define COPSNROB_AUDIO_ENABLE      NODE_09
20
21/* Discrete Sound Output Nodes */
22#define COPSNROB_MOTOR0_SND         NODE_11
23#define COPSNROB_MOTOR1_SND         NODE_12
24#define COPSNROB_MOTOR2_SND         NODE_13
25#define COPSNROB_MOTOR3_SND         NODE_14
26#define COPSNROB_FZ_SND            NODE_15
27#define COPSNROB_CRASH_SND         NODE_16
28#define COPSNROB_SCREECH_SND      NODE_17
29#define COPSNROB_NOISE_1         NODE_18
30#define COPSNROB_NOISE_2         NODE_18_01
31
32/* Parts List - Resistors */
33#define COPSNROB_R16         RES_K(10)
34#define COPSNROB_R18         RES_K(100)
35#define COPSNROB_R19         RES_K(100)
36#define COPSNROB_R20         RES_K(100)
37#define COPSNROB_R21         RES_K(47)
38#define COPSNROB_R25         RES_K(47)
39#define COPSNROB_R26         RES_K(150)
40#define COPSNROB_R27         RES_K(22)
41#define COPSNROB_R28         RES_K(18)
42#define COPSNROB_R33         RES_K(10)
43#define COPSNROB_R35         RES_K(10)
44#define COPSNROB_R36         RES_K(15)
45#define COPSNROB_R37         RES_K(4.7)
46#define COPSNROB_R38         RES_K(15)
47#define COPSNROB_R39         RES_K(10)
48#define COPSNROB_R41         RES_K(33)
49#define COPSNROB_R42         RES_K(33)
50#define COPSNROB_R47         RES_K(10)
51#define COPSNROB_R48         RES_K(1)
52#define COPSNROB_R49         RES_K(47)
53#define COPSNROB_R50         RES_K(47)
54#define COPSNROB_R53         RES_K(47)
55#define COPSNROB_R54         RES_K(22)
56#define COPSNROB_R55         RES_K(47)
57#define COPSNROB_R56         RES_K(470)
58#define COPSNROB_R57         RES_K(820)
59#define COPSNROB_R58         RES_K(68)
60#define COPSNROB_R59         RES_K(1)
61#define COPSNROB_R64         RES_K(47)
62#define COPSNROB_R65         RES_K(4.7)
63#define COPSNROB_R66         RES_K(1.5)
64#define COPSNROB_R69         RES_K(330)
65#define COPSNROB_R70         RES_K(330)
66#define COPSNROB_R71         RES_K(100)
67#define COPSNROB_R72         RES_K(100)
68#define COPSNROB_R73         RES_K(47)
69#define COPSNROB_R74         RES_K(1)
70#define COPSNROB_R75         RES_K(1)
71#define COPSNROB_R76         RES_K(12)
72#define COPSNROB_R77         RES_K(33)
73#define COPSNROB_R78         RES_K(100)
74#define COPSNROB_R79         RES_K(2.2)
75#define COPSNROB_R80         RES_K(1)
76#define COPSNROB_R81         RES_K(8.2)
77#define COPSNROB_R82         RES_K(3.9)
78#define COPSNROB_R83         RES_K(27)
79#define COPSNROB_R84         RES_K(15)
80#define COPSNROB_R85         (330)
81#define COPSNROB_R86         RES_K(330)
82#define COPSNROB_R87         (820)
83#define COPSNROB_R88         RES_K(1)
84#define COPSNROB_R89         RES_K(1)
85#define COPSNROB_R92         RES_K(100)
86#define COPSNROB_R93         RES_K(100)
87#define COPSNROB_R94         RES_K(10)
88
89/* Parts List - Capacitors */
90#define COPSNROB_C3            CAP_U(100)
91#define COPSNROB_C12         CAP_U(0.1)
92#define COPSNROB_C13         CAP_U(0.1)
93#define COPSNROB_C17         CAP_U(0.001)
94#define COPSNROB_C19         CAP_U(10)
95#define COPSNROB_C20         CAP_U(0.01)
96#define COPSNROB_C23         CAP_U(0.1)
97#define COPSNROB_C24         CAP_U(0.22)
98#define COPSNROB_C28         CAP_U(1)
99#define COPSNROB_C30         CAP_U(0.01)
100#define COPSNROB_C31         CAP_U(0.1)
101#define COPSNROB_C32         CAP_U(5)
102#define COPSNROB_C33         CAP_U(10)
103#define COPSNROB_C36         CAP_U(100)
104#define COPSNROB_C39         CAP_U(0.1)
105#define COPSNROB_C37         CAP_U(0.1)
106#define COPSNROB_C40         CAP_U(0.1)
107#define COPSNROB_C41         CAP_U(0.03)
108#define COPSNROB_C42         CAP_U(0.047)
109#define COPSNROB_C43         CAP_U(0.047)
110#define COPSNROB_C55         CAP_U(0.1)
111#define COPSNROB_C58         CAP_U(0.1)
112#define COPSNROB_C59         CAP_U(0.1)
113
114/* Timing values */
115#define COPSNROB_2V            (15750/2/2)   /* has to be verified */
116
117
118static const discrete_555_desc copsnrob_motor23_555_1 =
119{
120   DISC_555_OUT_SQW,
121   5, DEFAULT_555_VALUES
122};
123
124static const discrete_555_desc copsnrob_motor23_555_2 =
125{
126   DISC_555_OUT_ENERGY | DISC_555_TRIGGER_IS_VOLTAGE,
127   5, DEFAULT_555_VALUES
128};
129
130static const discrete_op_amp_filt_info copsnrob_motor23_filter =
131{
132   COPSNROB_R28, 0, COPSNROB_R87, 0, COPSNROB_R86,               /* r1, r2, r3, r4, rF */
133   COPSNROB_C42, COPSNROB_C43, 0,                           /* c1, c2, c3 */
134   5.0 * RES_VOLTAGE_DIVIDER(COPSNROB_R88, COPSNROB_R89), 5, 0      /* vRef, vP, vN */
135};
136
137static const discrete_dac_r1_ladder copsnrob_crash_dac =
138{
139   4,                                          /* ladderLength */
140   {COPSNROB_R81, COPSNROB_R82, COPSNROB_R79, COPSNROB_R80},
141   0, 0, 0, COPSNROB_C58                           /* vBias, rBias, rGnd, cFilter */
142};
143
144static const discrete_mixer_desc copsnrob_final_mixer01 =
145{
146   DISC_MIXER_IS_RESISTOR,
147   {COPSNROB_R21, COPSNROB_R25, COPSNROB_R33, COPSNROB_R70, COPSNROB_R71},
148   {0}, {0}, 0, COPSNROB_R35, 0, COPSNROB_C59,            /* r_node{}, c{}, rI, rF, cF, cAmp */
149   0, 1                                       /* vRef, gain */
150};
151
152static const discrete_dac_r1_ladder copsnrob_motor01_cc_dac =
153{
154   1,                              /* ladderLength */
155   {COPSNROB_R56},
156   5.0 - 0.5, COPSNROB_R58, COPSNROB_R57, COPSNROB_C33   /* vBias; rBias; rGnd; cFilter */
157};
158
159static const discrete_dac_r1_ladder copsnrob_motor01_out_dac =
160{
161   4,                              /* ladderLength */
162   {COPSNROB_R20, COPSNROB_R18, 0, COPSNROB_R19},
163   0, 0, 0, COPSNROB_C12               /* vBias; rBias; rGnd; cFilter */
164};
165
166static const discrete_mixer_desc copsnrob_final_mixer23 =
167{
168   DISC_MIXER_IS_RESISTOR,
169   {COPSNROB_R93, COPSNROB_R92, COPSNROB_R72, COPSNROB_R69, COPSNROB_R16},
170   {0}, {0}, 0, COPSNROB_R94, 0, COPSNROB_C55,            /* r_node{}, c{}, rI, rF, cF, cAmp */
171   0, 1                                       /* vRef, gain */
172};
173
174static const discrete_dac_r1_ladder copsnrob_motor23_cv_dac =
175{
176   1,                              /* ladderLength */
177   {COPSNROB_R65},
178   5, RES_K(5), RES_K(10), COPSNROB_C36   /* vBias; rBias; rGnd; cFilter */
179};
180
181static const discrete_555_cc_desc copsnrob_motor01_555cc =
182{
183
184   DISC_555_OUT_COUNT_R | DISCRETE_555_CC_TO_DISCHARGE_PIN,
185   5,                     /* v_pos */
186   DEFAULT_555_CC_SOURCE,
187   1,                     /* v_out_high - ignored */
188   0.6                     /* v_cc_junction */
189};
190
191
192#define COPSNROB_MOTOR01_BASE_NODE      NODE_20
193#define COPSNROB_MOTOR23_BASE_NODE      NODE_30
194#define COPSNROB_NODE(_base, _num, _offset)      NODE_RELATIVE(_base, _num * 100 + _offset)
195#define COPSNROB_MOTOR01_NODE(_num, _offset)   COPSNROB_NODE(COPSNROB_MOTOR01_BASE_NODE, _num, _offset)
196#define COPSNROB_MOTOR23_NODE(_num, _offset)   COPSNROB_NODE(COPSNROB_MOTOR23_BASE_NODE, _num, _offset)
197
198
199/************************************************
200 * MOTOR0/1 Definition Start
201 ************************************************/
202#define COPSNROB_MOTOR01(_output, _input, _num)                                       \
203    /* simulate the RC connected to the transistor with a DAC */                        \
204   DISCRETE_DAC_R1(COPSNROB_MOTOR01_NODE(_num, 0),                                    \
205      _input, 4.2, &copsnrob_motor01_cc_dac)                  /* DATA; VDATA - TTL with light load */      \
206   DISCRETE_555_CC(COPSNROB_MOTOR01_NODE(_num, 1),               /* IC F2, pin 10 from IC F3, pin 9 */      \
207      1,                                             /* RESET - IC F3, pin 10 */      \
208      COPSNROB_MOTOR01_NODE(_num, 0),                        /* VIN */                  \
209      COPSNROB_R53, COPSNROB_C20, 0, 0, COPSNROB_R39,            /* R; C; RBIAS; RGND; RDIS */   \
210      &copsnrob_motor01_555cc)                                                \
211   /* IC D2, pin 12 and IC E3, pin 5 make a /4 counter */                              \
212   DISCRETE_COUNTER(COPSNROB_MOTOR01_NODE(_num, 2),            /* IC E3, pin 5 */         \
213      1, 0,                                          /* ENAB; RESET */         \
214      COPSNROB_MOTOR01_NODE(_num, 1),                        /* IC D2, pin 1 */         \
215      0, 3, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT)               /* MIN; MAX; DIR; INIT0; CLKTYPE */   \
216   DISCRETE_COUNTER_7492(COPSNROB_MOTOR01_NODE(_num, 3),         /* IC E3, pins 11, 9, & 8 */\
217      1, 0,                                          /* ENAB; RESET */         \
218      COPSNROB_MOTOR01_NODE(_num, 1),                        /* IC E3, pin 14 */         \
219      DISC_CLK_BY_COUNT)                                 /* CLKTYPE */            \
220   DISCRETE_TRANSFORM3(COPSNROB_MOTOR01_NODE(_num, 4),                                 \
221      COPSNROB_MOTOR01_NODE(_num, 2),                        /* INP0 */               \
222      COPSNROB_MOTOR01_NODE(_num, 3),   2,                     /* INP1, INP2 */         \
223      "02&2/12*+")                                    /* get bits ready for DAC */\
224   DISCRETE_DAC_R1(_output,                                                   \
225      COPSNROB_MOTOR01_NODE(_num, 4), 4.2, &copsnrob_motor01_out_dac)      /* DATA; VDATA - TTL with light load */
226
227/************************************************
228 * MOTOR0/1 Definition Start
229 ************************************************/
230
231
232/************************************************
233 * MOTOR2/3 Definition Start
234 ************************************************/
235#define COPSNROB_MOTOR23(_output, _input, _num)                                       \
236    /* simulate the RC connected to the 555 CV pin with a DAC */                        \
237   DISCRETE_DAC_R1(COPSNROB_MOTOR23_NODE(_num, 0),                                    \
238      _input, 4.2, &copsnrob_motor23_cv_dac)                  /* DATA; VDATA - TTL with light load */      \
239   DISCRETE_555_ASTABLE_CV(COPSNROB_MOTOR23_NODE(_num, 1),         /* IC J2, pin 5 */         \
240      1,                                             /* RESET */               \
241      COPSNROB_R64, COPSNROB_R42, COPSNROB_C24,                                    \
242      COPSNROB_MOTOR23_NODE(_num, 0),                        /* CTRLV - IC J2, pin 3 */   \
243      &copsnrob_motor23_555_1)                                                \
244   DISCRETE_CRFILTER_VREF(COPSNROB_MOTOR23_NODE(_num, 2),                              \
245      COPSNROB_MOTOR23_NODE(_num, 1),                           /* IN0 */            \
246      RES_3_PARALLEL(COPSNROB_R27, RES_K(10), RES_K(5)), COPSNROB_C17,   /* R is in parallel with 555 internal R */   \
247      5.0 * RES_VOLTAGE_DIVIDER(RES_2_PARALLEL(COPSNROB_R27, RES_K(10)), RES_K(5)))   /* VREF */   \
248   DISCRETE_555_MSTABLE(COPSNROB_MOTOR23_NODE(_num, 3),         /* IC J3, pin 9 */         \
249      1,                                             /* RESET */               \
250      COPSNROB_MOTOR23_NODE(_num, 2),                        /* IC J3, pin 8 */         \
251      COPSNROB_R41, COPSNROB_C23,                                                \
252      &copsnrob_motor23_555_2)                                                \
253   DISCRETE_OP_AMP_FILTER(_output,                           /* IC L4, pin 7 */         \
254      1,                                             /* ENAB */               \
255      COPSNROB_MOTOR23_NODE(_num, 3), 0,                     /* INP0; INP1 */         \
256      DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &copsnrob_motor23_filter)
257/************************************************
258 * MOTOR2/3 Definition End
259 ************************************************/
260
261
262/************************************************
263 * CUSTOM_NOISE Definition Start
264 * - output is energy
265 ************************************************/
266#define COPSNROB_CUSTOM_NOISE__FREQ      DISCRETE_INPUT(0)
267
268struct copsnrob_custom_noise_context
269{
270   int      flip_flop;
271   int      noise1_had_xtime;
272   int      noise2_had_xtime;
273   UINT8   high_byte;
274   UINT8   low_byte;
275   double   t_used;
276   double   t1;
277};
278
279#define COPSNROB_CUSTOM_NOISE_HIGH   4.2
280
281DISCRETE_STEP(copsnrob_custom_noise)
282{
283   DISCRETE_DECLARE_CONTEXT(copsnrob_custom_noise)
284
285   double   t_used = context->t_used;
286   double   t1 = context->t1;
287   double   x_time = 0;
288   UINT8   low_byte = context->low_byte;
289   UINT8   high_byte = context->high_byte;
290   UINT8   xnor_out;                     /* IC F2, pin 2 */
291   int      last_noise1_bit = (low_byte >> 4) & 0x01;
292   int      last_noise2_bit = (low_byte >> 5) & 0x01;
293
294   t_used += node->info->sample_time;
295
296   /* This clock will never run faster then the sample rate,
297     * so we do not bother to check.
298     */
299   if (t_used > t1)
300   {
301      /* calculate the overshoot time */
302      t_used -= t1;
303      context->flip_flop ^= 1;
304      /* clocks on low to high */
305      if (context->flip_flop)
306      {
307         int new_noise_bit;
308
309         /* shift */
310         xnor_out = (((low_byte >> 6) & 0x01) ^ (high_byte & 0x01)) ^ 0x01;
311         low_byte = (low_byte << 1) | ((high_byte >> 7) & 0x01);
312         high_byte = (high_byte << 1) | xnor_out;
313         if (high_byte == 0xff)      /* IC H1, pin 8 */
314            high_byte = 0;
315         context->low_byte = low_byte;
316         context->high_byte = high_byte;
317
318         /* Convert last switch time to a ratio */
319         x_time = t_used / node->info->sample_time;
320         /* use x_time if bit changed */
321         new_noise_bit = (low_byte >> 4) & 0x01;
322         if (last_noise1_bit != new_noise_bit)
323         {
324            node->output[0] = COPSNROB_CUSTOM_NOISE_HIGH * (new_noise_bit ? x_time : (1.0 - x_time));
325            context->noise1_had_xtime = 1;
326         }
327         new_noise_bit = (low_byte >> 5) & 0x01;
328         if (last_noise2_bit != new_noise_bit)
329         {
330            node->output[1] = COPSNROB_CUSTOM_NOISE_HIGH * (new_noise_bit ? x_time : (1.0 - x_time));
331            context->noise2_had_xtime = 1;
332         }
333      }
334   }
335   else
336   {
337      /* see if we need to move from x_time state to full state */
338      if (context->noise1_had_xtime)
339      {
340         node->output[0] = COPSNROB_CUSTOM_NOISE_HIGH * last_noise1_bit;
341         context->noise1_had_xtime = 0;
342      }
343      if (context->noise2_had_xtime)
344      {
345         node->output[1] = COPSNROB_CUSTOM_NOISE_HIGH * last_noise2_bit;
346         context->noise2_had_xtime = 0;
347      }
348   }
349
350   context->t_used = t_used;
351}
352
353DISCRETE_RESET(copsnrob_custom_noise)
354{
355   DISCRETE_DECLARE_CONTEXT(copsnrob_custom_noise)
356
357   context->t1 = 0.5 / COPSNROB_CUSTOM_NOISE__FREQ ;
358   context->flip_flop = 0;
359   context->low_byte = 0;
360   context->high_byte = 0;
361   context->noise1_had_xtime = 0;
362   context->noise2_had_xtime = 0;
363   context->t_used = 0;
364}
365
366static const discrete_custom_info copsnrob_custom_noise =
367{
368   DISCRETE_CUSTOM_MODULE( copsnrob_custom_noise, struct copsnrob_custom_noise_context),
369   NULL
370};
371/************************************************
372 * CUSTOM_NOISE Definition End
373 ************************************************/
374
375
376/************************************************
377 * CUSTOM_ZINGS_555_MONOSTABLE Definition Start
378 * - output is energy
379 ************************************************/
380#define COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__TRIG   DISCRETE_INPUT(0)
381#define COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__R      DISCRETE_INPUT(1)
382#define COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__C      DISCRETE_INPUT(2)
383
384struct copsnrob_zings_555_monostable_context
385{
386   double   rc;
387   double   exponent;
388   double   v_cap;
389   int      flip_flop;
390};
391
392DISCRETE_STEP(copsnrob_zings_555_monostable)
393{
394   DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_monostable)
395
396   const double v_threshold = 5.0 * 2 / 3;
397   const double v_out_high = 5.0 - 0.5;   /* light load */
398
399   int      ff_set = COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__TRIG < (5.0 / 3) ? 1 : 0;
400   int    flip_flop = context->flip_flop;
401   double   v_cap = context->v_cap;
402   double   x_time = 0;
403
404   /* From testing a real IC */
405   /* Trigger going low overides everything.  It forces the FF/Output high.
406     * If Threshold is high, the output will still go high as long as trigger is low.
407     * The output will then go low when trigger rises above it's 1/3VCC value.
408     * If threshold is below it's 2/3VCC value, the output will remain high.
409     */
410   if (ff_set)
411   {
412      flip_flop = 1;
413      context->flip_flop = flip_flop;
414   }
415
416   if (flip_flop)
417   {
418      double   v_diff = v_out_high - v_cap;
419
420      /* charge */
421      v_cap += v_diff * context->exponent;
422      /* no state change if trigger is low */
423      if (!ff_set && (v_cap > v_threshold))
424      {
425         double rc = context->rc;
426
427         flip_flop = 0;
428         context->flip_flop = flip_flop;
429         /* calculate overshoot */
430         x_time = rc * log(1.0 / (1.0 - ((v_cap - v_threshold) / v_diff)));
431         /* discharge the overshoot */
432         v_cap = v_threshold;
433         v_cap -= v_cap * RC_CHARGE_EXP_DT(rc, x_time);
434         x_time /= node->info->sample_time;
435      }
436   }
437   else
438   {
439      /* Optimization - already discharged */
440      if (v_cap == 0)
441         return;
442      /* discharge */
443      v_cap -= v_cap * context->exponent;
444      /* Optimization - close enough to 0 to be 0 */
445      if (v_cap < 0.000001)
446         v_cap = 0;
447   }
448   context->v_cap = v_cap;
449
450   if (x_time > 0)
451      node->output[0] = v_out_high * x_time;
452   else if (flip_flop)
453      node->output[0] = v_out_high;
454   else
455      node->output[0] = 0;
456}
457
458DISCRETE_RESET(copsnrob_zings_555_monostable)
459{
460   DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_monostable)
461
462   context->rc = COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__R * COPSNROB_CUSTOM_ZINGS_555_MONOSTABLE__C;
463   context->exponent = RC_CHARGE_EXP(context->rc);
464   context->v_cap = 0;
465   context->flip_flop = 0;
466   node->output[0] = 0;
467}
468
469static const discrete_custom_info copsnrob_zings_555_monostable =
470{
471   DISCRETE_CUSTOM_MODULE( copsnrob_zings_555_monostable, struct copsnrob_zings_555_monostable_context),
472   NULL
473};
474/************************************************
475 * CUSTOM_ZINGS_555_MONOSTABLE Definition End
476 ************************************************/
477
478
479/************************************************
480 * CUSTOM_ZINGS_555_ASTABLE Definition Start
481 * - output is energy
482 ************************************************/
483#define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__RESET   DISCRETE_INPUT(0)
484#define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1      DISCRETE_INPUT(1)
485#define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R2      DISCRETE_INPUT(2)
486#define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C1      DISCRETE_INPUT(3)
487#define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C2      DISCRETE_INPUT(4)
488
489#define COPSNROB_CUSTOM_ZINGS_555_ASTABLE__HIGH      4.5
490
491struct copsnrob_zings_555_astable_context
492{
493   double   r2c2;
494   double   r_total_cv;
495   double   exponent1;
496   double   exponent2;
497   double   v_cap1;
498   double   v_cap2;
499   int      flip_flop;
500};
501
502DISCRETE_STEP(copsnrob_zings_555_astable)
503{
504   DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_astable)
505
506   double   v_trigger, v_threshold;
507   double   v1 = COPSNROB_CUSTOM_ZINGS_555_ASTABLE__RESET;
508   double   v_cap1 = context->v_cap1;
509   double   v_cap2 = node->output[0];
510   double   dt = 0;
511   int      reset_active = (v1 < 0.7) ? 1 : 0;
512   int    flip_flop = context->flip_flop;
513
514   /* calculate voltage at CV pin */
515   /* start by adding currents */
516   double v_cv = 5.0 / RES_K(5);
517   v_cv += v1 / COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1;
518   /* convert to voltage */
519   v_cv *= context->r_total_cv;
520
521   /* The reset voltage also charges the CV cap */
522   double v_diff1 = v_cv - v_cap1;
523   /* optimization - if charged close enough to voltage */
524   if (fabs(v_diff1) < 0.000001)
525      v_cap1 = v_cv;
526   else
527      v_cap1 += v_diff1 * context->exponent1;
528   context->v_cap1 = v_cap1;
529
530   if (reset_active)
531   {
532      if (flip_flop)
533         context->flip_flop = 0;
534      /* we still need to discharge C2 */
535      /* Optimization - only discharge if needed */
536      if (v_cap2 != 0)
537      {
538         /* discharge */
539         v_cap2 -= v_cap2 * context->exponent2;
540         /* Optimization - close enough to 0 to be 0 */
541         if (v_cap2 < 0.000001)
542            node->output[0] = 0;
543         else
544            node->output[0] = v_cap2;
545      }
546      return;
547   }
548
549   v_threshold = v_cap1 * 2 / 3;
550   v_trigger = v_cap1 / 3;
551
552   /* This oscillator will never create a frequency greater then 1/2 the sample rate,
553     * so we won't worry about missing samples */
554   /* No need to optimize the charge circuit.  It always charges/discharges to a voltage
555     * greater then it will ever reach. */
556   if (flip_flop)
557   {
558      /* charge */
559      double v_diff2 = COPSNROB_CUSTOM_ZINGS_555_ASTABLE__HIGH - v_cap2;
560      v_cap2 += v_diff2 * context->exponent2;
561      if (v_cap2 > v_threshold)
562      {
563         double r2c2 = context->r2c2;
564
565         context->flip_flop = 0;
566         /* calculate overshoot */
567         dt = r2c2 * log(1.0 / (1.0 - ((v_cap2 - v_threshold) / v_diff2)));
568         /* discharge the overshoot */
569         v_cap2 = v_threshold;
570         v_cap2 -= v_cap2 * RC_CHARGE_EXP_DT(r2c2, dt);
571      }
572   }
573   else
574   {
575      /* discharge */
576      double v_diff2 = v_cap2;
577      v_cap2 -= v_diff2 * context->exponent2;
578      if (v_cap2 < v_trigger)
579      {
580         double r2c2 = context->r2c2;
581
582         context->flip_flop = 1;
583         /* calculate overshoot */
584         dt = r2c2 * log(1.0 / (1.0 - ((v_trigger - v_cap2) / v_diff2)));
585         /* charge the overshoot */
586         v_cap2 = v_trigger;
587         v_cap2 += (COPSNROB_CUSTOM_ZINGS_555_ASTABLE__HIGH - v_cap2) * RC_CHARGE_EXP_DT(r2c2, dt);
588      }
589   }
590   if (v_cap2 > 0)
591      node->output[0] = v_cap2;
592   else
593      node->output[0] = 0;
594}
595
596DISCRETE_RESET(copsnrob_zings_555_astable)
597{
598   DISCRETE_DECLARE_CONTEXT(copsnrob_zings_555_astable)
599
600   context->r_total_cv = RES_3_PARALLEL(COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1, RES_K(10), RES_K(5));
601   context->r2c2 = COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R2 * COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C2;
602   context->exponent1 = RC_CHARGE_EXP(COPSNROB_CUSTOM_ZINGS_555_ASTABLE__R1 * COPSNROB_CUSTOM_ZINGS_555_ASTABLE__C1);
603   context->exponent2 = RC_CHARGE_EXP(context->r2c2);
604   context->v_cap1 = 0;
605   context->flip_flop = 0;
606   node->output[0] = 0;      /* charge on C2 */
607}
608
609static const discrete_custom_info copsnrob_zings_555_astable =
610{
611   DISCRETE_CUSTOM_MODULE( copsnrob_zings_555_astable, struct copsnrob_zings_555_astable_context),
612   NULL
613};
614/************************************************
615 * CUSTOM_ZINGS_555_ASTABLE Definition End
616 ************************************************/
617
618
619DISCRETE_SOUND_START(copsnrob)
620
621   /************************************************
622     * Input register mapping
623     ************************************************/
624   DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR0_INV)
625   DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR1_INV)
626   DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR2_INV)
627   DISCRETE_INPUT_LOGIC(COPSNROB_MOTOR3_INV)
628/* !! DISABLED UNTIL ADDRESS IS FOUND !! */
629//  DISCRETE_INPUTX_LOGIC(COPSNROB_ZINGS_INV, 4, 0, 0)
630//  DISCRETE_INPUT_LOGIC(COPSNROB_FIRES_INV)
631   DISCRETE_INPUT_NOT(COPSNROB_CRASH_INV)               /* inverted for counter use */
632   DISCRETE_INPUT_LOGIC(COPSNROB_SCREECH_INV)
633   DISCRETE_INPUT_NOT(COPSNROB_AUDIO_ENABLE)            /* IC A1, pins 2 & 12 */
634
635/* These inputs are disabled until their address triggers are determined.
636 * Then these constants can be removed.
637 */
638   DISCRETE_CONSTANT(COPSNROB_ZINGS_INV, 4)   /* data bit will be normally high, when it goes low it triggers the one-shot which has a minimum on time of 0.2s */
639   DISCRETE_CONSTANT(COPSNROB_FIRES_INV, 4)   /* data bit will be normally high */
640
641   /************************************************
642     * MOTOR0/1
643     ************************************************/
644   COPSNROB_MOTOR01(COPSNROB_MOTOR0_SND, COPSNROB_MOTOR0_INV, 0)
645   COPSNROB_MOTOR01(COPSNROB_MOTOR1_SND, COPSNROB_MOTOR1_INV, 1)
646
647   /************************************************
648     * MOTOR2/3
649     ************************************************/
650   COPSNROB_MOTOR23(COPSNROB_MOTOR2_SND, COPSNROB_MOTOR2_INV, 0)
651   COPSNROB_MOTOR23(COPSNROB_MOTOR3_SND, COPSNROB_MOTOR3_INV, 1)
652
653   /************************************************
654     * CRASH
655     ************************************************/
656   DISCRETE_CUSTOM1(COPSNROB_NOISE_1,                  /* IC J2, pin 10 */
657      COPSNROB_2V,                              /* CLK */
658      &copsnrob_custom_noise)
659   /* COPSNROB_NOISE_2 derived from sub out of above custom module - IC J2, pin 11 */
660   /* We use the measured 555 timer frequency (IC M3) for speed */
661   DISCRETE_COUNTER(NODE_40,                        /* IC L2 */
662      NODE_41,                                 /* ENAB - IC L2, pin 14 */
663      COPSNROB_CRASH_INV,                           /* RESET - IC L2, pin 11 */
664      92,                                       /* IC L2, pin 4 - freq measured */
665      0, 15, DISC_COUNT_DOWN, 15, DISC_CLK_IS_FREQ)      /* MIN; MAX; DIR; INIT0; CLKTYPE */
666   DISCRETE_TRANSFORM2(NODE_41,                     /* IC M2, pin 3 - goes high at count 0 */
667      NODE_40, 0,   "01=!")                           /* -we will invert it for use by the counter module */
668   DISCRETE_SWITCH(NODE_42,                        /* IC L3 */
669      1, COPSNROB_NOISE_2, 0, NODE_40)               /* ENAB; SWITCH; INP0; INP1 */
670   DISCRETE_DAC_R1(COPSNROB_CRASH_SND,
671      NODE_42, 3.8,                              /* DATA; VDATA */
672      &copsnrob_crash_dac)
673
674   /************************************************
675     * SCREECH
676     ************************************************/
677    DISCRETE_CONSTANT(COPSNROB_SCREECH_SND, 0)
678
679   /************************************************
680     * FZ (Fires, Zings)
681     ************************************************/
682   DISCRETE_CUSTOM3(NODE_60,                     /* IC D3, pin 5 */
683      /* We can ignore R47 & R48 */
684      COPSNROB_ZINGS_INV,                        /* IC D3, pin 6 */
685      COPSNROB_R38, COPSNROB_C19,
686      &copsnrob_zings_555_monostable)
687   DISCRETE_CUSTOM5(NODE_61,                     /* IC D3, pin 8 & 12 */
688      NODE_60,                              /* IC D3, pin 10 */
689      COPSNROB_R36, COPSNROB_R37,
690      COPSNROB_C3, COPSNROB_C13,
691      &copsnrob_zings_555_astable)
692   /* FIX - do a better implemetation of IC L4 */
693   DISCRETE_CRFILTER_VREF(NODE_62,                  /* IC L4, pin 9 */
694      NODE_61,                              /* IN0 */
695      COPSNROB_R26, COPSNROB_C39,
696      5.0 * RES_VOLTAGE_DIVIDER(COPSNROB_R74, COPSNROB_R75))   /* VREF */
697   DISCRETE_GAIN(COPSNROB_FZ_SND,                  /* IC L4, pin 8 */
698      NODE_62,
699      COPSNROB_R73 / COPSNROB_R26)
700
701   /************************************************
702     * MIXER
703     ************************************************/
704    DISCRETE_MIXER5(NODE_90,                        /* IC B3, pin 3 */
705      COPSNROB_AUDIO_ENABLE,                        /* ENAB */
706      COPSNROB_MOTOR1_SND, COPSNROB_MOTOR0_SND, COPSNROB_FZ_SND, COPSNROB_SCREECH_SND, COPSNROB_CRASH_SND,
707      &copsnrob_final_mixer01)
708    DISCRETE_MIXER5(NODE_91,                        /* IC P3, pin 3 */
709      COPSNROB_AUDIO_ENABLE,                        /* ENAB */
710      COPSNROB_MOTOR3_SND, COPSNROB_MOTOR2_SND, COPSNROB_CRASH_SND, COPSNROB_SCREECH_SND, COPSNROB_FZ_SND,
711      &copsnrob_final_mixer23)
712    DISCRETE_OUTPUT(NODE_90, 32767.0*3.5)
713    DISCRETE_OUTPUT(NODE_91, 32767.0*3.5)
714DISCRETE_SOUND_END
715
716
717WRITE8_HANDLER( copsnrob_misc_w )
718{
719   device_t *device = space->machine->device("discrete");
720   copsnrob_state *state = space->machine->driver_data<copsnrob_state>();
721   UINT8 latched_data = state->ic_h3_data;
722   UINT8 special_data = data & 0x01;
723
724   /* ignore if no change */
725   if (((latched_data >> offset) & 0x01) == special_data)
726      return;
727
728   if (special_data)
729      latched_data |= 1 << offset;
730   else
731      latched_data &= ~(1 << offset);
732
733   switch (offset)
734   {
735      case 0x00:
736         discrete_sound_w(device, COPSNROB_MOTOR3_INV, special_data);
737         break;
738
739      case 0x01:
740         discrete_sound_w(device, COPSNROB_MOTOR2_INV, special_data);
741         break;
742
743      case 0x02:
744         discrete_sound_w(device, COPSNROB_MOTOR1_INV, special_data);
745         break;
746
747      case 0x03:
748         discrete_sound_w(device, COPSNROB_MOTOR0_INV, special_data);
749         break;
750
751      case 0x04:
752         discrete_sound_w(device, COPSNROB_SCREECH_INV, special_data);
753         break;
754
755      case 0x05:
756         discrete_sound_w(device, COPSNROB_CRASH_INV, special_data);
757         break;
758
759      case 0x06:
760         /* One Start */
761         set_led_status(space->machine, 0, !special_data);
762         break;
763
764      case 0x07:
765         discrete_sound_w(device, COPSNROB_AUDIO_ENABLE, special_data);
766         //sound_global_enable(space->machine, !special_data);
767         break;
768
769   }
770
771   state->ic_h3_data = latched_data;
772}
src/mame/audio/dkong.c
r9535r9536
2121/* Set to 1 to use faster custom mixer */
2222#define      DK_USE_CUSTOM   (1)
2323
24#define USE_LS629   (1)      /* set to use new LS624 code */
25
2624/* Issue surrounded by this define need to be analyzed and
2725 * reviewed at a later time.
2826 * Currently, the following issues exist:
r9535r9536
304302   double exp[2];
305303};
306304
307static DISCRETE_STEP( dkong_custom_mixer )
305DISCRETE_STEP( dkong_custom_mixer )
308306{
309   struct dkong_custom_mixer_context *context = (struct dkong_custom_mixer_context *)node->context;
307   DISCRETE_DECLARE_CONTEXT(dkong_custom_mixer)
310308
311309   int      in_1    = (int)DKONG_CUSTOM_IN1;
312310
r9535r9536
323321
324322#define   NE555_CV_R      RES_2_PARALLEL(RES_K(5), RES_K(10))
325323
326static DISCRETE_RESET( dkong_custom_mixer )
324DISCRETE_RESET( dkong_custom_mixer )
327325{
328   struct dkong_custom_mixer_context *context = (struct dkong_custom_mixer_context *)node->context;
326   DISCRETE_DECLARE_CONTEXT(dkong_custom_mixer)
329327
330328   /* everything is based on the input to the O.C. inverter */
331329   /* precalculate current from In1 */
r9535r9536
788786#define JR_R25      RES_K(47)
789787#define JR_R27      RES_K(10)
790788#define JR_R28      RES_K(100)
789#define JR_R33      RES_K(1)
790#define JR_R34      RES_K(1)
791#define JR_R35      RES_K(1)
791792
792793
793794#define JR_C13      CAP_U(4.7)
794795#define JR_C14      CAP_U(4.7)
795796#define JR_C15      CAP_U(22)
796797#define JR_C16      CAP_U(3.3)
797#define JR_C17      CAP_U(3.3) /* ??? illegible */
798#define JR_C17      CAP_U(3.3)
798799#define JR_C18      CAP_N(22)
799800#define JR_C19      CAP_N(4.7)
800801#define JR_C20      CAP_U(0.12)
r9535r9536
825826#define DISCRETE_LS123_INV(_N, _T, _R, _C) \
826827   DISCRETE_ONESHOTR(_N, 0, _T, TTL_HIGH, (0.25 * (_R) * (_C) * (1.0+700./(_R))), DISC_ONESHOT_RETRIG | DISC_ONESHOT_REDGE | DISC_OUT_ACTIVE_LOW)
827828
828#define DISCRETE_ENERGY_NAND(_N, _N1, _N2) DISCRETE_TRANSFORM3(_N, _N1, _N2, 1, "201*-")
829
830829static const discrete_mixer_desc dkongjr_mixer_desc =
831830   {DISC_MIXER_IS_RESISTOR,
832831      {JR_R5, JR_R3, JR_R6, JR_R4, JR_R25},
833832      {0,0,0,0,0},   /* no variable resistors */
834      {0,0,0,0,0},  /* no node capacitors */
833      {0,0,0,0,0},   /* no node capacitors */
835834      0, 0,
836      JR_C155,
837      JR_C161,
835      JR_C155,      /* cF */
836      JR_C161,      /* cAmp */
838837      0, 1};
839838
840#if (USE_LS629)
841839static const discrete_mixer_desc dkongjr_s1_mixer_desc =
842840{
843841   DISC_MIXER_IS_RESISTOR,
844842   {JR_R13, JR_R12},
845843   {0}, {0}, 0, 0, JR_C24, 0, 0, 1      /* r_node{}, c{}, rI, rF, cF, cAmp, vRef, gain */
846844};
847#else
848static const discrete_mixer_desc dkongjr_s1_mixer_desc =
849   {DISC_MIXER_IS_RESISTOR,
850      {JR_R13, JR_R12},
851      {0,0},   /* no variable resistors */
852      {0,0},  /* no node capacitors */
853      0, RES_K(90), /* Internal LS624 resistors ... */
854      JR_C24,
855      0,
856      0, 1};
857#endif
858845
859846static const discrete_lfsr_desc dkongjr_lfsr =
860847{
r9535r9536
871858   0                   /* Output bit */
872859};
873860
861#define DS_SOUND9_EN   DS_SOUND9_INV
862
874863static DISCRETE_SOUND_START(dkongjr)
875864
876865   /************************************************/
r9535r9536
878867   /************************************************/
879868
880869   /* DISCRETE_INPUT_DATA */
881   DISCRETE_INPUT_NOT(DS_SOUND0_INV)
882   DISCRETE_INPUT_NOT(DS_SOUND1_INV)
883   DISCRETE_INPUT_NOT(DS_SOUND2_INV)
884   DISCRETE_INPUT_NOT(DS_SOUND6_INV)
885   DISCRETE_INPUT_NOT(DS_SOUND7_INV)
886   DISCRETE_INPUTX_NOT(DS_SOUND9_INV, TTL_HIGH, 0, 0)
887   DISCRETE_INPUT_NOT(DS_DISCHARGE_INV)
888   //DISCRETE_INPUT_DATA(DS_DAC)
870   DISCRETE_INPUT_NOT(DS_SOUND0_INV)      /* IC 6J, pin 2 */
871   DISCRETE_INPUT_NOT(DS_SOUND1_INV)      /* IC 6J, pin 12 */
872   DISCRETE_INPUT_NOT(DS_SOUND2_INV)      /* IC 6J, pin 4 */
873   DISCRETE_INPUT_NOT(DS_SOUND6_INV)      /* unused */
874   DISCRETE_INPUT_NOT(DS_SOUND7_INV)      /* IC 5J, pin 12 */
875   DISCRETE_INPUT_LOGIC(DS_SOUND9_EN)      /* IC 7N pin 10 from IC 5J, pin 4 */
876   DISCRETE_INPUT_NOT(DS_DISCHARGE_INV)   /* IC 7H, pin 38 */
889877
890878   /************************************************
891     * SOUND0 / SOUND7  -
879     * SOUND0 - walking
892880     ************************************************/
893881
894882DISCRETE_TASK_START(1)
895   DISCRETE_LOGIC_INVERT(DS_SOUND7,DS_SOUND7_INV)
896   DISCRETE_COUNTER(NODE_100, 1, 0, NODE_118, 0, 0x3FFF, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT)
883   DISCRETE_COUNTER(NODE_100,               /* IC 6L */
884      1, 0,                           /* ENAB; RESET */
885      NODE_118,                        /* CLK - IC 6L, pin 10 */
886      0, 0x3FFF, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT | DISC_OUT_HAS_XTIME)
897887
898   DISCRETE_BIT_DECODE(NODE_101, NODE_100,  6, 1)   /*LS157 2A */
899   DISCRETE_BIT_DECODE(NODE_102, NODE_100,  3, 1)   /*LS157 2B */
900   DISCRETE_BIT_DECODE(NODE_103, NODE_100, 12, 1)  /*LS157 3A */
901   DISCRETE_BIT_DECODE(NODE_104, NODE_100, 11, 1)  /*LS157 3B */
888   DISCRETE_BIT_DECODE(NODE_101,            /* IC 6L, pin 6 */
889      NODE_100,  6, 0)                  /* output x_time logic */
890   DISCRETE_BIT_DECODE(NODE_102,            /* IC 6L, pin 7 */
891      NODE_100,  3, 0)                  /* output x_time logic */
892   DISCRETE_BIT_DECODE(NODE_103,            /* IC 6L, pin 2 */
893      NODE_100, 12, 0)                  /* output x_time logic */
894   DISCRETE_BIT_DECODE(NODE_104,            /* IC 6L, pin 1 */
895      NODE_100, 11, 0)                  /* output x_time logic */
902896
903   /* LS157 Switches */
904//  DISCRETE_SWITCH(NODE_105, 1, DS_SOUND7_INV, GND, NODE_113) /* Switch 1 from LS624 */
905   DISCRETE_SWITCH(NODE_106, 1, DS_SOUND7_INV, NODE_101, NODE_102) /* Switch 2 */
906   DISCRETE_SWITCH(NODE_107, 1, DS_SOUND7_INV, NODE_103, NODE_104) /* Switch 3 */
897   /* LS157 Switches - IC 6K */
898   DISCRETE_SWITCH(NODE_106,                  /* IC 6K, pin 7 */
899      1, DS_SOUND7_INV,                     /* ENAB; IC 6K, pin 1 */
900      NODE_101, NODE_102)                     /* IC 6K, pin 5; pin 6 */
901   DISCRETE_SWITCH(NODE_107,                  /* IC 6K, pin 9 */
902      1, DS_SOUND7_INV,                     /* ENAB; IC 6K, pin 1 */
903      NODE_103, NODE_104)                     /* IC 6K, pin 11; pin 10 */
907904
908   DISCRETE_LS123(NODE_110, DS_SOUND0_INV, JR_R8, JR_C14)
909   DISCRETE_SWITCH(NODE_111,                  /* invert voltage */
910      1, NODE_110,                        /* ENAB, SWITCH */
911      TTL_HIGH, 0)                        /* INP0, INP1 */
905   DISCRETE_LS123(NODE_110,                  /* IC 4K, pin 5 */
906      DS_SOUND0_INV,                        /* IC 4K, pin 10 */
907      JR_R8, JR_C14)
908   DISCRETE_SWITCH(NODE_111,                  /* IC 4F, pin 10 (inverter) */
909      1, NODE_110,                        /* ENAB; IC 4F, pin 11 */
910      4.14, 0.151)                        /* INP0; INP1 (measured) */
912911
913/* Breadboarded measurements IC 5K, pin 7
914   D.R. Oct 2010
915    V       Hz
916    0.151   3139
917    0.25    2883
918    0.5     2820
919    0.75    3336
920    1       3805
921    2       6498
922    3       9796
923    4       13440
924    4.14    13980
925*/
912   /* Breadboarded measurements IC 5K, pin 7
913       D.R. Oct 2010
914        V       Hz
915        0.151   3139
916        0.25    2883
917        0.5     2820
918        0.75    3336
919        1       3805
920        2       6498
921        3       9796
922        4       13440
923        4.14    13980
924    */
926925
927#if (USE_LS629)
928   DISCRETE_74LS629(NODE_113,                  /* IC 5K, pin 7 */
926   DISCRETE_74LS624(NODE_113,                  /* IC 5K, pin 7 */
929927      1,                                 /* ENAB */
930      NODE_111, DK_SUP_V,                     /* VMOD, VRNG */
931      JR_C18, JR_R10,   JR_C17,                  /* C, R_FREQ_IN, C_FREQ_IN */
932      DISC_LS624_OUT_ENERGY)
933#else
934   DISCRETE_RCFILTER(NODE_112, NODE_111, JR_R10, JR_C17)
935   DISCRETE_74LS624(NODE_113, NODE_112, DK_SUP_V, JR_C18, DISC_LS624_OUT_ENERGY)
936#endif
937   DISCRETE_SWITCH(NODE_105, 1, DS_SOUND7_INV, GND, NODE_113) /* Switch 1 from LS624 */
928      NODE_111, DK_SUP_V,                     /* VMOD - IC 5K, pin 2; VRNG */
929      JR_C18, JR_R10,   JR_C17, JR_R33,            /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
930      DISC_LS624_OUT_LOGIC_X)
931   DISCRETE_SWITCH(NODE_105,                  /* IC 6K, pin 4 */
932      1,                                 /* ENAB */
933      DS_SOUND7_INV,                        /* SWITCH, IC 6K, pin 1 */
934      GND, NODE_113)                        /* IC 6K, pin 2; pin 3 */
938935
939   DISCRETE_LOGIC_XOR(NODE_115, NODE_105, NODE_106)
936   DISCRETE_XTIME_XOR(NODE_115,               /* IC 6N, pin 3 */
937      NODE_105, NODE_106,                     /* IC 6N, pin 1; pin 2 */
938      0, 0)                              /* use x_time logic */
940939
941   DISCRETE_SWITCH(NODE_116,                  /* invert with TTL voltage */
942      1, NODE_107,                        /* ENAB, SWITCH */
943      TTL_HIGH, 0)                        /* INP0, INP1 */
940   DISCRETE_XTIME_INVERTER(NODE_116,            /* IC 5J, pin 8 */
941      NODE_107,                           /* IC 5J, pin 9 */
942      0.135, 4.15)                        /* measured Low/High */
944943
945/* Breadboarded measurements IC 5K, pin 10
946   D.R. Oct 2010
947    V       Hz
948    0.135   14450
949    0.25    13320
950    0.5     12980
951    0.75    15150
952    1       17270
953    2       28230
954    3       41910
955    4       56950
956    4.15    59400
957*/
944   /* Breadboarded measurements IC 5K, pin 10
945       D.R. Oct 2010
946        V       Hz
947        0.135   14450 - measured 74LS04 low
948        0.25    13320
949        0.5     12980
950        0.75    15150
951        1       17270
952        2       28230
953        3       41910
954        4       56950
955        4.15    59400 - measured 74LS04 high
956    */
958957
959#if (USE_LS629)
960   DISCRETE_74LS629(NODE_118,                  /* IC 5K, pin 10 */
958   DISCRETE_74LS624(NODE_118,                  /* IC 5K, pin 10 */
961959      1,                                 /* ENAB */
962      NODE_116, DK_SUP_V,                     /* VMOD, VRNG */
963      JR_C19, JR_R11, JR_C16,                  /* C, R_FREQ_IN, C_FREQ_IN */
964      DISC_LS624_OUT_COUNT_F)
965#else
966   DISCRETE_RCFILTER(NODE_117, NODE_116, JR_R11, JR_C16)
967   DISCRETE_74LS624(NODE_118, NODE_117, DK_SUP_V, JR_C19, DISC_LS624_OUT_COUNT_F)
968#endif
969
970   DISCRETE_LOGIC_NAND(NODE_120, NODE_115, NODE_110)
971   DISCRETE_MULTIPLY(DS_OUT_SOUND0, NODE_120, TTL_HIGH)
960      NODE_116, DK_SUP_V,                     /* VMOD - IC 5K, pin 1; VRNG */
961      JR_C19, JR_R11, JR_C16, JR_R33,            /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
962      DISC_LS624_OUT_COUNT_F_X)
963   DISCRETE_SWITCH(NODE_119, 1, NODE_110, 0, 1)   /* convert from voltage to x_time logic */
964   DISCRETE_XTIME_NAND(DS_OUT_SOUND0,            /* IC 5N, pin 11 */
965      NODE_119, NODE_115,                     /* IC 5N, pin 13; pin 12 */
966      0.2, 4.9)                           /* LOW; HIGH (1k pullup to 5V) */
972967DISCRETE_TASK_END()
973968
974969   /************************************************
r9535r9536
977972
978973DISCRETE_TASK_START(2)
979974   /* needs NODE_104 from TASK(1) ready */
980   DISCRETE_LS123(NODE_10, DS_SOUND1_INV, JR_R9, JR_C15)
981   DISCRETE_SWITCH(NODE_11,                  /* invert with TTL voltage */
982      1, NODE_104,                        /* ENAB, SWITCH */
983      TTL_HIGH, 0)                        /* INP0, INP1 */
984   DISCRETE_LOGIC_INVERT(NODE_12, NODE_10)
985   DISCRETE_MIXER2(NODE_13, 1, NODE_10, NODE_11, &dkongjr_s1_mixer_desc)
975   DISCRETE_LS123(NODE_10,                     /* IC 4K, pin 13 */
976      DS_SOUND1_INV,                        /* IC 4K, pin 8 */
977      JR_R9, JR_C15)
978   DISCRETE_SWITCH(NODE_11,                  /* IC 7N, pin 6 */
979      1, NODE_10,                           /* ENAB; SWITCH - IC 7N, pin 5 */
980      0.151, 4.14)                        /* measured Low/High */
981   DISCRETE_XTIME_INVERTER(NODE_12,            /* IC 7N, pin 4 */
982      NODE_104,                           /* IC 7N, pin 3 */
983      0.151, 4.14)                        /* measured Low/High */
984   DISCRETE_MIXER2(NODE_13, 1, NODE_11, NODE_12, &dkongjr_s1_mixer_desc)
986985
987/* Breadboarded measurements IC 8L, pin 10
988   D.R. Oct 2010
989    V       Hz
990    0.151   313
991    0.25    288
992    0.5     275
993    0.75    324
994    1       370
995    2       635
996    3       965
997    4       1325
998    4.14    1378
999*/
986   /* Breadboarded measurements IC 8L, pin 10
987       D.R. Oct 2010
988        V       Hz
989        0.151   313
990        0.25    288
991        0.5     275
992        0.75    324
993        1       370
994        2       635
995        3       965
996        4       1325
997        4.14    1378
998    */
1000999
1001#if (USE_LS629)
1002   DISCRETE_74LS629(NODE_14,                  /* IC 8L, pin 10 */
1000   DISCRETE_74LS624(NODE_14,                  /* IC 8L, pin 10 */
10031001      1,                                 /* ENAB */
1004      NODE_13, DK_SUP_V,                     /* VMOD, VRNG */
1002      NODE_13, DK_SUP_V,                     /* VMOD - IC 8L, pin 1, VRNG */
10051003      /* C_FREQ_IN is taken care of by the NODE_13 mixer */
1006      JR_C22, RES_2_PARALLEL(JR_R13, JR_R12), 0,   /* C, R_FREQ_IN, C_FREQ_IN */
1004      JR_C22, RES_2_PARALLEL(JR_R13, JR_R12), 0, JR_R35,   /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
10071005      DISC_LS624_OUT_ENERGY)
1008#else
1009   DISCRETE_74LS624( NODE_14, NODE_13, 0.98*DK_SUP_V, JR_C22, DISC_LS624_OUT_ENERGY)
1010#endif
1011   DISCRETE_RCDISC_MODULATED(NODE_15, NODE_12, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V)
1006
1007   DISCRETE_LOGIC_INVERT(NODE_15, NODE_10)         /* fake invert for NODE_16 */
1008   DISCRETE_RCDISC_MODULATED(NODE_16,            /* Q3, collector */
1009      NODE_15, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V)
10121010   /* The following circuit does not match 100%, however works.
10131011     * To be exact, we need a C-R-C-R circuit, we actually do not have.
10141012     */
1015   DISCRETE_CRFILTER_VREF(NODE_16, NODE_15, JR_R4, JR_C23, 2.5)
1016   DISCRETE_RCFILTER(DS_OUT_SOUND1, NODE_16, JR_R19, JR_C21)
1013   DISCRETE_CRFILTER_VREF(NODE_17, NODE_16, JR_R4, JR_C23, 2.5)
1014   DISCRETE_RCFILTER(DS_OUT_SOUND1, NODE_17, JR_R19, JR_C21)
10171015DISCRETE_TASK_END()
10181016
1019   /************************************************/
1020   /* SOUND2                                       */
1021   /************************************************/
1017   /************************************************
1018     * SOUND2 - climbing
1019     ************************************************/
10221020
10231021DISCRETE_TASK_START(1)
10241022   /* the noise source clock is a 74LS629 IC 7P, pin 10.
r9535r9536
10271025     * So for speed, I breadboarded and measured the frequency.
10281026     * Oct 2009, D.R.
10291027     */
1030   DISCRETE_LFSR_NOISE(NODE_21, 1, 1, 710, 1.0, 0, 0.5, &dkongjr_lfsr)
1031   DISCRETE_LS123_INV(NODE_25, DS_SOUND2_INV, JR_R17, JR_C27)
1032   DISCRETE_RCDISC_MODULATED(NODE_26, NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V)
1028   DISCRETE_LFSR_NOISE(NODE_21, 1, 1, 710, 1.0, 0, 0.5, &dkongjr_lfsr)      /* IC 3J & 4J */
1029   DISCRETE_LS123_INV(NODE_25,                  /* IC 8N, pin 13 (fake inverted for use by NODE_26) */
1030      DS_SOUND2_INV,                        /* IC 8N, pin 8 */
1031      JR_R17, JR_C27)
1032   DISCRETE_RCDISC_MODULATED(NODE_26,            /* Q2, collector */
1033      NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V)
10331034   /* The following circuit does not match 100%, however works.
10341035     * To be exact, we need a C-R-C-R circuit, we actually do not have.
10351036     */
r9535r9536
10421043     ************************************************/
10431044
10441045DISCRETE_TASK_START(1)
1045/* Breadboarded measurements IC 7P, pin 7
1046   D.R. Oct 2010
1047    V       Hz
1048    0.134   570
1049    0.25    538
1050    0.5     489
1051    0.75    560
1052    1       636
1053    2       1003
1054    3       1484
1055    4       2016
1056    4.16    2111
1057*/
1046   DISCRETE_XTIME_INVERTER(NODE_90,      /* IC 7N, pin 8 */
1047      DS_SOUND9_EN,                  /* IC 7N, pin 9 */
1048      0.134, 4.16)                  /* measured Low/High */
10581049
1059#if (USE_LS629)
1060   DISCRETE_74LS629(NODE_91,            /* IC 7P, pin 7 */
1050   /* Breadboarded measurements IC 7P, pin 7
1051       D.R. Oct 2010
1052        V       Hz
1053        0.134   570
1054        0.25    538
1055        0.5     489
1056        0.75    560
1057        1       636
1058        2       1003
1059        3       1484
1060        4       2016
1061        4.16    2111
1062    */
1063   DISCRETE_74LS624(NODE_91,            /* IC 7P, pin 7 */
10611064      1,                           /* ENAB */
1062      DS_SOUND9_INV, DK_SUP_V,         /* VMOD, VRNG */
1063      JR_C37, JR_R14, JR_C26,            /* C, R_FREQ_IN, C_FREQ_IN */
1064      DISC_LS624_OUT_ENERGY)
1065   DISCRETE_SWITCH(DS_OUT_SOUND9, 1, DS_SOUND9_INV, NODE_91, 0)
1066#else
1067   DISCRETE_LOGIC_INVERT(DS_SOUND9, DS_SOUND9_INV)
1068   DISCRETE_RCFILTER(NODE_90, DS_SOUND9_INV, JR_R14, JR_C26)
1069   DISCRETE_74LS624( NODE_92, NODE_90, DK_SUP_V, JR_C37, DISC_LS624_OUT_ENERGY)
1070   DISCRETE_ENERGY_NAND(NODE_93, NODE_92, DS_SOUND9)
1071   DISCRETE_MULTIPLY(DS_OUT_SOUND9, NODE_93, TTL_HIGH)
1072#endif
1065      NODE_90, DK_SUP_V,               /* VMOD - IC 7P, pin 2, VRNG */
1066      JR_C37, JR_R14, JR_C26, JR_R34,      /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
1067      DISC_LS624_OUT_LOGIC_X)
1068   DISCRETE_XTIME_NAND(DS_OUT_SOUND9,      /* IC 5N, pin 8 */
1069      DS_SOUND9_EN,                  /* IC 5N, pin 9 */
1070      NODE_91,                     /* IC 5N, pin 10 */
1071      0.2, 4.9)                     /* LOW, HIGH (1k pullup to 5V) */
10731072DISCRETE_TASK_END()
10741073
1075   /************************************************/
1076   /* DAC                                          */
1077   /************************************************/
1074   /************************************************
1075     * DAC
1076     ************************************************/
10781077
10791078DISCRETE_TASK_START(1)
10801079   DISCRETE_INPUT_BUFFER(DS_DAC, 0)
r9535r9536
10941093   DISCRETE_SALLEN_KEY_FILTER(DS_OUT_DAC, 1, NODE_171, DISC_SALLEN_KEY_LOW_PASS, &dkong_sallen_key_info)
10951094DISCRETE_TASK_END()
10961095
1097   /************************************************/
1098   /* Amplifier                                    */
1099   /************************************************/
1096   /************************************************
1097     * Amplifier
1098     ************************************************/
11001099
11011100DISCRETE_TASK_START(3)
11021101   DISCRETE_MIXER5(NODE_288, 1, DS_OUT_SOUND9, DS_OUT_SOUND0, DS_OUT_SOUND2, DS_OUT_SOUND1, DS_OUT_DAC, &dkongjr_mixer_desc)
r9535r9536
11041103   /* Amplifier: internal amplifier
11051104     * Just a 1:n amplifier without filters - just the output filter
11061105     */
1107   DISCRETE_CRFILTER(NODE_295,NODE_288, 1000, JR_C13)
1108#if (USE_LS629)
1109   DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 5)
1110#else
1111   DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 10)
1112#endif
1106   DISCRETE_CRFILTER(NODE_295, NODE_288, 1000, JR_C13)
1107   /* approx -1.805V to 2.0V when playing, but turn on sound peaks at 2.36V */
1108   /* we will set the full wav range to 1.18V which will cause clipping on the turn on
1109     * sound and explosions.  The real game would do this when the volume is turned up too.
1110     * Reducing MAME's master volume to 50% will provide full unclipped volume.
1111     */
1112   DISCRETE_OUTPUT(NODE_295, 32767.0/1.18)
11131113DISCRETE_TASK_END()
11141114
11151115DISCRETE_SOUND_END
r9535r9536
12531253static READ8_DEVICE_HANDLER( dkong_tune_r )
12541254{
12551255   dkong_state *state = device->machine->driver_data<dkong_state>();
1256   UINT8 page = latch8_r(state->dev_vp2,0) & 0x47;
1256   UINT8 page = latch8_r(state->dev_vp2, 0) & 0x47;
12571257
12581258   if ( page & 0x40 )
12591259   {
1260      return (latch8_r(device, 0) & 0x0F) | (dkong_voice_status_r(device,0)<<4);
1260      return (latch8_r(device, 0) & 0x0F) | (dkong_voice_status_r(device, 0) << 4);
12611261   }
12621262   else
12631263   {
12641264      /* printf("%s:rom access\n",cpuexec_describe_context(device->machine)); */
1265      return (state->snd_rom[0x1000+(page & 7)*256+offset]);
1265      return (state->snd_rom[0x1000 + (page & 7) * 256 + offset]);
12661266   }
12671267}
12681268
src/mame/audio/skyraid.c
r9535r9536
151151/* the high charge is clamped by the diode to 0.7V above the 5V line */
152152#define SKYRAID_MISSLE_CHARGE_PLUS   (5.0 + 0.7)
153153
154static DISCRETE_STEP( skyraid_missle_custom_charge )
154DISCRETE_STEP( skyraid_missle_custom_charge )
155155{
156   struct skyraid_missle_custom_charge_context *context = (struct skyraid_missle_custom_charge_context *)node->context;
156   DISCRETE_DECLARE_CONTEXT(skyraid_missle_custom_charge)
157157
158158   int in_1 = (SKYRAID_MISSLE_CUSTOM_IN1 == 0) ? 0 : 1;
159159
r9535r9536
163163   node->output[0] = SKYRAID_MISSLE_CHARGE_PLUS - context->v_cap;
164164}
165165
166static DISCRETE_RESET( skyraid_missle_custom_charge )
166DISCRETE_RESET( skyraid_missle_custom_charge )
167167{
168   struct skyraid_missle_custom_charge_context *context = (struct skyraid_missle_custom_charge_context *)node->context;
168   DISCRETE_DECLARE_CONTEXT(skyraid_missle_custom_charge)
169169
170170   /* everything is based on the input to the O.C. inverter */
171171
src/mame/audio/mario.c
r9535r9536
1515/* FIXME: Capacitor aging - only in for calibration now        */
1616/* Adjustments are needed to bring this close to recordings    */
1717
18/* FIXME: Awaiting verification. VCO range inputs are shown    */
19/* as connected to +5V on schematics. This does not match      */
20/* recordings                                                  */
21
22#define USE_LS629   (0)      /* set to use new LS624 code */
23
2418#define RUN_VCO_VOLTAGE      (0.0)   /* 5 in schematics */
2519
2620#define USE_8039   (0)         /* set to 1 to try 8039 hack */
r9535r9536
9387                           /* 27 verified, 30K in schematics       */
9488#define MR_R19      RES_K(22)      /* verified                             */
9589#define MR_R20      RES_K(22)      /* verified                             */
90#define MR_R34      RES_M(2)      /*                             */
91#define MR_R35      RES_M(1)      /*                             */
92#define MR_R36      RES_M(1.8)      /*                             */
9693#define MR_R40      RES_K(22)      /* verified                             */
9794#define MR_R41      RES_K(100)      /* verified                             */
9895#define MR_R42      RES_K(43)      /* verified                             */
r9535r9536
124121/* KT = 0.25 for diode circuit, 0.33 else */
125122
126123#define DISCRETE_LS123(_N, _T, _R, _C) \
127   DISCRETE_ONESHOTR(_N, 0, _T, TTL_HIGH, (0.25 * (_R) * (_C) * (1.0+700./(_R))), DISC_ONESHOT_RETRIG | DISC_ONESHOT_REDGE)
124   DISCRETE_ONESHOTR(_N, 0, _T, 1, (0.25 * (_R) * (_C) * (1.0+700./(_R))), DISC_ONESHOT_RETRIG | DISC_ONESHOT_REDGE)
128125#define DISCRETE_LS123_INV(_N, _T, _R, _C) \
129   DISCRETE_ONESHOTR(_N, 0, _T, TTL_HIGH, (0.25 * (_R) * (_C) * (1.0+700./(_R))), DISC_ONESHOT_RETRIG | DISC_ONESHOT_REDGE | DISC_OUT_ACTIVE_LOW)
126   DISCRETE_ONESHOTR(_N, 0, _T, 1, (0.25 * (_R) * (_C) * (1.0+700./(_R))), DISC_ONESHOT_RETRIG | DISC_ONESHOT_REDGE | DISC_OUT_ACTIVE_LOW)
130127
131/* speed optimization */
132/* pow(10, x) = exp(ln(10)*x) */
133#define pow10(x) exp(2.30258509299404568401*(x))
134128
135/* The following formula was derived from figures 2 and 3 in LS624 datasheet. Coefficients
136 * where calculated using least square approximation.
137 * This approach gives a bit better results compared to the first approach.
138 */
139//#define LS624_F(_C, _VI, _VR) pow10( -0.912029404 * log10(_C) + 0.243264328 * (_VI)
140//                - 0.091695877 * (_VR) -0.014110946 * (_VI) * (_VR) - 3.207072925)
141#define LS624_F(_in, _num)   pow10(context->k1_##_num + 0.243264328 * (_in) + context->k2_##_num * (_in))
142
143/************************************************************************
144 *
145 * Custom mario run
146 *
147 * Two VCO with XOR'd signal
148 *
149 * input[0]    - Enable / Amplitude
150 * input[1]    - In1 VCO Control 1
151 * input[2]    - In2 VCO Control 2
152 * input[3]    - C1 VCO 1 Cap
153 * input[4]    - C2 VCO 2 CAP
154 * input[5]    - R1
155 * input[6]    - C3
156 *
157 * Vout >--------------------------
158 *                                 |
159 *             C1                  |
160 *            -||-                 |
161 *           |    |                 -- +---
162 *           ------          ---       |AND|    R1
163 *  In1 >---+   Y1 +--------+   |      |(*)+---ZZZ--+------> Out
164 *          |      |        |XOR+------+---         |
165 *          |      |     ---+   |                   |
166 *          |      |    |    ---                   ---
167 *  In2 >---+   Y2 +----                           --- C3
168 *           ------                                 |
169 *           |    |                                Gnd
170 *            -||-
171 *             C2
172 ************************************************************************/
173#define MARIO_CUSTOM_VOUT      DISCRETE_INPUT(0)
174#define MARIO_CUSTOM_IN1      DISCRETE_INPUT(1)
175#define MARIO_CUSTOM_IN2      DISCRETE_INPUT(2)
176#define MARIO_CUSTOM_C1         DISCRETE_INPUT(3)
177#define MARIO_CUSTOM_C2         DISCRETE_INPUT(4)
178#define MARIO_CUSTOM_R1         DISCRETE_INPUT(5)
179#define MARIO_CUSTOM_C3         DISCRETE_INPUT(6)
180
181struct mario_custom_run_context
129   static const discrete_op_amp_info mario_dac_amp =
182130{
183   int      state1;
184   int      state2;
185   double   remain1;
186   double  remain2;
187   double  vc3;
188   double  r1_c3;
189   double   k1_1;
190   double   k2_1;
191   double   k1_2;
192   double   k2_2;
193   double   exponent_c3;
194   double   dt_in1_at_0;
195   double   dt_in2_at_0;
131   DISC_OP_AMP_IS_NORTON,
132   MR_R34, MR_R36, 0, MR_R35, 0,      /* r1, r2, r3, r4, c */
133   0, 5                     /* vN, vP */
196134};
197135
198static DISCRETE_STEP( mario_custom_run )
136   static const discrete_mixer_desc mario_mixer =
199137{
200   struct mario_custom_run_context *context = (struct mario_custom_run_context *)node->context;
201
202   double  sample_t = node->info->sample_time;
203   double  vn, exponent, t = 0;
204   int      update_exponent;
205   double   t1, t2;
206
207   if (EXPECTED(MARIO_CUSTOM_IN1 > 0.001))
208      t1   = 0.5 / LS624_F(MARIO_CUSTOM_IN1, 1);
209   else
210      /* close enough to 0, so we can speed things up by no longer call pow() */
211      t1 = context->dt_in1_at_0;
212
213   if (EXPECTED(MARIO_CUSTOM_IN2 > 0.001))
214      t2   = 0.5 / LS624_F(MARIO_CUSTOM_IN2, 2);
215   else
216      t2 = context->dt_in2_at_0;
217
218   while (sample_t > 0.0f)
219   {
220      /* state before time advance */
221      vn = (double) (context->state1 ^ context->state2);
222      vn *= MARIO_CUSTOM_VOUT;
223      update_exponent = 0;
224      if (context->remain1 < context->remain2)
225      {
226         if (EXPECTED(context->remain1 < sample_t))
227         {
228            t = context->remain1;
229            update_exponent = 1;
230            context->state1 ^= 1;
231            sample_t -= context->remain1;
232            context->remain2 -= context->remain1;
233            context->remain1 = t1;
234         }
235         else
236         {
237            context->remain1 -= sample_t;
238            context->remain2 -= sample_t;
239            sample_t = 0.0f;
240         }
241      }
242      else
243      {
244         if (EXPECTED(context->remain2 < sample_t))
245         {
246            t = context->remain2;
247            update_exponent = 1;
248            context->state2 ^= 1;
249            sample_t -= context->remain2;
250            context->remain1 -= context->remain2;
251            context->remain2 = t2;
252         }
253         else
254         {
255            context->remain1 -= sample_t;
256            context->remain2 -= sample_t;
257            sample_t = 0.0f;
258         }
259      }
260
261      if (EXPECTED(update_exponent))
262         exponent = RC_CHARGE_EXP_DT(context->r1_c3, t);
263      else
264         exponent = context->exponent_c3;
265      context->vc3 += (vn - context->vc3) * exponent;
266   }
267   node->output[0] = context->vc3;
268}
269
270static DISCRETE_RESET( mario_custom_run )
271{
272   struct mario_custom_run_context *context = (struct mario_custom_run_context *)node->context;
273
274   context->remain1 = 0.0;
275   context->remain2 = 0.0;
276   context->state1 = 0;
277   context->state2 = 0;
278   context->vc3 = 0;
279   context->r1_c3 = MARIO_CUSTOM_R1 * MARIO_CUSTOM_C3;
280   node->output[0] = 0;
281
282   /* precalculate some parts of the formulas for speed */
283   context->k1_1 = -0.912029404 * log10(MARIO_CUSTOM_C1) -0.091695877 * (RUN_VCO_VOLTAGE) - 3.207072925;
284   context->k2_1 = -0.014110946 * (RUN_VCO_VOLTAGE);
285   context->k1_2 = -0.912029404 * log10(MARIO_CUSTOM_C2) -0.091695877 * (RUN_VCO_VOLTAGE) - 3.207072925;
286   context->k2_2 = -0.014110946 * (RUN_VCO_VOLTAGE);
287   context->exponent_c3 = RC_CHARGE_EXP(context->r1_c3);
288
289   context->dt_in1_at_0 = 0.5 / LS624_F(0, 1);
290   context->dt_in2_at_0 = 0.5 / LS624_F(0, 2);
291}
292
293static const discrete_custom_info mario_custom_run_info =
294{
295   DISCRETE_CUSTOM_MODULE( mario_custom_run, struct mario_custom_run_context),
296   NULL
297};
298
299static const discrete_mixer_desc mario_mixer =
300{
301138   DISC_MIXER_IS_RESISTOR,
302139   {MR_R20, MR_R19, MR_R41, MR_R40},
303140   {0}, {0}, 0, 0, MR_C31, MR_C32, 0, 1   /* r_node{}, c{}, rI, rF, cF, cAmp, vRef, gain*/
304141};
305142
306#define LS629_FREQ_R_IN      RES_K(95)
143#define LS629_FREQ_R_IN      RES_K(90)
307144
308145static DISCRETE_SOUND_START(mario)
309146
310   /************************************************/
311   /* Input register mapping for mario             */
312   /************************************************/
147   /************************************************
148     * Input register mapping for mario
149     ************************************************/
313150
314151   /* DISCRETE_INPUT_DATA */
315    DISCRETE_INPUT_NOT(DS_SOUND7_INV)
152    DISCRETE_INPUT_NOT(DS_SOUND7_INV)            /* IC 7L, pin 8 */
316153
317   /************************************************/
318   /* SOUND0                                       */
319   /************************************************/
154   /************************************************
155     * SOUND0
156     ************************************************/
320157
321158    DISCRETE_TASK_START(1)
322    DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1)
323   DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, MR_C14)
324   DISCRETE_RCFILTER(NODE_11, NODE_10, MR_R6, MR_C3 )
325#if (USE_LS629)
326   DISCRETE_74LS629(NODE_12,                  /* IC 1J, pin 10 */
159    DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1)         /* IC 4C, pin 15 */
160   DISCRETE_LS123(NODE_10,                     /* IC 2H, pin 13 */
161      DS_SOUND0_INV,                        /* IC 2H, pin 2 */
162      MR_R17, MR_C14)
163
164/* Breadboarded measurements IC 1J, pin 10
165   D.R. Oct 2010
166    V       Hz
167    0.115   14470
168    0.250   15190
169    0.500   14980
170    0.750   18150
171    1.000   21690
172    2.000   38790
173    3.000   58580
174    4.000   79890
175*/
176
177/* Breadboarded measurements IC 2J, pin 10
178   D.R. Oct 2010
179    V       Hz
180    0.116   2458
181    0.250   2593
182    0.500   2540
183    0.750   3081
184    1.000   3676
185    2.000   6590
186    3.000   9974
187    4.000   13620
188*/
189
190   /* covert logic to measured voltage */
191   DISCRETE_XTIME_BUFFER(NODE_11,               /* IC 1H, pin 10 */
192      NODE_10,                           /* IC 1H, pin 11 */
193      0.115, 4.0)                           /* measured Low/High */
194   /* work out cap charge of RC in parallel with 2 74LS629s */
195   DISCRETE_RCFILTER(NODE_12, NODE_11, RES_3_PARALLEL(MR_R6, LS629_FREQ_R_IN, LS629_FREQ_R_IN), MR_C3 )
196   /* work out voltage drop of RC in parallel with 2 74LS629s */
197   DISCRETE_GAIN(NODE_13, NODE_12, RES_VOLTAGE_DIVIDER(MR_R6, RES_2_PARALLEL(LS629_FREQ_R_IN, LS629_FREQ_R_IN)))
198   DISCRETE_74LS624(NODE_14,                  /* IC 1J, pin 10 */
327199      1,                                 /* ENAB */
328      NODE_11, 5,                           /* VMOD, VRNG */
329      MR_C6, RES_2_PARALLEL(MR_R6, LS629_FREQ_R_IN),      /* C, R_FREQ_IN */
330      DISC_LS624_OUT_SQUARE)
331   DISCRETE_74LS629(NODE_13,                  /* IC 2J, pin 10 */
200      NODE_13, 5,                           /* VMOD -  IC 1J, pin 1; VRNG */
201      MR_C6, 0, 0, 0,                        /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
202      DISC_LS624_OUT_LOGIC_X)
203   DISCRETE_74LS624(NODE_15,                  /* IC 2J, pin 10 */
332204      1,                                 /* ENAB */
333      NODE_11, 5,                           /* VMOD, VRNG */
334      MR_C17, RES_2_PARALLEL(MR_R6, LS629_FREQ_R_IN),      /* C, R_FREQ_IN */
335      DISC_LS624_OUT_SQUARE)
336   DISCRETE_LOGIC_XOR(NODE_14,                  /* IC 1K, pin 6 */
337      NODE_12, NODE_13)
338   DISCRETE_SWITCH(DS_OUT_SOUND0,               /* IC 2K, pin 3 */
339      NODE_10, NODE_14,                     /* ENAB, SWITCH */
340      0, TTL_HIGH)                        /* INP0,INP1 */
341#else
342   DISCRETE_CUSTOM7(DS_OUT_SOUND0, NODE_10, NODE_11, NODE_11, MR_C6, MR_C17,
343         MR_MIXER_RPAR, MR_C31, &mario_custom_run_info)
344#endif
205      NODE_13, 5,                           /* VMOD - IC 2J, pin 1; VRNG */
206      MR_C17, 0, 0, 0,                     /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
207      DISC_LS624_OUT_LOGIC_X)
208   DISCRETE_XTIME_XOR(NODE_16,                  /* IC IC 1K, pin 6 */
209      NODE_14, NODE_15,                     /* IC 1K, pin 5; pin 4 */
210      0, 0)                              /* use x_time logic */
211   DISCRETE_XTIME_AND(DS_OUT_SOUND0,            /* IC 2K, pin 6 */
212      NODE_10, NODE_16,                     /* IC 2K, pin 5; pin 4 */
213      0.066, 3.8)                           /* LOW; HIGH (varies due to load 3.7 - 4.4) */
345214   DISCRETE_TASK_END()
346215
347   /************************************************/
348   /* SOUND1                                       */
349   /************************************************/
216   /************************************************
217     * SOUND1
218     ************************************************/
350219
351220   DISCRETE_TASK_START(1)
352   DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1)
353   DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, MR_C15)
354   DISCRETE_RCFILTER(NODE_21, NODE_20, MR_R7, MR_C4 )
355#if (USE_LS629)
356   DISCRETE_74LS629(NODE_22,                  /* IC 1J, pin 7 */
221   DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1)         /* IC 4C, pin 14 */
222   DISCRETE_LS123(NODE_20,                     /* IC 2H, pin 5 */
223      DS_SOUND1_INV,                        /* IC 2H, pin 10 */
224      MR_R18, MR_C15)
225
226/* Breadboarded measurements IC 1J, pin 7
227   D.R. Oct 2010
228    V       Hz
229    0.116   1380
230    0.250   1448
231    0.500   1419
232    0.750   1717
233    1.000   2053
234    2.000   3677
235    3.000   5561
236    4.000   7610
237*/
238
239/* Breadboarded measurements IC 2J, pin 7
240   D.R. Oct 2010
241    V       Hz
242    0.112   8030
243    0.250   8490
244    0.500   8326
245    0.750   10030
246    1.000   12000
247    2.000   21460
248    3.000   32540
249    4.000   44300
250*/
251
252   /* covert logic to measured voltage */
253   DISCRETE_XTIME_BUFFER(NODE_21,               /* IC 1H, pin 8 */
254      NODE_20,                           /* IC 1H, pin 9 */
255      0.115, 4.0)                           /* measured Low/High */
256   /* work out cap charge of RC in parallel with 2 74LS629s */
257   DISCRETE_RCFILTER(NODE_22, NODE_21, RES_3_PARALLEL(MR_R7, LS629_FREQ_R_IN, LS629_FREQ_R_IN), MR_C4 )
258   /* work out voltage drop of RC in parallel with 2 74LS629s */
259   DISCRETE_GAIN(NODE_23, NODE_22, RES_VOLTAGE_DIVIDER(MR_R7, RES_2_PARALLEL(LS629_FREQ_R_IN, LS629_FREQ_R_IN)))
260   DISCRETE_74LS624(NODE_24,                  /* IC 1J, pin 7 */
357261      1,                                 /* ENAB */
358      NODE_21, 5,                           /* VMOD, VRNG */
359      MR_C5, RES_2_PARALLEL(MR_R7, LS629_FREQ_R_IN),      /* C, R_FREQ_IN */
360      DISC_LS624_OUT_SQUARE)
361   DISCRETE_74LS629(NODE_23,                  /* IC 2J, pin 7 */
262      NODE_23, 5,                           /* VMOD, VRNG */
263      MR_C5, 0, 0, 0,                        /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
264      DISC_LS624_OUT_LOGIC_X)
265   DISCRETE_74LS624(NODE_25,                  /* IC 2J, pin 7 */
362266      1,                                 /* ENAB */
363      NODE_21, 5,                           /* VMOD, VRNG */
364      MR_C16, RES_2_PARALLEL(MR_R7, LS629_FREQ_R_IN),      /* C, R_FREQ_IN */
365      DISC_LS624_OUT_SQUARE)
366   DISCRETE_LOGIC_XOR(NODE_24,                  /* IC 1K, pin 3 */
367      NODE_22, NODE_23)
368   DISCRETE_SWITCH(DS_OUT_SOUND1,               /* IC 2K, pin 3 */
369      NODE_20, NODE_24,                     /* ENAB, SWITCH */
370      0, TTL_HIGH)                        /* INP0,INP1 */
371#else
372   DISCRETE_CUSTOM7(DS_OUT_SOUND1, NODE_20, NODE_21, NODE_21, MR_C5, MR_C16,
373      MR_MIXER_RPAR, MR_C31, &mario_custom_run_info)
374#endif
267      NODE_23, 5,                           /* VMOD, VRNG */
268      MR_C16, 0, 0, 0,                     /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
269      DISC_LS624_OUT_LOGIC_X)
270   DISCRETE_XTIME_XOR(NODE_26,                  /* IC IC 1K, pin 3 */
271      NODE_24, NODE_25,                     /* IC 1K, pin 1; pin 2 */
272      0, 0)                              /* use x_time logic */
273   DISCRETE_XTIME_AND(DS_OUT_SOUND1,            /* IC 2K, pin 3 */
274      NODE_20, NODE_26,                     /* IC 2K, pin 2; pin 1 */
275      0.066, 3.8)                           /* LOW; HIGH (varies due to load 3.7 - 4.4) */
375276   DISCRETE_TASK_END()
376277
377   /************************************************/
378   /* SOUND7                                       */
379   /************************************************/
278   /************************************************
279     * SOUND7
280     ************************************************/
380281
381282   DISCRETE_TASK_START(1)
382   DISCRETE_COUNTER(NODE_100,1,0,NODE_118,0,0xFFFF,DISC_COUNT_UP,0,DISC_CLK_BY_COUNT)
283   DISCRETE_COUNTER(NODE_100,                  /* IC 3H */
284      1, 0,                              /* ENAB; RESET */
285      NODE_118,                           /* CLK - IC 3H, pin 10 */
286      0, 0x3FFF, DISC_COUNT_UP, 0, DISC_CLK_BY_COUNT | DISC_OUT_HAS_XTIME)
287   DISCRETE_BIT_DECODE(NODE_102,               /* IC 3H, pin 7 */
288      NODE_100,  3, 0)                     /* output x_time logic */
289   DISCRETE_BIT_DECODE(NODE_104,               /* IC 3H, pin 1 */
290      NODE_100,  11, 0)                     /* output x_time logic */
383291
384   DISCRETE_BIT_DECODE(NODE_102, NODE_100, 3, 1)   //LS157 2B
385   DISCRETE_BIT_DECODE(NODE_104, NODE_100, 11, TTL_HIGH) //LS157 3B
292   DISCRETE_LS123(NODE_110,                  /* IC 4L, pin 13 */
293      DS_SOUND7_INV,                        /* IC 4L, pin 2 */
294      MR_R61, MR_C41)
295   DISCRETE_XTIME_INVERTER(NODE_111,            /* IC 4J, pin 8 */
296      NODE_110,                           /* IC 4J, pin 9 */
297      0.151, 4.14)                        /* measured Low/High */
386298
387   DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, MR_C41)
388   DISCRETE_TRANSFORM2(NODE_111, NODE_110, TTL_HIGH, "0!1*")
389   DISCRETE_RCFILTER(NODE_112, NODE_111, MR_R65, MR_C44)
390#if (USE_LS629)
391   DISCRETE_74LS629(NODE_113,                  /* IC 4K, pin 10 */
299/* Breadboarded measurements IC 4K, pin 10
300   D.R. Oct 2010
301    V       Hz
302    0.151   3139
303    0.25    2883
304    0.5     2820
305    0.75    3336
306    1       3805
307    2       6498
308    3       9796
309    4       13440
310    4.14    13980
311*/
312
313   DISCRETE_74LS624(NODE_113,                  /* IC 4K, pin 10 */
392314      1,                                 /* ENAB */
393      NODE_112, 5,                        /* VMOD, VRNG */
394      MR_C40, MR_R65,                        /* C, R_FREQ_IN */
395      DISC_LS624_OUT_LOGIC)
396#else
397   DISCRETE_74LS624(NODE_113, NODE_112, RUN_VCO_VOLTAGE /*VSS*/, MR_C40, DISC_LS624_OUT_LOGIC)
398#endif
315      NODE_111, 5,                        /* VMOD - IC 4K, pin 1; VRNG */
316      MR_C40, MR_R65, MR_C44, 0,               /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
317      DISC_LS624_OUT_LOGIC_X)
399318
400   DISCRETE_LOGIC_XOR(NODE_115, NODE_102, NODE_113)
319   DISCRETE_XTIME_XOR(NODE_115,               /* IC 6N, pin 3 */
320      NODE_113, NODE_102,                     /* IC 6N, pin 1; pin 2 */
321      0, 0)                              /* use x_time logic */
401322
402   DISCRETE_RCFILTER(NODE_117, NODE_104, MR_R64, MR_C43)
403#if (USE_LS629)
404   DISCRETE_74LS629(NODE_118,                  /* IC 4K, pin 7 */
323/* Breadboarded measurements IC 4K, pin 7
324   D.R. Oct 2010
325    V       Hz
326    0.135   14450
327    0.25    13320
328    0.5     12980
329    0.75    15150
330    1       17270
331    2       28230
332    3       41910
333    4       56950
334    4.15    59400
335*/
336
337   DISCRETE_XTIME_INVERTER(NODE_117,            /* IC 4J, pin 4 */
338      NODE_104,                           /* IC 4J, pin 3 */
339      0.135, 4.15)                        /* measured Low/High */
340   DISCRETE_74LS624(NODE_118,                  /* IC 4K, pin 7 */
405341      1,                                 /* ENAB */
406      NODE_117, 5,                        /* VMOD, VRNG */
407      MR_C39, MR_R64,                        /* C, R_FREQ_IN */
408      DISC_LS624_OUT_LOGIC)
409#else
410   DISCRETE_74LS624(NODE_118, NODE_117, RUN_VCO_VOLTAGE /*VSS*/, MR_C39, DISC_LS624_OUT_COUNT_F)
411#endif
412   DISCRETE_LOGIC_AND(NODE_120, NODE_115, NODE_110)
413   DISCRETE_MULTIPLY(DS_OUT_SOUND7, NODE_120, TTL_HIGH)
342      NODE_117, 5,                        /* VMOD - IC 4K, pin 2; VRNG */
343      MR_C39, MR_R64, MR_C43, 0,               /* C; R_FREQ_IN; C_FREQ_IN; R_RNG_IN */
344      DISC_LS624_OUT_LOGIC_X)
345
346   DISCRETE_XTIME_AND(DS_OUT_SOUND7,            /* IC 2K, pin 11 */
347      NODE_110, NODE_115,                     /* IC 2K, pin 12; pin 13 */
348      0.066, 4.07)                        /* LOW; HIGH (varies due to load 4.07 is lowest) */
414349   DISCRETE_TASK_END()
415350
416   /************************************************/
417   /* DAC                                          */
418   /************************************************/
351   /************************************************
352     * DAC
353     ************************************************/
419354
420355   /* following the resistor DAC are two opamps. The first is a 1:1 amplifier, the second
421356     * is a filter circuit. Simulation in LTSPICE shows, that the following is equivalent:
r9535r9536
423358
424359   DISCRETE_TASK_START(1)
425360   DISCRETE_INPUT_BUFFER(DS_DAC, 0)
426   DISCRETE_MULTIPLY(NODE_170, DS_DAC, TTL_HIGH/256.0)
427   DISCRETE_RCFILTER(DS_OUT_DAC, NODE_170, RES_K(750), CAP_P(200))
361   DISCRETE_MULTIPLY(NODE_170, DS_DAC, TTL_HIGH / 256.0)      /* MXR1 */
362   /* this stage reduces the gain of the DAC by 50%, so yes the volume is much lower then the walk sound */
363   DISCRETE_OP_AMP(NODE_171,                           /* IC 3M, pin 5 */
364      1,                                          /* ENAB */
365      NODE_170, 5,                                 /* IN0 - IC 3M, pin 6; IN1 - IC 3M, pin 1 */
366      &mario_dac_amp)
367   /* This provides a close simulation of the IC 3M, pin 10 filter circuit */
368   /* The Measured and SPICEd low freq gain is 1, it then has a high frequency
369     * drop close to the following RC filter. */
370   DISCRETE_RCFILTER_VREF(DS_OUT_DAC, NODE_171, RES_K(750), CAP_P(180), 2.5)
428371   DISCRETE_TASK_END()
429372
430373
431   /************************************************/
432   /* MIXER                                        */
433   /************************************************/
374   /************************************************
375     * MIXER
376     ************************************************/
434377
435378   DISCRETE_TASK_START(2)
436379   DISCRETE_MIXER4(NODE_297,
437380      1,                                             /* ENAB */
438381      DS_OUT_SOUND0, DS_OUT_SOUND1, DS_OUT_SOUND7, DS_OUT_DAC,
439382      &mario_mixer)
440   DISCRETE_OUTPUT(NODE_297, 32767.0/1.7)
383   /* approx -0.625V to 0.980V when playing, but turn on sound peaks at 2.38V */
384   /* we will set the full wav range to 1.19V which will cause clipping on the turn on
385     * sound.  The real game would do this when the volume is turned up too.
386     * Reducing MAME's master volume to 50% will provide full unclipped volume.
387     */
388   DISCRETE_OUTPUT(NODE_297, 32767.0/1.19)
441389   DISCRETE_TASK_END()
442390
443391DISCRETE_SOUND_END
r9535r9536
496444#endif
497445
498446    /* FIXME: convert to latch8 */
499   soundlatch_clear_w(space,0,0);
500   soundlatch2_clear_w(space,0,0);
501   soundlatch3_clear_w(space,0,0);
502   soundlatch4_clear_w(space,0,0);
503   I8035_P1_W(space,0x00); /* Input port */
504   I8035_P2_W(space,0xff); /* Port is in high impedance state after reset */
447   soundlatch_clear_w(space, 0, 0);
448   soundlatch2_clear_w(space, 0, 0);
449   soundlatch3_clear_w(space, 0, 0);
450   soundlatch4_clear_w(space, 0, 0);
451   I8035_P1_W(space, 0x00); /* Input port */
452   I8035_P2_W(space, 0xff); /* Port is in high impedance state after reset */
505453
506454   state->last = 0;
507455}
r9535r9536
524472
525473static READ8_HANDLER( mario_sh_t0_r )
526474{
527   return I8035_T_R(space,0);
475   return I8035_T_R(space, 0);
528476}
529477
530478static READ8_HANDLER( mario_sh_t1_r )
531479{
532   return I8035_T_R(space,1);
480   return I8035_T_R(space, 1);
533481}
534482
535483static READ8_HANDLER( mario_sh_tune_r )
r9535r9536
539487   UINT8 p2 = I8035_P2_R(space);
540488
541489   if ((p2 >> 7) & 1)
542      return soundlatch_r(space,offset);
490      return soundlatch_r(space, offset);
543491   else
544      return (SND[(0x1000 + (p2 & 0x0f)*256+offset) & mask]);
492      return (SND[(0x1000 + (p2 & 0x0f) * 256 + offset) & mask]);
545493}
546494
547495static WRITE8_DEVICE_HANDLER( mario_sh_sound_w )
548496{
549   discrete_sound_w(device,DS_DAC,data);
497   discrete_sound_w(device, DS_DAC, data);
550498}
551499
552500static WRITE8_HANDLER( mario_sh_p1_w )
553501{
554   I8035_P1_W(space,data);
502   I8035_P1_W(space, data);
555503}
556504
557505static WRITE8_HANDLER( mario_sh_p2_w )
558506{
559   I8035_P2_W(space,data);
507   I8035_P2_W(space, data);
560508}
561509
562510/****************************************************************
r9535r9536
572520   if (state->last == 1 && data == 0)
573521   {
574522      /* setting bit 0 high then low triggers IRQ on the sound CPU */
575      cputag_set_input_line_and_vector(space->machine, "audiocpu",0,HOLD_LINE,0xff);
523      cputag_set_input_line_and_vector(space->machine, "audiocpu", 0, HOLD_LINE, 0xff);
576524   }
577525
578526   state->last = data;
r9535r9536
580528
581529WRITE8_HANDLER( mario_sh_tuneselect_w )
582530{
583   soundlatch_w(space,offset,data);
531   soundlatch_w(space, offset, data);
584532}
585533
586534/* Sound 0 and 1 are pulsed !*/
r9535r9536
588536/* Mario running sample */
589537WRITE8_DEVICE_HANDLER( mario_sh1_w )
590538{
591   discrete_sound_w(device,DS_SOUND0_INP, 0);
539   discrete_sound_w(device, DS_SOUND0_INP, 0);
592540}
593541
594542/* Luigi running sample */
595543WRITE8_DEVICE_HANDLER( mario_sh2_w )
596544{
597   discrete_sound_w(device,DS_SOUND1_INP, 0);
545   discrete_sound_w(device, DS_SOUND1_INP, 0);
598546}
599547
600548/* Misc samples */
r9535r9536
611559            cputag_set_input_line(space->machine, "audiocpu",0,CLEAR_LINE);
612560         break;
613561      case 1: /* get coin */
614         I8035_T_W_AH(space,0,data & 1);
562         I8035_T_W_AH(space, 0,data & 1);
615563         break;
616564      case 2: /* ice */
617         I8035_T_W_AH(space,1,data & 1);
565         I8035_T_W_AH(space, 1, data & 1);
618566         break;
619567      case 3: /* crab */
620         I8035_P1_W_AH(space,0,data & 1);
568         I8035_P1_W_AH(space, 0, data & 1);
621569         break;
622570      case 4: /* turtle */
623         I8035_P1_W_AH(space,1,data & 1);
571         I8035_P1_W_AH(space, 1, data & 1);
624572         break;
625573      case 5: /* fly */
626         I8035_P1_W_AH(space,2,data & 1);
574         I8035_P1_W_AH(space, 2, data & 1);
627575         break;
628576      case 6: /* coin */
629         I8035_P1_W_AH(space,3,data & 1);
577         I8035_P1_W_AH(space, 3, data & 1);
630578         break;
631579      case 7: /* skid */
632         discrete_sound_w(space->machine->device("discrete"),DS_SOUND7_INP,data & 1);
580         discrete_sound_w(space->machine->device("discrete"), DS_SOUND7_INP, data & 1);
633581         break;
634582   }
635583}
r9535r9536
699647   MDRV_SPEAKER_STANDARD_MONO("mono")
700648   MDRV_SOUND_ADD("discrete", DISCRETE, 0)
701649   MDRV_SOUND_CONFIG_DISCRETE(mario)
702   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.5)
650   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1)
703651
704652MACHINE_CONFIG_END
705653
706654MACHINE_CONFIG_FRAGMENT( masao_audio )
707655
708   MDRV_CPU_ADD("audiocpu", Z80,24576000/16)   /* ???? */
656   MDRV_CPU_ADD("audiocpu", Z80, 24576000/16)   /* ???? */
709657   MDRV_CPU_PROGRAM_MAP(masao_sound_map)
710658
711659   MDRV_SOUND_START(mario)
src/mame/machine/cubocd32.c
r9535r9536
372372
373373static TIMER_CALLBACK(akiko_frame_proc)
374374{
375   akiko_state *state = (akiko_state *)param;
375   akiko_state *state = (akiko_state *)ptr;
376376   running_device *cdda = cdda_from_cdrom(machine, state->cdrom);
377377
378378   (void)param;
src/mame/machine/naomibd.c
r9535r9536
270270   { "toyfight", 0, 0x2ca85, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } },
271271   { "vtennis", 0, 0x3eb15, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } },
272272   { "wwfroyal",0, 0x627c3, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } },
273   { "zerogu2", 0, 0x7c010, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } },
273274   { "zombrvn", 0, 0x12b41, { 0, 0, 0, 0xffffffff, 0xffffffff, 0xffffffff } },
274275
275276   // games where the encryption is stacked with the ASIC's compression
src/mame/mamedriv.c
r9535r9536
17761776   DRIVER( lkageb )   /* bootleg */
17771777   DRIVER( lkageb2 )   /* bootleg */
17781778   DRIVER( lkageb3 )   /* bootleg */
1779   DRIVER( bygone )   /* prototype ? A53 (c) 1985 Taito Corporation */
17791780   DRIVER( msisaac )   /* A34 (c) 1985 Taito Corporation */
17801781   DRIVER( retofinv )   /* A37 (c) 1985 Taito Corporation */
17811782   DRIVER( retofinv1 )   /* bootleg */
r9535r9536
46824683   DRIVER( gundmct )   /* 2001.03 Mobile Suit Gundam: Federation vs. Zeon (cartridge) */
46834684                  /* 2001.04 Shakatto Tambourine Motto Norinori Shinkyoku Tsuika */
46844685   DRIVER( dygolf )   /* 2001.04 Dynamic Golf */
4685                  /* 2001.05 Zero Gunner 2 */
4686   DRIVER( zerogu2 )   /* 2001.05 Zero Gunner 2 */
46864687   DRIVER( monkeyba )   /* 2001.05 Monkey Ball */
46874688   DRIVER( cvsgd )      /* 2001.06 Capcom vs. SNK Pro */
46884689                  /* 2001.06 Crackin' DJ Part2 */
r9535r9536
48454846                  /* 2005.03 The Rumble Fish 2 */
48464847   DRIVER( ngbc )      /* 2005.07 NeoGeo Battle Colloseum */
48474848                  /* 2005.09 Samurai Spirits Tenkaichi Kenkakuden */
4848                  /* 2005.10 The King of Fighters XI */
4849   DRIVER( kofxi )      /* 2005.10 The King of Fighters XI */
48494850   DRIVER( fotns )      /* 2005.12 Hokuto no Ken */
48504851                  /* 2006.02 Metal Slug 6 */
48514852   DRIVER( xtrmhnt2 )         /* 2006.09 Extreme Hunting 2 Tournament Edition */
r9535r9536
83358336   DRIVER( cafetime )   /* 1992 Dynax */
83368337   DRIVER( cafedoll )   /* 1993 Dynax */
83378338   DRIVER( janptr96 )   /* 1996 Dynax */
8339   DRIVER( janptrsp )   /* 1997 Dynax */
83388340   DRIVER( sprtmtch )   /* "31" (c) 1989 Dynax + Fabtek license */
83398341   DRIVER( maya )      /* (c) 1994 Promat */
83408342   DRIVER( mayaa )      /* (c) 1994 Promat */
r9535r9536
83428344   DRIVER( blktouch )   /* (c) Yang Gi Co Ltd. */
83438345   DRIVER( mcnpshnt )   /* "33" Mahjong Campus Hunting 1990 Dynax */
83448346   DRIVER( 7jigen )   /* "37" 7jigen no Youseitachi 1990 Dynax */
8345   DRIVER( neruton )   /* "45" Neruton Haikujiradan 1990 Dynax */
8347   DRIVER( neruton )   /* "45" Mahjong Neruton Haikujiradan 1990 Dynax */
8348   DRIVER( nerutona )   /* "45" Mahjong Neruton Haikujiradan 1990 Dynax */
83468349   DRIVER( mjcomv1 )   /* 1991 Dynax */
83478350   DRIVER( shpeng )   /* (c) 1995 WSAC Systems */
83488351   DRIVER( tenkai )   /* 1991 Dynax */
r9535r9536
86828685   DRIVER( stonebal )   /* (c) 1994 */
86838686   DRIVER( stonebal2 )   /* (c) 1994 */
86848687
8688   DRIVER( shtstar )   /* (c) 1994 Nova */
8689
86858690   /* Dynamo games */
86868691   DRIVER( skeetsht )   /* (c) 1991 */
86878692   DRIVER( toursol )   /* (c) 1995 Dynamo */
r9535r9536
87648769   DRIVER( mgprem11 )   /* (c) 1995 */
87658770   DRIVER( lasstixx )   /* (c) 1995 */
87668771   DRIVER( mgnumber )   /* (c) 1995 */
8772   DRIVER( odeontw2 )   /* (c) 1999 */
87678773
87688774   /* American Laser Games */
87698775   DRIVER( alg_bios )
r9535r9536
92419247   DRIVER( pitbossma )   /* (c) 1994 Merit */
92429248   DRIVER( pbst30 )   /* (c) 1994 Merit */
92439249   DRIVER( pbst30b )   /* (c) 1993 Merit */
9250   DRIVER( megat2 )   /* (c) 1994 Merit */
92449251   DRIVER( megat3 )   /* (c) 1996 Merit */
92459252   DRIVER( megat3a )   /* (c) 1996 Merit */
92469253   DRIVER( megat3ca )   /* (c) 1996 Merit */
r9535r9536
93319338   DRIVER( royalcrdd )   /* (c) 1991 TAB-Austria */
93329339   DRIVER( royalcrde )   /* (c) 1991 TAB-Austria */
93339340   DRIVER( royalcrdf )   /* (c) 1991 Evona Electronic */
9341   DRIVER( royalcrdt )   /* (c) 1991 TAB-Austria orig */
93349342   DRIVER( royalcrdp )   /* (c) 1993 Digital Dreams */
93359343   DRIVER( lluck3x3 )   /* (c) 1991 TAB-Austria */
93369344   DRIVER( lluck4x1 )   /* (c) 1991 TAB-Austria */
r9535r9536
1046010468
1046110469   /* Blitz System Inc. */
1046210470   DRIVER( megadpkr )   /* (c) 1990 Blitz System Inc */
10471   DRIVER( megadpkrb )   /* (c) 1990 Blitz System Inc */
1046310472
1046410473   /* Olympic Video Gaming */
1046510474   DRIVER( hotstuff )
src/mame/includes/copsnrob.h
r9535r9536
44
55*************************************************************************/
66
7#include "sound/discrete.h"
8
9
710class copsnrob_state : public driver_device
811{
912public:
r9535r9536
2124
2225   /* misc */
2326   UINT8          misc;
27   UINT8          ic_h3_data;
2428};
2529
2630
r9535r9536
3236/*----------- defined in video/copsnrob.c -----------*/
3337
3438VIDEO_UPDATE( copsnrob );
39
40
41/*----------- defined in audio/copsnrob.c -----------*/
42
43DISCRETE_SOUND_EXTERN( copsnrob );
44WRITE8_HANDLER( copsnrob_misc_w );
src/mame/includes/lkage.h
r9535r9536
1313
1414   /* video-related */
1515   tilemap_t *bg_tilemap, *fg_tilemap, *tx_tilemap;
16   UINT8 bg_tile_bank, fg_tile_bank;
16   UINT8 bg_tile_bank, fg_tile_bank, tx_tile_bank;
1717
18   int sprite_dx;
19
1820   /* misc */
1921   int sound_nmi_enable, pending_nmi;
2022
src/mame/includes/djboy.h
r9535r9536
1818
1919   /* ROM banking */
2020   UINT8      bankxor;
21   UINT8      addr;
2221
2322   /* video-related */
2423   tilemap_t   *background;
src/mame/mame.mak
r9535r9536
411411   $(DRIVERS)/cloud9.o $(VIDEO)/cloud9.o \
412412   $(DRIVERS)/cmmb.o \
413413   $(DRIVERS)/cojag.o $(AUDIO)/jaguar.o $(VIDEO)/jaguar.o \
414   $(DRIVERS)/copsnrob.o $(MACHINE)/copsnrob.o $(VIDEO)/copsnrob.o \
414   $(DRIVERS)/copsnrob.o $(AUDIO)/copsnrob.o $(VIDEO)/copsnrob.o \
415415   $(DRIVERS)/cyberbal.o $(AUDIO)/cyberbal.o $(VIDEO)/cyberbal.o \
416416   $(DRIVERS)/destroyr.o \
417417   $(DRIVERS)/dragrace.o $(AUDIO)/dragrace.o $(VIDEO)/dragrace.o \
src/mame/video/lkage.c
r9535r9536
1111    lkage_scroll[0x05]: background layer vertical scroll
1212
1313    lkage_vreg[0]: 0x00,0x04
14        0x02: tx tile bank select (bygone only?)
1415        0x04: fg tile bank select
1516        0x08: ?
1617
r9535r9536
8283static TILE_GET_INFO( get_tx_tile_info )
8384{
8485   lkage_state *state = machine->driver_data<lkage_state>();
85   int code = state->videoram[tile_index];
86   int code = state->videoram[tile_index] + 256 * (state->tx_tile_bank ? 4 : 0);
8687   SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/);
8788}
8889
r9535r9536
124125      int flipx = attributes & 0x01;
125126      int flipy = attributes & 0x02;
126127      int height = (attributes & 0x08) ? 2 : 1;
127      int sx = source[0] - 15;
128      int sx = source[0] - 15 + state->sprite_dx;
128129      int sy = 256 - 16 * height - source[1];
129130      int sprite_number = source[3] + ((attributes & 0x04) << 6);
130131      int y;
r9535r9536
180181   flip_screen_y_set(screen->machine, ~state->vreg[2] & 0x02);
181182
182183   bank = state->vreg[1] & 0x08;
184
183185   if (state->bg_tile_bank != bank)
184186   {
185187      state->bg_tile_bank = bank;
r9535r9536
193195      tilemap_mark_all_tiles_dirty(state->fg_tilemap);
194196   }
195197
198   bank = state->vreg[0]&0x02;
199   if (state->tx_tile_bank != bank)
200   {
201      state->tx_tile_bank = bank;
202      tilemap_mark_all_tiles_dirty(state->tx_tilemap);
203   }
204
196205   tilemap_set_palette_offset(state->bg_tilemap, 0x300 + (state->vreg[1] & 0xf0));
197206   tilemap_set_palette_offset(state->fg_tilemap, 0x200 + (state->vreg[1] & 0xf0));
198207   tilemap_set_palette_offset(state->tx_tilemap, 0x110);
r9535r9536
212221      tilemap_draw(bitmap, cliprect, state->bg_tilemap, 0, 1);
213222      tilemap_draw(bitmap, cliprect, state->fg_tilemap, 0, (state->vreg[1] & 2) ? 2 : 4);
214223      tilemap_draw(bitmap, cliprect, state->tx_tilemap, 0, 4);
224      draw_sprites(screen->machine, bitmap, cliprect);
215225   }
216226   else
217227   {
218228      tilemap_draw(bitmap, cliprect, state->tx_tilemap, TILEMAP_DRAW_OPAQUE, 0);
219229   }
220   draw_sprites(screen->machine, bitmap, cliprect);
230
221231   return 0;
222232}
src/mame/video/funworld.c
r9535r9536
88
99  Games running on this hardware:
1010
11  * Jolly Card (austrian),                            TAB-Austria,        1985.
12  * Jolly Card (3x3 deal),                            TAB-Austria,        1985.
11  * Jolly Card (austrian),                            TAB Austria,        1985.
12  * Jolly Card (3x3 deal),                            TAB Austria,        1985.
1313  * Jolly Card Professional 2.0 (MZS Tech),           MZS Tech,           1993.
1414  * Jolly Card Professional 2.0 (Spale Soft),         Spale Soft,         2000.
1515  * Jolly Card (Evona Electronic),                    Evona Electronic    1998.
16  * Jolly Card (croatian, set 1),                     TAB-Austria,        1985.
16  * Jolly Card (croatian, set 1),                     TAB Austria,        1985.
1717  * Jolly Card (croatian, set 2),                     Soft Design,        1993.
1818  * Jolly Card (italian, blue TAB board, encrypted),  bootleg,            199?.
1919  * Jolly Card (italian, encrypted bootleg),          bootleg,            1990.
r9535r9536
3333  * Pot Game (italian),                               C.M.C.,             1996.
3434  * Bottle 10 (italian, set 1),                       C.M.C.,             1996.
3535  * Bottle 10 (italian, set 2),                       C.M.C.,             1996.
36  * Royal Card (austrian, set 1),                     TAB-Austria,        1991.
37  * Royal Card (austrian, set 2),                     TAB-Austria,        1991.
38  * Royal Card (austrian/polish, set 3),              TAB-Austria,        1991.
39  * Royal Card (austrian, set 4),                     TAB-Austria,        1991.
40  * Royal Card (austrian, set 5),                     TAB-Austria,        1991.
41  * Royal Card (austrian, set 6),                     TAB-Austria,        1991.
36  * Royal Card (austrian, set 1),                     TAB Austria,        1991.
37  * Royal Card (austrian, set 2),                     TAB Austria,        1991.
38  * Royal Card (austrian/polish, set 3),              TAB Austria,        1991.
39  * Royal Card (austrian, set 4),                     TAB Austria,        1991.
40  * Royal Card (austrian, set 5),                     TAB Austria,        1991.
41  * Royal Card (austrian, set 6),                     TAB Austria,        1991.
42  * Royal Card (TAB original),                        TAB Austria,        1991.
4243  * Royal Card (slovak, encrypted),                   Evona Electronic,   1991.
4344  * Royal Card Professional 2.0,                      Digital Dreams,     1993.
44  * Lucky Lady (3x3 deal),                            TAB-Austria,        1991.
45  * Lucky Lady (4x1 aces),                            TAB-Austria,        1991.
45  * Lucky Lady (3x3 deal),                            TAB Austria,        1991.
46  * Lucky Lady (4x1 aces),                            TAB Austria,        1991.
4647  * Magic Card II (bulgarian),                        Impera,             1996.
4748  * Magic Card II (green TAB or Impera board),        Impera,             1996.
4849  * Magic Card II (blue TAB board, encrypted),        Impera,             1996.
src/mame/drivers/copsnrob.c
r9535r9536
3838
3939    I/O Write:
4040
41    0500-0503 Direction of the cars
42    0504-0507 (sounds/enable) - 0506: LED 1
41    0500-0507 (sounds/enable) - 0506: LED 1
4342    0600      Beer Truck Y
4443    0700-07ff Beer Truck Sync Area
4544    0800-08ff Bullets RAM
r9535r9536
7675
7776/*************************************
7877 *
79 *  LEDs
78 *  I/O
8079 *
8180 *************************************/
8281
8382static READ8_HANDLER( copsnrob_misc_r )
8483{
85   copsnrob_state *state = space->machine->driver_data<copsnrob_state>();
86   return state->misc | (input_port_read(space->machine, "IN0") & 0x80);
84   return input_port_read(space->machine, "IN0") & 0x80;
8785}
8886
89static WRITE8_HANDLER( copsnrob_misc_w )
87static WRITE8_HANDLER( copsnrob_misc2_w )
9088{
9189   copsnrob_state *state = space->machine->driver_data<copsnrob_state>();
90
9291   state->misc = data & 0x7f;
93   set_led_status(space->machine, 1, ~data & 0x40);
92   /* Multi Player Start */
93   set_led_status(space->machine, 1, !((data >> 6) & 0x01));
9494}
9595
96static WRITE8_HANDLER( copsnrob_led_w )
97{
98   set_led_status(space->machine, 0, ~data & 0x01);
99}
10096
10197
102
10398/*************************************
10499 *
105100 *  Main CPU memory handlers
r9535r9536
109104static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
110105   ADDRESS_MAP_GLOBAL_MASK(0x1fff)
111106   AM_RANGE(0x0000, 0x01ff) AM_RAM
112   AM_RANGE(0x0500, 0x0503) AM_WRITEONLY
113//  AM_RANGE(0x0504, 0x0507) AM_WRITENOP  // ???
114   AM_RANGE(0x0506, 0x0506) AM_WRITE(copsnrob_led_w)
107   AM_RANGE(0x0500, 0x0507) AM_WRITE(copsnrob_misc_w)
115108   AM_RANGE(0x0600, 0x0600) AM_WRITEONLY AM_BASE_MEMBER(copsnrob_state, trucky)
116109   AM_RANGE(0x0700, 0x07ff) AM_WRITEONLY AM_BASE_MEMBER(copsnrob_state, truckram)
117110   AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE_MEMBER(copsnrob_state, bulletsram)
r9535r9536
122115//  AM_RANGE(0x1000, 0x1003) AM_WRITENOP
123116//  AM_RANGE(0x1000, 0x1000) AM_READ_PORT("IN0")
124117   AM_RANGE(0x1000, 0x1000) AM_READ(copsnrob_misc_r)
125   AM_RANGE(0x1000, 0x1000) AM_WRITE(copsnrob_misc_w)
126   AM_RANGE(0x1002, 0x100e) AM_READ(copsnrob_gun_position_r)
118   AM_RANGE(0x1000, 0x1000) AM_WRITE(copsnrob_misc2_w)
119   AM_RANGE(0x1002, 0x1002) AM_READ_PORT("CTRL1")
120   AM_RANGE(0x1006, 0x1006) AM_READ_PORT("CTRL2")
121   AM_RANGE(0x100a, 0x100a) AM_READ_PORT("CTRL3")
122   AM_RANGE(0x100e, 0x100e) AM_READ_PORT("CTRL4")
127123   AM_RANGE(0x1012, 0x1012) AM_READ_PORT("DSW")
128124   AM_RANGE(0x1016, 0x1016) AM_READ_PORT("IN1")
129125   AM_RANGE(0x101a, 0x101a) AM_READ_PORT("IN2")
r9535r9536
138134 *
139135 *************************************/
140136
137static const int gun_table[] = {0x3f, 0x5f, 0x6f, 0x77, 0x7b, 0x7d, 0x7e};
138
141139static INPUT_PORTS_START( copsnrob )
142140   PORT_START("IN0")
143141   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_VBLANK )
r9535r9536
166164   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
167165   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
168166
169   /* These input ports are fake */
170   PORT_START("FAKE0")
171   PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1)
172   PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1)
167   PORT_START("CTRL1")
168   PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(1)
173169   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
174170
175   PORT_START("FAKE1")
176   PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2)
177   PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2)
171   PORT_START("CTRL2")
172   PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(2)
178173   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
179174
180   PORT_START("FAKE2")
181   PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(3)
182   PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(3)
175   PORT_START("CTRL3")
176   PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(3)
183177   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
184178
185   PORT_START("FAKE3")
186   PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(4)
187   PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(4)
179   PORT_START("CTRL4")
180   PORT_BIT( 0x7f, 0x03, IPT_POSITIONAL_V ) PORT_POSITIONS(7) PORT_REMAP_TABLE(gun_table) PORT_SENSITIVITY(15) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_PLAYER(4)
188181   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
189182INPUT_PORTS_END
190183
r9535r9536
260253{
261254   copsnrob_state *state = machine->driver_data<copsnrob_state>();
262255
256   state_save_register_global(machine, state->ic_h3_data);
263257   state_save_register_global(machine, state->misc);
264258}
265259
r9535r9536
267261{
268262   copsnrob_state *state = machine->driver_data<copsnrob_state>();
269263
264   state->ic_h3_data = 0;
270265   state->misc = 0;
271266}
272267
r9535r9536
293288
294289   MDRV_PALETTE_INIT(copsnrob)
295290   MDRV_VIDEO_UPDATE(copsnrob)
291
292   /* sound hardware */
293   MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
294
295   MDRV_SOUND_ADD("discrete", DISCRETE, 0)
296   MDRV_SOUND_CONFIG_DISCRETE(copsnrob)
297   MDRV_SOUND_ROUTE(0, "lspeaker", 1.0)
298   MDRV_SOUND_ROUTE(1, "rspeaker", 1.0)
296299MACHINE_CONFIG_END
297300
298301
r9535r9536
341344 *
342345 *************************************/
343346
344GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, 0, ROT0, "Atari", "Cops'n Robbers", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_copsnrob )
347GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, 0, ROT0, "Atari", "Cops'n Robbers", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_copsnrob )
src/mame/drivers/gaelco.c
r9535r9536
636636 *
637637 *************************************/
638638
639ROM_START( bigkarnk )
639ROM_START( bigkarnk ) /* PCB silkscreened REF.901112 */
640640   ROM_REGION( 0x080000, "maincpu", 0 )   /* 68000 code */
641641   ROM_LOAD16_BYTE(   "d16",   0x000000, 0x040000, CRC(44fb9c73) SHA1(c33852b37afea15482f4a43cb045434660e7a056) )
642642   ROM_LOAD16_BYTE(   "d19",   0x000001, 0x040000, CRC(ff79dfdd) SHA1(2bfa440299317967ba2018d3a148291ae0c144ae) )
src/mame/drivers/naomi.c
r9535r9536
304304
305305
306306837-14114-01  171-8132B (C) Sega 2000
307|----------------------------------------------------------|
307|---------------------------------------------------------|
308308|      IC11  IC10  IC9                  ----CN2----       -|
309309|      21/22 19/20 17/18            IC44 IC45              |
310310|                                            IC27          |
r9535r9536
342342Derby Owners Club World Edition (Rev C) 840-0088C  22336C   7 (128Mb)  315-6319A  315-6213  not populated
343343Derby Owners Club World Edition (Rev D) 840-0088C  22336D   7 (128Mb)  315-6319A  315-6213  not populated  2 MaskROM are different from Rev C
344344Giga Wing 2                             841-0014C  22270    5 (128Mb)  315-6319A  315-6213  317-5064-COM
345Mobile Suit Gundam: Fed. VS Zeon (cart) 841-0017C  23638   10 (128Mb)  ?          ?         ?
345346Moero Justice Gakuen / Project Justice  841-0015C  23548A  11 (128Mb)  315-6319A  315-6213  317-5065-COM
346347Samba de Amigo Ver.2000                 840-0047C  23600    ? (128Mb)  315-6319A  315-6213  317-0295-COM
347348The King of Route 66 (Rev A)            840-0087C  23819A   ? (128Mb)  ?          ?         ?
348Wave Runner GP                          840-0064B  24059    6 (128Mb)  315-6319A  315-6213  not populated
349Virtua Striker 3 (Rev B)                840-0061C  23663B  11 (128Mb)  ?          315-6213  ?
350Virtua Striker 3 (Rev C)                840-0061C  23663C  11 (128Mb)  ?          315-6213  ?
351Wave Runner GP                          840-0064C  24059    6 (128Mb)  315-6319A  315-6213  not populated
349352Wild Riders                             840-0046C  23622   10 (128Mb)  315-6319A  315-6213  317-0301-COM
350353WWF Royal Rumble                        840-0040C  22261    8 (128Mb)  315-6319   315-6213  317-0285-COM
351354Zero Gunner 2                           841-0020C  23689    5 (128Mb)  315-6319A  315-6213  317-5073-COM
r9535r9536
44924495   NAOMI_BIOS
44934496   NAOMI_DEFAULT_EEPROM
44944497
4495   ROM_REGION( 0x8800000, "user1", ROMREGION_ERASEFF)
4498   ROM_REGION( 0x9000084, "user1", ROMREGION_ERASEFF)
44964499        ROM_LOAD( "epr-24212.ic11",   0x0000000, 0x400000, CRC(935453e8) SHA1(b34b3ac976229cba941843ffac9db420068999de) )
4497        ROM_LOAD32_WORD( "opr-24213a.ic17s", 0x0800000, 0x800000, CRC(2ea4810b) SHA1(67e6c4b246993ca775120d145e1b129cd743b358) )
4498        ROM_LOAD32_WORD( "opr-24214a.ic18",  0x0800002, 0x800000, CRC(0f574308) SHA1(699be7296650dcdb955048f2f5696a3b6d117afc) )
4499        ROM_LOAD32_WORD( "opr-24215a.ic19s", 0x1800000, 0x800000, CRC(e7fcb265) SHA1(ef05e330206adb0ebdba6df2ff7aaeb570c0c7e4) )
4500        ROM_LOAD32_WORD( "opr-24216a.ic20",  0x1800002, 0x800000, CRC(5101acc8) SHA1(2fbb4c8a450ecd070e2f18792a510e2cd4f7decb) )
4501        ROM_LOAD32_WORD( "opr-24224a.ic21s", 0x2800000, 0x800000, CRC(a5480237) SHA1(a250a45750d3d63428bf73c85cd510e4252da2c9) )
4502        ROM_LOAD32_WORD( "opr-24225a.ic22",  0x2800002, 0x800000, CRC(6b7e2856) SHA1(5b4a107ad654510b8282f4afe0c3856ca5a0fdf0) )
4503        ROM_LOAD32_WORD( "opr-24226a.ic23s", 0x3800000, 0x800000, CRC(5a7b85fa) SHA1(9b7ef6bbff01e83f14513d8ea42cdb66b74303d0) )
4504        ROM_LOAD32_WORD( "opr-24227a.ic24",  0x3800002, 0x800000, CRC(2b174c17) SHA1(9990268baf0091aef6cb3953b4da7fc2525d95af) )
4505        ROM_LOAD32_WORD( "opr-24228a.ic25s", 0x4800000, 0x800000, CRC(92690697) SHA1(5de562751305a385b929702fc3b3dfa4883be23b) )
4506        ROM_LOAD32_WORD( "opr-24229a.ic26",  0x4800002, 0x800000, CRC(fc3a6fbb) SHA1(1da1c011028c5b860a3d30e77a8dbdaabe997b63) )
4507        ROM_LOAD32_WORD( "opr-24230a.ic27s", 0x5800000, 0x800000, CRC(40da73c4) SHA1(c48e5d119f3f5c40cf78f6cc7fb5b62b153743a1) )
4508        ROM_LOAD32_WORD( "opr-24231a.ic28",  0x5800002, 0x800000, CRC(d04e33ec) SHA1(f7ed569bac47056955cb67f4ce0c1d36960f0c63) )
4509        ROM_LOAD32_WORD( "opr-24232a.ic29",  0x6800000, 0x800000, CRC(3bec96c6) SHA1(d228959dec168af1a1800e9b0f03692a68f10b99) )
4510        ROM_LOAD32_WORD( "opr-24233a.ic30s", 0x6800002, 0x800000, CRC(fc5bffec) SHA1(a6d63d80d11536c96d873c4ce492837ed83e3c9e) )
4511        ROM_LOAD32_WORD( "opr-24234a.ic31",  0x7800000, 0x800000, BAD_DUMP CRC(0dc58105) SHA1(524cad7019ba87db5ea13c3370082885fb09dd08) )
4512        ROM_LOAD32_WORD( "opr-24235a.ic32s", 0x7800002, 0x800000, BAD_DUMP CRC(1c55e3eb) SHA1(17a23c28d866b12f6249d513aea201edb2c43a68) )
4500        ROM_LOAD32_WORD( "opr-24213a.ic17s", 0x1000000, 0x800000, CRC(e24affe1) SHA1(5b4efbf9cdde8e49c26edba69b515d79b9b7acea) )
4501        ROM_LOAD32_WORD( "opr-24214a.ic18",  0x1000002, 0x800000, CRC(19bc5bca) SHA1(1c16ac929757a0c46456938bd9ccec7438130c66) )
4502        ROM_LOAD32_WORD( "opr-24215a.ic19s", 0x2000000, 0x800000, CRC(fed7750e) SHA1(61af9799a73ddc80e6763d44b23cbf8db497f144) )
4503        ROM_LOAD32_WORD( "opr-24216a.ic20",  0x2000002, 0x800000, CRC(635e5365) SHA1(e22f3fb0ac03963596e36592bfce791b0ee183e9) )
4504        ROM_LOAD32_WORD( "opr-24224a.ic21s", 0x3000000, 0x800000, CRC(a86b9368) SHA1(d73b8250700d368d3b194170b507a1ec1c818287) )
4505        ROM_LOAD32_WORD( "opr-24225a.ic22",  0x3000002, 0x800000, CRC(dbdebe45) SHA1(916897ea376175b48652efb58cdf22350d2a64cf) )
4506        ROM_LOAD32_WORD( "opr-24226a.ic23s", 0x4000000, 0x800000, CRC(43edd5a1) SHA1(0992c355d3d7d86dfe425de4b823fa4b64c0ee46) )
4507        ROM_LOAD32_WORD( "opr-24227a.ic24",  0x4000002, 0x800000, CRC(0e75009a) SHA1(f897ba64b6c6d98a080ee45a6a5f10cd6a764d61) )
4508        ROM_LOAD32_WORD( "opr-24228a.ic25s", 0x5000000, 0x800000, CRC(e1343e87) SHA1(8ea4eb85b9cbc1d1ef59c661357fc3dd473143d0) )
4509        ROM_LOAD32_WORD( "opr-24229a.ic26",  0x5000002, 0x800000, CRC(cca7f957) SHA1(8e2035c5d96fef849cf7517219dd6f1ae1e0f84b) )
4510        ROM_LOAD32_WORD( "opr-24230a.ic27s", 0x6000000, 0x800000, CRC(71f52068) SHA1(c21d2ce2fa2e83d0048cc52c8c7dbece11780e2f) )
4511        ROM_LOAD32_WORD( "opr-24231a.ic28",  0x6000002, 0x800000, CRC(16f3a1f1) SHA1(c3893d536ac0c16793accaa5aeb166fef4035630) )
4512        ROM_LOAD32_WORD( "opr-24232a.ic29",  0x7000000, 0x800000, CRC(4cdbd372) SHA1(745645c959689d4f2234aba37694e851b272528d) )
4513        ROM_LOAD32_WORD( "opr-24233a.ic30s", 0x7000002, 0x800000, CRC(70d638c6) SHA1(ef8bd9860a587dc76f3915047a5e408ab9f1f9b6) )
4514        ROM_LOAD32_WORD( "opr-24234a.ic31",  0x8000000, 0x800000, CRC(f78deb2a) SHA1(7103333c7f388545ebba8e8bb9443ec5ea90589b) )
4515   ROM_LOAD32_WORD( "opr-24235a.ic32s", 0x8000002, 0x800000, CRC(a2bb0d26) SHA1(bafd66250f8ad472eaa179bd73edc0dc22b681f5) )
4516   ROM_LOAD( "25lc040.ic13s", 0x9000000, 0x000084, CRC(19d77c96) SHA1(1d82af6b11f7fde93a3c4dd3561f1f2ab74c8d65) )
45134517ROM_END
45144518
45154519ROM_START( wrungp )
r9535r9536
45774581        ROM_LOAD( "mpr-22205.ic20", 0xa000000, 0x800000, CRC(7d523ae5) SHA1(7495082b7e83b6ee8f47660baba4c604d8ba2ff1) )
45784582ROM_END
45794583
4584ROM_START( zerogu2 )
4585   ROM_REGION( 0x200000, "maincpu", 0)
4586   NAOMI_BIOS
4587   NAOMI_DEFAULT_EEPROM
4588
4589   ROM_REGION( 0x5800000, "user1", ROMREGION_ERASEFF)
4590        ROM_LOAD( "epr23689.bin", 0x0000000, 0x0400000, CRC(ba42267c) SHA1(e8166e33cc2a4d9b2c57410235f531651b2e7f8a) )
4591        ROM_LOAD( "mpr23684.ic1", 0x0800000, 0x1000000, CRC(035aec98) SHA1(47ea834ca88aca3a72d2e7ef715a64603c40eacd) )
4592        ROM_LOAD( "mpr23685.ic2", 0x1800000, 0x1000000, CRC(d878ff99) SHA1(577be93d43f6113b91cf0967b710c6cf45131713) )
4593        ROM_LOAD( "mpr23686.ic3", 0x2800000, 0x1000000, CRC(a61b4d49) SHA1(842c54ad4e8192e491152ae5bb08daf5dd6b8c6c) )
4594        ROM_LOAD( "mpr23687.ic4", 0x3800000, 0x1000000, CRC(e125439a) SHA1(07e7339f3f53aeb0ebddf7a8ac3eb6d8f3fe9de6) )
4595        ROM_LOAD( "mpr23688.ic5", 0x4800000, 0x1000000, CRC(38412edf) SHA1(9cae06cf46e134531f47e64deedace449664f69a) )
4596ROM_END
4597
45804598/* GD-ROM titles - a PIC supplies a decryption key
45814599
45824600PIC stuff
r9535r9536
47384756/* 0043C */ GAME( 2000, crackndj, naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Crackin' DJ", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47394757/* 0044C */ GAME( 2001, csmash,   naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Cosmic Smash (JPN, USA, EXP, KOR, AUS) (Rev A)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47404758/* 0044C */ GAME( 2001, csmasho,  csmash,   naomi,    naomi,    naomi,    ROT0, "Sega",  "Cosmic Smash (JPN, USA, EXP, KOR, AUS) (original)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
4759/* 0064C */ GAME( 2001, wrungp,   naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Wave Runner GP", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47414760/* 0083C */ GAME( 2001, derbyoc2, naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Derby Owners Club II (JPN, USA, EXP, KOR, AUS)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47424761/* 0084C */ GAME( 2001, vtenis2c, naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Power Smash 2 / Virtua Tennis 2 (cartridge)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47434762/* 0088C */ GAME( 2001, derbyocw, naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev C)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47444763/* 0098C */ GAME( 2001, shootopl, naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Shootout Pool", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47454764/* 0128C */ GAME( 2001, shootpl,  naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Shootout Pool (JPN, USA, KOR, AUS) / Shootout Pool Prize (EXP)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
4746/* 00??C */ GAME( 2001, wrungp,   naomi,    naomi,    naomi,    naomi,    ROT0, "Sega",  "Wave Runner GP", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47474765/* 0140C */ GAME( 2004, kick4csh, naomi,    naomi,    naomi,    kick4csh, ROT0, "Sega",  "Kick '4' Cash", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47484766
47494767/* 841-xxxxx ("Licensed by Sega" games)*/
r9535r9536
47644782/* 0015C */ GAME( 2000, pjustic,  naomi,    naomi,    naomi,    naomi,    ROT0, "Capcom",          "Moero Justice Gakuen (JPN) / Project Justice (USA, EXP, KOR, AUS) (Rev A)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47654783/* 0016C */ GAME( 2000, deathcox, naomi,    naomi,    naomi,    naomi,    ROT0, "Ecole",           "Death Crimson OX (JPN, USA, EXP, KOR, AUS)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47664784/* 0017C */ GAME( 2001, gundmct,  naomi,    naomi,    naomi,    naomi,    ROT0, "Banpresto",       "Mobile Suit Gundam: Federation vs. Zeon (2001-02-08)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
4785/* ????? */ GAME( 2001, zerogu2,  naomi,    naomi,    naomi,    naomi,    ROT0, "Psikyo",          "Zero Gunner 2", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47674786/* HMG016007 */ GAME( 2001, hmgeo,    naomi,    naomi,    naomi,    naomi,    ROT0, "Capcom",      "Heavy Metal Geomatrix (JPN, USA, EUR, ASI, AUS) (Rev A)", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
47684787
47694788/* Games with incomplete dumps */
r9535r9536
60036022   NAOMI_DEFAULT_EEPROM
60046023
60056024   ROM_REGION( 0xb000000, "user1", ROMREGION_ERASEFF)
6006   ROM_LOAD("epr-23663.ic22",  0x0000000, 0x0400000, CRC(7007fec7) SHA1(523168f0b218d0bd5c815d65bf0caba2c8468c9d) )
6025   ROM_LOAD( "epr-23663c.ic22",0x0000000, 0x0400000, CRC(7007fec7) SHA1(523168f0b218d0bd5c815d65bf0caba2c8468c9d) )
60076026   ROM_LOAD( "mpr-23652.ic1",  0x0800000, 0x1000000, CRC(992758a2) SHA1(5e2a25c520c1795128e5026fc00d355c24852ded) )
60086027   ROM_LOAD( "mpr-23653.ic2",  0x1800000, 0x1000000, CRC(e210e932) SHA1(2f6f0a31c3e98b21f1ff3af1680e50b3535b130f) )
60096028   ROM_LOAD( "mpr-23654.ic3",  0x2800000, 0x1000000, CRC(91335971) SHA1(fc7599b836fb7995dd7da940e64b08b3c09cb180) )
r9535r9536
65146533static const UINT32 salmankt_key = 0x34b74;
65156534static const UINT32 maxspeed_key = 0x28dd6;
65166535static const UINT32 ftspeed_key  = 0x0762f;
6536static const UINT32 kofxi_key    = 0xa4be3;
65176537
65186538static DRIVER_INIT( atomiswave )
65196539{
r9535r9536
65546574AW_DRIVER_INIT(dolphin)
65556575AW_DRIVER_INIT(rumblef)
65566576AW_DRIVER_INIT(ngbc)
6577AW_DRIVER_INIT(kofxi)
65576578AW_DRIVER_INIT(kofnw)
65586579AW_DRIVER_INIT(kov7sprt)
65596580AW_DRIVER_INIT(ggisuka)
r9535r9536
66826703   ROM_REGION( 0x200000, "awflash", 0)
66836704   AW_BIOS
66846705
6685   ROM_REGION( 0x8000000, "user1", ROMREGION_ERASE)
6686   ROM_LOAD( "ax3301p01.fmem1", 0x000000, 0x800000, CRC(f7e24e67) SHA1(8eef26d44b294faa509304b1b04f4d801337bc99) )
6706   ROM_REGION( 0xf000000, "user1", ROMREGION_ERASE)
6707   ROM_LOAD( "ax3301p01.fmem1", 0x0000000, 0x0800000, CRC(6dd78275) SHA1(72d4cab58dbcebd666db21aeef190378ef447580) )
6708        ROM_LOAD( "ax3301m01.mrom1", 0x1000000, 0x2000000, CRC(e6013de9) SHA1(ccbc7c2e76153348646d75938d5c008dc80df17d) )
6709        ROM_LOAD( "ax3301m01.mrom2", 0x3000000, 0x2000000, CRC(f7cfef6c) SHA1(c9e6231499a9c9c8650d9e61f34ff1fcce8d442c) )
6710        ROM_LOAD( "ax3301m01.mrom3", 0x5000000, 0x2000000, CRC(0cdf8647) SHA1(0423f96842bef2c2ff454318dc6960b5052c0551) )
6711        ROM_LOAD( "ax3301m01.mrom4", 0x7000000, 0x2000000, CRC(2f031db0) SHA1(3214735f04fadf160137f0585bfc1a27eeecfac6) )
6712        ROM_LOAD( "ax3301m01.mrom5", 0x9000000, 0x2000000, CRC(f6668aaa) SHA1(6a78f8f0c7d7a71854ff87329290d38970cfb476) )
6713        ROM_LOAD( "ax3301m01.mrom6", 0xb000000, 0x2000000, CRC(5cf32fbd) SHA1(b6ae0abe5791b3d6f8db07b8c8ca22219a153801) )
6714        ROM_LOAD( "ax3301m01.mrom7", 0xd000000, 0x2000000, CRC(26d9da53) SHA1(0015b4be670005a451274de68279b4302fc42a97) )
66876715ROM_END
66886716
66896717ROM_START( kofnw )
r9535r9536
68036831        ROM_LOAD( "ax1706m01.ic16", 0x6000000, 0x1000000, CRC(804b2eb2) SHA1(fcca02a5a8c09eb16548255115fb105c9c49c4e0) )
68046832ROM_END
68056833
6834ROM_START( kofxi )
6835   ROM_REGION( 0x200000, "awflash", 0)
6836   AW_BIOS
6837
6838   ROM_REGION( 0xf000000, "user1", ROMREGION_ERASE)
6839        ROM_LOAD( "ax3201p01.fmem1", 0x0000000, 0x0800000, CRC(6dbdd71b) SHA1(cce3897b104f5d923d8136485fc80eb9717ff4b5) )
6840        ROM_LOAD( "ax3201m01.mrom1", 0x1000000, 0x2000000, CRC(7f9d6af9) SHA1(001064ad1b8c3408efe799dc766c2728dc6512a9) )
6841        ROM_LOAD( "ax3202m01.mrom2", 0x3000000, 0x2000000, CRC(1ae40afa) SHA1(9ee7957c86cc3a71e6971ddcd906a82c5b1e16f1) )
6842        ROM_LOAD( "ax3203m01.mrom3", 0x5000000, 0x2000000, CRC(8c5e3bfd) SHA1(b5443e2a1b88642cc57c5287a3122376c2d48de9) )
6843        ROM_LOAD( "ax3204m01.mrom4", 0x7000000, 0x2000000, CRC(ba97f80c) SHA1(36f672fe833e13f0bab036b02c39123066327e20) )
6844        ROM_LOAD( "ax3205m01.mrom5", 0x9000000, 0x2000000, CRC(3c747067) SHA1(54b7ff73d618e2e4e40c125c6cfe99016e69ad1a) )
6845        ROM_LOAD( "ax3206m01.mrom6", 0xb000000, 0x2000000, CRC(cb81e5f5) SHA1(07faee02a58ac9c600ab3cdd525d22c16b35222d) )
6846        ROM_LOAD( "ax3207m01.mrom7", 0xd000000, 0x2000000, CRC(164f6329) SHA1(a72c8cbe4ac7b98edda3d4434f6c81a370b8c39b) )
6847ROM_END
6848
68066849/* Atomiswave */
68076850GAME( 2001, awbios,   0,        aw,    aw,    atomiswave, ROT0, "Sammy",                           "Atomiswave Bios", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
68086851
r9535r9536
68186861GAME( 2004, kov7sprt, awbios,   aw,    aw,    kov7sprt, ROT0, "Sammy / IGS",          "Knights of Valour - The Seven Spirits", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
68196862GAME( 2005, vfurlong, awbios,   aw,    aw,    vfurlong, ROT0, "Sammy",                  "Net Select Keiba Victory Furlong", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
68206863GAME( 2005, ngbc,     awbios,   aw,    aw,    ngbc,     ROT0, "Sammy / SNK Playmore",            "Neo-Geo Battle Coliseum", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
6864GAME( 2005, kofxi,    awbios,   aw,    aw,    kofxi,    ROT0, "Sammy / SNK Playmore",            "The King of Fighters XI", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
68216865GAME( 2005, fotns,    awbios,   aw,    aw,    fotns,    ROT0, "Sega / Arc System Works",         "Fist Of The North Star", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
68226866GAME( 2005, kofnw,    awbios,   aw,    aw,    kofnw,    ROT0, "Sammy / SNK Playmore",            "The King of Fighters Neowave", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
68236867GAME( 2005, kofnwj,   kofnw,   aw,    aw,    kofnw,    ROT0, "Sammy / SNK Playmore",            "The King of Fighters Neowave (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
src/mame/drivers/meritm.c
r9535r9536
3838
3939  CRT 260:
4040  *Megatouch Video (c)1994?
41  *Megatouch II (c)1995
41  Megatouch II (c)1994
4242  Megatouch III (c)1995
4343  Megatouch III Tournament Edition (c)1996
4444  Megatouch IV (c)1996
4545  Megatouch IV Tournament Edition (c)1996
4646  Super Megatouch IV (c) 1996  (rom labels 9255-41-0x, see below)
4747  Super Megatouch IV Tournament Edition (c) 1996
48  *Megatouch 5 (c)1997
49  *Megatouch 5 Tournament Edition (c)1997
48  Megatouch 5 (c)1997
49  Megatouch 5 Tournament Edition (c)1997
5050  Megatouch 6 (c)1998
5151  *Megatouch 7 Encore (c)2000
5252
r9535r9536
9090
9191  Notes/ToDo:
9292  - offset for top V9938 layer is hardcoded, probably should be taken from V9938 setup
93  - blinking on Meagtouch title screen is probably incorrect
93  - blinking on Megatouch title screen is probably incorrect
9494  - clean up V9938 interrupt implementation
9595  - finish inputs, dsw, outputs (lamps)
9696  - problem with registering touches on the bottom of the screen (currently hacked to work)
r9535r9536
12151215   ROM_RELOAD(     0x70000, 0x10000)
12161216
12171217
1218   ROM_REGION( 0xc0000, "extra", 0 ) // extra data / extra banks?
1218   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
12191219   ROM_LOAD( "qs9243-00-01_u7-r0",  0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */
12201220   ROM_LOAD( "qs9243-00-01_u6-r0",  0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) )
12211221   ROM_LOAD( "qs9243-00-01_u5-r0",  0x80000, 0x40000, CRC(590a1565) SHA1(b80ea967b6153847b2594e9c59bfe87559022b6c) )
r9535r9536
12331233   ROM_RELOAD(     0x70000, 0x10000)
12341234
12351235
1236   ROM_REGION( 0xc0000, "extra", 0 ) // extra data / extra banks?
1236   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
12371237   ROM_LOAD( "qs9243-00-01_u7-r0",  0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */
12381238   ROM_LOAD( "qs9243-00-01_u6-r0",  0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) )
12391239   ROM_LOAD( "qs9243-00-01_u5-r0",  0x80000, 0x40000, CRC(590a1565) SHA1(b80ea967b6153847b2594e9c59bfe87559022b6c) )
r9535r9536
12501250   ROM_LOAD( "9234-10-01_u15-r0", 0x60000, 0x10000, CRC(9fbd8582) SHA1(c0f68c8a7cdca34c8736cefc71767c421bcaba8a) )
12511251
12521252
1253   ROM_REGION( 0xc0000, "extra", 0 ) // extra data / extra banks?
1253   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
12541254   ROM_LOAD( "qs9234-01_u7-r0",  0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
12551255   ROM_LOAD( "qs9234-01_u6-r0",  0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) )
12561256   ROM_LOAD( "qs9234-01_u5-r0",  0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
r9535r9536
12671267   ROM_LOAD( "9234-00-01_u15-r0a", 0x60000, 0x10000, CRC(f10f0d39) SHA1(2b5d5a93adb5251e09160b10c067b6e70289f608) )
12681268
12691269
1270   ROM_REGION( 0xc0000, "extra", 0 ) // extra data / extra banks?
1270   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
12711271   ROM_LOAD( "qs9234-01_u7-r0",  0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
12721272   ROM_LOAD( "qs9234-01_u6-r0",  0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) )
12731273   ROM_LOAD( "qs9234-01_u5-r0",  0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
r9535r9536
13551355
13561356*/
13571357
1358ROM_START( megat2 ) /* Dallas DS1204U-3 security key labeled 9255-10-01-U5-R0 */
1359   ROM_REGION( 0x400000, "maincpu", 0 )
1360   ROM_LOAD( "qs9235-01_u5oru32-r0b", 0x000000, 0x080000, CRC(f7ecd49b) SHA1(34c1293da7304e8a46a96f1dbd7add3291afe3fc) ) /* Location U32 */
1361   ROM_RELOAD(                        0x080000, 0x080000)
1362   ROM_LOAD( "qs9235-01_u6oru36-r0",  0x100000, 0x080000, CRC(0a358743) SHA1(cc7c1b75e391204a7bdae2e1cecd9b55b572f8d5) ) /* Location U36 */
1363   ROM_RELOAD(                        0x180000, 0x080000)
1364   ROM_LOAD( "qs9235-01_u7oru37-r0",  0x200000, 0x080000, CRC(16643f83) SHA1(347af99f535a8b473c8780067d5132add7fa0d8c) ) /* Location U37 */
1365   ROM_RELOAD(                        0x280000, 0x080000)
1366   ROM_LOAD( "9255-10-06_u38-r0g",    0x300000, 0x080000, CRC(51b8160a) SHA1(f2dd44ff3bd62c86c385b5e1438c560947f6c253) ) /* Location U38, 02/10/1995 10:03:52 - California version */
1367   ROM_RELOAD(                        0x380000, 0x080000)
1368ROM_END
1369
13581370ROM_START( megat3 ) /* Dallas DS1204V security key at U5 labeled 9255-20-01 U5-RO1 C1995 MII */
13591371   ROM_REGION( 0x400000, "maincpu", 0 )
13601372   ROM_LOAD( "9255-20-01_u32-r0d", 0x000000, 0x080000, CRC(ac969296) SHA1(7e09e9141637339b83c21f2488560cdf8a460069) ) /* Location U32 */
r9535r9536
16841696
16851697static DRIVER_INIT(pbst30b)
16861698{
1687   static const UINT8 megat3_ds1204_key[8] =
1699   static const UINT8 pbst30b_ds1204_key[8] =
16881700      { 0xf0, 0xaa, 0x0f, 0x0f, 0x55, 0x55, 0xff, 0xab };
16891701
1690   static const UINT8 megat3_ds1204_nvram[16] =
1702   static const UINT8 pbst30b_ds1204_nvram[16] =
16911703      { 0xa9, 0xdb, 0x41, 0xf8, 0xe4, 0x42, 0x20, 0x6e, 0xde, 0xaf, 0x4f, 0x046, 0x3d, 0x55, 0x44, 0x00 };
16921704
1693   ds1204_init(machine, megat3_ds1204_key, megat3_ds1204_nvram);
1705   ds1204_init(machine, pbst30b_ds1204_key, pbst30b_ds1204_nvram);
16941706
16951707};
16961708
1709static DRIVER_INIT(megat2)
1710{
1711   static const UINT8 pitbosmt_ds1204_key[8] =
1712      { 0xf0, 0xaa, 0x0f, 0x0f, 0x55, 0x55, 0xff, 0xab };
1713
1714   static const UINT8 pitbosmt_ds1204_nvram[16] =
1715      { 0x00, 0xfe, 0x03, 0x03, 0x08, 0x00, 0xa2, 0x03, 0x4b, 0x07, 0x00, 0xe6, 0x02, 0xd3, 0x05, 0x00 };
1716
1717   ds1204_init(machine, pitbosmt_ds1204_key, pitbosmt_ds1204_nvram);
1718
1719};
1720
16971721static DRIVER_INIT(megat3)
16981722{
16991723   static const UINT8 megat3_ds1204_key[8] =
r9535r9536
17931817GAME( 1994, pitbossma, pitbossm,  meritm_crt250_questions, pitbossa, 0,        ROT0, "Merit", "Pit Boss Megastar (9243-00-01)", GAME_IMPERFECT_GRAPHICS )
17941818
17951819/* CRT 260 */
1820GAME( 1994, megat2,    0,      meritm_crt260, meritm_crt260, megat2,   ROT0, "Merit", "Pit Boss Megatouch II (9255-10-06 ROG, California version)", GAME_IMPERFECT_GRAPHICS )
17961821GAME( 1996, megat3,    0,      meritm_crt260, meritm_crt260, megat3,   ROT0, "Merit", "Megatouch III (9255-20-01 RON, Standard version)", GAME_IMPERFECT_GRAPHICS )
17971822GAME( 1995, megat3a,   megat3, meritm_crt260, meritm_crt260, megat3,   ROT0, "Merit", "Megatouch III (9255-20-01 ROF, Standard version)", GAME_IMPERFECT_GRAPHICS )
17981823GAME( 1996, megat3ca,  megat3, meritm_crt260, meritm_crt260, megat3,   ROT0, "Merit", "Megatouch III (9255-20-06 RON, California version)", GAME_IMPERFECT_GRAPHICS )
src/mame/drivers/neodrvr.c
r9535r9536
424424    . MVS CHAFIO REV1.0 (KOF-2001)
425425    . NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
426426    -- SNKPLAYMORE --
427    . NEO-MVS CHAFIO (2003.7.24)
427    . NEO-MVS CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
428428
429429    MVS PROG:
430430    -- SNK --
r9535r9536
449449    . NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
450450    . NEO-MVS PROGBK1 (1994)
451451    . NEO-MVS PROGBK1 (2001)
452    . NEO-MVS PROGBK2 (2000.3.21)
452    . NEO-MVS PROGBK2 (2000.3.21) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
453453    . MVS PROGBK2 REV1.0 (KOF-2001)
454454    . NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
455455    -- SNKPLAYMORE --
r9535r9536
945945
946946ROM_START( maglord ) /* MVS VERSION */
947947   ROM_REGION( 0x100000, "maincpu", 0 )
948   ROM_LOAD16_WORD_SWAP( "005-pg1.bin", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) ) /* MB834200 */
948   ROM_LOAD16_WORD_SWAP( "005-pg1.bin", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) ) /* MB834200 */
949949
950950   NEO_SFIX_128K( "005-s1.bin", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */
951951
r9535r9536
969969
970970ROM_START( maglordh ) /* AES VERSION */
971971   ROM_REGION( 0x100000, "maincpu", 0 )
972   ROM_LOAD16_WORD_SWAP( "005-p1.bin", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) ) /* MB834200 */
972   ROM_LOAD16_WORD_SWAP( "005-p1.bin", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) ) /* MB834200 */
973973
974974   NEO_SFIX_128K( "005-s1.bin", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) /* MB831000 */
975975
r9535r9536
18001800   ROM_LOAD16_BYTE( "038-c4.bin", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) /* Plane 2,3 */ /* TC534200 */
18011801ROM_END
18021802
1803ROM_START( kotm2 )
1803ROM_START( kotm2 ) /* MVS AND AES VERSION */
18041804   ROM_REGION( 0x100000, "maincpu", 0 )
18051805   ROM_LOAD16_WORD_SWAP( "039-p1.bin", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) ) /* TC534200 */
18061806   ROM_LOAD16_WORD_SWAP( "039-p2.bin", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) /* TC534200 */
r9535r9536
19911991
19921992ROM_START( tophuntr ) /* MVS VERSION */
19931993   ROM_REGION( 0x200000, "maincpu", 0 )
1994   ROM_LOAD16_WORD_SWAP( "046-p1.bin", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) )
1995   ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
1994   ROM_LOAD16_WORD_SWAP( "046-p1.bin", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) /* mask rom TC538200 */
1995   ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */
19961996
1997   NEO_SFIX_128K( "046-s1.bin", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) )
1997   NEO_SFIX_128K( "046-s1.bin", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) /* mask rom TC531000 */
19981998
1999   NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
1999   NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */
20002000
20012001   ROM_REGION( 0x400000, "ymsnd", 0 )
2002   ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
2003   ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
2004   ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
2005   ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
2002   ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */
2003   ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */
2004   ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */
2005   ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */
20062006
20072007   NO_DELTAT_REGION
20082008
20092009   ROM_REGION( 0x800000, "sprites", 0 )
2010   ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */
2011   ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */
2012   ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */
2013   ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */
2014   ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */
2015   ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */
2016   ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */
2017   ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */
2010   ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */
2011   ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */
2012   ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */
2013   ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */
2014   ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */
2015   ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */
2016   ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */
2017   ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */
20182018ROM_END
20192019
20202020ROM_START( tophuntrh ) /* AES VERSION */
20212021   ROM_REGION( 0x200000, "maincpu", 0 )
2022   ROM_LOAD16_WORD_SWAP( "046-pg1.bin",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) )
2023   ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
2022   ROM_LOAD16_WORD_SWAP( "046-pg1.bin",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) /* mask rom TC538200 */
2023   ROM_LOAD16_WORD_SWAP( "046-p2.bin", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) /* mask rom TC538200 */
20242024
2025   NEO_SFIX_128K( "046-sg1.bin", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) )
2025   NEO_SFIX_128K( "046-sg1.bin", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) ) /* mask rom TC531000 */
20262026
2027   NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
2027   NEO_BIOS_AUDIO_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) /* mask rom TC531001 */
20282028
20292029   ROM_REGION( 0x400000, "ymsnd", 0 )
2030   ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
2031   ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
2032   ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
2033   ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
2030   ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) /* mask rom TC538200 */
2031   ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) /* mask rom TC538200 */
2032   ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) /* mask rom TC538200 */
2033   ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) /* mask rom TC538200 */
20342034
20352035   NO_DELTAT_REGION
20362036
20372037   ROM_REGION( 0x800000, "sprites", 0 )
2038   ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */
2039   ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */
2040   ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */
2041   ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */
2042   ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */
2043   ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */
2044   ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */
2045   ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */
2038   ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ /* mask rom TC538200 */
2039   ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ /* mask rom TC538200 */
2040   ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ /* mask rom TC538200 */
2041   ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ /* mask rom TC538200 */
2042   ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ /* mask rom TC538200 */
2043   ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ /* mask rom TC538200 */
2044   ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ /* mask rom TC538200 */
2045   ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ /* mask rom TC538200 */
20462046ROM_END
20472047
20482048ROM_START( fatfury2 ) /* MVS AND AES VERSION */
20492049   ROM_REGION( 0x100000, "maincpu", 0 )
2050   ROM_LOAD16_WORD_SWAP( "047-p1.bin", 0x000000, 0x080000, CRC(be40ea92) SHA1(958b891bb8beb6af122d5467257ab20cbc6cf574) )
2051   ROM_LOAD16_WORD_SWAP( "047-p2.bin", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) )
2050   ROM_LOAD16_WORD_SWAP( "047-p1.bin", 0x000000, 0x080000, CRC(be40ea92) SHA1(958b891bb8beb6af122d5467257ab20cbc6cf574) ) /* TC534200 */
2051   ROM_LOAD16_WORD_SWAP( "047-p2.bin", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) ) /* TC534200 */
20522052
2053   NEO_SFIX_128K( "047-s1.bin", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) )
2053   NEO_SFIX_128K( "047-s1.bin", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */
20542054
2055   NEO_BIOS_AUDIO_128K( "047-m1.bin", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) )
2055   NEO_BIOS_AUDIO_128K( "047-m1.bin", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */
20562056
20572057   ROM_REGION( 0x400000, "ymsnd", 0 )
2058   ROM_LOAD( "047-v1.bin", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) )
2059   ROM_LOAD( "047-v2.bin", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) )
2058   ROM_LOAD( "047-v1.bin", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */
2059   ROM_LOAD( "047-v2.bin", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) /* TC5316200 */
20602060
20612061   NO_DELTAT_REGION
20622062
20632063   ROM_REGION( 0x800000, "sprites", 0 )
2064   ROM_LOAD16_BYTE( "047-c1.bin", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */
2064   ROM_LOAD16_BYTE( "047-c1.bin", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ /* TC5316200 */
20652065   ROM_CONTINUE( 0x400000, 0x100000 )
2066   ROM_LOAD16_BYTE( "047-c2.bin", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */
2066   ROM_LOAD16_BYTE( "047-c2.bin", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ /* TC5316200 */
20672067   ROM_CONTINUE( 0x400001, 0x100000 )
2068   ROM_LOAD16_BYTE( "047-c3.bin", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */
2068   ROM_LOAD16_BYTE( "047-c3.bin", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ /* TC5316200 */
20692069   ROM_CONTINUE( 0x600000, 0x100000 )
2070   ROM_LOAD16_BYTE( "047-c4.bin", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */
2070   ROM_LOAD16_BYTE( "047-c4.bin", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ /* TC5316200 */
20712071   ROM_CONTINUE( 0x600001, 0x100000 )
20722072ROM_END
20732073
r9535r9536
22452245
22462246ROM_START( kof94 ) /* MVS AND AES VERSION */
22472247   ROM_REGION( 0x200000, "maincpu", 0 )
2248   ROM_LOAD16_WORD_SWAP( "055-p1.bin", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) )
2248   ROM_LOAD16_WORD_SWAP( "055-p1.bin", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) /* mask rom TC5316200 */
22492249   ROM_CONTINUE( 0x000000, 0x100000 )
22502250
2251   NEO_SFIX_128K( "055-s1.bin", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
2251   NEO_SFIX_128K( "055-s1.bin", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) /* mask rom TC531000 */
22522252
2253   NEO_BIOS_AUDIO_128K( "055-m1.bin", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
2253   NEO_BIOS_AUDIO_128K( "055-m1.bin", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) /* mask rom TC531001 */
22542254
22552255   ROM_REGION( 0x600000, "ymsnd", 0 )
2256   ROM_LOAD( "055-v1.bin", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
2257   ROM_LOAD( "055-v2.bin", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
2258   ROM_LOAD( "055-v3.bin", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
2256   ROM_LOAD( "055-v1.bin", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) /* mask rom TC5316200 */
2257   ROM_LOAD( "055-v2.bin", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) /* mask rom TC5316200 */
2258   ROM_LOAD( "055-v3.bin", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) /* mask rom TC5316200 */
22592259
22602260   NO_DELTAT_REGION
22612261
22622262   ROM_REGION( 0x1000000, "sprites", 0 )
2263   ROM_LOAD16_BYTE( "055-c1.bin", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */
2264   ROM_LOAD16_BYTE( "055-c2.bin", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */
2265   ROM_LOAD16_BYTE( "055-c3.bin", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */
2266   ROM_LOAD16_BYTE( "055-c4.bin", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */
2267   ROM_LOAD16_BYTE( "055-c5.bin", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */
2268   ROM_LOAD16_BYTE( "055-c6.bin", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */
2269   ROM_LOAD16_BYTE( "055-c7.bin", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */
2270   ROM_LOAD16_BYTE( "055-c8.bin", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */
2263   ROM_LOAD16_BYTE( "055-c1.bin", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2264   ROM_LOAD16_BYTE( "055-c2.bin", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2265   ROM_LOAD16_BYTE( "055-c3.bin", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2266   ROM_LOAD16_BYTE( "055-c4.bin", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2267   ROM_LOAD16_BYTE( "055-c5.bin", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2268   ROM_LOAD16_BYTE( "055-c6.bin", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2269   ROM_LOAD16_BYTE( "055-c7.bin", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2270   ROM_LOAD16_BYTE( "055-c8.bin", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ /* mask rom TC5316200 */
22712271ROM_END
22722272
22732273ROM_START( aof2 ) /* MVS AND AES VERSION */
r9535r9536
23502350
23512351ROM_START( fatfursp ) /* MVS AND AES VERSION */
23522352   ROM_REGION( 0x180000, "maincpu", 0 )
2353   ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) )
2354   ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
2353   ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */
2354   ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */
23552355
2356   NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
2356   NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */
23572357
2358   NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
2358   NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */
23592359
23602360   ROM_REGION( 0x500000, "ymsnd", 0 )
2361   ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
2362   ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
2363   ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
2361   ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */
2362   ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */
2363   ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */
23642364
23652365   NO_DELTAT_REGION
23662366
23672367   ROM_REGION( 0xc00000, "sprites", 0 )
2368   ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */
2369   ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */
2370   ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */
2371   ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */
2372   ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */
2373   ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */
2368   ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2369   ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2370   ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2371   ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2372   ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2373   ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */
23742374ROM_END
23752375
23762376ROM_START( fatfurspa ) /* MVS AND AES VERSION */
23772377   ROM_REGION( 0x180000, "maincpu", 0 )
2378   ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) )
2379   ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
2378   ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) /* mask rom TC538200 */
2379   ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) /* mask rom TC534200 */
23802380   /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
2381   ROM_LOAD16_WORD_SWAP( "058-ep1.bin", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) )
2381   ROM_LOAD16_WORD_SWAP( "058-ep1.bin", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) /* M27C4002 */
23822382
2383   NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
2383   NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) /* mask rom TC531000 */
23842384
2385   NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
2385   NEO_BIOS_AUDIO_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) /* mask rom TC531001 */
23862386
23872387   ROM_REGION( 0x500000, "ymsnd", 0 )
2388   ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
2389   ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
2390   ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
2388   ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) /* mask rom TC5316200 */
2389   ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) /* mask rom TC5316200 */
2390   ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) /* mask rom TC538200 */
23912391
23922392   NO_DELTAT_REGION
23932393
23942394   ROM_REGION( 0xc00000, "sprites", 0 )
2395   ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */
2396   ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */
2397   ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */
2398   ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */
2399   ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */
2400   ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */
2395   ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2396   ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2397   ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2398   ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2399   ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2400   ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ /* mask rom TC5316200 */
24012401ROM_END
24022402
24032403ROM_START( savagere )
r9535r9536
24742474
24752475ROM_START( ssideki2 ) /* MVS AND AES VERSION */
24762476   ROM_REGION( 0x100000, "maincpu", 0 )
2477   ROM_LOAD16_WORD_SWAP( "061-p1.bin", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) )
2477   ROM_LOAD16_WORD_SWAP( "061-p1.bin", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */
24782478
2479   NEO_SFIX_128K( "061-s1.bin", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) )
2479   NEO_SFIX_128K( "061-s1.bin", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */
24802480
2481   NEO_BIOS_AUDIO_128K( "061-m1.bin", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) )
2481   NEO_BIOS_AUDIO_128K( "061-m1.bin", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) /* mask rom TC531001 */
24822482
24832483   ROM_REGION( 0x400000, "ymsnd", 0 )
2484   ROM_LOAD( "061-v1.bin", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) )
2485   ROM_LOAD( "061-v2.bin", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) )
2484   ROM_LOAD( "061-v1.bin", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) /* mask rom TC5316200 */
2485   ROM_LOAD( "061-v2.bin", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) /* mask rom TC5316200 */
24862486
24872487   NO_DELTAT_REGION
24882488
24892489   ROM_REGION( 0x800000, "sprites", 0 )
2490   ROM_LOAD16_BYTE( "061-c1-16.bin", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */
2491   ROM_LOAD16_BYTE( "061-c2-16.bin", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */
2492   ROM_LOAD16_BYTE( "061-c3-16.bin", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */
2493   ROM_LOAD16_BYTE( "061-c4-16.bin", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */
2490   /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */
2491   ROM_LOAD16_BYTE( "061-c1-16.bin", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2492   ROM_LOAD16_BYTE( "061-c2-16.bin", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2493   ROM_LOAD16_BYTE( "061-c3-16.bin", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2494   ROM_LOAD16_BYTE( "061-c4-16.bin", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ /* mask rom TC5316200 */
24942495ROM_END
24952496
24962497ROM_START( spinmast )
24972498   ROM_REGION( 0x200000, "maincpu", 0 )
2498   ROM_LOAD16_WORD_SWAP( "062-p1.bin", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) )
2499   ROM_LOAD16_WORD_SWAP( "062-p2.bin", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
2499   ROM_LOAD16_WORD_SWAP( "062-p1.bin", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) /* mask rom TC538200 */
2500   ROM_LOAD16_WORD_SWAP( "062-p2.bin", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) ) /* mask rom TC538200 */
25002501
2501   NEO_SFIX_128K( "062-s1.bin", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
2502   NEO_SFIX_128K( "062-s1.bin", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) /* mask rom TC531000 */
25022503
2503   NEO_BIOS_AUDIO_128K( "062-m1.bin", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
2504   NEO_BIOS_AUDIO_128K( "062-m1.bin", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) /* mask rom TC531001 */
25042505
25052506   ROM_REGION( 0x100000, "ymsnd", 0 )
2506   ROM_LOAD( "062-v1.bin", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
2507   ROM_LOAD( "062-v1.bin", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) /* mask rom TC538200 */
25072508
25082509   NO_DELTAT_REGION
25092510
25102511   ROM_REGION( 0x800000, "sprites", 0 )
2511   ROM_LOAD16_BYTE( "062-c1.bin", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */
2512   ROM_LOAD16_BYTE( "062-c2.bin", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */
2513   ROM_LOAD16_BYTE( "062-c3.bin", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */
2514   ROM_LOAD16_BYTE( "062-c4.bin", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */
2515   ROM_LOAD16_BYTE( "062-c5.bin", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */
2516   ROM_LOAD16_BYTE( "062-c6.bin", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */
2517   ROM_LOAD16_BYTE( "062-c7.bin", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */
2518   ROM_LOAD16_BYTE( "062-c8.bin", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */
2512   ROM_LOAD16_BYTE( "062-c1.bin", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ /* mask rom TC538200 */
2513   ROM_LOAD16_BYTE( "062-c2.bin", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ /* mask rom TC538200 */
2514   ROM_LOAD16_BYTE( "062-c3.bin", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ /* mask rom TC538200 */
2515   ROM_LOAD16_BYTE( "062-c4.bin", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ /* mask rom TC538200 */
2516   ROM_LOAD16_BYTE( "062-c5.bin", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ /* mask rom TC538200 */
2517   ROM_LOAD16_BYTE( "062-c6.bin", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ /* mask rom TC538200 */
2518   ROM_LOAD16_BYTE( "062-c7.bin", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ /* mask rom TC538200 */
2519   ROM_LOAD16_BYTE( "062-c8.bin", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ /* mask rom TC538200 */
25192520ROM_END
25202521
25212522ROM_START( samsho2 ) /* MVS AND AES VERSION */
r9535r9536
26062607
26072608ROM_START( wjammers )
26082609   ROM_REGION( 0x100000, "maincpu", 0 )
2609   ROM_LOAD16_WORD_SWAP( "065-p1.bin", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) )
2610   ROM_LOAD16_WORD_SWAP( "065-p1.bin", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) /* mask rom TC538200 */
26102611
2611   NEO_SFIX_128K( "065-s1.bin", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
2612   NEO_SFIX_128K( "065-s1.bin", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) /* mask rom TC531000 */
26122613
2613   NEO_BIOS_AUDIO_128K( "065-m1.bin", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
2614   NEO_BIOS_AUDIO_128K( "065-m1.bin", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) /* mask rom TC531001 */
26142615
26152616   ROM_REGION( 0x400000, "ymsnd", 0 )
2616   ROM_LOAD( "065-v1.bin", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
2617   ROM_LOAD( "065-v2.bin", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
2618   ROM_LOAD( "065-v3.bin", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
2619   ROM_LOAD( "065-v4.bin", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
2617   ROM_LOAD( "065-v1.bin", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) /* mask rom TC538200 */
2618   ROM_LOAD( "065-v2.bin", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) /* mask rom TC538200 */
2619   ROM_LOAD( "065-v3.bin", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) /* mask rom TC538200 */
2620   ROM_LOAD( "065-v4.bin", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) /* mask rom TC538200 */
26202621
26212622   NO_DELTAT_REGION
26222623
26232624   ROM_REGION( 0x400000, "sprites", 0 )
2624   ROM_LOAD16_BYTE( "065-c1.bin", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */
2625   ROM_LOAD16_BYTE( "065-c2.bin", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */
2626   ROM_LOAD16_BYTE( "065-c3.bin", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */
2627   ROM_LOAD16_BYTE( "065-c4.bin", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */
2625   ROM_LOAD16_BYTE( "065-c1.bin", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) /* Plane 0,1 */ /* mask rom TC538200 */
2626   ROM_LOAD16_BYTE( "065-c2.bin", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) /* Plane 2,3 */ /* mask rom TC538200 */
2627   ROM_LOAD16_BYTE( "065-c3.bin", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) /* Plane 0,1 */ /* mask rom TC538200 */
2628   ROM_LOAD16_BYTE( "065-c4.bin", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) /* Plane 2,3 */ /* mask rom TC538200 */
26282629ROM_END
26292630
26302631ROM_START( karnovr )
r9535r9536
26692670
26702671ROM_START( pspikes2 ) /* MVS ONLY RELEASE */
26712672   ROM_REGION( 0x100000, "maincpu", 0 )
2672   ROM_LOAD16_WORD_SWAP( "068-pg1.bin", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) )
2673   ROM_LOAD16_WORD_SWAP( "068-pg1.bin", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) /* mask rom TC538200 */
26732674
2674   NEO_SFIX_128K( "068-sg1.bin", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) )
2675   NEO_SFIX_128K( "068-sg1.bin", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) /* mask rom TC531000 */
26752676
2676   NEO_BIOS_AUDIO_128K( "068-mg1.bin", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) )
2677   NEO_BIOS_AUDIO_128K( "068-mg1.bin", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) /* mask rom TC531001 */
26772678
26782679   ROM_REGION( 0x300000, "ymsnd", 0 )
2679   ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) )
2680   ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) )
2681   ROM_LOAD( "068-v3.bin", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) )
2680   ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* mask rom TC538200 */
2681   ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* mask rom TC538200 */
2682   ROM_LOAD( "068-v3.bin", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) /* mask rom TC538200 */
26822683
26832684   NO_DELTAT_REGION
26842685
26852686   ROM_REGION( 0x600000, "sprites", 0 )
2686   ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */
2687   ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */
2688   ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */
2689   ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */
2690   ROM_LOAD16_BYTE( "068-c5.bin", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */
2691   ROM_LOAD16_BYTE( "068-c6.bin", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */
2687   ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ /* mask rom TC538200 */
2688   ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ /* mask rom TC538200 */
2689   ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ /* mask rom TC538200 */
2690   ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ /* mask rom TC538200 */
2691   ROM_LOAD16_BYTE( "068-c5.bin", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ /* mask rom TC538200 */
2692   ROM_LOAD16_BYTE( "068-c6.bin", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ /* mask rom TC538200 */
26922693ROM_END
26932694
26942695ROM_START( fatfury3 ) /* MVS AND AES VERSION */
26952696   ROM_REGION( 0x300000, "maincpu", 0 )
2696   ROM_LOAD16_WORD_SWAP( "069-p1.bin", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) )
2697   ROM_LOAD16_WORD_SWAP( "069-sp2.bin", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
2697   ROM_LOAD16_WORD_SWAP( "069-p1.bin",  0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) /* TC538200 */
2698   ROM_LOAD16_WORD_SWAP( "069-sp2.bin", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) /* TC5316200 */
26982699
2699   NEO_SFIX_128K( "069-s1.bin", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
2700   NEO_SFIX_128K( "069-s1.bin", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) /* TC531000 */
27002701
2701   NEO_BIOS_AUDIO_128K( "069-m1.bin", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
2702   NEO_BIOS_AUDIO_128K( "069-m1.bin", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) /* TC531001 */
27022703
27032704   ROM_REGION( 0xa00000, "ymsnd", 0 )
2704   ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
2705   ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
2706   ROM_LOAD( "069-v3.bin", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
2705   ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */
2706   ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */
2707   ROM_LOAD( "069-v3.bin", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) /* TC5316200 */
27072708
27082709   NO_DELTAT_REGION
27092710
27102711   ROM_REGION( 0x1400000, "sprites", 0 )
2711   ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */
2712   ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */
2713   ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */
2714   ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */
2715   ROM_LOAD16_BYTE( "069-c5.bin", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */
2716   ROM_LOAD16_BYTE( "069-c6.bin", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */
2712   ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */
2713   ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */
2714   ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */
2715   ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */
2716   ROM_LOAD16_BYTE( "069-c5.bin", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ /* TC5316200 */
2717   ROM_LOAD16_BYTE( "069-c6.bin", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ /* TC5316200 */
27172718ROM_END
27182719
27192720ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
r9535r9536
27432744
27442745ROM_START( panicbom ) /* MVS ONLY RELEASE */
27452746   ROM_REGION( 0x100000, "maincpu", 0 )
2746   ROM_LOAD16_WORD_SWAP( "073-p1.bin", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) )
2747   ROM_LOAD16_WORD_SWAP( "073-p1.bin", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) ) /* mask rom TC534200 */
27472748
2748   NEO_SFIX_128K( "073-s1.bin", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) )
2749   NEO_SFIX_128K( "073-s1.bin", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) /* mask rom TC531000 */
27492750
2750   NEO_BIOS_AUDIO_128K( "073-m1.bin", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) )
2751   NEO_BIOS_AUDIO_128K( "073-m1.bin", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) /* mask rom TC531001 */
27512752
27522753   ROM_REGION( 0x300000, "ymsnd", 0 )
2753   ROM_LOAD( "073-v1.bin", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) )
2754   ROM_LOAD( "073-v2.bin", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) )
2754   ROM_LOAD( "073-v1.bin", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) /* mask rom TC5316200 */
2755   ROM_LOAD( "073-v2.bin", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) /* mask rom TC538200 */
27552756
27562757   NO_DELTAT_REGION
27572758
27582759   ROM_REGION( 0x200000, "sprites", 0 )
2759   ROM_LOAD16_BYTE( "073-c1.bin", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */
2760   ROM_LOAD16_BYTE( "073-c2.bin", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */
2760   ROM_LOAD16_BYTE( "073-c1.bin", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ /* mask rom TC538200 */
2761   ROM_LOAD16_BYTE( "073-c2.bin", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ /* mask rom TC538200 */
27612762ROM_END
27622763
27632764ROM_START( aodk ) /* MVS AND AES VERSION */
27642765   ROM_REGION( 0x200000, "maincpu", 0 )
2765   ROM_LOAD16_WORD_SWAP( "074-p1.bin", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) )
2766   ROM_LOAD16_WORD_SWAP( "074-p1.bin", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) /* TC5316200 */
27662767   ROM_CONTINUE( 0x000000, 0x100000 )
27672768
2768   NEO_SFIX_128K( "074-s1.bin", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) )
2769   NEO_SFIX_128K( "074-s1.bin", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) /* TC531000 */
27692770
2770   NEO_BIOS_AUDIO_128K( "074-m1.bin", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) )
2771   NEO_BIOS_AUDIO_128K( "074-m1.bin", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) /* TC531001 */
27712772
27722773   ROM_REGION( 0x400000, "ymsnd", 0 )
2773   ROM_LOAD( "074-v1.bin", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) )
2774   ROM_LOAD( "074-v2.bin", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) )
2774   ROM_LOAD( "074-v1.bin", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) /* TC5316200 */
2775   ROM_LOAD( "074-v2.bin", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) /* TC5316200 */
27752776
27762777   NO_DELTAT_REGION
27772778
27782779   ROM_REGION( 0x1000000, "sprites", 0 )
2779   ROM_LOAD16_BYTE( "074-c1.bin", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */
2780   ROM_LOAD16_BYTE( "074-c2.bin", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */
2781   ROM_LOAD16_BYTE( "074-c3.bin", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */
2782   ROM_LOAD16_BYTE( "074-c4.bin", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */
2783   ROM_LOAD16_BYTE( "074-c5.bin", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */
2784   ROM_LOAD16_BYTE( "074-c6.bin", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */
2785   ROM_LOAD16_BYTE( "074-c7.bin", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */
2786   ROM_LOAD16_BYTE( "074-c8.bin", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */
2780   ROM_LOAD16_BYTE( "074-c1.bin", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ /* TC5316200 */
2781   ROM_LOAD16_BYTE( "074-c2.bin", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ /* TC5316200 */
2782   ROM_LOAD16_BYTE( "074-c3.bin", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ /* TC5316200 */
2783   ROM_LOAD16_BYTE( "074-c4.bin", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ /* TC5316200 */
2784   ROM_LOAD16_BYTE( "074-c5.bin", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ /* TC5316200 */
2785   ROM_LOAD16_BYTE( "074-c6.bin", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ /* TC5316200 */
2786   ROM_LOAD16_BYTE( "074-c7.bin", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ /* TC5316200 */
2787   ROM_LOAD16_BYTE( "074-c8.bin", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ /* TC5316200 */
27872788ROM_END
27882789
27892790ROM_START( sonicwi2 )
27902791   ROM_REGION( 0x200000, "maincpu", 0 )
2791   ROM_LOAD16_WORD_SWAP( "075-p1.bin", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) )
2792   ROM_LOAD16_WORD_SWAP( "075-p1.bin", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) /* mask rom TC5316200 */
27922793   ROM_CONTINUE( 0x000000, 0x100000 )
27932794
2794   NEO_SFIX_128K( "075-s1.bin", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
2795   NEO_SFIX_128K( "075-s1.bin", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) /* mask rom TC531000 */
27952796
2796   NEO_BIOS_AUDIO_128K( "075-m1.bin", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
2797   NEO_BIOS_AUDIO_128K( "075-m1.bin", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) /* mask rom TC531001 */
27972798
27982799   ROM_REGION( 0x300000, "ymsnd", 0 )
2799   ROM_LOAD( "075-v1.bin", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
2800   ROM_LOAD( "075-v2.bin", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
2800   ROM_LOAD( "075-v1.bin", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) /* mask rom TC5316200 */
2801   ROM_LOAD( "075-v2.bin", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) ) /* mask rom TC538200 */
28012802
28022803   NO_DELTAT_REGION
28032804
28042805   ROM_REGION( 0x800000, "sprites", 0 )
2805   ROM_LOAD16_BYTE( "075-c1.bin", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */
2806   ROM_LOAD16_BYTE( "075-c2.bin", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */
2807   ROM_LOAD16_BYTE( "075-c3.bin", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */
2808   ROM_LOAD16_BYTE( "075-c4.bin", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */
2806   ROM_LOAD16_BYTE( "075-c1.bin", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2807   ROM_LOAD16_BYTE( "075-c2.bin", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2808   ROM_LOAD16_BYTE( "075-c3.bin", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2809   ROM_LOAD16_BYTE( "075-c4.bin", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ /* mask rom TC5316200 */
28092810ROM_END
28102811
28112812ROM_START( zedblade ) /* MVS ONLY RELEASE */
28122813   ROM_REGION( 0x100000, "maincpu", 0 )
2813   ROM_LOAD16_WORD_SWAP( "076-p1.bin", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) )
2814   ROM_LOAD16_WORD_SWAP( "076-p1.bin", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) /* mask rom TC538200 */
28142815
2815   NEO_SFIX_128K( "076-s1.bin", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) )
2816   NEO_SFIX_128K( "076-s1.bin", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) /* mask rom TC531000 */
28162817
2817   NEO_BIOS_AUDIO_128K( "076-m1.bin", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) )
2818   NEO_BIOS_AUDIO_128K( "076-m1.bin", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) /* mask rom TC531001 */
28182819
28192820   ROM_REGION( 0x500000, "ymsnd", 0 )
2820   ROM_LOAD( "076-v1.bin", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) )
2821   ROM_LOAD( "076-v2.bin", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) )
2822   ROM_LOAD( "076-v3.bin", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) )
2821   ROM_LOAD( "076-v1.bin", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) /* mask rom TC5316200 */
2822   ROM_LOAD( "076-v2.bin", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) /* mask rom TC5316200 */
2823   ROM_LOAD( "076-v3.bin", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) /* mask rom TC538200 */
28232824
28242825   NO_DELTAT_REGION
28252826
28262827   ROM_REGION( 0x800000, "sprites", 0 )
2827   ROM_LOAD16_BYTE( "076-c1.bin", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */
2828   ROM_LOAD16_BYTE( "076-c2.bin", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */
2829   ROM_LOAD16_BYTE( "076-c3.bin", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */
2830   ROM_LOAD16_BYTE( "076-c4.bin", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */
2828   ROM_LOAD16_BYTE( "076-c1.bin", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2829   ROM_LOAD16_BYTE( "076-c2.bin", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2830   ROM_LOAD16_BYTE( "076-c3.bin", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2831   ROM_LOAD16_BYTE( "076-c4.bin", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ /* mask rom TC5316200 */
28312832ROM_END
28322833
28332834ROM_START( galaxyfg )
28342835   ROM_REGION( 0x200000, "maincpu", 0 )
2835   ROM_LOAD16_WORD_SWAP( "078-p1.bin", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) )
2836   ROM_LOAD16_WORD_SWAP( "078-p1.bin", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) /* mask rom TC5316200 */
28362837   ROM_CONTINUE( 0x000000, 0x100000 )
28372838
2838   NEO_SFIX_128K( "078-s1.bin", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
2839   NEO_SFIX_128K( "078-s1.bin", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) /* mask rom TC531000 */
28392840
2840   NEO_BIOS_AUDIO_128K( "078-m1.bin", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
2841   NEO_BIOS_AUDIO_128K( "078-m1.bin", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) /* mask rom TC531001 */
28412842
28422843   ROM_REGION( 0x500000, "ymsnd", 0 )
2843   ROM_LOAD( "078-v1.bin", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
2844   ROM_LOAD( "078-v2.bin", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
2845   ROM_LOAD( "078-v3.bin", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
2844   ROM_LOAD( "078-v1.bin", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) /* mask rom TC5316200 */
2845   ROM_LOAD( "078-v2.bin", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) /* mask rom TC5316200 */
2846   ROM_LOAD( "078-v3.bin", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) /* mask rom TC538200 */
28462847
28472848   NO_DELTAT_REGION
28482849
28492850   ROM_REGION( 0xe00000, "sprites", 0 )
2850   ROM_LOAD16_BYTE( "078-c1.bin", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */
2851   ROM_LOAD16_BYTE( "078-c2.bin", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */
2852   ROM_LOAD16_BYTE( "078-c3.bin", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */
2853   ROM_LOAD16_BYTE( "078-c4.bin", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */
2854   ROM_LOAD16_BYTE( "078-c5.bin", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */
2855   ROM_LOAD16_BYTE( "078-c6.bin", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */
2856   ROM_LOAD16_BYTE( "078-c7.bin", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */
2857   ROM_LOAD16_BYTE( "078-c8.bin", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */
2851   ROM_LOAD16_BYTE( "078-c1.bin", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2852   ROM_LOAD16_BYTE( "078-c2.bin", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2853   ROM_LOAD16_BYTE( "078-c3.bin", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2854   ROM_LOAD16_BYTE( "078-c4.bin", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2855   ROM_LOAD16_BYTE( "078-c5.bin", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2856   ROM_LOAD16_BYTE( "078-c6.bin", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2857   ROM_LOAD16_BYTE( "078-c7.bin", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ /* mask rom TC538200 */
2858   ROM_LOAD16_BYTE( "078-c8.bin", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ /* mask rom TC538200 */
28582859ROM_END
28592860
28602861ROM_START( strhoop )
28612862   ROM_REGION( 0x100000, "maincpu", 0 )
2862   ROM_LOAD16_WORD_SWAP( "079-p1.bin", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) )
2863   ROM_LOAD16_WORD_SWAP( "079-p1.bin", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) /* mask rom TC538200 */
28632864
2864   NEO_SFIX_128K( "079-s1.bin", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) )
2865   NEO_SFIX_128K( "079-s1.bin", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) /* mask rom TC531000 */
28652866
2866   NEO_BIOS_AUDIO_128K( "079-m1.bin", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) )
2867   NEO_BIOS_AUDIO_128K( "079-m1.bin", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) ) /* mask rom TC531001 */
28672868
28682869   ROM_REGION( 0x300000, "ymsnd", 0 )
2869   ROM_LOAD( "079-v1.bin", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) )
2870   ROM_LOAD( "079-v2.bin", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) )
2870   ROM_LOAD( "079-v1.bin", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) /* mask rom TC5316200 */
2871   ROM_LOAD( "079-v2.bin", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) ) /* mask rom TC538200 */
28712872
28722873   NO_DELTAT_REGION
28732874
28742875   ROM_REGION( 0x800000, "sprites", 0 )
2875   ROM_LOAD16_BYTE( "079-c1.bin", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */
2876   ROM_LOAD16_BYTE( "079-c2.bin", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */
2877   ROM_LOAD16_BYTE( "079-c3.bin", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */
2878   ROM_LOAD16_BYTE( "079-c4.bin", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */
2876   ROM_LOAD16_BYTE( "079-c1.bin", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2877   ROM_LOAD16_BYTE( "079-c2.bin", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2878   ROM_LOAD16_BYTE( "079-c3.bin", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2879   ROM_LOAD16_BYTE( "079-c4.bin", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ /* mask rom TC5316200 */
28792880ROM_END
28802881
28812882ROM_START( quizkof )
28822883   ROM_REGION( 0x100000, "maincpu", 0 )
2883   ROM_LOAD16_WORD_SWAP( "080-p1.bin", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) )
2884   ROM_LOAD16_WORD_SWAP( "080-p1.bin", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) /* mask rom TC538200 */
28842885
2885   NEO_SFIX_128K( "080-s1.bin", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) )
2886   NEO_SFIX_128K( "080-s1.bin", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) /* mask rom TC531000 */
28862887
2887   NEO_BIOS_AUDIO_128K( "080-m1.bin", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) )
2888   NEO_BIOS_AUDIO_128K( "080-m1.bin", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) /* mask rom TC531001 */
28882889
28892890   ROM_REGION( 0x600000, "ymsnd", 0 )
2890   ROM_LOAD( "080-v1.bin", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) )
2891   ROM_LOAD( "080-v2.bin", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) )
2892   ROM_LOAD( "080-v3.bin", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) )
2891   ROM_LOAD( "080-v1.bin", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) /* mask rom TC5316200 */
2892   ROM_LOAD( "080-v2.bin", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) /* mask rom TC5316200 */
2893   ROM_LOAD( "080-v3.bin", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) /* mask rom TC5316200 */
28932894
28942895   NO_DELTAT_REGION
28952896
28962897   ROM_REGION( 0x800000, "sprites", 0 )
2897   ROM_LOAD16_BYTE( "080-c1.bin", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */
2898   ROM_LOAD16_BYTE( "080-c2.bin", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */
2899   ROM_LOAD16_BYTE( "080-c3.bin", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */
2900   ROM_LOAD16_BYTE( "080-c4.bin", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */
2898   ROM_LOAD16_BYTE( "080-c1.bin", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2899   ROM_LOAD16_BYTE( "080-c2.bin", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) ) /* Plane 2,3 */ /* mask rom TC5316200 */
2900   ROM_LOAD16_BYTE( "080-c3.bin", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ /* mask rom TC5316200 */
2901   ROM_LOAD16_BYTE( "080-c4.bin", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ /* mask rom TC5316200 */
29012902ROM_END
29022903
29032904ROM_START( quizkofk ) /* KOREAN VERSION */
r9535r9536
29262927
29272928ROM_START( ssideki3 )
29282929   ROM_REGION( 0x200000, "maincpu", 0 )
2929   ROM_LOAD16_WORD_SWAP( "081-p1.bin", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) )
2930   ROM_LOAD16_WORD_SWAP( "081-p1.bin", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) /* TC5316200 */
29302931   ROM_CONTINUE( 0x000000, 0x100000 )
29312932
2932   NEO_SFIX_128K( "081-s1.bin", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) )
2933   NEO_SFIX_128K( "081-s1.bin", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) /* TC531000 */
29332934
2934   NEO_BIOS_AUDIO_128K( "081-m1.bin", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) )
2935   NEO_BIOS_AUDIO_128K( "081-m1.bin", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) /* TC531001 */
29352936
29362937   ROM_REGION( 0x600000, "ymsnd", 0 )
2937   ROM_LOAD( "081-v1.bin", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) )
2938   ROM_LOAD( "081-v2.bin", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) )
2939   ROM_LOAD( "081-v3.bin", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) )
2938   ROM_LOAD( "081-v1.bin", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) /* TC5316200 */
2939   ROM_LOAD( "081-v2.bin", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) /* TC5316200 */
2940   ROM_LOAD( "081-v3.bin", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) /* TC5316200 */
29402941
29412942   NO_DELTAT_REGION
29422943
29432944   ROM_REGION( 0xc00000, "sprites", 0 )
2944   ROM_LOAD16_BYTE( "081-c1.bin", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */
2945   ROM_LOAD16_BYTE( "081-c2.bin", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */
2946   ROM_LOAD16_BYTE( "081-c3.bin", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */
2947   ROM_LOAD16_BYTE( "081-c4.bin", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */
2948   ROM_LOAD16_BYTE( "081-c5.bin", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */
2949   ROM_LOAD16_BYTE( "081-c6.bin", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */
2945   ROM_LOAD16_BYTE( "081-c1.bin", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ /* TC5316200 */
2946   ROM_LOAD16_BYTE( "081-c2.bin", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ /* TC5316200 */
2947   ROM_LOAD16_BYTE( "081-c3.bin", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ /* TC5316200 */
2948   ROM_LOAD16_BYTE( "081-c4.bin", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ /* TC5316200 */
2949   ROM_LOAD16_BYTE( "081-c5.bin", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ /* TC5316200 */
2950   ROM_LOAD16_BYTE( "081-c6.bin", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ /* TC5316200 */
29502951ROM_END
29512952
29522953ROM_START( doubledr )
r9535r9536
29812982   ROM_REGION( 0x100000, "maincpu", 0 )
29822983   ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) ) /* 27C240 */
29832984
2984   NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
2985   NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) /* mask rom TC531000 */
29852986
2986   NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
2987   NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) ) /* mask rom TC531001 */
29872988
29882989   ROM_REGION( 0x380000, "ymsnd", 0 )
2989   ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */
2990   ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */
2991   ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
2992   ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) )
2990   ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */ /* mask rom TC538200 */
2991   ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */ /* mask rom TC538200 */
2992   ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) /* mask rom TC538200 */
2993   ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) ) /* mask rom TC534200 */
29932994
29942995   NO_DELTAT_REGION
29952996
29962997   ROM_REGION( 0x500000, "sprites", 0 )
2997   ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */
2998   ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */
2999   ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */
3000   ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */
3001   ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */
3002   ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */
2998   ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */ /* mask rom TC538200 */
2999   ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */ /* mask rom TC538200 */
3000   ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */ /* mask rom TC538200 */
3001   ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */ /* mask rom TC538200 */
3002   ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ /* mask rom TC534200 */
3003   ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ /* mask rom TC534200 */
30033004ROM_END
30043005
30053006ROM_START( kof95 )
r9535r9536
30633064
30643065ROM_START( tws96 ) /* MVS ONLY RELEASE */
30653066   ROM_REGION( 0x100000, "maincpu", 0 )
3066   ROM_LOAD16_WORD_SWAP( "086-p1.bin", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) )
3067   ROM_LOAD16_WORD_SWAP( "086-p1.bin", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) /* mask rom TC538200 */
30673068
3068   NEO_SFIX_128K( "086-s1.bin", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) )
3069   NEO_SFIX_128K( "086-s1.bin", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) /* mask rom TC531000 */
30693070
3070   NEO_BIOS_AUDIO_128K( "086-m1.bin", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) )
3071   NEO_BIOS_AUDIO_128K( "086-m1.bin", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) ) /* mask rom TC531001 */
30713072
30723073   ROM_REGION( 0x400000, "ymsnd", 0 )
3073   ROM_LOAD( "086-v1.bin", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) )
3074   ROM_LOAD( "086-v2.bin", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) )
3074   ROM_LOAD( "086-v1.bin", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) /* mask rom TC5316200 */
3075   ROM_LOAD( "086-v2.bin", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) /* mask rom TC5316200 */
30753076
30763077   NO_DELTAT_REGION
30773078
30783079   ROM_REGION( 0xa00000, "sprites", 0 )
3079   ROM_LOAD16_BYTE( "086-c1.bin", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */
3080   ROM_LOAD16_BYTE( "086-c2.bin", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */
3081   ROM_LOAD16_BYTE( "086-c3.bin", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */
3082   ROM_LOAD16_BYTE( "086-c4.bin", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */
3080   ROM_LOAD16_BYTE( "086-c1.bin", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ /* mask rom TC5332205 */
3081   ROM_LOAD16_BYTE( "086-c2.bin", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ /* mask rom TC5332205 */
3082   ROM_LOAD16_BYTE( "086-c3.bin", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ /* mask rom TC538200 */
3083   ROM_LOAD16_BYTE( "086-c4.bin", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ /* mask rom TC538200 */
30833084ROM_END
30843085
30853086ROM_START( samsho3 ) /* MVS VERSION */
r9535r9536
31133114
31143115ROM_START( samsho3h ) /* AES VERSION */
31153116   ROM_REGION( 0x300000, "maincpu", 0 )
3116   ROM_LOAD16_WORD_SWAP( "087-pg1.bin", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* Mask rom - TC538200 */
3117   ROM_LOAD16_WORD_SWAP( "087-p2.bin",  0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* Mask rom - TC5316200 */
3117   ROM_LOAD16_WORD_SWAP( "087-pg1.bin", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) /* mask rom - TC538200 */
3118   ROM_LOAD16_WORD_SWAP( "087-p2.bin",  0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom - TC5316200 */
31183119
31193120   NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* T531000 */
31203121
r9535r9536
31403141ROM_START( fswords ) /* KOREAN VERSION */
31413142   ROM_REGION( 0x300000, "maincpu", 0 )
31423143   ROM_LOAD16_WORD_SWAP( "187-p1k.bin", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) )
3143   ROM_LOAD16_WORD_SWAP( "087-p2.bin",  0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* Mask rom - TC5316200 */
3144   ROM_LOAD16_WORD_SWAP( "087-p2.bin",  0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) /* mask rom - TC5316200 */
31443145
31453146   NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */
31463147
r9535r9536
31653166
31663167ROM_START( stakwin )
31673168   ROM_REGION( 0x200000, "maincpu", 0 )
3168   ROM_LOAD16_WORD_SWAP( "088-p1.bin", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) )
3169   ROM_LOAD16_WORD_SWAP( "088-p1.bin", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) /* TC5316200 */
31693170   ROM_CONTINUE( 0x000000, 0x100000)
31703171
3171   NEO_SFIX_128K( "088-s1.bin", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) )
3172   NEO_SFIX_128K( "088-s1.bin", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) /* TC531000 */
31723173
3173   NEO_BIOS_AUDIO_128K( "088-m1.bin", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) )
3174   NEO_BIOS_AUDIO_128K( "088-m1.bin", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) /* TC531001 */
31743175
31753176   ROM_REGION( 0x200000, "ymsnd", 0 )
3176   ROM_LOAD( "088-v1.bin", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) )
3177   ROM_LOAD( "088-v1.bin", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) /* TC5316200 */
31773178
31783179   NO_DELTAT_REGION
31793180
31803181   ROM_REGION( 0x800000, "sprites", 0 )
3181   ROM_LOAD16_BYTE( "088-c1.bin", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */
3182   ROM_LOAD16_BYTE( "088-c2.bin", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */
3183   ROM_LOAD16_BYTE( "088-c3.bin", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */
3184   ROM_LOAD16_BYTE( "088-c4.bin", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */
3182   ROM_LOAD16_BYTE( "088-c1.bin", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ /* TC5316200 */
3183   ROM_LOAD16_BYTE( "088-c2.bin", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ /* TC5316200 */
3184   ROM_LOAD16_BYTE( "088-c3.bin", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ /* TC5316200 */
3185   ROM_LOAD16_BYTE( "088-c4.bin", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ /* TC5316200 */
31853186ROM_END
31863187
31873188ROM_START( pulstar )
r9535r9536
32123213
32133214ROM_START( whp )
32143215   ROM_REGION( 0x200000, "maincpu", 0 )
3215   ROM_LOAD16_WORD_SWAP( "090-p1.bin", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) )
3216   ROM_LOAD16_WORD_SWAP( "090-p1.bin", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) /* mask rom TC5316200 */
32163217   ROM_CONTINUE( 0x000000, 0x100000 )
32173218
3218   NEO_SFIX_128K( "090-s1.bin", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
3219   NEO_SFIX_128K( "090-s1.bin", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) /* mask rom TC531000 */
32193220
3220   NEO_BIOS_AUDIO_128K( "090-m1.bin", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
3221   NEO_BIOS_AUDIO_128K( "090-m1.bin", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) /* mask rom TC531001 */
32213222
32223223   ROM_REGION( 0x600000, "ymsnd", 0 )
3223   ROM_LOAD( "090-v1.bin", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
3224   ROM_LOAD( "064-v2.bin", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
3225   ROM_LOAD( "090-v3.bin", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
3224   ROM_LOAD( "090-v1.bin", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) /* mask rom TC5316200 */
3225   ROM_LOAD( "064-v2.bin", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) /* mask rom TC5316200 */
3226   ROM_LOAD( "090-v3.bin", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) /* mask rom TC5316200 */
32263227
32273228   NO_DELTAT_REGION
32283229
32293230   ROM_REGION( 0x1c00000, "sprites", 0 )
3230   ROM_LOAD16_BYTE( "090-c1.bin", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */
3231   ROM_LOAD16_BYTE( "090-c2.bin", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */
3232   ROM_LOAD16_BYTE( "064-c3.bin", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */
3233   ROM_LOAD16_BYTE( "064-c4.bin", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */
3231   ROM_LOAD16_BYTE( "090-c1.bin", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) /* Plane 0,1 */ /* mask rom TC5332205 */
3232   ROM_LOAD16_BYTE( "090-c2.bin", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) /* Plane 2,3 */ /* mask rom TC5332205 */
3233   ROM_LOAD16_BYTE( "064-c3.bin", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ /* mask rom TC5316200 */
3234   ROM_LOAD16_BYTE( "064-c4.bin", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ /* mask rom TC5316200 */
32343235   /* 0c00000-0ffffff empty */
3235   ROM_LOAD16_BYTE( "064-c5.bin", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */
3236   ROM_LOAD16_BYTE( "064-c6.bin", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */
3236   ROM_LOAD16_BYTE( "064-c5.bin", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ /* mask rom TC5316200 */
3237   ROM_LOAD16_BYTE( "064-c6.bin", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ /* mask rom TC5316200 */
32373238   /* 1400000-17fffff empty */
3238   ROM_LOAD16_BYTE( "064-c7.bin", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */
3239   ROM_LOAD16_BYTE( "064-c8.bin", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */
3239   ROM_LOAD16_BYTE( "064-c7.bin", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ /* mask rom TC5316200 */
3240   ROM_LOAD16_BYTE( "064-c8.bin", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 2,3 */ /* mask rom TC5316200 */
32403241ROM_END
32413242
32423243ROM_START( kabukikl )
32433244   ROM_REGION( 0x200000, "maincpu", 0 )
3244   ROM_LOAD16_WORD_SWAP( "092-p1.bin", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) )
3245   ROM_LOAD16_WORD_SWAP( "092-p1.bin", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) /* mask rom TC5316200 */
32453246   ROM_CONTINUE( 0x000000, 0x100000 )
32463247
3247   NEO_SFIX_128K( "092-s1.bin", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
3248   NEO_SFIX_128K( "092-s1.bin", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) /* mask rom TC531000 */
32483249
3249   NEO_BIOS_AUDIO_128K( "092-m1.bin", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
3250   NEO_BIOS_AUDIO_128K( "092-m1.bin", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) /* mask rom TC531001 */
32503251
32513252   ROM_REGION( 0x700000, "ymsnd", 0 )
3252   ROM_LOAD( "092-v1.bin", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
3253   ROM_LOAD( "092-v2.bin", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
3254   ROM_LOAD( "092-v3.bin", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
3255   ROM_LOAD( "092-v4.bin", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
3253   ROM_LOAD( "092-v1.bin", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) /* mask rom TC5316200 */
3254   ROM_LOAD( "092-v2.bin", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) /* mask rom TC5316200 */
3255   ROM_LOAD( "092-v3.bin", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) /* mask rom TC5316200 */
3256   ROM_LOAD( "092-v4.bin", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) /* mask rom TC538200 */
32563257
32573258   NO_DELTAT_REGION
32583259
32593260   ROM_REGION( 0x1000000, "sprites", 0 )
3260   ROM_LOAD16_BYTE( "092-c1.bin", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */
3261   ROM_LOAD16_BYTE( "092-c2.bin", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */
3262   ROM_LOAD16_BYTE( "092-c3.bin", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */
3263   ROM_LOAD16_BYTE( "092-c4.bin", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */
3261   ROM_LOAD16_BYTE( "092-c1.bin", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ /* mask rom TC5332205 */
3262   ROM_LOAD16_BYTE( "092-c2.bin", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ /* mask rom TC5332205 */
3263   ROM_LOAD16_BYTE( "092-c3.bin", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ /* mask rom TC5332205 */
3264   ROM_LOAD16_BYTE( "092-c4.bin", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ /* mask rom TC5332205 */
32643265ROM_END
32653266
32663267ROM_START( neobombe ) /* MVS ONLY RELEASE */
32673268   ROM_REGION( 0x100000, "maincpu", 0 )
3268   ROM_LOAD16_WORD_SWAP( "093-p1.bin", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) )
3269   ROM_LOAD16_WORD_SWAP( "093-p1.bin", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) /* TC538200 */
32693270
3270   NEO_SFIX_128K( "093-s1.bin", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) )
3271   NEO_SFIX_128K( "093-s1.bin", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) /* TC531000 */
32713272
3272   NEO_BIOS_AUDIO_128K( "093-m1.bin", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) )
3273   NEO_BIOS_AUDIO_128K( "093-m1.bin", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) /* TC531001 */
32733274
32743275   ROM_REGION( 0x600000, "ymsnd", 0 )
3275   ROM_LOAD( "093-v1.bin", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) )
3276   ROM_LOAD( "093-v2.bin", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) )
3276   ROM_LOAD( "093-v1.bin", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) /* TC5332204 */
3277   ROM_LOAD( "093-v2.bin", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) /* TC5316200 */
32773278
32783279   NO_DELTAT_REGION
32793280
32803281   ROM_REGION( 0x900000, "sprites", 0 )
3281   ROM_LOAD16_BYTE( "093-c1.bin", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */
3282   ROM_LOAD16_BYTE( "093-c2.bin", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */
3283   ROM_LOAD16_BYTE( "093-c3.bin", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */
3284   ROM_LOAD16_BYTE( "093-c4.bin", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */
3282   ROM_LOAD16_BYTE( "093-c1.bin", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ /* TC5332205 */
3283   ROM_LOAD16_BYTE( "093-c2.bin", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ /* TC5332205 */
3284   ROM_LOAD16_BYTE( "093-c3.bin", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ /* TC534200 */
3285   ROM_LOAD16_BYTE( "093-c4.bin", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ /* TC534200 */
32853286ROM_END
32863287
32873288ROM_START( gowcaizr )
r9535r9536
33133314
33143315ROM_START( rbff1 ) /* MVS AND AES VERSION */
33153316   ROM_REGION( 0x300000, "maincpu", 0 )
3316   ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) )
3317   ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
3317   ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */
3318   ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */
33183319
3319   NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
3320   NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */
33203321
3321   NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
3322   NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */
33223323
33233324   ROM_REGION( 0xc00000, "ymsnd", 0 )
3324   ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
3325   ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
3326   ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
3325   ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */
3326   ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */
3327   ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */
33273328
33283329   NO_DELTAT_REGION
33293330
33303331   ROM_REGION( 0x1c00000, "sprites", 0 )
3331   ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */
3332   ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */
3333   ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */
3334   ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */
3335   ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */
3336   ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */
3337   ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */
3338   ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */
3332   ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */
3333   ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */
3334   ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */
3335   ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */
3336   ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */
3337   ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */
3338   ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */
3339   ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */
33393340ROM_END
33403341
33413342ROM_START( rbff1a ) /* MVS VERSION */
33423343   /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */
33433344   /* 512k ROM was added to replace the first 512k of P1. */
33443345   ROM_REGION( 0x300000, "maincpu", 0 )
3345   ROM_LOAD16_WORD_SWAP( "095-p1.bin",  0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) )
3346   ROM_LOAD16_WORD_SWAP( "095-p2.bin",  0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
3346   ROM_LOAD16_WORD_SWAP( "095-p1.bin",  0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) /* TC538200 */
3347   ROM_LOAD16_WORD_SWAP( "095-p2.bin",  0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) /* TC5316200 */
33473348   /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
33483349   ROM_LOAD16_WORD_SWAP( "095-ep1.bin", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) )
33493350
3350   NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
3351   NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) /* TC531000 */
33513352
3352   NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
3353   NEO_BIOS_AUDIO_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) /* TC531001 */
33533354
33543355   ROM_REGION( 0xc00000, "ymsnd", 0 )
3355   ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
3356   ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
3357   ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
3356   ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) /* TC5332204 */
3357   ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) /* TC5332204 */
3358   ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) /* TC5332201 */
33583359
33593360   NO_DELTAT_REGION
33603361
33613362   ROM_REGION( 0x1c00000, "sprites", 0 )
3362   ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */
3363   ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */
3364   ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */
3365   ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */
3366   ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */
3367   ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */
3368   ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */
3369   ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */
3363   ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ /* TC5332205 */
3364   ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ /* TC5332205 */
3365   ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ /* TC5332205 */
3366   ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ /* TC5332205 */
3367   ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ /* TC5332202 */
3368   ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ /* TC5332202 */
3369   ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ /* TC5316200 */
3370   ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ /* TC5316200 */
33703371ROM_END
33713372
33723373ROM_START( aof3 )
33733374   ROM_REGION( 0x300000, "maincpu", 0 )
3374   ROM_LOAD16_WORD_SWAP( "096-p1.bin", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) )
3375   ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
3375   ROM_LOAD16_WORD_SWAP( "096-p1.bin", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) /* TC538200 */
3376   ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */
33763377
3377   NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
3378   NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */
33783379
3379   NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
3380   NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */
33803381
33813382   ROM_REGION( 0x600000, "ymsnd", 0 )
3382   ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
3383   ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
3384   ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
3383   ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */
3384   ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */
3385   ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */
33853386
33863387   NO_DELTAT_REGION
33873388
33883389   ROM_REGION( 0x1c00000, "sprites", 0 )
3389   ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */
3390   ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */
3391   ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */
3392   ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */
3393   ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */
3394   ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */
3395   ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */
3396   ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */
3390   ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */
3391   ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */
3392   ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */
3393   ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */
3394   ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */
3395   ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */
3396   ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */
3397   ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */
33973398ROM_END
33983399
33993400ROM_START( aof3k ) /* KOREAN VERSION */
34003401   ROM_REGION( 0x300000, "maincpu", 0 )
34013402   ROM_LOAD16_WORD_SWAP( "196-p1k.bin", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) )
3402   ROM_LOAD16_WORD_SWAP( "096-p2.bin",  0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
3403   ROM_LOAD16_WORD_SWAP( "096-p2.bin",  0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) /* TC5316200 */
34033404
3404   NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
3405   NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) /* TC531000 */
34053406
3406   NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
3407   NEO_BIOS_AUDIO_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) /* TC531001 */
34073408
34083409   ROM_REGION( 0x600000, "ymsnd", 0 )
3409   ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
3410   ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
3411   ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
3410   ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) /* TC5316200 */
3411   ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) /* TC5316200 */
3412   ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) /* TC5316200 */
34123413
34133414   NO_DELTAT_REGION
34143415
34153416   ROM_REGION( 0x1c00000, "sprites", 0 )
3416   ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */
3417   ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */
3418   ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */
3419   ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */
3420   ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */
3421   ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */
3422   ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */
3423   ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */
3417   ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ /* TC5332205 */
3418   ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ /* TC5332205 */
3419   ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ /* TC5332205 */
3420   ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ /* TC5332205 */
3421   ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ /* TC5332205 */
3422   ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ /* TC5332205 */
3423   ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ /* TC5316200 */
3424   ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ /* TC5316200 */
34243425ROM_END
34253426
34263427ROM_START( sonicwi3 )
34273428   ROM_REGION( 0x200000, "maincpu", 0 )
3428   ROM_LOAD16_WORD_SWAP( "097-p1.bin", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) )
3429   ROM_LOAD16_WORD_SWAP( "097-p1.bin", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) /* TC5316200 */
34293430   ROM_CONTINUE( 0x000000, 0x100000 )
34303431
3431   NEO_SFIX_128K( "097-s1.bin", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
3432   NEO_SFIX_128K( "097-s1.bin", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) /* TC531000 */
34323433
3433   NEO_BIOS_AUDIO_128K( "097-m1.bin", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
3434   NEO_BIOS_AUDIO_128K( "097-m1.bin", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) /* TC531001 */
34343435
34353436   ROM_REGION( 0x600000, "ymsnd", 0 )
3436   ROM_LOAD( "097-v1.bin", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
3437   ROM_LOAD( "097-v2.bin", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
3437   ROM_LOAD( "097-v1.bin", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) /* TC5332201 */
3438   ROM_LOAD( "097-v2.bin", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) ) /* TC5316200 */
34383439
34393440   NO_DELTAT_REGION
34403441
34413442   ROM_REGION( 0xc00000, "sprites", 0 )
3442   ROM_LOAD16_BYTE( "097-c1.bin", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */
3443   ROM_LOAD16_BYTE( "097-c2.bin", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */
3444   ROM_LOAD16_BYTE( "097-c3.bin", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */
3445   ROM_LOAD16_BYTE( "097-c4.bin", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */
3443   ROM_LOAD16_BYTE( "097-c1.bin", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ /* TC5332202 */
3444   ROM_LOAD16_BYTE( "097-c2.bin", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ /* TC5332202 */
3445   ROM_LOAD16_BYTE( "097-c3.bin", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ /* TC5316200 */
3446   ROM_LOAD16_BYTE( "097-c4.bin", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ /* TC5316200 */
34463447ROM_END
34473448
34483449ROM_START( turfmast )
r9535r9536
34913492
34923493ROM_START( puzzledp ) /* MVS ONLY RELEASE */
34933494   ROM_REGION( 0x100000, "maincpu", 0 )
3494   ROM_LOAD16_WORD_SWAP( "202-p1.bin", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) )
3495   ROM_LOAD16_WORD_SWAP( "202-p1.bin", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) /* TC534200 */
34953496
3496   NEO_SFIX_128K( "202-s1.bin", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
3497   NEO_SFIX_128K( "202-s1.bin", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) ) /* TC531000 */
34973498
3498   NEO_BIOS_AUDIO_128K( "202-m1.bin", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
3499   NEO_BIOS_AUDIO_128K( "202-m1.bin", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) /* TC531001 */
34993500
35003501   ROM_REGION( 0x080000, "ymsnd", 0 )
3501   ROM_LOAD( "202-v1.bin", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
3502   ROM_LOAD( "202-v1.bin", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) /* TC534200 */
35023503
35033504   NO_DELTAT_REGION
35043505
35053506   ROM_REGION( 0x200000, "sprites", 0 )
3506   ROM_LOAD16_BYTE( "202-c1.bin", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */
3507   ROM_LOAD16_BYTE( "202-c2.bin", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */
3507   ROM_LOAD16_BYTE( "202-c1.bin", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ /* TC538200 */
3508   ROM_LOAD16_BYTE( "202-c2.bin", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ /* TC538200 */
35083509ROM_END
35093510
35103511ROM_START( mosyougi )
35113512   ROM_REGION( 0x100000, "maincpu", 0 )
3512   ROM_LOAD16_WORD_SWAP( "203-p1.bin", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) )
3513   ROM_LOAD16_WORD_SWAP( "203-p1.bin", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) /* TC538200 */
35133514
3514   NEO_SFIX_128K( "203-s1.bin", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) )
3515   NEO_SFIX_128K( "203-s1.bin", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) ) /* TC531000 */
35153516
3516   NEO_BIOS_AUDIO_128K( "203-m1.bin", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) )
3517   NEO_BIOS_AUDIO_128K( "203-m1.bin", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) /* TC531001 */
35173518
35183519   ROM_REGION( 0x200000, "ymsnd", 0 )
3519   ROM_LOAD( "203-v1.bin", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) )
3520   ROM_LOAD( "203-v1.bin", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) /* TC5316200 */
35203521
35213522   NO_DELTAT_REGION
35223523
35233524   ROM_REGION( 0x400000, "sprites", 0 )
3524   ROM_LOAD16_BYTE( "203-c1.bin", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */
3525   ROM_LOAD16_BYTE( "203-c2.bin", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */
3525   ROM_LOAD16_BYTE( "203-c1.bin", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ /* TC5316200 */
3526   ROM_LOAD16_BYTE( "203-c2.bin", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ /* TC5316200 */
35263527ROM_END
35273528
35283529ROM_START( marukodq )
r9535r9536
35663567
35673568ROM_START( sdodgeb ) /* MVS ONLY RELEASE */
35683569   ROM_REGION( 0x200000, "maincpu", 0 )
3569   ROM_LOAD16_WORD_SWAP( "208-p1.bin", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) )
3570   ROM_LOAD16_WORD_SWAP( "208-p1.bin", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) /* TC5316200 */
35703571   ROM_CONTINUE( 0x000000, 0x100000 )
35713572
3572   NEO_SFIX_128K( "208-s1.bin", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) )
3573   NEO_SFIX_128K( "208-s1.bin", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) /* TC531000 */
35733574
3574   NEO_BIOS_AUDIO_128K( "208-m1.bin", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) )
3575   NEO_BIOS_AUDIO_128K( "208-m1.bin", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) /* TC531001 */
35753576
35763577   ROM_REGION( 0x400000, "ymsnd", 0 )
3577   ROM_LOAD( "208-v1.bin", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) )
3578   ROM_LOAD( "208-v1.bin", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) ) /* TC5332204 */
35783579
35793580   NO_DELTAT_REGION
35803581
35813582   ROM_REGION( 0x0c00000, "sprites", 0 )
3582   ROM_LOAD16_BYTE( "208-c1.bin", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */
3583   ROM_LOAD16_BYTE( "208-c2.bin", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */
3584   ROM_LOAD16_BYTE( "208-c3.bin", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */
3585   ROM_LOAD16_BYTE( "208-c4.bin", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */
3583   ROM_LOAD16_BYTE( "208-c1.bin", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ /* TC5332205 */
3584   ROM_LOAD16_BYTE( "208-c2.bin", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ /* TC5332205 */
3585   ROM_LOAD16_BYTE( "208-c3.bin", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ /* TC5316200 */
3586   ROM_LOAD16_BYTE( "208-c4.bin", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ /* TC5316200 */
35863587ROM_END
35873588
35883589ROM_START( goalx3 ) /* MVS ONLY RELEASE */
r9535r9536
36513652
36523653ROM_START( kof96 ) /* MVS VERSION */
36533654   ROM_REGION( 0x300000, "maincpu", 0 )
3654   ROM_LOAD16_WORD_SWAP( "214-p1.bin", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
3655   ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
3655   ROM_LOAD16_WORD_SWAP( "214-p1.bin", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */
3656   ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */
36563657
3657   NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
3658   NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */
36583659
3659   NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
3660   NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */
36603661
36613662   ROM_REGION( 0xa00000, "ymsnd", 0 )
3662   ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
3663   ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
3664   ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
3663   ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */
3664   ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */
3665   ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */
36653666
36663667   NO_DELTAT_REGION
36673668
36683669   ROM_REGION( 0x2000000, "sprites", 0 )
3669   ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */
3670   ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */
3671   ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */
3672   ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */
3673   ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */
3674   ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */
3675   ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */
3676   ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */
3670   ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */
3671   ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */
3672   ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */
3673   ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */
3674   ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */
3675   ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */
3676   ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */
3677   ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */
36773678ROM_END
36783679
36793680ROM_START( kof96h )
36803681   ROM_REGION( 0x300000, "maincpu", 0 )
36813682   ROM_LOAD16_WORD_SWAP( "214-pg1.bin",0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) )
3682   ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
3683   ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */
36833684
3684   NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
3685   NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */
36853686
3686   NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
3687   NEO_BIOS_AUDIO_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) /* TC531001 */
36873688
36883689   ROM_REGION( 0xa00000, "ymsnd", 0 )
3689   ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
3690   ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
3691   ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
3690   ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) /* TC5332204 */
3691   ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) /* TC5332204 */
3692   ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) /* TC5316200 */
36923693
36933694   NO_DELTAT_REGION
36943695
36953696   ROM_REGION( 0x2000000, "sprites", 0 )
3696   ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */
3697   ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */
3698   ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */
3699   ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */
3700   ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */
3701   ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */
3702   ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */
3703   ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */
3697   ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ /* TC5332205 */
3698   ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ /* TC5332205 */
3699   ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ /* TC5332205 */
3700   ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ /* TC5332205 */
3701   ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ /* TC5332205 */
3702   ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ /* TC5332205 */
3703   ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ /* TC5332205 */
3704   ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ /* TC5332205 */
37043705ROM_END
37053706
37063707ROM_START( ssideki4 )
37073708   ROM_REGION( 0x200000, "maincpu", 0 )
3708   ROM_LOAD16_WORD_SWAP( "215-p1.bin", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) )
3709   ROM_LOAD16_WORD_SWAP( "215-p1.bin", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) /* TC5316200 */
37093710   ROM_CONTINUE( 0x000000, 0x100000 )
37103711
3711   NEO_SFIX_128K( "215-s1.bin", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) )
3712   NEO_SFIX_128K( "215-s1.bin", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) /* TC531000 */
37123713
3713   NEO_BIOS_AUDIO_128K( "215-m1.bin", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) )
3714   NEO_BIOS_AUDIO_128K( "215-m1.bin", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) /* TC531001 */
37143715
37153716   ROM_REGION( 0x600000, "ymsnd", 0 )
3716   ROM_LOAD( "215-v1.bin", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) )
3717   ROM_LOAD( "215-v2.bin", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) )
3717   ROM_LOAD( "215-v1.bin", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) /* TC5332204 */
3718   ROM_LOAD( "215-v2.bin", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) /* TC5316200 */
37183719
37193720   NO_DELTAT_REGION
37203721
37213722   ROM_REGION( 0x1400000, "sprites", 0 )
3722   ROM_LOAD16_BYTE( "215-c1.bin", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */
3723   ROM_LOAD16_BYTE( "215-c2.bin", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */
3724   ROM_LOAD16_BYTE( "215-c3.bin", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */
3725   ROM_LOAD16_BYTE( "215-c4.bin", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */
3726   ROM_LOAD16_BYTE( "215-c5.bin", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */
3727   ROM_LOAD16_BYTE( "215-c6.bin", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */
3723   ROM_LOAD16_BYTE( "215-c1.bin", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ /* TC5332205 */
3724   ROM_LOAD16_BYTE( "215-c2.bin", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ /* TC5332205 */
3725   ROM_LOAD16_BYTE( "215-c3.bin", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ /* TC5332205 */
3726   ROM_LOAD16_BYTE( "215-c4.bin", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ /* TC5332205 */
3727   ROM_LOAD16_BYTE( "215-c5.bin", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ /* TC5316200 */
3728   ROM_LOAD16_BYTE( "215-c6.bin", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ /* TC5316200 */
37283729ROM_END
37293730
37303731ROM_START( kizuna )
r9535r9536
38533854
38543855ROM_START( samsho4 )
38553856   ROM_REGION( 0x500000, "maincpu", 0 )
3856   ROM_LOAD16_WORD_SWAP( "222-p1.bin", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) )
3857   ROM_LOAD16_WORD_SWAP( "222-p2.bin", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
3857   ROM_LOAD16_WORD_SWAP( "222-p1.bin", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) /* TC538200 */
3858   ROM_LOAD16_WORD_SWAP( "222-p2.bin", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) /* TC5332205 */
38583859
3859   NEO_SFIX_128K( "222-s1.bin", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
3860   NEO_SFIX_128K( "222-s1.bin", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) /* TC531000 */
38603861
3861   NEO_BIOS_AUDIO_128K( "222-m1.bin", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
3862   NEO_BIOS_AUDIO_128K( "222-m1.bin", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) /* TC531001 */
38623863
38633864   ROM_REGION( 0xa00000, "ymsnd", 0 )
3864   ROM_LOAD( "222-v1.bin", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
3865   ROM_LOAD( "222-v2.bin", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
3866   ROM_LOAD( "222-v3.bin", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
3865   ROM_LOAD( "222-v1.bin", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) /* TC5332204 */
3866   ROM_LOAD( "222-v2.bin", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) /* TC5332204 */
3867   ROM_LOAD( "222-v3.bin", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) /* TC5316200 */
38673868
38683869   NO_DELTAT_REGION
38693870
38703871   ROM_REGION( 0x2000000, "sprites", 0 )
3871   ROM_LOAD16_BYTE( "222-c1.bin", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */
3872   ROM_LOAD16_BYTE( "222-c2.bin", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */
3873   ROM_LOAD16_BYTE( "222-c3.bin", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */
3874   ROM_LOAD16_BYTE( "222-c4.bin", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */
3875   ROM_LOAD16_BYTE( "222-c5.bin", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */
3876   ROM_LOAD16_BYTE( "222-c6.bin", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */
3877   ROM_LOAD16_BYTE( "222-c7.bin", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */
3878   ROM_LOAD16_BYTE( "222-c8.bin", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */
3872   ROM_LOAD16_BYTE( "222-c1.bin", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ /* TC5332205 */
3873   ROM_LOAD16_BYTE( "222-c2.bin", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ /* TC5332205 */
3874   ROM_LOAD16_BYTE( "222-c3.bin", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ /* TC5332205 */
3875   ROM_LOAD16_BYTE( "222-c4.bin", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ /* TC5332205 */
3876   ROM_LOAD16_BYTE( "222-c5.bin", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ /* TC5332205 */
3877   ROM_LOAD16_BYTE( "222-c6.bin", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ /* TC5332205 */
3878   ROM_LOAD16_BYTE( "222-c7.bin", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ /* TC5332205 */
3879   ROM_LOAD16_BYTE( "222-c8.bin", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ /* TC5332205 */
38793880ROM_END
38803881
38813882ROM_START( samsho4k ) /* Uses PCBs "NEO-MVS PROGBK1" and "NEO-MVS CHA256 B" */
r9535r9536
40814082
40824083   NO_DELTAT_REGION
40834084
4084   ROM_REGION( 0x500000, "sprites", 0 )
4085   ROM_REGION( 0x600000, "sprites", 0 )
40854086   ROM_LOAD16_BYTE( "231-c1.bin", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) ) /* Plane 0,1 */
40864087   ROM_LOAD16_BYTE( "231-c2.bin", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) ) /* Plane 2,3 */
4087   ROM_LOAD16_BYTE( "231-c3.bin", 0x400000, 0x080000, CRC(14524eb5) SHA1(e090b99a1ee2cca4a7f7d5262e764d1cab6bada2) ) /* Plane 0,1 */
4088   ROM_LOAD16_BYTE( "231-c4.bin", 0x400001, 0x080000, CRC(1694f171) SHA1(a6af5d3f1e0b3f73da275e04d4434c6c9c7b9208) ) /* Plane 2,3 */
4088   ROM_LOAD16_BYTE( "231-c3.bin", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) ) /* Plane 0,1 */
4089   ROM_LOAD16_BYTE( "231-c4.bin", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) ) /* Plane 2,3 */
40894090ROM_END
40904091
40914092ROM_START( kof97 ) /* MVS VERSION */
r9535r9536
46974698
46984699ROM_START( flipshot ) /* MVS ONLY RELEASE */
46994700   ROM_REGION( 0x100000, "maincpu", 0 )
4700   ROM_LOAD16_WORD_SWAP( "247-p1.bin", 0x000000, 0x080000, BAD_DUMP CRC(d2e7a7e3) SHA1(1ff4f070fcc658bbc7dc69e16c87f82d7392d100) )
4701   ROM_LOAD16_WORD_SWAP( "247-p1.bin", 0x000000, 0x100000, CRC(95779094) SHA1(a985e033bc6f137fa65855d3eed245d66d5b244a) )
47014702
47024703   NEO_SFIX_128K( "247-s1.bin", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) )
47034704
src/mame/drivers/blitz.c
r9535r9536
99
1010  Games running on this hardware:
1111
12  * Mega Double Poker (conversion kit). 1990, Blitz System Inc.
12  * Mega Double Poker (conversion kit, set 1). 1990, Blitz System Inc.
13  * Mega Double Poker (conversion kit, set 2). 1990, Blitz System Inc.
1314
1415
1516*******************************************************************************
r9535r9536
154155
155156                                                      CPU  R6502AP (U6)
156157                                                    .--------\ /--------.
157  MCU (01-05-07), MEGA-2 (14-20), MEGA-3 (14-20) ---|01 VSS   ?  /RES 40|---
158  MCU (01-05-07), MEGA-2 (14-20), MEGA-3 (14-20) ---|01 VSS   '  /RES 40|---
158159                                        MCU (02) ---|02 RDY    PH2(O) 39|---
159160                                        MCU (04) ---|03 PH1(O)    /SO 38|---
160161                                                 ---|04 /IRQ   PH0(I) 37|---
r9535r9536
179180
180181                                       MCU MC68705P5S (U1)
181182                                      .--------\ /--------.
182  MEGA-2 (12, 20), MEGA-3 (12, 20) ---|01 VSS   ?  /RES 28|---
183  MEGA-2 (12, 20), MEGA-3 (12, 20) ---|01 VSS   '  /RES 28|---
183184                          CPU (02) ---|02 /INT      PA7 27|---
184185  MEGA-2 (01, 28), MEGA-3 (01, 28) ---|03 VCC       PA6 26|---
185186                          CPU (03) ---|04 EXTAL     PA5 25|---
r9535r9536
198199
199200                                                  MEGA-2 27C256 (U2)
200201                                                 .-------\ /-------.
201                                              ---|01 VPP  ?  VCC 28|---
202                                              ---|01 VPP  '  VCC 28|---
202203                                              ---|02 A12     A14 27|---
203204                                              ---|03 A7      A13 26|---
204205                                              ---|04 A6       A8 25|---
r9535r9536
217218
218219                                                  MEGA-3 27C256 (U3)
219220                                                 .-------\ /-------.
220                                              ---|01 VPP  ?  VCC 28|---
221                                              ---|01 VPP  '  VCC 28|---
221222                                              ---|02 A12     A14 27|---
222223                                              ---|03 A7      A13 26|---
223224                                              ---|04 A6       A8 25|---
r9535r9536
837838   ROM_LOAD( "m3-7611-5.7d",   0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
838839ROM_END
839840
841/*
840842
843manufacturer : Blitz system
844Game name :    Mega Double Poker
845Platform  :    Bonanza golden poker interface
846
847
848BoardID
849BO-BL-01
850
851Protection:    U11  MC68705P5S  microcontroller with window
852
853maincpu:
854U6  UM6502
855U5  MK48T02B-15   time/clock backup ram
856
857U2.bin  27C256 ROM
858U3.bin  27C256 ROM
859
860Graphics ic
861car1_5a.bin  27C32 ROM
862car2_4a.bin  27C32 ROM
863car3_2a.bin  27C32 ROM
864
865
866note : MC68705P5S is protected
867
868*/
869
870ROM_START( megadpkrb )
871   ROM_REGION( 0x10000, "maincpu", 0 )   /* program ROM */
872   ROM_LOAD( "u2.bin",   0x8000, 0x8000, CRC(0efdf472) SHA1(4b1ae10427c2ae8d7cbbe525a6b30973372d4420) )
873
874   /* sharing the same space, but not totally understood... banked through MCU? */
875   ROM_REGION( 0x10000, "cpubank", 0 )
876   ROM_LOAD( "u3.bin",   0x8000, 0x8000, CRC(c973e345) SHA1(aae9da8cbaf0cf07086e5acacf9052e49fbdd896) )
877
878   ROM_REGION( 0x0800, "mcu", 0 )   /* 2k for the undumped 68705 microcontroller */
879   ROM_LOAD( "u11.bin",  0x0000, 0x0800, NO_DUMP )
880
881   ROM_REGION( 0x3000, "gfx1", 0 )
882   ROM_FILL(            0x0000, 0x2000, 0 ) /* filling the R-G bitplanes */
883   ROM_LOAD( "car1_5a.bin",   0x2000, 0x1000, CRC(29e244d2) SHA1(c309a5ee6922bf2752d218c134edb3ef5f808afa) )    /* text chars / cards deck gfx, bitplane3 */
884
885   ROM_REGION( 0x3000, "gfx2", 0 )
886   ROM_LOAD( "car3_2a.bin",   0x0000, 0x1000, CRC(819c06c4) SHA1(45b874554fb487173acf12daa4ff99e49e335362) )    /* cards deck gfx, bitplane1 */
887   ROM_LOAD( "car2_4a.bin",   0x1000, 0x1000, CRC(41eec680) SHA1(3723f66e1def3908f2e6ba2989def229d9846b02) )    /* cards deck gfx, bitplane2 */
888   ROM_COPY( "gfx1",   0x2800, 0x2000, 0x0800 )    /* cards deck gfx, bitplane3. found in the 2nd quarter of the chars rom */
889
890   ROM_REGION( 0x0100, "proms", 0 )
891   ROM_LOAD( "m3-7611-5.7d",   0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
892ROM_END
893
894
841895/*********************************************
842896*                Game Drivers                *
843897*********************************************/
844898
845/*    YEAR  NAME      PARENT    MACHINE   INPUT     INIT  ROT     COMPANY              FULLNAME                             FLAGS */
846GAME( 1990, megadpkr, 0,        megadpkr, megadpkr, 0,    ROT0,  "Blitz System Inc.", "Mega Double Poker (conversion kit)", GAME_NO_SOUND | GAME_NOT_WORKING )
899/*    YEAR  NAME       PARENT    MACHINE   INPUT     INIT  ROT     COMPANY              FULLNAME                                    FLAGS */
900GAME( 1990, megadpkr,  0,        megadpkr, megadpkr, 0,    ROT0,  "Blitz System Inc.", "Mega Double Poker (conversion kit, set 1)", GAME_NO_SOUND | GAME_NOT_WORKING )
901GAME( 1990, megadpkrb, megadpkr, megadpkr, megadpkr, 0,    ROT0,  "Blitz System Inc.", "Mega Double Poker (conversion kit, set 2)", GAME_NO_SOUND | GAME_NOT_WORKING )
src/mame/drivers/artmagic.c
r9535r9536
88        * Cheese Chase
99        * Ultimate Tennis
1010        * Stone Ball
11        * Shooting Star (not emulated)
1112
1213    Known bugs:
1314        * measured against a real PCB, the games run slightly too fast
r9535r9536
2425#include "emu.h"
2526#include "cpu/m68000/m68000.h"
2627#include "cpu/tms34010/tms34010.h"
28#include "cpu/mcs51/mcs51.h"
2729#include "video/tlc34076.h"
2830#include "includes/artmagic.h"
2931#include "sound/okim6295.h"
r9535r9536
461463   AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w)
462464ADDRESS_MAP_END
463465
466static READ16_HANDLER(unk_r)
467{
468   return mame_rand(space->machine);
469}
464470
471static ADDRESS_MAP_START( shtstar_map, ADDRESS_SPACE_PROGRAM, 16 )
472   AM_RANGE(0x000000, 0x07ffff) AM_ROM
473   AM_RANGE(0x200000, 0x27ffff) AM_RAM
474   AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("nvram")
465475
476   AM_RANGE(0x3c0000, 0x3c0001) AM_READ_PORT("3c0000")
477   AM_RANGE(0x3c0002, 0x3c0003) AM_READ_PORT("3c0002")
478   AM_RANGE(0x3c0004, 0x3c0005) AM_READ_PORT("3c0004")
479   AM_RANGE(0x3c0006, 0x3c0007) AM_READ_PORT("3c0006")
480   AM_RANGE(0x3c0008, 0x3c0009) AM_READ_PORT("3c0008")
481   AM_RANGE(0x3c000a, 0x3c000b) AM_READ_PORT("3c000a")
482
483   AM_RANGE(0x3c0012, 0x3c0013) AM_READ(unk_r)
484   AM_RANGE(0x3c0014, 0x3c0015) AM_NOP
485
486   AM_RANGE(0x300000, 0x300003) AM_WRITE(control_w) AM_BASE(&control)
487   AM_RANGE(0x3c0004, 0x3c0007) AM_WRITE(protection_bit_w)
488   AM_RANGE(0x340000, 0x340001) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff)
489   AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w)
490ADDRESS_MAP_END
491
492
466493/*************************************
467494 *
468495 *  Slave CPU memory handlers
r9535r9536
501528   AM_RANGE(0xffc00000, 0xffffffff) AM_RAM
502529ADDRESS_MAP_END
503530
531/*************************************
532 *
533 *  Extra CPU memory handlers
534 *   (Shooting Star)
535 *
536 *************************************/
504537
538/* see adp.c */
539static ADDRESS_MAP_START( shtstar_subcpu_map, ADDRESS_SPACE_PROGRAM, 16 )
540   AM_RANGE(0x000000, 0x03ffff) AM_ROM
541   AM_RANGE(0xffc000, 0xffffff) AM_RAM
542ADDRESS_MAP_END
505543
544static ADDRESS_MAP_START( shtstar_guncpu_map, ADDRESS_SPACE_PROGRAM, 8 )
545   AM_RANGE(0x0000, 0x7fff) AM_ROM
546ADDRESS_MAP_END
547
548static ADDRESS_MAP_START( shtstar_guncpu_io_map, ADDRESS_SPACE_IO, 8 )
549   AM_RANGE(0xc000, 0xcfff) AM_RAM
550ADDRESS_MAP_END
551
552
506553/*************************************
507554 *
508555 *  Port definitions
r9535r9536
700747INPUT_PORTS_END
701748
702749
750static INPUT_PORTS_START( shtstar )
751
752   PORT_START("3c0000")
753   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
754   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
755   PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
756   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
757   PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START1 )
758   PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
759   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
760   PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1)
761   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
762
763   PORT_START("3c0002")
764   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
765   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
766   PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
767   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
768   PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_START2 )
769   PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
770   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
771   PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
772   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
773
774   PORT_START("3c0004")
775   PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SWB:8" )      /* Listed as "Unused" */
776   PORT_DIPNAME( 0x0006, 0x0004, DEF_STR( Language ) )      PORT_DIPLOCATION("SWB:6,7")
777   PORT_DIPSETTING(      0x0000, DEF_STR( French ) )
778   PORT_DIPSETTING(      0x0002, DEF_STR( Italian ) )
779   PORT_DIPSETTING(      0x0004, DEF_STR( English ) )
780   PORT_DIPSETTING(      0x0006, DEF_STR( German ) )
781   PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Lives ))         PORT_DIPLOCATION("SWB:4,5")
782   PORT_DIPSETTING(      0x0008, "3" )
783   PORT_DIPSETTING(      0x0018, "4" )
784   PORT_DIPSETTING(      0x0000, "5" )
785   PORT_DIPSETTING(      0x0010, "6" )
786   PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Demo_Sounds ))   PORT_DIPLOCATION("SWB:3")
787   PORT_DIPSETTING(      0x0020, DEF_STR( Off ))
788   PORT_DIPSETTING(      0x0000, DEF_STR( On ))
789   PORT_DIPNAME( 0x00c0, 0x0040, DEF_STR( Difficulty ))   PORT_DIPLOCATION("SWB:1,2")
790   PORT_DIPSETTING(      0x00c0, DEF_STR( Easy ) )
791   PORT_DIPSETTING(      0x0040, DEF_STR( Normal ) )
792   PORT_DIPSETTING(      0x0080, DEF_STR( Hard ) )
793   PORT_DIPSETTING(      0x0000, DEF_STR( Very_Hard ) )
794   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
795
796   PORT_START("3c0006")
797   PORT_DIPNAME( 0x0007, 0x0007, "Right Coinage" )      PORT_DIPLOCATION("SWA:6,7,8")
798   PORT_DIPSETTING(      0x0002, DEF_STR( 6C_1C ))
799   PORT_DIPSETTING(      0x0006, DEF_STR( 5C_1C ))
800   PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ))
801   PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ))
802   PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ))
803   PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ))
804   PORT_DIPSETTING(      0x0004, DEF_STR( 1C_2C ))
805   PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ))
806   PORT_DIPNAME( 0x0038, 0x0038, "Left Coinage"  )      PORT_DIPLOCATION("SWA:3,4,5")
807   PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ))
808   PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ))
809   PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ))
810   PORT_DIPSETTING(      0x0018, DEF_STR( 1C_2C ))
811   PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ))
812   PORT_DIPSETTING(      0x0008, DEF_STR( 1C_4C ))
813   PORT_DIPSETTING(      0x0030, DEF_STR( 1C_5C ))
814   PORT_DIPSETTING(      0x0010, DEF_STR( 1C_6C ))
815   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ))   PORT_DIPLOCATION("SWA:2")
816   PORT_DIPSETTING(      0x0040, DEF_STR( Off ))
817   PORT_DIPSETTING(      0x0000, DEF_STR( On ))
818   PORT_SERVICE_DIPLOC(  0x0080, IP_ACTIVE_LOW, "SWA:1" )
819   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
820
821   PORT_START("3c0008")
822   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_COIN1 )
823   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_COIN2 )
824   PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_COIN3 )
825   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN4 )
826   PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN )
827   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
828
829   PORT_START("3c000a")
830   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(prot_r, NULL)   /* protection data */
831   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_SPECIAL )      /* protection ready */
832   PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN )
833   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
834INPUT_PORTS_END
835
836
703837/*************************************
704838 *
705839 *  Machine driver
r9535r9536
758892   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
759893MACHINE_CONFIG_END
760894
895static MACHINE_CONFIG_DERIVED( shtstar, artmagic )
761896
897   MDRV_CPU_MODIFY("maincpu")
898   MDRV_CPU_PROGRAM_MAP(shtstar_map)
762899
900   /* sub cpu*/
901   MDRV_CPU_ADD("subcpu", M68000, MASTER_CLOCK_25MHz/2)
902   MDRV_CPU_PROGRAM_MAP(shtstar_subcpu_map)
903
904   /*gun board cpu*/
905   MDRV_CPU_ADD("guncpu", I80C31, 6000000)
906   MDRV_CPU_IO_MAP(shtstar_guncpu_io_map)
907   MDRV_CPU_PROGRAM_MAP(shtstar_guncpu_map)
908
909MACHINE_CONFIG_END
910
911
912
763913/*************************************
764914 *
765915 *  ROM definition(s)
r9535r9536
8731023   ROM_LOAD( "u1801.bin", 0x00000, 0x80000, CRC(d98f7378) SHA1(700df7f29c039b96791c2704a67f01a722dc96dc) )
8741024ROM_END
8751025
1026/*
8761027
1028Shooting Star:
8771029
1030- Small pcb "gewehr controller" (gun controller) adp 1994
1031    romless MCU 80c31BH-3 16P philips
1032    27c256 eprom "2207 7b42c5"
1033    LC36648L-10
1034    8 connectors
1035    3X led
1036    osc 12.0000M
1037
1038- common adp cpu board adp 1994.12
1039    MC68ec0000FN8
1040    2x 27c1001 eproms
1041    2x mk48t08b-15 timekeeper RAM
1042
1043- common adp i/o board (see adp.c ) with MC68681 an YM2149F
1044
1045- lamp board with triacs
1046
1047- a couple of tiny boards with some logic parts
1048
1049- Art & Magic jamma pcb,  11 connectors (jamma not connected)   "am005c0494 0310"
1050    MC68000p12
1051    TMS34010fnl-40
1052    fpga actel a1020a  pl84c  16b.u110
1053    cpld xilinx xc7236a 0 25  15b.u111
1054    MC68681p
1055    ramdac adv476kn80e 03-56 os
1056    Oki M6295
1057    25.000mhz
1058    40.000mhz
1059
1060    13 pals/gals (not dumped) labelled:
1061        a&m005c0494 06a u126
1062        a&m005c0494 03a u125
1063        a&m005c0494 02a u307
1064        a&m005c0494 18a u306
1065        a&m005c0494 17a u305
1066        a&m005c0494 05a u206
1067        a&m005c0494 01a u205
1068        a&m005c0494 04a u601
1069        a&m005c0494 08a u916
1070        a&m005c0494 07a u705
1071        a&m005c0494 10a u917
1072        a&m005c0494 09a u903
1073        a&m005c0494 11a u112
1074
1075    27c2001 near oki  "a&m005c0494 12a"
1076    2x 27c010 68k labelled u101 and u102
1077    2x 27c040 "a&m005c0494 13a"  and "a&m005c0494 14a"
1078
1079
1080Shooting Star
1081Nova (Art & Magic ?), 1994
1082
1083PCB No: AM005C0494 0310
1084CPUs  : TMS34010FNL-40, MC68000P12
1085SND   : OKI M6295
1086OSC   : 40.000MHz, 25.000MHz
1087
1088
1089*/
1090
1091
1092ROM_START( shtstar )
1093   ROM_REGION( 0x80000, "maincpu", 0 )
1094   ROM_LOAD16_BYTE( "rom.u102", 0x00000, 0x20000, CRC(cce9877e) SHA1(3e2b3b29d5dd73bfe0c7faf84309b50adbcded3b) )
1095   ROM_LOAD16_BYTE( "rom.u101", 0x00001, 0x20000, CRC(3a330d9d) SHA1(0f3cd75e9e5483e3cf51f0c4eb4f15b6c3b33b67) )
1096
1097   ROM_REGION( 0x40000, "subcpu", 0 )
1098   ROM_LOAD16_BYTE( "shooting_star_f1_i.u2",  0x00000, 0x20000, CRC(2780d8d6) SHA1(a8db3a9771f6918eb8bb3b94db82ca8ada2aae7d) )
1099   ROM_LOAD16_BYTE( "shooting_star_f1_ii.u7", 0x00001, 0x20000, CRC(0d127d9c) SHA1(e9d209901e55a743a4916c850083caa23c5ebb39) )
1100
1101   /* 80c31 MCU */
1102   ROM_REGION( 0x10000, "guncpu", 0 )
1103   ROM_LOAD( "2207_7b42c5.u6", 0x00000, 0x8000, CRC(6dd4b4ed) SHA1(b37e9e5ddfb5d88c5412dc79643adfc4362fbb46) )
1104
1105   ROM_REGION16_LE( 0x100000, "gfx1", 0 )
1106   ROM_LOAD( "a&m005c0494_13a.u134", 0x00000, 0x80000, CRC(f101136a) SHA1(9ff7275e0c1fc41f3d97ae0bd628581e2803910a) )
1107   ROM_LOAD( "a&m005c0494_14a.u135", 0x80000, 0x80000, CRC(3e847f8f) SHA1(c99159951303b7f752305fa8e7e6d4bfb4fc54ba) )
1108
1109   ROM_REGION( 0x80000, "oki", 0 )
1110   ROM_LOAD( "a&m005c0494_12a.u151", 0x00000, 0x40000, CRC(2df3db1e) SHA1(d2e588db577de6fd527cd496f5eae9964d557da3) )
1111
1112   ROM_REGION( 0x1a00,  "plds", 0 )
1113   ROM_LOAD( "a&m005c0494_06a.u126",   0x0000, 0x0200, NO_DUMP )
1114   ROM_LOAD( "a&m005c0494_03a.u125",   0x0200, 0x0200, NO_DUMP )
1115   ROM_LOAD( "a&m005c0494_02a.u307",   0x0400, 0x0200, NO_DUMP )
1116   ROM_LOAD( "a&m005c0494_18a.u306",   0x0600, 0x0200, NO_DUMP )
1117   ROM_LOAD( "a&m005c0494_17a.u305",   0x0800, 0x0200, NO_DUMP )
1118   ROM_LOAD( "a&m005c0494_05a.u206",   0x0a00, 0x0200, NO_DUMP )
1119   ROM_LOAD( "a&m005c0494_01a.u205",   0x0c00, 0x0200, NO_DUMP )
1120   ROM_LOAD( "a&m005c0494_04a.u601",   0x0e00, 0x0200, NO_DUMP )
1121   ROM_LOAD( "a&m005c0494_08a.u916",   0x1000, 0x0200, NO_DUMP )
1122   ROM_LOAD( "a&m005c0494_07a.u705",   0x1200, 0x0200, NO_DUMP )
1123   ROM_LOAD( "a&m005c0494_10a.u917",   0x1400, 0x0200, NO_DUMP )
1124   ROM_LOAD( "a&m005c0494_09a.u903",   0x1600, 0x0200, NO_DUMP )
1125   ROM_LOAD( "a&m005c0494_11a.u112",   0x1800, 0x0200, NO_DUMP )
1126
1127ROM_END
1128
1129
1130
8781131/*************************************
8791132 *
8801133 *  Driver initialization
r9535r9536
9391192   protection_handler = stonebal_protection;
9401193}
9411194
1195static DRIVER_INIT( shtstar )
1196{
1197   /* wrong */
1198   decrypt_ultennis();
1199   artmagic_is_stoneball =0;
1200   protection_handler = stonebal_protection;
1201}
9421202
9431203
1204
9441205/*************************************
9451206 *
9461207 *  Game driver(s)
r9535r9536
9521213GAME( 1994, cheesech, 0,        cheesech, cheesech, cheesech, ROT0, "Art & Magic", "Cheese Chase", GAME_SUPPORTS_SAVE )
9531214GAME( 1994, stonebal, 0,        stonebal, stonebal, stonebal, ROT0, "Art & Magic", "Stone Ball (4 Players)", GAME_SUPPORTS_SAVE )
9541215GAME( 1994, stonebal2,stonebal, stonebal, stoneba2, stonebal, ROT0, "Art & Magic", "Stone Ball (2 Players)", GAME_SUPPORTS_SAVE )
1216GAME( 1994, shtstar, 0, shtstar, shtstar, shtstar, ROT0, "Nova", "Shooting Star", GAME_NOT_WORKING )
1217
1218
src/mame/drivers/dynax.c
r9535r9536
1010Custom: TC17G032AP-0246 (blitter)
1111
1212---------------------------------------------------------------------------------------------------------------------
13Year + Game              Main Board   Sub Board    CPU   Sound                      Clock Color Notes
13Year + Game                Main Board   Sub Board    CPU   Sound                      Clock Color Notes
1414---------------------------------------------------------------------------------------------------------------------
1588 Hana no Mai           D1610088L1                Z80   AY8912 YM2203        M5205       PROM
1688 Hana Kochou           D201901L2    D201901L1-0  Z80   AY8912 YM2203        M5205       PROM
1789 Hana Oriduru          D2304268L                 Z80   AY8912        YM2413 M5205       RAM
1889 Dragon Punch          D24?                      Z80          YM2203                    PROM
1989 Mj Friday             D2607198L1                Z80                 YM2413             PROM
2089 Mj Gekisha            D2809218L-1  D2809218L-2  TLCS                YM2413             PROM  Battery
2189 Sports Match          D31?                      Z80          YM2203                    PROM
2290 Jong Tou Ki           D1505178-A   D2711078L-B  Z80*2 AY8912 YM2203        M5205       PROM  2 x Blitter
2390 Mj Campus Hunting     D3312108L1-1 D23SUB1      Z80   AY8912        YM2413 M5205       RAM
2490 Hana Jingi            no number    D3312108L1-2 Z80   AY8912        YM2413 M5205       RAM
2590 7jigen no Youseitachi D3707198L1   D23SUB1      Z80   AY8912        YM2413 M5205       RAM
2690 Mj Electron Base                                Z80   AY8912        YM2413             RAM
2790 Mj X-Tal/Diamond 7    D4005208L1-1 D23SUB       Z80   AY8912        YM2413 M5205       RAM
2890 Neruton Haikujiradan  D4005208L1-1 D4508308L-2  Z80   AY8912        YM2413 M5205       RAM
2991 Mj Dial Q2            D5212298L-1               Z80                 YM2413             PROM
3091 Mj Yarunara           D5512068L1-1 D4508308L-2  Z80   AY8912        YM2413 M5205 M6242 RAM   NL-001
3191 Hana wo Yaraneba!     D5512068L1-1 D4508308L-2  Z80   AY8912        YM2413 M5205 M6242 RAM   NL-001, Battery
3291 Mj Angels             D5512068L1-1 D6107068L-1  Z80   AY8912        YM2413 M5205       RAM
3391 Mj Comic Gekijou V.1  D5512068L1-1 D6107068L-1  Z80   AY8912        YM2413 M5205 M6242 RAM   NL-001, Battery
3491 Mj Tenkaigen                                    TLCS  AY8910        YM2413       M6242 RAM   Protection, Battery
3592 Quiz TV Gassyuukoku   D5512068L1-2 D6410288L-1  Z80   AY8912        YM2413 M5205       RAM
3692 Hanafuda Hana Tengoku D6502208L1   D6107068L-1  Z80   AY8910        YM2413       M6242 RAM
3794 Mj Reach (bootleg)    bootleg                   TLCS  AY8910        YM2413       M6242 PROM  Battery
3894 Maya                                            Z80          YM2203                    PROM
3996 Mj Raijinhai DX       D10010318L1  D10502168    TLCS  AY8910                     M6242 PROM  Undumped TMP91P640 Code, Battery
409? Inca                                            Z80          YM2203                    PROM
1588 Hana no Mai             D1610088L1                Z80   AY8912 YM2203        M5205       PROM
1688 Hana Kochou             D201901L2    D201901L1-0  Z80   AY8912 YM2203        M5205       PROM
1789 Hana Oriduru            D2304268L                 Z80   AY8912        YM2413 M5205       RAM
1889 Dragon Punch            D24?                      Z80          YM2203                    PROM
1989 Mj Friday               D2607198L1                Z80                 YM2413             PROM
2089 Mj Gekisha              D2809218L-1  D2809218L-2  TLCS                YM2413             PROM  Battery
2189 Sports Match            D31?                      Z80          YM2203                    PROM
2290 Jong Tou Ki             D1505178-A   D2711078L-B  Z80*2 AY8912 YM2203        M5205       PROM  2 x Blitter
2390 Mj Campus Hunting       D3312108L1-1 D23SUB1      Z80   AY8912        YM2413 M5205       RAM
2490 Hana Jingi              no number    D3312108L1-2 Z80   AY8912        YM2413 M5205       RAM
2590 7jigen no Youseitachi   D3707198L1   D23SUB1      Z80   AY8912        YM2413 M5205       RAM
2690 Mj Electron Base                                  Z80   AY8912        YM2413             RAM
2790 Mj X-Tal/Diamond 7      D4005208L1-1 D23SUB       Z80   AY8912        YM2413 M5205       RAM
2890 Mj Neruton Haikujiradan D4005208L1-1 D4508308L-2  Z80   AY8912        YM2413 M5205       RAM
2991 Mj Dial Q2              D5212298L-1               Z80                 YM2413             PROM
3091 Mj Yarunara             D5512068L1-1 D4508308L-2  Z80   AY8912        YM2413 M5205 M6242 RAM   NL-001
3191 Hana wo Yaraneba!       D5512068L1-1 D4508308L-2  Z80   AY8912        YM2413 M5205 M6242 RAM   NL-001, Battery
3291 Mj Angels               D5512068L1-1 D6107068L-1  Z80   AY8912        YM2413 M5205       RAM
3391 Mj Comic Gekijou V.1    D5512068L1-1 D6107068L-1  Z80   AY8912        YM2413 M5205 M6242 RAM   NL-001, Battery
3491 Mj Tenkaigen                                      TLCS  AY8910        YM2413       M6242 RAM   Protection, Battery
3592 Quiz TV Gassyuukoku     D5512068L1-2 D6410288L-1  Z80   AY8912        YM2413 M5205       RAM
3692 Hanafuda Hana Tengoku   D6502208L1   D6107068L-1  Z80   AY8910        YM2413       M6242 RAM
3794 Mj Reach (bootleg)      bootleg                   TLCS  AY8910        YM2413       M6242 PROM  Battery
3894 Maya                                              Z80          YM2203                    PROM
3996 Mj Raijinhai DX         D10010318L1  D10502168    TLCS  AY8910                     M6242 PROM  Undumped TMP91P640 Code, Battery
409? Inca                                              Z80          YM2203                    PROM
4141---------------------------------------------------------------------------------------------------------------------
4242
4343Notes:
r9535r9536
61786178
61796179/***************************************************************************
61806180
6181Neruton Haikujiradan
6181Mahjong Neruton Haikujiradan (Rev. B?)
61826182(c)1990 Dynax / Yukiyoshi Tokoro (Illustration)
61836183D4005208L1-1
61846184D4508308L-2 (sub board)
r9535r9536
62256225
62266226ROM_START( neruton )
62276227   ROM_REGION( 0x50000, "maincpu", 0 )   // Z80 Code
6228   ROM_LOAD( "4501b.1a", 0x000000, 0x020000, CRC(0e53eeee) SHA1(883138618a11295bfac148da4a092e01d92229b3) )
6229   ROM_RELOAD(           0x010000, 0x020000 )
6230   ROM_LOAD( "4502.3a",  0x030000, 0x020000, CRC(c296293f) SHA1(466e87f7eca102568f1f00c6ba77dacc3df300dd) )
6228   ROM_LOAD( "4501b.1a", 0x00000, 0x20000, CRC(0e53eeee) SHA1(883138618a11295bfac148da4a092e01d92229b3) )
6229   ROM_RELOAD(           0x10000, 0x20000 )
6230   ROM_LOAD( "4502.3a",  0x30000, 0x20000, CRC(c296293f) SHA1(466e87f7eca102568f1f00c6ba77dacc3df300dd) )
62316231
62326232   ROM_REGION( 0x100000, "gfx1", 0 )   // blitter data
62336233   ROM_LOAD( "4511.11a", 0x00000, 0x20000, CRC(c4a96b6e) SHA1(15a6776509e0d30929f6a261798afe7dc0401d4e) )
r9535r9536
62546254   ROM_LOAD( "4503.1a",  0xe0000, 0x20000, CRC(dcbe2805) SHA1(713edd2e3c950bc689446441eb85197bb7b1eb89) )
62556255ROM_END
62566256
6257/***************************************************************************
62576258
6259Mahjong Neruton Haikujiradan (Rev. A?) [Mahjong Crimson-Whales]
6260
6261Only one rom differs from neruton: 4501a.1a (4501b.1a in neruton)
6262
6263***************************************************************************/
6264
6265ROM_START( nerutona )
6266   ROM_REGION( 0x50000, "maincpu", 0 )   // Z80 Code
6267   ROM_LOAD( "4501a.1a", 0x00000, 0x20000, CRC(82361a95) SHA1(360fa767dc1515bf853458e95e321fc66f8dcf47) )
6268   ROM_RELOAD(           0x10000, 0x20000 )
6269   ROM_LOAD( "4502.3a",  0x30000, 0x20000, CRC(c296293f) SHA1(466e87f7eca102568f1f00c6ba77dacc3df300dd) )
6270
6271   ROM_REGION( 0x100000, "gfx1", 0 )   // blitter data
6272   ROM_LOAD( "4511.11a", 0x00000, 0x20000, CRC(c4a96b6e) SHA1(15a6776509e0d30929f6a261798afe7dc0401d4e) )
6273   ROM_LOAD( "4512.13a", 0x20000, 0x20000, CRC(d7ebbcb9) SHA1(b8edd8b93eca8d36056c02f8b69ff8313c9ab120) )
6274   ROM_LOAD( "4513.14a", 0x40000, 0x20000, CRC(e3bed454) SHA1(03a66d31b8f41abc4ce83ebe22f8d14414d92152) )
6275   ROM_LOAD( "4514.15a", 0x60000, 0x20000, CRC(ee258483) SHA1(8c685fee4eaff5978f0ec222c33d55123a8fa496) )
6276   ROM_LOAD( "4515.17a", 0x80000, 0x20000, CRC(3bce0ca1) SHA1(1d0bb379077c52a63aa982bbe77f89df7b5b7b14) )
6277   ROM_LOAD( "4516.18a", 0xa0000, 0x20000, CRC(ee6b7e3b) SHA1(5290fad850c7a52039cd9d26082bff8615bf3797) )
6278   ROM_LOAD( "4517.19a", 0xc0000, 0x20000, CRC(b31f9694) SHA1(f22fc44908be4f1ef8dada57860f95ee74495605) )
6279   ROM_LOAD( "4519.18c", 0xe0000, 0x20000, CRC(68aca5f3) SHA1(f03328362777e6d536f730bc3b52371d5daca54e) )
6280
6281   ROM_REGION( 0x40000, "gfx2", 0 )   // blitter data
6282   ROM_LOAD( "4520.19c", 0x00000, 0x20000, CRC(7bb2b298) SHA1(643d21f6a45640bad5ec84af9745339487a7408c) )
6283   ROM_LOAD( "4518.17c", 0x20000, 0x20000, CRC(fa88668e) SHA1(fce80a8badacf39f30c36952cbe0a1491b8faef1) )
6284
6285   ROM_REGION( 0x100000, "gfx3", 0 )   // blitter data
6286   ROM_LOAD( "4510.4b",  0x00000, 0x20000, CRC(455305a1) SHA1(103e1eaac485b37786a1d1d411819788ed385467) )
6287   ROM_LOAD( "4509.3b",  0x20000, 0x20000, CRC(4e1e6a2d) SHA1(04c71dd11594921142b6aa9554c0fe1b40254463) )
6288   ROM_LOAD( "4508.2b",  0x40000, 0x20000, CRC(5c451ed4) SHA1(59a27ddfae541cb61dafb32bdb5de8ddbc5abb8d) )
6289   ROM_LOAD( "4507.1b",  0x60000, 0x20000, CRC(106e6133) SHA1(d08deb17ea82fe43e458a11eea26ce98c26c51c1) )
6290   ROM_LOAD( "4506.4a",  0x80000, 0x20000, CRC(6eac8b3c) SHA1(70dbe3af582384571872e7b6b51df4192daed227) )
6291   ROM_LOAD( "4505.3a",  0xa0000, 0x20000, CRC(6f9fd275) SHA1(123a928dcb60624d61a55b2fef25156975ba26c9) )
6292   ROM_LOAD( "4504.2a",  0xc0000, 0x20000, CRC(7b3387af) SHA1(403cf67287469ae6ce9a7f662f6d82f62dac349b) )
6293   ROM_LOAD( "4503.1a",  0xe0000, 0x20000, CRC(dcbe2805) SHA1(713edd2e3c950bc689446441eb85197bb7b1eb89) )
6294ROM_END
6295
6296
62586297/***************************************************************************
62596298
62606299Mahjong Crystal 7
r9535r9536
72017240GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3,  mjelct3a, ROT180, "Dynax",                    "Mahjong Electron Base (parts 2 & 3, alt., Japan)",              GAME_SUPPORTS_SAVE )
72027241GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3,  mjelct3,  ROT180, "bootleg",                  "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)",           GAME_SUPPORTS_SAVE )
72037242GAME( 1990, majxtal7, 0,        majxtal7, majxtal7, mjelct3,  ROT180, "Dynax",                    "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
7204GAME( 1990, neruton,  0,        neruton,  neruton,  mjelct3,  ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan)",                          GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
7243GAME( 1990, neruton,  0,        neruton,  neruton,  mjelct3,  ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)",                 GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
7244GAME( 1990, nerutona, neruton,  neruton,  neruton,  mjelct3,  ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)",                 GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
72057245GAME( 1991, hanayara, 0,        yarunara, hanayara, 0,        ROT180, "Dynax",                    "Hana wo Yaraneba! (Japan)",                                     GAME_SUPPORTS_SAVE )
72067246GAME( 1991, mjcomv1,  0,        yarunara, yarunara, 0,        ROT180, "Dynax",                    "Mahjong Comic Gekijou Vol.1 (Japan)",                           GAME_SUPPORTS_SAVE )
72077247GAME( 1991, tenkai,   0,        tenkai,   tenkai,   0,        ROT0,   "Dynax",                    "Mahjong Tenkaigen",                                             GAME_SUPPORTS_SAVE )
src/mame/drivers/megadriv.c
r9535r9536
50055005
50065006   if(hock_cmd)
50075007   {
5008//      segacd_cdd.ctrl &= ~4; // clear HOCK flag
5008//      segacd_cdd.ctrl &= ~4; // clear HOCK flag
50095009
50105010      segacd_cdd_rx[0] = (segacd_cdd.buffer[0] & 0xf0) >> 4;
50115011      segacd_cdd_rx[1] = (segacd_cdd.buffer[0] & 0x0f) >> 0;
r9535r9536
55455545            segacd_cdd.buffer[1] = ((msf >> 16) & 0xff);
55465546            segacd_cdd.buffer[2] = ((msf >> 8) & 0xff);
55475547            segacd_cdd.buffer[3] = ((msf >> 0) & 0xff);
5548            segacd_cdd.buffer[4] = (track_num % 10) | (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x80 : 0x00);
5548            segacd_cdd.buffer[4] = ((track_num) % 10) | (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x80 : 0x00);
55495549
55505550            printf("%02x %02x %02x %02x %02x\n",segacd_cdd.buffer[0],segacd_cdd.buffer[1],segacd_cdd.buffer[2],segacd_cdd.buffer[3],segacd_cdd.buffer[4]);
55515551
r9535r9536
55595559   hock_cmd = 1;
55605560}
55615561
5562#endif
5563
55645562static void segacd_cdd_seek(running_machine *machine)
55655563{
55665564   UINT8 m,s,f;
r9535r9536
55795577
55805578   track_num = cdrom_get_track(segacd.cd, frame);
55815579   segacd.current_frame = frame;
5582//   printf("%02x %02x %02x %02x\n",m,s,f,track_num);
5580//  printf("%02x %02x %02x %02x\n",m,s,f,track_num);
55835581
55845582   segacd_cdd.ctrl &= 0xfeff;
55855583   segacd_cdd.ctrl |= (( segacd.toc->tracks[track_num-1].trktype == CD_TRACK_AUDIO ) ? 0x000 : 0x100);
r9535r9536
55935591   hock_cmd = 1;
55945592}
55955593
5594#endif
5595
55965596static WRITE8_HANDLER( segacd_cdd_tx_w )
55975597{
55985598   //printf("CDD Communication write %02x -> [%02x]\n",data,offset);
src/mame/drivers/lkage.c
r9535r9536
5757  - Hi-scores, scores, and as a consequence bonus lives, have been divided by 10,
5858    but it's only a cosmetical effect as data from 0xe200 to 0xe22f is unchanged.
5959
604) 'bygone'
6061
62  - is it prototype ?
63  - MCU (same code as lkage) is not used
64  - No music ? (could be emulation bug) (the 2nd YM is not used...)
65
6166TODO:
6267
6368  - The high score display uses a video attribute flag whose pupose isn't known.
r9535r9536
8489#include "sound/2203intf.h"
8590#include "includes/lkage.h"
8691
92#define MAIN_CPU_CLOCK      (XTAL_12MHz/2)
93#define SOUND_CPU_CLOCK      (XTAL_8MHz/2)
94#define AUDIO_CLOCK         (XTAL_8MHz/2)
95#define MCU_CLOCK         (XTAL_12MHz/4)
8796
97
8898static TIMER_CALLBACK( nmi_callback )
8999{
90100   lkage_state *state = machine->driver_data<lkage_state>();
r9535r9536
119129   }
120130}
121131
132static READ8_HANDLER(sound_status_r)
133{
134   return 0xff;
135}
136
122137static ADDRESS_MAP_START( lkage_map, ADDRESS_SPACE_PROGRAM, 8 )
123138   AM_RANGE(0x0000, 0xdfff) AM_ROM
124139   AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */
125140   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE_GENERIC(paletteram)
126141   AM_RANGE(0xf000, 0xf003) AM_RAM AM_BASE_MEMBER(lkage_state, vreg) /* video registers */
127142   AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w)
128   AM_RANGE(0xf061, 0xf061) AM_WRITENOP
143   AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r)
129144   AM_RANGE(0xf062, 0xf062) AM_READWRITE(lkage_mcu_r,lkage_mcu_w)
130145   AM_RANGE(0xf063, 0xf063) AM_WRITENOP /* pulsed; nmi on sound cpu? */
131146   AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1")
r9535r9536
139154   AM_RANGE(0xf0c0, 0xf0c5) AM_RAM AM_BASE_MEMBER(lkage_state, scroll)
140155   AM_RANGE(0xf0e1, 0xf0e1) AM_WRITENOP /* pulsed */
141156   AM_RANGE(0xf100, 0xf15f) AM_RAM AM_BASE_MEMBER(lkage_state, spriteram)
157   AM_RANGE(0xf160, 0xf1ff) AM_RAM /* unknown - no valid sprite data */
142158   AM_RANGE(0xf400, 0xffff) AM_RAM_WRITE(lkage_videoram_w) AM_BASE_MEMBER(lkage_state, videoram)
143159ADDRESS_MAP_END
144160
161
145162static READ8_HANDLER( port_fetch_r )
146163{
147164   return memory_region(space->machine, "user1")[offset];
r9535r9536
175192   AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r) AM_WRITENOP   /* ??? */
176193   AM_RANGE(0xb001, 0xb001) AM_READNOP   /* ??? */ AM_WRITE(lkage_sh_nmi_enable_w)
177194   AM_RANGE(0xb002, 0xb002) AM_WRITE(lkage_sh_nmi_disable_w)
195   AM_RANGE(0xb003, 0xb003) AM_WRITENOP
178196   AM_RANGE(0xe000, 0xefff) AM_ROM   /* space for diagnostic ROM? */
179197ADDRESS_MAP_END
180198
r9535r9536
311329INPUT_PORTS_END
312330
313331
332static INPUT_PORTS_START( bygone )
333   PORT_START("DSW1")
334   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
335   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
336   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
337   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
338   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
339   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
340   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) //
341   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
342   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
343   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
344   PORT_DIPSETTING(    0x18, "3" )
345   PORT_DIPSETTING(    0x10, "4" )
346   PORT_DIPSETTING(    0x08, "5" )
347   PORT_DIPSETTING(   0x00, "255 (Cheat)")
348   PORT_DIPUNUSED( 0x20, IP_ACTIVE_LOW )
349   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) )
350   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
351   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
352   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
353   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
354   PORT_DIPSETTING(    0x80, DEF_STR( Cocktail ) )
355
356   PORT_START("DSW2")
357   PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) )
358   PORT_DIPSETTING(    0x0f, DEF_STR( 9C_1C ) )
359   PORT_DIPSETTING(    0x0e, DEF_STR( 8C_1C ) )
360   PORT_DIPSETTING(    0x0d, DEF_STR( 7C_1C ) )
361   PORT_DIPSETTING(    0x0c, DEF_STR( 6C_1C ) )
362   PORT_DIPSETTING(    0x0b, DEF_STR( 5C_1C ) )
363   PORT_DIPSETTING(    0x0a, DEF_STR( 4C_1C ) )
364   PORT_DIPSETTING(    0x09, DEF_STR( 3C_1C ) )
365   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
366   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
367   PORT_DIPSETTING(    0x01, DEF_STR( 1C_2C ) )
368   PORT_DIPSETTING(    0x02, DEF_STR( 1C_3C ) )
369   PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
370   PORT_DIPSETTING(    0x04, DEF_STR( 1C_5C ) )
371   PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
372   PORT_DIPSETTING(    0x06, DEF_STR( 1C_7C ) )
373   PORT_DIPSETTING(    0x07, DEF_STR( 1C_8C ) )
374   PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) )
375   PORT_DIPSETTING(    0xf0, DEF_STR( 9C_1C ) )
376   PORT_DIPSETTING(    0xe0, DEF_STR( 8C_1C ) )
377   PORT_DIPSETTING(    0xd0, DEF_STR( 7C_1C ) )
378   PORT_DIPSETTING(    0xc0, DEF_STR( 6C_1C ) )
379   PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
380   PORT_DIPSETTING(    0xa0, DEF_STR( 4C_1C ) )
381   PORT_DIPSETTING(    0x90, DEF_STR( 3C_1C ) )
382   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
383   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
384   PORT_DIPSETTING(    0x10, DEF_STR( 1C_2C ) )
385   PORT_DIPSETTING(    0x20, DEF_STR( 1C_3C ) )
386   PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
387   PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) )
388   PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
389   PORT_DIPSETTING(    0x60, DEF_STR( 1C_7C ) )
390   PORT_DIPSETTING(    0x70, DEF_STR( 1C_8C ) )
391
392   PORT_START("DSW3")
393   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
394   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
395   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
396   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
397   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
398   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
399   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
400   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
401   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
402   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
403   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
404   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
405   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
406   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
407   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
408   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
409   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
410   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
411   PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)")
412   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
413   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
414   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
415   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
416   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
417
418
419   PORT_START("SYSTEM")
420   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
421   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
422   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
423   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
424   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
425   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
426   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
427   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
428
429   PORT_START("P1")
430   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
431   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
432   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )  PORT_8WAY
433   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
434   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )  PORT_8WAY
435   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )    PORT_8WAY
436   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
437   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
438
439   PORT_START("P2")
440   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
441   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
442   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )  PORT_8WAY PORT_COCKTAIL
443   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
444   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )  PORT_8WAY PORT_COCKTAIL
445   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )    PORT_8WAY PORT_COCKTAIL
446   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
447   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
448INPUT_PORTS_END
449
450
451
314452static const gfx_layout tile_layout =
315453{
316454   8,8,
r9535r9536
366504
367505   state_save_register_global(machine, state->bg_tile_bank);
368506   state_save_register_global(machine, state->fg_tile_bank);
507   state_save_register_global(machine, state->tx_tile_bank);
369508
509   state_save_register_global(machine, state->sprite_dx);
510
370511   state_save_register_global(machine, state->mcu_ready);
371512   state_save_register_global(machine, state->mcu_val);
372513   state_save_register_global(machine, state->sound_nmi_enable);
r9535r9536
391532{
392533   lkage_state *state = machine->driver_data<lkage_state>();
393534
394   state->bg_tile_bank = state->fg_tile_bank = 0;
535   state->bg_tile_bank = state->fg_tile_bank = state->tx_tile_bank =0;
395536
396537   state->mcu_ready = 3;
397538   state->mcu_val = 0;
r9535r9536
413554   state->from_mcu = 0;
414555}
415556
416
417557static MACHINE_CONFIG_START( lkage, lkage_state )
418558
419559   /* basic machine hardware */
420   MDRV_CPU_ADD("maincpu", Z80,6000000)
560   MDRV_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK)
421561   MDRV_CPU_PROGRAM_MAP(lkage_map)
422562   MDRV_CPU_IO_MAP(lkage_io_map)
423563   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
424564
425   MDRV_CPU_ADD("audiocpu", Z80, 6000000)
565   MDRV_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK)
426566   MDRV_CPU_PROGRAM_MAP(lkage_sound_map)
427567                        /* IRQs are triggered by the YM2203 */
428568
429   MDRV_CPU_ADD("mcu", M68705,4000000)   /* ??? */
569   MDRV_CPU_ADD("mcu", M68705,MCU_CLOCK)
430570   MDRV_CPU_PROGRAM_MAP(lkage_m68705_map)
431571
432572   MDRV_MACHINE_START(lkage)
r9535r9536
449589   /* sound hardware */
450590   MDRV_SPEAKER_STANDARD_MONO("mono")
451591
452   MDRV_SOUND_ADD("ym1", YM2203, 4000000)
592   MDRV_SOUND_ADD("ym1", YM2203, AUDIO_CLOCK )
453593   MDRV_SOUND_CONFIG(ym2203_config)
454594   MDRV_SOUND_ROUTE(0, "mono", 0.15)
455595   MDRV_SOUND_ROUTE(1, "mono", 0.15)
456596   MDRV_SOUND_ROUTE(2, "mono", 0.15)
457597   MDRV_SOUND_ROUTE(3, "mono", 0.40)
458598
459   MDRV_SOUND_ADD("ym2", YM2203, 4000000)
599   MDRV_SOUND_ADD("ym2", YM2203, AUDIO_CLOCK )
460600   MDRV_SOUND_ROUTE(0, "mono", 0.15)
461601   MDRV_SOUND_ROUTE(1, "mono", 0.15)
462602   MDRV_SOUND_ROUTE(2, "mono", 0.15)
r9535r9536
467607static MACHINE_CONFIG_START( lkageb, lkage_state )
468608
469609   /* basic machine hardware */
470   MDRV_CPU_ADD("maincpu", Z80,6000000)
610   MDRV_CPU_ADD("maincpu", Z80,MAIN_CPU_CLOCK)
471611   MDRV_CPU_PROGRAM_MAP(lkage_map)
472612   MDRV_CPU_IO_MAP(lkage_io_map)
473613   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
474614
475   MDRV_CPU_ADD("audiocpu", Z80, 6000000)
615   MDRV_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK)
476616   MDRV_CPU_PROGRAM_MAP(lkage_sound_map)
477617                        /* IRQs are triggered by the YM2203 */
478618
r9535r9536
496636   /* sound hardware */
497637   MDRV_SPEAKER_STANDARD_MONO("mono")
498638
499   MDRV_SOUND_ADD("ym1", YM2203, 4000000)
639   MDRV_SOUND_ADD("ym1", YM2203, AUDIO_CLOCK)
500640   MDRV_SOUND_CONFIG(ym2203_config)
501641   MDRV_SOUND_ROUTE(0, "mono", 0.15)
502642   MDRV_SOUND_ROUTE(1, "mono", 0.15)
503643   MDRV_SOUND_ROUTE(2, "mono", 0.15)
504644   MDRV_SOUND_ROUTE(3, "mono", 0.40)
505645
506   MDRV_SOUND_ADD("ym2", YM2203, 4000000)
646   MDRV_SOUND_ADD("ym2", YM2203, AUDIO_CLOCK)
507647   MDRV_SOUND_ROUTE(0, "mono", 0.15)
508648   MDRV_SOUND_ROUTE(1, "mono", 0.15)
509649   MDRV_SOUND_ROUTE(2, "mono", 0.15)
510650   MDRV_SOUND_ROUTE(3, "mono", 0.40)
511651MACHINE_CONFIG_END
512652
513
514653ROM_START( lkage )
515654   ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */
516655   ROM_LOAD( "a54-01-2.37", 0x0000, 0x8000, CRC(60fd9734) SHA1(33b444b887d80acb3a63ca4534db65c4d8147712) )
r9535r9536
664803   ROM_LOAD( "a54-10.2",    0x0000, 0x0200, CRC(17dfbd14) SHA1(f8f0b6dfedd4ba108dad43ccc7697ef4ab9cbf86) )   /* unknown */
665804ROM_END
666805
806/*
807Bygone
808Taito, 1985?
809
810This is a rare prototype platform game conversion on a Legend Of Kage PCB.
811There are some wire mods on the video board.
812
813
814PCB Layouts
815-----------
816
817K1100135A
818J1100057A
819CPU PCB
820M4300040A (sticker, also matches The Legend Of Kage)
821|------------------------------------------------------|
822|        VOL  LM324   TL074                    PC040DA |
823|             PC010SA YM3014    YM2203         PC040DA |
824|     MB3731                                   PC040DA |
825|             PC010SA YM3014    YM2203      MB2148     |
826|    PC030CM                                MB2148     |
827|                      8MHz                 MB2148     |
828|          6116                                       |-|
829|2                                                    | |
830|2         A53_07.IC54   Z80A                         | |
831|W                                                    | |
832|A         A51_09.IC53                                | |
833|Y                                                    | |
834|                                                     | |
835|                                                     | |
836|                                     A54-14.IC27     |-|
837|          A53_08.IC51     A53_06.IC38                 |
838|                                                      |
839|                                                      |
840|                                                      |
841|          6264            A53_05.IC37   Z80B          |
842|             DSW3 DSW2 DSW1    TL7700                 |
843|------------------------------------------------------|
844Notes:
845      Z80A   - clock 4.000MHz [8/2]
846      Z80B   - clock 6.000MHz [12/2]
847      YM2203 - clock 4.000MHz [8/2]
848      A51_09 - MC68705P5 microcontroller, clock 3.000MHz [12/4].
849               It seems to be from Taito game A51, which is unknown?
850               It was not protected ^_^
851      A54-14 - PAL16L8
852      A53*   - 27C128 and 27C256 EPROMs
853      6264   - 8k x8 SRAM
854      6116   - 2k x8 SRAM
855      2148   - 1k x4 SRAM
856      DIPs have 8 switches each
857
858
859K1100136A
860J1100058A
861VIDEO PCB
862|------------------------------------------------------|
863|    12MHz                                             |
864|                                                      |
865|                                                      |
866|                                                      |
867|                                            6116      |
868|                         6116                         |
869|                                            6116     |-|
870|1                                                    | |
871|8                                                    | |
872|W                                                    | |
873|A        A54-11.IC76                                 | |
874|Y                                    93422  93422    | |
875|                                                     | |
876|                                     93422  93422    | |
877|  A53_04.IC87  MB112S146 MB112S146  A54-13.IC35      |-|
878|                                                      |
879|  A53_03.IC86  MB112S146 MB112S146  A54-12.IC34       |
880|                                                      |
881|  A53_02.IC85  MB112S146 MB112S146                    |
882|                                                      |
883|  A53_01.IC84  MB112S146 MB112S146          A54-10.IC2|
884|------------------------------------------------------|
885Notes:
886      A54-10 - MB7122 PROM
887      A54-11 - PAL16L8
888      A54-12 - PAL16L8
889      A54-13 - PAL16L8
890      6116   - 2k x8 SRAM
891      93422  - 256b x4 SRAM
892      A53*   - 27C128 EPROMs
893
894*/
895
896ROM_START( bygone )
897   ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */
898   ROM_LOAD( "a53_05.ic37", 0x0000, 0x8000, CRC(63a3f08b) SHA1(781539077cb1d3b8eecc8bd3717330c0f281833d) )
899   ROM_LOAD( "a53_06.ic38", 0x8000, 0x8000, CRC(cb0dcb08) SHA1(6b12b018b983b8225b5f33fb9fcd8004a00fd8ff) )
900
901   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code (sound CPU) */
902   ROM_LOAD( "a53_07.ic54",   0x0000, 0x8000, CRC(72f69a77) SHA1(dfc1050a4123b3c83ae733ece1b6fe2836beb901) )
903
904   ROM_REGION( 0x10000, "mcu", 0 ) /* 68705 MCU code */
905   ROM_LOAD( "a51_09.ic53",   0x0000, 0x0800, CRC(0e8b8846) SHA1(a4a105462b0127229bb7edfadd2e581c7e40f1cc) ) /* the same as lkage */
906
907   ROM_REGION( 0x4000, "user1", 0 ) /* data */
908   ROM_LOAD( "a53_08.ic51",   0x0000, 0x4000, CRC(f85139f9) SHA1(7e089d1dd5c5fa8abb396b44aa15aabcf8677940) )
909
910   ROM_REGION( 0x10000, "gfx1", 0 )
911   ROM_LOAD( "a53_01.ic84", 0x0000, 0x4000, CRC(38cf7fb2) SHA1(424efabe2386fa5f1c22444a53952d85c05c2d64) )
912   ROM_LOAD( "a53_02.ic85", 0x4000, 0x4000, CRC(dca7adfe) SHA1(83b159e92dab96d9e20fa3a9d1ce7a7d2e83b313) )
913   ROM_LOAD( "a53_03.ic86", 0x8000, 0x4000, CRC(af3eb997) SHA1(ba66ffb9d83f91c98446ac38bb0e712ec0800625) )
914   ROM_LOAD( "a53_04.ic87", 0xc000, 0x4000, CRC(65af72d3) SHA1(759a1dd7548075630ddb9c692bdb32ad4712c579) )
915
916   ROM_REGION( 0x0400, "proms", 0 )
917   ROM_LOAD( "a54-10.ic2",    0x0000, 0x0400, CRC(369722d9) SHA1(2df9932ad8ce87c0a9d2c89222a4cec12c29046d) )   /* unknown */
918ROM_END
919
920
667921/*Note: This probably uses another MCU dump,which is undumped.*/
668922
669923static READ8_HANDLER( fake_mcu_r )
r9535r9536
714968   return state->mcu_ready;
715969}
716970
971static DRIVER_INIT( lkage )
972{
973   lkage_state *state = machine->driver_data<lkage_state>();
974   state->sprite_dx=0;
975}
976
717977static DRIVER_INIT( lkageb )
718978{
979   lkage_state *state = machine->driver_data<lkage_state>();
719980   memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf062, 0xf062, 0, 0, fake_mcu_r);
720981   memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf087, 0xf087, 0, 0, fake_status_r);
721982   memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf062, 0xf062, 0, 0, fake_mcu_w );
983   state->sprite_dx=0;
722984}
723985
724GAME( 1984, lkage,    0,        lkage,    lkage,    0,        ROT0, "Taito Corporation", "The Legend of Kage", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
725GAME( 1984, lkageo,   lkage,    lkage,    lkage,    0,        ROT0, "Taito Corporation", "The Legend of Kage (older)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
726GAME( 1984, lkageoo,  lkage,    lkage,    lkage,    0,        ROT0, "Taito Corporation", "The Legend of Kage (oldest)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
986static DRIVER_INIT( bygone )
987{
988   lkage_state *state = machine->driver_data<lkage_state>();
989   state->sprite_dx=1;
990}
991
992GAME( 1984, lkage,    0,        lkage,    lkage,    lkage,    ROT0, "Taito Corporation", "The Legend of Kage", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
993GAME( 1984, lkageo,   lkage,    lkage,    lkage,    lkage,    ROT0, "Taito Corporation", "The Legend of Kage (older)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
994GAME( 1984, lkageoo,  lkage,    lkage,    lkage,    lkage,    ROT0, "Taito Corporation", "The Legend of Kage (oldest)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
727995GAME( 1984, lkageb,   lkage,    lkageb,   lkageb,   lkageb,   ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
728996GAME( 1984, lkageb2,  lkage,    lkageb,   lkageb,   lkageb,   ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
729997GAME( 1984, lkageb3,  lkage,    lkageb,   lkageb,   lkageb,   ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
998GAME( 1985, bygone,   0,        lkage,    bygone,   bygone,   ROT0, "Taito Corporation", "Bygone", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
999
src/mame/drivers/system16.c
r9535r9536
18331833   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
18341834   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
18351835   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
1836   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1836   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )
18371837   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
18381838   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
18391839   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
r9535r9536
18431843   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
18441844   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
18451845   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1846   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1846   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 )
18471847   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
18481848   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
18491849   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
r9535r9536
18531853   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
18541854   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
18551855   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1856   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1856   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE4 )
18571857   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
18581858   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
18591859   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
r9535r9536
18701870   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
18711871
18721872   PORT_START("COINAGE")
1873   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
1873   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
18741874   PORT_DIPSETTING(    0x07, DEF_STR( 4C_1C ) )
18751875   PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
18761876   PORT_DIPSETTING(    0x09, DEF_STR( 2C_1C ) )
r9535r9536
18871887   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
18881888   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
18891889   PORT_DIPSETTING(    0x00, "Free Play (if Coin B too) or 1/1" )
1890   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
1891   PORT_DIPSETTING(    0x70, DEF_STR( 4C_1C ) )
1892   PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
1893   PORT_DIPSETTING(    0x90, DEF_STR( 2C_1C ) )
1894   PORT_DIPSETTING(    0x50, "2 Coins/1 Credit 5/3 6/4" )
1895   PORT_DIPSETTING(    0x40, "2 Coins/1 Credit 4/3" )
1896   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1897   PORT_DIPSETTING(    0x10, "1 Coin/1 Credit 2/3" )
1898   PORT_DIPSETTING(    0x20, "1 Coin/1 Credit 4/5" )
1899   PORT_DIPSETTING(    0x30, "1 Coin/1 Credit 5/6" )
1900   PORT_DIPSETTING(    0x60, DEF_STR( 2C_3C ) )
1901   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1902   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1903   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1904   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1905   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1906   PORT_DIPSETTING(    0x00, "Free Play (if Coin A too) or 1/1" )
19071890
1891/*  2nd Coin Slot listed as "Not Used" in Test Mode for Alien Storm Bootlegs  */
1892
1893   PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" )
1894   PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:6" )
1895   PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW1:7" )
1896   PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW1:8" )
1897
19081898   PORT_START("DSW1")
1909   PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" )
1910   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1911   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1912   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
1899   PORT_DIPNAME( 0x01, 0x01, "Start Credit" )      PORT_DIPLOCATION("SW2:1")
1900   PORT_DIPSETTING(    0x01, "1" )
1901   PORT_DIPSETTING(    0x00, "2" )
1902   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SW2:2")
19131903   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
19141904   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1915   PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) )
1905   PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:3,4,5")
19161906   PORT_DIPSETTING(    0x04, DEF_STR( Easiest ) )
19171907   PORT_DIPSETTING(    0x08, DEF_STR( Easier ) )
19181908   PORT_DIPSETTING(    0x0c, DEF_STR( Easy ) )
r9535r9536
19211911   PORT_DIPSETTING(    0x14, DEF_STR( Harder ) )
19221912   PORT_DIPSETTING(    0x18, DEF_STR( Hardest ) )
19231913   PORT_DIPSETTING(    0x00, "Special" )
1924   PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" )
1914   PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" )      PORT_DIPLOCATION("SW2:6")
19251915   PORT_DIPSETTING(    0x20, "3" )
19261916   PORT_DIPSETTING(    0x00, "1" )
1927   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
1928   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1929   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1930   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
1931   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1932   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1917   PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" )
1918   PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" )
19331919INPUT_PORTS_END
19341920
19351921static INPUT_PORTS_START( mwalkbl )
19361922   PORT_INCLUDE( astormbl )
19371923
1938   PORT_MODIFY("P3")
1924        PORT_MODIFY("P3")
19391925   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 )
19401926
19411927   PORT_MODIFY("SERVICE")
1942   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1943   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1944   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1928   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE4 )
19451929
1930   PORT_MODIFY("COINAGE")
1931   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8") PORT_CONDITION("DSW1",0x20,PORTCOND_EQUALS,0x20)
1932   PORT_DIPSETTING(    0x70, DEF_STR( 4C_1C ) )
1933   PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
1934   PORT_DIPSETTING(    0x90, DEF_STR( 2C_1C ) )
1935   PORT_DIPSETTING(    0x50, "2 Coins/1 Credit 5/3 6/4" )
1936   PORT_DIPSETTING(    0x40, "2 Coins/1 Credit 4/3" )
1937   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1938   PORT_DIPSETTING(    0x10, "1 Coin/1 Credit 2/3" )
1939   PORT_DIPSETTING(    0x20, "1 Coin/1 Credit 4/5" )
1940   PORT_DIPSETTING(    0x30, "1 Coin/1 Credit 5/6" )
1941   PORT_DIPSETTING(    0x60, DEF_STR( 2C_3C ) )
1942   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1943   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1944   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1945   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1946   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1947   PORT_DIPSETTING(    0x00, "Free Play (if Coin A too) or 1/1" )
1948
19461949   PORT_MODIFY("DSW1")
1947   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
1950   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:3")
19481951   PORT_DIPSETTING(    0x04, "2" )
19491952   PORT_DIPSETTING(    0x00, "3" )
1950   PORT_DIPNAME( 0x08, 0x08, "Player Vitality" )
1953   PORT_DIPNAME( 0x08, 0x08, "Player Vitality" )      PORT_DIPLOCATION("SW2:4")
19511954   PORT_DIPSETTING(    0x08, DEF_STR( Low ) )
19521955   PORT_DIPSETTING(    0x00, DEF_STR( High ) )
1953   PORT_DIPNAME( 0x10, 0x00, "Play Mode" )
1956   PORT_DIPNAME( 0x10, 0x00, "Play Mode" )         PORT_DIPLOCATION("SW2:5")
19541957   PORT_DIPSETTING(    0x10, "2 Players" )
19551958   PORT_DIPSETTING(    0x00, "3 Players" )
1956   PORT_DIPNAME( 0x20, 0x20, "Coin Mode" )
1959   PORT_DIPNAME( 0x20, 0x20, "Coin Mode" )         PORT_DIPLOCATION("SW2:6")
19571960   PORT_DIPSETTING(    0x20, "Common" )
19581961   PORT_DIPSETTING(    0x00, "Individual" )
1959   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
1962   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:7,8")
19601963   PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
19611964   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
19621965   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
19631966   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
19641967INPUT_PORTS_END
19651968
1969static INPUT_PORTS_START( shdancbl )
1970   PORT_INCLUDE( astormbl )
19661971
1972   PORT_MODIFY("P2")
1973   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1974
1975   PORT_MODIFY("P3")
1976   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1977
1978   PORT_MODIFY("COINAGE")
1979   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
1980   PORT_DIPSETTING(    0x70, DEF_STR( 4C_1C ) )
1981   PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
1982   PORT_DIPSETTING(    0x90, DEF_STR( 2C_1C ) )
1983   PORT_DIPSETTING(    0x50, "2 Coins/1 Credit 5/3 6/4" )
1984   PORT_DIPSETTING(    0x40, "2 Coins/1 Credit 4/3" )
1985   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1986   PORT_DIPSETTING(    0x10, "1 Coin/1 Credit 2/3" )
1987   PORT_DIPSETTING(    0x20, "1 Coin/1 Credit 4/5" )
1988   PORT_DIPSETTING(    0x30, "1 Coin/1 Credit 5/6" )
1989   PORT_DIPSETTING(    0x60, DEF_STR( 2C_3C ) )
1990   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1991   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1992   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1993   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1994   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1995   PORT_DIPSETTING(    0x00, "Free Play (if Coin A too) or 1/1" )
1996
1997   PORT_MODIFY("SERVICE")
1998   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1999   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
2000
2001   PORT_MODIFY("DSW1")
2002   PORT_DIPNAME( 0x0C, 0x04, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:3,4")
2003   PORT_DIPSETTING(    0x00, "2" )
2004   PORT_DIPSETTING(    0x0c, "3" )
2005   PORT_DIPSETTING(    0x08, "4" )
2006   PORT_DIPSETTING(    0x04, "5" )
2007   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:5,6")
2008   PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
2009   PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
2010   PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
2011   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
2012   PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" )      PORT_DIPLOCATION("SW2:7,8")
2013   PORT_DIPSETTING(    0x80, "3:30" )
2014   PORT_DIPSETTING(    0xc0, "3:00" )
2015   PORT_DIPSETTING(    0x40, "2:40" )
2016   PORT_DIPSETTING(    0x00, "2:20" )
2017INPUT_PORTS_END
2018
2019
19672020/*************************************
19682021 *
19692022 *  Graphics definitions
r9535r9536
35513604GAME( 1990, astormbl,    astorm,    astormbl,    astormbl,  astormbl,   ROT0,   "bootleg", "Alien Storm (bootleg, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
35523605GAME( 1990, astormb2,    astorm,    astormbl,    astormbl,  astormbl,   ROT0,   "bootleg", "Alien Storm (bootleg, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
35533606GAME( 1990, mwalkbl,     mwalk,     mwalkbl,     mwalkbl,   mwalkbl,    ROT0,   "bootleg", "Michael Jackson's Moonwalker (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
3554GAME( 1989, shdancbl,    shdancer,  shdancbl,    mwalkbl,   shdancbl,   ROT0,   "bootleg", "Shadow Dancer (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
3607GAME( 1989, shdancbl,    shdancer,  shdancbl,    shdancbl,  shdancbl,   ROT0,   "bootleg", "Shadow Dancer (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
src/mame/drivers/tmaster.c
r9535r9536
10101010   ROM_LOAD16_BYTE( "tmaster_v300_euro.u52", 0x000001, 0x080000, CRC(e9fd30fc) SHA1(d91ea05d5f574603883336729fb9df705688945d) ) /* Ver: 3.00 Euro 11-25-96 */
10111011
10121012   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )   // Blitter gfx
1013   ROM_LOAD16_BYTE( "tmaster.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Same as U38 below */
1014   ROM_LOAD16_BYTE( "tmaster.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Same as U36 below */
1013   ROM_LOAD16_BYTE( "tmaster_v21.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1014   ROM_LOAD16_BYTE( "tmaster_v21.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
10151015   // unused gap
1016   ROM_LOAD16_BYTE( "tmaster.u39", 0x300000, 0x080000, CRC(cbb716cb) SHA1(4e8d8f6cbfb25a8161ff8fe7505d6b209650dd2b) ) /* Different then U39 below, newer or region specific? */
1017   ROM_LOAD16_BYTE( "tmaster.u37", 0x300001, 0x080000, CRC(e0b6a9f7) SHA1(7e057ca87833c682e5be03668469259bbdefbf20) ) /* Different then U37 below, newer or region specific? */
1016   ROM_LOAD16_BYTE( "tmaster_v300.u39", 0x300000, 0x080000, CRC(cbb716cb) SHA1(4e8d8f6cbfb25a8161ff8fe7505d6b209650dd2b) ) /* Marked as Rev 3.00 */
1017   ROM_LOAD16_BYTE( "tmaster_v300.u37", 0x300001, 0x080000, CRC(e0b6a9f7) SHA1(7e057ca87833c682e5be03668469259bbdefbf20) ) /* Marked as Rev 3.00 */
10181018
10191019   ROM_REGION( 0x100000, "oki", 0 ) // Samples
1020   ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Same as U8 below */
1020   ROM_LOAD( "tmaster.u8", 0x40000, 0x040000, CRC(f39ad4cf) SHA1(9bcb9a5dd3636d6541eeb3e737c7253ab0ed4e8d) ) /* Marked as Rev 1.0 */
10211021   ROM_CONTINUE(           0xc0000, 0x040000 )
10221022ROM_END
10231023
r9535r9536
10271027   ROM_LOAD16_BYTE( "tmaster_v22-01.u52", 0x000001, 0x080000, CRC(6c2c643f) SHA1(8dd7930f4c499483ca46b0b97bde94cb8d6e06aa) ) /* Ver: 2.2-01 Standard 10-17-96 */
10281028
10291029   ROM_REGION( 0x400000, "blitter", ROMREGION_ERASE )   // Blitter gfx
1030   ROM_LOAD16_BYTE( "tmaster.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1031   ROM_LOAD16_BYTE( "tmaster.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
1030   ROM_LOAD16_BYTE( "tmaster_v21.u38", 0x100000, 0x080000, CRC(68885ef6) SHA1(010602b59c33c3e490491a296ddaf8952e315b83) ) /* Marked as Rev 2.1 */
1031   ROM_LOAD16_BYTE( "tmaster_v21.u36", 0x100001, 0x080000, CRC(204096ec) SHA1(9239923b7eedb6003c63ef2e8ff224edee657bbc) ) /* Marked as Rev 2.1 */
10321032   // unused gap
10331033   ROM_LOAD16_BYTE( "tmaster_v21.u39", 0x300000, 0x080000, CRC(a4445260) SHA1(915347f69d7ea45f8f299a67d77ff437983495d2) ) /* Marked as Rev 2.1 */
10341034   ROM_LOAD16_BYTE( "tmaster_v21.u37", 0x300001, 0x080000, CRC(0e140a3e) SHA1(10a34e3b95c0d36fe687fe8c1124ef244a93d720) ) /* Marked as Rev 2.1 */
src/mame/drivers/cubocd32.c
r9535r9536
11531153   DISK_IMAGE_READONLY( "magicnumber", 0, SHA1(60e1fadc42694742d19cc0ac2b6e99e9e33faa3d) )
11541154ROM_END
11551155
1156ROM_START( odeontw2 )
1157   CD32_BIOS
1158
1159   DISK_REGION( "cdrom" )
1160   DISK_IMAGE_READONLY( "odeontw2", 0, SHA1(f39e09f35b65a6ae9f1eba4a22f970626b7d3b71) )
1161ROM_END
1162
11561163/***************************************************************************************************/
11571164
11581165static DRIVER_INIT( cd32 )
r9535r9536
13431350GAME( 1995, lasstixx, cd32, cd32, lasstixx, lasstixx, ROT0, "CD Express", "Laser Strixx 2",            GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
13441351GAME( 1995, mgnumber, cd32, cd32, mgnumber, mgnumber, ROT0, "CD Express", "Magic Number",              GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
13451352GAME( 1996, mgprem11, cd32, cd32, mgprem11, mgprem11, ROT0, "CD Express", "Magic Premium (v1.1)",      GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
1353GAME( 1999, odeontw2, cd32, cd32, cd32,     cd32,     ROT0, "CD Express", "Odeon Twister 2 (v202.19)", GAME_NOT_WORKING )
src/mame/drivers/djboy.c
r9535r9536
137137*/
138138
139139#include "emu.h"
140#include "deprecat.h"
141140#include "cpu/z80/z80.h"
142141#include "cpu/mcs51/mcs51.h"
143142#include "sound/2203intf.h"
r9535r9536
513512
514513/******************************************************************************/
515514
516static INTERRUPT_GEN( djboy_interrupt )
517{ /* CPU1 uses interrupt mode 2. For now, just alternate the two interrupts. */
518   djboy_state *state = device->machine->driver_data<djboy_state>();
519   state->addr ^= 0x02;
520   cpu_set_input_line_and_vector(device, 0, HOLD_LINE, state->addr);
515/* Main Z80 uses IM2 */
516static TIMER_DEVICE_CALLBACK( djboy_scanline )
517{
518   int scanline = param;
519
520   if(scanline == 240) // vblank-out irq
521      cputag_set_input_line_and_vector(timer.machine, "maincpu", 0, HOLD_LINE, 0xfd);
522
523   /* Pandora "sprite end dma" irq? TODO: timing is clearly off, attract mode relies on this */
524   if(scanline == 64)
525      cputag_set_input_line_and_vector(timer.machine, "maincpu", 0, HOLD_LINE, 0xff);
521526}
522527
523528static const kaneko_pandora_interface djboy_pandora_config =
r9535r9536
553558   state_save_register_global(machine, state->scrollx);
554559   state_save_register_global(machine, state->scrolly);
555560
556   state_save_register_global(machine, state->addr);
557
558561   /* Kaneko BEAST */
559562   state_save_register_global(machine, state->data_to_beast);
560563   state_save_register_global(machine, state->data_to_z80);
r9535r9536
575578   state->scrollx = 0;
576579   state->scrolly = 0;
577580
578   state->addr = 0xff;
579
580581   state->beast_int0_l = 1;
581582   state->beast_to_z80_full = 0;
582583   state->z80_to_beast_full = 0;
r9535r9536
587588   MDRV_CPU_ADD("maincpu", Z80, 6000000)
588589   MDRV_CPU_PROGRAM_MAP(cpu0_am)
589590   MDRV_CPU_IO_MAP(cpu0_port_am)
590   MDRV_CPU_VBLANK_INT_HACK(djboy_interrupt, 2)
591   MDRV_TIMER_ADD_SCANLINE("scantimer", djboy_scanline, "screen", 0, 1)
591592
592593   MDRV_CPU_ADD("cpu1", Z80, 6000000)
593594   MDRV_CPU_PROGRAM_MAP(cpu1_am)
src/mame/drivers/funworld.c
r9535r9536
4040  * Royal Card (austrian, set 4),                     TAB Austria,        1991.
4141  * Royal Card (austrian, set 5),                     TAB Austria,        1991.
4242  * Royal Card (austrian, set 6),                     TAB Austria,        1991.
43  * Royal Card (TAB original),                        TAB Austria,        1991.
4344  * Royal Card (slovak, encrypted),                   Evona Electronic,   1991.
4445  * Royal Card Professional 2.0,                      Digital Dreams,     1993.
4546  * Lucky Lady (3x3 deal),                            TAB Austria,        1991.
r9535r9536
32713272
32723273
32733274/*
3275   Royal Card (TAB Austria original)
3276   With respective original PLD properly dumped.
3277*/
3278
3279ROM_START( royalcrdt )
3280   ROM_REGION( 0x10000, "maincpu", 0 )
3281   ROM_LOAD( "r1_0.bin", 0x8000, 0x8000, CRC(829a6a1d) SHA1(b7064e4d60e33d0875eb73525230ea3b99f10542) )
3282
3283   ROM_REGION( 0x10000, "gfx1", 0 )
3284   ROM_LOAD( "novr3_0.bin", 0x0000, 0x8000, CRC(85e77661) SHA1(7d7a765c1bfcfeb9eb91d2519b22d734f20eab24) )
3285   ROM_LOAD( "novr2_0.bin", 0x8000, 0x8000, CRC(41f7a0b3) SHA1(9aff2b8832d2a4f868daa9849a0bfe5e44f88fc0) )
3286
3287   ROM_REGION( 0x0200, "proms", 0 )
3288   ROM_LOAD( "jop1.bin",    0x0000, 0x0200, CRC(8bc86f48) SHA1(4c677ab9314a1f571e35104b22659e6811aeb194) )
3289
3290   ROM_REGION( 0x0800, "nvram", 0 )
3291   ROM_LOAD( "royalcrdt_nv.bin",  0x0000, 0x0800, CRC(67a6e68b) SHA1(d7ab01c4d9bd4fe58b5d0f4a945c00c5c4906008) )
3292
3293   ROM_REGION( 0x0200, "plds", 0 )   /* Device type is 16L8 */
3294   ROM_LOAD( "tab01_3.bin",    0x0000, 0x0104, CRC(a13a7a0a) SHA1(28e918ece4dcfa3883d2439c226b2f125d43f386) )
3295ROM_END
3296
3297
3298/*
32743299    Royal Card (set 7, encrypted)
32753300    -----------------------------
32763301
r9535r9536
33113336ROM_END
33123337
33133338
3339
33143340ROM_START( royalcrdp )
33153341   ROM_REGION( 0x10000, "maincpu", 0 )
33163342   ROM_LOAD( "u16_m27c256b.bin", 0x8000, 0x8000, CRC(162996ff) SHA1(122c13ee9842e692d31490f216eb972df2321b7f) )
r9535r9536
43234349GAMEL( 1991, royalcrdc, royalcrd, royalcd2, royalcrd,  0,        ROT0, "TAB Austria",     "Royal Card (Austrian, set 4)",                    GAME_IMPERFECT_GRAPHICS, layout_jollycrd )
43244350GAMEL( 1991, royalcrdd, royalcrd, royalcd1, royalcrd,  0,        ROT0, "TAB Austria",     "Royal Card (Austrian, set 5)",                    0,                       layout_royalcrd )
43254351GAMEL( 1991, royalcrde, royalcrd, royalcd1, royalcrd,  0,        ROT0, "TAB Austria",     "Royal Card (Austrian, set 6)",                    0,                       layout_jollycrd )
4352GAMEL( 1991, royalcrdt, royalcrd, royalcd1, royalcrd,  0,        ROT0, "TAB Austria",     "Royal Card (TAB original)",                       0,                       layout_jollycrd )
43264353GAME(  1991, royalcrdf, royalcrd, royalcd1, royalcrd,  royalcdc, ROT0, "Evona Electronic","Royal Card (Slovak, encrypted)",                  GAME_NOT_WORKING )
43274354GAME(  1993, royalcrdp, royalcrd, cuoreuno, royalcrd,  0,        ROT0, "Digital Dreams",  "Royal Card v2.0 Professional",                    GAME_NOT_WORKING )
43284355GAMEL( 1991, lluck3x3,  royalcrd, cuoreuno, royalcrd,  0,        ROT0, "TAB Austria",     "Lucky Lady (3x3 deal)",                           0,                       layout_jollycrd )
r9535r9536
43424369GAME(  199?, mongolnw,  0,        royalcd1, royalcrd,  0,        ROT0, "bootleg",         "Mongolfier New (Italian)",                        GAME_NOT_WORKING )
43434370GAME(  199?, soccernw,  0,        royalcd1, royalcrd,  soccernw, ROT0, "bootleg",         "Soccer New (Italian)",                            GAME_NOT_WORKING )
43444371GAME(  198?, saloon,    0,        saloon,   saloon,    saloon,   ROT0, "<unknown>",       "Saloon (French, encrypted)",                      GAME_NOT_WORKING )
4345GAME(  198?, funquiz,   0,        funquiz,  funquiz,   0,        ROT0, "Funworld",    "Fun World Quiz (Austrian)",                       0 )
4372GAME(  198?, funquiz,   0,        funquiz,  funquiz,   0,        ROT0, "Funworld / " O_UMLAUT "hlinger", "Fun World Quiz (Austrian)",                   0 )
43464373
src/mame/drivers/segas16b.c
r9535r9536
17761776   {
17771777      case 0x0000/2:
17781778         if (((state->mj_last_val ^ data) & 4) && (data & 4))
1779         {
17801779            state->mj_input_num = (state->mj_input_num + 1) % 6;
1781            state->mj_last_val = data;
1782         }
1780
1781         state->mj_last_val = data;
17831782         break;
17841783   }
17851784   standard_io_w(space, offset, data, mem_mask);
r9535r9536
48724871    Golden Axe (Japan), Sega System 16B
48734872    CPU: FD1094 (317-0121)
48744873    ROM Board: 171-5704
4874    Sega ID# for ROM board: 834-7002-04
48754875*/
48764876ROM_START( goldnaxej )
48774877   ROM_REGION( 0x0c0000, "maincpu", 0 ) /* 68000 code */
src/mame/drivers/royalmah.c
r9535r9536
77
88CPU:    Z80 or TLCS-90
99Video:  Framebuffer
10Sound:  AY-3-8910
10Sound:  AY-3-8910 (or YM2149)
1111OSC:    18.432MHz and 8MHz
1212
13---------------------------------------------------------------------------------------------------------------------
14Year + Game               Board(s)             CPU      Company            Notes
15---------------------------------------------------------------------------------------------------------------------
1681  Royal Mahjong                              Z80      Nichibutsu
1781? Open Mahjong                               Z80      Sapporo Mechanic
1882  Royal Mahjong         ? + FRM-03           Z80      Falcon             bootleg
1983  Janyou Part II                             Z80        Cosmo Denshi
2084? Jan Oh                FRM-00?              Z80      Toaplan            Incomplete program roms
2186  Ippatsu Gyakuten                           Z80      Public/Paradais
2286  Don Den Mahjong       D039198L-0           Z80      Dyna Electronics
2386  Watashiha Suzumechan  D8803288L1-0         Z80      Dyna Electronics
2487  Mahjong Diplomat      D0706088L1-0         Z80      Dynax
2587  Mahjong Studio 101    D1708228L1           Z80      Dynax
2687  Tonton                D0908288L1-0         Z80      Dynax
2788  Almond Pinky          D1401128L-0 + RM-1D  Z80      Dynax
2889  Mahjong Shinkirou     D210301BL2 + FRM-00? TLCS-90  Dynax
2989  Mahjong Derringer     D2203018L            Z80      Dynax              Larger palette
3090  Mahjong If..?         D2909278L            TLCS-90  Dynax              Larger palette
3191  Mahjong Vegas         D5011308L1 + FRM-00  TLCS-90  Dynax              Undumped internal rom (mjvegas set)
3292  Mahjong Cafe Time     D6310128L1-1         TLCS-90  Dynax              Larger palette, RTC
3393  Mahjong Cafe Doll     D76052208L-2         TLCS-90  Dynax              Larger palette, RTC, Undumped internal rom
3495  Mahjong Tensinhai     D10010318L1          TLCS-90  Dynax              Larger palette, RTC
3596  Janputer '96          NS503X0727           Z80      Dynax              Larger palette, RTC
3699  Mahjong Cafe Break    NS528-9812           TLCS-90  Nakanihon / Dynax  Undumped internal rom
37---------------------------------------------------------------------------------------------------------------------
13-----------------------------------------------------------------------------------------------------------------------
14Year + Game               Board(s)               CPU      Company            Notes
15-----------------------------------------------------------------------------------------------------------------------
1681  Royal Mahjong                                Z80      Nichibutsu
1781? Open Mahjong                                 Z80      Sapporo Mechanic
1882  Royal Mahjong         ? + FRM-03             Z80      Falcon             bootleg
1983  Janyou Part II                               Z80        Cosmo Denshi
2084? Jan Oh                FRM-00?                Z80      Toaplan            Incomplete program roms
2186  Ippatsu Gyakuten                             Z80      Public/Paradais
2286  Don Den Mahjong       D039198L-0             Z80      Dyna Electronics
2386  Watashiha Suzumechan  D8803288L1-0           Z80      Dyna Electronics
2487  Mahjong Diplomat      D0706088L1-0           Z80      Dynax
2587  Mahjong Studio 101    D1708228L1             Z80      Dynax
2687  Tonton                D0908288L1-0           Z80      Dynax
2788  Almond Pinky          D1401128L-0 + RM-1D    Z80      Dynax
2889  Mahjong Shinkirou     D210301BL2 + FRM-00?   TLCS-90  Dynax
2989  Mahjong Derringer     D2203018L              Z80      Dynax              Larger palette
3090  Mahjong If..?         D2909278L              TLCS-90  Dynax              Larger palette
3191  Mahjong Vegas         D5011308L1 + FRM-00    TLCS-90  Dynax              Undumped internal rom (mjvegas set)
3292  Mahjong Cafe Time     D6310128L1-1           TLCS-90  Dynax              Larger palette, RTC
3393  Mahjong Cafe Doll     D76052208L-2           TLCS-90  Dynax              Larger palette, RTC, Undumped internal rom
3495  Mahjong Tensinhai     D10010318L1            TLCS-90  Dynax              Larger palette, RTC
3596  Janputer '96          NS503X0727             Z80      Dynax              Larger palette, RTC
3697  Janputer Special      CS166P008 + NS5110207  Z80      Dynax              Larger palette, RTC
3799  Mahjong Cafe Break    NS528-9812             TLCS-90  Nakanihon / Dynax  Undumped internal rom
38-----------------------------------------------------------------------------------------------------------------------
3839
3940TODO:
4041
r9535r9536
8081    front of a random combination. It's value remains *1 though.
8182    Could it be a leftover from another game ('tontonb' for exemple) ?
8283
83- janptr96: in service mode press in sequence N,Ron,Ron,N to access some
84- janptr96, janptrsp: in service mode press in sequence N,Ron,Ron,N to access some
8485  hidden options. (thanks bnathan)
8586
86872009-03-25 FP: fixed verified DSW and default settings for mjclub (thanks to
r9535r9536
32543255}
32553256
32563257static MACHINE_CONFIG_DERIVED( janptr96, mjderngr )
3257   MDRV_CPU_REPLACE("maincpu",Z80,24000000/4)   /* 6 MHz? */
3258   MDRV_CPU_REPLACE("maincpu",Z80,XTAL_16MHz/2)   /* 8 MHz? */
32583259   MDRV_CPU_PROGRAM_MAP(janptr96_map)
32593260   MDRV_CPU_IO_MAP(janptr96_iomap)
32603261   MDRV_CPU_VBLANK_INT_HACK(janptr96_interrupt,3)   /* IM 2 needs a vector on the data bus */
r9535r9536
37103711
37113712/***************************************************************************
37123713
3713    Colour proms are TBP28S42's
3714Janputer '96
3715(c)1996 Dynax
37143716
3717Colour proms are TBP28S42's
3718
37153719***************************************************************************/
37163720
37173721ROM_START( janptr96 )
r9535r9536
37313735
37323736/***************************************************************************
37333737
3738Janputer Special
3739(c)1997 Dynax
3740
3741Colour proms are TBP28642's
3742
3743***************************************************************************/
3744
3745ROM_START( janptrsp )
3746   ROM_REGION( 0x210000, "maincpu", 0 )
3747   ROM_LOAD( "ns51101.1h", 0x000000, 0x80000, CRC(44492ca1) SHA1(49e3dc9872a26e446599deb47161b8f52e4968c4) )
3748   /* bank switched ROMs follow */
3749   ROM_RELOAD(             0x010000, 0x80000 )
3750   ROM_LOAD( "ns51102.1g", 0x090000, 0x80000, CRC(01e6aa19) SHA1(a761fe69fb69c0bf101033e71813742c9fc2d747) )
3751   ROM_LOAD( "ns51103.1f", 0x110000, 0x80000, CRC(0fc94805) SHA1(035002e8354673a063faacd3cb91d0512cab677a) )
3752   ROM_LOAD( "ns51104.1e", 0x190000, 0x80000, CRC(00442508) SHA1(268cc0c76bb9c21213c941952dbc891778ad397e) )
3753
3754   ROM_REGION( 0x400, "proms", 0 )
3755   ROM_LOAD( "ns511b.3h", 0x000, 0x200, CRC(1286434f) SHA1(6818549d0e8b231d7071e67923f47b96fc6e1bb6) )
3756   ROM_LOAD( "ns511a.3j", 0x200, 0x200, CRC(26b6714c) SHA1(0d110c1e3f7050a3c4ecbed630a0a8b522f1b0b0) )
3757ROM_END
3758
3759/***************************************************************************
3760
37343761Mahjong Tensinhai
37353762Dynax, 1995
37363763
r9535r9536
46574684GAME( 1993,  cafedoll, 0,        mjifb,    mjifb,    0,        ROT0,   "Dynax",                      "Mahjong Cafe Doll (Japan)",             GAME_NOT_WORKING )
46584685GAME( 1995,  mjtensin, 0,        mjtensin, mjtensin, 0,        ROT0,   "Dynax",                      "Mahjong Tensinhai (Japan)",             GAME_NOT_WORKING )
46594686GAME( 1996,  janptr96, 0,        janptr96, janptr96, janptr96, ROT0,   "Dynax",                      "Janputer '96 (Japan)",                  0 )
4687GAME( 1997,  janptrsp, 0,        janptr96, janptr96, janptr96, ROT0,   "Dynax",                      "Janputer Special (Japan)",              0 )
46604688GAME( 1999,  cafebrk,  0,        mjifb,    mjifb,    0,        ROT0,   "Nakanihon / Dynax",          "Mahjong Cafe Break",                    GAME_NOT_WORKING )
src/osd/osdepend.c
r9535r9536
6969   // This function is responsible for initializing the OSD-specific
7070   // video and input functionality, and registering that functionality
7171   // with the MAME core.
72   //
72   //
7373   // In terms of video, this function is expected to create one or more
7474   // render_targets that will be used by the MAME core to provide graphics
7575   // data to the system. Although it is possible to do this later, the
7676   // assumption in the MAME core is that the user interface will be
7777   // visible starting at init() time, so you will have some work to
7878   // do to avoid these assumptions.
79   //
79   //
8080   // In terms of input, this function is expected to enumerate all input
8181   // devices available and describe them to the MAME core by adding
8282   // input devices and their attached items (buttons/axes) via the input
8383   // system.
84   //
84   //
8585   // Beyond these core responsibilities, init() should also initialize
8686   // any other OSD systems that require information about the current
8787   // running_machine.
88   //
88   //
8989   // This callback is also the last opportunity to adjust the options
9090   // before they are consumed by the rest of the core.
91   //
91   //
9292   // Future work/changes:
93   //
93   //
9494   // Audio initialization may eventually move into here as well,
9595   // instead of relying on independent callbacks from each system.
9696   //
r9535r9536
141141   //
142142   // When implementing an OSD-driver debugger, this method should be
143143   // overridden to wait for input, process it, and return. It will be
144   // called repeatedly until a command is issued that resumes
144   // called repeatedly until a command is issued that resumes
145145   // execution.
146146   //
147147}
r9535r9536
169169void osd_interface::set_mastervolume(int attenuation)
170170{
171171   //
172   // Attenuation is the attenuation in dB (a negative number).
172   // Attenuation is the attenuation in dB (a negative number).
173173   // To convert from dB to a linear volume scale do the following:
174174    //    volume = MAX_VOLUME;
175175    //    while (attenuation++ < 0)
r9535r9536
222222//-------------------------------------------------
223223//  font_get_bitmap - allocate and populate a
224224//  BITMAP_FORMAT_ARGB32 bitmap containing the
225//  pixel values MAKE_ARGB(0xff,0xff,0xff,0xff)
225//  pixel values MAKE_ARGB(0xff,0xff,0xff,0xff)
226226//  or MAKE_ARGB(0x00,0xff,0xff,0xff) for each
227227//  pixel of a black & white font
228228//-------------------------------------------------
src/osd/osdmini/osdmini.h
r9535r9536
5353   // construction/destruction
5454   mini_osd_interface();
5555   virtual ~mini_osd_interface();
56   
56
5757   // general overridables
5858   virtual void init(running_machine &machine);
5959   virtual void update(bool skip_redraw);
6060
6161   // debugger overridables
62//   virtual void init_debugger();
63//   virtual void wait_for_debugger(device_t &device, bool firststop);
64   
62//  virtual void init_debugger();
63//  virtual void wait_for_debugger(device_t &device, bool firststop);
64
6565   // audio overridables
6666   virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame);
6767   virtual void set_mastervolume(int attenuation);
6868
6969   // input overridables
7070   virtual void customize_input_type_list(input_type_desc *typelist);
71   
71
7272private:
7373   static void osd_exit(running_machine &machine);
7474};
src/osd/osdmini/minifile.c
r9535r9536
183183   result->name = (char *)(result + 1);
184184   result->type = ENTTYPE_NONE;
185185   result->size = 0;
186   
186
187187   FILE *f = fopen(path, "rb");
188188   if (f != NULL)
189189   {
src/osd/sdl/osdsdl.h
r9535r9536
128128   // construction/destruction
129129   sdl_osd_interface();
130130   virtual ~sdl_osd_interface();
131   
131
132132   // general overridables
133133   virtual void init(running_machine &machine);
134134   virtual void update(bool skip_redraw);
r9535r9536
136136   // debugger overridables
137137   virtual void init_debugger();
138138   virtual void wait_for_debugger(device_t &device, bool firststop);
139   
139
140140   // audio overridables
141141   virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame);
142142   virtual void set_mastervolume(int attenuation);
143143
144144   // input overridables
145145   virtual void customize_input_type_list(input_type_desc *typelist);
146   
146
147147private:
148148   static void osd_exit(running_machine &machine);
149149};
src/osd/osdepend.h
r9535r9536
6666   // construction/destruction
6767   osd_interface();
6868   virtual ~osd_interface();
69   
69
7070   // getters
7171   running_machine &machine() const { assert(m_machine != NULL); return *m_machine; }
7272
r9535r9536
7777   // debugger overridables
7878   virtual void init_debugger();
7979   virtual void wait_for_debugger(device_t &device, bool firststop);
80   
80
8181   // audio overridables
8282   virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame);
8383   virtual void set_mastervolume(int attenuation);
8484
8585   // input overridables
8686   virtual void customize_input_type_list(input_type_desc *typelist);
87   
87
8888   // font overridables
8989   virtual osd_font font_open(const char *name, int &height);
9090   virtual void font_close(osd_font font);
src/osd/windows/winmain.c
r9535r9536
693693   _tcsncpy(logfont.lfFaceName, face, sizeof(logfont.lfFaceName) / sizeof(TCHAR));
694694   logfont.lfFaceName[sizeof(logfont.lfFaceName) / sizeof(TCHAR) - 1] = 0;
695695   osd_free(face);
696   
696
697697   // create the font
698698   height = logfont.lfHeight;
699699   osd_font font = reinterpret_cast<osd_font>(CreateFontIndirect(&logfont));
700700   if (font == NULL)
701701      return NULL;
702   
702
703703   // select it into a temp DC and get the real font name
704704   HDC dummyDC = CreateCompatibleDC(NULL);
705705   HGDIOBJ oldfont = SelectObject(dummyDC, reinterpret_cast<HGDIOBJ>(font));
r9535r9536
707707   GetTextFace(dummyDC, ARRAY_LENGTH(realname), realname);
708708   SelectObject(dummyDC, oldfont);
709709   DeleteDC(dummyDC);
710   
710
711711   // if it doesn't match our request, fail
712712   char *utf = utf8_from_tstring(realname);
713713   int result = mame_stricmp(utf, name);
714714   osd_free(utf);
715715
716   // if we didn't match, nuke our font and fall back   
716   // if we didn't match, nuke our font and fall back
717717   if (result != 0)
718718   {
719719      DeleteObject(reinterpret_cast<HFONT>(font));
r9535r9536
739739//-------------------------------------------------
740740//  font_get_bitmap - allocate and populate a
741741//  BITMAP_FORMAT_ARGB32 bitmap containing the
742//  pixel values MAKE_ARGB(0xff,0xff,0xff,0xff)
742//  pixel values MAKE_ARGB(0xff,0xff,0xff,0xff)
743743//  or MAKE_ARGB(0x00,0xff,0xff,0xff) for each
744744//  pixel of a black & white font
745745//-------------------------------------------------
r9535r9536
749749   // create a dummy DC to work with
750750   HDC dummyDC = CreateCompatibleDC(NULL);
751751   HGDIOBJ oldfont = SelectObject(dummyDC, reinterpret_cast<HGDIOBJ>(font));
752   
752
753753   // get the text metrics
754754   TEXTMETRIC metrics = { 0 };
755755   GetTextMetrics(dummyDC, &metrics);
r9535r9536
763763      GetCharWidth32(dummyDC, chnum, chnum, reinterpret_cast<LPINT>(&abc.abcB));
764764   }
765765   width = abc.abcA + abc.abcB + abc.abcC;
766   
766
767767   // determine desired bitmap size
768768   int bmwidth = (50 + abc.abcA + abc.abcB + abc.abcC + 50 + 31) & ~31;
769769   int bmheight = 50 + metrics.tmHeight + 50;
770   
770
771771   // describe the bitmap we want
772772   BYTE bitmapinfodata[sizeof(BITMAPINFOHEADER) + 2 * sizeof(RGBQUAD)] = { 0 };
773773   BITMAPINFO &info = *reinterpret_cast<BITMAPINFO *>(bitmapinfodata);
r9535r9536
784784   info.bmiHeader.biClrImportant = 0;
785785   info.bmiColors[0].rgbBlue = info.bmiColors[0].rgbGreen = info.bmiColors[0].rgbRed = 0x00;
786786   info.bmiColors[1].rgbBlue = info.bmiColors[1].rgbGreen = info.bmiColors[1].rgbRed = 0xff;
787   
787
788788   // create a DIB to render to
789789   BYTE *bits;
790790   HBITMAP dib = CreateDIBSection(dummyDC, &info, DIB_RGB_COLORS, reinterpret_cast<VOID **>(&bits), NULL, 0);
r9535r9536
793793   // clear the bitmap
794794   int rowbytes = bmwidth / 8;
795795   memset(bits, 0, rowbytes * bmheight);
796   
796
797797   // now draw the character
798798   WCHAR tempchar = chnum;
799799   SetTextColor(dummyDC, RGB(0xff,0xff,0xff));
r9535r9536
804804   rectangle actbounds;
805805   actbounds.min_y = 50;
806806   actbounds.max_y = 50 + metrics.tmHeight - 1;
807     
807
808808   // determine the actual left of the character
809809   for (actbounds.min_x = 0; actbounds.min_x < rowbytes; actbounds.min_x++)
810810   {
r9535r9536
825825         break;
826826      }
827827   }
828     
828
829829   // determine the actual right of the character
830830   for (actbounds.max_x = rowbytes - 1; actbounds.max_x >= 0; actbounds.max_x--)
831831   {
r9535r9536
846846         break;
847847      }
848848   }
849   
849
850850   // allocate a new bitmap
851851   bitmap_t *bitmap = NULL;
852852   if (actbounds.max_x >= actbounds.min_x && actbounds.max_y >= actbounds.min_y)
r9535r9536
864864            dstrow[x] = ((srcrow[effx / 8] << (effx % 8)) & 0x80) ? MAKE_ARGB(0xff,0xff,0xff,0xff) : MAKE_ARGB(0x00,0xff,0xff,0xff);
865865         }
866866      }
867     
867
868868      // set the final offset values
869869      xoffs = actbounds.min_x - (50 + abc.abcA);
870870      yoffs = actbounds.max_y - (50 + metrics.tmAscent);
src/osd/windows/winmain.h
r9535r9536
140140   // construction/destruction
141141   windows_osd_interface();
142142   virtual ~windows_osd_interface();
143   
143
144144   // general overridables
145145   virtual void init(running_machine &machine);
146146   virtual void update(bool skip_redraw);
147147
148148   // debugger overridables
149//   virtual void init_debugger();
149//  virtual void init_debugger();
150150   virtual void wait_for_debugger(device_t &device, bool firststop);
151   
151
152152   // audio overridables
153153   virtual void update_audio_stream(const INT16 *buffer, int samples_this_frame);
154154   virtual void set_mastervolume(int attenuation);
155155
156156   // input overridables
157157   virtual void customize_input_type_list(input_type_desc *typelist);
158   
158
159159   // font overridables
160160   virtual osd_font font_open(const char *name, int &height);
161161   virtual void font_close(osd_font font);
162162   virtual bitmap_t *font_get_bitmap(osd_font font, unicode_char chnum, INT32 &width, INT32 &xoffs, INT32 &yoffs);
163   
163
164164private:
165165   static void osd_exit(running_machine &machine);
166   
166
167167   static const int DEFAULT_FONT_HEIGHT = 200;
168168};
169169
src/emu/debug/express.h
r9535r9536
114114
115115   // operators
116116   operator error_code() const { return m_code; }
117   
117
118118   // getters
119119   error_code code() const { return m_code; }
120120   int offset() const { return m_offset; }
r9535r9536
134134{
135135   friend class tagged_list<symbol_entry>;
136136
137protected:   
137protected:
138138   // symbol types
139139   enum symbol_type
140140   {
r9535r9536
150150   // getters
151151   symbol_entry *next() const { return m_next; }
152152   const char *name() const { return m_name; }
153   
153
154154   // type checking
155155   bool is_function() const { return (m_type == SMT_FUNCTION); }
156   
156
157157   // symbol access
158158   virtual bool is_lval() const = 0;
159159   virtual UINT64 value() const = 0;
r9535r9536
179179   // callback functions for getting/setting a symbol value
180180   typedef UINT64 (*getter_func)(symbol_table &table, void *symref);
181181   typedef void (*setter_func)(symbol_table &table, void *symref, UINT64 value);
182   
182
183183   // callback functions for function execution
184184   typedef UINT64 (*execute_func)(symbol_table &table, void *symref, int numparams, const UINT64 *paramlist);
185185
r9535r9536
196196
197197   // construction/destruction
198198   symbol_table(void *globalref, symbol_table *parent = NULL);
199   
199
200200   // getters
201201   symbol_entry *first() const { return m_symlist.first(); }
202202   symbol_table *parent() const { return m_parent; }
203203   void *globalref() const { return m_globalref; }
204   
204
205205   // setters
206206   void configure_memory(void *param, valid_func valid, read_func read, write_func write);
207   
207
208208   // symbol access
209209   void add(const char *name, read_write rw, UINT64 *ptr = NULL);
210210   void add(const char *name, UINT64 constvalue);
211211   void add(const char *name, void *ref, getter_func getter, setter_func setter = NULL);
212212   void add(const char *name, void *ref, int minparams, int maxparams, execute_func execute);
213213   symbol_entry *find(const char *name) { return m_symlist.find(name); }
214   
214   symbol_entry *find_deep(const char *name);
215
215216   // value getter/setter
216217   UINT64 value(const char *symbol);
217218   void set_value(const char *symbol, UINT64 value);
r9535r9536
252253   const char *original_string() const { return m_original_string; }
253254   symbol_table *symbols() const { return m_symtable; }
254255
255   // setters   
256   // setters
256257   void set_symbols(symbol_table *symtable) { m_symtable = symtable; }
257258
258259   // execution
r9535r9536
264265   class parse_token
265266   {
266267      friend class simple_list<parse_token>;
267   
268
268269      // operator flags
269270      enum
270271      {
r9535r9536
296297   public:
297298      // construction/destruction
298299      parse_token(int offset = 0);
299     
300
300301      // getters
301302      parse_token *next() const { return m_next; }
302303      int offset() const { return m_offset; }
r9535r9536
327328      parse_token &configure_string(const char *string) { m_type = STRING; m_string = string; return *this; }
328329      parse_token &configure_memory(UINT32 address, parse_token &memoryat) { m_type = MEMORY; m_value = address; m_flags = memoryat.m_flags; m_string = memoryat.m_string; return *this; }
329330      parse_token &configure_symbol(symbol_entry &symbol) { m_type = SYMBOL; m_symbol = &symbol; return *this; }
330      parse_token &configure_operator(UINT8 optype, UINT8 precedence)
331      parse_token &configure_operator(UINT8 optype, UINT8 precedence)
331332         { m_type = OPERATOR; m_flags = ((optype << TIN_OPTYPE_SHIFT) & TIN_OPTYPE_MASK) | ((precedence << TIN_PRECEDENCE_SHIFT) & TIN_PRECEDENCE_MASK); return *this; }
332333
333334      parse_token &set_function_separator() { assert(m_type == OPERATOR); m_flags |= TIN_FUNCTION_MASK; return *this; }
r9535r9536
335336      parse_token &set_memory_space(expression_space space) { assert(m_type == OPERATOR || m_type == MEMORY); m_flags = (m_flags & ~TIN_MEMORY_SPACE_MASK) | ((space << TIN_MEMORY_SPACE_SHIFT) & TIN_MEMORY_SPACE_MASK); return *this; }
336337      parse_token &set_memory_size(int log2ofbits) { assert(m_type == OPERATOR || m_type == MEMORY); m_flags = (m_flags & ~TIN_MEMORY_SIZE_MASK) | ((log2ofbits << TIN_MEMORY_SIZE_SHIFT) & TIN_MEMORY_SIZE_MASK); return *this; }
337338      parse_token &set_memory_source(const char *string) { assert(m_type == OPERATOR || m_type == MEMORY); m_string = string; return *this; }
338     
339
339340      // access
340341      UINT64 get_lval_value(symbol_table *symtable);
341342      void set_lval_value(symbol_table *symtable, UINT64 value);
r9535r9536
350351      const char *         m_string;         // associated string
351352      symbol_entry *         m_symbol;         // symbol pointer
352353   };
353   
354
354355   // an expression_string holds an indexed string parsed from the expression
355356   class expression_string
356357   {
357358      friend class simple_list<expression_string>;
358   
359
359360   public:
360361      // construction/destruction
361362      expression_string(const char *string, int length = 0)
362363         : m_next(NULL),
363364           m_string(string, (length == 0) ? strlen(string) : length) { }
364     
365
365366      // operators
366367      operator const char *() { return m_string; }
367368      operator const char *() const { return m_string; }
368     
369
369370   private:
370371      // internal state
371372      expression_string *   m_next;                  // next string in list
r9535r9536
375376   // internal helpers
376377   void copy(const parsed_expression &src);
377378   void print_tokens(FILE *out);
378   
379
379380   // parsing helpers
380381   void parse_string_into_tokens();
381382   void parse_symbol_or_number(parse_token &token, const char *&string);
src/emu/debug/debugcpu.c
r9535r9536
154154
155155   /* create a global symbol table */
156156   global->symtable = global_alloc(symbol_table(machine));
157   
157
158158   // configure our base memory accessors
159159   debug_cpu_configure_memory(*machine, *global->symtable);
160160
src/emu/debug/debugcpu.h
r9535r9536
9797      int               m_index;               // user reported index
9898      UINT8            m_enabled;               // enabled?
9999      offs_t            m_address;               // execution address
100      parsed_expression    m_condition;            // condition
100      parsed_expression   m_condition;            // condition
101101      astring            m_action;               // action
102102   };
103103
src/emu/debug/debugvw.c
r9535r9536
581581
582582void debug_view_expression::set_context(symbol_table *context)
583583{
584   m_parsed.set_symbols((context != NULL) ? context : debug_cpu_get_global_symtable(&m_machine));
584   m_parsed.set_symbols((context != NULL) ? context : debug_cpu_get_global_symtable(&m_machine));
585585   m_dirty = true;
586586}
587587
src/emu/debug/debugcmd.c
r9535r9536
11631163
11641164static void execute_bpset(running_machine *machine, int ref, int params, const char *param[])
11651165{
1166   parsed_expression condition(debug_cpu_get_global_symtable(machine));
11671166   device_t *cpu;
11681167   const char *action = NULL;
11691168   UINT64 address;
11701169   int bpnum;
11711170
1171   /* CPU is implicit */
1172   if (!debug_command_parameter_cpu(machine, NULL, &cpu))
1173      return;
1174
11721175   /* param 1 is the address */
11731176   if (!debug_command_parameter_number(machine, param[0], &address))
11741177      return;
11751178
11761179   /* param 2 is the condition */
1180   parsed_expression condition(&cpu->debug()->symtable());
11771181   if (!debug_command_parameter_expression(machine, param[1], condition))
11781182      return;
11791183
r9535r9536
11811185   if (!debug_command_parameter_command(machine, action = param[2]))
11821186      return;
11831187
1184   /* CPU is implicit */
1185   if (!debug_command_parameter_cpu(machine, NULL, &cpu))
1186      return;
1187
11881188   /* set the breakpoint */
11891189   bpnum = cpu->debug()->breakpoint_set(address, (condition.is_empty()) ? NULL : condition.original_string(), action);
11901190   debug_console_printf(machine, "Breakpoint %X set\n", bpnum);
r9535r9536
13031303
13041304static void execute_wpset(running_machine *machine, int ref, int params, const char *param[])
13051305{
1306   parsed_expression condition(debug_cpu_get_global_symtable(machine));
13071306   address_space *space;
13081307   const char *action = NULL;
13091308   UINT64 address, length;
13101309   int type = 0;
13111310   int wpnum;
13121311
1312   /* CPU is implicit */
1313   if (!debug_command_parameter_cpu_space(machine, NULL, ref, &space))
1314      return;
1315
13131316   /* param 1 is the address */
13141317   if (!debug_command_parameter_number(machine, param[0], &address))
13151318      return;
r9535r9536
13321335   }
13331336
13341337   /* param 4 is the condition */
1338   parsed_expression condition(&space->cpu->debug()->symtable());
13351339   if (!debug_command_parameter_expression(machine, param[3], condition))
13361340      return;
13371341
r9535r9536
13391343   if (!debug_command_parameter_command(machine, action = param[4]))
13401344      return;
13411345
1342   /* CPU is implicit */
1343   if (!debug_command_parameter_cpu_space(machine, NULL, ref, &space))
1344      return;
1345
13461346   /* set the watchpoint */
13471347   wpnum = space->cpu->debug()->watchpoint_set(*space, type, address, length, (condition.is_empty()) ? NULL : condition.original_string(), action);
13481348   debug_console_printf(machine, "Watchpoint %X set\n", wpnum);
src/emu/debug/express.c
r9535r9536
11/***************************************************************************
22
33    express.c
4   
4
55    Generic expressions engine.
66
77****************************************************************************
r9535r9536
3737
3838****************************************************************************
3939
40   Operator precedence
41   ===================
42   0x0000       ( )
43   0x0001       ++ (postfix), -- (postfix)
44   0x0002       ++ (prefix), -- (prefix), ~, !, - (unary), + (unary), b@, w@, d@, q@
45   0x0003       *, /, %
46   0x0004       + -
47   0x0005       << >>
48   0x0006       < <= > >=
49   0x0007       == !=
50   0x0008       &
51   0x0009       ^
52   0x000a       |
53   0x000b       &&
54   0x000c       ||
55   0x000d       = *= /= %= += -= <<= >>= &= |= ^=
56   0x000e       ,
57   0x000f       func()
40    Operator precedence
41    ===================
42    0x0000       ( )
43    0x0001       ++ (postfix), -- (postfix)
44    0x0002       ++ (prefix), -- (prefix), ~, !, - (unary), + (unary), b@, w@, d@, q@
45    0x0003       *, /, %
46    0x0004       + -
47    0x0005       << >>
48    0x0006       < <= > >=
49    0x0007       == !=
50    0x0008       &
51    0x0009       ^
52    0x000a       |
53    0x000b       &&
54    0x000c       ||
55    0x000d       = *= /= %= += -= <<= >>= &= |= ^=
56    0x000e       ,
57    0x000f       func()
5858
5959***************************************************************************/
6060
r9535r9536
155155   static UINT64 internal_getter(symbol_table &table, void *symref);
156156   static void internal_setter(symbol_table &table, void *symref, UINT64 value);
157157
158   // internal state   
159   symbol_table::getter_func    m_getter;
160   symbol_table::setter_func    m_setter;
158   // internal state
159   symbol_table::getter_func   m_getter;
160   symbol_table::setter_func   m_setter;
161161   UINT64                  m_value;
162162};
163163
r9535r9536
191191//**************************************************************************
192192
193193//-------------------------------------------------
194//  code_string - return a friendly string for a
194//  code_string - return a friendly string for a
195195//  given expression error
196196//-------------------------------------------------
197197
r9535r9536
321321
322322
323323//-------------------------------------------------
324//  internal_getter - internal helper for
324//  internal_getter - internal helper for
325325//  returning the value of a variable
326326//-------------------------------------------------
327327
r9535r9536
425425
426426
427427//-------------------------------------------------
428//  add - add a new UINT64 pointer symbol
428//  add - add a new UINT64 pointer symbol
429429//-------------------------------------------------
430430
431431void symbol_table::configure_memory(void *param, valid_func valid, read_func read, write_func write)
r9535r9536
438438
439439
440440//-------------------------------------------------
441//  add - add a new UINT64 pointer symbol
441//  add - add a new UINT64 pointer symbol
442442//-------------------------------------------------
443443
444444void symbol_table::add(const char *name, read_write rw, UINT64 *ptr)
r9535r9536
449449
450450
451451//-------------------------------------------------
452//  add - add a new value symbol
452//  add - add a new value symbol
453453//-------------------------------------------------
454454
455455void symbol_table::add(const char *name, UINT64 value)
r9535r9536
460460
461461
462462//-------------------------------------------------
463//  add - add a new register symbol
463//  add - add a new register symbol
464464//-------------------------------------------------
465465
466466void symbol_table::add(const char *name, void *ref, getter_func getter, setter_func setter)
r9535r9536
471471
472472
473473//-------------------------------------------------
474//  add - add a new function symbol
474//  add - add a new function symbol
475475//-------------------------------------------------
476476
477477void symbol_table::add(const char *name, void *ref, int minparams, int maxparams, execute_func execute)
r9535r9536
482482
483483
484484//-------------------------------------------------
485//  value - return the value of a symbol
485//  find_deep - do a deep search for a symbol,
486//  looking in the parent if needed
486487//-------------------------------------------------
487488
488UINT64 symbol_table::value(const char *symbol)
489symbol_entry *symbol_table::find_deep(const char *symbol)
489490{
490491   // walk up the table hierarchy to find the owner
491492   for (symbol_table *symtable = this; symtable != NULL; symtable = symtable->m_parent)
492493   {
493494      symbol_entry *entry = symtable->find(symbol);
494495      if (entry != NULL)
495         return entry->value();
496         return entry;
496497   }
497   return 0;
498   return NULL;
498499}
499500
500501
501502//-------------------------------------------------
502//  set_value - set the value of a symbol
503//  value - return the value of a symbol
503504//-------------------------------------------------
504505
506UINT64 symbol_table::value(const char *symbol)
507{
508   symbol_entry *entry = find_deep(symbol);
509   return (entry != NULL) ? entry->value() : 0;
510}
511
512
513//-------------------------------------------------
514//  set_value - set the value of a symbol
515//-------------------------------------------------
516
505517void symbol_table::set_value(const char *symbol, UINT64 value)
506518{
507   // walk up the table hierarchy to find the owner
508   for (symbol_table *symtable = this; symtable != NULL; symtable = symtable->m_parent)
509   {
510      symbol_entry *entry = symtable->find(symbol);
511      if (entry != NULL)
512      {
513         entry->set_value(value);
514         return;
515      }
516   }
519   symbol_entry *entry = find_deep(symbol);
520   if (entry != NULL)
521      entry->set_value(value);
517522}
518523
519524
r9535r9536
588593   // if we got an expression parse it
589594   if (expression != NULL)
590595      parse(expression);
591   
596
592597   // if we get a result pointer, execute it
593598   if (result != NULL)
594599      *result = execute();
r9535r9536
951956   // if we have an 0x prefix, we must be a hex value
952957   if (buffer[0] == '0' && buffer[1] == 'x')
953958      return parse_number(token, &buffer[2], 16, expression_error::INVALID_NUMBER);
954   
959
955960   // if we have a # prefix, we must be a decimal value
956961   if (buffer[0] == '#')
957962      return parse_number(token, &buffer[1], 10, expression_error::INVALID_NUMBER);
r9535r9536
959964   // if we have a $ prefix, we are a hex value
960965   if (buffer[0] == '$')
961966      return parse_number(token, &buffer[1], 16, expression_error::INVALID_NUMBER);
962     
967
963968   // check for a symbol match
964   symbol_entry *symbol = m_symtable->find(buffer);
969   symbol_entry *symbol = m_symtable->find_deep(buffer);
965970   if (symbol != NULL)
966971   {
967972      token.configure_symbol(*symbol);
r9535r9536
974979      }
975980      return;
976981   }
977   
982
978983   // attempt to parse as a number in the default base
979984   parse_number(token, buffer, DEFAULT_BASE, expression_error::UNKNOWN_SYMBOL);
980985}
r9535r9536
10011006      int digit = ptr - numbers;
10021007      if (digit >= base)
10031008         break;
1004     
1009
10051010      // shift previous digits up and add in new digit
10061011      value = (value * (UINT64)base) + digit;
10071012      string++;
r9535r9536
12181223            if (peek == NULL)
12191224               break;
12201225
1221            // if we hit an execute function operator, or else a left parenthesis that is
1226            // if we hit an execute function operator, or else a left parenthesis that is
12221227            // already tagged, then tag us as well
12231228            if (peek->is_operator(TVL_EXECUTEFUNC) || (peek->is_operator(TVL_LPAREN) && peek->is_function_separator()))
12241229            {
r9535r9536
12471252   {
12481253      // pre-determine our next token
12491254      next = token->next();
1250   
1255
12511256      // if the character is an operand, append it to the result string
12521257      if (token->is_number() || token->is_symbol() || token->is_string())
12531258         m_tokenlist.append(*token);
r9535r9536
16811686//-------------------------------------------------
16821687
16831688parsed_expression::parse_token::parse_token(int offset)
1684   : m_next(NULL),
1689   : m_next(NULL),
16851690     m_type(INVALID),
16861691     m_offset(offset),
16871692     m_value(0),
r9535r9536
17211726   // set the value of a symbol
17221727   if (is_symbol())
17231728      m_symbol->set_value(value);
1724   
1729
17251730   // or set the value via the memory callbacks
17261731   else if (is_memory() && table != NULL)
17271732      table->set_memory_value(m_string, memory_space(), address(), 1 << memory_size(), value);
src/emu/cpu/dsp56k/inst.h
r9535r9536
925925   bool decode(const UINT16 word0, const UINT16 word1)
926926   {
927927      /* Note: This is a JJJF limited in the docs, but other opcodes sneak
928               in before cmp, so the same decode function can be used. */
928                 in before cmp, so the same decode function can be used. */
929929      decode_JJJF_table(BITSn(word0,0x07), BITSn(word0,0x08),
930930                    m_source, m_destination);
931931      return true;
r9535r9536
950950   bool decode(const UINT16 word0, const UINT16 word1)
951951   {
952952      /* Note: This is a JJJF limited in the docs, but other opcodes sneak
953               in before cmp, so the same decode function can be used. */
953                 in before cmp, so the same decode function can be used. */
954954      decode_JJJF_table(BITSn(word0,0x07), BITSn(word0,0x08),
955955                    m_source, m_destination);
956956      return true;
r9535r9536
26762676   bool decode(const UINT16 word0, const UINT16 word1)
26772677   {
26782678      /* There are inconsistencies with the S1 & S2 operand ordering in the docs,
2679         but since it's a multiply it doesn't matter */
2679           but since it's a multiply it doesn't matter */
26802680      decode_QQQF_table(BITSn(word0,0x07), BITSn(word0,0x08),
26812681                    m_source, m_source2, m_destination);
26822682
r9535r9536
27722772   bool decode(const UINT16 word0, const UINT16 word1)
27732773   {
27742774      /* There are inconsistencies with the S1 & S2 operand ordering in the docs,
2775         but since it's a multiply it doesn't matter */
2775           but since it's a multiply it doesn't matter */
27762776      decode_QQQF_table(BITSn(word0,0x07), BITSn(word0,0x08),
27772777                    m_source, m_source2, m_destination);
27782778
src/emu/sound/disc_mth.c
r9535r9536
23002300      //case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX:
23012301      //case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X:
23022302      //case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX:
2303      //   break;
2303      //  break;
23042304
23052305      case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_NOX:
23062306         out = 1;
r9535r9536
23082308
23092309      case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX:
23102310         /*
2311          * in0  1   ------
2312          *      0         -------
2313          *          ...^....^...
2314          *
2315          * in1  1   -------------
2316          *      0
2317          *          ...^....^...
2318          *
2319          * out  1   ------
2320          *      0         ------
2321          *          ...^....^...
2322          */
2311             * in0  1   ------
2312             *      0         -------
2313             *          ...^....^...
2314             *
2315             * in1  1   -------------
2316             *      0
2317             *          ...^....^...
2318             *
2319             * out  1   ------
2320             *      0         ------
2321             *          ...^....^...
2322             */
23232323         x_time = x_time0;
23242324         break;
23252325
23262326      case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_X:
23272327         /*
2328          * in0  1   -------------
2329          *      0
2330          *          ...^....^...
2331          *
2332          * in1  1   ------
2333          *      0         -------
2334          *          ...^....^...
2335          *
2336          * out  1   ------
2337          *      0         ------
2338          *          ...^....^...
2339          */
2328             * in0  1   -------------
2329             *      0
2330             *          ...^....^...
2331             *
2332             * in1  1   ------
2333             *      0         -------
2334             *          ...^....^...
2335             *
2336             * out  1   ------
2337             *      0         ------
2338             *          ...^....^...
2339             */
23402340         x_time = x_time1;
23412341         break;
23422342
23432343      case XTIME__IN0_0__IN1_0__IN0_X__IN1_X:
23442344         /*
2345          * in0  1   -----              -------
2346          *      0        --------             ------
2347          *          ...^....^...       ...^....^...
2348          *
2349          * in1  1   -------            -----
2350          *      0          ------           --------
2351          *          ...^....^...       ...^....^...
2352          *
2353          * out  1   -----              -----
2354          *      0        -------            -------
2355          *          ...^....^...       ...^....^...
2356          */
2345             * in0  1   -----              -------
2346             *      0        --------             ------
2347             *          ...^....^...       ...^....^...
2348             *
2349             * in1  1   -------            -----
2350             *      0          ------           --------
2351             *          ...^....^...       ...^....^...
2352             *
2353             * out  1   -----              -----
2354             *      0        -------            -------
2355             *          ...^....^...       ...^....^...
2356             */
23572357         // use x_time of input that went to 0 first/longer
23582358         if (x_time0 >= x_time1)
23592359            x_time = x_time0;
r9535r9536
23632363
23642364      case XTIME__IN0_0__IN1_1__IN0_X__IN1_X:
23652365         /*
2366          * in0  1   -------           -----
2367          *      0          -----           -------
2368          *          ...^....^...      ...^....^...
2369          *
2370          * in1  1        -------             -----
2371          *      0   -----             -------
2372          *          ...^....^...      ...^....^...
2373          *
2374          * out  1        --
2375          *      0   -----  -----      ------------
2376          *          ...^....^...      ...^....^...
2377          */
2366             * in0  1   -------           -----
2367             *      0          -----           -------
2368             *          ...^....^...      ...^....^...
2369             *
2370             * in1  1        -------             -----
2371             *      0   -----             -------
2372             *          ...^....^...      ...^....^...
2373             *
2374             * out  1        --
2375             *      0   -----  -----      ------------
2376             *          ...^....^...      ...^....^...
2377             */
23782378         // may have went high for a bit in this cycle
23792379         //if (x_time0 < x_time1)
2380         //   x_time = time1 - x_time0;
2380         //  x_time = time1 - x_time0;
23812381         break;
23822382
23832383      case XTIME__IN0_1__IN1_0__IN0_X__IN1_X:
23842384         /*
2385          * in0  1        -------             -----
2386          *      0   -----             -------
2387          *          ...^....^...      ...^....^...
2388          *
2389          * in1  1   -------           -----
2390          *      0          -----           -------
2391          *          ...^....^...      ...^....^...
2392          *
2393          * out  1        --
2394          *      0   -----  -----      ------------
2395          *          ...^....^...      ...^....^...
2396          */
2385             * in0  1        -------             -----
2386             *      0   -----             -------
2387             *          ...^....^...      ...^....^...
2388             *
2389             * in1  1   -------           -----
2390             *      0          -----           -------
2391             *          ...^....^...      ...^....^...
2392             *
2393             * out  1        --
2394             *      0   -----  -----      ------------
2395             *          ...^....^...      ...^....^...
2396             */
23972397         // may have went high for a bit in this cycle
23982398         //if (x_time0 > x_time1)
2399         //   x_time = x_time0 - x_time1;
2399         //  x_time = x_time0 - x_time1;
24002400         break;
24012401
24022402      case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X:
24032403         /*
2404          * in0  1   ------------
2405          *      0
2406          *          ...^....^...
2407          *
2408          * in1  1         ------
2409          *      0   ------
2410          *          ...^....^...
2411          *
2412          * out  1         ------
2413          *      0   ------
2414          *          ...^....^...
2415          */
2404             * in0  1   ------------
2405             *      0
2406             *          ...^....^...
2407             *
2408             * in1  1         ------
2409             *      0   ------
2410             *          ...^....^...
2411             *
2412             * out  1         ------
2413             *      0   ------
2414             *          ...^....^...
2415             */
24162416         out = 1;
24172417         x_time = x_time1;
24182418         break;
24192419
24202420      case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX:
24212421         /*
2422          * in1  0         ------
2423          *      0   ------
2424          *          ...^....^...
2425          *
2426          * in1  1   ------------
2427          *      0
2428          *          ...^....^...
2429          *
2430          * out  1         ------
2431          *      0   ------
2432          *          ...^....^...
2433          */
2422             * in1  0         ------
2423             *      0   ------
2424             *          ...^....^...
2425             *
2426             * in1  1   ------------
2427             *      0
2428             *          ...^....^...
2429             *
2430             * out  1         ------
2431             *      0   ------
2432             *          ...^....^...
2433             */
24342434         out = 1;
24352435         x_time = x_time0;
24362436         break;
24372437
24382438      case XTIME__IN0_1__IN1_1__IN0_X__IN1_X:
24392439         /*
2440          * in0  1         ------          --------
2441          *      0   ------            ----
2442          *          ...^....^...      ...^....^...
2443          *
2444          * in1  1       --------            ------
2445          *      0   ----              ------
2446          *          ...^....^...      ...^....^...
2447          *
2448          * out  1         ------            ------
2449          *      0   ------            ------
2450          *          ...^....^...      ...^....^...
2451          */
2440             * in0  1         ------          --------
2441             *      0   ------            ----
2442             *          ...^....^...      ...^....^...
2443             *
2444             * in1  1       --------            ------
2445             *      0   ----              ------
2446             *          ...^....^...      ...^....^...
2447             *
2448             * out  1         ------            ------
2449             *      0   ------            ------
2450             *          ...^....^...      ...^....^...
2451             */
24522452         out = 1;
24532453         if (x_time0 < x_time1)
24542454            x_time = x_time0;
r9535r9536
25202520      //case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX:
25212521      //case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X:
25222522      //case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX:
2523      //   break;
2523      //  break;
25242524
25252525      case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_NOX:
25262526         out = 0;
r9535r9536
25282528
25292529      case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_X:
25302530         /*
2531          * in0  1
2532          *      0   -------------
2533          *          ...^....^...
2534          *
2535          * in1  1   ------
2536          *      0         -------
2537          *          ...^....^...
2538          *
2539          * out  1   ------
2540          *      0         ------
2541          *          ...^....^...
2542          */
2531             * in0  1
2532             *      0   -------------
2533             *          ...^....^...
2534             *
2535             * in1  1   ------
2536             *      0         -------
2537             *          ...^....^...
2538             *
2539             * out  1   ------
2540             *      0         ------
2541             *          ...^....^...
2542             */
25432543         out = 0;
25442544         x_time = x_time1;
25452545         break;
25462546
25472547      case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX:
25482548         /*
2549          * in0  1   ------
2550          *      0         -------
2551          *          ...^....^...
2552          *
2553          * in1  1
2554          *      0   -------------
2555          *          ...^....^...
2556          *
2557          * out  1   ------
2558          *      0         ------
2559          *          ...^....^...
2560          */
2549             * in0  1   ------
2550             *      0         -------
2551             *          ...^....^...
2552             *
2553             * in1  1
2554             *      0   -------------
2555             *          ...^....^...
2556             *
2557             * out  1   ------
2558             *      0         ------
2559             *          ...^....^...
2560             */
25612561         out = 0;
25622562         x_time = x_time0;
25632563         break;
25642564
25652565      case XTIME__IN0_0__IN1_0__IN0_X__IN1_X:
25662566         /*
2567          * in0  1   -----              -------
2568          *      0        --------             ------
2569          *          ...^....^...       ...^....^...
2570          *
2571          * in1  1   -------            -----
2572          *      0          ------           --------
2573          *          ...^....^...       ...^....^...
2574          *
2575          * out  1   -------            -------
2576          *      0          -----              -----
2577          *          ...^....^...       ...^....^...
2578          */
2567             * in0  1   -----              -------
2568             *      0        --------             ------
2569             *          ...^....^...       ...^....^...
2570             *
2571             * in1  1   -------            -----
2572             *      0          ------           --------
2573             *          ...^....^...       ...^....^...
2574             *
2575             * out  1   -------            -------
2576             *      0          -----              -----
2577             *          ...^....^...       ...^....^...
2578             */
25792579         out = 0;
25802580         // use x_time of input that was 1 last/longer
25812581         // this means at 0 for less x_time
r9535r9536
25872587
25882588      case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X:
25892589         /*
2590          * in0  1
2591          *      0   ------------
2592          *          ...^....^...
2593          *
2594          * in1  1         ------
2595          *      0   ------
2596          *          ...^....^...
2597          *
2598          * out  1         ------
2599          *      0   ------
2600          *          ...^....^...
2601          */
2590             * in0  1
2591             *      0   ------------
2592             *          ...^....^...
2593             *
2594             * in1  1         ------
2595             *      0   ------
2596             *          ...^....^...
2597             *
2598             * out  1         ------
2599             *      0   ------
2600             *          ...^....^...
2601             */
26022602         x_time = x_time1;
26032603         break;
26042604
26052605      case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX:
26062606         /*
2607          * in0  1         ------
2608          *      0   ------
2609          *          ...^....^...
2610          *
2611          * in1  1
2612          *      0   ------------
2613          *          ...^....^...
2614          *
2615          * out  1         ------
2616          *      0   ------
2617          *          ...^....^...
2618          */
2607             * in0  1         ------
2608             *      0   ------
2609             *          ...^....^...
2610             *
2611             * in1  1
2612             *      0   ------------
2613             *          ...^....^...
2614             *
2615             * out  1         ------
2616             *      0   ------
2617             *          ...^....^...
2618             */
26192619         x_time = x_time0;
26202620         break;
26212621
26222622      case XTIME__IN0_0__IN1_1__IN0_X__IN1_X:
26232623         /*
2624          * in0  1   -------           -----
2625          *      0          -----           -------
2626          *          ...^....^...      ...^....^...
2627          *
2628          * in1  1        -------             -----
2629          *      0   -----             -------
2630          *          ...^....^...      ...^....^...
2631          *
2632          * out  1   ------------      -----  -----
2633          *      0                          --
2634          *          ...^....^...      ...^....^...
2635          */
2624             * in0  1   -------           -----
2625             *      0          -----           -------
2626             *          ...^....^...      ...^....^...
2627             *
2628             * in1  1        -------             -----
2629             *      0   -----             -------
2630             *          ...^....^...      ...^....^...
2631             *
2632             * out  1   ------------      -----  -----
2633             *      0                          --
2634             *          ...^....^...      ...^....^...
2635             */
26362636         // if (x_time0 > x_time1)
26372637            /* Not sure if it is better to use 1
2638             * or the total energy which would smear the switch points together.
2639             * Let's try just using 1 */
2638                 * or the total energy which would smear the switch points together.
2639                 * Let's try just using 1 */
26402640            //x_time = xtime_0 - xtime_1;
26412641         break;
26422642
26432643      case XTIME__IN0_1__IN1_0__IN0_X__IN1_X:
26442644         /*
2645          * in0  1        -------             -----
2646          *      0   -----             -------
2647          *          ...^....^...      ...^....^...
2648          *
2649          * in1  1   -------           -----
2650          *      0          -----           -------
2651          *          ...^....^...      ...^....^...
2652          *
2653          * out  1   ------------      -----  -----
2654          *      0                          --
2655          *          ...^....^...      ...^....^...
2656          */
2645             * in0  1        -------             -----
2646             *      0   -----             -------
2647             *          ...^....^...      ...^....^...
2648             *
2649             * in1  1   -------           -----
2650             *      0          -----           -------
2651             *          ...^....^...      ...^....^...
2652             *
2653             * out  1   ------------      -----  -----
2654             *      0                          --
2655             *          ...^....^...      ...^....^...
2656             */
26572657         //if (x_time0 < x_time1)
26582658            /* Not sure if it is better to use 1
2659             * or the total energy which would smear the switch points together.
2660             * Let's try just using 1 */
2659                 * or the total energy which would smear the switch points together.
2660                 * Let's try just using 1 */
26612661            //x_time = xtime_1 - xtime_0;
26622662         break;
26632663
26642664      case XTIME__IN0_1__IN1_1__IN0_X__IN1_X:
26652665         /*
2666          * in0  1         ------          --------
2667          *      0   ------            ----
2668          *          ...^....^...      ...^....^...
2669          *
2670          * in1  1       --------            ------
2671          *      0   ----              ------
2672          *          ...^....^...      ...^....^...
2673          *
2674          * out  1       --------          --------
2675          *      0   ----              ----
2676          *          ...^....^...      ...^....^...
2677          */
2666             * in0  1         ------          --------
2667             *      0   ------            ----
2668             *          ...^....^...      ...^....^...
2669             *
2670             * in1  1       --------            ------
2671             *      0   ----              ------
2672             *          ...^....^...      ...^....^...
2673             *
2674             * out  1       --------          --------
2675             *      0   ----              ----
2676             *          ...^....^...      ...^....^...
2677             */
26782678         if (x_time0 > x_time1)
26792679            x_time = x_time0;
26802680         else
r9535r9536
27402740      // these are all 1
27412741      //case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_NOX:
27422742      //case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_NOX:
2743      //   break;
2743      //  break;
27442744
27452745      case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_NOX:
27462746      case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_NOX:
r9535r9536
27492749
27502750      case XTIME__IN0_1__IN1_0__IN0_X__IN1_NOX:
27512751         /*
2752          * in0  1         ------
2753          *      0   ------
2754          *          ...^....^...
2755          *
2756          * in1  1
2757          *      0   ------------
2758          *          ...^....^...
2759          *
2760          * out  1         ------
2761          *      0   ------
2762          *          ...^....^...
2763          */
2752             * in0  1         ------
2753             *      0   ------
2754             *          ...^....^...
2755             *
2756             * in1  1
2757             *      0   ------------
2758             *          ...^....^...
2759             *
2760             * out  1         ------
2761             *      0   ------
2762             *          ...^....^...
2763             */
27642764      case XTIME__IN0_0__IN1_1__IN0_X__IN1_NOX:
27652765         /*
2766          * in0  1   ------
2767          *      0         -------
2768          *          ...^....^...
2769          *
2770          * in1  1   -------------
2771          *      0
2772          *          ...^....^...
2773          *
2774          * out  1         ------
2775          *      0   ------
2776          *          ...^....^...
2777          */
2766             * in0  1   ------
2767             *      0         -------
2768             *          ...^....^...
2769             *
2770             * in1  1   -------------
2771             *      0
2772             *          ...^....^...
2773             *
2774             * out  1         ------
2775             *      0   ------
2776             *          ...^....^...
2777             */
27782778         x_time = x_time0;
27792779         break;
27802780
27812781      case XTIME__IN0_0__IN1_1__IN0_NOX__IN1_X:
27822782         /*
2783          * in0  1
2784          *      0   ------------
2785          *          ...^....^...
2786          *
2787          * in1  1         ------
2788          *      0   ------
2789          *          ...^....^...
2790          *
2791          * out  1         ------
2792          *      0   ------
2793          *          ...^....^...
2794          */
2783             * in0  1
2784             *      0   ------------
2785             *          ...^....^...
2786             *
2787             * in1  1         ------
2788             *      0   ------
2789             *          ...^....^...
2790             *
2791             * out  1         ------
2792             *      0   ------
2793             *          ...^....^...
2794             */
27952795      case XTIME__IN0_1__IN1_0__IN0_NOX__IN1_X:
27962796         /*
2797          * in0  1   -------------
2798          *      0
2799          *          ...^....^...
2800          *
2801          * in1  1   ------
2802          *      0         -------
2803          *          ...^....^...
2804          *
2805          * out  1         ------
2806          *      0   ------
2807          *          ...^....^...
2808          */
2797             * in0  1   -------------
2798             *      0
2799             *          ...^....^...
2800             *
2801             * in1  1   ------
2802             *      0         -------
2803             *          ...^....^...
2804             *
2805             * out  1         ------
2806             *      0   ------
2807             *          ...^....^...
2808             */
28092809         x_time = x_time1;
28102810         break;
28112811
28122812      case XTIME__IN0_0__IN1_0__IN0_X__IN1_NOX:
28132813         /*
2814          * in0  1   ------
2815          *      0         ------
2816          *          ...^....^...
2817          *
2818          * in1  1
2819          *      0   ------------
2820          *          ...^....^...
2821          *
2822          * out  1   ------
2823          *      0         ------
2824          *          ...^....^...
2825          */
2814             * in0  1   ------
2815             *      0         ------
2816             *          ...^....^...
2817             *
2818             * in1  1
2819             *      0   ------------
2820             *          ...^....^...
2821             *
2822             * out  1   ------
2823             *      0         ------
2824             *          ...^....^...
2825             */
28262826      case XTIME__IN0_1__IN1_1__IN0_X__IN1_NOX:
28272827         /*
2828          * in1  0         ------
2829          *      0   ------
2830          *          ...^....^...
2831          *
2832          * in1  1   ------------
2833          *      0
2834          *          ...^....^...
2835          *
2836          * out  1   ------
2837          *      0         ------
2838          *          ...^....^...
2839          */
2828             * in1  0         ------
2829             *      0   ------
2830             *          ...^....^...
2831             *
2832             * in1  1   ------------
2833             *      0
2834             *          ...^....^...
2835             *
2836             * out  1   ------
2837             *      0         ------
2838             *          ...^....^...
2839             */
28402840         out = 0;
28412841         x_time = x_time0;
28422842         break;
28432843
28442844      case XTIME__IN0_0__IN1_0__IN0_NOX__IN1_X:
28452845         /*
2846          * in0  1
2847          *      0   ------------
2848          *          ...^....^...
2849          *
2850          * in1  1   ------
2851          *      0         ------
2852          *          ...^....^...
2853          *
2854          * out  1   ------
2855          *      0         ------
2856          *          ...^....^...
2857          */
2846             * in0  1
2847             *      0   ------------
2848             *          ...^....^...
2849             *
2850             * in1  1   ------
2851             *      0         ------
2852             *          ...^....^...
2853             *
2854             * out  1   ------
2855             *      0         ------
2856             *          ...^....^...
2857             */
28582858      case XTIME__IN0_1__IN1_1__IN0_NOX__IN1_X:
28592859         /*
2860          * in0  1   ------------
2861          *      0
2862          *          ...^....^...
2863          *
2864          * in1  1         ------
2865          *      0   ------
2866          *          ...^....^...
2867          *
2868          * out  1   ------
2869          *      0         ------
2870          *          ...^....^...
2871          */
2860             * in0  1   ------------
2861             *      0
2862             *          ...^....^...
2863             *
2864             * in1  1         ------
2865             *      0   ------
2866             *          ...^....^...
2867             *
2868             * out  1   ------
2869             *      0         ------
2870             *          ...^....^...
2871             */
28722872         out = 0;
28732873         x_time = x_time1;
28742874         break;
28752875
28762876      case XTIME__IN0_0__IN1_0__IN0_X__IN1_X:
28772877         /*
2878          * in0  1   -----              -------
2879          *      0        -------              -----
2880          *          ...^....^...       ...^....^...
2881          *
2882          * in1  1   -------            -----
2883          *      0          -----            -------
2884          *          ...^....^...       ...^....^...
2885          *
2886          * out  1        --                 --
2887          *      0   -----  -----       -----  -----
2888          *          ...^....^...       ...^....^...
2889          */
2878             * in0  1   -----              -------
2879             *      0        -------              -----
2880             *          ...^....^...       ...^....^...
2881             *
2882             * in1  1   -------            -----
2883             *      0          -----            -------
2884             *          ...^....^...       ...^....^...
2885             *
2886             * out  1        --                 --
2887             *      0   -----  -----       -----  -----
2888             *          ...^....^...       ...^....^...
2889             */
28902890      case XTIME__IN0_1__IN1_1__IN0_X__IN1_X:
28912891         /*
2892          * in0  1         ------          --------
2893          *      0   ------            ----
2894          *          ...^....^...      ...^....^...
2895          *
2896          * in1  1       --------            ------
2897          *      0   ----              ------
2898          *          ...^....^...      ...^....^...
2899          *
2900          * out  1       --                --
2901          *      0   ----  ------      ----  ------
2902          *          ...^....^...      ...^....^...
2903          */
2892             * in0  1         ------          --------
2893             *      0   ------            ----
2894             *          ...^....^...      ...^....^...
2895             *
2896             * in1  1       --------            ------
2897             *      0   ----              ------
2898             *          ...^....^...      ...^....^...
2899             *
2900             * out  1       --                --
2901             *      0   ----  ------      ----  ------
2902             *          ...^....^...      ...^....^...
2903             */
29042904         out = 0;
29052905         /* Not sure if it is better to use 0
2906          * or the total energy which would smear the switch points together.
2907          * Let's try just using 0 */
2906             * or the total energy which would smear the switch points together.
2907             * Let's try just using 0 */
29082908         // x_time = abs(x_time0 - x_time1);
29092909         break;
29102910
29112911      case XTIME__IN0_0__IN1_1__IN0_X__IN1_X:
29122912         /*
2913          * in0  1   -------           -----
2914          *      0          -----           -------
2915          *          ...^....^...      ...^....^...
2916          *
2917          * in1  1        -------             -----
2918          *      0   -----             -------
2919          *          ...^....^...      ...^....^...
2920          *
2921          * out  1   -----  -----      -----  -----
2922          *      0        --                --
2923          *          ...^....^...      ...^....^...
2924          */
2913             * in0  1   -------           -----
2914             *      0          -----           -------
2915             *          ...^....^...      ...^....^...
2916             *
2917             * in1  1        -------             -----
2918             *      0   -----             -------
2919             *          ...^....^...      ...^....^...
2920             *
2921             * out  1   -----  -----      -----  -----
2922             *      0        --                --
2923             *          ...^....^...      ...^....^...
2924             */
29252925      case XTIME__IN0_1__IN1_0__IN0_X__IN1_X:
29262926         /*
2927          * in0  1        -------             -----
2928          *      0   -----             -------
2929          *          ...^....^...      ...^....^...
2930          *
2931          * in1  1   -------           -----
2932          *      0          -----           -------
2933          *          ...^....^...      ...^....^...
2934          *
2935          * out  1   -----  -----      -----  -----
2936          *      0        --                --
2937          *          ...^....^...      ...^....^...
2938          */
2927             * in0  1        -------             -----
2928             *      0   -----             -------
2929             *          ...^....^...      ...^....^...
2930             *
2931             * in1  1   -------           -----
2932             *      0          -----           -------
2933             *          ...^....^...      ...^....^...
2934             *
2935             * out  1   -----  -----      -----  -----
2936             *      0        --                --
2937             *          ...^....^...      ...^....^...
2938             */
29392939         /* Not sure if it is better to use 1
2940          * or the total energy which would smear the switch points together.
2941          * Let's try just using 1 */
2940             * or the total energy which would smear the switch points together.
2941             * Let's try just using 1 */
29422942         // x_time = 1.0 - abs(x_time0 - x_time1);
29432943         break;
29442944}
src/emu/sound/disc_dev.c
r9535r9536
547547      if (UNEXPECTED(DSD_555_MSTBL__C == 0))
548548      {
549549         /* The trigger voltage goes high because the cap circuit is open.
550          * and the cap discharges */
550            * and the cap discharges */
551551         v_cap = info->v_pos;   /* needed for cap output type */
552552         context->cap_voltage = 0;
553553
src/emu/sound/asc.c
r9535r9536
44
55    Apple Sound Chip (ASC) 344S0063
66    Enhanced Apple Sound Chip (EASC) 343S1063
7   
7
88    Emulation by R. Belmont
99
1010    Registers:
r9535r9536
212212               m_fifo_a_rdptr &= 0x3ff;
213213               m_fifo_cap_a--;
214214            }
215           
215
216216            if (m_fifo_cap_b)
217217            {
218218               m_fifo_b_rdptr++;
r9535r9536
283283            INT8 smpl;
284284
285285            mixL = mixR = 0;
286         
286
287287            // update channel pointers
288288            for (ch = 0; ch < 4; ch++)
289289            {
r9535r9536
309309         break;
310310   }
311311
312//   printf("rdA %04x rdB %04x wrA %04x wrB %04x (capA %04x B %04x)\n", m_fifo_a_rdptr, m_fifo_b_rdptr, m_fifo_a_wrptr, m_fifo_b_wrptr, m_fifo_cap_a, m_fifo_cap_b);
312//  printf("rdA %04x rdB %04x wrA %04x wrB %04x (capA %04x B %04x)\n", m_fifo_a_rdptr, m_fifo_b_rdptr, m_fifo_a_wrptr, m_fifo_b_wrptr, m_fifo_cap_a, m_fifo_cap_b);
313313}
314314
315315//-------------------------------------------------
r9535r9536
320320{
321321   UINT8 rv;
322322
323//   printf("ASC: read at %x\n", offset);
323//  printf("ASC: read at %x\n", offset);
324324
325325   // not sure what actually happens when the CPU reads the FIFO...
326326   if (offset < 0x400)
r9535r9536
394394               rv = m_regs[R_FIFOSTAT-0x800];
395395            }
396396
397//            printf("Read FIFO stat = %02x\n", rv);
397//              printf("Read FIFO stat = %02x\n", rv);
398398
399399            // reading this register clears all bits
400400            m_regs[R_FIFOSTAT-0x800] = 0;
r9535r9536
454454
455455WRITE8_MEMBER( asc_device::write )
456456{
457//   printf("ASC: write %02x to %x\n", data, offset);
457//  printf("ASC: write %02x to %x\n", data, offset);
458458
459459   if (offset < 0x400)
460460   {
r9535r9536
488488         }
489489
490490         m_fifo_b_wrptr &= 0x3ff;
491      }   
491      }
492492      else
493493      {
494494         m_fifo_b[offset-0x400] = data;
r9535r9536
496496   }
497497   else
498498   {
499//      printf("ASC: %02x to %x (was %x)\n", data, offset, m_regs[offset-0x800]);
499//      printf("ASC: %02x to %x (was %x)\n", data, offset, m_regs[offset-0x800]);
500500
501501      stream_update(m_stream);
502502      switch (offset)
r9535r9536
531531            break;
532532
533533         case R_WTCONTROL:
534//            printf("One-shot wavetable %02x\n", data);
534//              printf("One-shot wavetable %02x\n", data);
535535            break;
536536
537         case 0x811:
537         case 0x811:
538538            m_phase[0] &= 0x00ffff;
539539            m_phase[0] |= data<<16;
540540            break;
r9535r9536
549549            m_phase[0] |= data;
550550            break;
551551
552         case 0x815:
552         case 0x815:
553553            m_incr[0] &= 0x00ffff;
554554            m_incr[0] |= data<<16;
555555            break;
r9535r9536
564564            m_incr[0] |= data;
565565            break;
566566
567         case 0x819:
567         case 0x819:
568568            m_phase[1] &= 0x00ffff;
569569            m_phase[1] |= data<<16;
570570            break;
r9535r9536
579579            m_phase[1] |= data;
580580            break;
581581
582         case 0x81d:
582         case 0x81d:
583583            m_incr[1] &= 0x00ffff;
584584            m_incr[1] |= data<<16;
585585            break;
r9535r9536
594594            m_incr[1] |= data;
595595            break;
596596
597         case 0x821:
597         case 0x821:
598598            m_phase[2] &= 0x00ffff;
599599            m_phase[2] |= data<<16;
600600            break;
r9535r9536
609609            m_phase[2] |= data;
610610            break;
611611
612         case 0x825:
612         case 0x825:
613613            m_incr[2] &= 0x00ffff;
614614            m_incr[2] |= data<<16;
615615            break;
r9535r9536
624624            m_incr[2] |= data;
625625            break;
626626
627         case 0x829:
627         case 0x829:
628628            m_phase[3] &= 0x00ffff;
629629            m_phase[3] |= data<<16;
630630            break;
r9535r9536
639639            m_phase[3] |= data;
640640            break;
641641
642         case 0x82d:
642         case 0x82d:
643643            m_incr[3] &= 0x00ffff;
644644            m_incr[3] |= data<<16;
645645            break;
src/emu/render.h
r9535r9536
741741   // textures
742742   render_texture *texture_alloc(texture_scaler_func scaler = NULL, void *param = NULL);
743743   void texture_free(render_texture *texture);
744   
744
745745   // fonts
746746   render_font *font_alloc(const char *filename = NULL);
747747   void font_free(render_font *font);
src/emu/cheat.c
r9535r9536
173173   m_minval = number_and_format(xml_get_attribute_int(&paramnode, "min", 0), xml_get_attribute_int_format(&paramnode, "min"));
174174   m_maxval = number_and_format(xml_get_attribute_int(&paramnode, "max", 0), xml_get_attribute_int_format(&paramnode, "max"));
175175   m_stepval = number_and_format(xml_get_attribute_int(&paramnode, "step", 1), xml_get_attribute_int_format(&paramnode, "step"));
176   
176
177177   // iterate over items
178178   for (xml_data_node *itemnode = xml_get_sibling(paramnode.child, "item"); itemnode != NULL; itemnode = xml_get_sibling(itemnode->next, "item"))
179179   {
r9535r9536
184184      // check for non-existant value
185185      if (xml_get_attribute(itemnode, "value") == NULL)
186186         throw emu_fatalerror("%s.xml(%d): item is value\n", filename, itemnode->line);
187     
187
188188      // extract the parameters
189189      UINT64 value = xml_get_attribute_int(itemnode, "value", 0);
190190      int format = xml_get_attribute_int_format(itemnode, "value");
191     
191
192192      // allocate and append a new item
193193      item &curitem = m_itemlist.append(*auto_alloc(&manager.machine(), item(itemnode->value, value, format)));
194194
r9535r9536
210210   // are we a value cheat?
211211   if (!has_itemlist())
212212      m_curtext.format("%d (0x%X)", UINT32(m_value), UINT32(m_value));
213   
213
214214   // if not, we're an item cheat
215215   else
216216   {
r9535r9536
280280bool cheat_parameter::set_prev_state()
281281{
282282   UINT64 origvalue = m_value;
283   
283
284284   // are we a value cheat?
285285   if (!has_itemlist())
286286   {
r9535r9536
289289      else
290290         m_value -= m_stepval;
291291   }
292   
292
293293   // if not, we're an item cheat
294294   else
295295   {
r9535r9536
300300      if (previtem != NULL)
301301         m_value = previtem->value();
302302   }
303   
303
304304   return (m_value != origvalue);
305305}
306306
r9535r9536
312312bool cheat_parameter::set_next_state()
313313{
314314   UINT64 origvalue = m_value;
315   
315
316316   // are we a value cheat?
317317   if (!has_itemlist())
318318   {
r9535r9536
321321      else
322322         m_value += m_stepval;
323323   }
324   
324
325325   // if not, we're an item cheat
326326   else
327327   {
r9535r9536
332332      if (curitem != NULL && curitem->next() != NULL)
333333         m_value = curitem->next()->value();
334334   }
335   
335
336336   return (m_value != origvalue);
337337}
338338
r9535r9536
477477         for (xml_data_node *argnode = xml_get_sibling(entrynode.child, "argument"); argnode != NULL; argnode = xml_get_sibling(argnode->next, "argument"))
478478         {
479479            output_argument &curarg = m_arglist.append(*auto_alloc(&manager.machine(), output_argument(manager, symbols, filename, *argnode)));
480           
480
481481            // verify we didn't overrun the argument count
482482            totalargs += curarg.count();
483483            if (totalargs > MAX_ARGUMENTS)
r9535r9536
887887
888888
889889//-------------------------------------------------
890//  select_default_state - select the default
890//  select_default_state - select the default
891891//  state for a cheat, or activate a oneshot cheat
892892//-------------------------------------------------
893893
r9535r9536
908908
909909
910910//-------------------------------------------------
911//  select_previous_state - select the previous
911//  select_previous_state - select the previous
912912//  state for a cheat
913913//-------------------------------------------------
914914
r9535r9536
947947
948948
949949//-------------------------------------------------
950//  select_next_state - select the next state for
950//  select_next_state - select the next state for
951951//  a cheat
952952//-------------------------------------------------
953953
r9535r9536
972972         changed = set_state(SCRIPT_STATE_RUN);
973973         m_parameter->set_minimum_state();
974974      }
975     
975
976976      // otherwise, switch to the next state
977977      else
978978         changed = m_parameter->set_next_state();
979     
979
980980      // if we changed, signal a state change
981981      if (changed && !is_oneshot_parameter())
982982         execute_change_script();
r9535r9536
986986
987987
988988//-------------------------------------------------
989//  menu_text - return the text needed to display
989//  menu_text - return the text needed to display
990990//  this cheat in a menu item
991991//-------------------------------------------------
992992
r9535r9536
11181118
11191119
11201120//-------------------------------------------------
1121//  set_enable - globally enable or disable the
1121//  set_enable - globally enable or disable the
11221122//  cheat engine
11231123//-------------------------------------------------
11241124
r9535r9536
11651165
11661166   // free everything
11671167   m_cheatlist.reset();
1168   
1168
11691169   // reset state
11701170   m_framecount = 0;
11711171   m_numlines = 0;
r9535r9536
12131213   // if that failed, return nothing
12141214   if (filerr != FILERR_NONE)
12151215      return false;
1216     
1216
12171217   // wrap the rest of catch errors
12181218   try
12191219   {
r9535r9536
12311231      mame_fclose(cheatfile);
12321232      return true;
12331233   }
1234   
1234
12351235   // catch errors and cleanup
12361236   catch (emu_fatalerror &err)
12371237   {
r9535r9536
12441244
12451245
12461246//-------------------------------------------------
1247//  render_text - called by the UI system to
1247//  render_text - called by the UI system to
12481248//  render text
12491249//-------------------------------------------------
12501250
r9535r9536
12651265
12661266//-------------------------------------------------
12671267//  get_output_astring - return a reference to
1268//  the given row's string, and set the
1268//  the given row's string, and set the
12691269//  justification
12701270//-------------------------------------------------
12711271
r9535r9536
12771277
12781278   // remember the last request
12791279   m_lastline = row;
1280   
1280
12811281   // invert if negative
12821282   row = (row < 0) ? m_numlines + row : row - 1;
1283   
1283
12841284   // clamp within range
12851285   row = MAX(row, 0);
12861286   row = MIN(row, m_numlines - 1);
r9535r9536
13981398
13991399
14001400//-------------------------------------------------
1401//  load_cheats - load a cheat file into memory
1401//  load_cheats - load a cheat file into memory
14021402//  and create the cheat entry list
14031403//-------------------------------------------------
14041404
r9535r9536
14671467         filerr = mame_fclose_and_open_next(&cheatfile, fname, OPEN_FLAG_READ);
14681468      }
14691469   }
1470   
1470
14711471   // handle errors cleanly
14721472   catch (emu_fatalerror &err)
14731473   {
src/emu/cheat.h
r9535r9536
8383   // pass-through to look like a regular number
8484   operator UINT64 &() { return m_value; }
8585   operator const UINT64 &() const { return m_value; }
86   
86
8787   // format the number according to its format
8888   const char *format(astring &string) const;
8989
r9535r9536
116116
117117   // actions
118118   void save(mame_file &cheatfile) const;
119     
119
120120private:
121121   // a single item in a parameter item list
122122   class item
123123   {
124124      friend class simple_list<item>;
125     
125
126126   public:
127127      // construction/destruction
128128      item(const char *text, UINT64 value, int valformat)
r9535r9536
130130           m_text(text),
131131           m_value(value, valformat) { }
132132
133      // getters   
133      // getters
134134      item *next() const { return m_next; }
135135      const number_and_format &value() const { return m_value; }
136136      const char *text() const { return m_text; }
137     
137
138138   private:
139139      // internal state
140140      item *            m_next;                     // next item in list
r9535r9536
148148   number_and_format   m_stepval;                  // step value
149149   UINT64            m_value;                  // live value of the parameter
150150   astring            m_curtext;                  // holding for a value string
151   simple_list<item>    m_itemlist;                  // list of items
151   simple_list<item>   m_itemlist;                  // list of items
152152};
153153
154154
r9535r9536
204204
205205         // actions
206206         void save(mame_file &cheatfile) const;
207         
207
208208      private:
209209         // internal state
210210         output_argument *   m_next;                     // link to next argument
211         parsed_expression    m_expression;               // expression for argument
211         parsed_expression   m_expression;               // expression for argument
212212         UINT64            m_count;                  // number of repetitions
213213      };
214214
r9535r9536
217217
218218      // internal state
219219      script_entry *      m_next;                     // link to next entry
220      parsed_expression    m_condition;               // condition under which this is executed
221      parsed_expression    m_expression;               // expression to execute
220      parsed_expression   m_condition;               // condition under which this is executed
221      parsed_expression   m_expression;               // expression to execute
222222      astring            m_format;                  // string format to print
223223      simple_list<output_argument> m_arglist;            // list of arguments
224224      INT8            m_line;                     // which line to print on
r9535r9536
227227      // constants
228228      static const int MAX_ARGUMENTS = 32;
229229   };
230   
230
231231   // internal state
232232   simple_list<script_entry> m_entrylist;            // list of actions to perform
233233   script_state      m_state;                  // which state this script is for
r9535r9536
240240class cheat_entry
241241{
242242   friend class simple_list<cheat_entry>;
243   
243
244244public:
245245   // construction/destruction
246246   cheat_entry(cheat_manager &manager, symbol_table &globaltable, const char *filename, xml_data_node &cheatnode);
247247   ~cheat_entry();
248   
248
249249   // getters
250250   cheat_manager &manager() const { return m_manager; }
251251   cheat_entry *next() const { return m_next; }
r9535r9536
283283   // UI helpers
284284   void menu_text(astring &description, astring &state, UINT32 &flags);
285285
286   // per-frame update   
286   // per-frame update
287287   void frame_update() { if (m_state == SCRIPT_STATE_RUN) execute_run_script(); }
288288
289289private:
r9535r9536
319319public:
320320   // construction/destruction
321321   cheat_manager(running_machine &machine);
322   
322
323323   // getters
324324   running_machine &machine() const { return m_machine; }
325325   bool enabled() const { return !m_disabled; }
326326   cheat_entry *first() const { return m_cheatlist.first(); }
327   
327
328328   // setters
329329   void set_enable(bool enable = true);
330   
330
331331   // actions
332332   void reload();
333333   bool save_all(const char *filename);
334334   void render_text(render_container &container);
335   
335
336336   // output helpers
337337   astring &get_output_astring(int row, int justify);
338338
r9535r9536
346346   static void frame_update_static(running_machine &machine);
347347   void frame_update();
348348   void load_cheats(const char *filename);
349   
349
350350   // internal state
351351   running_machine &   m_machine;                     // reference to our machine
352352   simple_list<cheat_entry> m_cheatlist;               // cheat list
r9535r9536
357357   INT8            m_lastline;                     // last line used for output
358358   bool            m_disabled;                     // true if the cheat engine is disabled
359359   symbol_table      m_symtable;                     // global symbol table
360   
360
361361   // constants
362362   static const int CHEAT_VERSION = 1;
363363};
src/emu/rendfont.c
r9535r9536
7979inline render_font::glyph &render_font::get_char(unicode_char chnum)
8080{
8181   static glyph dummy_glyph;
82   
82
8383   // grab the table; if none, return the dummy character
8484   glyph *glyphtable = m_glyphs[chnum / 256];
8585   if (glyphtable == NULL && m_format == FF_OSD)
r9535r9536
117117     m_osdfont(NULL)
118118{
119119   memset(m_glyphs, 0, sizeof(m_glyphs));
120   
120
121121   // if this is an OSD font, we're done
122122   if (filename != NULL)
123123   {
r9535r9536
129129         return;
130130      }
131131   }
132   
132
133133   // if the filename is 'default' default to 'ui.bdf' for backwards compatibility
134134   if (filename != NULL && mame_stricmp(filename, "default") == 0)
135135      filename = "ui.bdf";
r9535r9536
173173
174174   // free the raw data and the size itself
175175   auto_free(&m_manager.machine(), m_rawdata);
176   
176
177177   // release the OSD font
178178   if (m_osdfont != NULL)
179179      m_manager.machine().osd().font_close(m_osdfont);
r9535r9536
181181
182182
183183//-------------------------------------------------
184//  char_expand - expand the raw data for a
184//  char_expand - expand the raw data for a
185185//  character into a bitmap
186186//-------------------------------------------------
187187
r9535r9536
193193      // we set bmwidth to -1 if we've previously queried and failed
194194      if (gl.bmwidth == -1)
195195         return;
196     
196
197197      // attempt to get the font bitmap; if we fail, set bmwidth to -1
198198      gl.bitmap = m_manager.machine().osd().font_get_bitmap(m_osdfont, chnum, gl.width, gl.xoffs, gl.yoffs);
199199      if (gl.bitmap == NULL)
r9535r9536
206206      gl.bmwidth = gl.bitmap->width;
207207      gl.bmheight = gl.bitmap->height;
208208   }
209   
209
210210   // other formats need to parse their data
211211   else
212212   {
r9535r9536
282282
283283
284284//-------------------------------------------------
285//  get_char_texture_and_bounds - return the
286//  texture for a character and compute the
285//  get_char_texture_and_bounds - return the
286//  texture for a character and compute the
287287//  bounds of the final bitmap
288288//-------------------------------------------------
289289
r9535r9536
351351
352352
353353//-------------------------------------------------
354//  char_width - return the width of a character
354//  char_width - return the width of a character
355355//  at the given height
356356//-------------------------------------------------
357357
r9535r9536
362362
363363
364364//-------------------------------------------------
365//  string_width - return the width of a string
365//  string_width - return the width of a string
366366//  at the given height
367367//-------------------------------------------------
368368
r9535r9536
379379
380380
381381//-------------------------------------------------
382//  utf8string_width - return the width of a
382//  utf8string_width - return the width of a
383383//  UTF8-encoded string at the given height
384384//-------------------------------------------------
385385
r9535r9536
406406
407407
408408//-------------------------------------------------
409//  load_cached_bdf - attempt to load a cached
410//  version of the BDF font 'filename'; if that
411//  fails, fall back on the regular BDF loader
409//  load_cached_bdf - attempt to load a cached
410//  version of the BDF font 'filename'; if that
411//  fails, fall back on the regular BDF loader
412412//  and create a new cached version
413413//-------------------------------------------------
414414
r9535r9536
431431      mame_fclose(file);
432432      return false;
433433   }
434   
434
435435   // has the chunk
436436   UINT32 hash = crc32(0, (const UINT8 *)data, bytes) ^ (UINT32)m_rawsize;
437437
r9535r9536
456456         return true;
457457      }
458458   }
459   
459
460460   // read in the rest of the font
461461   if (bytes < m_rawsize)
462462   {
src/emu/rendfont.h
r9535r9536
5555{
5656   friend class render_manager;
5757   friend resource_pool_object<render_font>::~resource_pool_object();
58   
58
5959   // construction/destruction
6060   render_font(render_manager &manager, const char *filename);
6161   virtual ~render_font();
r9535r9536
6363public:
6464   // getters
6565   render_manager &manager() const { return m_manager; }
66   
66
6767   // size queries
6868   INT32 pixel_height() const { return m_height; }
6969   float char_width(float height, float aspect, unicode_char ch);
src/lib/util/unicode.h
r9535r9536
6868#define UTF8_MULTIPLY      "\xc3\x97"         /* multiplication symbol */
6969#define UTF8_DEGREES      "\xc2\xb0"         /* degrees symbol */
7070
71#define a_RING             "\xc3\xa5"         /* small a with a ring */
72#define a_UMLAUT          "\xc3\xa4"         /* small a with an umlaut */
73#define o_UMLAUT          "\xc3\xb6"         /* small o with an umlaut */
74#define u_UMLAUT          "\xc3\xbc"         /* small u with an umlaut */
71#define a_RING            "\xc3\xa5"         /* small a with a ring */
72#define a_UMLAUT         "\xc3\xa4"         /* small a with an umlaut */
73#define o_UMLAUT         "\xc3\xb6"         /* small o with an umlaut */
74#define u_UMLAUT         "\xc3\xbc"         /* small u with an umlaut */
7575#define e_ACUTE          "\xc3\xa9"         /* small e with an acute */
7676
77#define A_RING             "\xc3\x85"         /* capital A with a ring */
78#define A_UMLAUT          "\xc3\x84"         /* capital A with an umlaut */
79#define O_UMLAUT          "\xc3\x96"         /* capital O with an umlaut */
80#define U_UMLAUT          "\xc3\x9c"         /* capital U with an umlaut */
77#define A_RING            "\xc3\x85"         /* capital A with a ring */
78#define A_UMLAUT         "\xc3\x84"         /* capital A with an umlaut */
79#define O_UMLAUT         "\xc3\x96"         /* capital O with an umlaut */
80#define U_UMLAUT         "\xc3\x9c"         /* capital U with an umlaut */
8181#define E_ACUTE          "\xc3\x89"         /* capital E with an acute */
8282
8383#define UTF8_LEFT         "\xe2\x86\x90"      /* cursor left */
src/mess/mess.mak
r9535r9536
131131#CPUS += MN10200
132132CPUS += COSMAC
133133CPUS += UNSP
134CPUS += COSMAC
135134
136135#-------------------------------------------------
137136# specify available sound cores; some of these are
docs/messnew.txt
r9535r9536
3434
3535Source Changes:
3636----------------
37- The core is based on MAME 0.140u1.  This incorporates all features of the
38  update to this core.  [MAME team]
39
3740- Added UTF-8 constants for Swedish/Finnish keyboard accented
3841  characters, and cursor key arrows. Refactored drivers to
3942  use these constants. [Curt Coder]
43
4044- Rewrite of the system architecture of all systems of the TI-99
4145  family (TI-99/4(A)/8, SGCPU, Geneve), now more closely
4246  representing the real hardware. Using device structures for
4347  all hardware parts now. Redundant code removed. [Michael Zapf]
4448
4549
50
46510.140
4752
4853New System Drivers Supported:

Previous 15994 Revisions Next


© 1998-2018 The MESS Team