(MESS) studio2: Fixed loose .bin/.rom cartridge file loading, and supported loading ROMs to multiple base addresses in the software list. [Curt Coder]

(MESS) visicom: Added cartridge software list. [ranger_lennier, Charles MacDonald]
This commit is contained in:
Curt Coder 2013-08-05 18:51:19 +00:00
parent 4c1ff054ab
commit d70e03cf63
5 changed files with 209 additions and 94 deletions

1
.gitattributes vendored
View File

@ -294,6 +294,7 @@ hash/victor9k_flop.xml svneol=native#text/xml
hash/vidbrain.xml svneol=native#text/xml hash/vidbrain.xml svneol=native#text/xml
hash/vii.xml svneol=native#text/xml hash/vii.xml svneol=native#text/xml
hash/vip.xml svneol=native#text/xml hash/vip.xml svneol=native#text/xml
hash/visicom.xml svneol=native#text/xml
hash/vixen.xml svneol=native#text/xml hash/vixen.xml svneol=native#text/xml
hash/vsmile_cart.xml svneol=native#text/xml hash/vsmile_cart.xml svneol=native#text/xml
hash/vsmile_cd.xml svneol=native#text/xml hash/vsmile_cd.xml svneol=native#text/xml

View File

@ -1,39 +1,39 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- <!--
RCA Studio II games list RCA Studio II games list
Title Series Dumped ID Title Series Dumped
_________________________________________________________________ _________________________________________________________________
Bowling built-in yes Bowling built-in yes
Doodles built-in yes Doodles built-in yes
Freeway built-in yes Freeway built-in yes
Math built-in yes Math built-in yes
Patterns built-in yes Patterns built-in yes
Gunfighter/Moonship Battle TV Arcade yes 18V400 Space War TV Arcade I yes
Space War TV Arcade I yes 18V401 Fun with Numbers TV Arcade II no, but Guru has one
Fun with Numbers TV Arcade II no, but Guru has one 18V402 Tennis/Squash TV Arcade III yes
Tennis/Squash TV Arcade III yes 18V403 Baseball TV Arcade IV yes
Baseball TV Arcade IV yes 18V404 Speedway/Tag TV Arcade yes
Speedway/Tag TV Arcade yes 18V405 Gunfighter/Moonship Battle TV Arcade yes
Blackjack TV Casino I yes 18V500 Math and Social Studies TV School House I no, but Guru has one
Bingo TV Casino no 18V501 Math Fun TV School House II yes
Math and Social Studies TV School House I no, but Guru has one 18V600 Blackjack TV Casino I yes
Math Fun TV School House II yes 18V601 Bingo TV Casino II no
Biorhythm TV Mystic yes 18V700 Biorhythm TV Mystic yes
MPT-02 games list MPT-02 games list
ID Title Series Dumped ID Title Series Dumped
_________________________________________________________________ _________________________________________________________________
MG-200 Grand Pack yes
MG-201 Bingo yes MG-201 Bingo yes
MG-202 Concentration Match yes MG-202 Concentration Match yes
MG-203 Star Wars yes MG-203 Star Wars yes
MG-204 Math Fun School House II yes MG-204 Math Fun School House II yes
MG-205 Pinball yes MG-205 Pinball yes
MG-206 Biorythm yes MG-206 Biorhythm yes
MG-207 Tennis/Squash no MG-207 Tennis/Squash no
MG-208 Fun with Numbers no MG-208 Fun with Numbers no
MG-209 Computer Quiz School House I no MG-209 Computer Quiz School House I no
@ -42,8 +42,9 @@ MG-211 Speedway/Tag yes
MG-212 Spacewar Intercept no MG-212 Spacewar Intercept no
MG-213 Gun Fight/Moon Ship yes MG-213 Gun Fight/Moon Ship yes
--> -->
<softwarelist name="studio2" description="RCA Studio II / Victory MPT-02 cartridges">
<softwarelist name="studio2" description="RCA Studio II cartridges"> <!-- RCA Studio II -->
<software name="spacewar"> <software name="spacewar">
<description>TV Arcade I: Spacewar</description> <description>TV Arcade I: Spacewar</description>
@ -53,8 +54,8 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear' and then '1' on Keypad A" /> <info name="usage" value="Press 'Clear' and then '1' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x200"> <dataarea name="rom_400" size="0x200">
<rom name="spacewar.bin" size="0x200" crc="021551f2" sha1="4878ae6d313743d7e3bd45e05c6e5e0582d9febb" offset="0x0000" /> <rom name="spacewar.bin" size="0x200" crc="021551f2" sha1="4878ae6d313743d7e3bd45e05c6e5e0582d9febb" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -67,22 +68,22 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear', '1' on Keypad A, '4' on Keypad B and then '7' on Keypad A" /> <info name="usage" value="Press 'Clear', '1' on Keypad A, '4' on Keypad B and then '7' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x200"> <dataarea name="rom_400" size="0x200">
<rom name="tennis-squash.bin" size="0x200" crc="a21590c8" sha1="c573e8cd7d1aa423d26e64a4da781a5989e4ed1d" offset="0x0000" /> <rom name="tennis-squash.bin" size="0x200" crc="a21590c8" sha1="c573e8cd7d1aa423d26e64a4da781a5989e4ed1d" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="baseball"> <software name="baseball">
<description>TV Arcade IV: Baseball </description> <description>TV Arcade IV: Baseball</description>
<year>1977</year> <year>1977</year>
<publisher>RCA</publisher> <publisher>RCA</publisher>
<info name="serial" value="18V403" /> <info name="serial" value="18V403" />
<info name="usage" value="Press 'Clear' and then '0' on Keypad A" /> <info name="usage" value="Press 'Clear' and then '0' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="baseball.bin" size="0x400" crc="d7fdedaa" sha1="fa1e3089d05503b7b1d5e98552318d5836c1798a" offset="0x0000" /> <rom name="baseball.bin" size="0x400" crc="d7fdedaa" sha1="fa1e3089d05503b7b1d5e98552318d5836c1798a" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -95,8 +96,8 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear' and then '1' on Keypad A" /> <info name="usage" value="Press 'Clear' and then '1' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x200"> <dataarea name="rom_400" size="0x200">
<rom name="speedway tag.bin" size="0x200" crc="a80379e2" sha1="5bc93a1a7ea05411f607ed56241da88b1f8468c5" offset="0x0000" /> <rom name="speedway tag.bin" size="0x200" crc="a80379e2" sha1="5bc93a1a7ea05411f607ed56241da88b1f8468c5" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -109,8 +110,8 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear' and then '1' on Keypad A" /> <info name="usage" value="Press 'Clear' and then '1' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="gunfighter-moonship battle.bin" size="0x400" crc="989d2c67" sha1="82f37ec5b7599e9169873da6c269c0c092395458" offset="0x0000" /> <rom name="gunfighter-moonship battle.bin" size="0x400" crc="989d2c67" sha1="82f37ec5b7599e9169873da6c269c0c092395458" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -123,8 +124,8 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear' and then '1' on Keypad A twice" /> <info name="usage" value="Press 'Clear' and then '1' on Keypad A twice" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x200"> <dataarea name="rom_400" size="0x200">
<rom name="computer quiz.bin" size="0x200" crc="cf08aa66" sha1="1d709a7f6b0a3d67d184ae0d94b1cb198f9c8a6a" offset="0x0000" /> <rom name="computer quiz.bin" size="0x200" crc="cf08aa66" sha1="1d709a7f6b0a3d67d184ae0d94b1cb198f9c8a6a" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -133,12 +134,12 @@ MG-213 Gun Fight/Moon Ship yes
<description>TV School House II: Math Fun</description> <description>TV School House II: Math Fun</description>
<year>1977</year> <year>1977</year>
<publisher>RCA</publisher> <publisher>RCA</publisher>
<info name="serial" value="MG-209" /> <info name="serial" value="18V501" />
<info name="usage" value="Press 'Clear' and then '1' on Keypad A three times" /> <info name="usage" value="Press 'Clear' and then '1' on Keypad A three times" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="math fun.bin" size="0x400" crc="9ab5af96" sha1="12a013e483af253d75845adf0d9e86672b161f94" offset="0x0000" /> <rom name="math fun.bin" size="0x400" crc="9ab5af96" sha1="12a013e483af253d75845adf0d9e86672b161f94" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -151,8 +152,8 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear' and then '1' on Keypad A" /> <info name="usage" value="Press 'Clear' and then '1' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="blackjack.bin" size="0x400" crc="b30af7a9" sha1="e328791d6aa8292d1b68abe03c7ebfefa9282ced" offset="0x0000" /> <rom name="blackjack.bin" size="0x400" crc="b30af7a9" sha1="e328791d6aa8292d1b68abe03c7ebfefa9282ced" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
@ -165,87 +166,93 @@ MG-213 Gun Fight/Moon Ship yes
<info name="usage" value="Press 'Clear' and then '0' on Keypad A" /> <info name="usage" value="Press 'Clear' and then '0' on Keypad A" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="biorhythm.bin" size="0x400" crc="6dcbc525" sha1="9fdab1be5d83aa0ccacf7e9ae2837b2b9e10be1c" offset="0x0000" /> <rom name="biorhythm.bin" size="0x400" crc="6dcbc525" sha1="9fdab1be5d83aa0ccacf7e9ae2837b2b9e10be1c" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- Victory MPT-02 -->
<software name="grandpak"> <software name="grandpak">
<description>Grand Pack</description> <description>Grand Pack</description>
<year>197?</year> <year>1978</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>Hanimex</publisher>
<info name="serial" value="MG-200" /> <info name="serial" value="MG-200" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x800"> <dataarea name="rom_400" size="0x400">
<rom name="game1.rom" size="0x400" crc="82a2d29e" sha1="37e02089d611db10bad070d89c8801de41521189" offset="0x000" /> <rom name="86677b" size="0x400" crc="82a2d29e" sha1="37e02089d611db10bad070d89c8801de41521189" offset="0" />
<rom name="game2.rom" size="0x400" crc="8006a1e3" sha1="b67612d98231485fce55d604915abd19b6d64eac" offset="0x400" /> </dataarea>
<dataarea name="rom_c00" size="0x400">
<rom name="87201" size="0x400" crc="8006a1e3" sha1="b67612d98231485fce55d604915abd19b6d64eac" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="bingo"> <software name="bingo">
<description>Bingo</description> <description>Bingo</description>
<year>197?</year> <year>1978</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>Hanimex</publisher>
<info name="serial" value="MG-201" /> <info name="serial" value="MG-201" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="mg-201-bingo.rom" size="0x400" crc="39ddc4ab" sha1="5e16b9572fda5d8b203df9318b8f1e250bea7432" offset="0x0000" /> <rom name="mg-201-bingo.rom" size="0x400" crc="39ddc4ab" sha1="5e16b9572fda5d8b203df9318b8f1e250bea7432" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="conmatch"> <software name="conmatch">
<description>Concentration Match</description> <description>Concentration Match</description>
<year>197?</year> <year>1978</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>Hanimex</publisher>
<info name="serial" value="MG-202" /> <info name="serial" value="MG-202" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="mg-202-concentration-match.rom" size="0x400" crc="28e21408" sha1="df2b2c7b5ec4c2d33321934ffff29cb41c2b6f68" offset="0x0000" /> <rom name="mg-202-concentration-match.rom" size="0x400" crc="28e21408" sha1="df2b2c7b5ec4c2d33321934ffff29cb41c2b6f68" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="starwars"> <software name="starwars">
<description>Star Wars</description> <description>Star Wars</description>
<year>197?</year> <year>1978</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>Hanimex</publisher>
<info name="serial" value="MG-203" /> <info name="serial" value="MG-203" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="mg-203-star-wars.rom" size="0x400" crc="92b55eb4" sha1="63ec52fdf1a5e04ced74560809de550c527ecd38" offset="0x0000" /> <rom name="mg-203-star-wars.rom" size="0x400" crc="92b55eb4" sha1="63ec52fdf1a5e04ced74560809de550c527ecd38" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="pinball"> <software name="pinball">
<description>Pinball</description> <description>Pinball</description>
<year>197?</year> <year>1978</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>Hanimex</publisher>
<info name="serial" value="MG-205" /> <info name="serial" value="MG-205" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="mg-205-pinball.rom" size="0x400" crc="9f7f692e" sha1="6afd1252d72df39482699c1ee76fa28669c7db80" offset="0x0000" /> <rom name="mg-205-pinball.rom" size="0x400" crc="9f7f692e" sha1="6afd1252d72df39482699c1ee76fa28669c7db80" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="speedwaya" cloneof="speedway"> <software name="speedwaya" cloneof="speedway">
<description>Speedway / Tag (Alt)</description> <description>Speedway / Tag (MPT-02)</description>
<year>197?</year> <year>1978</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>Hanimex</publisher>
<info name="serial" value="MG-211" /> <info name="serial" value="MG-211" />
<part name="cart" interface="studio2_cart"> <part name="cart" interface="studio2_cart">
<dataarea name="rom" size="0x400"> <dataarea name="rom_400" size="0x400">
<rom name="mg-211-speedway-tag.rom" size="0x400" crc="b9f6ac68" sha1="4e544fb4105a45e979dd7a007da1540996300f3d" offset="0x0000" /> <!-- same as speedway, but on a 1KB ROM instead of 512B -->
<rom name="mg-211-speedway-tag.rom" size="0x400" crc="b9f6ac68" sha1="4e544fb4105a45e979dd7a007da1540996300f3d" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>

