~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to src/mame/drivers/megatech.c

  • Committer: Bazaar Package Importer
  • Author(s): Jordi Mallach, Emmanuel Kasper, Félix Arreola Rodríguez, Jordi Mallach
  • Date: 2011-05-11 21:06:50 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110511210650-jizvh8a6x117y9hr
Tags: 0.142-1
[ Emmanuel Kasper ]
* New upstream release
* Set NOWERROR=1 to allow compiling with gcc-4.6
* Remove fix_powerpc_build.patch, as upstream has taken it in this release
* Add gnome-video-arcade front end as a suggested package

[ Félix Arreola Rodríguez ]
* Add kfreebsd-build.patch to quilt series, to fix build on kfreebsd

[ Jordi Mallach ]
* Remove unneeded and bogus addition of --with-quilt to the dh invocation.
* Add Cesare Falco (long time Ubuntu maintainer) to Uploaders, and wrap
  them into multiple lines.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Sega MegaTech */
2
 
/*
3
 
 
4
 
  changelog:
5
 
 
6
 
  22 Sept 2007 - Started updating this to use the new Megadrive code,
7
 
                 The Megadrive games currently run with the new code
8
 
                  but the SMS based games still aren't hooked up (they
9
 
                  use the Megadrive Z80 as the main CPU, and the VDP
10
 
                  in compatibility mode)
11
 
 
12
 
                 Controls for the menu haven't been hooked back up
13
 
                 and the games run without any menu interaction at the
14
 
                 moment.
15
 
 
16
 
 
17
 
 
18
 
 
19
 
todo: cleanup, fix so that everything works properly
20
 
      games are marked as NOT WORKING due to
21
 
      a) incorrect behavior at time out
22
 
      b) they're sms based games which aren't yet fully supported
23
 
 
 
1
/* Sega MegaTech
24
2
 
25
3
About MegaTech:
26
4
 
27
5
Megatech games are identical to their Genesis/SMS equivlents, however the Megatech cartridges contain
28
6
a BIOS rom with the game instructions.  The last part number of the bios ROM is the cart/game ID code.
29
7
 
 
8
The instruction rom appears to map at 0x300000 in the cart space.
 
9
 
30
10
In Megatech games your coins buy you time to play the game, how you perform in the game does not
31
11
matter, you can die and start a new game providing you still have time, likewise you can be playing
32
12
well and run out of time if you fail to insert more coins.  This is the same method Nintendo used
36
16
a standard Genesis.
37
17
 
38
18
SMS games run on Megatech in the Genesis's SMS compatability mode, where the Genesis Z80 becomes the
39
 
main CPU and the Genesis VDP acts in a mode mimicing the behavior of the SMS VDP.
 
19
main CPU and the Genesis VDP acts in a mode mimicing the behavior of the SMS VDP. A pin on the carts
 
20
determines which mode the game runs in.
40
21
 
41
22
Additions will only be made to this driver if proof that the dumped set are original roms with original
42
23
Sega part numbers is given..
43
24
 
44
 
A fairly significant number of Genesis games were available for this system.
45
 
 
46
25
 
47
26
Sega Mega Tech Cartridges (Readme by Guru)
48
27
-------------------------
83
62
Streets of Rage            171-5782    837-6963-51       610-0239-51         MPR-14125-SM   (uPD23C4000)  EPR-12368-51   (27C256)  n/a
84
63
Sonic The Hedgehog         171-5782    837-6963-52       610-0239-52         MPR-13913-F    (834200A)     EPR-12368-52   (27C256)  n/a
85
64
Spider-Man                 171-5782    837-6963-54       610-0239-54         MPR-14027-SM   (uPD23C4000)  EPR-12368-54   (27C256)  n/a
 
65
California Games           171-5834    837-6963-55-01    610-0239-55         EPR-14494      (27C020)      EPR-14495      (27C020)  EPR-12368-55 (27C256)
86
66
Mario Lemeux Hockey        171-5782    837-6963-59       610-0239-59         MPR-14376-H    (234000)      EPR-12368-59   (27256)   n/a
87
67
Turbo Outrun               171-5782    837-6963-61       610-0239-61         MPR-14674      (uPD23C4000)  EPR-12368-61   (27256)   n/a
88
68
Sonic Hedgehog 2           171-6215A   837-6963-62       610-0239-62         MPR-15000A-F   (838200)      EPR-12368-62   (27256)   n/a
95
75
 
96
76
#include "includes/segamsys.h"
97
77
#include "includes/megadriv.h"
98
 
 
99
 
static struct _mtech_bios mtech_bios;
100
 
 
101
 
/* Megatech BIOS specific */
102
 
static UINT8* megatech_banked_ram;
 
78
#include "imagedev/cartslot.h"
103
79
 
104
80
#define MASTER_CLOCK            53693100
105
81
 
231
207
INPUT_PORTS_END
232
208
 
233
209
/* MEGATECH specific */
234
 
 
235
 
static READ8_HANDLER( megatech_instr_r )
236
 
{
237
 
        UINT8* instr = space->machine->region("mtbios")->base() + 0x8000;
238
 
 
239
 
        return instr[offset / 2];
240
 
//  else
241
 
//      return 0xff;
242
 
}
243
 
 
244
210
static READ8_HANDLER( megatech_cart_select_r )
245
211
{
246
 
        return mtech_bios.mt_cart_select_reg;
247
 
}
248
 
 
249
 
#ifdef UNUSED_FUNCTION
250
 
READ8_HANDLER( md_sms_ioport_dc_r )
251
 
{
252
 
        return 0xff;
253
 
}
254
 
 
255
 
READ8_HANDLER( md_sms_ioport_dd_r )
256
 
{
257
 
        return 0xff;
258
 
}
259
 
#endif
260
 
 
261
 
 
262
 
 
263
 
 
264
 
static void megatech_select_game(running_machine *machine, int gameno)
265
 
{
266
 
        UINT8* game_region;
267
 
        UINT8* bios_region;
268
 
        char tempname[20];
269
 
 
270
 
        //printf("game 0 selected\n");
 
212
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
213
        return state->m_mt_cart_select_reg;
 
214
}
 
215
 
 
216
 
 
217
 
 
218
static TIMER_CALLBACK( megatech_z80_run_state )
 
219
{
 
220
        mtech_state *state = machine.driver_data<mtech_state>();
 
221
        char tempname[20];
 
222
        UINT8* game_region;
 
223
 
 
224
        sprintf(tempname, "game%d", param);
 
225
        game_region = machine.region(tempname)->base();
 
226
 
 
227
        memcpy(machine.region("maincpu")->base(), game_region, 0x400000);
 
228
 
 
229
        if (!state->m_cart_is_genesis[param])
 
230
        {
 
231
                printf("enabling SMS Z80\n");
 
232
                state->m_current_game_is_sms = 1;
 
233
                megatech_set_genz80_as_sms_standard_map(machine, "genesis_snd_z80", MAPPER_STANDARD);
 
234
                //cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_HALT, CLEAR_LINE);
 
235
                cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_RESET, CLEAR_LINE);
 
236
        }
 
237
        else
 
238
        {
 
239
                printf("disabling SMS Z80\n");
 
240
                state->m_current_game_is_sms = 0;
 
241
                megatech_set_megadrive_z80_as_megadrive_z80(machine, "genesis_snd_z80");
 
242
                cputag_set_input_line(machine, "maincpu", INPUT_LINE_RESET, CLEAR_LINE);
 
243
                //cputag_set_input_line(machine, "maincpu", INPUT_LINE_HALT, CLEAR_LINE);
 
244
        }
 
245
}
 
246
 
 
247
static TIMER_CALLBACK( megatech_z80_stop_state )
 
248
{
 
249
        UINT8* game_region;
 
250
        char tempname[20];
 
251
 
 
252
        printf("megatech_select_game %d\n", param+1);
 
253
 
 
254
        sprintf(tempname, "game%d", param);
 
255
        game_region = machine.region(tempname)->base();
271
256
 
272
257
        cputag_set_input_line(machine, "maincpu", INPUT_LINE_RESET, ASSERT_LINE);
273
258
        cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_RESET, ASSERT_LINE);
274
 
        cputag_set_input_line(machine, "maincpu", INPUT_LINE_HALT, ASSERT_LINE);
275
 
        cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_HALT, ASSERT_LINE);
 
259
        //cputag_set_input_line(machine, "maincpu", INPUT_LINE_HALT, ASSERT_LINE);
 
260
        //cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_HALT, ASSERT_LINE);
276
261
        devtag_reset(machine, "ymsnd");
277
262
 
278
 
        sprintf(tempname, "game%d", gameno);
279
 
        game_region = machine->region(tempname)->base();
280
 
        sprintf(tempname, "inst%d", gameno);
281
 
        bios_region = machine->region(tempname)->base();
282
 
 
283
263
        megadriv_stop_scanline_timer();// stop the scanline timer for the genesis vdp... it can be restarted in video eof when needed
284
264
        segae_md_sms_stop_scanline_timer();// stop the scanline timer for the sms vdp
285
265
 
286
266
 
287
267
        /* if the regions exist we're fine */
288
 
        if (game_region && bios_region)
 
268
        if (game_region)
289
269
        {
290
 
                memcpy(machine->region("mtbios")->base()+0x8000, bios_region, 0x8000);
291
 
                memcpy(machine->region("maincpu")->base(), game_region, 0x300000);
292
 
 
293
 
                // I store an extra byte at the end of the instruction rom region when loading
294
 
                // to indicate if the current cart is an SMS cart.. the original hardware
295
 
                // knows from the cart pinout
296
 
                if (bios_region[0x8000]==2)
297
 
                {
298
 
                        //printf("SMS cart!!, CPU not running\n");
299
 
                        mtech_bios.current_game_is_sms = 1;
300
 
                        megatech_set_genz80_as_sms_standard_map(machine, "genesis_snd_z80", MAPPER_STANDARD);
301
 
                        cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_HALT, CLEAR_LINE);
302
 
                        cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_RESET, CLEAR_LINE);
303
 
 
304
 
 
305
 
                }
306
 
                else if (bios_region[0x8000]==1)
307
 
                {
308
 
                        //printf("Genesis Cart, CPU0 running\n");
309
 
                        mtech_bios.current_game_is_sms = 0;
310
 
                        megatech_set_megadrive_z80_as_megadrive_z80(machine, "genesis_snd_z80");
311
 
                        cputag_set_input_line(machine, "maincpu", INPUT_LINE_RESET, CLEAR_LINE);
312
 
                        cputag_set_input_line(machine, "maincpu", INPUT_LINE_HALT, CLEAR_LINE);
313
 
                }
314
 
                else
315
 
                {
316
 
                        printf("Error in cart loading??? no type specified\n");
 
270
                {
 
271
                        machine.scheduler().timer_set(attotime::zero, FUNC(megatech_z80_run_state), param);
317
272
                }
318
273
        }
319
274
        else
320
275
        {
321
 
                cputag_set_input_line(machine, "maincpu", INPUT_LINE_HALT, ASSERT_LINE);
322
 
                cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_HALT, ASSERT_LINE);
323
 
        //  cputag_set_input_line(machine, "maincpu", INPUT_LINE_RESET, ASSERT_LINE);
324
 
        //  cputag_set_input_line(machine, "genesis_snd_z80", INPUT_LINE_RESET, ASSERT_LINE);
325
 
 
326
276
                /* no cart.. */
327
 
                memset(machine->region("mtbios")->base() + 0x8000, 0x00, 0x8000);
328
 
                memset(machine->region("maincpu")->base(), 0x00, 0x300000);
 
277
                memset(machine.region("mtbios")->base() + 0x8000, 0x00, 0x8000);
 
278
                memset(machine.region("maincpu")->base(), 0x00, 0x400000);
329
279
        }
330
280
 
331
281
        return;
332
282
}
333
283
 
 
284
static void megatech_select_game(running_machine &machine, int gameno)
 
285
{
 
286
        machine.scheduler().timer_set(attotime::zero, FUNC(megatech_z80_stop_state), gameno);
 
287
}
 
288
 
334
289
static WRITE8_HANDLER( megatech_cart_select_w )
335
290
{
336
291
        /* seems to write the slot number..
337
292
      but it stores something in (banked?) ram
338
293
      because it always seems to show the
339
294
      same instructions ... */
340
 
 
341
 
//  printf("megatech_instr_w %02x\n",data);
342
 
 
343
 
        mtech_bios.mt_cart_select_reg = data;
344
 
 
345
 
 
346
 
        megatech_select_game(space->machine, mtech_bios.mt_cart_select_reg);
347
 
 
348
 
/*
349
 
    if (mtech_bios.mtech_bios.mt_cart_select_reg == 2)
350
 
    {
351
 
        printf("game 2 selected\n");
352
 
        memcpy(space->machine->region("mtbios")->base() + 0x8000, space->machine->region("inst0")->base(), 0x8000);
353
 
    }
354
 
//  else if (mtech_bios.mt_cart_select_reg == 0)
355
 
//  {
356
 
//      printf("game 0 selected\n");
357
 
//      memcpy(space->machine->region("mtbios")->base() + 0x8000, space->machine->region("inst2")->base(), 0x8000);
358
 
//  }
359
 
    else if (mtech_bios.mt_cart_select_reg == 6)
360
 
    {
361
 
        printf("game 6 selected\n");
362
 
        memcpy(space->machine->region("mtbios")->base() + 0x8000, space->machine->region("user6")->base(), 0x8000);
363
 
    }
364
 
    else
365
 
    {
366
 
        memset(space->machine->region("mtbios" )->base()+ 0x8000, 0x00, 0x8000);
367
 
    }
368
 
*/
369
 
 
 
295
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
296
        state->m_mt_cart_select_reg = data;
 
297
 
 
298
        megatech_select_game(space->machine(), state->m_mt_cart_select_reg);
370
299
}
371
300
 
372
301
 
373
302
static READ8_HANDLER( bios_ctrl_r )
374
303
{
 
304
        mtech_state *state = space->machine().driver_data<mtech_state>();
375
305
 
376
 
        if(offset == 0)
 
306
        if (offset == 0)
377
307
                return 0;
378
 
        if(offset == 2)
379
 
                return mtech_bios.bios_ctrl[offset] & 0xfe;
 
308
        if (offset == 2)
 
309
                return state->m_bios_ctrl[offset] & 0xfe;
380
310
 
381
 
        return mtech_bios.bios_ctrl[offset];
 
311
        return state->m_bios_ctrl[offset];
382
312
}
383
313
 
384
314
static WRITE8_HANDLER( bios_ctrl_w )
385
315
{
386
 
        if(offset == 1)
 
316
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
317
        if (offset == 1)
387
318
        {
388
 
                mtech_bios.bios_ctrl_inputs = data & 0x04;  // Genesis/SMS input ports disable bit
 
319
                state->m_bios_ctrl_inputs = data & 0x04;  // Genesis/SMS input ports disable bit
389
320
        }
390
 
        mtech_bios.bios_ctrl[offset] = data;
 
321
        state->m_bios_ctrl[offset] = data;
391
322
}
392
323
 
