(MESS) vboy.c: simplified SRAM handling with softlists. no whatsnew.

This commit is contained in:
Fabio Priuli 2012-09-28 04:41:55 +00:00
parent 5a0493e57b
commit e1f7a289f3
2 changed files with 14 additions and 43 deletions

View File

@ -65,11 +65,12 @@ According to Planet Virtual Boy, the following undumped protos exist
<publisher>Nintendo</publisher>
<info name="serial" value="VUE-VVGE-USA"/>
<info name="release" value="199511xx"/>
<sharedfeat name="eeprom" value="Yes"/>
<part name="cart" interface="vboy_cart">
<dataarea name="rom" size="2097152">
<rom name="golf (usa).bin" size="2097152" crc="2199af41" sha1="23ce3c174789cdd306497d86cb2c4e76ba8b06e5" offset="000000" />
</dataarea>
<dataarea name="eeprom" size="0x10000">
</dataarea>
</part>
</software>
@ -278,12 +279,13 @@ According to Planet Virtual Boy, the following undumped protos exist
<publisher>Nintendo</publisher>
<info name="serial" value="VUE-VTBJ-JPN, VUE-VTBJ-USA"/>
<info name="release" value="19950721 (JPN), 19950814 (USA)"/>
<sharedfeat name="eeprom" value="Yes"/>
<part name="cart" interface="vboy_cart">
<dataarea name="rom" size="2097152">
<rom name="teleroboxer (japan, usa).bin" size="1048576" crc="36103000" sha1="c59e020f9674774c5cbc022317ebba0eb1d744f7" offset="000000" />
<rom size="1048576" offset="0x100000" loadflag="reload" />
</dataarea>
<dataarea name="eeprom" size="0x10000">
</dataarea>
</part>
</software>
@ -326,12 +328,13 @@ According to Planet Virtual Boy, the following undumped protos exist
<publisher>Pack-In-Video</publisher>
<info name="serial" value="VUE-VVFJ-JPN"/>
<info name="release" value="19951016"/>
<sharedfeat name="eeprom" value="Yes"/>
<part name="cart" interface="vboy_cart">
<dataarea name="rom" size="2097152">
<rom name="virtual fishing (japan).bin" size="1048576" crc="526cc969" sha1="583b409b7215159219d08e789db46140062095f2" offset="000000" />
<rom size="1048576" offset="0x100000" loadflag="reload" />
</dataarea>
<dataarea name="eeprom" size="0x10000">
</dataarea>
</part>
</software>
@ -372,11 +375,12 @@ According to Planet Virtual Boy, the following undumped protos exist
<publisher>T&amp;E Soft</publisher>
<info name="serial" value="VUE-VVGJ-JPN"/>
<info name="release" value="19950811"/>
<sharedfeat name="eeprom" value="Yes"/>
<part name="cart" interface="vboy_cart">
<dataarea name="rom" size="2097152">
<rom name="t&amp;e virtual golf (japan).bin" size="2097152" crc="6ba07915" sha1="c595285d42c69f14b2b418c1edfbe4a7f9a624b6" offset="000000" />
</dataarea>
<dataarea name="eeprom" size="0x10000">
</dataarea>
</part>
</software>
@ -449,11 +453,12 @@ According to Planet Virtual Boy, the following undumped protos exist
<publisher>Nintendo</publisher>
<info name="serial" value="VUE-VWCJ-JPN, VUE-VWCJ-USA"/>
<info name="release" value="19951201 (JPN), 199511xx (USA)"/>
<sharedfeat name="eeprom" value="Yes"/>
<part name="cart" interface="vboy_cart">
<dataarea name="rom" size="2097152">
<rom name="virtual boy wario land (japan, usa).bin" size="2097152" crc="133e9372" sha1="274c328fbd904f20e69172ab826bf8f94ced1bdb" offset="000000" />
</dataarea>
<dataarea name="eeprom" size="0x10000">
</dataarea>
</part>
</software>
@ -464,7 +469,6 @@ According to Planet Virtual Boy, the following undumped protos exist
<publisher>Ocean</publisher>
<info name="serial" value="VUE-VWEE-USA"/>
<info name="release" value="19951221"/>
<sharedfeat name="eeprom" value="No"/>
<part name="cart" interface="vboy_cart">
<dataarea name="rom" size="2097152">
<rom name="waterworld (usa).bin" size="2097152" crc="82a95e51" sha1="dcc46484bd0acab0ac1ea178f425a0f5ccfb8dc2" offset="000000" />

View File

@ -1334,12 +1334,6 @@ static GFXDECODE_START( vboy )
GFXDECODE_ENTRY( "pcg", 0x00000, vboy_pcg_8x8, 0, 1 )
GFXDECODE_END
struct vboy_pcb
{
const char *pcb_name;
int pcb_id;
};
READ32_MEMBER(vboy_state::sram_r)
{
return m_vboy_sram[offset];
@ -1350,29 +1344,6 @@ WRITE32_MEMBER(vboy_state::sram_w)
COMBINE_DATA(&m_vboy_sram[offset]);
}
#define VBOY_CHIP_NONE 0
#define VBOY_CHIP_SRAM 1
static const vboy_pcb pcb_list[] =
{
{"No", VBOY_CHIP_NONE},
{"Yes", VBOY_CHIP_SRAM}
};
static int vboy_get_pcb_id(const char *pcb)
{
int i;
for (i = 0; i < ARRAY_LENGTH(pcb_list); i++)
{
if (!mame_stricmp(pcb_list[i].pcb_name, pcb))
return pcb_list[i].pcb_id;
}
return 0;
}
static DEVICE_IMAGE_LOAD( vboy_cart )
{
@ -1389,19 +1360,15 @@ static DEVICE_IMAGE_LOAD( vboy_cart )
}
else
{
const char *pcb_name;
cart_size = image.get_software_region_length("rom");
memcpy(ROM, image.get_software_region("rom"), cart_size);
pcb_name = image.get_feature("eeprom");
if (pcb_name == NULL)
chip = 0;
else
chip = vboy_get_pcb_id(pcb_name);
UINT8 *tmp_eeprom = image.get_software_region("eeprom");
if (tmp_eeprom)
chip = 1;
}
if(chip & VBOY_CHIP_SRAM)
if (chip)
{
state->m_nvptr = (UINT8 *)&state->m_vboy_sram;