1 // license:BSD-3-Clause
2 // copyright-holders:David Haywood, Sylvain Glaize, Paul Priest, Olivier Galibert
3 /*
4 Super Kaneko Nova System
5 Original Driver by Sylvain Glaize
6 taken to pieces and attempted reconstruction by David Haywood
7
8 Mainboard + Cart combo
9 Regions are not cross compatible and have their own BIOS
10 Regions by color coded cart:
11
12 White = Japan
13 Light Blue = Europe
14 Dark Blue = USA
15 Green = Asia
16 Red = Korean
17
18 Credits (in no particular order):
19 Olivier Galibert for all the assistance and information he's provided
20 R. Belmont for working on the SH2 timers so sound worked
21 Nicola Salmoria for hooking up the Roz and improving the dirty tile handling
22 Paul Priest for a lot of things
23 Stephh for spotting what was wrong with Puzz Loop's inputs
24
25 Puzz Loop is currently the only game dumped for all known regions. This game is normally found on a ROM 4 BOARD
26 so the "U" location is printed on the label as U4 & U6. However this same game has also been found on the
27 ROM-2-BOARD using EPROMs labeled for the ROM 4 BOARD, but inserted in sockets at U8 & U10
28
29 ToDo:
30
31 galpanis: Are the priorities correct on the KANEKO logo at the start, the invisible faded logo obscures the rotating white lines
32
33 video: Sprite Zooming - the current algorithm is leaving gaps, most noticeable in Gals Panic 4, and Jackie Chan which is sharing
34 the video code.
35
36 video: Sprite positions still kludged slightly (see skns_sprite_kludge)
37
38 ------------------
39
40 SUPER-KANEKO-NOVA-SYSTEM
41 MAIN-BOARD-A
42 NEP-16
43
44
45 BATT HM514260
46 CR2032 SKNSA1 HM514260 SH2
47 W24257 LH5168
48 YMZ280B-F W24257 BABY004 LATTICE SW1 M62X42
49 pLSI1016
50 HITACHI 28.636MHz 33.3333MHz
51 DF1 21.504MHz
52 J D49307 ALTAIR DENEB
53 BY006-224 BY007-32F
54 A (QFP208) (QFP208)
55
56 M W24257 W24257 HM514260
57 /- W24257 W24257 /-
58 M VEGA || W24257 SPCII-B HM514260 ||
59 BY005-197 || W24257 JH-6186 ||
60 A (QFP144) || (QFP208) ||
61 || W24257 ||
62 DSW1(8) || VIEWIII-A SPCII-A W24257 LH540202 ||
63 || BL-001 JH-4181 W24257 ||
64 \- (QFP240) (QFP208) W24257 \-
65 OKIM6253
66
67
68 Notes:
69 SKNSA1 is BIOS (Asia)
70 HM514260, W24257, LH5168, M62X42 all smt SRAM
71 LH540202 is DIP SRAM
72
73
74 Cart Layout
75 -----------
76
77 SUPER-KANEKO-NOVA-SYSTEM
78 ROM-BOARD
79 NEP-16
80
81
82 /- /-
83 ||SK300-00 * PAL PAL D431000 D431000 * * ||
84 || ||
85 || ||
86 || * SK-200-00 ||
87 || SK01A SK01A ||
88 || U8 U10 * * SK-101 SK-100-00||
89 \- \-
90
91 Notes:
92 *: unpopulated position for surface mounted 16MBit SOP44 mask ROM
93 U8 and U10 are socketed 27C040 EPROM
94 All other ROMs are surface mounted SOP44 mask ROM
95
96 Cart Layout
97 -----------
98
99 SUPER KANEKO NOVA SYSTEM
100 ROM 4 BOARD
101 NEP-16
102
103 Top Side:
104 /- /-
105 ||SS300-00 SS210-00 SS102-00 SS103-00 SS201-00 ||
106 ||U1 U3 U8 U32 U9 ||
107 || ||
108 || ||
109 || 082* SG01A SG01A # # ||
110 || U4 U6 U29 U30 ||
111 \- \-
112
113 Bottom Side:
114 /- /-
115 ||SS200-00 SS000-00 SS101-00 ^ ^ ||
116 ||U17 U21 U20 U24 U26 ||
117 || ||
118 || ||
119 || NEC NEC ||
120 || D431000 D43100 ||
121 \- \-
122
123 * Kaneko (208 pin PQFP) # Empty sockets for 27C4001 / 27C040
124 ROM0 ^ Empty sockets for uPD23C32000
125 082 Full NEC ram number: D431000AGW-70LL
126 9709PK002
127
128
129 Cart Layout
130 -----------
131
132 SUPER-KANEKO-NOVA-SYSTEM
133 ROM-2-BOARD
134 NEP-16
135
136
137 /- /-
138 ||PZL-300-00 * PAL PAL * PZL-200-00 PZL-210-00 * ||
139 || ||
140 || D431000 D431000 ||
141 || ||
142 || PZ01U PZ01U # # ||
143 || U8 U10 U43 U44 * * PZL-100-00 ||
144 \- \-
145
146
147 */
148
149 #include "emu.h"
150 #include "includes/suprnova.h"
151
152 #include "cpu/sh/sh2.h"
153 #include "machine/msm6242.h"
154 #include "machine/nvram.h"
155 #include "sound/ymz280b.h"
156
157 #include "speaker.h"
158
159
hit_calc_orig(uint16_t p,uint16_t s,uint16_t org,uint16_t * l,uint16_t * r)160 static void hit_calc_orig(uint16_t p, uint16_t s, uint16_t org, uint16_t *l, uint16_t *r)
161 {
162 switch(org & 3) {
163 case 0:
164 *l = p;
165 *r = p+s;
166 break;
167 case 1:
168 *l = p-s/2;
169 *r = *l+s;
170 break;
171 case 2:
172 *l = p-s;
173 *r = p;
174 break;
175 case 3:
176 *l = p-s;
177 *r = p+s;
178 break;
179 }
180 }
181
hit_calc_axis(uint16_t x1p,uint16_t x1s,uint16_t x2p,uint16_t x2s,uint16_t org,uint16_t * x1_p1,uint16_t * x1_p2,uint16_t * x2_p1,uint16_t * x2_p2,int16_t * x_in,uint16_t * x1tox2)182 static void hit_calc_axis(uint16_t x1p, uint16_t x1s, uint16_t x2p, uint16_t x2s, uint16_t org,
183 uint16_t *x1_p1, uint16_t *x1_p2, uint16_t *x2_p1, uint16_t *x2_p2,
184 int16_t *x_in, uint16_t *x1tox2)
185 {
186 uint16_t x1l=0, x1r=0, x2l=0, x2r=0;
187 hit_calc_orig(x1p, x1s, org, &x1l, &x1r);
188 hit_calc_orig(x2p, x2s, org >> 8, &x2l, &x2r);
189
190 *x1tox2 = x2p-x1p;
191 *x1_p1 = x1p;
192 *x2_p1 = x2p;
193 *x1_p2 = x1r;
194 *x2_p2 = x2l;
195 *x_in = x1r-x2l;
196 }
197
hit_recalc()198 void skns_state::hit_recalc()
199 {
200 hit_t &hit = m_hit;
201
202 hit_calc_axis(hit.x1p, hit.x1s, hit.x2p, hit.x2s, hit.org,
203 &hit.x1_p1, &hit.x1_p2, &hit.x2_p1, &hit.x2_p2,
204 &hit.x_in, &hit.x1tox2);
205 hit_calc_axis(hit.y1p, hit.y1s, hit.y2p, hit.y2s, hit.org,
206 &hit.y1_p1, &hit.y1_p2, &hit.y2_p1, &hit.y2_p2,
207 &hit.y_in, &hit.y1toy2);
208 hit_calc_axis(hit.z1p, hit.z1s, hit.z2p, hit.z2s, hit.org,
209 &hit.z1_p1, &hit.z1_p2, &hit.z2_p1, &hit.z2_p2,
210 &hit.z_in, &hit.z1toz2);
211
212 hit.flag = 0;
213 hit.flag |= hit.y2p > hit.y1p ? 0x8000 : hit.y2p == hit.y1p ? 0x4000 : 0x2000;
214 hit.flag |= hit.y_in >= 0 ? 0 : 0x1000;
215 hit.flag |= hit.x2p > hit.x1p ? 0x0800 : hit.x2p == hit.x1p ? 0x0400 : 0x0200;
216 hit.flag |= hit.x_in >= 0 ? 0 : 0x0100;
217 hit.flag |= hit.z2p > hit.z1p ? 0x0080 : hit.z2p == hit.z1p ? 0x0040 : 0x0020;
218 hit.flag |= hit.z_in >= 0 ? 0 : 0x0010;
219 hit.flag |= hit.x_in >= 0 && hit.y_in >= 0 && hit.z_in >= 0 ? 8 : 0;
220 hit.flag |= hit.z_in >= 0 && hit.x_in >= 0 ? 4 : 0;
221 hit.flag |= hit.y_in >= 0 && hit.z_in >= 0 ? 2 : 0;
222 hit.flag |= hit.x_in >= 0 && hit.y_in >= 0 ? 1 : 0;
223 /* if(0)
224 log_event("HIT", "Recalc, (%d,%d)-(%d,%d)-(%d,%d):(%d,%d)-(%d,%d)-(%d,%d):%04x, (%d,%d,%d), %04x",
225 hit.x1p, hit.x1s, hit.y1p, hit.y1s, hit.z1p, hit.z1s,
226 hit.x2p, hit.x2s, hit.y2p, hit.y2s, hit.z2p, hit.z2s,
227 hit.org,
228 hit.x_in, hit.y_in, hit.z_in, hit.flag);
229 */
230 }
231
hit_w(offs_t offset,uint32_t data)232 void skns_state::hit_w(offs_t offset, uint32_t data)
233 //void hit_w(uint32_t adr, uint32_t data, int type)
234 {
235 hit_t &hit = m_hit;
236 int adr = offset * 4;
237
238 switch(adr) {
239 case 0x00:
240 case 0x28:
241 hit.x1p = data;
242 break;
243 case 0x08:
244 case 0x30:
245 hit.y1p = data;
246 break;
247 case 0x38:
248 case 0x50:
249 hit.z1p = data;
250 break;
251 case 0x04:
252 case 0x2c:
253 hit.x1s = data;
254 break;
255 case 0x0c:
256 case 0x34:
257 hit.y1s = data;
258 break;
259 case 0x3c:
260 case 0x54:
261 hit.z1s = data;
262 break;
263 case 0x10:
264 case 0x58:
265 hit.x2p = data;
266 break;
267 case 0x18:
268 case 0x60:
269 hit.y2p = data;
270 break;
271 case 0x20:
272 case 0x68:
273 hit.z2p = data;
274 break;
275 case 0x14:
276 case 0x5c:
277 hit.x2s = data;
278 break;
279 case 0x1c:
280 case 0x64:
281 hit.y2s = data;
282 break;
283 case 0x24:
284 case 0x6c:
285 hit.z2s = data;
286 break;
287 case 0x70:
288 hit.org = data;
289 break;
290 default:
291 // log_write("HIT", adr, data, type);
292 break;
293 }
294 hit_recalc();
295 }
296
hit2_w(uint32_t data)297 void skns_state::hit2_w(uint32_t data)
298 {
299 hit_t &hit = m_hit;
300
301 // Decide to unlock on country char of string "FOR xxxxx" in Bios ROM at offset 0x420
302 // this code simulates behaviour of protection PLD
303 data>>= 24;
304 hit.disconnect = 1;
305 switch (m_region)
306 {
307 case 'J':
308 if (data == 0) hit.disconnect= 0;
309 break;
310 case 'U':
311 if (data == 1) hit.disconnect= 0;
312 break;
313 case 'K':
314 if (data == 2) hit.disconnect= 0;
315 break;
316 case 'E':
317 if (data == 3) hit.disconnect= 0;
318 break;
319 case 'A':
320 if (data < 2) hit.disconnect= 0;
321 break;
322 // unknown country id, unlock per default
323 default:
324 hit.disconnect= 0;
325 break;
326 }
327 }
328
329
hit_r(offs_t offset)330 uint32_t skns_state::hit_r(offs_t offset)
331 //uint32_t hit_r(uint32_t adr, int type)
332 {
333 hit_t &hit = m_hit;
334 int adr = offset *4;
335
336 // log_read("HIT", adr, type);
337
338 if(hit.disconnect)
339 return 0x0000;
340 switch(adr) {
341 case 0x28:
342 case 0x2a:
343 return (uint16_t)machine().rand();
344 case 0x00:
345 case 0x10:
346 return (uint16_t)hit.x_in;
347 case 0x04:
348 case 0x14:
349 return (uint16_t)hit.y_in;
350 case 0x18:
351 return (uint16_t)hit.z_in;
352 case 0x08:
353 case 0x1c:
354 return hit.flag;
355 case 0x40:
356 return hit.x1p;
357 case 0x48:
358 return hit.y1p;
359 case 0x50:
360 return hit.z1p;
361 case 0x44:
362 return hit.x1s;
363 case 0x4c:
364 return hit.y1s;
365 case 0x54:
366 return hit.z1s;
367 case 0x58:
368 return hit.x2p;
369 case 0x60:
370 return hit.y2p;
371 case 0x68:
372 return hit.z2p;
373 case 0x5c:
374 return hit.x2s;
375 case 0x64:
376 return hit.y2s;
377 case 0x6c:
378 return hit.z2s;
379 case 0x70:
380 return hit.org;
381 case 0x80:
382 return hit.x1tox2;
383 case 0x84:
384 return hit.y1toy2;
385 case 0x88:
386 return hit.z1toz2;
387 case 0x90:
388 return hit.x1_p1;
389 case 0xa0:
390 return hit.y1_p1;
391 case 0xb0:
392 return hit.z1_p1;
393 case 0x98:
394 return hit.x1_p2;
395 case 0xa8:
396 return hit.y1_p2;
397 case 0xb8:
398 return hit.z1_p2;
399 case 0x94:
400 return hit.x2_p1;
401 case 0xa4:
402 return hit.y2_p1;
403 case 0xb4:
404 return hit.z2_p1;
405 case 0x9c:
406 return hit.x2_p2;
407 case 0xac:
408 return hit.y2_p2;
409 case 0xbc:
410 return hit.z2_p2;
411 default:
412 // log_read("HIT", adr, type);
413 return 0;
414 }
415 }
416
417 /* end hit.c */
418
419
420 /* start old driver code */
421
422
TIMER_DEVICE_CALLBACK_MEMBER(skns_state::interrupt_callback)423 TIMER_DEVICE_CALLBACK_MEMBER(skns_state::interrupt_callback)
424 {
425 m_maincpu->set_input_line(param, HOLD_LINE);
426 }
427
machine_start()428 void skns_state::machine_start()
429 {
430 m_btiles = memregion("gfx3")->base();
431
432 save_pointer(NAME(m_btiles), memregion("gfx3")->bytes());
433 save_item(NAME(m_hit.x1p));
434 save_item(NAME(m_hit.y1p));
435 save_item(NAME(m_hit.z1p));
436 save_item(NAME(m_hit.x1s));
437 save_item(NAME(m_hit.y1s));
438 save_item(NAME(m_hit.z1s));
439 save_item(NAME(m_hit.x2p));
440 save_item(NAME(m_hit.y2p));
441 save_item(NAME(m_hit.z2p));
442 save_item(NAME(m_hit.x2s));
443 save_item(NAME(m_hit.y2s));
444 save_item(NAME(m_hit.z2s));
445 save_item(NAME(m_hit.org));
446 save_item(NAME(m_hit.x1_p1));
447 save_item(NAME(m_hit.x1_p2));
448 save_item(NAME(m_hit.y1_p1));
449 save_item(NAME(m_hit.y1_p2));
450 save_item(NAME(m_hit.z1_p1));
451 save_item(NAME(m_hit.z1_p2));
452 save_item(NAME(m_hit.x2_p1));
453 save_item(NAME(m_hit.x2_p2));
454 save_item(NAME(m_hit.y2_p1));
455 save_item(NAME(m_hit.y2_p2));
456 save_item(NAME(m_hit.z2_p1));
457 save_item(NAME(m_hit.z2_p2));
458 save_item(NAME(m_hit.x1tox2));
459 save_item(NAME(m_hit.y1toy2));
460 save_item(NAME(m_hit.z1toz2));
461 save_item(NAME(m_hit.x_in));
462 save_item(NAME(m_hit.y_in));
463 save_item(NAME(m_hit.z_in));
464 save_item(NAME(m_hit.flag));
465 save_item(NAME(m_hit.disconnect));
466 }
467
machine_reset()468 void skns_state::machine_reset()
469 {
470 hit_t &hit = m_hit;
471
472 if (m_region != 'A')
473 hit.disconnect= 1;
474 else
475 hit.disconnect= 0;
476
477 membank("bank1")->set_base(memregion("user1")->base());
478 }
479
480
TIMER_DEVICE_CALLBACK_MEMBER(skns_state::irq)481 TIMER_DEVICE_CALLBACK_MEMBER(skns_state::irq)
482 {
483 int scanline = param;
484
485 if(scanline == 240)
486 m_maincpu->set_input_line(5,HOLD_LINE); //vblank
487 else if(scanline == 0)
488 m_maincpu->set_input_line(1,HOLD_LINE); // spc
489 }
490
491 /**********************************************************************************
492
493 Input port definitions
494
495 NOTE: The driver reads data from eight 8bit input ports, even if they
496 are unused. So I left them mapped.
497
498 **********************************************************************************/
499
500 template <int P>
CUSTOM_INPUT_MEMBER(skns_state::paddle_r)501 CUSTOM_INPUT_MEMBER(skns_state::paddle_r)
502 {
503 return m_paddle[P]->read();
504 }
505
506 static INPUT_PORTS_START( skns ) /* 3 buttons, 2 players */
507 PORT_START("400000")
508 PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNUSED )
509 PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 )
510 PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_START2 )
511 PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_COIN1 )
512 PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_COIN2 )
513 PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_SERVICE )
514 PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_TILT )
515 PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_SERVICE1 )
516 PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN )
517
518 PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
519 PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
520 PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
521 PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
522 PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
523 PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
524 PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
525 PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED )
526 PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
527 PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
528 PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
529 PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
530 PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
531 PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
532 PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
533 PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNUSED )
534
535 PORT_START("400004")
536 PORT_SERVICE( 0x00000001, IP_ACTIVE_LOW )
DEF_STR(Flip_Screen)537 PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Flip_Screen ) ) // This port affects 0x000000040191c8 function
538 PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) )
539 PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
540 PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) )
541 PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) )
542 PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
543 PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) )
544 PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) )
545 PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
546 PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Unknown ) )
547 PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) )
548 PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
549 PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unknown ) )
550 PORT_DIPSETTING( 0x00000020, DEF_STR( Off ) )
551 PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
552 PORT_DIPNAME( 0x00000040, 0x00000040, "Use Backup Ram" )
553 PORT_DIPSETTING( 0x00000000, DEF_STR( No ) )
554 PORT_DIPSETTING( 0x00000040, DEF_STR( Yes ) )
555 PORT_DIPNAME( 0x00000080, 0x00000080, "Freeze" )
556 PORT_DIPSETTING( 0x00000000, "Freezes the game")
557 PORT_DIPSETTING( 0x00000080, "Right value")
558 PORT_BIT( 0x0000ff00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<2>) // Paddle C
559 PORT_BIT( 0x00ff0000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<1>) // Paddle B
560 PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<0>) // Paddle A
561
562 PORT_START("40000c")
563 PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<3>) // Paddle D
564 PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
565
566 PORT_START("Paddle.A")
567 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
568
569 PORT_START("Paddle.B")
570 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
571
572 PORT_START("Paddle.C")
573 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
574
575 PORT_START("Paddle.D")
576 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
577 INPUT_PORTS_END
578
579 static INPUT_PORTS_START( skns_1p ) /* 2 buttons, 1 player */
580 PORT_INCLUDE( skns )
581
582 PORT_MODIFY("400000")
583 /* jjparads and jjparad2 are 1 player only games
584 ryouran and teljan have an unemulated feature
585 that allows to play them in two player mode
586 via a cable-network connection (untestable)
587 Service mode test shows only P1 inputs */
588 PORT_BIT( 0x00ff0000, IP_ACTIVE_LOW, IPT_UNUSED )
589 /* same as above, coin 2 and start 2 are untestable
590 in ryouran and teljan. So I left disabled for now */
591 PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* Start 2 */
592 PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* Coin 2 */
593 PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
594
595 PORT_MODIFY("400004")
596 PORT_DIPNAME( 0x00000010, 0x00000010, "Test Mode" )
597 PORT_DIPSETTING( 0x00000010, DEF_STR(Off) )
598 PORT_DIPSETTING( 0x00000000, DEF_STR(On) )
599 INPUT_PORTS_END
600
601 static INPUT_PORTS_START( cyvern ) /* 2 buttons, 2 players */
602 PORT_INCLUDE( skns )
603
604 PORT_MODIFY("400000")
605 PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
606 PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
607 INPUT_PORTS_END
608
609 static INPUT_PORTS_START( galpanis ) /* 1 button, 2 players */
610 PORT_INCLUDE( skns )
611
612 PORT_MODIFY("400000")
613 PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 2 */
614 PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
615 PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 2 */
616 PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
617 INPUT_PORTS_END
618
619 static INPUT_PORTS_START( puzzloop ) /* 2 buttons, 2 players, paddle */
620 PORT_INCLUDE( skns )
621
622 PORT_MODIFY("400000")
623 PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
624 PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Button 3 */
625
626 PORT_MODIFY("Paddle.A") /* Paddle A */
627 PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
628
629 PORT_MODIFY("Paddle.B") /* Paddle B */
630 PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
631 INPUT_PORTS_END
632
633 static INPUT_PORTS_START( vblokbrk ) /* 3 buttons, 2 players, paddle */
634 PORT_INCLUDE( skns )
635
636 PORT_MODIFY("Paddle.A") /* Paddle A */
637 PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
638
639 PORT_MODIFY("Paddle.B") /* Paddle B */
640 PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
641 INPUT_PORTS_END
642
643
644
645 void skns_state::io_w(offs_t offset, uint32_t data, uint32_t mem_mask)
646 {
647 switch(offset) {
648 case 2:
649 if(ACCESSING_BITS_24_31)
650 { /* Coin Lock/Count */
651 // machine().bookkeeping().coin_counter_w(0, data & 0x01000000);
652 // machine().bookkeeping().coin_counter_w(1, data & 0x02000000);
653 // machine().bookkeeping().coin_lockout_w(0, ~data & 0x04000000);
654 // machine().bookkeeping().coin_lockout_w(1, ~data & 0x08000000); // Works in puzzloop, others behave strange.
655 }
656 if(ACCESSING_BITS_16_23)
657 { /* Analogue Input Select */
658 }
659 if(ACCESSING_BITS_8_15)
660 { /* Extended Output - Port A, Mahjong inputs, Comms etc. */
661 }
662 if(ACCESSING_BITS_0_7)
663 { /* Extended Output - Port B */
664 }
665 break;
666 case 3:
667 if(ACCESSING_BITS_8_15)
668 { /* Interrupt Clear, do we need these? */
669 /* if(data&0x01)
670 m_maincpu->set_input_line(1,CLEAR_LINE);
671 if(data&0x02)
672 m_maincpu->set_input_line(3,CLEAR_LINE);
673 if(data&0x04)
674 m_maincpu->set_input_line(5,CLEAR_LINE);
675 if(data&0x08)
676 m_maincpu->set_input_line(7,CLEAR_LINE);
677 if(data&0x10)
678 m_maincpu->set_input_line(9,CLEAR_LINE);
679 if(data&0x20)
680 m_maincpu->set_input_line(0xb,CLEAR_LINE);
681 if(data&0x40)
682 m_maincpu->set_input_line(0xd,CLEAR_LINE);
683 if(data&0x80)
684 m_maincpu->set_input_line(0xf,CLEAR_LINE);*/
685
686 /* idle skip for vblokbrk/sarukani, i can't find a better place to put it :-( but i think it works ok unless its making the game too fast */
687 if (m_maincpu->pc()==0x04013B42)
688 {
689 if (!strcmp(machine().system().name,"vblokbrk") ||
690 !strcmp(machine().system().name,"sarukani"))
691 m_maincpu->spin_until_interrupt();
692 }
693
694 }
695 else
696 {
697 logerror("Unk IO Write memmask:%08x offset:%08x data:%08x\n", mem_mask, offset, data);
698 }
699 break;
700 default:
701 logerror("Unk IO Write memmask:%08x offset:%08x data:%08x\n", mem_mask, offset, data);
702 break;
703 }
704 }
705
706 /* end old driver code */
707
v3t_w(offs_t offset,uint32_t data,uint32_t mem_mask)708 void skns_state::v3t_w(offs_t offset, uint32_t data, uint32_t mem_mask)
709 {
710 COMBINE_DATA(&m_v3t_ram[offset]);
711
712 m_gfxdecode->gfx(1)->mark_dirty(offset/0x40);
713 m_gfxdecode->gfx(3)->mark_dirty(offset/0x20);
714
715 data = m_v3t_ram[offset];
716 // i think we need to swap around to decode .. endian issues?
717
718 m_btiles[offset*4+0] = (data & 0xff000000) >> 24;
719 m_btiles[offset*4+1] = (data & 0x00ff0000) >> 16;
720 m_btiles[offset*4+2] = (data & 0x0000ff00) >> 8;
721 m_btiles[offset*4+3] = (data & 0x000000ff) >> 0;
722 }
723
skns_map(address_map & map)724 void skns_state::skns_map(address_map &map)
725 {
726 map(0x00000000, 0x0007ffff).rom(); /* BIOS ROM */
727 map(0x00400000, 0x0040000f).w(FUNC(skns_state::io_w)); /* I/O Write */
728 map(0x00400000, 0x00400003).portr("400000");
729 map(0x00400004, 0x00400007).portr("400004");
730 /* In between is write only */
731 map(0x0040000c, 0x0040000f).portr("40000c");
732 map(0x00800000, 0x00801fff).ram().share("nvram"); /* 'backup' RAM */
733 map(0x00c00000, 0x00c00001).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); /* ymz280_w (sound) */
734 map(0x01000000, 0x0100000f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
735 map(0x01800000, 0x01800003).w(FUNC(skns_state::hit2_w));
736 map(0x02000000, 0x02003fff).ram().share("spriteram"); /* sprite ram */
737 map(0x02100000, 0x0210003f).ram().share("spc_regs"); /* sprite registers */
738 map(0x02400000, 0x0240007f).ram().w(FUNC(skns_state::v3_regs_w)).share("v3_regs"); /* tilemap registers */
739 map(0x02500000, 0x02503fff).ram().w(FUNC(skns_state::tilemapA_w)).share("tilemapa_ram"); /* tilemap A */
740 map(0x02504000, 0x02507fff).ram().w(FUNC(skns_state::tilemapB_w)).share("tilemapb_ram"); /* tilemap B */
741 map(0x02600000, 0x02607fff).ram().share("v3slc_ram"); /* tilemap linescroll */
742 map(0x02a00000, 0x02a0001f).ram().w(FUNC(skns_state::pal_regs_w)).share("pal_regs");
743 map(0x02a40000, 0x02a5ffff).ram().w(FUNC(skns_state::palette_ram_w)).share("palette_ram");
744 map(0x02f00000, 0x02f000ff).rw(FUNC(skns_state::hit_r), FUNC(skns_state::hit_w));
745 map(0x04000000, 0x041fffff).bankr("bank1"); /* GAME ROM */
746 map(0x04800000, 0x0483ffff).ram().w(FUNC(skns_state::v3t_w)).share("v3t_ram"); /* tilemap b ram based tiles */
747 map(0x06000000, 0x060fffff).ram().share("main_ram");
748 map(0xc0000000, 0xc0000fff).ram().share("cache_ram"); /* 'cache' RAM */
749 }
750
751 /***** GFX DECODE *****/
752
753 static GFXDECODE_START( skns_bg )
754 /* "spritegen" is sprites, RLE encoded */
755 GFXDECODE_ENTRY( "gfx2", 0, gfx_16x16x8_raw, 0x000, 128 )
756 GFXDECODE_ENTRY( "gfx3", 0, gfx_16x16x8_raw, 0x000, 128 )
757 GFXDECODE_ENTRY( "gfx2", 0, gfx_16x16x4_packed_lsb, 0x000, 128 )
758 GFXDECODE_ENTRY( "gfx3", 0, gfx_16x16x4_packed_lsb, 0x000, 128 )
759 GFXDECODE_END
760
761 /***** MACHINE DRIVER *****/
762
763 // XTALs : 28.636MHz, 33.3333MHz, 21.504MHz
skns(machine_config & config)764 void skns_state::skns(machine_config &config)
765 {
766 SH2(config, m_maincpu, XTAL(28'636'000));
767 m_maincpu->set_addrmap(AS_PROGRAM, &skns_state::skns_map);
768
769 TIMER(config, "scantimer").configure_scanline(FUNC(skns_state::irq), "screen", 0, 1);
770
771 MSM6242(config, "rtc", XTAL(32'768));
772
773 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
774
775 timer_device &int15_timer(TIMER(config, "int15_timer"));
776 int15_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_msec(2));
777 int15_timer.config_param(15);
778 timer_device &int11_timer(TIMER(config, "int11_timer"));
779 int11_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_msec(8));
780 int11_timer.config_param(11);
781 timer_device &int9_timer(TIMER(config, "int9_timer"));
782 int9_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_hz(XTAL(28'636'000)/1824));
783 int9_timer.config_param(9);
784
785 SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
786 m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
787 m_screen->set_refresh_hz(59.5971); // measured by Guru
788 m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
789 m_screen->set_size(340,262);
790 m_screen->set_visarea(0,319,0,239);
791 m_screen->set_screen_update(FUNC(skns_state::screen_update));
792 m_screen->screen_vblank().set(FUNC(skns_state::screen_vblank));
793
794 PALETTE(config, m_palette).set_entries(32768);
795 GFXDECODE(config, m_gfxdecode, m_palette, skns_bg);
796
797 SKNS_SPRITE(config, m_spritegen, 0);
798
799 /* sound hardware */
800 SPEAKER(config, "lspeaker").front_left();
801 SPEAKER(config, "rspeaker").front_right();
802
803 ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'333'333) / 2));
804 ymz.add_route(0, "lspeaker", 1.0);
805 ymz.add_route(1, "rspeaker", 1.0);
806 }
807
MACHINE_RESET_MEMBER(skns_state,sknsa)808 MACHINE_RESET_MEMBER(skns_state,sknsa)
809 {
810 m_region = 'A';
811 skns_state::machine_reset();
812 }
813
MACHINE_RESET_MEMBER(skns_state,sknsj)814 MACHINE_RESET_MEMBER(skns_state,sknsj)
815 {
816 m_region = 'J';
817 skns_state::machine_reset();
818 }
819
MACHINE_RESET_MEMBER(skns_state,sknsu)820 MACHINE_RESET_MEMBER(skns_state,sknsu)
821 {
822 m_region = 'U';
823 skns_state::machine_reset();
824 }
825
MACHINE_RESET_MEMBER(skns_state,sknse)826 MACHINE_RESET_MEMBER(skns_state,sknse)
827 {
828 m_region = 'E';
829 skns_state::machine_reset();
830 }
831
MACHINE_RESET_MEMBER(skns_state,sknsk)832 MACHINE_RESET_MEMBER(skns_state,sknsk)
833 {
834 m_region = 'K';
835 skns_state::machine_reset();
836 }
837
838
sknsa(machine_config & config)839 void skns_state::sknsa(machine_config &config)
840 {
841 skns(config);
842 MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsa)
843 }
844
sknsj(machine_config & config)845 void skns_state::sknsj(machine_config &config)
846 {
847 skns(config);
848 MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsj)
849 }
850
sknsu(machine_config & config)851 void skns_state::sknsu(machine_config &config)
852 {
853 skns(config);
854 MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsu)
855 }
856
sknse(machine_config & config)857 void skns_state::sknse(machine_config &config)
858 {
859 skns(config);
860 MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknse)
861 }
862
sknsk(machine_config & config)863 void skns_state::sknsk(machine_config &config)
864 {
865 skns(config);
866 MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsk)
867 }
868
869 /***** IDLE SKIPPING *****/
870
gutsn_speedup_r()871 uint32_t skns_state::gutsn_speedup_r()
872 {
873 /*
874 0402206A: MOV.L @($8C,PC),R5
875 0402206C: MOV.L @($8C,PC),R1
876 0402206E: MOV.L @R1,R2 // R1 == 600C780
877 04022070: MOV.L @R5,R3 // R5 == 6000078
878 04022072: CMP/EQ R2,R3
879 04022074: BT $0402206C
880 */
881 if (m_maincpu->pc()==0x402206e)
882 {
883 if(m_main_ram[0x00078/4] == m_main_ram[0x0c780/4])
884 m_maincpu->spin_until_interrupt();
885 }
886 return m_main_ram[0x0c780/4];
887 }
888
cyvern_speedup_r()889 uint32_t skns_state::cyvern_speedup_r()
890 {
891 if (m_maincpu->pc()==0x402ebd2) m_maincpu->spin_until_interrupt();
892 return m_main_ram[0x4d3c8/4];
893 }
894
puzzloopj_speedup_r()895 uint32_t skns_state::puzzloopj_speedup_r()
896 {
897 if (m_maincpu->pc()==0x401dca0) m_maincpu->spin_until_interrupt();
898 return m_main_ram[0x86714/4];
899 }
900
puzzloopa_speedup_r()901 uint32_t skns_state::puzzloopa_speedup_r()
902 {
903 if (m_maincpu->pc()==0x401d9d4) m_maincpu->spin_until_interrupt();
904 return m_main_ram[0x85bcc/4];
905 }
906
puzzloopu_speedup_r()907 uint32_t skns_state::puzzloopu_speedup_r()
908 {
909 if (m_maincpu->pc()==0x401dab0) m_maincpu->spin_until_interrupt();
910 return m_main_ram[0x85cec/4];
911 }
912
puzzloope_speedup_r()913 uint32_t skns_state::puzzloope_speedup_r()
914 {
915 /*
916 0401DA12: MOV.L @($80,PC),R1
917 0401DA14: MOV.L @R1,R0 (R1=0x6081d38)
918 0401DA16: TST R0,R0
919 0401DA18: BF $0401DA26
920 0401DA26: BRA $0401DA12
921 */
922 if (m_maincpu->pc()==0x401da14) m_maincpu->spin_until_interrupt();
923 return m_main_ram[0x81d38/4];
924 }
925
senknow_speedup_r()926 uint32_t skns_state::senknow_speedup_r()
927 {
928 if (m_maincpu->pc()==0x4017dce) m_maincpu->spin_until_interrupt();
929 return m_main_ram[0x0000dc/4];
930 }
931
teljan_speedup_r()932 uint32_t skns_state::teljan_speedup_r()
933 {
934 if (m_maincpu->pc()==0x401ba32) m_maincpu->spin_until_interrupt();
935 return m_main_ram[0x002fb4/4];
936 }
937
jjparads_speedup_r()938 uint32_t skns_state::jjparads_speedup_r()
939 {
940 if (m_maincpu->pc()==0x4015e84) m_maincpu->spin_until_interrupt();
941 return m_main_ram[0x000994/4];
942 }
943
jjparad2_speedup_r()944 uint32_t skns_state::jjparad2_speedup_r()
945 {
946 if (m_maincpu->pc()==0x401620a) m_maincpu->spin_until_interrupt();
947 return m_main_ram[0x000984/4];
948 }
949
ryouran_speedup_r()950 uint32_t skns_state::ryouran_speedup_r()
951 {
952 if (m_maincpu->pc()==0x40182ce) m_maincpu->spin_until_interrupt();
953 return m_main_ram[0x000a14/4];
954 }
955
galpans2_speedup_r()956 uint32_t skns_state::galpans2_speedup_r()
957 {
958 if (m_maincpu->pc()==0x4049ae2) m_maincpu->spin_until_interrupt();
959 return m_main_ram[0x0fb6bc/4];
960 }
961
panicstr_speedup_r()962 uint32_t skns_state::panicstr_speedup_r()
963 {
964 if (m_maincpu->pc()==0x404e68a) m_maincpu->spin_until_interrupt();
965 return m_main_ram[0x0f19e4/4];
966 }
967
sengekis_speedup_r()968 uint32_t skns_state::sengekis_speedup_r()// 60006ee 600308e
969 {
970 if (m_maincpu->pc()==0x60006ec) m_maincpu->spin_until_interrupt();
971 return m_main_ram[0xb74bc/4];
972 }
973
sengekij_speedup_r()974 uint32_t skns_state::sengekij_speedup_r()// 60006ee 600308e
975 {
976 if (m_maincpu->pc()==0x60006ec) m_maincpu->spin_until_interrupt();
977 return m_main_ram[0xb7380/4];
978 }
979
init_drc()980 void skns_state::init_drc()
981 {
982 // init DRC to fastest options
983 m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
984 m_maincpu->sh2drc_add_fastram(0x02000000, 0x02003fff, 0, &m_spriteram[0]);
985 m_maincpu->sh2drc_add_fastram(0x02100000, 0x0210003f, 0, &m_spc_regs[0]);
986 m_maincpu->sh2drc_add_fastram(0x02600000, 0x02607fff, 0, &m_v3slc_ram[0]);
987 }
988
set_drc_pcflush(uint32_t addr)989 void skns_state::set_drc_pcflush(uint32_t addr)
990 {
991 m_maincpu->sh2drc_add_pcflush(addr);
992 }
993
init_galpani4()994 void skns_state::init_galpani4() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
init_galpanis()995 void skns_state::init_galpanis() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
init_cyvern()996 void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32smo_delegate(*this, FUNC(skns_state::cyvern_speedup_r)) ); set_drc_pcflush(0x402ebd2); }
init_galpans2()997 void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32smo_delegate(*this, FUNC(skns_state::galpans2_speedup_r)) ); set_drc_pcflush(0x4049ae2); }
init_gutsn()998 void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32smo_delegate(*this, FUNC(skns_state::gutsn_speedup_r)) ); set_drc_pcflush(0x402206e); }
init_panicstr()999 void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32smo_delegate(*this, FUNC(skns_state::panicstr_speedup_r)) ); set_drc_pcflush(0x404e68a); }
init_senknow()1000 void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32smo_delegate(*this, FUNC(skns_state::senknow_speedup_r)) ); set_drc_pcflush(0x4017dce); }
init_puzzloope()1001 void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32smo_delegate(*this, FUNC(skns_state::puzzloope_speedup_r)) ); set_drc_pcflush(0x401da14); }
init_puzzloopj()1002 void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32smo_delegate(*this, FUNC(skns_state::puzzloopj_speedup_r)) ); set_drc_pcflush(0x401dca0); }
init_puzzloopa()1003 void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32smo_delegate(*this, FUNC(skns_state::puzzloopa_speedup_r)) ); set_drc_pcflush(0x401d9d4); }
init_puzzloopu()1004 void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32smo_delegate(*this, FUNC(skns_state::puzzloopu_speedup_r)) ); set_drc_pcflush(0x401dab0); }
init_jjparads()1005 void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32smo_delegate(*this, FUNC(skns_state::jjparads_speedup_r)) ); set_drc_pcflush(0x4015e84); }
init_jjparad2()1006 void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32smo_delegate(*this, FUNC(skns_state::jjparad2_speedup_r)) ); set_drc_pcflush(0x401620a); }
init_ryouran()1007 void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32smo_delegate(*this, FUNC(skns_state::ryouran_speedup_r)) ); set_drc_pcflush(0x40182ce); }
init_teljan()1008 void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32smo_delegate(*this, FUNC(skns_state::teljan_speedup_r)) ); set_drc_pcflush(0x401ba32); }
init_sengekis()1009 void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32smo_delegate(*this, FUNC(skns_state::sengekis_speedup_r)) ); set_drc_pcflush(0x60006ec); }
init_sengekij()1010 void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32smo_delegate(*this, FUNC(skns_state::sengekij_speedup_r)) ); set_drc_pcflush(0x60006ec); }
init_sarukani()1011 void skns_state::init_sarukani() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w()
init_galpans3()1012 void skns_state::init_galpans3() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); }
1013
1014
1015
1016 /***** ROM LOADING *****/
1017
1018 // maybe we should treat each motherboard region as a separate parent / root?
1019
1020 #define ROM_LOAD_BIOS(bios,name,offset,length,hash) \
1021 ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios))
1022
1023 /* NOTE: The Euro BIOS ROM has been found labeled SKNSE1 and SKNSE2 but the data is the same */
1024 #define SKNS_BIOS \
1025 ROM_REGION( 0x0100000, "maincpu", 0 ) \
1026 ROM_SYSTEM_BIOS( 0, "japan", "Japan" ) \
1027 ROM_LOAD_BIOS( 0, "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) \
1028 ROM_SYSTEM_BIOS( 1, "europe", "Europe" ) \
1029 ROM_LOAD_BIOS( 1, "sknse2.u10", 0x000000, 0x080000, CRC(e2b9d7d1) SHA1(b530a3bb9dedc8cfafcba9f1f10277590be04a15) ) \
1030 ROM_SYSTEM_BIOS( 2, "asia", "Asia" ) \
1031 ROM_LOAD_BIOS( 2, "sknsa1.u10", 0x000000, 0x080000, CRC(745e5212) SHA1(caba649ab2d83b2d7e007eecee0fc582c019df38) ) \
1032 ROM_SYSTEM_BIOS( 3, "usa", "USA" ) \
1033 ROM_LOAD_BIOS( 3, "sknsu1.u10", 0x000000, 0x080000, CRC(384d21ec) SHA1(a27e8a18099d9cea64fa32db28d01101c2a78815) ) \
1034 ROM_SYSTEM_BIOS( 4, "korea", "Korea" ) \
1035 ROM_LOAD_BIOS( 4, "sknsk1.u10", 0x000000, 0x080000, CRC(ff1c9f79) SHA1(a51e598d43e76d37da69b1f094c111273bdfc94a) ) \
1036 ROM_SYSTEM_BIOS( 5, "japanmod", "Japan (No Region Lock)" ) /* hack */ \
1037 ROM_LOAD_BIOS( 5, "supernova_modbios-japan.u10", 0x000000, 0x080000, CRC(b8d3190c) SHA1(62c9a4a075fd944e89fe95c6b46046101eb6de1c) ) \
1038 ROM_SYSTEM_BIOS( 6, "koreamod", "Korea (No Region Lock)" ) /* hack */ \
1039 ROM_LOAD_BIOS( 6, "supernova-modbios-korea.u10", 0x000000, 0x080000, CRC(1d90517c) SHA1(463962ffe19880135f0d95a7beda79e27448e872) )
1040
1041
1042
1043 #define SKNS_JAPAN \
1044 SKNS_BIOS \
1045 ROM_DEFAULT_BIOS( "japan" )
1046
1047 #define SKNS_EUROPE \
1048 SKNS_BIOS \
1049 ROM_DEFAULT_BIOS( "europe" )
1050
1051 #define SKNS_ASIA \
1052 SKNS_BIOS \
1053 ROM_DEFAULT_BIOS( "asia" )
1054
1055 #define SKNS_USA \
1056 SKNS_BIOS \
1057 ROM_DEFAULT_BIOS( "usa" )
1058
1059 #define SKNS_KOREA \
1060 SKNS_BIOS \
1061 ROM_DEFAULT_BIOS( "korea" )
1062
1063
1064 ROM_START( skns )
1065 SKNS_BIOS
1066
1067 ROM_REGION32_BE( 0x200000, "user1", ROMREGION_ERASE00 ) /* SH-2 Code mapped at 0x04000000 */
1068
1069 ROM_REGION( 0x800000, "spritegen", ROMREGION_ERASE00 ) /* Sprites */
1070
1071 ROM_REGION( 0x800000, "gfx2", ROMREGION_ERASE00 ) /* Tiles Plane A */
1072
1073 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1074
1075 ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) /* Samples */
1076 ROM_END
1077
1078
1079 ROM_START( cyvern )
1080 SKNS_USA
1081
1082 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1083 ROM_LOAD16_BYTE( "cv-usa.u10", 0x000000, 0x100000, CRC(1023ddca) SHA1(7967e3e876cdb797bdaa2eb5136a33cd43941501) )
1084 ROM_LOAD16_BYTE( "cv-usa.u8", 0x000001, 0x100000, CRC(f696f6be) SHA1(d9e66173ca12693255d2bb0982da2fb96bfd155d) )
1085
1086 ROM_REGION( 0x800000, "spritegen", 0 ) /* Sprites */
1087 ROM_LOAD( "cv100-00.u24", 0x000000, 0x400000, CRC(cd4ae88a) SHA1(925f4ae01a6ad3633be2a61be69e163f05401cf6) )
1088 ROM_LOAD( "cv101-00.u20", 0x400000, 0x400000, CRC(a6cb3f0b) SHA1(8d83f44a096ca0a70962ca4c602c4331874c8560) )
1089
1090 ROM_REGION( 0x800000, "gfx2", 0 ) /* Tiles Plane A */
1091 ROM_LOAD( "cv200-00.u16", 0x000000, 0x400000, CRC(ddc8c67e) SHA1(9b99e87e69e88011e6d693d19ac5e115b4fa50b0) )
1092 ROM_LOAD( "cv201-00.u13", 0x400000, 0x400000, CRC(65863321) SHA1(b8b75f50406068ffc3fca3887d2f0a653ca491c9) )
1093
1094 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1095 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1096 /* 0x040000 - 0x3fffff empty? */
1097 ROM_LOAD( "cv210-00.u18", 0x400000, 0x400000, CRC(7486bf3a) SHA1(3b4285ca570e9c5ad396c615bfc054372d1b0162) )
1098
1099 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1100 ROM_LOAD( "cv300-00.u4", 0x000000, 0x400000, CRC(fbeda465) SHA1(4d5066a22f4589b6b7f85b3e77c348d900ac4bdd) )
1101 ROM_END
1102
1103 ROM_START( cyvernj )
1104 SKNS_JAPAN
1105
1106 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1107 ROM_LOAD16_BYTE( "cvj-even.u10", 0x000000, 0x100000, CRC(802fadb4) SHA1(cbfac3a87a4863466117c61f2ecaf63d506352f6) )
1108 ROM_LOAD16_BYTE( "cvj-odd.u8", 0x000001, 0x100000, CRC(f8a0fbdd) SHA1(5cc8c12c13b5eb3456083e70100450ba041de76e) )
1109
1110 ROM_REGION( 0x800000, "spritegen", 0 ) /* Sprites */
1111 ROM_LOAD( "cv100-00.u24", 0x000000, 0x400000, CRC(cd4ae88a) SHA1(925f4ae01a6ad3633be2a61be69e163f05401cf6) )
1112 ROM_LOAD( "cv101-00.u20", 0x400000, 0x400000, CRC(a6cb3f0b) SHA1(8d83f44a096ca0a70962ca4c602c4331874c8560) )
1113
1114 ROM_REGION( 0x800000, "gfx2", 0 ) /* Tiles Plane A */
1115 ROM_LOAD( "cv200-00.u16", 0x000000, 0x400000, CRC(ddc8c67e) SHA1(9b99e87e69e88011e6d693d19ac5e115b4fa50b0) )
1116 ROM_LOAD( "cv201-00.u13", 0x400000, 0x400000, CRC(65863321) SHA1(b8b75f50406068ffc3fca3887d2f0a653ca491c9) )
1117
1118 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1119 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1120 /* 0x040000 - 0x3fffff empty? */
1121 ROM_LOAD( "cv210-00.u18", 0x400000, 0x400000, CRC(7486bf3a) SHA1(3b4285ca570e9c5ad396c615bfc054372d1b0162) )
1122
1123 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1124 ROM_LOAD( "cv300-00.u4", 0x000000, 0x400000, CRC(fbeda465) SHA1(4d5066a22f4589b6b7f85b3e77c348d900ac4bdd) )
1125 ROM_END
1126
1127 ROM_START( galpani4 ) // only main CPU and plds dumps were provided
1128 SKNS_EUROPE
1129
1130 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1131 ROM_LOAD16_BYTE( "gp4-000-e0.u10", 0x000000, 0x080000, CRC(7464cc28) SHA1(4ea6185b62d3e25efdaafb91397b51bc8f12fdee) ) // Hitachi HN27C4001G-10
1132 ROM_LOAD16_BYTE( "gp4-001-e0.u8", 0x000001, 0x080000, CRC(8d162069) SHA1(1bd0181a9c9f37c8e8c9d6f75f045d76dffcd903) ) // Hitachi HN27C4001G-10
1133
1134 ROM_REGION( 0x400000, "spritegen", 0 )
1135 ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1136 ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1137
1138 ROM_REGION( 0x400000, "gfx2", 0 )
1139 ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1140 ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1141
1142 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1143 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1144 /* 0x040000 - 0x3fffff empty? */
1145
1146 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1147 ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) /* Doesn't seem to use these samples at all */
1148 ROM_LOAD( "gp4-301-00.u7", 0x200000, 0x200000, NO_DUMP ) /* Different then GP4-301-01 - Changed some samples when compared to U4 ROM */
1149
1150 ROM_REGION( 0x400, "plds", 0 )
1151 ROM_LOAD( "skns-r09.u9", 0x000, 0x117, CRC(b02058d9) SHA1(77d07e0f329fb1969aa4543cd124e36ad34b07ba) ) // Atmel ATF16V8B
1152 ROM_LOAD( "skns-r11.u11", 0x200, 0x117, CRC(a9f05af4) SHA1(018684c1f9f7c2e1c86f0cb2db2ec7fb02e35cd8) ) // Atmel ATF16V8B
1153 ROM_END
1154
1155 ROM_START( galpani4j )
1156 SKNS_JAPAN
1157
1158 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1159 ROM_LOAD16_BYTE( "gp4j1.u10", 0x000000, 0x080000, CRC(919a3893) SHA1(83b89a9e628a1f46f8a56ea512fc8ad641d5e239) )
1160 ROM_LOAD16_BYTE( "gp4j1.u8", 0x000001, 0x080000, CRC(94cb1fb7) SHA1(ac90103dd43cdce6a287ffc13631c1de477a9a71) )
1161
1162 ROM_REGION( 0x400000, "spritegen", 0 )
1163 ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1164 ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1165
1166 ROM_REGION( 0x400000, "gfx2", 0 )
1167 ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1168 ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1169
1170 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1171 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1172 /* 0x040000 - 0x3fffff empty? */
1173
1174 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1175 ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) )
1176 ROM_END
1177
1178 ROM_START( galpani4k ) /* ROM-BOARD NEP-16 part number GP04K00372 with extra sound sample ROM at U7 */
1179 SKNS_KOREA
1180
1181 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1182 ROM_LOAD16_BYTE( "gp4k1.u10", 0x000000, 0x080000, CRC(cbd5c3a0) SHA1(17fc0d6f6050ffd31707cee3fcc263cd5b9d0c4f) )
1183 ROM_LOAD16_BYTE( "gp4k1.u8", 0x000001, 0x080000, CRC(7a95bfe2) SHA1(82e24fd4674ec25bc6608ced0921e8573fcff2c2) )
1184
1185 ROM_REGION( 0x400000, "spritegen", 0 )
1186 ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1187 ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1188
1189 ROM_REGION( 0x400000, "gfx2", 0 )
1190 ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1191 ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1192
1193 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1194 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1195 /* 0x040000 - 0x3fffff empty? */
1196
1197 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1198 ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) /* Doesn't seem to use these samples at all */
1199 ROM_LOAD( "gp4-301-01.u7", 0x200000, 0x200000, CRC(886ef77f) SHA1(047d5fecf2034339c69b2cb605b623a814a18f0d) ) /* Changed some samples when compared to U4 ROM */
1200 ROM_END
1201
1202 ROM_START( galpanidx )
1203 SKNS_ASIA
1204
1205 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1206 ROM_LOAD16_BYTE( "gpdx.u10", 0x000000, 0x100000, CRC(8eca883d) SHA1(f5a102ac21aeebc44afcd0ef7f655de21d4442b2) )
1207 ROM_LOAD16_BYTE( "gpdx.u8", 0x000001, 0x100000, CRC(b0088d8f) SHA1(2363620265d3fc53bae1c5889ea761444f80735a) )
1208
1209 ROM_REGION( 0x400000, "spritegen", 0 )
1210 ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1211 ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1212
1213 ROM_REGION( 0x400000, "gfx2", 0 )
1214 ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1215 ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1216
1217 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1218 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1219 /* 0x040000 - 0x3fffff empty? */
1220
1221 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1222 ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) /* Doesn't seem to use these samples at all */
1223 ROM_LOAD( "gp4-301-01.u7", 0x200000, 0x200000, CRC(886ef77f) SHA1(047d5fecf2034339c69b2cb605b623a814a18f0d) ) /* Changed some samples when compared to U4 ROM */
1224 ROM_END
1225
1226 ROM_START( galpanis )
1227 SKNS_EUROPE
1228
1229 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1230 ROM_LOAD16_BYTE( "gps-000-e1.u10", 0x000000, 0x100000, CRC(b9ea3c44) SHA1(c1913545cd71ee75e60ade744a2a1054f770b981) )
1231 ROM_LOAD16_BYTE( "gps-001-e1.u8", 0x000001, 0x100000, CRC(ded57bd0) SHA1(4c0122f0521829d4d83b6b1c403f7e6470f14951) )
1232
1233 ROM_REGION( 0x1000000, "spritegen", 0 )
1234 ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1235 ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1236 ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1237
1238 ROM_REGION( 0x800000, "gfx2", 0 )
1239 ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1240 ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1241
1242 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1243 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1244 /* 0x040000 - 0x3fffff empty? */
1245
1246 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1247 ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1248 ROM_END
1249
1250 ROM_START( galpanise )
1251 SKNS_EUROPE
1252
1253 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1254 ROM_LOAD16_BYTE( "u10", 0x000000, 0x100000, CRC(e78e1623) SHA1(f68346b65d2613c8515894d9a239fcbb0b5cb52d) ) /* mask ROM with no labels */
1255 ROM_LOAD16_BYTE( "u8", 0x000001, 0x100000, CRC(098eff7c) SHA1(3cac22cbb11905a46afaa62c0470624b3b554fc0) ) /* mask ROM with no labels */
1256
1257 ROM_REGION( 0x1000000, "spritegen", 0 )
1258 ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1259 ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1260 ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1261
1262 ROM_REGION( 0x800000, "gfx2", 0 )
1263 ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1264 ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1265
1266 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1267 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1268 /* 0x040000 - 0x3fffff empty? */
1269
1270 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1271 ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1272 ROM_END
1273
1274 ROM_START( galpanisj )
1275 SKNS_JAPAN
1276
1277 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1278 ROM_LOAD16_BYTE( "gps-000-j1.u10", 0x000000, 0x100000, CRC(c6938c3f) SHA1(05853ee6a44a55702788a75580b04a4be45e9bcb) )
1279 ROM_LOAD16_BYTE( "gps-001-j1.u8", 0x000001, 0x100000, CRC(e764177a) SHA1(3a1333eb1022ed1a275b9c3d44b5f4ab81618fb6) )
1280
1281 ROM_REGION( 0x1000000, "spritegen", 0 )
1282 ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1283 ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1284 ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1285
1286 ROM_REGION( 0x800000, "gfx2", 0 )
1287 ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1288 ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1289
1290 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1291 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1292 /* 0x040000 - 0x3fffff empty? */
1293
1294 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1295 ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1296 ROM_END
1297
1298 ROM_START( galpanisa )
1299 SKNS_ASIA
1300
1301 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1302 ROM_LOAD16_BYTE( "gps-000-a0_9abc.u10", 0x000000, 0x100000, CRC(4e24b799) SHA1(614f4eb6a7b0ab03ea6ada28a670ed0759b3f4f9) ) /* hand written labels with checksum */
1303 ROM_LOAD16_BYTE( "gps-001-a0_bd64.u8", 0x000001, 0x100000, CRC(aa4db8af) SHA1(10cc15fa065b6a2dcaf8c7d701c5ae7c18e4e863) ) /* hand written labels with checksum */
1304
1305 ROM_REGION( 0x1000000, "spritegen", 0 )
1306 ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1307 ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1308 ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1309
1310 ROM_REGION( 0x800000, "gfx2", 0 )
1311 ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1312 ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1313
1314 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1315 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1316 /* 0x040000 - 0x3fffff empty? */
1317
1318 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1319 ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1320 ROM_END
1321
1322 ROM_START( galpanisk )
1323 SKNS_KOREA
1324
1325 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1326 ROM_LOAD16_BYTE( "gps-000-k1.u10", 0x000000, 0x100000, CRC(c9ff3d8a) SHA1(edfec265654aaa8cb307424e5b2899e708392cd0) )
1327 ROM_LOAD16_BYTE( "gps-001-k1.u8", 0x000001, 0x100000, CRC(354e601d) SHA1(4d176f2337a3b0b63548b2e542f9fa87d0a1ef7b) )
1328
1329 ROM_REGION( 0x1000000, "spritegen", 0 )
1330 ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1331 ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1332 ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1333
1334 ROM_REGION( 0x800000, "gfx2", 0 )
1335 ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1336 ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1337
1338 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1339 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1340 /* 0x040000 - 0x3fffff empty? */
1341
1342 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1343 ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1344 ROM_END
1345
1346 ROM_START( galpans2 ) //only the 2 program ROMs were dumped, but mask ROMs are supposed to match.
1347 SKNS_EUROPE
1348
1349 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1350 ROM_LOAD16_BYTE( "gps2e_u6__ver.3.u6", 0x000000, 0x100000, CRC(72fff5d1) SHA1(57001e04c469281a82a2956c6bc33502d5a3b882) )
1351 ROM_LOAD16_BYTE( "gps2e_u4__ver.3.u4", 0x000001, 0x100000, CRC(95061601) SHA1(f98f1af9877b097e97acc5a3844ef9c523a92843) )
1352
1353 ROM_REGION( 0x1000000, "spritegen", 0 )
1354 ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1355 ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1356 ROM_LOAD( "gs210200.u8", 0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1357 ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1358
1359 ROM_REGION( 0x800000, "gfx2", 0 )
1360 ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1361 ROM_LOAD( "gs220100.u9", 0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1362
1363 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1364 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1365 /* 0x040000 - 0x3fffff empty? */
1366 ROM_LOAD( "gs221000.u3", 0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1367
1368 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1369 ROM_LOAD( "gs230000.u1", 0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1370 ROM_END
1371
1372 ROM_START( galpans2j )
1373 SKNS_JAPAN
1374
1375 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1376 ROM_LOAD16_BYTE( "gps2j.u6", 0x000000, 0x100000, CRC(6e74005b) SHA1(a57e8307062e262c2e7a84e2c58f7dfe03fc0f78) )
1377 ROM_LOAD16_BYTE( "gps2j.u4", 0x000001, 0x100000, CRC(9b4b2304) SHA1(0b481f4d71d92bf23f38ed22979efd4409004857) )
1378
1379 ROM_REGION( 0x1000000, "spritegen", 0 )
1380 ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1381 ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1382 ROM_LOAD( "gs210200.u8", 0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1383 ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1384
1385 ROM_REGION( 0x800000, "gfx2", 0 )
1386 ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1387 ROM_LOAD( "gs220100.u9", 0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1388
1389 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1390 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1391 /* 0x040000 - 0x3fffff empty? */
1392 ROM_LOAD( "gs221000.u3", 0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1393
1394 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1395 ROM_LOAD( "gs230000.u1", 0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1396 ROM_END
1397
1398 ROM_START( galpans2a )
1399 SKNS_ASIA
1400
1401 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1402 ROM_LOAD16_BYTE( "gps2av11.u6", 0x000000, 0x100000, CRC(61c05d5f) SHA1(e47c7951c1f688edb6c677532f750537a64bb7b3) )
1403 ROM_LOAD16_BYTE( "gps2av11.u4", 0x000001, 0x100000, CRC(2e8c0ac2) SHA1(d066260d6d3c2924b42394e867523e6112a125c5) )
1404
1405 ROM_REGION( 0x1000000, "spritegen", 0 )
1406 ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1407 ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1408 ROM_LOAD( "gs210200.u8", 0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1409 ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1410
1411 ROM_REGION( 0x800000, "gfx2", 0 )
1412 ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1413 ROM_LOAD( "gs220100.u9", 0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1414
1415 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1416 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1417 /* 0x040000 - 0x3fffff empty? */
1418 ROM_LOAD( "gs221000.u3", 0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1419
1420 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1421 ROM_LOAD( "gs230000.u1", 0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1422 ROM_END
1423
1424 /*
1425
1426 Gals Panic SU (Kaneko 1999)
1427 Korean hacked version. Runs on Super Kaneko Nova System mainboard
1428 and original Super Kaneko Nova System ROM board labelled "ROM-BOARD"
1429 EPROMs at U8, U10 and mainboard U10 are new to this version.
1430 The ROM board is wired to accept 16MBit SOP44 maskROMs.
1431 The actual ROMs used are 32M. There are some wire mods to enable the
1432 higher capacity ROMs, basically wiring pin 44 of the SOP44's to
1433 some logic to enable it.
1434 All of the SOP44 ROMs are from Gals Panic 2, but because Gals Panic 2
1435 uses a different ROM board the Gals Panic SU ROMs are at different
1436 locations.
1437 For Gals Panic SU, the 32M ROMs can be taken from the existing
1438 Gals Panic 2 set.
1439
1440 */
1441
1442 ROM_START( galpansu )
1443 SKNS_KOREA
1444
1445 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1446 ROM_LOAD16_BYTE( "su.u10", 0x000000, 0x100000, CRC(5ae66218) SHA1(c3f32603e1da945efb984ff99e1a30202e535773) )
1447 ROM_LOAD16_BYTE( "su.u8", 0x000001, 0x100000, CRC(10977a03) SHA1(2ab95398d6b88d8819f368ee6104d7f8b485778d) )
1448
1449 /* the rest of the ROMs match Gals Panic S2, but are in different locations */
1450 ROM_REGION( 0x1000000, "spritegen", 0 )
1451 ROM_LOAD( "24", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1452 ROM_LOAD( "20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1453 ROM_LOAD( "17", 0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1454 ROM_LOAD( "32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1455
1456 ROM_REGION( 0x800000, "gfx2", 0 )
1457 ROM_LOAD( "16", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1458 ROM_LOAD( "13", 0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1459
1460 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1461 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1462 /* 0x040000 - 0x3fffff empty? */
1463 ROM_LOAD( "7", 0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1464
1465 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1466 ROM_LOAD( "4", 0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1467 ROM_END
1468
1469 ROM_START( galpans3 )
1470 SKNS_JAPAN
1471
1472 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1473 ROM_LOAD16_BYTE( "gpss3.u10", 0x000000, 0x100000, CRC(c1449a72) SHA1(02db81a0ea349742d6ddf71d59fcfce45f0c5212) )
1474 ROM_LOAD16_BYTE( "gpss3.u8", 0x000001, 0x100000, CRC(11eb44cf) SHA1(482ef27fa86d6777def46918eac8be019896c0b0) )
1475
1476 ROM_REGION( 0x1000000, "spritegen", 0 )
1477 ROM_LOAD( "u24.bin", 0x000000, 0x800000, CRC(70613168) SHA1(637c50e733dbc0226b1e0acc8000faa7e8977cb6) )
1478
1479 ROM_REGION( 0x800000, "gfx2", 0 )
1480 ROM_LOAD( "u16.bin", 0x000000, 0x800000, CRC(a96daf2a) SHA1(40f4c32158d320146aeeac34c15ca6816a6876bc) )
1481
1482 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1483 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1484 /* 0x040000 - 0x3fffff empty? */
1485
1486 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1487 ROM_LOAD( "u4.bin", 0x000000, 0x400000, CRC(bf5736c6) SHA1(781292d87e9da1d21c1ac540baefff5e2f84a3f5) )
1488 ROM_END
1489
1490 ROM_START( gutsn )
1491 SKNS_JAPAN
1492
1493 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1494 ROM_LOAD16_BYTE( "gts000j0.u6", 0x000000, 0x080000, CRC(8ee91310) SHA1(8dd918189fe445d79c7f028168862b852f70a6f2) )
1495 ROM_LOAD16_BYTE( "gts001j0.u4", 0x000001, 0x080000, CRC(80b8ee66) SHA1(4faf5f358ceee866f09bd81e63ba3ebd21bde835) )
1496
1497 ROM_REGION( 0x400000, "spritegen", 0 )
1498 ROM_LOAD( "gts10000.u24", 0x000000, 0x400000, CRC(1959979e) SHA1(92a68784664dd833ca6fcca1b15cd46b9365d081) )
1499
1500 ROM_REGION( 0x400000, "gfx2", 0 )
1501 ROM_LOAD( "gts20000.u16", 0x000000, 0x400000, CRC(c443aac3) SHA1(b0416a09ead26077e9276bae98d94eeb1cf86877) )
1502
1503 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1504 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1505 /* 0x040000 - 0x3fffff empty? */
1506
1507 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1508 ROM_LOAD( "gts30000.u4", 0x000000, 0x400000, CRC(8c169141) SHA1(41caea6fa644515f7417c84bdac599b13ad07e8c) )
1509 ROM_END
1510
1511 ROM_START( panicstr )
1512 SKNS_JAPAN
1513
1514 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1515 ROM_LOAD16_BYTE( "ps1000j0.u10", 0x000000, 0x100000, CRC(59645f89) SHA1(8da205c6e38899d6c637941700dd7eea56011c10) )
1516 ROM_LOAD16_BYTE( "ps1001j0.u8", 0x000001, 0x100000, CRC(c4722be9) SHA1(7009d320a80cfa7d80efc5fc915081914bc3c827) )
1517
1518 ROM_REGION( 0x800000, "spritegen", 0 )
1519 ROM_LOAD( "ps-10000.u24", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1520 ROM_LOAD( "ps110100.u20", 0x400000, 0x400000, CRC(e292f393) SHA1(b0914f7f0abf9f821f2592c289ea4e3b3e7f819a) )
1521
1522 ROM_REGION( 0x400000, "gfx2", 0 )
1523 ROM_LOAD( "ps120000.u16", 0x000000, 0x400000, CRC(d772ac15) SHA1(6bf7b9bfccdcb7481b21fa2ab9b683d79033a192) )
1524
1525 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1526 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1527 /* 0x040000 - 0x3fffff empty? */
1528
1529 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1530 ROM_LOAD( "ps-30000.u4", 0x000000, 0x400000, CRC(2262e263) SHA1(73443e5f40f5c5c9bd41c6207fa6376072f0f65e) )
1531 ROM_END
1532
1533 ROM_START( puzzloop )
1534 SKNS_EUROPE
1535
1536 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1537 ROM_LOAD16_BYTE( "pl00e4.u6", 0x000000, 0x080000, CRC(7d3131a5) SHA1(f9302aa27addb8a730102b1869a34063d8b44e62) ) /* V0.94 */
1538 ROM_LOAD16_BYTE( "pl00e4.u4", 0x000001, 0x080000, CRC(40dc3291) SHA1(d955752a2c884e6dd951f9a87f9d249bb1ab9116) ) /* V0.94 */
1539
1540 ROM_REGION( 0x800000, "spritegen", 0 )
1541 ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1542
1543 ROM_REGION( 0x400000, "gfx2", 0 )
1544 ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1545
1546 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1547 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1548 /* 0x040000 - 0x3fffff empty? */
1549 ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1550
1551 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1552 ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1553 ROM_END
1554
1555 ROM_START( puzzloope )
1556 SKNS_EUROPE
1557
1558 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1559 ROM_LOAD16_BYTE( "pl00e1.u6", 0x000000, 0x080000, CRC(273adc38) SHA1(37ca873342ba9fb9951114048a9cd255f73fe19c) ) /* V0.93 */
1560 ROM_LOAD16_BYTE( "pl00e1.u4", 0x000001, 0x080000, CRC(14ac2870) SHA1(d1abcfd64d7c0ead67e879c40e1010453fd4da13) ) /* V0.93 */
1561
1562 ROM_REGION( 0x800000, "spritegen", 0 )
1563 ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1564
1565 ROM_REGION( 0x400000, "gfx2", 0 )
1566 ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1567
1568 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1569 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1570 /* 0x040000 - 0x3fffff empty? */
1571 ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1572
1573 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1574 ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1575 ROM_END
1576
1577 ROM_START( puzzloopj )
1578 SKNS_JAPAN
1579
1580 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1581 ROM_LOAD16_BYTE( "pl0j2.u6", 0x000000, 0x080000, CRC(23c3bf97) SHA1(77ea1f32bed5709a6ad5b250370f08cfe8036867) ) /* V0.94 */
1582 ROM_LOAD16_BYTE( "pl0j2.u4", 0x000001, 0x080000, CRC(55b2a3cb) SHA1(d4cbe143fe2ad622af808cbd9eedffeff3b77e0d) ) /* V0.94 */
1583
1584 ROM_REGION( 0x800000, "spritegen", 0 )
1585 ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1586
1587 ROM_REGION( 0x400000, "gfx2", 0 )
1588 ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1589
1590 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1591 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1592 /* 0x040000 - 0x3fffff empty? */
1593 ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1594
1595 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1596 ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1597 ROM_END
1598
1599 ROM_START( puzzloopa )
1600 SKNS_ASIA
1601
1602 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1603 ROM_LOAD16_BYTE( "pl0a3.u6", 0x000000, 0x080000, CRC(4e8673b8) SHA1(17acfb0550912e6f2519df2bc24fbf629a1f6147) ) /* V0.94 */
1604 ROM_LOAD16_BYTE( "pl0a3.u4", 0x000001, 0x080000, CRC(e08a1a07) SHA1(aba58a81ae46c7b4e235a3213984026d170fa189) ) /* V0.94 */
1605
1606 ROM_REGION( 0x800000, "spritegen", 0 )
1607 ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1608
1609 ROM_REGION( 0x400000, "gfx2", 0 )
1610 ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1611
1612 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1613 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1614 /* 0x040000 - 0x3fffff empty? */
1615 ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1616
1617 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1618 ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1619 ROM_END
1620
1621 ROM_START( puzzloopk )
1622 SKNS_KOREA
1623
1624 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1625 ROM_LOAD16_BYTE( "pl0k4.u6", 0x000000, 0x080000, CRC(8d81f20c) SHA1(c32a525e8f92a625e3fecb7c43dd04b13e0a75e4) ) /* V0.94 */
1626 ROM_LOAD16_BYTE( "pl0k4.u4", 0x000001, 0x080000, CRC(17c78e41) SHA1(4a4b612ae00d521d2947ab32554ebb615be72471) ) /* V0.94 */
1627
1628 ROM_REGION( 0x800000, "spritegen", 0 )
1629 ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1630
1631 ROM_REGION( 0x400000, "gfx2", 0 )
1632 ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1633
1634 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1635 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1636 /* 0x040000 - 0x3fffff empty? */
1637 ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1638
1639 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1640 ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1641 ROM_END
1642
1643 ROM_START( puzzloopu )
1644 SKNS_USA
1645
1646 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1647 ROM_LOAD16_BYTE( "plue5.u6", 0x000000, 0x080000, CRC(e6f3f82f) SHA1(ac61dc22fa3c1b1c2f3a41d3a8fb43938b77ca68) ) /* V0.94 */
1648 ROM_LOAD16_BYTE( "plue5.u4", 0x000001, 0x080000, CRC(0d081d30) SHA1(ec0cdf120126104b9bb706f68c9ba9c3777dd69c) ) /* V0.94 */
1649
1650 ROM_REGION( 0x800000, "spritegen", 0 )
1651 ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1652
1653 ROM_REGION( 0x400000, "gfx2", 0 )
1654 ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1655
1656 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1657 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1658 /* 0x040000 - 0x3fffff empty? */
1659 ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1660
1661 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1662 ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1663 ROM_END
1664
1665 ROM_START( jjparads )
1666 SKNS_JAPAN
1667
1668 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1669 ROM_LOAD16_BYTE( "jp1j1.u10", 0x000000, 0x080000, CRC(de2fb669) SHA1(229ff1ae0ec5bc77fc17642964e0bb0146594e86) )
1670 ROM_LOAD16_BYTE( "jp1j1.u8", 0x000001, 0x080000, CRC(7276efb1) SHA1(3edc265b5c02da7d21a2494a6dc2878fbad93f87) )
1671
1672 ROM_REGION( 0x1000000, "spritegen", 0 )
1673 ROM_LOAD( "jp100-00.u24", 0x000000, 0x400000, CRC(f31b2e95) SHA1(7e5bb518d4f6423785d3f9f2752a624a66b42469) )
1674 ROM_LOAD( "jp101-00.u20", 0x400000, 0x400000, CRC(70cc8c24) SHA1(a4805ce19f512b047829548b635e68690d714175) )
1675 ROM_LOAD( "jp102-00.u17", 0x800000, 0x400000, CRC(35401c1e) SHA1(38fe86a08555bb823b8d64ac043330aaaa6b8892) )
1676
1677 ROM_REGION( 0x200000, "gfx2", 0 )
1678 ROM_LOAD( "jp200-00.u16", 0x000000, 0x200000, CRC(493d63db) SHA1(4b8fe7ff1ae14a914a675ce4072a4d9e5cfc08b0) )
1679
1680 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1681 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1682 /* 0x040000 - 0x3fffff empty? */
1683
1684 ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1685 ROM_LOAD( "jp300-00.u4", 0x000000, 0x200000, CRC(7023fe46) SHA1(24a92133bc664d63b3be67c2ef11cd7b605ee7e8) )
1686 ROM_END
1687
1688 ROM_START( jjparad2 )
1689 SKNS_JAPAN
1690
1691 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1692 ROM_LOAD16_BYTE( "jp2000j1.u6", 0x000000, 0x080000, CRC(5d75e765) SHA1(33bcd8f929f6025b00df2ea783b13a391a28a5c3) )
1693 ROM_LOAD16_BYTE( "jp2001j1.u4", 0x000001, 0x080000, CRC(1771910a) SHA1(7ca9584d379d7b41f303a3ba861f943c570ad97c) )
1694
1695 ROM_REGION( 0x1000000, "spritegen", 0 )
1696 ROM_LOAD( "jp210000.u21", 0x000000, 0x400000, CRC(79a7e3d7) SHA1(bd0f8d01971e5895395f97f2520bcd03ab19d229) )
1697 ROM_LOAD( "jp210100.u20", 0x400000, 0x400000, CRC(42415e0c) SHA1(f7bff86d55fa9002fbd14e4c62f9d3df8faaf7d0) )
1698 ROM_LOAD( "jp210200.u8", 0x800000, 0x400000, CRC(26731745) SHA1(8939d36b82b10b1010e4b924e6b9fdd4742efe48) )
1699
1700 ROM_REGION( 0x800000, "gfx2", 0 )
1701 ROM_LOAD( "jp220000.u17", 0x000000, 0x400000, CRC(d0e71873) SHA1(c6ffba3624e6d4c2d4e12ef7d88a02cbc3867b18) )
1702 ROM_LOAD( "jp220100.u9", 0x400000, 0x400000, CRC(4c7d964d) SHA1(3352cd866a64466f4f5a990c2c5e3e28e7028a99) )
1703
1704 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1705 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1706 /* 0x040000 - 0x3fffff empty? */
1707
1708 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1709 ROM_LOAD( "jp230000.u1", 0x000000, 0x400000, CRC(73e30d7f) SHA1(af5b16cec722dbbf0e03d73edfa133dbf10ac4f3) )
1710 ROM_END
1711
1712 ROM_START( sengekis )
1713 SKNS_ASIA
1714
1715 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1716 ROM_LOAD16_BYTE( "ss01a.u6", 0x000000, 0x080000, CRC(962fe857) SHA1(3df74c5efff11333dea9316a063129dcec0d7bdd) )
1717 ROM_LOAD16_BYTE( "ss01a.u4", 0x000001, 0x080000, CRC(ee853c23) SHA1(ddbf7f7cf509788ee3daf7b4d8ae1482e6e31a03) )
1718
1719 ROM_REGION( 0x1000000, "spritegen", 0 )
1720 ROM_LOAD( "ss100-00.u21", 0x000000, 0x400000, CRC(bc7b3dfa) SHA1(dff10a7aef548abda48470293382057a2ca9557e) )
1721 ROM_LOAD( "ss101-00.u20", 0x400000, 0x400000, CRC(ab2df280) SHA1(e456c578a36f585b24379d74def1bcab276c2b1b) )
1722 ROM_LOAD( "ss102-00.u8", 0x800000, 0x400000, CRC(0845eafe) SHA1(663b163bf4e87c7df0030e791f95b1a5827de315) )
1723 ROM_LOAD( "ss103-00.u32", 0xc00000, 0x400000, CRC(ee451ac9) SHA1(01cc6b6f371c0090a6a7f4c33d05f4b9a6c59fee) )
1724
1725 ROM_REGION( 0x800000, "gfx2", 0 )
1726 ROM_LOAD( "ss200-00.u17", 0x000000, 0x400000, CRC(cd773976) SHA1(38b8df5e685be65c3fde09f9e585591f678632d4) )
1727 ROM_LOAD( "ss201-00.u9", 0x400000, 0x400000, CRC(301fad4c) SHA1(15faf37eeec5cc46afcb4bd236345b5c3dd647ac) )
1728
1729 ROM_REGION( 0x600000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1730 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1731 /* 0x040000 - 0x3fffff empty? */
1732 ROM_LOAD( "ss210-00.u3", 0x400000, 0x200000, CRC(c3697805) SHA1(bd41064e3527cdc4b9a4ab9c423c916309b3f057) )
1733
1734 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1735 ROM_LOAD( "ss300-00.u1", 0x000000, 0x400000, CRC(35b04b18) SHA1(b69f33fc6a50ec20382329317d20b3c1e7f01b87) )
1736 ROM_END
1737
1738 ROM_START( sengekisj )
1739 SKNS_JAPAN
1740
1741 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1742 ROM_LOAD16_BYTE( "ss01j.u6", 0x000000, 0x080000, CRC(9efdcd5a) SHA1(66cca04d07999dc8ca0bcf19db925996b34d0390) )
1743 ROM_LOAD16_BYTE( "ss01j.u4", 0x000001, 0x080000, CRC(92c3f45e) SHA1(60c647e66b0126fb7749874be39938972481b957) )
1744
1745 ROM_REGION( 0x1000000, "spritegen", 0 )
1746 ROM_LOAD( "ss100-00.u21", 0x000000, 0x400000, CRC(bc7b3dfa) SHA1(dff10a7aef548abda48470293382057a2ca9557e) )
1747 ROM_LOAD( "ss101-00.u20", 0x400000, 0x400000, CRC(ab2df280) SHA1(e456c578a36f585b24379d74def1bcab276c2b1b) )
1748 ROM_LOAD( "ss102-00.u8", 0x800000, 0x400000, CRC(0845eafe) SHA1(663b163bf4e87c7df0030e791f95b1a5827de315) )
1749 ROM_LOAD( "ss103-00.u32", 0xc00000, 0x400000, CRC(ee451ac9) SHA1(01cc6b6f371c0090a6a7f4c33d05f4b9a6c59fee) )
1750
1751 ROM_REGION( 0x800000, "gfx2", 0 )
1752 ROM_LOAD( "ss200-00.u17", 0x000000, 0x400000, CRC(cd773976) SHA1(38b8df5e685be65c3fde09f9e585591f678632d4) )
1753 ROM_LOAD( "ss201-00.u9", 0x400000, 0x400000, CRC(301fad4c) SHA1(15faf37eeec5cc46afcb4bd236345b5c3dd647ac) )
1754
1755 ROM_REGION( 0x600000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1756 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1757 /* 0x040000 - 0x3fffff empty? */
1758 ROM_LOAD( "ss210-00.u3", 0x400000, 0x200000, CRC(c3697805) SHA1(bd41064e3527cdc4b9a4ab9c423c916309b3f057) )
1759
1760 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1761 ROM_LOAD( "ss300-00.u1", 0x000000, 0x400000, CRC(35b04b18) SHA1(b69f33fc6a50ec20382329317d20b3c1e7f01b87) )
1762 ROM_END
1763
1764 ROM_START( senknow )
1765 SKNS_JAPAN
1766
1767 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1768 ROM_LOAD16_BYTE( "snw000j1.u6", 0x000000, 0x080000, CRC(0d6136f6) SHA1(eedd011cfe03577bfaf386723502d03f6e5dbd8c) )
1769 ROM_LOAD16_BYTE( "snw001j1.u4", 0x000001, 0x080000, CRC(4a10ec3d) SHA1(bbec4fc53bd61d06ffe5a53debada5785b124fdd) )
1770
1771 ROM_REGION( 0x0800000, "spritegen", 0 )
1772 ROM_LOAD( "snw10000.u21", 0x000000, 0x400000, CRC(5133c69c) SHA1(d279df3ffd005dbf0930a8e40eaf2467f8653284) )
1773 ROM_LOAD( "snw10100.u20", 0x400000, 0x400000, CRC(9dafe03f) SHA1(978b4597ff2a54ac5049fd64798e8173b29dd363) )
1774
1775 ROM_REGION( 0x800000, "gfx2", 0 )
1776 ROM_LOAD( "snw20000.u17", 0x000000, 0x400000, CRC(d5fe5f8c) SHA1(817d8d0a5fbc0c50dc3c592f938150f82df97cec) )
1777 ROM_LOAD( "snw20100.u9", 0x400000, 0x400000, CRC(c0037846) SHA1(3267b142ebce47e1717250239d98fdb4af7964f8) )
1778
1779 ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1780 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1781 /* 0x040000 - 0x3fffff empty? */
1782 ROM_LOAD( "snw21000.u3", 0x400000, 0x400000, CRC(f5c23e79) SHA1(b509680001c3205b289f43d4f44aaaa7f896419b) )
1783
1784 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1785 ROM_LOAD( "snw30000.u1", 0x000000, 0x400000, CRC(ec9eef40) SHA1(8f74ec9cb6054a77227c0505094f0ef8bc371429) )
1786 ROM_END
1787
1788 ROM_START( teljan )
1789 SKNS_JAPAN
1790
1791 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1792 ROM_LOAD16_BYTE( "tel1j.u10", 0x000000, 0x080000, CRC(09b552fe) SHA1(2f315fd09eb22fa8c81faa1e926038f20daa845f) )
1793 ROM_LOAD16_BYTE( "tel1j.u8", 0x000001, 0x080000, CRC(070b4345) SHA1(5743f12a351b89593c6adfaeb8a5a2ab7bc8b424) )
1794
1795 ROM_REGION( 0x1000000, "spritegen", 0 )
1796 ROM_LOAD( "tj100-00.u24", 0x000000, 0x400000, CRC(810144f1) SHA1(1c90e71e5f34ee05771ab4a673329f78f17791df) )
1797 ROM_LOAD( "tj101-00.u20", 0x400000, 0x400000, CRC(82f570e1) SHA1(3ba9d1775f897052aca5cff2edbf575399101c5c) )
1798 ROM_LOAD( "tj102-00.u17", 0x800000, 0x400000, CRC(ace875dc) SHA1(be97c895beeac979c5704986e818d4f3cfa00e49) )
1799
1800 ROM_REGION( 0x400000, "gfx2", 0 )
1801 ROM_LOAD( "tj200-00.u16", 0x000000, 0x400000, CRC(be0f90b2) SHA1(1848a65f244e1e8a3ff7ab38e76f86cabca8b47e) )
1802
1803 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1804 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1805 /* 0x040000 - 0x3fffff empty? */
1806
1807 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1808 ROM_LOAD( "tj300-00.u4", 0x000000, 0x400000, CRC(685495c4) SHA1(3853c0583b84ed3163370ae48e4b3912cbeb986e) )
1809 ROM_END
1810
1811
1812 ROM_START( ryouran )
1813 SKNS_JAPAN
1814
1815 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1816 ROM_LOAD16_BYTE( "or-000-j2.u10", 0x000000, 0x080000, CRC(cba8ca4e) SHA1(7389502622a04101ca34f7b390ca0da820f62590) )
1817 ROM_LOAD16_BYTE( "or-001-j2.u8", 0x000001, 0x080000, CRC(8e79c6b7) SHA1(0441d279cdc998e96abd6f607eceb4f866f58337) )
1818
1819 ROM_REGION( 0x1000000, "spritegen", 0 )
1820 ROM_LOAD( "or100-00.u24", 0x000000, 0x400000, CRC(e9c7695b) SHA1(0a104d4e4e0c933d2eaaf410a8c243db6673786a) )
1821 ROM_LOAD( "or101-00.u20", 0x400000, 0x400000, CRC(fe06bf12) SHA1(f3a2f88aed65bcc1c16f37fd4c0011e3538128f7) )
1822 ROM_LOAD( "or102-00.u17", 0x800000, 0x400000, CRC(f2a5237b) SHA1(b8871f9c0f3864c334ec9a8146cf7dd1961ecb94) )
1823
1824 ROM_REGION( 0x800000, "gfx2", 0 )
1825 ROM_LOAD( "or200-00.u16", 0x000000, 0x400000, CRC(4c4701a8) SHA1(7b397b553ba86bba2ee82228cabdf2179e878d69) )
1826 ROM_LOAD( "or201-00.u13", 0x400000, 0x400000, CRC(a94064aa) SHA1(5d736f810ffdbb6ada5c5efcb5fb29eedafc3e2f) )
1827
1828 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1829 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1830 /* 0x040000 - 0x3fffff empty? */
1831
1832 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1833 ROM_LOAD( "or300-00.u4", 0x000000, 0x400000, CRC(a3f64b79) SHA1(6ecb2b4c0d213fe5384b19d6bfdb86871f21fd9f) )
1834 ROM_END
1835
1836 ROM_START( ryourano )
1837 SKNS_JAPAN
1838
1839 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1840 ROM_LOAD16_BYTE( "or000j1.u10", 0x000000, 0x080000, CRC(d93aa491) SHA1(dc01707f1e80d81f28d6b685d08fc6c0d2bf7330) )
1841 ROM_LOAD16_BYTE( "or001j1.u8", 0x000001, 0x080000, CRC(f466e5e9) SHA1(65d699f6f9e299333e51a6a52cb13a0f1a902fe1) )
1842
1843 ROM_REGION( 0x1000000, "spritegen", 0 )
1844 ROM_LOAD( "or100-00.u24", 0x000000, 0x400000, CRC(e9c7695b) SHA1(0a104d4e4e0c933d2eaaf410a8c243db6673786a) )
1845 ROM_LOAD( "or101-00.u20", 0x400000, 0x400000, CRC(fe06bf12) SHA1(f3a2f88aed65bcc1c16f37fd4c0011e3538128f7) )
1846 ROM_LOAD( "or102-00.u17", 0x800000, 0x400000, CRC(f2a5237b) SHA1(b8871f9c0f3864c334ec9a8146cf7dd1961ecb94) )
1847
1848 ROM_REGION( 0x800000, "gfx2", 0 )
1849 ROM_LOAD( "or200-00.u16", 0x000000, 0x400000, CRC(4c4701a8) SHA1(7b397b553ba86bba2ee82228cabdf2179e878d69) )
1850 ROM_LOAD( "or201-00.u13", 0x400000, 0x400000, CRC(a94064aa) SHA1(5d736f810ffdbb6ada5c5efcb5fb29eedafc3e2f) )
1851
1852 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1853 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1854 /* 0x040000 - 0x3fffff empty? */
1855
1856 ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1857 ROM_LOAD( "or300-00.u4", 0x000000, 0x400000, CRC(a3f64b79) SHA1(6ecb2b4c0d213fe5384b19d6bfdb86871f21fd9f) )
1858 ROM_END
1859
1860 ROM_START( vblokbrk )
1861 SKNS_EUROPE
1862
1863 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1864 ROM_LOAD16_BYTE( "sk000e2-e.u10", 0x000000, 0x080000, CRC(5a278f10) SHA1(6f1be0657da76144b0feeed672d92a85091289b6) ) /* labeled SK000e2/E */
1865 ROM_LOAD16_BYTE( "sk000e-o.u8", 0x000001, 0x080000, CRC(aecf0647) SHA1(4752e5012bae8e7af3972b455b4346499ec2b49c) ) /* labeled SK000e/O */
1866
1867 ROM_REGION( 0x0400000, "spritegen", 0 )
1868 ROM_LOAD( "sk-100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) )
1869 ROM_LOAD( "sk-101.u20", 0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) )
1870
1871 ROM_REGION( 0x200000, "gfx2", 0 )
1872 ROM_LOAD( "sk-200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) )
1873
1874 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1875 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1876 /* 0x040000 - 0x3fffff empty? */
1877
1878 ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1879 ROM_LOAD( "sk-300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) )
1880 ROM_END
1881
1882 ROM_START( vblokbrka )
1883 SKNS_ASIA
1884
1885 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1886 ROM_LOAD16_BYTE( "sk01a.u10", 0x000000, 0x080000, CRC(4d1be53e) SHA1(3d28b73a67530147962b8df6244af8bea2ab080f) )
1887 ROM_LOAD16_BYTE( "sk01a.u8", 0x000001, 0x080000, CRC(461e0197) SHA1(003573a4abdbecc6dd234a13c61ef07a25d980e2) )
1888
1889 ROM_REGION( 0x0400000, "spritegen", 0 )
1890 ROM_LOAD( "sk-100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) )
1891 ROM_LOAD( "sk-101.u20", 0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) )
1892
1893 ROM_REGION( 0x200000, "gfx2", 0 )
1894 ROM_LOAD( "sk-200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) )
1895
1896 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1897 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1898 /* 0x040000 - 0x3fffff empty? */
1899
1900 ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1901 ROM_LOAD( "sk-300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) )
1902 ROM_END
1903
1904 ROM_START( sarukani )
1905 SKNS_JAPAN
1906
1907 ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1908 ROM_LOAD16_BYTE( "sk1j1.u10", 0x000000, 0x080000, CRC(fcc131b6) SHA1(5e3e71ee1f736b6098e671e6f57b1fb313c81adb) )
1909 ROM_LOAD16_BYTE( "sk1j1.u8", 0x000001, 0x080000, CRC(3b6aa343) SHA1(a969b20b1170d82351024cab9e37f2fbfd01ddeb) )
1910
1911 ROM_REGION( 0x0400000, "spritegen", 0 )
1912 ROM_LOAD( "sk-100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) )
1913 ROM_LOAD( "sk-101.u20", 0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) )
1914
1915 ROM_REGION( 0x200000, "gfx2", 0 )
1916 ROM_LOAD( "sk-200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) )
1917
1918 ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1919 /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1920 /* 0x040000 - 0x3fffff empty? */
1921
1922 ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1923 ROM_LOAD( "sk-300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) )
1924 ROM_END
1925
1926
1927 /***** GAME DRIVERS *****/
1928
1929 GAME( 1996, skns, 0, skns, skns, skns_state, empty_init, ROT0, "Kaneko", "Super Kaneko Nova System BIOS", MACHINE_IS_BIOS_ROOT )
1930
1931 GAME( 1996, galpani4, skns, sknse, cyvern, skns_state, init_galpani4, ROT0, "Kaneko", "Gals Panic 4 (Europe)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // 2nd sound ROM wasn't dumped, it's different than GP4-301-01
1932 GAME( 1996, galpani4j, galpani4, sknsj, cyvern, skns_state, init_galpani4, ROT0, "Kaneko", "Gals Panic 4 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1933 GAME( 1996, galpani4k, galpani4, sknsk, cyvern, skns_state, init_galpani4, ROT0, "Kaneko", "Gals Panic 4 (Korea)", MACHINE_IMPERFECT_GRAPHICS )
1934 GAME( 2001, galpanidx, galpani4, sknsa, cyvern, skns_state, init_galpani4, ROT0, "Kaneko", "Gals Panic DX (Asia)", MACHINE_IMPERFECT_GRAPHICS ) // copyright 2001, re-release for the Asian market?
1935 // there is a Gals Panic 4 version with 'Gals Panic SU' title as well, seen for sale in Korea (different to the Gals Panic SU clone of galpans2)
1936
1937 GAME( 1996, jjparads, skns, sknsj, skns_1p, skns_state, init_jjparads, ROT0, "Electro Design", "Jan Jan Paradise", MACHINE_IMPERFECT_GRAPHICS )
1938
1939 GAME( 1997, galpanis, skns, sknse, galpanis, skns_state, init_galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Europe, set 1)", MACHINE_IMPERFECT_GRAPHICS )
1940 GAME( 1997, galpanise, galpanis, sknse, galpanis, skns_state, init_galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Europe, set 2)", MACHINE_IMPERFECT_GRAPHICS )
1941 GAME( 1997, galpanisj, galpanis, sknsj, galpanis, skns_state, init_galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1942 GAME( 1997, galpanisa, galpanis, sknsa, galpanis, skns_state, init_galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1943 GAME( 1997, galpanisk, galpanis, sknsk, galpanis, skns_state, init_galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Korea)", MACHINE_IMPERFECT_GRAPHICS )
1944
1945 GAME( 1997, jjparad2, skns, sknsj, skns_1p, skns_state, init_jjparad2, ROT0, "Electro Design", "Jan Jan Paradise 2", MACHINE_IMPERFECT_GRAPHICS )
1946
1947 GAME( 1997, sengekis, skns, sknsa, skns, skns_state, init_sengekis, ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1948 GAME( 1997, sengekisj, sengekis, sknsj, skns, skns_state, init_sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1949
1950 GAME( 1997, vblokbrk, skns, sknse, vblokbrk, skns_state, init_sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Europe)", MACHINE_IMPERFECT_GRAPHICS )
1951 GAME( 1997, vblokbrka, vblokbrk, sknsa, vblokbrk, skns_state, init_sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1952 GAME( 1997, sarukani, vblokbrk, sknsj, vblokbrk, skns_state, init_sarukani, ROT0, "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1953
1954 GAME( 1998, cyvern, skns, sknsu, cyvern, skns_state, init_cyvern, ROT90, "Kaneko", "Cyvern - The Dragon Weapons (US)", MACHINE_IMPERFECT_GRAPHICS )
1955 GAME( 1998, cyvernj, cyvern, sknsj, cyvern, skns_state, init_cyvern, ROT90, "Kaneko", "Cyvern - The Dragon Weapons (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1956
1957 GAME( 1998, puzzloop, skns, sknse, puzzloop, skns_state, init_puzzloopu, ROT0, "Mitchell", "Puzz Loop (Europe, v0.94)", MACHINE_IMPERFECT_GRAPHICS ) // Same speed up as US version
1958 GAME( 1998, puzzloope, puzzloop, sknse, puzzloop, skns_state, init_puzzloope, ROT0, "Mitchell", "Puzz Loop (Europe, v0.93)", MACHINE_IMPERFECT_GRAPHICS )
1959 GAME( 1998, puzzloopj, puzzloop, sknsj, puzzloop, skns_state, init_puzzloopj, ROT0, "Mitchell", "Puzz Loop (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1960 GAME( 1998, puzzloopa, puzzloop, sknsa, puzzloop, skns_state, init_puzzloopa, ROT0, "Mitchell", "Puzz Loop (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1961 GAME( 1998, puzzloopk, puzzloop, sknsk, puzzloop, skns_state, init_puzzloopu, ROT0, "Mitchell", "Puzz Loop (Korea)", MACHINE_IMPERFECT_GRAPHICS ) // Same speed up as US version
1962 GAME( 1998, puzzloopu, puzzloop, sknsu, puzzloop, skns_state, init_puzzloopu, ROT0, "Mitchell", "Puzz Loop (USA)", MACHINE_IMPERFECT_GRAPHICS )
1963
1964 GAME( 1998, ryouran , skns, sknsj, skns_1p, skns_state, init_ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 1)", MACHINE_IMPERFECT_GRAPHICS )
1965 GAME( 1998, ryourano, ryouran, sknsj, skns_1p, skns_state, init_ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 2)", MACHINE_IMPERFECT_GRAPHICS )
1966
1967 GAME( 1999, galpans2, skns, sknse, galpanis, skns_state, init_galpans2, ROT0, "Kaneko", "Gals Panic S2 (Europe)", MACHINE_IMPERFECT_GRAPHICS )
1968 GAME( 1999, galpans2j, galpans2, sknsj, galpanis, skns_state, init_galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1969 GAME( 1999, galpans2a, galpans2, sknsa, galpanis, skns_state, init_galpans2, ROT0, "Kaneko", "Gals Panic S2 (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1970 GAME( 1999, galpansu, galpans2, sknsk, galpanis, skns_state, init_galpans2, ROT0, "Kaneko", "Gals Panic SU (Korea)", MACHINE_IMPERFECT_GRAPHICS ) // official or hack?
1971
1972 GAME( 1999, panicstr, skns, sknsj, galpanis, skns_state, init_panicstr, ROT0, "Kaneko", "Panic Street (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1973
1974 GAME( 1999, senknow , skns, sknsj, skns, skns_state, init_senknow, ROT0, "Kaneko / Kouyousha", "Sen-Know (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1975
1976 GAME( 1999, teljan , skns, sknsj, skns_1p, skns_state, init_teljan, ROT0, "Electro Design", "Tel Jan", MACHINE_IMPERFECT_GRAPHICS )
1977
1978 GAME( 2000, gutsn, skns, sknsj, skns, skns_state, init_gutsn, ROT0, "Kaneko / Kouyousha", "Guts'n (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1979
1980 GAME( 2002, galpans3, skns, sknsj, galpanis, skns_state, init_galpans3, ROT0, "Kaneko", "Gals Panic S3 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1981