diff options
Diffstat (limited to 'src/mame/drivers/kinst.cpp')
-rw-r--r-- | src/mame/drivers/kinst.cpp | 253 |
1 files changed, 68 insertions, 185 deletions
diff --git a/src/mame/drivers/kinst.cpp b/src/mame/drivers/kinst.cpp index b4cc699301c..d3a6f558d0f 100644 --- a/src/mame/drivers/kinst.cpp +++ b/src/mame/drivers/kinst.cpp @@ -18,8 +18,6 @@ **************************************************************************** -**************************************************************************** - Guru-Readme for Killer Instinct 1 / Killer Instinct 2 Rare/Nintendo, 1994/1995 @@ -216,17 +214,17 @@ public: uint32_t *m_video_base; const uint8_t *m_control_map; emu_timer *m_irq0_stop_timer; - DECLARE_READ32_MEMBER(kinst_control_r); - DECLARE_WRITE32_MEMBER(kinst_control_w); - DECLARE_READ32_MEMBER(kinst_ide_r); - DECLARE_WRITE32_MEMBER(kinst_ide_w); - DECLARE_READ32_MEMBER(kinst_ide_extra_r); - DECLARE_WRITE32_MEMBER(kinst_ide_extra_w); + DECLARE_READ32_MEMBER(control_r); + DECLARE_WRITE32_MEMBER(control_w); + DECLARE_READ32_MEMBER(ide_r); + DECLARE_WRITE32_MEMBER(ide_w); + DECLARE_READ32_MEMBER(ide_extra_r); + DECLARE_WRITE32_MEMBER(ide_extra_w); DECLARE_DRIVER_INIT(kinst); DECLARE_DRIVER_INIT(kinst2); virtual void machine_start() override; virtual void machine_reset() override; - uint32_t screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(irq0_start); required_device<mips3_device> m_maincpu; required_device<ata_interface_device> m_ata; @@ -272,28 +270,6 @@ void kinst_state::machine_start() void kinst_state::machine_reset() { - ide_hdd_device *hdd = m_ata->subdevice<ata_slot_device>("0")->subdevice<ide_hdd_device>("hdd"); - uint16_t *identify_device = hdd->identify_device_buffer(); - - if (strncmp(machine().system().name, "kinst2", 6) != 0) - { - /* kinst: tweak the model number so we pass the check */ - identify_device[27] = ('S' << 8) | 'T'; - identify_device[28] = ('9' << 8) | '1'; - identify_device[29] = ('5' << 8) | '0'; - identify_device[30] = ('A' << 8) | 'G'; - identify_device[31] = (' ' << 8) | ' '; - } - else - { - /* kinst2: tweak the model number so we pass the check */ - identify_device[10] = ('0' << 8) | '0'; - identify_device[11] = ('S' << 8) | 'T'; - identify_device[12] = ('9' << 8) | '1'; - identify_device[13] = ('5' << 8) | '0'; - identify_device[14] = ('A' << 8) | 'G'; - } - /* set a safe base location for video */ m_video_base = &m_rambase[0x30000/4]; } @@ -306,7 +282,7 @@ void kinst_state::machine_reset() * *************************************/ -uint32_t kinst_state::screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t kinst_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int y; @@ -364,25 +340,25 @@ INTERRUPT_GEN_MEMBER(kinst_state::irq0_start) * *************************************/ -READ32_MEMBER(kinst_state::kinst_ide_r) +READ32_MEMBER(kinst_state::ide_r) { return m_ata->read_cs0(space, offset / 2, mem_mask); } -WRITE32_MEMBER(kinst_state::kinst_ide_w) +WRITE32_MEMBER(kinst_state::ide_w) { m_ata->write_cs0(space, offset / 2, data, mem_mask); } -READ32_MEMBER(kinst_state::kinst_ide_extra_r) +READ32_MEMBER(kinst_state::ide_extra_r) { return m_ata->read_cs1(space, 6, 0xff); } -WRITE32_MEMBER(kinst_state::kinst_ide_extra_w) +WRITE32_MEMBER(kinst_state::ide_extra_w) { m_ata->write_cs1(space, 6, data, 0xff); } @@ -395,7 +371,7 @@ WRITE32_MEMBER(kinst_state::kinst_ide_extra_w) * *************************************/ -READ32_MEMBER(kinst_state::kinst_control_r) +READ32_MEMBER(kinst_state::control_r) { uint32_t result; static const char *const portnames[] = { "P1", "P2", "VOLUME", "UNUSED", "DSW" }; @@ -430,7 +406,7 @@ READ32_MEMBER(kinst_state::kinst_control_r) } -WRITE32_MEMBER(kinst_state::kinst_control_w) +WRITE32_MEMBER(kinst_state::control_w) { uint32_t olddata; @@ -474,9 +450,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, kinst_state ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_SHARE("rambase") AM_RANGE(0x08000000, 0x087fffff) AM_RAM AM_SHARE("rambase2") - AM_RANGE(0x10000080, 0x100000ff) AM_READWRITE(kinst_control_r, kinst_control_w) AM_SHARE("control") - AM_RANGE(0x10000100, 0x1000013f) AM_READWRITE(kinst_ide_r, kinst_ide_w) - AM_RANGE(0x10000170, 0x10000173) AM_READWRITE(kinst_ide_extra_r, kinst_ide_extra_w) + AM_RANGE(0x10000080, 0x100000ff) AM_READWRITE(control_r, control_w) AM_SHARE("control") + AM_RANGE(0x10000100, 0x1000013f) AM_READWRITE(ide_r, ide_w) + AM_RANGE(0x10000170, 0x10000173) AM_READWRITE(ide_extra_r, ide_extra_w) AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("rombase") ADDRESS_MAP_END @@ -735,7 +711,7 @@ static MACHINE_CONFIG_START( kinst ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update_kinst) + MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette") @@ -754,64 +730,17 @@ MACHINE_CONFIG_END ROM_START( kinst ) ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_DEFAULT_BIOS("v1.5d") + ROM_SYSTEM_BIOS(0, "v1.5d", "Killer Instinct (v1.5d)") ROM_LOAD( "ki-l15d.u98", 0x00000, 0x80000, CRC(7b65ca3d) SHA1(607394d4ba1713f38c2cb5159303cace9cde991e) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "u10-l1", 0x000000, 0x80000, CRC(b6cc155f) SHA1(810d455df8f385d76143e9d7d048f2b555ff8bf0) ) - ROM_LOAD16_BYTE( "u11-l1", 0x200000, 0x80000, CRC(0b5e05df) SHA1(0595909cb667c38ac7c8c7bd0646b28899e27777) ) - ROM_LOAD16_BYTE( "u12-l1", 0x400000, 0x80000, CRC(d05ce6ad) SHA1(7a8ee405c118fd176b66353fa7bfab888cc63cd2) ) - ROM_LOAD16_BYTE( "u13-l1", 0x600000, 0x80000, CRC(7d0954ea) SHA1(ea4d1f153eb284f1bcfc5295fbce316bba6083f4) ) - ROM_LOAD16_BYTE( "u33-l1", 0x800000, 0x80000, CRC(8bbe4f0c) SHA1(b22e365bc8d58a80eaac226be14b4bb8d9a04844) ) - ROM_LOAD16_BYTE( "u34-l1", 0xa00000, 0x80000, CRC(b2e73603) SHA1(ee439f5162a2b3379d3f802328017bb3c68547d2) ) - ROM_LOAD16_BYTE( "u35-l1", 0xc00000, 0x80000, CRC(0aaef4fc) SHA1(48c4c954ac9db648f28ad64f9845e19ec432eec3) ) - ROM_LOAD16_BYTE( "u36-l1", 0xe00000, 0x80000, CRC(0577bb60) SHA1(cc78070cc41701e9a91fde5cfbdc7e1e83354854) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst", 0, SHA1(81d833236e994528d1482979261401b198d1ca53) ) -ROM_END - - -ROM_START( kinst14 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_SYSTEM_BIOS(1, "v1.4", "Killer Instinct (v1.4)") ROM_LOAD( "ki-l14.u98", 0x00000, 0x80000, CRC(afedb75f) SHA1(07254f20707377f7195e64675eb6458e663c1a9a) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "u10-l1", 0x000000, 0x80000, CRC(b6cc155f) SHA1(810d455df8f385d76143e9d7d048f2b555ff8bf0) ) - ROM_LOAD16_BYTE( "u11-l1", 0x200000, 0x80000, CRC(0b5e05df) SHA1(0595909cb667c38ac7c8c7bd0646b28899e27777) ) - ROM_LOAD16_BYTE( "u12-l1", 0x400000, 0x80000, CRC(d05ce6ad) SHA1(7a8ee405c118fd176b66353fa7bfab888cc63cd2) ) - ROM_LOAD16_BYTE( "u13-l1", 0x600000, 0x80000, CRC(7d0954ea) SHA1(ea4d1f153eb284f1bcfc5295fbce316bba6083f4) ) - ROM_LOAD16_BYTE( "u33-l1", 0x800000, 0x80000, CRC(8bbe4f0c) SHA1(b22e365bc8d58a80eaac226be14b4bb8d9a04844) ) - ROM_LOAD16_BYTE( "u34-l1", 0xa00000, 0x80000, CRC(b2e73603) SHA1(ee439f5162a2b3379d3f802328017bb3c68547d2) ) - ROM_LOAD16_BYTE( "u35-l1", 0xc00000, 0x80000, CRC(0aaef4fc) SHA1(48c4c954ac9db648f28ad64f9845e19ec432eec3) ) - ROM_LOAD16_BYTE( "u36-l1", 0xe00000, 0x80000, CRC(0577bb60) SHA1(cc78070cc41701e9a91fde5cfbdc7e1e83354854) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst", 0, SHA1(81d833236e994528d1482979261401b198d1ca53) ) -ROM_END - - -ROM_START( kinst13 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_SYSTEM_BIOS(2, "v1.3", "Killer Instinct (v1.3)") ROM_LOAD( "ki-l13.u98", 0x00000, 0x80000, CRC(65f7ea31) SHA1(7f21620a512549db6821a0b4fa53681a767b7974) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "u10-l1", 0x000000, 0x80000, CRC(b6cc155f) SHA1(810d455df8f385d76143e9d7d048f2b555ff8bf0) ) - ROM_LOAD16_BYTE( "u11-l1", 0x200000, 0x80000, CRC(0b5e05df) SHA1(0595909cb667c38ac7c8c7bd0646b28899e27777) ) - ROM_LOAD16_BYTE( "u12-l1", 0x400000, 0x80000, CRC(d05ce6ad) SHA1(7a8ee405c118fd176b66353fa7bfab888cc63cd2) ) - ROM_LOAD16_BYTE( "u13-l1", 0x600000, 0x80000, CRC(7d0954ea) SHA1(ea4d1f153eb284f1bcfc5295fbce316bba6083f4) ) - ROM_LOAD16_BYTE( "u33-l1", 0x800000, 0x80000, CRC(8bbe4f0c) SHA1(b22e365bc8d58a80eaac226be14b4bb8d9a04844) ) - ROM_LOAD16_BYTE( "u34-l1", 0xa00000, 0x80000, CRC(b2e73603) SHA1(ee439f5162a2b3379d3f802328017bb3c68547d2) ) - ROM_LOAD16_BYTE( "u35-l1", 0xc00000, 0x80000, CRC(0aaef4fc) SHA1(48c4c954ac9db648f28ad64f9845e19ec432eec3) ) - ROM_LOAD16_BYTE( "u36-l1", 0xe00000, 0x80000, CRC(0577bb60) SHA1(cc78070cc41701e9a91fde5cfbdc7e1e83354854) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst", 0, SHA1(81d833236e994528d1482979261401b198d1ca53) ) -ROM_END - - -ROM_START( kinstp ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_SYSTEM_BIOS(3, "proto v4.7", "Killer Instinct (proto v4.7)") ROM_LOAD( "ki-p47.u98", 0x00000, 0x80000, CRC(05e67bcb) SHA1(501e69b3026394f69229a6e9866c1037502b86bb) ) + ROM_SYSTEM_BIOS(4, "v1.5d AnyIDE", "Killer Instinct (v1.5d AnyIDE)") // unofficial version, allows use of alternate hard drives or CF cards + ROM_LOAD( "ki_l15di.u98", 0x00000, 0x80000, CRC(230f55fb) SHA1(f5f12311aae922d12f98d72ac8fdd77b7b084af2) ) ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ ROM_LOAD16_BYTE( "u10-l1", 0x000000, 0x80000, CRC(b6cc155f) SHA1(810d455df8f385d76143e9d7d048f2b555ff8bf0) ) @@ -830,83 +759,17 @@ ROM_END ROM_START( kinst2 ) ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_DEFAULT_BIOS("v1.4") + ROM_SYSTEM_BIOS(0, "v1.4", "Killer Instinct 2 (v1.4)") ROM_LOAD( "ki2-l14.u98", 0x00000, 0x80000, CRC(27d0285e) SHA1(aa7a2a9d72a47dd0ea2ee7b2776b79288060b179) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "ki2_l1.u10", 0x000000, 0x80000, CRC(fdf6ed51) SHA1(acfc9460cd5df01403b7f00b2f68c2a8734ad6d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u11", 0x200000, 0x80000, CRC(f9e70024) SHA1(fe7fc78f1c60b15f2bbdc4c455f55cdf30f48ed4) ) - ROM_LOAD16_BYTE( "ki2_l1.u12", 0x400000, 0x80000, CRC(2994c199) SHA1(9997a83432cb720f65b40a8af46f31a5d0d16d8e) ) - ROM_LOAD16_BYTE( "ki2_l1.u13", 0x600000, 0x80000, CRC(3fe6327b) SHA1(7ff164fc2f079d039921594be92208973d43aa03) ) - ROM_LOAD16_BYTE( "ki2_l1.u33", 0x800000, 0x80000, CRC(6f4dcdcf) SHA1(0ab6dbfb76e9fa2db072e287864ad1f9d514dd9b) ) - ROM_LOAD16_BYTE( "ki2_l1.u34", 0xa00000, 0x80000, CRC(5db48206) SHA1(48456a7b6592c40bc9c664dcd2ee2cfd91942811) ) - ROM_LOAD16_BYTE( "ki2_l1.u35", 0xc00000, 0x80000, CRC(7245ce69) SHA1(24a3ff009c8a7f5a0bfcb198b8dcb5df365770d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u36", 0xe00000, 0x80000, CRC(8920acbb) SHA1(0fca72c40067034939b984b4bf32972a5a6c26af) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst2", 0, SHA1(e7c9291b4648eae0012ea0cc230731ed4987d1d5) ) -ROM_END - - -ROM_START( kinst2k4 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ - ROM_LOAD( "ki2-l14k.u98", 0x00000, 0x80000, CRC(9cbd00a8) SHA1(926dce4bb9016331ea40d3c337a9ace896f07493) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "ki2_l1.u10", 0x000000, 0x80000, CRC(fdf6ed51) SHA1(acfc9460cd5df01403b7f00b2f68c2a8734ad6d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u11", 0x200000, 0x80000, CRC(f9e70024) SHA1(fe7fc78f1c60b15f2bbdc4c455f55cdf30f48ed4) ) - ROM_LOAD16_BYTE( "ki2_l1.u12", 0x400000, 0x80000, CRC(2994c199) SHA1(9997a83432cb720f65b40a8af46f31a5d0d16d8e) ) - ROM_LOAD16_BYTE( "ki2_l1.u13", 0x600000, 0x80000, CRC(3fe6327b) SHA1(7ff164fc2f079d039921594be92208973d43aa03) ) - ROM_LOAD16_BYTE( "ki2_l1.u33", 0x800000, 0x80000, CRC(6f4dcdcf) SHA1(0ab6dbfb76e9fa2db072e287864ad1f9d514dd9b) ) - ROM_LOAD16_BYTE( "ki2_l1.u34", 0xa00000, 0x80000, CRC(5db48206) SHA1(48456a7b6592c40bc9c664dcd2ee2cfd91942811) ) - ROM_LOAD16_BYTE( "ki2_l1.u35", 0xc00000, 0x80000, CRC(7245ce69) SHA1(24a3ff009c8a7f5a0bfcb198b8dcb5df365770d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u36", 0xe00000, 0x80000, CRC(8920acbb) SHA1(0fca72c40067034939b984b4bf32972a5a6c26af) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst2", 0, SHA1(e7c9291b4648eae0012ea0cc230731ed4987d1d5) ) -ROM_END - - -ROM_START( kinst213 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_SYSTEM_BIOS(1, "v1.3", "Killer Instinct 2 (v1.3)") ROM_LOAD( "ki2-l13.u98", 0x00000, 0x80000, CRC(25ebde3b) SHA1(771d150fb4de0a2ceb279954b9545458e93e2405) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "ki2_l1.u10", 0x000000, 0x80000, CRC(fdf6ed51) SHA1(acfc9460cd5df01403b7f00b2f68c2a8734ad6d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u11", 0x200000, 0x80000, CRC(f9e70024) SHA1(fe7fc78f1c60b15f2bbdc4c455f55cdf30f48ed4) ) - ROM_LOAD16_BYTE( "ki2_l1.u12", 0x400000, 0x80000, CRC(2994c199) SHA1(9997a83432cb720f65b40a8af46f31a5d0d16d8e) ) - ROM_LOAD16_BYTE( "ki2_l1.u13", 0x600000, 0x80000, CRC(3fe6327b) SHA1(7ff164fc2f079d039921594be92208973d43aa03) ) - ROM_LOAD16_BYTE( "ki2_l1.u33", 0x800000, 0x80000, CRC(6f4dcdcf) SHA1(0ab6dbfb76e9fa2db072e287864ad1f9d514dd9b) ) - ROM_LOAD16_BYTE( "ki2_l1.u34", 0xa00000, 0x80000, CRC(5db48206) SHA1(48456a7b6592c40bc9c664dcd2ee2cfd91942811) ) - ROM_LOAD16_BYTE( "ki2_l1.u35", 0xc00000, 0x80000, CRC(7245ce69) SHA1(24a3ff009c8a7f5a0bfcb198b8dcb5df365770d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u36", 0xe00000, 0x80000, CRC(8920acbb) SHA1(0fca72c40067034939b984b4bf32972a5a6c26af) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst2", 0, SHA1(e7c9291b4648eae0012ea0cc230731ed4987d1d5) ) -ROM_END - - -ROM_START( kinst2k3 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ - ROM_LOAD( "ki2-l13k.u98", 0x00000, 0x80000, CRC(3b4f16fc) SHA1(c28416f94453fd1f73ba01025276a04610569d12) ) - - ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "ki2_l1.u10", 0x000000, 0x80000, CRC(fdf6ed51) SHA1(acfc9460cd5df01403b7f00b2f68c2a8734ad6d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u11", 0x200000, 0x80000, CRC(f9e70024) SHA1(fe7fc78f1c60b15f2bbdc4c455f55cdf30f48ed4) ) - ROM_LOAD16_BYTE( "ki2_l1.u12", 0x400000, 0x80000, CRC(2994c199) SHA1(9997a83432cb720f65b40a8af46f31a5d0d16d8e) ) - ROM_LOAD16_BYTE( "ki2_l1.u13", 0x600000, 0x80000, CRC(3fe6327b) SHA1(7ff164fc2f079d039921594be92208973d43aa03) ) - ROM_LOAD16_BYTE( "ki2_l1.u33", 0x800000, 0x80000, CRC(6f4dcdcf) SHA1(0ab6dbfb76e9fa2db072e287864ad1f9d514dd9b) ) - ROM_LOAD16_BYTE( "ki2_l1.u34", 0xa00000, 0x80000, CRC(5db48206) SHA1(48456a7b6592c40bc9c664dcd2ee2cfd91942811) ) - ROM_LOAD16_BYTE( "ki2_l1.u35", 0xc00000, 0x80000, CRC(7245ce69) SHA1(24a3ff009c8a7f5a0bfcb198b8dcb5df365770d3) ) - ROM_LOAD16_BYTE( "ki2_l1.u36", 0xe00000, 0x80000, CRC(8920acbb) SHA1(0fca72c40067034939b984b4bf32972a5a6c26af) ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "kinst2", 0, SHA1(e7c9291b4648eae0012ea0cc230731ed4987d1d5) ) -ROM_END - - -ROM_START( kinst211 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ + ROM_SYSTEM_BIOS(2, "v1.1", "Killer Instinct 2 (v1.1)") ROM_LOAD( "ki2-l11.u98", 0x00000, 0x80000, CRC(0cb8de1e) SHA1(fe447f4b1d29b524f57c5ba1890652ef6afff88a) ) + ROM_SYSTEM_BIOS(3, "v1.0", "Killer Instinct 2 (v1.0)") + ROM_LOAD( "ki2-l10.u98", 0x00000, 0x80000, CRC(b17b4b3d) SHA1(756629cd1b51ae50f2b9818765dd3d277c3019b3) ) + ROM_SYSTEM_BIOS(4, "v1.4 AnyIDE", "Killer Instinct 2 (v1.4 AnyIDE)") + ROM_LOAD( "ki2_l14p.u98", 0x00000, 0x80000, CRC(d80c937a) SHA1(85a009638f2eada4c63240fc30a9e7be59afab7f) ) ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ ROM_LOAD16_BYTE( "ki2_l1.u10", 0x000000, 0x80000, CRC(fdf6ed51) SHA1(acfc9460cd5df01403b7f00b2f68c2a8734ad6d3) ) @@ -923,9 +786,15 @@ ROM_START( kinst211 ) ROM_END -ROM_START( kinst210 ) +ROM_START( kinst2uk ) ROM_REGION32_LE( 0x80000, "user1", 0 ) /* 512k for R4600 code */ - ROM_LOAD( "ki2-l10.u98", 0x00000, 0x80000, CRC(b17b4b3d) SHA1(756629cd1b51ae50f2b9818765dd3d277c3019b3) ) + ROM_DEFAULT_BIOS("v1.4k") + ROM_SYSTEM_BIOS(0, "v1.4k", "Killer Instinct 2 (v1.4k, upgrade kit)") + ROM_LOAD( "ki2-l14k.u98", 0x00000, 0x80000, CRC(9cbd00a8) SHA1(926dce4bb9016331ea40d3c337a9ace896f07493) ) + ROM_SYSTEM_BIOS(1, "v1.3k", "Killer Instinct 2 (v1.3k, upgrade kit)") + ROM_LOAD( "ki2-l13k.u98", 0x00000, 0x80000, CRC(3b4f16fc) SHA1(c28416f94453fd1f73ba01025276a04610569d12) ) + ROM_SYSTEM_BIOS(2, "v1.4 AnyIDE", "Killer Instinct 2 (v1.4k, upgrade kit AnyIDE)") + ROM_LOAD( "ki2_d14p.u98", 0x00000, 0x80000, CRC(d716d428) SHA1(1a3b000fdc35b3824a0c8142ba9b496490894543) ) ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */ ROM_LOAD16_BYTE( "ki2_l1.u10", 0x000000, 0x80000, CRC(fdf6ed51) SHA1(acfc9460cd5df01403b7f00b2f68c2a8734ad6d3) ) @@ -941,8 +810,6 @@ ROM_START( kinst210 ) DISK_IMAGE( "kinst2", 0, SHA1(e7c9291b4648eae0012ea0cc230731ed4987d1d5) ) ROM_END - - /************************************* * * Driver initialization @@ -955,6 +822,16 @@ DRIVER_INIT_MEMBER(kinst_state,kinst) /* set up the control register mapping */ m_control_map = kinst_control_map; + + ide_hdd_device *hdd = m_ata->subdevice<ata_slot_device>("0")->subdevice<ide_hdd_device>("hdd"); + uint16_t *identify_device = hdd->identify_device_buffer(); + + /* kinst: tweak the model number so we pass the check */ + identify_device[27] = ('S' << 8) | 'T'; + identify_device[28] = ('9' << 8) | '1'; + identify_device[29] = ('5' << 8) | '0'; + identify_device[30] = ('A' << 8) | 'G'; + identify_device[31] = (' ' << 8) | ' '; } @@ -971,6 +848,16 @@ DRIVER_INIT_MEMBER(kinst_state,kinst2) /* set up the control register mapping */ m_control_map = kinst2_control_map; + + ide_hdd_device *hdd = m_ata->subdevice<ata_slot_device>("0")->subdevice<ide_hdd_device>("hdd"); + uint16_t *identify_device = hdd->identify_device_buffer(); + + /* kinst2: tweak the model number so we pass the check */ + identify_device[10] = ('0' << 8) | '0'; + identify_device[11] = ('S' << 8) | 'T'; + identify_device[12] = ('9' << 8) | '1'; + identify_device[13] = ('5' << 8) | '0'; + identify_device[14] = ('A' << 8) | 'G'; } @@ -981,14 +868,10 @@ DRIVER_INIT_MEMBER(kinst_state,kinst2) * *************************************/ -GAME( 1994, kinst, 0, kinst, kinst, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.5d)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kinst14, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kinst13, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, kinstp, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (proto v4.7)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1995, kinst2, 0, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kinst2k4, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.4k, upgrade kit)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kinst213, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kinst2k3, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.3k, upgrade kit)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kinst211, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, kinst210, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.0)", MACHINE_SUPPORTS_SAVE ) + // versions selectable by changing bioses + +GAME( 1994, kinst, 0, kinst, kinst, kinst_state, kinst, ROT0, "Rare", "Killer Instinct", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, kinst2, 0, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2", MACHINE_SUPPORTS_SAVE ) + +GAME( 1995, kinst2uk, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (Upgrade kit)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) |