393
 
 
394
324
/* this sets 0x300000 which may indicate that the 68k can see the instruction rom
395
325
   there, this limiting the max game rom capacity to 3meg. */
396
 
static WRITE8_HANDLER (mt_z80_bank_w)
397
 
{
398
 
        mtech_bios.mt_bank_partial |= (data & 0x01) << 23; // add new bit to partial address
399
 
        mtech_bios.mt_bank_bank_pos++;
400
 
 
401
 
        if (mtech_bios.mt_bank_bank_pos < 9)
402
 
        {
403
 
                mtech_bios.mt_bank_partial >>= 1;
404
 
        }
405
 
        else
406
 
        {
407
 
                mtech_bios.mt_bank_bank_pos = 0;
408
 
                mtech_bios.mt_bank_addr = mtech_bios.mt_bank_partial;
409
 
                mtech_bios.mt_bank_partial = 0;
410
 
                //printf("MT z80 bank set to %08x\n", mtech_bios.mt_bank_addr);
411
 
 
412
 
        }
 
326
 
 
327
static READ8_HANDLER( megatech_z80_read_68k_banked_data )
 
328
{
 
329
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
330
        address_space *space68k = space->machine().device<legacy_cpu_device>("maincpu")->space();
 
331
        UINT8 ret = space68k->read_byte(state->m_mt_bank_addr + offset);
 
332
        return ret;
 
333
}
 
334
 
 
335
static WRITE8_HANDLER( megatech_z80_write_68k_banked_data )
 
336
{
 
337
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
338
        address_space *space68k = space->machine().device<legacy_cpu_device>("maincpu")->space();
 
339
        space68k->write_byte(state->m_mt_bank_addr + offset,data);
 
340
}
 
341
 
 
342
static void megatech_z80_bank_w(running_machine &machine, UINT16 data)
 
343
{
 
344
        mtech_state *state = machine.driver_data<mtech_state>();
 
345
        state->m_mt_bank_addr = ((state->m_mt_bank_addr >> 1) | (data << 23)) & 0xff8000;
 
346
}
 
347
 
 
348
static WRITE8_HANDLER( mt_z80_bank_w )
 
349
{
 
350
        megatech_z80_bank_w(space->machine(), data & 1);
413
351
}
414
352
 
415
353
static READ8_HANDLER( megatech_banked_ram_r )
416
354
{
417
 
        return megatech_banked_ram[offset + 0x1000 * (mtech_bios.mt_cart_select_reg & 0x07)];
 
355
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
356
        return state->m_megatech_banked_ram[offset + 0x1000 * (state->m_mt_cart_select_reg & 0x07)];
418
357
}
419
358
 
420
359
static WRITE8_HANDLER( megatech_banked_ram_w )
421
360
{
422
 
        megatech_banked_ram[offset + 0x1000 * (mtech_bios.mt_cart_select_reg & 0x07)] = data;
 
361
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
362
        state->m_megatech_banked_ram[offset + 0x1000 * (state->m_mt_cart_select_reg & 0x07)] = data;
423
363
}
424
364
 
425
365
 
426
366
 
427
 
static ADDRESS_MAP_START( megatech_bios_map, ADDRESS_SPACE_PROGRAM, 8 )
 
367
static ADDRESS_MAP_START( megatech_bios_map, AS_PROGRAM, 8 )
428
368
        AM_RANGE(0x0000, 0x2fff) AM_ROM // from bios rom (0x0000-0x2fff populated in ROM)
429
369
        AM_RANGE(0x3000, 0x3fff) AM_READWRITE(megatech_banked_ram_r, megatech_banked_ram_w) // copies instruction data here at startup, must be banked
430
370
        AM_RANGE(0x4000, 0x5fff) AM_RAM // plain ram?
438
378
//  AM_RANGE(0x6805, 0x6805) AM_READ_PORT("???")
439
379
        AM_RANGE(0x7000, 0x77ff) AM_ROM // from bios rom (0x7000-0x77ff populated in ROM)
440
380
        //AM_RANGE(0x7800, 0x7fff) AM_RAM // ?
441
 
        AM_RANGE(0x8000, 0x9fff) AM_READ(megatech_instr_r) // window into 68k address space, reads instr rom and writes to reset banks on z80 carts?
 
381
        AM_RANGE(0x8000, 0x9fff) AM_READWRITE(megatech_z80_read_68k_banked_data, megatech_z80_write_68k_banked_data) // window into 68k address space, reads instr rom and writes to reset banks on z80 carts?
442
382
ADDRESS_MAP_END
443
383
 
444
384
 
445
 
static WRITE8_HANDLER (megatech_bios_port_ctrl_w)
446
 
{
447
 
        mtech_bios.bios_port_ctrl = data;
448
 
}
449
 
 
450
 
static READ8_HANDLER (megatech_bios_joypad_r)
451
 
{
452
 
        return megatech_bios_port_cc_dc_r(space->machine, offset, mtech_bios.bios_port_ctrl);
453
 
}
454
 
 
455
 
 
 
385
static WRITE8_HANDLER( megatech_bios_port_ctrl_w )
 
386
{
 
387
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
388
        state->m_bios_port_ctrl = data;
 
389
}
 
390
 
 
391
static READ8_HANDLER( megatech_bios_joypad_r )
 
392
{
 
393
        mtech_state *state = space->machine().driver_data<mtech_state>();
 
394
        return megatech_bios_port_cc_dc_r(space->machine(), offset, state->m_bios_port_ctrl);
 
395
}
456
396
 
457
397
static WRITE8_HANDLER (megatech_bios_port_7f_w)
458
398
{
461
401
 
462
402
 
463
403
 
464
 
static ADDRESS_MAP_START( megatech_bios_portmap, ADDRESS_SPACE_IO, 8 )
 
404
static ADDRESS_MAP_START( megatech_bios_portmap, AS_IO, 8 )
465
405
        ADDRESS_MAP_GLOBAL_MASK(0xff)
466
406
        AM_RANGE(0x3f, 0x3f) AM_WRITE(megatech_bios_port_ctrl_w)
467
407
 
474
414
 
475
415
 
476
416
 
477
 
static DRIVER_INIT(mtnew)
 
417
static DRIVER_INIT(mt_slot)
478
418
{
479
 
        megatech_banked_ram = auto_alloc_array(machine, UINT8, 0x1000*8);
 
419
        mtech_state *state = machine.driver_data<mtech_state>();
 
420
        state->m_megatech_banked_ram = auto_alloc_array(machine, UINT8, 0x1000*8);
 
421
 
480
422
        DRIVER_INIT_CALL(megadriv);
481
423
        DRIVER_INIT_CALL(megatech_bios);
 
424
 
 
425
        // this gets set in DEVICE_IMAGE_LOAD
 
426
        memset(state->m_cart_is_genesis, 0, ARRAY_LENGTH(state->m_cart_is_genesis));
 
427
}
 
428
 
 
429
static DRIVER_INIT(mt_crt)
 
430
{
 
431
        mtech_state *state = machine.driver_data<mtech_state>();
 
432
        UINT8* pin = machine.region("sms_pin")->base();
 
433
        DRIVER_INIT_CALL(mt_slot);
 
434
 
 
435
        state->m_cart_is_genesis[0] = !pin[0] ? 1 : 0;;
482
436
}
483
437
 
484
438
static VIDEO_START(mtnew)
485
439
{
486
 
        init_for_megadrive(machine); // create an sms vdp too, for comptibility mode
 
440
        init_for_megadrive(machine); // create an sms vdp too, for compatibility mode
487
441
        VIDEO_START_CALL(megadriv);
488
442
}
489
 
//attotime_never
490
 
static VIDEO_UPDATE(mtnew)
 
443
 
 
444
//attotime::never
 
445
static SCREEN_UPDATE(mtnew)
491
446
{
492
 
        device_t *megadriv_screen = screen->machine->device("megadriv");
493
 
        device_t *menu_screen     = screen->machine->device("menu");
 
447
        mtech_state *state = screen->machine().driver_data<mtech_state>();
 
448
        device_t *megadriv_screen = screen->machine().device("megadriv");
 
449
        device_t *menu_screen = screen->machine().device("menu");
494
450
 
495
451
        if (screen == megadriv_screen)
496
452
        {
497
453
                /* if we're running an sms game then use the SMS update.. maybe this should be moved to the megadrive emulation core as compatibility mode is a feature of the chip */
498
 
                if (!mtech_bios.current_game_is_sms) VIDEO_UPDATE_CALL(megadriv);
499
 
                else VIDEO_UPDATE_CALL(megatech_md_sms);
 
454
                if (!state->m_current_game_is_sms)
 
455
                        SCREEN_UPDATE_CALL(megadriv);
 
456
                else
 
457
                        SCREEN_UPDATE_CALL(megatech_md_sms);
500
458
        }
501
 
        else if (screen == menu_screen) VIDEO_UPDATE_CALL(megatech_bios);
 
459
        else if (screen == menu_screen)
 
460
                SCREEN_UPDATE_CALL(megatech_bios);
502
461
        return 0;
503
462
}
504
463
 
505
 
static VIDEO_EOF(mtnew)
 
464
static SCREEN_EOF(mtnew)
506
465
{
507
 
        if (!mtech_bios.current_game_is_sms) VIDEO_EOF_CALL(megadriv);
508
 
        else VIDEO_EOF_CALL(megatech_md_sms);
509
 
        VIDEO_EOF_CALL(megatech_bios);
 
466
        mtech_state *state = machine.driver_data<mtech_state>();
 
467
        if (!state->m_current_game_is_sms)
 
468
                SCREEN_EOF_CALL(megadriv);
 
469
        else
 
470
                SCREEN_EOF_CALL(megatech_md_sms);
 
471
 
 
472
        SCREEN_EOF_CALL(megatech_bios);
510
473
}
511
474
 
512
475
static MACHINE_RESET(mtnew)
513
476
{
514
 
        mtech_bios.mt_bank_bank_pos = 0;
515
 
        mtech_bios.mt_bank_partial = 0;
516
 
        mtech_bios.mt_bank_addr = 0;
 
477
        mtech_state *state = machine.driver_data<mtech_state>();
 
478
        state->m_mt_bank_addr = 0;
517
479
 
518
480
        MACHINE_RESET_CALL(megadriv);
519
481
        MACHINE_RESET_CALL(megatech_bios);
521
483
        megatech_select_game(machine, 0);
522
484
}
523
485
 
524
 
static MACHINE_CONFIG_DERIVED( megatech, megadriv )
525
 
 
 
486
static MACHINE_CONFIG_START( megatech, mtech_state )
526
487
        /* basic machine hardware */
 
488
        MCFG_FRAGMENT_ADD(md_ntsc)
527
489
 
528
490
        /* Megatech has an extra SMS based bios *and* an additional screen */
529
491
        MCFG_CPU_ADD("mtbios", Z80, MASTER_CLOCK / 15) /* ?? */
533
495
        MCFG_MACHINE_RESET(mtnew)
534
496
 
535
497
        MCFG_VIDEO_START(mtnew)
536
 
        MCFG_VIDEO_UPDATE(mtnew)
537
 
        MCFG_VIDEO_EOF(mtnew)
538
498
 
539
499
        MCFG_DEFAULT_LAYOUT(layout_dualhovu)
540
500
 
543
503
        MCFG_SCREEN_REFRESH_RATE(60)
544
504
        MCFG_SCREEN_SIZE(342,262)
545
505
        MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1)
 
506
        MCFG_SCREEN_UPDATE(mtnew)
 
507
 
 
508
        MCFG_SCREEN_MODIFY("megadriv")
 
509
        MCFG_SCREEN_UPDATE(mtnew)
 
510
        MCFG_SCREEN_EOF(mtnew)
546
511
 
547
512
        /* sound hardware */
548
513
        MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15)
551
516
MACHINE_CONFIG_END
552
517
 
553
518
 
 
519
struct megatech_cart_region
 
520
{
 
521
        const char *tag;
 
522
        int        slot;
 
523
        const char *region;
 
524
};
 
525
 
 
526
// we keep old region tags for compatibility with older macros... this might be changed at a later stage
 
527
static const struct megatech_cart_region megatech_cart_table[] =
 
528
{
 
529
        { "cart1", 0, "game0" },
 
530
        { "cart2", 1, "game1" },
 
531
        { "cart3", 2, "game2" },
 
532
        { "cart4", 3, "game3" },
 
533
        { "cart5", 4, "game4" },
 
534
        { "cart6", 5, "game5" },
 
535
        { "cart7", 6, "game6" },
 
536
        { "cart8", 7, "game7" },
 
537
        { 0 }
 
538
};
 
539
 
 
540
static DEVICE_IMAGE_LOAD( megatech_cart )
 
541
{
 
542
        mtech_state *state = image.device().machine().driver_data<mtech_state>();
 
543
        const struct megatech_cart_region *mt_cart = &megatech_cart_table[0], *this_cart;
 
544
        const char      *pcb_name;
 
545
 
 
546
        /* First, determine where this cart has to be loaded */
 
547
        while (mt_cart->tag)
 
548
        {
 
549
                if (strcmp(mt_cart->tag, image.device().tag()) == 0)
 
550
                        break;
 
551
 
 
552
                mt_cart++;
 
553
        }
 
554
 
 
555
        this_cart = mt_cart;
 
556
 
 
557
        if (image.software_entry() == NULL)
 
558
                return IMAGE_INIT_FAIL;
 
559
 
 
560
        //printf("load list\n");
 
561
        UINT8 *ROM = image.device().machine().region(this_cart->region)->base();
 
562
        //printf("load list2\n");
 
563
        UINT32 length = image.get_software_region_length("rom");
 
564
        memcpy(ROM, image.get_software_region("rom"), length);
 
565
 
 
566
 
 
567
        if ((pcb_name = image.get_feature("pcb_type")) == NULL)
 
568
                return IMAGE_INIT_FAIL;
 
569
        else
 
570
        {
 
571
                if (!mame_stricmp("genesis", pcb_name))
 
572
                {
 
573
                        printf("%s is genesis\n", mt_cart->tag);
 
574
                        state->m_cart_is_genesis[this_cart->slot] = 1;
 
575
                }
 
576
                else if (!mame_stricmp("sms", pcb_name))
 
577
                {
 
578
                        printf("%s is sms\n", mt_cart->tag);
 
579
                        state->m_cart_is_genesis[this_cart->slot] = 0;
 
580
                }
 
581
                else
 
582
                {
 
583
                        printf("%s is invalid\n", mt_cart->tag);
 
584
                }
 
585
 
 
586
        }
 
587
 
 
588
        return IMAGE_INIT_PASS;
 
589
}
 
