(MESS) samcoupe.c: modified the driver to not install / uninstall bank handlers,

greatly improving performaces (e.g. Manic Miner demo went from 20% to 380% 
ingame). Plus added some very preliminary softlists. [David Haywood]

(MESS) spectrum_cass.xml: added very preliminary softlist containing some
interesting test case for emulation. [David Haywood]
This commit is contained in:
Fabio Priuli 2012-10-12 07:30:33 +00:00
parent 4a61a594ed
commit 837073f0fc
8 changed files with 849 additions and 8 deletions

3
.gitattributes vendored
View file

@ -146,6 +146,8 @@ hash/ql_cass.xml svneol=native#text/xml
hash/rainbow.xml svneol=native#text/xml
hash/rx78.xml svneol=native#text/xml
hash/sage2.xml svneol=native#text/xml
hash/samcoupe_cass.xml svneol=native#text/xml
hash/samcoupe_flop.xml svneol=native#text/xml
hash/sat_cart.xml svneol=native#text/xml
hash/saturn.xml svneol=native#text/xml
hash/scv.xml svneol=native#text/xml
@ -160,6 +162,7 @@ hash/socrates.xml svneol=native#text/xml
hash/softwarelist.dtd svneol=native#text/plain
hash/sorcerer_cart.xml svneol=native#text/xml
hash/spectrum.xml svneol=native#text/xml
hash/spectrum_cass.xml svneol=native#text/xml
hash/st.xml svneol=native#text/xml
hash/studio2.xml svneol=native#text/xml
hash/stv.xml svneol=native#text/xml

30
hash/samcoupe_cass.xml Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- load software with LOAD ""
Tape must be started manually from the MESS menu
" is mapped to ] by default on a UK keyboard layout
The Sam Coupe will recognize most Spectrum tapes but isn't actually directly compatible with the majority of them due to different memory mapping
-->
<softwarelist name="samcoupe_cass" description="Sam Coupe cassettes">
<!-- it loads, includes the SAM specific title screen, but the game doesn't boot -->
<software name="snare" supported="no">
<description>Snare</description>
<year>1992</year>
<publisher>Enigma Software Developments</publisher>
<part name="cass" interface="samcoupe_cass">
<!-- side A is for the ZX Spectrum, see spectrum_cass.xml -->
<dataarea name="cass" size="67044">
<rom name="snare - alternate - side b.tzx" size="67044" crc="3278d671" sha1="9046c7b2ca54c8dd653cc797f7cc2ac6616791af" offset="0"/>
</dataarea>
</part>
</software>
</softwarelist>

24
hash/samcoupe_flop.xml Normal file
View file

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- to boot disks type 'BOOT' and press return
alternatively press numpad 9 which seems to do the same thing
-->
<softwarelist name="samcoupe_flop" description="Sam Coupe Floppy Disks">
<software name="manic">
<description>Manic Miner (2 Level Demo)</description>
<year>1991</year>
<publisher>Revelation Software / Software Projects</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="manic miner (1992) (revelation software) (demo).dsk" size="819200" crc="02708a54" sha1="a2d5634f5e64960db21eed38c1cef79bd2e13e7a" offset="0"/>
</dataarea>
</part>
</software>
</softwarelist>

688
hash/spectrum_cass.xml Normal file
View file

