(MESS) megadriv: emulated protection in pokemona (similar to kof99 and pokemon, but with one diff expected value) nw.

This commit is contained in:
Fabio Priuli 2013-02-27 13:45:35 +00:00
parent b449087cda
commit aaec22f4d1
6 changed files with 42 additions and 4 deletions

View File

@ -16683,11 +16683,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</part>
</software>
<software name="pokemona" cloneof="pokemon" supported="no">
<description>Pocket Monsters (Alt)</description>
<software name="pokemona" cloneof="pokemon">
<description>Pocket Monsters (Alt Protection)</description>
<year>199?</year>
<publisher>&lt;unlicensed&gt;</publisher>
<part name="cart" interface="megadriv_cart">
<feature name="slot" value="rom_pokea" />
<dataarea name="rom" size="2097152">
<rom name="pocket monsters (unl) (alt).bin" size="2097152" crc="fb176667" sha1="3d667aea1b6fa980dddcc10e65845a6831491792" offset="000000" loadflag="load16_word_swap" />
</dataarea>

View File

@ -336,6 +336,7 @@ static SLOT_INTERFACE_START(md_cart)
SLOT_INTERFACE_INTERNAL("rom_lion3", MD_ROM_LION3)
SLOT_INTERFACE_INTERNAL("rom_mcpir", MD_ROM_MCPIR)
SLOT_INTERFACE_INTERNAL("rom_mjlov", MD_ROM_MJLOV)
SLOT_INTERFACE_INTERNAL("rom_pokea", MD_ROM_POKEA)
SLOT_INTERFACE_INTERNAL("rom_pokestad", MD_ROM_POKESTAD)
SLOT_INTERFACE_INTERNAL("rom_realtec", MD_ROM_REALTEC)
SLOT_INTERFACE_INTERNAL("rom_redcl", MD_ROM_REDCL)

View File

@ -42,6 +42,7 @@ const device_type MD_ROM_YASECH = &device_creator<md_rom_yasech_device>;
const device_type MD_ROM_LION2 = &device_creator<md_rom_lion2_device>;
const device_type MD_ROM_LION3 = &device_creator<md_rom_lion3_device>;
const device_type MD_ROM_MCPIR = &device_creator<md_rom_mcpirate_device>;
const device_type MD_ROM_POKEA = &device_creator<md_rom_pokea_device>;
const device_type MD_ROM_POKESTAD = &device_creator<md_rom_pokestad_device>;
const device_type MD_ROM_REALTEC = &device_creator<md_rom_realtec_device>;
const device_type MD_ROM_REDCL = &device_creator<md_rom_redcl_device>;
@ -115,7 +116,7 @@ md_rom_sbubl_device::md_rom_sbubl_device(const machine_config &mconfig, const ch
}
md_rom_rx3_device::md_rom_rx3_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: md_std_rom_device(mconfig, MD_ROM_SMB2, "MD Rockman X3", tag, owner, clock)
: md_std_rom_device(mconfig, MD_ROM_RX3, "MD Rockman X3", tag, owner, clock)
{
}
@ -130,7 +131,7 @@ md_rom_kof98_device::md_rom_kof98_device(const machine_config &mconfig, const ch
}
md_rom_kof99_device::md_rom_kof99_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: md_std_rom_device(mconfig, MD_ROM_KOF99, "MD KOF 99", tag, owner, clock)
: md_std_rom_device(mconfig, MD_ROM_KOF99, "MD KOF 99 (and others)", tag, owner, clock)
{
}
@ -164,6 +165,11 @@ md_rom_lion3_device::md_rom_lion3_device(const machine_config &mconfig, const ch
{
}
md_rom_pokea_device::md_rom_pokea_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: md_std_rom_device(mconfig, MD_ROM_POKEA, "MD Pokemon (Alt Protection)", tag, owner, clock)
{
}
md_rom_pokestad_device::md_rom_pokestad_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: md_std_rom_device(mconfig, MD_ROM_POKESTAD, "MD Pokemon Stadium", tag, owner, clock)
{
@ -768,6 +774,18 @@ WRITE16_MEMBER(md_rom_pokestad_device::write)
m_bank = data & 0x7f;
}
/*-------------------------------------------------
POKEMON ALT
-------------------------------------------------*/
READ16_MEMBER(md_rom_pokea_device::read_a13)
{
if (offset == 0x00/2) return 0x14;
if (offset == 0x02/2) return 0x01;
if (offset == 0x3e/2) return 0x1f;
else return 0xffff;
}
/*-------------------------------------------------
REALTEC
-------------------------------------------------*/

View File

@ -254,6 +254,21 @@ public:
virtual DECLARE_READ16_MEMBER(read);
};
// ======================> md_rom_pokea_device
class md_rom_pokea_device : public md_std_rom_device
{
public:
// construction/destruction
md_rom_pokea_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides
virtual void device_config_complete() { m_shortname = "md_rom_pokea"; }
// reading and writing
virtual DECLARE_READ16_MEMBER(read_a13);
};
// ======================> md_rom_pokestad_device
class md_rom_pokestad_device : public md_std_rom_device
@ -539,6 +554,7 @@ extern const device_type MD_ROM_LION2;
extern const device_type MD_ROM_LION3;
extern const device_type MD_ROM_MCPIR;
extern const device_type MD_ROM_MJLOV;
extern const device_type MD_ROM_POKEA;
extern const device_type MD_ROM_POKESTAD;
extern const device_type MD_ROM_REALTEC;
extern const device_type MD_ROM_REDCL;

View File

@ -272,6 +272,7 @@ static const md_slot slot_list[] =
{ LIONK3, "rom_lion3" },
{ MC_PIRATE, "rom_mcpir" },
{ MJLOVER, "rom_mjlov" },
{ POKEMONA, "rom_pokea" },
{ REALTEC, "rom_realtec" },
{ REDCL_EN, "rom_redcl" },
{ REDCLIFF, "rom_redcl" },

View File

@ -55,6 +55,7 @@ enum
LIONK3, /* Lion King 3, Super Donkey Kong 99, Super King Kong 99 */
MC_PIRATE, /* Super 19 in 1, Super 15 in 1, 12 in 1 and a few more multicarts */
MJLOVER, /* Mahjong Lover */
POKEMONA, /* Pocket Monster Alt Protection */
REALTEC, /* Whac a Critter/Mallet legend, Defend the Earth, Funnyworld/Ballonboy */
REDCLIFF, /* Romance of the Three Kingdoms - Battle of Red Cliffs, already decoded from .mdx format */
REDCL_EN, /* The encoded version... */