590
 
 
591
#define MCFG_MEGATECH_CARTSLOT_ADD(_tag) \
 
592
        MCFG_CARTSLOT_ADD(_tag) \
 
593
        MCFG_CARTSLOT_INTERFACE("megatech_cart") \
 
594
        MCFG_CARTSLOT_LOAD(megatech_cart)
 
595
 
 
596
MACHINE_CONFIG_FRAGMENT( megatech_cartslot )
 
597
        MCFG_MEGATECH_CARTSLOT_ADD("cart1")
 
598
        MCFG_MEGATECH_CARTSLOT_ADD("cart2")
 
599
        MCFG_MEGATECH_CARTSLOT_ADD("cart3")
 
600
        MCFG_MEGATECH_CARTSLOT_ADD("cart4")
 
601
        MCFG_MEGATECH_CARTSLOT_ADD("cart5")
 
602
        MCFG_MEGATECH_CARTSLOT_ADD("cart6")
 
603
        MCFG_MEGATECH_CARTSLOT_ADD("cart7")
 
604
        MCFG_MEGATECH_CARTSLOT_ADD("cart8")
 
605
 
 
606
        MCFG_SOFTWARE_LIST_ADD("cart_list","megatech")
 
607
MACHINE_CONFIG_END
 
608
 
 
609
 
 
610
static MACHINE_CONFIG_DERIVED( megatech_slot, megatech )
 
611
        MCFG_FRAGMENT_ADD( megatech_cartslot )
 
612
MACHINE_CONFIG_END
 
613
 
 
614
 
554
615
/* MegaTech Games - Genesis & sms! Games with a timer */
555
616
 
556
 
/* 12368-xx  xx is the game number? if so there are a _lot_ of carts, mt_beast is 01, mt_sonic is 52! */
557
 
 
558
 
/* add a single extra byte after the instruction rom as an indicator to if the cart is SMS or GENESIS,
559
 
   the real hardware knows from the pinout */
560
 
#define MEGATECH_GAME_IS_GEN 1
561
 
#define MEGATECH_GAME_IS_SMS 2
562
 
 
563
 
#define MEGATECH_INSTRUCTION_REGION(INSTRUCTION_REGION,FLAG)\
564
 
        ROM_REGION( 0x8002, INSTRUCTION_REGION, 0 ) \
565
 
        ROM_FILL(0x8000, 2, FLAG) \
566
 
 
567
617
#define MEGATECH_BIOS \
568
618
        ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) \
569
619
        ROM_REGION( 0x10000, "mtbios", 0 ) \
572
622
/* no games */
573
623
ROM_START( megatech )
574
624
        MEGATECH_BIOS
 
625
 
 
626
        // empty memory areas, to copy data into
 
627
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
628
        ROM_REGION16_BE( 0x400000, "game1", ROMREGION_ERASE00 )
 
629
        ROM_REGION16_BE( 0x400000, "game2", ROMREGION_ERASE00 )
 
630
        ROM_REGION16_BE( 0x400000, "game3", ROMREGION_ERASE00 )
 
631
        ROM_REGION16_BE( 0x400000, "game4", ROMREGION_ERASE00 )
 
632
        ROM_REGION16_BE( 0x400000, "game5", ROMREGION_ERASE00 )
 
633
        ROM_REGION16_BE( 0x400000, "game6", ROMREGION_ERASE00 )
 
634
        ROM_REGION16_BE( 0x400000, "game7", ROMREGION_ERASE00 )
575
635
ROM_END
576
636
 
 
637
 
577
638
/* Game 01 - Altered Beast (Genesis) */
578
 
#define MEGATECH_GAME01(GAME_REGION, INSTRUCTION_REGION) \
579
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
580
 
        ROM_LOAD16_WORD_SWAP( "mp12538.ic1", 0x000000, 0x080000, CRC(3bea3dce) SHA1(ec72e4fde191dedeb3f148f132603ed3c23f0f86) ) \
581
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
582
 
    ROM_LOAD( "epr-12368-01.ic2", 0x000000, 0x08000, CRC(40cb0088) SHA1(e1711532c29f395a35a1cb34d789015881b5a1ed) ) \
583
 
 
584
639
ROM_START( mt_beast ) /* Altered Beast */
585
640
        MEGATECH_BIOS
586
 
        MEGATECH_GAME01("game0", "inst0")
 
641
 
 
642
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
643
        ROM_LOAD16_WORD_SWAP( "mp12538.ic1", 0x000000, 0x080000, CRC(3bea3dce) SHA1(ec72e4fde191dedeb3f148f132603ed3c23f0f86) )
 
644
        ROM_LOAD16_BYTE( "epr-12368-01.ic2", 0x300001, 0x08000, CRC(40cb0088) SHA1(e1711532c29f395a35a1cb34d789015881b5a1ed) )
 
645
 
 
646
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
587
647
ROM_END
588
648
 
 
649
 
589
650
/* Game 02 - Space Harrier 2 */
590
 
#define MEGATECH_GAME02(GAME_REGION, INSTRUCTION_REGION) \
591
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
592
 
        ROM_LOAD16_WORD_SWAP( "mp11934.ic1", 0x000000, 0x080000, CRC(932daa09) SHA1(a2d7a76f3604c6227d43229908bfbd02b0ef5fd9) ) \
593
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
594
 
        ROM_LOAD( "epr-12368-02.ic2", 0x000000, 0x08000, CRC(c129c66c) SHA1(e7c0c97db9df9eb04e2f9ff561b64305219b8f1f) ) \
595
 
 
596
651
ROM_START( mt_shar2 ) /* Space Harrier 2 */
597
652
        MEGATECH_BIOS
598
 
        MEGATECH_GAME02("game0", "inst0")
 
653
 
 
654
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
655
        ROM_LOAD16_WORD_SWAP( "mp11934.ic1", 0x000000, 0x080000, CRC(932daa09) SHA1(a2d7a76f3604c6227d43229908bfbd02b0ef5fd9) )
 
656
        ROM_LOAD16_BYTE( "epr-12368-02.ic2", 0x300001, 0x08000, CRC(c129c66c) SHA1(e7c0c97db9df9eb04e2f9ff561b64305219b8f1f) )
 
657
 
 
658
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
599
659
ROM_END
600
660
 
 
661
 
601
662
/* Game 03 - Super Thunder Blade */
602
 
#define MEGATECH_GAME03(GAME_REGION, INSTRUCTION_REGION) \
603
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
604
 
        ROM_LOAD16_WORD_SWAP( "mp11996f.ic1", 0x000000, 0x080000,  CRC(9355c34e) SHA1(26ff91c2921408673c644b0b1c8931d98524bf63) ) \
605
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
606
 
        ROM_LOAD( "epr-12368-03.ic2", 0x000000, 0x08000,  CRC(1ba4ac5d) SHA1(9bde57d70189d159ebdc537a9026001abfd0deae) ) \
607
 
 
608
663
ROM_START( mt_stbld ) /* Super Thunder Blade */
609
664
        MEGATECH_BIOS
610
 
        MEGATECH_GAME03("game0", "inst0")
 
665
 
 
666
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
667
        ROM_LOAD16_WORD_SWAP( "mp11996f.ic1", 0x000000, 0x080000,  CRC(9355c34e) SHA1(26ff91c2921408673c644b0b1c8931d98524bf63) )
 
668
        ROM_LOAD16_BYTE( "epr-12368-03.ic2", 0x300001, 0x08000,  CRC(1ba4ac5d) SHA1(9bde57d70189d159ebdc537a9026001abfd0deae) )
 
669
 
 
670
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
611
671
ROM_END
612
672
 
 
673
 
613
674
/* Game 04 - Great Golf (SMS) */
614
 
#define MEGATECH_GAME04(GAME_REGION, INSTRUCTION_REGION) \
615
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
616
 
        ROM_LOAD( "mp11129f.ic1", 0x000000, 0x020000, CRC(c6611c84) SHA1(eab0eed872dd26b13bcf0b2dd74fcbbc078812c9) ) \
617
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
618
 
        ROM_LOAD( "epr-12368-04.ic2", 0x000000, 0x08000, CRC(62e5579b) SHA1(e1f531be5c40a1216d4192baeda9352384444410) ) \
619
 
        /* Also known to have the ID# MPR-11128 instead of MPR-11129F, same contents */
620
 
 
 
675
/* Also known to have the ID# MPR-11128 instead of MPR-11129F, same contents */
621
676
ROM_START( mt_ggolf ) /* Great Golf */
622
677
        MEGATECH_BIOS
623
 
        MEGATECH_GAME04("game0", "inst0")
 
678
 
 
679
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
680
        ROM_LOAD16_WORD_SWAP( "mp11129f.ic1", 0x000000, 0x020000, CRC(c6611c84) SHA1(eab0eed872dd26b13bcf0b2dd74fcbbc078812c9) )
 
681
        ROM_LOAD16_BYTE( "epr-12368-04.ic2", 0x300001, 0x08000, CRC(62e5579b) SHA1(e1f531be5c40a1216d4192baeda9352384444410) )
 
682
 
 
683
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
624
684
ROM_END
625
685
 
 
686
 
626
687
/* Game 05 - Great Soccer (SMS) - bad dump */
627
 
#define MEGATECH_GAME05(GAME_REGION, INSTRUCTION_REGION) \
628
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
629
 
        ROM_LOAD( "mp10747f.ic1", 0x000000, 0x020000, BAD_DUMP CRC(9cf53703) SHA1(c6b4d1de56bd5bf067ec7fc80449c07686d01337) ) \
630
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
631
 
        ROM_LOAD( "epr-12368-05.ic2", 0x000000, 0x08000, CRC(bab91fcc) SHA1(a160c9d34b253e93ac54fdcef33f95f44d8fa90c) ) \
632
 
 
633
688
ROM_START( mt_gsocr ) /* Great Soccer */
634
689
        MEGATECH_BIOS
635
 
        MEGATECH_GAME05("game0", "inst0")
 
690
 
 
691
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
692
        ROM_LOAD16_WORD_SWAP( "mp10747f.ic1", 0x000000, 0x020000, BAD_DUMP CRC(9cf53703) SHA1(c6b4d1de56bd5bf067ec7fc80449c07686d01337) )
 
693
        ROM_LOAD16_BYTE( "epr-12368-05.ic2", 0x300001, 0x08000, CRC(bab91fcc) SHA1(a160c9d34b253e93ac54fdcef33f95f44d8fa90c) )
 
694
 
 
695
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
636
696
ROM_END
637
697
 
 
698
 
638
699
/* Game 06 - Out Run (SMS) */
639
 
#define MEGATECH_GAME06(GAME_REGION, INSTRUCTION_REGION) \
640
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
641
 
        ROM_LOAD( "mpr-11078.ic1", 0x000000, 0x040000, CRC(5589d8d2) SHA1(4f9b61b24f0d9fee0448cdbbe8fc05411dbb1102) ) \
642
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
643
 
        ROM_LOAD( "epr-12368-06.ic2", 0x000000, 0x08000, CRC(c7c74429) SHA1(22ee261a653e10d66e0d6703c988bb7f236a7571) ) \
644
 
 
645
700
ROM_START( mt_orun ) /* Out Run */
646
701
        MEGATECH_BIOS
647
 
        MEGATECH_GAME06("game0", "inst0")
 
702
 
 
703
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
704
        ROM_LOAD16_WORD_SWAP( "mpr-11078.ic1", 0x000000, 0x040000, CRC(5589d8d2) SHA1(4f9b61b24f0d9fee0448cdbbe8fc05411dbb1102) )
 
705
        ROM_LOAD16_BYTE( "epr-12368-06.ic2", 0x300001, 0x08000, CRC(c7c74429) SHA1(22ee261a653e10d66e0d6703c988bb7f236a7571) )
 
706
 
 
707
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
648
708
ROM_END
649
709
 
 
710
 
650
711
/* Game 07 - Alien Syndrome (SMS) */
651
 
#define MEGATECH_GAME07(GAME_REGION, INSTRUCTION_REGION) \
652
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
653
 
        ROM_LOAD( "mpr-11194.ic1", 0x000000, 0x040000, CRC(4cc11df9) SHA1(5d786476b275de34efb95f576dd556cf4b335a83) ) \
654
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
655
 
        ROM_LOAD( "epr-12368-07.ic2", 0x000000, 0x08000, CRC(14f4a17b) SHA1(0fc010ac95762534892f1ae16986dbf1c25399d3) ) \
656
 
 
657
712
ROM_START( mt_asyn ) /* Alien Syndrome */
658
713
        MEGATECH_BIOS
659
 
        MEGATECH_GAME07("game0", "inst0")
 
714
 
 
715
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
716
        ROM_LOAD16_WORD_SWAP( "mpr-11194.ic1", 0x000000, 0x040000, CRC(4cc11df9) SHA1(5d786476b275de34efb95f576dd556cf4b335a83) )
 
717
        ROM_LOAD16_BYTE( "epr-12368-07.ic2", 0x300001, 0x08000, CRC(14f4a17b) SHA1(0fc010ac95762534892f1ae16986dbf1c25399d3) )
 
718
 
 
719
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
660
720
ROM_END
661
721
 
 
722
 
662
723
/* Game 08 - Shinobi (SMS) */
663
 
#define MEGATECH_GAME08(GAME_REGION, INSTRUCTION_REGION) \
664
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
665
 
        ROM_LOAD( "mp11706.ic1", 0x000000, 0x040000, CRC(0C6FAC4E) SHA1(7C0778C055DC9C2B0AAE1D166DBDB4734E55B9D1) ) \
666
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
667
 
        ROM_LOAD( "epr-12368-08.ic2", 0x000000, 0x08000, CRC(103A0459) SHA1(D803DDF7926B83785E8503C985B8C78E7CCB5DAC) ) \
668
 
 
669
724
ROM_START( mt_shnbi ) /* Shinobi */
670
725
        MEGATECH_BIOS
671
 
        MEGATECH_GAME08("game0", "inst0")
672
 
ROM_END
673
 
 
674
 
/* Game 10 - AFterburner (SMS) */
675
 
#define MEGATECH_GAME10(GAME_REGION, INSTRUCTION_REGION) \
676
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
677
 
        ROM_LOAD( "mp11271.ic1", 0x000000, 0x080000, CRC(1C951F8E) SHA1(51531DF038783C84640A0CAB93122E0B59E3B69A) ) \
678
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
679
 
        ROM_LOAD( "epr-12368-10.ic2", 0x000000, 0x08000, CRC(2A7CB590) SHA1(2236963BDDC89CA9045B530259CC7B5CCF889EAF) ) \
680
 
 
 
