ROM_END /************************************* * * Driver initialization * *************************************/ static DRIVER_INIT( roadriot ) { static const UINT16 default_eeprom[] = { 0x0001,0x01B7,0x01AF,0x01E4,0x0100,0x0130,0x0300,0x01CC, 0x0700,0x01FE,0x0500,0x0102,0x0200,0x0108,0x011B,0x01C8, 0x0100,0x0107,0x0120,0x0100,0x0125,0x0500,0x0177,0x0162, 0x013A,0x010A,0x01B7,0x01AF,0x01E4,0x0100,0x0130,0x0300, 0x01CC,0x0700,0x01FE,0x0500,0x0102,0x0200,0x0108,0x011B, 0x01C8,0x0100,0x0107,0x0120,0x0100,0x0125,0x0500,0x0177, 0x0162,0x013A,0x010A,0xE700,0x0164,0x0106,0x0100,0x0104, 0x01B0,0x0146,0x012E,0x1A00,0x01C8,0x01D0,0x0118,0x0D00, 0x0118,0x0100,0x01C8,0x01D0,0x0000 }; atarigen_eeprom_default = default_eeprom; atarijsa_init(1, 3, 2, 0x0040); atarijsa3_init_adpcm(REGION_SOUND1); atarig42_playfield_base = 0x400; atarig42_motion_object_base = 0x200; atarig42_motion_object_mask = 0x1ff; sloop_base = memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, roadriot_sloop_data_r); sloop_base = memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, roadriot_sloop_data_w); asic65_config(ASIC65_STANDARD); /* Road Riot color MUX CRA10=!MGEP*!AN.VID7*AN.0 -- if (mopri < pfpri) && (!alpha) +!AN.VID7*AN.0*MO.0 or if (mopix == 0) && (!alpha) CRA9=MGEP*!AN.VID7*AN.0*!MO.0 -- if (mopri >= pfpri) && (mopix != 0) && (!alpha) +!AN.VID7*AN.0*PF.VID9 or if (pfpix & 0x200) && (!alpha) CRA8=MGEP*!AN.VID7*AN.0*!MO.0*MVID8 -- if (mopri >= pfpri) && (mopix != 0) && (mopix & 0x100) && (!alpha) +!MGEP*!AN.VID7*AN.0*PF.VID8 or if (mopri < pfpri) && (pfpix & 0x100) && (!alpha) +!AN.VID7*AN.0*MO.0*PF.VID8 or if (pfpix & 0x100) && (!alpha) CRMUXB=!AN.VID7*AN.0 -- if (!alpha) CRMUXA=!MGEP -- if (mopri < pfpri) +MO.0 or (mopix == 0) +AN.VID7 or (alpha) +!AN.0 */ }
static DRIVER_INIT( beathead ) { /* initialize the common systems */ atarigen_eeprom_default = NULL; atarijsa_init(1, 4, 2, 0x0040); atarijsa3_init_adpcm(REGION_SOUND1); /* prepare the speedups */ speedup_data = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x00000ae8, 0x00000aeb, 0, 0, speedup_r); movie_speedup_data = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x00000804, 0x00000807, 0, 0, movie_speedup_r); }
static DRIVER_INIT( guardian ) { static const UINT16 default_eeprom[] = { 0x0001,0x01FD,0x01FF,0x01EF,0x0100,0x01CD,0x0300,0x0104, 0x0700,0x0117,0x0F00,0x0133,0x1F00,0x0133,0x2400,0x0120, 0x0600,0x0104,0x0300,0x010C,0x01A0,0x0100,0x0152,0x0179, 0x012D,0x01BD,0x01FD,0x01FF,0x01EF,0x0100,0x01CD,0x0300, 0x0104,0x0700,0x0117,0x0F00,0x0133,0x1F00,0x0133,0x2400, 0x0120,0x0600,0x0104,0x0300,0x010C,0x01A0,0x0100,0x0152, 0x0179,0x012D,0x01BD,0x8C00,0x0118,0x01AB,0x015A,0x0100, 0x01D0,0x010B,0x01B8,0x01C7,0x01E2,0x0134,0x0100,0x010A, 0x01BE,0x016D,0x0142,0x0100,0x0120,0x0109,0x0110,0x0141, 0x0109,0x0100,0x0108,0x0134,0x0105,0x0148,0x1400,0x0000 }; atarigen_eeprom_default = default_eeprom; atarijsa_init(1, 3, 2, 0x0040); atarijsa3_init_adpcm(REGION_SOUND1); atarig42_playfield_base = 0x000; atarig42_motion_object_base = 0x400; atarig42_motion_object_mask = 0x3ff; /* it looks like they jsr to $80000 as some kind of protection */ /* put an RTS there so we don't die */ *(UINT16 *)&memory_region(REGION_CPU1)[0x80000] = 0x4E75; sloop_base = memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, guardians_sloop_data_r); sloop_base = memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, guardians_sloop_data_w); asic65_config(ASIC65_GUARDIANS); /* Guardians color MUX CRA10=MGEP*!AN.VID7*AN.0*!MO.0 -- if (mopri >= pfpri) && (!alpha) && (mopix != 0) CRA9=MGEP*!AN.VID7*AN.0*!MO.0*MVID9 -- if (mopri >= pfpri) && (!alpha) && (mopix != 0) && (mopix & 0x200) +!MGEP*!AN.VID7*AN.0*PF.VID9 or if (mopri < pfpri) && (!alpha) && (pfpix & 0x200) +!AN.VID7*AN.0*MO.0*PF.VID9 or if (mopix == 0) && (!alpha) && (pfpix & 0x200) CRA8=MGEP*!AN.VID7*AN.0*!MO.0*MVID8 -- if (mopri >= pfpri) && (!alpha) && (mopix != 0) && (mopix & 0x100) +!MGEP*!AN.VID7*AN.0*PF.VID8 or if (mopri < pfpri) && (!alpha) && (pfpix & 0x100) +!AN.VID7*AN.0*MO.0*PF.VID8 or if (mopix == 0) && (!alpha) && (pfpix & 0x100) CRMUXB=!AN.VID7*AN.0 -- if (!alpha) CRMUXA=!MGEP -- if (mopri < pfpri) +MO.0 or (mopix == 0) +AN.VID7 or (alpha) +!AN.0 */ }
static DRIVER_INIT( beathead ) { /* initialize the common systems */ atarigen_eeprom_default = NULL; atarijsa_init(1, 4, 2, 0x0040); atarijsa3_init_adpcm(REGION_SOUND1); atarigen_init_6502_speedup(1, 0x4321, 0x4339); /* copy the ROM data */ memcpy(rom_base, memory_region(REGION_USER1), memory_region_length(REGION_USER1)); /* prepare the speedups */ speedup_data = install_mem_read32_handler(0, 0x00000ae8, 0x00000aeb, speedup_r); movie_speedup_data = install_mem_read32_handler(0, 0x00000804, 0x00000807, movie_speedup_r); }