1 /*
2 Sega System16 Hardware
3 major cleanup in progress - still a lot to do!
4
5 see vidhrdw/system16.c for more information
6 */
7
8 /***************************************************************************/
9 /*
10 ASTORMBL
11 3. In the ending, the 3 heroes are floating into a half bubble. (see picture).
12 Also colour problems during ending as well.
13 4. In the later Shooting gallery stage (like inside the car shop and the factory (mission 3)),
14 there is some garbage graphics (sprite of death monsters that appear where they should not)
15
16 working:
17 Alex Kidd
18 Alien Storm (bootleg)
19 Alien Syndrome
20 Altered Beast (Ver 1)
21 Altered Beast (Ver 2) (No Sound)
22 Atomic Point (No Sound)
23 Aurail (Speech quality sounds poor)
24 Aurail (317-0168)
25 Bay Route
26 Body Slam
27 Dump Matsumoto (Japan, Body Slam)
28 Dynamite Dux (bootleg)
29 Enduro Racer (bootleg)
30 Enduro Racer (custom bootleg)
31 E-Swat (bootleg)
32 Fantasy Zone (Old Ver.)
33 Fantasy Zone (New Ver.)
34 Flash Point (bootleg)
35 Golden Axe (Ver 1)
36 Golden Axe (Ver 2)
37 Hang-on
38 Heavyweight Champ: some minor graphics glitches
39 Major League: No game over.
40 Moonwalker (bootleg): Music Speed varies
41 Outrun (set 1)
42 Outrun (set 2)
43 Outrun (custom bootleg)
44 Passing Shot (bootleg)
45 Passing Shot (4 player bootleg)
46 Quartet: Glitch on highscore list
47 Quartet (Japan): Glitch on highscore list
48 Quartet 2: Glitch on highscore list
49 Riot City
50 SDI
51 Shadow Dancer
52 Shadow Dancer (Japan)
53 Shinobi
54 Shinobi (Sys16A Bootleg?)
55 Space Harrier
56 Super Hangon (bootleg)
57 Tetris (bootleg)
58 Time Scanner
59 Toryumon
60 Tough Turf (Japan) (No Sound)
61 Tough Turf (US) (No Sound)
62 Tough Turf (bootleg) (No Speech Roms)
63 Wonderboy 3 - Monster Lair
64 Wonderboy 3 - Monster Lair (bootleg)
65 Wrestle War
66
67 not really working:
68 Shadow Dancer (bootleg)
69
70 protected:
71 Alex Kidd (jpn?)
72 Alien Syndrome
73 Alien Syndrome
74 Alien Syndrome (Japan)
75 Alien Storm
76 Alien Storm (2 Player)
77 Bay Route (317-0116)
78 Bay Route (protected bootleg 1)
79 Bay Route (protected bootleg 2)
80 Enduro Racer
81 E-Swat
82 Flash Point
83 Golden Axe (Ver 1 317-0121 Japan)
84 Golden Axe (Ver 2 317-0110)
85 Golden Axe (Ver 2 317-0122)
86 Golden Axe (protected bootleg)
87 Jyuohki (Japan, altered beast)
88 Moonwalker (317-0158)
89 Moonwalker (317-0159)
90 Passing Shot (317-0080)
91 Shinobi (Sys16B 317-0049)
92 Shinobi (Sys16A 317-0050)
93 SDI (Japan, old version)
94 Super Hangon
95 Tetris (Type A)
96 Tetris (Type B 317-0092)
97 Wonderboy 3 - Monster Lair (317-0089)
98
99 protected (No driver):
100 Ace Attacker
101 Action Fighter
102 Bloxeed
103 Clutch Hitter
104 Cotton (Japan)
105 Cotton
106 DD Crew
107 Dunk Shot
108 Excite League
109 Laser Ghost
110 MVP
111 Ryukyu
112 Super Leagu
113 Turbo Outrun
114 Turbo Outrun (Set 2)
115 */
116
117 #include "driver.h"
118 #include "vidhrdw/generic.h"
119 #include "cpu/z80/z80.h"
120 #include "cpu/i8039/i8039.h"
121 #include "system16.h"
122
123 /***************************************************************************/
124
125 // 7751 emulation
126 WRITE_HANDLER( sys16_7751_audio_8255_w );
127 READ_HANDLER( sys16_7751_audio_8255_r );
128 READ_HANDLER( sys16_7751_sh_rom_r );
129 READ_HANDLER( sys16_7751_sh_t1_r );
130 READ_HANDLER( sys16_7751_sh_command_r );
131 WRITE_HANDLER( sys16_7751_sh_dac_w );
132 WRITE_HANDLER( sys16_7751_sh_busy_w );
133 WRITE_HANDLER( sys16_7751_sh_offset_a0_a3_w );
134 WRITE_HANDLER( sys16_7751_sh_offset_a4_a7_w );
135 WRITE_HANDLER( sys16_7751_sh_offset_a8_a11_w );
136 WRITE_HANDLER( sys16_7751_sh_rom_select_w );
137
138 /***************************************************************************/
139
140 int sys16_wwfix=0, sys16_alienfix=0; //*
141
142 static data16_t coinctrl;
143
WRITE16_HANDLER(sys16_3d_coinctrl_w)144 static WRITE16_HANDLER( sys16_3d_coinctrl_w )
145 {
146 if( ACCESSING_LSB ){
147 coinctrl = data&0xff;
148 sys16_refreshenable = coinctrl & 0x10;
149 coin_counter_w(0,coinctrl & 0x01);
150 /* bit 6 is also used (0 in fantzone) */
151
152 /* Hang-On, Super Hang-On, Space Harrier, Enduro Racer */
153 set_led_status(0,coinctrl & 0x04);
154
155 /* Space Harrier */
156 set_led_status(1,coinctrl & 0x08);
157 }
158 }
159
INTERRUPT_GEN(sys16_interrupt)160 static INTERRUPT_GEN( sys16_interrupt )
161 {
162 if(sys16_custom_irq) sys16_custom_irq();
163 cpu_set_irq_line(0, 4, HOLD_LINE); /* Interrupt vector 4, used by VBlank */
164 }
165
166
167
168 /***************************************************************************/
169
MEMORY_READ_START(sound_readmem)170 static MEMORY_READ_START( sound_readmem )
171 { 0x0000, 0x7fff, MRA_ROM },
172 { 0xe800, 0xe800, soundlatch_r },
173 { 0xf800, 0xffff, MRA_RAM },
174 MEMORY_END
175
176 static MEMORY_WRITE_START( sound_writemem )
177 { 0x0000, 0x7fff, MWA_ROM },
178 { 0xf800, 0xffff, MWA_RAM },
179 MEMORY_END
180
181 static PORT_READ_START( sound_readport )
182 { 0x01, 0x01, YM2151_status_port_0_r },
183 { 0xc0, 0xc0, soundlatch_r },
184 PORT_END
185
186 static PORT_WRITE_START( sound_writeport )
187 { 0x00, 0x00, YM2151_register_port_0_w },
188 { 0x01, 0x01, YM2151_data_port_0_w },
189 PORT_END
190
191 // 7751 Sound
192 static MEMORY_READ_START( sound_readmem_7751 )
193 { 0x0000, 0x7fff, MRA_ROM },
194 { 0xe800, 0xe800, soundlatch_r },
195 { 0xf800, 0xffff, MRA_RAM },
196 MEMORY_END
197
198 static PORT_READ_START( sound_readport_7751 )
199 { 0x01, 0x01, YM2151_status_port_0_r },
200 // { 0x0e, 0x0e, sys16_7751_audio_8255_r },
201 { 0xc0, 0xc0, soundlatch_r },
202 PORT_END
203
204 static PORT_WRITE_START( sound_writeport_7751 )
205 { 0x00, 0x00, YM2151_register_port_0_w },
206 { 0x01, 0x01, YM2151_data_port_0_w },
207 { 0x80, 0x80, sys16_7751_audio_8255_w },
208 PORT_END
209
210 static MEMORY_READ_START( readmem_7751 )
211 { 0x0000, 0x03ff, MRA_ROM },
212 MEMORY_END
213
214 static MEMORY_WRITE_START( writemem_7751 )
215 { 0x0000, 0x03ff, MWA_ROM },
216 MEMORY_END
217
218 static PORT_READ_START( readport_7751 )
219 { I8039_t1, I8039_t1, sys16_7751_sh_t1_r },
220 { I8039_p2, I8039_p2, sys16_7751_sh_command_r },
221 { I8039_bus, I8039_bus, sys16_7751_sh_rom_r },
222 PORT_END
223
224 static PORT_WRITE_START( writeport_7751 )
225 { I8039_p1, I8039_p1, sys16_7751_sh_dac_w },
226 { I8039_p2, I8039_p2, sys16_7751_sh_busy_w },
227 { I8039_p4, I8039_p4, sys16_7751_sh_offset_a0_a3_w },
228 { I8039_p5, I8039_p5, sys16_7751_sh_offset_a4_a7_w },
229 { I8039_p6, I8039_p6, sys16_7751_sh_offset_a8_a11_w },
230 { I8039_p7, I8039_p7, sys16_7751_sh_rom_select_w },
231 PORT_END
232
233 // 7759
234 static MEMORY_READ_START( sound_readmem_7759 )
235 { 0x0000, 0x7fff, MRA_ROM },
236 { 0x8000, 0xdfff, MRA_BANK1 },
237 { 0xe800, 0xe800, soundlatch_r },
238 { 0xf800, 0xffff, MRA_RAM },
239 MEMORY_END
240
241
242 static WRITE_HANDLER( UPD7759_bank_w ) //*
243 {
244 int offs, size = memory_region_length(REGION_CPU2) - 0x10000;
245
246 UPD7759_reset_w(0, data & 0x40);
247 if (sys16_alienfix && (data&0x30)==0x20) data-=2;
248 offs = 0x10000 + (data * 0x4000) % size;
249 cpu_setbank(1, memory_region(REGION_CPU2) + offs);
250 }
251
252
PORT_WRITE_START(sound_writeport_7759)253 static PORT_WRITE_START( sound_writeport_7759 )
254 { 0x00, 0x00, YM2151_register_port_0_w },
255 { 0x01, 0x01, YM2151_data_port_0_w },
256 { 0x40, 0x40, UPD7759_bank_w },
257 { 0x80, 0x80, UPD7759_0_port_w },
258 PORT_END
259
260
261 static WRITE16_HANDLER( sound_command_w ){
262 if( ACCESSING_LSB ){
263 soundlatch_w( 0,data&0xff );
264 cpu_set_irq_line( 1, 0, HOLD_LINE );
265 }
266 }
267
WRITE16_HANDLER(sound_command_nmi_w)268 static WRITE16_HANDLER( sound_command_nmi_w ){
269 if( ACCESSING_LSB ){
270 soundlatch_w( 0,data&0xff );
271 cpu_set_nmi_line(1, PULSE_LINE);
272 }
273 }
274
275 //static data16_t coinctrl;
276
READ16_HANDLER(sys16_coinctrl_r)277 static READ16_HANDLER( sys16_coinctrl_r ){
278 return coinctrl;
279 }
280
WRITE16_HANDLER(sys16_coinctrl_w)281 static WRITE16_HANDLER( sys16_coinctrl_w )
282 {
283 if( ACCESSING_LSB ){
284 coinctrl = data&0xff;
285 sys16_refreshenable = coinctrl & 0x20;
286 coin_counter_w(0,coinctrl & 0x01);
287 set_led_status(0,coinctrl & 0x04);
288 set_led_status(1,coinctrl & 0x08);
289 /* bit 6 is also used (1 most of the time; 0 in dduxbl, sdi, wb3;
290 tturf has it normally 1 but 0 after coin insertion) */
291 /* eswat sets bit 4 */
292 }
293 }
294
295 /***************************************************************************/
296
297 static MACHINE_DRIVER_START( system16 )
298
299 /* basic machine hardware */
300 MDRV_CPU_ADD_TAG("main", M68000, 10000000)
301 MDRV_CPU_VBLANK_INT(sys16_interrupt,1)
302
303 MDRV_CPU_ADD_TAG("sound", Z80, 4000000)
MDRV_CPU_FLAGS(CPU_AUDIO_CPU)304 MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
305 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
306 MDRV_CPU_PORTS(sound_readport,sound_writeport)
307
308 MDRV_FRAMES_PER_SECOND(60)
309 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
310
311 /* video hardware */
312 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
313 MDRV_SCREEN_SIZE(40*8, 28*8)
314 MDRV_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
315 MDRV_GFXDECODE(sys16_gfxdecodeinfo)
316 MDRV_PALETTE_LENGTH(2048*ShadowColorsMultiplier)
317
318 MDRV_VIDEO_START(system16)
319 MDRV_VIDEO_UPDATE(system16)
320
321 /* sound hardware */
322 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
323 MDRV_SOUND_ADD_TAG("2151", YM2151, sys16_ym2151_interface)
324 MACHINE_DRIVER_END
325
326
327 static MACHINE_DRIVER_START( system16_7759 )
328
329 /* basic machine hardware */
330 MDRV_IMPORT_FROM(system16)
331
332 MDRV_CPU_MODIFY("sound")
333 MDRV_CPU_MEMORY(sound_readmem_7759,sound_writemem)
334 MDRV_CPU_PORTS(sound_readport,sound_writeport_7759)
335
336 /* sound hardware */
337 MDRV_SOUND_ADD_TAG("7759", UPD7759, sys16_upd7759_interface)
338 MACHINE_DRIVER_END
339
340
341 static MACHINE_DRIVER_START( system16_7751 )
342
343 /* basic machine hardware */
344 MDRV_IMPORT_FROM(system16)
345
346 MDRV_CPU_MODIFY("sound")
347 MDRV_CPU_MEMORY(sound_readmem_7751,sound_writemem)
348 MDRV_CPU_PORTS(sound_readport_7751,sound_writeport_7751)
349
350 MDRV_CPU_ADD(N7751, 6000000/15)
351 MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
352 MDRV_CPU_MEMORY(readmem_7751,writemem_7751)
353 MDRV_CPU_PORTS(readport_7751,writeport_7751)
354
355 /* sound hardware */
356 MDRV_SOUND_ADD(DAC, sys16_7751_dac_interface)
357 MACHINE_DRIVER_END
358
359 /***************************************************************************/
360
361 static void set_tile_bank( int data ){
362 sys16_tile_bank1 = data&0xf;
363 sys16_tile_bank0 = (data>>4)&0xf;
364 }
365
366 #if 0
367 static void set_tile_bank18( int data ){
368 sys16_tile_bank0 = data&0xf;
369 sys16_tile_bank1 = (data>>4)&0xf;
370 }
371 #endif
372
set_fg_page(int data)373 static void set_fg_page( int data ){
374 sys16_fg_page[0] = data>>12;
375 sys16_fg_page[1] = (data>>8)&0xf;
376 sys16_fg_page[2] = (data>>4)&0xf;
377 sys16_fg_page[3] = data&0xf;
378 }
379
set_bg_page(int data)380 static void set_bg_page( int data ){
381 sys16_bg_page[0] = data>>12;
382 sys16_bg_page[1] = (data>>8)&0xf;
383 sys16_bg_page[2] = (data>>4)&0xf;
384 sys16_bg_page[3] = data&0xf;
385 }
386
set_fg_page1(int data)387 static void set_fg_page1( int data ){
388 sys16_fg_page[1] = data>>12;
389 sys16_fg_page[0] = (data>>8)&0xf;
390 sys16_fg_page[3] = (data>>4)&0xf;
391 sys16_fg_page[2] = data&0xf;
392 }
393
set_bg_page1(int data)394 static void set_bg_page1( int data ){
395 sys16_bg_page[1] = data>>12;
396 sys16_bg_page[0] = (data>>8)&0xf;
397 sys16_bg_page[3] = (data>>4)&0xf;
398 sys16_bg_page[2] = data&0xf;
399 }
400
401 #if 0
402 static void set_fg2_page( int data ){
403 sys16_fg2_page[0] = data>>12;
404 sys16_fg2_page[1] = (data>>8)&0xf;
405 sys16_fg2_page[2] = (data>>4)&0xf;
406 sys16_fg2_page[3] = data&0xf;
407 }
408
409 static void set_bg2_page( int data ){
410 sys16_bg2_page[0] = data>>12;
411 sys16_bg2_page[1] = (data>>8)&0xf;
412 sys16_bg2_page[2] = (data>>4)&0xf;
413 sys16_bg2_page[3] = data&0xf;
414 }
415 #endif
416
417 /***************************************************************************/
418 // sys16A
419 ROM_START( alexkidd )
420 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
CRC(bdf49eca)421 ROM_LOAD16_BYTE( "epr10429.42", 0x000000, 0x10000, CRC(bdf49eca) SHA1(899bc2d346544e4a33de51b60e02ebf7ee82cea8) )
422 ROM_LOAD16_BYTE( "epr10427.26", 0x000001, 0x10000, CRC(f6e3dd29) SHA1(bb94ebc062bb7c6c13b68579053b9cbe8b92417c) )
423 ROM_LOAD16_BYTE( "epr10430.43", 0x020000, 0x10000, CRC(89e3439f) SHA1(7c751bb477584842d93fda6686b03e289140bd62) )
424 ROM_LOAD16_BYTE( "epr10428.25", 0x020001, 0x10000, CRC(dbed3210) SHA1(1e2d22935a633641ff88967d67ec673ee25cbf55) )
425
426 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
427 ROM_LOAD( "10431.95", 0x00000, 0x08000, CRC(a7962c39) SHA1(c816fc5d9f21b2ba32b9841e64b634bce7ea78c8) )
428 ROM_LOAD( "10432.94", 0x08000, 0x08000, CRC(db8cd24e) SHA1(656d98844ad9ccaa68e3f501137dddd0a27d999d) )
429 ROM_LOAD( "10433.93", 0x10000, 0x08000, CRC(e163c8c2) SHA1(ac54c5ecedca5b1a2c550de32687ca57c4d3a411) )
430
431 ROM_REGION( 0x040000, REGION_GFX2, 0 ) /* sprites */
432 ROM_LOAD16_BYTE( "10437.10", 0x000001, 0x8000, CRC(522f7618) SHA1(9a6bc857dfef1dd1b7bffa034523c1c4cd8b3f4c) )
433 ROM_LOAD16_BYTE( "10441.11", 0x000000, 0x8000, CRC(74e3a35c) SHA1(26b980a0a3aee94ac38e0e0c7d305bb35a60d1c4) )
434 ROM_LOAD16_BYTE( "10438.17", 0x010001, 0x8000, CRC(738a6362) SHA1(a3c5f10c263cb216d275875f6333484a1cca281b) )
435 ROM_LOAD16_BYTE( "10442.18", 0x010000, 0x8000, CRC(86cb9c14) SHA1(42bd0ed985de61ff183eed0192257966caa01594) )
436 ROM_LOAD16_BYTE( "10439.23", 0x020001, 0x8000, CRC(b391aca7) SHA1(ca9d80b67e5365f709f90a5342b5e3aa7c7126e1) )
437 ROM_LOAD16_BYTE( "10443.24", 0x020000, 0x8000, CRC(95d32635) SHA1(788af2af1ae783128bcdc8cd44d17cd2f1542231) )
438 ROM_LOAD16_BYTE( "10440.29", 0x030001, 0x8000, CRC(23939508) SHA1(68450a18fc7e35f5b0155632aa68cffd251be38c) )
439 ROM_LOAD16_BYTE( "10444.30", 0x030000, 0x8000, CRC(82115823) SHA1(e4103003cda949bebe57815115a5028f4fe8e7d7) )
440
441 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
442 ROM_LOAD( "10434.12", 0x0000, 0x8000, CRC(77141cce) SHA1(6c5e83527f7e11a5ff5cc4fa75d55618a55e1a58) )
443
444 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
445 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
446
447 ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 7751 sound data (not used yet) */
448 ROM_LOAD( "10435.1", 0x0000, 0x8000, CRC(ad89f6e3) SHA1(812a132142065b0fe13b5f0ac534b6d8830ba102) )
449 ROM_LOAD( "10436.2", 0x8000, 0x8000, CRC(96c76613) SHA1(fe3e4e649fd2cb2453eec0c92015bd54b3b9a1b5) )
450 ROM_END
451
452 ROM_START( alexkida )
453 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
454 ROM_LOAD16_BYTE( "10447.43", 0x000000, 0x10000, CRC(29e87f71) SHA1(af980e55c02b3de1121c144fee23af74d24042ac) )
455 ROM_LOAD16_BYTE( "10445.26", 0x000001, 0x10000, CRC(25ce5b6f) SHA1(dfec64df7e8d145d30740808bc94bdbbe667c4e8) )
456 ROM_LOAD16_BYTE( "10448.42", 0x020000, 0x10000, CRC(05baedb5) SHA1(fc15989bf3d850170e4e018d74f18553f0268576) )
457 ROM_LOAD16_BYTE( "10446.25", 0x020001, 0x10000, CRC(cd61d23c) SHA1(c235c4fef28556e9f2d07e815ad213c308e85598) )
458
459 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
460 ROM_LOAD( "10431.95", 0x00000, 0x08000, CRC(a7962c39) SHA1(c816fc5d9f21b2ba32b9841e64b634bce7ea78c8) )
461 ROM_LOAD( "10432.94", 0x08000, 0x08000, CRC(db8cd24e) SHA1(656d98844ad9ccaa68e3f501137dddd0a27d999d) )
462 ROM_LOAD( "10433.93", 0x10000, 0x08000, CRC(e163c8c2) SHA1(ac54c5ecedca5b1a2c550de32687ca57c4d3a411) )
463
464 ROM_REGION( 0x040000, REGION_GFX2, 0 ) /* sprites */
465 ROM_LOAD16_BYTE( "10437.10", 0x000001, 0x8000, CRC(522f7618) SHA1(9a6bc857dfef1dd1b7bffa034523c1c4cd8b3f4c) )
466 ROM_LOAD16_BYTE( "10441.11", 0x000000, 0x8000, CRC(74e3a35c) SHA1(26b980a0a3aee94ac38e0e0c7d305bb35a60d1c4) )
467 ROM_LOAD16_BYTE( "10438.17", 0x010001, 0x8000, CRC(738a6362) SHA1(a3c5f10c263cb216d275875f6333484a1cca281b) )
468 ROM_LOAD16_BYTE( "10442.18", 0x010000, 0x8000, CRC(86cb9c14) SHA1(42bd0ed985de61ff183eed0192257966caa01594) )
469 ROM_LOAD16_BYTE( "10439.23", 0x020001, 0x8000, CRC(b391aca7) SHA1(ca9d80b67e5365f709f90a5342b5e3aa7c7126e1) )
470 ROM_LOAD16_BYTE( "10443.24", 0x020000, 0x8000, CRC(95d32635) SHA1(788af2af1ae783128bcdc8cd44d17cd2f1542231) )
471 ROM_LOAD16_BYTE( "10440.29", 0x030001, 0x8000, CRC(23939508) SHA1(68450a18fc7e35f5b0155632aa68cffd251be38c) )
472 ROM_LOAD16_BYTE( "10444.30", 0x030000, 0x8000, CRC(82115823) SHA1(e4103003cda949bebe57815115a5028f4fe8e7d7) )
473
474 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
475 ROM_LOAD( "10434.12", 0x0000, 0x8000, CRC(77141cce) SHA1(6c5e83527f7e11a5ff5cc4fa75d55618a55e1a58) )
476
477 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
478 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
479
480 ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 7751 sound data */
481 ROM_LOAD( "10435.1", 0x0000, 0x8000, CRC(ad89f6e3) SHA1(812a132142065b0fe13b5f0ac534b6d8830ba102) )
482 ROM_LOAD( "10436.2", 0x8000, 0x8000, CRC(96c76613) SHA1(fe3e4e649fd2cb2453eec0c92015bd54b3b9a1b5) )
483 ROM_END
484
485 /***************************************************************************/
486
487 static READ16_HANDLER( alexkidd_skip_r ){
488 if (activecpu_get_pc()==0x242c) {cpu_spinuntil_int(); return 0xffff;}
489 return sys16_workingram[0x3108/2];
490 }
491
MEMORY_READ16_START(alexkidd_readmem)492 static MEMORY_READ16_START( alexkidd_readmem )
493 { 0x000000, 0x03ffff, MRA16_ROM },
494 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
495 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
496 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
497 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
498 { 0xc40002, 0xc40005, MRA16_NOP }, //??
499 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
500 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
501 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
502 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
503 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
504 { 0xc60000, 0xc60001, MRA16_NOP },
505 { 0xfff108, 0xfff109, alexkidd_skip_r },
506 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
507 MEMORY_END
508
509 static MEMORY_WRITE16_START( alexkidd_writemem )
510 { 0x000000, 0x03ffff, MWA16_ROM },
511 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
512 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
513 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
514 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
515 { 0xc40000, 0xc40001, sound_command_nmi_w },
516 { 0xc40002, 0xc40005, MWA16_NOP }, //??
517 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
518 MEMORY_END
519
520 /***************************************************************************/
521
522 static void alexkidd_update_proc( void ){
523 set_bg_page1( sys16_textram[0x74e] );
524 set_fg_page1( sys16_textram[0x74f] );
525 sys16_fg_scrollx = sys16_textram[0x7fc] & 0x01ff;
526 sys16_bg_scrollx = sys16_textram[0x7fd] & 0x01ff;
527 sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff;
528 sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff;
529 }
530
MACHINE_INIT(alexkidd)531 static MACHINE_INIT( alexkidd ){
532 sys16_textmode=1;
533 sys16_spritesystem = sys16_sprite_quartet2;
534 sys16_sprxoffset = -0xbc;
535 sys16_fgxoffset = sys16_bgxoffset = 7;
536 sys16_bg_priority_mode=1;
537
538 sys16_update_proc = alexkidd_update_proc;
539 }
540
DRIVER_INIT(alexkidd)541 static DRIVER_INIT( alexkidd )
542 {
543 machine_init_sys16_onetime();
544 }
545 /***************************************************************************/
546
INPUT_PORTS_START(alexkidd)547 INPUT_PORTS_START( alexkidd )
548 SYS16_JOY1_SWAPPEDBUTTONS
549 SYS16_JOY2_SWAPPEDBUTTONS
550 SYS16_SERVICE
551 SYS16_COINAGE
552
553 PORT_START /* DSW1 */
554 PORT_DIPNAME( 0x01, 0x00, "Continues" )
555 PORT_DIPSETTING( 0x01, "Only before level 5" )
556 PORT_DIPSETTING( 0x00, "Unlimited" )
557 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
558 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
559 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
560 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
561 PORT_DIPSETTING( 0x0c, "3" )
562 PORT_DIPSETTING( 0x08, "4" )
563 PORT_DIPSETTING( 0x04, "5" )
564 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "240", IP_KEY_NONE, IP_JOY_NONE )
565 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
566 PORT_DIPSETTING( 0x20, "10000" )
567 PORT_DIPSETTING( 0x30, "20000" )
568 PORT_DIPSETTING( 0x10, "40000" )
569 PORT_DIPSETTING( 0x00, "None" )
570 PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" )
571 PORT_DIPSETTING( 0x80, "70" )
572 PORT_DIPSETTING( 0xc0, "60" )
573 PORT_DIPSETTING( 0x40, "50" )
574 PORT_DIPSETTING( 0x00, "40" )
575
576 INPUT_PORTS_END
577
578 /***************************************************************************/
579
580 static MACHINE_DRIVER_START( alexkidd )
581
582 /* basic machine hardware */
583 MDRV_IMPORT_FROM(system16_7751)
584 MDRV_CPU_MODIFY("main")
585 MDRV_CPU_MEMORY(alexkidd_readmem,alexkidd_writemem)
586
587 MDRV_MACHINE_INIT(alexkidd)
588 MACHINE_DRIVER_END
589
590 /***************************************************************************/
591 // sys16B
592 ROM_START( aliensyn )
593 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
594 ROM_LOAD16_BYTE( "11083.a4", 0x00000, 0x8000, CRC(cb2ad9b3) SHA1(66284b4e1071b3cb4b36960a2dba8949325f9e86) )
595 ROM_LOAD16_BYTE( "11080.a1", 0x00001, 0x8000, CRC(fe7378d9) SHA1(acfee79e5fe9fdf95926562c02599e96e96f76b5) )
596 ROM_LOAD16_BYTE( "11084.a5", 0x10000, 0x8000, CRC(2e1ec7b1) SHA1(666a9e402d7d02d74c0a2468853a3843b161c1a2) )
597 ROM_LOAD16_BYTE( "11081.a2", 0x10001, 0x8000, CRC(1308ee63) SHA1(36a4c8cf3a310398e264c57c7c6f53c05dbc0108) )
598 ROM_LOAD16_BYTE( "11085.a6", 0x20000, 0x8000, CRC(cff78f39) SHA1(78431ce6c03232150a8db15499da9371977b570b) )
599 ROM_LOAD16_BYTE( "11082.a3", 0x20001, 0x8000, CRC(9cdc2a14) SHA1(c06693f45675e31d591703c27bb3f6ec02fc1215) )
600
601 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
602 ROM_LOAD( "10702.b9", 0x00000, 0x10000, CRC(393bc813) SHA1(672782c8fb2a6e454b27e073acc26130cacf3e50) )
603 ROM_LOAD( "10703.b10", 0x10000, 0x10000, CRC(6b6dd9f5) SHA1(964409c6630caa13caf7d644d0c6fb071860b61b) )
604 ROM_LOAD( "10704.b11", 0x20000, 0x10000, CRC(911e7ebc) SHA1(f03d3d3a09d19f7b705f9cb29f73140a3073463f) )
605
606 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
607 ROM_LOAD16_BYTE( "10709.b1", 0x00001, 0x10000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
608 ROM_LOAD16_BYTE( "10713.b5", 0x00000, 0x10000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
609 ROM_LOAD16_BYTE( "10710.b2", 0x20001, 0x10000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
610 ROM_LOAD16_BYTE( "10714.b6", 0x20000, 0x10000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
611 ROM_LOAD16_BYTE( "10711.b3", 0x40001, 0x10000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
612 ROM_LOAD16_BYTE( "10715.b7", 0x40000, 0x10000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
613 ROM_LOAD16_BYTE( "10712.b4", 0x60001, 0x10000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
614 ROM_LOAD16_BYTE( "10716.b8", 0x60000, 0x10000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
615
616 ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */
617 ROM_LOAD( "10723.a7", 0x00000, 0x8000, CRC(99953526) SHA1(4a980370923fd5d3dc9e25d42a032c9e78c7ff47) )
618 ROM_LOAD( "10724.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) )
619 ROM_LOAD( "10726.a10",0x18000, 0x8000, CRC(d50b7736) SHA1(b1f8e3b0cf2ffee5382098100cfabe21b383cd51) ) //*
620 ROM_LOAD( "10725.a9", 0x20000, 0x8000, CRC(6a50e08f) SHA1(d34b2ccadb8b07d5ad99cab5c5b5b79642c65574) )
621 ROM_END
622
623 // sys16A - use a different sound chip?
624 ROM_START( aliensya )
625 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code. I guessing the order a bit here */
626 ROM_LOAD16_BYTE( "10808", 0x00000, 0x8000, CRC(e669929f) SHA1(b5ab41d6f31f0369f8c5f5eb6fc08e8c23312b96) )
627 ROM_LOAD16_BYTE( "10806", 0x00001, 0x8000, CRC(9f7f8fdd) SHA1(819e9c491b7d23deaef646d37319c38e75827d68) )
628 ROM_LOAD16_BYTE( "10809", 0x10000, 0x8000, CRC(9a424919) SHA1(a7be5d9bed329099df10ff5a0104cb832485bd0a) )
629 ROM_LOAD16_BYTE( "10807", 0x10001, 0x8000, CRC(3d2c3530) SHA1(567ed45c84b1d3d92371c4ad33fdb28f68cf29a3) )
630 ROM_LOAD16_BYTE( "10701", 0x20000, 0x8000, CRC(92171751) SHA1(69a282c01db7224f32386a6db25309e09e29a112) )
631 ROM_LOAD16_BYTE( "10698", 0x20001, 0x8000, CRC(c1e4fdc0) SHA1(65817a9336f7887d2bf14485bdff8352c960d2ab) )
632
633 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
634 ROM_LOAD( "10739", 0x00000, 0x10000, CRC(a29ec207) SHA1(c469d2689a7bdc2a59dfff56ce13d34e9fbac263) )
635 ROM_LOAD( "10740", 0x10000, 0x10000, CRC(47f93015) SHA1(68247a6bffd1d4d1c450148dd46214d01ce1c668) )
636 ROM_LOAD( "10741", 0x20000, 0x10000, CRC(4970739c) SHA1(5bdf4222209ec46e0015bfc0f90578dd9b30bdd1) )
637
638 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
639 ROM_LOAD16_BYTE( "10709.b1", 0x00001, 0x10000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
640 ROM_LOAD16_BYTE( "10713.b5", 0x00000, 0x10000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
641 ROM_LOAD16_BYTE( "10710.b2", 0x20001, 0x10000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
642 ROM_LOAD16_BYTE( "10714.b6", 0x20000, 0x10000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
643 ROM_LOAD16_BYTE( "10711.b3", 0x40001, 0x10000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
644 ROM_LOAD16_BYTE( "10715.b7", 0x40000, 0x10000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
645 ROM_LOAD16_BYTE( "10712.b4", 0x60001, 0x10000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
646 ROM_LOAD16_BYTE( "10716.b8", 0x60000, 0x10000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
647
648 ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */
649 ROM_LOAD( "10705", 0x00000, 0x8000, CRC(777b749e) SHA1(086b03100064a98228f95db7962b2671121c46ea) )
650 ROM_LOAD( "10706", 0x10000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
651 ROM_LOAD( "10707", 0x18000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
652 ROM_LOAD( "10708", 0x20000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
653 ROM_END
654
655 ROM_START( aliensyj )
656 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* Custom 68000 code . I guessing the order a bit here */
657 // custom cpu 317-0033
658 ROM_LOAD16_BYTE( "epr10699.43", 0x00000, 0x8000, CRC(3fd38d17) SHA1(538c1246121051a1af9ba2a4259eb1fe7e4952e1) )
659 ROM_LOAD16_BYTE( "epr10696.26", 0x00001, 0x8000, CRC(d734f19f) SHA1(4a08c35084f7a9364ba0f058b9a9ffc30c8b5a78) )
660 ROM_LOAD16_BYTE( "epr10700.42", 0x10000, 0x8000, CRC(3b04b252) SHA1(0e40e89e8feb7c98ee1da1c3fb3fe1d317c66842) )
661 ROM_LOAD16_BYTE( "epr10697.25", 0x10001, 0x8000, CRC(f2bc123d) SHA1(7848529342495289e2d4f865767f3649cd85993b) )
662 ROM_LOAD16_BYTE( "10701", 0x20000, 0x8000, CRC(92171751) SHA1(69a282c01db7224f32386a6db25309e09e29a112) )
663 ROM_LOAD16_BYTE( "10698", 0x20001, 0x8000, CRC(c1e4fdc0) SHA1(65817a9336f7887d2bf14485bdff8352c960d2ab) )
664
665 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
666 ROM_LOAD( "10739", 0x00000, 0x10000, CRC(a29ec207) SHA1(c469d2689a7bdc2a59dfff56ce13d34e9fbac263) )
667 ROM_LOAD( "10740", 0x10000, 0x10000, CRC(47f93015) SHA1(68247a6bffd1d4d1c450148dd46214d01ce1c668) )
668 ROM_LOAD( "10741", 0x20000, 0x10000, CRC(4970739c) SHA1(5bdf4222209ec46e0015bfc0f90578dd9b30bdd1) )
669
670 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
671 ROM_LOAD16_BYTE( "10709.b1", 0x00001, 0x10000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
672 ROM_LOAD16_BYTE( "10713.b5", 0x00000, 0x10000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
673 ROM_LOAD16_BYTE( "10710.b2", 0x20001, 0x10000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
674 ROM_LOAD16_BYTE( "10714.b6", 0x20000, 0x10000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
675 ROM_LOAD16_BYTE( "10711.b3", 0x40001, 0x10000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
676 ROM_LOAD16_BYTE( "10715.b7", 0x40000, 0x10000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
677 ROM_LOAD16_BYTE( "10712.b4", 0x60001, 0x10000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
678 ROM_LOAD16_BYTE( "10716.b8", 0x60000, 0x10000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
679
680 ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */
681 ROM_LOAD( "10705", 0x00000, 0x8000, CRC(777b749e) SHA1(086b03100064a98228f95db7962b2671121c46ea) )
682 ROM_LOAD( "10706", 0x10000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
683 ROM_LOAD( "10707", 0x18000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
684 ROM_LOAD( "10708", 0x20000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
685 ROM_END
686
687
688 ROM_START( aliensyb )
689 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
690 ROM_LOAD16_BYTE( "as_typeb.a4", 0x00000, 0x8000, CRC(17bf5304) SHA1(f6318c6c4a606d21ba43354229b60a51d8a3baa6) )
691 ROM_LOAD16_BYTE( "as_typeb.a1", 0x00001, 0x8000, CRC(4cd134df) SHA1(541377bd6eba280d7f0367694032891989762485) )
692 ROM_LOAD16_BYTE( "as_typeb.a5", 0x10000, 0x8000, CRC(c8b791b0) SHA1(7a83a6781ed5b43583d86d4ee5fb3120a650874b) )
693 ROM_LOAD16_BYTE( "as_typeb.a2", 0x10001, 0x8000, CRC(bdcf4a30) SHA1(e11264999f15cef7c35b6569407bb3dd8e2dd236) )
694 ROM_LOAD16_BYTE( "as_typeb.a6", 0x20000, 0x8000, CRC(1d0790aa) SHA1(c141b12aa7e4f86b96eabeb3f827ee26ddacde34) )
695 ROM_LOAD16_BYTE( "as_typeb.a3", 0x20001, 0x8000, CRC(1e7586b7) SHA1(be4c2c03119aee1b8f26f3dd79c99ce431a43b28) )
696
697 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
698 ROM_LOAD( "10702.b9", 0x00000, 0x10000, CRC(393bc813) SHA1(672782c8fb2a6e454b27e073acc26130cacf3e50) )
699 ROM_LOAD( "10703.b10", 0x10000, 0x10000, CRC(6b6dd9f5) SHA1(964409c6630caa13caf7d644d0c6fb071860b61b) )
700 ROM_LOAD( "10704.b11", 0x20000, 0x10000, CRC(911e7ebc) SHA1(f03d3d3a09d19f7b705f9cb29f73140a3073463f) )
701
702 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
703 ROM_LOAD16_BYTE( "10709.b1", 0x00001, 0x10000, CRC(addf0a90) SHA1(a92c9531f1817763773471ce63f566b9e88360a0) )
704 ROM_LOAD16_BYTE( "10713.b5", 0x00000, 0x10000, CRC(ececde3a) SHA1(9c12d4665179bf433c42f5ddc8a043ad592aa90e) )
705 ROM_LOAD16_BYTE( "10710.b2", 0x20001, 0x10000, CRC(992369eb) SHA1(c6796acf6807e9ba4c3d241903653f91adf4764e) )
706 ROM_LOAD16_BYTE( "10714.b6", 0x20000, 0x10000, CRC(91bf42fb) SHA1(4b9d3e97768323dee01e92378adafecb26bcc094) )
707 ROM_LOAD16_BYTE( "10711.b3", 0x40001, 0x10000, CRC(29166ef6) SHA1(99a7cfd7d811537c821412a320beadb5a9c09af3) )
708 ROM_LOAD16_BYTE( "10715.b7", 0x40000, 0x10000, CRC(a7c57384) SHA1(46f8efa691d7bbb0a18119c0ff12cff7c0d129e1) )
709 ROM_LOAD16_BYTE( "10712.b4", 0x60001, 0x10000, CRC(876ad019) SHA1(39973ddb5a5746e0e094c759447bff1130c72c84) )
710 ROM_LOAD16_BYTE( "10716.b8", 0x60000, 0x10000, CRC(40ba1d48) SHA1(e2d4d2689bb9b9bdc85e7f72a6665e5fd4c583aa) )
711
712 ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */
713 ROM_LOAD( "10723.a7", 0x0000, 0x8000, CRC(99953526) SHA1(4a980370923fd5d3dc9e25d42a032c9e78c7ff47) )
714 ROM_LOAD( "10724.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) )
715 ROM_LOAD( "10725.a9", 0x18000, 0x8000, CRC(6a50e08f) SHA1(d34b2ccadb8b07d5ad99cab5c5b5b79642c65574) )
716 ROM_LOAD( "10726.a10",0x20000, 0x8000, CRC(d50b7736) SHA1(b1f8e3b0cf2ffee5382098100cfabe21b383cd51) )
717 ROM_END
718
719 /***************************************************************************/
720
721 static MEMORY_READ16_START( aliensyn_readmem )
722 { 0x000000, 0x02ffff, MRA16_ROM },
723 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
724 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
725 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
726 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
727 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
728 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
729 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
730 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
731 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
732 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
733 MEMORY_END
734
735 static MEMORY_WRITE16_START( aliensyn_writemem )
736 { 0x000000, 0x02ffff, MWA16_ROM },
737 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
738 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
739 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
740 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
741 { 0xc00006, 0xc00007, sound_command_w },
742 { 0xc40000, 0xc40001, sys16_coinctrl_w },
743 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
744 MEMORY_END
745
746 /***************************************************************************/
747
748 static void aliensyn_update_proc( void ){
749 set_fg_page( sys16_textram[0x740] );
750 set_bg_page( sys16_textram[0x741] );
751 sys16_fg_scrolly = sys16_textram[0x748];
752 sys16_bg_scrolly = sys16_textram[0x749];
753 sys16_fg_scrollx = sys16_textram[0x74c];
754 sys16_bg_scrollx = sys16_textram[0x74d];
755 }
756
MACHINE_INIT(aliensyn)757 static MACHINE_INIT( aliensyn ){
758 static int bank[16] = {
759 0,0,0,0,
760 0,0,0,3,
761 0,0,0,2,
762 0,1,0,0
763 };
764 sys16_obj_bank = bank;
765
766 sys16_bg_priority_mode=1;
767 sys16_fg_priority_mode=1;
768
769 sys16_update_proc = aliensyn_update_proc;
770
771 sys16_alienfix = 1; //*
772 }
773
DRIVER_INIT(aliensyn)774 static DRIVER_INIT( aliensyn )
775 {
776 machine_init_sys16_onetime();
777 sys16_bg1_trans=1;
778 }
779
780 /***************************************************************************/
781
INPUT_PORTS_START(aliensyn)782 INPUT_PORTS_START( aliensyn )
783 SYS16_JOY1
784 SYS16_JOY2
785 SYS16_SERVICE
786 SYS16_COINAGE
787
788 PORT_START /* DSW1 */
789 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
790 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
791 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
792 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
793 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
794 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
795 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
796 PORT_DIPSETTING( 0x08, "2" )
797 PORT_DIPSETTING( 0x0c, "3" )
798 PORT_DIPSETTING( 0x04, "4" )
799 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "127", IP_KEY_NONE, IP_JOY_NONE )
800 PORT_DIPNAME( 0x30, 0x30, "Timer" )
801 PORT_DIPSETTING( 0x00, "120" )
802 PORT_DIPSETTING( 0x10, "130" )
803 PORT_DIPSETTING( 0x20, "140" )
804 PORT_DIPSETTING( 0x30, "150" )
805 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
806 PORT_DIPSETTING( 0x80, "Easy" )
807 PORT_DIPSETTING( 0xc0, "Normal" )
808 PORT_DIPSETTING( 0x40, "Hard" )
809 PORT_DIPSETTING( 0x00, "Hardest" )
810 INPUT_PORTS_END
811
812 /****************************************************************************/
813
814 static MACHINE_DRIVER_START( aliensyn )
815
816 /* basic machine hardware */
817 MDRV_IMPORT_FROM(system16_7759)
818 MDRV_CPU_MODIFY("main")
819 MDRV_CPU_MEMORY(aliensyn_readmem,aliensyn_writemem)
820
821 MDRV_MACHINE_INIT(aliensyn)
822 MACHINE_DRIVER_END
823
824 /***************************************************************************/
825 // sys16B
826 ROM_START( altbeast )
827 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
828 ROM_LOAD16_BYTE( "11705", 0x000000, 0x20000, CRC(57dc5c7a) SHA1(a5cc9b10a00778f5163fc915b956fa5d0d7a37ce) )
829 ROM_LOAD16_BYTE( "11704", 0x000001, 0x20000, CRC(33bbcf07) SHA1(534e5426580dbf72509dceb762b8b99766d3a739) )
830
831 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
832 ROM_LOAD( "11674", 0x00000, 0x20000, CRC(a57a66d5) SHA1(5103583d48997abad12a0c5fee26431c486ced52) )
833 ROM_LOAD( "11675", 0x20000, 0x20000, CRC(2ef2f144) SHA1(38d22d609db2d9b6067b5d12f6499436de4605cb) )
834 ROM_LOAD( "11676", 0x40000, 0x20000, CRC(0c04acac) SHA1(87fe2a0dd9913f9550e9b4cbc7e7465b61640e07) )
835
836 ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* sprites */
837 ROM_LOAD16_BYTE( "epr11677.b1", 0x00001, 0x20000, CRC(a01425cd) SHA1(72be5ec29e476601f9bf6aaedef9b73cedeb42f0) )
838 ROM_LOAD16_BYTE( "epr11681.b5", 0x00000, 0x20000, CRC(d9e03363) SHA1(995a7c6a8f0c61468b57a3bb407461a2a3ae8adc) )
839 ROM_LOAD16_BYTE( "epr11678.b2", 0x40001, 0x20000, CRC(17a9fc53) SHA1(85a9a605742ae5aab86db37189b9ee4d54c70e56) )
840 ROM_LOAD16_BYTE( "epr11682.b6", 0x40000, 0x20000, CRC(e3f77c5e) SHA1(6b3cb7918ab0c7c97a51cc5ea19ced3374ff3914) )
841 ROM_LOAD16_BYTE( "epr11679.b3", 0x80001, 0x20000, CRC(14dcc245) SHA1(1ca1b6e0f2b7bedad2a8ab70f52da8c54d40d3cf) )
842 ROM_LOAD16_BYTE( "epr11683.b7", 0x80000, 0x20000, CRC(f9a60f06) SHA1(0cffcfdb02733feaa869198b7e668c58b47c321a) )
843 ROM_LOAD16_BYTE( "epr11680.b4", 0xc0001, 0x20000, CRC(f43dcdec) SHA1(2941500cf33afca487f19f2329033d5d17aad826) )
844 ROM_LOAD16_BYTE( "epr11684.b8", 0xc0000, 0x20000, CRC(b20c0edb) SHA1(6c8694d05e3adac37c9015037ab800233371db36) )
845
846 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
847 ROM_LOAD( "11671", 0x00000, 0x08000, CRC(2b71343b) SHA1(8a657f787de2b9d5161ed2c109642a148348af09) )
848 ROM_LOAD( "opr11672", 0x10000, 0x20000, CRC(bbd7f460) SHA1(bbc5c2219cb3a827d84062b19affd9780da2a3cf) )
849 ROM_LOAD( "opr11673", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
850 ROM_END
851
852 ROM_START( jyuohki )
853 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* Custom 68000 code. */
854 // custom cpu 317-0065
855 ROM_LOAD16_BYTE( "epr11670.a7", 0x000000, 0x20000, CRC(b748eb07) SHA1(f3663831610bcb358340f14c2c96833dd7591bfb) )
856 ROM_LOAD16_BYTE( "epr11669.a5", 0x000001, 0x20000, CRC(005ecd11) SHA1(c392195955cf727752f03db92414701cc2bf1f4a) )
857
858 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
859 ROM_LOAD( "11674", 0x00000, 0x20000, CRC(a57a66d5) SHA1(5103583d48997abad12a0c5fee26431c486ced52) )
860 ROM_LOAD( "11675", 0x20000, 0x20000, CRC(2ef2f144) SHA1(38d22d609db2d9b6067b5d12f6499436de4605cb) )
861 ROM_LOAD( "11676", 0x40000, 0x20000, CRC(0c04acac) SHA1(87fe2a0dd9913f9550e9b4cbc7e7465b61640e07) )
862
863 ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* sprites */
864 ROM_LOAD16_BYTE( "epr11677.b1", 0x00001, 0x20000, CRC(a01425cd) SHA1(72be5ec29e476601f9bf6aaedef9b73cedeb42f0) )
865 ROM_LOAD16_BYTE( "epr11681.b5", 0x00000, 0x20000, CRC(d9e03363) SHA1(995a7c6a8f0c61468b57a3bb407461a2a3ae8adc) )
866 ROM_LOAD16_BYTE( "epr11678.b2", 0x40001, 0x20000, CRC(17a9fc53) SHA1(85a9a605742ae5aab86db37189b9ee4d54c70e56) )
867 ROM_LOAD16_BYTE( "epr11682.b6", 0x40000, 0x20000, CRC(e3f77c5e) SHA1(6b3cb7918ab0c7c97a51cc5ea19ced3374ff3914) )
868 ROM_LOAD16_BYTE( "epr11679.b3", 0x80001, 0x20000, CRC(14dcc245) SHA1(1ca1b6e0f2b7bedad2a8ab70f52da8c54d40d3cf) )
869 ROM_LOAD16_BYTE( "epr11683.b7", 0x80000, 0x20000, CRC(f9a60f06) SHA1(0cffcfdb02733feaa869198b7e668c58b47c321a) )
870 ROM_LOAD16_BYTE( "epr11680.b4", 0xc0001, 0x20000, CRC(f43dcdec) SHA1(2941500cf33afca487f19f2329033d5d17aad826) )
871 ROM_LOAD16_BYTE( "epr11684.b8", 0xc0000, 0x20000, CRC(b20c0edb) SHA1(6c8694d05e3adac37c9015037ab800233371db36) )
872
873 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
874 ROM_LOAD( "11671", 0x00000, 0x08000, CRC(2b71343b) SHA1(8a657f787de2b9d5161ed2c109642a148348af09) )
875 ROM_LOAD( "opr11672", 0x10000, 0x20000, CRC(bbd7f460) SHA1(bbc5c2219cb3a827d84062b19affd9780da2a3cf) )
876 ROM_LOAD( "opr11673", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
877 ROM_END
878
879 // sys16B
880 ROM_START( altbeas2 )
881 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
882 ROM_LOAD16_BYTE( "epr11740", 0x000000, 0x20000, CRC(ce227542) SHA1(54adcc1246943360bb68498e971809a0d4f9fe0c) )
883 ROM_LOAD16_BYTE( "epr11739", 0x000001, 0x20000, CRC(e466eb65) SHA1(c9bb57818eb81a43abdf2ad2a79a0bd45c25d208) )
884
885 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
886 ROM_LOAD( "11674", 0x00000, 0x20000, CRC(a57a66d5) SHA1(5103583d48997abad12a0c5fee26431c486ced52) )
887 ROM_LOAD( "11675", 0x20000, 0x20000, CRC(2ef2f144) SHA1(38d22d609db2d9b6067b5d12f6499436de4605cb) )
888 ROM_LOAD( "11676", 0x40000, 0x20000, CRC(0c04acac) SHA1(87fe2a0dd9913f9550e9b4cbc7e7465b61640e07) )
889
890 ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* sprites */
891 ROM_LOAD16_BYTE( "epr11677.b1", 0x00001, 0x20000, CRC(a01425cd) SHA1(72be5ec29e476601f9bf6aaedef9b73cedeb42f0) )
892 ROM_LOAD16_BYTE( "epr11681.b5", 0x00000, 0x20000, CRC(d9e03363) SHA1(995a7c6a8f0c61468b57a3bb407461a2a3ae8adc) )
893 ROM_LOAD16_BYTE( "epr11678.b2", 0x40001, 0x20000, CRC(17a9fc53) SHA1(85a9a605742ae5aab86db37189b9ee4d54c70e56) )
894 ROM_LOAD16_BYTE( "epr11682.b6", 0x40000, 0x20000, CRC(e3f77c5e) SHA1(6b3cb7918ab0c7c97a51cc5ea19ced3374ff3914) )
895 ROM_LOAD16_BYTE( "epr11679.b3", 0x80001, 0x20000, CRC(14dcc245) SHA1(1ca1b6e0f2b7bedad2a8ab70f52da8c54d40d3cf) )
896 ROM_LOAD16_BYTE( "epr11683.b7", 0x80000, 0x20000, CRC(f9a60f06) SHA1(0cffcfdb02733feaa869198b7e668c58b47c321a) )
897 ROM_LOAD16_BYTE( "epr11680.b4", 0xc0001, 0x20000, CRC(f43dcdec) SHA1(2941500cf33afca487f19f2329033d5d17aad826) )
898 ROM_LOAD16_BYTE( "epr11684.b8", 0xc0000, 0x20000, CRC(b20c0edb) SHA1(6c8694d05e3adac37c9015037ab800233371db36) )
899
900 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
901 ROM_LOAD( "opr11686", 0x00000, 0x08000, CRC(828a45b3) SHA1(df921701b411afac1b6716b6798a1bffc2180133) ) // ???
902 ROM_LOAD( "opr11672", 0x10000, 0x20000, CRC(bbd7f460) SHA1(bbc5c2219cb3a827d84062b19affd9780da2a3cf) )
903 ROM_LOAD( "opr11673", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
904 ROM_END
905
906 /***************************************************************************/
907
908 static READ16_HANDLER( altbeast_skip_r )
909 {
910 if (activecpu_get_pc()==0x3994) {cpu_spinuntil_int(); return 1<<8;}
911 return sys16_workingram[0x301c/2];
912 }
913
914 // ??? What is this, input test shows 4 bits to each player, but what does it do?
READ16_HANDLER(altbeast_io_r)915 static READ16_HANDLER( altbeast_io_r )
916 {
917 return 0xff;
918 }
919
MEMORY_READ16_START(altbeast_readmem)920 static MEMORY_READ16_START( altbeast_readmem )
921 { 0x000000, 0x03ffff, MRA16_ROM },
922 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
923 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
924 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
925 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
926 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
927 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
928 { 0xc41004, 0xc41005, altbeast_io_r },
929 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
930 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
931 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
932 { 0xfff01c, 0xfff01d, altbeast_skip_r },
933 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
934 MEMORY_END
935
936 static MEMORY_WRITE16_START( altbeast_writemem )
937 { 0x000000, 0x03ffff, MWA16_ROM },
938 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
939 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
940 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
941 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
942 { 0xc40000, 0xc40001, sys16_coinctrl_w },
943 { 0xfe0006, 0xfe0007, sound_command_w },
944 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
945 MEMORY_END
946
947 /***************************************************************************/
948
949 static void altbeast_update_proc( void ){
950 set_fg_page( sys16_textram[0x740] );
951 set_bg_page( sys16_textram[0x741] );
952 sys16_fg_scrolly = sys16_textram[0x748];
953 sys16_bg_scrolly = sys16_textram[0x749];
954 sys16_fg_scrollx = sys16_textram[0x74c];
955 sys16_bg_scrollx = sys16_textram[0x74d];
956
957 set_tile_bank( sys16_workingram[0x3094/2] );
958 }
959
MACHINE_INIT(altbeast)960 static MACHINE_INIT( altbeast ){
961 sys16_update_proc = altbeast_update_proc;
962 }
963
MACHINE_INIT(altbeas2)964 static MACHINE_INIT( altbeas2 ){
965 static int bank[16] = {
966 0x00,0x00,
967 0x01,0x00,
968 0x02,0x00,
969 0x03,0x00,
970 0x04,0x00,
971 0x05,0x00,
972 0x06,0x00,
973 0x07,0x00
974 };
975 sys16_obj_bank = bank;
976 sys16_update_proc = altbeast_update_proc;
977 }
978
DRIVER_INIT(altbeast)979 static DRIVER_INIT( altbeast )
980 {
981 machine_init_sys16_onetime();
982 }
983
984 /***************************************************************************/
985
INPUT_PORTS_START(altbeast)986 INPUT_PORTS_START( altbeast )
987 SYS16_JOY1
988 SYS16_JOY2
989 SYS16_SERVICE
990 SYS16_COINAGE
991
992 PORT_START /* DSW1 */
993 PORT_DIPNAME( 0x01, 0x01, "Credits needed" )
994 PORT_DIPSETTING( 0x01, "1 to start, 1 to continue" )
995 PORT_DIPSETTING( 0x00, "2 to start, 1 to continue" )
996 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
997 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
998 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
999 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1000 PORT_DIPSETTING( 0x08, "2" )
1001 PORT_DIPSETTING( 0x0c, "3" )
1002 PORT_DIPSETTING( 0x04, "4" )
1003 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "240", IP_KEY_NONE, IP_JOY_NONE )
1004 PORT_DIPNAME( 0x30, 0x30, "Energy Meter" )
1005 PORT_DIPSETTING( 0x20, "2" )
1006 PORT_DIPSETTING( 0x30, "3" )
1007 PORT_DIPSETTING( 0x10, "4" )
1008 PORT_DIPSETTING( 0x00, "5" )
1009 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
1010 PORT_DIPSETTING( 0x80, "Easy" )
1011 PORT_DIPSETTING( 0xc0, "Normal" )
1012 PORT_DIPSETTING( 0x40, "Hard" )
1013 PORT_DIPSETTING( 0x00, "Hardest" )
1014 INPUT_PORTS_END
1015
1016 /***************************************************************************/
1017
1018 static MACHINE_DRIVER_START( altbeast )
1019
1020 /* basic machine hardware */
1021 MDRV_IMPORT_FROM(system16_7759)
1022 MDRV_CPU_MODIFY("main")
1023 MDRV_CPU_MEMORY(altbeast_readmem,altbeast_writemem)
1024
1025 MDRV_MACHINE_INIT(altbeast)
1026 MACHINE_DRIVER_END
1027
1028
1029 static MACHINE_DRIVER_START( altbeas2 )
1030
1031 /* basic machine hardware */
1032 MDRV_IMPORT_FROM(system16_7759)
1033 MDRV_CPU_MODIFY("main")
1034 MDRV_CPU_MEMORY(altbeast_readmem,altbeast_writemem)
1035
1036 MDRV_MACHINE_INIT(altbeas2)
1037 MACHINE_DRIVER_END
1038
1039 /***************************************************************************/
1040 // sys16B
1041 ROM_START( atomicp )
1042 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
1043 ROM_LOAD16_BYTE( "ap-t2.bin", 0x000000, 0x10000, CRC(97421047) SHA1(18d61260470da7a0bef532f81df567a613c0d821) )
1044 ROM_LOAD16_BYTE( "ap-t1.bin", 0x000001, 0x10000, CRC(5c65fe56) SHA1(aaf3b6f932c090b839817140c105f13c7d6b4ae2) )
1045
1046 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1047 ROM_LOAD( "ap-t4.bin", 0x00000, 0x8000, CRC(332e58f4) SHA1(cf5aeb6c14018cbd8f222a0ecf85ccf467f294a8) )
1048 ROM_LOAD( "ap-t3.bin", 0x08000, 0x8000, CRC(dddc122c) SHA1(3411eae360ccd615636fb85e9738affc33c2c0ad) )
1049 ROM_LOAD( "ap-t5.bin", 0x10000, 0x8000, CRC(ef5ecd6b) SHA1(07edc8ea4c0a5ad421df7f97e7a62a5e12a8dbd0) )
1050
1051 ROM_REGION( 0x1, REGION_GFX2, 0 ) /* sprites */
1052 ROM_END
1053
1054 /***************************************************************************/
1055
1056 #if 0
1057 static READ16_HANDLER( atomicp_skip_r ){
1058 if (activecpu_get_pc()==0x7fc) {cpu_spinuntil_int(); return 0xffff;}
1059 return sys16_workingram[0x0902/2];
1060 }
1061 #endif
1062
1063 static MEMORY_READ16_START( atomicp_readmem )
1064 { 0x000000, 0x01ffff, MRA16_ROM },
1065 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
1066 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
1067 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
1068 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
1069 { 0xc41000, 0xc41001, input_port_0_word_r }, // player1
1070 { 0xc41002, 0xc41003, input_port_1_word_r }, // player2
1071 { 0xc41004, 0xc41005, input_port_3_word_r }, // dip1
1072 { 0xc41006, 0xc41007, input_port_4_word_r }, // dip2
1073 // { 0xffc902, 0xffc903, atomicp_skip_r },
1074 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
1075 MEMORY_END
1076
1077 static WRITE16_HANDLER( atomicp_sound_w ){
1078 if( ACCESSING_MSB ){
1079 if(offset==0)
1080 YM2413_register_port_0_w(0,(data>>8)&0xff);
1081 else
1082 YM2413_data_port_0_w(0,(data>>8)&0xff);
1083 }
1084 }
1085
MEMORY_WRITE16_START(atomicp_writemem)1086 static MEMORY_WRITE16_START( atomicp_writemem )
1087 { 0x000000, 0x01ffff, MWA16_ROM },
1088 { 0x080000, 0x080003, atomicp_sound_w },
1089 { 0x3f0000, 0x3f0003, MWA16_NOP },
1090 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
1091 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
1092 { 0x440000, 0x44ffff, SYS16_MWA16_SPRITERAM },
1093 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
1094 { 0xc40000, 0xc40001, SYS16_MWA16_EXTRAM2 },
1095 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
1096 MEMORY_END
1097
1098 // { 0x0a, 0x0a, YM2413_register_port_0_w },
1099 // { 0x0b, 0x0b, YM2413_data_port_0_w },
1100
1101 /***************************************************************************/
1102
1103 static void atomicp_update_proc( void ){
1104 set_fg_page( sys16_textram[0x740] );
1105 set_bg_page( sys16_textram[0x741] );
1106 sys16_fg_scrolly = sys16_textram[0x748];
1107 sys16_bg_scrolly = sys16_textram[0x749];
1108 sys16_fg_scrollx = sys16_textram[0x74c];
1109 sys16_bg_scrollx = sys16_textram[0x74d];
1110 }
1111
MACHINE_INIT(atomicp)1112 static MACHINE_INIT( atomicp ){
1113 sys16_update_proc = atomicp_update_proc;
1114 }
1115
DRIVER_INIT(atomicp)1116 static DRIVER_INIT( atomicp )
1117 {
1118 machine_init_sys16_onetime();
1119 }
1120
1121 /***************************************************************************/
1122
INPUT_PORTS_START(atomicp)1123 INPUT_PORTS_START( atomicp )
1124
1125 PORT_START
1126 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
1127 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
1128 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
1129 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
1130 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
1131 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
1132 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
1133 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1134
1135 PORT_START
1136 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
1137 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
1138 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
1139 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1140 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1141 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1142 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
1143 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1144
1145 PORT_START // dummy
1146
1147 PORT_START // dip1
1148 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) )
1149 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
1150 PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
1151 PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
1152 PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
1153 PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
1154 PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
1155 PORT_DIPSETTING( 0x01, DEF_STR( 1C_4C ) )
1156 PORT_DIPSETTING( 0x06, DEF_STR( 1C_5C ) )
1157
1158 PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_A ) )
1159 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
1160 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
1161 PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
1162 PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
1163 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
1164 PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
1165 PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ) )
1166 PORT_DIPSETTING( 0x30, DEF_STR( 1C_5C ) )
1167
1168 PORT_DIPNAME( 0xC0, 0xC0, DEF_STR( Lives ) )
1169 PORT_DIPSETTING( 0xC0, "1" )
1170 PORT_DIPSETTING( 0x80, "2" )
1171 PORT_DIPSETTING( 0x40, "3" )
1172 PORT_DIPSETTING( 0x00, "5" )
1173
1174 PORT_START //dip2
1175 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1176 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1177 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1178 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1179 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1180 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1181 PORT_DIPNAME( 0x04, 0x04, "Instructions" )
1182 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1183 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
1184 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1185 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1186 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1187 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1188 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1189 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1190 PORT_DIPNAME( 0x20, 0x20, "Continuation" )
1191 PORT_DIPSETTING( 0x20, "Continue" )
1192 PORT_DIPSETTING( 0x00, "No Continue" )
1193 PORT_DIPNAME( 0x40, 0x00, "Level Select" )
1194 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1195 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1196 PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
1197 INPUT_PORTS_END
1198
1199 /***************************************************************************/
1200 static INTERRUPT_GEN( ap_interrupt )
1201 {
1202 int intleft=cpu_getiloops();
1203 if(intleft!=0) cpu_set_irq_line(0, 2, HOLD_LINE);
1204 else cpu_set_irq_line(0, 4, HOLD_LINE);
1205 }
1206
1207
1208 static MACHINE_DRIVER_START( atomicp )
1209
1210 /* basic machine hardware */
MDRV_IMPORT_FROM(system16)1211 MDRV_IMPORT_FROM(system16)
1212 MDRV_CPU_MODIFY("main")
1213 MDRV_CPU_MEMORY(atomicp_readmem,atomicp_writemem)
1214 MDRV_CPU_VBLANK_INT(ap_interrupt,2)
1215
1216 MDRV_CPU_REMOVE("sound")
1217
1218 MDRV_MACHINE_INIT(atomicp)
1219
1220 /* sound hardware */
1221 MDRV_SOUND_ATTRIBUTES(0)
1222 MDRV_SOUND_REPLACE("2151", YM2413, sys16_ym2413_interface)
1223 MACHINE_DRIVER_END
1224
1225
1226 /***************************************************************************
1227
1228 Aurail
1229
1230 ***************************************************************************/
1231 // sys16B
1232 ROM_START( aurail )
1233 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1234 ROM_LOAD16_BYTE( "13577", 0x000000, 0x20000, CRC(6701b686) SHA1(ce1e99a516b34241bfe2fbe42d105970ad6e6ddb) )
1235 ROM_LOAD16_BYTE( "13576", 0x000001, 0x20000, CRC(1e428d94) SHA1(53c0c2d946822157974c8505fd301f8001fc3401) )
1236 /* empty 0x40000 - 0x80000 */
1237 ROM_LOAD16_BYTE( "13447", 0x080000, 0x20000, CRC(70a52167) SHA1(51512d4ee1e63902375b197cf04170744b099d88) )
1238 ROM_LOAD16_BYTE( "13445", 0x080001, 0x20000, CRC(28dfc3dd) SHA1(b1d6d3e31a48062a91cc9b7b6ff68bfde0a3ea1c) )
1239
1240 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1241 ROM_LOAD( "aurail.a14", 0x00000, 0x20000, CRC(0fc4a7a8) SHA1(b46b22a6b0ead19551e67abfb3304c52b02b8d29) ) /* plane 1 */
1242 ROM_LOAD( "aurail.b14", 0x20000, 0x20000, CRC(e08135e0) SHA1(cd748f4a8f67f562174fa9c6edb966c77b488e75) )
1243 ROM_LOAD( "aurail.a15", 0x40000, 0x20000, CRC(1c49852f) SHA1(d08d6991c203400f685fada2445a22a7eceeee04) ) /* plane 2 */
1244 ROM_LOAD( "aurail.b15", 0x60000, 0x20000, CRC(e14c6684) SHA1(f9b0d45e01a6df2b3875b493db9fa41bf37d79f0) )
1245 ROM_LOAD( "aurail.a16", 0x80000, 0x20000, CRC(047bde5e) SHA1(e759baedcbb637a6c14af461b8a492554cadc9e4) ) /* plane 3 */
1246 ROM_LOAD( "aurail.b16", 0xa0000, 0x20000, CRC(6309fec4) SHA1(f90c9679bade3cfbaa7949e412410c29d5bfa4d3) )
1247
1248 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1249 ROM_LOAD16_BYTE( "aurail.b1", 0x000001, 0x020000, CRC(5fa0a9f8) SHA1(d9d67cc006a608d48e37aa89359f1a9403172b00) )
1250 ROM_LOAD16_BYTE( "aurail.b5", 0x000000, 0x020000, CRC(0d1b54da) SHA1(c7a6393f9e13adabe93b7a86aa7845c5f4d188f1) )
1251 ROM_LOAD16_BYTE( "aurail.b2", 0x040001, 0x020000, CRC(5f6b33b1) SHA1(5d397bdaa2c7a9ce82cc9134bfeb78418dc613b0) )
1252 ROM_LOAD16_BYTE( "aurail.b6", 0x040000, 0x020000, CRC(bad340c3) SHA1(e04ef028e44054d34831d3617c5a6348823cfebd) )
1253 ROM_LOAD16_BYTE( "aurail.b3", 0x080001, 0x020000, CRC(4e80520b) SHA1(8147793ee0023ac18f633d756ecc53aef1980e95) )
1254 ROM_LOAD16_BYTE( "aurail.b7", 0x080000, 0x020000, CRC(7e9165ac) SHA1(32114095f96fb0ae385c9bf31dd97a99ef182aaa) )
1255 ROM_LOAD16_BYTE( "aurail.b4", 0x0c0001, 0x020000, CRC(5733c428) SHA1(865203ebee9d98e67324c46915d8835d0289ee0c) )
1256 ROM_LOAD16_BYTE( "aurail.b8", 0x0c0000, 0x020000, CRC(66b8f9b3) SHA1(4bf003a9bed40673d88df51a314eb6bd10f0d039) )
1257 ROM_LOAD16_BYTE( "aurail.a1", 0x100001, 0x020000, CRC(4f370b2b) SHA1(66beb4264d569520d80f8915e1c1fddbf61efb21) )
1258 ROM_LOAD16_BYTE( "aurail.b10", 0x100000, 0x020000, CRC(f76014bf) SHA1(b44f0b6fb9dee927d81c62282aa946d8c35766ca) )
1259 ROM_LOAD16_BYTE( "aurail.a2", 0x140001, 0x020000, CRC(37cf9cb4) SHA1(f51cee874ad8a824462d2475a23e7016ef64c6b4) )
1260 ROM_LOAD16_BYTE( "aurail.b11", 0x140000, 0x020000, CRC(1061e7da) SHA1(bad3560f1ed6a5a79f4ecf85d3843b24ecf22d19) )
1261 ROM_LOAD16_BYTE( "aurail.a3", 0x180001, 0x020000, CRC(049698ef) SHA1(dca1a78f0156cfac9acbfb6e47eb3897b579d2ec) )
1262 ROM_LOAD16_BYTE( "aurail.b12", 0x180000, 0x020000, CRC(7dbcfbf1) SHA1(0b7be1de57f83b1213805489c6ebfc0f1e5fb4b0) )
1263 ROM_LOAD16_BYTE( "aurail.a4", 0x1c0001, 0x020000, CRC(77a8989e) SHA1(0ad0877a9814fb7c2fb79062a50b1f9ce9420768) )
1264 ROM_LOAD16_BYTE( "aurail.b13", 0x1c0000, 0x020000, CRC(551df422) SHA1(cf4cd2b66335853c7c6cce949e79c05e93a39666) )
1265
1266 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
1267 ROM_LOAD( "13448", 0x0000, 0x8000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) )
1268 ROM_LOAD( "aurail.a12", 0x10000,0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) )
1269 ROM_RELOAD( 0x30000,0x20000 )
1270 ROM_END
1271
1272 ROM_START( auraila )
1273 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1274 // custom cpu 317-0168
1275 ROM_LOAD16_BYTE( "epr13469.a7", 0x000000, 0x20000, CRC(c628b69d) SHA1(839cefe5ab1c58fb3e6af8cba245194d5d672223) )
1276 ROM_LOAD16_BYTE( "epr13468.a5", 0x000001, 0x20000, CRC(ce092218) SHA1(c93450234bc37060bc4b8bca34ea69154d99be6c) )
1277 /* 0x40000 - 0x80000 is empty, I will place decrypted opcodes here */
1278 ROM_LOAD16_BYTE( "13447", 0x080000, 0x20000, CRC(70a52167) SHA1(51512d4ee1e63902375b197cf04170744b099d88) )
1279 ROM_LOAD16_BYTE( "13445", 0x080001, 0x20000, CRC(28dfc3dd) SHA1(b1d6d3e31a48062a91cc9b7b6ff68bfde0a3ea1c) )
1280
1281 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1282 ROM_LOAD( "aurail.a14", 0x00000, 0x20000, CRC(0fc4a7a8) SHA1(b46b22a6b0ead19551e67abfb3304c52b02b8d29) ) /* plane 1 */
1283 ROM_LOAD( "aurail.b14", 0x20000, 0x20000, CRC(e08135e0) SHA1(cd748f4a8f67f562174fa9c6edb966c77b488e75) )
1284 ROM_LOAD( "aurail.a15", 0x40000, 0x20000, CRC(1c49852f) SHA1(d08d6991c203400f685fada2445a22a7eceeee04) ) /* plane 2 */
1285 ROM_LOAD( "aurail.b15", 0x60000, 0x20000, CRC(e14c6684) SHA1(f9b0d45e01a6df2b3875b493db9fa41bf37d79f0) )
1286 ROM_LOAD( "aurail.a16", 0x80000, 0x20000, CRC(047bde5e) SHA1(e759baedcbb637a6c14af461b8a492554cadc9e4) ) /* plane 3 */
1287 ROM_LOAD( "aurail.b16", 0xa0000, 0x20000, CRC(6309fec4) SHA1(f90c9679bade3cfbaa7949e412410c29d5bfa4d3) )
1288
1289 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
1290 ROM_LOAD16_BYTE( "aurail.b1", 0x000001, 0x020000, CRC(5fa0a9f8) SHA1(d9d67cc006a608d48e37aa89359f1a9403172b00) )
1291 ROM_LOAD16_BYTE( "aurail.b5", 0x000000, 0x020000, CRC(0d1b54da) SHA1(c7a6393f9e13adabe93b7a86aa7845c5f4d188f1) )
1292 ROM_LOAD16_BYTE( "aurail.b2", 0x040001, 0x020000, CRC(5f6b33b1) SHA1(5d397bdaa2c7a9ce82cc9134bfeb78418dc613b0) )
1293 ROM_LOAD16_BYTE( "aurail.b6", 0x040000, 0x020000, CRC(bad340c3) SHA1(e04ef028e44054d34831d3617c5a6348823cfebd) )
1294 ROM_LOAD16_BYTE( "aurail.b3", 0x080001, 0x020000, CRC(4e80520b) SHA1(8147793ee0023ac18f633d756ecc53aef1980e95) )
1295 ROM_LOAD16_BYTE( "aurail.b7", 0x080000, 0x020000, CRC(7e9165ac) SHA1(32114095f96fb0ae385c9bf31dd97a99ef182aaa) )
1296 ROM_LOAD16_BYTE( "aurail.b4", 0x0c0001, 0x020000, CRC(5733c428) SHA1(865203ebee9d98e67324c46915d8835d0289ee0c) )
1297 ROM_LOAD16_BYTE( "aurail.b8", 0x0c0000, 0x020000, CRC(66b8f9b3) SHA1(4bf003a9bed40673d88df51a314eb6bd10f0d039) )
1298 ROM_LOAD16_BYTE( "aurail.a1", 0x100001, 0x020000, CRC(4f370b2b) SHA1(66beb4264d569520d80f8915e1c1fddbf61efb21) )
1299 ROM_LOAD16_BYTE( "aurail.b10", 0x100000, 0x020000, CRC(f76014bf) SHA1(b44f0b6fb9dee927d81c62282aa946d8c35766ca) )
1300 ROM_LOAD16_BYTE( "aurail.a2", 0x140001, 0x020000, CRC(37cf9cb4) SHA1(f51cee874ad8a824462d2475a23e7016ef64c6b4) )
1301 ROM_LOAD16_BYTE( "aurail.b11", 0x140000, 0x020000, CRC(1061e7da) SHA1(bad3560f1ed6a5a79f4ecf85d3843b24ecf22d19) )
1302 ROM_LOAD16_BYTE( "aurail.a3", 0x180001, 0x020000, CRC(049698ef) SHA1(dca1a78f0156cfac9acbfb6e47eb3897b579d2ec) )
1303 ROM_LOAD16_BYTE( "aurail.b12", 0x180000, 0x020000, CRC(7dbcfbf1) SHA1(0b7be1de57f83b1213805489c6ebfc0f1e5fb4b0) )
1304 ROM_LOAD16_BYTE( "aurail.a4", 0x1c0001, 0x020000, CRC(77a8989e) SHA1(0ad0877a9814fb7c2fb79062a50b1f9ce9420768) )
1305 ROM_LOAD16_BYTE( "aurail.b13", 0x1c0000, 0x020000, CRC(551df422) SHA1(cf4cd2b66335853c7c6cce949e79c05e93a39666) )
1306
1307 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
1308 ROM_LOAD( "13448", 0x0000, 0x8000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) )
1309 ROM_LOAD( "aurail.a12", 0x10000,0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) )
1310 ROM_RELOAD( 0x30000,0x20000 )
1311 ROM_END
1312
1313
1314 /***************************************************************************/
1315
1316 static READ16_HANDLER( aurail_skip_r )
1317 {
1318 if (activecpu_get_pc()==0xe4e) {cpu_spinuntil_int(); return 0;}
1319 return sys16_workingram[0x274e/2];
1320 }
1321
MEMORY_READ16_START(aurail_readmem)1322 static MEMORY_READ16_START( aurail_readmem )
1323 { 0x000000, 0x0bffff, MRA16_ROM },
1324 { 0x3f0000, 0x3fffff, SYS16_MRA16_EXTRAM },
1325 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
1326 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
1327 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
1328 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
1329 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
1330 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
1331 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
1332 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
1333 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
1334 { 0xfc0000, 0xfc0fff, SYS16_MRA16_EXTRAM3 },
1335 { 0xffe74e, 0xffe74f, aurail_skip_r },
1336 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
1337 MEMORY_END
1338
1339 static MEMORY_WRITE16_START( aurail_writemem )
1340 { 0x000000, 0x0bffff, MWA16_ROM },
1341 { 0x3f0000, 0x3fffff, SYS16_MWA16_EXTRAM },
1342 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
1343 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
1344 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
1345 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
1346 { 0xc40000, 0xc40001, sys16_coinctrl_w },
1347 { 0xfc0000, 0xfc0fff, SYS16_MWA16_EXTRAM3 },
1348 { 0xfe0006, 0xfe0007, sound_command_w },
1349 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
1350 MEMORY_END
1351
1352 /***************************************************************************/
1353
1354 static void aurail_update_proc (void){
1355 sys16_fg_scrollx = sys16_textram[0x0e98/2];
1356 sys16_bg_scrollx = sys16_textram[0x0e9a/2];
1357 sys16_fg_scrolly = sys16_textram[0x0e90/2];
1358 sys16_bg_scrolly = sys16_textram[0x0e92/2];
1359
1360 set_fg_page( sys16_textram[0x0e80/2] );
1361 set_bg_page( sys16_textram[0x0e82/2] );
1362
1363 set_tile_bank( sys16_extraram3[0x0002/2] );
1364 }
1365
MACHINE_INIT(aurail)1366 static MACHINE_INIT( aurail ){
1367 sys16_spritesystem = sys16_sprite_aurail;
1368 sys16_spritelist_end=0x8000;
1369 sys16_bg_priority_mode=1;
1370
1371 sys16_update_proc = aurail_update_proc;
1372 }
1373
DRIVER_INIT(aurail)1374 static DRIVER_INIT( aurail )
1375 {
1376 machine_init_sys16_onetime();
1377 }
1378
DRIVER_INIT(auraila)1379 static DRIVER_INIT( auraila )
1380 {
1381 data16_t *rom = (data16_t *)memory_region(REGION_CPU1);
1382 int diff = 0x40000; /* place decrypted opcodes in a empty hole */
1383
1384 init_aurail();
1385
1386 memory_set_opcode_base(0,rom+diff/2);
1387
1388 memcpy(rom+diff/2,rom,0x40000);
1389
1390 aurail_decode_data(rom,rom,0x10000);
1391 aurail_decode_opcode1(rom+diff/2,rom+diff/2,0x10000);
1392 aurail_decode_opcode2(rom+(diff+0x10000)/2,rom+(diff+0x10000)/2,0x10000);
1393 }
1394
1395 /***************************************************************************/
1396
INPUT_PORTS_START(aurail)1397 INPUT_PORTS_START( aurail )
1398 SYS16_JOY1
1399 SYS16_JOY2
1400 SYS16_SERVICE
1401 SYS16_COINAGE
1402
1403 PORT_START /* DSW1 */
1404 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
1405 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
1406 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
1407 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
1408 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1409 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1410 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1411 PORT_DIPSETTING( 0x00, "2" )
1412 PORT_DIPSETTING( 0x0c, "3" )
1413 PORT_DIPSETTING( 0x08, "4" )
1414 PORT_DIPSETTING( 0x04, "5" )
1415 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) )
1416 PORT_DIPSETTING( 0x10, "Normal" )
1417 PORT_DIPSETTING( 0x00, "Hard" )
1418 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Difficulty ) )
1419 PORT_DIPSETTING( 0x20, "Normal" )
1420 PORT_DIPSETTING( 0x00, "Hard" )
1421 PORT_DIPNAME( 0x40, 0x40, "Controller select" )
1422 PORT_DIPSETTING( 0x40, "1 Player side" )
1423 PORT_DIPSETTING( 0x00, "2 Players side" )
1424 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
1425 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1426 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1427 INPUT_PORTS_END
1428
1429 /***************************************************************************/
1430
1431 static MACHINE_DRIVER_START( aurail )
1432
1433 /* basic machine hardware */
1434 MDRV_IMPORT_FROM(system16_7759)
1435 MDRV_CPU_MODIFY("main")
1436 MDRV_CPU_MEMORY(aurail_readmem,aurail_writemem)
1437
1438 MDRV_MACHINE_INIT(aurail)
1439 MACHINE_DRIVER_END
1440
1441 /***************************************************************************/
1442 // sys16B
1443 ROM_START( bayroute )
1444 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1445 ROM_LOAD16_BYTE( "br.4a", 0x000000, 0x10000, CRC(91c6424b) SHA1(79a968ade7690d5944ee815e19586cb82c3aa562) )
1446 ROM_LOAD16_BYTE( "br.1a", 0x000001, 0x10000, CRC(76954bf3) SHA1(bd617c6ddaf1e7760479b17205388c201fb67662) )
1447 /* empty 0x20000-0x80000*/
1448 ROM_LOAD16_BYTE( "br.5a", 0x080000, 0x10000, CRC(9d6fd183) SHA1(5ae78d33c0e929886d84a25c0fbd62ab45dcbff4) )
1449 ROM_LOAD16_BYTE( "br.2a", 0x080001, 0x10000, CRC(5ca1e3d2) SHA1(51ce67ed0a0054f9c9c4ac56c5775716c44d74b1) )
1450 ROM_LOAD16_BYTE( "br.6a", 0x0a0000, 0x10000, CRC(ed97ad4c) SHA1(6c7d671c3046f1adb486f053acdd2be0c981c68b) )
1451 ROM_LOAD16_BYTE( "br.3a", 0x0a0001, 0x10000, CRC(0d362905) SHA1(04cb35aa44cc1d9ead44c5a7b4f838efec453c85) )
1452
1453 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1454 ROM_LOAD( "opr12462.a14", 0x00000, 0x10000, CRC(a19943b5) SHA1(95cd95223ea76677227b807a7c4eff120e690d37) )
1455 ROM_LOAD( "opr12463.a15", 0x10000, 0x10000, CRC(62f8200d) SHA1(a5a0035249f339396b33f8a908d393777e8951c4) )
1456 ROM_LOAD( "opr12464.a16", 0x20000, 0x10000, CRC(c8c59703) SHA1(3a4f45b88990d27c55ddfde5fc93496954868200) )
1457
1458 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
1459 ROM_LOAD16_BYTE( "br_obj0o.1b", 0x00001, 0x10000, CRC(098a5e82) SHA1(c5922f418773bc3629071e584457839d67a370e9) )
1460 ROM_LOAD16_BYTE( "br_obj0e.5b", 0x00000, 0x10000, CRC(85238af9) SHA1(39989a8d9b60c6d55272b5e2c213341a563dd993) )
1461 ROM_LOAD16_BYTE( "br_obj1o.2b", 0x20001, 0x10000, CRC(cc641da1) SHA1(28f8a6502702cb9e2cc7f3e98f6c5d201f462fa3) )
1462 ROM_LOAD16_BYTE( "br_obj1e.6b", 0x20000, 0x10000, CRC(d3123315) SHA1(16a87caed1cabb080d4f35935910b38797344ca5) )
1463 ROM_LOAD16_BYTE( "br_obj2o.3b", 0x40001, 0x10000, CRC(84efac1f) SHA1(41c43d70dc7ae7e361d6fa12c5790ea7ebf13ca8) )
1464 ROM_LOAD16_BYTE( "br_obj2e.7b", 0x40000, 0x10000, CRC(b73b12cb) SHA1(e8265ae90aabf1ee0522dbc6541a0f82fec97c7a) )
1465 ROM_LOAD16_BYTE( "br_obj3o.4b", 0x60001, 0x10000, CRC(a2e238ac) SHA1(c854774c0ffd1ccf6e46591a8fa3c80a4630e007) )
1466 ROM_LOAD16_BYTE( "br.8b", 0x60000, 0x10000, CRC(d8de78ff) SHA1(110661ab8008543b47629722b98d0470f73a48c5) )
1467
1468 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
1469 ROM_LOAD( "epr12459.a10", 0x00000, 0x08000, CRC(3e1d29d0) SHA1(fe3d985983e5132e8a26a02a3f2d8d420cbf1a49) )
1470 ROM_LOAD( "mpr12460.a11", 0x10000, 0x20000, CRC(0bae570d) SHA1(05fa4a3405666342ab66e696a7344cca97569f19) )
1471 ROM_LOAD( "mpr12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
1472 ROM_END
1473
1474 ROM_START( bayrouta )
1475 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1476 // custom cpu 317-0116
1477 ROM_LOAD16_BYTE( "epr12517.a7", 0x000000, 0x20000, CRC(436728a9) SHA1(0f6753493ad2c1776880862b462f10ef936a9ee5) )
1478 ROM_LOAD16_BYTE( "epr12516.a5", 0x000001, 0x20000, CRC(4ff0353f) SHA1(f5960f9e80e42d0a3f82d6670b1f2e39b51ffcef) )
1479 /* empty 0x40000-0x80000*/
1480 ROM_LOAD16_BYTE( "epr12458.a8", 0x080000, 0x20000, CRC(e7c7476a) SHA1(7b724d76bdc1978ddf78489edfda14533905a360) )
1481 ROM_LOAD16_BYTE( "epr12456.a6", 0x080001, 0x20000, CRC(25dc2eaf) SHA1(dda300840b9a90bcce7be16ff1904a7a0456c396) )
1482
1483 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1484 ROM_LOAD( "opr12462.a14", 0x00000, 0x10000, CRC(a19943b5) SHA1(95cd95223ea76677227b807a7c4eff120e690d37) )
1485 ROM_LOAD( "opr12463.a15", 0x10000, 0x10000, CRC(62f8200d) SHA1(a5a0035249f339396b33f8a908d393777e8951c4) )
1486 ROM_LOAD( "opr12464.a16", 0x20000, 0x10000, CRC(c8c59703) SHA1(3a4f45b88990d27c55ddfde5fc93496954868200) )
1487
1488 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
1489 ROM_LOAD16_BYTE( "mpr12465.b1", 0x00001, 0x20000, CRC(11d61b45) SHA1(01678e07ffcafb8c161b52763f2183dc281c7578) )
1490 ROM_LOAD16_BYTE( "mpr12467.b5", 0x00000, 0x20000, CRC(c3b4e4c0) SHA1(2d8dbea5278b3fac03c7ad8749f931d36cc8f341) )
1491 ROM_LOAD16_BYTE( "mpr12466.b2", 0x40001, 0x20000, CRC(a57f236f) SHA1(c83219cdfcee10a4fdffcbf410808f161a2b1aef) )
1492 ROM_LOAD16_BYTE( "mpr12468.b6", 0x40000, 0x20000, CRC(d89c77de) SHA1(0e903bf57a7515291dda7e11bdef982a1417043a) )
1493
1494 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
1495 ROM_LOAD( "epr12459.a10", 0x00000, 0x08000, CRC(3e1d29d0) SHA1(fe3d985983e5132e8a26a02a3f2d8d420cbf1a49) )
1496 ROM_LOAD( "mpr12460.a11", 0x10000, 0x20000, CRC(0bae570d) SHA1(05fa4a3405666342ab66e696a7344cca97569f19) )
1497 ROM_LOAD( "mpr12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
1498 ROM_END
1499
1500 ROM_START( bayrtbl1 )
1501 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1502 ROM_LOAD16_BYTE( "b4.bin", 0x000000, 0x10000, CRC(eb6646ae) SHA1(073bc0a3868e70785f44e497a949cd9e3b591a33) )
1503 ROM_LOAD16_BYTE( "b2.bin", 0x000001, 0x10000, CRC(ecd9cd0e) SHA1(177c38ca02c4e87d6adcae77ce4e9237938d23a9) )
1504 /* empty 0x20000-0x80000*/
1505 ROM_LOAD16_BYTE( "br.5a", 0x080000, 0x10000, CRC(9d6fd183) SHA1(5ae78d33c0e929886d84a25c0fbd62ab45dcbff4) )
1506 ROM_LOAD16_BYTE( "br.2a", 0x080001, 0x10000, CRC(5ca1e3d2) SHA1(51ce67ed0a0054f9c9c4ac56c5775716c44d74b1) )
1507 ROM_LOAD16_BYTE( "b8.bin", 0x0a0000, 0x10000, CRC(e7ca0331) SHA1(b255939576a84f4d266f31a7fde818e04ff35b24) )
1508 ROM_LOAD16_BYTE( "b6.bin", 0x0a0001, 0x10000, CRC(2bc748a6) SHA1(9ab760377fde24cecb703726ee3e59ee23d60a3a) )
1509
1510 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1511 ROM_LOAD( "bs16.bin", 0x00000, 0x10000, CRC(a8a5b310) SHA1(8883e1ed48a3e0f7b4c36d83579f93e84e28568c) )
1512 ROM_LOAD( "bs14.bin", 0x10000, 0x10000, CRC(6bc4d0a8) SHA1(90b9a61c7a140291d72554857ce26d54ebf03fc2) )
1513 ROM_LOAD( "bs12.bin", 0x20000, 0x10000, CRC(c1f967a6) SHA1(8eb6bbd9e17dc531830bc798b8485c8ea999e56e) )
1514
1515 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
1516 ROM_LOAD16_BYTE( "br_obj0o.1b", 0x00001, 0x10000, CRC(098a5e82) SHA1(c5922f418773bc3629071e584457839d67a370e9) )
1517 ROM_LOAD16_BYTE( "br_obj0e.5b", 0x00000, 0x10000, CRC(85238af9) SHA1(39989a8d9b60c6d55272b5e2c213341a563dd993) )
1518 ROM_LOAD16_BYTE( "br_obj1o.2b", 0x20001, 0x10000, CRC(cc641da1) SHA1(28f8a6502702cb9e2cc7f3e98f6c5d201f462fa3) )
1519 ROM_LOAD16_BYTE( "br_obj1e.6b", 0x20000, 0x10000, CRC(d3123315) SHA1(16a87caed1cabb080d4f35935910b38797344ca5) )
1520 ROM_LOAD16_BYTE( "br_obj2o.3b", 0x40001, 0x10000, CRC(84efac1f) SHA1(41c43d70dc7ae7e361d6fa12c5790ea7ebf13ca8) )
1521 ROM_LOAD16_BYTE( "br_obj2e.7b", 0x40000, 0x10000, CRC(b73b12cb) SHA1(e8265ae90aabf1ee0522dbc6541a0f82fec97c7a) )
1522 ROM_LOAD16_BYTE( "br_obj3o.4b", 0x60001, 0x10000, CRC(a2e238ac) SHA1(c854774c0ffd1ccf6e46591a8fa3c80a4630e007) )
1523 ROM_LOAD16_BYTE( "bs7.bin", 0x60000, 0x10000, CRC(0c91abcc) SHA1(d25608f3cbacd1bd169f1a2247f007ac8bc8dda0) )
1524
1525 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
1526 ROM_LOAD( "epr12459.a10", 0x00000, 0x08000, CRC(3e1d29d0) SHA1(fe3d985983e5132e8a26a02a3f2d8d420cbf1a49) )
1527 ROM_LOAD( "mpr12460.a11", 0x10000, 0x20000, CRC(0bae570d) SHA1(05fa4a3405666342ab66e696a7344cca97569f19) )
1528 ROM_LOAD( "mpr12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
1529 ROM_END
1530
1531 ROM_START( bayrtbl2 )
1532 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
1533 ROM_LOAD16_BYTE( "br_04", 0x000000, 0x10000, CRC(2e33ebfc) SHA1(f6b5a4bd28d302abd6b1e5a9ec6f2a8b57ff213e) )
1534 ROM_LOAD16_BYTE( "br_06", 0x000001, 0x10000, CRC(3db42313) SHA1(e1c874ebf83e1a458cefaa038fbe89a9804ca30d) )
1535 /* empty 0x20000-0x80000*/
1536 ROM_LOAD16_BYTE( "br_03", 0x080000, 0x20000, CRC(285d256b) SHA1(73eac0131d14f0d7fe2a06cb2e0e57dcf4779cf9) )
1537 ROM_LOAD16_BYTE( "br_05", 0x080001, 0x20000, CRC(552e6384) SHA1(2770b0c9d961671576e09ada2ebd7bb486f24547) )
1538
1539 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1540 ROM_LOAD( "br_15", 0x00000, 0x10000, CRC(050079a9) SHA1(4b356eddec2f500fb0dcc20af6b7aed2f9ef0c02) )
1541 ROM_LOAD( "br_16", 0x10000, 0x10000, CRC(fc371928) SHA1(b36866c95bdc440aae999a90ecf3bbaed11d4351) )
1542 ROM_LOAD( "bs12.bin", 0x20000, 0x10000, CRC(c1f967a6) SHA1(8eb6bbd9e17dc531830bc798b8485c8ea999e56e) )
1543
1544 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
1545 ROM_LOAD16_BYTE( "br_11", 0x00001, 0x10000, CRC(65232905) SHA1(cb195a0ce8bff9d1d3e31678060b3aaccfefcd2d) )
1546 ROM_LOAD16_BYTE( "br_obj0e.5b", 0x00000, 0x10000, CRC(85238af9) SHA1(39989a8d9b60c6d55272b5e2c213341a563dd993) )
1547 ROM_LOAD16_BYTE( "br_obj1o.2b", 0x20001, 0x10000, CRC(cc641da1) SHA1(28f8a6502702cb9e2cc7f3e98f6c5d201f462fa3) )
1548 ROM_LOAD16_BYTE( "br_obj1e.6b", 0x20000, 0x10000, CRC(d3123315) SHA1(16a87caed1cabb080d4f35935910b38797344ca5) )
1549 ROM_LOAD16_BYTE( "br_obj2o.3b", 0x40001, 0x10000, CRC(84efac1f) SHA1(41c43d70dc7ae7e361d6fa12c5790ea7ebf13ca8) )
1550 ROM_LOAD16_BYTE( "br_09", 0x40000, 0x10000, CRC(05e9b840) SHA1(7cc1c9ac7b85f1e1bdb68215b5e83eae3ee5ba2a) )
1551 ROM_LOAD16_BYTE( "br_14", 0x60001, 0x10000, CRC(4c4a177b) SHA1(a9dfd7e56b0a21a0f7750d8ec4631901ad182609) )
1552 ROM_LOAD16_BYTE( "bs7.bin", 0x60000, 0x10000, CRC(0c91abcc) SHA1(d25608f3cbacd1bd169f1a2247f007ac8bc8dda0) )
1553
1554 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
1555 ROM_LOAD( "br_01", 0x00000, 0x10000, CRC(b87156ec) SHA1(bdfef2ab5a4d3cac4077c92ce1ef4604b4c11cf8) )
1556 ROM_LOAD( "br_02", 0x10000, 0x10000, CRC(ef63991b) SHA1(4221741780f88c80b3213ddca949bee7d4c1469a) )
1557 ROM_END
1558
1559 /***************************************************************************/
1560
1561 static MEMORY_READ16_START( bayroute_readmem )
1562 { 0x000000, 0x0bffff, MRA16_ROM },
1563 { 0x500000, 0x503fff, SYS16_MRA16_EXTRAM3 },
1564 { 0x600000, 0x600fff, SYS16_MRA16_SPRITERAM },
1565 { 0x700000, 0x70ffff, SYS16_MRA16_TILERAM },
1566 { 0x710000, 0x710fff, SYS16_MRA16_TEXTRAM },
1567 { 0x800000, 0x800fff, SYS16_MRA16_PALETTERAM },
1568 { 0x901002, 0x901003, input_port_0_word_r }, // player1
1569 { 0x901006, 0x901007, input_port_1_word_r }, // player2
1570 { 0x901000, 0x901001, input_port_2_word_r }, // service
1571 { 0x902002, 0x902003, input_port_3_word_r }, // dip1
1572 { 0x902000, 0x902001, input_port_4_word_r }, // dip2
1573 MEMORY_END
1574
1575 static MEMORY_WRITE16_START( bayroute_writemem )
1576 { 0x000000, 0x0bffff, MWA16_ROM },
1577 { 0x500000, 0x503fff, SYS16_MWA16_EXTRAM3 },
1578 { 0x600000, 0x600fff, SYS16_MWA16_SPRITERAM },
1579 { 0x700000, 0x70ffff, SYS16_MWA16_TILERAM },
1580 { 0x710000, 0x710fff, SYS16_MWA16_TEXTRAM },
1581 { 0x800000, 0x800fff, SYS16_MWA16_PALETTERAM },
1582 { 0x900000, 0x900001, sys16_coinctrl_w },
1583 { 0xff0006, 0xff0007, sound_command_w },
1584 MEMORY_END
1585
1586 /***************************************************************************/
1587
1588 static void bayroute_update_proc( void ){
1589 set_fg_page( sys16_textram[0x740] );
1590 set_bg_page( sys16_textram[0x741] );
1591 sys16_fg_scrolly = sys16_textram[0x748];
1592 sys16_bg_scrolly = sys16_textram[0x749];
1593 sys16_fg_scrollx = sys16_textram[0x74c];
1594 sys16_bg_scrollx = sys16_textram[0x74d];
1595 }
1596
MACHINE_INIT(bayroute)1597 static MACHINE_INIT( bayroute ){
1598 static int bank[16] = {
1599 0,0,0,0,
1600 0,0,0,3,
1601 0,0,0,2,
1602 0,1,0,0
1603 };
1604 sys16_obj_bank = bank;
1605 sys16_update_proc = bayroute_update_proc;
1606 sys16_spritesystem = sys16_sprite_aurail;
1607 sys16_spritelist_end=0xc000;
1608 }
1609
DRIVER_INIT(bayroute)1610 static DRIVER_INIT( bayroute ){
1611 machine_init_sys16_onetime();
1612 }
1613
DRIVER_INIT(bayrouta)1614 static DRIVER_INIT( bayrouta ){
1615 machine_init_sys16_onetime();
1616 }
1617
DRIVER_INIT(bayrtbl1)1618 static DRIVER_INIT( bayrtbl1 ){
1619 int i;
1620 machine_init_sys16_onetime();
1621 /* invert the graphics bits on the tiles */
1622 for (i = 0; i < 0x30000; i++)
1623 memory_region(REGION_GFX1)[i] ^= 0xff;
1624 }
1625 /***************************************************************************/
1626
INPUT_PORTS_START(bayroute)1627 INPUT_PORTS_START( bayroute )
1628 SYS16_JOY1
1629 SYS16_JOY2
1630 SYS16_SERVICE
1631 SYS16_COINAGE
1632
1633 PORT_START
1634 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1635 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1636 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1637 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1638 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1639 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1640 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
1641 PORT_DIPSETTING( 0x04, "1" )
1642 PORT_DIPSETTING( 0x0c, "3" )
1643 PORT_DIPSETTING( 0x08, "5" )
1644 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Unlimited", IP_KEY_NONE, IP_JOY_NONE )
1645 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
1646 PORT_DIPSETTING( 0x30, "10000" )
1647 PORT_DIPSETTING( 0x20, "15000" )
1648 PORT_DIPSETTING( 0x10, "20000" )
1649 PORT_DIPSETTING( 0x00, "None" )
1650 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Unknown ) )
1651 PORT_DIPSETTING( 0xc0, "A" )
1652 PORT_DIPSETTING( 0x80, "B" )
1653 PORT_DIPSETTING( 0x40, "C" )
1654 PORT_DIPSETTING( 0x00, "D" )
1655
1656 INPUT_PORTS_END
1657
1658 /***************************************************************************/
1659
1660 static MACHINE_DRIVER_START( bayroute )
1661
1662 /* basic machine hardware */
1663 MDRV_IMPORT_FROM(system16_7759)
1664 MDRV_CPU_MODIFY("main")
1665 MDRV_CPU_MEMORY(bayroute_readmem,bayroute_writemem)
1666
1667 MDRV_MACHINE_INIT(bayroute)
1668 MACHINE_DRIVER_END
1669
1670 /***************************************************************************
1671
1672 Body Slam
1673
1674 ***************************************************************************/
1675 // pre16
1676 ROM_START( bodyslam )
1677 ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* 68000 code */
1678 ROM_LOAD16_BYTE( "epr10066.b9", 0x000000, 0x8000, CRC(6cd53290) SHA1(68ef83ad99a26a507d9bc4cd715462169f4ac41f) )
1679 ROM_LOAD16_BYTE( "epr10063.b6", 0x000001, 0x8000, CRC(dd849a16) SHA1(b8cb9f2685a739698a3ed18f76617fd4ac9cb424) )
1680 ROM_LOAD16_BYTE( "epr10067.b10",0x010000, 0x8000, CRC(db22a5ce) SHA1(95c37d4913fa31d5edf02661681bc83deec731d9) )
1681 ROM_LOAD16_BYTE( "epr10064.b7", 0x010001, 0x8000, CRC(53d6b7e0) SHA1(00bfa1487479629f60e1cc1b98ced47e4cb07964) )
1682 ROM_LOAD16_BYTE( "epr10068.b11",0x020000, 0x8000, CRC(15ccc665) SHA1(b088a9bcb1499854794b2dbf4c689f3ae3ce2808) )
1683 ROM_LOAD16_BYTE( "epr10065.b8", 0x020001, 0x8000, CRC(0e5fa314) SHA1(44e36fde102ba6aef2c3b4374ddc21690f2fe527) )
1684
1685 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1686 ROM_LOAD( "epr10321.c9", 0x00000, 0x8000, CRC(cd3e7cba) SHA1(4d3cfc7346c6e63e2221193601f949162d0e4f90) ) /* plane 1 */
1687 ROM_LOAD( "epr10322.c10", 0x08000, 0x8000, CRC(b53d3217) SHA1(baebf20925e9f8ab6660f041a24721716d5b7d92) ) /* plane 2 */
1688 ROM_LOAD( "epr10323.c11", 0x10000, 0x8000, CRC(915a3e61) SHA1(6504a8b26b7b4880971cd69ac2c8aae30dcfa18c) ) /* plane 3 */
1689
1690 ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* sprites */
1691 ROM_LOAD16_BYTE( "epr10012.c5", 0x00001, 0x08000, CRC(990824e8) SHA1(bd45f75d07cb4e17583c2d76050e5f819f4b7efe) )
1692 ROM_LOAD16_BYTE( "epr10016.b2", 0x00000, 0x08000, CRC(af5dc72f) SHA1(97bbb76940c702e642d8222dda71447b8f60b616) )
1693 ROM_LOAD16_BYTE( "epr10013.c6", 0x10001, 0x08000, CRC(9a0919c5) SHA1(e39e60c1e834b3b46bf2ef1c5952841bebe66ade) )
1694 ROM_LOAD16_BYTE( "epr10017.b3", 0x10000, 0x08000, CRC(62aafd95) SHA1(e1e3a95fd11cabf81f44ac2dd3f951d3094725e6) )
1695 ROM_LOAD16_BYTE( "epr10027.c7", 0x20001, 0x08000, CRC(3f1c57c7) SHA1(1336da8dc167a323f09534a2f62ae6f9c62290e4) )
1696 ROM_LOAD16_BYTE( "epr10028.b4", 0x20000, 0x08000, CRC(80d4946d) SHA1(d4c96a18ef6c2ac6bd9d153d8862a3af894642e8) )
1697 ROM_LOAD16_BYTE( "epr10015.c8", 0x30001, 0x08000, CRC(582d3b6a) SHA1(4f1d0060682e3fc1147082286e00e6a296a95da2) )
1698 ROM_LOAD16_BYTE( "epr10019.b5", 0x30000, 0x08000, CRC(e020c38b) SHA1(d13d38a64f2afa7df3cbccef2fe505a4421b73ad) )
1699
1700 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
1701 ROM_LOAD( "epr10026.b1", 0x00000, 0x8000, CRC(123b69b8) SHA1(c0614a8c822991e257f7218908247df278056de8) )
1702
1703 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
1704 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
1705
1706 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
1707 ROM_LOAD( "epr10029.c1", 0x00000, 0x8000, CRC(7e4aca83) SHA1(703486b96d493941ee87267e8363220a851f008e) )
1708 ROM_LOAD( "epr10030.c2", 0x08000, 0x8000, CRC(dcc1df0b) SHA1(a82a557fa48f4b3e1ab38f61b84d749cd417e80f) )
1709 ROM_LOAD( "epr10031.c3", 0x10000, 0x8000, CRC(ea3c4472) SHA1(ad8eac2d3d14fd6aba713f4d624861c17aabf757) )
1710 ROM_LOAD( "epr10032.c4", 0x18000, 0x8000, CRC(0aabebce) SHA1(fab12df8f4eab270be491c6c025d832c338e1e83) )
1711
1712 ROM_END
1713
1714 ROM_START( dumpmtmt )
1715 ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* 68000 code */
1716 ROM_LOAD16_BYTE( "7704a.bin", 0x000000, 0x8000, CRC(96de6c7b) SHA1(f23edf86c5044c151a8502957af7ca0de420d55e) )
1717 ROM_LOAD16_BYTE( "7701a.bin", 0x000001, 0x8000, CRC(786d1009) SHA1(c56ebd169c2792cde610a7130cffdc0363fca871) )
1718 ROM_LOAD16_BYTE( "7705a.bin", 0x010000, 0x8000, CRC(fc584391) SHA1(27238408fba2dda67f29094a6700b634b6fdaa58) )
1719 ROM_LOAD16_BYTE( "7702a.bin", 0x010001, 0x8000, CRC(2241a8fd) SHA1(d968ab57aa228dbb7ae6f17d7bf22991291e75ae) )
1720 ROM_LOAD16_BYTE( "7706a.bin", 0x020000, 0x8000, CRC(6bbcc9d0) SHA1(e8e0b85867f11eec6b280f3ad9e2746d3d97ab28) )
1721 ROM_LOAD16_BYTE( "7703a.bin", 0x020001, 0x8000, CRC(fcb0cd40) SHA1(999e107fe08fcb52729ddebc7714a85c47e748b1) )
1722
1723 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1724 ROM_LOAD( "7707a.bin", 0x00000, 0x8000, CRC(45318738) SHA1(6885347321aec8c4829a71e4518d1742f939ea9c) ) /* plane 1 */
1725 ROM_LOAD( "7708a.bin", 0x08000, 0x8000, CRC(411be9a4) SHA1(808a9c941d353f34c3491ca2cde984e73cc7a87d) ) /* plane 2 */
1726 ROM_LOAD( "7709a.bin", 0x10000, 0x8000, CRC(74ceb5a8) SHA1(93ed6bb4a3c820f3a7ee5e9b2c2ce35d2bed8529) ) /* plane 3 */
1727
1728 ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* sprites */
1729 ROM_LOAD16_BYTE( "7715.bin", 0x000001, 0x08000, CRC(bf47e040) SHA1(5aa1b9adaa2095844c10993402a0597bb5768efb) )
1730 ROM_LOAD16_BYTE( "7719.bin", 0x000000, 0x08000, CRC(fa5c5d6c) SHA1(6cac5d3fd705d1365348d57a18bbeb1eb9e412b8) )
1731 ROM_LOAD16_BYTE( "epr10013.c6", 0x010001, 0x08000, CRC(9a0919c5) SHA1(e39e60c1e834b3b46bf2ef1c5952841bebe66ade) ) /* 7716 */
1732 ROM_LOAD16_BYTE( "epr10017.b3", 0x010000, 0x08000, CRC(62aafd95) SHA1(e1e3a95fd11cabf81f44ac2dd3f951d3094725e6) ) /* 7720 */
1733 ROM_LOAD16_BYTE( "7717.bin", 0x020001, 0x08000, CRC(fa64c86d) SHA1(ada722dd6efbf466a719ee1fe34a36ce1ea20184) )
1734 ROM_LOAD16_BYTE( "7721.bin", 0x020000, 0x08000, CRC(62a9143e) SHA1(28f0dc0329163f0a6505dd34a24a843b35118c5e) )
1735 ROM_LOAD16_BYTE( "epr10015.c8", 0x030001, 0x08000, CRC(582d3b6a) SHA1(4f1d0060682e3fc1147082286e00e6a296a95da2) ) /* 7718 */
1736 ROM_LOAD16_BYTE( "epr10019.b5", 0x030000, 0x08000, CRC(e020c38b) SHA1(d13d38a64f2afa7df3cbccef2fe505a4421b73ad) ) /* 7722 */
1737
1738 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
1739 ROM_LOAD( "7710a.bin", 0x00000, 0x8000, CRC(a19b8ba8) SHA1(21b628d4ecbe38a6d96a39ca4252ff1cb728343f) )
1740
1741 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
1742 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
1743
1744 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
1745 ROM_LOAD( "7711.bin", 0x00000, 0x8000, CRC(efa9aabd) SHA1(b0928313b98159b95f3a6784c6279924774b9253) )
1746 ROM_LOAD( "7712.bin", 0x08000, 0x8000, CRC(7bcd85cf) SHA1(9acba6998327e1074d7311a9b6d06da9baf69aa0) )
1747 ROM_LOAD( "7713.bin", 0x10000, 0x8000, CRC(33f292e7) SHA1(4358cd3922a0dcbf109d2d697c7b8c4e090c3d52) )
1748 ROM_LOAD( "7714.bin", 0x18000, 0x8000, CRC(8fd48c47) SHA1(1cba63a9e7e0b477683b7758d124f4949558ba7a) )
1749
1750 ROM_END
1751
1752 /***************************************************************************/
1753
1754 static MEMORY_READ16_START( bodyslam_readmem )
1755 { 0x000000, 0x02ffff, MRA16_ROM },
1756 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
1757 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
1758 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
1759 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
1760 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
1761 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
1762 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
1763 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
1764 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
1765 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
1766 MEMORY_END
1767
1768 static MEMORY_WRITE16_START( bodyslam_writemem )
1769 { 0x000000, 0x02ffff, MWA16_ROM },
1770 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
1771 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
1772 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
1773 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
1774 { 0xc40000, 0xc40001, sound_command_nmi_w },
1775 { 0xc40002, 0xc40003, sys16_3d_coinctrl_w },
1776 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
1777 MEMORY_END
1778
1779 /***************************************************************************/
1780
1781 static void bodyslam_update_proc (void){
1782 sys16_fg_scrollx = sys16_textram[0x0ffa/2] & 0x01ff;
1783 sys16_bg_scrollx = sys16_textram[0x0ff8/2] & 0x01ff;
1784 sys16_fg_scrolly = sys16_textram[0x0f26/2] & 0x00ff;
1785 sys16_bg_scrolly = sys16_textram[0x0f24/2] & 0x01ff;
1786
1787 set_fg_page1( sys16_textram[0x0e9e/2] );
1788 set_bg_page1( sys16_textram[0x0e9c/2] );
1789 }
1790
MACHINE_INIT(bodyslam)1791 static MACHINE_INIT( bodyslam ){
1792 sys16_textmode=1;
1793 sys16_spritesystem = sys16_sprite_quartet2;
1794 sys16_sprxoffset = -0xbc;
1795 sys16_fgxoffset = sys16_bgxoffset = 7;
1796 sys16_bg_priority_mode = 2;
1797 sys16_bg_priority_value=0x0e00;
1798
1799 sys16_textlayer_lo_min=0;
1800 sys16_textlayer_lo_max=0x1f;
1801 sys16_textlayer_hi_min=0x20;
1802 sys16_textlayer_hi_max=0xff;
1803
1804 sys16_update_proc = bodyslam_update_proc;
1805 }
1806
1807 // I have no idea if this is needed, but I cannot find any code for the countdown
1808 // timer in the code and this seems to work ok.
bodyslam_irq_timer(void)1809 static void bodyslam_irq_timer(void)
1810 {
1811 int flag=(*(UINT16 *)(&sys16_workingram[0x200/2]))>>8;
1812 int tick=(*(UINT16 *)(&sys16_workingram[0x200/2]))&0xff;
1813 int sec=(*(UINT16 *)(&sys16_workingram[0x202/2]))>>8;
1814 int min=(*(UINT16 *)(&sys16_workingram[0x202/2]))&0xff;
1815
1816 if(tick == 0 && sec == 0 && min == 0)
1817 flag=1;
1818 else
1819 {
1820 if(tick==0)
1821 {
1822 tick=0x40; // The game initialise this to 0x40
1823 if(sec==0)
1824 {
1825 sec=0x59;
1826 if(min==0)
1827 {
1828 flag=1;
1829 tick=sec=min=0;
1830 }
1831 else
1832 min--;
1833 }
1834 else
1835 {
1836 if((sec&0xf)==0)
1837 {
1838 sec-=0x10;
1839 sec|=9;
1840 }
1841 else
1842 sec--;
1843
1844 }
1845 }
1846 else
1847 tick--;
1848 }
1849 sys16_workingram[0x200/2] = (flag<<8)+tick;
1850 sys16_workingram[0x202/2] = (sec<<8)+min;
1851 }
1852
DRIVER_INIT(bodyslam)1853 static DRIVER_INIT( bodyslam ){
1854 machine_init_sys16_onetime();
1855 sys16_bg1_trans=1;
1856 sys16_custom_irq=bodyslam_irq_timer;
1857 }
1858
1859 /***************************************************************************/
1860
INPUT_PORTS_START(bodyslam)1861 INPUT_PORTS_START( bodyslam )
1862 SYS16_JOY1
1863 SYS16_JOY2
1864 SYS16_SERVICE
1865 SYS16_COINAGE
1866
1867 PORT_START /* DSW1 */
1868 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
1869 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1870 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1871 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
1872 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1873 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1874 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1875 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1876 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1877 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1878 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1879 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1880 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1881 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1882 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1883 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1884 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1885 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1886 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1887 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1888 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1889 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1890 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1891 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1892
1893 INPUT_PORTS_END
1894
1895 /***************************************************************************/
1896
1897 static MACHINE_DRIVER_START( bodyslam )
1898
1899 /* basic machine hardware */
1900 MDRV_IMPORT_FROM(system16_7751)
1901 MDRV_CPU_MODIFY("main")
1902 MDRV_CPU_MEMORY(bodyslam_readmem,bodyslam_writemem)
1903
1904 MDRV_MACHINE_INIT(bodyslam)
1905 MACHINE_DRIVER_END
1906
1907 /***************************************************************************/
1908 // sys16B
1909 ROM_START( dduxbl )
1910 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
1911 ROM_LOAD16_BYTE( "dduxb03.bin", 0x000000, 0x20000, CRC(e7526012) SHA1(a1798008bfa1ce9b87dc330f3817b1978052fcfd) )
1912 ROM_LOAD16_BYTE( "dduxb05.bin", 0x000001, 0x20000, CRC(459d1237) SHA1(55e9c0dc341c919d58cc789203642c397d7ac65e) )
1913 /* empty 0x40000 - 0x80000 */
1914 ROM_LOAD16_BYTE( "dduxb02.bin", 0x080000, 0x20000, CRC(d8ed3132) SHA1(a9d5ad8f79fb635cc234a99fad398688a5f15926) )
1915 ROM_LOAD16_BYTE( "dduxb04.bin", 0x080001, 0x20000, CRC(30c6cb92) SHA1(2e17c74eeb37c9731fc2e365cc0114f7383c0106) )
1916
1917 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
1918 ROM_LOAD( "dduxb14.bin", 0x00000, 0x10000, CRC(664bd135) SHA1(674b06e01c2c8f5b8057dd24d470330c3f140473) )
1919 ROM_LOAD( "dduxb15.bin", 0x10000, 0x10000, CRC(ce0d2b30) SHA1(e60521c46f1650c9bdc76f2ceb91a6d61aaa0a09) )
1920 ROM_LOAD( "dduxb16.bin", 0x20000, 0x10000, CRC(6de95434) SHA1(7bed2a0261cf6c2fbb3756633f05f0bb2173977c) )
1921
1922 ROM_REGION( 0xa0000, REGION_GFX2, 0 ) //* sprites */
1923 ROM_LOAD16_BYTE( "dduxb10.bin", 0x00001, 0x010000, CRC(0be3aee5) SHA1(48fc779b7398abbb82cd0d0d28705ece75b3c4e3) )
1924 ROM_RELOAD( 0x20001, 0x010000 )
1925 ROM_LOAD16_BYTE( "dduxb06.bin", 0x00000, 0x010000, CRC(b0079e99) SHA1(9bb4d3fa804a3d05a6e06b45a1280d7064e96ac6) )
1926 ROM_RELOAD( 0x20000, 0x010000 )
1927 ROM_LOAD16_BYTE( "dduxb11.bin", 0x40001, 0x010000, CRC(cfb2af18) SHA1(1ad18f933a7b797f0364d1f4a6c8549351b4c9a6) )
1928 ROM_LOAD16_BYTE( "dduxb07.bin", 0x40000, 0x010000, CRC(0217369c) SHA1(b6ec2fa1279a27a602d79e1073c54193745ea816) )
1929 ROM_LOAD16_BYTE( "dduxb12.bin", 0x60001, 0x010000, CRC(28ce9b15) SHA1(1640df9c8f21893c0647ad2f4210c714a06e6f37) )
1930 ROM_LOAD16_BYTE( "dduxb08.bin", 0x60000, 0x010000, CRC(8844f336) SHA1(18c1baaad3bcc658d4a6d03de8c97378b5284e88) )
1931 ROM_LOAD16_BYTE( "dduxb13.bin", 0x80001, 0x010000, CRC(efe57759) SHA1(69b8969b20ab9480df2735bd2bcd527069196bd7) )
1932 ROM_LOAD16_BYTE( "dduxb09.bin", 0x80000, 0x010000, CRC(6b64f665) SHA1(df07fcf2bbec6fa78f89b95272762aebd6f3ec0e) )
1933
1934 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
1935 ROM_LOAD( "dduxb01.bin", 0x0000, 0x8000, CRC(0dbef0d7) SHA1(8b9afb2fcb946cec467b1e691c267194b503f841) )
1936 ROM_END
1937
1938 /***************************************************************************/
1939 static READ16_HANDLER( dduxbl_skip_r ){
1940 if (activecpu_get_pc()==0x502) {cpu_spinuntil_int(); return 0xffff;}
1941 return sys16_workingram[0x36e0/2];
1942 }
1943
MEMORY_READ16_START(dduxbl_readmem)1944 static MEMORY_READ16_START( dduxbl_readmem )
1945 { 0x000000, 0x0bffff, MRA16_ROM },
1946 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
1947 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
1948 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
1949 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
1950 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
1951 { 0xc41004, 0xc41005, input_port_1_word_r }, // player2
1952 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
1953 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
1954 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
1955 { 0xfff6e0, 0xfff6e1, dduxbl_skip_r },
1956 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
1957 MEMORY_END
1958
1959 static MEMORY_WRITE16_START( dduxbl_writemem )
1960 { 0x000000, 0x0bffff, MWA16_ROM },
1961 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
1962 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
1963 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
1964 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
1965 { 0xc40000, 0xc40001, sys16_coinctrl_w },
1966 { 0xc40006, 0xc40007, sound_command_w },
1967 { 0xc46000, 0xc4603f, SYS16_MWA16_EXTRAM2 },
1968 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
1969 MEMORY_END
1970
1971 /***************************************************************************/
1972
1973 static void dduxbl_update_proc( void ){
1974 sys16_fg_scrollx = (sys16_extraram2[0x0018/2] ^ 0xffff) & 0x01ff;
1975 sys16_bg_scrollx = (sys16_extraram2[0x0008/2] ^ 0xffff) & 0x01ff;
1976 sys16_fg_scrolly = sys16_extraram2[0x0010/2] & 0x00ff;
1977 sys16_bg_scrolly = sys16_extraram2[0x0000/2];
1978
1979 {
1980 unsigned char lu = sys16_extraram2[0x0020/2] & 0xff;
1981 unsigned char ru = sys16_extraram2[0x0022/2] & 0xff;
1982 unsigned char ld = sys16_extraram2[0x0024/2] & 0xff;
1983 unsigned char rd = sys16_extraram2[0x0026/2] & 0xff;
1984
1985 if (lu==4 && ld==4 && ru==5 && rd==5)
1986 { // fix a bug in chicago round (un-tested in MAME)
1987 int vs=(*(UINT16 *)(&sys16_workingram[0x36ec]));
1988 sys16_bg_scrolly = vs & 0xff;
1989 sys16_fg_scrolly = vs & 0xff;
1990 if (vs >= 0x100)
1991 {
1992 lu=0x26; ru=0x37;
1993 ld=0x04; rd=0x15;
1994 } else {
1995 ld=0x26; rd=0x37;
1996 lu=0x04; ru=0x15;
1997 }
1998 }
1999 sys16_fg_page[0] = ld&0xf;
2000 sys16_fg_page[1] = rd&0xf;
2001 sys16_fg_page[2] = lu&0xf;
2002 sys16_fg_page[3] = ru&0xf;
2003
2004 sys16_bg_page[0] = ld>>4;
2005 sys16_bg_page[1] = rd>>4;
2006 sys16_bg_page[2] = lu>>4;
2007 sys16_bg_page[3] = ru>>4;
2008 }
2009 }
2010
MACHINE_INIT(dduxbl)2011 static MACHINE_INIT( dduxbl ){
2012 static int bank[16] = { //*
2013 0,0,0,0,
2014 0,0,0,4,
2015 0,0,0,3,
2016 0,2,0,0
2017 };
2018 sys16_obj_bank = bank;
2019
2020 sys16_patch_code( 0x1eb2e, 0x01 );
2021 sys16_patch_code( 0x1eb2f, 0x01 );
2022 sys16_patch_code( 0x1eb3c, 0x00 );
2023 sys16_patch_code( 0x1eb3d, 0x00 );
2024 sys16_patch_code( 0x23132, 0x01 );
2025 sys16_patch_code( 0x23133, 0x01 );
2026 sys16_patch_code( 0x23140, 0x00 );
2027 sys16_patch_code( 0x23141, 0x00 );
2028 sys16_patch_code( 0x24a9a, 0x01 );
2029 sys16_patch_code( 0x24a9b, 0x01 );
2030 sys16_patch_code( 0x24aa8, 0x00 );
2031 sys16_patch_code( 0x24aa9, 0x00 );
2032
2033 sys16_update_proc = dduxbl_update_proc;
2034 sys16_sprxoffset = -0x48;
2035 }
2036
DRIVER_INIT(dduxbl)2037 static DRIVER_INIT( dduxbl )
2038 {
2039 int i;
2040
2041 machine_init_sys16_onetime();
2042
2043 /* invert the graphics bits on the tiles */
2044 for (i = 0; i < 0x30000; i++)
2045 memory_region(REGION_GFX1)[i] ^= 0xff;
2046 }
2047 /***************************************************************************/
2048
INPUT_PORTS_START(dduxbl)2049 INPUT_PORTS_START( dduxbl )
2050 SYS16_JOY1
2051 SYS16_JOY2
2052 SYS16_SERVICE
2053 SYS16_COINAGE
2054
2055 PORT_START /* DSW1 */
2056 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
2057 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2058 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2059 PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) )
2060 PORT_DIPSETTING( 0x04, "Easy" )
2061 PORT_DIPSETTING( 0x06, "Normal" )
2062 PORT_DIPSETTING( 0x02, "Hard" )
2063 PORT_DIPSETTING( 0x00, "Hardest" )
2064 PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
2065 PORT_DIPSETTING( 0x10, "2" )
2066 PORT_DIPSETTING( 0x18, "3" )
2067 PORT_DIPSETTING( 0x08, "4" )
2068 PORT_DIPSETTING( 0x00, "5" )
2069 PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) )
2070 PORT_DIPSETTING( 0x40, "150000" )
2071 PORT_DIPSETTING( 0x60, "200000" )
2072 PORT_DIPSETTING( 0x20, "300000" )
2073 PORT_DIPSETTING( 0x00, "400000" )
2074 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
2075 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2076 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2077
2078 INPUT_PORTS_END
2079
2080 /***************************************************************************/
2081
2082 static MACHINE_DRIVER_START( dduxbl )
2083
2084 /* basic machine hardware */
2085 MDRV_IMPORT_FROM(system16)
2086 MDRV_CPU_MODIFY("main")
2087 MDRV_CPU_MEMORY(dduxbl_readmem,dduxbl_writemem)
2088
2089 MDRV_MACHINE_INIT(dduxbl)
2090 MACHINE_DRIVER_END
2091
2092 /***************************************************************************/
2093 // sys16B
2094 ROM_START( eswat )
2095 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
2096 ROM_LOAD16_BYTE( "12657", 0x000000, 0x40000, CRC(cfb935e9) SHA1(c2ff4566f5f6cd6229323fac4f9d1881fc86ac62) )
2097 ROM_LOAD16_BYTE( "12656", 0x000001, 0x40000, CRC(be3f9d28) SHA1(3e93da0746e064c3406c378b1cf6be82f999b282) )
2098
2099 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2100 ROM_LOAD( "e12624r", 0x00000, 0x40000, CRC(e7b8545e) SHA1(1eee07ae29b791851a5b3761e731ceee6e5c24a8) )
2101 ROM_LOAD( "e12625r", 0x40000, 0x40000, CRC(b418582c) SHA1(06120c58e4873474eef8ee1339b01b9a71d08a1a) )
2102 ROM_LOAD( "e12626r", 0x80000, 0x40000, CRC(ba65789b) SHA1(3603a229756b02bfa89df97d36b27d55bf0fd82b) )
2103
2104 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
2105 ROM_LOAD16_BYTE( "e12618r", 0x000001, 0x40000, CRC(2d9ae975) SHA1(3d2f80f3393bac0dfee37ac8d3c96ab8b0869411) )
2106 ROM_LOAD16_BYTE( "e12621r", 0x000000, 0x40000, CRC(1e6c4cf7) SHA1(21c87769c2a2410b8c451e08099a4e5e70381408) )
2107 ROM_LOAD16_BYTE( "e12619r", 0x080001, 0x40000, CRC(5f7ee6f6) SHA1(1a9d0ecc00586ec1ee9250579957cf095066fd44) )
2108 ROM_LOAD16_BYTE( "e12622r", 0x080000, 0x40000, CRC(33251fde) SHA1(bbfc0f69a5b92c9d6fc25fdfbf652e30627106ab) )
2109 ROM_LOAD16_BYTE( "e12620r", 0x100001, 0x40000, CRC(905f9be2) SHA1(3a3d0f6392263b67011d6b9d9d79c79d69f68bd6) )
2110 ROM_LOAD16_BYTE( "e12623r", 0x100000, 0x40000, CRC(a25ea1fc) SHA1(4ab4b9c8698e0b630bb6f363070f28a300ab9ee6) )
2111
2112 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
2113 ROM_LOAD( "e12617", 0x00000, 0x08000, CRC(537930cb) SHA1(da3d50aff3cbe1587809e804f840fa5138fb6811) )
2114 ROM_LOAD( "e12616r",0x10000, 0x20000, CRC(f213fa4a) SHA1(a4cb8a52b358a075177f73699eae525884aba1ec) )
2115 ROM_END
2116
2117 ROM_START( eswatbl )
2118 ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */
2119 ROM_LOAD16_BYTE( "eswat_c.rom", 0x000000, 0x10000, CRC(1028cc81) SHA1(24b4cd182419a44f3d6afa1c4273353024eb278f) )
2120 ROM_LOAD16_BYTE( "eswat_f.rom", 0x000001, 0x10000, CRC(f7b2d388) SHA1(8131ba8f4fa01751b9993c3c6c218c9bd3adb328) )
2121 ROM_LOAD16_BYTE( "eswat_b.rom", 0x020000, 0x10000, CRC(87c6b1b5) SHA1(a9f29e29a9c0e3daf272dce263a5fd7866642c77) )
2122 ROM_LOAD16_BYTE( "eswat_e.rom", 0x020001, 0x10000, CRC(937ddf9a) SHA1(9fc73f93e9c4221a4dc778593edc02cb405b2f78) )
2123 ROM_LOAD16_BYTE( "eswat_a.rom", 0x040000, 0x08000, CRC(2af4fc62) SHA1(f7b1539a5ab9560bd49dfecf44699abccfb649be) )
2124 ROM_LOAD16_BYTE( "eswat_d.rom", 0x040001, 0x08000, CRC(b4751e19) SHA1(57c9687dc864c163d13dbb89057cd42684a199cd) )
2125
2126 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2127 ROM_LOAD( "ic19.bin", 0x00000, 0x40000, CRC(375a5ec4) SHA1(42b9116bdc0e0a5b1dd667ac1856b4c2252829ba) )
2128 ROM_LOAD( "ic20.bin", 0x40000, 0x40000, CRC(3b8c757e) SHA1(0b66e8446d059a12e47e2a6fe8f0a333245bb95c) )
2129 ROM_LOAD( "ic21.bin", 0x80000, 0x40000, CRC(3efca25c) SHA1(0d866bf53a16b52719f73081e933f4db27d72ece) )
2130
2131 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
2132 ROM_LOAD16_BYTE( "ic9.bin", 0x000001, 0x040000, CRC(0d1530bf) SHA1(bb8626cd98761c1c20cee117d00315c85621ba6a) )
2133 ROM_LOAD16_BYTE( "ic12.bin", 0x000000, 0x040000, CRC(18ff0799) SHA1(5417223378aef16ee2b4f438d1f8f11a23fe7265) )
2134 ROM_LOAD16_BYTE( "ic10.bin", 0x080001, 0x040000, CRC(32069246) SHA1(4913009bc72bf4f8b171b14fe06457f5784cab15) )
2135 ROM_LOAD16_BYTE( "ic13.bin", 0x080000, 0x040000, CRC(a3dfe436) SHA1(640ccc552114d403f35d441574d2f3e4f1d4a8f9) )
2136 ROM_LOAD16_BYTE( "ic11.bin", 0x100001, 0x040000, CRC(f6b096e0) SHA1(695ad1adbdc29f4d614645867e16de038cf92709) )
2137 ROM_LOAD16_BYTE( "ic14.bin", 0x100000, 0x040000, CRC(6773fef6) SHA1(91e646ea447be02254d060daf255d26afe0cc79e) )
2138
2139 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
2140 ROM_LOAD( "ic8.bin", 0x0000, 0x8000, CRC(7efecf23) SHA1(2b87af7cfaab5942a3f7b38c987fcba01d3475ab) )
2141 ROM_LOAD( "ic6.bin", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
2142 ROM_END
2143 /***************************************************************************/
2144
2145 static READ16_HANDLER( eswatbl_skip_r ){
2146 if (activecpu_get_pc()==0x65c) {cpu_spinuntil_int(); return 0xffff;}
2147 return sys16_workingram[0x0454/2];
2148 }
2149
MEMORY_READ16_START(eswat_readmem)2150 static MEMORY_READ16_START( eswat_readmem )
2151 { 0x000000, 0x07ffff, MRA16_ROM },
2152 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
2153 { 0x410000, 0x418fff, SYS16_MRA16_TEXTRAM }, //*
2154 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
2155 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
2156 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
2157 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
2158 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
2159 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
2160 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
2161 { 0xffc454, 0xffc455, eswatbl_skip_r },
2162 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
2163 MEMORY_END
2164
2165 static int eswat_tilebank0;
2166
WRITE16_HANDLER(eswat_tilebank0_w)2167 static WRITE16_HANDLER( eswat_tilebank0_w ){
2168 if( ACCESSING_LSB ){
2169 eswat_tilebank0 = data&0xff;
2170 }
2171 }
2172
MEMORY_WRITE16_START(eswat_writemem)2173 static MEMORY_WRITE16_START( eswat_writemem )
2174 { 0x000000, 0x07ffff, MWA16_ROM },
2175 { 0x3e2000, 0x3e2001, eswat_tilebank0_w },
2176 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
2177 { 0x410000, 0x418fff, SYS16_MWA16_TEXTRAM },
2178 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
2179 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
2180 { 0xc42006, 0xc42007, sound_command_w },
2181 { 0xc40000, 0xc40001, sys16_coinctrl_w },
2182 { 0xc80000, 0xc80001, MWA16_NOP },
2183 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
2184 MEMORY_END
2185
2186 /***************************************************************************/
2187
2188 static void eswat_update_proc( void ){
2189 sys16_fg_scrollx = sys16_textram[0x8008/2] ^ 0xffff;
2190 sys16_bg_scrollx = sys16_textram[0x8018/2] ^ 0xffff;
2191 sys16_fg_scrolly = sys16_textram[0x8000/2];
2192 sys16_bg_scrolly = sys16_textram[0x8010/2];
2193
2194 set_fg_page( sys16_textram[0x8020/2] );
2195 set_bg_page( sys16_textram[0x8028/2] );
2196
2197 sys16_tile_bank1 = (sys16_textram[0x8030/2])&0xf;
2198 sys16_tile_bank0 = eswat_tilebank0;
2199 }
2200
MACHINE_INIT(eswat)2201 static MACHINE_INIT( eswat ){
2202 static int bank[] = {
2203 0,1, 4,5,
2204 8,9, 12,13,
2205 2,3, 6,7,
2206 10,11, 14,15
2207 };
2208 sys16_obj_bank = bank;
2209 sys16_sprxoffset = -0x23c;
2210
2211 sys16_patch_code( 0x3897, 0x11 );
2212
2213 sys16_update_proc = eswat_update_proc;
2214 }
2215
DRIVER_INIT(eswat)2216 static DRIVER_INIT( eswat ){
2217 machine_init_sys16_onetime();
2218 sys16_rowscroll_scroll=0x8000;
2219 sys18_splittab_fg_x=&sys16_textram[0x0f80];
2220 }
2221
2222 /***************************************************************************/
2223
INPUT_PORTS_START(eswat)2224 INPUT_PORTS_START( eswat )
2225 SYS16_JOY1
2226 SYS16_JOY2
2227 SYS16_SERVICE
2228 SYS16_COINAGE
2229
2230 PORT_START /* DSW1 */
2231 PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" )
2232 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2233 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2234 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
2235 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2236 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2237 PORT_DIPNAME( 0x04, 0x04, "Display Flip" )
2238 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2239 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2240 PORT_DIPNAME( 0x08, 0x08, "Time" )
2241 PORT_DIPSETTING( 0x08, "Normal" )
2242 PORT_DIPSETTING( 0x00, "Hard" )
2243 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
2244 PORT_DIPSETTING( 0x20, "Easy" )
2245 PORT_DIPSETTING( 0x30, "Normal" )
2246 PORT_DIPSETTING( 0x10, "Hard" )
2247 PORT_DIPSETTING( 0x00, "Hardest" )
2248 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
2249 PORT_DIPSETTING( 0x00, "1" )
2250 PORT_DIPSETTING( 0x40, "2" )
2251 PORT_DIPSETTING( 0xc0, "3" )
2252 PORT_DIPSETTING( 0x80, "4" )
2253 INPUT_PORTS_END
2254
2255 /***************************************************************************/
2256
2257 static MACHINE_DRIVER_START( eswat )
2258
2259 /* basic machine hardware */
2260 MDRV_IMPORT_FROM(system16_7759)
2261 MDRV_CPU_MODIFY("main")
2262 MDRV_CPU_MEMORY(eswat_readmem,eswat_writemem)
2263
2264 MDRV_MACHINE_INIT(eswat)
2265 MACHINE_DRIVER_END
2266
2267 /***************************************************************************/
2268 // sys16A
2269 ROM_START( fantzono )
2270 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
2271 ROM_LOAD16_BYTE( "7385.43", 0x000000, 0x8000, CRC(5cb64450) SHA1(5831405359975dd7d8c6614b20fd9b18a5d6410d) )
2272 ROM_LOAD16_BYTE( "7382.26", 0x000001, 0x8000, CRC(3fda7416) SHA1(91f34cc8afb4ad8bc783c31d25781a1359c44cfe) )
2273 ROM_LOAD16_BYTE( "7386.42", 0x010000, 0x8000, CRC(15810ace) SHA1(e61a258ab6601d359f6ad1f37a2b2801bf777d26) )
2274 ROM_LOAD16_BYTE( "7383.25", 0x010001, 0x8000, CRC(a001e10a) SHA1(04ebb012b10817db36997d0ee877104d512decf8) )
2275 ROM_LOAD16_BYTE( "7387.41", 0x020000, 0x8000, CRC(0acd335d) SHA1(f39566a2069eefa7682c57c6521ea7a328738d06) )
2276 ROM_LOAD16_BYTE( "7384.24", 0x020001, 0x8000, CRC(fd909341) SHA1(2f1e01eb7d7b330c9c0dd98e5f8ed4973f0e93fb) )
2277
2278 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2279 ROM_LOAD( "7388.95", 0x00000, 0x08000, CRC(8eb02f6b) SHA1(80511b944b57541669010bd5a0ca52bc98eabd62) )
2280 ROM_LOAD( "7389.94", 0x08000, 0x08000, CRC(2f4f71b8) SHA1(ceb39e95cd43904b8e4f89c7227491e139fb3ca6) )
2281 ROM_LOAD( "7390.93", 0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) )
2282
2283 ROM_REGION( 0x30000, REGION_GFX2, 0 ) /* sprites */
2284 ROM_LOAD16_BYTE( "7392.10", 0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) )
2285 ROM_LOAD16_BYTE( "7396.11", 0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) )
2286 ROM_LOAD16_BYTE( "7393.17", 0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) )
2287 ROM_LOAD16_BYTE( "7397.18", 0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) )
2288 ROM_LOAD16_BYTE( "7394.23", 0x20001, 0x8000, CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) )
2289 ROM_LOAD16_BYTE( "7398.24", 0x20000, 0x8000, CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) )
2290
2291 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2292 ROM_LOAD( "7535.12", 0x0000, 0x8000, CRC(0cb2126a) SHA1(42b18a81bed58ef59eaad929007eef89ad273dbb) )
2293 ROM_END
2294
2295 ROM_START( fantzone )
2296 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
2297 ROM_LOAD16_BYTE( "epr7385a.43", 0x000000, 0x8000, CRC(4091af42) SHA1(1d4fdd32db9f75e5ccaab5766a50249ad71a60af) )
2298 ROM_LOAD16_BYTE( "epr7382a.26", 0x000001, 0x8000, CRC(77d67bfd) SHA1(886ce4c2d779cedd81f85737ef55fce3c94baa18) )
2299 ROM_LOAD16_BYTE( "epr7386a.42", 0x010000, 0x8000, CRC(b0a67cd0) SHA1(2e2bf2b7306fc567f7d13f89977543b368c19027) )
2300 ROM_LOAD16_BYTE( "epr7383a.25", 0x010001, 0x8000, CRC(5f79b2a9) SHA1(de3125bbd0a126fc5a67ba3134cd3f4608ebdfce) )
2301 ROM_LOAD16_BYTE( "7387.41", 0x020000, 0x8000, CRC(0acd335d) SHA1(f39566a2069eefa7682c57c6521ea7a328738d06) )
2302 ROM_LOAD16_BYTE( "7384.24", 0x020001, 0x8000, CRC(fd909341) SHA1(2f1e01eb7d7b330c9c0dd98e5f8ed4973f0e93fb) )
2303
2304 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2305 ROM_LOAD( "7388.95", 0x00000, 0x08000, CRC(8eb02f6b) SHA1(80511b944b57541669010bd5a0ca52bc98eabd62) )
2306 ROM_LOAD( "7389.94", 0x08000, 0x08000, CRC(2f4f71b8) SHA1(ceb39e95cd43904b8e4f89c7227491e139fb3ca6) )
2307 ROM_LOAD( "7390.93", 0x10000, 0x08000, CRC(d90609c6) SHA1(4232f6ecb21f242c0c8d81e06b88bc742668609f) )
2308
2309 ROM_REGION( 0x30000, REGION_GFX2, 0 ) /* sprites */
2310 ROM_LOAD16_BYTE( "7392.10", 0x00001, 0x8000, CRC(5bb7c8b6) SHA1(eaa0ed63ac4f66ee285757e842bdd7b005292600) )
2311 ROM_LOAD16_BYTE( "7396.11", 0x00000, 0x8000, CRC(74ae4b57) SHA1(1f24b1faea765994b85f0e7ac8e944c8da22103f) )
2312 ROM_LOAD16_BYTE( "7393.17", 0x10001, 0x8000, CRC(14fc7e82) SHA1(ca7caca989a3577dd30ad4f66b0fcce712a454ef) )
2313 ROM_LOAD16_BYTE( "7397.18", 0x10000, 0x8000, CRC(e05a1e25) SHA1(9691d9f0763b7483ee6912437902f22ab4b78a05) )
2314 ROM_LOAD16_BYTE( "7394.23", 0x20001, 0x8000, CRC(531ca13f) SHA1(19e68bc515f6021e1145cff4f3f0e083839ee8f3) )
2315 ROM_LOAD16_BYTE( "7398.24", 0x20000, 0x8000, CRC(68807b49) SHA1(0a189da8cdd2090e76d6d06c55b478abce60542d) )
2316
2317 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2318 ROM_LOAD( "epr7535a.12", 0x0000, 0x8000, CRC(bc1374fa) SHA1(ed2c87ae024dc251e175239f1bccc728fc096548) )
2319 ROM_END
2320
2321
2322 /***************************************************************************/
2323
2324 static READ16_HANDLER( fantzone_skip_r ){
2325 if (activecpu_get_pc()==0x91b2) {cpu_spinuntil_int(); return 0xffff;}
2326 return sys16_workingram[0x022a/2];
2327 }
2328
MEMORY_READ16_START(fantzono_readmem)2329 static MEMORY_READ16_START( fantzono_readmem )
2330 { 0x000000, 0x02ffff, MRA16_ROM },
2331 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
2332 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
2333 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
2334 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
2335 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
2336 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
2337 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
2338 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
2339 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
2340 { 0xc40000, 0xc40003, SYS16_MRA16_EXTRAM2 },
2341 { 0xffc22a, 0xffc22b, fantzone_skip_r },
2342 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
2343 MEMORY_END
2344
2345 static MEMORY_WRITE16_START( fantzono_writemem )
2346 { 0x000000, 0x02ffff, MWA16_ROM },
2347 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
2348 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
2349 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
2350 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
2351 { 0xc40000, 0xc40001, sound_command_nmi_w },
2352 { 0xc40000, 0xc40003, SYS16_MWA16_EXTRAM2 },
2353 { 0xc60000, 0xc60003, MWA16_NOP },
2354 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
2355 MEMORY_END
2356
2357 static MEMORY_READ16_START( fantzone_readmem )
2358 { 0x000000, 0x02ffff, MRA16_ROM },
2359 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
2360 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
2361 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
2362 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
2363 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
2364 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
2365 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
2366 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
2367 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
2368 { 0xffc22a, 0xffc22b, fantzone_skip_r },
2369 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
2370 MEMORY_END
2371
2372 static MEMORY_WRITE16_START( fantzone_writemem )
2373 { 0x000000, 0x02ffff, MWA16_ROM },
2374 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
2375 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
2376 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
2377 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
2378 { 0xc40000, 0xc40001, sound_command_nmi_w },
2379 { 0xc40002, 0xc40003, sys16_3d_coinctrl_w },
2380 { 0xc60000, 0xc60003, MWA16_NOP },
2381 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
2382 MEMORY_END
2383
2384 /***************************************************************************/
2385
2386 static void fantzone_update_proc( void ){
2387 set_bg_page1( sys16_textram[0x74e] );
2388 set_fg_page1( sys16_textram[0x74f] );
2389 sys16_fg_scrollx = sys16_textram[0x7fc] & 0x01ff;
2390 sys16_bg_scrollx = sys16_textram[0x7fd] & 0x01ff;
2391 sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff;
2392 sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff;
2393 }
2394
MACHINE_INIT(fantzono)2395 static MACHINE_INIT( fantzono ){
2396 sys16_textmode=1;
2397 sys16_spritesystem = sys16_sprite_fantzone;
2398 sys16_sprxoffset = -0xbe;
2399 // sys16_fgxoffset = sys16_bgxoffset = 8;
2400 sys16_fg_priority_mode=3; // fixes end of game priority
2401 sys16_fg_priority_value=0xd000;
2402
2403 sys16_patch_code( 0x20e7, 0x16 );
2404 sys16_patch_code( 0x30ef, 0x16 );
2405
2406 // solving Fantasy Zone scrolling bug
2407 sys16_patch_code(0x308f,0x00);
2408
2409 // invincible
2410 /* sys16_patch_code(0x224e,0x4e);
2411 sys16_patch_code(0x224f,0x71);
2412 sys16_patch_code(0x2250,0x4e);
2413 sys16_patch_code(0x2251,0x71);
2414
2415 sys16_patch_code(0x2666,0x4e);
2416 sys16_patch_code(0x2667,0x71);
2417 sys16_patch_code(0x2668,0x4e);
2418 sys16_patch_code(0x2669,0x71);
2419
2420 sys16_patch_code(0x25c0,0x4e);
2421 sys16_patch_code(0x25c1,0x71);
2422 sys16_patch_code(0x25c2,0x4e);
2423 sys16_patch_code(0x25c3,0x71);
2424 */
2425
2426 sys16_update_proc = fantzone_update_proc;
2427 }
2428
MACHINE_INIT(fantzone)2429 static MACHINE_INIT( fantzone ){
2430 sys16_textmode=1;
2431 sys16_spritesystem = sys16_sprite_fantzone;
2432 sys16_sprxoffset = -0xbe;
2433 sys16_fg_priority_mode=3; // fixes end of game priority
2434 sys16_fg_priority_value=0xd000;
2435
2436 sys16_patch_code( 0x2135, 0x16 );
2437 sys16_patch_code( 0x3649, 0x16 );
2438
2439 // hack? solving Fantasy Zone scrolling bug
2440 sys16_patch_code(0x35e9,0x00);
2441
2442 sys16_update_proc = fantzone_update_proc;
2443 }
2444
DRIVER_INIT(fantzone)2445 static DRIVER_INIT( fantzone )
2446 {
2447 machine_init_sys16_onetime();
2448 }
2449 /***************************************************************************/
2450
INPUT_PORTS_START(fantzone)2451 INPUT_PORTS_START( fantzone )
2452 SYS16_JOY1
2453 SYS16_JOY2
2454 SYS16_SERVICE
2455 SYS16_COINAGE
2456
2457 PORT_START /* DSW1 */
2458 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
2459 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
2460 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
2461 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
2462 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2463 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2464 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
2465 PORT_DIPSETTING( 0x08, "2" )
2466 PORT_DIPSETTING( 0x0c, "3" )
2467 PORT_DIPSETTING( 0x04, "4" )
2468 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "240", IP_KEY_NONE, IP_JOY_NONE )
2469 PORT_DIPNAME( 0x30, 0x30, "Extra Ship Cost" )
2470 PORT_DIPSETTING( 0x30, "5000" )
2471 PORT_DIPSETTING( 0x20, "10000" )
2472 PORT_DIPSETTING( 0x10, "15000" )
2473 PORT_DIPSETTING( 0x00, "20000" )
2474 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
2475 PORT_DIPSETTING( 0x80, "Easy" )
2476 PORT_DIPSETTING( 0xc0, "Normal" )
2477 PORT_DIPSETTING( 0x40, "Hard" )
2478 PORT_DIPSETTING( 0x00, "Hardest" )
2479
2480 INPUT_PORTS_END
2481
2482 /***************************************************************************/
2483
2484 static MACHINE_DRIVER_START( fantzono )
2485
2486 /* basic machine hardware */
2487 MDRV_IMPORT_FROM(system16)
2488 MDRV_CPU_MODIFY("main")
2489 MDRV_CPU_MEMORY(fantzono_readmem,fantzono_writemem)
2490
2491 MDRV_MACHINE_INIT(fantzono)
2492 MACHINE_DRIVER_END
2493
2494
2495 static MACHINE_DRIVER_START( fantzone )
2496
2497 /* basic machine hardware */
2498 MDRV_IMPORT_FROM(system16)
2499 MDRV_CPU_MODIFY("main")
2500 MDRV_CPU_MEMORY(fantzone_readmem,fantzone_writemem)
2501
2502 MDRV_MACHINE_INIT(fantzone)
2503 MACHINE_DRIVER_END
2504
2505 /***************************************************************************/
2506 // sys16B
2507 ROM_START( fpoint )
2508 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
2509 ROM_LOAD16_BYTE( "12591b.bin", 0x000000, 0x10000, CRC(248b3e1b) SHA1(b473c2a057a61896596ac4761e875d72c4f91529) )
2510 ROM_LOAD16_BYTE( "12590b.bin", 0x000001, 0x10000, CRC(75256e3d) SHA1(87a7d9952f29e49958c135906ac2fd19bdc29b67) )
2511
2512 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2513 ROM_LOAD( "12595.bin", 0x00000, 0x10000, CRC(5b18d60b) SHA1(8e9c81635dcefa52d1cf53c2937ae560191b5202) )
2514 ROM_LOAD( "12594.bin", 0x10000, 0x10000, CRC(8bfc4815) SHA1(08d28b65e5024c592a9a289b270774ef5c553cbf) )
2515 ROM_LOAD( "12593.bin", 0x20000, 0x10000, CRC(cc0582d8) SHA1(92c7d125a6dcb9c5e6e7bd92a5bf3008385ed487) )
2516
2517 ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */
2518 ROM_LOAD16_BYTE( "12596.bin", 0x00001, 0x10000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) )
2519 ROM_LOAD16_BYTE( "12597.bin", 0x00000, 0x10000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) )
2520
2521 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2522 ROM_LOAD( "12592.bin", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
2523 ROM_END
2524
2525 ROM_START( fpointbl )
2526 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
2527 ROM_LOAD16_BYTE( "flpoint.003", 0x000000, 0x10000, CRC(4d6df514) SHA1(168aa1629ab7152ba1984605155406b236954a2c) )
2528 ROM_LOAD16_BYTE( "flpoint.002", 0x000001, 0x10000, CRC(4dff2ee8) SHA1(bd157d8c168d45e7490a05d5e1e901d9bdda9599) )
2529
2530 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2531 ROM_LOAD( "flpoint.006", 0x00000, 0x10000, CRC(c539727d) SHA1(56674effe1d273128dddd2ff9e02974ec10f3fff) )
2532 ROM_LOAD( "flpoint.005", 0x10000, 0x10000, CRC(82c0b8b0) SHA1(e1e2e721cb8ad53df33065582dc90edeba9c3cab) )
2533 ROM_LOAD( "flpoint.004", 0x20000, 0x10000, CRC(522426ae) SHA1(90fd0a19b30a8a61dc4cfa66a64115596333dcc6) )
2534
2535 ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */
2536 ROM_LOAD16_BYTE( "12596.bin", 0x00001, 0x010000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) )
2537 ROM_LOAD16_BYTE( "12597.bin", 0x00000, 0x010000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) )
2538
2539 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2540 ROM_LOAD( "flpoint.001", 0x0000, 0x8000, CRC(c5b8e0fe) SHA1(6cf8c67151d8604326fc6dbf976c0635b452a844) ) // bootleg rom doesn't work, but should be correct!
2541 /* the below rom is from the original, sound doesn't work with the bootleg rom but the bootleg rom is correct */
2542 ROM_LOAD( "12592.bin", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) ) // wrong sound rom? (this ones from the original)
2543 ROM_END
2544
2545
2546 ROM_START( fpointbj )
2547 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
2548 ROM_LOAD16_BYTE( "boot2.003", 0x000000, 0x10000, CRC(6c00d1b0) SHA1(fd0c47b8ca010a64d3ef91980f93854ebc98fbda) )
2549 ROM_LOAD16_BYTE( "boot2.002", 0x000001, 0x10000, CRC(c1fcd704) SHA1(697bef464e53fb9891ed15ee2d6210107b693b20) )
2550
2551 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2552 ROM_LOAD( "flpoint.006", 0x00000, 0x10000, CRC(c539727d) SHA1(56674effe1d273128dddd2ff9e02974ec10f3fff) )
2553 ROM_LOAD( "flpoint.005", 0x10000, 0x10000, CRC(82c0b8b0) SHA1(e1e2e721cb8ad53df33065582dc90edeba9c3cab) )
2554 ROM_LOAD( "flpoint.004", 0x20000, 0x10000, CRC(522426ae) SHA1(90fd0a19b30a8a61dc4cfa66a64115596333dcc6) )
2555
2556 ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */
2557 ROM_LOAD16_BYTE( "12596.bin", 0x00001, 0x010000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) )
2558 ROM_LOAD16_BYTE( "12597.bin", 0x00000, 0x010000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) )
2559
2560 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
2561 ROM_LOAD( "flpoint.001", 0x0000, 0x8000, CRC(c5b8e0fe) SHA1(6cf8c67151d8604326fc6dbf976c0635b452a844) ) // bootleg rom doesn't work, but should be correct!
2562 /* the below rom is from the original, sound doesn't work with the bootleg rom but the bootleg rom is correct */
2563 ROM_LOAD( "12592.bin", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) ) // wrong sound rom? (this ones from the original)
2564
2565 /* stuff below isn't used but loaded because it was on the board .. */
2566 ROM_REGION( 0x0120, REGION_PROMS, 0 )
2567 ROM_LOAD( "82s129.1", 0x0000, 0x0100, CRC(a7c22d96) SHA1(160deae8053b09c09328325246598b3518c7e20b) )
2568 ROM_LOAD( "82s123.2", 0x0100, 0x0020, CRC(58bcf8bd) SHA1(e4d3d179b08c0f3424a6bec0f15058fb1b56f8d8) )
2569
2570 ROM_REGION( 0x800, REGION_USER1, 0 )
2571 ROM_LOAD( "d2716.rom", 0x0000, 0x0800, CRC(d7fd8ac4) SHA1(87e5f1c24350adab129ad79a1f68af402580f8f0) )
2572 ROM_END
2573
2574 /***************************************************************************/
2575
2576 static READ16_HANDLER( fp_io_service_dummy_r ){
2577 int data = readinputport( 2 ) & 0xff;
2578 return (data << 8) + data;
2579 }
2580
MEMORY_READ16_START(fpoint_readmem)2581 static MEMORY_READ16_START( fpoint_readmem )
2582 { 0x000000, 0x01ffff, MRA16_ROM },
2583 { 0x02002e, 0x020049, fp_io_service_dummy_r },
2584 { 0x601002, 0x601003, input_port_0_word_r }, // player1
2585 { 0x601004, 0x601005, input_port_1_word_r }, // player2
2586 { 0x601000, 0x601001, input_port_2_word_r }, // service
2587 { 0x600000, 0x600001, input_port_4_word_r }, // dip2
2588 { 0x600002, 0x600003, input_port_3_word_r }, // dip1
2589 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
2590 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
2591 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
2592 { 0x44302a, 0x44304d, fp_io_service_dummy_r },
2593 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
2594 { 0xfe003e, 0xfe003f, fp_io_service_dummy_r },
2595 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
2596 MEMORY_END
2597
2598 static MEMORY_WRITE16_START( fpoint_writemem )
2599 { 0x000000, 0x01ffff, MWA16_ROM },
2600 { 0x600006, 0x600007, sound_command_w },
2601 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
2602 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
2603 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
2604 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
2605 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
2606 MEMORY_END
2607
2608 /***************************************************************************/
2609
2610 static void fpoint_update_proc( void ){
2611 set_fg_page( sys16_textram[0x740] );
2612 set_bg_page( sys16_textram[0x741] );
2613 sys16_fg_scrolly = sys16_textram[0x748];
2614 sys16_bg_scrolly = sys16_textram[0x749];
2615 sys16_fg_scrollx = sys16_textram[0x74c];
2616 sys16_bg_scrollx = sys16_textram[0x74d];
2617 }
2618
MACHINE_INIT(fpoint)2619 static MACHINE_INIT( fpoint ){
2620 sys16_patch_code( 0x454, 0x33 );
2621 sys16_patch_code( 0x455, 0xf8 );
2622 sys16_patch_code( 0x456, 0xe0 );
2623 sys16_patch_code( 0x457, 0xe2 );
2624 sys16_patch_code( 0x8ce8, 0x16 );
2625 sys16_patch_code( 0x8ce9, 0x66 );
2626 sys16_patch_code( 0x17687, 0x00 );
2627 sys16_patch_code( 0x7bed, 0x04 );
2628
2629 sys16_patch_code( 0x7ea8, 0x61 );
2630 sys16_patch_code( 0x7ea9, 0x00 );
2631 sys16_patch_code( 0x7eaa, 0x84 );
2632 sys16_patch_code( 0x7eab, 0x16 );
2633 sys16_patch_code( 0x2c0, 0xe7 );
2634 sys16_patch_code( 0x2c1, 0x48 );
2635 sys16_patch_code( 0x2c2, 0xe7 );
2636 sys16_patch_code( 0x2c3, 0x49 );
2637 sys16_patch_code( 0x2c4, 0x04 );
2638 sys16_patch_code( 0x2c5, 0x40 );
2639 sys16_patch_code( 0x2c6, 0x00 );
2640 sys16_patch_code( 0x2c7, 0x10 );
2641 sys16_patch_code( 0x2c8, 0x4e );
2642 sys16_patch_code( 0x2c9, 0x75 );
2643
2644 sys16_update_proc = fpoint_update_proc;
2645 }
2646
DRIVER_INIT(fpoint)2647 static DRIVER_INIT( fpoint ){
2648 machine_init_sys16_onetime();
2649 }
2650
DRIVER_INIT(fpointbl)2651 static DRIVER_INIT( fpointbl ){
2652 int i;
2653
2654 machine_init_sys16_onetime();
2655
2656 /* invert the graphics bits on the tiles */
2657 for (i = 0; i < 0x30000; i++)
2658 memory_region(REGION_GFX1)[i] ^= 0xff;
2659 }
2660 /***************************************************************************/
2661
INPUT_PORTS_START(fpoint)2662 INPUT_PORTS_START( fpoint )
2663 PORT_START
2664 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
2665 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
2666 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
2667 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2668 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
2669 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
2670 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
2671 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
2672
2673 PORT_START
2674 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
2675 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
2676 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
2677 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2678 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
2679 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
2680 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
2681 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
2682
2683 SYS16_SERVICE
2684 SYS16_COINAGE
2685
2686 PORT_START /* DSW1 */
2687 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2688 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2689 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2690 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
2691 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2692 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2693 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
2694 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2695 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2696 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
2697 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
2698 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2699 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
2700 PORT_DIPSETTING( 0x20, "Easy" )
2701 PORT_DIPSETTING( 0x30, "Normal" )
2702 PORT_DIPSETTING( 0x10, "Hard" )
2703 PORT_DIPSETTING( 0x00, "Hardest" )
2704 PORT_DIPNAME( 0x40, 0x40, "Clear round allowed" ) /* Use button 3 */
2705 PORT_DIPSETTING( 0x00, "1" )
2706 PORT_DIPSETTING( 0x40, "2" )
2707 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2708 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2709 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2710
2711 INPUT_PORTS_END
2712
2713 INPUT_PORTS_START( fpointbj )
2714 PORT_START
2715 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
2716 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
2717 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
2718 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2719 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
2720 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
2721 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
2722 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
2723
2724 PORT_START
2725 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
2726 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
2727 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
2728 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2729 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
2730 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
2731 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
2732 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
2733
2734 SYS16_SERVICE
2735 SYS16_COINAGE
2736
2737 PORT_START /* DSW1 */
2738 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* not used according to manual */
2739 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2740 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2741 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
2742 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2743 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2744 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* not used according to manual */
2745 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2746 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2747 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* not used according to manual */
2748 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
2749 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2750 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
2751 PORT_DIPSETTING( 0x20, "Easy" )
2752 PORT_DIPSETTING( 0x30, "Normal" )
2753 PORT_DIPSETTING( 0x10, "Hard" )
2754 PORT_DIPSETTING( 0x00, "Hardest" )
2755 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) /* not used according to manual */
2756 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2757 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2758 PORT_DIPNAME( 0x80, 0x80, "2 Cell Move Mode" )
2759 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2760 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2761
2762 INPUT_PORTS_END
2763
2764 /***************************************************************************/
2765
2766 static MACHINE_DRIVER_START( fpoint )
2767
2768 /* basic machine hardware */
2769 MDRV_IMPORT_FROM(system16)
2770 MDRV_CPU_MODIFY("main")
2771 MDRV_CPU_MEMORY(fpoint_readmem,fpoint_writemem)
2772
2773 MDRV_MACHINE_INIT(fpoint)
2774 MACHINE_DRIVER_END
2775
2776 /***************************************************************************/
2777 // sys16B
2778 ROM_START( goldnaxe )
2779 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
2780 ROM_LOAD16_BYTE( "epr12523.a7", 0x00000, 0x20000, CRC(8e6128d7) SHA1(b8de216f4ca08815ca98d39a773024d191d21b4d) )
2781 ROM_LOAD16_BYTE( "epr12522.a5", 0x00001, 0x20000, CRC(b6c35160) SHA1(88015d0a486f56911360362c96a82f36a13de886) )
2782 /* empty 0x40000 - 0x80000 */
2783 ROM_LOAD16_BYTE( "epr12521.a8", 0x80000, 0x20000, CRC(5001d713) SHA1(68cf3f48d6e440e5b800503a211adda02107d956) )
2784 ROM_LOAD16_BYTE( "epr12519.a6", 0x80001, 0x20000, CRC(4438ca8e) SHA1(0af53d64f06abf41f4c46540d28d5f008a4835a3) )
2785
2786 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2787 ROM_LOAD( "epr12385", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
2788 ROM_LOAD( "epr12386", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
2789 ROM_LOAD( "epr12387", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
2790
2791 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
2792 ROM_LOAD16_BYTE( "mpr12378.b1", 0x000001, 0x40000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
2793 ROM_LOAD16_BYTE( "mpr12379.b4", 0x000000, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
2794 ROM_LOAD16_BYTE( "mpr12380.b2", 0x080001, 0x40000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
2795 ROM_LOAD16_BYTE( "mpr12381.b5", 0x080000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
2796 ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
2797 ROM_LOAD16_BYTE( "mpr12383.b6", 0x100000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
2798
2799 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
2800 ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
2801 ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
2802 ROM_END
2803
2804 ROM_START( goldnaxj )
2805 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
2806 // Custom cpu 317-0121
2807 ROM_LOAD16_BYTE( "epr12540.a7", 0x00000, 0x20000, CRC(0c7ccc6d) SHA1(25bc29eee731befc665472c2c1998cac8447cc21) )
2808 ROM_LOAD16_BYTE( "epr12539.a5", 0x00001, 0x20000, CRC(1f24f7d0) SHA1(a09cdf394c03069707f7ed400b8fbdc13674fa74) )
2809 /* emtpy 0x40000 - 0x80000 */
2810 ROM_LOAD16_BYTE( "epr12521.a8", 0x80000, 0x20000, CRC(5001d713) SHA1(68cf3f48d6e440e5b800503a211adda02107d956) )
2811 ROM_LOAD16_BYTE( "epr12519.a6", 0x80001, 0x20000, CRC(4438ca8e) SHA1(0af53d64f06abf41f4c46540d28d5f008a4835a3) )
2812
2813 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2814 ROM_LOAD( "epr12385", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
2815 ROM_LOAD( "epr12386", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
2816 ROM_LOAD( "epr12387", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
2817
2818 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
2819 ROM_LOAD16_BYTE( "mpr12378.b1", 0x000001, 0x40000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
2820 ROM_LOAD16_BYTE( "mpr12379.b4", 0x000000, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
2821 ROM_LOAD16_BYTE( "mpr12380.b2", 0x080001, 0x40000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
2822 ROM_LOAD16_BYTE( "mpr12381.b5", 0x080000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
2823 ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
2824 ROM_LOAD16_BYTE( "mpr12383.b6", 0x100000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
2825
2826 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
2827 ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
2828 ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
2829 ROM_END
2830
2831 ROM_START( goldnabl )
2832 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
2833 // protected code
2834 ROM_LOAD16_BYTE( "ga6.a22", 0x00000, 0x10000, CRC(f95b459f) SHA1(dadf66d63454ed62fefa521d4fed249d28c63778) )
2835 ROM_LOAD16_BYTE( "ga4.a20", 0x00001, 0x10000, CRC(83eabdf5) SHA1(1effef966f513fbdec2026d535658e17ef7dea51) )
2836 ROM_LOAD16_BYTE( "ga11.a27",0x20000, 0x10000, CRC(f4ef9349) SHA1(3ffa335e74ffbc10f80387268da659643c566897) )
2837 ROM_LOAD16_BYTE( "ga8.a24", 0x20001, 0x10000, CRC(37a65839) SHA1(6e8055d91b840afd8526041d3752c0a55eaebe0c) )
2838 /* emtpy 0x40000 - 0x80000 */
2839 ROM_LOAD16_BYTE( "epr12521.a8", 0x80000, 0x20000, CRC(5001d713) SHA1(68cf3f48d6e440e5b800503a211adda02107d956) )
2840 ROM_LOAD16_BYTE( "epr12519.a6", 0x80001, 0x20000, CRC(4438ca8e) SHA1(0af53d64f06abf41f4c46540d28d5f008a4835a3) )
2841
2842 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
2843 ROM_LOAD( "ga33.b16", 0x00000, 0x10000, CRC(84587263) SHA1(3a88c8578a477a487a0a214a367042b9739f39eb) )
2844 ROM_LOAD( "ga32.b15", 0x10000, 0x10000, CRC(63d72388) SHA1(ba0a582b1daf3a1e316237efbad17fcc0381643f) )
2845 ROM_LOAD( "ga31.b14", 0x20000, 0x10000, CRC(f8b6ae4f) SHA1(55132c98955107e4b247992f7917a6ce588460a7) )
2846 ROM_LOAD( "ga30.b13", 0x30000, 0x10000, CRC(e29baf4f) SHA1(3761cb2217599fe3f2f860f9395930b96ec52f47) )
2847 ROM_LOAD( "ga29.b12", 0x40000, 0x10000, CRC(22f0667e) SHA1(2d11b2ce105a3db9c914942cace85aff17deded9) )
2848 ROM_LOAD( "ga28.b11", 0x50000, 0x10000, CRC(afb1a7e4) SHA1(726fded9db72a881128b43f449d2baf450131f63) )
2849
2850 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
2851 /* wrong! */
2852 ROM_LOAD16_BYTE( "ga34.b17", 0x000001, 0x10000, CRC(28ba70c8) SHA1(a6f33e1404928b6d1006943494646d6cfbd60a4b) )
2853 ROM_LOAD16_BYTE( "ga35.b18", 0x010000, 0x10000, CRC(2ed96a26) SHA1(edcf915243e6f92d31cdfc53965438f6b6bff51d) )
2854 ROM_LOAD16_BYTE( "ga23.a14", 0x020001, 0x10000, CRC(84dccc5b) SHA1(10263d98d663f1170c3203066f391075a1d64ff5) )
2855 ROM_LOAD16_BYTE( "ga18.a9", 0x030000, 0x10000, CRC(de346006) SHA1(65aa489373b6d2cccbb024f13fc190a7cae86274) )
2856 ROM_LOAD16_BYTE( "mpr12379.b4", 0x040001, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
2857 ROM_LOAD16_BYTE( "ga36.b19", 0x080000, 0x10000, CRC(101d2fff) SHA1(1de1390c5f55f192491053c8aac31be3389aab2b) )
2858 ROM_LOAD16_BYTE( "ga37.b20", 0x090001, 0x10000, CRC(677e64a6) SHA1(e3d0d31097017c6cb1a7f41292783f18ce13b41c) )
2859 ROM_LOAD16_BYTE( "ga19.a10", 0x0a0000, 0x10000, CRC(11794d05) SHA1(eef52d7a644dbcc5f983222f163445a725286a32) )
2860 ROM_LOAD16_BYTE( "ga20.a11", 0x0b0001, 0x10000, CRC(ad1c1c90) SHA1(155f17593cfab1a117bb755b1edd0c473d455f91) )
2861 ROM_LOAD16_BYTE( "mpr12381.b5", 0x0c0000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
2862 ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
2863 ROM_LOAD16_BYTE( "mpr12383.b6", 0x140000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
2864
2865 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
2866 ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
2867 ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
2868 ROM_END
2869
2870
2871 /***************************************************************************/
2872
2873 static READ16_HANDLER( goldnaxe_skip_r ){
2874 if (activecpu_get_pc()==0x3cb0) {cpu_spinuntil_int(); return 0xffff;}
2875 return sys16_workingram[0x2c1c/2];
2876 }
2877
READ16_HANDLER(ga_io_players_r)2878 static READ16_HANDLER( ga_io_players_r ) {
2879 return (readinputport(0) << 8) | readinputport(1);
2880 }
READ16_HANDLER(ga_io_service_r)2881 static READ16_HANDLER( ga_io_service_r ){
2882 return (input_port_2_word_r(0,0) << 8) | (sys16_workingram[0x2c96/2] & 0x00ff);
2883 }
2884
MEMORY_READ16_START(goldnaxe_readmem)2885 static MEMORY_READ16_START( goldnaxe_readmem )
2886 { 0x000000, 0x0bffff, MRA16_ROM },
2887 { 0x100000, 0x10ffff, SYS16_MRA16_TILERAM },
2888 { 0x110000, 0x110fff, SYS16_MRA16_TEXTRAM },
2889 { 0x140000, 0x140fff, SYS16_MRA16_PALETTERAM },
2890 { 0x1f0000, 0x1f0003, SYS16_MRA16_EXTRAM },
2891 { 0x200000, 0x200fff, SYS16_MRA16_SPRITERAM },
2892 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
2893 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
2894 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
2895 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
2896 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
2897 { 0xffecd0, 0xffecd1, ga_io_players_r },
2898 { 0xffec96, 0xffec97, ga_io_service_r },
2899 { 0xffec1c, 0xffec1d, goldnaxe_skip_r },
2900 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
2901 MEMORY_END
2902
2903 static WRITE16_HANDLER( ga_sound_command_w ){
2904 COMBINE_DATA( &sys16_workingram[(0xecfc-0xc000)/2] );
2905 if( ACCESSING_MSB ){
2906 soundlatch_w( 0,data>>8 );
2907 cpu_set_irq_line( 1, 0, HOLD_LINE );
2908 }
2909 }
2910
WRITE16_HANDLER(goldnaxe_prot_w)2911 static WRITE16_HANDLER( goldnaxe_prot_w ){
2912 sys16_workingram[(0xecd8 - 0xc000)/2] = 0x048c;
2913 sys16_workingram[(0xecda - 0xc000)/2] = 0x159d;
2914 sys16_workingram[(0xecdc - 0xc000)/2] = 0x26ae;
2915 sys16_workingram[(0xecde - 0xc000)/2] = 0x37bf;
2916 COMBINE_DATA( &sys16_workingram[(0xec1c-0xc000)/2] );
2917 }
2918
MEMORY_WRITE16_START(goldnaxe_writemem)2919 static MEMORY_WRITE16_START( goldnaxe_writemem )
2920 { 0x000000, 0x0bffff, MWA16_ROM },
2921 { 0x100000, 0x10ffff, SYS16_MWA16_TILERAM },
2922 { 0x110000, 0x110fff, SYS16_MWA16_TEXTRAM },
2923 { 0x140000, 0x140fff, SYS16_MWA16_PALETTERAM },
2924 { 0x1f0000, 0x1f0003, SYS16_MWA16_EXTRAM },
2925 { 0x200000, 0x200fff, SYS16_MWA16_SPRITERAM },
2926 { 0xc40000, 0xc40001, sys16_coinctrl_w },
2927 { 0xc43000, 0xc43001, MWA16_NOP }, // ?
2928 // { 0xfe0006, 0xfe0007, MWA16_NOP }, I think this is the real sound out
2929 { 0xffec1c, 0xffec1d, goldnaxe_prot_w },// how does this really work?
2930 { 0xffecfc, 0xffecfd, ga_sound_command_w },// probably just a buffer
2931 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM }, /* fails SCRATCH RAM test because of hacks */
2932 // { 0xfffc00, 0xffffff, MWA15_NOP }, /* 0x400 bytes; battery backed up */
2933 MEMORY_END
2934
2935 /***************************************************************************/
2936
2937 static void goldnaxe_update_proc( void ){
2938 set_fg_page( sys16_textram[0x740] );
2939 set_bg_page( sys16_textram[0x741] );
2940 sys16_fg_scrolly = sys16_textram[0x748];
2941 sys16_bg_scrolly = sys16_textram[0x749];
2942 sys16_fg_scrollx = sys16_textram[0x74c];
2943 sys16_bg_scrollx = sys16_textram[0x74d];
2944
2945 set_tile_bank( sys16_workingram[0x2c94/2] );
2946 }
2947
MACHINE_INIT(goldnaxe)2948 static MACHINE_INIT( goldnaxe ){
2949 static int bank[16] = {
2950 0,1,4,5,
2951 8,9,0,0,
2952 2,3,6,7,
2953 10,11,0,0
2954 };
2955 sys16_obj_bank = bank;
2956
2957 // protection patch; no longer needed
2958 // sys16_patch_code( 0x3CB2, 0x60 );
2959 // sys16_patch_code( 0x3CB3, 0x1e );
2960
2961 sys16_sprxoffset = -0xb8;
2962 sys16_update_proc = goldnaxe_update_proc;
2963 }
2964
DRIVER_INIT(goldnaxe)2965 static DRIVER_INIT( goldnaxe ){
2966 machine_init_sys16_onetime();
2967 }
2968
DRIVER_INIT(goldnabl)2969 static DRIVER_INIT( goldnabl ){
2970 int i;
2971
2972 machine_init_sys16_onetime();
2973
2974 /* invert the graphics bits on the tiles */
2975 for (i = 0; i < 0x60000; i++)
2976 memory_region(REGION_GFX1)[i] ^= 0xff;
2977 }
2978
2979 /***************************************************************************/
2980
INPUT_PORTS_START(goldnaxe)2981 INPUT_PORTS_START( goldnaxe )
2982 SYS16_JOY1
2983 SYS16_JOY2
2984 SYS16_SERVICE
2985 SYS16_COINAGE
2986
2987 PORT_START /* DSW1 */
2988 PORT_DIPNAME( 0x01, 0x01, "Credits needed" )
2989 PORT_DIPSETTING( 0x01, "1 to start, 1 to continue" )
2990 PORT_DIPSETTING( 0x00, "2 to start, 1 to continue" )
2991 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
2992 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2993 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2994 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
2995 PORT_DIPSETTING( 0x08, "1" )
2996 PORT_DIPSETTING( 0x0c, "2" )
2997 PORT_DIPSETTING( 0x04, "3" )
2998 PORT_DIPSETTING( 0x00, "5" )
2999 PORT_DIPNAME( 0x30, 0x30, "Energy Meter" )
3000 PORT_DIPSETTING( 0x20, "2" )
3001 PORT_DIPSETTING( 0x30, "3" )
3002 PORT_DIPSETTING( 0x10, "4" )
3003 PORT_DIPSETTING( 0x00, "5" )
3004 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
3005 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
3006 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3007 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
3008 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
3009 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3010 INPUT_PORTS_END
3011
3012 /***************************************************************************/
3013
3014 static MACHINE_DRIVER_START( goldnaxe )
3015
3016 /* basic machine hardware */
3017 MDRV_IMPORT_FROM(system16_7759)
3018 MDRV_CPU_MODIFY("main")
3019 MDRV_CPU_MEMORY(goldnaxe_readmem,goldnaxe_writemem)
3020
3021 MDRV_MACHINE_INIT(goldnaxe)
3022 MACHINE_DRIVER_END
3023
3024 /***************************************************************************/
3025 // sys16B
3026 ROM_START( goldnaxa )
3027 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
3028 ROM_LOAD16_BYTE( "epr12545.a2", 0x00000, 0x40000, CRC(a97c4e4d) SHA1(41cda15ae56185725233db669d9f8c4a8c1eb1c3) )
3029 ROM_LOAD16_BYTE( "epr12544.a1", 0x00001, 0x40000, CRC(5e38f668) SHA1(3b15a9a30adde6e852c439c8e6e45875b66252cb) )
3030
3031 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3032 ROM_LOAD( "epr12385", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
3033 ROM_LOAD( "epr12386", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
3034 ROM_LOAD( "epr12387", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
3035
3036 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
3037 ROM_LOAD16_BYTE( "mpr12378.b1", 0x000001, 0x40000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
3038 ROM_LOAD16_BYTE( "mpr12379.b4", 0x000000, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
3039 ROM_LOAD16_BYTE( "mpr12380.b2", 0x080001, 0x40000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
3040 ROM_LOAD16_BYTE( "mpr12381.b5", 0x080000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
3041 ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
3042 ROM_LOAD16_BYTE( "mpr12383.b6", 0x100000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
3043
3044 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
3045 ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
3046 ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
3047 ROM_END
3048
3049 ROM_START( goldnaxb )
3050 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
3051 // Custom 68000 ver 317-0110
3052 ROM_LOAD16_BYTE( "epr12389.a2", 0x00000, 0x40000, CRC(35d5fa77) SHA1(b16b312eb1c91c412fee61002599812e30e321ee) )
3053 ROM_LOAD16_BYTE( "epr12388.a1", 0x00001, 0x40000, CRC(72952a93) SHA1(b31888429ad81388a96333dc0b2c7e2223134834) )
3054
3055 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3056 ROM_LOAD( "epr12385", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
3057 ROM_LOAD( "epr12386", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
3058 ROM_LOAD( "epr12387", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
3059
3060 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
3061 ROM_LOAD16_BYTE( "mpr12378.b1", 0x000001, 0x40000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
3062 ROM_LOAD16_BYTE( "mpr12379.b4", 0x000000, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
3063 ROM_LOAD16_BYTE( "mpr12380.b2", 0x080001, 0x40000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
3064 ROM_LOAD16_BYTE( "mpr12381.b5", 0x080000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
3065 ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
3066 ROM_LOAD16_BYTE( "mpr12383.b6", 0x100000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
3067
3068 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
3069 ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
3070 ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
3071 ROM_END
3072
3073 ROM_START( goldnaxc )
3074 ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */
3075 // Custom 68000 ver 317-0122
3076 ROM_LOAD16_BYTE( "epr12543.a2", 0x00000, 0x40000, CRC(b0df9ca4) SHA1(240f3c2998f969569d992f796e006f5ea4434e55) )
3077 ROM_LOAD16_BYTE( "epr12542.a1", 0x00001, 0x40000, CRC(b7994d3c) SHA1(87570f23826922fca465c69df6b892c59f14e103) )
3078
3079 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3080 ROM_LOAD( "epr12385", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
3081 ROM_LOAD( "epr12386", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
3082 ROM_LOAD( "epr12387", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
3083
3084 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
3085 ROM_LOAD16_BYTE( "mpr12378.b1", 0x000001, 0x40000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
3086 ROM_LOAD16_BYTE( "mpr12379.b4", 0x000000, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
3087 ROM_LOAD16_BYTE( "mpr12380.b2", 0x080001, 0x40000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
3088 ROM_LOAD16_BYTE( "mpr12381.b5", 0x080000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
3089 ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
3090 ROM_LOAD16_BYTE( "mpr12383.b6", 0x100000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
3091
3092 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
3093 ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
3094 ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
3095 ROM_END
3096
3097
3098 /***************************************************************************/
3099
3100 static READ16_HANDLER( goldnaxa_skip_r ){
3101 if (activecpu_get_pc()==0x3ca0) {cpu_spinuntil_int(); return 0xffff;}
3102 return sys16_workingram[0x2c1c/2];
3103 }
3104
3105 // This version has somekind of hardware comparitor for collision detection,
3106 // and a hardware multiplier.
3107 static data16_t ga_hardware_collision_data[5];
WRITE16_HANDLER(ga_hardware_collision_w)3108 static WRITE16_HANDLER( ga_hardware_collision_w )
3109 {
3110 static int bit=1;
3111 //TBA
3112 // COMBINE_DATA( &ga_hardware_collision_data );
3113 if( offset==4/2 ){
3114 if( ga_hardware_collision_data[2] <= ga_hardware_collision_data[0] &&
3115 ga_hardware_collision_data[2] >= ga_hardware_collision_data[1])
3116 {
3117 ga_hardware_collision_data[4] |=bit;
3118 }
3119 bit=bit<<1;
3120 }
3121 else if( offset==8/2 ) bit=1;
3122 }
3123
READ16_HANDLER(ga_hardware_collision_r)3124 static READ16_HANDLER( ga_hardware_collision_r ){
3125 return ga_hardware_collision_data[4];
3126 }
3127
3128 static int ga_hardware_multiplier_data[4];
WRITE16_HANDLER(ga_hardware_multiplier_w)3129 static WRITE16_HANDLER( ga_hardware_multiplier_w ){
3130 //TBA
3131 // COMBINE_DATA( &ga_hardware_multiplier_data );
3132 }
3133
READ16_HANDLER(ga_hardware_multiplier_r)3134 static READ16_HANDLER( ga_hardware_multiplier_r ){
3135 if(offset==6/2)
3136 return ga_hardware_multiplier_data[0] * ga_hardware_multiplier_data[1];
3137 else
3138 return ga_hardware_multiplier_data[offset];
3139 }
3140
MEMORY_READ16_START(goldnaxa_readmem)3141 static MEMORY_READ16_START( goldnaxa_readmem )
3142 { 0x000000, 0x07ffff, MRA16_ROM },
3143 { 0x100000, 0x10ffff, SYS16_MRA16_TILERAM },
3144 { 0x110000, 0x110fff, SYS16_MRA16_TEXTRAM },
3145 { 0x140000, 0x140fff, SYS16_MRA16_PALETTERAM },
3146 { 0x1e0008, 0x1e0009, ga_hardware_collision_r },
3147 { 0x1f0000, 0x1f0007, ga_hardware_multiplier_r },
3148 { 0x1f1008, 0x1f1009, ga_hardware_collision_r },
3149 { 0x1f2000, 0x1f2003, SYS16_MRA16_EXTRAM },
3150 { 0x200000, 0x200fff, SYS16_MRA16_SPRITERAM },
3151 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
3152 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
3153 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
3154 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
3155 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
3156 { 0xffecd0, 0xffecd1, ga_io_players_r },
3157 { 0xffec96, 0xffec97, ga_io_service_r },
3158 { 0xffec1c, 0xffec1d, goldnaxa_skip_r },
3159 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
3160 MEMORY_END
3161
3162 static MEMORY_WRITE16_START( goldnaxa_writemem )
3163 { 0x000000, 0x07ffff, MWA16_ROM },
3164 { 0x100000, 0x10ffff, SYS16_MWA16_TILERAM },
3165 { 0x110000, 0x110fff, SYS16_MWA16_TEXTRAM },
3166 { 0x140000, 0x140fff, SYS16_MWA16_PALETTERAM },
3167 { 0x1e0000, 0x1e0009, ga_hardware_collision_w },
3168 { 0x1f0000, 0x1f0003, ga_hardware_multiplier_w },
3169 { 0x1f1000, 0x1f1009, ga_hardware_collision_w },
3170 { 0x1f2000, 0x1f2003, SYS16_MWA16_EXTRAM },
3171 { 0x200000, 0x200fff, SYS16_MWA16_SPRITERAM },
3172 { 0xc40000, 0xc40001, sys16_coinctrl_w },
3173 { 0xffecfc, 0xffecfd, ga_sound_command_w },
3174 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
3175 MEMORY_END
3176
3177 /***************************************************************************/
3178
3179 static void goldnaxa_update_proc( void ){
3180 set_fg_page( sys16_textram[0x740] );
3181 set_bg_page( sys16_textram[0x741] );
3182 sys16_fg_scrolly = sys16_textram[0x748];
3183 sys16_bg_scrolly = sys16_textram[0x749];
3184 sys16_fg_scrollx = sys16_textram[0x74c];
3185 sys16_bg_scrollx = sys16_textram[0x74d];
3186
3187 set_tile_bank( sys16_workingram[0x2c94/2] );
3188 }
3189
MACHINE_INIT(goldnaxa)3190 static MACHINE_INIT( goldnaxa ){
3191 static int bank[16] = {
3192 0,1,4,5,
3193 8,9,0,0,
3194 2,3,6,7,
3195 10,11,0,0
3196 };
3197 sys16_obj_bank = bank;
3198 //?
3199 sys16_patch_code( 0x3CA2, 0x60 );
3200 sys16_patch_code( 0x3CA3, 0x1e );
3201 sys16_sprxoffset = -0xb8;
3202 sys16_update_proc = goldnaxa_update_proc;
3203 }
3204
3205 /***************************************************************************/
3206
3207 static MACHINE_DRIVER_START( goldnaxa )
3208
3209 /* basic machine hardware */
3210 MDRV_IMPORT_FROM(system16_7759)
3211 MDRV_CPU_MODIFY("main")
3212 MDRV_CPU_MEMORY(goldnaxa_readmem,goldnaxa_writemem)
3213
3214 MDRV_MACHINE_INIT(goldnaxa)
3215 MACHINE_DRIVER_END
3216
3217 /***************************************************************************/
3218 // sys16B
3219 ROM_START( hwchamp )
3220 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
3221 ROM_LOAD16_BYTE( "rom0-e.bin", 0x000000, 0x20000, CRC(e5abfed7) SHA1(1f875dbaf8665c1dbfe336470580361b18a8ed4e) )
3222 ROM_LOAD16_BYTE( "rom0-o.bin", 0x000001, 0x20000, CRC(25180124) SHA1(77b414f8cd88270713c57bddadec5d8dca490e86) )
3223
3224 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3225 ROM_LOAD( "scr01.bin", 0x00000, 0x20000, CRC(fc586a86) SHA1(2c26ef3ab94089940add3be9952804a6e62f5113) )
3226 ROM_LOAD( "scr11.bin", 0x20000, 0x20000, CRC(aeaaa9d8) SHA1(6b7e5320f515c1c35445d3320b3edaef911191e1) )
3227 ROM_LOAD( "scr02.bin", 0x40000, 0x20000, CRC(7715a742) SHA1(e6040ff0e9c68f3f502e5f6d7e7ca04b14059752) )
3228 ROM_LOAD( "scr12.bin", 0x60000, 0x20000, CRC(63a82afa) SHA1(a02bbb6dd84cdf7cdab8e738c6927f5b1e3fcad5) )
3229 ROM_LOAD( "scr03.bin", 0x80000, 0x20000, CRC(f30cd5fd) SHA1(df6118ca4b724c37b11e18d9f2ea18e9591ae7aa) )
3230 ROM_LOAD( "scr13.bin", 0xA0000, 0x20000, CRC(5b8494a8) SHA1(9e3f09f4037a007b6a188dd81ec8f9c635e87650) )
3231
3232 ROM_REGION( 0x200000, REGION_GFX2, 0 ) //* sprites */
3233 ROM_LOAD16_BYTE( "obj0-o.bin", 0x000001, 0x010000, CRC(fc098a13) SHA1(b4a6e00d4765265bad170dabf0b2a4a58e063b16) )
3234 ROM_CONTINUE( 0x040001, 0x10000 )
3235 ROM_RELOAD ( 0x020001, 0x10000 )
3236 ROM_CONTINUE( 0x060001, 0x10000 )
3237 ROM_LOAD16_BYTE( "obj0-e.bin", 0x000000, 0x010000, CRC(5db934a8) SHA1(ba7cc93025af71ad2674b1376b61afbb7ae910ff) )
3238 ROM_CONTINUE( 0x040000, 0x10000 )
3239 ROM_RELOAD ( 0x020000, 0x10000 )
3240 ROM_CONTINUE( 0x060000, 0x10000 )
3241 ROM_LOAD16_BYTE( "obj1-o.bin", 0x080001, 0x010000, CRC(1f27ee74) SHA1(a60d50a4f501623187c067a3c17bff49151ca3b2) )
3242 ROM_CONTINUE( 0x0c0001, 0x10000 )
3243 ROM_RELOAD ( 0x0a0001, 0x10000 )
3244 ROM_CONTINUE( 0x0e0001, 0x10000 )
3245 ROM_LOAD16_BYTE( "obj1-e.bin", 0x080000, 0x010000, CRC(8a6a5cf1) SHA1(28b22aa326682ef3b54891dda7aa9a432da12a4d) )
3246 ROM_CONTINUE( 0x0c0000, 0x10000 )
3247 ROM_RELOAD ( 0x0a0000, 0x10000 )
3248 ROM_CONTINUE( 0x0e0000, 0x10000 )
3249 ROM_LOAD16_BYTE( "obj2-o.bin", 0x100001, 0x010000, CRC(c0b2ba82) SHA1(30349c86a99bbe3dfb423027ad534a9333e27679) )
3250 ROM_CONTINUE( 0x140001, 0x10000 )
3251 ROM_RELOAD ( 0x120001, 0x10000 )
3252 ROM_CONTINUE( 0x160001, 0x10000 )
3253 ROM_LOAD16_BYTE( "obj2-e.bin", 0x100000, 0x010000, CRC(d6c7917b) SHA1(8b313a5634c14f4c90bfa9f9616d600283f72768) )
3254 ROM_CONTINUE( 0x140000, 0x10000 )
3255 ROM_RELOAD ( 0x120000, 0x10000 )
3256 ROM_CONTINUE( 0x160000, 0x10000 )
3257 ROM_LOAD16_BYTE( "obj3-o.bin", 0x180001, 0x010000, CRC(52fa3a49) SHA1(c2331af630d86a111cdaf21556d9df23d1471f53) )
3258 ROM_CONTINUE( 0x1c0001, 0x10000 )
3259 ROM_RELOAD ( 0x1a0001, 0x10000 )
3260 ROM_CONTINUE( 0x1e0001, 0x10000 )
3261 ROM_LOAD16_BYTE( "obj3-e.bin", 0x180000, 0x010000, CRC(57e8f9d2) SHA1(1804677820d05a421120660f91e3a5f1df1e6a8d) )
3262 ROM_CONTINUE( 0x1c0000, 0x10000 )
3263 ROM_RELOAD ( 0x1a0000, 0x10000 )
3264 ROM_CONTINUE( 0x1e0000, 0x10000 )
3265
3266 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
3267 ROM_LOAD( "s-prog.bin", 0x0000, 0x8000, CRC(96a12d9d) SHA1(f4ba70c3b5d80a1b6a187c940b922d5182d5ab12) )
3268
3269 ROM_LOAD( "speech0.bin", 0x10000, 0x20000, CRC(4191c03d) SHA1(40809fb80527980015d3b5c4ca7cf159bc09cf5a) )
3270 ROM_LOAD( "speech1.bin", 0x30000, 0x20000, CRC(a4d53f7b) SHA1(71123a8ecfa093897c6f2bb7312e6c755be14521) )
3271 ROM_END
3272
3273 /***************************************************************************/
3274
3275 static int hwc_handles_shifts[3];
3276
WRITE16_HANDLER(hwc_io_handles_w)3277 static WRITE16_HANDLER( hwc_io_handles_w ){
3278 hwc_handles_shifts[offset]=7;
3279 }
3280
READ16_HANDLER(hwc_io_handles_r)3281 static READ16_HANDLER( hwc_io_handles_r ){
3282 static int dodge_toggle=0;
3283 int data=0,ret;
3284 if(offset==0){
3285 // monitor
3286 data=input_port_0_r( offset );
3287 if(input_port_1_r( offset ) & 4){
3288 if(dodge_toggle) data=0x38; else data=0x60;
3289 }
3290 if(input_port_1_r( offset ) & 8){
3291 if(dodge_toggle) data=0xc8; else data=0xa0;
3292 }
3293 if(input_port_1_r( offset ) & 0x10){
3294 if(dodge_toggle) data=0xff; else data=0xe0;
3295 }
3296 if(input_port_1_r( offset ) & 0x20){
3297 if(dodge_toggle) data=0x0; else data=0x20;
3298 }
3299 if( hwc_handles_shifts[offset]==0) dodge_toggle^=1;
3300 }
3301 else if(offset==1){
3302 // left handle
3303 if(input_port_1_r( offset ) & 1) data=0xff;
3304 }
3305 else {
3306 // right handle
3307 if(input_port_1_r( offset ) & 2) data=0xff;
3308 }
3309
3310 ret = data>>hwc_handles_shifts[offset];
3311 hwc_handles_shifts[offset]--;
3312 return ret;
3313 }
3314
WRITE16_HANDLER(hwc_ctrl1_w)3315 static WRITE16_HANDLER( hwc_ctrl1_w ){
3316 if( ACCESSING_LSB ){
3317 sys16_refreshenable = data & 0x20;
3318 coin_counter_w(0,data & 0x01);
3319 set_led_status(0,data & 0x04);
3320 /* bit 6 is also used (always 1?) */
3321 }
3322 }
3323
WRITE16_HANDLER(hwc_ctrl2_w)3324 static WRITE16_HANDLER( hwc_ctrl2_w ){
3325 if( ACCESSING_LSB ){
3326 /* bit 4 is GONG */
3327 // if (data & 0x10) usrintf_showmessage("GONG");
3328 /* are the following really lamps? */
3329 // set_led_status(1,data & 0x20);
3330 // set_led_status(2,data & 0x40);
3331 // set_led_status(3,data & 0x80);
3332 }
3333 }
3334
MEMORY_READ16_START(hwchamp_readmem)3335 static MEMORY_READ16_START( hwchamp_readmem )
3336 { 0x000000, 0x03ffff, MRA16_ROM },
3337 { 0x3f0000, 0x3fffff, SYS16_MRA16_EXTRAM },
3338 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
3339 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
3340 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
3341 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
3342 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
3343 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
3344 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
3345 { 0xc43020, 0xc43025, hwc_io_handles_r },
3346 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
3347 MEMORY_END
3348
3349 static MEMORY_WRITE16_START( hwchamp_writemem )
3350 { 0x000000, 0x03ffff, MWA16_ROM },
3351 { 0x3f0000, 0x3fffff, SYS16_MWA16_EXTRAM },
3352 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
3353 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
3354 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
3355 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
3356 { 0xc40000, 0xc40001, hwc_ctrl1_w },
3357 { 0xc43020, 0xc43025, hwc_io_handles_w },
3358 { 0xc43034, 0xc43035, hwc_ctrl2_w },
3359 { 0xfe0006, 0xfe0007, sound_command_w },
3360 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
3361 MEMORY_END
3362
3363 /***************************************************************************/
3364
3365 static void hwchamp_update_proc( void ){
3366 set_fg_page( sys16_textram[0x740] );
3367 set_bg_page( sys16_textram[0x741] );
3368 sys16_fg_scrolly = sys16_textram[0x748];
3369 sys16_bg_scrolly = sys16_textram[0x749];
3370 sys16_fg_scrollx = sys16_textram[0x74c];
3371 sys16_bg_scrollx = sys16_textram[0x74d];
3372
3373 sys16_tile_bank0 = sys16_extraram[0]&0xf;
3374 sys16_tile_bank1 = sys16_extraram[1]&0xf;
3375 }
3376
MACHINE_INIT(hwchamp)3377 static MACHINE_INIT( hwchamp ){
3378 sys16_spritelist_end=0xc000;
3379 sys16_update_proc = hwchamp_update_proc;
3380 sys16_wwfix = 1; //*
3381 }
3382
DRIVER_INIT(hwchamp)3383 static DRIVER_INIT( hwchamp )
3384 {
3385 machine_init_sys16_onetime();
3386 }
3387 /***************************************************************************/
3388
INPUT_PORTS_START(hwchamp)3389 INPUT_PORTS_START( hwchamp )
3390
3391 PORT_START /* Monitor */
3392 PORT_ANALOG( 0xff, 0x80, IPT_PADDLE , 70, 4, 0x0, 0xff )
3393
3394 PORT_START /* Handles (Fake) */
3395 PORT_BITX(0x01, 0, IPT_BUTTON1, IP_NAME_DEFAULT, KEYCODE_F, IP_JOY_NONE ) // right hit
3396 PORT_BITX(0x02, 0, IPT_BUTTON2, IP_NAME_DEFAULT, KEYCODE_D, IP_JOY_NONE ) // left hit
3397 PORT_BITX(0x04, 0, IPT_BUTTON3, IP_NAME_DEFAULT, KEYCODE_B, IP_JOY_NONE ) // right dodge
3398 PORT_BITX(0x08, 0, IPT_BUTTON4, IP_NAME_DEFAULT, KEYCODE_Z, IP_JOY_NONE ) // left dodge
3399 PORT_BITX(0x10, 0, IPT_BUTTON5, IP_NAME_DEFAULT, KEYCODE_V, IP_JOY_NONE ) // right sway
3400 PORT_BITX(0x20, 0, IPT_BUTTON6, IP_NAME_DEFAULT, KEYCODE_X, IP_JOY_NONE ) // left swat
3401 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3402 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3403
3404 SYS16_SERVICE
3405 SYS16_COINAGE
3406
3407 PORT_START /* DSW1 */
3408 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // Not Used
3409 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
3410 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3411 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
3412 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
3413 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3414 PORT_DIPNAME( 0x04, 0x00, "Start Level Select" )
3415 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
3416 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3417 PORT_DIPNAME( 0x08, 0x08, "Continue Mode" )
3418 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
3419 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3420 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
3421 PORT_DIPSETTING( 0x20, "Easy" )
3422 PORT_DIPSETTING( 0x30, "Normal" )
3423 PORT_DIPSETTING( 0x10, "Hard" )
3424 PORT_DIPSETTING( 0x00, "Hardest" )
3425 PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" )
3426 PORT_DIPSETTING( 0x80, "Easy" )
3427 PORT_DIPSETTING( 0xc0, "Normal" )
3428 PORT_DIPSETTING( 0x40, "Hard" )
3429 PORT_DIPSETTING( 0x00, "Hardest" )
3430
3431 INPUT_PORTS_END
3432
3433 /***************************************************************************/
3434
3435 static MACHINE_DRIVER_START( hwchamp )
3436
3437 /* basic machine hardware */
3438 MDRV_IMPORT_FROM(system16_7759)
3439 MDRV_CPU_MODIFY("main")
3440 MDRV_CPU_MEMORY(hwchamp_readmem,hwchamp_writemem)
3441
3442 MDRV_MACHINE_INIT(hwchamp)
3443 MACHINE_DRIVER_END
3444
3445 /***************************************************************************/
3446 // pre16
3447 ROM_START( mjleague )
3448 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
3449 ROM_LOAD16_BYTE( "epr-7404.09b", 0x000000, 0x8000, CRC(ec1655b5) SHA1(5c1df364fa9733daa4478c5f88298089e4963c33) )
3450 ROM_LOAD16_BYTE( "epr-7401.06b", 0x000001, 0x8000, CRC(2befa5e0) SHA1(0a1681a4c7d62a5754ba6f3845436b4d08324246) )
3451 ROM_LOAD16_BYTE( "epr-7405.10b", 0x010000, 0x8000, CRC(7a4f4e38) SHA1(65a22097dd933e83f326bd64b3863915897780a6) )
3452 ROM_LOAD16_BYTE( "epr-7402.07b", 0x010001, 0x8000, CRC(b7bef762) SHA1(214450e0b094f99ef38dec2a3e5cbdb0b30e917d) )
3453 ROM_LOAD16_BYTE( "epra7406.11b", 0x020000, 0x8000, CRC(bb743639) SHA1(5d99638a79f02ce14374d3b1f3d9fbfc5c13c6e1) )
3454 ROM_LOAD16_BYTE( "epra7403.08b", 0x020001, 0x8000, CRC(d86250cf) SHA1(fb5dabb7b9b9fe0bbe93e28c60311c7b3256107a) ) // Fails memory test. Bad rom?
3455
3456 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3457 ROM_LOAD( "epr-7051.09a", 0x00000, 0x08000, CRC(10ca255a) SHA1(ccf58ffcac2f7fbdbfbdf32601a1b97f359cbd91) )
3458 ROM_LOAD( "epr-7052.10a", 0x08000, 0x08000, CRC(2550db0e) SHA1(28f8d68f43d26f12793fe295c205cc86adc4e96a) )
3459 ROM_LOAD( "epr-7053.11a", 0x10000, 0x08000, CRC(5bfea038) SHA1(01dc6e14cc7bba9f7930e68573c441fa2841f49a) )
3460
3461 ROM_REGION( 0x50000, REGION_GFX2, 0 ) /* sprites */
3462 ROM_LOAD16_BYTE( "epr-7055.05a", 0x000001, 0x8000, CRC(1fb860bd) SHA1(4a4155d0352dfae9e402a2b2f1558ef17b1303b4) )
3463 ROM_LOAD16_BYTE( "epr-7059.02b", 0x000000, 0x8000, CRC(3d14091d) SHA1(36208415b2012b6e948fefa15b0f7041748066be) )
3464 ROM_LOAD16_BYTE( "epr-7056.06a", 0x010001, 0x8000, CRC(b35dd968) SHA1(e306b5e38acf583d7b2089302622ad25ae5564b0) )
3465 ROM_LOAD16_BYTE( "epr-7060.03b", 0x010000, 0x8000, CRC(61bb3757) SHA1(5c87cf23be22b84e3dae746527ca057d870d6397) )
3466 ROM_LOAD16_BYTE( "epr-7057.07a", 0x020001, 0x8000, CRC(3e5a2b6f) SHA1(d3dbafb4acb916e02c978a156008bd75ba122fb7) )
3467 ROM_LOAD16_BYTE( "epr-7061.04b", 0x020000, 0x8000, CRC(c808dad5) SHA1(9b65acc8dc23b16e56327298188d1a6ab48b2b5d) )
3468 ROM_LOAD16_BYTE( "epr-7058.08a", 0x030001, 0x8000, CRC(b543675f) SHA1(35ffc9295a8849a18fabe156fdbc9801ea2179cd) )
3469 ROM_LOAD16_BYTE( "epr-7062.05b", 0x030000, 0x8000, CRC(9168eb47) SHA1(daaa7836e627a0679e65373d8f20a9383ba4c905) )
3470 // ROM_LOAD16_BYTE( "epr-7055.05a", 0x040001, 0x8000, CRC(1fb860bd) SHA1(4a4155d0352dfae9e402a2b2f1558ef17b1303b4) ) loaded twice??
3471 // ROM_LOAD16_BYTE( "epr-7059.02b", 0x040000, 0x8000, CRC(3d14091d) SHA1(36208415b2012b6e948fefa15b0f7041748066be) ) loaded twice??
3472
3473 ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
3474 ROM_LOAD( "eprc7054.01b", 0x00000, 0x8000, CRC(4443b744) SHA1(73359a6e9d62b382dee47fea31b9e17eb26a0321) )
3475
3476 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
3477 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
3478
3479 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
3480 ROM_LOAD( "epr-7063.01a", 0x00000, 0x8000, CRC(45d8908a) SHA1(e61f81f953c1a744ded36fed3b55774e4747af29) )
3481 ROM_LOAD( "epr-7065.02a", 0x08000, 0x8000, CRC(8c8f8cff) SHA1(fca5a916a8b25800ee5e8771e2ced0ed9bd737f4) )
3482 ROM_LOAD( "epr-7064.03a", 0x10000, 0x8000, CRC(159f6636) SHA1(66fa3f3e95a6ef3d3ff4ded09c05ab1131d9fbbb) )
3483 ROM_LOAD( "epr-7066.04a", 0x18000, 0x8000, CRC(f5cfa91f) SHA1(c85d68cbcd03fe1436bed12235c033610acc11ee) )
3484 ROM_END
3485
3486 /***************************************************************************/
3487
3488 static READ16_HANDLER( mjl_io_player1_r ){
3489 data16_t data=input_port_0_r( offset ) & 0x80;
3490
3491 if( sys16_extraram2[2/2] & 0x4 )
3492 data|=(input_port_5_r( offset ) & 0x3f) << 1;
3493 else
3494 data|=(input_port_6_r( offset ) & 0x3f) << 1;
3495
3496 return data;
3497 }
3498
READ16_HANDLER(mjl_io_service_r)3499 static READ16_HANDLER( mjl_io_service_r ){
3500 data16_t data=input_port_2_r( offset ) & 0x3f;
3501
3502 if(sys16_extraram2[2/2] & 0x4){
3503 data|=(input_port_5_r( offset ) & 0x40);
3504 data|=(input_port_7_r( offset ) & 0x40) << 1;
3505 }
3506 else {
3507 data|=(input_port_6_r( offset ) & 0x40);
3508 data|=(input_port_8_r( offset ) & 0x40) << 1;
3509 }
3510
3511 return data;
3512 }
3513
READ16_HANDLER(mjl_io_player2_r)3514 static READ16_HANDLER( mjl_io_player2_r )
3515 {
3516 data16_t data=input_port_1_r( offset ) & 0x80;
3517 if(sys16_extraram2[2/2] & 0x4)
3518 data|=(input_port_7_r( offset ) & 0x3f) << 1;
3519 else
3520 data|=(input_port_8_r( offset ) & 0x3f) << 1;
3521 return data;
3522 }
3523
READ16_HANDLER(mjl_io_bat_r)3524 static READ16_HANDLER( mjl_io_bat_r )
3525 {
3526 int data1=input_port_0_r( offset );
3527 int data2=input_port_1_r( offset );
3528 int ret=0;
3529
3530 // Hitting has 8 values, but for easy of playing, I've only added 3
3531
3532 if(data1 &1) ret=0x00;
3533 else if(data1 &2) ret=0x03;
3534 else if(data1 &4) ret=0x07;
3535 else ret=0x0f;
3536
3537 if(data2 &1) ret|=0x00;
3538 else if(data2 &2) ret|=0x30;
3539 else if(data2 &4) ret|=0x70;
3540 else ret|=0xf0;
3541
3542 return ret;
3543 }
3544
MEMORY_READ16_START(mjleague_readmem)3545 static MEMORY_READ16_START( mjleague_readmem )
3546 { 0x000000, 0x02ffff, MRA16_ROM },
3547 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
3548 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
3549 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
3550 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
3551
3552 { 0xc40002, 0xc40003, sys16_coinctrl_r },
3553 { 0xc41000, 0xc41001, mjl_io_service_r },
3554 { 0xc41002, 0xc41003, mjl_io_player1_r },
3555 { 0xc41006, 0xc41007, mjl_io_player2_r },
3556 { 0xc41004, 0xc41005, mjl_io_bat_r },
3557 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
3558 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
3559 { 0xc60000, 0xc60001, MRA16_NOP }, /* What is this? Watchdog? */
3560
3561 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
3562 MEMORY_END
3563
3564 static MEMORY_WRITE16_START( mjleague_writemem )
3565 { 0x000000, 0x02ffff, MWA16_ROM },
3566 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
3567 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
3568 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
3569 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
3570 { 0xc40000, 0xc40001, sound_command_nmi_w },
3571 { 0xc40002, 0xc40003, sys16_3d_coinctrl_w },
3572 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
3573 MEMORY_END
3574
3575 /***************************************************************************/
3576
3577 static void mjleague_update_proc( void ){
3578 set_bg_page1( sys16_textram[0x746] );
3579 set_fg_page1( sys16_textram[0x747] );
3580
3581 sys16_fg_scrollx = sys16_textram[0x7fc] & 0x01ff;
3582 sys16_bg_scrollx = sys16_textram[0x7fd] & 0x01ff;
3583 sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff;
3584 sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff;
3585 }
3586
MACHINE_INIT(mjleague)3587 static MACHINE_INIT( mjleague ){
3588 sys16_textmode=1;
3589 sys16_spritesystem = sys16_sprite_quartet2;
3590 sys16_sprxoffset = -0xbd;
3591 sys16_fgxoffset = sys16_bgxoffset = 7;
3592
3593 // remove memory test because it fails.
3594 sys16_patch_code( 0xBD42, 0x66 );
3595
3596 sys16_update_proc = mjleague_update_proc;
3597 }
3598
DRIVER_INIT(mjleague)3599 static DRIVER_INIT( mjleague )
3600 {
3601 machine_init_sys16_onetime();
3602 }
3603
3604 /***************************************************************************/
3605
INPUT_PORTS_START(mjleague)3606 INPUT_PORTS_START( mjleague )
3607
3608 PORT_START /* player 1 button fake */
3609 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
3610 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
3611 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 )
3612 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 )
3613
3614 PORT_START /* player 1 button fake */
3615 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
3616 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
3617 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2 )
3618 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER2 )
3619
3620 PORT_START /* Service */
3621 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
3622 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
3623 PORT_BITX(0x04, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
3624 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
3625 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
3626 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
3627 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3628 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3629
3630 SYS16_COINAGE
3631
3632 PORT_START /* DSW1 */
3633 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
3634 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
3635 PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) )
3636 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
3637 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
3638 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3639 PORT_DIPNAME( 0x0c, 0x00, "Starting Points" )
3640 PORT_DIPSETTING( 0x0c, "2000" )
3641 PORT_DIPSETTING( 0x08, "3000" )
3642 PORT_DIPSETTING( 0x04, "5000" )
3643 PORT_DIPSETTING( 0x00, "10000" )
3644 PORT_DIPNAME( 0x10, 0x10, "Team Select" )
3645 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
3646 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
3647 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) //??? something to do with cocktail mode?
3648 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
3649 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3650 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
3651 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
3652 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3653 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
3654 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
3655 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3656
3657 PORT_START /* IN5 */
3658 PORT_ANALOG( 0x7f, 0x40, IPT_TRACKBALL_Y, 70, 30, 0, 127 )
3659
3660 PORT_START /* IN6 */
3661 PORT_ANALOG( 0x7f, 0x40, IPT_TRACKBALL_X /*| IPF_REVERSE*/, 50, 30, 0, 127 )
3662
3663 PORT_START /* IN7 */
3664 PORT_ANALOG( 0x7f, 0x40, IPT_TRACKBALL_Y | IPF_PLAYER2, 70, 30, 0, 127 )
3665
3666 PORT_START /* IN8 */
3667 PORT_ANALOG( 0x7f, 0x40, IPT_TRACKBALL_X | IPF_PLAYER2 | IPF_REVERSE, 50, 30, 0, 127 )
3668
3669 INPUT_PORTS_END
3670
3671 /***************************************************************************/
3672
3673 static MACHINE_DRIVER_START( mjleague )
3674
3675 /* basic machine hardware */
3676 MDRV_IMPORT_FROM(system16_7751)
3677 MDRV_CPU_MODIFY("main")
3678 MDRV_CPU_MEMORY(mjleague_readmem,mjleague_writemem)
3679
3680 MDRV_MACHINE_INIT(mjleague)
3681 MACHINE_DRIVER_END
3682
3683 /***************************************************************************/
3684 // sys16B
3685 ROM_START( passsht )
3686 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 68000 code */
3687 ROM_LOAD16_BYTE( "epr11871.a4", 0x000000, 0x10000, CRC(0f9ccea5) SHA1(515a2721a35332df0303f4b9616122194b5c7170) )
3688 ROM_LOAD16_BYTE( "epr11870.a1", 0x000001, 0x10000, CRC(df43ebcf) SHA1(3ca11a25819e1e8d5162f7b36cccc928d8efe150) )
3689
3690 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3691 ROM_LOAD( "opr11854.b9", 0x00000, 0x10000, CRC(d31c0b6c) SHA1(610d04988da70c30300cc5614817eda9d2204f39) )
3692 ROM_LOAD( "opr11855.b10", 0x10000, 0x10000, CRC(b78762b4) SHA1(d594ef846bd7fed8da91a89906b39c1a2867a1fe) )
3693 ROM_LOAD( "opr11856.b11", 0x20000, 0x10000, CRC(ea49f666) SHA1(36ccd32cdcbb7fcc300628bb59c220ec3c324d82) )
3694
3695 ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */
3696 ROM_LOAD16_BYTE( "opr11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
3697 ROM_LOAD16_BYTE( "opr11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
3698 ROM_LOAD16_BYTE( "opr11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
3699 ROM_LOAD16_BYTE( "opr11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
3700 ROM_LOAD16_BYTE( "opr11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
3701 ROM_LOAD16_BYTE( "opr11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
3702
3703 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
3704 ROM_LOAD( "epr11857.a7", 0x00000, 0x08000, CRC(789edc06) SHA1(8c89c94e503513c287807d187de78a7fbd75a7cf) )
3705 ROM_LOAD( "epr11858.a8", 0x10000, 0x08000, CRC(08ab0018) SHA1(0685f80a7d403208c9cfffea3f2035324f3924fe) )
3706 ROM_LOAD( "epr11859.a9", 0x18000, 0x08000, CRC(8673e01b) SHA1(e79183ab30e683fdf61ced2e9dbe010567c324cb) )
3707 ROM_LOAD( "epr11860.a10", 0x20000, 0x08000, CRC(10263746) SHA1(1f981fb185c6a9795208ecdcfba36cf892a99ed5) )
3708 ROM_LOAD( "epr11861.a11", 0x28000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
3709 ROM_END
3710
3711 ROM_START( passht4b )
3712 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 68000 code */
3713 ROM_LOAD16_BYTE( "pas4p.3", 0x000000, 0x10000, CRC(2d8bc946) SHA1(35d3e529d4815543d9876fd0545c3d686467abaa) )
3714 ROM_LOAD16_BYTE( "pas4p.4", 0x000001, 0x10000, CRC(e759e831) SHA1(dd5727dc28010cb988e4951723171171eb645ce8) )
3715
3716 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3717 ROM_LOAD( "pas4p.11", 0x00000, 0x10000, CRC(da20fbc9) SHA1(21dc8143f4d1cebae4f86e83495fa84e5293ba48) )
3718 ROM_LOAD( "pas4p.12", 0x10000, 0x10000, CRC(bebb9211) SHA1(4f56048f6f70b63f74a4c0d64456213d36ce5b26) )
3719 ROM_LOAD( "pas4p.13", 0x20000, 0x10000, CRC(e37506c3) SHA1(e6fbf15d58f321a3d052fefbe5a1901e4a1734ae) )
3720
3721 ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */
3722 ROM_LOAD16_BYTE( "opr11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
3723 ROM_LOAD16_BYTE( "opr11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
3724 ROM_LOAD16_BYTE( "opr11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
3725 ROM_LOAD16_BYTE( "opr11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
3726 ROM_LOAD16_BYTE( "opr11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
3727 ROM_LOAD16_BYTE( "opr11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
3728
3729 ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
3730 ROM_LOAD( "pas4p.1", 0x00000, 0x08000, CRC(e60fb017) SHA1(21298036eab55c74427f1c2e3a9623d41bca4849) )
3731 ROM_LOAD( "pas4p.2", 0x10000, 0x10000, CRC(092e016e) SHA1(713638749efa9dce19c547b84308236110bc85fe) )
3732 ROM_END
3733
3734 ROM_START( passshtb )
3735 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
3736 ROM_LOAD16_BYTE( "pass3_2p.bin", 0x000000, 0x10000, CRC(26bb9299) SHA1(11bacf86dfdd8bcfbfb61f0ebc59890325c48adc) )
3737 ROM_LOAD16_BYTE( "pass4_2p.bin", 0x000001, 0x10000, CRC(06ac6d5d) SHA1(2dd71a8a956404326797de8beed7bca016c9919e) )
3738
3739 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
3740 ROM_LOAD( "opr11854.b9", 0x00000, 0x10000, CRC(d31c0b6c) SHA1(610d04988da70c30300cc5614817eda9d2204f39) )
3741 ROM_LOAD( "opr11855.b10", 0x10000, 0x10000, CRC(b78762b4) SHA1(d594ef846bd7fed8da91a89906b39c1a2867a1fe) )
3742 ROM_LOAD( "opr11856.b11", 0x20000, 0x10000, CRC(ea49f666) SHA1(36ccd32cdcbb7fcc300628bb59c220ec3c324d82) )
3743
3744 ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */
3745 ROM_LOAD16_BYTE( "opr11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
3746 ROM_LOAD16_BYTE( "opr11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
3747 ROM_LOAD16_BYTE( "opr11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
3748 ROM_LOAD16_BYTE( "opr11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
3749 ROM_LOAD16_BYTE( "opr11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
3750 ROM_LOAD16_BYTE( "opr11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
3751
3752 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
3753 ROM_LOAD( "epr11857.a7", 0x00000, 0x08000, CRC(789edc06) SHA1(8c89c94e503513c287807d187de78a7fbd75a7cf) )
3754 ROM_LOAD( "epr11858.a8", 0x10000, 0x08000, CRC(08ab0018) SHA1(0685f80a7d403208c9cfffea3f2035324f3924fe) )
3755 ROM_LOAD( "epr11859.a9", 0x18000, 0x08000, CRC(8673e01b) SHA1(e79183ab30e683fdf61ced2e9dbe010567c324cb) )
3756 ROM_LOAD( "epr11860.a10", 0x20000, 0x08000, CRC(10263746) SHA1(1f981fb185c6a9795208ecdcfba36cf892a99ed5) )
3757 ROM_LOAD( "epr11861.a11", 0x28000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
3758 ROM_END
3759 /***************************************************************************/
3760
3761 static MEMORY_READ16_START( passsht_readmem )
3762 { 0x000000, 0x01ffff, MRA16_ROM },
3763 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
3764 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
3765 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
3766 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
3767 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
3768 { 0xc41004, 0xc41005, input_port_1_word_r }, // player2
3769 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
3770 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
3771 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
3772 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
3773 MEMORY_END
3774
3775 static MEMORY_WRITE16_START( passsht_writemem )
3776 { 0x000000, 0x01ffff, MWA16_ROM },
3777 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
3778 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
3779 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
3780 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
3781 { 0xc42006, 0xc42007, sound_command_w },
3782 { 0xc40000, 0xc40001, sys16_coinctrl_w },
3783 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
3784 MEMORY_END
3785
3786 static int passht4b_io1_val;
3787 static int passht4b_io2_val;
3788 static int passht4b_io3_val;
3789
READ16_HANDLER(passht4b_service_r)3790 static READ16_HANDLER( passht4b_service_r ){
3791 data16_t val=input_port_2_word_r(offset,0);
3792 if(!(readinputport(0) & 0x40)) val&=0xef;
3793 if(!(readinputport(1) & 0x40)) val&=0xdf;
3794 if(!(readinputport(5) & 0x40)) val&=0xbf;
3795 if(!(readinputport(6) & 0x40)) val&=0x7f;
3796
3797 passht4b_io3_val=(readinputport(0)<<4) | (readinputport(5)&0xf);
3798 passht4b_io2_val=(readinputport(1)<<4) | (readinputport(6)&0xf);
3799
3800 passht4b_io1_val=0xff;
3801
3802 // player 1 buttons
3803 if(!(readinputport(0) & 0x10)) passht4b_io1_val &=0xfe;
3804 if(!(readinputport(0) & 0x20)) passht4b_io1_val &=0xfd;
3805 if(!(readinputport(0) & 0x80)) passht4b_io1_val &=0xfc;
3806
3807 // player 2 buttons
3808 if(!(readinputport(1) & 0x10)) passht4b_io1_val &=0xfb;
3809 if(!(readinputport(1) & 0x20)) passht4b_io1_val &=0xf7;
3810 if(!(readinputport(1) & 0x80)) passht4b_io1_val &=0xf3;
3811
3812 // player 3 buttons
3813 if(!(readinputport(5) & 0x10)) passht4b_io1_val &=0xef;
3814 if(!(readinputport(5) & 0x20)) passht4b_io1_val &=0xdf;
3815 if(!(readinputport(5) & 0x80)) passht4b_io1_val &=0xcf;
3816
3817 // player 4 buttons
3818 if(!(readinputport(6) & 0x10)) passht4b_io1_val &=0xbf;
3819 if(!(readinputport(6) & 0x20)) passht4b_io1_val &=0x7f;
3820 if(!(readinputport(6) & 0x80)) passht4b_io1_val &=0x3f;
3821
3822 return val;
3823 }
3824
READ16_HANDLER(passht4b_io1_r)3825 static READ16_HANDLER( passht4b_io1_r ) { return passht4b_io1_val;}
READ16_HANDLER(passht4b_io2_r)3826 static READ16_HANDLER( passht4b_io2_r ) { return passht4b_io2_val;}
READ16_HANDLER(passht4b_io3_r)3827 static READ16_HANDLER( passht4b_io3_r ) { return passht4b_io3_val;}
3828
MEMORY_READ16_START(passht4b_readmem)3829 static MEMORY_READ16_START( passht4b_readmem )
3830 { 0x000000, 0x01ffff, MRA16_ROM },
3831 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
3832 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
3833 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
3834 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
3835 { 0xc41000, 0xc41001, passht4b_service_r },
3836 { 0xc41002, 0xc41003, passht4b_io1_r },
3837 { 0xc41004, 0xc41005, passht4b_io2_r },
3838 { 0xc41006, 0xc41007, passht4b_io3_r },
3839 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
3840 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
3841 { 0xc43000, 0xc43001, input_port_0_word_r }, // player1 // test mode only
3842 { 0xc43002, 0xc43003, input_port_1_word_r }, // player2
3843 { 0xc43004, 0xc43005, input_port_5_word_r }, // player3
3844 { 0xc43006, 0xc43007, input_port_6_word_r }, // player4
3845 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
3846 MEMORY_END
3847
3848 static MEMORY_WRITE16_START( passht4b_writemem )
3849 { 0x000000, 0x01ffff, MWA16_ROM },
3850 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
3851 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
3852 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
3853 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
3854 { 0xc42006, 0xc42007, sound_command_w },
3855 { 0xc4600a, 0xc4600b, sys16_coinctrl_w }, /* coin counter doesn't work */
3856 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
3857 MEMORY_END
3858
3859 /***************************************************************************/
3860
3861 static void passsht_update_proc( void ){
3862 sys16_fg_scrollx = sys16_workingram[0x34be/2];
3863 sys16_bg_scrollx = sys16_workingram[0x34c2/2];
3864 sys16_fg_scrolly = sys16_workingram[0x34bc/2];
3865 sys16_bg_scrolly = sys16_workingram[0x34c0/2];
3866
3867 set_fg_page( sys16_textram[0x0ff6/2] );
3868 set_bg_page( sys16_textram[0x0ff4/2] );
3869 }
3870
passht4b_update_proc(void)3871 static void passht4b_update_proc( void ){
3872 sys16_fg_scrollx = sys16_workingram[0x34ce/2];
3873 sys16_bg_scrollx = sys16_workingram[0x34d2/2];
3874 sys16_fg_scrolly = sys16_workingram[0x34cc/2];
3875 sys16_bg_scrolly = sys16_workingram[0x34d0/2];
3876
3877 set_fg_page( sys16_textram[0x0ff6/2] );
3878 set_bg_page( sys16_textram[0x0ff4/2] );
3879 }
3880
MACHINE_INIT(passsht)3881 static MACHINE_INIT( passsht ){
3882 sys16_sprxoffset = -0x48;
3883 sys16_spritesystem = sys16_sprite_passshot;
3884
3885 // fix name entry
3886 sys16_patch_code( 0x13a8,0xc0);
3887
3888 sys16_update_proc = passsht_update_proc;
3889 }
3890
MACHINE_INIT(passht4b)3891 static MACHINE_INIT( passht4b ){
3892 sys16_sprxoffset = -0xb8;
3893 sys16_spritesystem = sys16_sprite_passshot;
3894
3895 // fix name entry
3896 sys16_patch_code( 0x138a,0xc0);
3897
3898 sys16_update_proc = passht4b_update_proc;
3899 }
3900
DRIVER_INIT(passsht)3901 static DRIVER_INIT( passsht )
3902 {
3903 machine_init_sys16_onetime();
3904 }
3905
DRIVER_INIT(passht4b)3906 static DRIVER_INIT( passht4b ){
3907 int i;
3908
3909 machine_init_sys16_onetime();
3910
3911 /* invert the graphics bits on the tiles */
3912 for (i = 0; i < 0x30000; i++)
3913 memory_region(REGION_GFX1)[i] ^= 0xff;
3914 }
3915
3916 /***************************************************************************/
3917
INPUT_PORTS_START(passsht)3918 INPUT_PORTS_START( passsht )
3919 PORT_START /* joy 1 */
3920 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 )
3921 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
3922 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 )
3923 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
3924 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
3925 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
3926 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
3927 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
3928
3929 PORT_START /* joy 2 */
3930 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
3931 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
3932 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
3933 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
3934 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
3935 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
3936 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
3937 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
3938
3939 SYS16_SERVICE
3940 SYS16_COINAGE
3941
3942 PORT_START /* DSW1 */
3943 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
3944 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
3945 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
3946 PORT_DIPNAME( 0x0e, 0x0e, "Initial Point" )
3947 PORT_DIPSETTING( 0x06, "2000" )
3948 PORT_DIPSETTING( 0x0a, "3000" )
3949 PORT_DIPSETTING( 0x0c, "4000" )
3950 PORT_DIPSETTING( 0x0e, "5000" )
3951 PORT_DIPSETTING( 0x08, "6000" )
3952 PORT_DIPSETTING( 0x04, "7000" )
3953 PORT_DIPSETTING( 0x02, "8000" )
3954 PORT_DIPSETTING( 0x00, "9000" )
3955 PORT_DIPNAME( 0x30, 0x30, "Point Table" )
3956 PORT_DIPSETTING( 0x20, "Easy" )
3957 PORT_DIPSETTING( 0x30, "Normal" )
3958 PORT_DIPSETTING( 0x10, "Hard" )
3959 PORT_DIPSETTING( 0x00, "Hardest" )
3960 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
3961 PORT_DIPSETTING( 0x80, "Easy" )
3962 PORT_DIPSETTING( 0xc0, "Normal" )
3963 PORT_DIPSETTING( 0x40, "Hard" )
3964 PORT_DIPSETTING( 0x00, "Hardest" )
3965 INPUT_PORTS_END
3966
3967 INPUT_PORTS_START( passht4b )
3968 PORT_START /* joy 1 */
3969 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
3970 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
3971 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
3972 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
3973 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
3974 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
3975 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
3976 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
3977
3978 PORT_START /* joy 2 */
3979 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
3980 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
3981 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
3982 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
3983 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
3984 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
3985 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
3986 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
3987
3988 PORT_START /* service */
3989 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
3990 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
3991 PORT_BITX(0x04, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
3992 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
3993 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
3994 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
3995 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 )
3996 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
3997
3998 SYS16_COINAGE
3999
4000 PORT_START /* DSW1 */
4001 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
4002 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
4003 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4004 PORT_DIPNAME( 0x0e, 0x0e, "Initial Point" )
4005 PORT_DIPSETTING( 0x06, "2000" )
4006 PORT_DIPSETTING( 0x0a, "3000" )
4007 PORT_DIPSETTING( 0x0c, "4000" )
4008 PORT_DIPSETTING( 0x0e, "5000" )
4009 PORT_DIPSETTING( 0x08, "6000" )
4010 PORT_DIPSETTING( 0x04, "7000" )
4011 PORT_DIPSETTING( 0x02, "8000" )
4012 PORT_DIPSETTING( 0x00, "9000" )
4013 PORT_DIPNAME( 0x30, 0x30, "Point Table" )
4014 PORT_DIPSETTING( 0x20, "Easy" )
4015 PORT_DIPSETTING( 0x30, "Normal" )
4016 PORT_DIPSETTING( 0x10, "Hard" )
4017 PORT_DIPSETTING( 0x00, "Hardest" )
4018 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
4019 PORT_DIPSETTING( 0x80, "Easy" )
4020 PORT_DIPSETTING( 0xc0, "Normal" )
4021 PORT_DIPSETTING( 0x40, "Hard" )
4022 PORT_DIPSETTING( 0x00, "Hardest" )
4023
4024 PORT_START /* joy 3 */
4025 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER3 )
4026 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER3 )
4027 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
4028 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER3 )
4029 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
4030 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
4031 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
4032 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER3 )
4033
4034 PORT_START /* joy 4 */
4035 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER4 )
4036 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER4 )
4037 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4 )
4038 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER4 )
4039 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER4 )
4040 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
4041 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
4042 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER4 )
4043
4044 INPUT_PORTS_END
4045
4046 /***************************************************************************/
4047
4048 static MACHINE_DRIVER_START( passsht )
4049
4050 /* basic machine hardware */
4051 MDRV_IMPORT_FROM(system16_7759)
4052 MDRV_CPU_MODIFY("main")
4053 MDRV_CPU_MEMORY(passsht_readmem,passsht_writemem)
4054
4055 MDRV_MACHINE_INIT(passsht)
4056 MACHINE_DRIVER_END
4057
4058
4059 static MACHINE_DRIVER_START( passht4b )
4060
4061 /* basic machine hardware */
4062 MDRV_IMPORT_FROM(system16_7759)
4063 MDRV_CPU_MODIFY("main")
4064 MDRV_CPU_MEMORY(passht4b_readmem,passht4b_writemem)
4065
4066 MDRV_MACHINE_INIT(passht4b)
4067 MACHINE_DRIVER_END
4068
4069 /***************************************************************************/
4070 // pre16
4071 ROM_START( quartet )
4072 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
4073 ROM_LOAD16_BYTE( "epr7458a.9b", 0x000000, 0x8000, CRC(42e7b23e) SHA1(9df3b1b915723f9a927ef03d80ae7983a8c91a21) )
4074 ROM_LOAD16_BYTE( "epr7455a.6b", 0x000001, 0x8000, CRC(01631ab2) SHA1(2d613d23fe79072f850ccc9020830dea54312b23) )
4075 ROM_LOAD16_BYTE( "epr7459a.10b", 0x010000, 0x8000, CRC(6b540637) SHA1(4b2e9ba06b80f8fb502310ab770805f8c6a47567) )
4076 ROM_LOAD16_BYTE( "epr7456a.7b", 0x010001, 0x8000, CRC(31ca583e) SHA1(8ade8f7e42ae3e171b138410374e4c090fdc4ecb) )
4077 ROM_LOAD16_BYTE( "epr7460.11b", 0x020000, 0x8000, CRC(a444ea13) SHA1(884ed22d606e3bd30d8401fe1750687e54674e82) )
4078 ROM_LOAD16_BYTE( "epr7457.8b", 0x020001, 0x8000, CRC(3b282c23) SHA1(95de41a97f50f6169887c6d9724d5c42a41bb264) )
4079
4080 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4081 ROM_LOAD( "epr7461.9c", 0x00000, 0x08000, CRC(f6af07f2) SHA1(546fabbda936d61a90d2395d033fd4d6bb0bc38a) )
4082 ROM_LOAD( "epr7462.10c", 0x08000, 0x08000, CRC(7914af28) SHA1(4bf59fe4a0b0aa5d4cc0b6f9375ffab3c96e8a2b) )
4083 ROM_LOAD( "epr7463.11c", 0x10000, 0x08000, CRC(827c5603) SHA1(8db3bd6eae5aeeb229e017471049ef5347974df5) )
4084
4085 ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* sprites - the same as quartet 2 */
4086 ROM_LOAD16_BYTE( "epr7465.5c", 0x000001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
4087 ROM_LOAD16_BYTE( "epr-7469.2b", 0x000000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
4088 ROM_LOAD16_BYTE( "epr7466.6c", 0x010001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
4089 ROM_LOAD16_BYTE( "epr-7470.3b", 0x010000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
4090 ROM_LOAD16_BYTE( "epr7467.7c", 0x020001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
4091 ROM_LOAD16_BYTE( "epr-7471.4b", 0x020000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
4092 ROM_LOAD16_BYTE( "epr7468.8c", 0x030001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
4093 ROM_LOAD16_BYTE( "epr-7472.5b", 0x030000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
4094
4095 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
4096 ROM_LOAD( "epr-7464.1b", 0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
4097
4098 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
4099 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
4100
4101 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
4102 ROM_LOAD( "epr7473.1c", 0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
4103 ROM_LOAD( "epr7475.2c", 0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
4104 ROM_LOAD( "epr7474.3c", 0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
4105 ROM_LOAD( "epr7476.4c", 0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
4106 ROM_END
4107
4108 ROM_START( quartetj )
4109 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
4110 ROM_LOAD16_BYTE( "epr-7458.43", 0x000000, 0x8000, CRC(0096499f) SHA1(dcf8e33513ce7c6660ea546c8e1c574fde629a22) )
4111 ROM_LOAD16_BYTE( "epr-7455.26", 0x000001, 0x8000, CRC(da934390) SHA1(d40eb65b6a36a4c1ebeadb76e47a61bd8b2e4b89) )
4112 ROM_LOAD16_BYTE( "epr-7459.42", 0x010000, 0x8000, CRC(d130cf61) SHA1(3a065f5c296b10b97c78d49aa285ae7afb16e881) )
4113 ROM_LOAD16_BYTE( "epr-7456.25", 0x010001, 0x8000, CRC(7847149f) SHA1(fc8ad669f2bc426cb7af78d92ea147cbd1e181af) )
4114 ROM_LOAD16_BYTE( "epr7460.11b", 0x020000, 0x8000, CRC(a444ea13) SHA1(884ed22d606e3bd30d8401fe1750687e54674e82) )
4115 ROM_LOAD16_BYTE( "epr7457.8b", 0x020001, 0x8000, CRC(3b282c23) SHA1(95de41a97f50f6169887c6d9724d5c42a41bb264) )
4116
4117 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4118 ROM_LOAD( "epr7461.9c", 0x00000, 0x08000, CRC(f6af07f2) SHA1(546fabbda936d61a90d2395d033fd4d6bb0bc38a) )
4119 ROM_LOAD( "epr7462.10c", 0x08000, 0x08000, CRC(7914af28) SHA1(4bf59fe4a0b0aa5d4cc0b6f9375ffab3c96e8a2b) )
4120 ROM_LOAD( "epr7463.11c", 0x10000, 0x08000, CRC(827c5603) SHA1(8db3bd6eae5aeeb229e017471049ef5347974df5) )
4121
4122 ROM_REGION( 0x040000, REGION_GFX2, 0 ) /* sprites - the same as quartet 2 */
4123 ROM_LOAD16_BYTE( "epr7465.5c", 0x000001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
4124 ROM_LOAD16_BYTE( "epr-7469.2b", 0x000000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
4125 ROM_LOAD16_BYTE( "epr7466.6c", 0x010001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
4126 ROM_LOAD16_BYTE( "epr-7470.3b", 0x010000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
4127 ROM_LOAD16_BYTE( "epr7467.7c", 0x020001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
4128 ROM_LOAD16_BYTE( "epr-7471.4b", 0x020000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
4129 ROM_LOAD16_BYTE( "epr7468.8c", 0x030001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
4130 ROM_LOAD16_BYTE( "epr-7472.5b", 0x030000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
4131
4132 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
4133 ROM_LOAD( "epr-7464.1b", 0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
4134
4135 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
4136 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
4137
4138 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
4139 ROM_LOAD( "epr7473.1c", 0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
4140 ROM_LOAD( "epr7475.2c", 0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
4141 ROM_LOAD( "epr7474.3c", 0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
4142 ROM_LOAD( "epr7476.4c", 0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
4143 ROM_END
4144
4145
4146 /***************************************************************************/
4147
4148 #if 0
4149 static READ16_HANDLER( quartet_skip_r ){
4150 if (activecpu_get_pc()==0x89b2) {cpu_spinuntil_int(); return 0xffff;}
4151 return sys16_workingram[0x0800/2];
4152 }
4153 #endif
4154
4155 static MEMORY_READ16_START( quartet_readmem )
4156 { 0x000000, 0x02ffff, MRA16_ROM },
4157 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
4158 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
4159 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
4160 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
4161 { 0xc40002, 0xc40003, sys16_coinctrl_r },
4162 { 0xc41000, 0xc41001, input_port_0_word_r }, // p1
4163 { 0xc41002, 0xc41003, input_port_1_word_r }, // p2
4164 { 0xc41004, 0xc41005, input_port_2_word_r }, // p3
4165 { 0xc41006, 0xc41007, input_port_3_word_r }, // p4
4166 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
4167 { 0xc42002, 0xc42003, input_port_5_word_r }, // dip2
4168 // { 0xffc800, 0xffc801, quartet_skip_r },
4169 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
4170 MEMORY_END
4171
4172 static MEMORY_WRITE16_START( quartet_writemem )
4173 { 0x000000, 0x02ffff, MWA16_ROM },
4174 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
4175 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
4176 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
4177 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
4178 { 0xc40000, 0xc40001, sound_command_nmi_w },
4179 { 0xc40002, 0xc40003, sys16_3d_coinctrl_w },
4180 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
4181 MEMORY_END
4182
4183 /***************************************************************************/
4184
4185 static void quartet_update_proc( void ){
4186 sys16_fg_scrollx = sys16_workingram[0x0d14/2] & 0x01ff;
4187 sys16_bg_scrollx = sys16_workingram[0x0d18/2] & 0x01ff;
4188 sys16_fg_scrolly = sys16_textram[0x0f24/2] & 0x00ff;
4189 sys16_bg_scrolly = sys16_textram[0x0f26/2] & 0x01ff;
4190
4191 // if(((*(UINT16 *)(&sys16_extraram[4])) & 0xff) == 1)
4192 // \=1;
4193 // else
4194 sys16_quartet_title_kludge=0;
4195
4196 set_fg_page1( sys16_workingram[0x0d1c/2] );
4197 set_bg_page1( sys16_workingram[0x0d1e/2] );
4198 }
4199
MACHINE_INIT(quartet)4200 static MACHINE_INIT( quartet ){
4201 sys16_textmode=1;
4202 sys16_spritesystem = sys16_sprite_quartet2;
4203 sys16_sprxoffset = -0xbc;
4204 sys16_fgxoffset = sys16_bgxoffset = 7;
4205
4206 sys16_update_proc = quartet_update_proc;
4207 }
4208
DRIVER_INIT(quartet)4209 static DRIVER_INIT( quartet )
4210 {
4211 machine_init_sys16_onetime();
4212 }
4213 /***************************************************************************/
4214
INPUT_PORTS_START(quartet)4215 INPUT_PORTS_START( quartet )
4216 // Player 1
4217 PORT_START
4218 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
4219 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
4220 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
4221 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
4222 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
4223 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
4224 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
4225 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
4226 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* player 1 coin 2 really */
4227 // Player 2
4228 PORT_START
4229 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
4230 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
4231 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2)
4232 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2)
4233 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2)
4234 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
4235 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2)
4236 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
4237 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* player 2 coin 2 really */
4238 // Player 3
4239 PORT_START
4240 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER3 )
4241 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER3 )
4242 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
4243 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER3 )
4244 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
4245 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START3 )
4246 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
4247 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
4248 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* player 3 coin 2 really */
4249 // Player 4
4250 PORT_START
4251 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER4 )
4252 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER4 )
4253 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4)
4254 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER4)
4255 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4)
4256 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START4 )
4257 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4)
4258 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN4 )
4259 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* player 4 coin 2 really */
4260
4261 SYS16_COINAGE
4262
4263 PORT_START /* DSW1 */
4264 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
4265 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
4266 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4267 PORT_DIPNAME( 0x06, 0x00, "Credit Power" )
4268 PORT_DIPSETTING( 0x04, "500" )
4269 PORT_DIPSETTING( 0x06, "1000" )
4270 PORT_DIPSETTING( 0x02, "2000" )
4271 PORT_DIPSETTING( 0x00, "9000" )
4272 PORT_DIPNAME( 0x18, 0x00, DEF_STR( Difficulty ) )
4273 PORT_DIPSETTING( 0x10, "Easy" )
4274 PORT_DIPSETTING( 0x18, "Normal" )
4275 PORT_DIPSETTING( 0x08, "Hard" )
4276 PORT_DIPSETTING( 0x00, "Hardest" )
4277 PORT_DIPNAME( 0x20, 0x20, "Coin During Game" )
4278 PORT_DIPSETTING( 0x20, "Power" )
4279 PORT_DIPSETTING( 0x00, "Credit" )
4280 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) )
4281 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
4282 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4283 PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
4284 INPUT_PORTS_END
4285
4286 /***************************************************************************/
4287
4288 static MACHINE_DRIVER_START( quartet )
4289
4290 /* basic machine hardware */
4291 MDRV_IMPORT_FROM(system16_7751)
4292 MDRV_CPU_MODIFY("main")
4293 MDRV_CPU_MEMORY(quartet_readmem,quartet_writemem)
4294
4295 MDRV_MACHINE_INIT(quartet)
4296 MACHINE_DRIVER_END
4297
4298 /***************************************************************************/
4299 // pre16
4300 ROM_START( quartet2 )
4301 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
4302 ROM_LOAD16_BYTE( "quartet2.b9", 0x000000, 0x8000, CRC(67177cd8) SHA1(c4ea001dfbeeb29a09d597fb50d71f54e4e9572a) )
4303 ROM_LOAD16_BYTE( "quartet2.b6", 0x000001, 0x8000, CRC(50f50b08) SHA1(646c0d545150b95e5d8d47bf63360f7326add08f) )
4304 ROM_LOAD16_BYTE( "quartet2.b10", 0x010000, 0x8000, CRC(4273c3b7) SHA1(4cae221678a6d2b7806487becd4ba09b520f9fa0) )
4305 ROM_LOAD16_BYTE( "quartet2.b7", 0x010001, 0x8000, CRC(0aa337bb) SHA1(f31f8f294fccd866eadebfafee067bfae44b3184) )
4306 ROM_LOAD16_BYTE( "quartet2.b11", 0x020000, 0x8000, CRC(3a6a375d) SHA1(8ebea6b7f1208438b47e887b46cb569725c4042a) )
4307 ROM_LOAD16_BYTE( "quartet2.b8", 0x020001, 0x8000, CRC(d87b2ca2) SHA1(58adf0900e41036b1b78a931ab94b30ce601909d) )
4308
4309 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4310 ROM_LOAD( "quartet2.c9", 0x00000, 0x08000, CRC(547a6058) SHA1(5248e974c8d12183c996b1fc8fda09e8a4bf0d2d) )
4311 ROM_LOAD( "quartet2.c10", 0x08000, 0x08000, CRC(77ec901d) SHA1(b5961895473c16a8f4a111185cce48b05ab66885) )
4312 ROM_LOAD( "quartet2.c11", 0x10000, 0x08000, CRC(7e348cce) SHA1(82bba65280faaf3280208c85caef48ec8baeade8) )
4313
4314 ROM_REGION( 0x040000, REGION_GFX2, 0 ) /* sprites */
4315 ROM_LOAD16_BYTE( "epr7465.5c", 0x000001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
4316 ROM_LOAD16_BYTE( "epr-7469.2b", 0x000000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
4317 ROM_LOAD16_BYTE( "epr7466.6c", 0x010001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
4318 ROM_LOAD16_BYTE( "epr-7470.3b", 0x010000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
4319 ROM_LOAD16_BYTE( "epr7467.7c", 0x020001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
4320 ROM_LOAD16_BYTE( "epr-7471.4b", 0x020000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
4321 ROM_LOAD16_BYTE( "epr7468.8c", 0x030001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
4322 ROM_LOAD16_BYTE( "epr-7472.5b", 0x030000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
4323
4324 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
4325 ROM_LOAD( "epr-7464.1b", 0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
4326
4327 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
4328 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
4329
4330 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
4331 ROM_LOAD( "epr7473.1c", 0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
4332 ROM_LOAD( "epr7475.2c", 0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
4333 ROM_LOAD( "epr7474.3c", 0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
4334 ROM_LOAD( "epr7476.4c", 0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
4335 ROM_END
4336
4337 ROM_START( quartt2j )
4338 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
4339 ROM_LOAD16_BYTE( "epr-7728.43", 0x000000, 0x8000, CRC(56a8c88e) SHA1(33eaca5272f3588058952ca0b1fa298b89418e81) )
4340 ROM_LOAD16_BYTE( "epr-7725.26", 0x000001, 0x8000, CRC(ee15fcc9) SHA1(70d9755145245537f6aeb0d39abeda7811749b8c) )
4341 ROM_LOAD16_BYTE( "epr-7729.42", 0x010000, 0x8000, CRC(bc242123) SHA1(8e58dd89b70ba06d12437010a7375464647262f5) )
4342 ROM_LOAD16_BYTE( "epr-7726.25", 0x010001, 0x8000, CRC(9d1c48e7) SHA1(e11a358895c7809cdf7241ff9317c2b162e4040e) )
4343 ROM_LOAD16_BYTE( "quartet2.b11", 0x020000, 0x8000, CRC(3a6a375d) SHA1(8ebea6b7f1208438b47e887b46cb569725c4042a) )
4344 ROM_LOAD16_BYTE( "quartet2.b8", 0x020001, 0x8000, CRC(d87b2ca2) SHA1(58adf0900e41036b1b78a931ab94b30ce601909d) )
4345
4346 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4347 ROM_LOAD( "quartet2.c9", 0x00000, 0x08000, CRC(547a6058) SHA1(5248e974c8d12183c996b1fc8fda09e8a4bf0d2d) )
4348 ROM_LOAD( "quartet2.c10", 0x08000, 0x08000, CRC(77ec901d) SHA1(b5961895473c16a8f4a111185cce48b05ab66885) )
4349 ROM_LOAD( "quartet2.c11", 0x10000, 0x08000, CRC(7e348cce) SHA1(82bba65280faaf3280208c85caef48ec8baeade8) )
4350
4351 ROM_REGION( 0x040000, REGION_GFX2, 0 ) /* sprites */
4352 ROM_LOAD16_BYTE( "epr7465.5c", 0x000001, 0x8000, CRC(8a1ab7d7) SHA1(a2f317538c70a1603b65d795223407cbaaf88524) )
4353 ROM_LOAD16_BYTE( "epr-7469.2b", 0x000000, 0x8000, CRC(cb65ae4f) SHA1(3ee7b3b4cce113a6f394e8dfd317cdb6ffae64f7) )
4354 ROM_LOAD16_BYTE( "epr7466.6c", 0x010001, 0x8000, CRC(b2d3f4f3) SHA1(65e654fde10bee4cb5eee8234d0babb78fe41cfb) )
4355 ROM_LOAD16_BYTE( "epr-7470.3b", 0x010000, 0x8000, CRC(16fc67b1) SHA1(788fe2878c5c9faea43c2f166f32c22ee51c7d09) )
4356 ROM_LOAD16_BYTE( "epr7467.7c", 0x020001, 0x8000, CRC(0af68de2) SHA1(81163baf3f0e45bac950a6d9c24b3a886db1509c) )
4357 ROM_LOAD16_BYTE( "epr-7471.4b", 0x020000, 0x8000, CRC(13fad5ac) SHA1(75b480083fbb14cbef969126989bf9b2235fd31e) )
4358 ROM_LOAD16_BYTE( "epr7468.8c", 0x030001, 0x8000, CRC(ddfd40c0) SHA1(6c12ad668cd0c82e7d7d46bfbdcee8b9d46ebd09) )
4359 ROM_LOAD16_BYTE( "epr-7472.5b", 0x030000, 0x8000, CRC(8e2762ec) SHA1(872e19a6aab81d7a2472367d0e31dc1295da7182) )
4360
4361 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
4362 ROM_LOAD( "epr-7464.1b", 0x0000, 0x8000, CRC(9f291306) SHA1(96a09542a863ccf2ded43e2df6f913722b3f97b1) )
4363
4364 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
4365 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
4366
4367 ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */
4368 ROM_LOAD( "epr7473.1c", 0x00000, 0x8000, CRC(06ec75fa) SHA1(5f14bc887449122700c46ad22c0379a1682e0bdb) )
4369 ROM_LOAD( "epr7475.2c", 0x08000, 0x8000, CRC(7abd1206) SHA1(54d52dc0b9c245cd2df647e714310a71b803cbcf) )
4370 ROM_LOAD( "epr7474.3c", 0x10000, 0x8000, CRC(dbf853b8) SHA1(e82f497e1144f23f3233b5c45ef182bfc7923715) )
4371 ROM_LOAD( "epr7476.4c", 0x18000, 0x8000, CRC(5eba655a) SHA1(6713ef12037cba3139d0f469c82bd90b44bae8ce) )
4372 ROM_END
4373
4374 /***************************************************************************/
4375
4376 #if 0
4377 static READ16_HANDLER( quartet2_skip_r ){
4378 if (activecpu_get_pc()==0x8f6c) {cpu_spinuntil_int(); return 0xffff;}
4379 return sys16_workingram[0x0800/2];
4380 }
4381 #endif
4382
4383 static MEMORY_READ16_START( quartet2_readmem )
4384 { 0x000000, 0x02ffff, MRA16_ROM },
4385 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
4386 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
4387 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
4388 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
4389 { 0xc40002, 0xc40003, sys16_coinctrl_r },
4390 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
4391 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
4392 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
4393 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
4394 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
4395 // { 0xffc800, 0xffc801, quartet2_skip_r },
4396 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
4397 MEMORY_END
4398
4399 static MEMORY_WRITE16_START( quartet2_writemem )
4400 { 0x000000, 0x02ffff, MWA16_ROM },
4401 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
4402 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
4403 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
4404 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
4405 { 0xc40000, 0xc40001, sound_command_nmi_w },
4406 { 0xc40002, 0xc40003, sys16_3d_coinctrl_w },
4407 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
4408 MEMORY_END
4409
4410 /***************************************************************************/
4411
4412 static void quartet2_update_proc( void ){
4413 sys16_fg_scrollx = sys16_workingram[0x0d14/2] & 0x01ff;
4414 sys16_bg_scrollx = sys16_workingram[0x0d18/2] & 0x01ff;
4415 sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff;
4416 sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff;
4417
4418 //let's fix this properly
4419 // if(((*(UINT16 *)(&sys16_extraram[4])) & 0xff) == 1)
4420 // sys16_quartet_title_kludge=1;
4421 // else
4422 sys16_quartet_title_kludge=0;
4423
4424 set_fg_page1( sys16_workingram[0x0d1c/2] );
4425 set_bg_page1( sys16_workingram[0x0d1e/2] );
4426 }
4427
MACHINE_INIT(quartet2)4428 static MACHINE_INIT( quartet2 ){
4429 sys16_textmode=1;
4430 sys16_spritesystem = sys16_sprite_quartet2;
4431 sys16_sprxoffset = -0xbc;
4432 sys16_fgxoffset = sys16_bgxoffset = 7;
4433
4434 sys16_update_proc = quartet2_update_proc;
4435 }
4436
DRIVER_INIT(quartet2)4437 static DRIVER_INIT( quartet2 ){
4438 machine_init_sys16_onetime();
4439 }
4440 /***************************************************************************/
4441
INPUT_PORTS_START(quartet2)4442 INPUT_PORTS_START( quartet2 )
4443 SYS16_JOY1_SWAPPEDBUTTONS
4444 SYS16_JOY2_SWAPPEDBUTTONS
4445 SYS16_SERVICE
4446 SYS16_COINAGE
4447
4448 PORT_START /* DSW1 */
4449 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
4450 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
4451 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4452 PORT_DIPNAME( 0x06, 0x00, "Credit Power" )
4453 PORT_DIPSETTING( 0x04, "500" )
4454 PORT_DIPSETTING( 0x06, "1000" )
4455 PORT_DIPSETTING( 0x02, "2000" )
4456 PORT_DIPSETTING( 0x00, "9000" )
4457 PORT_DIPNAME( 0x18, 0x00, DEF_STR( Difficulty ) )
4458 PORT_DIPSETTING( 0x10, "Easy" )
4459 PORT_DIPSETTING( 0x18, "Normal" )
4460 PORT_DIPSETTING( 0x08, "Hard" )
4461 PORT_DIPSETTING( 0x00, "Hardest" )
4462 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
4463 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
4464 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4465 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
4466 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
4467 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4468 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
4469 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
4470 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4471
4472 INPUT_PORTS_END
4473
4474 /***************************************************************************/
4475
4476 static MACHINE_DRIVER_START( quartet2 )
4477
4478 /* basic machine hardware */
4479 MDRV_IMPORT_FROM(system16_7751)
4480 MDRV_CPU_MODIFY("main")
4481 MDRV_CPU_MEMORY(quartet2_readmem,quartet2_writemem)
4482
4483 MDRV_MACHINE_INIT(quartet2)
4484 MACHINE_DRIVER_END
4485
4486 /***************************************************************************
4487
4488 Riot City
4489
4490 ***************************************************************************/
4491 // sys16B
4492 ROM_START( riotcity )
4493 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
4494 ROM_LOAD16_BYTE( "epr14612.bin", 0x000000, 0x20000, CRC(a1b331ec) SHA1(49136ffed35ecc9e5e9a6ea7acbe534e6ccc9dd8) )
4495 ROM_LOAD16_BYTE( "epr14610.bin", 0x000001, 0x20000, CRC(cd4f2c50) SHA1(c7a7e95901c664a72195c202b50a159db8d5981d) )
4496 /* empty 0x40000 - 0x80000 */
4497 ROM_LOAD16_BYTE( "epr14613.bin", 0x080000, 0x20000, CRC(0659df4c) SHA1(a24005ce354113732306c318de373c818400a9c8) )
4498 ROM_LOAD16_BYTE( "epr14611.bin", 0x080001, 0x20000, CRC(d9e6f80b) SHA1(5ac56b3685bb121a4f07be3d81209807436e76ec) )
4499
4500 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4501 ROM_LOAD( "epr14616.bin", 0x00000, 0x20000, CRC(46d30368) SHA1(a791ef0e881345b6be0b28f32af17127edb5b590) ) /* plane 1 */
4502 ROM_LOAD( "epr14625.bin", 0x20000, 0x20000, CRC(abfb80fe) SHA1(5f0d61d55f27e8f776b573e3193164c4d70ec12b) )
4503 ROM_LOAD( "epr14617.bin", 0x40000, 0x20000, CRC(884e40f9) SHA1(f7eeae57544e7d95139588137605986732937d38) ) /* plane 2 */
4504 ROM_LOAD( "epr14626.bin", 0x60000, 0x20000, CRC(4ef55846) SHA1(2f23474e7d1d8880dc251ada55c5fca2fc19256a) )
4505 ROM_LOAD( "epr14618.bin", 0x80000, 0x20000, CRC(00eb260e) SHA1(f293180fb9a053c98022ef086bf4002563752f61) ) /* plane 3 */
4506 ROM_LOAD( "epr14627.bin", 0xa0000, 0x20000, CRC(961e5f82) SHA1(dc88b511dff6cdebf96fe8bf388bf76098296b0f) )
4507
4508 ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */
4509 ROM_LOAD16_BYTE( "epr14619.bin", 0x000001, 0x040000, CRC(6f2b5ef7) SHA1(a0186fcc5b12c31b65b84355f88bcb10b1434135) )
4510 ROM_LOAD16_BYTE( "epr14622.bin", 0x000000, 0x040000, CRC(7ca7e40d) SHA1(57d26cc1b530cb867b2a4779bb5108ac457b2154) )
4511 ROM_LOAD16_BYTE( "epr14620.bin", 0x080001, 0x040000, CRC(66183333) SHA1(44bb9d57cd0308c0d7b6a10ba9bd95763ceea775) )
4512 ROM_LOAD16_BYTE( "epr14623.bin", 0x080000, 0x040000, CRC(98630049) SHA1(216ae0b4a59f306b51bd50dfcbf831c3186a4d2a) )
4513 ROM_LOAD16_BYTE( "epr14621.bin", 0x100001, 0x040000, CRC(c0f2820e) SHA1(ae433f6c5065ed495f5f57f50d6abe5ff98b041e) )
4514 ROM_LOAD16_BYTE( "epr14624.bin", 0x100000, 0x040000, CRC(d1a68448) SHA1(7591f0476e899a11042d9b7e93f99b64de48b0ef) )
4515
4516 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
4517 ROM_LOAD( "epr14614.bin", 0x00000, 0x10000, CRC(c65cc69a) SHA1(28a75dd2085b8e1447fe4e6af210a54a6666fcb1) )
4518 ROM_LOAD( "epr14615.bin", 0x10000, 0x20000, CRC(46653db1) SHA1(7a43d8742ee451d93bb5f1b0f4f261b274c3f0ef) )
4519 ROM_END
4520
4521 /***************************************************************************/
4522
4523 static READ16_HANDLER( riotcity_skip_r ){
4524 if (activecpu_get_pc()==0x3ce) {cpu_spinuntil_int(); return 0;}
4525 return sys16_workingram[0x2cde/2];
4526 }
4527
MEMORY_READ16_START(riotcity_readmem)4528 static MEMORY_READ16_START( riotcity_readmem )
4529 { 0x000000, 0x0bffff, MRA16_ROM },
4530 { 0x3f0000, 0x3fffff, SYS16_MRA16_EXTRAM },
4531 { 0xf20000, 0xf20fff, SYS16_MRA16_EXTRAM3 },
4532 { 0xf40000, 0xf40fff, SYS16_MRA16_SPRITERAM },
4533 { 0xf60000, 0xf60fff, SYS16_MRA16_PALETTERAM },
4534 { 0xf81002, 0xf81003, input_port_0_word_r }, // player1
4535 { 0xf81006, 0xf81007, input_port_1_word_r }, // player2
4536 { 0xf81000, 0xf81001, input_port_2_word_r }, // service
4537 { 0xf82002, 0xf82003, input_port_3_word_r }, // dip1
4538 { 0xf82000, 0xf82001, input_port_4_word_r }, // dip2
4539 { 0xfa0000, 0xfaffff, SYS16_MRA16_TILERAM },
4540 { 0xfb0000, 0xfb0fff, SYS16_MRA16_TEXTRAM },
4541 { 0xffecde, 0xffecdf, riotcity_skip_r },
4542 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
4543 MEMORY_END
4544
4545 static MEMORY_WRITE16_START( riotcity_writemem )
4546 { 0x000000, 0x0bffff, MWA16_ROM },
4547 { 0x3f0000, 0x3fffff, SYS16_MWA16_EXTRAM },
4548 { 0xf00006, 0xf00007, sound_command_w },
4549 { 0xf20000, 0xf20fff, SYS16_MWA16_EXTRAM3 },
4550 { 0xf40000, 0xf40fff, SYS16_MWA16_SPRITERAM },
4551 { 0xf60000, 0xf60fff, SYS16_MWA16_PALETTERAM },
4552 { 0xf80000, 0xf80001, sys16_coinctrl_w },
4553 { 0xfa0000, 0xfaffff, SYS16_MWA16_TILERAM },
4554 { 0xfb0000, 0xfb0fff, SYS16_MWA16_TEXTRAM },
4555 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
4556 MEMORY_END
4557
4558 /***************************************************************************/
4559
4560 static void riotcity_update_proc (void)
4561 {
4562 sys16_fg_scrollx = sys16_textram[0x0e98/2];
4563 sys16_bg_scrollx = sys16_textram[0x0e9a/2];
4564 sys16_fg_scrolly = sys16_textram[0x0e90/2];
4565 sys16_bg_scrolly = sys16_textram[0x0e92/2];
4566
4567 set_fg_page( sys16_textram[0x0e80/2] );
4568 set_bg_page( sys16_textram[0x0e82/2] );
4569
4570 sys16_tile_bank1 = sys16_extraram3[0x0002/2] & 0xf;
4571 sys16_tile_bank0 = sys16_extraram3[0x0000/2] & 0xf;
4572 }
4573
MACHINE_INIT(riotcity)4574 static MACHINE_INIT( riotcity ){
4575 static int bank[16] = {
4576 0x0,0x1,0x4,0x5,
4577 0x8,0x9,0x0,0x0,
4578 0x2,0x3,0x6,0x7,
4579 0xa,0xb,0x0,0x0
4580 };
4581 sys16_obj_bank = bank;
4582 sys16_spritesystem = sys16_sprite_aurail;
4583 sys16_spritelist_end=0x8000;
4584 sys16_bg_priority_mode=1;
4585
4586 sys16_update_proc = riotcity_update_proc;
4587 }
4588
DRIVER_INIT(riotcity)4589 static DRIVER_INIT( riotcity )
4590 {
4591 machine_init_sys16_onetime();
4592 }
4593
4594 /***************************************************************************/
4595
INPUT_PORTS_START(riotcity)4596 INPUT_PORTS_START( riotcity )
4597 SYS16_JOY1
4598 SYS16_JOY2
4599 SYS16_SERVICE
4600 SYS16_COINAGE
4601
4602 PORT_START /* DSW1 */
4603 PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" )
4604 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
4605 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4606 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
4607 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
4608 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4609 PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
4610 PORT_DIPSETTING( 0x00, "1" )
4611 PORT_DIPSETTING( 0x0c, "2" )
4612 PORT_DIPSETTING( 0x08, "3" )
4613 PORT_DIPSETTING( 0x04, "4" )
4614 PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
4615 PORT_DIPSETTING( 0x20, "Easy" )
4616 PORT_DIPSETTING( 0x30, "Normal" )
4617 PORT_DIPSETTING( 0x10, "Hard" )
4618 PORT_DIPSETTING( 0x00, "Hardest" )
4619 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
4620 PORT_DIPSETTING( 0x40, "Normal" )
4621 PORT_DIPSETTING( 0x00, "Hard" )
4622 PORT_DIPNAME( 0x80, 0x80, "Attack Button to Start" )
4623 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
4624 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4625 INPUT_PORTS_END
4626
4627 /***************************************************************************/
4628
4629 static MACHINE_DRIVER_START( riotcity )
4630
4631 /* basic machine hardware */
4632 MDRV_IMPORT_FROM(system16_7759)
4633 MDRV_CPU_MODIFY("main")
4634 MDRV_CPU_MEMORY(riotcity_readmem,riotcity_writemem)
4635
4636 MDRV_MACHINE_INIT(riotcity)
4637 MACHINE_DRIVER_END
4638
4639 /***************************************************************************/
4640 // sys16B
4641 ROM_START( sdi )
4642 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
4643 ROM_LOAD16_BYTE( "a4.rom", 0x000000, 0x8000, CRC(f2c41dd6) SHA1(7fdbf819e42c7af0efe3976ffd919ee142efe1bc) )
4644 ROM_LOAD16_BYTE( "a1.rom", 0x000001, 0x8000, CRC(a9f816ef) SHA1(5ccab14b088d2249f83ff5e80591eccb4afb6e20) )
4645 ROM_LOAD16_BYTE( "a5.rom", 0x010000, 0x8000, CRC(7952e27e) SHA1(caead75724a6744fc6fc7fbbc9894932a7a22eed) )
4646 ROM_LOAD16_BYTE( "a2.rom", 0x010001, 0x8000, CRC(369af326) SHA1(d6517c38f3a386e8f23b058fe8fa0607918ba215) )
4647 ROM_LOAD16_BYTE( "a6.rom", 0x020000, 0x8000, CRC(8ee2c287) SHA1(8ed98334dab51c2eab8e1ff0724abc1f819dc8c2) )
4648 ROM_LOAD16_BYTE( "a3.rom", 0x020001, 0x8000, CRC(193e4231) SHA1(14fecfab010641b83e5b24d0e8003bc0de35e1c8) )
4649
4650 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4651 ROM_LOAD( "b9.rom", 0x00000, 0x10000, CRC(182b6301) SHA1(bb6f1174f82611c801d2b4b7d3596bf71619e8a1) )
4652 ROM_LOAD( "b10.rom", 0x10000, 0x10000, CRC(8f7129a2) SHA1(094a4065597d8d51fb2232546df1de9043fea731) )
4653 ROM_LOAD( "b11.rom", 0x20000, 0x10000, CRC(4409411f) SHA1(84fd7128e8440d96b0384ae3c391a59bd37ecf9d) )
4654
4655 ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */
4656 ROM_LOAD16_BYTE( "b1.rom", 0x00001, 0x010000, CRC(30e2c50a) SHA1(1fb9e69d4cb97fdcb0f98c2a7ede246aaa4ac382) )
4657 ROM_LOAD16_BYTE( "b5.rom", 0x00000, 0x010000, CRC(794e3e8b) SHA1(91ca1cb9aabf99adc8426feed4494a992afb8c4a) )
4658 ROM_LOAD16_BYTE( "b2.rom", 0x20001, 0x010000, CRC(6a8b3fd0) SHA1(a122d3cb0b3263714f026e57d85b0dbf6cb110d7) )
4659 ROM_LOAD16_BYTE( "b6.rom", 0x20000, 0x010000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
4660 ROM_LOAD16_BYTE( "b3.rom", 0x40001, 0x010000, CRC(b9de3aeb) SHA1(2f7a55a8377e831338a884f8962d6ab2757e8c9b) )
4661 ROM_LOAD16_BYTE( "b7.rom", 0x40000, 0x010000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
4662
4663 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
4664 ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
4665 ROM_END
4666
4667 // sys16A
4668 ROM_START( sdioj )
4669 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
4670 // Custom cpu 317-0027
4671 ROM_LOAD16_BYTE( "epr10970.43", 0x000000, 0x8000, CRC(b8fa4a2c) SHA1(06b448bbee0a2b2809d9af7a2a22c5847343c079) )
4672 ROM_LOAD16_BYTE( "epr10968.26", 0x000001, 0x8000, CRC(a3f97793) SHA1(0f924fae0d13b3387a0e5171482f6d413432ddb3) )
4673 ROM_LOAD16_BYTE( "epr10971.42", 0x010000, 0x8000, CRC(c44a0328) SHA1(3736bb83e728bb0e15ea58bc2a6c2fe66a1a4885) )
4674 ROM_LOAD16_BYTE( "epr10969.25", 0x010001, 0x8000, CRC(455d15bd) SHA1(be679ecb1687b0675614ad27973c20808ad53797) )
4675 ROM_LOAD16_BYTE( "epr10755.41", 0x020000, 0x8000, CRC(405e3969) SHA1(6d8c3bd06d35c971f7db005dffa2e83cae1378f8) )
4676 ROM_LOAD16_BYTE( "epr10752.24", 0x020001, 0x8000, CRC(77453740) SHA1(9032463e5e14c3c610c31e2eb6e2c962df9adf46) )
4677
4678 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4679 ROM_LOAD( "epr10756.95", 0x00000, 0x10000, CRC(44d8a506) SHA1(363d49dcb65ac0093f3ed3b259b1bc45f0291e9d) )
4680 ROM_LOAD( "epr10757.94", 0x10000, 0x10000, CRC(497e1740) SHA1(95b166a9db46a27087e417c1b2cbb76bee2e64a7) )
4681 ROM_LOAD( "epr10758.93", 0x20000, 0x10000, CRC(61d61486) SHA1(d48ff87216947b78903cd98a10436babdf8b75a0) )
4682
4683 ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */
4684 ROM_LOAD16_BYTE( "b1.rom", 0x00001, 0x10000, CRC(30e2c50a) SHA1(1fb9e69d4cb97fdcb0f98c2a7ede246aaa4ac382) )
4685 ROM_LOAD16_BYTE( "b5.rom", 0x00000, 0x10000, CRC(794e3e8b) SHA1(91ca1cb9aabf99adc8426feed4494a992afb8c4a) )
4686 ROM_LOAD16_BYTE( "b2.rom", 0x20001, 0x10000, CRC(6a8b3fd0) SHA1(a122d3cb0b3263714f026e57d85b0dbf6cb110d7) )
4687 ROM_LOAD16_BYTE( "b6.rom", 0x20000, 0x10000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
4688 ROM_LOAD16_BYTE( "b3.rom", 0x40001, 0x10000, CRC(b9de3aeb) SHA1(2f7a55a8377e831338a884f8962d6ab2757e8c9b) )
4689 ROM_LOAD16_BYTE( "b7.rom", 0x40000, 0x10000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
4690
4691 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
4692 ROM_LOAD( "epr10759.12", 0x0000, 0x8000, CRC(d7f9649f) SHA1(ce4abe7dd7e33da048569d7817063345fab75ea7) )
4693 ROM_END
4694
4695
4696 /***************************************************************************/
4697
4698 static READ16_HANDLER( io_p1mousex_r ){ return 0xff-input_port_5_r( offset ); }
READ16_HANDLER(io_p1mousey_r)4699 static READ16_HANDLER( io_p1mousey_r ){ return input_port_6_r( offset ); }
4700
READ16_HANDLER(io_p2mousex_r)4701 static READ16_HANDLER( io_p2mousex_r ){ return input_port_7_r( offset ); }
READ16_HANDLER(io_p2mousey_r)4702 static READ16_HANDLER( io_p2mousey_r ){ return input_port_8_r( offset ); }
4703
READ16_HANDLER(sdi_skip_r)4704 static READ16_HANDLER( sdi_skip_r ){
4705 if (activecpu_get_pc()==0x5326) {cpu_spinuntil_int(); return 0xffff;}
4706 return sys16_workingram[0x0400/2];
4707 }
4708
MEMORY_READ16_START(sdi_readmem)4709 static MEMORY_READ16_START( sdi_readmem )
4710 { 0x000000, 0x02ffff, MRA16_ROM },
4711 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
4712 { 0x410000, 0x411fff, SYS16_MRA16_TEXTRAM }, //*
4713 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
4714 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
4715 { 0xc41004, 0xc41005, input_port_0_word_r }, // player1
4716 { 0xc41002, 0xc41003, input_port_1_word_r }, // player2
4717 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
4718 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
4719 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
4720 { 0xc42004, 0xc42005, input_port_4_word_r }, // dip2
4721 { 0xc43000, 0xc43001, io_p1mousex_r },
4722 { 0xc43004, 0xc43005, io_p1mousey_r },
4723 { 0xc43008, 0xc43009, io_p2mousex_r },
4724 { 0xc4300c, 0xc4300d, io_p2mousey_r },
4725 // { 0xc42000, 0xc42001, MRA16_NOP }, /* What is this? */
4726 { 0xc60000, 0xc60001, MRA16_NOP }, /* What is this? */
4727 { 0xffc400, 0xffc401, sdi_skip_r },
4728 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
4729 MEMORY_END
4730
4731 static MEMORY_WRITE16_START( sdi_writemem )
4732 { 0x000000, 0x02ffff, MWA16_ROM },
4733 { 0x123406, 0x123407, sound_command_w },
4734 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
4735 { 0x410000, 0x411fff, SYS16_MWA16_TEXTRAM },
4736 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
4737 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
4738 { 0xc40000, 0xc40001, sys16_coinctrl_w },
4739 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
4740 MEMORY_END
4741
4742 /***************************************************************************/
4743
4744 static void sdi_update_proc( void ){
4745 set_fg_page( sys16_textram[0x740] );
4746 set_bg_page( sys16_textram[0x741] );
4747 sys16_fg_scrolly = sys16_textram[0x748];
4748 sys16_bg_scrolly = sys16_textram[0x749];
4749 sys16_fg_scrollx = sys16_textram[0x74c];
4750 sys16_bg_scrollx = sys16_textram[0x74d];
4751 }
4752
MACHINE_INIT(sdi)4753 static MACHINE_INIT( sdi ){
4754 static int bank[16] = {
4755 0,0,0,0,
4756 0,0,0,3,
4757 0,0,0,2,
4758 0,1,0,0
4759 };
4760 sys16_obj_bank = bank;
4761
4762 sys16_patch_code( 0x102f2, 0x00 );
4763 sys16_patch_code( 0x102f3, 0x02 );
4764
4765 sys16_update_proc = sdi_update_proc;
4766 }
4767
DRIVER_INIT(sdi)4768 static DRIVER_INIT( sdi ){
4769 machine_init_sys16_onetime();
4770 sys18_splittab_bg_x=&sys16_textram[0x0fc0];
4771 sys16_rowscroll_scroll=0xff00;
4772 }
4773
4774 /***************************************************************************/
4775
INPUT_PORTS_START(sdi)4776 INPUT_PORTS_START( sdi )
4777 PORT_START /* DSW1 */
4778 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN | IPF_8WAY )
4779 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP | IPF_8WAY )
4780 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT | IPF_8WAY )
4781 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT | IPF_8WAY )
4782 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN | IPF_8WAY | IPF_PLAYER2)
4783 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP | IPF_8WAY | IPF_PLAYER2)
4784 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT | IPF_8WAY | IPF_PLAYER2)
4785 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT | IPF_8WAY | IPF_PLAYER2)
4786
4787 SYS16_JOY2
4788
4789 PORT_START /* Service */
4790 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
4791 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
4792 PORT_BITX(0x04, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
4793 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
4794 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
4795 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
4796 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
4797 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2)
4798
4799 SYS16_COINAGE
4800
4801 PORT_START /* DSW1 */
4802 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
4803 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
4804 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4805 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
4806 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
4807 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4808 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
4809 PORT_DIPSETTING( 0x08, "2" )
4810 PORT_DIPSETTING( 0x0c, "3" )
4811 PORT_DIPSETTING( 0x04, "4" )
4812 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "240?", IP_KEY_NONE, IP_JOY_NONE )
4813 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
4814 PORT_DIPSETTING( 0x20, "Easy" )
4815 PORT_DIPSETTING( 0x30, "Normal" )
4816 PORT_DIPSETTING( 0x10, "Hard" )
4817 PORT_DIPSETTING( 0x00, "Hardest" )
4818 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) )
4819 PORT_DIPSETTING( 0x80, "Every 50000" )
4820 PORT_DIPSETTING( 0xc0, "50000" )
4821 PORT_DIPSETTING( 0x40, "100000" )
4822 PORT_DIPSETTING( 0x00, "None" )
4823
4824 PORT_START /* fake analog X */
4825 PORT_ANALOG( 0xff, 0x80, IPT_TRACKBALL_X, 75, 1, 0, 255 )
4826
4827 PORT_START /* fake analog Y */
4828 PORT_ANALOG( 0xff, 0x80, IPT_TRACKBALL_Y, 75, 1, 0, 255 )
4829
4830 PORT_START /* fake analog X */
4831 PORT_ANALOG( 0xff, 0x80, IPT_TRACKBALL_X | IPF_PLAYER2 , 75, 1, 0, 255 )
4832
4833 PORT_START /* fake analog Y */
4834 PORT_ANALOG( 0xff, 0x80, IPT_TRACKBALL_Y | IPF_PLAYER2, 75, 1, 0, 255 )
4835
4836 INPUT_PORTS_END
4837
4838 /***************************************************************************/
4839
4840 static MACHINE_DRIVER_START( sdi )
4841
4842 /* basic machine hardware */
4843 MDRV_IMPORT_FROM(system16)
4844 MDRV_CPU_MODIFY("main")
4845 MDRV_CPU_MEMORY(sdi_readmem,sdi_writemem)
4846
4847 MDRV_MACHINE_INIT(sdi)
4848 MACHINE_DRIVER_END
4849
4850 /***************************************************************************/
4851
4852
4853 /***************************************************************************/
4854 // sys16B
4855 ROM_START( shinobi )
4856 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
4857 ROM_LOAD16_BYTE( "shinobi.a4", 0x00000, 0x10000, CRC(b930399d) SHA1(955ff2948e1990463631b0bc5c7f5275384236cc) )
4858 ROM_LOAD16_BYTE( "shinobi.a1", 0x00001, 0x10000, CRC(343f4c46) SHA1(2cf5d00462ad85ae9a2e16d59171c8ab85e10f49) )
4859 ROM_LOAD16_BYTE( "epr11283", 0x20000, 0x10000, CRC(9d46e707) SHA1(37ab25b3b37365c9f45837bfb6ec80652691dd4c) )
4860 ROM_LOAD16_BYTE( "epr11281", 0x20001, 0x10000, CRC(7961d07e) SHA1(38cbdab35f901532c0ad99ad0083513abd2ff182) )
4861
4862 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4863 ROM_LOAD( "shinobi.b9", 0x00000, 0x10000, CRC(5f62e163) SHA1(03f008745a1af84142ada647acf3601049f43ad5) )
4864 ROM_LOAD( "shinobi.b10", 0x10000, 0x10000, CRC(75f8fbc9) SHA1(29072edcd583af60ec66b4c8bb82b179a3751edf) )
4865 ROM_LOAD( "shinobi.b11", 0x20000, 0x10000, CRC(06508bb9) SHA1(57c9036123ec8e35d0275ab6eaff25a16aa203d4) )
4866
4867 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
4868 ROM_LOAD16_BYTE( "epr11290.10", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
4869 ROM_LOAD16_BYTE( "epr11294.11", 0x00000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
4870 ROM_LOAD16_BYTE( "epr11291.17", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
4871 ROM_LOAD16_BYTE( "epr11295.18", 0x20000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
4872 ROM_LOAD16_BYTE( "epr11292.23", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
4873 ROM_LOAD16_BYTE( "epr11296.24", 0x40000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
4874 ROM_LOAD16_BYTE( "epr11293.29", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
4875 ROM_LOAD16_BYTE( "epr11297.30", 0x60000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
4876
4877 ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
4878 ROM_LOAD( "shinobi.a7", 0x00000, 0x8000, CRC(2457a7cf) SHA1(ddfac640e442537acb015de8bb088659f5a217ee) )
4879 ROM_LOAD( "shinobi.a8", 0x10000, 0x8000, CRC(c8df8460) SHA1(0aeb41a493df155edb5f600f53ec43b798927dff) )
4880 ROM_LOAD( "shinobi.a9", 0x18000, 0x8000, CRC(e5a4cf30) SHA1(d1982da7a550c11ab2253f5d64ac6ab847da0a04) )
4881 ROM_END
4882
4883 ROM_START( shinobib )
4884 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
4885 // Custom cpu 317-0049
4886 ROM_LOAD16_BYTE( "epr11282", 0x00000, 0x10000, CRC(5f2e5524) SHA1(9e5fcabb95abbe6c8178e82f4971abdbc92bff73) )
4887 ROM_LOAD16_BYTE( "epr11280", 0x00001, 0x10000, CRC(bdfe5c38) SHA1(65f537e38b74c66576d57c770d182dc13302cca6) )
4888 ROM_LOAD16_BYTE( "epr11283", 0x20000, 0x10000, CRC(9d46e707) SHA1(37ab25b3b37365c9f45837bfb6ec80652691dd4c) )
4889 ROM_LOAD16_BYTE( "epr11281", 0x20001, 0x10000, CRC(7961d07e) SHA1(38cbdab35f901532c0ad99ad0083513abd2ff182) )
4890
4891 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
4892 ROM_LOAD( "shinobi.b9", 0x00000, 0x10000, CRC(5f62e163) SHA1(03f008745a1af84142ada647acf3601049f43ad5) )
4893 ROM_LOAD( "shinobi.b10", 0x10000, 0x10000, CRC(75f8fbc9) SHA1(29072edcd583af60ec66b4c8bb82b179a3751edf) )
4894 ROM_LOAD( "shinobi.b11", 0x20000, 0x10000, CRC(06508bb9) SHA1(57c9036123ec8e35d0275ab6eaff25a16aa203d4) )
4895
4896 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
4897 ROM_LOAD16_BYTE( "epr11290.10", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
4898 ROM_LOAD16_BYTE( "epr11294.11", 0x10000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
4899 ROM_LOAD16_BYTE( "epr11291.17", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
4900 ROM_LOAD16_BYTE( "epr11295.18", 0x30000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
4901 ROM_LOAD16_BYTE( "epr11292.23", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
4902 ROM_LOAD16_BYTE( "epr11296.24", 0x50000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
4903 ROM_LOAD16_BYTE( "epr11293.29", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
4904 ROM_LOAD16_BYTE( "epr11297.30", 0x70000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
4905
4906 ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
4907 ROM_LOAD( "shinobi.a7", 0x00000, 0x8000, CRC(2457a7cf) SHA1(ddfac640e442537acb015de8bb088659f5a217ee) )
4908 ROM_LOAD( "shinobi.a8", 0x10000, 0x8000, CRC(c8df8460) SHA1(0aeb41a493df155edb5f600f53ec43b798927dff) )
4909 ROM_LOAD( "shinobi.a9", 0x18000, 0x8000, CRC(e5a4cf30) SHA1(d1982da7a550c11ab2253f5d64ac6ab847da0a04) )
4910
4911 ROM_END
4912
4913 /***************************************************************************/
4914
4915 static READ16_HANDLER( shinobi_skip_r ){
4916 if (activecpu_get_pc()==0x32e0) {cpu_spinuntil_int(); return 1<<8;}
4917 return sys16_workingram[0x301c/2];
4918 }
4919
MEMORY_READ16_START(shinobi_readmem)4920 static MEMORY_READ16_START( shinobi_readmem )
4921 { 0x000000, 0x03ffff, MRA16_ROM },
4922 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
4923 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
4924 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
4925 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
4926 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
4927 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
4928 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
4929 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
4930 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
4931 { 0xc43000, 0xc43001, MRA16_NOP },
4932 { 0xfff01c, 0xfff01d, shinobi_skip_r },
4933 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
4934 MEMORY_END
4935
4936 static MEMORY_WRITE16_START( shinobi_writemem )
4937 { 0x000000, 0x03ffff, MWA16_ROM },
4938 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
4939 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
4940 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
4941 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
4942 { 0xc40000, 0xc40001, sys16_coinctrl_w },
4943 { 0xc43000, 0xc43001, MWA16_NOP },
4944 { 0xfe0006, 0xfe0007, sound_command_w },
4945 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
4946 MEMORY_END
4947
4948 /***************************************************************************/
4949
4950 static void shinobi_update_proc( void ){
4951 set_fg_page( sys16_textram[0x740] );
4952 set_bg_page( sys16_textram[0x741] );
4953 sys16_fg_scrolly = sys16_textram[0x748];
4954 sys16_bg_scrolly = sys16_textram[0x749];
4955 sys16_fg_scrollx = sys16_textram[0x74c];
4956 sys16_bg_scrollx = sys16_textram[0x74d];
4957 }
4958
MACHINE_INIT(shinobi)4959 static MACHINE_INIT( shinobi ){
4960 static int bank[16] = {
4961 0,0,0,0,
4962 0,0,0,3,
4963 0,0,0,2,
4964 0,1,0,0
4965 };
4966 sys16_obj_bank = bank;
4967 sys16_dactype = 1;
4968 sys16_update_proc = shinobi_update_proc;
4969 }
4970
DRIVER_INIT(shinobi)4971 static DRIVER_INIT( shinobi )
4972 {
4973 machine_init_sys16_onetime();
4974 }
4975
4976 /***************************************************************************/
4977
INPUT_PORTS_START(shinobi)4978 INPUT_PORTS_START( shinobi )
4979 SYS16_JOY1
4980 SYS16_JOY2
4981 SYS16_SERVICE
4982 SYS16_COINAGE
4983
4984 PORT_START
4985 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
4986 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
4987 PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) )
4988 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
4989 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
4990 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
4991 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
4992 PORT_DIPSETTING( 0x08, "2" )
4993 PORT_DIPSETTING( 0x0c, "3" )
4994 PORT_DIPSETTING( 0x04, "5" )
4995 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "240", IP_KEY_NONE, IP_JOY_NONE )
4996 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
4997 PORT_DIPSETTING( 0x20, "Easy" )
4998 PORT_DIPSETTING( 0x30, "Normal" )
4999 PORT_DIPSETTING( 0x10, "Hard" )
5000 PORT_DIPSETTING( 0x00, "Hardest" )
5001 PORT_DIPNAME( 0x40, 0x40, "Enemy's Bullet Speed" )
5002 PORT_DIPSETTING( 0x40, "Slow" )
5003 PORT_DIPSETTING( 0x00, "Fast" )
5004 PORT_DIPNAME( 0x80, 0x80, "Language" )
5005 PORT_DIPSETTING( 0x80, "Japanese" )
5006 PORT_DIPSETTING( 0x00, "English" )
5007
5008 INPUT_PORTS_END
5009
5010 /***************************************************************************/
5011
5012 static MACHINE_DRIVER_START( shinobi )
5013
5014 /* basic machine hardware */
5015 MDRV_IMPORT_FROM(system16_7759)
5016 MDRV_CPU_MODIFY("main")
5017 MDRV_CPU_MEMORY(shinobi_readmem,shinobi_writemem)
5018
5019 MDRV_MACHINE_INIT(shinobi)
5020 MACHINE_DRIVER_END
5021
5022 /***************************************************************************/
5023 // sys16A
5024 ROM_START( shinobia )
5025 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
5026 // custom cpu 317-0050
5027 ROM_LOAD16_BYTE( "epr11262.42", 0x000000, 0x10000, CRC(d4b8df12) SHA1(64bfa2dd8a3d99728d9eeb114887272d9590d0b8) )
5028 ROM_LOAD16_BYTE( "epr11260.27", 0x000001, 0x10000, CRC(2835c95d) SHA1(b5b42af265d3a16183e02d58b053ec2894072679) )
5029 ROM_LOAD16_BYTE( "epr11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
5030 ROM_LOAD16_BYTE( "epr11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
5031
5032 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5033 ROM_LOAD( "epr11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
5034 ROM_LOAD( "epr11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
5035 ROM_LOAD( "epr11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
5036
5037 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
5038 ROM_LOAD16_BYTE( "epr11290.10", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
5039 ROM_LOAD16_BYTE( "epr11294.11", 0x00000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
5040 ROM_LOAD16_BYTE( "epr11291.17", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
5041 ROM_LOAD16_BYTE( "epr11295.18", 0x20000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
5042 ROM_LOAD16_BYTE( "epr11292.23", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
5043 ROM_LOAD16_BYTE( "epr11296.24", 0x40000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
5044 ROM_LOAD16_BYTE( "epr11293.29", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
5045 ROM_LOAD16_BYTE( "epr11297.30", 0x60000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
5046
5047 ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
5048 ROM_LOAD( "epr11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
5049
5050 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
5051 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
5052
5053 ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* 7751 sound data */
5054 ROM_LOAD( "epr11268.1", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
5055 ROM_END
5056
5057
5058 ROM_START( shinobl )
5059 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
5060 // Star Bootleg
5061 ROM_LOAD16_BYTE( "b3", 0x000000, 0x10000, CRC(38e59646) SHA1(6a13015a93260ab99811b95950bb122eade01c27) )
5062 ROM_LOAD16_BYTE( "b1", 0x000001, 0x10000, CRC(8529d192) SHA1(202b912d20a2d82abe055b4a5e8c509ab7d69ff8) )
5063 ROM_LOAD16_BYTE( "epr11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
5064 ROM_LOAD16_BYTE( "epr11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
5065
5066 // Beta Bootleg
5067 // ROM_LOAD16_BYTE( "4", 0x000000, 0x10000, CRC(c178a39c) )
5068 // ROM_LOAD16_BYTE( "2", 0x000001, 0x10000, CRC(5ad8ebf2) )
5069 // ROM_LOAD16_BYTE( "epr11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
5070 // ROM_LOAD16_BYTE( "epr11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
5071
5072 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5073 ROM_LOAD( "epr11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
5074 ROM_LOAD( "epr11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
5075 ROM_LOAD( "epr11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
5076
5077 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
5078 ROM_LOAD16_BYTE( "epr11290.10", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
5079 ROM_LOAD16_BYTE( "epr11294.11", 0x00000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
5080 ROM_LOAD16_BYTE( "epr11291.17", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
5081 ROM_LOAD16_BYTE( "epr11295.18", 0x20000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
5082 ROM_LOAD16_BYTE( "epr11292.23", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
5083 ROM_LOAD16_BYTE( "epr11296.24", 0x40000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
5084 ROM_LOAD16_BYTE( "epr11293.29", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
5085 // ROM_LOAD16_BYTE( "epr11297.30", 0x60000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
5086 ROM_LOAD16_BYTE( "b17", 0x60000, 0x10000, CRC(0315cf42) SHA1(2d129171aece883cb9c2805f894b3867ec98332b) ) // Beta bootleg uses the rom above.
5087
5088 ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */
5089 ROM_LOAD( "epr11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
5090
5091 ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */
5092 ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */
5093
5094 ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* 7751 sound data */
5095 ROM_LOAD( "epr11268.1", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
5096 ROM_END
5097
5098 /***************************************************************************/
5099
5100 static MEMORY_READ16_START( shinobl_readmem )
5101 { 0x000000, 0x03ffff, MRA16_ROM },
5102 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5103 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5104 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
5105 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
5106 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
5107 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
5108 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
5109 { 0xc42000, 0xc42001, input_port_3_word_r }, // dip1
5110 { 0xc42002, 0xc42003, input_port_4_word_r }, // dip2
5111 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
5112 MEMORY_END
5113
5114 static MEMORY_WRITE16_START( shinobl_writemem )
5115 { 0x000000, 0x03ffff, MWA16_ROM },
5116 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
5117 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
5118 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
5119 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
5120 { 0xc40000, 0xc40001, sound_command_nmi_w },
5121 { 0xc40002, 0xc40003, sys16_3d_coinctrl_w },
5122 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
5123 MEMORY_END
5124
5125 /***************************************************************************/
5126
5127 static void shinobl_update_proc( void ){
5128 set_bg_page( sys16_textram[0x74e] );
5129 set_fg_page( sys16_textram[0x74f] );
5130 sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff;
5131 sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff;
5132 sys16_fg_scrollx = sys16_textram[0x7fc] & 0x01ff;
5133 sys16_bg_scrollx = sys16_textram[0x7fd] & 0x01ff;
5134 }
5135
MACHINE_INIT(shinobl)5136 static MACHINE_INIT( shinobl ){
5137 static int bank[] = {
5138 0,2,4,6,
5139 1,3,5,7
5140 };
5141 sys16_obj_bank = bank;
5142 sys16_textmode=1;
5143 sys16_spritesystem = sys16_sprite_quartet2;
5144 sys16_sprxoffset = -0xbc;
5145 sys16_fgxoffset = sys16_bgxoffset = 7;
5146 sys16_tilebank_switch=0x2000;
5147
5148 sys16_dactype = 1;
5149 sys16_update_proc = shinobl_update_proc;
5150 }
5151
5152
5153
5154 /***************************************************************************/
5155
5156 static MACHINE_DRIVER_START( shinobl )
5157
5158 /* basic machine hardware */
MDRV_IMPORT_FROM(system16_7751)5159 MDRV_IMPORT_FROM(system16_7751)
5160 MDRV_CPU_MODIFY("main")
5161 MDRV_CPU_MEMORY(shinobl_readmem,shinobl_writemem)
5162
5163 MDRV_MACHINE_INIT(shinobl)
5164 MACHINE_DRIVER_END
5165
5166 /***************************************************************************/
5167
5168 // sys16A custom
5169 ROM_START( tetris )
5170 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
5171 ROM_LOAD16_BYTE( "epr12201.rom", 0x000000, 0x8000, CRC(338e9b51) SHA1(f56a1124c963d4ad72a806b26f9aa906aaa37d2b) )
5172 ROM_LOAD16_BYTE( "epr12200.rom", 0x000001, 0x8000, CRC(fb058779) SHA1(0045985ea943ebc7e44bd95127c5e5212c2821e8) )
5173
5174 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5175 ROM_LOAD( "epr12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
5176 ROM_LOAD( "epr12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
5177 ROM_LOAD( "epr12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
5178
5179 ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* sprites */
5180 ROM_LOAD16_BYTE( "epr12169.rom", 0x0001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
5181 ROM_LOAD16_BYTE( "epr12170.rom", 0x0000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
5182
5183 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
5184 ROM_LOAD( "epr12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
5185 ROM_END
5186
5187 // sys16B
5188 ROM_START( tetrisbl )
5189 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
5190 ROM_LOAD16_BYTE( "rom2.bin", 0x000000, 0x10000, CRC(4d165c38) SHA1(04706b1977ae18bd09bafaf8ea65f8e5f32e04b8) )
5191 ROM_LOAD16_BYTE( "rom1.bin", 0x000001, 0x10000, CRC(1e912131) SHA1(8f53504ac08942ee340489d84eab825e654d0a2c) )
5192
5193 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5194 ROM_LOAD( "scr01.rom", 0x00000, 0x10000, CRC(62640221) SHA1(c311d3847a981d0e1609f9b3d80481565d32d78c) )
5195 ROM_LOAD( "scr02.rom", 0x10000, 0x10000, CRC(9abd183b) SHA1(621b017cb34973f9227be383e26b5cd41aea9422) )
5196 ROM_LOAD( "scr03.rom", 0x20000, 0x10000, CRC(2495fd4e) SHA1(2db94ead9223a67238a97e724668076fc43e5534) )
5197
5198 ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* sprites */
5199 ROM_LOAD16_BYTE( "obj0-o.rom", 0x00001, 0x10000, CRC(2fb38880) SHA1(0e1b601bbda78d1887951c1f7e752531c281bc83) )
5200 ROM_LOAD16_BYTE( "obj0-e.rom", 0x00000, 0x10000, CRC(d6a02cba) SHA1(d80000f92e754e89c6ca7b7273feab448fc9a061) )
5201
5202 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
5203 ROM_LOAD( "s-prog.rom", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
5204 ROM_END
5205
5206 // sys16B
5207 ROM_START( tetrisa )
5208 ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */
5209 // Custom Cpu 317-0092
5210 ROM_LOAD16_BYTE( "tetris.a7", 0x000000, 0x10000, CRC(9ce15ac9) SHA1(0fdbd3ca37e4c0efa7c66415714bfc10637ced6c) )
5211 ROM_LOAD16_BYTE( "tetris.a5", 0x000001, 0x10000, CRC(98d590ca) SHA1(4d18409c0b5734d0adcea5646d13f65b687dd05d) )
5212
5213 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5214 ROM_LOAD( "scr01.rom", 0x00000, 0x10000, CRC(62640221) SHA1(c311d3847a981d0e1609f9b3d80481565d32d78c) )
5215 ROM_LOAD( "scr02.rom", 0x10000, 0x10000, CRC(9abd183b) SHA1(621b017cb34973f9227be383e26b5cd41aea9422) )
5216 ROM_LOAD( "scr03.rom", 0x20000, 0x10000, CRC(2495fd4e) SHA1(2db94ead9223a67238a97e724668076fc43e5534) )
5217
5218 ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* sprites */
5219 ROM_LOAD16_BYTE( "obj0-o.rom", 0x00001, 0x10000, CRC(2fb38880) SHA1(0e1b601bbda78d1887951c1f7e752531c281bc83) )
5220 ROM_LOAD16_BYTE( "obj0-e.rom", 0x00000, 0x10000, CRC(d6a02cba) SHA1(d80000f92e754e89c6ca7b7273feab448fc9a061) )
5221
5222 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
5223 ROM_LOAD( "s-prog.rom", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
5224 ROM_END
5225
5226 /***************************************************************************/
5227
5228 static MEMORY_READ16_START( tetris_readmem )
5229 { 0x000000, 0x01ffff, MRA16_ROM },
5230 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5231 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5232 { 0x418000, 0x41803f, SYS16_MRA16_EXTRAM2 },
5233 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
5234 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
5235 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
5236 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
5237 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
5238 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
5239 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
5240 { 0xc80000, 0xc80001, MRA16_NOP },
5241 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
5242 MEMORY_END
5243
5244 static MEMORY_WRITE16_START( tetris_writemem )
5245 { 0x000000, 0x01ffff, MWA16_ROM },
5246 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
5247 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
5248 { 0x418000, 0x41803f, SYS16_MWA16_EXTRAM2 },
5249 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
5250 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
5251 { 0xc40000, 0xc40001, sys16_coinctrl_w },
5252 { 0xc42006, 0xc42007, sound_command_w },
5253 { 0xc43034, 0xc43035, MWA16_NOP },
5254 { 0xc80000, 0xc80001, MWA16_NOP },
5255 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
5256 MEMORY_END
5257
5258 /***************************************************************************/
5259
5260 static void tetris_update_proc( void ){
5261 sys16_fg_scrolly = sys16_textram[0x748];
5262 sys16_bg_scrolly = sys16_textram[0x749];
5263 sys16_fg_scrollx = sys16_textram[0x74c];
5264 sys16_bg_scrollx = sys16_textram[0x74d];
5265
5266 set_fg_page( sys16_extraram2[0x38/2] );
5267 set_bg_page( sys16_extraram2[0x28/2] );
5268 }
5269
MACHINE_INIT(tetris)5270 static MACHINE_INIT( tetris ){
5271 sys16_patch_code( 0xba6, 0x4e );
5272 sys16_patch_code( 0xba7, 0x71 );
5273
5274 sys16_sprxoffset = -0x40;
5275 sys16_update_proc = tetris_update_proc;
5276 }
5277
DRIVER_INIT(tetris)5278 static DRIVER_INIT( tetris )
5279 {
5280 machine_init_sys16_onetime();
5281 }
5282
DRIVER_INIT(tetrisbl)5283 static DRIVER_INIT( tetrisbl )
5284 {
5285 machine_init_sys16_onetime();
5286 }
5287 /***************************************************************************/
5288
INPUT_PORTS_START(tetris)5289 INPUT_PORTS_START( tetris )
5290 SYS16_JOY1
5291 SYS16_JOY2
5292 SYS16_SERVICE
5293 SYS16_COINAGE /* unconfirmed */
5294
5295 PORT_START /* DSW1 */
5296 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
5297 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
5298 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5299 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
5300 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
5301 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5302 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Unknown ) ) // from the code it looks like some kind of difficulty
5303 PORT_DIPSETTING( 0x0c, "A" ) // level, but all 4 levels points to the same place
5304 PORT_DIPSETTING( 0x08, "B" ) // so it doesn't actually change anything!!
5305 PORT_DIPSETTING( 0x04, "C" )
5306 PORT_DIPSETTING( 0x00, "D" )
5307 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
5308 PORT_DIPSETTING( 0x20, "Easy" )
5309 PORT_DIPSETTING( 0x30, "Normal" )
5310 PORT_DIPSETTING( 0x10, "Hard" )
5311 PORT_DIPSETTING( 0x00, "Hardest" )
5312 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
5313 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
5314 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5315 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
5316 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
5317 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5318 INPUT_PORTS_END
5319
5320 /***************************************************************************/
5321
5322 static MACHINE_DRIVER_START( tetris )
5323
5324 /* basic machine hardware */
5325 MDRV_IMPORT_FROM(system16)
5326 MDRV_CPU_MODIFY("main")
5327 MDRV_CPU_MEMORY(tetris_readmem,tetris_writemem)
5328
5329 MDRV_MACHINE_INIT(tetris)
5330 MACHINE_DRIVER_END
5331
5332 /***************************************************************************/
5333 // sys16B
5334 ROM_START( timscanr )
5335 ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */
5336 ROM_LOAD16_BYTE( "ts10853.bin", 0x00000, 0x8000, CRC(24d7c5fb) SHA1(b1796e77cf968f9bdae7a47c5c02b93aaec10ade) )
5337 ROM_LOAD16_BYTE( "ts10850.bin", 0x00001, 0x8000, CRC(f1575732) SHA1(d0c8fc42171c436cc1cd55a33295bd019a474d47) )
5338 ROM_LOAD16_BYTE( "ts10854.bin", 0x10000, 0x8000, CRC(82d0b237) SHA1(c1defda4785014ccd7164f49f53f77e36fcb3a8d) )
5339 ROM_LOAD16_BYTE( "ts10851.bin", 0x10001, 0x8000, CRC(f5ce271b) SHA1(8b4f1178c87e657d8d5805d908100f0d5fb030da) )
5340 ROM_LOAD16_BYTE( "ts10855.bin", 0x20000, 0x8000, CRC(63e95a53) SHA1(60c42bbb1c316deb493a237990a7938551f8bc2e) )
5341 ROM_LOAD16_BYTE( "ts10852.bin", 0x20001, 0x8000, CRC(7cd1382b) SHA1(6263cc863cbf0ef66a7ba8cc1c98212917d7c131) )
5342
5343 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5344 ROM_LOAD( "timscanr.b9", 0x00000, 0x8000, CRC(07dccc37) SHA1(544cc6a3b3ef64727ecf5098b84ade2dd5330614) )
5345 ROM_LOAD( "timscanr.b10", 0x08000, 0x8000, CRC(84fb9a3a) SHA1(efde54cc9582f68e58cae05f717a4fc8f620c0fc) )
5346 ROM_LOAD( "timscanr.b11", 0x10000, 0x8000, CRC(c8694bc0) SHA1(e48fc349ef454ded86141937f70b006e64da6b6b) )
5347
5348 ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* sprites */
5349 ROM_LOAD16_BYTE( "ts10548.bin", 0x00001, 0x8000, CRC(aa150735) SHA1(b6e6ff9229c641e196fc7a0a2cf7aa362f554676) )
5350 ROM_LOAD16_BYTE( "ts10552.bin", 0x00000, 0x8000, CRC(6fcbb9f7) SHA1(0a0fab930477d8b79e500263bbc80d3bf73778f8) )
5351 ROM_LOAD16_BYTE( "ts10549.bin", 0x10001, 0x8000, CRC(2f59f067) SHA1(1fb64cce2f98ddcb5ecb662e63ea636a8da08bcd) )
5352 ROM_LOAD16_BYTE( "ts10553.bin", 0x10000, 0x8000, CRC(8a220a9f) SHA1(c17547d85721fa19e5f445b5be30b3fbf5e8cc6e) )
5353 ROM_LOAD16_BYTE( "ts10550.bin", 0x20001, 0x8000, CRC(f05069ff) SHA1(bd95761036c2fad8ddf4e169d899b173822ee4b0) )
5354 ROM_LOAD16_BYTE( "ts10554.bin", 0x20000, 0x8000, CRC(dc64f809) SHA1(ea85eefa98ec55e9e872940821a959ff4eb1bd1c) )
5355 ROM_LOAD16_BYTE( "ts10551.bin", 0x30001, 0x8000, CRC(435d811f) SHA1(b28eb09620113cd7578387c4d96029f2acb8ec06) )
5356 ROM_LOAD16_BYTE( "ts10555.bin", 0x30000, 0x8000, CRC(2143c471) SHA1(d413aa216349ddf773a39d2826c3a940b4149229) )
5357
5358 ROM_REGION( 0x18000, REGION_CPU2, 0 ) /* sound CPU */
5359 ROM_LOAD( "ts10562.bin", 0x0000, 0x8000, CRC(3f5028bf) SHA1(02081569a5f4dc64771e97651a9902a98d54a952) )
5360 ROM_LOAD( "ts10563.bin", 0x10000, 0x8000, CRC(9db7eddf) SHA1(8b9a27442a623bee6b9b5b06275226734d132e17) )
5361 ROM_END
5362
5363 /***************************************************************************/
5364
5365 static READ16_HANDLER( timscanr_skip_r ){
5366 if (activecpu_get_pc()==0x1044c) {cpu_spinuntil_int(); return 0;}
5367 return sys16_workingram[0x000c/2];
5368 }
5369
MEMORY_READ16_START(timscanr_readmem)5370 static MEMORY_READ16_START( timscanr_readmem )
5371 { 0x000000, 0x02ffff, MRA16_ROM },
5372 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5373 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5374 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
5375 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
5376 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
5377 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
5378 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
5379 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
5380 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
5381 { 0xc41004, 0xc41005, input_port_5_word_r }, // dip3
5382 { 0xffc00c, 0xffc00d, timscanr_skip_r },
5383 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
5384 MEMORY_END
5385
5386 static MEMORY_WRITE16_START( timscanr_writemem )
5387 { 0x000000, 0x02ffff, MWA16_ROM },
5388 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
5389 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
5390 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
5391 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
5392 { 0xc40000, 0xc40001, sys16_coinctrl_w },
5393 { 0xfe0006, 0xfe0007, sound_command_w },
5394 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
5395 MEMORY_END
5396
5397 /***************************************************************************/
5398
5399 static void timscanr_update_proc( void ){
5400 set_fg_page( sys16_textram[0x740] );
5401 set_bg_page( sys16_textram[0x741] );
5402 sys16_fg_scrolly = sys16_textram[0x748];
5403 sys16_bg_scrolly = sys16_textram[0x749];
5404 sys16_fg_scrollx = sys16_textram[0x74c];
5405 sys16_bg_scrollx = sys16_textram[0x74d];
5406 }
5407
MACHINE_INIT(timscanr)5408 static MACHINE_INIT( timscanr ){
5409 static int bank[16] = {
5410 0,0,0,0,
5411 0,0,0,3,
5412 0,0,0,2,
5413 0,1,0,0
5414 };
5415 sys16_obj_bank = bank;
5416
5417 sys16_textmode=1;
5418 sys16_update_proc = timscanr_update_proc;
5419 sys16_wwfix = -1; //*
5420 }
5421
DRIVER_INIT(timscanr)5422 static DRIVER_INIT( timscanr ){
5423 machine_init_sys16_onetime();
5424 }
5425 /***************************************************************************/
5426
INPUT_PORTS_START(timscanr)5427 INPUT_PORTS_START( timscanr )
5428 SYS16_JOY1
5429 SYS16_JOY2
5430 SYS16_SERVICE
5431 SYS16_COINAGE
5432
5433 PORT_START /* DSW2 */
5434 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) //??
5435 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
5436 PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) )
5437 PORT_DIPNAME( 0x1e, 0x14, "Bonus" )
5438 PORT_DIPSETTING( 0x16, "Replay 1000000/2000000" )
5439 PORT_DIPSETTING( 0x14, "Replay 1200000/2500000" )
5440 PORT_DIPSETTING( 0x12, "Replay 1500000/3000000" )
5441 PORT_DIPSETTING( 0x10, "Replay 2000000/4000000" )
5442 PORT_DIPSETTING( 0x1c, "Replay 1000000" )
5443 PORT_DIPSETTING( 0x1e, "Replay 1200000" )
5444 PORT_DIPSETTING( 0x1a, "Replay 1500000" )
5445 PORT_DIPSETTING( 0x18, "Replay 1800000" )
5446 PORT_DIPSETTING( 0x0e, "ExtraBall 100000" )
5447 PORT_DIPSETTING( 0x0c, "ExtraBall 200000" )
5448 PORT_DIPSETTING( 0x0a, "ExtraBall 300000" )
5449 PORT_DIPSETTING( 0x08, "ExtraBall 400000" )
5450 PORT_DIPSETTING( 0x06, "ExtraBall 500000" )
5451 PORT_DIPSETTING( 0x04, "ExtraBall 600000" )
5452 PORT_DIPSETTING( 0x02, "ExtraBall 700000" )
5453 PORT_DIPSETTING( 0x00, "None" )
5454
5455 PORT_DIPNAME( 0x20, 0x20, "Match" )
5456 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
5457 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
5458 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
5459 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
5460 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5461 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Lives ) )
5462 PORT_DIPSETTING( 0x80, "3" )
5463 PORT_DIPSETTING( 0x00, "5" )
5464
5465 PORT_START /* DSW3 */
5466 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) //??
5467 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
5468 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5469 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
5470 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
5471 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5472 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Unknown ) )
5473 PORT_DIPSETTING( 0x04, "1" )
5474 PORT_DIPSETTING( 0x0c, "2" )
5475 PORT_DIPSETTING( 0x08, "3" )
5476 PORT_DIPSETTING( 0x00, "None" )
5477 PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
5478 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
5479 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
5480 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
5481 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
5482 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5483 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) )
5484 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
5485 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5486 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
5487 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
5488 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5489
5490 INPUT_PORTS_END
5491
5492 /***************************************************************************/
5493
5494 static MACHINE_DRIVER_START( timscanr )
5495
5496 /* basic machine hardware */
5497 MDRV_IMPORT_FROM(system16_7759)
5498 MDRV_CPU_MODIFY("main")
5499 MDRV_CPU_MEMORY(timscanr_readmem,timscanr_writemem)
5500
5501 MDRV_MACHINE_INIT(timscanr)
5502 MACHINE_DRIVER_END
5503
5504 /***************************************************************************/
5505
5506 // sys16B
5507 ROM_START( toryumon )
5508 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
5509 ROM_LOAD16_BYTE( "17689", 0x00000, 0x20000, CRC(4f0dee19) SHA1(efb5bf29e27029e9ea3fdd57ad7af54b4e1e9a97) )
5510 ROM_LOAD16_BYTE( "17688", 0x00001, 0x20000, CRC(717d81c7) SHA1(293cd9859a2a3aad89c47fdad2ca6aa48e9f74cb) )
5511
5512 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5513 ROM_LOAD( "17700", 0x00000, 0x40000, CRC(8f288b37) SHA1(f0c1bb60ace8078566b51ab91fc35d2981c9f32c) )
5514 ROM_LOAD( "17701", 0x40000, 0x40000, CRC(6dfb025b) SHA1(502c16f650596a791fae1834f9bce6f3aa25c45f) )
5515 ROM_LOAD( "17702", 0x80000, 0x40000, CRC(ae0b7eab) SHA1(403ca2b50913a744e2c5e1cd0d59c69df5464836) )
5516
5517 ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* sprites */
5518 ROM_LOAD16_BYTE( "17692", 0x00001, 0x20000, CRC(543c4327) SHA1(9f40163aaf165f5e4f5aefd8ce083d5f72ded125) )
5519 ROM_LOAD16_BYTE( "17695", 0x00000, 0x20000, CRC(ee60f244) SHA1(21b912e12f6a56ea6b9e5e0be117b447d1ecda43) )
5520 ROM_LOAD16_BYTE( "17693", 0x40001, 0x20000, CRC(4a350b3e) SHA1(70181bf713106475cdf684f86d593ee323ded2ca) )
5521 ROM_LOAD16_BYTE( "17696", 0x40000, 0x20000, CRC(6edb54f1) SHA1(8188d76db16bcf2f6bbfd0d61499e0d0a128bb27) )
5522 ROM_LOAD16_BYTE( "17694", 0x80001, 0x20000, CRC(b296d71d) SHA1(28f55fa451c4856f6fd6d4d9b16b4c3ef963ee5b) )
5523 ROM_LOAD16_BYTE( "17697", 0x80000, 0x20000, CRC(6ccb7b28) SHA1(7a82230b575bfabb150141183d3c37c44a0d41ad) )
5524 ROM_LOAD16_BYTE( "17698", 0xc0001, 0x20000, CRC(cd4dfb82) SHA1(def5847a94cd7da96f5434b62b22925fbb8da151) )
5525 ROM_LOAD16_BYTE( "17699", 0xc0000, 0x20000, CRC(2694ecce) SHA1(85d7ab89d4fd0aa0ca942485f94c5737deaa8eff) )
5526
5527
5528 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
5529 ROM_LOAD( "17691", 0x00000, 0x08000, CRC(14205388) SHA1(0b580d4ef52eab2d71541d44fbd32676b2277aa1) )
5530 ROM_LOAD( "17690", 0x10000, 0x40000, CRC(4f9ba4e4) SHA1(450d821ef12dbb24cf85ac10c77e9b31c03112b1) )
5531 ROM_END
5532
5533 /***************************************************************************/
5534
5535 static MEMORY_READ16_START( toryumon_readmem )
5536 { 0x000000, 0x03ffff, MRA16_ROM },
5537 { 0x3e2000, 0x3e2003, SYS16_MRA16_EXTRAM },
5538 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5539 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5540 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
5541 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
5542 { 0xe41002, 0xe41003, input_port_0_word_r }, // player1
5543 { 0xe41004, 0xe41005, MRA16_NOP },
5544 { 0xe41006, 0xe41007, input_port_1_word_r }, // player2
5545 { 0xe41000, 0xe41001, input_port_2_word_r }, // service
5546 { 0xe42002, 0xe42003, input_port_3_word_r }, // dip1
5547 { 0xe42000, 0xe42001, input_port_4_word_r }, // dip2
5548 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
5549 MEMORY_END
5550
5551 static MEMORY_WRITE16_START( toryumon_writemem )
5552 { 0x000000, 0x03ffff, MWA16_ROM },
5553 { 0x3e2000, 0x3e2003, SYS16_MWA16_EXTRAM },
5554 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
5555 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
5556 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
5557 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
5558 { 0xe40000, 0xe40001, sys16_coinctrl_w },
5559 { 0xfe0006, 0xfe0007, sound_command_w },
5560 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
5561 MEMORY_END
5562
5563 /***************************************************************************/
5564
5565 static void toryumon_update_proc( void ){
5566 set_fg_page( sys16_textram[0x740] );
5567 set_bg_page( sys16_textram[0x741] );
5568 sys16_fg_scrolly = sys16_textram[0x748];
5569 sys16_bg_scrolly = sys16_textram[0x749];
5570 sys16_fg_scrollx = sys16_textram[0x74c];
5571 sys16_bg_scrollx = sys16_textram[0x74d];
5572
5573 sys16_tile_bank0 = sys16_extraram[0]&0xf;
5574 sys16_tile_bank1 = sys16_extraram[1]&0xf;
5575 }
5576
MACHINE_INIT(toryumon)5577 static MACHINE_INIT( toryumon ){
5578 sys16_update_proc = toryumon_update_proc;
5579 }
5580
DRIVER_INIT(toryumon)5581 static DRIVER_INIT( toryumon )
5582 {
5583 machine_init_sys16_onetime();
5584 }
5585 /***************************************************************************/
5586
INPUT_PORTS_START(toryumon)5587 INPUT_PORTS_START( toryumon )
5588 SYS16_JOY1
5589 SYS16_JOY2
5590 SYS16_SERVICE
5591 SYS16_COINAGE
5592
5593 PORT_START /* DSW1 */
5594 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
5595 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
5596 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5597 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
5598 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
5599 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5600 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) )
5601 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
5602 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5603 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
5604 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
5605 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5606 PORT_DIPNAME( 0x10, 0x10, "VS-Mode Battle" )
5607 PORT_DIPSETTING( 0x10, "1" )
5608 PORT_DIPSETTING( 0x00, "3" )
5609 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Difficulty ) )
5610 PORT_DIPSETTING( 0xc0, "Easy" )
5611 PORT_DIPSETTING( 0xe0, "Normal" )
5612 PORT_DIPSETTING( 0xa0, "Hard" )
5613 PORT_DIPSETTING( 0x80, "Hard+1" )
5614 PORT_DIPSETTING( 0x60, "Hard+2" )
5615 PORT_DIPSETTING( 0x40, "Hard+3" )
5616 PORT_DIPSETTING( 0x20, "Hard+4" )
5617 PORT_DIPSETTING( 0x00, "Hard+5" )
5618 INPUT_PORTS_END
5619
5620 /***************************************************************************/
5621
5622 static MACHINE_DRIVER_START( toryumon )
5623
5624 /* basic machine hardware */
5625 MDRV_IMPORT_FROM(system16_7759)
5626 MDRV_CPU_MODIFY("main")
5627 MDRV_CPU_MEMORY(toryumon_readmem,toryumon_writemem)
5628
5629 MDRV_MACHINE_INIT(toryumon)
5630 MACHINE_DRIVER_END
5631
5632 /***************************************************************************/
5633
5634 // sys16B
5635 ROM_START( tturf )
5636 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
5637 ROM_LOAD16_BYTE( "12327.7a", 0x00000, 0x20000, CRC(0376c593) SHA1(3057828b16ee3b7cbb57a76047eecf74d1d8b465) )
5638 ROM_LOAD16_BYTE( "12326.5a", 0x00001, 0x20000, CRC(f998862b) SHA1(69902ab0162eb42e1d6a9792651a5d41cb77477d) )
5639
5640 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5641 ROM_LOAD( "12268.14a", 0x00000, 0x10000, CRC(e0dac07f) SHA1(c7f6de42eb93a8f34afdc300628735b5f40a34c2) )
5642 ROM_LOAD( "12269.15a", 0x10000, 0x10000, CRC(457a8790) SHA1(b701e1a1745cefb31083c8a3daa3b23181f89576) )
5643 ROM_LOAD( "12270.16a", 0x20000, 0x10000, CRC(69fc025b) SHA1(20be1242de27f1b997d43890051cc5d5ac8a127a) )
5644
5645 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
5646 ROM_LOAD16_BYTE( "12279.1b", 0x00001, 0x10000, CRC(7a169fb1) SHA1(1ec6da0d2cfcf727e61f61c847fd8b975b64f944) )
5647 ROM_LOAD16_BYTE( "12283.5b", 0x00000, 0x10000, CRC(ae0fa085) SHA1(ae9af92d4dd0c8a0f064d24e647522b588fbd7f7) )
5648 ROM_LOAD16_BYTE( "12278.2b", 0x20001, 0x10000, CRC(961d06b7) SHA1(b1a9dea63785bfa2c0e7b931387b91dfcd27d79b) )
5649 ROM_LOAD16_BYTE( "12282.6b", 0x20000, 0x10000, CRC(e8671ee1) SHA1(a3732938c370f1936d867aae9c3d1e9bbfb57ede) )
5650 ROM_LOAD16_BYTE( "12277.3b", 0x40001, 0x10000, CRC(f16b6ba2) SHA1(00cc04c7b5aad82d51d2d252e1e57bcdc5e2c9e3) )
5651 ROM_LOAD16_BYTE( "12281.7b", 0x40000, 0x10000, CRC(1ef1077f) SHA1(8ce6fd7d32a20b93b3f91aaa43fe22720da7236f) )
5652 ROM_LOAD16_BYTE( "12276.4b", 0x60001, 0x10000, CRC(838bd71f) SHA1(82d9d127438f5e1906b1cf40bf3b4727f2ee5685) )
5653 ROM_LOAD16_BYTE( "12280.8b", 0x60000, 0x10000, CRC(639a57cb) SHA1(84fd8b96758d38f9e1ba1a3c2cf8099ec0452784) )
5654
5655 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
5656 ROM_LOAD( "12328.10a", 0x0000, 0x8000, NO_DUMP )
5657 ROM_LOAD( "12329.11a", 0x10000, 0x10000, CRC(ed9a686d) SHA1(da433033d501ee871429ee676b3972b14179df9f) ) // speech
5658 ROM_LOAD( "12330.12a", 0x20000, 0x10000, CRC(fb762bca) SHA1(ff9191c5ec38c711ebb7c2ad043f62b6d7e2203c) )
5659
5660 ROM_END
5661
5662 // sys16B
5663 ROM_START( tturfu )
5664 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
5665 ROM_LOAD16_BYTE( "epr12266.bin", 0x00000, 0x10000, CRC(f549def8) SHA1(9e913509d46274bd192455321904ec9884b5f629) )
5666 ROM_LOAD16_BYTE( "epr12264.bin", 0x00001, 0x10000, CRC(f7cdb289) SHA1(9c386cf33a96a977c623c2f243db38fda2c41ba4) )
5667 ROM_LOAD16_BYTE( "epr12267.bin", 0x20000, 0x10000, CRC(3c3ce191) SHA1(036ece2be585a85e05c047fe4a1ab3b6814c3490) )
5668 ROM_LOAD16_BYTE( "epr12265.bin", 0x20001, 0x10000, CRC(8cdadd9a) SHA1(a17852f0eb8f63a82ff44cbeb100da72fe5890e0) )
5669
5670 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5671 ROM_LOAD( "12268.14a", 0x00000, 0x10000, CRC(e0dac07f) SHA1(c7f6de42eb93a8f34afdc300628735b5f40a34c2) )
5672 ROM_LOAD( "12269.15a", 0x10000, 0x10000, CRC(457a8790) SHA1(b701e1a1745cefb31083c8a3daa3b23181f89576) )
5673 ROM_LOAD( "12270.16a", 0x20000, 0x10000, CRC(69fc025b) SHA1(20be1242de27f1b997d43890051cc5d5ac8a127a) )
5674
5675 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
5676 ROM_LOAD16_BYTE( "12279.1b", 0x00001, 0x10000, CRC(7a169fb1) SHA1(1ec6da0d2cfcf727e61f61c847fd8b975b64f944) )
5677 ROM_LOAD16_BYTE( "12283.5b", 0x00000, 0x10000, CRC(ae0fa085) SHA1(ae9af92d4dd0c8a0f064d24e647522b588fbd7f7) )
5678 ROM_LOAD16_BYTE( "12278.2b", 0x20001, 0x10000, CRC(961d06b7) SHA1(b1a9dea63785bfa2c0e7b931387b91dfcd27d79b) )
5679 ROM_LOAD16_BYTE( "12282.6b", 0x20000, 0x10000, CRC(e8671ee1) SHA1(a3732938c370f1936d867aae9c3d1e9bbfb57ede) )
5680 ROM_LOAD16_BYTE( "12277.3b", 0x40001, 0x10000, CRC(f16b6ba2) SHA1(00cc04c7b5aad82d51d2d252e1e57bcdc5e2c9e3) )
5681 ROM_LOAD16_BYTE( "12281.7b", 0x40000, 0x10000, CRC(1ef1077f) SHA1(8ce6fd7d32a20b93b3f91aaa43fe22720da7236f) )
5682 ROM_LOAD16_BYTE( "12276.4b", 0x60001, 0x10000, CRC(838bd71f) SHA1(82d9d127438f5e1906b1cf40bf3b4727f2ee5685) )
5683 ROM_LOAD16_BYTE( "12280.8b", 0x60000, 0x10000, CRC(639a57cb) SHA1(84fd8b96758d38f9e1ba1a3c2cf8099ec0452784) )
5684
5685 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
5686 ROM_LOAD( "epr12271.bin", 0x00000, 0x8000, CRC(99671e52) SHA1(ab21b7e7a449c8081b5db1fdb579071e31b6852c) )
5687 ROM_LOAD( "epr12272.bin", 0x10000, 0x8000, CRC(7cf7e69f) SHA1(62c9f75db8e2b4ece517167ba5c0712bac5f1d95) )
5688 ROM_LOAD( "epr12273.bin", 0x18000, 0x8000, CRC(28f0bb8b) SHA1(d99aff57d213b10ac10c37ceff2f125875816488) )
5689 ROM_LOAD( "epr12274.bin", 0x20000, 0x8000, CRC(8207f0c4) SHA1(169914861a52fa731a305e1ee2d230aa0d0d97fe) )
5690 ROM_LOAD( "epr12275.bin", 0x28000, 0x8000, CRC(182f3c3d) SHA1(1482fe08a05a721e315b1a3aa5bef4dddc72e26e) )
5691
5692 ROM_END
5693
5694 /***************************************************************************/
5695 static READ16_HANDLER( tt_io_player1_r ){ return input_port_0_r( offset ) << 8; }
READ16_HANDLER(tt_io_player2_r)5696 static READ16_HANDLER( tt_io_player2_r ){ return input_port_1_r( offset ) << 8; }
READ16_HANDLER(tt_io_service_r)5697 static READ16_HANDLER( tt_io_service_r ){ return input_port_2_r( offset ) << 8; }
5698
MEMORY_READ16_START(tturf_readmem)5699 static MEMORY_READ16_START( tturf_readmem )
5700 { 0x000000, 0x03ffff, MRA16_ROM },
5701 { 0x2001e6, 0x2001e7, tt_io_service_r },
5702 { 0x2001e8, 0x2001e9, tt_io_player1_r },
5703 { 0x2001ea, 0x2001eb, tt_io_player2_r },
5704 { 0x200000, 0x203fff, SYS16_MRA16_EXTRAM },
5705 { 0x300000, 0x300fff, SYS16_MRA16_SPRITERAM },
5706 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5707 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5708 { 0x500000, 0x500fff, SYS16_MRA16_PALETTERAM },
5709 { 0x602002, 0x602003, input_port_3_word_r }, // dip1
5710 { 0x602000, 0x602001, input_port_4_word_r }, // dip2
5711 MEMORY_END
5712
5713 static MEMORY_WRITE16_START( tturf_writemem )
5714 { 0x000000, 0x03ffff, MWA16_ROM },
5715 { 0x200000, 0x203fff, SYS16_MWA16_EXTRAM },
5716 { 0x300000, 0x300fff, SYS16_MWA16_SPRITERAM },
5717 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
5718 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
5719 { 0x500000, 0x500fff, SYS16_MWA16_PALETTERAM },
5720 { 0x600000, 0x600001, sys16_coinctrl_w },
5721 // { 0x600006, 0x600007, sound_command_w },
5722 MEMORY_END
5723
5724 /***************************************************************************/
5725 static void tturf_update_proc( void ){
5726 set_fg_page( sys16_textram[0x740] );
5727 set_bg_page( sys16_textram[0x741] );
5728 sys16_fg_scrolly = sys16_textram[0x748];
5729 sys16_bg_scrolly = sys16_textram[0x749];
5730 sys16_fg_scrollx = sys16_textram[0x74c];
5731 sys16_bg_scrollx = sys16_textram[0x74d];
5732 }
5733
MACHINE_INIT(tturf)5734 static MACHINE_INIT( tturf ){
5735 static int bank[16] = { 0,0,1,0,2,0,3,0 };
5736 sys16_obj_bank = bank;
5737 sys16_spritelist_end=0xc000;
5738 sys16_update_proc = tturf_update_proc;
5739 }
5740
MACHINE_INIT(tturfu)5741 static MACHINE_INIT( tturfu ){
5742 static int bank[16] = {
5743 0,0,0,0,
5744 0,0,0,0,
5745 0,0,0,1,
5746 0,2,3,0
5747 };
5748 sys16_obj_bank = bank;
5749 sys16_spritelist_end=0xc000;
5750
5751 sys16_update_proc = tturf_update_proc;
5752 }
5753
DRIVER_INIT(tturf)5754 static DRIVER_INIT( tturf ){
5755 machine_init_sys16_onetime();
5756 }
5757 /***************************************************************************/
5758
INPUT_PORTS_START(tturf)5759 INPUT_PORTS_START( tturf )
5760 SYS16_JOY1
5761 SYS16_JOY2
5762 SYS16_SERVICE
5763 SYS16_COINAGE
5764
5765 PORT_START /* DSW1 */
5766 PORT_DIPNAME( 0x03, 0x00, "Continues" )
5767 PORT_DIPSETTING( 0x00, "None" )
5768 PORT_DIPSETTING( 0x01, "3" )
5769 PORT_DIPSETTING( 0x02, "Unlimited" )
5770 PORT_DIPSETTING( 0x03, "Unlimited" )
5771 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
5772 PORT_DIPSETTING( 0x08, "Easy" )
5773 PORT_DIPSETTING( 0x0c, "Normal" )
5774 PORT_DIPSETTING( 0x04, "Hard" )
5775 PORT_DIPSETTING( 0x00, "Hardest" )
5776 PORT_DIPNAME( 0x30, 0x20, "Starting Energy" )
5777 PORT_DIPSETTING( 0x00, "3" )
5778 PORT_DIPSETTING( 0x10, "4" )
5779 PORT_DIPSETTING( 0x20, "6" )
5780 PORT_DIPSETTING( 0x30, "8" )
5781 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
5782 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
5783 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
5784 PORT_DIPNAME( 0x80, 0x00, "Bonus Energy" )
5785 PORT_DIPSETTING( 0x80, "1" )
5786 PORT_DIPSETTING( 0x00, "2" )
5787 INPUT_PORTS_END
5788
5789 /***************************************************************************/
5790
5791 static MACHINE_DRIVER_START( tturf )
5792
5793 /* basic machine hardware */
5794 MDRV_IMPORT_FROM(system16_7759)
5795 MDRV_CPU_MODIFY("main")
5796 MDRV_CPU_MEMORY(tturf_readmem,tturf_writemem)
5797
5798 MDRV_MACHINE_INIT(tturf)
5799 MACHINE_DRIVER_END
5800
5801
5802 static MACHINE_DRIVER_START( tturfu )
5803
5804 /* basic machine hardware */
5805 MDRV_IMPORT_FROM(tturf)
5806 MDRV_MACHINE_INIT(tturfu)
5807 MACHINE_DRIVER_END
5808
5809 /***************************************************************************/
5810 // sys16B
5811 ROM_START( tturfbl )
5812 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
5813 ROM_LOAD16_BYTE( "tt042197.rom", 0x00000, 0x10000, CRC(deee5af1) SHA1(0caba775021dc7e28ac6b7af8eac4f49d3102c83) )
5814 ROM_LOAD16_BYTE( "tt06c794.rom", 0x00001, 0x10000, CRC(90e6a95a) SHA1(014a0ae5cebcba9cc99e6ccde4ad5d938fab915c) )
5815 ROM_LOAD16_BYTE( "tt030be3.rom", 0x20000, 0x10000, CRC(100264a2) SHA1(d1ea4bf93f5472901ce95200f546ce9b58936aea) )
5816 ROM_LOAD16_BYTE( "tt05ef8a.rom", 0x20001, 0x10000, CRC(f787a948) SHA1(512b8cb2f5e9795171951e02c07cae957db41334) )
5817
5818 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5819 ROM_LOAD( "tt1574b3.rom", 0x00000, 0x10000, CRC(e9e630da) SHA1(e8471dedbb25475e4814d78b56f579fe9110461e) )
5820 ROM_LOAD( "tt16cf44.rom", 0x10000, 0x10000, CRC(4c467735) SHA1(8338b6605cbe2e076da0b3e3a47630409a79f002) )
5821 ROM_LOAD( "tt17d59e.rom", 0x20000, 0x10000, CRC(60c0f2fe) SHA1(3fea4ed757d47628f59ff940e40cb86b3b5b443b) )
5822
5823 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
5824 ROM_LOAD16_BYTE( "12279.1b", 0x00001, 0x10000, CRC(7a169fb1) SHA1(1ec6da0d2cfcf727e61f61c847fd8b975b64f944) )
5825 ROM_LOAD16_BYTE( "12283.5b", 0x00000, 0x10000, CRC(ae0fa085) SHA1(ae9af92d4dd0c8a0f064d24e647522b588fbd7f7) )
5826 ROM_LOAD16_BYTE( "12278.2b", 0x20001, 0x10000, CRC(961d06b7) SHA1(b1a9dea63785bfa2c0e7b931387b91dfcd27d79b) )
5827 ROM_LOAD16_BYTE( "12282.6b", 0x20000, 0x10000, CRC(e8671ee1) SHA1(a3732938c370f1936d867aae9c3d1e9bbfb57ede) )
5828 ROM_LOAD16_BYTE( "12277.3b", 0x40001, 0x10000, CRC(f16b6ba2) SHA1(00cc04c7b5aad82d51d2d252e1e57bcdc5e2c9e3) )
5829 ROM_LOAD16_BYTE( "12281.7b", 0x40000, 0x10000, CRC(1ef1077f) SHA1(8ce6fd7d32a20b93b3f91aaa43fe22720da7236f) )
5830 ROM_LOAD16_BYTE( "12276.4b", 0x60001, 0x10000, CRC(838bd71f) SHA1(82d9d127438f5e1906b1cf40bf3b4727f2ee5685) )
5831 ROM_LOAD16_BYTE( "12280.8b", 0x60000, 0x10000, CRC(639a57cb) SHA1(84fd8b96758d38f9e1ba1a3c2cf8099ec0452784) )
5832
5833 ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */
5834 ROM_LOAD( "tt014d68.rom", 0x00000, 0x08000, CRC(d4aab1d9) SHA1(94885896d59da1ecabe2377a194fcf61eaae3765) )
5835 ROM_CONTINUE( 0x10000, 0x08000 )
5836 ROM_LOAD( "tt0246ff.rom", 0x18000, 0x10000, CRC(bb4bba8f) SHA1(b182a7e1d0425e93c2c1b93472aafd30a6af6907) )
5837 ROM_END
5838
5839 /***************************************************************************/
5840
5841 static MEMORY_READ16_START( tturfbl_readmem )
5842 { 0x000000, 0x03ffff, MRA16_ROM },
5843 { 0x2001e6, 0x2001e7, tt_io_service_r },
5844 { 0x2001e8, 0x2001e9, tt_io_player1_r },
5845 { 0x2001ea, 0x2001eb, tt_io_player2_r },
5846 { 0x200000, 0x203fff, SYS16_MRA16_EXTRAM },
5847 { 0x300000, 0x300fff, SYS16_MRA16_SPRITERAM },
5848 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5849 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5850 { 0x500000, 0x500fff, SYS16_MRA16_PALETTERAM },
5851 { 0x600002, 0x600003, input_port_3_word_r }, // dip1
5852 { 0x600000, 0x600001, input_port_4_word_r }, // dip2
5853 { 0x601002, 0x601003, input_port_0_word_r }, // player1
5854 { 0x601004, 0x601005, input_port_1_word_r }, // player2
5855 { 0x601000, 0x601001, input_port_2_word_r }, // service
5856 { 0x602002, 0x602003, input_port_3_word_r }, // dip1
5857 { 0x602000, 0x602001, input_port_4_word_r }, // dip2
5858 { 0xc46000, 0xc4601f, SYS16_MRA16_EXTRAM3 },
5859 MEMORY_END
5860
5861 static MEMORY_WRITE16_START( tturfbl_writemem )
5862 { 0x000000, 0x03ffff, MWA16_ROM },
5863 { 0x200000, 0x203fff, SYS16_MWA16_EXTRAM },
5864 { 0x300000, 0x300fff, SYS16_MWA16_SPRITERAM },
5865 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
5866 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
5867 { 0x500000, 0x500fff, SYS16_MWA16_PALETTERAM },
5868 { 0x600000, 0x600001, sys16_coinctrl_w },
5869 { 0x600006, 0x600007, sound_command_w },
5870 { 0xc44000, 0xc44001, MWA16_NOP },
5871 { 0xc46000, 0xc4601f, SYS16_MWA16_EXTRAM3 },
5872 MEMORY_END
5873
5874 /***************************************************************************/
5875
5876 static void tturfbl_update_proc( void ){
5877 sys16_fg_scrollx = sys16_textram[0x74c] & 0x01ff;
5878 sys16_bg_scrollx = sys16_textram[0x74d/2] & 0x01ff;
5879 sys16_fg_scrolly = sys16_textram[0x748];
5880 sys16_bg_scrolly = sys16_textram[0x749];
5881
5882
5883 {
5884 int data1,data2;
5885
5886 data1 = sys16_textram[0x740];
5887 data2 = sys16_textram[0x741];
5888
5889 sys16_fg_page[3] = data1>>12;
5890 sys16_bg_page[3] = (data1>>8)&0xf;
5891 sys16_fg_page[1] = (data1>>4)&0xf;
5892 sys16_bg_page[1] = data1&0xf;
5893
5894 sys16_fg_page[2] = data2>>12;
5895 sys16_bg_page[2] = (data2>>8)&0xf;
5896 sys16_fg_page[0] = (data2>>4)&0xf;
5897 sys16_bg_page[0] = data2&0xf;
5898 }
5899 }
5900
MACHINE_INIT(tturfbl)5901 static MACHINE_INIT( tturfbl ){
5902 static int bank[16] = {
5903 0,0,0,0,
5904 0,0,0,3,
5905 0,0,0,2,
5906 0,1,0,0
5907 };
5908 sys16_obj_bank = bank;
5909 sys16_sprxoffset = -0x48;
5910 sys16_spritelist_end=0xc000;
5911
5912 sys16_update_proc = tturfbl_update_proc;
5913 }
5914
DRIVER_INIT(tturfbl)5915 static DRIVER_INIT( tturfbl )
5916 {
5917 int i;
5918
5919 machine_init_sys16_onetime();
5920
5921 /* invert the graphics bits on the tiles */
5922 for (i = 0; i < 0x30000; i++)
5923 memory_region(REGION_GFX1)[i] ^= 0xff;
5924 }
5925 /***************************************************************************/
5926 // sound ??
5927 static MACHINE_DRIVER_START( tturfbl )
5928
5929 /* basic machine hardware */
MDRV_IMPORT_FROM(system16_7759)5930 MDRV_IMPORT_FROM(system16_7759)
5931 MDRV_CPU_MODIFY("main")
5932 MDRV_CPU_MEMORY(tturfbl_readmem,tturfbl_writemem)
5933
5934 MDRV_MACHINE_INIT(tturfbl)
5935 MACHINE_DRIVER_END
5936
5937 /***************************************************************************/
5938 // sys16B
5939 ROM_START( wb3 )
5940 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
5941 ROM_LOAD16_BYTE( "epr12259.a7", 0x000000, 0x20000, CRC(54927c7e) SHA1(09a4c25b40aba2056c79b5c2e6e8cb7e6c05bc16) )
5942 ROM_LOAD16_BYTE( "epr12258.a5", 0x000001, 0x20000, CRC(01f5898c) SHA1(2422b4199ce5b63482f7fa1c790c90fc70a2b872) )
5943
5944 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5945 ROM_LOAD( "epr12124.a14", 0x00000, 0x10000, CRC(dacefb6f) SHA1(789a5a99ad9419aee9da5397bcea34452ea8b4b3) )
5946 ROM_LOAD( "epr12125.a15", 0x10000, 0x10000, CRC(9fc36df7) SHA1(b39ccc687489e9781181197505fc78aa5cf7ea55) )
5947 ROM_LOAD( "epr12126.a16", 0x20000, 0x10000, CRC(a693fd94) SHA1(38e5446f41b6793a8e4134fdd92b02b86e3589f7) )
5948
5949 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
5950 ROM_LOAD16_BYTE( "epr12093.b4", 0x00001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
5951 ROM_LOAD16_BYTE( "epr12097.b8", 0x00000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
5952 ROM_LOAD16_BYTE( "epr12091.b2", 0x20001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
5953 ROM_LOAD16_BYTE( "epr12095.b6", 0x20000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
5954 ROM_LOAD16_BYTE( "epr12090.b1", 0x40001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
5955 ROM_LOAD16_BYTE( "epr12094.b5", 0x40000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
5956 ROM_LOAD16_BYTE( "epr12092.b3", 0x60001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
5957 ROM_LOAD16_BYTE( "epr12096.b7", 0x60000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
5958
5959 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
5960 ROM_LOAD( "epr12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
5961 ROM_END
5962
5963 ROM_START( wb3a )
5964 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */
5965 // Custom CPU 317-0089
5966 ROM_LOAD16_BYTE( "epr12137.a7", 0x000000, 0x20000, CRC(6f81238e) SHA1(b578165c1624f8a112e9eea098fb4551cc38faa1) )
5967 ROM_LOAD16_BYTE( "epr12136.a5", 0x000001, 0x20000, CRC(4cf05003) SHA1(bd4c64c327e53143aa94062f91946eda0a7146c2) )
5968
5969 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
5970 ROM_LOAD( "epr12124.a14", 0x00000, 0x10000, CRC(dacefb6f) SHA1(789a5a99ad9419aee9da5397bcea34452ea8b4b3) )
5971 ROM_LOAD( "epr12125.a15", 0x10000, 0x10000, CRC(9fc36df7) SHA1(b39ccc687489e9781181197505fc78aa5cf7ea55) )
5972 ROM_LOAD( "epr12126.a16", 0x20000, 0x10000, CRC(a693fd94) SHA1(38e5446f41b6793a8e4134fdd92b02b86e3589f7) )
5973
5974 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
5975 ROM_LOAD16_BYTE( "epr12093.b4", 0x00001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
5976 ROM_LOAD16_BYTE( "epr12097.b8", 0x00000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
5977 ROM_LOAD16_BYTE( "epr12091.b2", 0x20001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
5978 ROM_LOAD16_BYTE( "epr12095.b6", 0x20000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
5979 ROM_LOAD16_BYTE( "epr12090.b1", 0x40001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
5980 ROM_LOAD16_BYTE( "epr12094.b5", 0x40000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
5981 ROM_LOAD16_BYTE( "epr12092.b3", 0x60001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
5982 ROM_LOAD16_BYTE( "epr12096.b7", 0x60000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
5983
5984 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
5985 ROM_LOAD( "epr12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
5986 ROM_END
5987
5988 /***************************************************************************/
5989
5990 static MEMORY_READ16_START( wb3_readmem )
5991 { 0x000000, 0x03ffff, MRA16_ROM },
5992 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
5993 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
5994 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
5995 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
5996 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
5997 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
5998 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
5999 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
6000 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
6001 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
6002 MEMORY_END
6003
6004 static WRITE16_HANDLER( wb3_sound_command_w ){
6005 if( ACCESSING_MSB ) sound_command_w(offset,data>>8,0xff00); //*
6006 }
6007
MEMORY_WRITE16_START(wb3_writemem)6008 static MEMORY_WRITE16_START( wb3_writemem )
6009 { 0x000000, 0x03ffff, MWA16_ROM },
6010 { 0x3f0000, 0x3f0003, MWA16_NOP },
6011 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
6012 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
6013 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
6014 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
6015 { 0xc40000, 0xc40001, sys16_coinctrl_w },
6016 { 0xffc008, 0xffc009, wb3_sound_command_w },
6017 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
6018 MEMORY_END
6019
6020 /***************************************************************************/
6021
6022 static void wb3_update_proc( void ){
6023 set_fg_page( sys16_textram[0x740] );
6024 set_bg_page( sys16_textram[0x741] );
6025 sys16_fg_scrolly = sys16_textram[0x748];
6026 sys16_bg_scrolly = sys16_textram[0x749];
6027 sys16_fg_scrollx = sys16_textram[0x74c];
6028 sys16_bg_scrollx = sys16_textram[0x74d];
6029 }
6030
MACHINE_INIT(wb3)6031 static MACHINE_INIT( wb3 ){
6032 static int bank[16] = {
6033 2,0,
6034 1,0,
6035 3,0,
6036 0,3,
6037 0,0,
6038 0,2,
6039 0,1,
6040 0,0
6041 };
6042 sys16_obj_bank = bank;
6043 sys16_update_proc = wb3_update_proc;
6044 }
6045
DRIVER_INIT(wb3)6046 static DRIVER_INIT( wb3 ){
6047 machine_init_sys16_onetime();
6048 }
6049
6050 /***************************************************************************/
6051
INPUT_PORTS_START(wb3)6052 INPUT_PORTS_START( wb3 )
6053 SYS16_JOY1
6054 SYS16_JOY2
6055 SYS16_SERVICE
6056 SYS16_COINAGE
6057
6058 PORT_START /* DSW1 */
6059 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
6060 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
6061 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6062 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
6063 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
6064 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6065 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
6066 PORT_DIPSETTING( 0x00, "2" )
6067 PORT_DIPSETTING( 0x0c, "3" )
6068 PORT_DIPSETTING( 0x08, "4" )
6069 PORT_DIPSETTING( 0x04, "5" )
6070 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) //??
6071 PORT_DIPSETTING( 0x10, "5000/10000/18000/30000" )
6072 PORT_DIPSETTING( 0x00, "5000/15000/30000" )
6073 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
6074 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
6075 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6076 PORT_DIPNAME( 0x40, 0x40, "Allow Round Select" )
6077 PORT_DIPSETTING( 0x40, DEF_STR( No ) )
6078 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) // no collision though
6079 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) )
6080 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
6081 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6082 INPUT_PORTS_END
6083
6084 /***************************************************************************/
6085
6086 static MACHINE_DRIVER_START( wb3 )
6087
6088 /* basic machine hardware */
6089 MDRV_IMPORT_FROM(system16)
6090 MDRV_CPU_MODIFY("main")
6091 MDRV_CPU_MEMORY(wb3_readmem,wb3_writemem)
6092
6093 MDRV_MACHINE_INIT(wb3)
6094 MACHINE_DRIVER_END
6095
6096 /***************************************************************************/
6097 // sys16B
6098 ROM_START( wb3bl )
6099 ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */
6100 ROM_LOAD16_BYTE( "wb3_03", 0x000000, 0x10000, CRC(0019ab3b) SHA1(89d49a437690fa6e0c35bb9f1450042f89504714) )
6101 ROM_LOAD16_BYTE( "wb3_05", 0x000001, 0x10000, CRC(196e17ee) SHA1(71e4345b2c3d1612a3d424c9310fad1e23c8a9f7) )
6102 ROM_LOAD16_BYTE( "wb3_02", 0x020000, 0x10000, CRC(c87350cb) SHA1(55a8cb68d70b6060dd9a55e281e216ce3917ea5b) )
6103 ROM_LOAD16_BYTE( "wb3_04", 0x020001, 0x10000, CRC(565d5035) SHA1(e28a132f1a4ce9466945e231c54502178748af98) )
6104
6105 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6106 ROM_LOAD( "wb3_14", 0x00000, 0x10000, CRC(d3f20bca) SHA1(0a87f709f8e2a913473512ede408e2cbc535443f) )
6107 ROM_LOAD( "wb3_15", 0x10000, 0x10000, CRC(96ff9d52) SHA1(791a9da4860e0d42fba98f80a3c6725ad8c73e33) )
6108 ROM_LOAD( "wb3_16", 0x20000, 0x10000, CRC(afaf0d31) SHA1(d4309329a0a543250788146b63b27ff058c02fc3) )
6109
6110 ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */
6111 ROM_LOAD16_BYTE( "epr12093.b4", 0x000001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
6112 ROM_LOAD16_BYTE( "epr12097.b8", 0x000000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
6113 ROM_LOAD16_BYTE( "epr12091.b2", 0x020001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
6114 ROM_LOAD16_BYTE( "epr12095.b6", 0x020000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
6115 ROM_LOAD16_BYTE( "epr12090.b1", 0x040001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
6116 ROM_LOAD16_BYTE( "epr12094.b5", 0x040000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
6117 ROM_LOAD16_BYTE( "epr12092.b3", 0x060001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
6118 ROM_LOAD16_BYTE( "epr12096.b7", 0x060000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
6119
6120 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
6121 ROM_LOAD( "epr12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
6122 ROM_END
6123
6124 /***************************************************************************/
6125
6126 static MEMORY_READ16_START( wb3bl_readmem )
6127 { 0x000000, 0x03ffff, MRA16_ROM },
6128 { 0x400000, 0x40ffff, SYS16_MRA16_TILERAM },
6129 { 0x410000, 0x410fff, SYS16_MRA16_TEXTRAM },
6130 { 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
6131 { 0x840000, 0x840fff, SYS16_MRA16_PALETTERAM },
6132 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
6133 { 0xc41004, 0xc41005, input_port_1_word_r }, // player2
6134 { 0xc41000, 0xc41001, input_port_2_word_r }, // service
6135 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
6136 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
6137 { 0xc46000, 0xc4601f, SYS16_MRA16_EXTRAM3 },
6138 { 0xff0000, 0xffffff, SYS16_MRA16_WORKINGRAM },
6139 MEMORY_END
6140
6141 static MEMORY_WRITE16_START( wb3bl_writemem )
6142 { 0x000000, 0x03ffff, MWA16_ROM },
6143 { 0x3f0000, 0x3f0003, MWA16_NOP },
6144 { 0x400000, 0x40ffff, SYS16_MWA16_TILERAM },
6145 { 0x410000, 0x410fff, SYS16_MWA16_TEXTRAM },
6146 { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM },
6147 { 0x840000, 0x840fff, SYS16_MWA16_PALETTERAM },
6148 { 0xc42006, 0xc42007, sound_command_w },
6149 { 0xc40000, 0xc40001, sys16_coinctrl_w },
6150 { 0xc44000, 0xc44001, MWA16_NOP },
6151 { 0xc46000, 0xc4601f, SYS16_MWA16_EXTRAM3 },
6152 { 0xff0000, 0xffffff, SYS16_MWA16_WORKINGRAM },
6153 MEMORY_END
6154
6155 /***************************************************************************/
6156
6157 static void wb3bl_update_proc( void ){
6158 sys16_fg_scrollx = sys16_workingram[0xc030/2];
6159 sys16_bg_scrollx = sys16_workingram[0xc038/2];
6160 sys16_fg_scrolly = sys16_workingram[0xc032/2];
6161 sys16_bg_scrolly = sys16_workingram[0xc03c/2];
6162
6163 set_fg_page( sys16_textram[0x0ff6/2] );
6164 set_bg_page( sys16_textram[0x0ff4/2] );
6165 }
6166
MACHINE_INIT(wb3bl)6167 static MACHINE_INIT( wb3bl ){
6168 static int bank[16] = {
6169 2,0,
6170 1,0,
6171 3,0,
6172 0,3,
6173 0,0,
6174 0,2,
6175 0,1,
6176 0,0
6177 };
6178 sys16_obj_bank = bank;
6179
6180 sys16_patch_code( 0x17058, 0x4e );
6181 sys16_patch_code( 0x17059, 0xb9 );
6182 sys16_patch_code( 0x1705a, 0x00 );
6183 sys16_patch_code( 0x1705b, 0x00 );
6184 sys16_patch_code( 0x1705c, 0x09 );
6185 sys16_patch_code( 0x1705d, 0xdc );
6186 sys16_patch_code( 0x1705e, 0x4e );
6187 sys16_patch_code( 0x1705f, 0xf9 );
6188 sys16_patch_code( 0x17060, 0x00 );
6189 sys16_patch_code( 0x17061, 0x01 );
6190 sys16_patch_code( 0x17062, 0x70 );
6191 sys16_patch_code( 0x17063, 0xe0 );
6192 sys16_patch_code( 0x1a3a, 0x31 );
6193 sys16_patch_code( 0x1a3b, 0x7c );
6194 sys16_patch_code( 0x1a3c, 0x80 );
6195 sys16_patch_code( 0x1a3d, 0x00 );
6196 sys16_patch_code( 0x23df8, 0x14 );
6197 sys16_patch_code( 0x23df9, 0x41 );
6198 sys16_patch_code( 0x23dfa, 0x10 );
6199 sys16_patch_code( 0x23dfd, 0x14 );
6200 sys16_patch_code( 0x23dff, 0x1c );
6201
6202 sys16_update_proc = wb3bl_update_proc;
6203 }
6204
DRIVER_INIT(wb3bl)6205 static DRIVER_INIT( wb3bl )
6206 {
6207 int i;
6208
6209 machine_init_sys16_onetime();
6210
6211 /* invert the graphics bits on the tiles */
6212 for (i = 0; i < 0x30000; i++)
6213 memory_region(REGION_GFX1)[i] ^= 0xff;
6214 }
6215
6216 /***************************************************************************/
6217
6218 static MACHINE_DRIVER_START( wb3bl )
6219
6220 /* basic machine hardware */
MDRV_IMPORT_FROM(system16)6221 MDRV_IMPORT_FROM(system16)
6222 MDRV_CPU_MODIFY("main")
6223 MDRV_CPU_MEMORY(wb3bl_readmem,wb3bl_writemem)
6224
6225 MDRV_MACHINE_INIT(wb3bl)
6226 MACHINE_DRIVER_END
6227
6228 /***************************************************************************/
6229 // sys16B
6230 ROM_START( wrestwar )
6231 ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
6232 ROM_LOAD16_BYTE( "ww.a7", 0x00000, 0x20000, CRC(eeaba126) SHA1(ca1f630ff0cfc301205d2b8226d7614eadc117b7) )
6233 ROM_LOAD16_BYTE( "ww.a5", 0x00001, 0x20000, CRC(6714600a) SHA1(8b04347f39bb8a8bc52b1bbfa367d42ea7c61bc9) )
6234 /* empty 0x40000 - 0x80000 */
6235 ROM_LOAD16_BYTE( "ww.a8", 0x80000, 0x20000, CRC(b77ba665) SHA1(b6a01ca857b5127ebb763f18cd4123185a7765a6) )
6236 ROM_LOAD16_BYTE( "ww.a6", 0x80001, 0x20000, CRC(ddf075cb) SHA1(5d887f0d5786fa62757c593d937bba6f150c1b12) )
6237
6238 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6239 ROM_LOAD( "ww.a14", 0x00000, 0x20000, CRC(6a821ab9) SHA1(e69f7e534835d4c820746ffc3ad76c3b7bb9b02e) )
6240 ROM_LOAD( "ww.a15", 0x20000, 0x20000, CRC(2b1a0751) SHA1(8cb1027ef3728f5bdfdb5e2df0f0421f743cdc0a) )
6241 ROM_LOAD( "ww.a16", 0x40000, 0x20000, CRC(f6e190fe) SHA1(4c8b334fb22c449d8d00c8f49f5eccbe008e244f) )
6242
6243 ROM_REGION( 0x300000, REGION_GFX2, 0 ) //* sprites */
6244 ROM_LOAD16_BYTE( "ww.b1", 0x000001, 0x10000, CRC(ffa7d368) SHA1(e5663ef1cbe8ab27be0919a3cd78d9a7747bbac6) )
6245 ROM_CONTINUE( 0x040001, 0x10000 )
6246 ROM_RELOAD ( 0x020001, 0x10000 )
6247 ROM_CONTINUE( 0x060001, 0x10000 )
6248 ROM_LOAD16_BYTE( "ww.b5", 0x000000, 0x10000, CRC(8d7794c1) SHA1(ace87970cfa02ab8200173622633d0d70ef7aa9e) )
6249 ROM_CONTINUE( 0x040000, 0x10000 )
6250 ROM_RELOAD ( 0x020000, 0x10000 )
6251 ROM_CONTINUE( 0x060000, 0x10000 )
6252 ROM_LOAD16_BYTE( "ww.b2", 0x080001, 0x10000, CRC(0ed343f2) SHA1(951bd616e63c5fe0aa3f387c9c12153b4f29675f) )
6253 ROM_CONTINUE( 0x0c0001, 0x10000 )
6254 ROM_RELOAD ( 0x0a0001, 0x10000 )
6255 ROM_CONTINUE( 0x0e0001, 0x10000 )
6256 ROM_LOAD16_BYTE( "ww.b6", 0x080000, 0x10000, CRC(99458d58) SHA1(87020267610c5784e066bb4e3551852d27b4cf61) )
6257 ROM_CONTINUE( 0x0c0000, 0x10000 )
6258 ROM_RELOAD ( 0x0a0000, 0x10000 )
6259 ROM_CONTINUE( 0x0e0000, 0x10000 )
6260 ROM_LOAD16_BYTE( "ww.b3", 0x100001, 0x10000, CRC(3087104d) SHA1(9ad0ea2b580820443c576cbb95d57467e32ea7b5) )
6261 ROM_CONTINUE( 0x140001, 0x10000 )
6262 ROM_RELOAD ( 0x120001, 0x10000 )
6263 ROM_CONTINUE( 0x160001, 0x10000 )
6264 ROM_LOAD16_BYTE( "ww.b7", 0x100000, 0x10000, CRC(abcf9bed) SHA1(4f755cfd0304e877b798c31de50e15995f8c4edf) )
6265 ROM_CONTINUE( 0x140000, 0x10000 )
6266 ROM_RELOAD ( 0x120000, 0x10000 )
6267 ROM_CONTINUE( 0x160000, 0x10000 )
6268 ROM_LOAD16_BYTE( "ww.b4", 0x180001, 0x10000, CRC(41b6068b) SHA1(c1f1f51c4e0f4320cef7821bccac5b0c9e915d9b) )
6269 ROM_CONTINUE( 0x1c0001, 0x10000 )
6270 ROM_RELOAD ( 0x1a0001, 0x10000 )
6271 ROM_CONTINUE( 0x1e0001, 0x10000 )
6272 ROM_LOAD16_BYTE( "ww.b8", 0x180000, 0x10000, CRC(97eac164) SHA1(2bb62e6d8b2d662e9b31aa8d238a51af7c7905e8) )
6273 ROM_CONTINUE( 0x1c0000, 0x10000 )
6274 ROM_RELOAD ( 0x1a0000, 0x10000 )
6275 ROM_CONTINUE( 0x1e0000, 0x10000 )
6276 ROM_LOAD16_BYTE( "ww.a1", 0x200001, 0x10000, CRC(260311c5) SHA1(6b52b671252aef992c0546468c44b722bdb6a649) )
6277 ROM_CONTINUE( 0x240001, 0x10000 )
6278 ROM_RELOAD ( 0x220001, 0x10000 )
6279 ROM_CONTINUE( 0x260001, 0x10000 )
6280 ROM_LOAD16_BYTE( "ww.b10", 0x200000, 0x10000, CRC(35a4b1b1) SHA1(c3b8ba708f9f2822e48e52ea74d7e96f08182ac4) )
6281 ROM_CONTINUE( 0x240000, 0x10000 )
6282 ROM_RELOAD ( 0x220000, 0x10000 )
6283 ROM_CONTINUE( 0x260000, 0x10000 )
6284 ROM_LOAD16_BYTE( "ww.a2", 0x280001, 0x10000, CRC(12e38a5c) SHA1(05558a370b4e8100d2fa5e700a5ab76771ff7729) )
6285 ROM_RELOAD ( 0x2a0001, 0x10000 )
6286 ROM_LOAD16_BYTE( "ww.b11", 0x280000, 0x10000, CRC(fa06fd24) SHA1(20a578b82a75fe96a230c91645108fdc8b5bae21) )
6287 ROM_RELOAD ( 0x2a0000, 0x10000 )
6288
6289 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
6290 ROM_LOAD( "ww.a10", 0x00000, 0x08000, CRC(c3609607) SHA1(2e0acb775c60851bf0b2037b91b07ead061d5862) )
6291 ROM_LOAD( "ww.a11", 0x10000, 0x20000, CRC(fb9a7f29) SHA1(7ba79c18ab4e586be2deccd78e4479d55eb75a7e) )
6292 ROM_LOAD( "ww.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) )
6293 ROM_END
6294
6295 /***************************************************************************/
6296
6297 static READ16_HANDLER( ww_io_service_r ){
6298 return input_port_2_word_r(offset,0) | (sys16_workingram[0x2082/2] & 0xff00);
6299 }
6300
MEMORY_READ16_START(wrestwar_readmem)6301 static MEMORY_READ16_START( wrestwar_readmem )
6302 { 0x000000, 0x0bffff, MRA16_ROM },
6303 { 0x100000, 0x10ffff, SYS16_MRA16_TILERAM },
6304 { 0x110000, 0x111fff, SYS16_MRA16_TEXTRAM }, //*
6305 { 0x200000, 0x200fff, SYS16_MRA16_SPRITERAM },
6306 { 0x300000, 0x300fff, SYS16_MRA16_PALETTERAM },
6307 { 0x400000, 0x400003, SYS16_MRA16_EXTRAM },
6308 { 0xc41002, 0xc41003, input_port_0_word_r }, // player1
6309 { 0xc41006, 0xc41007, input_port_1_word_r }, // player2
6310 { 0xc42002, 0xc42003, input_port_3_word_r }, // dip1
6311 { 0xc42000, 0xc42001, input_port_4_word_r }, // dip2
6312 { 0xffe082, 0xffe083, ww_io_service_r },
6313 { 0xffc000, 0xffffff, SYS16_MRA16_WORKINGRAM },
6314 MEMORY_END
6315
6316 static MEMORY_WRITE16_START( wrestwar_writemem )
6317 { 0x000000, 0x0bffff, MWA16_ROM },
6318 { 0x100000, 0x10ffff, SYS16_MWA16_TILERAM },
6319 { 0x110000, 0x111fff, SYS16_MWA16_TEXTRAM },
6320 { 0x200000, 0x200fff, SYS16_MWA16_SPRITERAM },
6321 { 0x300000, 0x300fff, SYS16_MWA16_PALETTERAM },
6322 { 0x400000, 0x400003, SYS16_MWA16_EXTRAM },
6323 { 0xc40000, 0xc40001, sys16_coinctrl_w },
6324 { 0xc43034, 0xc43035, MWA16_NOP },
6325 { 0xffe08e, 0xffe08f, sound_command_w },
6326 { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM },
6327 MEMORY_END
6328
6329 /***************************************************************************/
6330
6331 static void wrestwar_update_proc( void ){
6332 set_fg_page( sys16_textram[0x740] );
6333 set_bg_page( sys16_textram[0x741] );
6334 sys16_fg_scrolly = sys16_textram[0x748];
6335 sys16_bg_scrolly = sys16_textram[0x749];
6336 sys16_fg_scrollx = sys16_textram[0x74c];
6337 sys16_bg_scrollx = sys16_textram[0x74d];
6338
6339 set_tile_bank( sys16_extraram[1] );
6340 }
6341
MACHINE_INIT(wrestwar)6342 static MACHINE_INIT( wrestwar ){
6343 sys16_bg_priority_mode=2;
6344 sys16_bg_priority_value=0x0a00;
6345 sys16_update_proc = wrestwar_update_proc;
6346 sys16_wwfix = 1; //*
6347 }
6348
DRIVER_INIT(wrestwar)6349 static DRIVER_INIT( wrestwar ){
6350 machine_init_sys16_onetime();
6351 sys16_bg1_trans=1;
6352 sys16_MaxShadowColors=16;
6353 sys18_splittab_bg_y=&sys16_textram[0x0f40];
6354 sys18_splittab_fg_y=&sys16_textram[0x0f00];
6355 sys16_rowscroll_scroll=0x8000;
6356 }
6357 /***************************************************************************/
6358
INPUT_PORTS_START(wrestwar)6359 INPUT_PORTS_START( wrestwar )
6360 SYS16_JOY1
6361 SYS16_JOY2
6362 SYS16_SERVICE
6363 SYS16_COINAGE
6364
6365 PORT_START /* DSW1 */
6366 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
6367 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
6368 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6369 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
6370 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
6371 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6372 PORT_DIPNAME( 0x0c, 0x0c, "Round Time" )
6373 PORT_DIPSETTING( 0x00, "100" )
6374 PORT_DIPSETTING( 0x0c, "110" )
6375 PORT_DIPSETTING( 0x08, "120" )
6376 PORT_DIPSETTING( 0x04, "130" )
6377 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
6378 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
6379 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
6380 PORT_DIPNAME( 0x20, 0x20, "Continuation" )
6381 PORT_DIPSETTING( 0x20, "Continue" )
6382 PORT_DIPSETTING( 0x00, "No Continue" )
6383 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
6384 PORT_DIPSETTING( 0x80, "Easy" )
6385 PORT_DIPSETTING( 0xc0, "Normal" )
6386 PORT_DIPSETTING( 0x40, "Hard" )
6387 PORT_DIPSETTING( 0x00, "Hardest" )
6388
6389 INPUT_PORTS_END
6390
6391 /***************************************************************************/
6392
6393 static MACHINE_DRIVER_START( wrestwar )
6394
6395 /* basic machine hardware */
6396 MDRV_IMPORT_FROM(system16_7759)
6397 MDRV_CPU_MODIFY("main")
6398 MDRV_CPU_MEMORY(wrestwar_readmem,wrestwar_writemem)
6399
6400 MDRV_MACHINE_INIT(wrestwar)
6401 MACHINE_DRIVER_END
6402
6403 /*****************************************************************************/
6404 /* Dummy drivers for games that don't have a working clone and are protected */
6405 /*****************************************************************************/
6406
6407 static MEMORY_READ16_START( sys16_dummy_readmem )
6408 { 0x000000, 0x0fffff, MRA16_ROM },
6409 { 0xff0000, 0xffffff, SYS16_MRA16_WORKINGRAM },
6410 MEMORY_END
6411
6412 static MEMORY_WRITE16_START( sys16_dummy_writemem )
6413 { 0x000000, 0x0fffff, MWA16_ROM },
6414 { 0xff0000, 0xffffff, SYS16_MWA16_WORKINGRAM },
6415 MEMORY_END
6416
6417 static MACHINE_INIT( sys16_dummy ){
6418 }
6419
DRIVER_INIT(s16dummy)6420 static DRIVER_INIT( s16dummy )
6421 {
6422 machine_init_sys16_onetime();
6423 }
6424
6425 INPUT_PORTS_START( s16dummy )
6426 INPUT_PORTS_END
6427
6428 static MACHINE_DRIVER_START( s16dummy )
6429
6430 /* basic machine hardware */
6431 MDRV_IMPORT_FROM(system16)
6432 MDRV_CPU_MODIFY("main")
6433 MDRV_CPU_MEMORY(sys16_dummy_readmem,sys16_dummy_writemem)
6434
6435 MDRV_MACHINE_INIT(sys16_dummy)
6436 MACHINE_DRIVER_END
6437
6438 /*****************************************************************************/
6439 // Cotton
6440
6441 ROM_START( cotton )
6442 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6443 // custom cpu 317-?????
6444 ROM_LOAD16_BYTE( "epr13858.a7", 0x000000, 0x20000, CRC(276f42fe) SHA1(47d2f910f6f101628cb0c660e5fd12c0e331bd99) )
6445 ROM_LOAD16_BYTE( "epr13856.a5", 0x000001, 0x20000, CRC(14e6b5e7) SHA1(708c69cddd1c60e729a74f539d40e67b2a6d9d6f) )
6446 ROM_LOAD16_BYTE( "epr13859.a8", 0x040000, 0x20000, CRC(4703ef9d) SHA1(8b03a71736a599c337ad5d95cbc812ea38b0cc43) )
6447 ROM_LOAD16_BYTE( "epr13857.a6", 0x040001, 0x20000, CRC(de37e527) SHA1(124ce7c7eef1199c89735556cebf71255573a155) )
6448
6449 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6450 ROM_LOAD( "scr01.rom", 0x00000, 0x20000, CRC(a47354b6) SHA1(ce52813b245f1d491a134d4bd5ab074e71d20129) )
6451 ROM_LOAD( "scr11.rom", 0x20000, 0x20000, CRC(d38424b5) SHA1(884ca190936aee2d2cac86491d4d0cdf4a45efe5) )
6452 ROM_LOAD( "scr02.rom", 0x40000, 0x20000, CRC(8c990026) SHA1(07b4510936376c171f3b31d87ac6154361eb0cbc) )
6453 ROM_LOAD( "scr12.rom", 0x60000, 0x20000, CRC(21c15b8a) SHA1(690d92420ec5465885e0f4870419992961420e33) )
6454 ROM_LOAD( "scr03.rom", 0x80000, 0x20000, CRC(d2b175bf) SHA1(897b7c794d0e7229ea5e9a682f64266a947a818f) )
6455 ROM_LOAD( "scr13.rom", 0xa0000, 0x20000, CRC(b9d62531) SHA1(e8c5e7b93339c00f75a3b66ce18f7838255577be) )
6456
6457 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
6458 ROM_LOAD16_BYTE( "obj0-e.rom", 0x000001, 0x20000, CRC(ab4b3468) SHA1(3071654a295152d609d2c2c1d4153b5ba3f174d5) )
6459 ROM_LOAD16_BYTE( "obj0-o.rom", 0x000000, 0x20000, CRC(7024f404) SHA1(4b2f9cdfdd97218797a3e386106e53f713b8650d) )
6460 ROM_LOAD16_BYTE( "obj1-e.rom", 0x040001, 0x20000, CRC(69b41ac3) SHA1(4c5a85e5a5ca9f8260557d4e97eb091dd857d63a) )
6461 ROM_LOAD16_BYTE( "obj1-o.rom", 0x040000, 0x20000, CRC(6169bba4) SHA1(a24a418ee7cd0c1109870a2e7a91e430671897ed) )
6462 ROM_LOAD16_BYTE( "obj2-e.rom", 0x080001, 0x20000, CRC(0801cf02) SHA1(3007bbbce2f327f4700e78e2b8672f4482189cd7) )
6463 ROM_LOAD16_BYTE( "obj2-o.rom", 0x080000, 0x20000, CRC(b014f02d) SHA1(46f5ed0b44cee03a6aec9ec57b506bb15bf35e47) )
6464 ROM_LOAD16_BYTE( "obj3-e.rom", 0x0c0001, 0x20000, CRC(f066f315) SHA1(bbeb24daaded994240d0cdb5cec2e662b677cb75) )
6465 ROM_LOAD16_BYTE( "obj3-o.rom", 0x0c0000, 0x20000, CRC(e62a7cd6) SHA1(1e6d06345f7b6cef2e887d9b9cd45e0155140c5e) )
6466 ROM_LOAD16_BYTE( "obj4-e.rom", 0x100001, 0x20000, CRC(1bd145f3) SHA1(4744ffe9fbda453785345b46eb61b56730048f42) )
6467 ROM_LOAD16_BYTE( "obj4-o.rom", 0x100000, 0x20000, CRC(943aba8b) SHA1(d0dd1665a8d9495a92ae4e35d6b15b966e8d43cd) )
6468 ROM_LOAD16_BYTE( "obj5-e.rom", 0x140001, 0x20000, CRC(4fd59bff) SHA1(2b4630e49b60593d668fe34d8faf712ac6928c14) )
6469 ROM_LOAD16_BYTE( "obj5-o.rom", 0x140000, 0x20000, CRC(7ea93200) SHA1(8e2d8cd48a12306772653f25bddc99ad0597a698) )
6470 ROM_LOAD16_BYTE( "obj6-e.rom", 0x180001, 0x20000, CRC(6a66868d) SHA1(60961a8b1f193d0b08c1906f4a79123fa0db443a) )
6471 ROM_LOAD16_BYTE( "obj6-o.rom", 0x180000, 0x20000, CRC(1c942190) SHA1(514fac5cc7362e9e3168c84975c8fe0e34bb4471) )
6472 ROM_LOAD16_BYTE( "obj7-e.rom", 0x1c0001, 0x20000, CRC(1c5ffad8) SHA1(13e5886ceece564cc71ba7f43a26d2b1782ccfc8) )
6473 ROM_LOAD16_BYTE( "obj7-o.rom", 0x1c0000, 0x20000, CRC(856f3ee2) SHA1(72346d887ff9738ebe93acb2e3f8cd80d494621e) )
6474
6475 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
6476 ROM_LOAD( "s-prog.rom", 0x00000, 0x08000, CRC(6a57b027) SHA1(8f9de548df203605bb4ab9eececf09739b55adf1) )
6477 ROM_LOAD( "speech0.rom", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
6478 ROM_END
6479
6480
6481 ROM_START( cottona )
6482 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6483 // custom cpu 317-0181a
6484 ROM_LOAD16_BYTE( "ep13921a.a7", 0x000000, 0x20000, CRC(f047a037) SHA1(e4a9eeb1f2cf6b5ee3b2fcf74be917ffd3e6ca0e) )
6485 ROM_LOAD16_BYTE( "ep13919a.a5", 0x000001, 0x20000, CRC(651108b1) SHA1(1ab32085ca1a8cb3d464059b0abb10253decd423) )
6486 ROM_LOAD16_BYTE( "ep13922a.a8", 0x040000, 0x20000, CRC(1ca248c5) SHA1(f7df2ccf54a3f1f09334c3b3df3dcd2ec33f99d1) )
6487 ROM_LOAD16_BYTE( "ep13920a.a6", 0x040001, 0x20000, CRC(fa3610f9) SHA1(6127496bf7cd47d4343291fc2e11673d77ccc550) )
6488
6489 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6490 ROM_LOAD( "scr01.rom", 0x00000, 0x20000, CRC(a47354b6) SHA1(ce52813b245f1d491a134d4bd5ab074e71d20129) )
6491 ROM_LOAD( "scr11.rom", 0x20000, 0x20000, CRC(d38424b5) SHA1(884ca190936aee2d2cac86491d4d0cdf4a45efe5) )
6492 ROM_LOAD( "scr02.rom", 0x40000, 0x20000, CRC(8c990026) SHA1(07b4510936376c171f3b31d87ac6154361eb0cbc) )
6493 ROM_LOAD( "scr12.rom", 0x60000, 0x20000, CRC(21c15b8a) SHA1(690d92420ec5465885e0f4870419992961420e33) )
6494 ROM_LOAD( "scr03.rom", 0x80000, 0x20000, CRC(d2b175bf) SHA1(897b7c794d0e7229ea5e9a682f64266a947a818f) )
6495 ROM_LOAD( "scr13.rom", 0xa0000, 0x20000, CRC(b9d62531) SHA1(e8c5e7b93339c00f75a3b66ce18f7838255577be) )
6496
6497 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
6498 ROM_LOAD16_BYTE( "obj0-e.rom", 0x000001, 0x20000, CRC(ab4b3468) SHA1(3071654a295152d609d2c2c1d4153b5ba3f174d5) )
6499 ROM_LOAD16_BYTE( "obj0-o.rom", 0x000000, 0x20000, CRC(7024f404) SHA1(4b2f9cdfdd97218797a3e386106e53f713b8650d) )
6500 ROM_LOAD16_BYTE( "obj1-e.rom", 0x040001, 0x20000, CRC(69b41ac3) SHA1(4c5a85e5a5ca9f8260557d4e97eb091dd857d63a) )
6501 ROM_LOAD16_BYTE( "obj1-o.rom", 0x040000, 0x20000, CRC(6169bba4) SHA1(a24a418ee7cd0c1109870a2e7a91e430671897ed) )
6502 ROM_LOAD16_BYTE( "obj2-e.rom", 0x080001, 0x20000, CRC(0801cf02) SHA1(3007bbbce2f327f4700e78e2b8672f4482189cd7) )
6503 ROM_LOAD16_BYTE( "obj2-o.rom", 0x080000, 0x20000, CRC(b014f02d) SHA1(46f5ed0b44cee03a6aec9ec57b506bb15bf35e47) )
6504 ROM_LOAD16_BYTE( "obj3-e.rom", 0x0c0001, 0x20000, CRC(f066f315) SHA1(bbeb24daaded994240d0cdb5cec2e662b677cb75) )
6505 ROM_LOAD16_BYTE( "obj3-o.rom", 0x0c0000, 0x20000, CRC(e62a7cd6) SHA1(1e6d06345f7b6cef2e887d9b9cd45e0155140c5e) )
6506 ROM_LOAD16_BYTE( "obj4-e.rom", 0x100001, 0x20000, CRC(1bd145f3) SHA1(4744ffe9fbda453785345b46eb61b56730048f42) )
6507 ROM_LOAD16_BYTE( "obj4-o.rom", 0x100000, 0x20000, CRC(943aba8b) SHA1(d0dd1665a8d9495a92ae4e35d6b15b966e8d43cd) )
6508 ROM_LOAD16_BYTE( "obj5-e.rom", 0x140001, 0x20000, CRC(4fd59bff) SHA1(2b4630e49b60593d668fe34d8faf712ac6928c14) )
6509 ROM_LOAD16_BYTE( "obj5-o.rom", 0x140000, 0x20000, CRC(7ea93200) SHA1(8e2d8cd48a12306772653f25bddc99ad0597a698) )
6510 ROM_LOAD16_BYTE( "obj6-e.rom", 0x180001, 0x20000, CRC(6a66868d) SHA1(60961a8b1f193d0b08c1906f4a79123fa0db443a) )
6511 ROM_LOAD16_BYTE( "obj6-o.rom", 0x180000, 0x20000, CRC(1c942190) SHA1(514fac5cc7362e9e3168c84975c8fe0e34bb4471) )
6512 ROM_LOAD16_BYTE( "obj7-e.rom", 0x1c0001, 0x20000, CRC(1c5ffad8) SHA1(13e5886ceece564cc71ba7f43a26d2b1782ccfc8) )
6513 ROM_LOAD16_BYTE( "obj7-o.rom", 0x1c0000, 0x20000, CRC(856f3ee2) SHA1(72346d887ff9738ebe93acb2e3f8cd80d494621e) )
6514
6515 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
6516 ROM_LOAD( "s-prog.rom", 0x00000, 0x08000, CRC(6a57b027) SHA1(8f9de548df203605bb4ab9eececf09739b55adf1) )
6517 ROM_LOAD( "speech0.rom", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
6518 ROM_END
6519
6520
6521 /*****************************************************************************/
6522 // Dunk Shot
6523
6524 ROM_START( dunkshot )
6525 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6526 ROM_LOAD16_BYTE( "10468.bin", 0x000000, 0x8000, CRC(e2d5f97a) SHA1(bf7b4a029580633fee65be89d5c9c83ff76a8484) )
6527 ROM_LOAD16_BYTE( "10467.bin", 0x000001, 0x8000, CRC(29774114) SHA1(3a88739213afd4ef7807ddbd3acdfddeb9636fd3) )
6528 ROM_LOAD16_BYTE( "10470.bin", 0x010000, 0x8000, CRC(8c60761f) SHA1(aba009f482df7023b460ab20e50225ab5f6dff6d) )
6529 ROM_LOAD16_BYTE( "10469.bin", 0x010001, 0x8000, CRC(aa442b81) SHA1(24f455bc59147ccd948fd89e2048a118b5591d84) )
6530 ROM_LOAD16_BYTE( "10472.bin", 0x020000, 0x8000, CRC(206027a6) SHA1(2b7d4754639d7023bc00f5e0fe9de4d2a971e487) )
6531 ROM_LOAD16_BYTE( "10471.bin", 0x020001, 0x8000, CRC(22777314) SHA1(fbc35505a94c8d4bdb44ee058e9e2e9e9b377c5c) )
6532
6533 ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6534 ROM_LOAD( "10485.bin", 0x00000, 0x8000, CRC(f16dda29) SHA1(88f3aa5e6f827e124c5bba0978a6ccfde8cb6fe7) )
6535 ROM_LOAD( "10486.bin", 0x08000, 0x8000, CRC(311d973c) SHA1(c4765917ba788ed45a801499f3d873a86c418eb8) )
6536 ROM_LOAD( "10487.bin", 0x10000, 0x8000, CRC(a8fb179f) SHA1(8a748d537b3d327c41d6dac17342de9be068e53b) )
6537
6538 ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* sprites */
6539 ROM_LOAD16_BYTE( "10481.bin", 0x00001, 0x8000, CRC(feb04bc9) SHA1(233dc8e3b887a88ac114723d58a909a58f0ae771) )
6540 ROM_LOAD16_BYTE( "10477.bin", 0x00000, 0x8000, CRC(f9d3b2cb) SHA1(b530fe16882c718122bfd1de098f39e54993de28) )
6541 ROM_LOAD16_BYTE( "10482.bin", 0x10001, 0x8000, CRC(5bc07618) SHA1(f4c88f81b407d467f958181770ea4fd32aab3daf) )
6542 ROM_LOAD16_BYTE( "10478.bin", 0x10000, 0x8000, CRC(5b5c5c92) SHA1(1c6f1cafa0788678c80ade11560f4a8d8bb7272a) )
6543 ROM_LOAD16_BYTE( "10483.bin", 0x20001, 0x8000, CRC(7cab4f9e) SHA1(2310a9fe604f78d74d84bea301c95e6f0e6a6085) )
6544 ROM_LOAD16_BYTE( "10479.bin", 0x20000, 0x8000, CRC(e84190a0) SHA1(23a8799adf81e1884a8c6b4c55397b8bca2f1850) )
6545 ROM_LOAD16_BYTE( "10484.bin", 0x30001, 0x8000, CRC(bcb5fcc9) SHA1(eb8d557c908e6265f96a5a7e832e19776a9e576c) )
6546 ROM_LOAD16_BYTE( "10480.bin", 0x30000, 0x8000, CRC(5dffd9dd) SHA1(256b24613c952d89dbb9971c9091d5a8a7f363b0) )
6547
6548 ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */
6549 ROM_LOAD( "10473.bin", 0x00000, 0x08000, CRC(7f1f5a27) SHA1(7ff91b95c883b395ab4ff5e440d78e553a09e623) )
6550 ROM_LOAD( "10474.bin", 0x10000, 0x08000, CRC(419a656e) SHA1(aa734ae835761badeb069f99acc5fded2a19b3a3) )
6551 ROM_LOAD( "10475.bin", 0x18000, 0x08000, CRC(17d55e85) SHA1(0c414bafecbfaa82679cc155f15f5255c186358d) )
6552 ROM_LOAD( "10476.bin", 0x20000, 0x08000, CRC(a6be0956) SHA1(fc4d6e25e0b46679f94fddbb1850fb0b02f8d84b) )
6553 ROM_END
6554
6555 /*****************************************************************************/
6556 // MVP
6557
6558 ROM_START( mvp )
6559 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6560 ROM_LOAD16_BYTE( "13000.rom", 0x000000, 0x40000, CRC(2e0e21ec) SHA1(3b72da0746fb0ece4311d6e935bc6b9ece3549ec) )
6561 ROM_LOAD16_BYTE( "12999.rom", 0x000001, 0x40000, CRC(fd213d28) SHA1(5324ee402a2f28a6c152905493da0052d4976b29) )
6562
6563 ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6564 ROM_LOAD( "13011.rom", 0x00000, 0x40000, CRC(1cb871fc) SHA1(d20a46e538d57b25d78faa7deb9c11519b4111d3) )
6565 ROM_LOAD( "13012.rom", 0x40000, 0x40000, CRC(b75e6821) SHA1(a2b049995755d79a136a4b4b0dc78d902c5b9eed) )
6566 ROM_LOAD( "13013.rom", 0x80000, 0x40000, CRC(f1944a3c) SHA1(db59cadb435c26f3a957bd4996a083fa30c8bbd0) )
6567
6568 ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* sprites */
6569 ROM_LOAD16_BYTE( "13010.rom", 0x000001, 0x40000, CRC(df37c567) SHA1(05c959e379a3e20fe5e70912410e3bae4db13905) )
6570 ROM_LOAD16_BYTE( "13009.rom", 0x000000, 0x40000, CRC(126d2e37) SHA1(91317d3bcc4f918a8607cc0c383181c3641ebccf) )
6571 ROM_LOAD16_BYTE( "13006.rom", 0x080001, 0x40000, CRC(2e9afd2f) SHA1(7fe0929e70e061878065fab2d26309066d14c038) )
6572 ROM_LOAD16_BYTE( "13003.rom", 0x080000, 0x40000, CRC(21424151) SHA1(156e15eee9ff7122c30a42bfec0b307073b7a375) )
6573 ROM_LOAD16_BYTE( "13007.rom", 0x100001, 0x40000, CRC(55c8605b) SHA1(6c81e5f9bcd61f6e67c87ea5b25a8fe1ee50f14d) )
6574 ROM_LOAD16_BYTE( "13004.rom", 0x100000, 0x40000, CRC(0aa09dd3) SHA1(0cd58d29efa714e52c494ee1ec8a0e90c0a03e3c) )
6575 ROM_LOAD16_BYTE( "13008.rom", 0x180001, 0x40000, CRC(b3d46dfc) SHA1(27a5c58d5fd974fbbb12b535a49aa7fb3f7d3f6a) )
6576 ROM_LOAD16_BYTE( "13005.rom", 0x180000, 0x40000, CRC(c899c810) SHA1(a251cfd8f99f2c2f98585cc9ba1d86f08b2eca51) )
6577
6578 ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
6579 ROM_LOAD( "13002.rom", 0x00000, 0x08000, CRC(1b6e1515) SHA1(1816d48dcb1bfd819a2cfa55fb51e1ca04ad4feb) )
6580 ROM_LOAD( "13001.rom", 0x10000, 0x40000, CRC(e8cace8c) SHA1(5f47b935d927f2aa5f7a5f6dc52f5380baebe1bb) )
6581 ROM_END
6582
6583 /*****************************************************************************/
6584 // Excite League
6585
6586 ROM_START( exctleag )
6587 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6588 ROM_LOAD16_BYTE( "epr11937.a02",0x00000,0x10000, CRC(4ebda367) SHA1(ab4db50eb0d2e10a3b4b7fc0f4bdc82412379809) )
6589 ROM_LOAD16_BYTE( "epr11936.a01",0x00001,0x10000, CRC(0863de60) SHA1(540a5cae2623bce296c07603239f737a782e3b0b) )
6590 ROM_LOAD16_BYTE( "epr11939.a04",0x20000,0x10000, CRC(117dd98f) SHA1(0234c2cf3421849854bec3711ab64f50f12cc5dd) )
6591 ROM_LOAD16_BYTE( "epr11938.a03",0x20001,0x10000, CRC(07c08d47) SHA1(47d3445cfa2514918206cd29a203837a9f434b42) )
6592 ROM_LOAD16_BYTE( "epr11941.a06",0x40000,0x10000, CRC(4df2d451) SHA1(644541b20e034a0149117874021c158bd3759e35) )
6593 ROM_LOAD16_BYTE( "epr11940.a05",0x40001,0x10000, CRC(dec83274) SHA1(85919bcd372fbfb9f06c34897b4d28d08ef3c9d1) )
6594
6595 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6596 ROM_LOAD( "epr11942.b09",0x00000,0x10000, CRC(eb70e827) SHA1(0617b4411a90087c277354c3653fe994bc4fc580) )
6597 ROM_LOAD( "epr11943.b10",0x10000,0x10000, CRC(d97c8982) SHA1(3e604af1771caba3aa213796c4a0812a5e352580) )
6598 ROM_LOAD( "epr11944.b11",0x20000,0x10000, CRC(a75cae80) SHA1(17c148a33b09b5403e68f5d96e506545c2ced206) )
6599
6600 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
6601 ROM_LOAD16_BYTE( "epr11950.b01",0x00001,0x10000, CRC(af497849) SHA1(c5fdca8d3b1d83e3d377a49ecdc0fc53714afc09) )
6602 ROM_LOAD16_BYTE( "epr11951.b02",0x00000,0x10000, CRC(c04fa974) SHA1(b1a4fb8522126113d7857d559f169f09c5f51a13) )
6603 ROM_LOAD16_BYTE( "epr11952.b03",0x20001,0x10000, CRC(e64a9761) SHA1(e16b3a30165710abc11ab0f358cb7ef875cc672c) )
6604 ROM_LOAD16_BYTE( "epr11953.b04",0x20000,0x10000, CRC(4cae3999) SHA1(22089e43a5e2e4fe672015366154e24ad38d3c19) )
6605 ROM_LOAD16_BYTE( "epr11954.b05",0x40001,0x10000, CRC(5fa2106c) SHA1(2f2620fa52d07667dff4720fea32a6615d99e522) )
6606 ROM_LOAD16_BYTE( "epr11955.b06",0x40000,0x10000, CRC(86a0c368) SHA1(ab8d6ab5c571121bf9c5d40727b1ef385a033845) )
6607 ROM_LOAD16_BYTE( "epr11956.b07",0x60001,0x10000, CRC(aff5c2fa) SHA1(1ec76193f2abf3547fa610761147436548beccbc) )
6608 ROM_LOAD16_BYTE( "epr11957.b08",0x60000,0x10000, CRC(218f835b) SHA1(bfef3ec45665a5921c095da34701528d4d4e0e3a) )
6609
6610 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
6611 ROM_LOAD( "epr11945.a07",0x00000,0x8000, CRC(c2a83012) SHA1(b3de8af803497438aa3e110a9c608ac290f7d1e8) )
6612 ROM_LOAD( "epr11140.a08",0x10000,0x8000, CRC(b297371b) SHA1(4e787aa9ee2aeab4da30237644421df407b684a5) )
6613 ROM_LOAD( "epr11141.a09",0x18000,0x8000, CRC(19756aa6) SHA1(81597e17b848f6a41f5fb117296e7508297815e4) )
6614 ROM_LOAD( "epr11142.a10",0x20000,0x8000, CRC(25d26c66) SHA1(2485afb859f84a9cc90b2091e9ae4eef263f42b3) )
6615 ROM_LOAD( "epr11143.a11",0x28000,0x8000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) )
6616
6617 ROM_END
6618
6619
6620
6621 /*****************************************************************************/
6622 // Super League
6623
6624 ROM_START( suprleag )
6625 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6626 ROM_LOAD16_BYTE( "epr11131.a02",0x00000,0x10000, CRC(9b78c2cc) SHA1(9a453dd999120590c52b17f8ff2b49fd2fde0b35) )
6627 ROM_LOAD16_BYTE( "epr11130.a01",0x00001,0x10000, CRC(e2451676) SHA1(d2f71d9fca933e63e2bd5ee48217801ab0cb049c) )
6628 ROM_LOAD16_BYTE( "epr11133.a04",0x20000,0x10000, CRC(eed72f37) SHA1(80b68abdb90a63b30754dd031e85b1020dcc0cc4) )
6629 ROM_LOAD16_BYTE( "epr11132.a03",0x20001,0x10000, CRC(ff199325) SHA1(2ece15b6b79ec3f948f7bec623e1df281cf89382) )
6630 ROM_LOAD16_BYTE( "epr11135.a06",0x40000,0x10000, CRC(3735e0e1) SHA1(ae2910099909245993ee29e5a03a5591f20962c7) )
6631 ROM_LOAD16_BYTE( "epr11134.a05",0x40001,0x10000, CRC(ccd857f5) SHA1(2566bb458bdd365db403e8229ecdad79e23076a1) )
6632
6633 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6634 ROM_LOAD( "epr11136.b09",0x00000,0x10000, CRC(c3860ce4) SHA1(af7618f3b5a0e8d6374877c7815ba69fff218a45) )
6635 ROM_LOAD( "epr11137.b10",0x10000,0x10000, CRC(92d96187) SHA1(45138795992b9842d5b0c86a96b300445bf12060) )
6636 ROM_LOAD( "epr11138.b11",0x20000,0x10000, CRC(c01dc773) SHA1(b27da906186e1272cdd6f8d5e5a979f6623255ac) )
6637
6638 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
6639 ROM_LOAD16_BYTE( "epr11144.b01",0x00001,0x10000, CRC(b31de51c) SHA1(011a79a37d32ab4545187e28e61f27aa0601f686) )
6640 ROM_LOAD16_BYTE( "epr11145.b02",0x00000,0x10000, CRC(4223d2c3) SHA1(310d5c411eeaf69fe0dc9350e6bfe6dfe950b373) )
6641 ROM_LOAD16_BYTE( "epr11146.b03",0x20001,0x10000, CRC(bf0359b6) SHA1(6cd5e6b685e53f062d5b04888f225c808aab3c4c) )
6642 ROM_LOAD16_BYTE( "epr11147.b04",0x20000,0x10000, CRC(3e592772) SHA1(b0fe2c680871dcdbe655c0b1b98bcf8118fb3a50) )
6643 ROM_LOAD16_BYTE( "epr11148.b05",0x40001,0x10000, CRC(126e1309) SHA1(7386ac5ac57325d8f661caf8cab0b19a42c0309d) )
6644 ROM_LOAD16_BYTE( "epr11149.b06",0x40000,0x10000, CRC(694d3765) SHA1(4aa8590648d5b8eb5db489edefb1326ecd01ea2c) )
6645 ROM_LOAD16_BYTE( "epr11150.b07",0x60001,0x10000, CRC(9fc0aded) SHA1(7ad9e8fe79a0a07c748b0c20ad46c0e00de8a23a) )
6646 ROM_LOAD16_BYTE( "epr11151.b08",0x60000,0x10000, CRC(9de95169) SHA1(1a2801ecd9dece3dae7ceab3b793d5005caa4614) )
6647
6648 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
6649 ROM_LOAD( "epr11139.a07",0x00000,0x08000, CRC(9cbd99da) SHA1(55960b68b23a4f89ec810e1d31f22ba60cda0cfe) )
6650 ROM_LOAD( "epr11140.a08",0x10000,0x08000, CRC(b297371b) SHA1(4e787aa9ee2aeab4da30237644421df407b684a5) )
6651 ROM_LOAD( "epr11141.a09",0x18000,0x08000, CRC(19756aa6) SHA1(81597e17b848f6a41f5fb117296e7508297815e4) )
6652 ROM_LOAD( "epr11142.a10",0x20000,0x08000, CRC(25d26c66) SHA1(2485afb859f84a9cc90b2091e9ae4eef263f42b3) )
6653 ROM_LOAD( "epr11143.a11",0x28000,0x08000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) )
6654
6655 ROM_END
6656
6657 /*****************************************************************************/
6658 // Action Fighter
6659
6660 ROM_START( afighter )
6661 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6662 // cpu 317-0018
6663 ROM_LOAD16_BYTE( "10348",0x00000,0x08000, CRC(e51e3012) SHA1(bb5522aacb55b5f04aa4cb7a642e202f0ddd7c84) )
6664 ROM_LOAD16_BYTE( "10349",0x00001,0x08000, CRC(4b434c37) SHA1(5f3afbdb9cdb0762e56b702a195274f30193b472) )
6665 ROM_LOAD16_BYTE( "10350",0x20000,0x08000, CRC(f2cd6b3f) SHA1(380f75b8c1696b388179641866cd1d23f78664e7) )
6666 ROM_LOAD16_BYTE( "10351",0x20001,0x08000, CRC(ede21d8d) SHA1(b3e3944d706c606fd01e00d9511f020ce9aec9f0) )
6667 ROM_LOAD16_BYTE( "10352",0x40000,0x08000, CRC(f8abb143) SHA1(97e78291c15bdf95fd35adca6b9e002480137b12) )
6668 ROM_LOAD16_BYTE( "10353",0x40001,0x08000, CRC(5a757dc9) SHA1(b0540844c8a09195f5d12312f8e27c334641d7b8) )
6669
6670 ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6671 ROM_LOAD( "10281",0x00000,0x10000, CRC(30e92cda) SHA1(36293a2a8a22dca5350571f19f3d5d04e1b27458) )
6672 ROM_LOAD( "10282",0x10000,0x10000, CRC(b67b8910) SHA1(f3f029a3e6547114cec28e5cf8fda65ef434c353) )
6673 ROM_LOAD( "10283",0x20000,0x10000, CRC(e7dbfd2d) SHA1(91bae3fbc4a3c612dc507eecfa8de1c2e1e7afee) )
6674
6675 ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* sprites */
6676 ROM_LOAD16_BYTE( "10285",0x00001,0x08000, CRC(98aa3d04) SHA1(1d26d17a72e55281e3444fee9c5af69ffb9e3c69) )
6677 ROM_LOAD16_BYTE( "10286",0x00000,0x08000, CRC(8da050cf) SHA1(c28e8968dbd9c110672581f4486f70d5f45df7f5) )
6678 ROM_LOAD16_BYTE( "10287",0x10001,0x08000, CRC(7989b74a) SHA1(a87acafe82b37a11d8f8b1f2ee4c9b2e1bb8161c) )
6679 ROM_LOAD16_BYTE( "10288",0x10000,0x08000, CRC(d3ce551a) SHA1(0ff2170d9ef89058273025dd8d5e1021094adef1) )
6680 ROM_LOAD16_BYTE( "10289",0x20001,0x08000, CRC(c59d1b98) SHA1(e232f2519234981c0e4ffecdd25c48083d9f93a8) )
6681 ROM_LOAD16_BYTE( "10290",0x20000,0x08000, CRC(39354223) SHA1(d8a73d3f7fc2d83d23bb7434f43bc8804f35cc16) )
6682 ROM_LOAD16_BYTE( "10291",0x30001,0x08000, CRC(6e4b245c) SHA1(1f8cecf7ea2d2dfa5ce18d7ee34b0da2cc40221e) )
6683 ROM_LOAD16_BYTE( "10292",0x30000,0x08000, CRC(cef289a3) SHA1(7ab817b6348c168f79be325fb3cc2cca14ee0f8e) )
6684
6685 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */
6686 ROM_LOAD( "10284",0x00000,0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
6687
6688 ROM_END
6689
6690 /*****************************************************************************/
6691 // Ryukyu
6692
6693 ROM_START( ryukyu )
6694 ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */
6695 // cpu 317-5023
6696 ROM_LOAD16_BYTE( "13347",0x00000,0x10000, CRC(398031fa) SHA1(5c118c85b7af1a83726b95bbeb85cb5020254f57) )
6697 ROM_LOAD16_BYTE( "13348",0x00001,0x10000, CRC(5f0e0c86) SHA1(f8f5912a190d0755cc5158e2e43cceb825f95b4f) )
6698
6699 ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
6700 ROM_LOAD( "13351",0x00000,0x20000, CRC(a68a4e6d) SHA1(ee3e317c7184b41af5dd383d41f7be3eebff0d04) )
6701 ROM_LOAD( "13352",0x20000,0x20000, CRC(5e5531e4) SHA1(e8e16b35f7985e6cdd77353ca5235db518914744) )
6702 ROM_LOAD( "13353",0x40000,0x20000, CRC(6d23dfd8) SHA1(21266340290b9854cee0b62fc107cc2981519a80) )
6703
6704 ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */
6705 ROM_LOAD16_BYTE( "13354",0x00001,0x20000, CRC(f07aad99) SHA1(71759525a5b7fe76d112cec93984f0f89cadbc00) )
6706 ROM_LOAD16_BYTE( "13355",0x00000,0x20000, CRC(67890019) SHA1(165c6a32f305273396ec0e9499e00329caadc484) )
6707 ROM_LOAD16_BYTE( "13356",0x40001,0x20000, CRC(5498290b) SHA1(b3115b636d8cb6ecac22d5264b7961e3b807cf04) )
6708 ROM_LOAD16_BYTE( "13357",0x40000,0x20000, CRC(f9e7cf03) SHA1(2258111499c79443faf84fb0495007016282bb3c) )
6709
6710 ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */
6711 ROM_LOAD( "13349",0x00000,0x08000, CRC(b83183f8) SHA1(9d6127f51c04a16bb2637dc9992b843b94613c2b) )
6712 ROM_LOAD( "13350",0x10000,0x20000, CRC(3c59a658) SHA1(2cef13ee9e666bb850fe6c6e6954d7b75df665a9) )
6713 ROM_END
6714
6715 /***************************************************************************/
6716
6717 /* pre-System16 */
6718 /* rom parent machine inp init */
6719 /* Alien Syndrome */
6720 GAMEX(1985, mjleague, 0, mjleague, mjleague, mjleague, ROT270, "Sega", "Major League", GAME_NOT_WORKING )
6721 GAME( 1986, bodyslam, 0, bodyslam, bodyslam, bodyslam, ROT0, "Sega", "Body Slam" )
6722 GAME( 1986, dumpmtmt, bodyslam, bodyslam, bodyslam, bodyslam, ROT0, "Sega", "Dump Matsumoto (Japan)" )
6723 GAME( 1986, quartet, 0, quartet, quartet, quartet, ROT0, "Sega", "Quartet" )
6724 GAME( 1986, quartetj, quartet, quartet, quartet, quartet, ROT0, "Sega", "Quartet (Japan)" )
6725 GAME( 1986, quartet2, quartet, quartet2, quartet2, quartet2, ROT0, "Sega", "Quartet 2" )
6726 GAME( 1986, quartt2j, quartet, quartet2, quartet2, quartet2, ROT0, "Sega", "Quartet 2 (Japan)" )
6727
6728 /* System16A */
6729 /* rom parent machine inp init */
6730 GAMEX(19??, afighter, 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Action Fighter", GAME_NOT_WORKING )
6731 GAMEX(1986, alexkidd, 0, alexkidd, alexkidd, alexkidd, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 1)", GAME_NOT_WORKING )
6732 GAME( 1986, alexkida, alexkidd, alexkidd, alexkidd, alexkidd, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 2)" )
6733 GAME( 1986, fantzone, 0, fantzone, fantzone, fantzone, ROT0, "Sega", "Fantasy Zone (Japan New Ver.)" )
6734 GAME( 1986, fantzono, fantzone, fantzono, fantzone, fantzone, ROT0, "Sega", "Fantasy Zone (Old Ver.)" )
6735 GAMEX(19??, ryukyu , 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Ryukyu", GAME_NOT_WORKING )
6736 GAME( 1987, shinobi, 0, shinobi, shinobi, shinobi, ROT0, "Sega", "Shinobi (set 1)" )
6737 GAMEX(1987, shinobib, shinobi, shinobi, shinobi, shinobi, ROT0, "Sega", "Shinobi (set 3)", GAME_NOT_WORKING )
6738 GAMEX(1987, shinobia, shinobi, shinobl, shinobi, shinobi, ROT0, "Sega", "Shinobi (set 2)", GAME_NOT_WORKING )
6739 GAME( 1987, shinobl, shinobi, shinobl, shinobi, shinobi, ROT0, "bootleg", "Shinobi (bootleg)" )
6740 GAME( 1987, sdi, 0, sdi, sdi, sdi, ROT0, "Sega", "SDI - Strategic Defense Initiative" )
6741 GAMEX(1987, sdioj, sdi, sdi, sdi, sdi, ROT0, "Sega", "SDI - Strategic Defense Initiative (Japan)", GAME_NOT_WORKING )
6742 GAMEX(1988, tetris, 0, tetris, tetris, tetris, ROT0, "Sega", "Tetris (Sega Set 1)", GAME_NOT_WORKING )
6743 GAME( 1988, tetrisbl, tetris, tetris, tetris, tetrisbl, ROT0, "bootleg", "Tetris (Sega bootleg)" )
6744 GAMEX(1988, tetrisa, tetris, tetris, tetris, tetrisbl, ROT0, "Sega", "Tetris (Sega Set 2)", GAME_NOT_WORKING )
6745
6746 /* System16B */
6747 /* rom parent machine inp init */
6748 GAMEX(1990, atomicp, 0, atomicp, atomicp, atomicp, ROT0, "Philko", "Atomic Point", GAME_NO_SOUND )
6749 GAME( 1987, aliensyn, 0, aliensyn, aliensyn, aliensyn, ROT0, "Sega", "Alien Syndrome (set 1)" )
6750 GAMEX(1987, aliensya, aliensyn, aliensyn, aliensyn, aliensyn, ROT0, "Sega", "Alien Syndrome (set 2)", GAME_NOT_WORKING )
6751 GAMEX(1987, aliensyj, aliensyn, aliensyn, aliensyn, aliensyn, ROT0, "Sega", "Alien Syndrome (Japan)", GAME_NOT_WORKING )
6752 GAMEX(1987, aliensyb, aliensyn, aliensyn, aliensyn, aliensyn, ROT0, "Sega", "Alien Syndrome (set 3)", GAME_NOT_WORKING )
6753 GAME( 1988, altbeast, 0, altbeast, altbeast, altbeast, ROT0, "Sega", "Altered Beast (Version 1)" )
6754 GAMEX(1988, altbeas2, altbeast, altbeas2, altbeast, altbeast, ROT0, "Sega", "Altered Beast (Version 2)", GAME_NO_SOUND )
6755 GAMEX(1988, jyuohki, altbeast, altbeast, altbeast, altbeast, ROT0, "Sega", "Jyuohki (Japan)", GAME_NOT_WORKING )
6756 GAME( 1990, aurail, 0, aurail, aurail, aurail, ROT0, "Sega / Westone", "Aurail (set 1)" )
6757 GAME( 1990, auraila, aurail, aurail, aurail, auraila, ROT0, "Sega / Westone", "Aurail (set 2)" )
6758 GAME( 1989, bayroute, 0, bayroute, bayroute, bayroute, ROT0, "Sunsoft / Sega", "Bay Route (set 1)" )
6759 GAMEX(1989, bayrouta, bayroute, bayroute, bayroute, bayrouta, ROT0, "Sunsoft / Sega", "Bay Route (set 2)", GAME_NOT_WORKING )
6760 GAMEX(1989, bayrtbl1, bayroute, bayroute, bayroute, bayrtbl1, ROT0, "bootleg", "Bay Route (bootleg set 1)", GAME_NOT_WORKING )
6761 GAMEX(1989, bayrtbl2, bayroute, bayroute, bayroute, bayrtbl1, ROT0, "bootleg", "Bay Route (bootleg set 2)", GAME_NOT_WORKING )
6762 /* Bullet */
6763 /* Charon */
6764 GAMEX(19??, cotton, 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Cotton (Japan)", GAME_NOT_WORKING )
6765 GAMEX(19??, cottona, cotton, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Cotton", GAME_NOT_WORKING )
6766 GAMEX(19??, dunkshot, 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Dunk Shot", GAME_NOT_WORKING )
6767 GAME( 1989, dduxbl, 0, dduxbl, dduxbl, dduxbl, ROT0, "bootleg", "Dynamite Dux (bootleg)" )
6768 GAMEX(1989, eswat, 0, eswat, eswat, eswat, ROT0, "Sega", "E-Swat - Cyber Police", GAME_NOT_WORKING )
6769 GAME( 1989, eswatbl, eswat, eswat, eswat, eswat, ROT0, "bootleg", "E-Swat - Cyber Police (bootleg)" )
6770 GAMEX(19??, exctleag, 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Excite League", GAME_NOT_WORKING )
6771 GAMEX(1989, fpoint, 0, fpoint, fpoint, fpoint, ROT0, "Sega", "Flash Point", GAME_NOT_WORKING )
6772 GAME( 1989, fpointbl, fpoint, fpoint, fpoint, fpointbl, ROT0, "bootleg", "Flash Point (World, bootleg)" )
6773 GAMEX(1989, fpointbj, fpoint, fpoint, fpointbj, fpointbl, ROT0, "bootleg", "Flash Point (Japan, bootleg)", GAME_NO_SOUND )
6774 GAME( 1989, goldnaxe, 0, goldnaxe, goldnaxe, goldnaxe, ROT0, "Sega", "Golden Axe (Version 1)" )
6775 GAMEX(1989, goldnaxj, goldnaxe, goldnaxe, goldnaxe, goldnaxe, ROT0, "Sega", "Golden Axe (Version 1, Japan)", GAME_NOT_WORKING )
6776 GAMEX(1989, goldnabl, goldnaxe, goldnaxe, goldnaxe, goldnabl, ROT0, "bootleg", "Golden Axe (bootleg)", GAME_NOT_WORKING )
6777 GAMEX(1989, goldnaxa, goldnaxe, goldnaxa, goldnaxe, goldnaxe, ROT0, "Sega", "Golden Axe (Version 2)", GAME_NOT_WORKING )
6778 GAMEX(1989, goldnaxb, goldnaxe, goldnaxa, goldnaxe, goldnaxe, ROT0, "Sega", "Golden Axe (Version 2 317-0110)", GAME_NOT_WORKING )
6779 GAMEX(1989, goldnaxc, goldnaxe, goldnaxa, goldnaxe, goldnaxe, ROT0, "Sega", "Golden Axe (Version 2 317-0122)", GAME_NOT_WORKING )
6780 GAME( 1987, hwchamp, 0, hwchamp, hwchamp, hwchamp, ROT0, "Sega", "Heavyweight Champ" )
6781 GAMEX(19??, mvp, 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "MVP", GAME_NOT_WORKING )
6782 GAMEX(1988, passsht, 0, passsht, passsht, passsht, ROT270, "Sega", "Passing Shot (2 Players)", GAME_NOT_WORKING )
6783 GAME( 1988, passshtb, passsht, passsht, passsht, passsht, ROT270, "bootleg", "Passing Shot (2 Players) (bootleg)" )
6784 GAMEX(1988, passht4b, passsht, passht4b, passht4b, passht4b, ROT270, "bootleg", "Passing Shot (4 Players) (bootleg)", GAME_NO_SOUND )
6785 GAME( 1991, riotcity, 0, riotcity, riotcity, riotcity, ROT0, "Sega / Westone", "Riot City" )
6786 /* Ryukyu */
6787 /* Shinobi */
6788 /* Sonic Boom */
6789 /* SDI */
6790 /* Sukeban Jansi Ryuko */
6791 GAMEX(19??, suprleag, 0, s16dummy, s16dummy, s16dummy, ROT0, "Sega", "Super League", GAME_NOT_WORKING )
6792 /* Tetris */
6793 GAME( 1987, timscanr, 0, timscanr, timscanr, timscanr, ROT270, "Sega", "Time Scanner" )
6794 GAME (1994, toryumon, 0, toryumon, toryumon, toryumon, ROT0, "Sega", "Toryumon" )
6795 GAMEX(1989, tturf, 0, tturf, tturf, tturf, ROT0, "Sega / Sunsoft", "Tough Turf (Japan)", GAME_NO_SOUND )
6796 GAMEX(1989, tturfu, tturf, tturfu, tturf, tturf, ROT0, "Sega / Sunsoft", "Tough Turf (US)", GAME_NO_SOUND )
6797 GAMEX(1989, tturfbl, tturf, tturfbl, tturf, tturfbl, ROT0, "bootleg", "Tough Turf (bootleg)", GAME_IMPERFECT_SOUND )
6798 GAME( 1988, wb3, 0, wb3, wb3, wb3, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 1)" ) //*
6799 GAMEX(1988, wb3a, wb3, wb3, wb3, wb3, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 2)", GAME_NOT_WORKING )
6800 GAME( 1988, wb3bl, wb3, wb3bl, wb3, wb3bl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (bootleg)" )
6801 GAME( 1989, wrestwar, 0, wrestwar, wrestwar, wrestwar, ROT270, "Sega", "Wrestle War" )
6802