726
 
 
727
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
728
        ROM_LOAD16_WORD_SWAP( "mp11706.ic1", 0x000000, 0x040000, CRC(0C6FAC4E) SHA1(7C0778C055DC9C2B0AAE1D166DBDB4734E55B9D1) )
 
729
        ROM_LOAD16_BYTE( "epr-12368-08.ic2", 0x300001, 0x08000, CRC(103A0459) SHA1(D803DDF7926B83785E8503C985B8C78E7CCB5DAC) )
 
730
 
 
731
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
 
732
ROM_END
 
733
 
 
734
 
 
735
/* Game 09 - Fantasy Zone (SMS) */
 
736
// note, dump was bad, but the good (uniquely identifiable) parts matched the 'fantasy zone (world) (v1.2).bin' SMS rom
 
737
// so I'm using that until it gets verified.
 
738
ROM_START( mt_fz ) /* Fantasy Zone */
 
739
        MEGATECH_BIOS
 
740
 
 
741
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
742
        ROM_LOAD16_WORD_SWAP( "mpr-10118.ic1", 0x000000, 0x020000, CRC(65d7e4e0) SHA1(0278cd120dc3a7707eda9314c46c7f27f9e8fdda) )
 
743
        ROM_LOAD16_BYTE( "epr-12368-09.bin", 0x300001, 0x08000, CRC(373d2a70) SHA1(c39dd1003d71a417b12a359126bfef64c7a2fd00) )
 
744
 
 
745
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
 
746
ROM_END
 
747
 
 
748
 
 
749
 
 
750
/* Game 10 - Afterburner (SMS) */
681
751
ROM_START( mt_aftrb ) /* Afterburner */
682
752
        MEGATECH_BIOS
683
 
        MEGATECH_GAME10("game0", "inst0")
 
753
 
 
754
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
755
        ROM_LOAD16_WORD_SWAP( "mp11271.ic1", 0x000000, 0x080000, CRC(1C951F8E) SHA1(51531DF038783C84640A0CAB93122E0B59E3B69A) )
 
756
        ROM_LOAD16_BYTE( "epr-12368-10.ic2", 0x300001, 0x08000, CRC(2A7CB590) SHA1(2236963BDDC89CA9045B530259CC7B5CCF889EAF) )
 
757
 
 
758
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
684
759
ROM_END
685
760
 
 
761
 
686
762
/* Game 11 - Thunder Force 2 */
687
 
#define MEGATECH_GAME11(GAME_REGION, INSTRUCTION_REGION) \
688
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
689
 
        ROM_LOAD16_WORD_SWAP( "mp12559.ic1", 0x000000, 0x080000, CRC(b093bee3) SHA1(0bf6194c3d228425f8cf1903ed70d8da1b027b6a) ) \
690
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
691
 
        ROM_LOAD( "epr-12368-11.ic2", 0x000000, 0x08000, CRC(f4f27e8d) SHA1(ae1a2823deb416c53838115966f1833d5dac72d4) ) \
692
 
 
693
763
ROM_START( mt_tfor2 ) /* Thunder Force 2 */
694
764
        MEGATECH_BIOS
695
 
        MEGATECH_GAME11("game0", "inst0")
 
765
 
 
766
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
767
        ROM_LOAD16_WORD_SWAP( "mp12559.ic1", 0x000000, 0x080000, CRC(b093bee3) SHA1(0bf6194c3d228425f8cf1903ed70d8da1b027b6a) )
 
768
        ROM_LOAD16_BYTE( "epr-12368-11.ic2", 0x300001, 0x08000, CRC(f4f27e8d) SHA1(ae1a2823deb416c53838115966f1833d5dac72d4) )
 
769
 
 
770
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
696
771
ROM_END
697
772
 
 
773
 
698
774
/* Game 13 - Astro Warrior (SMS) */
699
 
#define MEGATECH_GAME13(GAME_REGION, INSTRUCTION_REGION) \
700
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
701
 
        ROM_LOAD( "ep13817.ic2", 0x000000, 0x20000, CRC(299cbb74) SHA1(901697a3535ad70190647f34ad5b30b695d54542) ) \
702
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
703
 
        ROM_LOAD( "epr-12368-13.ic1", 0x000000, 0x08000,  CRC(4038cbd1) SHA1(696bc1efce45d9f0052b2cf0332a232687c8d6ab) ) \
704
 
 
705
775
ROM_START( mt_astro ) /* Astro Warrior */
706
776
        MEGATECH_BIOS
707
 
        MEGATECH_GAME13("game0", "inst0")
 
777
 
 
778
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
779
        ROM_LOAD16_WORD_SWAP( "ep13817.ic2", 0x000000, 0x20000, CRC(299cbb74) SHA1(901697a3535ad70190647f34ad5b30b695d54542) )
 
780
        ROM_LOAD16_BYTE( "epr-12368-13.ic1", 0x300001, 0x08000,  CRC(4038cbd1) SHA1(696bc1efce45d9f0052b2cf0332a232687c8d6ab) )
 
781
 
 
782
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
708
783
ROM_END
709
784
 
 
785
 
710
786
/* Game 19 - Great Football (SMS) */
711
 
#define MEGATECH_GAME19(GAME_REGION, INSTRUCTION_REGION) \
712
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
713
 
        ROM_LOAD( "mpr-10576f.ic1", 0x000000, 0x020000, CRC(2055825f) SHA1(a768f44ce7e50083ffe8c4b5e3ac93ceb7bd3266) ) \
714
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
715
 
        ROM_LOAD( "epr-12368-19.ic2", 0x000000, 0x08000, CRC(e27cb37a) SHA1(2b6259957e86d033a5689fd716a9efcfeff7d5ba) ) \
716
 
 
717
787
ROM_START( mt_gfoot ) /* Great Football */
718
788
        MEGATECH_BIOS
719
 
        MEGATECH_GAME19("game0", "inst0")
 
789
 
 
790
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
791
        ROM_LOAD16_WORD_SWAP( "mpr-10576f.ic1", 0x000000, 0x020000, CRC(2055825f) SHA1(a768f44ce7e50083ffe8c4b5e3ac93ceb7bd3266) )
 
792
        ROM_LOAD16_BYTE( "epr-12368-19.ic2", 0x300001, 0x08000, CRC(e27cb37a) SHA1(2b6259957e86d033a5689fd716a9efcfeff7d5ba) )
 
793
 
 
794
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
720
795
ROM_END
721
796
 
 
797
 
722
798
/* Game 20 - Last Battle */
723
 
#define MEGATECH_GAME20(GAME_REGION, INSTRUCTION_REGION) \
724
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
725
 
        ROM_LOAD16_WORD_SWAP( "mp12578f.ic1", 0x000000, 0x080000, CRC(531191a0) SHA1(f6bc26e975c01a3e10ab4033e4c5f494627a1e2f) ) \
726
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
727
 
        ROM_LOAD( "epr-12368-20.ic2", 0x000000, 0x08000, CRC(e1a71c91) SHA1(c250da18660d8aea86eb2abace41ba46130dabc8) ) \
728
 
 
729
799
ROM_START( mt_lastb ) /* Last Battle */
730
800
        MEGATECH_BIOS
731
 
        MEGATECH_GAME20("game0", "inst0")
 
801
 
 
802
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
803
        ROM_LOAD16_WORD_SWAP( "mp12578f.ic1", 0x000000, 0x080000, CRC(531191a0) SHA1(f6bc26e975c01a3e10ab4033e4c5f494627a1e2f) )
 
804
        ROM_LOAD16_BYTE( "epr-12368-20.ic2", 0x300001, 0x08000, CRC(e1a71c91) SHA1(c250da18660d8aea86eb2abace41ba46130dabc8) )
 
805
 
 
806
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
732
807
ROM_END
733
808
 
 
809
 
734
810
/* Game 21 - World Championship Soccer (Genesis) */
735
 
#define MEGATECH_GAME21(GAME_REGION, INSTRUCTION_REGION) \
736
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
737
 
        ROM_LOAD16_WORD_SWAP( "mp12607b.ic1", 0x000000, 0x080000, CRC(bc591b30) SHA1(55e8577171c0933eee53af1dabd0f4c6462d5fc8) ) \
738
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
739
 
        ROM_LOAD( "epr-12368-21.ic2", 0x000000, 0x08000, CRC(028ee46b) SHA1(cd8f81d66e5ae62107eb20e0ca5db4b66d4b2987) ) \
740
 
 
741
811
ROM_START( mt_wcsoc ) /* World Championship Soccer */
742
812
        MEGATECH_BIOS
743
 
        MEGATECH_GAME21("game0", "inst0")
 
813
 
 
814
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
815
        ROM_LOAD16_WORD_SWAP( "mp12607b.ic1", 0x000000, 0x080000, CRC(bc591b30) SHA1(55e8577171c0933eee53af1dabd0f4c6462d5fc8) )
 
816
        ROM_LOAD16_BYTE( "epr-12368-21.ic2", 0x300001, 0x08000, CRC(028ee46b) SHA1(cd8f81d66e5ae62107eb20e0ca5db4b66d4b2987) )
 
817
 
 
818
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
744
819
ROM_END
745
820
 
 
821
 
746
822
/* Game 22 - Tetris */
747
 
#define MEGATECH_GAME22(GAME_REGION, INSTRUCTION_REGION) \
748
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
749
 
        ROM_LOAD16_BYTE( "mpr-12356f.ic1", 0x000001, 0x020000, CRC(1e71c1a0) SHA1(44b2312792e49d46d71e0417a7f022e5ffddbbfe) ) \
750
 
        ROM_LOAD16_BYTE( "mpr-12357f.ic2", 0x000000, 0x020000, CRC(d52ca49c) SHA1(a9159892eee2c0cf28ebfcfa99f81f80781851c6) ) \
751
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
752
 
        ROM_LOAD( "epr-12368-22.ic3", 0x000000, 0x08000, CRC(1c1b6468) SHA1(568a38f4186167486e39ab4aa2c1ceffd0b81156) ) \
753
 
 
754
823
ROM_START( mt_tetri ) /* Tetris */
755
824
        MEGATECH_BIOS
756
 
        MEGATECH_GAME22("game0", "inst0")
 
825
 
 
826
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
827
        ROM_LOAD16_BYTE( "mpr-12356f.ic1", 0x000001, 0x020000, CRC(1e71c1a0) SHA1(44b2312792e49d46d71e0417a7f022e5ffddbbfe) )
 
828
        ROM_LOAD16_BYTE( "mpr-12357f.ic2", 0x000000, 0x020000, CRC(d52ca49c) SHA1(a9159892eee2c0cf28ebfcfa99f81f80781851c6) )
 
829
        ROM_LOAD16_BYTE( "epr-12368-22.ic3", 0x300001, 0x08000, CRC(1c1b6468) SHA1(568a38f4186167486e39ab4aa2c1ceffd0b81156) )
 
830
 
 
831
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
757
832
ROM_END
758
833
 
 
834
 
759
835
/* Game 23 - Ghouls and Ghosts (Genesis) */
760
 
#define MEGATECH_GAME23(GAME_REGION, INSTRUCTION_REGION) \
761
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
762
 
        ROM_LOAD16_WORD_SWAP( "mp12605.ic1", 0x000000, 0x020000, CRC(1066C6AB) SHA1(C30E4442732BDB38C96D780542F8550A94D127B0) ) \
763
 
        ROM_LOAD16_WORD_SWAP( "mpr12606.ic2", 0x080000, 0x020000, CRC(D0BE7777) SHA1(A44B2A3D427F6973B5C1A3DCD8D1776366ACB9F7) ) \
764
 
        ROM_CONTINUE(0x020000,0x60000) \
765
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
766
 
        ROM_LOAD( "epr-12368-23.ic3", 0x000000, 0x08000, CRC(7ee58546) SHA1(ad5bb0934475eacdc5e354f67c96fe0d2512d33b) ) \
767
 
 
768
836
ROM_START( mt_gng ) /* Ghouls and Ghosts */
769
837
        MEGATECH_BIOS
770
 
        MEGATECH_GAME23("game0", "inst0")
 
838
 
 
839
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
840
        ROM_LOAD16_WORD_SWAP( "mp12605.ic1", 0x000000, 0x020000, CRC(1066C6AB) SHA1(C30E4442732BDB38C96D780542F8550A94D127B0) )
 
841
        ROM_LOAD16_WORD_SWAP( "mpr12606.ic2", 0x080000, 0x020000, CRC(D0BE7777) SHA1(A44B2A3D427F6973B5C1A3DCD8D1776366ACB9F7) )
 
842
        ROM_CONTINUE(0x020000,0x60000)
 
843
        ROM_LOAD16_BYTE( "epr-12368-23.ic3", 0x300001, 0x08000, CRC(7ee58546) SHA1(ad5bb0934475eacdc5e354f67c96fe0d2512d33b) )
 
844
 
 
845
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
771
846
ROM_END
772
847
 
 
848
 
773
849
/* Game 24 - Super Hang-On (Genesis) */
774
 
#define MEGATECH_GAME24(GAME_REGION, INSTRUCTION_REGION) \
775
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
776
 
        ROM_LOAD16_WORD_SWAP( "mpr-12640.ic1", 0x000000, 0x080000, CRC(2fe2cf62) SHA1(4728bcc847deb38b16338cbd0154837cd4a07b7d) ) \
777
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
778
 
        ROM_LOAD( "epr-12368-24.ic2", 0x000000, 0x08000, CRC(6c2db7e3) SHA1(8de0a10ed9185c9e98f17784811a79d3ce8c4c03) ) \
779
 
 
780
850
ROM_START( mt_shang ) /* Super Hang-On */
781
851
        MEGATECH_BIOS
782
 
        MEGATECH_GAME24("game0", "inst0")
 
852
 
 
853
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
854
        ROM_LOAD16_WORD_SWAP( "mpr-12640.ic1", 0x000000, 0x080000, CRC(2fe2cf62) SHA1(4728bcc847deb38b16338cbd0154837cd4a07b7d) )
 
855
        ROM_LOAD16_BYTE( "epr-12368-24.ic2", 0x300001, 0x08000, CRC(6c2db7e3) SHA1(8de0a10ed9185c9e98f17784811a79d3ce8c4c03) )
 
856
 
 
857
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
783
858
ROM_END
784
859
 
 
860
 
785
861
/* Game 25 - Golden Axe (Genesis) */
786
 
#define MEGATECH_GAME25(GAME_REGION, INSTRUCTION_REGION) \
787
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
788
 
        ROM_LOAD16_WORD_SWAP( "12806.ic1", 0x000000, 0x080000, CRC(43456820) SHA1(2f7f1fcd979969ac99426f11ab99999a5494a121) ) \
789
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
790
 
        ROM_LOAD( "epr-12368-25.ic2", 0x000000, 0x08000, CRC(1f07ed28) SHA1(9d54192f4c6c1f8a51c38a835c1dd1e4e3e8279e) ) \
