mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
new WORKING clones (#3616)
* new WORKING clones Metal Slug 3 (NGM-2560, earlier) [Razoola] * consistency (nw) * date note
This commit is contained in:
parent
c412f39ec8
commit
da7ae02b43
@ -8186,9 +8186,9 @@
|
||||
<!-- revision 2000.4.1 -->
|
||||
<feature name="slot" value="sma_mslug3" />
|
||||
<dataarea name="maincpu" width="16" endianness="big" size="0x900000">
|
||||
<rom loadflag="load16_word_swap" name="neo-sma" offset="0x0c0000" size="0x040000" crc="9cd55736" sha1="d6efb2b313127c2911d47d9324626b3f1e7c6ccb" />
|
||||
<rom loadflag="load16_word_swap" name="green.neo-sma" offset="0x0c0000" size="0x040000" crc="9cd55736" sha1="d6efb2b313127c2911d47d9324626b3f1e7c6ccb" />
|
||||
<!-- stored in the custom chip -->
|
||||
<!-- The SMA for this release has a green colour marking; the older revision has a white colour marking -->
|
||||
<!-- The SMA has a green colour marking -->
|
||||
<rom loadflag="load16_word_swap" name="256-pg1.p1" offset="0x100000" size="0x400000" crc="b07edfd5" sha1="dcbd9e500bfae98d754e55cdbbbbf9401013f8ee" /> <!-- TC5332202 -->
|
||||
<rom loadflag="load16_word_swap" name="256-pg2.p2" offset="0x500000" size="0x400000" crc="6097c26b" sha1="248ec29d21216f29dc6f5f3f0e1ad1601b3501b6" /> <!-- TC5332202 -->
|
||||
</dataarea>
|
||||
@ -8218,6 +8218,52 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mslug3a" cloneof="mslug3"> <!-- see neogeo.cpp for notes on this set -->
|
||||
<description>Metal Slug 3 (NGM-2560, earlier)</description>
|
||||
<year>2000</year>
|
||||
<publisher>SNK</publisher>
|
||||
<info name="serial" value="NGM-2560"/>
|
||||
<info name="release" value="20000323"/>
|
||||
<info name="alt_title" value="メタルスラッグ 3"/>
|
||||
<sharedfeat name="release" value="MVS" />
|
||||
<sharedfeat name="compatibility" value="MVS,AES" />
|
||||
<part name="cart" interface="neo_cart">
|
||||
<!-- revision Mar/17/2000 1:36 (from SMA rom) -->
|
||||
<feature name="slot" value="sma_mslug3a" />
|
||||
<dataarea name="maincpu" width="16" endianness="big" size="0x900000">
|
||||
<rom loadflag="load16_word_swap" name="white.neo-sma" offset="0x0c0000" size="0x040000" crc="c60d29b2" sha1="1647260ccbda833b35005608ef1fdc82fba02f04" />
|
||||
<!-- stored in the custom chip -->
|
||||
<!-- The SMA has a white colour marking -->
|
||||
<rom loadflag="load16_word_swap" name="256.p1" offset="0x100000" size="0x400000" crc="a1177628" sha1="4c4c379d9fc3a83265b7f32fbfce9d16b7d0f0fd" /> <!-- TC5332202 -->
|
||||
<rom loadflag="load16_word_swap" name="256.p2" offset="0x500000" size="0x400000" crc="9b659826" sha1="d6bd03cf61879217922c18db4d3bd77095c0fe19" /> <!-- TC5332202 -->
|
||||
</dataarea>
|
||||
<dataarea name="fixed" size="0x80000">
|
||||
<!-- The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs -->
|
||||
<rom value="0" size="0x80000" offset="0x000000" loadflag="fill" />
|
||||
</dataarea>
|
||||
<dataarea name="audiocpu" size="0x080000">
|
||||
<rom offset="0x000000" size="0x080000" name="256-m1.m1" crc="eaeec116" sha1="54419dbb21edc8c4b37eaac2e7ad9496d2de037a" /> <!-- mask rom TC534000 -->
|
||||
</dataarea>
|
||||
<dataarea name="ymsnd" size="0x1000000">
|
||||
<rom name="256-v1.v1" offset="0x000000" size="0x400000" crc="f2690241" sha1="fd56babc1934d10e0d27c32f032f9edda7ca8ce9" /> <!-- TC5332204 -->
|
||||
<rom name="256-v2.v2" offset="0x400000" size="0x400000" crc="7e2a10bd" sha1="0d587fb9f64cba0315ce2d8a03e2b8fe34936dff" /> <!-- TC5332204 -->
|
||||
<rom name="256-v3.v3" offset="0x800000" size="0x400000" crc="0eaec17c" sha1="c3ed613cc6993edd6fc0d62a90bcd85de8e21915" /> <!-- TC5332204 -->
|
||||
<rom name="256-v4.v4" offset="0xc00000" size="0x400000" crc="9b4b22d4" sha1="9764fbf8453e52f80aa97a46fb9cf5937ef15a31" /> <!-- TC5332204 -->
|
||||
</dataarea>
|
||||
<dataarea name="sprites" size="0x4000000">
|
||||
<!-- Encrypted -->
|
||||
<rom loadflag="load16_byte" name="256-c1.c1" offset="0x000000" size="0x800000" crc="5a79c34e" sha1="b8aa51fa50935cae62ab3d125b723ab888691e60" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c2.c2" offset="0x000001" size="0x800000" crc="944c362c" sha1="3843ab300f956280475469caee70135658f67089" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c3.c3" offset="0x1000000" size="0x800000" crc="6e69d36f" sha1="94e8cf42e999114b4bd8b30e0aa2f365578c4c9a" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c4.c4" offset="0x1000001" size="0x800000" crc="b755b4eb" sha1="804700a0966a48f130c434ede3f970792ea74fa5" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c5.c5" offset="0x2000000" size="0x800000" crc="7aacab47" sha1="312c1c9846175fe1a3cad51d5ae230cf674fc93d" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c6.c6" offset="0x2000001" size="0x800000" crc="c698fd5d" sha1="16818883b06849ba2f8d61bdd5e21aaf99bd8408" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c7.c7" offset="0x3000000" size="0x800000" crc="cfceddd2" sha1="7def666adf8bd1703f40c61f182fc040b6362dc9" /> <!-- TC5364205 -->
|
||||
<rom loadflag="load16_byte" name="256-c8.c8" offset="0x3000001" size="0x800000" crc="4d9be34c" sha1="a737bdfa2b815aea7067e7af2636e83a9409c414" /> <!-- TC5364205 -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mslug3h" cloneof="mslug3">
|
||||
<description>Metal Slug 3 (NGH-2560)</description>
|
||||
|
@ -54,6 +54,7 @@ void neogeo_cart(device_slot_interface &device)
|
||||
device.option_add_internal("sma_garou", NEOGEO_SMA_GAROU_CART);
|
||||
device.option_add_internal("sma_garouh", NEOGEO_SMA_GAROUH_CART);
|
||||
device.option_add_internal("sma_mslug3", NEOGEO_SMA_MSLUG3_CART);
|
||||
device.option_add_internal("sma_mslug3a", NEOGEO_SMA_MSLUG3A_CART);
|
||||
// These use SMA for prg & CMC50 for gfx + audiocpu
|
||||
device.option_add_internal("sma_kof2k", NEOGEO_SMA_KOF2000_CART);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli, Razoola, Mr.K
|
||||
// thanks to Razoola and Mr K for the decode and banking information
|
||||
|
||||
#include "emu.h"
|
||||
#include "prot_sma.h"
|
||||
@ -64,7 +65,6 @@ WRITE16_MEMBER( sma_prot_device::kof99_bankswitch_w )
|
||||
|
||||
WRITE16_MEMBER( sma_prot_device::garou_bankswitch_w )
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
int bankaddress;
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
@ -100,7 +100,6 @@ WRITE16_MEMBER( sma_prot_device::garou_bankswitch_w )
|
||||
|
||||
WRITE16_MEMBER( sma_prot_device::garouh_bankswitch_w )
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
int bankaddress;
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
@ -138,7 +137,6 @@ WRITE16_MEMBER( sma_prot_device::garouh_bankswitch_w )
|
||||
|
||||
WRITE16_MEMBER( sma_prot_device::mslug3_bankswitch_w )
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
int bankaddress;
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
@ -173,7 +171,6 @@ WRITE16_MEMBER( sma_prot_device::mslug3_bankswitch_w )
|
||||
|
||||
WRITE16_MEMBER( sma_prot_device::kof2000_bankswitch_w )
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
int bankaddress;
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
@ -232,7 +229,6 @@ uint32_t sma_prot_device::kof99_bank_base(uint16_t sel)
|
||||
|
||||
uint32_t sma_prot_device::garou_bank_base(uint16_t sel)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
0x000000, 0x100000, 0x200000, 0x300000, // 00
|
||||
@ -266,7 +262,6 @@ uint32_t sma_prot_device::garou_bank_base(uint16_t sel)
|
||||
|
||||
uint32_t sma_prot_device::garouh_bank_base(uint16_t sel)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
0x000000, 0x100000, 0x200000, 0x300000, // 00
|
||||
@ -302,7 +297,6 @@ uint32_t sma_prot_device::garouh_bank_base(uint16_t sel)
|
||||
|
||||
uint32_t sma_prot_device::mslug3_bank_base(uint16_t sel)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
0x000000, 0x020000, 0x040000, 0x060000, // 00
|
||||
@ -333,9 +327,40 @@ uint32_t sma_prot_device::mslug3_bank_base(uint16_t sel)
|
||||
return bankaddress;
|
||||
}
|
||||
|
||||
uint32_t sma_prot_device::mslug3a_bank_base(uint16_t sel)
|
||||
{
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
0x000000, 0x030000, 0x040000, 0x070000, // 00
|
||||
0x080000, 0x0a0000, 0x0c0000, 0x0e0000, // 04
|
||||
0x0f0000, 0x100000, 0x130000, 0x140000, // 08
|
||||
0x150000, 0x160000, 0x190000, 0x1a0000, // 12
|
||||
0x1B0000, 0x1C0000, 0x1F0000, 0x200000, // 16
|
||||
0x210000, 0x220000, 0x250000, 0x260000, // 20
|
||||
0x270000, 0x280000, 0x2B0000, 0x2C0000, // 24
|
||||
0x2D0000, 0x2E0000, 0x310000, 0x320000, // 28
|
||||
0x330000, 0x340000, 0x370000, 0x380000, // 32
|
||||
0x390000, 0x3A0000, 0x3D0000, 0x3E0000, // 36
|
||||
0x400000, 0x410000, 0x440000, 0x450000, // 40
|
||||
0x460000, 0x470000, 0x4A0000, 0x4B0000, // 44
|
||||
0x4C0000, /* rest not used? */
|
||||
};
|
||||
|
||||
// unscramble bank number
|
||||
int data =
|
||||
(BIT(sel, 15) << 0)+
|
||||
(BIT(sel, 3) << 1)+
|
||||
(BIT(sel, 1) << 2)+
|
||||
(BIT(sel, 6) << 3)+
|
||||
(BIT(sel, 12) << 4)+
|
||||
(BIT(sel, 11) << 5);
|
||||
|
||||
int bankaddress = 0x100000 + bankoffset[data];
|
||||
return bankaddress;
|
||||
}
|
||||
|
||||
uint32_t sma_prot_device::kof2000_bank_base(uint16_t sel)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
static const int bankoffset[64] =
|
||||
{
|
||||
0x000000, 0x100000, 0x200000, 0x300000, // 00
|
||||
@ -391,7 +416,7 @@ READ16_MEMBER( sma_prot_device::random_r )
|
||||
|
||||
|
||||
|
||||
// kof99, garou, garouh, mslug3 and kof2000 have an SMA chip which contains program code and decrypts the 68k roms
|
||||
// kof99, garou, garouh, mslug3, mslug3a and kof2000 have an SMA chip which contains program code and decrypts the 68k roms
|
||||
void sma_prot_device::kof99_decrypt_68k(uint8_t* base)
|
||||
{
|
||||
uint16_t *rom = (uint16_t *)(base + 0x100000);
|
||||
@ -418,7 +443,6 @@ void sma_prot_device::kof99_decrypt_68k(uint8_t* base)
|
||||
|
||||
void sma_prot_device::garou_decrypt_68k(uint8_t* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
uint16_t *rom = (uint16_t *)(base + 0x100000);
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
@ -444,7 +468,6 @@ void sma_prot_device::garou_decrypt_68k(uint8_t* base)
|
||||
|
||||
void sma_prot_device::garouh_decrypt_68k(uint8_t* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
uint16_t *rom = (uint16_t *)(base + 0x100000);
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
@ -470,7 +493,6 @@ void sma_prot_device::garouh_decrypt_68k(uint8_t* base)
|
||||
|
||||
void sma_prot_device::mslug3_decrypt_68k(uint8_t* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
uint16_t *rom = (uint16_t *)(base + 0x100000);
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
@ -493,10 +515,33 @@ void sma_prot_device::mslug3_decrypt_68k(uint8_t* base)
|
||||
}
|
||||
}
|
||||
|
||||
void sma_prot_device::mslug3a_decrypt_68k(uint8_t* base)
|
||||
{
|
||||
uint16_t *rom = (uint16_t *)(base + 0x100000);
|
||||
|
||||
/* swap data lines on the whole ROMs */
|
||||
for (int i = 0;i < 0x800000/2;i++)
|
||||
rom[i] = bitswap<16>(rom[i],2,11,12,14,9,3,1,4,13,7,6,8,10,15,0,5);
|
||||
|
||||
/* swap address lines & relocate fixed part */
|
||||
rom = (uint16_t *)base;
|
||||
for (int i = 0; i < 0x0c0000/2; i++)
|
||||
rom[i] = rom[0x5d0000/2 + bitswap<24>(i,23,22,21,20,19,18,1,16,14,7,17,5,8,4,15,6,3,2,0,13,10,12,9,11)];
|
||||
|
||||
rom = (uint16_t *)(base + 0x100000);
|
||||
/* swap address lines for the banked part */
|
||||
for (int i = 0;i < 0x800000/2; i += 0x10000/2)
|
||||
{
|
||||
uint16_t buffer[0x10000/2];
|
||||
memcpy(buffer,&rom[i],0x10000);
|
||||
for (int j = 0;j < 0x10000/2;j++)
|
||||
rom[i+j] = buffer[bitswap<24>(j,23,22,21,20,19,18,17,16,15,12,0,11,3,4,13,6,8,14,7,5,2,10,9,1)];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sma_prot_device::kof2000_decrypt_68k(uint8_t* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
uint16_t *rom = (uint16_t *)(base + 0x100000);
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
|
@ -30,11 +30,13 @@ public:
|
||||
uint32_t garou_bank_base(uint16_t sel);
|
||||
uint32_t garouh_bank_base(uint16_t sel);
|
||||
uint32_t mslug3_bank_base(uint16_t sel);
|
||||
uint32_t mslug3a_bank_base(uint16_t sel);
|
||||
uint32_t kof2000_bank_base(uint16_t sel);
|
||||
void kof99_decrypt_68k(uint8_t* base);
|
||||
void garou_decrypt_68k(uint8_t* base);
|
||||
void garouh_decrypt_68k(uint8_t* base);
|
||||
void mslug3_decrypt_68k(uint8_t* base);
|
||||
void mslug3a_decrypt_68k(uint8_t* base);
|
||||
void kof2000_decrypt_68k(uint8_t* base);
|
||||
|
||||
protected:
|
||||
|
@ -158,6 +158,7 @@ static const neogeo_slot slot_list[] =
|
||||
{ NEOGEO_GAROU, "sma_garou" },
|
||||
{ NEOGEO_GAROUH, "sma_garouh" },
|
||||
{ NEOGEO_MSLUG3, "sma_mslug3" },
|
||||
{ NEOGEO_MSLUG3A, "sma_mslug3a" },
|
||||
{ NEOGEO_KOF2K, "sma_kof2k" },
|
||||
{ NEOGEO_MSLUG4, "pcm2_mslug4" },
|
||||
{ NEOGEO_MSLUG4P, "pcm2_ms4p" },
|
||||
|
@ -30,6 +30,7 @@ enum
|
||||
NEOGEO_GAROU,
|
||||
NEOGEO_GAROUH,
|
||||
NEOGEO_MSLUG3,
|
||||
NEOGEO_MSLUG3A,
|
||||
NEOGEO_KOF2K,
|
||||
NEOGEO_MSLUG4,
|
||||
NEOGEO_MSLUG4P,
|
||||
|
@ -16,7 +16,8 @@ DEFINE_DEVICE_TYPE(NEOGEO_SMA_CART, neogeo_sma_cart_device, "neo
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_KOF99_CART, neogeo_sma_kof99_cart_device, "neocart_kof99", "Neo Geo KoF 99 SMA Cart")
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_GAROU_CART, neogeo_sma_garou_cart_device, "neocart_garou", "Neo Geo Garou SMA Cart")
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_GAROUH_CART, neogeo_sma_garouh_cart_device, "neocart_garouh", "Neo Geo Garou AES SMA Cart")
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3_CART, neogeo_sma_mslug3_cart_device, "neocart_mslug3", "Neo Geo Metal Slug 3 SMA Cart")
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3_CART, neogeo_sma_mslug3_cart_device, "neocart_mslug3", "Neo Geo Metal Slug 3 SMA Cart (green)")
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3A_CART, neogeo_sma_mslug3a_cart_device, "neocart_mslug3a", "Neo Geo Metal Slug 3 SMA Cart (white)")
|
||||
DEFINE_DEVICE_TYPE(NEOGEO_SMA_KOF2000_CART, neogeo_sma_kof2000_cart_device, "neocart_kof2000", "Neo Geo KoF 2000 SMA Cart")
|
||||
|
||||
|
||||
@ -127,6 +128,18 @@ void neogeo_sma_mslug3_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_cmc_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
|
||||
}
|
||||
|
||||
neogeo_sma_mslug3a_cart_device::neogeo_sma_mslug3a_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
neogeo_sma_cart_device(mconfig, NEOGEO_SMA_MSLUG3A_CART, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void neogeo_sma_mslug3a_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
{
|
||||
m_sma_prot->mslug3a_decrypt_68k(cpuregion);
|
||||
m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
|
||||
m_cmc_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
kof2000
|
||||
|
@ -104,6 +104,17 @@ public:
|
||||
|
||||
DECLARE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3_CART, neogeo_sma_mslug3_cart_device)
|
||||
|
||||
class neogeo_sma_mslug3a_cart_device : public neogeo_sma_cart_device
|
||||
{
|
||||
public:
|
||||
neogeo_sma_mslug3a_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type() override { return 1; }
|
||||
virtual uint32_t get_bank_base(uint16_t sel) override { return m_sma_prot->mslug3a_bank_base(sel); }
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(NEOGEO_SMA_MSLUG3A_CART, neogeo_sma_mslug3a_cart_device)
|
||||
|
||||
|
||||
/*************************************************
|
||||
kof2000
|
||||
|
@ -601,6 +601,7 @@ public:
|
||||
void garouh(machine_config &config);
|
||||
void garoubl(machine_config &config);
|
||||
void mslug3(machine_config &config);
|
||||
void mslug3a(machine_config &config);
|
||||
void mslug3h(machine_config &config);
|
||||
void mslug3b6(machine_config &config);
|
||||
void kof2000(machine_config &config);
|
||||
@ -1434,6 +1435,7 @@ void neogeo_base_state::set_slot_idx(int slot)
|
||||
space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
|
||||
break;
|
||||
case NEOGEO_MSLUG3:
|
||||
case NEOGEO_MSLUG3A:
|
||||
space.install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
|
||||
space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
|
||||
//space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
|
||||
@ -2497,6 +2499,11 @@ MACHINE_CONFIG_START(mvs_led_state::mslug3)
|
||||
NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(mvs_led_state::mslug3a)
|
||||
mv1_fixed(config);
|
||||
NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3a")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(mvs_led_state::mslug3h)
|
||||
mv1_fixed(config);
|
||||
NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_mslug3h")
|
||||
@ -8756,8 +8763,7 @@ ROM_END
|
||||
|
||||
ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */
|
||||
ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
|
||||
ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */
|
||||
/* The SMA for this release has a green colour marking; the older revision has a white colour marking */
|
||||
ROM_LOAD16_WORD_SWAP( "green.neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom SMA chip, the SMA has a green colour marking */
|
||||
ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) /* TC5332202 */
|
||||
ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) /* TC5332202 */
|
||||
|
||||
@ -8789,6 +8795,59 @@ ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 20
|
||||
ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
The Program roms for the set below are actually 4 ROMs contained on a recycled NeoGeo Pocket card and marked
|
||||
|
||||
SNK48249Q
|
||||
JAPAN9948HAK
|
||||
T8V12A
|
||||
(two of these)
|
||||
|
||||
SNK48327V
|
||||
JAPAN9948HAK
|
||||
T8V12A
|
||||
(two of these)
|
||||
|
||||
KOF2000 and Garou boards have been found with the same setup (data verified to match existing sets)
|
||||
The roms were dumped via the NGPC cartridge edge connector, so the exact way they should be split into 4 is unknown.
|
||||
As a result the ROM has been split to match the usual configuration as it likely exists like this too anyway.
|
||||
*/
|
||||
|
||||
ROM_START( mslug3a ) /* Original Version - Encrypted Code & GFX */ /* MVS VERSION */
|
||||
ROM_REGION( 0x900000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
|
||||
ROM_LOAD16_WORD_SWAP( "white.neo-sma", 0x0c0000, 0x040000, CRC(c60d29b2) SHA1(1647260ccbda833b35005608ef1fdc82fba02f04) ) /* stored in the custom SMA chip, the SMA has a white colour marking */
|
||||
ROM_LOAD16_WORD_SWAP( "256.p1", 0x100000, 0x400000, CRC(a1177628) SHA1(4c4c379d9fc3a83265b7f32fbfce9d16b7d0f0fd) )
|
||||
ROM_LOAD16_WORD_SWAP( "256.p2", 0x500000, 0x400000, CRC(9b659826) SHA1(d6bd03cf61879217922c18db4d3bd77095c0fe19) )
|
||||
|
||||
ROM_Y_ZOOM
|
||||
|
||||
/* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
|
||||
ROM_REGION( 0x80000, "cslot1:fixed", 0 ) /* larger char set */
|
||||
ROM_FILL( 0x000000, 0x20000, 0x000000 )
|
||||
ROM_REGION( 0x20000, "fixedbios", 0 )
|
||||
ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
|
||||
|
||||
NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) /* mask rom TC534000 */
|
||||
|
||||
ROM_REGION( 0x1000000, "cslot1:ymsnd", 0 )
|
||||
ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) /* TC5332204 */
|
||||
ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) /* TC5332204 */
|
||||
ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) /* TC5332204 */
|
||||
ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) /* TC5332204 */
|
||||
|
||||
ROM_REGION( 0x4000000, "cslot1:sprites", 0 )
|
||||
/* Encrypted */
|
||||
ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ /* TC5364205 */
|
||||
ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ /* TC5364205 */
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( mslug3h ) /* Original Version - Encrypted GFX */ /* revision 2000.3.17 */ /* AES VERSION */
|
||||
ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
|
||||
ROM_LOAD16_WORD_SWAP( "256-ph1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) )
|
||||
@ -11563,6 +11622,7 @@ GAME( 1999, garouha, garou, garou, neogeo, mvs_led_state, empty_ini
|
||||
GAME( 1999, garoup, garou, neobase, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1999, garoubl, garou, garoubl, neogeo, mvs_led_state, empty_init, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */
|
||||
GAME( 2000, mslug3, neogeo, mslug3, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
|
||||
GAME( 2000, mslug3a, mslug3, mslug3a, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Metal Slug 3 (NGM-2560, earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX - revision Mar/17/2000 1:36 (from SMA rom) */
|
||||
GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
|
||||
GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, mvs_led_state, empty_init, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */
|
||||
GAME( 2000, kof2000, neogeo, kof2000, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
|
||||
|
@ -29795,6 +29795,7 @@ mslug // 0201 (c) 1996 Nazca
|
||||
mslug2 // 0241 (c) 1998 SNK
|
||||
mslug2t // bootleg
|
||||
mslug3 // 0256 (c) 2000 SNK
|
||||
mslug3a // 0256 (c) 2000 SNK
|
||||
mslug3b6 // bootleg
|
||||
mslug3h // 0256 (c) 2000 SNK
|
||||
mslug4 // 0263 (c) 2002 Mega Enterprise
|
||||
|
Loading…
Reference in New Issue
Block a user