@ -0,0 +1,688 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- Preliminary list. There are something like 15,000 unique Spectrum games and countless re-releases, so creating a real list will require
dedicated effort. For the time being I'm just listing some important software and good test cases (custom protection
loaders etc.) but eventually a proper list should be created. -->
<!-- to load software in 16/48K mode you must use the following sequence at the prompt
"J" "shift+P" "shift+P" "enter"
this will enter the command LOAD "" and execute it
You must then of course play the tape from the menu in MESS (you'll need to turn SCRLOCK off and hit TAB to get the MESS menu)
-->
<!-- Example Software List for ZX Spectrum Cassettes -->
<!-- NC128 = Not Compatible with 128K Mode, must be loaded in 48K Mode -->
<!-- 48/128 = Compatible with both 48K Mode and 128K Mode (no enhancements) -->
<!-- EN128 = 128K enhanced, is improved by loading in 128K mode, usually AY music, less mutli-load segments, better animation etc. -->
<softwarelist name="spectrum_cass" description="Sinclair ZX Spectrum cassettes">
<!-- Dizzy Series -->
<!-- NC128 -->
<software name="dizzy">
<description>Dizzy - The Ultimate Cartoon Adventure (set 1)</description>
<year>1987</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48857">
<rom name="dizzy - the ultimate cartoon adventure.tzx" size="48885" crc="80f651f4" sha1="accaa7d5adb2c8823e58ab4f22e22cc771d56db9" offset="0"/>
</dataarea>
</part>
</software>
<!-- NC128 --> <!-- might be the same as above in a different image format -->
<software name="dizzya" cloneof="dizzy">
<description>Dizzy - The Ultimate Cartoon Adventure (set 2)</description>
<year>1987</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48885">
<rom name="dizzy - the ultimate cartoon adventure.tap" size="48857" crc="6481fe73" sha1="eced00a33cc0d88f66cdacd79c9f6a5e15e7a745" offset="0"/>
</dataarea>
</part>
</software>
<!-- 48/128-->
<software name="dizzyp" cloneof="dizzy">
<description>Dizzy - The Ultimate Cartoon Adventure (Cracked, Bill Gilbert 1988, 128 Compatible)</description>
<year>1987</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48176">
<rom name="dizzy - the ultimate cartoon adventure (1987)(code masters)[cr bill gilbert, 1988].tzx" size="48176" crc="99787925" sha1="94d19f07a3455301c63046a1332a7deaf1e68c60" offset="0"/>
</dataarea>
</part>
</software>
<!-- NC128 -->
<!-- this is the TOSEC image, it has a slighlty different load sequence, but you get infinite lives, is it hacked, or some protection? -->
<software name="dizzyb" cloneof="dizzy">
<description>Dizzy - The Ultimate Cartoon Adventure (set 3, hacked?)</description>
<year>1987</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48901">
<rom name="dizzy - the ultimate cartoon adventure (1987)(codemasters).tap" size="48901" crc="da1ce6bf" sha1="a4a353f509c2eeab1d65b170e3230a7810123e76" offset="0"/>
</dataarea>
</part>
</software>
<!-- EN128 -->
<software name="dizzy2">
<description>Dizzy II - Treasure Island Dizzy (set 1)</description>
<year>1988</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="57706">
<rom name="dizzy ii - treasure island dizzy (1988)(codemasters).tzx" size="57706" crc="159de1a3" sha1="63e11d020e3f508cebe45c350b4610a36bf61d0e" offset="0"/>
</dataarea>
</part>
</software>
<!-- EN128 -->
<software name="dizzy2a" cloneof="dizzy2">
<description>Dizzy II - Treasure Island Dizzy (set 2)</description>
<year>1988</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="57736">
<rom name="dizzy ii - treasure island dizzy (1988)(codemasters)[a].tzx" size="57736" crc="b8371fae" sha1="fb6c0468fe7ed936d44766e391297757ebd3c2a6" offset="0"/>
</dataarea>
</part>
</software>
<!-- EN128 -->
<software name="dizzy3">
<description>Dizzy III - Fantasy World Dizzy (set 1)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="64878">
<rom name="dizzy iii - fantasy world dizzy (1989)(codemasters).tzx" size="64878" crc="63ea3dde" sha1="e033549d29161c2588aa0fd3faaba94e406e44ca" offset="0"/>
</dataarea>
</part>
</software>
<!-- EN128 -->
<software name="dizzy3a" cloneof="dizzy3">
<description>Dizzy III - Fantasy World Dizzy (set 2)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="64873">
<rom name="dizzy iii - fantasy world dizzy (1989)(codemasters)[a].tzx" size="64873" crc="485031c7" sha1="05a19b94a4cf7f5cbcea35e8da8b888a488f7147" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy4">
<description>Dizzy IV - Magicland Dizzy (set 1)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="64959">
<rom name="dizzy iv - magicland dizzy (1989)(codemasters)[128k].tap" size="64959" crc="52c74596" sha1="143b2cf937c2d35fcd8539e97fe7b23ee75b2e03" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy5">
<description>Dizzy V - Spellbound Dizzy (set 1)</description>
<year>1991</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="96916">
<rom name="dizzy v - spellbound dizzy (1991)(codemasters)[128k].tzx" size="96916" crc="8ef56664" sha1="0f24fbd94ea67b12b8ed261cf6e7715f4eee6f7c" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy6">
<description>Dizzy VI - Prince Of The Yolkfolk (set 1)</description>
<year>1991</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="47123">
<rom name="dizzy vi - prince of the yolkfolk (1991)(codemasters).tzx" size="47123" crc="4bd41a54" sha1="85afe85bf3fa9cc17d26391f51a2b6cd3b3f1d4d" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy7">
<description>Dizzy VII - Crystal Kingdom Dizzy (set 1)</description>
<year>1992</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="55322">
<rom name="dizzy vii - crystal kingdom dizzy (1992)(codemasters).tzx" size="55322" crc="4da3cd7f" sha1="1998bb08889656e77170b8dff9c047a368d26d8b" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy7a" cloneof="dizzy7">
<description>Dizzy VII - Crystal Kingdom Dizzy (set 2)</description>
<year>1992</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="55188">
<rom name="dizzy vii - crystal kingdom dizzy (1992)(codemasters)[a].tzx" size="55188" crc="91e0c365" sha1="b2975a80d9b7edfb9bc0c623ce062be77482d4b4" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy7b" cloneof="dizzy7">
<description>Dizzy VII - Crystal Kingdom Dizzy (set 3)</description>
<year>1992</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="55188">
<rom name="dizzy vii - crystal kingdom dizzy (1992)(codemasters)[a2].tzx" size="55188" crc="8c95ee7c" sha1="bf0c78cd7452a1f2f62d4d77c3890b35e708d02e" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzy7c" cloneof="dizzy7">
<description>Dizzy VII - Crystal Kingdom Dizzy (set 4)</description>
<year>1992</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="55210">
<rom name="dizzy vii - crystal kingdom dizzy (1992)(codemasters)(pre-release).tzx" size="55210" crc="85c83f89" sha1="ec53057e6de49bc792a43eafda3171e5148f6318" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyff">
<description>Fast Food Dizzy (set 1)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="53198">
<rom name="fast food dizzy (1989)(codemasters).tzx" size="53198" crc="08a82485" sha1="03f205a038f5f4f48f0b0a5e040d56cc24c22ae3" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyffa" cloneof="dizzyff">
<description>Fast Food Dizzy (set 2)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="53198">
<rom name="fast food dizzy (1989)(codemasters)[128k].tzx" size="53198" crc="1d7485d9" sha1="726705f3e49db25b2385d7e9b494763ef630f9d5" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyffb" cloneof="dizzyff">
<description>Fast Food Dizzy (set 3)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="53203">
<rom name="fast food dizzy (1989)(codemasters)[a].tzx" size="53203" crc="d5c94c3a" sha1="aaec35f2b1ea080126f8666f132881d16c17f34d" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyffc" cloneof="dizzyff">
<description>Fast Food Dizzy (set 4)</description>
<year>1989</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="53170">
<rom name="fastfood.tap" size="53170" crc="6cddc114" sha1="10f9d2196650013a9627adbc0018713d259720e3" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyks">
<description>Kwik Snax Dizzy (set 1)</description>
<year>1990</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="100777">
<rom name="kwik snax dizzy (1990)(codemasters).tzx" size="100777" crc="c90db9ca" sha1="70e1751e139dd769a73adbfcb82070f37dcbf3ed" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyksa" cloneof="dizzyks">
<description>Kwik Snax Dizzy (set 2)</description>
<year>1990</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="100772">
<rom name="kwik snax dizzy (1990)(codemasters)[a].tzx" size="100772" crc="49146051" sha1="4e0b73ce80d1be6b239d7a5f28fc13672113acab" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyksb" cloneof="dizzyks">
<description>Kwik Snax Dizzy (set 3)</description>
<year>1990</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="100738">
<rom name="kwiksnax.tap" size="100738" crc="0b234319" sha1="bb8b9672cacfae3a7081817a76112c20296d1360" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzypan" >
<description>Panic Dizzy (set 1)</description>
<year>1991</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48053">
<rom name="panic dizzy (1991)(codemasters).tzx" size="48053" crc="50a975e5" sha1="fff19b7feac4d660d8862113993910b44f499e26" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzypana" cloneof="dizzypan">
<description>Panic Dizzy (set 2)</description>
<year>1991</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48017">
<rom name="panic dizzy.tap" size="48017" crc="dbc18295" sha1="a3b530783b3d9eeefb29ef6e0e2fa86a1c21fa16" offset="0"/>
</dataarea>
</part>
</software>
<software name="dizzyrap">
<description>Dizzy Down The Rapids</description>
<year>1991</year>
<publisher>Codemasters</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="52367">
<rom name="dizzy down the rapids.tap" size="52367" crc="843abda6" sha1="93b231ce7dfa98a1e17425d022fb647fd45b36a7" offset="0"/>
</dataarea>
</part>
</software>
<!-- Batman had a variety of loaders, some work, some don't ... -->
<!-- OK -->
<software name="batman">
<description>Batman (set 1)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49967">
<rom name="batman (1986)(ocean)[48-128k].tzx" size="49967" crc="b75cfbf2" sha1="c037b1a20d04ff82645bd269e3544b9364eb9450" offset="0"/>
</dataarea>
</part>
</software>
<!-- loader fails before title screen, works in other emus -->
<software name="batmana" cloneof="batman" supported="no">
<description>Batman (set 2)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49828">
<rom name="batman (1986)(ocean)[48-128k][speedlock 1].tzx" size="49828" crc="7181366c" sha1="8c09cd81200808e703d8521f0713cab62dbbd8fc" offset="0"/>
</dataarea>
</part>
</software>
<!-- loader fails, doesn't boot after countdown completes, works in other emus -->
<software name="batmanb" cloneof="batman" supported="no">
<description>Batman (set 3)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="52943">
<rom name="batman (1986)(ocean)[48-128k][speedlock 4].tzx" size="52943" crc="11fd0241" sha1="e87cef97f27029afb2e899fbeaba44b2bf965ba2" offset="0"/>
</dataarea>
</part>
</software>
<!-- loader fails after first block is loaded, suspect image, doesn't even run in 'realspectrum' -->
<software name="batmanc" cloneof="batman" supported ="no">
<description>Batman (set 4)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49828">
<rom name="batman (1986)(ocean)[a2][48-128k].tzx" size="49828" crc="4787057b" sha1="bc4511764bf404bb212cd152fcd4c6ab7f4827ae" offset="0"/>
</dataarea>
</part>
</software>
<!-- OK -->
<software name="batmand" cloneof="batman">
<description>Batman (set 5)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49967">
<rom name="batman (1986)(ocean)[a][48-128k].tzx" size="49967" crc="944aca6e" sha1="91bdd44da489d98a5a116926007f834acbb87757" offset="0"/>
</dataarea>
</part>
</software>
<!-- loader fails after first block is loaded, works in other emus -->
<software name="batmane" cloneof="batman" supported="no">
<description>Batman (set 6)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="50106">
<rom name="batman (1986)(ocean)[a][48-128k][speedlock 1].tzx" size="50106" crc="64b70b2e" sha1="4b2feeb827e7029c7d86a129345acca2c8b76157" offset="0"/>
</dataarea>
</part>
</software>
<!-- loader fails before title screen -->
<software name="batmanf" cloneof="batman" supported="no">
<description>Batman (set 7)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49828">
<rom name="batman (1986)(the hit squad)[48-128k][re-release].tzx" size="49828" crc="c9eacae6" sha1="37edefc9b02adedf7af25ac6e5b598ee873e89ba" offset="0"/>
</dataarea>
</part>
</software>
<!-- MESS doesn't see full length of tape?, suspect image-->
<software name="batmang" cloneof="batman">
<description>Batman (set 8)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="50064">
<rom name="batman (1986)(the hit squad)[a2][48-128k][re-release].tzx" size="50064" crc="70f90b4a" sha1="2817fa696522d0e9af1e2152bc6ee9a2e443a352" offset="0"/>
</dataarea>
</part>
</software>
<!-- OK -->
<software name="batmanh" cloneof="batman">
<description>Batman (set 9)</description>
<year>1986</year>
<publisher>Ocean</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="50074">
<rom name="batman (1987)(erbe software)[48-128k][re-release].tzx" size="50074" crc="efa02464" sha1="63a43ee003e6e0801358ce49a63df5c3ae28884a" offset="0"/>
</dataarea>
</part>
</software>
<!-- Other Games -->
<software name="snare">
<description>Snare</description>
<year>1992</year>
<publisher>Enigma Software Developments</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="42011">
<rom name="snare - alternate - side a.tzx" size="42011" crc="48239344" sha1="eeaab4c697e35e2f7bd452906314948134933cfc" offset="0"/>
<!-- side B is for the Sam Coupe, see samcoupe_cass.xml -->
</dataarea>
</part>
</software>
<software name="bitedust">
<description>Bite The Dust</description>
<year>1990</year>
<publisher>Crash Magazine</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49539">
<rom name="bite the dust.tap" size="49539" crc="f829e9ec" sha1="af42b31315c2c27b65da497701cdd70120d39d50" offset="0"/>
</dataarea>
</part>
</software>
<software name="specvent">
<description>Specventure (set 1)</description>
<year>1986</year>
<publisher>Mastertronic</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48862">
<rom name="specventure (1986)(mastertronic).tzx" size="48862" crc="bd60e35b" sha1="5f41781ae9c6cc3de4e29a96ab9e66c2c941e301" offset="0"/>
</dataarea>
</part>
</software>
<software name="specventa" cloneof="specvent">
<description>Specventure (set 2)</description>
<year>1986</year>
<publisher>Mastertronic</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48892">
<rom name="specventure (1986)(mastertronic)[a].tzx" size="48892" crc="2ee1eca0" sha1="9f471e4186d906328694035e9d255600d5e0334e" offset="0"/>
</dataarea>
</part>
</software>
<software name="pacman">
<description>Pac-Man (set 1)</description>
<year>1983</year>
<publisher>Atarisoft</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="12402">
<rom name="pac-man (1983)(atarisoft).tzx" size="12402" crc="d1c0e9a9" sha1="2066e83dfa6e15de0d5c319acac8b67bc7b0bae0" offset="0"/>
</dataarea>
</part>
</software>
<software name="pacmana" cloneof="pacman">
<description>Pac-Man (set 2)</description>
<year>1983</year>
<publisher>Atarisoft</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="16707">
<rom name="pac-man (1983)(atarisoft)[a].tzx" size="16707" crc="3557b759" sha1="0af28a0d972c4c75ef432770ebb4eb2eee66870f" offset="0"/>
</dataarea>
</part>
</software>
<software name="pacmanb" cloneof="pacman">
<description>Pac-Man (set 3)</description>
<year>1983</year>
<publisher>Atarisoft</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="16615">
<rom name="pac-man (1983)(atarisoft)[a2].tzx" size="16615" crc="bd0ccace" sha1="322e8a6a6c4bd3d577dac827a135b68b8184bc56" offset="0"/>
</dataarea>
</part>
</software>
<software name="mspacman">
<description>Ms. Pac-Man (set 1)</description>
<year>1984</year>
<publisher>Atarisoft</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="22868">
<rom name="ms. pac-man (1984)(atarisoft).tzx" size="22868" crc="3639ff62" sha1="2c0dc0ff4d4507cc3c895c351c1361063f4f4a84" offset="0"/>
</dataarea>
</part>
</software>
<software name="mspacmana" cloneof="mspacman">
<description>Ms. Pac-Man (set 2)</description>
<year>1984</year>
<publisher>Atarisoft</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48010">
<rom name="ms. pac-man (1984)(atarisoft)[a].tzx" size="48010" crc="14cd83cd" sha1="8aec8d3620a544272bf11759b65b5b653d59d6d8" offset="0"/>
</dataarea>
</part>
</software>
<software name="bombfusn">
<description>Bomb Fusion (set 1)</description>
<year>1989</year>
<publisher>Virgin Mastertronic</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49433">
<rom name="bombfusion (1989)(virgin mastertronic).tzx" size="49433" crc="02290e7e" sha1="5fc0e337e79f52a391257397925ccd04fa5a7689" offset="0"/>
</dataarea>
</part>
</software>
<!-- no loading screen, no custom loader -->
<software name="bombfusna" cloneof="bombfusn">
<description>Bomb Fusion (set 2, copy?)</description>
<year>1989</year>
<publisher>Virgin Mastertronic</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="13874">
<rom name="bombfusion (1989)(virgin mastertronic)[a].tzx" size="13874" crc="904bbd8d" sha1="56c4b9b13ace7557cc6628ed5d54e552e498916b" offset="0"/>
</dataarea>
</part>
</software>
<software name="bombfusnb" cloneof="bombfusn">
<description>Bomb Fusion (set 3)</description>
<year>1989</year>
<publisher>Virgin Mastertronic</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49403">
<rom name="bombfusion (1989)(virgin mastertronic)[a2].tzx" size="49403" crc="d2f7f5ff" sha1="2254ddfba0553c288b89d5bc189c4038cb23459c" offset="0"/>
</dataarea>
</part>
</software>
<software name="bombfusnc" cloneof="bombfusn">
<description>Bomb Fusion (set 4)</description>
<year>1989</year>
<publisher>Virgin Mastertronic</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="49531">
<rom name="bombfusion (1989)(dro soft)[re-release].tzx" size="49531" crc="26c2e5f4" sha1="a47c30ccd43625e5e06262b9c8d4efd940628071" offset="0"/>
</dataarea>
</part>
</software>
<software name="brainstm">
<description>Brainstorm (Pete Cooke) (set 1)</description>
<year>1987</year>
<publisher>Firebird Software</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="46689">
<rom name="brainstorm (1987)(firebird software).tzx" size="46689" crc="4217a864" sha1="8f5d705013a437ab1d644fe9077e53cb49343eb0" offset="0"/>
</dataarea>
</part>
</software>
<software name="brainstma" cloneof="brainstm">
<description>Brainstorm (Pete Cooke) (set 2)</description>
<year>1987</year>
<publisher>Firebird Software</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="46960">
<rom name="brainstorm (1987)(firebird software)[a].tzx" size="46960" crc="46896937" sha1="fd0095f99a0c5496f910322a3c667e622de0af94" offset="0"/>
</dataarea>
</part>
</software>
<software name="brainstmb" cloneof="brainstm">
<description>Brainstorm (Pete Cooke) (set 3)</description>
<year>1987</year>
<publisher>Firebird Software</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="46818">
<rom name="brainstorm (1987)(firebird software)[128k].tzx" size="46818" crc="e9e50095" sha1="f6a3834ca03ca8c8242e93ee50f2382b690279be" offset="0"/>
</dataarea>
</part>
</software>
<software name="brainstmd" cloneof="brainstm">
<description>Brainstorm (Pete Cooke) (set 4)</description>
<year>1987</year>
<publisher>Firebird Software</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="47084">
<rom name="brainstorm (1987)(firebird software)[a][128k].tzx" size="47084" crc="d5b15c06" sha1="1d6795dedbeb846ad3faa116db8a7082b96a423c" offset="0"/>
</dataarea>
</part>
</software>
<software name="bstormbb">
<description>Brain Storm (set 1)</description>
<year>1985</year>
<publisher>Bubblebus Software</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48559">
<rom name="brainstorm (1985)(bubblebus software).tzx" size="48559" crc="d76d294f" sha1="e7020c7a1e58dcee90c57ca232c2b774f95be211" offset="0"/>
</dataarea>
</part>
</software>
<software name="bstormbba" cloneof="bstormbb">
<description>Brain Storm (set 2)</description>
<year>1985</year>
<publisher>Bubblebus Software</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48629">
<rom name="brainstorm (1985)(bubblebus software)[a].tzx" size="48629" crc="329ba6c2" sha1="5dcc62357720cb9d5a9731cb72f7291f3fee2bf6" offset="0"/>
</dataarea>
</part>
</software>
<software name="brainst">
<description>Brain Storm (Micromega, 16k)</description>
<year>1983</year>
<publisher>Micromega</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="12541">
<rom name="brainstorm (1983)(micromega)[16k].tzx" size="12541" crc="0506c4c8" sha1="debfb6b371d507aad6ac69cc6d9638d0d31ed0ff" offset="0"/>
</dataarea>
</part>
</software>
<software name="earthshk">
<description>Earth Shaker (set 1)</description>
<year>1990</year>
<publisher>Michael Batty</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="37745">
<rom name="earth shaker (1990)(michael batty).tzx" size="37745" crc="85da782e" sha1="721677a3e18104ce5cd95cefff5d341f53cde5ff" offset="0"/>
</dataarea>
</part>
</software>
<software name="earthshka" cloneof="earthshk">
<description>Earth Shaker (set 2)</description>
<year>1990</year>
<publisher>Michael Batty</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="37985">
<rom name="earth shaker (1990)(michael batty)[a].tzx" size="37985" crc="8a6e99a5" sha1="c1db46ccb86305e88d2129f5b03ff1bcf2902086" offset="0"/>
</dataarea>
</part>
</software>
<!--NC128-->
<software name="earthshkb" cloneof="earthshk">
<description>Earth Shaker (set 3) (48K)</description>
<year>1990</year>
<publisher>Michael Batty</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="44833">
<rom name="earth shaker (1990)(michael batty)[different loading screen].tzx" size="44833" crc="7cd95b4a" sha1="1205d8d6c48af008fe4d5c1727fea64e6b2e62db" offset="0"/>
</dataarea>
</part>
</software>
</softwarelist>

View file

@ -295,10 +295,10 @@ WRITE8_MEMBER(samcoupe_state::samcoupe_lpt2_strobe_w)
***************************************************************************/
static ADDRESS_MAP_START( samcoupe_mem, AS_PROGRAM, 8, samcoupe_state )
AM_RANGE(0x0000, 0x3fff) AM_RAMBANK("bank1")
AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank2")
AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank3")
AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank4")
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_READWRITE(sam_bank1_r, sam_bank1_w) // AM_RAMBANK("bank1")
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_READWRITE(sam_bank2_r, sam_bank2_w) // AM_RAMBANK("bank2")
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_READWRITE(sam_bank3_r, sam_bank3_w) // AM_RAMBANK("bank3")
AM_RANGE(0xc000, 0xffff) AM_RAM AM_READWRITE(sam_bank4_r, sam_bank4_w) // AM_RAMBANK("bank4")
ADDRESS_MAP_END
static ADDRESS_MAP_START( samcoupe_io, AS_IO, 8, samcoupe_state )
@ -505,7 +505,7 @@ static const cassette_interface samcoupe_cassette_interface =
tzx_cassette_formats,
NULL,
(cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED),
NULL,
"samcoupe_cass",
NULL
};
@ -544,9 +544,12 @@ static MACHINE_CONFIG_START( samcoupe, samcoupe_state )
MCFG_CENTRONICS_PRINTER_ADD("lpt2", standard_centronics)
MCFG_MSM6242_ADD("sambus_clock", samcoupe_rtc_intf)
MCFG_CASSETTE_ADD(CASSETTE_TAG, samcoupe_cassette_interface)
MCFG_SOFTWARE_LIST_ADD("cass_list","samcoupe_cass")
MCFG_WD1772x_ADD("wd1772", SAMCOUPE_XTAL_X1/3)
MCFG_FLOPPY_DRIVE_ADD("fd0", samcoupe_floppies, "35dd", 0, samcoupe_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1", samcoupe_floppies, "35dd", 0, samcoupe_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop_list","samcoupe_flop")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View file