791
 
 
792
862
ROM_START( mt_gaxe ) /* Golden Axe */
793
863
        MEGATECH_BIOS
794
 
        MEGATECH_GAME25("game0", "inst0")
 
864
 
 
865
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
866
        ROM_LOAD16_WORD_SWAP( "12806.ic1", 0x000000, 0x080000, CRC(43456820) SHA1(2f7f1fcd979969ac99426f11ab99999a5494a121) )
 
867
        ROM_LOAD16_BYTE( "epr-12368-25.ic2", 0x300001, 0x08000, CRC(1f07ed28) SHA1(9d54192f4c6c1f8a51c38a835c1dd1e4e3e8279e) )
 
868
 
 
869
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
795
870
ROM_END
796
871
 
 
872
 
797
873
/* Game 26 - Forgotten Worlds */
798
874
/* why is this pre-swapped like a console dump?? */
799
 
#define MEGATECH_GAME26(GAME_REGION, INSTRUCTION_REGION) \
800
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
801
 
        ROM_LOAD( "mpr-12672-h.ic1", 0x000000, 0x080000, CRC(d0ee6434) SHA1(8b9a37c206c332ef23dc71f09ec40e1a92b1f83a) ) \
802
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
803
 
        ROM_LOAD( "epr-12368-26.ic2", 0x000000, 0x08000, CRC(4623b573) SHA1(29df4a5c5de66cd9cb7519e4f30000f7dddc2138) ) \
804
 
 
805
875
ROM_START( mt_fwrld ) /* Forgotten Worlds */
806
876
        MEGATECH_BIOS
807
 
        MEGATECH_GAME26("game0", "inst0")
 
877
 
 
878
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
879
        ROM_LOAD( "mpr-12672-h.ic1", 0x000000, 0x080000, CRC(d0ee6434) SHA1(8b9a37c206c332ef23dc71f09ec40e1a92b1f83a) )
 
880
        ROM_LOAD16_BYTE( "epr-12368-26.ic2", 0x300001, 0x08000, CRC(4623b573) SHA1(29df4a5c5de66cd9cb7519e4f30000f7dddc2138) )
 
881
 
 
882
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
808
883
ROM_END
809
884
 
 
885
 
810
886
/* Game 27 - Mystic Defender */
811
 
#define MEGATECH_GAME27(GAME_REGION, INSTRUCTION_REGION) \
812
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
813
 
        ROM_LOAD16_WORD_SWAP( "mp12707.1", 0x000000, 0x080000, CRC(4f2c513d) SHA1(f9bb548b3688170fe18bb3f1b5b54182354143cf) ) \
814
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
815
 
        ROM_LOAD( "epr-12368-27.ic2", 0x000000, 0x08000, CRC(caf46f78) SHA1(a9659e86a6a223646338cd8f29c346866e4406c7) ) \
816
 
 
817
887
ROM_START( mt_mystd ) /* Mystic Defender */
818
888
        MEGATECH_BIOS
819
 
        MEGATECH_GAME27("game0", "inst0")
 
889
 
 
890
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
891
        ROM_LOAD16_WORD_SWAP( "mp12707.1", 0x000000, 0x080000, CRC(4f2c513d) SHA1(f9bb548b3688170fe18bb3f1b5b54182354143cf) )
 
892
        ROM_LOAD16_BYTE( "epr-12368-27.ic2", 0x300001, 0x08000, CRC(caf46f78) SHA1(a9659e86a6a223646338cd8f29c346866e4406c7) )
 
893
 
 
894
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
820
895
ROM_END
821
896
 
 
897
 
822
898
/* Game 28 - The Revenge of Shinobi */
823
 
#define MEGATECH_GAME28(GAME_REGION, INSTRUCTION_REGION) \
824
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
825
 
        ROM_LOAD16_WORD_SWAP( "mp12675.ic1", 0x000000, 0x080000, CRC(672A1D4D) SHA1(5FD0AF14C8F2CF8CEAB1AE61A5A19276D861289A) ) \
826
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
827
 
        ROM_LOAD( "epr-12368-28.ic2", 0x000000, 0x08000, CRC(0D30BEDE) SHA1(73A090D84B78A570E02FB54A33666DCADA52849B) ) \
828
 
 
829
899
ROM_START( mt_revsh ) /* The Revenge Of Shinobi */
830
900
        MEGATECH_BIOS
831
 
        MEGATECH_GAME28("game0", "inst0")
 
901
 
 
902
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
903
        ROM_LOAD16_WORD_SWAP( "mp12675.ic1", 0x000000, 0x080000, CRC(672A1D4D) SHA1(5FD0AF14C8F2CF8CEAB1AE61A5A19276D861289A) )
 
904
        ROM_LOAD16_BYTE( "epr-12368-28.ic2", 0x300001, 0x08000, CRC(0D30BEDE) SHA1(73A090D84B78A570E02FB54A33666DCADA52849B) )
 
905
 
 
906
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
832
907
ROM_END
833
908
 
 
909
 
834
910
/* Game 29 - Parlour Games (SMS) */
835
 
#define MEGATECH_GAME29(GAME_REGION, INSTRUCTION_REGION) \
836
 
        ROM_REGION( 0x300000, GAME_REGION, 0 ) \
837
 
        ROM_LOAD( "mp11404.ic1", 0x000000, 0x020000, CRC(E030E66C) SHA1(06664DAF208F07CB00B603B12ECCFC3F01213A17) ) \
838
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_SMS ) \
839
 
        ROM_LOAD( "epr-12368-29.ic2", 0x000000, 0x08000, CRC(534151e8) SHA1(219238d90c1d3ac07ff64c9a2098b490fff68f04) ) \
840
 
 
841
911
ROM_START( mt_parlg ) /* Parlour Games */
842
912
        MEGATECH_BIOS
843
 
        MEGATECH_GAME29("game0", "inst0")
 
913
 
 
914
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
915
        ROM_LOAD16_WORD_SWAP( "mp11404.ic1", 0x000000, 0x020000, CRC(E030E66C) SHA1(06664DAF208F07CB00B603B12ECCFC3F01213A17) )
 
916
        ROM_LOAD16_BYTE( "epr-12368-29.ic2", 0x300001, 0x08000, CRC(534151e8) SHA1(219238d90c1d3ac07ff64c9a2098b490fff68f04) )
 
917
 
 
918
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASEFF )
844
919
ROM_END
845
920
 
 
921
 
846
922
/* Game 31 - Arnold Palmer Tournament Gold */
847
 
#define MEGATECH_GAME31(GAME_REGION, INSTRUCTION_REGION) \
848
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
849
 
        ROM_LOAD16_WORD_SWAP( "mp12645f.ic1", 0x000000, 0x080000, CRC(c07ef8d2) SHA1(9d111fdc7bb92d52bfa048cd134aa488b4f475ef) ) \
850
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
851
 
        ROM_LOAD( "epr-12368-31.ic2", 0x000000, 0x08000, CRC(30af7e4a) SHA1(baf91d527393dc90aba9371abcb1e690bcc83c7e) ) \
852
 
 
853
923
ROM_START( mt_tgolf ) /* Arnold Palmer Tournament Golf */
854
924
        MEGATECH_BIOS
855
 
        MEGATECH_GAME31("game0", "inst0")
 
925
 
 
926
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
927
        ROM_LOAD16_WORD_SWAP( "mp12645f.ic1", 0x000000, 0x080000, CRC(c07ef8d2) SHA1(9d111fdc7bb92d52bfa048cd134aa488b4f475ef) )
 
928
        ROM_LOAD16_BYTE( "epr-12368-31.ic2", 0x300001, 0x08000, CRC(30af7e4a) SHA1(baf91d527393dc90aba9371abcb1e690bcc83c7e) )
 
929
 
 
930
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
856
931
ROM_END
857
932
 
 
933
 
858
934
/* Game 32 - Super Real Basketball */
859
935
/* why is this pre-swapped like a console dump?? */
860
 
#define MEGATECH_GAME32(GAME_REGION, INSTRUCTION_REGION) \
861
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
862
 
        ROM_LOAD( "mpr-12904f.ic1", 0x000000, 0x080000, CRC(4346e11a) SHA1(c86725780027ef9783cb7884c8770cc030b0cd0d) ) \
863
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
864
 
        ROM_LOAD( "epr-12368-32.ic2", 0x000000, 0x08000, CRC(f70adcbe) SHA1(d4412a7cd59fe282a1c6619aa1051a2a2e00e1aa) ) \
865
 
 
866
936
ROM_START( mt_srbb ) /* Super Real Basketball */
867
937
        MEGATECH_BIOS
868
 
        MEGATECH_GAME32("game0", "inst0")
 
938
 
 
939
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
940
        ROM_LOAD( "mpr-12904f.ic1", 0x000000, 0x080000, CRC(4346e11a) SHA1(c86725780027ef9783cb7884c8770cc030b0cd0d) )
 
941
        ROM_LOAD16_BYTE( "epr-12368-32.ic2", 0x300001, 0x08000, CRC(f70adcbe) SHA1(d4412a7cd59fe282a1c6619aa1051a2a2e00e1aa) )
 
942
 
 
943
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
869
944
ROM_END
870
945
 
 
946
 
871
947
/* Game 35 - Tommy Lasorda Baseball */
872
 
#define MEGATECH_GAME35(GAME_REGION, INSTRUCTION_REGION) \
873
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
874
 
        ROM_LOAD16_WORD_SWAP( "mp12706.ic1", 0x000000, 0x080000, CRC(8901214f) SHA1(f5ec166be1cf9b86623b9d7a78ec903b899da32a) ) \
875
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
876
 
        ROM_LOAD( "epr-12368-35.ic2", 0x000000, 0x08000, CRC(67bbe482) SHA1(6fc283b22e68befabb44b2cc61a7f82a71d6f029) ) \
877
 
 
878
948
ROM_START( mt_tlbba ) /* Tommy Lasorda Baseball */
879
949
        MEGATECH_BIOS
880
 
        MEGATECH_GAME35("game0", "inst0")
 
950
 
 
951
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
952
        ROM_LOAD16_WORD_SWAP( "mp12706.ic1", 0x000000, 0x080000, CRC(8901214f) SHA1(f5ec166be1cf9b86623b9d7a78ec903b899da32a) )
 
953
        ROM_LOAD16_BYTE( "epr-12368-35.ic2", 0x300001, 0x08000, CRC(67bbe482) SHA1(6fc283b22e68befabb44b2cc61a7f82a71d6f029) )
 
954
 
 
955
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
881
956
ROM_END
882
957
 
 
958
 
883
959
/* Game 36 - Columns */
884
 
#define MEGATECH_GAME36(GAME_REGION, INSTRUCTION_REGION) \
885
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
886
 
        ROM_LOAD16_WORD_SWAP( "mp13193-t.ic1", 0x000000, 0x080000, CRC(8c770e2f) SHA1(02a3626025c511250a3f8fb3176eebccc646cda9) ) \
887
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
888
 
        ROM_LOAD( "epr-12368-36.ic3", 0x000000, 0x08000,  CRC(a4b29bac) SHA1(c9be866ac96243897d09612fe17562e0481f66e3) ) \
889
 
 
890
960
ROM_START( mt_cols ) /* Columns */
891
961
        MEGATECH_BIOS
892
 
        MEGATECH_GAME36("game0", "inst0")
 
962
 
 
963
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
964
        ROM_LOAD16_WORD_SWAP( "mp13193-t.ic1", 0x000000, 0x080000, CRC(8c770e2f) SHA1(02a3626025c511250a3f8fb3176eebccc646cda9) )
 
965
        ROM_LOAD16_BYTE( "epr-12368-36.ic3",   0x300001, 0x008000,  CRC(a4b29bac) SHA1(c9be866ac96243897d09612fe17562e0481f66e3) )
 
966
 
 
967
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
893
968
ROM_END
894
969
 
 
970
 
895
971
/* Game 38 - ESWAT */
896
 
#define MEGATECH_GAME38(GAME_REGION, INSTRUCTION_REGION) \
897
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
898
 
        ROM_LOAD16_WORD_SWAP( "mp13192-h.ic1", 0x000000, 0x080000, CRC(82f458ef) SHA1(58444b783312def71ecffc4ad021b72a609685cb) ) \
899
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
900
 
        ROM_LOAD( "epr-12368-38.ic2", 0x000000, 0x08000, CRC(43c5529b) SHA1(104f85adea6da1612c0aa96d553efcaa387d7aaf) ) \
901
 
 
902
972
ROM_START( mt_eswat ) /* ESWAT */
903
973
        MEGATECH_BIOS
904
 
        MEGATECH_GAME38("game0", "inst0")
 
974
 
 
975
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
976
        ROM_LOAD16_WORD_SWAP( "mp13192-h.ic1", 0x000000, 0x080000, CRC(82f458ef) SHA1(58444b783312def71ecffc4ad021b72a609685cb) )
 
977
        ROM_LOAD16_BYTE( "epr-12368-38.ic2", 0x300001, 0x08000, CRC(43c5529b) SHA1(104f85adea6da1612c0aa96d553efcaa387d7aaf) )
 
978
 
 
979
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
905
980
ROM_END
906
981
 
 
982
 
907
983
/* Game 39 - Super Monaco Grand Prix (Genesis) */
908
 
#define MEGATECH_GAME39(GAME_REGION, INSTRUCTION_REGION) \
909
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
910
 
        ROM_LOAD16_WORD_SWAP( "13250.ic1", 0x000000, 0x080000, CRC(189b885f) SHA1(31c06ffcb48b1604989a94e584261457de4f1f46) ) \
911
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
912
 
        ROM_LOAD( "epr-12368-39.ic2", 0x000000, 0x08000, CRC(64b3ce25) SHA1(83a9f2432d146a712b037f96f261742f7dc810bb) ) \
913
 
 
914
984
ROM_START( mt_smgp ) /* Super Monaco Grand Prix */
915
985
        MEGATECH_BIOS
916
 
        MEGATECH_GAME39("game0", "inst0")
 
986
 
 
987
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
988
        ROM_LOAD16_WORD_SWAP( "13250.ic1", 0x000000, 0x080000, CRC(189b885f) SHA1(31c06ffcb48b1604989a94e584261457de4f1f46) )
 
989
        ROM_LOAD16_BYTE( "epr-12368-39.ic2", 0x300001, 0x08000, CRC(64b3ce25) SHA1(83a9f2432d146a712b037f96f261742f7dc810bb) )
 
990
 
 
991
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
917
992
ROM_END
918
993
 
 
994
 
919
995
/* Game 40 - Moon Walker */
920
 