31
hash/visicom.xml Normal file
View File

@ -0,0 +1,31 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
Toshiba Visicom games list
ID Title Dumped
_________________________________________________________________
CAS-110 Arithmetic Drill (Math Fun & Fun with Numbers) no
CAS-130 Sports Fan (Baseball & Sumo Wrestling) yes
CAS-140 Gambler I (Blackjack) no
CAS-141 Gambler II (Slot Machine and Dice) no
CAS-160 Space Command (Space War) no
CAS-190 Inspiration (Bagua and Biorhythm) no
-->
<softwarelist name="visicom" description="Toshiba Visicom cartridges">
<software name="sportfan">
<description>Sports Fan</description>
<year>1978</year>
<publisher>Toshiba</publisher>
<info name="serial" value="CAS-130" />
<part name="cart" interface="visicom_cart">
<dataarea name="rom" size="0x800">
<rom name="cas130.rom" size="0x800" crc="be86b65c" sha1="fdbcdf6b69de0ced2dea7695a777ec255b5df109" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -76,7 +76,7 @@ Notes: (all chips shown above)
2111 - NEC D2111AL-4 256 bytes x4 SRAM (DIP18, x6). Total 1.5k 2111 - NEC D2111AL-4 256 bytes x4 SRAM (DIP18, x6). Total 1.5k
C - Composite Video Output to TV from TV Modulator C - Composite Video Output to TV from TV Modulator
TMM331 - Toshiba TMM331AP 2k x8 MASKROM (DIP24) TMM331 - Toshiba TMM331AP 2k x8 MASKROM (DIP24)
Pinout (preliminary): Pinout:
TMM331 TMM331
|----\/----| |----\/----|
A7 |1 24| VCC A7 |1 24| VCC
@ -98,6 +98,36 @@ Notes: (all chips shown above)
Intel 2316A/8316A, MOSTEK MK31000, GI RO-3-8316, Intel 2316A/8316A, MOSTEK MK31000, GI RO-3-8316,
NATIONAL/NEC/SYNERTEK 2316A etc NATIONAL/NEC/SYNERTEK 2316A etc
Cartridges
----------
Inside is a Toshiba TMM331AP ROM, which is pin compatible with the Signetics S6831.
The cartridge to TMM331 pin connections are as follows, with cartridge pin 1 being the leftmost angled contact:
Pin 1 to ROM pins 12,13 (GND and E2)
Pin 2 to ROM pins 24,15 (VCC and E0)
Pin 3 to ROM pin 23 (D0)
Pin 4 to ROM pin 22 (D1)
Pin 5 to ROM pin 21 (D2)
Pin 6 to ROM pin 20 (D3)
Pin 7 to ROM pin 19 (D4)
Pin 8 to ROM pin 18 (D5)
Pin 9 to ROM pin 17 (D6)
Pin 10 to ROM pin 16 (D7)
Pin 11 to ROM pin 14 (E1)
Pin 12 to ROM pin 11 (A6)
Pin 13 to ROM pin 10 (A5)
Pin 14 to ROM pin 9 (A4)
Pin 15 to ROM pin 8 (A3)
Pin 16 to ROM pin 7 (A2)
Pin 17 to ROM pin 6 (A1)
Pin 18 to ROM pin 5 (A0)
Pin 19 to ROM pin 1 (A7)
Pin 20 to ROM pin 4 (A10)
Pin 21 to ROM pin 3 (A9)
Pin 22 to ROM pin 2 (A8)
*/ */
/* /*
@ -147,8 +177,6 @@ Notes:
TODO: TODO:
- grandpak dual ROM
- disable ic13/14 when cartridge plugged in
- mpt02 clones' colors - mpt02 clones' colors
- visicom colors - visicom colors
- NE555 discrete sound - NE555 discrete sound
@ -161,7 +189,7 @@ Notes:
PARAMETERS PARAMETERS
***************************************************************************/ ***************************************************************************/
#define LOG 1 #define LOG 0
#define ST2_BLOCK_SIZE 256 #define ST2_BLOCK_SIZE 256
@ -269,7 +297,7 @@ static ADDRESS_MAP_START( studio2_io_map, AS_IO, 8, studio2_state )
ADDRESS_MAP_END ADDRESS_MAP_END
static ADDRESS_MAP_START( visicom_map, AS_PROGRAM, 8, visicom_state ) static ADDRESS_MAP_START( visicom_map, AS_PROGRAM, 8, visicom_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x10ff) AM_RAM AM_RANGE(0x1000, 0x10ff) AM_RAM
AM_RANGE(0x1100, 0x11ff) AM_RAM AM_SHARE("color_ram") AM_RANGE(0x1100, 0x11ff) AM_RAM AM_SHARE("color_ram")
AM_RANGE(0x1300, 0x13ff) AM_RAM AM_SHARE("color_ram1") AM_RANGE(0x1300, 0x13ff) AM_RAM AM_SHARE("color_ram1")
@ -442,29 +470,64 @@ void mpt02_state::machine_reset()
DEVICE_IMAGE_LOAD_MEMBER( studio2_state, studio2_cart_load ) DEVICE_IMAGE_LOAD_MEMBER( studio2_state, studio2_cart_load )
{ {
if (image.software_entry() == NULL) if (image.software_entry() == NULL)
return DEVICE_IMAGE_LOAD_MEMBER_NAME(st2_cartslot_load)(image); {
if (!strcmp(image.filetype(), "st2"))
{
return DEVICE_IMAGE_LOAD_MEMBER_NAME(st2_cartslot_load)(image);
}
else
{
UINT8 *ptr = memregion(CDP1802_TAG)->base() + 0x400;
size_t size = image.length();
image.fread(ptr, size);
}
}
else else
{ {
// WARNING: list code currently assume that cart mapping starts at 0x400. UINT8 *ptr = memregion(CDP1802_TAG)->base();
// the five dumps currently available work like this, but the .st2 format
// allows for more freedom... how was the content of a real cart mapped? size_t size = image.get_software_region_length("rom_400");
UINT8 *ptr = ((UINT8 *) memregion(CDP1802_TAG)->base()) + 0x400; if (size) memcpy(ptr + 0x400, image.get_software_region("rom_400"), size);
memcpy(ptr, image.get_software_region("rom"), image.get_software_region_length("rom"));
return IMAGE_INIT_PASS; size = image.get_software_region_length("rom_800");
if (size) memcpy(ptr + 0x800, image.get_software_region("rom_800"), size);
size = image.get_software_region_length("rom_c00");
if (size) memcpy(ptr + 0xc00, image.get_software_region("rom_c00"), size);
} }
return IMAGE_INIT_PASS;
}
DEVICE_IMAGE_LOAD_MEMBER( visicom_state, visicom_cart_load )
{
UINT8 *ptr = memregion(CDP1802_TAG)->base() + 0x800;
if (image.software_entry() == NULL)
{
size_t size = image.length();
image.fread(ptr, MAX(size, 0x800));
}
else
{
size_t size = image.get_software_region_length("rom");
if (size) memcpy(ptr, image.get_software_region("rom_800"), MAX(size, 0x800));
}
return IMAGE_INIT_PASS;
} }
/* Machine Drivers */ /* Machine Drivers */
static MACHINE_CONFIG_FRAGMENT( studio2_cartslot ) static MACHINE_CONFIG_FRAGMENT( studio2_cartslot )
MCFG_CARTSLOT_ADD("cart") MCFG_CARTSLOT_ADD("cart")
MCFG_CARTSLOT_EXTENSION_LIST("st2,bin") MCFG_CARTSLOT_EXTENSION_LIST("st2,bin,rom")
MCFG_CARTSLOT_NOT_MANDATORY MCFG_CARTSLOT_NOT_MANDATORY
MCFG_CARTSLOT_LOAD(studio2_state,studio2_cart_load) MCFG_CARTSLOT_LOAD(studio2_state,studio2_cart_load)
MCFG_CARTSLOT_INTERFACE("studio2_cart") MCFG_CARTSLOT_INTERFACE("studio2_cart")
/* software lists */ /* software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list","studio2") MCFG_SOFTWARE_LIST_ADD("cart_list", "studio2")
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_START( studio2, studio2_state ) static MACHINE_CONFIG_START( studio2, studio2_state )
@ -502,7 +565,14 @@ static MACHINE_CONFIG_START( visicom, visicom_state )
MCFG_SOUND_ADD("beeper", BEEP, 0) MCFG_SOUND_ADD("beeper", BEEP, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_FRAGMENT_ADD( studio2_cartslot ) MCFG_CARTSLOT_ADD("cart")
MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
MCFG_CARTSLOT_NOT_MANDATORY
MCFG_CARTSLOT_LOAD(visicom_state, visicom_cart_load)
MCFG_CARTSLOT_INTERFACE("visicom_cart")
/* software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list", "visicom")
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_START( mpt02, mpt02_state ) static MACHINE_CONFIG_START( mpt02, mpt02_state )
@ -532,26 +602,30 @@ MACHINE_CONFIG_END
/* ROMs */ /* ROMs */
ROM_START( studio2 ) ROM_START( studio2 )
ROM_REGION( 0x10000, CDP1802_TAG, 0 ) ROM_REGION( 0x1000, CDP1802_TAG, 0 )
ROM_LOAD( "84932.ic11", 0x0000, 0x0200, CRC(283b7e65) SHA1(4b6d21cde59712ecb5941ff63d8eb161420b0aac) ) ROM_LOAD( "84932.ic11", 0x000, 0x200, CRC(283b7e65) SHA1(4b6d21cde59712ecb5941ff63d8eb161420b0aac) )
ROM_LOAD( "84933.ic12", 0x0200, 0x0200, CRC(a396b77c) SHA1(023517f67af61790e6916b6c4dbe2d9dc07ae3ff) ) ROM_LOAD( "84933.ic12", 0x200, 0x200, CRC(a396b77c) SHA1(023517f67af61790e6916b6c4dbe2d9dc07ae3ff) )
ROM_LOAD( "85456.ic13", 0x0400, 0x0200, CRC(d25cf97f) SHA1(d489f41f1125c76cc8ed9defa82a877ae014ef21) ) ROM_LOAD( "85456.ic13", 0x400, 0x200, CRC(d25cf97f) SHA1(d489f41f1125c76cc8ed9defa82a877ae014ef21) )
ROM_LOAD( "85457.ic14", 0x0600, 0x0200, CRC(74aa724f) SHA1(085832f29e0d2a387c75463d66c54fb6c1e9e72c) ) ROM_LOAD( "85457.ic14", 0x600, 0x200, CRC(74aa724f) SHA1(085832f29e0d2a387c75463d66c54fb6c1e9e72c) )
ROM_END ROM_END
ROM_START( visicom ) ROM_START( visicom )
ROM_REGION( 0x10000, CDP1802_TAG, 0 ) ROM_REGION( 0x1000, CDP1802_TAG, 0 )
ROM_LOAD( "visicom.q003", 0x0000, 0x0800, CRC(23d22074) SHA1(a0a8be23f70621a2bd8010b1134e8a0019075bf1) ) ROM_LOAD( "visicom.q003", 0x000, 0x800, CRC(23d22074) SHA1(a0a8be23f70621a2bd8010b1134e8a0019075bf1) )
ROM_END ROM_END
ROM_START( mpt02 ) ROM_START( mpt02 )
ROM_REGION( 0x10000, CDP1802_TAG, 0 ) ROM_REGION( 0x1000, CDP1802_TAG, 0 )
ROM_LOAD( "86676.ic13", 0x0000, 0x0400, CRC(a7d0dd3b) SHA1(e1881ab4d67a5d735dd2c8d7e924e41df6f2aeec) ) ROM_LOAD( "86676.ic13", 0x000, 0x400, CRC(a7d0dd3b) SHA1(e1881ab4d67a5d735dd2c8d7e924e41df6f2aeec) )
ROM_LOAD( "86677b.ic14", 0x0400, 0x0400, CRC(82a2d29e) SHA1(37e02089d611db10bad070d89c8801de41521189) ) ROM_LOAD( "86677b.ic14", 0x400, 0x400, CRC(82a2d29e) SHA1(37e02089d611db10bad070d89c8801de41521189) )
ROM_LOAD( "87201.ic12", 0x0c00, 0x0400, CRC(8006a1e3) SHA1(b67612d98231485fce55d604915abd19b6d64eac) ) ROM_LOAD( "87201.ic12", 0xc00, 0x400, CRC(8006a1e3) SHA1(b67612d98231485fce55d604915abd19b6d64eac) )
ROM_END
ROM_START( mpt02h )
ROM_REGION( 0x1000, CDP1802_TAG, 0 )
ROM_LOAD( "86676.ic13", 0x000, 0x400, CRC(a7d0dd3b) SHA1(e1881ab4d67a5d735dd2c8d7e924e41df6f2aeec) )
ROM_END ROM_END
#define rom_mpt02h rom_mpt02
#define rom_mtc9016 rom_mpt02 #define rom_mtc9016 rom_mpt02
#define rom_shmc1200 rom_mpt02 #define rom_shmc1200 rom_mpt02
#define rom_cm1200 rom_mpt02 #define rom_cm1200 rom_mpt02
@ -581,7 +655,7 @@ DRIVER_INIT_MEMBER(studio2_state,studio2)
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
CONS( 1977, studio2, 0, 0, studio2, studio2, studio2_state, studio2, "RCA", "Studio II", GAME_SUPPORTS_SAVE ) CONS( 1977, studio2, 0, 0, studio2, studio2, studio2_state, studio2, "RCA", "Studio II", GAME_SUPPORTS_SAVE )
CONS( 1978, visicom, studio2,0, visicom, studio2, studio2_state, studio2, "Toshiba", "Visicom COM-100 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) CONS( 1978, visicom, studio2,0, visicom, studio2, studio2_state, studio2, "Toshiba", "Visicom COM-100 (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
CONS( 1978, mpt02, studio2,0, mpt02, studio2, studio2_state, studio2, "Soundic", "Victory MPT-02 Home TV Programmer (Austria)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) CONS( 1978, mpt02, studio2,0, mpt02, studio2, studio2_state, studio2, "Soundic", "Victory MPT-02 Home TV Programmer (Austria)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
CONS( 1978, mpt02h, studio2,0, mpt02, studio2, studio2_state, studio2, "Hanimex", "MPT-02 Jeu TV Programmable (France)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE) CONS( 1978, mpt02h, studio2,0, mpt02, studio2, studio2_state, studio2, "Hanimex", "MPT-02 Jeu TV Programmable (France)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE)
CONS( 1978, mtc9016, studio2,0, mpt02, studio2, studio2_state, studio2, "Mustang", "9016 Telespiel Computer (Germany)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) CONS( 1978, mtc9016, studio2,0, mpt02, studio2, studio2_state, studio2, "Mustang", "9016 Telespiel Computer (Germany)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )

View File

@ -75,6 +75,8 @@ public:
required_shared_ptr<UINT8> m_color_ram; required_shared_ptr<UINT8> m_color_ram;
required_shared_ptr<UINT8> m_color_ram1; required_shared_ptr<UINT8> m_color_ram1;
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( visicom_cart_load );
}; };
class mpt02_state : public studio2_state class mpt02_state : public studio2_state