@ -670,7 +670,7 @@ static const cassette_interface spectrum_cassette_interface =
tzx_cassette_formats,
NULL,
(cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED),
NULL,
"spectrum_cass",
NULL
};
@ -738,6 +738,7 @@ MACHINE_CONFIG_START( spectrum_common, spectrum_state )
MCFG_SNAPSHOT_ADD("snapshot", spectrum, "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx", 0)
MCFG_QUICKLOAD_ADD("quickload", spectrum, "raw,scr", 2) // The delay prevents the screen from being cleared by the RAM test at boot
MCFG_CASSETTE_ADD( CASSETTE_TAG, spectrum_cassette_interface )
MCFG_SOFTWARE_LIST_ADD("cass_list","spectrum_cass")
/* cartridge */
MCFG_CARTSLOT_ADD("cart")

View file

@ -35,7 +35,17 @@ class samcoupe_state : public driver_device
{
public:
samcoupe_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag)
{
sam_bank_read_ptr[0] = NULL;
sam_bank_write_ptr[0] = NULL;
sam_bank_read_ptr[1] = NULL;
sam_bank_write_ptr[1] = NULL;
sam_bank_read_ptr[2] = NULL;
sam_bank_write_ptr[2] = NULL;
sam_bank_read_ptr[3] = NULL;
sam_bank_write_ptr[3] = NULL;
}
virtual void video_start();
@ -92,6 +102,19 @@ public:
DECLARE_WRITE8_MEMBER(samcoupe_lpt2_strobe_w);
DECLARE_READ8_MEMBER(samcoupe_rtc_r);
DECLARE_WRITE8_MEMBER(samcoupe_rtc_w);
DECLARE_READ8_MEMBER(sam_bank1_r);
DECLARE_WRITE8_MEMBER(sam_bank1_w);
DECLARE_READ8_MEMBER(sam_bank2_r);
DECLARE_WRITE8_MEMBER(sam_bank2_w);
DECLARE_READ8_MEMBER(sam_bank3_r);
DECLARE_WRITE8_MEMBER(sam_bank3_w);
DECLARE_READ8_MEMBER(sam_bank4_r);
DECLARE_WRITE8_MEMBER(sam_bank4_w);
UINT8* sam_bank_read_ptr[4];
UINT8* sam_bank_write_ptr[4];
};