#define MEGATECH_GAME40(GAME_REGION, INSTRUCTION_REGION) \
921
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
922
 
        ROM_LOAD16_WORD_SWAP( "mp13285a.ic1", 0x000000, 0x080000, CRC(189516e4) SHA1(2a79e07da2e831832b8d448cae87a833c85e67c9) ) \
923
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
924
 
        ROM_LOAD( "epr-12368-40.ic2", 0x000000, 0x08000, CRC(0482378c) SHA1(734772f3ddb5ff82b76c3514d18a464b2bce8381) ) \
925
 
 
926
996
ROM_START( mt_mwalk ) /* Moon Walker */
927
997
        MEGATECH_BIOS
928
 
        MEGATECH_GAME40("game0", "inst0")
 
998
 
 
999
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1000
        ROM_LOAD16_WORD_SWAP( "mp13285a.ic1", 0x000000, 0x080000, CRC(189516e4) SHA1(2a79e07da2e831832b8d448cae87a833c85e67c9) )
 
1001
        ROM_LOAD16_BYTE( "epr-12368-40.ic2", 0x300001, 0x08000, CRC(0482378c) SHA1(734772f3ddb5ff82b76c3514d18a464b2bce8381) )
 
1002
 
 
1003
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
929
1004
ROM_END
930
1005
 
 
1006
 
931
1007
/* Game 41 - Crackdown */
932
 
#define MEGATECH_GAME41(GAME_REGION, INSTRUCTION_REGION) \
933
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
934
 
        ROM_LOAD16_WORD_SWAP( "mp13578a-s.ic1", 0x000000, 0x080000, CRC(23f19893) SHA1(09aca793871e2246af4dc24925bc1eda8ff34446) ) \
935
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
936
 
        ROM_LOAD( "epr-12368-41.ic2", 0x000000, 0x08000, CRC(3014acec) SHA1(07953e9ae5c23fc7e7d08993b215f4dfa88aa5d7) ) \
937
 
 
938
1008
ROM_START( mt_crack ) /* Crackdown */
939
1009
        MEGATECH_BIOS
940
 
        MEGATECH_GAME41("game0", "inst0")
 
1010
 
 
1011
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1012
        ROM_LOAD16_WORD_SWAP( "mp13578a-s.ic1", 0x000000, 0x080000, CRC(23f19893) SHA1(09aca793871e2246af4dc24925bc1eda8ff34446) )
 
1013
        ROM_LOAD16_BYTE( "epr-12368-41.ic2", 0x300001, 0x08000, CRC(3014acec) SHA1(07953e9ae5c23fc7e7d08993b215f4dfa88aa5d7) )
 
1014
 
 
1015
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
941
1016
ROM_END
942
1017
 
 
1018
 
943
1019
/* Game 43 - Shadow Dancer */
944
 
#define MEGATECH_GAME43(GAME_REGION, INSTRUCTION_REGION) \
945
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
946
 
        ROM_LOAD16_WORD_SWAP( "mpr-13571-s.ic1", 0x000000, 0x080000, CRC(56a29310) SHA1(55836177e4a1e2deb68408976b29d0282cf661a9) ) \
947
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
948
 
        ROM_LOAD( "epr-12368-43.ic2", 0x000000, 0x08000, CRC(1116cbc7) SHA1(ba6dd21ceadeedf730b71b67acbd20d9067114f3) ) \
949
 
 
950
1020
ROM_START( mt_shado ) /* Shadow Dancer */
951
1021
        MEGATECH_BIOS
952
 
        MEGATECH_GAME43("game0", "inst0")
 
1022
 
 
1023
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1024
        ROM_LOAD16_WORD_SWAP( "mpr-13571-s.ic1", 0x000000, 0x080000, CRC(56a29310) SHA1(55836177e4a1e2deb68408976b29d0282cf661a9) )
 
1025
        ROM_LOAD16_BYTE( "epr-12368-43.ic2", 0x300001, 0x08000, CRC(1116cbc7) SHA1(ba6dd21ceadeedf730b71b67acbd20d9067114f3) )
 
1026
 
 
1027
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
953
1028
ROM_END
954
1029
 
 
1030
 
955
1031
/* Game 44 - Arrow Flash */
956
 
#define MEGATECH_GAME44(GAME_REGION, INSTRUCTION_REGION) \
957
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
958
 
        ROM_LOAD16_WORD_SWAP( "mpr13396h.ic1", 0x000000, 0x080000, CRC(091226e3) SHA1(cb15c6277314f3c4a86b5ae5823f72811d5d269d) ) \
959
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
960
 
        ROM_LOAD( "epr-12368-44.ic2", 0x000000, 0x08000, CRC(e653065d) SHA1(96b014fc4df8eb2188ac94ed0a778d974fe6dcad) ) \
961
 
 
962
1032
ROM_START( mt_arrow ) /* Arrow Flash */
963
1033
        MEGATECH_BIOS
964
 
        MEGATECH_GAME44("game0", "inst0")
 
1034
 
 
1035
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1036
        ROM_LOAD16_WORD_SWAP( "mpr13396h.ic1", 0x000000, 0x080000, CRC(091226e3) SHA1(cb15c6277314f3c4a86b5ae5823f72811d5d269d) )
 
1037
        ROM_LOAD16_BYTE( "epr-12368-44.ic2", 0x300001, 0x08000, CRC(e653065d) SHA1(96b014fc4df8eb2188ac94ed0a778d974fe6dcad) )
 
1038
 
 
1039
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
965
1040
ROM_END
966
1041
 
 
1042
 
967
1043
/* Game 47 - Alien Storm */
968
 
#define MEGATECH_GAME47(GAME_REGION, INSTRUCTION_REGION) \
969
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
970
 
        ROM_LOAD16_WORD_SWAP( "mp13941.ic1", 0x000000, 0x080000, CRC(D71B3EE6) SHA1(05F272DAD243D132D517C303388248DC4C0482ED) ) \
971
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
972
 
        ROM_LOAD( "epr-12368-47.ic2", 0x000000, 0x08000, CRC(31FB683D) SHA1(E356DA020BBF817B97FB10C27F75CF5931EDF4FC) ) \
973
 
 
974
1044
ROM_START( mt_astrm ) /* Alien Storm */
975
1045
        MEGATECH_BIOS
976
 
        MEGATECH_GAME47("game0", "inst0")
 
1046
 
 
1047
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1048
        ROM_LOAD16_WORD_SWAP( "mp13941.ic1", 0x000000, 0x080000, CRC(D71B3EE6) SHA1(05F272DAD243D132D517C303388248DC4C0482ED) )
 
1049
        ROM_LOAD16_BYTE( "epr-12368-47.ic2", 0x300001, 0x08000, CRC(31FB683D) SHA1(E356DA020BBF817B97FB10C27F75CF5931EDF4FC) )
 
1050
 
 
1051
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
977
1052
ROM_END
978
1053
 
 
1054
 
979
1055
/* Game 48 - Wrestle War */
980
 
#define MEGATECH_GAME48(GAME_REGION, INSTRUCTION_REGION) \
981
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
982
 
        ROM_LOAD16_WORD_SWAP( "mpr-14025-f.ic1", 0x000000, 0x080000, CRC(26e899fe) SHA1(6d28e154ae2e4196097a2aa96c5acd5dfe7e3d2b) ) \
983
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
984
 
        ROM_LOAD( "epr-12368-48.ic2", 0x000000, 0x08000, CRC(25817bc2) SHA1(ba1bbb952aff12fb4d3ecfb10d82c54128439395) ) \
985
 
 
986
1056
ROM_START( mt_wwar ) /* Wrestle War */
987
1057
        MEGATECH_BIOS
988
 
        MEGATECH_GAME48("game0", "inst0")
 
1058
 
 
1059
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1060
        ROM_LOAD16_WORD_SWAP( "mpr-14025-f.ic1", 0x000000, 0x080000, CRC(26e899fe) SHA1(6d28e154ae2e4196097a2aa96c5acd5dfe7e3d2b) )
 
1061
        ROM_LOAD16_BYTE( "epr-12368-48.ic2", 0x300001, 0x08000, CRC(25817bc2) SHA1(ba1bbb952aff12fb4d3ecfb10d82c54128439395) )
 
1062
 
 
1063
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
989
1064
ROM_END
990
1065
 
 
1066
 
991
1067
/* Game 49 - Bonanza Bros. */
992
 
#define MEGATECH_GAME49(GAME_REGION, INSTRUCTION_REGION) \
993
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
994
 
        ROM_LOAD16_WORD_SWAP( "mp13905a.ic1", 0x000000, 0x100000, CRC(68a88d60) SHA1(2f56e8a2b0999de4fa0d14a1527f4e1df0f9c7a2) ) \
995
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
996
 
        ROM_LOAD( "epr-12368-49.ic2", 0x000000, 0x08000, CRC(c5101da2) SHA1(636f30043e2e9291e193ef9a2ead2e97a0bf7380) ) \
997
 
 
998
1068
ROM_START( mt_bbros ) /* Bonanza Bros. */
999
1069
        MEGATECH_BIOS
1000
 
        MEGATECH_GAME49("game0", "inst0")
 
1070
 
 
1071
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1072
        ROM_LOAD16_WORD_SWAP( "mp13905a.ic1", 0x000000, 0x100000, CRC(68a88d60) SHA1(2f56e8a2b0999de4fa0d14a1527f4e1df0f9c7a2) )
 
1073
        ROM_LOAD16_BYTE( "epr-12368-49.ic2", 0x300001, 0x08000, CRC(c5101da2) SHA1(636f30043e2e9291e193ef9a2ead2e97a0bf7380) )
 
1074
 
 
1075
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1001
1076
ROM_END
1002
1077
 
 
1078
 
1003
1079
/* Game 51 - Streets of Rage */
1004
 
#define MEGATECH_GAME51(GAME_REGION, INSTRUCTION_REGION) \
1005
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1006
 
        ROM_LOAD16_WORD_SWAP( "mpr-13571-s.ic1", 0x000000, 0x080000, CRC(db4ac746) SHA1(c7cc24e2329f279574513fa32bbf79f72f75aeea) ) \
1007
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1008
 
        ROM_LOAD( "epr-12368-51.ic2", 0x000000, 0x08000, CRC(49b7d6f4) SHA1(96e69851c92715e7daf35b184cf374147a8d2880) ) \
1009
 
 
1010
1080
ROM_START( mt_srage ) /* Streets of Rage */
1011
1081
        MEGATECH_BIOS
1012
 
        MEGATECH_GAME51("game0", "inst0")
 
1082
 
 
1083
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1084
        ROM_LOAD16_WORD_SWAP( "mpr-13571-s.ic1", 0x000000, 0x080000, CRC(db4ac746) SHA1(c7cc24e2329f279574513fa32bbf79f72f75aeea) )
 
1085
        ROM_LOAD16_BYTE( "epr-12368-51.ic2", 0x300001, 0x08000, CRC(49b7d6f4) SHA1(96e69851c92715e7daf35b184cf374147a8d2880) )
 
1086
 
 
1087
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1013
1088
ROM_END
1014
1089
 
 
1090
 
1015
1091
/* Game 52 - Sonic The Hedgehog (Genesis) */
1016
 
#define MEGATECH_GAME52(GAME_REGION, INSTRUCTION_REGION) \
1017
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1018
 
        ROM_LOAD16_WORD_SWAP( "mp13913.ic1", 0x000000, 0x080000, CRC(480b4b5c) SHA1(ab1dc1f738e3b2d0898a314b123fa71182bf572e) ) \
1019
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1020
 
        ROM_LOAD( "epr-12368-52.ic2", 0x0000, 0x8000,  CRC(6a69d20c) SHA1(e483b39ff6eca37dc192dc296d004049e220554a) ) \
1021
 
 
1022
1092
ROM_START( mt_sonic ) /* Sonic The Hedgehog */
1023
1093
        MEGATECH_BIOS
1024
 
        MEGATECH_GAME52("game0", "inst0")
 
1094
 
 
1095
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1096
        ROM_LOAD16_WORD_SWAP( "mp13913.ic1", 0x000000, 0x080000, CRC(480b4b5c) SHA1(ab1dc1f738e3b2d0898a314b123fa71182bf572e) )
 
1097
        ROM_LOAD16_BYTE( "epr-12368-52.ic2", 0x300001, 0x8000,  CRC(6a69d20c) SHA1(e483b39ff6eca37dc192dc296d004049e220554a) )
 
1098
 
 
1099
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1025
1100
ROM_END
1026
1101
 
1027
 
#define MEGATECH_GAME52ALT(GAME_REGION, INSTRUCTION_REGION) \
1028
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1029
 
        ROM_LOAD16_WORD_SWAP( "mp13933.ic1", 0x000000, 0x080000, CRC(13775004) SHA1(5decfd35944a2d0e7b996b9a4a12b616a309fd5e) ) \
1030
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1031
 
        ROM_LOAD( "epr-12368-52.ic2", 0x0000, 0x8000,  CRC(6a69d20c) SHA1(e483b39ff6eca37dc192dc296d004049e220554a) ) \
1032
1102
 
1033
1103
ROM_START( mt_sonia ) /* Sonic (alt)*/
1034
1104
        MEGATECH_BIOS
1035
 
        MEGATECH_GAME52ALT("game0", "inst0")
 
1105
 
 
1106
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1107
        ROM_LOAD16_WORD_SWAP( "mp13933.ic1", 0x000000, 0x080000, CRC(13775004) SHA1(5decfd35944a2d0e7b996b9a4a12b616a309fd5e) )
 
1108
        ROM_LOAD16_BYTE( "epr-12368-52.ic2", 0x300001, 0x8000,  CRC(6a69d20c) SHA1(e483b39ff6eca37dc192dc296d004049e220554a) )
 
1109
 
 
1110
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1036
1111
ROM_END
1037
1112
 
 
1113
 
1038
1114
/* Game 53 - Fire Shark */
1039
 
#define MEGATECH_GAME53(GAME_REGION, INSTRUCTION_REGION) \
1040
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1041
 
        ROM_LOAD16_WORD_SWAP( "mp14341.ic1", 0x000000, 0x080000, CRC(04d65ebc) SHA1(24338aecdc52b6f416548be722ca475c83dbae96) ) \
1042
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1043
 
        ROM_LOAD( "epr-12368-53.ic2", 0x000000, 0x08000,  CRC(4fa61044) SHA1(7810deea221c10b0b2f5233443d81f4f1998ee58) ) \
1044
 
 
1045
1115
        /* alt version with these roms exists, but the content is the same */
1046
1116
        /* (6a221fd6) ep14706.ic1             mp14341.ic1  [even]     IDENTICAL */
1047
1117
        /* (09fa48af) ep14707.ic2             mp14341.ic1  [odd]      IDENTICAL */
1048
1118
 
1049
1119
ROM_START( mt_fshrk ) /* Fire Shark */
1050
1120
        MEGATECH_BIOS
