summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/kinst.cpp
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2017-07-03 19:01:28 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2017-07-03 19:01:28 +0200
commit0d6e3703a1921416c5815252b99dce73901fa3c7 (patch)
tree336ca009babacc111b1dbc6d801e10270a64763a /src/mame/drivers/kinst.cpp
parent54b805b89d3d016f0ea994e0b72a194edfc76898 (diff)
kinst.cpp: added AnyIDE roms, switched to bios system (nw)
Diffstat (limited to 'src/mame/drivers/kinst.cpp')
-rw-r--r--src/mame/drivers/kinst.cpp253
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 )