View file

@ -22,11 +22,79 @@
MEMORY BANKING
***************************************************************************/
READ8_MEMBER(samcoupe_state::sam_bank1_r)
{
if (sam_bank_read_ptr[0])
return sam_bank_read_ptr[0][offset];
return 0xff;
}
WRITE8_MEMBER(samcoupe_state::sam_bank1_w)
{
if (sam_bank_write_ptr[0])
sam_bank_write_ptr[0][offset] = data;
}
READ8_MEMBER(samcoupe_state::sam_bank2_r)
{
if (sam_bank_read_ptr[1])
return sam_bank_read_ptr[1][offset];
return 0xff;
}
WRITE8_MEMBER(samcoupe_state::sam_bank2_w)
{
if (sam_bank_write_ptr[1])
sam_bank_write_ptr[1][offset] = data;
}
READ8_MEMBER(samcoupe_state::sam_bank3_r)
{
if (sam_bank_read_ptr[2])
return sam_bank_read_ptr[2][offset];
return 0xff;
}
WRITE8_MEMBER(samcoupe_state::sam_bank3_w)
{
if (sam_bank_write_ptr[2])
sam_bank_write_ptr[2][offset] = data;
}
READ8_MEMBER(samcoupe_state::sam_bank4_r)
{
if (sam_bank_read_ptr[3])
return sam_bank_read_ptr[3][offset];
return 0xff;
}
WRITE8_MEMBER(samcoupe_state::sam_bank4_w)
{
if (sam_bank_write_ptr[3])
sam_bank_write_ptr[3][offset] = data;
}
static void samcoupe_update_bank(address_space &space, int bank_num, UINT8 *memory, int is_readonly)
{
samcoupe_state *state = space.machine().driver_data<samcoupe_state>();
state->sam_bank_read_ptr[bank_num-1] = memory;
if (!is_readonly)
state->sam_bank_write_ptr[bank_num-1] = memory;
else
state->sam_bank_write_ptr[bank_num-1] = NULL;
// installing banks on the fly is too slow (20% speed in Manic Miner gameplay vs 300% speed)
#if 0
char bank[10];
sprintf(bank,"bank%d",bank_num);
samcoupe_state *state = space.machine().driver_data<samcoupe_state>();
if (memory)
{
state->membank(bank)->set_base(memory);
@ -39,6 +107,7 @@ static void samcoupe_update_bank(address_space &space, int bank_num, UINT8 *memo
} else {
space.nop_readwrite(((bank_num-1) * 0x4000), ((bank_num-1) * 0x4000) + 0x3FFF);
}
#endif
}