1051
 
        MEGATECH_GAME53("game0", "inst0")
 
1121
 
 
1122
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1123
        ROM_LOAD16_WORD_SWAP( "mp14341.ic1", 0x000000, 0x080000, CRC(04d65ebc) SHA1(24338aecdc52b6f416548be722ca475c83dbae96) )
 
1124
        ROM_LOAD16_BYTE( "epr-12368-53.ic2", 0x300001, 0x08000,  CRC(4fa61044) SHA1(7810deea221c10b0b2f5233443d81f4f1998ee58) )
 
1125
 
 
1126
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1052
1127
ROM_END
1053
1128
 
 
1129
 
1054
1130
/* Game 54 - Spiderman */
1055
 
#define MEGATECH_GAME54(GAME_REGION, INSTRUCTION_REGION) \
1056
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1057
 
        ROM_LOAD16_WORD_SWAP( "mp14027-sm.ic1", 0x000000, 0x080000, CRC(e2c08a06) SHA1(39e592eafd47e2aa6edbb4845d44750057bff890) ) \
1058
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1059
 
        ROM_LOAD( "epr-12368-54.ic2", 0x000000, 0x08000,  CRC(30b68988) SHA1(04eeb0fad732a791b6bc0c0846306d567573649f) ) \
1060
 
 
1061
1131
ROM_START( mt_spman ) /* Spiderman */
1062
1132
        MEGATECH_BIOS
1063
 
        MEGATECH_GAME54("game0", "inst0")
1064
 
ROM_END
 
1133
 
 
1134
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1135
        ROM_LOAD16_WORD_SWAP( "mp14027-sm.ic1", 0x000000, 0x080000, CRC(e2c08a06) SHA1(39e592eafd47e2aa6edbb4845d44750057bff890) )
 
1136
        ROM_LOAD16_BYTE( "epr-12368-54.ic2", 0x300001, 0x08000,  CRC(30b68988) SHA1(04eeb0fad732a791b6bc0c0846306d567573649f) )
 
1137
 
 
1138
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
 
1139
ROM_END
 
1140
 
 
1141
 
 
1142
/* Game 55 - California Games */
 
1143
ROM_START( mt_calga ) /* California Games */
 
1144
        MEGATECH_BIOS
 
1145
 
 
1146
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1147
        ROM_LOAD16_BYTE( "epr-14494.ic1", 0x000001, 0x040000, CRC(cbe58b1b) SHA1(ea067fc08e644c993f8d13731425c9296c1a2a75) )
 
1148
        ROM_LOAD16_BYTE( "epr-14495.ic2", 0x000000, 0x040000, CRC(cb956f4f) SHA1(3574c496b79aefdec7d02975490ebe3bb373bc60) )
 
1149
        ROM_LOAD16_BYTE( "epr-12368-55.ic3", 0x300001, 0x08000, CRC(6f7dd8f5) SHA1(a6cb1aa8c3635738dd9e4d3e0d729d089fd9b599) )
 
1150
 
 
1151
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
 
1152
ROM_END
 
1153
 
1065
1154
 
1066
1155
/* Game 57 - Golden Axe 2 (Genesis) */
1067
 
#define MEGATECH_GAME57(GAME_REGION, INSTRUCTION_REGION) \
1068
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1069
 
        ROM_LOAD16_WORD_SWAP( "mp14272.ic1", 0x000000, 0x080000, CRC(d4784cae) SHA1(b6c286027d06fd850016a2a1ee1f1aeea080c3bb) ) \
1070
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1071
 
        ROM_LOAD( "epr-12368-57.ic2", 0x000000, 0x08000, CRC(dc9b4433) SHA1(efd3a598569010cdc4bf38ecbf9ed1b4e14ffe36) ) \
1072
 
 
1073
1156
ROM_START( mt_gaxe2 ) /* Golden Axe 2 */
1074
1157
        MEGATECH_BIOS
1075
 
        MEGATECH_GAME57("game0", "inst0")
 
1158
 
 
1159
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1160
        ROM_LOAD16_WORD_SWAP( "mp14272.ic1", 0x000000, 0x080000, CRC(d4784cae) SHA1(b6c286027d06fd850016a2a1ee1f1aeea080c3bb) )
 
1161
        ROM_LOAD16_BYTE( "epr-12368-57.ic2", 0x300001, 0x08000, CRC(dc9b4433) SHA1(efd3a598569010cdc4bf38ecbf9ed1b4e14ffe36) )
 
1162
 
 
1163
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1076
1164
ROM_END
1077
1165
 
 
1166
 
1078
1167
/* Game 58 - Sports Talk Football */
1079
 
#define MEGATECH_GAME58(GAME_REGION, INSTRUCTION_REGION) \
1080
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1081
 
        ROM_LOAD16_WORD_SWAP( "mp14356a-f.ic1", 0x000000, 0x100000, CRC(20cf32f6) SHA1(752314346a7a98b3808b3814609e024dc0a4108c) ) \
1082
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1083
 
        ROM_LOAD( "epr-12368-58.ic2", 0x000000, 0x08000, CRC(dce2708e) SHA1(fcebb1899ee11468f6bda705899f074e7de9d723) ) \
1084
 
 
1085
1168
ROM_START( mt_stf ) /* Sports Talk Football */
1086
1169
        MEGATECH_BIOS
1087
 
        MEGATECH_GAME58("game0", "inst0")
 
1170
 
 
1171
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1172
        ROM_LOAD16_WORD_SWAP( "mp14356a-f.ic1", 0x000000, 0x100000, CRC(20cf32f6) SHA1(752314346a7a98b3808b3814609e024dc0a4108c) )
 
1173
        ROM_LOAD16_BYTE( "epr-12368-58.ic2", 0x300001, 0x08000, CRC(dce2708e) SHA1(fcebb1899ee11468f6bda705899f074e7de9d723) )
 
1174
 
 
1175
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1088
1176
ROM_END
1089
1177
 
 
1178
 
1090
1179
/* Game 59 - Mario Lemieux Hockey */
1091
 
#define MEGATECH_GAME59(GAME_REGION, INSTRUCTION_REGION) \
1092
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1093
 
        ROM_LOAD16_WORD_SWAP( "mpr-14376-h.ic1", 0x000000, 0x80000, CRC(aa9be87e) SHA1(dceed94eaeb30e534f6953a4bc25ff37673b1e6b) ) \
1094
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1095
 
        ROM_LOAD( "epr-12368-59.ic2", 0x000000, 0x08000, CRC(6d47b438) SHA1(0a145f6438e4e55c957ae559663c37662b685246) ) \
1096
 
 
1097
1180
ROM_START( mt_mlh ) /* Mario Lemieux Hockey */
1098
1181
        MEGATECH_BIOS
1099
 
        MEGATECH_GAME59("game0", "inst0")
 
1182
 
 
1183
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1184
        ROM_LOAD16_WORD_SWAP( "mpr-14376-h.ic1", 0x000000, 0x80000, CRC(aa9be87e) SHA1(dceed94eaeb30e534f6953a4bc25ff37673b1e6b) )
 
1185
        ROM_LOAD16_BYTE( "epr-12368-59.ic2", 0x300001, 0x08000, CRC(6d47b438) SHA1(0a145f6438e4e55c957ae559663c37662b685246) )
 
1186
 
 
1187
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1100
1188
ROM_END
1101
1189
 
 
1190
 
1102
1191
/* Game 60 - Kid Chameleon */
1103
 
#define MEGATECH_GAME60(GAME_REGION, INSTRUCTION_REGION) \
1104
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1105
 
        ROM_LOAD16_WORD_SWAP( "mp14557.ic1", 0x000000, 0x100000, CRC(e1a889a4) SHA1(a2768eacafc47d371e5276f0cce4b12b6041337a) ) \
1106
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1107
 
        ROM_LOAD( "epr-12368-60.ic2", 0x000000, 0x08000, CRC(a8e4af18) SHA1(dfa49f6ec4047718f33dba1180f6204dbaff884c) ) \
1108
 
 
1109
1192
ROM_START( mt_kcham ) /* Kid Chameleon */
1110
1193
        MEGATECH_BIOS
1111
 
        MEGATECH_GAME60("game0", "inst0")
 
1194
 
 
1195
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1196
        ROM_LOAD16_WORD_SWAP( "mp14557.ic1", 0x000000, 0x100000, CRC(e1a889a4) SHA1(a2768eacafc47d371e5276f0cce4b12b6041337a) )
 
1197
        ROM_LOAD16_BYTE( "epr-12368-60.ic2", 0x300001, 0x08000, CRC(a8e4af18) SHA1(dfa49f6ec4047718f33dba1180f6204dbaff884c) )
 
1198
 
 
1199
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1112
1200
ROM_END
1113
1201
 
 
1202
 
1114
1203
/* Game 61 - Turbo Outrun */
1115
 
#define MEGATECH_GAME61(GAME_REGION, INSTRUCTION_REGION) \
1116
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1117
 
        ROM_LOAD16_WORD_SWAP( "epr-14674.ic1", 0x000000, 0x080000, CRC(453712a2) SHA1(5d2c8430a9a14aac7f19c22617539b0503ab92cd) ) \
1118
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1119
 
        ROM_LOAD( "epr-12368-61.ic2", 0x000000, 0x08000, CRC(4aa0b2a2) SHA1(bce03f88d6cfd02683d51c28058f6229fda13b49) ) \
1120
 
 
1121
1204
// original dump of epr-14674.ic1 had CRC(c2b9a802) SHA1(108cc844c944125f9d271a2f2db094301294e8c2)
1122
1205
// with the byte at offset 3 being F6 instead of Fe, this seems like a bad dump when compared to the Genesis rom which
1123
1206
// has been verified on multiple carts, chances are the ROM had developed a fault.
1124
 
 
1125
1207
ROM_START( mt_tout ) /* Turbo Outrun */
1126
1208
        MEGATECH_BIOS
1127
 
        MEGATECH_GAME61("game0", "inst0")
 
1209
 
 
1210
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1211
        ROM_LOAD16_WORD_SWAP( "epr-14674.ic1", 0x000000, 0x080000, CRC(453712a2) SHA1(5d2c8430a9a14aac7f19c22617539b0503ab92cd) )
 
1212
        ROM_LOAD16_BYTE( "epr-12368-61.ic2", 0x300001, 0x08000, CRC(4aa0b2a2) SHA1(bce03f88d6cfd02683d51c28058f6229fda13b49) )
 
1213
 
 
1214
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1128
1215
ROM_END
1129
1216
 
 
1217
 
1130
1218
/* Game 62 - Sonic The Hedgehog 2 */
1131
 
#define MEGATECH_GAME62(GAME_REGION, INSTRUCTION_REGION) \
1132
 
        ROM_REGION16_BE( 0x300000, GAME_REGION, 0 ) \
1133
 
        ROM_LOAD16_WORD_SWAP( "mp15000a-f.ic1", 0x000000, 0x100000, CRC(679ebb49) SHA1(557482064677702454562f753460993067ef9e16) ) \
1134
 
    MEGATECH_INSTRUCTION_REGION( INSTRUCTION_REGION, MEGATECH_GAME_IS_GEN ) \
1135
 
        ROM_LOAD( "epr-12368-62.ic2", 0x000000, 0x08000, CRC(14a8566f) SHA1(d1d14162144bf068ddd19e9736477ff98fb43f9e) ) \
1136
 
 
1137
1219
ROM_START( mt_soni2 ) /* Sonic The Hedgehog 2 */
1138
1220
        MEGATECH_BIOS
1139
 
        MEGATECH_GAME62("game0", "inst0")
1140
 
ROM_END
1141
 
 
1142
 
/* Compilations of games to show the multi-cart support */
1143
 
 
1144
 
ROM_START( mt_comp1 )
1145
 
        MEGATECH_BIOS
1146
 
        MEGATECH_GAME01("game0", "inst0")
1147
 
        MEGATECH_GAME13("game1", "inst1")
1148
 
        MEGATECH_GAME21("game2", "inst2")
1149
 
        MEGATECH_GAME06("game3", "inst3")
1150
 
        MEGATECH_GAME08("game4", "inst4")
1151
 
        MEGATECH_GAME28("game5", "inst5")
1152
 
        MEGATECH_GAME49("game6", "inst6")
1153
 
        MEGATECH_GAME60("game7", "inst7")
1154
 
ROM_END
1155
 
 
1156
 
ROM_START( mt_comp2 )
1157
 
        MEGATECH_BIOS
1158
 
        MEGATECH_GAME10("game0", "inst0")
1159
 
        MEGATECH_GAME39("game1", "inst1")
1160
 
        MEGATECH_GAME24("game2", "inst2")
1161
 
        MEGATECH_GAME52("game3", "inst3")
1162
 
        MEGATECH_GAME29("game4", "inst4")
1163
 
        MEGATECH_GAME36("game5", "inst5")
1164
 
        MEGATECH_GAME40("game6", "inst6")
1165
 
        MEGATECH_GAME57("game7", "inst7")
 
1221
 
 
1222
        ROM_REGION16_BE( 0x400000, "game0", ROMREGION_ERASE00 )
 
1223
        ROM_LOAD16_WORD_SWAP( "mp15000a-f.ic1", 0x000000, 0x100000, CRC(679ebb49) SHA1(557482064677702454562f753460993067ef9e16) )
 
1224
        ROM_LOAD16_BYTE( "epr-12368-62.ic2", 0x300001, 0x08000, CRC(14a8566f) SHA1(d1d14162144bf068ddd19e9736477ff98fb43f9e) )
 
1225
 
 
1226
        ROM_REGION( 0x01, "sms_pin", ROMREGION_ERASE00 )
1166
1227
ROM_END
1167
1228
 
1168
1229
 
1169
1230
 
1170
1231
/* nn */ /* nn is part of the instruction rom name, should there be a game for each number? */
1171
 
/* -- */ GAME( 1989, megatech, 0,        megatech, megatech, mtnew, ROT0, "Sega",                  "Mega-Tech BIOS", GAME_IS_BIOS_ROOT )
1172
 
