it can probably be considered working now, same credits as before (nw)

This commit is contained in:
David Haywood 2014-02-02 17:46:27 +00:00
parent 1ac35ff51c
commit fe7e1a0441

View File

@ -218,7 +218,7 @@ static ADDRESS_MAP_START( amiga_map, AS_PROGRAM, 16, arcadia_amiga_state )
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs")
AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w)
AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("user1", 0) /* Kickstart BIOS */
AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0)
AM_RANGE(0x980000, 0x9fbfff) AM_ROM AM_REGION("user2", 0)
AM_RANGE(0x9fc000, 0x9ffffd) AM_RAM AM_SHARE("nvram")
@ -226,7 +226,19 @@ static ADDRESS_MAP_START( amiga_map, AS_PROGRAM, 16, arcadia_amiga_state )
AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user2", 0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( argh_map, AS_PROGRAM, 16, arcadia_amiga_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs")
AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w)
AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("user1", 0) /* Kickstart BIOS */
AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0)
// AM_RANGE(0x980000, 0x9fefff) AM_ROM AM_REGION("user3", 0)
AM_RANGE(0x9ff000, 0x9fffff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user3", 0)
ADDRESS_MAP_END
/*************************************
*
@ -356,6 +368,12 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
MCFG_AMIGA_FDC_ADD("fdc", AMIGA_68000_NTSC_CLOCK)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( argh, arcadia )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(argh_map)
MACHINE_CONFIG_END
/*************************************
@ -864,14 +882,11 @@ ROM_START( ar_dlta )
ROM_END
ROM_START( ar_argh )
ROM_START( ar_argh ) // this plugs directly into the a500 motherboard, no arcadia bios, just the a500 kickstart and game ROMs
ROM_REGION16_BE(0x80000, "user1", 0 )
ROM_LOAD16_WORD( "kick12.rom", 0x000000, 0x040000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88) )
ROM_COPY( "user1", 0x000000, 0x040000, 0x040000 )
// this plugs directly into the a500 motherboard, no arcadia bios, just the a500 kickstart and game ROMs
ROM_REGION16_BE( 0x80000, "user2", ROMREGION_ERASEFF )
ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
ROM_LOAD16_BYTE( "argh-1-hi-11-28-87.u12", 0x000000, 0x10000, CRC(3b1f8075) SHA1(61aeff9f6a2dff6efe4276cb0bcbb80b495e26b6) )
ROM_LOAD16_BYTE( "argh-1-lo-11-28-87.u16", 0x000001, 0x10000, CRC(78b77071) SHA1(5848e30cfd08f9241f8ff9267fdcf2c87c72cdb0) )
@ -964,8 +979,10 @@ void arcadia_amiga_state::arcadia_init()
/* OnePlay bios is encrypted, TenPlay is not */
biosrom = (UINT16 *)memregion("user2")->base();
if (biosrom[0] != 0x4afc)
generic_decode("user2", 6, 1, 0, 2, 3, 4, 5, 7);
if (biosrom)
if (biosrom[0] != 0x4afc)
generic_decode("user2", 6, 1, 0, 2, 3, 4, 5, 7);
}
@ -990,7 +1007,7 @@ DRIVER_INIT_MEMBER(arcadia_amiga_state,sprg) { arcadia_init(); generic_decode("u
DRIVER_INIT_MEMBER(arcadia_amiga_state,xeon) { arcadia_init(); generic_decode("user3", 3, 1, 2, 4, 0, 5, 6, 7); }
DRIVER_INIT_MEMBER(arcadia_amiga_state,pm) { arcadia_init(); generic_decode("user3", 7, 6, 5, 4, 3, 2, 1, 0); } // no scramble
DRIVER_INIT_MEMBER(arcadia_amiga_state,dlta) { arcadia_init(); generic_decode("user3", 4, 1, 7, 6, 2, 0, 3, 5); }
DRIVER_INIT_MEMBER(arcadia_amiga_state,argh) { arcadia_init(); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); memcpy(memregion("user2")->base(), memregion("user3")->base(), 0x80000); }
DRIVER_INIT_MEMBER(arcadia_amiga_state,argh) { arcadia_init(); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); }
/*************************************
@ -1039,4 +1056,4 @@ GAME( 1988, ar_pm, ar_bios, arcadia, arcadia, arcadia_amiga_state, pm, ROT
GAME( 1988, ar_dlta, ar_bios, arcadia, arcadia, arcadia_amiga_state, dlta, ROT0, "Arcadia Systems", "Delta Command (Arcadia)", 0 )
GAME( 1988, ar_argh, ar_bios, arcadia, arcadia, arcadia_amiga_state, argh, ROT0, "Arcadia Systems", "Aaargh (Arcadia)", 0 )
GAME( 1988, ar_argh, ar_bios, argh, arcadia, arcadia_amiga_state, argh, ROT0, "Arcadia Systems", "Aaargh (Arcadia)", 0 )