/* 01 */ GAME( 1988, mt_beast, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Altered Beast (Mega-Tech)", GAME_NOT_WORKING )
1173
 
/* 02 */ GAME( 1988, mt_shar2, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Space Harrier II (Mega-Tech)", GAME_NOT_WORKING )
1174
 
/* 03 */ GAME( 1988, mt_stbld, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Super Thunder Blade (Mega-Tech)", GAME_NOT_WORKING )
1175
 
/* 04 */ GAME( 1987, mt_ggolf, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Great Golf (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
1176
 
/* 05 */ GAME( 198?, mt_gsocr, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Great Soccer (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! also bad */
1177
 
/* 06 */ GAME( 1987, mt_orun,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Out Run (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
1178
 
/* 07 */ GAME( 1987, mt_asyn,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Alien Syndrome (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
1179
 
/* 08 */ GAME( 1987, mt_shnbi, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Shinobi (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
1180
 
/* 09 */ // unknown
1181
 
/* 10 */ GAME( 1987, mt_aftrb, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "After Burner (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
1182
 
/* 11 */ GAME( 1989, mt_tfor2, megatech, megatech, megatech, mtnew, ROT0, "Tecno Soft / Sega",     "Thunder Force II MD (Mega-Tech)", GAME_NOT_WORKING )
 
1232
/* -- */ CONS( 1989, megatech, 0, 0,     megatech_slot, megatech, mt_slot, "Sega",                  "Mega-Tech", GAME_IS_BIOS_ROOT )
 
1233
/* 01 */ GAME( 1988, mt_beast, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Altered Beast (Mega-Tech)", GAME_NOT_WORKING )
 
1234
/* 02 */ GAME( 1988, mt_shar2, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Space Harrier II (Mega-Tech)", GAME_NOT_WORKING )
 
1235
/* 03 */ GAME( 1988, mt_stbld, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Super Thunder Blade (Mega-Tech)", GAME_NOT_WORKING )
 
1236
/* 04 */ GAME( 1987, mt_ggolf, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Great Golf (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
 
1237
/* 05 */ GAME( 198?, mt_gsocr, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Great Soccer (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! also bad */
 
1238
/* 06 */ GAME( 1987, mt_orun,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Out Run (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
 
1239
/* 07 */ GAME( 1987, mt_asyn,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Alien Syndrome (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
 
1240
/* 08 */ GAME( 1987, mt_shnbi, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Shinobi (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
 
1241
/* 09 */ GAME( 1987, mt_fz,    megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Fantasy Zone (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
 
1242
/* 10 */ GAME( 1987, mt_aftrb, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "After Burner (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
 
1243
/* 11 */ GAME( 1989, mt_tfor2, megatech, megatech, megatech, mt_crt, ROT0, "Tecno Soft / Sega",     "Thunder Force II MD (Mega-Tech)", GAME_NOT_WORKING )
1183
1244
/* 12 */ // unknown
1184
 
/* 13 */ GAME( 1986, mt_astro, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Astro Warrior (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
 
1245
/* 13 */ GAME( 1986, mt_astro, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Astro Warrior (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
1185
1246
/* 14 */ // unknown
1186
1247
/* 15 */ // unknown
1187
1248
/* 16 */ // unknown
1188
1249
/* 17 */ // unknown
1189
1250
/* 18 */ // unknown
1190
 
/* 19 */ GAME( 1987, mt_gfoot, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Great Football (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
1191
 
/* 20 */ GAME( 1989, mt_lastb, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Last Battle (Mega-Tech)", GAME_NOT_WORKING )
1192
 
/* 21 */ GAME( 1989, mt_wcsoc, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "World Championship Soccer (Mega-Tech)", GAME_NOT_WORKING )
1193
 
/* 22 */ GAME( 1989, mt_tetri, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Tetris (Mega-Tech)", GAME_NOT_WORKING )
1194
 
/* 23 */ GAME( 1989, mt_gng,   megatech, megatech, megatech, mtnew, ROT0, "Capcom / Sega",         "Ghouls'n Ghosts (Mega-Tech)", GAME_NOT_WORKING )
1195
 
/* 24 */ GAME( 1989, mt_shang, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Super Hang-On (Mega-Tech)", GAME_NOT_WORKING )
1196
 
/* 25 */ GAME( 1989, mt_gaxe,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Golden Axe (Mega-Tech)", GAME_NOT_WORKING )
1197
 
/* 26 */ GAME( 1989, mt_fwrld, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Forgotten Worlds (Mega-Tech)", GAME_NOT_WORKING )
1198
 
/* 27 */ GAME( 1989, mt_mystd, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Mystic Defender (Mega-Tech)", GAME_NOT_WORKING )
1199
 
/* 28 */ GAME( 1989, mt_revsh, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "The Revenge of Shinobi (Mega-Tech)", GAME_NOT_WORKING )
1200
 
/* 29 */ GAME( 1987, mt_parlg, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Parlour Games (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
 
1251
/* 19 */ GAME( 1987, mt_gfoot, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Great Football (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
 
1252
/* 20 */ GAME( 1989, mt_lastb, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Last Battle (Mega-Tech)", GAME_NOT_WORKING )
 
1253
/* 21 */ GAME( 1989, mt_wcsoc, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "World Championship Soccer (Mega-Tech)", GAME_NOT_WORKING )
 
1254
/* 22 */ GAME( 1989, mt_tetri, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Tetris (Mega-Tech)", GAME_NOT_WORKING )
 
1255
/* 23 */ GAME( 1989, mt_gng,   megatech, megatech, megatech, mt_crt, ROT0, "Capcom / Sega",         "Ghouls'n Ghosts (Mega-Tech)", GAME_NOT_WORKING )
 
1256
/* 24 */ GAME( 1989, mt_shang, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Super Hang-On (Mega-Tech)", GAME_NOT_WORKING )
 
1257
/* 25 */ GAME( 1989, mt_gaxe,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Golden Axe (Mega-Tech)", GAME_NOT_WORKING )
 
1258
/* 26 */ GAME( 1989, mt_fwrld, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Forgotten Worlds (Mega-Tech)", GAME_NOT_WORKING )
 
1259
/* 27 */ GAME( 1989, mt_mystd, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Mystic Defender (Mega-Tech)", GAME_NOT_WORKING )
 
1260
/* 28 */ GAME( 1989, mt_revsh, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "The Revenge of Shinobi (Mega-Tech)", GAME_NOT_WORKING )
 
1261
/* 29 */ GAME( 1987, mt_parlg, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Parlour Games (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
1201
1262
/* 30 */ // unknown
1202
 
/* 31 */ GAME( 1989, mt_tgolf, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Arnold Palmer Tournament Golf (Mega-Tech)", GAME_NOT_WORKING )
1203
 
/* 32 */ GAME( 1989, mt_srbb,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Super Real Basketball (Mega-Tech)", GAME_NOT_WORKING )
 
1263
/* 31 */ GAME( 1989, mt_tgolf, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Arnold Palmer Tournament Golf (Mega-Tech)", GAME_NOT_WORKING )
 
1264
/* 32 */ GAME( 1989, mt_srbb,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Super Real Basketball (Mega-Tech)", GAME_NOT_WORKING )
1204
1265
/* 33 */ // unknown
1205
1266
/* 34 */ // unknown
1206
 
/* 35 */ GAME( 1989, mt_tlbba, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Tommy Lasorda Baseball (Mega-Tech)", GAME_NOT_WORKING )
1207
 
/* 36 */ GAME( 1990, mt_cols,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Columns (Mega-Tech)", GAME_NOT_WORKING )
 
1267
/* 35 */ GAME( 1989, mt_tlbba, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Tommy Lasorda Baseball (Mega-Tech)", GAME_NOT_WORKING )
 
1268
/* 36 */ GAME( 1990, mt_cols,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Columns (Mega-Tech)", GAME_NOT_WORKING )
1208
1269
/* 37 */ // unknown
1209
 
/* 38 */ GAME( 1990, mt_eswat, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Cyber Police ESWAT: Enhanced Special Weapons and Tactics (Mega-Tech)", GAME_NOT_WORKING )
1210
 
/* 39 */ GAME( 1990, mt_smgp,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Super Monaco GP (Mega-Tech)", GAME_NOT_WORKING )
1211
 
/* 40 */ GAME( 1990, mt_mwalk, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Michael Jackson's Moonwalker (Mega-Tech)", GAME_NOT_WORKING )
1212
 
/* 41 */ GAME( 1990, mt_crack, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Crack Down (Mega-Tech)", GAME_NOT_WORKING )
 
1270
/* 38 */ GAME( 1990, mt_eswat, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Cyber Police ESWAT: Enhanced Special Weapons and Tactics (Mega-Tech)", GAME_NOT_WORKING )
 
1271
/* 39 */ GAME( 1990, mt_smgp,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Super Monaco GP (Mega-Tech)", GAME_NOT_WORKING )
 
1272
/* 40 */ GAME( 1990, mt_mwalk, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Michael Jackson's Moonwalker (Mega-Tech)", GAME_NOT_WORKING )
 
1273
/* 41 */ GAME( 1990, mt_crack, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Crack Down (Mega-Tech)", GAME_NOT_WORKING )
1213
1274
/* 42 */ // unknown
1214
 
/* 43 */ GAME( 1990, mt_shado, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Shadow Dancer (Mega-Tech)", GAME_NOT_WORKING )
1215
 
/* 44 */ GAME( 1990, mt_arrow, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Arrow Flash (Mega-Tech)", GAME_NOT_WORKING )
 
1275
/* 43 */ GAME( 1990, mt_shado, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Shadow Dancer (Mega-Tech)", GAME_NOT_WORKING )
 
1276
/* 44 */ GAME( 1990, mt_arrow, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Arrow Flash (Mega-Tech)", GAME_NOT_WORKING )
1216
1277
/* 45 */ // unknown
1217
1278
/* 46 */ // unknown
1218
 
/* 47 */ GAME( 1990, mt_astrm, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Alien Storm (Mega-Tech)", GAME_NOT_WORKING )
1219
 
/* 48 */ GAME( 1991, mt_wwar,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Wrestle War (Mega-Tech)", GAME_NOT_WORKING ) /* Copyright 1989, 1991 Sega */
1220
 
/* 49 */ GAME( 1991, mt_bbros, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Bonanza Bros. (Mega-Tech)", GAME_NOT_WORKING )
 
1279
/* 47 */ GAME( 1990, mt_astrm, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Alien Storm (Mega-Tech)", GAME_NOT_WORKING )
 
1280
/* 48 */ GAME( 1991, mt_wwar,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Wrestle War (Mega-Tech)", GAME_NOT_WORKING ) /* Copyright 1989, 1991 Sega */
 
1281
/* 49 */ GAME( 1991, mt_bbros, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Bonanza Bros. (Mega-Tech)", GAME_NOT_WORKING )
1221
1282
/* 50 */ // unknown
1222
 
/* 51 */ GAME( 1991, mt_srage, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Streets of Rage (Mega-Tech)", GAME_NOT_WORKING )
1223
 
/* 52 */ GAME( 1991, mt_sonic, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Sonic The Hedgehog (Mega-Tech, set 1)", GAME_NOT_WORKING )
1224
 
/*    */ GAME( 1991, mt_sonia, mt_sonic, megatech, megatech, mtnew, ROT0, "Sega",                  "Sonic The Hedgehog (Mega-Tech, set 2)", GAME_NOT_WORKING )
1225
 
/* 53 */ GAME( 1990, mt_fshrk, megatech, megatech, megatech, mtnew, ROT0, "Toaplan / Sega",        "Fire Shark (Mega-Tech)", GAME_NOT_WORKING )
1226
 
/* 54 */ GAME( 1991, mt_spman, megatech, megatech, megatech, mtnew, ROT0, "Marvel / Sega",         "Spider-Man vs The Kingpin (Mega-Tech)", GAME_NOT_WORKING )
1227
 
/* 55 */ // unknown
 
1283
/* 51 */ GAME( 1991, mt_srage, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Streets of Rage (Mega-Tech)", GAME_NOT_WORKING )
 
1284
/* 52 */ GAME( 1991, mt_sonic, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Sonic The Hedgehog (Mega-Tech, set 1)", GAME_NOT_WORKING )
 
1285
/*    */ GAME( 1991, mt_sonia, mt_sonic, megatech, megatech, mt_crt, ROT0, "Sega",                  "Sonic The Hedgehog (Mega-Tech, set 2)", GAME_NOT_WORKING )
 
1286
/* 53 */ GAME( 1990, mt_fshrk, megatech, megatech, megatech, mt_crt, ROT0, "Toaplan / Sega",        "Fire Shark (Mega-Tech)", GAME_NOT_WORKING )
 
1287
/* 54 */ GAME( 1991, mt_spman, megatech, megatech, megatech, mt_crt, ROT0, "Marvel / Sega",         "Spider-Man vs The Kingpin (Mega-Tech)", GAME_NOT_WORKING )
 
1288
/* 55 */ GAME( 1991, mt_calga, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "California Games (Mega-Tech)", GAME_NOT_WORKING )
1228
1289
/* 56 */ // unknown
1229
 
/* 57 */ GAME( 1991, mt_gaxe2, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Golden Axe II (Mega-Tech)", GAME_NOT_WORKING )
1230
 
/* 58 */ GAME( 1991, mt_stf,   megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Joe Montana II: Sports Talk Football (Mega-Tech)", GAME_NOT_WORKING )
1231
 
/* 59 */ GAME( 1991, mt_mlh,   megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Mario Lemieux Hockey (Mega-Tech)", GAME_NOT_WORKING )
1232
 
/* 60 */ GAME( 1992, mt_kcham, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Kid Chameleon (Mega-Tech)", GAME_NOT_WORKING )
1233
 
/* 61 */ GAME( 1992, mt_tout,  megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Turbo Outrun (Mega-Tech)", GAME_NOT_WORKING )
1234
 
/* 62 */ GAME( 1992, mt_soni2, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Sonic The Hedgehog 2 (Mega-Tech)", GAME_NOT_WORKING )
 
1290
/* 57 */ GAME( 1991, mt_gaxe2, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Golden Axe II (Mega-Tech)", GAME_NOT_WORKING )
 
1291
/* 58 */ GAME( 1991, mt_stf,   megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Joe Montana II: Sports Talk Football (Mega-Tech)", GAME_NOT_WORKING )
 
1292
/* 59 */ GAME( 1991, mt_mlh,   megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Mario Lemieux Hockey (Mega-Tech)", GAME_NOT_WORKING )
 
1293
/* 60 */ GAME( 1992, mt_kcham, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Kid Chameleon (Mega-Tech)", GAME_NOT_WORKING )
 
1294
/* 61 */ GAME( 1992, mt_tout,  megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Turbo Outrun (Mega-Tech)", GAME_NOT_WORKING )
 
1295
/* 62 */ GAME( 1992, mt_soni2, megatech, megatech, megatech, mt_crt, ROT0, "Sega",                  "Sonic The Hedgehog 2 (Mega-Tech)", GAME_NOT_WORKING )
1235
1296
 
1236
1297
/* more? */
1237
 
 
1238
 
/* Compilations to test multi-game support */
1239
 
/* xx */ GAME( 1992, mt_comp1, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Mega-Tech with various carts (set 1) (Mega-Tech)", GAME_NOT_WORKING )
1240
 
/* xx */ GAME( 1992, mt_comp2, megatech, megatech, megatech, mtnew, ROT0, "Sega",                  "Mega-Tech with various carts (set 2) (Mega-Tech)", GAME_NOT_WORKING )