mirror of
https://github.com/holub/mame
synced 2025-05-14 18:08:13 +03:00
Merge branch 'master' of https://github.com/mamedev/mame into wgp_args
This commit is contained in:
commit
4b3eca25db
@ -487,9 +487,11 @@
|
||||
|
||||
<software name="mrdo">
|
||||
<description>Mr. Do (cleanly cracked)</description>
|
||||
<year>1983</year>
|
||||
<year>1985</year>
|
||||
<publisher>Datasoft</publisher>
|
||||
<info name="release" value="2015-07-05"/>
|
||||
<!-- No compatibility data known at this time. -->
|
||||
<!-- Crack was updated on 2015-07-05 to fix corrupted blocks. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="143360">
|
||||
@ -502,6 +504,7 @@
|
||||
<description>Ms. Pac Man (cleanly cracked)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Atari</publisher>
|
||||
<info name="release" value="2015-03-18"/>
|
||||
<!-- No compatibility data known at this time. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -531,6 +534,7 @@
|
||||
<description>Pac-Man (Atari) (cleanly cracked)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Atari</publisher>
|
||||
<info name="release" value="2015-03-18"/>
|
||||
<!-- No compatibility data known at this time. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -543,7 +547,8 @@
|
||||
<software name="pacmand">
|
||||
<description>Pac-Man (Datasoft) (cleanly cracked)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Datasoft / Namco America</publisher>
|
||||
<publisher>Datasoft</publisher>
|
||||
<info name="release" value="2015-03-10"/>
|
||||
<!-- No compatibility data known at this time. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -554,9 +559,10 @@
|
||||
</software>
|
||||
|
||||
<software name="pacmant">
|
||||
<description>Pac-Man (Thunder Mountain copyight) (cleanly cracked)</description>
|
||||
<description>Pac-Man (Thunder Mountain) (cleanly cracked)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Thunder Mountain / Namco</publisher>
|
||||
<publisher>Thunder Mountain</publisher>
|
||||
<info name="release" value="2015-05-12"/>
|
||||
<!-- No compatibility data known at this time. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -3087,7 +3093,6 @@
|
||||
<description>Agenda Files (cleanly cracked)</description>
|
||||
<year>1981</year>
|
||||
<publisher>Apple Computer</publisher>
|
||||
<!-- Dump release date not known at this time. -->
|
||||
<info name="release" value="2018-06-09"/>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -5847,11 +5852,13 @@
|
||||
<!-- No compatibility data known at this time. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Side A"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="championship baseball (4am crack) side a.dsk" size="143360" crc="dc772a9f" sha1="0dccab61467b5d08c3de4a05e9410ce56d2bbf4d" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Side B"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="championship baseball (4am crack) side b.dsk" size="143360" crc="b4767c81" sha1="4ad26e03f0227ec4eada7ad0709222baf79427bb" />
|
||||
</dataarea>
|
||||
@ -5908,11 +5915,13 @@
|
||||
<!-- No compatibility data known at this time. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 1"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="chariots, cougars, and kings (4am crack) disk 1.dsk" size="143360" crc="8fc9df9f" sha1="d966d3a65ff4eb861d9faa58fb491a33c4b94fe8" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 2"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="chariots, cougars, and kings (4am crack) disk 2.dsk" size="143360" crc="57dcc568" sha1="fccb739ccc8dcddd00b60dcabad2745909f0f517" />
|
||||
</dataarea>
|
||||
|
@ -45,6 +45,75 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="apwrks12">
|
||||
<description>AppleWorks (Version 1.2, USA)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Apple Computer, Inc.</publisher>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 1 - Startup"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks 1.2 startup.dsk" size="143360" crc="0cdc2045" sha1="a0505b4af4502d2de421f1d5aaa3968582f19dad" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 2 - Program"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks 1.2 program.dsk" size="143360" crc="ee501dac" sha1="f0b9b7dcec03d88c82b6a8de69f6d4fdee8ebc07" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="apwrks13">
|
||||
<description>AppleWorks (Version 1.3, USA)</description>
|
||||
<year>1985</year>
|
||||
<publisher>Apple Computer, Inc.</publisher>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 1 - Boot"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks_v13boot.dsk" size="143360" crc="535eef61" sha1="bdebfc3adfb1e5341fd77826040f2155e246ef5b" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 2 - Program"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks_v13programdisk.dsk" size="143360" crc="29748ff9" sha1="7f9e86ea50343082ad6d2bb608e5da4befd48a9c" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="apwrks20">
|
||||
<description>AppleWorks (Version 2.0, USA)</description>
|
||||
<year>1986</year>
|
||||
<publisher>Apple Computer, Inc.</publisher>
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 1 - Boot"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks 2.0 boot disk.po" size="143360" crc="a1a7d2c4" sha1="f45a436399f83d5213604ab395978e7cc726aa91" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 2 - Program"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks 2.0 program disk.po" size="143360" crc="4142bffd" sha1="088e69ddb3e9821fc7d20c7cfcd241636467bc89" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 3 - Sample disk 1"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks 2.0 sample disk 1.po" size="143360" crc="f20d113e" sha1="d057ad439f0e33e035194b08df1ce62832f15bef" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk 4 - Sample disk 2"/>
|
||||
<dataarea name="flop" size="143360">
|
||||
<rom name="appleworks 2.0 sample disk 2.po" size="143360" crc="ae3e43a7" sha1="1014aed563546747844702216bed53bb958d69da" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="amdos35">
|
||||
<description>AmDOS (v3.5)</description>
|
||||
<year>1986</year>
|
||||
|
@ -5353,4 +5353,75 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="chmpbase">
|
||||
<description>Championship Baseball</description>
|
||||
<year>1986</year>
|
||||
<publisher>Activision</publisher>
|
||||
<info name="release" value="2019-06-06"/>
|
||||
<sharedfeat name="compatibility" value="A2P,A2E,A2EE,A2C,A2GS" />
|
||||
<!-- It requires a 64K Apple ][+ or later. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Side A"/>
|
||||
<dataarea name="flop" size="234841">
|
||||
<rom name="Championship Baseball side A.woz" size="234841" crc="d2b4c74b" sha1="d36792910f466809fd7021cbf34ece4225c31f4c" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Side B"/>
|
||||
<dataarea name="flop" size="234841">
|
||||
<rom name="Championship Baseball side B.woz" size="234841" crc="643f1049" sha1="4f29d8b36f113ae223d9b5e34198b894f7a55a16" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="wizardoz">
|
||||
<description>The Wizard of Oz</description>
|
||||
<year>1985</year>
|
||||
<publisher>Windham Classics</publisher>
|
||||
<info name="release" value="2019-06-07"/>
|
||||
<sharedfeat name="compatibility" value="A2P,A2E,A2EE,A2C,A2GS" />
|
||||
<!-- It requires a 64K Apple ][+ or later.- -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A"/>
|
||||
<dataarea name="flop" size="234866">
|
||||
<rom name="The Wizard of Oz disk A.woz" size="234866" crc="4522de5f" sha1="b2459cf8ea2791d82b5da58e7b0aa25caf140f94" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk B"/>
|
||||
<dataarea name="flop" size="234866">
|
||||
<rom name="The Wizard of Oz disk B.woz" size="234866" crc="e9de932e" sha1="fa02f177b45bde15ffc06101031fd01ca8710033" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk C"/>
|
||||
<dataarea name="flop" size="234866">
|
||||
<rom name="The Wizard of Oz disk C.woz" size="234866" crc="0ed1d4cb" sha1="78a9fb5edb2fd249e7804607cd7bd3ee248115af" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk D"/>
|
||||
<dataarea name="flop" size="234866">
|
||||
<rom name="The Wizard of Oz disk D.woz" size="234866" crc="1c0e7e78" sha1="25d7e25b66c475d0881138ba302be722683df6e6" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="queenphb">
|
||||
<description>The Queen of Phobos</description>
|
||||
<year>1982</year>
|
||||
<publisher>Phoenix Software</publisher>
|
||||
<info name="release" value="2019-06-07"/>
|
||||
<sharedfeat name="compatibility" value="A2,A2P,A2E,A2EE,A2C,A2GS" />
|
||||
<!-- It runs on any Apple II with 48K. -->
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="181581">
|
||||
<rom name="The Queen of Phobos.woz" size="181581" crc="6c31a42a" sha1="7617ff8f126edaab1daf8954ea7d6cac07bb1e77" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
478
hash/bbc_rom.xml
478
hash/bbc_rom.xml
@ -842,7 +842,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="amxdesgn" supported="no">
|
||||
<software name="amxdesgn">
|
||||
<description>AMX Design</description>
|
||||
<year>1987</year>
|
||||
<publisher>Advanced Memory Systems</publisher>
|
||||
@ -1117,6 +1117,28 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ats238" cloneof="ats">
|
||||
<description>BBC Teletext 2.38</description>
|
||||
<year>198?</year>
|
||||
<publisher>BBC Soft</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="BBCTeletext-2.38.rom" size="16384" crc="b14e0ac5" sha1="10684233152b9e9cbd56e5f6fa5d1ed6e65006d7"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ats250" cloneof="ats">
|
||||
<description>BBC Teletext 2.50</description>
|
||||
<year>1986</year>
|
||||
<publisher>BBC Soft</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="BBCTeletext-2.50.rom" size="16384" crc="6a8fcada" sha1="d8a51e4b9bd6bafa826d1d76622cc5811ce9a0ad"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ats258" cloneof="ats">
|
||||
<description>ATS 2.58</description>
|
||||
<year>1987</year>
|
||||
@ -1183,6 +1205,39 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="atsp100" cloneof="atsp">
|
||||
<description>ATS+ 1.00</description>
|
||||
<year>1987</year>
|
||||
<publisher>BBC Soft</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="ATS+-1.00.rom" size="16384" crc="490382ee" sha1="d6ea5ade7a34947a48577a49d389da8698ca8370"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="atsp">
|
||||
<description>ATS+ 2.00</description>
|
||||
<year>1988</year>
|
||||
<publisher>BBC Soft</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="ATS+-2.00.rom" size="16384" crc="0da04674" sha1="8713b63a5d4a63586f4220d28d6821947b6d0aac"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="barrybox" supported="no">
|
||||
<description>Barry-Box</description>
|
||||
<year>1986</year>
|
||||
<publisher>BML Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="BarryBox-2.0.rom" size="16384" crc="19d68bd3" sha1="650b3d84075fc48a066da262bb2d17714d2364ee"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="basic1">
|
||||
<description>BASIC (1981)</description>
|
||||
<year>1981</year>
|
||||
@ -1328,6 +1383,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beebflex" supported="no">
|
||||
<description>CUBE BeebFlex</description>
|
||||
<year>1984</year>
|
||||
<publisher>Control Universal</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="CUBE-BeebFlex.rom" size="8192" crc="84927599" sha1="921a9958ee27b3d9fde61f09761520f07ec2b8eb"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beebfont">
|
||||
<description>BeebFont</description>
|
||||
<year>1984</year>
|
||||
@ -1405,6 +1471,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beebscan" supported="no">
|
||||
<description>BeebScan</description>
|
||||
<year>1989</year>
|
||||
<publisher>Watford Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="BeebScan-1.31.rom" size="16384" crc="5f3a3452" sha1="50f1c05079bd5dec715321122a86cb7efabd6d40"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beebtel200" cloneof="beebtel">
|
||||
<description>Beebtel 2.00</description>
|
||||
<year>1985</year>
|
||||
@ -2660,6 +2737,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dmon103" cloneof="dmon">
|
||||
<description>DMON A1.03</description>
|
||||
<year>1983</year>
|
||||
<publisher>Alligata</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="DMON-A1.03.rom" size="8192" crc="a24011b5" sha1="d9a6687113fec9c8ed8a90cebe7c965298304c9a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dmon108" cloneof="dmon">
|
||||
<description>DMON A1.08</description>
|
||||
<year>1983</year>
|
||||
@ -2985,6 +3073,61 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epromp103" supported="no">
|
||||
<description>Eprom Programmer 1.03</description>
|
||||
<year>1986</year>
|
||||
<publisher>Morley Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="EpromProgrammer-1.03.rom" size="16384" crc="40a3c644" sha1="fecd3f087aa163e17e4a50ac48e7c182587f8678"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epromp" supported="no">
|
||||
<description>Eprom Programmer 1.06</description>
|
||||
<year>1986</year>
|
||||
<publisher>Morley Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="EpromProgrammer-1.06.rom" size="16384" crc="99973086" sha1="c2c80f73deb8c6f4717f6205dee170ad6cc34f3a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epromp201" cloneof="epromp2" supported="no">
|
||||
<description>Eprom Programmer V2 2.01</description>
|
||||
<year>1987</year>
|
||||
<publisher>Morley Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="EpromProgrammer-2.01.rom" size="16384" crc="cbeeda05" sha1="5916eaa5a6268921e3b9f9dd27312b7b47991e8a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epromp202" cloneof="epromp2" supported="no">
|
||||
<description>Eprom Programmer V2 2.02</description>
|
||||
<year>1987</year>
|
||||
<publisher>Morley Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="EpromProgrammer-2.02.rom" size="16384" crc="176ad7ee" sha1="23e0087e3e1120bc4572c6c97a841d62c60514b0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epromp2" supported="no">
|
||||
<description>Eprom Programmer V2 2.03</description>
|
||||
<year>1987</year>
|
||||
<publisher>Morley Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="EpromProgrammer-2.03.rom" size="16384" crc="3943aa15" sha1="ddb577e6b81877ade3af64205c2da59a66b509a8"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epsondmp">
|
||||
<description>Epson Dump ROM</description>
|
||||
<year>1984</year>
|
||||
@ -3007,6 +3150,28 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="eurobeeb1" cloneof="eurobeeb" supported="no">
|
||||
<description>EURO-Beeb Terminal 1</description>
|
||||
<year>1984</year>
|
||||
<publisher>Control Universal</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="EURO-Beeb_Terminal-1.00.rom" size="8192" crc="a411d030" sha1="8908eb1522653b728659dbee26a210bb17e762f9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="eurobeeb" supported="no">
|
||||
<description>EURO-Beeb Terminal 4.13</description>
|
||||
<year>1986</year>
|
||||
<publisher>Control Universal</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="EURO-Beeb_Terminal-4.13.rom" size="8192" crc="5e80e864" sha1="d1c42206bc4bd8210967b1574a090117338535e9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="everest">
|
||||
<description>Everest</description>
|
||||
<year>1986</year>
|
||||
@ -3150,6 +3315,22 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="fit" supported="no">
|
||||
<description>FIT Test Station</description>
|
||||
<year>1982</year>
|
||||
<publisher>Acorn</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="FIT_TestROM1-201639-02.rom" size="16384" crc="1e8cdd5f" sha1="babb5ea1eb191cba53bfcfad2967ccb31707ec8c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="rom2" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="FIT_TestROM2-201640-02.rom" size="16384" crc="5030e60c" sha1="c679e664f717f071e69f11ce6afd458499767bc0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="flopcopy">
|
||||
<description>Floppy Copy 1.2</description>
|
||||
<year>198?</year>
|
||||
@ -3328,18 +3509,36 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="genie" supported="no">
|
||||
<description>PMS Genie</description>
|
||||
<software name="genie101" cloneof="genie" supported="no">
|
||||
<description>PMS Genie 1.01</description>
|
||||
<year>1987</year>
|
||||
<publisher>Permanent Memory Systems</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<feature name="slot" value="genie" />
|
||||
<!-- Should be single 32K, 8K pages were dumped in-situ so may be corrupt and/or incorrect order. -->
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="PMSGenie1-1.01.rom" size="8192" crc="3ee29106" sha1="8b4c14c0657fbb3b19fb85103cc39c06e026f280" offset="0x6000" status="baddump"/>
|
||||
<rom name="PMSGenie2-1.01.rom" size="8192" crc="3d666c36" sha1="810869aeb66fec7599aaec01641c07b1a8968fdc" offset="0x4000" status="baddump"/>
|
||||
<rom name="PMSGenie3-1.01.rom" size="8192" crc="297e99a8" sha1="4b225606cf052f72ef755fbc67d131ab6aa16438" offset="0x2000" status="baddump"/>
|
||||
<rom name="PMSGenie4-1.01.rom" size="8192" crc="b828717b" sha1="4f8ff82bd05ace8cee99e6c7c8dbc35d6de3e92d" offset="0x0000" status="baddump"/>
|
||||
<rom name="PMSGenie1-1.01.rom" size="8192" crc="3ee29106" sha1="8b4c14c0657fbb3b19fb85103cc39c06e026f280" offset="0x0000" status="baddump"/>
|
||||
<rom name="PMSGenie2-1.01.rom" size="8192" crc="b828717b" sha1="4f8ff82bd05ace8cee99e6c7c8dbc35d6de3e92d" offset="0x2000" status="baddump"/>
|
||||
<rom name="PMSGenie3-1.01.rom" size="8192" crc="297e99a8" sha1="4b225606cf052f72ef755fbc67d131ab6aa16438" offset="0x4000" status="baddump"/>
|
||||
<rom name="PMSGenie4-1.01.rom" size="8192" crc="3d666c36" sha1="810869aeb66fec7599aaec01641c07b1a8968fdc" offset="0x6000" status="baddump"/>
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="32768" />
|
||||
<dataarea name="ram" size="32768" />
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="genie" supported="no">
|
||||
<description>PMS Genie 1.02</description>
|
||||
<year>1987</year>
|
||||
<publisher>Permanent Memory Systems</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<feature name="slot" value="genie" />
|
||||
<!-- Should be single 32K, 8K pages were dumped in-situ so may be corrupt and/or incorrect order. -->
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="PMSGenie1-1.02.rom" size="8192" crc="8d1a1fff" sha1="829c1c095d67d7aaf97955f9b2c85f7ec826ca4e" offset="0x0000" status="baddump"/>
|
||||
<rom name="PMSGenie2-1.02.rom" size="8192" crc="11ffee6c" sha1="728fe32fc50d07e61823042ec564361a293c5354" offset="0x2000" status="baddump"/>
|
||||
<rom name="PMSGenie3-1.02.rom" size="8192" crc="9a37428c" sha1="a951c61c81acea3d7510a0e23b0c054fae86a95b" offset="0x4000" status="baddump"/>
|
||||
<rom name="PMSGenie4-1.02.rom" size="8192" crc="25cdd418" sha1="07a5f4f5dde38679140815a6b5ee22eccd678cb1" offset="0x6000" status="baddump"/>
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="32768" />
|
||||
<dataarea name="ram" size="32768" />
|
||||
@ -3634,6 +3833,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hobbit" supported="no">
|
||||
<description>Hobbit OS 1.8</description>
|
||||
<year>1983</year>
|
||||
<publisher>Ikon</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="HobbitOS-1.8.rom" size="8192" crc="210a4664" sha1="7a0361e2eef96ba63c7dba3114eee581398f552a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hyperdrv100" cloneof="hyperdrv">
|
||||
<description>HyperDriver 1.00</description>
|
||||
<year>1987</year>
|
||||
@ -3656,6 +3866,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hyperdrv111" cloneof="hyperdrv">
|
||||
<description>HyperDriver 1.11</description>
|
||||
<year>1987</year>
|
||||
<publisher>Dabs Press</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="HyperDriver-1.11.rom" size="16384" crc="9bc3de65" sha1="ff24a0f6419f23fdae5ebe51e1331d698d6c1250"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hyperdrv">
|
||||
<description>HyperDriver 1.40</description>
|
||||
<year>1987</year>
|
||||
@ -3736,7 +3957,7 @@
|
||||
<software name="imagep">
|
||||
<description>Image Processor 0.9A</description>
|
||||
<year>1984</year>
|
||||
<publisher><unknown></publisher>
|
||||
<publisher>RH Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="ImageProcessor-0.9A.rom" size="8192" crc="95bc21cc" sha1="834f38484025be4db49cf89bc853ec5bcd4ad16f"/>
|
||||
@ -3777,6 +3998,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="informnt">
|
||||
<description>The Informant</description>
|
||||
<year>1989</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="Informant-1.00.rom" size="16384" crc="094c5f01" sha1="7b78d3f1ab7d4ac0e6960a0a90f6fb7ad0a36ea8"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ibase">
|
||||
<description>Inter-Base 2.0A</description>
|
||||
<year>1987</year>
|
||||
@ -4191,7 +4423,7 @@
|
||||
</software>
|
||||
|
||||
<software name="logol">
|
||||
<description>LOGO (Logotron)</description>
|
||||
<description>Logotron LOGO</description>
|
||||
<year>1984</year>
|
||||
<publisher>Logotron</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
@ -4201,6 +4433,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="logolc" cloneof="logol">
|
||||
<description>Logotron LOGO (Cymru)</description>
|
||||
<year>1984</year>
|
||||
<publisher>Logotron</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="LOGO-Logotron-Cymru-1.00.rom" size="16384" crc="602d1932" sha1="95aef193b56f3b49577c5ceb153c09e3d10b1157"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="lvldos">
|
||||
<description>LVL Dos 0.91</description>
|
||||
<year>198?</year>
|
||||
@ -4582,12 +4825,12 @@
|
||||
</software>
|
||||
|
||||
<software name="midwdfs">
|
||||
<description>Midwich WDFS</description>
|
||||
<description>Midwich MWFS</description>
|
||||
<year>1985</year>
|
||||
<publisher>Midwich Computers</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="Midwich-WDFS.rom" size="16384" crc="85d1db75" sha1="57a0144d8612706fcc8969b61c5cbb554e7f8593"/>
|
||||
<rom name="Midwich-MWFS.rom" size="16384" crc="85d1db75" sha1="57a0144d8612706fcc8969b61c5cbb554e7f8593"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -5011,6 +5254,22 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="oplogo">
|
||||
<description>Open LOGO</description>
|
||||
<year>1984</year>
|
||||
<publisher>BBC Soft</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="OpenLOGO-L-1.0.rom" size="16384" crc="f469ae26" sha1="5f68441d71830046799247590d6eb978dbb63c79"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="rom2" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="OpenLOGO-S-1.0.rom" size="16384" crc="dfaa891d" sha1="ceb594bf18b680fb7d575ddf6257fffd03940877"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ovbasic">
|
||||
<description>Overlay BASIC</description>
|
||||
<year>1987</year>
|
||||
@ -5276,6 +5535,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="prestel10" cloneof="prestel" supported="no">
|
||||
<description>Prestel 1.0</description>
|
||||
<year>1984</year>
|
||||
<publisher>Acorn</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="Prestel-1.0.rom" size="8192" crc="5108ca91" sha1="bcfef2436611cea74b01e61f48462cee80cf6e2e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="prestel11" cloneof="prestel" supported="no">
|
||||
<description>Prestel 1.1</description>
|
||||
<year>1984</year>
|
||||
@ -5554,6 +5824,18 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qfs101">
|
||||
<description>QFS 1.01</description>
|
||||
<year>1984</year>
|
||||
<publisher>Gnomic</publisher>
|
||||
<info name="usage" value="Requires Cumana QFS 8877A FDC" />
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="QFS-1.01.rom" size="16384" crc="3ce2af39" sha1="0eea54d3433ec3aaf32e2c43cd9469d5f5be06be"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qfs102">
|
||||
<description>QFS 1.02</description>
|
||||
<year>1984</year>
|
||||
@ -5613,6 +5895,28 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ravideo240" cloneof="ravideo" supported="no">
|
||||
<description>Ramamp Video 2.40</description>
|
||||
<year>1986</year>
|
||||
<publisher>Ramamp Computers</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="RamampVideo-2.40.rom" size="16384" crc="c71bac8b" sha1="34b667e60e0528cecad940eee13c93a628ad74e0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ravideo" supported="no">
|
||||
<description>Ramamp Video 2.50</description>
|
||||
<year>1986</year>
|
||||
<publisher>Ramamp Computers</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="RamampVideo-2.50.rom" size="16384" crc="635eccee" sha1="ed1b327be2c31f1c12686f0ff649990acbc27f15"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ramrod182" cloneof="ramrod">
|
||||
<description>Ramrod 1.82</description>
|
||||
<year>1986</year>
|
||||
@ -5741,6 +6045,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="romit100" cloneof="romit">
|
||||
<description>Romit 1.00</description>
|
||||
<year>1985</year>
|
||||
<publisher>Beebugsoft</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="Romit-1.00.rom" size="16384" crc="bbda3736" sha1="c6edb59c0e45060a0d6dd98a186db53602319919"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="romit101" cloneof="romit">
|
||||
<description>Romit 1.01</description>
|
||||
<year>1985</year>
|
||||
@ -5994,6 +6309,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="sforth">
|
||||
<description>Super-Forth 1.5</description>
|
||||
<year>1984</year>
|
||||
<publisher>RH Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="Super-Forth-1.5.rom" size="8192" crc="6b7763bb" sha1="8f053050a7b75e28fcffa72e77a3c546c3d0c7ac"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="sfs090" cloneof="sfs">
|
||||
<description>Watford SFS 0.90</description>
|
||||
<year>1985</year>
|
||||
@ -6339,6 +6665,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="starbase211" cloneof="starbase">
|
||||
<description>StarBASE 2.11</description>
|
||||
<year>1984</year>
|
||||
<publisher>GCC</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="StarBASE-2.11.rom" size="16384" crc="2d0151e5" sha1="30d077f896d4f57ce7729b6ed5a54edb5992abdb"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="stargrph">
|
||||
<description>StarGraph 2.01</description>
|
||||
<year>1985</year>
|
||||
@ -6814,7 +7151,7 @@
|
||||
</software>
|
||||
|
||||
<software name="stlrtc">
|
||||
<description>STL Clock & Desk</description>
|
||||
<description>STL Clock & Desk 1.00</description>
|
||||
<year>1986</year>
|
||||
<publisher>Solidisk</publisher>
|
||||
<sharedfeat name="compatibility" value="B"/>
|
||||
@ -6826,6 +7163,19 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="stlrtc110" cloneof="stlrtc">
|
||||
<description>STL Clock & Desk 1.10</description>
|
||||
<year>1986</year>
|
||||
<publisher>Solidisk</publisher>
|
||||
<sharedfeat name="compatibility" value="B"/>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<feature name="slot" value="stlrtc" />
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="Solidisk-RTC-1.10.rom" size="16384" crc="c9e988c0" sha1="f8777b66ee03f3095c9454267280a8430d91fa1c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="stltkit12b" cloneof="stltkit12">
|
||||
<description>STL Toolkit 1.20 27/09/85</description>
|
||||
<year>1985</year>
|
||||
@ -6870,6 +7220,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="supastor15">
|
||||
<description>SupaStore 1.5</description>
|
||||
<year>198?</year>
|
||||
<publisher>ESM</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="SupaStore-1.5.rom" size="16384" crc="4748a492" sha1="2c195df0c3093395b5c7654c382c00aed978226c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="supastor">
|
||||
<description>SupaStore 2.0S</description>
|
||||
<year>1986</year>
|
||||
@ -6969,6 +7330,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="techfont">
|
||||
<description>Techno-Font</description>
|
||||
<year>1984</year>
|
||||
<publisher>Kenneth B. Larsen</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="TechnoFont-1.2.rom" size="8192" crc="bc4eb6b5" sha1="feabd2fa60171389e09764762cf4e94cfe055091"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ted">
|
||||
<description>TED 1.11</description>
|
||||
<year>1987</year>
|
||||
@ -7103,6 +7475,39 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tfs100" cloneof="tfs">
|
||||
<description>Acorn TFS 1.00</description>
|
||||
<year>1982</year>
|
||||
<publisher>Acorn</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="TFS-1.00.rom" size="16384" crc="23434b90" sha1="d1874278dfc5bb227b1987fc1c7c90796658e3d4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tfs102" cloneof="tfs">
|
||||
<description>Acorn TFS 1.02</description>
|
||||
<year>1982</year>
|
||||
<publisher>Acorn</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="TFS-1.02.rom" size="16384" crc="d7f75742" sha1="103f89de6f7f50184246bd54f6b57cf9c4fc7194"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tfs">
|
||||
<description>Acorn TFS 1.03</description>
|
||||
<year>1982</year>
|
||||
<publisher>Acorn</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="TFS-1.03.rom" size="16384" crc="db2cd3ab" sha1="b076c9c6aecc3dc0683d6810ca5329062eafe3f2"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tictoc">
|
||||
<description>Tic-Toc RTC</description>
|
||||
<year>1988</year>
|
||||
@ -7715,6 +8120,18 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="viewsheet10" cloneof="viewsheet">
|
||||
<description>ViewSheet 1.0</description>
|
||||
<year>1983</year>
|
||||
<publisher>Acornsoft</publisher>
|
||||
<info name="release" value="SBB07" />
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="ViewSheet-1.0.rom" size="16384" crc="1c231bd0" sha1="fe794801d6455b2babddcb6d132602667e5370ce"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="viewsheet">
|
||||
<description>ViewSheet B1.0</description>
|
||||
<year>1984</year>
|
||||
@ -7845,6 +8262,18 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="wappsupp">
|
||||
<description>Wapping Support 1.21</description>
|
||||
<year>1988</year>
|
||||
<publisher>Watford Electronics</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<feature name="slot" value="palwap" />
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="WappingSupport-1.21.rom" size="16384" crc="1316871d" sha1="64133c00cc06a1b6f58af9b778ae674f0878de68"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="wddfs140" cloneof="wddfs153">
|
||||
<description>Watford Electronics DDFS 1.40</description>
|
||||
<year>1984</year>
|
||||
@ -8216,6 +8645,18 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="wwplus2">
|
||||
<description>Wordwise Plus 2.04</description>
|
||||
<year>1987</year>
|
||||
<publisher>Computer Concepts/IFEL</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<feature name="slot" value="ccibase" />
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="WordwisePlus-2.04.rom" size="32768" crc="1f560e1f" sha1="2ab8fcf340b0c66ab39871a96d8b93cfb54ee41d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="workstat">
|
||||
<description>Workstation 1.4</description>
|
||||
<year>1983</year>
|
||||
@ -8250,7 +8691,7 @@
|
||||
</software>
|
||||
|
||||
<software name="wysiwygp">
|
||||
<description>WYSIWYG Plus</description>
|
||||
<description>WYSIWYG Plus 1.2</description>
|
||||
<year>1986</year>
|
||||
<publisher>Technomatic</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
@ -8260,6 +8701,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="wysiwygp122" cloneof="wysiwygp">
|
||||
<description>WYSIWYG Plus 1.22</description>
|
||||
<year>1986</year>
|
||||
<publisher>Technomatic</publisher>
|
||||
<part name="rom1" interface="bbc_rom">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="WYSIWYGPlus-1.22.rom" size="16384" crc="d2c37f11" sha1="7da9b11c4e478ebc714b68485c4dd7059d175a2a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xcal">
|
||||
<description>Xcal</description>
|
||||
<year>1983</year>
|
||||
|
@ -96,7 +96,18 @@
|
||||
<publisher>Compusense</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="184345">
|
||||
<rom name="Compusense - Flex - Dynacalc.vdk" size="184345" crc="9ddcb3cd" sha1="c0b187571f7e01ba43a8a0d8a1f42afa736f1791"/>
|
||||
<rom name="Dynacalc (198x)(Compusense Ltd)[!][FLEX].vdk" size="184345" crc="9ddcb3cd" sha1="c0b187571f7e01ba43a8a0d8a1f42afa736f1791"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dynafast">
|
||||
<description>DynaFast v1.5.0</description>
|
||||
<year>1984</year>
|
||||
<publisher>Compusense</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="102412">
|
||||
<rom name="Dynafast v1.5 (1984)(Compusense Ltd)[!][FLEX].vdk" size="102412" crc="6f57191a" sha1="4b86a6a7128efe98eb3b99fa66adb7b2d44b2358"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -437,6 +437,18 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dunjunz">
|
||||
<description>Dunjunz</description>
|
||||
<year>2018</year>
|
||||
<publisher>Teipen Mwnci</publisher>
|
||||
<info name="author" value="Ciaran Anscomb"/>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="184320">
|
||||
<rom name="Dunjunz (2018)(Teipen Mwnci).dsk" size="184320" crc="92e54430" sha1="efed7bcee9ef5d29d3ab813d3d06bbdf7339bb4c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dupdisk2">
|
||||
<description>Duplidisk 2</description>
|
||||
<year>1986</year>
|
||||
@ -448,7 +460,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dynafast124" cloneof="dynafast">
|
||||
<software name="dynafast124" cloneof="dynafast140">
|
||||
<description>DynaFast v1.2.4</description>
|
||||
<year>1984</year>
|
||||
<publisher>Compusense</publisher>
|
||||
@ -459,7 +471,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dynafast140" cloneof="dynafast">
|
||||
<software name="dynafast140">
|
||||
<description>DynaFast v1.4.0</description>
|
||||
<year>1984</year>
|
||||
<publisher>Compusense</publisher>
|
||||
@ -470,17 +482,6 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dynafast">
|
||||
<description>DynaFast v1.5.0</description>
|
||||
<year>1984</year>
|
||||
<publisher>Compusense</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="102412">
|
||||
<rom name="Dynafast v1.5 (1984)(Compusense Ltd)[!].vdk" size="102412" crc="6f57191a" sha1="4b86a6a7128efe98eb3b99fa66adb7b2d44b2358"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dynamiser">
|
||||
<description>DynaMiser v1.4.2</description>
|
||||
<year>1983</year>
|
||||
@ -639,6 +640,7 @@
|
||||
<description>Forth Compiler (DeltaDOS)</description>
|
||||
<year>1985</year>
|
||||
<publisher>N.D.U.G.</publisher>
|
||||
<sharedfeat name="ext_default" value="premier_fdc"/>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="102412">
|
||||
<rom name="Forth Compiler (1985)(NDUG)[!][DELTA].vdk" size="102412" crc="44d0a07c" sha1="bfbcbec8ebe763eb382f105416dbf4d2a1e104f9"/>
|
||||
@ -1319,6 +1321,7 @@
|
||||
<description>Telewriter Premier DOS</description>
|
||||
<year>1985</year>
|
||||
<publisher>Microdeal</publisher>
|
||||
<sharedfeat name="ext_default" value="premier_fdc"/>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="256016">
|
||||
<rom name="Telewriter (1985)(Microdeal)(DeltaDOS)[!].dmk" size="256016" crc="c9b2ed45" sha1="8e7cfda7289318972c8ec9595c1c125d312ddf42"/>
|
||||
|
@ -7633,19 +7633,19 @@ has been replaced with an all-zero block. -->
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Disk 1" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk1.img" size="737280" crc="6659ab39" sha1="1459c9e2425fd19042d580872cf77d95debaa023"/>
|
||||
<rom name="chessm23_disk1.img" size="737280" crc="6659ab39" sha1="1459c9e2425fd19042d580872cf77d95debaa023"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Disk 2" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk2.img" size="737280" crc="d7182b95" sha1="bb474de5e0f7a3a5eecbf004ec1038a4a3d0ab9e"/>
|
||||
<rom name="chessm23_disk2.img" size="737280" crc="d7182b95" sha1="bb474de5e0f7a3a5eecbf004ec1038a4a3d0ab9e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Game 1990" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="game1990.img" size="737280" crc="056e572d" sha1="620a44254c1f4e86c01a4d4b407b820f45993a1c"/>
|
||||
<rom name="chessm23_game1990.img" size="737280" crc="056e572d" sha1="620a44254c1f4e86c01a4d4b407b820f45993a1c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -7661,13 +7661,13 @@ has been replaced with an all-zero block. -->
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Disk 1" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk1.img" size="737280" crc="a93939a6" sha1="2f3927e50dd82b93ca3fa1436f5b664abc18d061"/>
|
||||
<rom name="chessm21_disk1.img" size="737280" crc="a93939a6" sha1="2f3927e50dd82b93ca3fa1436f5b664abc18d061"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Option 1" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="option1.img" size="737280" crc="cba1616e" sha1="d773fbf810957c419d63cd4abb8466651ff1a832"/>
|
||||
<rom name="chessm21_option1.img" size="737280" crc="cba1616e" sha1="d773fbf810957c419d63cd4abb8466651ff1a832"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -7682,13 +7682,13 @@ has been replaced with an all-zero block. -->
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Disk 1" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk1.img" size="737280" crc="79005b25" sha1="2a7cc406dd1fbf0b351a117c8a092069a33dbdc3"/>
|
||||
<rom name="chessm21o_disk1.img" size="737280" crc="79005b25" sha1="2a7cc406dd1fbf0b351a117c8a092069a33dbdc3"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Option 1" />
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="option1.img" size="737280" crc="cba1616e" sha1="d773fbf810957c419d63cd4abb8466651ff1a832"/>
|
||||
<rom name="chessm21_option1.img" size="737280" crc="cba1616e" sha1="d773fbf810957c419d63cd4abb8466651ff1a832"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -7701,13 +7701,8 @@ has been replaced with an all-zero block. -->
|
||||
<publisher>Tasc</publisher>
|
||||
<info name="usage" value="ChessMachine installation required, see README.TXT" />
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk1.img" size="737280" crc="989b0640" sha1="bf012e74a67590a94b3320727f76c834fabe4251"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk2.img" size="737280" crc="4cf95170" sha1="320710397eaf659a631bc2fdd194805a3454665d"/>
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="chessmen.img" size="1474560" crc="737be161" sha1="edc6e6506778115b5238c6e8ad907ece42d99634"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="bounder.epr" size="32768" crc="41dd1410" sha1="b07e3aa43f0ccb2020a0de5ca1118a1c779ded8f" offset="0"/>
|
||||
<rom name="bounder.epr" size="32768" crc="41dd1410" sha1="b07e3aa43f0ccb2020a0de5ca1118a1c779ded8f"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -27,7 +27,33 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="camel.epr" size="32768" crc="376b8fb4" sha1="110389322f1e32db128001eee8e4a832a37370a2" offset="0"/>
|
||||
<rom name="camel.epr" size="32768" crc="376b8fb4" sha1="110389322f1e32db128001eee8e4a832a37370a2"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="codecnt">
|
||||
<description>Code Count</description>
|
||||
<year>1990</year>
|
||||
<publisher>Ranger Computers</publisher>
|
||||
<info name="author" value="David Hampson"/>
|
||||
<info name="usage" value="Requires 128K RAM internal or slot 1"/>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="codecount.epr" size="32768" crc="ea80713d" sha1="51c8e4e5160fb1b1e8b1c6c35e52c92a50835617"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dataorg">
|
||||
<description>Z88 Data Organiser</description>
|
||||
<year>1989</year>
|
||||
<publisher>Harvester Information Systems</publisher>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="dataorg.epr" size="32768" crc="476d85ec" sha1="529fbcea89bac0f1fd2acda28506c7d40f6d8a12"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -40,7 +66,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="demo.epr" size="32768" crc="1dbcbc08" sha1="91ca8ce56c09a8904caec6a60379a14323456b94" offset="0"/>
|
||||
<rom name="demo.epr" size="32768" crc="1dbcbc08" sha1="91ca8ce56c09a8904caec6a60379a14323456b94"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -54,7 +80,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="dstar.epr" size="32768" crc="75ba018b" sha1="44459531af6307dbb13dd409e25d889f8e97293f" offset="0"/>
|
||||
<rom name="dstar.epr" size="32768" crc="75ba018b" sha1="44459531af6307dbb13dd409e25d889f8e97293f"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -66,13 +92,39 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="eazylink.epr" size="32768" crc="9a6a5136" sha1="e122c24d517dc6193075046d7051d7f6d14abafe" offset="0"/>
|
||||
<rom name="eazylink.epr" size="32768" crc="9a6a5136" sha1="e122c24d517dc6193075046d7051d7f6d14abafe"/>
|
||||
</dataarea>
|
||||
|
||||
<!-- Documentation in PipeDream format, should be copied into ram -->
|
||||
|
||||
<dataarea name="ram01" size="66536">
|
||||
<rom name="eazylink.pdd" size="66536" crc="fb9364e8" sha1="00f531513ad0252b2a6a055556614b6a6e571042" offset="0"/>
|
||||
<rom name="eazylink.pdd" size="66536" crc="fb9364e8" sha1="00f531513ad0252b2a6a055556614b6a6e571042"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="epcopy">
|
||||
<description>EP-Copy</description>
|
||||
<year>1990</year>
|
||||
<publisher>Ranger Computers</publisher>
|
||||
<info name="author" value="David Hampson"/>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="epcopy.epr" size="32768" crc="d4aa343f" sha1="5b26eb229f13e102db0e422ce16403c574ebd3b9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="eventcs">
|
||||
<description>Event Control System</description>
|
||||
<year>1989</year>
|
||||
<publisher>Front Line Computers</publisher>
|
||||
<info name="author" value="Thomas Nunns"/>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="eventcs.epr" size="32768" crc="0be032c7" sha1="13661628fd85c45db57da118124c923992c511a4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -80,11 +132,11 @@
|
||||
<software name="examples">
|
||||
<description>Examples</description>
|
||||
<year>1988</year>
|
||||
<publisher>Cambridge Computers</publisher>
|
||||
<publisher>Cambridge Computer</publisher>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="examples.epr" size="32768" crc="b48989a0" sha1="d8f6d7c7062bfc5ff9e5621b754a9ce0a0186a53" offset="0"/>
|
||||
<rom name="examples.epr" size="32768" crc="b48989a0" sha1="d8f6d7c7062bfc5ff9e5621b754a9ce0a0186a53"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -96,13 +148,13 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="flashstore.epr" size="32768" crc="0ea821c6" sha1="506e86435edcb97a1330715a8b4259f0250dc9bd" offset="0"/>
|
||||
<rom name="flashstore.epr" size="32768" crc="0ea821c6" sha1="506e86435edcb97a1330715a8b4259f0250dc9bd"/>
|
||||
</dataarea>
|
||||
|
||||
<!-- Documentation in PipeDream format, should be copied into ram -->
|
||||
|
||||
<dataarea name="ram01" size="7414">
|
||||
<rom name="flash.pdd" size="7414" crc="25d438d8" sha1="bdcb7e9d9873defb452fa0fe5acb14b159e77dda" offset="0"/>
|
||||
<rom name="flash.pdd" size="7414" crc="25d438d8" sha1="bdcb7e9d9873defb452fa0fe5acb14b159e77dda"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -114,7 +166,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="forever-201.epr" size="32768" crc="4357529d" sha1="c1a92c635fb3aa5d0a637116845355ab2111bdd7" offset="0"/>
|
||||
<rom name="forever-201.epr" size="32768" crc="4357529d" sha1="c1a92c635fb3aa5d0a637116845355ab2111bdd7"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -126,7 +178,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="forever-202.epr" size="32768" crc="49229fc3" sha1="3daf1a55f5a8a826110c8a677b641a8b21987040" offset="0"/>
|
||||
<rom name="forever-202.epr" size="32768" crc="49229fc3" sha1="3daf1a55f5a8a826110c8a677b641a8b21987040"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -140,7 +192,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="jsw.epr" size="32768" crc="59af56f9" sha1="c63655406663324d08276262a5555c082e3a18a0" offset="0"/>
|
||||
<rom name="jsw.epr" size="32768" crc="59af56f9" sha1="c63655406663324d08276262a5555c082e3a18a0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -154,7 +206,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="lancelot.epr" size="32768" crc="65f70ea8" sha1="ec0d8a27f500583c02834f1c734f0fe4cc99c281" offset="0"/>
|
||||
<rom name="lancelot.epr" size="32768" crc="65f70ea8" sha1="ec0d8a27f500583c02834f1c734f0fe4cc99c281"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -168,191 +220,191 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="lemmings.epr" size="32768" crc="06771b9c" sha1="21a082e253afe2d21986c51b9b19350ac0fd64a2" offset="0"/>
|
||||
<rom name="lemmings.epr" size="32768" crc="06771b9c" sha1="21a082e253afe2d21986c51b9b19350ac0fd64a2"/>
|
||||
</dataarea>
|
||||
|
||||
<!-- The following are the levels and should be stored in z88 memory on the default device/directory, you don't
|
||||
have to keep all 60 of them on the z88 just the ones you want to play and drag over more when required. -->
|
||||
|
||||
<dataarea name="ram01" size="2695">
|
||||
<rom name="lemlevel.01" size="2695" crc="b3ddde7d" sha1="ac2a1d6cd5b121bc33d516bed0d9d4e37c74ece0" offset="0"/>
|
||||
<rom name="lemlevel.01" size="2695" crc="b3ddde7d" sha1="ac2a1d6cd5b121bc33d516bed0d9d4e37c74ece0"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram02" size="1264">
|
||||
<rom name="lemlevel.02" size="1264" crc="9acb0d61" sha1="07f1565e14556c7ad4f3a710ec4ad74bcb6b1d6e" offset="0"/>
|
||||
<rom name="lemlevel.02" size="1264" crc="9acb0d61" sha1="07f1565e14556c7ad4f3a710ec4ad74bcb6b1d6e"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram03" size="949">
|
||||
<rom name="lemlevel.03" size="949" crc="97c5f197" sha1="a88d5d97e97128f0191c2dfaddebc54807c79995" offset="0"/>
|
||||
<rom name="lemlevel.03" size="949" crc="97c5f197" sha1="a88d5d97e97128f0191c2dfaddebc54807c79995"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram04" size="1300">
|
||||
<rom name="lemlevel.04" size="1300" crc="a6ef0651" sha1="493fd3459c9da346a544a7e5269b4141fbf8e273" offset="0"/>
|
||||
<rom name="lemlevel.04" size="1300" crc="a6ef0651" sha1="493fd3459c9da346a544a7e5269b4141fbf8e273"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram05" size="3360">
|
||||
<rom name="lemlevel.05" size="3360" crc="ef2c7bd0" sha1="4257c7034b4196d5d9c256af5792a245e702cb59" offset="0"/>
|
||||
<rom name="lemlevel.05" size="3360" crc="ef2c7bd0" sha1="4257c7034b4196d5d9c256af5792a245e702cb59"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram06" size="1137">
|
||||
<rom name="lemlevel.06" size="1137" crc="9ecc1501" sha1="80c153dbf80e376a7355fea9e8a491c44c294a78" offset="0"/>
|
||||
<rom name="lemlevel.06" size="1137" crc="9ecc1501" sha1="80c153dbf80e376a7355fea9e8a491c44c294a78"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram07" size="547">
|
||||
<rom name="lemlevel.07" size="547" crc="de791a3a" sha1="7b4d35113c6f5cb1c36e83ba370c531aad136178" offset="0"/>
|
||||
<rom name="lemlevel.07" size="547" crc="de791a3a" sha1="7b4d35113c6f5cb1c36e83ba370c531aad136178"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram08" size="786">
|
||||
<rom name="lemlevel.08" size="786" crc="ca7f11f3" sha1="febae65afcee09afaa656bc08cb72ea661c85655" offset="0"/>
|
||||
<rom name="lemlevel.08" size="786" crc="ca7f11f3" sha1="febae65afcee09afaa656bc08cb72ea661c85655"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram09" size="1344">
|
||||
<rom name="lemlevel.09" size="1344" crc="2d5e3ae2" sha1="bed750c2df15972e6357ddcb780fce58054d132b" offset="0"/>
|
||||
<rom name="lemlevel.09" size="1344" crc="2d5e3ae2" sha1="bed750c2df15972e6357ddcb780fce58054d132b"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram10" size="2143">
|
||||
<rom name="lemlevel.10" size="2143" crc="1cc1242b" sha1="54e06bd8883f4e6f4d024059ef0cc5d0d6dea0c6" offset="0"/>
|
||||
<rom name="lemlevel.10" size="2143" crc="1cc1242b" sha1="54e06bd8883f4e6f4d024059ef0cc5d0d6dea0c6"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram11" size="1574">
|
||||
<rom name="lemlevel.11" size="1574" crc="a360bec6" sha1="c04a1cd8d9ca54a6b538990b58ea735cc1f3e75d" offset="0"/>
|
||||
<rom name="lemlevel.11" size="1574" crc="a360bec6" sha1="c04a1cd8d9ca54a6b538990b58ea735cc1f3e75d"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram12" size="756">
|
||||
<rom name="lemlevel.12" size="756" crc="d61456bf" sha1="52f14b00cc6b41f6402bc6a8a5b6e29bd232cb81" offset="0"/>
|
||||
<rom name="lemlevel.12" size="756" crc="d61456bf" sha1="52f14b00cc6b41f6402bc6a8a5b6e29bd232cb81"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram13" size="1486">
|
||||
<rom name="lemlevel.13" size="1486" crc="64e146c2" sha1="2f2f5ecf302a3d171625da00c7219ef44605ddec" offset="0"/>
|
||||
<rom name="lemlevel.13" size="1486" crc="64e146c2" sha1="2f2f5ecf302a3d171625da00c7219ef44605ddec"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram14" size="1211">
|
||||
<rom name="lemlevel.14" size="1211" crc="dfb744f3" sha1="c24086d9f45a8513c082c2e2983b478d241d783a" offset="0"/>
|
||||
<rom name="lemlevel.14" size="1211" crc="dfb744f3" sha1="c24086d9f45a8513c082c2e2983b478d241d783a"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram15" size="670">
|
||||
<rom name="lemlevel.15" size="670" crc="932ea5db" sha1="4a3fb9286aa45fb6d817ebca0dba3ddb7fa485e0" offset="0"/>
|
||||
<rom name="lemlevel.15" size="670" crc="932ea5db" sha1="4a3fb9286aa45fb6d817ebca0dba3ddb7fa485e0"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram16" size="1648">
|
||||
<rom name="lemlevel.16" size="1648" crc="12504649" sha1="c0398faa968c7ed1b0d02fe04bd7a7dc6b5cf9b0" offset="0"/>
|
||||
<rom name="lemlevel.16" size="1648" crc="12504649" sha1="c0398faa968c7ed1b0d02fe04bd7a7dc6b5cf9b0"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram17" size="386">
|
||||
<rom name="lemlevel.17" size="386" crc="135d006d" sha1="6caca1ea5dba6eaa4ec39e6df7c5f2649d535812" offset="0"/>
|
||||
<rom name="lemlevel.17" size="386" crc="135d006d" sha1="6caca1ea5dba6eaa4ec39e6df7c5f2649d535812"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram18" size="3031">
|
||||
<rom name="lemlevel.18" size="3031" crc="a87ba9f1" sha1="9085f2328d0b24c55de79cf71de2c4edc41ab63e" offset="0"/>
|
||||
<rom name="lemlevel.18" size="3031" crc="a87ba9f1" sha1="9085f2328d0b24c55de79cf71de2c4edc41ab63e"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram19" size="2143">
|
||||
<rom name="lemlevel.19" size="2143" crc="81487e05" sha1="fe7313e8d62dec3f975a6707737beab94b8a67d3" offset="0"/>
|
||||
<rom name="lemlevel.19" size="2143" crc="81487e05" sha1="fe7313e8d62dec3f975a6707737beab94b8a67d3"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram20" size="782">
|
||||
<rom name="lemlevel.20" size="782" crc="60f1745e" sha1="95589e127baaade5e0ac550cd7061fde6b6a59ce" offset="0"/>
|
||||
<rom name="lemlevel.20" size="782" crc="60f1745e" sha1="95589e127baaade5e0ac550cd7061fde6b6a59ce"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram21" size="1124">
|
||||
<rom name="lemlevel.21" size="1124" crc="ec9f8bec" sha1="30b0d9fd0cc92cfa426b547eb09eefca69627679" offset="0"/>
|
||||
<rom name="lemlevel.21" size="1124" crc="ec9f8bec" sha1="30b0d9fd0cc92cfa426b547eb09eefca69627679"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram22" size="1133">
|
||||
<rom name="lemlevel.22" size="1133" crc="39e2663f" sha1="1789a5a136a3152729e3a15664d8ec2baf2f2c60" offset="0"/>
|
||||
<rom name="lemlevel.22" size="1133" crc="39e2663f" sha1="1789a5a136a3152729e3a15664d8ec2baf2f2c60"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram23" size="1647">
|
||||
<rom name="lemlevel.23" size="1647" crc="691e3bcf" sha1="e96336bb39fde144368057b59598cba6603a509b" offset="0"/>
|
||||
<rom name="lemlevel.23" size="1647" crc="691e3bcf" sha1="e96336bb39fde144368057b59598cba6603a509b"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram24" size="2713">
|
||||
<rom name="lemlevel.24" size="2713" crc="cf205e87" sha1="e16be38fc433ee1d6315f52235bef212fb475172" offset="0"/>
|
||||
<rom name="lemlevel.24" size="2713" crc="cf205e87" sha1="e16be38fc433ee1d6315f52235bef212fb475172"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram25" size="949">
|
||||
<rom name="lemlevel.25" size="949" crc="680f9dd3" sha1="99ae5fec14e134c3d7793a7098048ec7227a3356" offset="0"/>
|
||||
<rom name="lemlevel.25" size="949" crc="680f9dd3" sha1="99ae5fec14e134c3d7793a7098048ec7227a3356"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram26" size="1152">
|
||||
<rom name="lemlevel.26" size="1152" crc="ed862cdb" sha1="a7f43ca8e488f305855741e0c8658176abb58a60" offset="0"/>
|
||||
<rom name="lemlevel.26" size="1152" crc="ed862cdb" sha1="a7f43ca8e488f305855741e0c8658176abb58a60"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram27" size="551">
|
||||
<rom name="lemlevel.27" size="551" crc="246dcf03" sha1="16f98a94d4c22d7aa6b0640add48dee497d0c0cc" offset="0"/>
|
||||
<rom name="lemlevel.27" size="551" crc="246dcf03" sha1="16f98a94d4c22d7aa6b0640add48dee497d0c0cc"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram28" size="3343">
|
||||
<rom name="lemlevel.28" size="3343" crc="22b25807" sha1="dbe625d029d773c4ee663564086de518ba780f87" offset="0"/>
|
||||
<rom name="lemlevel.28" size="3343" crc="22b25807" sha1="dbe625d029d773c4ee663564086de518ba780f87"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram29" size="316">
|
||||
<rom name="lemlevel.29" size="316" crc="3c15cb06" sha1="177f08de0f576426ffeccd1ec8510c039c64e1e2" offset="0"/>
|
||||
<rom name="lemlevel.29" size="316" crc="3c15cb06" sha1="177f08de0f576426ffeccd1ec8510c039c64e1e2"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram30" size="678">
|
||||
<rom name="lemlevel.30" size="678" crc="c03cf107" sha1="ecd43cf2313dca99798dcf4d018303830298292c" offset="0"/>
|
||||
<rom name="lemlevel.30" size="678" crc="c03cf107" sha1="ecd43cf2313dca99798dcf4d018303830298292c"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram31" size="1364">
|
||||
<rom name="lemlevel.31" size="1364" crc="782a956b" sha1="8d4575bfe27004be23cd0f97ff2e045e510ee3c1" offset="0"/>
|
||||
<rom name="lemlevel.31" size="1364" crc="782a956b" sha1="8d4575bfe27004be23cd0f97ff2e045e510ee3c1"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram32" size="1492">
|
||||
<rom name="lemlevel.32" size="1492" crc="066b925a" sha1="b946f0d3dcdaf9f6df932ce0405fb317afbdd350" offset="0"/>
|
||||
<rom name="lemlevel.32" size="1492" crc="066b925a" sha1="b946f0d3dcdaf9f6df932ce0405fb317afbdd350"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram33" size="1011">
|
||||
<rom name="lemlevel.33" size="1011" crc="1a1e2c85" sha1="b6bc9d5062ba45931d537e5de5ea3f4755ec1976" offset="0"/>
|
||||
<rom name="lemlevel.33" size="1011" crc="1a1e2c85" sha1="b6bc9d5062ba45931d537e5de5ea3f4755ec1976"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram34" size="79">
|
||||
<rom name="lemlevel.34" size="79" crc="8222a1a9" sha1="84753cf72523c5c14e2d4ba51def7df6a49e4396" offset="0"/>
|
||||
<rom name="lemlevel.34" size="79" crc="8222a1a9" sha1="84753cf72523c5c14e2d4ba51def7df6a49e4396"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram35" size="771">
|
||||
<rom name="lemlevel.35" size="771" crc="f17b1cf2" sha1="cbc4a1a0bbaead321c499702d8d409ea17078210" offset="0"/>
|
||||
<rom name="lemlevel.35" size="771" crc="f17b1cf2" sha1="cbc4a1a0bbaead321c499702d8d409ea17078210"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram36" size="761">
|
||||
<rom name="lemlevel.36" size="761" crc="66e8bf56" sha1="b76055303c32fe4875d76bfcc3531cacb614897b" offset="0"/>
|
||||
<rom name="lemlevel.36" size="761" crc="66e8bf56" sha1="b76055303c32fe4875d76bfcc3531cacb614897b"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram37" size="939">
|
||||
<rom name="lemlevel.37" size="939" crc="e419b2ab" sha1="37eff7eef1ffdba1f1c56af2c4bf0fe150131f3f" offset="0"/>
|
||||
<rom name="lemlevel.37" size="939" crc="e419b2ab" sha1="37eff7eef1ffdba1f1c56af2c4bf0fe150131f3f"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram38" size="304">
|
||||
<rom name="lemlevel.38" size="304" crc="d3b22e83" sha1="b3908d77dea6f21cb029002e72df0583af9b9785" offset="0"/>
|
||||
<rom name="lemlevel.38" size="304" crc="d3b22e83" sha1="b3908d77dea6f21cb029002e72df0583af9b9785"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram39" size="781">
|
||||
<rom name="lemlevel.39" size="781" crc="a1e273c1" sha1="93967790f166863c4c50d805ffce5c1c6967410e" offset="0"/>
|
||||
<rom name="lemlevel.39" size="781" crc="a1e273c1" sha1="93967790f166863c4c50d805ffce5c1c6967410e"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram40" size="528">
|
||||
<rom name="lemlevel.40" size="528" crc="a6fba8e2" sha1="2c620c48691239228ea642a3acd42faf7b5df2fe" offset="0"/>
|
||||
<rom name="lemlevel.40" size="528" crc="a6fba8e2" sha1="2c620c48691239228ea642a3acd42faf7b5df2fe"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram41" size="810">
|
||||
<rom name="lemlevel.41" size="810" crc="f3d9a278" sha1="d1f1c0f2ce1d02f77466b3f6231e65e6b5113e69" offset="0"/>
|
||||
<rom name="lemlevel.41" size="810" crc="f3d9a278" sha1="d1f1c0f2ce1d02f77466b3f6231e65e6b5113e69"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram42" size="1215">
|
||||
<rom name="lemlevel.42" size="1215" crc="504e258a" sha1="70d141970993a9ef46ec7e3372d84cc0bc7d10ac" offset="0"/>
|
||||
<rom name="lemlevel.42" size="1215" crc="504e258a" sha1="70d141970993a9ef46ec7e3372d84cc0bc7d10ac"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram43" size="1519">
|
||||
<rom name="lemlevel.43" size="1519" crc="cc9ec4e6" sha1="08ad46617ed72cd47b8eeb274cb24fcd1f2bda7b" offset="0"/>
|
||||
<rom name="lemlevel.43" size="1519" crc="cc9ec4e6" sha1="08ad46617ed72cd47b8eeb274cb24fcd1f2bda7b"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram44" size="385">
|
||||
<rom name="lemlevel.44" size="385" crc="2396b11f" sha1="d44aa8027587b9031fc869af2613cc0c6194cca3" offset="0"/>
|
||||
<rom name="lemlevel.44" size="385" crc="2396b11f" sha1="d44aa8027587b9031fc869af2613cc0c6194cca3"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram45" size="1141">
|
||||
<rom name="lemlevel.45" size="1141" crc="01a42d40" sha1="b0740f679d0882c8028899f7ce6e277b713a876f" offset="0"/>
|
||||
<rom name="lemlevel.45" size="1141" crc="01a42d40" sha1="b0740f679d0882c8028899f7ce6e277b713a876f"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram46" size="848">
|
||||
<rom name="lemlevel.46" size="848" crc="2cd3c689" sha1="06dcf3fa202057df3a451b663cf92f6d7b3a65e9" offset="0"/>
|
||||
<rom name="lemlevel.46" size="848" crc="2cd3c689" sha1="06dcf3fa202057df3a451b663cf92f6d7b3a65e9"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram47" size="2178">
|
||||
<rom name="lemlevel.47" size="2178" crc="3520dacd" sha1="783ef3270466d90693740c5f42a910578654a5d8" offset="0"/>
|
||||
<rom name="lemlevel.47" size="2178" crc="3520dacd" sha1="783ef3270466d90693740c5f42a910578654a5d8"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram48" size="1141">
|
||||
<rom name="lemlevel.48" size="1141" crc="b20277f7" sha1="4ee2b45e5dfc4cb9ee03d9d664b718a5be5596c6" offset="0"/>
|
||||
<rom name="lemlevel.48" size="1141" crc="b20277f7" sha1="4ee2b45e5dfc4cb9ee03d9d664b718a5be5596c6"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram49" size="1376">
|
||||
<rom name="lemlevel.49" size="1376" crc="bdfa540e" sha1="7ed1ceb6b86fba48f3b0cf2924c538a21898acd4" offset="0"/>
|
||||
<rom name="lemlevel.49" size="1376" crc="bdfa540e" sha1="7ed1ceb6b86fba48f3b0cf2924c538a21898acd4"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram50" size="725">
|
||||
<rom name="lemlevel.50" size="725" crc="ce91c2a3" sha1="cb5dbef47d7797299e3d3eb6c2120a5c09664036" offset="0"/>
|
||||
<rom name="lemlevel.50" size="725" crc="ce91c2a3" sha1="cb5dbef47d7797299e3d3eb6c2120a5c09664036"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram51" size="502">
|
||||
<rom name="lemlevel.51" size="502" crc="f4963e29" sha1="859655cf6f19bb53346c2dc2d0aff570c36f45af" offset="0"/>
|
||||
<rom name="lemlevel.51" size="502" crc="f4963e29" sha1="859655cf6f19bb53346c2dc2d0aff570c36f45af"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram52" size="678">
|
||||
<rom name="lemlevel.52" size="678" crc="8511dd20" sha1="ba4a921c014814c7f55cde9a632a79c911369d4d" offset="0"/>
|
||||
<rom name="lemlevel.52" size="678" crc="8511dd20" sha1="ba4a921c014814c7f55cde9a632a79c911369d4d"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram53" size="940">
|
||||
<rom name="lemlevel.53" size="940" crc="074d8749" sha1="bf555f0f886ed8cd0e76bb84c254a431604a1ddf" offset="0"/>
|
||||
<rom name="lemlevel.53" size="940" crc="074d8749" sha1="bf555f0f886ed8cd0e76bb84c254a431604a1ddf"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram54" size="1504">
|
||||
<rom name="lemlevel.54" size="1504" crc="b151a7c8" sha1="6607ca0dd1620d41e7f9648004cc748f6e49156c" offset="0"/>
|
||||
<rom name="lemlevel.54" size="1504" crc="b151a7c8" sha1="6607ca0dd1620d41e7f9648004cc748f6e49156c"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram55" size="1173">
|
||||
<rom name="lemlevel.55" size="1173" crc="08411240" sha1="43e339ad570ef522faebceabb4468ddf2a14b867" offset="0"/>
|
||||
<rom name="lemlevel.55" size="1173" crc="08411240" sha1="43e339ad570ef522faebceabb4468ddf2a14b867"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram56" size="572">
|
||||
<rom name="lemlevel.56" size="572" crc="e6483b61" sha1="8baf006abcb365063f822538a399daf30cca6d70" offset="0"/>
|
||||
<rom name="lemlevel.56" size="572" crc="e6483b61" sha1="8baf006abcb365063f822538a399daf30cca6d70"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram57" size="482">
|
||||
<rom name="lemlevel.57" size="482" crc="e7d9dc4b" sha1="c831d8e84912f38e95ca36e2d5d173f9d363d9a8" offset="0"/>
|
||||
<rom name="lemlevel.57" size="482" crc="e7d9dc4b" sha1="c831d8e84912f38e95ca36e2d5d173f9d363d9a8"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram58" size="1259">
|
||||
<rom name="lemlevel.58" size="1259" crc="0c523ecc" sha1="f5d5c845e50c494b79795b0f453807550d679c24" offset="0"/>
|
||||
<rom name="lemlevel.58" size="1259" crc="0c523ecc" sha1="f5d5c845e50c494b79795b0f453807550d679c24"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram59" size="1036">
|
||||
<rom name="lemlevel.59" size="1036" crc="7562ff75" sha1="9ce1bcfdbd46f105f382eae8482ba558069af4e0" offset="0"/>
|
||||
<rom name="lemlevel.59" size="1036" crc="7562ff75" sha1="9ce1bcfdbd46f105f382eae8482ba558069af4e0"/>
|
||||
</dataarea>
|
||||
<dataarea name="ram60" size="1685">
|
||||
<rom name="lemlevel.60" size="1685" crc="33cd99d4" sha1="a1f9cd1d90eaea3df2c171871bd0a91e44227d8a" offset="0"/>
|
||||
<rom name="lemlevel.60" size="1685" crc="33cd99d4" sha1="a1f9cd1d90eaea3df2c171871bd0a91e44227d8a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -366,7 +418,19 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="mmz88.epr" size="32768" crc="ae50ad80" sha1="8f0cd8c63fe5a792f882e54a8fc4472a184c5f71" offset="0"/>
|
||||
<rom name="mmz88.epr" size="32768" crc="ae50ad80" sha1="8f0cd8c63fe5a792f882e54a8fc4472a184c5f71"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pclink2">
|
||||
<description>PC-Link II</description>
|
||||
<year>1988</year>
|
||||
<publisher>Cambridge Computer</publisher>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="pclink2.epr" size="16384" crc="2a60c112" sha1="93eab6131dce9ff1a2d4e1292c46b620ff7efa3d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -379,13 +443,13 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="pdrom.epr" size="32768" crc="1c05f986" sha1="42d58a25defc85ce494ecb0a4f6532c0a42c5bb7" offset="0"/>
|
||||
<rom name="pdrom.epr" size="32768" crc="1c05f986" sha1="42d58a25defc85ce494ecb0a4f6532c0a42c5bb7"/>
|
||||
</dataarea>
|
||||
|
||||
<!-- Demo image for use with Graphics application, should be copied into ram -->
|
||||
|
||||
<dataarea name="ram01" size="4102">
|
||||
<rom name="demo.img" size="4102" crc="597001a1" sha1="62bc4967b1454d3e32bb157cf7a5bfff4b209bd5" offset="0"/>
|
||||
<rom name="demo.img" size="4102" crc="597001a1" sha1="62bc4967b1454d3e32bb157cf7a5bfff4b209bd5"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -398,7 +462,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="pyramid-std.epr" size="32768" crc="9441ea18" sha1="01785eceee7e24f2a82feb39f1ad8c05d6698060" offset="0"/>
|
||||
<rom name="pyramid-std.epr" size="32768" crc="9441ea18" sha1="01785eceee7e24f2a82feb39f1ad8c05d6698060"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -410,7 +474,34 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="128krom"/>
|
||||
<dataarea name="rom" size="131072">
|
||||
<rom name="spellmaster.epr" size="131072" crc="ad0c407d" sha1="1e9d302989e8e98e963f99ce1ea5a634ed1c466e" offset="0"/>
|
||||
<rom name="spellmaster.epr" size="131072" crc="ad0c407d" sha1="1e9d302989e8e98e963f99ce1ea5a634ed1c466e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="stopwtch">
|
||||
<description>Stop Watch</description>
|
||||
<year>1989</year>
|
||||
<publisher>Front Line Computers</publisher>
|
||||
<info name="author" value="Thomas Nunns"/>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="stopwatch.epr" size="32768" crc="e829cb38" sha1="7fca0e95027e3784cba02f03cd18082848814599"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tolltrak">
|
||||
<description>Toll Tracker v2.0 (Demo)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Fieldstar Marketing</publisher>
|
||||
<info name="author" value="Dean McGaveston"/>
|
||||
<info name="usage" value="Requires 128K RAM internal or slot 1"/>
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="tolltracker.epr" size="32768" crc="ec4da584" sha1="e82762383e4e7f36dfb52e2bd34ee891ff6e3a6f"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -422,7 +513,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="ugrom.epr" size="32768" crc="e5afab2d" sha1="ef3569d392d6f2d3a5d65855277a48caf8be911f" offset="0"/>
|
||||
<rom name="ugrom.epr" size="32768" crc="e5afab2d" sha1="ef3569d392d6f2d3a5d65855277a48caf8be911f"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -435,7 +526,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="uutools.epr" size="32768" crc="1be795e5" sha1="e2822f6cdcaf1b12fe18c6f9005a5aeca14755c4" offset="0"/>
|
||||
<rom name="uutools.epr" size="32768" crc="1be795e5" sha1="e2822f6cdcaf1b12fe18c6f9005a5aeca14755c4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -448,7 +539,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="wn-std.epr" size="32768" crc="b6cc2ddc" sha1="ff86d271a62f1b4deb20f189bc5468a6bf94f12b" offset="0"/>
|
||||
<rom name="wn-std.epr" size="32768" crc="b6cc2ddc" sha1="ff86d271a62f1b4deb20f189bc5468a6bf94f12b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -460,7 +551,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="128krom"/>
|
||||
<dataarea name="rom" size="131072">
|
||||
<rom name="wb.epr" size="131072" crc="0fdfbc10" sha1="a3c5071ef5bca492540acad2799fd8012b986737" offset="0"/>
|
||||
<rom name="wb.epr" size="131072" crc="0fdfbc10" sha1="a3c5071ef5bca492540acad2799fd8012b986737"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -473,7 +564,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="zchess.epr" size="32768" crc="ecdc1600" sha1="b73dc7079c002672ff0bfa1f635d6a290fb65076" offset="0"/>
|
||||
<rom name="zchess.epr" size="32768" crc="ecdc1600" sha1="b73dc7079c002672ff0bfa1f635d6a290fb65076"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -486,7 +577,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="zetriz.epr" size="32768" crc="98e9cfa0" sha1="bbcd5544ad077fee20a811c8372c1fb1a92358ff" offset="0"/>
|
||||
<rom name="zetriz.epr" size="32768" crc="98e9cfa0" sha1="bbcd5544ad077fee20a811c8372c1fb1a92358ff"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -499,7 +590,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="ziputils.epr" size="32768" crc="9a6900f5" sha1="8229a1d5ce4ea5adcd2326f2bae4b64745f0427a" offset="0"/>
|
||||
<rom name="ziputils.epr" size="32768" crc="9a6900f5" sha1="8229a1d5ce4ea5adcd2326f2bae4b64745f0427a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -512,7 +603,7 @@
|
||||
<part name="cart1" interface="z88_cart">
|
||||
<feature name="slot" value="32krom"/>
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="zlab.epr" size="32768" crc="da0daf3c" sha1="f23ec71f49222f1285bd8a5c88457c22190c9928" offset="0"/>
|
||||
<rom name="zlab.epr" size="32768" crc="da0daf3c" sha1="f23ec71f49222f1285bd8a5c88457c22190c9928"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -3545,12 +3545,12 @@ files {
|
||||
|
||||
createMESSProjects(_target, _subtarget, "tvgames")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/rad_eu3a14.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/rad_eu3a05.cpp",
|
||||
MAME_DIR .. "src/mame/audio/rad_eu3a05.cpp",
|
||||
MAME_DIR .. "src/mame/audio/rad_eu3a05.h",
|
||||
MAME_DIR .. "src/mame/machine/rad_eu3a05gpio.cpp",
|
||||
MAME_DIR .. "src/mame/machine/rad_eu3a05gpio.h",
|
||||
MAME_DIR .. "src/mame/drivers/elan_eu3a14.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/elan_eu3a05.cpp",
|
||||
MAME_DIR .. "src/mame/audio/elan_eu3a05.cpp",
|
||||
MAME_DIR .. "src/mame/audio/elan_eu3a05.h",
|
||||
MAME_DIR .. "src/mame/machine/elan_eu3a05gpio.cpp",
|
||||
MAME_DIR .. "src/mame/machine/elan_eu3a05gpio.h",
|
||||
MAME_DIR .. "src/mame/drivers/trkfldch.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/tvgame.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/spg110.cpp",
|
||||
@ -4047,6 +4047,7 @@ files {
|
||||
MAME_DIR .. "src/mame/machine/nl_tp1985.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/palestra.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mindset.cpp",
|
||||
}
|
||||
|
||||
end
|
||||
|
@ -39,6 +39,7 @@ offs_t mcs48_disassembler::disassemble(std::ostream &stream, offs_t pc, const da
|
||||
switch (opcodes.r8(cpc++))
|
||||
{
|
||||
case 0x00: util::stream_format(stream, "nop"); break;
|
||||
case 0x01: util::stream_format(stream, "idl"); break; // CMOS only; called "HALT" by NEC and Toshiba
|
||||
case 0x02: if (m_i802x)
|
||||
util::stream_format(stream, "illegal");
|
||||
else if (!m_upi41)
|
||||
|
@ -237,12 +237,11 @@ uint8_t pia6821_device::get_in_a_value()
|
||||
}
|
||||
}
|
||||
|
||||
// - connected pins are always read
|
||||
// - disconnected pins read the output buffer in output mode
|
||||
// - disconnected pins are HI in input mode
|
||||
ret = (~m_port_a_z_mask & port_a_data) |
|
||||
( m_port_a_z_mask & m_ddr_a & m_out_a) |
|
||||
( m_port_a_z_mask & ~m_ddr_a);
|
||||
// For port A, when the port is in output mode, other devices can drive the pins too.
|
||||
// If they load the lines so the voltage changes from what the PIA is outputting, that
|
||||
// value will be read back.
|
||||
// TODO: Figure out if any boards do this, and compensate.
|
||||
ret = (m_out_a & m_ddr_a) | (port_a_data & ~m_ddr_a);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ CPU speed. It should be around 14-16MHz. The ARM CPU is rated 12MHz, they
|
||||
probably went for this solution to get optimum possible speed for each module.
|
||||
|
||||
TODO:
|
||||
- PC version still gives a sync error on boot sometimes, probably related to quantum
|
||||
- is interrupt handling correct?
|
||||
- timer shouldn't be needed for disabling bootstrap, real ARM has already read the next opcode
|
||||
|
||||
|
@ -8,6 +8,7 @@ DEFINE_DEVICE_TYPE(I82439HX, i82439hx_host_device, "i82439hx", "Intel 82439HX no
|
||||
void i82439hx_host_device::config_map(address_map &map)
|
||||
{
|
||||
pci_host_device::config_map(map);
|
||||
map(0x10, 0x4f).noprw();
|
||||
map(0x50, 0x50).rw(FUNC(i82439hx_host_device::pcon_r), FUNC(i82439hx_host_device::pcon_w));
|
||||
map(0x52, 0x52).rw(FUNC(i82439hx_host_device::cc_r), FUNC(i82439hx_host_device::cc_w));
|
||||
map(0x56, 0x56).rw(FUNC(i82439hx_host_device::dramec_r), FUNC(i82439hx_host_device::dramec_w));
|
||||
@ -46,7 +47,9 @@ void i82439hx_host_device::device_start()
|
||||
io_window_start = 0;
|
||||
io_window_end = 0xffff;
|
||||
io_offset = 0;
|
||||
status = 0x0010;
|
||||
command = 0x0006;
|
||||
command_mask = 0x0106;
|
||||
status = 0x0200;
|
||||
|
||||
ram.resize(ram_size/4);
|
||||
}
|
||||
@ -160,6 +163,11 @@ void i82439hx_host_device::map_extra(uint64_t memory_window_start, uint64_t memo
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER (i82439hx_host_device::header_type_r)
|
||||
{
|
||||
return 0x00; // from datasheet
|
||||
}
|
||||
|
||||
READ8_MEMBER (i82439hx_host_device::pcon_r)
|
||||
{
|
||||
return pcon;
|
||||
|
@ -47,6 +47,7 @@ private:
|
||||
uint8_t drt, drat, smram, errcmd, errsts, errsyn;
|
||||
int smiact_n;
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(header_type_r) override;
|
||||
DECLARE_READ8_MEMBER (pcon_r);
|
||||
DECLARE_WRITE8_MEMBER(pcon_w);
|
||||
DECLARE_READ8_MEMBER (cc_r);
|
||||
|
@ -265,6 +265,7 @@ DAC_GENERATOR_EPILOG(_dac_type, _dac_class, _dac_description, _dac_shortname)
|
||||
|
||||
// DAC chips
|
||||
DAC_GENERATOR(AD557, ad557_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD557", "ad557")
|
||||
DAC_GENERATOR(AD558, ad558_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD558", "ad558")
|
||||
DAC_GENERATOR(AD7224, ad7224_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD7224", "ad7224")
|
||||
DAC_GENERATOR(AD7521, ad7521_device, dac_word_interface, dac_code_binary<12>, dac_gain_r2r, "AD7521", "ad7521")
|
||||
DAC_GENERATOR(AD7523, ad7523_device, dac_byte_interface, dac_code_binary<8>, dac_gain_r2r, "AD7523", "ad7523")
|
||||
|
@ -368,41 +368,40 @@ emulating the tms5220 in MCU code). Look for a 16-pin chip at U6 labeled
|
||||
|
||||
|
||||
/* *****debugging defines***** */
|
||||
// general, somewhat obsolete, catch all for debugs which don't fit elsewhere
|
||||
#define LOG_GENERAL (1 << 0)
|
||||
// above is general, somewhat obsolete, catch all for debugs which don't fit elsewhere
|
||||
#define LOG_DUMP_INPUT_DATA (1 << 1)
|
||||
/* 5220 only; above dumps the data written to the tms52xx to stdout, useful
|
||||
for making logged data dumps for real hardware tests */
|
||||
#define LOG_FIFO (1 << 2)
|
||||
#define LOG_DUMP_INPUT_DATA (1 << 1)
|
||||
// 5220 only; above debugs FIFO stuff: writes, reads and flag updates
|
||||
#define LOG_PARSE_FRAME_DUMP_BIN (1 << 3)
|
||||
#define LOG_FIFO (1 << 2)
|
||||
// dumps each speech frame as binary
|
||||
#define LOG_PARSE_FRAME_DUMP_HEX (1 << 4)
|
||||
#define LOG_PARSE_FRAME_DUMP_BIN (1 << 3)
|
||||
// dumps each speech frame as hex
|
||||
#define LOG_PARSE_FRAME_DUMP_HEX (1 << 4)
|
||||
// dumps info if a frame ran out of data
|
||||
#define LOG_FRAME_ERRORS (1 << 6)
|
||||
// above dumps info if a frame ran out of data
|
||||
// dumps all non-speech-data command writes
|
||||
#define LOG_COMMAND_DUMP (1 << 7)
|
||||
// above dumps all non-speech-data command writes
|
||||
// dumps decoded info about command writes
|
||||
#define LOG_COMMAND_VERBOSE (1 << 8)
|
||||
// above dumps decoded info about command writes
|
||||
// spams the errorlog with i/o ready messages whenever the ready or irq pin is read
|
||||
#define LOG_PIN_READS (1 << 9)
|
||||
// above spams the errorlog with i/o ready messages whenever the ready or irq pin is read
|
||||
// dumps debug information related to the sample generation loop, i.e. whether interpolation is inhibited or not, and what the current and target values for each frame are.
|
||||
#define LOG_GENERATION (1 << 10)
|
||||
// above dumps debug information related to the sample generation loop, i.e. whether interpolation is inhibited or not, and what the current and target values for each frame are.
|
||||
// dumps MUCH MORE debug information related to the sample generation loop, namely the excitation, energy, pitch, k*, and output values for EVERY SINGLE SAMPLE during a frame.
|
||||
#define LOG_GENERATION_VERBOSE (1 << 11)
|
||||
// above dumps MUCH MORE debug information related to the sample generation loop, namely the excitation, energy, pitch, k*, and output values for EVERY SINGLE SAMPLE during a frame.
|
||||
// dumps the lattice filter state data each sample.
|
||||
#define LOG_LATTICE (1 << 12)
|
||||
// above dumps the lattice filter state data each sample.
|
||||
// dumps info to stderr whenever the analog clip hardware is (or would be) clipping the signal.
|
||||
#define LOG_CLIP (1 << 13)
|
||||
// above dumps info to stderr whenever the analog clip hardware is (or would be) clipping the signal.
|
||||
// debugs the io ready callback timer
|
||||
#define LOG_IO_READY (1 << 14)
|
||||
// above debugs the io ready callback timer
|
||||
// debugs the tms5220_data_r and data_w access methods which actually respect rs and ws
|
||||
#define LOG_RS_WS (1 << 15)
|
||||
// above debugs the tms5220_data_r and data_w access methods which actually respect rs and ws
|
||||
|
||||
//#define VERBOSE (LOG_GENERAL | LOG_DUMP_INPUT_DATA | LOG_FIFO | LOG_PARSE_FRAME_DUMP_HEX | LOG_FRAME_ERRORS | LOG_COMMAND_DUMP | LOG_COMMAND_VERBOSE | LOG_PIN_READS | LOG_GENERATION | LOG_GENERATION_VERBOSE | LOG_LATTICE | LOG_CLIP | LOG_IO_READY | LOG_RS_WS)
|
||||
#include "logmacro.h"
|
||||
// TODO: switch the comments to be above the defines instead of below them
|
||||
|
||||
#define MAX_SAMPLE_CHUNK 512
|
||||
|
||||
@ -1822,9 +1821,10 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w )
|
||||
/* upon /RS being activated, /READY goes inactive after 100 nsec from data sheet, through 3 asynchronous gates on patent. This is effectively within one clock, so we immediately set io_ready to 0 and activate the callback. */
|
||||
m_io_ready = false;
|
||||
update_ready_state();
|
||||
/* How long does /READY stay inactive, when /RS is pulled low? It might be always ~16 clocks (25 usec at 800khz as shown on the datasheet)
|
||||
but the patent schematic implies it might be as short as 4 clock cycles. */
|
||||
m_timer_io_ready->adjust(clocks_to_attotime(16), 1);
|
||||
// The datasheet doesn't give an exact time when /READY should change, but the data is valid 6-11 usec after /RS goes low.
|
||||
// It looks like /READY goes high soon after that (although the datasheet graph is not to scale).
|
||||
// The value of 13 was measured on a real chip with an oscilloscope, and it fits the datasheet.
|
||||
m_timer_io_ready->adjust(attotime::from_usec(13), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,16 +17,17 @@
|
||||
// GLOBAL VARIABLES
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device, "as2888", "Bally AS2888 Sound Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device, "as3022", "Bally AS3022 Sound Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device, "sounds_plus", "Bally Sounds Plus w/ Vocalizer Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device, "cheap_squeak", "Bally Cheap Squeak Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device, "as2888", "Bally AS2888 Sound Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device, "as3022", "Bally AS3022 Sound Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device, "sounds_plus", "Bally Sounds Plus w/ Vocalizer Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device, "cheap_squeak", "Bally Cheap Squeak Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK, bally_squawk_n_talk_device, "squawk_n_talk", "Bally Squawk & Talk Board")
|
||||
DEFINE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK_AY, bally_squawk_n_talk_ay_device, "squawk_n_talk_ay", "Bally Squawk & Talk w/ AY8910 Board")
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// AS2888
|
||||
//**************************************************************************
|
||||
|
||||
static const discrete_mixer_desc as2888_digital_mixer_info =
|
||||
{
|
||||
DISC_MIXER_IS_RESISTOR, /* type */
|
||||
@ -88,7 +89,6 @@ DISCRETE_SOUND_END
|
||||
//-------------------------------------------------
|
||||
// sound_select - handle an external write to the board
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_as2888_device::sound_select)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as2888_device::sound_select_sync), this), data);
|
||||
@ -101,10 +101,8 @@ TIMER_CALLBACK_MEMBER(bally_as2888_device::sound_select_sync)
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
//
|
||||
// sound_int - handle an external sound interrupt to the board
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(bally_as2888_device::sound_int)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as2888_device::sound_int_sync), this), state);
|
||||
@ -112,60 +110,58 @@ WRITE_LINE_MEMBER(bally_as2888_device::sound_int)
|
||||
|
||||
TIMER_CALLBACK_MEMBER(bally_as2888_device::sound_int_sync)
|
||||
{
|
||||
if (param)
|
||||
{
|
||||
m_snd_sustain_timer->adjust(attotime::from_msec(5));
|
||||
m_discrete->write(NODE_08, 11); // 11 volt pulse
|
||||
}
|
||||
if (param)
|
||||
{
|
||||
m_snd_sustain_timer->adjust(attotime::from_msec(5));
|
||||
m_discrete->write(NODE_08, 11); // 11 volt pulse
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as2888_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
DISCRETE(config, m_discrete, as2888_discrete);
|
||||
m_discrete->add_route(ALL_OUTPUTS, *this, 1.00, AUTO_ALLOC_INPUT, 0);
|
||||
|
||||
TIMER(config, "timer_s_freq").configure_periodic(FUNC(bally_as2888_device::timer_s), attotime::from_hz(353000)); // Inverter clock on AS-2888 sound board
|
||||
TIMER(config, m_snd_sustain_timer).configure_generic(FUNC(bally_as2888_device::timer_as2888));
|
||||
TIMER(config, "timer_s_freq").configure_periodic(FUNC(bally_as2888_device::timer_s), attotime::from_hz(353000)); // Inverter clock on AS-2888 sound board
|
||||
TIMER(config, m_snd_sustain_timer).configure_generic(FUNC(bally_as2888_device::timer_as2888));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as2888_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_sound_select));
|
||||
save_item(NAME(m_snd_sel));
|
||||
save_item(NAME(m_snd_tone_gen));
|
||||
save_item(NAME(m_snd_div));
|
||||
save_item(NAME(m_sound_select));
|
||||
save_item(NAME(m_snd_sel));
|
||||
save_item(NAME(m_snd_tone_gen));
|
||||
save_item(NAME(m_snd_div));
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(bally_as2888_device::timer_s)
|
||||
{
|
||||
m_snd_tone_gen--;
|
||||
m_snd_tone_gen--;
|
||||
|
||||
if ((m_snd_tone_gen == 0) && (m_snd_sel != 0x01))
|
||||
{
|
||||
m_snd_tone_gen = m_snd_sel;
|
||||
m_snd_div++;
|
||||
if ((m_snd_tone_gen == 0) && (m_snd_sel != 0x01))
|
||||
{
|
||||
m_snd_tone_gen = m_snd_sel;
|
||||
m_snd_div++;
|
||||
|
||||
m_discrete->write(NODE_04, BIT(m_snd_div, 2) * 1);
|
||||
m_discrete->write(NODE_01, BIT(m_snd_div, 0) * 1);
|
||||
}
|
||||
m_discrete->write(NODE_04, BIT(m_snd_div, 2) * 1);
|
||||
m_discrete->write(NODE_01, BIT(m_snd_div, 0) * 1);
|
||||
}
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(bally_as2888_device::timer_as2888)
|
||||
{
|
||||
m_snd_sel = m_snd_prom[m_sound_select];
|
||||
m_snd_sel = bitswap<8>(m_snd_sel,0,1,2,3,4,5,6,7);
|
||||
m_snd_tone_gen = m_snd_sel;
|
||||
m_snd_sel = m_snd_prom[m_sound_select];
|
||||
m_snd_sel = bitswap<8>(m_snd_sel,0,1,2,3,4,5,6,7);
|
||||
m_snd_tone_gen = m_snd_sel;
|
||||
|
||||
m_discrete->write(NODE_08, 0);
|
||||
m_snd_sustain_timer->adjust(attotime::never);
|
||||
m_discrete->write(NODE_08, 0);
|
||||
m_snd_sustain_timer->adjust(attotime::never);
|
||||
}
|
||||
|
||||
|
||||
@ -173,9 +169,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(bally_as2888_device::timer_as2888)
|
||||
// AS3022
|
||||
//**************************************************************************
|
||||
|
||||
//**************************************************************************
|
||||
//--------------------------------------------------------------------------
|
||||
// IO ports
|
||||
//**************************************************************************
|
||||
//--------------------------------------------------------------------------
|
||||
static INPUT_PORTS_START(as3022)
|
||||
PORT_START("SW1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Sound Test") PORT_CHANGED_MEMBER(DEVICE_SELF, bally_as3022_device, sw1, 0)
|
||||
@ -183,19 +179,18 @@ INPUT_PORTS_END
|
||||
|
||||
ioport_constructor bally_as3022_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(as3022);
|
||||
return INPUT_PORTS_NAME(as3022);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(bally_as3022_device::sw1)
|
||||
{
|
||||
if (newval != oldval)
|
||||
m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
|
||||
if (newval != oldval)
|
||||
m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// sound_select - handle an external write to the board
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_as3022_device::sound_select)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as3022_device::sound_select_sync), this), data);
|
||||
@ -208,10 +203,8 @@ TIMER_CALLBACK_MEMBER(bally_as3022_device::sound_select_sync)
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
//
|
||||
// sound_int - handle an external sound interrupt to the board
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(bally_as3022_device::sound_int)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_as3022_device::sound_int_sync), this), state);
|
||||
@ -222,23 +215,18 @@ TIMER_CALLBACK_MEMBER(bally_as3022_device::sound_int_sync)
|
||||
m_pia->ca1_w(param);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
//
|
||||
// irq_w - IRQ line state changes
|
||||
// pia_irq_w - IRQ line state changes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(bally_as3022_device::irq_w)
|
||||
WRITE_LINE_MEMBER(bally_as3022_device::pia_irq_w)
|
||||
{
|
||||
int combined_state = m_pia->irq_a_state() | m_pia->irq_b_state();
|
||||
m_cpu->set_input_line(M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// CPU map, from schematics
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as3022_device::as3022_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
@ -248,11 +236,9 @@ void bally_as3022_device::as3022_map(address_map &map)
|
||||
map(0x1000, 0x1fff).rom(); // 4k RAM space, but could be jumpered for 2k
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as3022_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M6808(config, m_cpu, DERIVED_CLOCK(1, 1));
|
||||
@ -263,10 +249,17 @@ void bally_as3022_device::device_add_mconfig(machine_config &config)
|
||||
m_pia->writepa_handler().set(FUNC(bally_as3022_device::pia_porta_w));
|
||||
m_pia->writepb_handler().set(FUNC(bally_as3022_device::pia_portb_w));
|
||||
m_pia->cb2_handler().set(FUNC(bally_as3022_device::pia_cb2_w));
|
||||
m_pia->irqa_handler().set(FUNC(bally_as3022_device::irq_w));
|
||||
m_pia->irqb_handler().set(FUNC(bally_as3022_device::irq_w));
|
||||
m_pia->irqa_handler().set(FUNC(bally_as3022_device::pia_irq_w));
|
||||
m_pia->irqb_handler().set(FUNC(bally_as3022_device::pia_irq_w));
|
||||
|
||||
for (required_device<filter_rc_device> &filter : m_ay_filters)
|
||||
// TODO: Calculate exact filter values. An AC filter is good enough for now
|
||||
// and required as the chip likes to output a DC offset at idle.
|
||||
FILTER_RC(config, filter).set_ac().add_route(ALL_OUTPUTS, *this, 1.0);
|
||||
AY8910(config, m_ay, DERIVED_CLOCK(1, 4));
|
||||
m_ay->add_route(0, "ay_filter0", 0.33);
|
||||
m_ay->add_route(1, "ay_filter1", 0.33);
|
||||
m_ay->add_route(2, "ay_filter2", 0.33);
|
||||
m_ay->port_a_read_callback().set(FUNC(bally_as3022_device::ay_io_r));
|
||||
m_ay->add_route(ALL_OUTPUTS, *this, 0.33, AUTO_ALLOC_INPUT, 0);
|
||||
}
|
||||
@ -275,7 +268,6 @@ void bally_as3022_device::device_add_mconfig(machine_config &config)
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as3022_device::device_start()
|
||||
{
|
||||
// Set volumes to a sane default.
|
||||
@ -284,16 +276,14 @@ void bally_as3022_device::device_start()
|
||||
m_ay->set_volume(2, 0);
|
||||
|
||||
save_item(NAME(m_bc1));
|
||||
save_item(NAME(m_bdir));
|
||||
save_item(NAME(m_sound_select));
|
||||
save_item(NAME(m_ay_data));
|
||||
save_item(NAME(m_bdir));
|
||||
save_item(NAME(m_sound_select));
|
||||
save_item(NAME(m_ay_data));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia_porta_r - PIA port A reads
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_MEMBER(bally_as3022_device::pia_porta_r)
|
||||
{
|
||||
if (m_bc1 && !m_bdir)
|
||||
@ -308,11 +298,9 @@ READ8_MEMBER(bally_as3022_device::pia_porta_r)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia_porta_w - PIA port A writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_as3022_device::pia_porta_w)
|
||||
{
|
||||
if (m_bc1 && !m_bdir)
|
||||
@ -320,14 +308,12 @@ WRITE8_MEMBER(bally_as3022_device::pia_porta_w)
|
||||
logerror("PIA port A bus contention!\n");
|
||||
}
|
||||
m_ay_data = data;
|
||||
update_sound_selects();
|
||||
update_ay_bus();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia_portb_w - PIA port B writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_as3022_device::pia_portb_w)
|
||||
{
|
||||
m_bc1 = BIT(data, 0);
|
||||
@ -336,10 +322,9 @@ WRITE8_MEMBER(bally_as3022_device::pia_portb_w)
|
||||
{
|
||||
m_ay_data = m_ay->data_r();
|
||||
}
|
||||
update_sound_selects();
|
||||
update_ay_bus();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia_cb2_w - PIA CB2 writes
|
||||
//-------------------------------------------------
|
||||
@ -360,19 +345,16 @@ WRITE_LINE_MEMBER(bally_as3022_device::pia_cb2_w)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ay_io_r - AY8912 IO A reads (B is unconnected)
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_MEMBER(bally_as3022_device::ay_io_r)
|
||||
{
|
||||
// The two high bits are unconnected, the others are inverted.
|
||||
return ~m_sound_select & 0x3f;
|
||||
}
|
||||
|
||||
|
||||
void bally_as3022_device::update_sound_selects()
|
||||
void bally_as3022_device::update_ay_bus()
|
||||
{
|
||||
if (m_bc1 && m_bdir)
|
||||
{
|
||||
@ -384,6 +366,7 @@ void bally_as3022_device::update_sound_selects()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// SOUNDS PLUS WITH VOCALIZER
|
||||
//**************************************************************************
|
||||
@ -391,7 +374,6 @@ void bally_as3022_device::update_sound_selects()
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_sounds_plus_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
bally_as3022_device::device_add_mconfig(config);
|
||||
@ -399,15 +381,18 @@ void bally_sounds_plus_device::device_add_mconfig(machine_config &config)
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &bally_sounds_plus_device::sounds_plus_map);
|
||||
m_pia->writepb_handler().set(FUNC(bally_sounds_plus_device::vocalizer_pia_portb_w));
|
||||
|
||||
// TODO: Calculate exact filter values. An AC filter is good enough for now
|
||||
// and required as the chip likes to output a DC offset at idle.
|
||||
FILTER_RC(config, m_mc3417_filter).set_ac();
|
||||
m_mc3417_filter->add_route(ALL_OUTPUTS, *this, 1.0);
|
||||
MC3417(config, m_mc3417, 0);
|
||||
// A gain of 2.2 is a guess. It sounds about loud enough and doesn't clip.
|
||||
m_mc3417->add_route(ALL_OUTPUTS, *this, 2.2, AUTO_ALLOC_INPUT, 0);
|
||||
m_mc3417->add_route(ALL_OUTPUTS, "mc3417_filter", 2.2);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// CPU map, from schematics
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_sounds_plus_device::sounds_plus_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
@ -419,7 +404,6 @@ void bally_sounds_plus_device::sounds_plus_map(address_map &map)
|
||||
//-------------------------------------------------
|
||||
// pia_portb_w - PIA port B writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_sounds_plus_device::vocalizer_pia_portb_w)
|
||||
{
|
||||
bool speech_clock = BIT(data, 6);
|
||||
@ -434,9 +418,9 @@ WRITE8_MEMBER(bally_sounds_plus_device::vocalizer_pia_portb_w)
|
||||
// Cheap Squeak
|
||||
//**************************************************************************
|
||||
|
||||
//**************************************************************************
|
||||
//--------------------------------------------------------------------------
|
||||
// IO ports
|
||||
//**************************************************************************
|
||||
//--------------------------------------------------------------------------
|
||||
static INPUT_PORTS_START(cheap_squeak)
|
||||
PORT_START("SW1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Sound Test") PORT_CHANGED_MEMBER(DEVICE_SELF, bally_cheap_squeak_device, sw1, 0)
|
||||
@ -444,19 +428,18 @@ INPUT_PORTS_END
|
||||
|
||||
ioport_constructor bally_cheap_squeak_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(cheap_squeak);
|
||||
return INPUT_PORTS_NAME(cheap_squeak);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(bally_cheap_squeak_device::sw1)
|
||||
{
|
||||
if (newval != oldval)
|
||||
m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
|
||||
if (newval != oldval)
|
||||
m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// sound_select - handle an external write to the board
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_cheap_squeak_device::sound_select)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_cheap_squeak_device::sound_select_sync), this), data);
|
||||
@ -468,10 +451,8 @@ TIMER_CALLBACK_MEMBER(bally_cheap_squeak_device::sound_select_sync)
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
//
|
||||
// sound_int - handle an external sound interrupt to the board
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(bally_cheap_squeak_device::sound_int)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_cheap_squeak_device::sound_int_sync), this), state);
|
||||
@ -481,12 +462,12 @@ TIMER_CALLBACK_MEMBER(bally_cheap_squeak_device::sound_int_sync)
|
||||
{
|
||||
m_sound_int = param;
|
||||
m_cpu->set_input_line(M6801_TIN_LINE, (m_sound_int ? ASSERT_LINE : CLEAR_LINE));
|
||||
update_led();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// CPU map, from schematics
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_cheap_squeak_device::cheap_squeak_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
@ -498,7 +479,6 @@ void bally_cheap_squeak_device::cheap_squeak_map(address_map &map)
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_cheap_squeak_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M6803(config, m_cpu, DERIVED_CLOCK(1, 1));
|
||||
@ -508,26 +488,24 @@ void bally_cheap_squeak_device::device_add_mconfig(machine_config &config)
|
||||
m_cpu->out_p2_cb().set(FUNC(bally_cheap_squeak_device::out_p2_cb));
|
||||
|
||||
ZN429E(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 1.00, AUTO_ALLOC_INPUT, 0);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_cheap_squeak_device::device_start()
|
||||
{
|
||||
m_sound_ack_w_handler.resolve();
|
||||
save_item(NAME(m_sound_select));
|
||||
save_item(NAME(m_sound_int));
|
||||
save_item(NAME(m_sound_select));
|
||||
save_item(NAME(m_sound_int));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// out_p1_cb - IO port 1 write
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_cheap_squeak_device::out_p1_cb)
|
||||
{
|
||||
m_dac->write(data);
|
||||
@ -536,7 +514,6 @@ WRITE8_MEMBER(bally_cheap_squeak_device::out_p1_cb)
|
||||
//-------------------------------------------------
|
||||
// in_p2_cb - IO port 2 read
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_MEMBER(bally_cheap_squeak_device::in_p2_cb)
|
||||
{
|
||||
int sound_int_bit = m_sound_int ? 1 : 0;
|
||||
@ -546,12 +523,288 @@ READ8_MEMBER(bally_cheap_squeak_device::in_p2_cb)
|
||||
//-------------------------------------------------
|
||||
// out_p2_cb - IO port 2 write
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(bally_cheap_squeak_device::out_p2_cb)
|
||||
{
|
||||
bool sound_ack = data & 0x01;
|
||||
m_sound_ack = BIT(data, 0);
|
||||
if (!m_sound_ack_w_handler.isnull())
|
||||
{
|
||||
m_sound_ack_w_handler(sound_ack);
|
||||
m_sound_ack_w_handler(m_sound_ack);
|
||||
}
|
||||
update_led();
|
||||
}
|
||||
|
||||
void bally_cheap_squeak_device::update_led()
|
||||
{
|
||||
// Either input or output can pull the led line high
|
||||
bool led_state = m_sound_int || m_sound_ack;
|
||||
machine().output().set_value("sound_led0", led_state);
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// Squawk & Talk
|
||||
//**************************************************************************
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// IO ports
|
||||
//--------------------------------------------------------------------------
|
||||
static INPUT_PORTS_START(squawk_n_talk)
|
||||
PORT_START("SW1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("SW1") PORT_CHANGED_MEMBER(DEVICE_SELF, bally_squawk_n_talk_device, sw1, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor bally_squawk_n_talk_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(squawk_n_talk);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(bally_squawk_n_talk_device::sw1)
|
||||
{
|
||||
if (newval != oldval)
|
||||
m_cpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// sound_select - handle an external write to the board
|
||||
//-------------------------------------------------
|
||||
WRITE8_MEMBER(bally_squawk_n_talk_device::sound_select)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_squawk_n_talk_device::sound_select_sync), this), data);
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(bally_squawk_n_talk_device::sound_select_sync)
|
||||
{
|
||||
m_sound_select = param;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// sound_int - handle an external sound interrupt to the board
|
||||
//-------------------------------------------------
|
||||
WRITE_LINE_MEMBER(bally_squawk_n_talk_device::sound_int)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bally_squawk_n_talk_device::sound_int_sync), this), state);
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(bally_squawk_n_talk_device::sound_int_sync)
|
||||
{
|
||||
// the line runs though in inverter
|
||||
m_pia2->cb1_w(!param);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// CPU map, from schematics
|
||||
//-------------------------------------------------
|
||||
void bally_squawk_n_talk_device::squawk_n_talk_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram(); // internal RAM, could also be jumpered to use a 6808
|
||||
map(0x0080, 0x0083).mirror(0x4f6c).rw("pia2", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).mirror(0x4f6c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0x1000).mirror(0x40ff).w("dac", FUNC(dac_byte_interface::data_w));
|
||||
map(0x8000, 0x8fff).mirror(0x4000).rom(); // U2
|
||||
map(0x9000, 0x9fff).mirror(0x4000).rom(); // U3
|
||||
map(0xa000, 0xafff).mirror(0x4000).rom(); // U4
|
||||
map(0xb000, 0xbfff).mirror(0x4000).rom(); // U5
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
void bally_squawk_n_talk_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M6802(config, m_cpu, DERIVED_CLOCK(1, 1));
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &bally_squawk_n_talk_device::squawk_n_talk_map);
|
||||
|
||||
PIA6821(config, m_pia1, 0);
|
||||
m_pia1->readpa_handler().set(m_tms5200, FUNC(tms5220_device::status_r));
|
||||
m_pia1->writepa_handler().set(m_tms5200, FUNC(tms5220_device::data_w));
|
||||
m_pia1->writepb_handler().set(FUNC(bally_squawk_n_talk_device::pia1_portb_w));
|
||||
m_pia1->irqa_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w));
|
||||
m_pia1->irqb_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w));
|
||||
|
||||
PIA6821(config, m_pia2, 0);
|
||||
m_pia2->readpa_handler().set(FUNC(bally_squawk_n_talk_device::pia2_porta_r));
|
||||
m_pia2->ca2_handler().set(FUNC(bally_squawk_n_talk_device::pia2_ca2_w));
|
||||
m_pia2->irqa_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w));
|
||||
m_pia2->irqb_handler().set(FUNC(bally_squawk_n_talk_device::pia_irq_w));
|
||||
|
||||
FILTER_RC(config, m_dac_filter);
|
||||
m_dac_filter->add_route(ALL_OUTPUTS, *this, 1.0);
|
||||
m_dac_filter->set_rc(filter_rc_device::HIGHPASS, 2000, 0, 0, CAP_U(2));
|
||||
AD558(config, "dac", 0).add_route(ALL_OUTPUTS, "dac_filter", 0.75);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
|
||||
// TODO: Calculate exact filter values. An AC filter is good enough for now
|
||||
// and required as the chip likes to output a DC offset at idle.
|
||||
FILTER_RC(config, m_speech_filter).set_ac();
|
||||
m_speech_filter->add_route(ALL_OUTPUTS, *this, 1.0);
|
||||
TMS5200(config, m_tms5200, 640000);
|
||||
m_tms5200->add_route(ALL_OUTPUTS, "speech_filter", 1.0);
|
||||
m_tms5200->ready_cb().set(m_pia1, FUNC(pia6821_device::ca2_w));
|
||||
m_tms5200->irq_cb().set(m_pia1, FUNC(pia6821_device::cb1_w));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
void bally_squawk_n_talk_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_sound_select));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia1_portb_w - PIA 1 port B write
|
||||
//-------------------------------------------------
|
||||
WRITE8_MEMBER(bally_squawk_n_talk_device::pia1_portb_w)
|
||||
{
|
||||
m_tms5200->rsq_w(BIT(data, 0));
|
||||
m_tms5200->wsq_w(BIT(data, 1));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia2_porta_r - PIA 2 port A reads
|
||||
//-------------------------------------------------
|
||||
READ8_MEMBER(bally_squawk_n_talk_device::pia2_porta_r)
|
||||
{
|
||||
// 5 lines and they go through inverters
|
||||
return ~m_sound_select & 0x1f;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia2_ca2_w - PIA 2 CA2 writes
|
||||
//-------------------------------------------------
|
||||
WRITE_LINE_MEMBER(bally_squawk_n_talk_device::pia2_ca2_w)
|
||||
{
|
||||
machine().output().set_value("sound_led0", state);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia_irq_w - IRQ line state changes
|
||||
//-------------------------------------------------
|
||||
WRITE_LINE_MEMBER(bally_squawk_n_talk_device::pia_irq_w)
|
||||
{
|
||||
int combined_state = m_pia1->irq_a_state() | m_pia1->irq_b_state() | m_pia2->irq_a_state() | m_pia2->irq_b_state();
|
||||
m_cpu->set_input_line(M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
void bally_squawk_n_talk_ay_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
bally_squawk_n_talk_device::device_add_mconfig(config);
|
||||
|
||||
m_pia2->writepa_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_porta_w));
|
||||
m_pia2->readpa_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_porta_r));
|
||||
m_pia2->writepb_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_portb_w));
|
||||
m_pia2->cb2_handler().set(FUNC(bally_squawk_n_talk_ay_device::pia2_cb2_w));
|
||||
|
||||
for (optional_device<filter_rc_device> &filter : m_ay_filters)
|
||||
// TODO: Calculate exact filter values. An AC filter is good enough for now
|
||||
// and required as the chip likes to output a DC offset at idle.
|
||||
FILTER_RC(config, filter).set_ac().add_route(ALL_OUTPUTS, *this, 1.0);
|
||||
AY8910(config, m_ay, DERIVED_CLOCK(1, 4));
|
||||
m_ay->add_route(0, "ay_filter0", 0.33);
|
||||
m_ay->add_route(1, "ay_filter1", 0.33);
|
||||
m_ay->add_route(2, "ay_filter2", 0.33);
|
||||
m_ay->port_a_read_callback().set(FUNC(bally_squawk_n_talk_ay_device::ay_io_r));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
void bally_squawk_n_talk_ay_device::device_start()
|
||||
{
|
||||
// Set volumes to a sane default.
|
||||
m_ay->set_volume(0, 0);
|
||||
m_ay->set_volume(1, 0);
|
||||
m_ay->set_volume(2, 0);
|
||||
|
||||
save_item(NAME(m_bc1));
|
||||
save_item(NAME(m_bdir));
|
||||
save_item(NAME(m_ay_data));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia2_porta_r - PIA 2 port A reads
|
||||
//-------------------------------------------------
|
||||
READ8_MEMBER(bally_squawk_n_talk_ay_device::pia2_porta_r)
|
||||
{
|
||||
if (m_bc1 && !m_bdir)
|
||||
{
|
||||
m_ay_data = m_ay->data_r();
|
||||
}
|
||||
// This should return the open bus, but this method is called even if the PIA
|
||||
// is in output mode. Self test expects to see the same value.
|
||||
return m_ay_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia2_porta_w - PIA 2 port A writes
|
||||
//-------------------------------------------------
|
||||
WRITE8_MEMBER(bally_squawk_n_talk_ay_device::pia2_porta_w)
|
||||
{
|
||||
if (m_bc1 && !m_bdir)
|
||||
{
|
||||
logerror("PIA2 port A bus contention!\n");
|
||||
}
|
||||
m_ay_data = data;
|
||||
update_ay_bus();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia2_portb_w - PIA 2 port B writes
|
||||
//-------------------------------------------------
|
||||
WRITE8_MEMBER(bally_squawk_n_talk_ay_device::pia2_portb_w)
|
||||
{
|
||||
m_bc1 = BIT(data, 0);
|
||||
m_bdir = BIT(data, 1);
|
||||
if (m_bc1 && !m_bdir)
|
||||
{
|
||||
m_ay_data = m_ay->data_r();
|
||||
}
|
||||
update_ay_bus();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// pia2_cb2_w - PIA 2 CB2 writes
|
||||
//-------------------------------------------------
|
||||
WRITE_LINE_MEMBER(bally_squawk_n_talk_ay_device::pia2_cb2_w)
|
||||
{
|
||||
// This pin is hooked up to the amp, and disables sounds when hi
|
||||
if (state)
|
||||
{
|
||||
m_ay->set_volume(0, 0);
|
||||
m_ay->set_volume(1, 0);
|
||||
m_ay->set_volume(2, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ay->set_volume(0, 0xff);
|
||||
m_ay->set_volume(1, 0xff);
|
||||
m_ay->set_volume(2, 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// ay_io_r - AY8910 read
|
||||
//-------------------------------------------------
|
||||
READ8_MEMBER(bally_squawk_n_talk_ay_device::ay_io_r)
|
||||
{
|
||||
// 5 lines and they go through inverters
|
||||
return ~m_sound_select & 0x1f;
|
||||
}
|
||||
|
||||
void bally_squawk_n_talk_ay_device::update_ay_bus()
|
||||
{
|
||||
if (m_bc1 && m_bdir)
|
||||
{
|
||||
m_ay->address_w(m_ay_data);
|
||||
}
|
||||
else if (!m_bc1 && m_bdir)
|
||||
{
|
||||
m_ay->data_w(m_ay_data);
|
||||
}
|
||||
}
|
||||
|
@ -21,17 +21,22 @@
|
||||
#include "sound/ay8910.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/discrete.h"
|
||||
#include "sound/flt_rc.h"
|
||||
#include "sound/hc55516.h"
|
||||
#include "sound/tms5220.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// GLOBAL VARIABLES
|
||||
//**************************************************************************
|
||||
|
||||
DECLARE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_AS3022, bally_as3022_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_SOUNDS_PLUS, bally_sounds_plus_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_CHEAP_SQUEAK, bally_cheap_squeak_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK, bally_squawk_n_talk_device)
|
||||
DECLARE_DEVICE_TYPE(BALLY_SQUAWK_N_TALK_AY, bally_squawk_n_talk_ay_device)
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -47,8 +52,8 @@ public:
|
||||
const machine_config &mconfig,
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock = 3'579'545) :
|
||||
bally_as2888_device(mconfig, BALLY_AS2888, tag, owner, clock)
|
||||
uint32_t clock = 0) :
|
||||
bally_as2888_device(mconfig, BALLY_AS2888, tag, owner)
|
||||
{ }
|
||||
|
||||
// read/write
|
||||
@ -62,14 +67,13 @@ protected:
|
||||
const machine_config &mconfig,
|
||||
device_type type,
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock) :
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
device_t *owner) :
|
||||
device_t(mconfig, type, tag, owner, 0),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_snd_prom(*this, "sound"),
|
||||
m_discrete(*this, "discrete"),
|
||||
m_timer_s_freq(*this, "timer_s_freq"),
|
||||
m_snd_sustain_timer(*this, "timer_as2888")
|
||||
m_discrete(*this, "discrete"),
|
||||
m_timer_s_freq(*this, "timer_s_freq"),
|
||||
m_snd_sustain_timer(*this, "timer_as2888")
|
||||
{ }
|
||||
|
||||
// device-level overrides
|
||||
@ -78,20 +82,20 @@ protected:
|
||||
|
||||
private:
|
||||
uint8_t m_sound_select;
|
||||
uint8_t m_snd_sel;
|
||||
uint8_t m_snd_tone_gen;
|
||||
uint8_t m_snd_div;
|
||||
required_region_ptr<uint8_t> m_snd_prom;
|
||||
required_device<discrete_sound_device> m_discrete;
|
||||
required_device<timer_device> m_timer_s_freq;
|
||||
required_device<timer_device> m_snd_sustain_timer;
|
||||
uint8_t m_snd_sel;
|
||||
uint8_t m_snd_tone_gen;
|
||||
uint8_t m_snd_div;
|
||||
required_region_ptr<uint8_t> m_snd_prom;
|
||||
required_device<discrete_sound_device> m_discrete;
|
||||
required_device<timer_device> m_timer_s_freq;
|
||||
required_device<timer_device> m_snd_sustain_timer;
|
||||
|
||||
|
||||
// internal communications
|
||||
TIMER_CALLBACK_MEMBER(sound_select_sync);
|
||||
TIMER_CALLBACK_MEMBER(sound_int_sync);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_s);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_as2888);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_s);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_as2888);
|
||||
};
|
||||
|
||||
|
||||
@ -122,11 +126,13 @@ protected:
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock) :
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_cpu(*this, "cpu"),
|
||||
m_pia(*this, "pia"),
|
||||
m_ay(*this, "ay"),
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_cpu(*this, "cpu"),
|
||||
m_pia(*this, "pia"),
|
||||
m_ay_filters(*this, "ay_filter%u", 0),
|
||||
m_ay(*this, "ay"),
|
||||
m_mc3417_filter(*this, "mc3417_filter"),
|
||||
m_mc3417(*this, "mc3417")
|
||||
{ }
|
||||
|
||||
@ -139,7 +145,9 @@ protected:
|
||||
// The schematics list an optional 555, but it never seemed to be used
|
||||
required_device<m6808_cpu_device> m_cpu;
|
||||
required_device<pia6821_device> m_pia;
|
||||
required_device_array<filter_rc_device, 3> m_ay_filters;
|
||||
required_device<ay8910_device> m_ay;
|
||||
optional_device<filter_rc_device> m_mc3417_filter;
|
||||
optional_device<mc3417_device> m_mc3417;
|
||||
|
||||
// overwridden by children
|
||||
@ -157,10 +165,10 @@ private:
|
||||
DECLARE_READ8_MEMBER(pia_porta_r);
|
||||
DECLARE_WRITE8_MEMBER(pia_porta_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pia_cb2_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(irq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pia_irq_w);
|
||||
DECLARE_READ8_MEMBER(ay_io_r);
|
||||
|
||||
void update_sound_selects();
|
||||
void update_ay_bus();
|
||||
};
|
||||
|
||||
|
||||
@ -217,9 +225,9 @@ protected:
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock) :
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_cpu(*this, "cpu"),
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_cpu(*this, "cpu"),
|
||||
m_dac(*this, "dac"),
|
||||
m_sound_ack_w_handler(*this)
|
||||
{ }
|
||||
@ -231,11 +239,12 @@ protected:
|
||||
|
||||
// devices
|
||||
required_device<m6803_cpu_device> m_cpu;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
|
||||
private:
|
||||
uint8_t m_sound_select;
|
||||
bool m_sound_int;
|
||||
bool m_sound_ack;
|
||||
|
||||
devcb_write_line m_sound_ack_w_handler;
|
||||
|
||||
@ -245,6 +254,112 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(out_p1_cb);
|
||||
DECLARE_READ8_MEMBER(in_p2_cb);
|
||||
DECLARE_WRITE8_MEMBER(out_p2_cb);
|
||||
|
||||
void update_led();
|
||||
};
|
||||
|
||||
// ======================> bally_squawk_n_talk_device
|
||||
|
||||
// This board comes in different configurations, with or without the DAC and/or AY8910.
|
||||
|
||||
class bally_squawk_n_talk_device : public device_t, public device_mixer_interface
|
||||
{
|
||||
public:
|
||||
bally_squawk_n_talk_device(
|
||||
const machine_config &mconfig,
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock = 3'579'545) :
|
||||
bally_squawk_n_talk_device(mconfig, BALLY_SQUAWK_N_TALK, tag, owner, clock)
|
||||
{ }
|
||||
|
||||
// read/write
|
||||
DECLARE_INPUT_CHANGED_MEMBER(sw1);
|
||||
DECLARE_WRITE8_MEMBER(sound_select);
|
||||
DECLARE_WRITE_LINE_MEMBER(sound_int);
|
||||
|
||||
void squawk_n_talk_map(address_map &map);
|
||||
|
||||
protected:
|
||||
bally_squawk_n_talk_device(
|
||||
const machine_config &mconfig,
|
||||
device_type type,
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock) :
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_cpu(*this, "cpu"),
|
||||
m_pia1(*this, "pia1"),
|
||||
m_pia2(*this, "pia2"),
|
||||
m_dac_filter(*this, "dac_filter"),
|
||||
m_dac(*this, "dac"),
|
||||
m_speech_filter(*this, "speech_filter"),
|
||||
m_tms5200(*this, "tms5200"),
|
||||
m_ay_filters(*this, "ay_filter%u", 0),
|
||||
m_ay(*this, "ay")
|
||||
{ }
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_start() override;
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
|
||||
// devices
|
||||
required_device<m6802_cpu_device> m_cpu;
|
||||
required_device<pia6821_device> m_pia1;
|
||||
required_device<pia6821_device> m_pia2;
|
||||
required_device<filter_rc_device> m_dac_filter;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
required_device<filter_rc_device> m_speech_filter;
|
||||
required_device<tms5200_device> m_tms5200;
|
||||
optional_device_array<filter_rc_device, 3> m_ay_filters;
|
||||
optional_device<ay8910_device> m_ay;
|
||||
|
||||
uint8_t m_sound_select;
|
||||
|
||||
DECLARE_READ8_MEMBER(pia2_porta_r);
|
||||
|
||||
private:
|
||||
// internal communications
|
||||
TIMER_CALLBACK_MEMBER(sound_select_sync);
|
||||
TIMER_CALLBACK_MEMBER(sound_int_sync);
|
||||
DECLARE_WRITE8_MEMBER(pia1_portb_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pia2_ca2_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pia_irq_w);
|
||||
};
|
||||
|
||||
|
||||
class bally_squawk_n_talk_ay_device : public bally_squawk_n_talk_device
|
||||
{
|
||||
public:
|
||||
bally_squawk_n_talk_ay_device(
|
||||
const machine_config &mconfig,
|
||||
const char *tag,
|
||||
device_t *owner,
|
||||
uint32_t clock = 3'579'545) :
|
||||
bally_squawk_n_talk_device(mconfig, BALLY_SQUAWK_N_TALK_AY, tag, owner, clock)
|
||||
{ }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_start() override;
|
||||
|
||||
DECLARE_READ8_MEMBER(pia2_porta_r);
|
||||
|
||||
private:
|
||||
bool m_bc1;
|
||||
bool m_bdir;
|
||||
uint8_t m_ay_data;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(pia2_porta_w);
|
||||
DECLARE_WRITE8_MEMBER(pia2_portb_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pia2_cb2_w);
|
||||
DECLARE_READ8_MEMBER(ay_io_r);
|
||||
|
||||
void update_ay_bus();
|
||||
};
|
||||
|
||||
|
||||
#endif // MAME_AUDIO_BALLY_H
|
||||
|
@ -4,9 +4,17 @@
|
||||
// Format not understood, it is not OKI ADPCM or IMA ADPCM, maybe something more basic?
|
||||
|
||||
#include "emu.h"
|
||||
#include "rad_eu3a05.h"
|
||||
#include "elan_eu3a05.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(RADICA6502_SOUND, radica6502_sound_device, "radica6502sound", "Elan EU3A05 / EU3A14 Sound")
|
||||
|
||||
#define LOG_AUDIO (1U << 0)
|
||||
|
||||
#define LOG_ALL (LOG_AUDIO)
|
||||
|
||||
#define VERBOSE (0)
|
||||
#include "logmacro.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(RADICA6502_SOUND, radica6502_sound_device, "radica6502sound", "Radica 6502 Sound")
|
||||
|
||||
radica6502_sound_device::radica6502_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, RADICA6502_SOUND, tag, owner, clock)
|
||||
@ -51,7 +59,7 @@ void radica6502_sound_device::sound_stream_update(sound_stream &stream, stream_s
|
||||
{
|
||||
if (!((m_isstopped >> channel) & 1))
|
||||
{
|
||||
//logerror("m_isstopped %02x channel %d is active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]);
|
||||
//LOGMASKED( LOG_AUDIO, "m_isstopped %02x channel %d is active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]);
|
||||
|
||||
int readoffset = m_sound_byte_address[channel] + (m_sound_current_nib_pos[channel] / 2);
|
||||
|
||||
@ -79,7 +87,7 @@ void radica6502_sound_device::sound_stream_update(sound_stream &stream, stream_s
|
||||
}
|
||||
else
|
||||
{
|
||||
//logerror("m_isstopped %02x channel %d is NOT active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]);
|
||||
//LOGMASKED( LOG_AUDIO, "m_isstopped %02x channel %d is NOT active %08x %06x\n", m_isstopped, channel, m_sound_byte_address[channel], m_sound_current_nib_pos[channel]);
|
||||
}
|
||||
}
|
||||
outpos++;
|
||||
@ -93,17 +101,17 @@ void radica6502_sound_device::handle_sound_addr_w(int which, int offset, uint8_t
|
||||
{
|
||||
case 0x00:
|
||||
m_sound_byte_address[which] = (m_sound_byte_address[which] & 0xffff00) | (data<<0);
|
||||
logerror("%s: sound_0 (%d) write lo address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) write lo address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]);
|
||||
break;
|
||||
|
||||
case 0x01:
|
||||
m_sound_byte_address[which] = (m_sound_byte_address[which] & 0xff00ff) | (data<<8);
|
||||
logerror("%s: sound_0 (%d) write md address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) write md address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]);
|
||||
break;
|
||||
|
||||
case 0x02:
|
||||
m_sound_byte_address[which] = (m_sound_byte_address[which] & 0x00ffff) | (data<<16);
|
||||
logerror("%s: sound_0 (%d) write hi address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) write hi address %02x (real address is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_address[which]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -113,15 +121,15 @@ uint8_t radica6502_sound_device::handle_sound_addr_r(int which, int offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00:
|
||||
logerror("%s: sound_0 (%d) read lo address\n", machine().describe_context(), which);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) read lo address\n", machine().describe_context(), which);
|
||||
return (m_sound_byte_address[which]>>0) & 0xff;
|
||||
|
||||
case 0x01:
|
||||
logerror("%s: sound_0 (%d) read mid address\n", machine().describe_context(), which);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) read mid address\n", machine().describe_context(), which);
|
||||
return (m_sound_byte_address[which]>>8) & 0xff;
|
||||
|
||||
case 0x02:
|
||||
logerror("%s: sound_0 (%d) read hi address\n", machine().describe_context(), which);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_0 (%d) read hi address\n", machine().describe_context(), which);
|
||||
return (m_sound_byte_address[which]>>16) & 0xff;
|
||||
}
|
||||
|
||||
@ -146,17 +154,17 @@ void radica6502_sound_device::handle_sound_size_w(int which, int offset, uint8_t
|
||||
{
|
||||
case 0x00:
|
||||
m_sound_byte_len[which] = (m_sound_byte_len[which] & 0xffff00) | (data<<0);
|
||||
logerror("%s: sound_1 (%d) write lo size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) write lo size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]);
|
||||
break;
|
||||
|
||||
case 0x01:
|
||||
m_sound_byte_len[which] = (m_sound_byte_len[which] & 0xff00ff) | (data<<8);
|
||||
logerror("%s: sound_1 (%d) write md size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) write md size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]);
|
||||
break;
|
||||
|
||||
case 0x02:
|
||||
m_sound_byte_len[which] = (m_sound_byte_len[which] & 0x00ffff) | (data<<16);
|
||||
logerror("%s: sound_1 (%d) write hi size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) write hi size %02x (real size is now %08x)\n", machine().describe_context(), which, data, m_sound_byte_len[which]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -166,15 +174,15 @@ uint8_t radica6502_sound_device::handle_sound_size_r(int which, int offset)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00:
|
||||
logerror("%s: sound_1 (%d) read lo size\n", machine().describe_context(), which);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) read lo size\n", machine().describe_context(), which);
|
||||
return (m_sound_byte_len[which]>>0) & 0xff;
|
||||
|
||||
case 0x01:
|
||||
logerror("%s: sound_1 (%d) read mid size\n", machine().describe_context(), which);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) read mid size\n", machine().describe_context(), which);
|
||||
return (m_sound_byte_len[which]>>8) & 0xff;
|
||||
|
||||
case 0x02:
|
||||
logerror("%s: sound_1 (%d) read hi size\n", machine().describe_context(), which);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound_1 (%d) read hi size\n", machine().describe_context(), which);
|
||||
return (m_sound_byte_len[which]>>16) & 0xff;
|
||||
}
|
||||
|
||||
@ -197,7 +205,7 @@ READ8_MEMBER(radica6502_sound_device::radicasi_sound_trigger_r)
|
||||
{
|
||||
m_stream->update();
|
||||
|
||||
logerror("%s: sound read from trigger?\n", machine().describe_context());
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound read from trigger?\n", machine().describe_context());
|
||||
return m_sound_trigger;
|
||||
}
|
||||
|
||||
@ -206,7 +214,7 @@ WRITE8_MEMBER(radica6502_sound_device::radicasi_sound_trigger_w)
|
||||
{
|
||||
m_stream->update();
|
||||
|
||||
logerror("%s: sound write to trigger? %02x\n", machine().describe_context(), data);
|
||||
LOGMASKED( LOG_AUDIO, "%s: sound write to trigger? %02x\n", machine().describe_context(), data);
|
||||
m_sound_trigger = data;
|
||||
|
||||
for (int i = 0; i < 6; i++)
|
||||
@ -218,39 +226,39 @@ WRITE8_MEMBER(radica6502_sound_device::radicasi_sound_trigger_w)
|
||||
}
|
||||
|
||||
if (data & 0xc0)
|
||||
logerror(" UNEXPECTED BITS SET");
|
||||
LOGMASKED( LOG_AUDIO, " UNEXPECTED BITS SET");
|
||||
}
|
||||
|
||||
/* this is read/written with the same individual bits for each channel as the trigger
|
||||
maybe related to interrupts? */
|
||||
READ8_MEMBER(radica6502_sound_device::radicasi_sound_unk_r)
|
||||
{
|
||||
logerror("%s: radicasi_sound_unk_r\n", machine().describe_context());
|
||||
LOGMASKED( LOG_AUDIO, "%s: radicasi_sound_unk_r\n", machine().describe_context());
|
||||
// don't think this reads back what was written probably a status of something instead?
|
||||
return 0x00; //m_sound_unk;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(radica6502_sound_device::radicasi_sound_unk_w)
|
||||
{
|
||||
logerror("%s: radicasi_sound_unk_w %02x\n", machine().describe_context(), data);
|
||||
LOGMASKED( LOG_AUDIO, "%s: radicasi_sound_unk_w %02x\n", machine().describe_context(), data);
|
||||
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
int bit = (data >> i) & 1;
|
||||
|
||||
if (bit)
|
||||
logerror("(unknown operation on channel %d)\n", i);
|
||||
LOGMASKED( LOG_AUDIO, "(unknown operation on channel %d)\n", i);
|
||||
}
|
||||
|
||||
m_sound_unk = data;
|
||||
|
||||
if (data & 0xc0)
|
||||
logerror(" UNEXPECTED BITS SET");
|
||||
LOGMASKED( LOG_AUDIO, " UNEXPECTED BITS SET");
|
||||
}
|
||||
|
||||
void radica6502_sound_device::handle_sound_trigger(int which)
|
||||
{
|
||||
logerror("Triggering operation on channel (%d) with params %08x %08x\n", which, m_sound_byte_address[which], m_sound_byte_len[which]);
|
||||
LOGMASKED( LOG_AUDIO, "Triggering operation on channel (%d) with params %08x %08x\n", which, m_sound_byte_address[which], m_sound_byte_len[which]);
|
||||
|
||||
m_sound_current_nib_pos[which] = 0;
|
||||
m_isstopped &= ~(1 << which);
|
||||
@ -261,6 +269,6 @@ READ8_MEMBER(radica6502_sound_device::radicasi_50a8_r)
|
||||
{
|
||||
m_stream->update();
|
||||
|
||||
logerror("%s: radicasi_50a8_r\n", machine().describe_context());
|
||||
LOGMASKED( LOG_AUDIO, "%s: radicasi_50a8_r\n", machine().describe_context());
|
||||
return m_isstopped;
|
||||
}
|
@ -20,10 +20,9 @@
|
||||
// GLOBAL VARIABLES
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device, "midssio", "Midway SSIO Sound Board")
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device, "midsg", "Midway Sounds Good Sound Board")
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device, "midtcs", "Midway Turbo Cheap Squeak Sound Board")
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_SQUAWK_N_TALK, midway_squawk_n_talk_device, "midsnt", "Midway Squawk 'n' Talk Sound Board")
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device, "midssio", "Midway SSIO Sound Board")
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device, "midsg", "Midway Sounds Good Sound Board")
|
||||
DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device, "midtcs", "Midway Turbo Cheap Squeak Sound Board")
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -797,211 +796,3 @@ void midway_turbo_cheap_squeak_device::device_timer(emu_timer &timer, device_tim
|
||||
// important, so we boost the interleave briefly while this happens
|
||||
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// SQUAWK 'N' TALK BOARD
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// midway_squawk_n_talk_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
midway_squawk_n_talk_device::midway_squawk_n_talk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, MIDWAY_SQUAWK_N_TALK, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_cpu(*this, "cpu"),
|
||||
m_pia0(*this, "pia0"),
|
||||
m_pia1(*this, "pia1"),
|
||||
m_tms5200(*this, "tms5200"),
|
||||
m_tms_command(0),
|
||||
m_tms_strobes(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// write - handle an external write to the input
|
||||
// latch
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(midway_squawk_n_talk_device::write)
|
||||
{
|
||||
synchronize(0, data);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// reset_write - write to the reset line
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(midway_squawk_n_talk_device::reset_write)
|
||||
{
|
||||
m_cpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// porta1_w - PIA #1 port A writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(midway_squawk_n_talk_device::porta1_w )
|
||||
{
|
||||
logerror("Write to AY-8912 = %02X\n", data);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// dac_w - DAC data writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(midway_squawk_n_talk_device::dac_w)
|
||||
{
|
||||
logerror("Write to DAC = %02X\n", data);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// porta2_w - PIA #2 port A writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(midway_squawk_n_talk_device::porta2_w)
|
||||
{
|
||||
m_tms_command = data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// portb2_w - PIA #2 port B writes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(midway_squawk_n_talk_device::portb2_w)
|
||||
{
|
||||
// bits 0-1 select read/write strobes on the TMS5200
|
||||
data &= 0x03;
|
||||
|
||||
// write strobe -- pass the current command to the TMS5200
|
||||
if (((data ^ m_tms_strobes) & 0x02) && !(data & 0x02))
|
||||
{
|
||||
m_tms5200->data_w(m_tms_command);
|
||||
|
||||
// DoT expects the ready line to transition on a command/write here, so we oblige
|
||||
m_pia1->ca2_w(1);
|
||||
m_pia1->ca2_w(0);
|
||||
}
|
||||
|
||||
// read strobe -- read the current status from the TMS5200
|
||||
else if (((data ^ m_tms_strobes) & 0x01) && !(data & 0x01))
|
||||
{
|
||||
m_pia1->write_porta(m_tms5200->status_r());
|
||||
|
||||
// DoT expects the ready line to transition on a command/write here, so we oblige
|
||||
m_pia1->ca2_w(1);
|
||||
m_pia1->ca2_w(0);
|
||||
}
|
||||
|
||||
// remember the state
|
||||
m_tms_strobes = data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// irq_w - IRQ line state changes
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(midway_squawk_n_talk_device::irq_w)
|
||||
{
|
||||
int combined_state = m_pia0->irq_a_state() | m_pia0->irq_b_state() | m_pia1->irq_a_state() | m_pia1->irq_b_state();
|
||||
m_cpu->set_input_line(M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// audio CPU map
|
||||
//-------------------------------------------------
|
||||
|
||||
// address map verified from schematics
|
||||
// note that jumpers control the ROM sizes; if these are changed, use the alternate
|
||||
// address map below
|
||||
void midway_squawk_n_talk_device::squawkntalk_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram(); // internal RAM
|
||||
map(0x0080, 0x0083).mirror(0x4f6c).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).mirror(0x4f6c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x1000, 0x1fff).mirror(0x4000).w(FUNC(midway_squawk_n_talk_device::dac_w));
|
||||
map(0x8000, 0xbfff).mirror(0x4000).rom();
|
||||
}
|
||||
|
||||
// alternate address map if the ROM jumpers are changed to support a smaller
|
||||
// ROM size of 2k
|
||||
#ifdef UNUSED_FUNCTION
|
||||
void midway_squawk_n_talk_device::squawkntalk_alt_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x007f).ram(); // internal RAM
|
||||
map(0x0080, 0x0083).mirror(0x676c).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0090, 0x0093).mirror(0x676c).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
|
||||
map(0x0800, 0x0fff).mirror(0x6000).w(FUNC(midway_squawk_n_talk_device::dac_w));
|
||||
map(0x8000, 0x9fff).mirror(0x6000).rom();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void midway_squawk_n_talk_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M6802(config, m_cpu, DERIVED_CLOCK(1, 1));
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &midway_squawk_n_talk_device::squawkntalk_map);
|
||||
|
||||
PIA6821(config, m_pia0, 0);
|
||||
m_pia0->writepa_handler().set(FUNC(midway_squawk_n_talk_device::porta1_w));
|
||||
m_pia0->irqa_handler().set(FUNC(midway_squawk_n_talk_device::irq_w));
|
||||
m_pia0->irqb_handler().set(FUNC(midway_squawk_n_talk_device::irq_w));
|
||||
|
||||
PIA6821(config, m_pia1, 0);
|
||||
m_pia1->writepa_handler().set(FUNC(midway_squawk_n_talk_device::porta2_w));
|
||||
m_pia1->writepb_handler().set(FUNC(midway_squawk_n_talk_device::portb2_w));
|
||||
m_pia1->irqa_handler().set(FUNC(midway_squawk_n_talk_device::irq_w));
|
||||
m_pia1->irqb_handler().set(FUNC(midway_squawk_n_talk_device::irq_w));
|
||||
|
||||
// only used on Discs of Tron, which is stereo
|
||||
TMS5200(config, m_tms5200, 640000).add_route(ALL_OUTPUTS, *this, 0.60);
|
||||
|
||||
// the board also supports an AY-8912 and/or an 8-bit DAC, neither of
|
||||
// which are populated on the Discs of Tron board
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void midway_squawk_n_talk_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_tms_command));
|
||||
save_item(NAME(m_tms_strobes));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void midway_squawk_n_talk_device::device_reset()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_timer - timer callbacks
|
||||
//-------------------------------------------------
|
||||
|
||||
void midway_squawk_n_talk_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
{
|
||||
m_pia0->write_porta(~param & 0x0f);
|
||||
m_pia0->cb1_w(BIT(~param, 4));
|
||||
}
|
||||
|
@ -31,7 +31,6 @@
|
||||
DECLARE_DEVICE_TYPE(MIDWAY_SSIO, midway_ssio_device)
|
||||
DECLARE_DEVICE_TYPE(MIDWAY_SOUNDS_GOOD, midway_sounds_good_device)
|
||||
DECLARE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device)
|
||||
DECLARE_DEVICE_TYPE(MIDWAY_SQUAWK_N_TALK, midway_squawk_n_talk_device)
|
||||
|
||||
|
||||
|
||||
@ -193,48 +192,4 @@ private:
|
||||
DECLARE_WRITE_LINE_MEMBER(irq_w);
|
||||
};
|
||||
|
||||
|
||||
// ======================> midway_squawk_n_talk_device
|
||||
|
||||
class midway_squawk_n_talk_device : public device_t,
|
||||
public device_mixer_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
midway_squawk_n_talk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 3'579'545);
|
||||
|
||||
// read/write
|
||||
DECLARE_WRITE8_MEMBER(write);
|
||||
DECLARE_WRITE_LINE_MEMBER(reset_write);
|
||||
|
||||
// internal communications
|
||||
DECLARE_WRITE8_MEMBER(dac_w);
|
||||
|
||||
void squawkntalk_alt_map(address_map &map);
|
||||
void squawkntalk_map(address_map &map);
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
||||
private:
|
||||
// devices
|
||||
required_device<m6802_cpu_device> m_cpu;
|
||||
required_device<pia6821_device> m_pia0;
|
||||
required_device<pia6821_device> m_pia1;
|
||||
optional_device<tms5200_device> m_tms5200;
|
||||
|
||||
// internal state
|
||||
uint8_t m_tms_command;
|
||||
uint8_t m_tms_strobes;
|
||||
|
||||
// internal communications
|
||||
DECLARE_WRITE8_MEMBER(porta1_w);
|
||||
DECLARE_WRITE8_MEMBER(porta2_w);
|
||||
DECLARE_WRITE8_MEMBER(portb2_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(irq_w);
|
||||
};
|
||||
|
||||
#endif // MAME_AUDIO_MIDWAY_H
|
||||
|
@ -55,26 +55,27 @@ public:
|
||||
|
||||
void init_drill();
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
/* input-related */
|
||||
required_ioport m_in0;
|
||||
uint8_t m_defender_sensor;
|
||||
uint8_t m_shutter_sensor;
|
||||
uint16_t m_irq_reg;
|
||||
u8 m_defender_sensor;
|
||||
u8 m_shutter_sensor;
|
||||
u16 m_irq_reg;
|
||||
|
||||
/* devices */
|
||||
DECLARE_READ8_MEMBER(arm_pwr_r);
|
||||
DECLARE_READ8_MEMBER(sensors_r);
|
||||
DECLARE_WRITE8_MEMBER(coins_w);
|
||||
DECLARE_WRITE16_MEMBER(sensors_w);
|
||||
DECLARE_READ16_MEMBER(drill_irq_r);
|
||||
DECLARE_WRITE16_MEMBER(drill_irq_w);
|
||||
u8 arm_pwr_r();
|
||||
u8 sensors_r();
|
||||
void coins_w(u8 data);
|
||||
void sensors_w(u16 data);
|
||||
u16 irq_r();
|
||||
void irq_w(offs_t offset, u16 data, u16 mem_mask);
|
||||
|
||||
DECLARE_MACHINE_START(drill);
|
||||
DECLARE_MACHINE_RESET(drill);
|
||||
INTERRUPT_GEN_MEMBER(drill_vblank_irq);
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
//INTERRUPT_GEN_MEMBER(drill_device_irq);
|
||||
void tile_decode();
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
|
||||
void drill_map(address_map &map);
|
||||
@ -92,23 +93,23 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
READ8_MEMBER(_2mindril_state::arm_pwr_r)
|
||||
u8 _2mindril_state::arm_pwr_r()
|
||||
{
|
||||
int arm_pwr = m_in0->read();//throw
|
||||
|
||||
if(arm_pwr > 0xe0) return ~0x18;
|
||||
if(arm_pwr > 0xc0) return ~0x14;
|
||||
if(arm_pwr > 0x80) return ~0x12;
|
||||
if(arm_pwr > 0x40) return ~0x10;
|
||||
if (arm_pwr > 0xe0) return ~0x18;
|
||||
if (arm_pwr > 0xc0) return ~0x14;
|
||||
if (arm_pwr > 0x80) return ~0x12;
|
||||
if (arm_pwr > 0x40) return ~0x10;
|
||||
else return ~0x00;
|
||||
}
|
||||
|
||||
READ8_MEMBER(_2mindril_state::sensors_r)
|
||||
u8 _2mindril_state::sensors_r()
|
||||
{
|
||||
return (m_defender_sensor) | (m_shutter_sensor);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_2mindril_state::coins_w)
|
||||
void _2mindril_state::coins_w(u8 data)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(0, data & 0x04);
|
||||
machine().bookkeeping().coin_counter_w(1, data & 0x08);
|
||||
@ -147,7 +148,7 @@ void _2mindril_state::device_timer(emu_timer &timer, device_timer_id id, int par
|
||||
}
|
||||
#endif
|
||||
|
||||
WRITE16_MEMBER(_2mindril_state::sensors_w)
|
||||
void _2mindril_state::sensors_w(u16 data)
|
||||
{
|
||||
/*---- xxxx ---- ---- select "lamps" (guess)*/
|
||||
/*---- ---- ---- -x-- lamp*/
|
||||
@ -174,12 +175,12 @@ WRITE16_MEMBER(_2mindril_state::sensors_w)
|
||||
}
|
||||
}
|
||||
|
||||
READ16_MEMBER(_2mindril_state::drill_irq_r)
|
||||
u16 _2mindril_state::irq_r()
|
||||
{
|
||||
return m_irq_reg;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(_2mindril_state::drill_irq_w)
|
||||
void _2mindril_state::irq_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
/*
|
||||
(note: could rather be irq mask)
|
||||
@ -187,13 +188,13 @@ WRITE16_MEMBER(_2mindril_state::drill_irq_w)
|
||||
---- ---- ---- x--- irq lv 4 ack, 0->1 latch
|
||||
---- ---- -??- -??? connected to the other levels?
|
||||
*/
|
||||
if(((m_irq_reg & 8) == 0) && data & 8)
|
||||
if (((m_irq_reg & 8) == 0) && data & 8)
|
||||
m_maincpu->set_input_line(4, CLEAR_LINE);
|
||||
|
||||
if(((m_irq_reg & 0x10) == 0) && data & 0x10)
|
||||
if (((m_irq_reg & 0x10) == 0) && data & 0x10)
|
||||
m_maincpu->set_input_line(5, CLEAR_LINE);
|
||||
|
||||
if(data & 0xffe7)
|
||||
if (data & 0xffe7)
|
||||
printf("%04x\n",data);
|
||||
|
||||
COMBINE_DATA(&m_irq_reg);
|
||||
@ -204,18 +205,18 @@ void _2mindril_state::drill_map(address_map &map)
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x200000, 0x20ffff).ram();
|
||||
map(0x300000, 0x3000ff).ram();
|
||||
map(0x400000, 0x40ffff).rw(FUNC(_2mindril_state::f3_spriteram_r), FUNC(_2mindril_state::f3_spriteram_w));
|
||||
map(0x410000, 0x41bfff).rw(FUNC(_2mindril_state::f3_pf_data_r), FUNC(_2mindril_state::f3_pf_data_w));
|
||||
map(0x41c000, 0x41dfff).rw(FUNC(_2mindril_state::f3_videoram_r), FUNC(_2mindril_state::f3_videoram_w));
|
||||
map(0x41e000, 0x41ffff).rw(FUNC(_2mindril_state::f3_vram_r), FUNC(_2mindril_state::f3_vram_w));
|
||||
map(0x420000, 0x42ffff).rw(FUNC(_2mindril_state::f3_lineram_r), FUNC(_2mindril_state::f3_lineram_w));
|
||||
map(0x430000, 0x43ffff).rw(FUNC(_2mindril_state::f3_pivot_r), FUNC(_2mindril_state::f3_pivot_w));
|
||||
map(0x460000, 0x46000f).w(FUNC(_2mindril_state::f3_control_0_w));
|
||||
map(0x460010, 0x46001f).w(FUNC(_2mindril_state::f3_control_1_w));
|
||||
map(0x400000, 0x40ffff).ram().share("spriteram");
|
||||
map(0x410000, 0x41bfff).ram().w(FUNC(_2mindril_state::pf_ram_w)).share("pf_ram");
|
||||
map(0x41c000, 0x41dfff).ram().w(FUNC(_2mindril_state::textram_w)).share("textram");
|
||||
map(0x41e000, 0x41ffff).ram().w(FUNC(_2mindril_state::charram_w)).share("charram");
|
||||
map(0x420000, 0x42ffff).ram().share("line_ram");
|
||||
map(0x430000, 0x43ffff).ram().w(FUNC(_2mindril_state::pivot_w)).share("pivot_ram");
|
||||
map(0x460000, 0x46000f).w(FUNC(_2mindril_state::control_0_w));
|
||||
map(0x460010, 0x46001f).w(FUNC(_2mindril_state::control_1_w));
|
||||
map(0x500000, 0x501fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x502022, 0x502023).nopw(); //countinously switches between 0 and 2
|
||||
map(0x600000, 0x600007).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write)).umask16(0x00ff);
|
||||
map(0x60000c, 0x60000d).rw(FUNC(_2mindril_state::drill_irq_r), FUNC(_2mindril_state::drill_irq_w));
|
||||
map(0x60000c, 0x60000d).rw(FUNC(_2mindril_state::irq_r), FUNC(_2mindril_state::irq_w));
|
||||
map(0x60000e, 0x60000f).ram(); // unknown purpose, zeroed at start-up and nothing else
|
||||
map(0x700000, 0x70000f).rw("tc0510nio", FUNC(tc0510nio_device::read), FUNC(tc0510nio_device::write)).umask16(0xff00);
|
||||
map(0x800000, 0x800001).w(FUNC(_2mindril_state::sensors_w));
|
||||
@ -269,7 +270,7 @@ static const gfx_layout charlayout =
|
||||
4,
|
||||
{ 0,1,2,3 },
|
||||
{ 20, 16, 28, 24, 4, 0, 12, 8 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
{ STEP8(0,4*8) },
|
||||
32*8
|
||||
};
|
||||
|
||||
@ -280,52 +281,19 @@ static const gfx_layout pivotlayout =
|
||||
4,
|
||||
{ 0,1,2,3 },
|
||||
{ 20, 16, 28, 24, 4, 0, 12, 8 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
{ STEP8(0,4*8) },
|
||||
32*8
|
||||
};
|
||||
|
||||
static const gfx_layout spriteram_layout =
|
||||
{
|
||||
16,16,
|
||||
RGN_FRAC(1,2),
|
||||
6, /* Palettes have 4 bpp indexes despite up to 6 bpp data */
|
||||
{ RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, 0, 1, 2, 3 },
|
||||
{
|
||||
4, 0, 12, 8,
|
||||
16+4, 16+0, 16+12, 16+8,
|
||||
32+4, 32+0, 32+12, 32+8,
|
||||
48+4, 48+0, 48+12, 48+8 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
|
||||
8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout tile_layout =
|
||||
{
|
||||
16,16,
|
||||
RGN_FRAC(1,2),
|
||||
6, /* Palettes have 4 bpp indexes despite up to 6 bpp data */
|
||||
{ RGN_FRAC(1,2)+2, RGN_FRAC(1,2)+3, 0, 1, 2, 3 },
|
||||
{
|
||||
4, 0, 16+4, 16+0,
|
||||
8+4, 8+0, 24+4, 24+0,
|
||||
32+4, 32+0, 48+4, 48+0,
|
||||
40+4, 40+0, 56+4, 56+0,
|
||||
},
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
|
||||
8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_2mindril )
|
||||
GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0x0000, 0x0400>>4 ) /* Dynamically modified */
|
||||
GFXDECODE_ENTRY( "gfx2", 0x000000, tile_layout, 0x0000, 0x2000>>4 ) /* Tiles area */
|
||||
GFXDECODE_ENTRY( "gfx1", 0x000000, spriteram_layout, 0x1000, 0x1000>>4 ) /* Sprites area */
|
||||
GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0x0000, 0x400>>4 ) /* Dynamically modified */
|
||||
GFXDECODE_ENTRY( nullptr, 0x000000, charlayout, 0x0000, 0x0400>>4 ) /* Dynamically modified */
|
||||
GFXDECODE_ENTRY( "tilemap", 0x000000, gfx_16x16x4_packed_lsb, 0x0000, 0x2000>>4 ) /* Tiles area */
|
||||
GFXDECODE_ENTRY( "sprites", 0x000000, gfx_16x16x4_packed_lsb, 0x1000, 0x1000>>4 ) /* Sprites area */
|
||||
GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0x0000, 0x400>>4 ) /* Dynamically modified */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
INTERRUPT_GEN_MEMBER(_2mindril_state::drill_vblank_irq)
|
||||
INTERRUPT_GEN_MEMBER(_2mindril_state::vblank_irq)
|
||||
{
|
||||
device.execute().set_input_line(4, ASSERT_LINE);
|
||||
}
|
||||
@ -344,14 +312,14 @@ WRITE_LINE_MEMBER(_2mindril_state::irqhandler)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_START_MEMBER(_2mindril_state,drill)
|
||||
void _2mindril_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_defender_sensor));
|
||||
save_item(NAME(m_shutter_sensor));
|
||||
save_item(NAME(m_irq_reg));
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(_2mindril_state,drill)
|
||||
void _2mindril_state::machine_reset()
|
||||
{
|
||||
m_defender_sensor = 0;
|
||||
m_shutter_sensor = 0;
|
||||
@ -362,7 +330,7 @@ void _2mindril_state::drill(machine_config &config)
|
||||
{
|
||||
M68000(config, m_maincpu, 16000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &_2mindril_state::drill_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(_2mindril_state::drill_vblank_irq));
|
||||
m_maincpu->set_vblank_int("screen", FUNC(_2mindril_state::vblank_irq));
|
||||
//MCFG_DEVICE_PERIODIC_INT_DRIVER(_2mindril_state, drill_device_irq, 60)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_2mindril);
|
||||
|
||||
@ -373,16 +341,13 @@ void _2mindril_state::drill(machine_config &config)
|
||||
tc0510nio.write_4_callback().set(FUNC(_2mindril_state::coins_w));
|
||||
tc0510nio.read_7_callback().set_ioport("COINS");
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(_2mindril_state,drill)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(_2mindril_state,drill)
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* inaccurate, same as Taito F3? (needs screen raw params anyway) */
|
||||
m_screen->set_size(40*8+48*2, 32*8);
|
||||
m_screen->set_visarea(46, 40*8-1 + 46, 24, 24+224-1);
|
||||
m_screen->set_screen_update(FUNC(_2mindril_state::screen_update_f3));
|
||||
m_screen->screen_vblank().set(FUNC(_2mindril_state::screen_vblank_f3));
|
||||
m_screen->set_screen_update(FUNC(_2mindril_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(_2mindril_state::screen_vblank));
|
||||
|
||||
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x2000);
|
||||
|
||||
@ -400,85 +365,27 @@ void _2mindril_state::drill(machine_config &config)
|
||||
|
||||
ROM_START( 2mindril )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "d58-38.ic11", 0x00000, 0x40000, CRC(c58e8e4f) SHA1(648db679c3bfb5de1cd6c1b1217773a2fe56f11b) )
|
||||
ROM_LOAD16_BYTE( "d58-38.ic11", 0x00000, 0x40000, CRC(c58e8e4f) SHA1(648db679c3bfb5de1cd6c1b1217773a2fe56f11b) ) // Ver 2.93A 1994/02/16 09:45:00
|
||||
ROM_LOAD16_BYTE( "d58-37.ic9", 0x00001, 0x40000, CRC(19e5cc3c) SHA1(04ac0eef893c579fe90d91d7fd55c5741a2b7460) )
|
||||
|
||||
ROM_REGION( 0x200000, "ymsnd", 0 ) /* Samples */
|
||||
ROM_LOAD( "d58-11.ic31", 0x000000, 0x200000, CRC(dc26d58d) SHA1(cffb18667da18f5367b02af85a2f7674dd61ae97) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", ROMREGION_ERASE00 )
|
||||
ROM_REGION( 0x400000, "sprites", ROMREGION_ERASE00 )
|
||||
ROM_REGION( 0x200000, "sprites_hi", ROMREGION_ERASE00 )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx2", 0 )
|
||||
ROM_LOAD16_BYTE( "d58-09.ic28", 0x000001, 0x200000, CRC(d8f6a86a) SHA1(d6b2ec309e21064574ee63e025ae4716b1982a98) )
|
||||
ROM_LOAD16_BYTE( "d58-08.ic27", 0x000000, 0x200000, CRC(9f5a3f52) SHA1(7b696bd823819965b974c853cebc1660750db61e) )
|
||||
ROM_LOAD( "d58-10.ic29", 0x400000, 0x200000, CRC(74c87e08) SHA1(f39b3a64f8338ccf5ca6eb76cee92a10fe0aad8f) )
|
||||
ROM_RELOAD( 0x600000, 0x200000 )
|
||||
ROM_REGION( 0x400000, "tilemap", 0 )
|
||||
ROM_LOAD32_WORD( "d58-08.ic27", 0x000000, 0x200000, CRC(9f5a3f52) SHA1(7b696bd823819965b974c853cebc1660750db61e) )
|
||||
ROM_LOAD32_WORD( "d58-09.ic28", 0x000002, 0x200000, CRC(d8f6a86a) SHA1(d6b2ec309e21064574ee63e025ae4716b1982a98) )
|
||||
|
||||
ROM_REGION( 0x200000, "tilemap_hi", 0 )
|
||||
ROM_LOAD ( "d58-10.ic29", 0x000000, 0x200000, CRC(74c87e08) SHA1(f39b3a64f8338ccf5ca6eb76cee92a10fe0aad8f) )
|
||||
ROM_END
|
||||
|
||||
void _2mindril_state::tile_decode()
|
||||
{
|
||||
uint8_t lsb,msb;
|
||||
uint32_t offset,i;
|
||||
uint8_t *gfx = memregion("gfx2")->base();
|
||||
int size=memregion("gfx2")->bytes();
|
||||
int data;
|
||||
|
||||
/* Setup ROM formats:
|
||||
|
||||
Some games will only use 4 or 5 bpp sprites, and some only use 4 bpp tiles,
|
||||
I don't believe this is software or prom controlled but simply the unused data lines
|
||||
are tied low on the game board if unused. This is backed up by the fact the palette
|
||||
indices are always related to 4 bpp data, even in 6 bpp games.
|
||||
|
||||
Most (all?) games with 5bpp tiles have the sixth bit set. Also, in Arabian Magic
|
||||
sprites 1200-120f contain 6bpp data which is probably bogus.
|
||||
video_start clears the fifth and sixth bit of the decoded graphics according
|
||||
to the bit depth specified in f3_config_table.
|
||||
|
||||
*/
|
||||
|
||||
offset = size/2;
|
||||
for (i = size/2+size/4; i<size; i+=2)
|
||||
{
|
||||
/* Expand 2bits into 4bits format */
|
||||
lsb = gfx[i+1];
|
||||
msb = gfx[i];
|
||||
|
||||
gfx[offset+0]=((msb&0x02)<<3) | ((msb&0x01)>>0) | ((lsb&0x02)<<4) | ((lsb&0x01)<<1);
|
||||
gfx[offset+2]=((msb&0x08)<<1) | ((msb&0x04)>>2) | ((lsb&0x08)<<2) | ((lsb&0x04)>>1);
|
||||
gfx[offset+1]=((msb&0x20)>>1) | ((msb&0x10)>>4) | ((lsb&0x20)<<0) | ((lsb&0x10)>>3);
|
||||
gfx[offset+3]=((msb&0x80)>>3) | ((msb&0x40)>>6) | ((lsb&0x80)>>2) | ((lsb&0x40)>>5);
|
||||
|
||||
offset+=4;
|
||||
}
|
||||
|
||||
gfx = memregion("gfx1")->base();
|
||||
size=memregion("gfx1")->bytes();
|
||||
|
||||
offset = size/2;
|
||||
for (i = size/2+size/4; i<size; i++)
|
||||
{
|
||||
int d1,d2,d3,d4;
|
||||
|
||||
/* Expand 2bits into 4bits format */
|
||||
data = gfx[i];
|
||||
d1 = (data>>0) & 3;
|
||||
d2 = (data>>2) & 3;
|
||||
d3 = (data>>4) & 3;
|
||||
d4 = (data>>6) & 3;
|
||||
|
||||
gfx[offset] = (d1<<2) | (d2<<6);
|
||||
offset++;
|
||||
|
||||
gfx[offset] = (d3<<2) | (d4<<6);
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
|
||||
void _2mindril_state::init_drill()
|
||||
{
|
||||
m_f3_game = TMDRILL;
|
||||
m_game = TMDRILL;
|
||||
tile_decode();
|
||||
}
|
||||
|
||||
GAME( 1993, 2mindril, 0, drill, drill, _2mindril_state, init_drill, ROT0, "Taito", "Two Minute Drill", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_MECHANICAL)
|
||||
GAME( 1993, 2mindril, 0, drill, drill, _2mindril_state, init_drill, ROT0, "Taito America Corporation", "Two Minute Drill (Ver 2.93A 1994/02/16)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_MECHANICAL)
|
||||
|
@ -85,43 +85,59 @@ Coin B is not used
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
READ16_MEMBER(ashnojoe_state::fake_4a00a_r)
|
||||
u16 ashnojoe_state::fake_4a00a_r()
|
||||
{
|
||||
/* If it returns 1 there's no sound. Is it used to sync the game and sound?
|
||||
or just a debug enable/disable register? */
|
||||
return 0;
|
||||
}
|
||||
|
||||
template<unsigned Which>
|
||||
void ashnojoe_state::tileram_8x8_w(offs_t offset, u16 data)
|
||||
{
|
||||
m_tileram[Which][offset] = data;
|
||||
m_tilemap[Which]->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
template<unsigned Which>
|
||||
void ashnojoe_state::tileram_16x16_w(offs_t offset, u16 data)
|
||||
{
|
||||
const int buffer = (m_tilemap_reg[0] & 0x02);
|
||||
m_tileram[Which][offset] = data;
|
||||
if (((Which == 5 && !buffer) || (Which == 6 && buffer)) || (Which < 5))
|
||||
m_tilemap[(Which < 5) ? Which : 5]->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
void ashnojoe_state::ashnojoe_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x01ffff).rom();
|
||||
map(0x040000, 0x041fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram3_w)).share("tileram_3");
|
||||
map(0x042000, 0x043fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram4_w)).share("tileram_4");
|
||||
map(0x044000, 0x044fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram5_w)).share("tileram_5");
|
||||
map(0x045000, 0x045fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram2_w)).share("tileram_2");
|
||||
map(0x046000, 0x046fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram6_w)).share("tileram_6");
|
||||
map(0x047000, 0x047fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram7_w)).share("tileram_7");
|
||||
map(0x048000, 0x048fff).ram().w(FUNC(ashnojoe_state::ashnojoe_tileram_w)).share("tileram");
|
||||
map(0x040000, 0x041fff).ram().w(FUNC(ashnojoe_state::tileram_8x8_w<2>)).share("tileram_3");
|
||||
map(0x042000, 0x043fff).ram().w(FUNC(ashnojoe_state::tileram_8x8_w<3>)).share("tileram_4");
|
||||
map(0x044000, 0x044fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<4>)).share("tileram_5");
|
||||
map(0x045000, 0x045fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<1>)).share("tileram_2");
|
||||
map(0x046000, 0x046fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<5>)).share("tileram_6");
|
||||
map(0x047000, 0x047fff).ram().w(FUNC(ashnojoe_state::tileram_16x16_w<6>)).share("tileram_7");
|
||||
map(0x048000, 0x048fff).ram().w(FUNC(ashnojoe_state::tileram_8x8_w<0>)).share("tileram_1");
|
||||
map(0x049000, 0x049fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
|
||||
map(0x04a000, 0x04a001).portr("P1");
|
||||
map(0x04a002, 0x04a003).portr("P2");
|
||||
map(0x04a004, 0x04a005).portr("DSW");
|
||||
map(0x04a006, 0x04a007).writeonly().share("tilemap_reg");
|
||||
map(0x04a006, 0x04a007).w(FUNC(ashnojoe_state::tilemap_regs_w)).share("tilemap_reg");
|
||||
map(0x04a009, 0x04a009).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
map(0x04a00a, 0x04a00b).r(FUNC(ashnojoe_state::fake_4a00a_r)); // ??
|
||||
map(0x04a010, 0x04a019).w(FUNC(ashnojoe_state::joe_tilemaps_xscroll_w));
|
||||
map(0x04a020, 0x04a029).w(FUNC(ashnojoe_state::joe_tilemaps_yscroll_w));
|
||||
map(0x04a010, 0x04a019).w(FUNC(ashnojoe_state::tilemaps_xscroll_w));
|
||||
map(0x04a020, 0x04a029).w(FUNC(ashnojoe_state::tilemaps_yscroll_w));
|
||||
map(0x04c000, 0x04ffff).ram();
|
||||
map(0x080000, 0x0bffff).rom();
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(ashnojoe_state::adpcm_w)
|
||||
void ashnojoe_state::adpcm_w(u8 data)
|
||||
{
|
||||
m_adpcm_byte = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ashnojoe_state::sound_latch_status_r)
|
||||
u8 ashnojoe_state::sound_latch_status_r()
|
||||
{
|
||||
return m_soundlatch->pending_r();
|
||||
}
|
||||
@ -130,7 +146,7 @@ void ashnojoe_state::sound_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x5fff).rom();
|
||||
map(0x6000, 0x7fff).ram();
|
||||
map(0x8000, 0xffff).bankr("bank4");
|
||||
map(0x8000, 0xffff).bankr("audiobank");
|
||||
}
|
||||
|
||||
void ashnojoe_state::sound_portmap(address_map &map)
|
||||
@ -231,39 +247,15 @@ static INPUT_PORTS_START( ashnojoe )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const gfx_layout tiles8x8_layout =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 0, 4, 8, 12, 16, 20, 24, 28 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8
|
||||
};
|
||||
|
||||
static const gfx_layout tiles16x16_layout =
|
||||
{
|
||||
16,16,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 0, 4, 8, 12, 16, 20, 24, 28,
|
||||
32,36,40, 44, 48, 52, 56, 60 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
|
||||
8*64, 9*64,10*64,11*64,12*64,13*64,14*64,15*64 },
|
||||
16*64
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_ashnojoe )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx3", 0, tiles8x8_layout, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx4", 0, tiles16x16_layout, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx5", 0, tiles16x16_layout, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_packed_msb, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_packed_msb, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx3", 0, gfx_8x8x4_packed_msb, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx4", 0, gfx_16x16x4_packed_msb, 0, 0x100 )
|
||||
GFXDECODE_ENTRY( "gfx5", 0, gfx_16x16x4_packed_msb, 0, 0x100 )
|
||||
GFXDECODE_END
|
||||
|
||||
WRITE8_MEMBER(ashnojoe_state::ym2203_write_a)
|
||||
void ashnojoe_state::ym2203_write_a(u8 data)
|
||||
{
|
||||
/* This gets called at 8910 startup with 0xff before the 5205 exists, causing a crash */
|
||||
if (data == 0xff)
|
||||
@ -272,9 +264,9 @@ WRITE8_MEMBER(ashnojoe_state::ym2203_write_a)
|
||||
m_msm->reset_w(!(data & 0x01));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ashnojoe_state::ym2203_write_b)
|
||||
void ashnojoe_state::ym2203_write_b(u8 data)
|
||||
{
|
||||
membank("bank4")->set_entry(data & 0x0f);
|
||||
m_audiobank->set_entry(data & 0x0f);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(ashnojoe_state::ashnojoe_vclk_cb)
|
||||
@ -322,7 +314,7 @@ void ashnojoe_state::ashnojoe(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(512, 512);
|
||||
screen.set_visarea(14*8, 50*8-1, 3*8, 29*8-1);
|
||||
screen.set_screen_update(FUNC(ashnojoe_state::screen_update_ashnojoe));
|
||||
screen.set_screen_update(FUNC(ashnojoe_state::screen_update));
|
||||
screen.set_palette("palette");
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, "palette", gfx_ashnojoe);
|
||||
@ -351,8 +343,9 @@ ROM_START( scessjoe )
|
||||
ROM_LOAD16_BYTE( "6.4s", 0x00001, 0x10000, CRC(eda7a537) SHA1(3bb19fbdfb6c8af4e2078958fa445ac1f4434d0d) )
|
||||
ROM_LOAD16_WORD_SWAP( "sj201-nw.6m", 0x80000, 0x40000, CRC(5a64ca42) SHA1(660b8bca21ef3c2230adce7cb7e7d1f018714f23) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 32k for Z80 code */
|
||||
ROM_LOAD( "9.8q", 0x0000, 0x8000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) )
|
||||
ROM_REGION( 0x90000, "audiocpu", 0 ) /* 32k for Z80 code */
|
||||
ROM_LOAD( "9.8q", 0x00000, 0x08000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) )
|
||||
ROM_LOAD( "sj401-nw.10r", 0x10000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) )
|
||||
|
||||
ROM_REGION( 0x20000, "gfx1", 0 )
|
||||
ROM_LOAD( "8.5e", 0x00000, 0x10000, CRC(9bcb160e) SHA1(1677048e5ce26562ff7ba36fcc2d0ed5a652b91e) )
|
||||
@ -377,9 +370,6 @@ ROM_START( scessjoe )
|
||||
ROM_LOAD16_WORD_SWAP( "sj407-nw.7f", 0x180000, 0x80000, CRC(5c66ff06) SHA1(9923ba00679e1b47b5da63c1a13e0f8dd4c78bb5) )
|
||||
ROM_LOAD16_WORD_SWAP( "sj408-nw.7g", 0x200000, 0x80000, CRC(6a3b1ea1) SHA1(e39a6e52d930f291bf237cf9db3d4b3d2fad53e0) )
|
||||
ROM_LOAD16_WORD_SWAP( "sj409-nw.7j", 0x280000, 0x80000, CRC(d8764213) SHA1(89eadefb956863216c8e3d0380394aba35e8c856) )
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 )
|
||||
ROM_LOAD( "sj401-nw.10r", 0x00000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ashnojoe )
|
||||
@ -388,8 +378,9 @@ ROM_START( ashnojoe )
|
||||
ROM_LOAD16_BYTE( "6.bin", 0x00001, 0x10000, CRC(c0a16338) SHA1(fb127b9d38f2c9807b6e23ff71935fc8a22a2e8f) )
|
||||
ROM_LOAD16_WORD_SWAP( "sj201-nw.6m", 0x80000, 0x40000, CRC(5a64ca42) SHA1(660b8bca21ef3c2230adce7cb7e7d1f018714f23) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 32k for Z80 code */
|
||||
ROM_LOAD( "9.8q", 0x0000, 0x8000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) )
|
||||
ROM_REGION( 0x90000, "audiocpu", 0 ) /* 32k for Z80 code */
|
||||
ROM_LOAD( "9.8q", 0x00000, 0x08000, CRC(8767e212) SHA1(13bf927febedff9d7d164fbf0da7fb3a588c2a94) )
|
||||
ROM_LOAD( "sj401-nw.10r", 0x10000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) )
|
||||
|
||||
ROM_REGION( 0x20000, "gfx1", 0 )
|
||||
ROM_LOAD( "8.5e", 0x00000, 0x10000, CRC(9bcb160e) SHA1(1677048e5ce26562ff7ba36fcc2d0ed5a652b91e) )
|
||||
@ -414,17 +405,13 @@ ROM_START( ashnojoe )
|
||||
ROM_LOAD16_WORD_SWAP( "sj407-nw.7f", 0x180000, 0x80000, CRC(5c66ff06) SHA1(9923ba00679e1b47b5da63c1a13e0f8dd4c78bb5) )
|
||||
ROM_LOAD16_WORD_SWAP( "sj408-nw.7g", 0x200000, 0x80000, CRC(6a3b1ea1) SHA1(e39a6e52d930f291bf237cf9db3d4b3d2fad53e0) )
|
||||
ROM_LOAD16_WORD_SWAP( "sj409-nw.7j", 0x280000, 0x80000, CRC(d8764213) SHA1(89eadefb956863216c8e3d0380394aba35e8c856) )
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 )
|
||||
ROM_LOAD( "sj401-nw.10r", 0x00000, 0x80000, CRC(25dfab59) SHA1(7d50159204ba05323a2442778f35192e66117dda) )
|
||||
ROM_END
|
||||
|
||||
void ashnojoe_state::init_ashnojoe()
|
||||
{
|
||||
uint8_t *ROM = memregion("adpcm")->base();
|
||||
membank("bank4")->configure_entries(0, 16, &ROM[0x00000], 0x8000);
|
||||
|
||||
membank("bank4")->set_entry(0);
|
||||
u8 *ROM = memregion("audiocpu")->base();
|
||||
m_audiobank->configure_entries(0, 16, &ROM[0x10000], 0x8000);
|
||||
m_audiobank->set_entry(0);
|
||||
}
|
||||
|
||||
GAME( 1990, scessjoe, 0, ashnojoe, ashnojoe, ashnojoe_state, init_ashnojoe, ROT0, "Taito Corporation / Wave", "Success Joe (World)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -259,7 +259,7 @@ INTERRUPT_GEN_MEMBER(asuka_state::cadash_interrupt)
|
||||
SOUND
|
||||
************************************************/
|
||||
|
||||
WRITE8_MEMBER(asuka_state::sound_bankswitch_w)
|
||||
void asuka_state::sound_bankswitch_w(u8 data)
|
||||
{
|
||||
m_audiobank->set_entry(data & 0x03);
|
||||
}
|
||||
@ -280,35 +280,35 @@ WRITE_LINE_MEMBER(asuka_state::asuka_msm5205_vck)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(asuka_state::asuka_msm5205_address_w)
|
||||
void asuka_state::msm5205_address_w(u8 data)
|
||||
{
|
||||
m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(asuka_state::asuka_msm5205_start_w)
|
||||
void asuka_state::msm5205_start_w(u8 data)
|
||||
{
|
||||
m_msm->reset_w(0);
|
||||
m_adpcm_ff = false;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(asuka_state::asuka_msm5205_stop_w)
|
||||
void asuka_state::msm5205_stop_w(u8 data)
|
||||
{
|
||||
m_msm->reset_w(1);
|
||||
m_adpcm_pos &= 0xff00;
|
||||
}
|
||||
|
||||
READ16_MEMBER(asuka_state::cadash_share_r)
|
||||
u16 asuka_state::cadash_share_r(offs_t offset)
|
||||
{
|
||||
return m_cadash_shared_ram[offset];
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(asuka_state::cadash_share_w)
|
||||
void asuka_state::cadash_share_w(offs_t offset, u16 data)
|
||||
{
|
||||
m_cadash_shared_ram[offset] = data & 0xff;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(asuka_state::coin_control_w)
|
||||
void asuka_state::coin_control_w(u8 data)
|
||||
{
|
||||
machine().bookkeeping().coin_lockout_w(0, ~data & 0x01);
|
||||
machine().bookkeeping().coin_lockout_w(1, ~data & 0x02);
|
||||
@ -409,20 +409,6 @@ void asuka_state::bonzeadv_z80_map(address_map &map)
|
||||
map(0xf200, 0xf200).w(FUNC(asuka_state::sound_bankswitch_w));
|
||||
}
|
||||
|
||||
void asuka_state::z80_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom();
|
||||
map(0x4000, 0x7fff).bankr("audiobank");
|
||||
map(0x8000, 0x8fff).ram();
|
||||
map(0x9000, 0x9001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
|
||||
// map(0x9002, 0x9100).nopr();
|
||||
map(0xa000, 0xa000).w("ciu", FUNC(pc060ha_device::slave_port_w));
|
||||
map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w));
|
||||
map(0xb000, 0xb000).w(FUNC(asuka_state::asuka_msm5205_address_w));
|
||||
map(0xc000, 0xc000).w(FUNC(asuka_state::asuka_msm5205_start_w));
|
||||
map(0xd000, 0xd000).w(FUNC(asuka_state::asuka_msm5205_stop_w));
|
||||
}
|
||||
|
||||
/* no MSM5205 */
|
||||
void asuka_state::cadash_z80_map(address_map &map)
|
||||
{
|
||||
@ -434,6 +420,15 @@ void asuka_state::cadash_z80_map(address_map &map)
|
||||
map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w));
|
||||
}
|
||||
|
||||
void asuka_state::z80_map(address_map &map)
|
||||
{
|
||||
cadash_z80_map(map);
|
||||
// map(0x9002, 0x9100).nopr();
|
||||
map(0xb000, 0xb000).w(FUNC(asuka_state::msm5205_address_w));
|
||||
map(0xc000, 0xc000).w(FUNC(asuka_state::msm5205_start_w));
|
||||
map(0xd000, 0xd000).w(FUNC(asuka_state::msm5205_stop_w));
|
||||
}
|
||||
|
||||
/*
|
||||
Cadash communication CPU is a z180.
|
||||
[0x8000]: at pc=31, z180 checks a byte ... if it's equal to 0x4d ("M") then the board is in master mode, otherwise it's in slave mode.
|
||||
@ -764,33 +759,9 @@ INPUT_PORTS_END
|
||||
GFX DECODING
|
||||
**************************************************************/
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8
|
||||
};
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
16,16,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4,
|
||||
10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
|
||||
8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_asuka )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* OBJ */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* SCR */
|
||||
GFXDECODE_ENTRY( "pc090oj", 0, gfx_16x16x4_packed_msb, 0, 256 ) /* OBJ */
|
||||
GFXDECODE_ENTRY( "tc0100scn", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* SCR */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -805,16 +776,12 @@ void asuka_state::machine_start()
|
||||
|
||||
save_item(NAME(m_adpcm_pos));
|
||||
save_item(NAME(m_adpcm_ff));
|
||||
save_item(NAME(m_video_ctrl));
|
||||
save_item(NAME(m_video_mask));
|
||||
}
|
||||
|
||||
void asuka_state::machine_reset()
|
||||
{
|
||||
m_adpcm_pos = 0;
|
||||
m_adpcm_ff = false;
|
||||
m_video_ctrl = 0;
|
||||
m_video_mask = 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(asuka_state::screen_vblank_asuka)
|
||||
@ -838,7 +805,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(asuka_state::cchip_irq_clear_cb)
|
||||
m_cchip->ext_interrupt(CLEAR_LINE);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(asuka_state::counters_w)
|
||||
void asuka_state::counters_w(u8 data)
|
||||
{
|
||||
machine().bookkeeping().coin_lockout_w(1, data & 0x80);
|
||||
machine().bookkeeping().coin_lockout_w(0, data & 0x40);
|
||||
@ -1181,11 +1148,11 @@ ROM_START( bonzeadv )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */
|
||||
@ -1206,11 +1173,11 @@ ROM_START( bonzeadvo )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */
|
||||
@ -1231,11 +1198,11 @@ ROM_START( bonzeadvu )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */
|
||||
@ -1256,11 +1223,11 @@ ROM_START( jigkmgri )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* Tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* Tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) /* banked */
|
||||
@ -1284,17 +1251,17 @@ ROM_START( bonzeadvp ) /* Labels consists of hand written checksum values of the
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_b41-05.43", 0x0000, 0x2000, CRC(75c52553) SHA1(87bbaefab90e7d43f63556fbae3e937baf9d397b) ) /* is the C-Chip the same as the final? */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD16_BYTE( "abbe.ic9", 0x00000, 0x20000, CRC(50e6581c) SHA1(230724d65c9b1ea5d72117dca077464dd599ad68) ) // first 2 == first half b41-03.1 but split
|
||||
ROM_LOAD16_BYTE( "0ac8.ic15", 0x00001, 0x20000, CRC(29002fc4) SHA1(5ddbefc0d173865802362990e99a3b542c096412) ) // ^
|
||||
ROM_LOAD16_BYTE( "5ebf.ic5", 0x40000, 0x20000, CRC(dac6f11f) SHA1(8c79d05ca539ebfbec35c7426c207937745c1949) ) // these 2 have differences
|
||||
ROM_LOAD16_BYTE( "77c8.ic12", 0x40001, 0x20000, CRC(d8aaae12) SHA1(240dda7d7e74ffc6a084c39ca19903fd35ad0157) ) // ^
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "abbe.ic9", 0x00001, 0x20000, CRC(50e6581c) SHA1(230724d65c9b1ea5d72117dca077464dd599ad68) ) // first 2 == first half b41-03.1 but split
|
||||
ROM_LOAD16_BYTE( "0ac8.ic15", 0x00000, 0x20000, CRC(29002fc4) SHA1(5ddbefc0d173865802362990e99a3b542c096412) ) // ^
|
||||
ROM_LOAD16_BYTE( "5ebf.ic5", 0x40001, 0x20000, CRC(dac6f11f) SHA1(8c79d05ca539ebfbec35c7426c207937745c1949) ) // these 2 have differences
|
||||
ROM_LOAD16_BYTE( "77c8.ic12", 0x40000, 0x20000, CRC(d8aaae12) SHA1(240dda7d7e74ffc6a084c39ca19903fd35ad0157) ) // ^
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD16_BYTE( "9369.ic19", 0x00000, 0x20000, CRC(a9dd7f90) SHA1(c3acf2dcd9325b9a74967d4b9cfff59bdb4045c6) ) // these 4 == b41-02.7 but split
|
||||
ROM_LOAD16_BYTE( "e3ed.ic25", 0x00001, 0x20000, CRC(7cc66ee2) SHA1(145d3bd0e3ef765874fc679e709391d516e74ef0) ) // ^
|
||||
ROM_LOAD16_BYTE( "03eb.ic16", 0x40000, 0x20000, CRC(39f32715) SHA1(5c555fde1ae0bb1e796e0122157bc694392122f3) ) // ^
|
||||
ROM_LOAD16_BYTE( "b8e1.ic22", 0x40001, 0x20000, CRC(15b836cf) SHA1(0f7e5cb6a57c336125909e28af664fe7387947d4) ) // ^
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "9369.ic19", 0x00001, 0x20000, CRC(a9dd7f90) SHA1(c3acf2dcd9325b9a74967d4b9cfff59bdb4045c6) ) // these 4 == b41-02.7 but split
|
||||
ROM_LOAD16_BYTE( "e3ed.ic25", 0x00000, 0x20000, CRC(7cc66ee2) SHA1(145d3bd0e3ef765874fc679e709391d516e74ef0) ) // ^
|
||||
ROM_LOAD16_BYTE( "03eb.ic16", 0x40001, 0x20000, CRC(39f32715) SHA1(5c555fde1ae0bb1e796e0122157bc694392122f3) ) // ^
|
||||
ROM_LOAD16_BYTE( "b8e1.ic22", 0x40000, 0x20000, CRC(15b836cf) SHA1(0f7e5cb6a57c336125909e28af664fe7387947d4) ) // ^
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b41-13.20", 0x00000, 0x10000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) // missing from dump /* banked */
|
||||
@ -1313,18 +1280,18 @@ ROM_START( asuka ) /* Taito PCB: ASKA&ASKA - K1100388A / J1100169A */
|
||||
/* 0x040000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "b68-03.ic30", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD ( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE( "b68-07.ic5", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
|
||||
ROM_LOAD16_BYTE( "b68-06.ic4", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE ( "b68-07.ic5", 0x80001, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
|
||||
ROM_LOAD16_BYTE ( "b68-06.ic4", 0x80000, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b68-11.ic27", 0x00000, 0x10000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
|
||||
|
||||
ROM_REGION( 0x144, "pals", 0 )
|
||||
@ -1339,18 +1306,18 @@ ROM_START( asukaj ) /* Known to exist but not dumped: revision 1 with B68 08-1 &
|
||||
/* 0x040000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "b68-03.ic30", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD ( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE( "b68-07.ic5", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
|
||||
ROM_LOAD16_BYTE( "b68-06.ic4", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE ( "b68-07.ic5", 0x80001, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
|
||||
ROM_LOAD16_BYTE ( "b68-06.ic4", 0x80000, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b68-11.ic27", 0x00000, 0x10000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
|
||||
|
||||
ROM_REGION( 0x144, "pals", 0 )
|
||||
@ -1365,18 +1332,18 @@ ROM_START( mofflott )
|
||||
/* 0x40000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "c17-03.bin", 0x80000, 0x80000, CRC(27047fc3) SHA1(1f88a7a42a94bac0e164a69896ae168ab821fbb3) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c17-01.bin", 0x00000, 0x80000, CRC(e9466d42) SHA1(93d533a9a992e3ff537e914577ede41729235826) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c17-01.bin", 0x00000, 0x80000, CRC(e9466d42) SHA1(93d533a9a992e3ff537e914577ede41729235826) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD ( "c17-02.bin", 0x00000, 0x80000, CRC(8860a8db) SHA1(372adea8835a9524ece30ab71181ef9d05b120e9) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE( "c17-05.bin", 0x80000, 0x10000, CRC(57ac4741) SHA1(3188ff0866324c68fba8e9745a0cb186784cb53d) )
|
||||
ROM_LOAD16_BYTE( "c17-04.bin", 0x80001, 0x10000, CRC(f4250410) SHA1(1f5f6baca4aa695ce2ae5c65adcb460da872a239) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c17-02.bin", 0x00000, 0x80000, CRC(8860a8db) SHA1(372adea8835a9524ece30ab71181ef9d05b120e9) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE ( "c17-05.bin", 0x80001, 0x10000, CRC(57ac4741) SHA1(3188ff0866324c68fba8e9745a0cb186784cb53d) )
|
||||
ROM_LOAD16_BYTE ( "c17-04.bin", 0x80000, 0x10000, CRC(f4250410) SHA1(1f5f6baca4aa695ce2ae5c65adcb460da872a239) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c17-07.bin", 0x00000, 0x10000, CRC(cdb7bc2c) SHA1(5113055c954a39918436db75cc06b53c29c60728) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "c17-06.bin", 0x00000, 0x10000, CRC(5c332125) SHA1(408f42df18b38347c8a4e177a9484162a66877e1) )
|
||||
ROM_END
|
||||
|
||||
@ -1387,11 +1354,11 @@ ROM_START( cadash )
|
||||
ROM_LOAD16_BYTE( "c21_13.ic10", 0x40000, 0x20000, CRC(6b9e0ee9) SHA1(06314b9c0be19314e6b6ecb5274a63eb36b642f5) )
|
||||
ROM_LOAD16_BYTE( "c21_17.ic14", 0x40001, 0x20000, CRC(bf9a578a) SHA1(42bde46081db6be2f61eaf171438ecc9264d18be) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1417,11 +1384,11 @@ ROM_START( cadashp )
|
||||
ROM_LOAD( "com.ic57", 0x00000, 0x08000, CRC(bae1a92f) SHA1(dbe10a02a294dfa7d6052a692c3a49aad85d6ffd) )
|
||||
|
||||
// all other ROMs are under some kind of epoxy, assuming to be the same..
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1440,11 +1407,11 @@ ROM_START( cadashj )
|
||||
ROM_LOAD16_BYTE( "c21_03-2.ic10", 0x40000, 0x20000, CRC(30afc320) SHA1(d4c1d1ef30be633244c6b71b24491d6eb3562cef) )
|
||||
ROM_LOAD16_BYTE( "c21_05-2.ic14", 0x40001, 0x20000, CRC(2bc93209) SHA1(3352659ea9364ca9462343f03e26dd10087d6834) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1466,11 +1433,11 @@ ROM_START( cadashj1 )
|
||||
ROM_LOAD16_BYTE( "c21_03-1.ic10", 0x40000, 0x20000, CRC(c54888ed) SHA1(8a58da25eb8986a1c6496290e82344840badef0a) )
|
||||
ROM_LOAD16_BYTE( "c21_05-1.ic14", 0x40001, 0x20000, CRC(834018d2) SHA1(0b1a29316f90a98478b47d7fa3f05c68e5ddd9b3) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1492,11 +1459,11 @@ ROM_START( cadashjo )
|
||||
ROM_LOAD16_BYTE( "c21_03.ic10", 0x40000, 0x20000, CRC(7e31c5a3) SHA1(a0abc5862d594800934a4792de4ec655f60c1f23) )
|
||||
ROM_LOAD16_BYTE( "c21_05.ic14", 0x40001, 0x20000, CRC(a4f4901d) SHA1(a3e8d9ad033e6fb1c8383669e6e59f2f79386e32) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1518,11 +1485,11 @@ ROM_START( cadashu )
|
||||
ROM_LOAD16_BYTE( "c21_13-2.ic10", 0x40000, 0x20000, CRC(92dcc3ae) SHA1(7d11c6d8b54468f0c56b4f58adc176e4d46a62eb) )
|
||||
ROM_LOAD16_BYTE( "c21_15-2.ic14", 0x40001, 0x20000, CRC(f915d26a) SHA1(cdc7e6a35077ebff937350aee1eee332352e9383) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1544,11 +1511,11 @@ ROM_START( cadashi )
|
||||
ROM_LOAD16_BYTE( "c21_26-1.ic10", 0x40000, 0x20000, CRC(c9cf6e30) SHA1(872c871cd60e0aa7149660277f67f90748d82743) )
|
||||
ROM_LOAD16_BYTE( "c21_28-1.ic14", 0x40001, 0x20000, CRC(641fc9dd) SHA1(1497e39f6b250de39ef2785aaca7e68a803612fa) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1570,11 +1537,11 @@ ROM_START( cadashf )
|
||||
ROM_LOAD16_BYTE( "c21_18.ic10", 0x40000, 0x20000, CRC(8a19e59b) SHA1(b42a0c8273ca6f202a5dc6e33965423da3b074d8) )
|
||||
ROM_LOAD16_BYTE( "c21_20.ic14", 0x40001, 0x20000, CRC(b96acfd9) SHA1(d05b55fd5bbf8fd0e5a7272d1951f27a4900371f) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1596,11 +1563,11 @@ ROM_START( cadashg )
|
||||
ROM_LOAD16_BYTE( "c21_22-1.ic10", 0x40000, 0x20000, CRC(daf58b2d) SHA1(7a64df848f46f27bb6f9757ce0cc81311c2f172f) )
|
||||
ROM_LOAD16_BYTE( "c21_24-1.ic14", 0x40001, 0x20000, CRC(2359b93e) SHA1(9a5ce34dd8667a987ab8b6e6246f0ad032af868f) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1622,11 +1589,11 @@ ROM_START( cadashs ) // no labels on the program ROMs
|
||||
ROM_LOAD16_BYTE( "ic10", 0x40000, 0x20000, CRC(57d659d9) SHA1(6bf0c7d514a65bd1a0d51fe1c6bb208419d016e6) )
|
||||
ROM_LOAD16_BYTE( "ic14", 0x40001, 0x20000, CRC(53c1b195) SHA1(5985304fa65a3f33a26fbd5dcccb153de6860841) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c21-08.38", 0x00000, 0x10000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) /* banked */
|
||||
@ -1648,16 +1615,16 @@ ROM_START( galmedes ) /* Taito PCB: K1100388A / J1100169A */
|
||||
/* 0x40000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "gm-30.ic30", 0x80000, 0x80000, CRC(4da2a407) SHA1(7bd0eb629dd7022a16e328612c786c544267f7bc) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "gm-scn.ic3", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "gm-scn.ic3", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "gm-obj.ic6", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "gm-obj.ic6", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "gm-snd.ic27", 0x00000, 0x10000, CRC(d6f56c21) SHA1(ff9743448ac8ce57a2f8c33a26145e7b92cbe3c3) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
/* Empty socket on Galmedes - but sound chips present */
|
||||
|
||||
ROM_REGION( 0x144, "pals", 0 )
|
||||
@ -1672,18 +1639,18 @@ ROM_START( earthjkr ) /* Taito PCB: K1100388A / J1100169A */
|
||||
/* 0x40000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "ej_30e.ic30", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD ( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */
|
||||
ROM_LOAD16_BYTE( "ej_1.ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
|
||||
ROM_LOAD16_BYTE( "ej_0.ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */
|
||||
ROM_LOAD16_BYTE ( "ej_1.ic5", 0x80001, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
|
||||
ROM_LOAD16_BYTE ( "ej_0.ic4", 0x80000, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "ej_2.ic27", 0x00000, 0x10000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
/* Empty socket on U.N. Defense Force: Earth Joker - but sound chips present */
|
||||
|
||||
ROM_REGION( 0x144, "pals", 0 )
|
||||
@ -1699,18 +1666,18 @@ ROM_START( earthjkra )
|
||||
/* 0x40000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "ejok_ic30", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD ( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */
|
||||
ROM_LOAD16_BYTE( "ejok_ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
|
||||
ROM_LOAD16_BYTE( "ejok_ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */
|
||||
ROM_LOAD16_BYTE ( "ejok_ic5", 0x80001, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
|
||||
ROM_LOAD16_BYTE ( "ejok_ic4", 0x80000, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "ejok_ic28", 0x00000, 0x10000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
/* Empty socket on U.N. Defense Force: Earth Joker - but sound chips present */
|
||||
|
||||
ROM_REGION( 0x144, "pals", 0 )
|
||||
@ -1730,18 +1697,18 @@ ROM_START( earthjkrp ) // was production PCB complete with mask ROM, could just
|
||||
/* 0x40000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "5.ic30", 0x80000, 0x80000, CRC(bf760b2d) SHA1(4aff36623e5a31ab86c77461fa93e40e77f08edd) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ej_chr-0.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) - mask ROM */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD ( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */
|
||||
ROM_LOAD16_BYTE( "1.ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
|
||||
ROM_LOAD16_BYTE( "0.ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "ej_obj-0.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) - mask ROM */
|
||||
ROM_LOAD16_BYTE ( "1.ic5", 0x80001, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
|
||||
ROM_LOAD16_BYTE ( "0.ic4", 0x80000, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "2.ic27", 0x00000, 0x10000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) /* banked */
|
||||
|
||||
ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
ROM_REGION( 0x10000, "msm", ROMREGION_ERASEFF ) /* ADPCM samples */
|
||||
/* Empty socket on U.N. Defense Force: Earth Joker - but sound chips present */
|
||||
|
||||
ROM_REGION( 0x144, "pals", 0 )
|
||||
@ -1756,11 +1723,11 @@ ROM_START( eto )
|
||||
/* 0x40000 - 0x7ffff is intentionally empty */
|
||||
ROM_LOAD16_WORD( "eto-2.ic30", 0x80000, 0x80000, CRC(12f46fb5) SHA1(04db8b6ccd0051668bd2930275efa0265c0cfd2b) ) /* Fix ROM */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "eto-4.ic3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "eto-4.ic3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "eto-3.ic6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "eto-3.ic6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "eto-5.ic27", 0x00000, 0x10000, CRC(b3689da0) SHA1(812d2e0a794403df9f0a5035784f14cd070ea080) ) /* banked */
|
||||
@ -1773,38 +1740,38 @@ void asuka_state::init_cadash()
|
||||
|
||||
void asuka_state::init_earthjkr()
|
||||
{
|
||||
uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
|
||||
u16 *rom = (u16 *)memregion("maincpu")->base();
|
||||
// 357c -> 317c, I think this is bitrot, see ROM loading for which ROM needs redumping, causes rowscroll to be broken on final stage (writes to ROM area instead)
|
||||
// code is correct in the 'prototype?' set
|
||||
rom[0x7aaa/2] = 0x317c;
|
||||
}
|
||||
|
||||
GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito America Corporation", "Bonze Adventure (US)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito America Corporation", "Bonze Adventure (US)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, asuka_state, empty_init, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1988, asuka, 0, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, asukaj, asuka, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, asuka, 0, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, asukaj, asuka, asuka, asuka, asuka_state, empty_init, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1989, mofflott, 0, mofflott, mofflott, asuka_state, empty_init, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1989, mofflott, 0, mofflott, mofflott, asuka_state, empty_init, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1989, cadash, 0, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashj, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashj1, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashjo, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashu, cadash, cadash, cadashu, asuka_state, init_cadash, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashi, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashf, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashg, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashp, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN)
|
||||
GAME( 1989, cadashs, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Spain, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadash, 0, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashj, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashj1, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashjo, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashu, cadash, cadash, cadashu, asuka_state, init_cadash, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashi, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashf, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashg, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
GAME( 1989, cadashp, cadash, cadash, cadashj, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN)
|
||||
GAME( 1989, cadashs, cadash, cadash, cadash, asuka_state, init_cadash, ROT0, "Taito Corporation Japan", "Cadash (Spain, version 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN )
|
||||
|
||||
GAME( 1992, galmedes, 0, asuka, galmedes, asuka_state, empty_init, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, galmedes, 0, asuka, galmedes, asuka_state, empty_init, ROT270, "Visco", "Galmedes (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1993, earthjkr, 0, asuka, earthjkr, asuka_state, init_earthjkr, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // sets 1 + 2 have ROMSTAR (US?) license and no region disclaimer if you change the dipswitch
|
||||
GAME( 1993, earthjkra, earthjkr, asuka, earthjkr, asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, earthjkrp, earthjkr, asuka, earthjkrp,asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, earthjkr, 0, asuka, earthjkr, asuka_state, init_earthjkr, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 1)", MACHINE_SUPPORTS_SAVE ) // sets 1 + 2 have ROMSTAR (US?) license and no region disclaimer if you change the dipswitch
|
||||
GAME( 1993, earthjkra, earthjkr, asuka, earthjkr, asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (US / Japan, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, earthjkrp, earthjkr, asuka, earthjkrp,asuka_state, empty_init, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1994, eto, 0, eto, eto, asuka_state, empty_init, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, eto, 0, eto, eto, asuka_state, empty_init, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -56,7 +56,7 @@ Cheap Squeak 1390,1391,0A17,0A40,0A44,0B42
|
||||
ToDo:
|
||||
- The Nuova Bell games don't boot.
|
||||
- The Bell games have major problems
|
||||
- Sound
|
||||
- Sound for the non-Bally games
|
||||
- Dips, Inputs, Solenoids vary per game
|
||||
- Bally: Add Strobe 5 (ST5) for extra inputs on later games
|
||||
- Bally: Add support for Solenoid Expanders on later games
|
||||
@ -105,6 +105,8 @@ public:
|
||||
void as3022(machine_config &config);
|
||||
void sounds_plus(machine_config &config);
|
||||
void cheap_squeak(machine_config &config);
|
||||
void squawk_n_talk(machine_config &config);
|
||||
void squawk_n_talk_ay(machine_config &config);
|
||||
|
||||
protected:
|
||||
typedef uint8_t solenoid_feature_data[20][4];
|
||||
@ -135,6 +137,8 @@ protected:
|
||||
, m_as3022(*this, "as3022")
|
||||
, m_sounds_plus(*this, "sounds_plus")
|
||||
, m_cheap_squeak(*this, "cheap_squeak")
|
||||
, m_squawk_n_talk(*this, "squawk_n_talk")
|
||||
, m_squawk_n_talk_ay(*this, "squawk_n_talk_ay")
|
||||
, m_sound_select_handler(*this)
|
||||
, m_sound_int_handler(*this)
|
||||
{ }
|
||||
@ -208,8 +212,10 @@ private:
|
||||
optional_device<bally_as3022_device> m_as3022;
|
||||
optional_device<bally_sounds_plus_device> m_sounds_plus;
|
||||
optional_device<bally_cheap_squeak_device> m_cheap_squeak;
|
||||
devcb_write8 m_sound_select_handler;
|
||||
devcb_write_line m_sound_int_handler;
|
||||
optional_device<bally_squawk_n_talk_device> m_squawk_n_talk;
|
||||
optional_device<bally_squawk_n_talk_ay_device> m_squawk_n_talk_ay;
|
||||
devcb_write8 m_sound_select_handler;
|
||||
devcb_write_line m_sound_int_handler;
|
||||
};
|
||||
|
||||
class playboy_state : public by35_state
|
||||
@ -1546,6 +1552,29 @@ void by35_state::cheap_squeak(machine_config &config)
|
||||
m_cheap_squeak->sound_ack_w_handler().set(FUNC(by35_state::sound_ack_w));
|
||||
}
|
||||
|
||||
void by35_state::squawk_n_talk(machine_config &config)
|
||||
{
|
||||
by35(config);
|
||||
|
||||
BALLY_SQUAWK_N_TALK(config, m_squawk_n_talk);
|
||||
SPEAKER(config, "mono").front_center();
|
||||
m_squawk_n_talk->add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
|
||||
m_sound_select_handler.bind().set(m_squawk_n_talk, FUNC(bally_squawk_n_talk_device::sound_select));
|
||||
m_sound_int_handler.bind().set(m_squawk_n_talk, FUNC(bally_squawk_n_talk_device::sound_int));
|
||||
}
|
||||
|
||||
void by35_state::squawk_n_talk_ay(machine_config &config)
|
||||
{
|
||||
by35(config);
|
||||
|
||||
BALLY_SQUAWK_N_TALK_AY(config, m_squawk_n_talk_ay);
|
||||
SPEAKER(config, "mono").front_center();
|
||||
m_squawk_n_talk_ay->add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
|
||||
m_sound_select_handler.bind().set(m_squawk_n_talk_ay, FUNC(bally_squawk_n_talk_ay_device::sound_select));
|
||||
m_sound_int_handler.bind().set(m_squawk_n_talk_ay, FUNC(bally_squawk_n_talk_ay_device::sound_int));
|
||||
}
|
||||
|
||||
/*--------------------------------
|
||||
/ Supersonic #1106
|
||||
@ -1869,9 +1898,9 @@ ROM_START(flashgdn)
|
||||
ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("834-20_2.532", 0xc000, 0x1000, CRC(2f8ced3e) SHA1(ecdeb07c31c22ec313b55774f4358a9923c5e9e7))
|
||||
ROM_LOAD("834-18_5.532", 0xf000, 0x1000, CRC(8799e80e) SHA1(f255b4e7964967c82cfc2de20ebe4b8d501e3cb0))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("834-20_2.532", 0x8000, 0x1000, CRC(2f8ced3e) SHA1(ecdeb07c31c22ec313b55774f4358a9923c5e9e7))
|
||||
ROM_LOAD("834-18_5.532", 0xb000, 0x1000, CRC(8799e80e) SHA1(f255b4e7964967c82cfc2de20ebe4b8d501e3cb0))
|
||||
ROM_END
|
||||
|
||||
ROM_START(flashgdnf)
|
||||
@ -1881,9 +1910,9 @@ ROM_START(flashgdnf)
|
||||
ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("834-35_2.532", 0xc000, 0x1000, CRC(dff3f711) SHA1(254a5670775ecb6c347f33af8ba7c350e4cfa550))
|
||||
ROM_LOAD("834-36_5.532", 0xf000, 0x1000, CRC(18691897) SHA1(3b445e0756c07d80f14c01af5a7f87744474ae15))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("834-35_2.532", 0x8000, 0x1000, CRC(dff3f711) SHA1(254a5670775ecb6c347f33af8ba7c350e4cfa550))
|
||||
ROM_LOAD("834-36_5.532", 0xb000, 0x1000, CRC(18691897) SHA1(3b445e0756c07d80f14c01af5a7f87744474ae15))
|
||||
ROM_END
|
||||
|
||||
ROM_START(flashgdnv)
|
||||
@ -1929,9 +1958,9 @@ ROM_START(fball_ii)
|
||||
ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("839-01_2.532", 0xc000, 0x1000, CRC(4aa473bd) SHA1(eaa12ded76f9999d33ce0fe6198df1708e007e12))
|
||||
ROM_LOAD("839-02_5.532", 0xf000, 0x1000, CRC(8bf904ff) SHA1(de78d08bddd546abac65c2f95f1d52797e716362))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("839-01_2.532", 0x8000, 0x1000, CRC(4aa473bd) SHA1(eaa12ded76f9999d33ce0fe6198df1708e007e12))
|
||||
ROM_LOAD("839-02_5.532", 0xb000, 0x1000, CRC(8bf904ff) SHA1(de78d08bddd546abac65c2f95f1d52797e716362))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -1944,11 +1973,11 @@ ROM_START(eballdlx)
|
||||
ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("838-08_3.532", 0xd000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc))
|
||||
ROM_LOAD("838-09_4.716", 0xe000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126))
|
||||
ROM_RELOAD(0xe800, 0x0800)
|
||||
ROM_LOAD("838-10_5.532", 0xf000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("838-08_3.532", 0x9000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc))
|
||||
ROM_LOAD("838-09_4.716", 0xa000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126))
|
||||
ROM_RELOAD(0xa800, 0x0800)
|
||||
ROM_LOAD("838-10_5.532", 0xb000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26))
|
||||
ROM_END
|
||||
|
||||
ROM_START(eballd14)
|
||||
@ -1958,11 +1987,11 @@ ROM_START(eballd14)
|
||||
ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("838-08_3.532", 0xd000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc))
|
||||
ROM_LOAD("838-09_4.716", 0xe000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126))
|
||||
ROM_RELOAD(0xe800, 0x0800)
|
||||
ROM_LOAD("838-10_5.532", 0xf000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("838-08_3.532", 0x9000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc))
|
||||
ROM_LOAD("838-09_4.716", 0xa000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126))
|
||||
ROM_RELOAD(0xa800, 0x0800)
|
||||
ROM_LOAD("838-10_5.532", 0xb000, 0x1000, CRC(9c63925d) SHA1(abd1fa6308d3569e16ee10bfabce269a124d8f26))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -1975,10 +2004,10 @@ ROM_START(embryon)
|
||||
ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("841-01_4.716", 0xe000, 0x0800, CRC(e8b234e3) SHA1(584e553748b1c6571491150e346d815005948b68))
|
||||
ROM_RELOAD(0xe800, 0x0800)
|
||||
ROM_LOAD("841-02_5.532", 0xf000, 0x1000, CRC(9cd8c04e) SHA1(7d74d8f33a98c9832fda1054187eb7300dbf5f5e))
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("841-01_4.716", 0xa000, 0x0800, CRC(e8b234e3) SHA1(584e553748b1c6571491150e346d815005948b68))
|
||||
ROM_RELOAD(0xa800, 0x0800)
|
||||
ROM_LOAD("841-02_5.532", 0xb000, 0x1000, CRC(9cd8c04e) SHA1(7d74d8f33a98c9832fda1054187eb7300dbf5f5e))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -1991,9 +2020,9 @@ ROM_START(fathom)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("842-01_4.532", 0xe000, 0x1000, CRC(2ac02093) SHA1(a89c1d24f4f3e1f58ca4e476f408835efb368a90))
|
||||
ROM_LOAD("842-02_5.532", 0xf000, 0x1000, CRC(736800bc) SHA1(2679d4d76e7258ad18ffe05cf333f21c35adfe0e))
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("842-01_4.532", 0xa000, 0x1000, CRC(2ac02093) SHA1(a89c1d24f4f3e1f58ca4e476f408835efb368a90))
|
||||
ROM_LOAD("842-02_5.532", 0xb000, 0x1000, CRC(736800bc) SHA1(2679d4d76e7258ad18ffe05cf333f21c35adfe0e))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -2006,11 +2035,11 @@ ROM_START(centaur)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("848-01_3.532", 0xd000, 0x1000, CRC(88322c8a) SHA1(424fd2b107f5fbc3ab8b58e3fa8c285170b1f09a))
|
||||
ROM_LOAD("848-02_4.532", 0xe000, 0x1000, CRC(d6dbd0e4) SHA1(62e4c8c1a747c5f6a3a4bf4d0bc80b06a1f70d13))
|
||||
ROM_LOAD("848-05_5.716", 0xf000, 0x0800, CRC(cbd765ba) SHA1(bdfae28af46c805f253f02d449dd81575aa9305b))
|
||||
ROM_RELOAD(0xf800, 0x0800)
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("848-01_3.532", 0x9000, 0x1000, CRC(88322c8a) SHA1(424fd2b107f5fbc3ab8b58e3fa8c285170b1f09a))
|
||||
ROM_LOAD("848-02_4.532", 0xa000, 0x1000, CRC(d6dbd0e4) SHA1(62e4c8c1a747c5f6a3a4bf4d0bc80b06a1f70d13))
|
||||
ROM_LOAD("848-05_5.716", 0xb000, 0x0800, CRC(cbd765ba) SHA1(bdfae28af46c805f253f02d449dd81575aa9305b))
|
||||
ROM_RELOAD(0xb800, 0x0800)
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -2023,11 +2052,11 @@ ROM_START(medusa)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("845-01_3.532", 0xd000, 0x1000, CRC(32200e02) SHA1(e75356a20f81a68e6b27d2fa04b8cc9b17f3976a))
|
||||
ROM_LOAD("845-02_4.532", 0xe000, 0x1000, CRC(ab95885a) SHA1(fa91cef2a244d25d408585d1e14e1ed8fdc8c845))
|
||||
ROM_LOAD("845-05_5.716", 0xf000, 0x0800, CRC(3792a812) SHA1(5c7cc43e57d8e8ded1cc109aa65c4f08052899b9))
|
||||
ROM_RELOAD(0xf800, 0x0800)
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("845-01_3.532", 0x9000, 0x1000, CRC(32200e02) SHA1(e75356a20f81a68e6b27d2fa04b8cc9b17f3976a))
|
||||
ROM_LOAD("845-02_4.532", 0xa000, 0x1000, CRC(ab95885a) SHA1(fa91cef2a244d25d408585d1e14e1ed8fdc8c845))
|
||||
ROM_LOAD("845-05_5.716", 0xb000, 0x0800, CRC(3792a812) SHA1(5c7cc43e57d8e8ded1cc109aa65c4f08052899b9))
|
||||
ROM_RELOAD(0xb800, 0x0800)
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -2040,11 +2069,11 @@ ROM_START(vector)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("858-01_2.532", 0xc000, 0x1000, CRC(bd2edef9) SHA1(8f129016440bad5e78d4b073268e76e542b61684))
|
||||
ROM_LOAD("858-02_3.532", 0xd000, 0x1000, CRC(c592fb35) SHA1(5201824f129812c907e7d8a4600de23d95fd1eb0))
|
||||
ROM_LOAD("858-03_4.532", 0xe000, 0x1000, CRC(8661d312) SHA1(36d04d875382ff5387991d660d031c662b414698))
|
||||
ROM_LOAD("858-06_5.532", 0xf000, 0x1000, CRC(3050edf6) SHA1(e028192d9a8c17123b07566c6d73302cec07b440))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("858-01_2.532", 0x8000, 0x1000, CRC(bd2edef9) SHA1(8f129016440bad5e78d4b073268e76e542b61684))
|
||||
ROM_LOAD("858-02_3.532", 0x9000, 0x1000, CRC(c592fb35) SHA1(5201824f129812c907e7d8a4600de23d95fd1eb0))
|
||||
ROM_LOAD("858-03_4.532", 0xa000, 0x1000, CRC(8661d312) SHA1(36d04d875382ff5387991d660d031c662b414698))
|
||||
ROM_LOAD("858-06_5.532", 0xb000, 0x1000, CRC(3050edf6) SHA1(e028192d9a8c17123b07566c6d73302cec07b440))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------
|
||||
@ -2057,10 +2086,10 @@ ROM_START(elektra)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("857-01_3.532", 0xd000, 0x1000, CRC(031548cc) SHA1(1f0204afd32dc07a301f404b4b064e34a83bd783))
|
||||
ROM_LOAD("857-02_4.532", 0xe000, 0x1000, CRC(efc870d9) SHA1(45132c123b3191d616e2e9372948ab66ff221228))
|
||||
ROM_LOAD("857-03_5.716", 0xf000, 0x0800, CRC(eae2c6a6) SHA1(ee3a9b01fa07e2df4eb6d2ab26da5f7f0e12475b))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("857-01_3.532", 0x9000, 0x1000, CRC(031548cc) SHA1(1f0204afd32dc07a301f404b4b064e34a83bd783))
|
||||
ROM_LOAD("857-02_4.532", 0xa000, 0x1000, CRC(efc870d9) SHA1(45132c123b3191d616e2e9372948ab66ff221228))
|
||||
ROM_LOAD("857-03_5.716", 0xb000, 0x0800, CRC(eae2c6a6) SHA1(ee3a9b01fa07e2df4eb6d2ab26da5f7f0e12475b))
|
||||
ROM_RELOAD(0xf800, 0x0800)
|
||||
ROM_END
|
||||
|
||||
@ -2074,11 +2103,11 @@ ROM_START(spectrm)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("868-01_3.532", 0xd000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296))
|
||||
ROM_LOAD("868-02_4.532", 0xe000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2))
|
||||
ROM_LOAD("868-03_5.716", 0xf000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e))
|
||||
ROM_RELOAD(0xf800, 0x0800)
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("868-01_3.532", 0x9000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296))
|
||||
ROM_LOAD("868-02_4.532", 0xa000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2))
|
||||
ROM_LOAD("868-03_5.716", 0xb000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e))
|
||||
ROM_RELOAD(0xb800, 0x0800)
|
||||
ROM_END
|
||||
|
||||
ROM_START(spectrm4)
|
||||
@ -2088,11 +2117,11 @@ ROM_START(spectrm4)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("868-01_3.532", 0xd000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296))
|
||||
ROM_LOAD("868-02_4.532", 0xe000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2))
|
||||
ROM_LOAD("868-03_5.716", 0xf000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e))
|
||||
ROM_RELOAD(0xf800, 0x0800)
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("868-01_3.532", 0x9000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296))
|
||||
ROM_LOAD("868-02_4.532", 0xa000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2))
|
||||
ROM_LOAD("868-03_5.716", 0xb000, 0x0800, CRC(4a5ac3b8) SHA1(288feba40efd65f4eec5c0b2fcf013904e3dc24e))
|
||||
ROM_RELOAD(0xb800, 0x0800)
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------------------------
|
||||
@ -2146,8 +2175,8 @@ ROM_START(rapidfip)
|
||||
ROM_LOAD( "869-03_6.732", 0x1800, 0x0800, CRC(f6af5e8d) SHA1(3cf782d4a0ca38e3953a20d23d0eb01af87ba445))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("869-02_5.532", 0xf000, 0x1000, CRC(5a74cb86) SHA1(4fd09b0bc4257cb7b48cd8087b8b15fe768f7ddf))
|
||||
ROM_REGION(0x10000, "squawk_n_talk:cpu", 0)
|
||||
ROM_LOAD("869-02_5.532", 0xb000, 0x1000, CRC(5a74cb86) SHA1(4fd09b0bc4257cb7b48cd8087b8b15fe768f7ddf))
|
||||
ROM_END
|
||||
|
||||
/*--------------------------------------
|
||||
@ -2160,9 +2189,9 @@ ROM_START(m_mpac)
|
||||
ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("872-01_4.532", 0xe000, 0x1000, CRC(d21ce16d) SHA1(3ee6e2629530e7e6e4d7eac713d34c48297a1047))
|
||||
ROM_LOAD("872-03_5.532", 0xf000, 0x1000, CRC(8fcdf853) SHA1(7c6bffcd974d2684e7f2c69d926f6cabb53e2f90))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("872-01_4.532", 0xa000, 0x1000, CRC(d21ce16d) SHA1(3ee6e2629530e7e6e4d7eac713d34c48297a1047))
|
||||
ROM_LOAD("872-03_5.532", 0xb000, 0x1000, CRC(8fcdf853) SHA1(7c6bffcd974d2684e7f2c69d926f6cabb53e2f90))
|
||||
ROM_END
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
@ -2698,10 +2727,10 @@ ROM_START(bigbat)
|
||||
ROM_LOAD( "u6.bin", 0x1800, 0x0800, CRC(8f13469d) SHA1(00c626f7eb166f627f6498d75906b3c56bccdd62))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("u3.bin", 0xd000, 0x1000, CRC(b87a9335) SHA1(8a21bcbcbe91da1bab0af06b71604bb8f247d0d4))
|
||||
ROM_LOAD("u4.bin", 0xe000, 0x1000, CRC(4ab75b31) SHA1(46acd1c9250a635b51bffccd77ea4e67a0c5edf5))
|
||||
ROM_LOAD("u5.bin", 0xf000, 0x1000, CRC(0aec8204) SHA1(f44216cccc3652399549345d8c74bcae54662aa3))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("u3.bin", 0x9000, 0x1000, CRC(b87a9335) SHA1(8a21bcbcbe91da1bab0af06b71604bb8f247d0d4))
|
||||
ROM_LOAD("u4.bin", 0xa000, 0x1000, CRC(4ab75b31) SHA1(46acd1c9250a635b51bffccd77ea4e67a0c5edf5))
|
||||
ROM_LOAD("u5.bin", 0xb000, 0x1000, CRC(0aec8204) SHA1(f44216cccc3652399549345d8c74bcae54662aa3))
|
||||
ROM_END
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------
|
||||
@ -2714,9 +2743,9 @@ ROM_START(mdntmrdr)
|
||||
ROM_LOAD( "mdru6.732", 0x1800, 0x0800, CRC(ff55fb57) SHA1(4a44fc8732c8cbce38c9605c7958b02a6bc95da1))
|
||||
ROM_CONTINUE( 0x5800, 0x0800)
|
||||
ROM_RELOAD( 0x7000, 0x1000)
|
||||
ROM_REGION(0x10000, "cpu2", 0)
|
||||
ROM_LOAD("u3.bin", 0xd000, 0x1000, CRC(3ba474e4) SHA1(4ee5c3ad2c9dca49e9394521506e97a95e3d9a17))
|
||||
ROM_LOAD("u5.bin", 0xf000, 0x1000, CRC(3ab40e35) SHA1(63b2ee074e5993a2616e67d3383bc3d3ac51b400))
|
||||
ROM_REGION(0x10000, "squawk_n_talk_ay:cpu", 0)
|
||||
ROM_LOAD("u3.bin", 0x9000, 0x1000, CRC(3ba474e4) SHA1(4ee5c3ad2c9dca49e9394521506e97a95e3d9a17))
|
||||
ROM_LOAD("u5.bin", 0xb000, 0x1000, CRC(3ab40e35) SHA1(63b2ee074e5993a2616e67d3383bc3d3ac51b400))
|
||||
ROM_END
|
||||
|
||||
/*----------------------------
|
||||
@ -2779,22 +2808,22 @@ GAME( 1983, goldball, 0, as3022, by35, by35_state, init_by35_
|
||||
GAME( 1983, goldballn, goldball, as3022, by35, by35_state, init_by35_7, ROT0, "Bally", "Gold Ball (Field Service Upgrade)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
|
||||
// Squawk & Talk sound
|
||||
GAME( 1981, flashgdn, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, flashgdnf, flashgdn, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (French)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, flashgdnv, flashgdn, sounds_plus, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (Vocalizer sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, fball_ii, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fireball II", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, eballdlx, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, eballd14, eballdlx, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, embryon, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Embryon", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, fathom, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fathom", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, centaur, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Centaur", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, medusa, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Medusa", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1982, vector, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Vector", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, elektra, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Elektra", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1982, spectrm, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1982, spectrm4, spectrm, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum (ver 4)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1982, rapidfip, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Rapid Fire", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1982, m_mpac, 0, by35, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1981, flashgdn, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, flashgdnf, flashgdn, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (French)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, flashgdnv, flashgdn, sounds_plus, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon (Vocalizer sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, fball_ii, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fireball II", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, eballdlx, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, eballd14, eballdlx, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, embryon, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Embryon", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, fathom, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Fathom", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, centaur, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Centaur", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, medusa, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Medusa", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1982, vector, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Vector", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1981, elektra, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Elektra", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1982, spectrm, 0, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1982, spectrm4, spectrm, squawk_n_talk, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Spectrum (ver 4)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1982, rapidfip, 0, squawk_n_talk, by35, by35_state, init_by35_7, ROT0, "Bally", "Rapid Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1982, m_mpac, 0, squawk_n_talk_ay, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
|
||||
// Cheap Squeak sound
|
||||
GAME( 1984, kosteel, 0, cheap_squeak, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Kings of Steel", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
@ -2805,25 +2834,25 @@ GAME( 1984, blakpyra, 0, cheap_squeak, by35_os5x, by35_state, init_by35_7, ROT0,
|
||||
GAME( 1985, cybrnaut, 0, cheap_squeak, by35_os5x, by35_state, init_by35_7, ROT0, "Bally", "Cybernaut", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
|
||||
// Other manufacturers
|
||||
GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, newwave, blakpyra, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, worlddef, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, darkshad, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, skflight, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1987, cobrap, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1987, futrquen, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix (Nuova Bell Games)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, toppin, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, uboat65, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (301 Darts Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, bullseyn, bullseye, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (Traditional Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, bbbowlin, 0, by35, by35, by35_state, init_by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, monrobwl, 0, by35, by35, by35_state, init_by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, bigbat, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, init_by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, blbeauty, 0, by35, by35, by35_state, init_by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, myststar, 0, by35, by35, by35_state, init_by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, newwave, blakpyra, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1985, worlddef, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, darkshad, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, skflight, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1987, cobrap, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1987, futrquen, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix (Nuova Bell Games)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, toppin, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, uboat65, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (301 Darts Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1986, bullseyn, bullseye, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (Traditional Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, bbbowlin, 0, by35, by35, by35_state, init_by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1988, monrobwl, 0, by35, by35, by35_state, init_by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, bigbat, 0, squawk_n_talk_ay, by35, by35_state, init_by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1984, mdntmrdr, 0, squawk_n_talk_ay, by35, by35_state, init_by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
GAME( 1988, blbeauty, 0, by35, by35, by35_state, init_by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
GAME( 1984, myststar, 0, by35, by35, by35_state, init_by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL)
|
||||
|
@ -622,7 +622,7 @@ class chihiro_state : public xbox_base_state
|
||||
public:
|
||||
chihiro_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: xbox_base_state(mconfig, type, tag)
|
||||
, m_ide(*this, "ide")
|
||||
, m_ide(*this, "ide1")
|
||||
, m_dimmboard(*this, "rom_board")
|
||||
, m_hack_index(-1)
|
||||
, m_hack_counter(0)
|
||||
@ -1763,13 +1763,11 @@ WRITE32_MEMBER(chihiro_state::mediaboard_w)
|
||||
|
||||
void chihiro_state::chihiro_map(address_map &map)
|
||||
{
|
||||
xbox_base_map(map);
|
||||
map(0xff000000, 0xff07ffff).rom().region("bios", 0).mirror(0x00f80000);
|
||||
}
|
||||
|
||||
void chihiro_state::chihiro_map_io(address_map &map)
|
||||
{
|
||||
xbox_base_map_io(map);
|
||||
map(0x4000, 0x40ff).rw(FUNC(chihiro_state::mediaboard_r), FUNC(chihiro_state::mediaboard_w));
|
||||
}
|
||||
|
||||
@ -1915,7 +1913,7 @@ void chihiro_state::chihiro_base(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &chihiro_state::chihiro_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &chihiro_state::chihiro_map_io);
|
||||
|
||||
subdevice<ide_controller_32_device>(":pci:09.0:ide")->options(ide_baseboard, nullptr, "bb", true);
|
||||
subdevice<ide_controller_32_device>(":pci:09.0:ide1")->options(ide_baseboard, nullptr, "bb", true);
|
||||
|
||||
OHCI_USB_CONNECTOR(config, ":pci:02.0:port1", usb_baseboard, "an2131qc", true).set_option_machine_config("an2131qc", an2131qc_configuration);
|
||||
OHCI_USB_CONNECTOR(config, ":pci:02.0:port2", usb_baseboard, "an2131sc", true).set_option_machine_config("an2131sc", an2131sc_configuration);
|
||||
|
@ -158,8 +158,8 @@
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "audio/rad_eu3a05.h"
|
||||
#include "machine/rad_eu3a05gpio.h"
|
||||
#include "audio/elan_eu3a05.h"
|
||||
#include "machine/elan_eu3a05gpio.h"
|
||||
|
||||
class radica_eu3a05_state : public driver_device
|
||||
{
|
File diff suppressed because it is too large
Load Diff
@ -266,7 +266,7 @@ READ8_MEMBER(elwro800_state::elwro800jr_io_r)
|
||||
/* cassette input from wav */
|
||||
if (m_cassette->input() > 0.0038 )
|
||||
{
|
||||
data &= ~0x40;
|
||||
data |= 0x40;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -158,26 +158,15 @@ static const gfx_layout tile16x16_layout =
|
||||
16,16, /* 16*16 sprites */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ STEP4(0,8) },
|
||||
{ STEP8(8*4,1), STEP8(0,1) },
|
||||
{ STEP16(0,8*4*2) },
|
||||
{ STEP4(0,16) },
|
||||
{ STEP16(0,1) },
|
||||
{ STEP16(0,16*4) },
|
||||
64*16 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
16,16, /* 16*16 characters */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ STEP4(0,1) },
|
||||
{ STEP8(7*4,-4), STEP8(15*4,-4) },
|
||||
{ STEP16(0,16*4) },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_galastrm )
|
||||
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 4096 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 4096 )
|
||||
GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 4096/16 )
|
||||
GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0, 4096/16 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -252,15 +241,15 @@ ROM_START( galastrm )
|
||||
ROM_LOAD16_BYTE( "c99_23.ic8", 0x100000, 0x20000, CRC(5718ee92) SHA1(33cfa60c5bceb1525498f27b598067d2dc620431) )
|
||||
ROM_LOAD16_BYTE( "c99_22.ic7", 0x100001, 0x20000, CRC(b90f7c42) SHA1(e2fa9ee10ad61ae1a672c3357c0072b79ec7fbcb) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx1", 0 )
|
||||
ROM_LOAD32_WORD_SWAP( "c99-05.ic1", 0x000002, 0x100000, CRC(a91ffba4) SHA1(467af9646ddad5fbb520b6bc13517ed4deacf479) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD_SWAP( "c99-06.ic2", 0x000000, 0x100000, CRC(812ed3ae) SHA1(775904dd42643d0e3a30890590d5f8eac1fe78db) )
|
||||
ROM_REGION( 0x200000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_WORD( "c99-05.ic1", 0x000000, 0x100000, CRC(a91ffba4) SHA1(467af9646ddad5fbb520b6bc13517ed4deacf479) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD( "c99-06.ic2", 0x000002, 0x100000, CRC(812ed3ae) SHA1(775904dd42643d0e3a30890590d5f8eac1fe78db) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "c99-02.ic50", 0x000000, 0x100000, CRC(81e9fc6f) SHA1(4495a7d130b755b5a48eaa814d884d6bb8243bcb) ) /* OBJ 16x16 tiles */
|
||||
ROM_LOAD32_BYTE( "c99-01.ic51", 0x000001, 0x100000, CRC(9dda1267) SHA1(c639ba064496dcadf5f1e55332a12bb442e9dc86) )
|
||||
ROM_LOAD32_BYTE( "c99-04.ic66", 0x000002, 0x100000, CRC(a681760f) SHA1(23d4fc7eb778c8a25c4bc7cee1d0c8cdd828a996) )
|
||||
ROM_LOAD32_BYTE( "c99-03.ic67", 0x000003, 0x100000, CRC(a2807a27) SHA1(977e395ea2ab2fb82807d3cf5fe5f1dbbde99da0) )
|
||||
ROM_REGION( 0x400000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "c99-02.ic50", 0x000000, 0x100000, CRC(81e9fc6f) SHA1(4495a7d130b755b5a48eaa814d884d6bb8243bcb) ) /* OBJ 16x16 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "c99-01.ic51", 0x000002, 0x100000, CRC(9dda1267) SHA1(c639ba064496dcadf5f1e55332a12bb442e9dc86) )
|
||||
ROM_LOAD64_WORD_SWAP( "c99-04.ic66", 0x000004, 0x100000, CRC(a681760f) SHA1(23d4fc7eb778c8a25c4bc7cee1d0c8cdd828a996) )
|
||||
ROM_LOAD64_WORD_SWAP( "c99-03.ic67", 0x000006, 0x100000, CRC(a2807a27) SHA1(977e395ea2ab2fb82807d3cf5fe5f1dbbde99da0) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "sprmaprom", 0 )
|
||||
ROM_LOAD16_WORD( "c99-11.ic90", 0x00000, 0x80000, CRC(26a6926c) SHA1(918860e2829131e9ecfe983b2ae3e49e1c9ecd72) ) /* STY, spritemap */
|
||||
|
@ -621,7 +621,8 @@ WRITE8_MEMBER(mcr_state::dotron_op4_w)
|
||||
|
||||
/* bit 4 = SEL0 (J1-8) on squawk n talk board */
|
||||
/* bits 3-0 = MD3-0 connected to squawk n talk (J1-4,3,2,1) */
|
||||
m_squawk_n_talk->write(space, offset, data);
|
||||
m_squawk_n_talk->sound_select(machine().dummy_space(), offset, data & 0x0f);
|
||||
m_squawk_n_talk->sound_int(BIT(data, 4));
|
||||
}
|
||||
|
||||
|
||||
@ -650,7 +651,8 @@ WRITE8_MEMBER(mcr_nflfoot_state::op4_w)
|
||||
|
||||
/* bit 4 = SEL0 (J1-8) on squawk n talk board */
|
||||
/* bits 3-0 = MD3-0 connected to squawk n talk (J1-4,3,2,1) */
|
||||
m_squawk_n_talk->write(space, offset, data);
|
||||
m_squawk_n_talk->sound_select(machine().dummy_space(), offset, data & 0x0f);
|
||||
m_squawk_n_talk->sound_int(BIT(data, 4));
|
||||
}
|
||||
|
||||
|
||||
@ -1861,7 +1863,7 @@ void mcr_state::mcr_91490_snt(machine_config &config)
|
||||
mcr_91490(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MIDWAY_SQUAWK_N_TALK(config, m_squawk_n_talk);
|
||||
BALLY_SQUAWK_N_TALK(config, m_squawk_n_talk);
|
||||
m_squawk_n_talk->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
m_squawk_n_talk->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
}
|
||||
|
112
src/mame/drivers/mindset.cpp
Normal file
112
src/mame/drivers/mindset.cpp
Normal file
@ -0,0 +1,112 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Olivier Galibert
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/i86/i186.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/upd765.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class mindset_state: public driver_device
|
||||
{
|
||||
public:
|
||||
mindset_state(const machine_config &mconfig, device_type type, const char *tag);
|
||||
virtual ~mindset_state() = default;
|
||||
|
||||
void mindset(machine_config &config);
|
||||
|
||||
protected:
|
||||
required_device<i80186_cpu_device> m_maincpu;
|
||||
required_device<i8042_device> m_syscpu, m_soundcpu;
|
||||
required_device<screen_device> m_screen;
|
||||
required_shared_ptr<u16> m_vram;
|
||||
|
||||
void maincpu_mem(address_map &map);
|
||||
void maincpu_io(address_map &map);
|
||||
|
||||
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
mindset_state::mindset_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_syscpu(*this, "syscpu"),
|
||||
m_soundcpu(*this, "soundcpu"),
|
||||
m_screen(*this, "screen"),
|
||||
m_vram(*this, "vram")
|
||||
{
|
||||
}
|
||||
|
||||
u32 mindset_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
static const u32 pal[4] = { 0x000000, 0x555555, 0xaaaaaa, 0xffffff };
|
||||
|
||||
for(u32 y=0; y<200; y++) {
|
||||
// Interleaved
|
||||
const u16 *src = m_vram + 40*(y >> 1) + 4096*(y & 1);
|
||||
u32 *dest = &bitmap.pix32(y);
|
||||
for(u32 x=0; x<320; x+=8) {
|
||||
u16 sv = *src++;
|
||||
*dest++ = pal[(sv >> 6) & 3];
|
||||
*dest++ = pal[(sv >> 4) & 3];
|
||||
*dest++ = pal[(sv >> 2) & 3];
|
||||
*dest++ = pal[(sv >> 0) & 3];
|
||||
*dest++ = pal[(sv >> 14) & 3];
|
||||
*dest++ = pal[(sv >> 12) & 3];
|
||||
*dest++ = pal[(sv >> 10) & 3];
|
||||
*dest++ = pal[(sv >> 8) & 3];
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void mindset_state::maincpu_mem(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x07fff).ram();
|
||||
map(0xb8000, 0xbffff).ram().share("vram");
|
||||
map(0xf8000, 0xfffff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
void mindset_state::maincpu_io(address_map &map)
|
||||
{
|
||||
}
|
||||
|
||||
void mindset_state::mindset(machine_config &config)
|
||||
{
|
||||
I80186(config, m_maincpu, 6000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mindset_state::maincpu_mem);
|
||||
m_maincpu->set_addrmap(AS_IO, &mindset_state::maincpu_io);
|
||||
|
||||
I8042(config, m_syscpu, 6000000);
|
||||
|
||||
I8042(config, m_soundcpu, 6000000);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(320, 200);
|
||||
m_screen->set_visarea(0, 319, 0, 199);
|
||||
m_screen->set_screen_update(FUNC(mindset_state::screen_update));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START(mindset)
|
||||
INPUT_PORTS_END
|
||||
|
||||
ROM_START(mindset)
|
||||
ROM_REGION(0x8000, "maincpu", 0)
|
||||
ROM_LOAD16_BYTE("1.7_lo.u60", 0, 0x4000, CRC(00474dc1) SHA1(676f30f170c14174dbff3b5cbf98d0f23472b7c4))
|
||||
ROM_LOAD16_BYTE("1.7_hi.u59", 1, 0x4000, CRC(1434af10) SHA1(39105eacdd7ddc13e449e2c32743e828bef33595))
|
||||
|
||||
ROM_REGION(0x0800, "syscpu", 0)
|
||||
ROM_LOAD("253002-001.u17", 0, 0x800, CRC(69da82c9) SHA1(2f0bf5b134dc703cbc72e0c6df5b7beda1b39e70))
|
||||
|
||||
ROM_REGION(0x0800, "soundcpu", 0)
|
||||
ROM_LOAD("253006-001.u16", 0, 0x800, CRC(7bea5edd) SHA1(30cdc0dedaa5246f4952df452a99ca22e3cd0636))
|
||||
ROM_END
|
||||
|
||||
COMP( 1984, mindset, 0, 0, mindset, mindset, mindset_state, empty_init, "Mindset Corporation", "Mindset Video Production System", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
|
||||
|
@ -10,7 +10,6 @@
|
||||
|
||||
TODO:
|
||||
|
||||
- cassette
|
||||
- FDX floppy
|
||||
- HDX hard disk
|
||||
- HRX high resolution graphics
|
||||
@ -260,9 +259,14 @@ static const z80_daisy_config rs128_daisy_chain[] =
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(mtx_state::cassette_tick)
|
||||
{
|
||||
int data = ((m_cassette)->input() > +0.0) ? 0 : 1;
|
||||
bool cass_ws = (m_cassette->input() > +0.04) ? 1 : 0;
|
||||
|
||||
m_z80ctc->trg3(data);
|
||||
if (cass_ws != m_cassold)
|
||||
{
|
||||
m_cassold = cass_ws;
|
||||
m_z80ctc->trg3(1);
|
||||
m_z80ctc->trg3(0); // this causes interrupt
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "machine/pci.h"
|
||||
#include "machine/pci-ide.h"
|
||||
#include "machine/intelfsh.h"
|
||||
#include "machine/atapicdr.h"
|
||||
#include "machine/idehd.h"
|
||||
#include "includes/xbox_pci.h"
|
||||
#include "includes/nforcepc.h"
|
||||
|
||||
@ -53,6 +55,12 @@ static const uint8_t test_spd_data[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
void nforcepc_ata_devices(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("hdd", IDE_HARDDISK);
|
||||
device.option_add("cdrom", ATAPI_CDROM);
|
||||
}
|
||||
|
||||
/*
|
||||
Pci devices
|
||||
*/
|
||||
@ -64,10 +72,16 @@ DEFINE_DEVICE_TYPE(CRUSH11, crush11_host_device, "crush11", "NVIDIA Corporation
|
||||
void crush11_host_device::config_map(address_map &map)
|
||||
{
|
||||
pci_host_device::config_map(map);
|
||||
map(0x10, 0x27).rw(FUNC(pci_device::address_base_r), FUNC(pci_device::address_base_w));
|
||||
map(0x84, 0x87).rw(FUNC(crush11_host_device::ram_size_r), FUNC(crush11_host_device::ram_size_w));
|
||||
map(0xf0, 0xf0).rw(FUNC(crush11_host_device::unknown_r), FUNC(crush11_host_device::unknown_w));
|
||||
}
|
||||
|
||||
READ8_MEMBER(crush11_host_device::header_type_r)
|
||||
{
|
||||
return 0x80; // from lspci dump
|
||||
}
|
||||
|
||||
crush11_host_device::crush11_host_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: pci_host_device(mconfig, CRUSH11, tag, owner, clock)
|
||||
, cpu(*this, finder_base::DUMMY_TAG)
|
||||
@ -79,6 +93,7 @@ crush11_host_device::crush11_host_device(const machine_config &mconfig, const ch
|
||||
void crush11_host_device::device_start()
|
||||
{
|
||||
pci_host_device::device_start();
|
||||
set_multifunction_device(true);
|
||||
memory_space = &cpu->space(AS_DATA);
|
||||
io_space = &cpu->space(AS_IO);
|
||||
|
||||
@ -88,7 +103,7 @@ void crush11_host_device::device_start()
|
||||
io_window_start = 0;
|
||||
io_window_end = 0xffff;
|
||||
io_offset = 0;
|
||||
status = 0x0010;
|
||||
status = 0x00b0;
|
||||
}
|
||||
|
||||
void crush11_host_device::reset_all_mappings()
|
||||
@ -172,9 +187,11 @@ void crush11_memory_device::device_start()
|
||||
device_t *r = owner()->subdevice("00.0");
|
||||
|
||||
pci_device::device_start();
|
||||
set_multifunction_device(true);
|
||||
ram.resize(ddr_ram_size * 1024 * 1024 / 4);
|
||||
host = dynamic_cast<crush11_host_device *>(r);
|
||||
ram_space = host->get_cpu_space(AS_PROGRAM);
|
||||
status = 0x0020;
|
||||
}
|
||||
|
||||
void crush11_memory_device::device_reset()
|
||||
@ -703,13 +720,13 @@ void nforcepc_state::nforcepc(machine_config &config)
|
||||
maincpu.set_addrmap(AS_PROGRAM, &nforcepc_state::nforce_map);
|
||||
maincpu.set_addrmap(AS_IO, &nforcepc_state::nforce_map_io);
|
||||
maincpu.set_irq_acknowledge_callback(FUNC(nforcepc_state::irq_callback));
|
||||
//maincpu.smiact().set("pci:01.0", FUNC(i82439hx_host_device::smi_act_w));
|
||||
//maincpu.smiact().set("pci:01.0", FUNC(???_host_device::smi_act_w));
|
||||
|
||||
PCI_ROOT(config, ":pci", 0);
|
||||
CRUSH11(config, ":pci:00.0", 0, "maincpu", "bios"); // 10de:01a4 NVIDIA Corporation nForce CPU bridge
|
||||
CRUSH11_MEMORY(config, ":pci:00.1", 0, 2); /* 10de:01ac NVIDIA Corporation nForce 220/420 Memory Controller
|
||||
10de:01ad NVIDIA Corporation nForce 220/420 Memory Controller
|
||||
10de:01ab NVIDIA Corporation nForce 420 Memory Controller (DDR)*/
|
||||
CRUSH11_MEMORY(config, ":pci:00.1", 0, 2); // 10de:01ac NVIDIA Corporation nForce 220/420 Memory Controller
|
||||
// 10de:01ad NVIDIA Corporation nForce 220/420 Memory Controller
|
||||
// 10de:01ab NVIDIA Corporation nForce 420 Memory Controller (DDR)
|
||||
mcpx_isalpc_device &isa(MCPX_ISALPC(config, ":pci:01.0", 0, 0x10430c11)); // 10de:01b2 NVIDIA Corporation nForce ISA Bridge (LPC bus)
|
||||
isa.smi().set_inputline(":maincpu", INPUT_LINE_SMI);
|
||||
isa.boot_state_hook().set(FUNC(nforcepc_state::boot_state_award_w));
|
||||
@ -725,20 +742,21 @@ void nforcepc_state::nforcepc(machine_config &config)
|
||||
AS99127F(config, ":pci:01.1:12d", 0);
|
||||
AS99127F_SENSOR2(config, ":pci:01.1:148", 0);
|
||||
AS99127F_SENSOR3(config, ":pci:01.1:149", 0);
|
||||
MCPX_OHCI(config, ":pci:02.0", 0); // 10de:01c2 NVIDIA Corporation nForce USB Controller
|
||||
// .interrupt_handler().set(FUNC(nforcepc_state::ohci_usb_interrupt_changed));
|
||||
MCPX_OHCI(config, ":pci:03.0", 0); // 10de:01c2 NVIDIA Corporation nForce USB Controller
|
||||
MCPX_ETH(config, ":pci:04.0", 0); // 10de:01c3 NVIDIA Corporation nForce Ethernet Controller
|
||||
MCPX_APU(config, ":pci:05.0", 0, m_maincpu); // 10de:01b0 NVIDIA Corporation nForce Audio Processing Unit
|
||||
MCPX_AC97_AUDIO(config, ":pci:06.0", 0); // 10de:01b1 NVIDIA Corporation nForce AC'97 Audio Controller
|
||||
PCI_BRIDGE(config, ":pci:08.0", 0, 0x10de01b8, 0); // 10de:01b8 NVIDIA Corporation nForce PCI-to-PCI bridge
|
||||
// 10ec:8139 Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (behind bridge)
|
||||
MCPX_IDE(config, ":pci:09.0", 0); // 10de:01bc NVIDIA Corporation nForce IDE
|
||||
/* subdevice<ide_controller_32_device>(":pci:09.0:ide")->options(nforcepc_ata_devices, "hdd", "cdrom", true);
|
||||
.interrupt_handler().set(FUNC(nforcepc_state::ide_interrupt_changed));
|
||||
ide.irq_pri().set(":pci:01.0", FUNC(mcpx_isalpc_device::pc_irq14_w));
|
||||
ide.irq_sec().set(":pci:01.0", FUNC(mcpx_isalpc_device::pc_irq15_w));*/
|
||||
NV2A_AGP(config, ":pci:1e.0", 0, 0x10de01b7, 0); // 10de:01b7 NVIDIA Corporation nForce AGP to PCI Bridge
|
||||
SST_49LF020(config, "bios", 0);
|
||||
/*10de:01c2 NVIDIA Corporation nForce USB Controller
|
||||
10de:01c2 NVIDIA Corporation nForce USB Controller
|
||||
10de:01b0 NVIDIA Corporation nForce Audio Processing Unit
|
||||
10de:01b1 NVIDIA Corporation nForce AC'97 Audio Controller
|
||||
10de:01b8 NVIDIA Corporation nForce PCI-to-PCI bridge
|
||||
10de:01bc NVIDIA Corporation nForce IDE
|
||||
10de:01b7 NVIDIA Corporation nForce AGP to PCI Bridge
|
||||
*/
|
||||
/* maincpu.smiact().set("pci:00.0", FUNC(i82439hx_host_device::smi_act_w));
|
||||
|
||||
i82371sb_ide_device &ide(I82371SB_IDE(config, ":pci:07.1", 0));
|
||||
ide.irq_pri().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq14_w));
|
||||
ide.irq_sec().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq15_w));*/
|
||||
}
|
||||
|
||||
ROM_START(nforcepc)
|
||||
|
@ -327,7 +327,7 @@ rumbling on a subwoofer in the cabinet.)
|
||||
|
||||
#include "ninjaw.lh"
|
||||
|
||||
void ninjaw_state::parse_control( ) /* assumes Z80 sandwiched between 68Ks */
|
||||
void ninjaw_state::parse_control() /* assumes Z80 sandwiched between 68Ks */
|
||||
{
|
||||
/* bit 0 enables cpu B */
|
||||
/* however this fails when recovering from a save state
|
||||
@ -336,7 +336,7 @@ void ninjaw_state::parse_control( ) /* assumes Z80 sandwiched between 68Ks */
|
||||
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ninjaw_state::cpua_ctrl_w)
|
||||
void ninjaw_state::cpua_ctrl_w(u16 data)
|
||||
{
|
||||
if ((data &0xff00) && ((data &0xff) == 0))
|
||||
data = data >> 8;
|
||||
@ -388,7 +388,7 @@ void ninjaw_state::pancontrol_w(offs_t offset, u8 data)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w)
|
||||
void ninjaw_state::tc0100scn_triple_screen_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
m_tc0100scn[0]->ram_w(offset, data, mem_mask);
|
||||
m_tc0100scn[1]->ram_w(offset, data, mem_mask);
|
||||
@ -590,34 +590,25 @@ static const gfx_layout tilelayout =
|
||||
16,16, /* 16*16 sprites */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 8, 12, 0, 4 }, /* pixel bits separated, jump 4 to get to next one */
|
||||
{ 3, 2, 1, 0, 19, 18, 17, 16,
|
||||
3+ 32*8, 2+ 32*8, 1+ 32*8, 0+ 32*8, 19+ 32*8, 18+ 32*8, 17+ 32*8, 16+ 32*8 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
|
||||
64*8 + 0*32, 64*8 + 1*32, 64*8 + 2*32, 64*8 + 3*32,
|
||||
64*8 + 4*32, 64*8 + 5*32, 64*8 + 6*32, 64*8 + 7*32 },
|
||||
{ STEP4(0,4) }, /* pixel bits separated, jump 4 to get to next one */
|
||||
{ STEP4(3,-1), STEP4(4*4+3,-1), STEP4(4*4*2*8+3,-1), STEP4(4*4*2*8+4*4+3,-1) },
|
||||
{ STEP8(0,4*4*2), STEP8(4*4*2*8*2,4*4*2) },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8 /* every sprite takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_ninjaw_1 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* scr tiles (screen 1) */
|
||||
GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 1) */
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( gfx_ninjaw_23 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0, 256 ) /* scr tiles (screens 2+) */
|
||||
static GFXDECODE_START( gfx_ninjaw_2 )
|
||||
GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "tc0100scn_2", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 2) */
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( gfx_ninjaw_3 )
|
||||
GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "tc0100scn_3", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 3) */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -630,7 +621,7 @@ class subwoofer_device : public device_t,
|
||||
public device_sound_interface
|
||||
{
|
||||
public:
|
||||
subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
~subwoofer_device() {}
|
||||
|
||||
protected:
|
||||
@ -649,7 +640,7 @@ extern const device_type SUBWOOFER;
|
||||
|
||||
const device_type SUBWOOFER = device_creator<subwoofer_device>;
|
||||
|
||||
subwoofer_device::subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
subwoofer_device::subwoofer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: device_t(mconfig, SUBWOOFER, "Subwoofer", tag, owner, clock),
|
||||
device_sound_interface(mconfig, *this)
|
||||
{
|
||||
@ -695,7 +686,7 @@ to the scrolling background.
|
||||
Darius2: arbitrary interleaving of 10 to keep cpus synced.
|
||||
*************************************************************/
|
||||
|
||||
void ninjaw_state::postload()
|
||||
void ninjaw_state::device_post_load()
|
||||
{
|
||||
parse_control();
|
||||
}
|
||||
@ -706,7 +697,6 @@ void ninjaw_state::machine_start()
|
||||
|
||||
save_item(NAME(m_cpua_ctrl));
|
||||
save_item(NAME(m_pandata));
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_state::postload), this));
|
||||
}
|
||||
|
||||
void ninjaw_state::machine_reset()
|
||||
@ -748,8 +738,8 @@ void ninjaw_state::ninjaw(machine_config &config)
|
||||
|
||||
/* video hardware */
|
||||
GFXDECODE(config, m_gfxdecode[0], m_tc0110pcr[0], gfx_ninjaw_1);
|
||||
GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_23);
|
||||
GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_23);
|
||||
GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_2);
|
||||
GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_3);
|
||||
|
||||
config.set_default_layout(layout_ninjaw);
|
||||
|
||||
@ -860,8 +850,8 @@ void ninjaw_state::darius2(machine_config &config)
|
||||
|
||||
/* video hardware */
|
||||
GFXDECODE(config, m_gfxdecode[0], m_tc0110pcr[0], gfx_ninjaw_1);
|
||||
GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_23);
|
||||
GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_23);
|
||||
GFXDECODE(config, m_gfxdecode[1], m_tc0110pcr[1], gfx_ninjaw_2);
|
||||
GFXDECODE(config, m_gfxdecode[2], m_tc0110pcr[2], gfx_ninjaw_3);
|
||||
|
||||
config.set_default_layout(layout_ninjaw);
|
||||
|
||||
@ -972,24 +962,23 @@ ROM_START( ninjaw )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */
|
||||
// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_3", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) )
|
||||
@ -1027,24 +1016,23 @@ ROM_START( ninjaw1 )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */
|
||||
// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_3", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) )
|
||||
@ -1082,24 +1070,23 @@ ROM_START( ninjawu )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */
|
||||
// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_3", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) )
|
||||
@ -1137,24 +1124,23 @@ ROM_START( ninjawj )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b31_37.11", 0x00000, 0x20000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */
|
||||
ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) )
|
||||
ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) )
|
||||
ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */
|
||||
// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */
|
||||
// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_3", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */
|
||||
ROM_LOAD16_WORD_SWAP( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) )
|
||||
|
||||
ROM_REGION( 0x180000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) )
|
||||
@ -1192,16 +1178,20 @@ ROM_START( darius2 )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c07-28", 0x00000, 0x20000, CRC(da304bc5) SHA1(689b4f329d9a640145f82e12dff3dd1fcf8a28c8) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCR (screen 1) */
|
||||
ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x100000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-01", 0x00000, 0x80000, CRC(3cf0f050) SHA1(f5a1f7e327a2617fb95ce2837e72945fd7447346) ) /* OBJ */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-02", 0x80000, 0x80000, CRC(75d16d4b) SHA1(795423278b66eca41accce1f8a4425d65af7b629) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx2", 0 )
|
||||
ROM_LOAD( "c07-01", 0x00000, 0x80000, CRC(3cf0f050) SHA1(f5a1f7e327a2617fb95ce2837e72945fd7447346) ) /* OBJ */
|
||||
ROM_LOAD( "c07-02", 0x80000, 0x80000, CRC(75d16d4b) SHA1(795423278b66eca41accce1f8a4425d65af7b629) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCR (screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */
|
||||
// The actual board duplicates the SCR gfx ROMs for each TC0100SCNs; TODO : ic position
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_COPY( "tc0100scn_1", 0x000000, 0x000000, 0x100000 ) /* SCR (screen 2) */
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn_3", 0 )
|
||||
ROM_COPY( "tc0100scn_1", 0x000000, 0x000000, 0x100000 ) /* SCR (screen 3) */
|
||||
|
||||
ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) )
|
||||
|
@ -164,17 +164,18 @@ Notes:
|
||||
|
||||
TODO:
|
||||
|
||||
- fix uk101 video to 64x16
|
||||
- floppy PIA is actually a 6820
|
||||
- break key
|
||||
- power on reset
|
||||
- Superboard II revisions A/C/D
|
||||
- uk101 medium resolution graphics
|
||||
- uk101 ay-3-8910 sound
|
||||
- cassette
|
||||
- faster cassette
|
||||
- floppy
|
||||
- need floppies to test with
|
||||
- support for BAS files and other formats
|
||||
- wemon?
|
||||
- rs232
|
||||
|
||||
*/
|
||||
|
||||
@ -220,6 +221,7 @@ PRINT FRE(0)
|
||||
#include "includes/osi.h"
|
||||
|
||||
#include "machine/clock.h"
|
||||
#include "sound/wave.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
@ -454,7 +456,7 @@ void sb2m600_state::osi600_mem(address_map &map)
|
||||
map(0xa000, 0xbfff).rom();
|
||||
map(0xd000, 0xd3ff).ram().share("video_ram");
|
||||
map(0xdf00, 0xdf00).rw(FUNC(sb2m600_state::keyboard_r), FUNC(sb2m600_state::keyboard_w));
|
||||
map(0xf000, 0xf001).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf000, 0xf001).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf800, 0xffff).rom();
|
||||
}
|
||||
|
||||
@ -465,7 +467,7 @@ void uk101_state::uk101_mem(address_map &map)
|
||||
map(0xd000, 0xd3ff).ram().share("video_ram");
|
||||
map(0xd400, 0xd7ff).noprw(); // bios sets this to spaces at boot
|
||||
map(0xdc00, 0xdfff).r(FUNC(uk101_state::keyboard_r)).w(FUNC(uk101_state::keyboard_w));
|
||||
map(0xf000, 0xf001).mirror(0x00fe).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf000, 0xf001).mirror(0x00fe).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf800, 0xffff).rom();
|
||||
}
|
||||
|
||||
@ -480,7 +482,7 @@ void c1p_state::c1p_mem(address_map &map)
|
||||
map(0xd400, 0xd7ff).ram().share("color_ram");
|
||||
map(0xd800, 0xd800).w(FUNC(c1p_state::ctrl_w));
|
||||
map(0xdf00, 0xdf00).rw(FUNC(c1p_state::keyboard_r), FUNC(c1p_state::keyboard_w));
|
||||
map(0xf000, 0xf001).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf000, 0xf001).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf7c0, 0xf7c0).w(FUNC(c1p_state::osi630_sound_w));
|
||||
map(0xf7e0, 0xf7e0).w(FUNC(c1p_state::osi630_ctrl_w));
|
||||
map(0xf800, 0xffff).rom();
|
||||
@ -499,7 +501,7 @@ void c1pmf_state::c1pmf_mem(address_map &map)
|
||||
map(0xd400, 0xd7ff).ram().share("color_ram");
|
||||
map(0xd800, 0xd800).w(FUNC(c1pmf_state::ctrl_w));
|
||||
map(0xdf00, 0xdf00).rw(FUNC(c1pmf_state::keyboard_r), FUNC(c1pmf_state::keyboard_w));
|
||||
map(0xf000, 0xf001).rw(m_acia_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf000, 0xf001).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
|
||||
map(0xf7c0, 0xf7c0).w(FUNC(c1pmf_state::osi630_sound_w));
|
||||
map(0xf7e0, 0xf7e0).w(FUNC(c1pmf_state::osi630_ctrl_w));
|
||||
map(0xf800, 0xffff).rom();
|
||||
@ -609,17 +611,34 @@ INPUT_PORTS_END
|
||||
|
||||
/* Machine Start */
|
||||
|
||||
WRITE_LINE_MEMBER( sb2m600_state::write_cassette_clock )
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( sb2m600_state::kansas_w )
|
||||
{
|
||||
m_acia_0->write_rxd((m_cassette->input() > 0.0) ? 1 : 0);
|
||||
m_cass_data[3]++;
|
||||
|
||||
m_acia_0->write_txc(state);
|
||||
m_acia_0->write_rxc(state);
|
||||
if (m_cassbit != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cassbit;
|
||||
}
|
||||
|
||||
if (m_cassbit)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
m_cass->output(BIT(m_cass_data[3], 1) ? -1.0 : +1.0); // 1200Hz
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( sb2m600_state::cassette_tx )
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( sb2m600_state::kansas_r)
|
||||
{
|
||||
m_cassette->output(state ? +1.0 : -1.0);
|
||||
/* cassette - turn 1200/2400Hz to a bit */
|
||||
m_cass_data[1]++;
|
||||
uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
|
||||
|
||||
if (cass_ws != m_cass_data[0])
|
||||
{
|
||||
m_cass_data[0] = cass_ws;
|
||||
m_acia->write_rxd((m_cass_data[1] < 12) ? 1 : 0);
|
||||
m_cass_data[1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sb2m600_state::machine_start()
|
||||
@ -723,18 +742,23 @@ void sb2m600_state::osi600(machine_config &config)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.05);
|
||||
DISCRETE(config, m_discrete);
|
||||
m_discrete->set_intf(osi600_discrete_interface);
|
||||
m_discrete->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
|
||||
/* cassette ACIA */
|
||||
ACIA6850(config, m_acia_0, 0);
|
||||
m_acia_0->txd_handler().set(FUNC(sb2m600_state::cassette_tx));
|
||||
ACIA6850(config, m_acia, 0);
|
||||
m_acia->txd_handler().set([this] (bool state) { m_cassbit = state; });
|
||||
|
||||
CLOCK(config, "cassette_clock", X1/32).signal_handler().set(FUNC(sb2m600_state::write_cassette_clock));
|
||||
clock_device &acia_clock(CLOCK(config, "acia_clock", 4'800)); // 300 baud x 16(divider) = 4800
|
||||
acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc));
|
||||
acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc));
|
||||
|
||||
/* cassette */
|
||||
CASSETTE(config, m_cassette);
|
||||
CASSETTE(config, m_cass);
|
||||
TIMER(config, "kansas_w").configure_periodic(FUNC(sb2m600_state::kansas_w), attotime::from_hz(4800)); // cass write
|
||||
TIMER(config, "kansas_r").configure_periodic(FUNC(sb2m600_state::kansas_r), attotime::from_hz(40000)); // cass read
|
||||
|
||||
/* internal ram */
|
||||
RAM(config, m_ram);
|
||||
@ -752,14 +776,22 @@ void uk101_state::uk101(machine_config &config)
|
||||
uk101_video(config);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_osi);
|
||||
|
||||
/* cassette ACIA */
|
||||
ACIA6850(config, m_acia_0, 0);
|
||||
m_acia_0->txd_handler().set(FUNC(uk101_state::cassette_tx));
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.05);
|
||||
|
||||
CLOCK(config, "cassette_clock", 500000).signal_handler().set(FUNC(uk101_state::write_cassette_clock));
|
||||
/* cassette ACIA */
|
||||
ACIA6850(config, m_acia, 0);
|
||||
m_acia->txd_handler().set([this] (bool state) { m_cassbit = state; });
|
||||
|
||||
clock_device &acia_clock(CLOCK(config, "acia_clock", 4'800)); // 300 baud x 16(divider) = 4800
|
||||
acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc));
|
||||
acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc));
|
||||
|
||||
/* cassette */
|
||||
CASSETTE(config, m_cassette);
|
||||
CASSETTE(config, m_cass);
|
||||
TIMER(config, "kansas_w").configure_periodic(FUNC(uk101_state::kansas_w), attotime::from_hz(4800)); // cass write
|
||||
TIMER(config, "kansas_r").configure_periodic(FUNC(uk101_state::kansas_r), attotime::from_hz(40000)); // cass read
|
||||
|
||||
/* internal ram */
|
||||
RAM(config, m_ram);
|
||||
@ -779,6 +811,7 @@ void c1p_state::c1p(machine_config &config)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.05);
|
||||
DISCRETE(config, m_discrete);
|
||||
m_discrete->set_intf(osi600c_discrete_interface);
|
||||
m_discrete->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
@ -789,13 +822,17 @@ void c1p_state::c1p(machine_config &config)
|
||||
PIA6821(config, "pia_3", 0);
|
||||
|
||||
/* cassette ACIA */
|
||||
ACIA6850(config, m_acia_0, 0);
|
||||
m_acia_0->txd_handler().set(FUNC(c1p_state::cassette_tx));
|
||||
ACIA6850(config, m_acia, 0);
|
||||
m_acia->txd_handler().set([this] (bool state) { m_cassbit = state; });
|
||||
|
||||
CLOCK(config, "cassette_clock", X1/32).signal_handler().set(FUNC(c1p_state::write_cassette_clock));
|
||||
clock_device &acia_clock(CLOCK(config, "acia_clock", 4'800)); // 300 baud x 16(divider) = 4800
|
||||
acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc));
|
||||
acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc));
|
||||
|
||||
/* cassette */
|
||||
CASSETTE(config, m_cassette);
|
||||
CASSETTE(config, m_cass);
|
||||
TIMER(config, "kansas_w").configure_periodic(FUNC(c1p_state::kansas_w), attotime::from_hz(4800)); // cass write
|
||||
TIMER(config, "kansas_r").configure_periodic(FUNC(c1p_state::kansas_r), attotime::from_hz(40000)); // cass read
|
||||
|
||||
/* internal ram */
|
||||
RAM(config, m_ram);
|
||||
@ -895,8 +932,8 @@ void c1p_state::init_c1p()
|
||||
/* System Drivers */
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1978, sb2m600b, 0, 0, osi600, osi600, sb2m600_state, empty_init, "Ohio Scientific", "Superboard II Model 600 (Rev. B)", MACHINE_NOT_WORKING)
|
||||
COMP( 1978, sb2m600b, 0, 0, osi600, osi600, sb2m600_state, empty_init, "Ohio Scientific", "Superboard II Model 600 (Rev. B)", 0 )
|
||||
//COMP( 1980, sb2m600c, 0, 0, osi600c, osi600, sb2m600_state, empty_init, "Ohio Scientific", "Superboard II Model 600 (Rev. C)", MACHINE_NOT_WORKING)
|
||||
COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, init_c1p, "Ohio Scientific", "Challenger 1P Series 2", MACHINE_NOT_WORKING)
|
||||
COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, init_c1p, "Ohio Scientific", "Challenger 1P Series 2", 0 )
|
||||
COMP( 1980, c1pmf, sb2m600b, 0, c1pmf, osi600, c1pmf_state, init_c1p, "Ohio Scientific", "Challenger 1P MF Series 2", MACHINE_NOT_WORKING)
|
||||
COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, uk101_state, empty_init, "Compukit", "UK101", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
|
||||
COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, uk101_state, empty_init, "Compukit", "UK101", 0 )
|
||||
|
@ -368,7 +368,7 @@ void othunder_state::coins_w(u8 data)
|
||||
|
||||
void othunder_state::sound_bankswitch_w(u8 data)
|
||||
{
|
||||
membank("z80bank")->set_entry(data & 3);
|
||||
m_z80bank->set_entry(data & 3);
|
||||
}
|
||||
|
||||
void othunder_state::tc0310fam_w(offs_t offset, u8 data)
|
||||
@ -555,26 +555,15 @@ static const gfx_layout tile16x8_layout =
|
||||
16,8,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ 0, 8, 16, 24 },
|
||||
{ 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
|
||||
{ STEP4(0,16) },
|
||||
{ STEP16(0,1) },
|
||||
{ STEP8(0,16*4) },
|
||||
64*8
|
||||
};
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_othunder )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tile16x8_layout, 0, 256 ) /* sprite parts */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* sprites & playfield */
|
||||
GFXDECODE_ENTRY( "sprites", 0, tile16x8_layout, 0, 256 ) /* sprite parts */
|
||||
GFXDECODE_ENTRY( "tc0100scn", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* sprites & playfield */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -584,7 +573,7 @@ GFXDECODE_END
|
||||
|
||||
void othunder_state::machine_start()
|
||||
{
|
||||
membank("z80bank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
|
||||
m_z80bank->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
|
||||
|
||||
save_item(NAME(m_pan));
|
||||
}
|
||||
@ -661,7 +650,6 @@ void othunder_state::othunder(machine_config &config)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
DRIVERS
|
||||
***************************************************************************/
|
||||
@ -676,16 +664,16 @@ ROM_START( othunder )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
@ -714,16 +702,16 @@ ROM_START( othundero )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
@ -752,16 +740,16 @@ ROM_START( othunderu )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
@ -790,16 +778,16 @@ ROM_START( othunderuo )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
@ -828,16 +816,16 @@ ROM_START( othunderj )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
@ -866,16 +854,16 @@ ROM_START( othunderjsc ) // SC stands for Shopping Center. It was put in a small
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
ROM_REGION( 0x80000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD64_WORD_SWAP( "b67-02.ic2", 0x00002, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-03.ic3", 0x00004, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD64_WORD_SWAP( "b67-04.ic4", 0x00006, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_REGION16_LE( 0x80000, "sprmap_rom", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
|
@ -4,6 +4,8 @@
|
||||
|
||||
Mephisto Polgar and RISC
|
||||
|
||||
The chess engine in Mephisto Risc is also compatible with Tasc's The ChessMachine.
|
||||
|
||||
TODO:
|
||||
- Mephisto Risc maincpu is more likely 5MHz, but LCD doesn't like it
|
||||
|
||||
|
@ -125,18 +125,9 @@ static const u8 s1945j_table[256] = {
|
||||
0x00, 0x00, 0x32, 0x90, 0x00, 0x00, 0xac, 0x64, 0x00, 0x00, 0x2b, 0xc0
|
||||
};
|
||||
|
||||
WRITE32_MEMBER(psikyo_state::s1945_mcu_w)
|
||||
void psikyo_state::s1945_mcu_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
// Accesses are always bytes, so resolve it
|
||||
int suboff;
|
||||
|
||||
for (suboff = 0; suboff < 3; suboff++)
|
||||
if ((0xff << (8 * suboff)) & mem_mask)
|
||||
break;
|
||||
data >>= 8 * suboff;
|
||||
offset = offset * 4 + 4 + (3 - suboff);
|
||||
|
||||
switch (offset)
|
||||
switch (offset + 4)
|
||||
{
|
||||
case 0x06:
|
||||
m_s1945_mcu_inlatch = data;
|
||||
|
@ -2,7 +2,9 @@
|
||||
// copyright-holders:Sandro Ronco
|
||||
/******************************************************************************
|
||||
|
||||
Saitek RISC 2500
|
||||
Saitek RISC 2500, Mephisto Montreux
|
||||
|
||||
The chess engine is also compatible with Tasc's The ChessMachine software.
|
||||
|
||||
TODO:
|
||||
- Sound is too short and high pitch, better when you underclock the cpu.
|
||||
@ -363,6 +365,6 @@ ROM_START( montreux )
|
||||
ROM_END
|
||||
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek / Hegener & Glaser", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Kasparov RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // after Saitek bought Hegener & Glaser
|
||||
|
@ -4085,7 +4085,6 @@ ROM_START( aliensyn )
|
||||
ROM_LOAD( "epr-10726.a10", 0x30000, 0x8000, CRC(d50b7736) SHA1(b1f8e3b0cf2ffee5382098100cfabe21b383cd51) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Alien Syndrome, Sega System 16B
|
||||
// CPU: FD1089A (317-0033)
|
||||
@ -4128,7 +4127,6 @@ ROM_START( aliensyn3 )
|
||||
ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(68bb7745) SHA1(f0c60d8a503a90ba6a2443be856b18322e3ec759) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Alien Syndrome, Sega System 16B
|
||||
// CPU: 68000 + MC8123B (317-00xx) (sorry missing code, scratched off label)
|
||||
@ -4171,7 +4169,6 @@ ROM_START( aliensyn7 )
|
||||
ROM_LOAD( "317-00xx.key", 0x0000, 0x2000, CRC(76b370cd) SHA1(996a4a24dec085caf93cbe614d3b0888379c91dd) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Alien Syndrome, Sega System 16B
|
||||
// CPU: FD1089A (317-0033)
|
||||
@ -4219,8 +4216,7 @@ ROM_END
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
// Action Fighter, Sega System 16B
|
||||
|
||||
|
||||
//
|
||||
ROM_START( afightere )
|
||||
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "epr10269.bin", 0x00001, 0x08000, CRC(688b4ff7) SHA1(8972b75b6fa72513a6ebb3a5ed5988a43f1b6266) )
|
||||
@ -4280,7 +4276,6 @@ ROM_START( afighterf )
|
||||
ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( afighterg )
|
||||
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "epr10160.bin", 0x00001, 0x08000, CRC(86f020da) SHA1(e7ac4b70dc375d9e2491f1a90ae154699e7627a2) ) // == encrypted 10169 (not perfect match) (same rev as 10354)
|
||||
@ -4312,7 +4307,6 @@ ROM_START( afighterg )
|
||||
ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(65b5b1af) SHA1(9a236c0c223064f9a2a56561e10b9ffed0f567a3) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( afighterh )
|
||||
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "epr10354.bin", 0x00001, 0x08000, CRC(6dad6dd1) SHA1(8cdd1c10d60cda09f888b2f03b7d4c76100b4ad0) ) // == encrypted 10169 (not perfect match) (same rev as 10160)
|
||||
@ -4789,6 +4783,7 @@ ROM_START( snapper )
|
||||
ROM_LOAD( "snap5.r05", 0x10000, 0x8000, CRC(378e08eb) SHA1(f2c10bd9e885c185ac2d0d51d907ceca1f21dd7a) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -4824,7 +4819,6 @@ ROM_START( lockonph )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -5024,7 +5018,6 @@ ROM_START( aurailj )
|
||||
ROM_LOAD( "317-0167.key", 0x0000, 0x2000, CRC(fed38390) SHA1(b5f458bc70c069542be16d476645c153ed1d1b45) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( aurailjd )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "bootleg_epr-13446.a7", 0x000000, 0x20000, CRC(25221510) SHA1(8c461db9438bc785c5f81e3cb3bcea9adbd2be9c) )
|
||||
@ -5064,6 +5057,7 @@ ROM_START( aurailjd )
|
||||
ROM_RELOAD( 0x30000, 0x20000 )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -5122,7 +5116,6 @@ ROM_START( bayrouted )
|
||||
ROM_LOAD( "mpr-12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Bay Route, Sega System 16B
|
||||
// CPU: FD1094 (317-0115)
|
||||
@ -5265,7 +5258,6 @@ ROM_START( bullet )
|
||||
ROM_LOAD( "epr-10998.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( bulletd )
|
||||
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "bootleg_epr-11010.a4", 0x000000, 0x08000, CRC(c4b7cb63) SHA1(c35fceab2a03f23d9690432a582064d12de950f6) )
|
||||
@ -5295,6 +5287,7 @@ ROM_START( bulletd )
|
||||
ROM_LOAD( "epr-10998.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -5639,6 +5632,7 @@ ROM_START( cottonjad )
|
||||
ROM_LOAD( "opr-13061.a11", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -5730,7 +5724,6 @@ ROM_START( dunkshota ) // several ROMs had replacement? (different style to othe
|
||||
ROM_LOAD( "317-0022.key", 0x0000, 0x2000, CRC(3f218333) SHA1(6f73801070a2c9748fc319cc95ab7a802f8ea7b6) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( dunkshoto )
|
||||
ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "epr-10467.a1", 0x000001, 0x8000, CRC(29774114) SHA1(3a88739213afd4ef7807ddbd3acdfddeb9636fd3) )
|
||||
@ -6264,7 +6257,6 @@ ROM_START( exctleag )
|
||||
ROM_LOAD( "epr-11143.a11", 0x40000, 0x8000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( exctleagd )
|
||||
ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "bootleg_epr-11939.a4", 0x00000, 0x10000, CRC(42db9082) SHA1(3ac03ad9dc9b5554b0e4ded4520f957e7dc4bf6e) )
|
||||
@ -6297,6 +6289,7 @@ ROM_START( exctleagd )
|
||||
ROM_LOAD( "epr-11143.a11", 0x40000, 0x8000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -6434,7 +6427,6 @@ ROM_START( fpointbla )
|
||||
ROM_LOAD( "b1-ic19.bin", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Flash Point, Sega System 16B
|
||||
// CPU: FD1094 (317-0127A)
|
||||
@ -6498,6 +6490,7 @@ ROM_START( fpoint1d )
|
||||
ROM_LOAD( "epr-12592.a10", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -6860,6 +6853,7 @@ ROM_START( goldnaxe1d )
|
||||
ROM_LOAD( "mpr-12384.ic6", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -6997,6 +6991,7 @@ ROM_START( hwchampjd )
|
||||
ROM_LOAD( "pls153.bin", 0x0000, 0x00eb, CRC(39b47212) SHA1(432b47aee5ecbf08a8a6dc2f8379c816feb86328) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -7396,7 +7391,6 @@ ROM_START( cencourt )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -7443,16 +7437,18 @@ ROM_END
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
// Ryukyu, Sega System 16B
|
||||
// CPU: FD1094 8J2 (317-5023)
|
||||
// ROM Board type: 171-5521
|
||||
// CPU: FD1094 8M2 (317-5023A)
|
||||
// ROM Board type: 171-5704
|
||||
// Sega game ID: 836-7666 RYUKYU
|
||||
// ROM board: 836-7667
|
||||
//
|
||||
ROM_START( ryukyu )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "epr-13348.a7", 0x00000, 0x10000, CRC(5f0e0c86) SHA1(f8f5912a190d0755cc5158e2e43cceb825f95b4f) )
|
||||
ROM_LOAD16_BYTE( "epr-13347.a5", 0x00001, 0x10000, CRC(398031fa) SHA1(5c118c85b7af1a83726b95bbeb85cb5020254f57) )
|
||||
ROM_LOAD16_BYTE( "epr-13348a.a7", 0x00000, 0x10000, CRC(64f6ada9) SHA1(31e2adc8697c21ca4aa2d9357f7303644168d0a2) )
|
||||
ROM_LOAD16_BYTE( "epr-13347a.a5", 0x00001, 0x10000, CRC(fade1f50) SHA1(46e6224060d526aa362df1a1026ba445832ad7f3) )
|
||||
|
||||
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
|
||||
ROM_LOAD( "317-5023.key", 0x0000, 0x2000, CRC(43704331) SHA1(e827547fa2e80fe641687cb41bb33cb9c5783f56) )
|
||||
ROM_LOAD( "317-5023a.key", 0x0000, 0x2000, CRC(5e372b89) SHA1(885e56e5a54ed46a230396654696e2fd5f31a382) )
|
||||
|
||||
ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
|
||||
ROM_LOAD( "opr-13351.a14", 0x00000, 0x20000, CRC(a68a4e6d) SHA1(ee3e317c7184b41af5dd383d41f7be3eebff0d04) )
|
||||
@ -7472,18 +7468,16 @@ ROM_END
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Ryukyu, Sega System 16B
|
||||
// CPU: FD1094 8M2 (317-5023A)
|
||||
// ROM Board type: 171-5704
|
||||
// Sega game ID: 836-7666 RYUKYU
|
||||
// ROM board: 836-7667
|
||||
// CPU: FD1094 8J2 (317-5023)
|
||||
// ROM Board type: 171-5521
|
||||
//
|
||||
ROM_START( ryukyua )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "epr-13348a.a7", 0x00000, 0x10000, CRC(64f6ada9) SHA1(31e2adc8697c21ca4aa2d9357f7303644168d0a2) )
|
||||
ROM_LOAD16_BYTE( "epr-13347a.a5", 0x00001, 0x10000, CRC(fade1f50) SHA1(46e6224060d526aa362df1a1026ba445832ad7f3) )
|
||||
ROM_LOAD16_BYTE( "epr-13348.a7", 0x00000, 0x10000, CRC(5f0e0c86) SHA1(f8f5912a190d0755cc5158e2e43cceb825f95b4f) )
|
||||
ROM_LOAD16_BYTE( "epr-13347.a5", 0x00001, 0x10000, CRC(398031fa) SHA1(5c118c85b7af1a83726b95bbeb85cb5020254f57) )
|
||||
|
||||
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
|
||||
ROM_LOAD( "317-5023a.key", 0x0000, 0x2000, NO_DUMP )
|
||||
ROM_LOAD( "317-5023.key", 0x0000, 0x2000, CRC(43704331) SHA1(e827547fa2e80fe641687cb41bb33cb9c5783f56) )
|
||||
|
||||
ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
|
||||
ROM_LOAD( "opr-13351.a14", 0x00000, 0x20000, CRC(a68a4e6d) SHA1(ee3e317c7184b41af5dd383d41f7be3eebff0d04) )
|
||||
@ -7522,6 +7516,7 @@ ROM_START( ryukyud )
|
||||
ROM_LOAD( "opr-13350.a11", 0x10000, 0x20000, CRC(3c59a658) SHA1(2cef13ee9e666bb850fe6c6e6954d7b75df665a9) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -7625,8 +7620,6 @@ ROM_START( sdibl )
|
||||
ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
ROM_START(sdibl2)
|
||||
ROM_REGION16_BE(0x40000, "maincpu", 0) // 68000 data
|
||||
ROM_LOAD16_BYTE("de1", 0x00000, 0x08000, CRC(56f6fd26) SHA1(15ca2567102f931329163b76a2be4cf8fb634cc4) )
|
||||
@ -8093,6 +8086,7 @@ ROM_START( sonicbomd )
|
||||
ROM_LOAD( "epr-11349.a9", 0x20000, 0x8000, CRC(8e4b6204) SHA1(ec0a2812b4726b5ff236f2fbb63fd2dd13cf4935) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -8290,6 +8284,7 @@ ROM_START( tetris1d )
|
||||
ROM_LOAD( "epr-12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -8514,7 +8509,6 @@ ROM_START( wb3 )
|
||||
ROM_LOAD( "317-0098.c2", 0x00000, 0x1000, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
// Wonder Boy III, Sega System 16B
|
||||
// CPU: FD1094 (317-0087)
|
||||
@ -8707,6 +8701,7 @@ ROM_START( wb32d )
|
||||
ROM_LOAD( "epr-12127.a7", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -8883,7 +8878,6 @@ ROM_START( wrestwar1 )
|
||||
ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( wrestwar1d )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
|
||||
ROM_LOAD16_BYTE( "bootleg_epr-12145.a7", 0x00000, 0x20000, CRC(6a50d373) SHA1(bc4ff28f02a326ca535251cc59399149e625b266) )
|
||||
@ -8916,6 +8910,7 @@ ROM_START( wrestwar1d )
|
||||
ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) )
|
||||
ROM_END
|
||||
|
||||
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
//*************************************************************************************************************************
|
||||
@ -9314,8 +9309,8 @@ GAME( 1988, cencourt, passsht, system16b_mc8123, cencourt, segas16b_stat
|
||||
|
||||
GAME( 1991, riotcity, 0, system16b, riotcity, segas16b_state, init_generic_5704, ROT0, "Sega / Westone", "Riot City (Japan)", 0 )
|
||||
|
||||
GAME( 1990, ryukyu, 0, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023)", 0 )
|
||||
GAME( 1990, ryukyua, ryukyu, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023A)", MACHINE_NOT_WORKING ) // decryption key not available
|
||||
GAME( 1990, ryukyu, 0, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Rev A, Japan) (FD1094 317-5023A)", 0 )
|
||||
GAME( 1990, ryukyua, ryukyu, system16b_fd1094, ryukyu, segas16b_state, init_generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023)", 0 )
|
||||
|
||||
GAME( 1987, defense, sdi, system16b_fd1089a, sdi, segas16b_state, init_defense_5358_small, ROT0, "Sega", "Defense (System 16B, FD1089A 317-0028)", 0 )
|
||||
GAME( 1987, sdib, sdi, system16b_fd1089a, sdi, segas16b_state, init_defense_5358_small, ROT0, "Sega", "SDI - Strategic Defense Initiative (System 16B, FD1089A 317-0028)", 0 )
|
||||
|
@ -375,5 +375,5 @@ ROM_START( stratos )
|
||||
ROM_FILL(0x00000, 0x10000, 0xff)
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, init_stratos, "SciSys", "Kasparov Chess Computer: Stratos", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, init_stratos, "SciSys", "Kasparov Stratos", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
|
||||
|
@ -98,6 +98,7 @@ public:
|
||||
, m_screen(*this, "screen")
|
||||
, m_palette(*this, "palette")
|
||||
, m_hopper(*this, "hopper")
|
||||
, m_ticket(*this, "ticket")
|
||||
, m_keyb(*this, "KEYB_%u", 0U)
|
||||
, m_dsw(*this, "DSW%u", 1U)
|
||||
, m_system(*this, "SYSTEM")
|
||||
@ -203,7 +204,6 @@ private:
|
||||
void xplan_io(address_map &map);
|
||||
void xplan_map(address_map &map);
|
||||
void xtrain_io(address_map &map);
|
||||
void ptrain_io(address_map &map);
|
||||
|
||||
virtual void machine_start() override { m_leds.resolve(); }
|
||||
|
||||
@ -227,6 +227,7 @@ private:
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
optional_device<ticket_dispenser_device> m_hopper;
|
||||
optional_device<ticket_dispenser_device> m_ticket;
|
||||
optional_ioport_array<5> m_keyb;
|
||||
optional_ioport_array<4> m_dsw;
|
||||
optional_ioport m_system;
|
||||
@ -1504,10 +1505,14 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w)
|
||||
switch (offset)
|
||||
{
|
||||
case 0: // D
|
||||
m_hopper->motor_w(BIT(data, 2));
|
||||
// 0x40 = serial out ? (at boot)
|
||||
break;
|
||||
|
||||
case 1: // C
|
||||
if (m_ticket.found())
|
||||
m_ticket->motor_w(BIT(data, 0));
|
||||
|
||||
m_leds[0] = BIT(data, 1); // re-double
|
||||
m_leds[1] = BIT(data, 2); // half double
|
||||
break;
|
||||
@ -1521,8 +1526,10 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w)
|
||||
break;
|
||||
|
||||
case 3: // A
|
||||
machine().bookkeeping().coin_counter_w(0, data & 0x01 ); // coin in
|
||||
machine().bookkeeping().coin_counter_w(1, data & 0x02 ); // key in
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // coin in
|
||||
machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // key in
|
||||
machine().bookkeeping().coin_counter_w(2, BIT(data, 2)); // hopper out
|
||||
machine().bookkeeping().coin_counter_w(3, BIT(data, 3)); // ticket out
|
||||
|
||||
m_leds[7] = BIT(data, 4); // start
|
||||
break;
|
||||
@ -1533,8 +1540,6 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w)
|
||||
|
||||
READ8_MEMBER(subsino2_state::xtrain_subsino_r)
|
||||
{
|
||||
// xtrain immediately ends the payout when this matches
|
||||
// but mtrain refuses to payout if this doesn't match
|
||||
static const char data[] = { "SUBSINO" };
|
||||
return data[offset];
|
||||
}
|
||||
@ -1553,11 +1558,6 @@ void subsino2_state::xtrain_io(address_map &map)
|
||||
|
||||
// 306 = d, 307 = c, 308 = b, 309 = a
|
||||
map(0x0306, 0x0309).w(FUNC(subsino2_state::xtrain_outputs_w)).share("outputs");
|
||||
}
|
||||
|
||||
void subsino2_state::ptrain_io(address_map &map)
|
||||
{
|
||||
xtrain_io(map);
|
||||
map(0x0313, 0x0319).r(FUNC(subsino2_state::xtrain_subsino_r));
|
||||
}
|
||||
|
||||
@ -2212,46 +2212,54 @@ static INPUT_PORTS_START( xtrain )
|
||||
|
||||
// JAMMA inputs:
|
||||
PORT_START("IN A")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Re-Double") PORT_CODE(KEYCODE_N) // re-double
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_HALF ) PORT_NAME("Half Double") // half double
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start") // start
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Small") // hold 3 / small / decrease sample in test mode
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet") // bet
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Re-Double") PORT_CODE(KEYCODE_N)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_GAMBLE_HALF) PORT_NAME("Half Double")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START1) PORT_NAME("Start")
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD3) PORT_NAME("Hold 3 / Small")
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BET) PORT_NAME("Bet")
|
||||
|
||||
PORT_START("IN B")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Take" ) // hold 1 / take
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Double Up / Help") // double up / help
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Big") // hold 2 / big / increase sample in test mode
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // coin in
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1) PORT_NAME("Hold 1 / Take" )
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP) PORT_NAME("Double Up / Help")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD2) PORT_NAME("Hold 2 / Big")
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_COIN1) PORT_NAME("Coin In")
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
|
||||
PORT_START("IN C")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // stats (keep pressed during boot for service mode)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_IMPULSE(1) // service mode
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // pay-out
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK) // keep pressed during boot for service mode
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT)
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE)
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT)
|
||||
|
||||
PORT_START("IN D")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) // reset
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) // serial in?
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1)
|
||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_CUSTOM) // serial in?
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( ptrain )
|
||||
PORT_INCLUDE(xtrain)
|
||||
|
||||
PORT_MODIFY("IN B")
|
||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Water-Nymph
|
||||
***************************************************************************/
|
||||
@ -2570,12 +2578,15 @@ void subsino2_state::xtrain(machine_config &config)
|
||||
{
|
||||
xplan(config);
|
||||
m_maincpu->set_addrmap(AS_IO, &subsino2_state::xtrain_io);
|
||||
|
||||
HOPPER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
|
||||
}
|
||||
|
||||
void subsino2_state::ptrain(machine_config &config)
|
||||
{
|
||||
xtrain(config);
|
||||
m_maincpu->set_addrmap(AS_IO, &subsino2_state::ptrain_io);
|
||||
|
||||
TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
|
||||
}
|
||||
|
||||
void subsino2_state::expcard(machine_config &config)
|
||||
@ -3352,7 +3363,7 @@ GAME( 1998, saklove, 0, saklove, saklove, subsino2_state, init_saklove
|
||||
|
||||
GAME( 1999, xtrain, 0, xtrain, xtrain, subsino2_state, init_xtrain, ROT0, "Subsino", "X-Train (Ver. 1.3)", 0 )
|
||||
|
||||
GAME( 1999, ptrain, 0, ptrain, xtrain, subsino2_state, init_ptrain, ROT0, "Subsino", "Panda Train (Novamatic 1.7)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1999, ptrain, 0, ptrain, ptrain, subsino2_state, init_ptrain, ROT0, "Subsino", "Panda Train (Novamatic 1.7)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
GAME( 1999, bishjan, 0, bishjan, bishjan, subsino2_state, init_bishjan, ROT0, "Subsino", "Bishou Jan (Japan, Ver. 203)", MACHINE_NO_SOUND )
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -4,6 +4,9 @@
|
||||
|
||||
Tasc ChessSystem
|
||||
|
||||
Commonly known as Tasc R30, it's basically a dedicated ChessMachine.
|
||||
The chess engine is also compatible with Tasc's The ChessMachine software.
|
||||
|
||||
R30 hardware notes:
|
||||
- ARM6 CPU(P60ARM/CG) @ 30MHz
|
||||
- 256KB ROM, 512KB program RAM, 128KB permanent RAM
|
||||
|
@ -497,38 +497,16 @@ static const gfx_layout tile16x16_layout =
|
||||
16*16 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
16,16, /* 16*16 characters */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ STEP4(0,1) },
|
||||
{ STEP8(7*4,-4), STEP8(15*4,-4) },
|
||||
{ STEP16(0,16*4) },
|
||||
16*16*4 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout scclayout =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
RGN_FRAC(1,2),
|
||||
6, /* 4 bits per pixel */
|
||||
{ RGN_FRAC(1,2), RGN_FRAC(1,2)+1, STEP4(0,1) },
|
||||
{ STEP8(0,4) },
|
||||
{ STEP8(0,4*8) },
|
||||
32*8 /* every sprite takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_undrfire )
|
||||
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0, 512 )
|
||||
GFXDECODE_ENTRY( "tc0100scn", 0x0, gfx_8x8x4_packed_msb, 0, 512 )
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( gfx_cbombers )
|
||||
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0x1000, 512 )
|
||||
GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "sprites", 0x0, tile16x16_layout, 0, 512 )
|
||||
GFXDECODE_ENTRY( "tc0480scp", 0x0, gfx_16x16x4_packed_lsb, 0x1000, 512 )
|
||||
GFXDECODE_ENTRY( "tc0100scn", 0x0, gfx_8x8x4_packed_msb, 0, 512 )
|
||||
GFXDECODE_END
|
||||
|
||||
/***********************************************************
|
||||
@ -669,22 +647,23 @@ ROM_START( undrfire )
|
||||
ROM_LOAD16_BYTE( "d67-20", 0x100000, 0x20000, CRC(974ebf69) SHA1(8a5de503c514bf0da0c956e2dfdf0cfb83ea1f72) )
|
||||
ROM_LOAD16_BYTE( "d67-21", 0x100001, 0x20000, CRC(8fc6046f) SHA1(28522ce5c5900f74d3faa86710256a7201b32500) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 )
|
||||
ROM_LOAD32_WORD_SWAP( "d67-08", 0x000002, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD_SWAP( "d67-09", 0x000000, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) )
|
||||
ROM_REGION( 0x400000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_WORD( "d67-08", 0x000000, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD( "d67-09", 0x000002, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) )
|
||||
|
||||
ROM_REGION( 0xa00000, "gfx2", 0 )
|
||||
ROM_REGION( 0xa00000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-03", 0x000000, 0x200000, CRC(3b6e99a9) SHA1(1e0e66763ddfa18a2d291626b245633555092959) ) /* OBJ 16x16 tiles */
|
||||
ROM_LOAD16_WORD_SWAP( "d67-04", 0x200000, 0x200000, CRC(8f2934c9) SHA1(ead95b34eec3a6df27199edcbdd5595bc6555a50) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-05", 0x400000, 0x200000, CRC(e2e7dcf3) SHA1(185dbd0489931123a295139dc0a045ad239018fb) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-06", 0x600000, 0x200000, CRC(a2a63488) SHA1(a1ed140cc3757c3c05a0a822089c6efc83bf4805) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-07", 0x800000, 0x200000, CRC(189c0ee5) SHA1(de85b39dc67f31ef80800ff6ec9a391652eb12e4) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||
ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 6bpp */
|
||||
ROM_REGION( 0x200000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 4bpp */
|
||||
ROM_LOAD16_BYTE( "d67-11", 0x000000, 0x100000, CRC(7a401bb3) SHA1(47257a6a4b37ec1ceb4e974b776ee3ea30db06fa) )
|
||||
ROM_LOAD ( "d67-12", 0x300000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) )
|
||||
ROM_FILL ( 0x200000, 0x100000, 0x00 )
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 )
|
||||
ROM_LOAD ( "d67-12", 0x000000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) /* PIV 8x8 tiles, 2bpp */
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "spritemap", 0 )
|
||||
ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */
|
||||
@ -709,22 +688,23 @@ ROM_START( undrfireu )
|
||||
ROM_LOAD16_BYTE( "d67-20", 0x100000, 0x20000, CRC(974ebf69) SHA1(8a5de503c514bf0da0c956e2dfdf0cfb83ea1f72) )
|
||||
ROM_LOAD16_BYTE( "d67-21", 0x100001, 0x20000, CRC(8fc6046f) SHA1(28522ce5c5900f74d3faa86710256a7201b32500) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 )
|
||||
ROM_LOAD32_WORD_SWAP( "d67-08", 0x000002, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD_SWAP( "d67-09", 0x000000, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) )
|
||||
ROM_REGION( 0x400000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_WORD( "d67-08", 0x000000, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD( "d67-09", 0x000002, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) )
|
||||
|
||||
ROM_REGION( 0xa00000, "gfx2", 0 )
|
||||
ROM_REGION( 0xa00000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-03", 0x000000, 0x200000, CRC(3b6e99a9) SHA1(1e0e66763ddfa18a2d291626b245633555092959) ) /* OBJ 16x16 tiles */
|
||||
ROM_LOAD16_WORD_SWAP( "d67-04", 0x200000, 0x200000, CRC(8f2934c9) SHA1(ead95b34eec3a6df27199edcbdd5595bc6555a50) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-05", 0x400000, 0x200000, CRC(e2e7dcf3) SHA1(185dbd0489931123a295139dc0a045ad239018fb) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-06", 0x600000, 0x200000, CRC(a2a63488) SHA1(a1ed140cc3757c3c05a0a822089c6efc83bf4805) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-07", 0x800000, 0x200000, CRC(189c0ee5) SHA1(de85b39dc67f31ef80800ff6ec9a391652eb12e4) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||
ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 6bpp */
|
||||
ROM_REGION( 0x200000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 4bpp */
|
||||
ROM_LOAD16_BYTE( "d67-11", 0x000000, 0x100000, CRC(7a401bb3) SHA1(47257a6a4b37ec1ceb4e974b776ee3ea30db06fa) )
|
||||
ROM_LOAD ( "d67-12", 0x300000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) )
|
||||
ROM_FILL ( 0x200000, 0x100000, 0x00 )
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 )
|
||||
ROM_LOAD ( "d67-12", 0x000000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) /* PIV 8x8 tiles, 2bpp */
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "spritemap", 0 )
|
||||
ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */
|
||||
@ -748,22 +728,23 @@ ROM_START( undrfirej )
|
||||
ROM_LOAD16_BYTE( "d67-20", 0x100000, 0x20000, CRC(974ebf69) SHA1(8a5de503c514bf0da0c956e2dfdf0cfb83ea1f72) )
|
||||
ROM_LOAD16_BYTE( "d67-21", 0x100001, 0x20000, CRC(8fc6046f) SHA1(28522ce5c5900f74d3faa86710256a7201b32500) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 )
|
||||
ROM_LOAD32_WORD_SWAP( "d67-08", 0x000002, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD_SWAP( "d67-09", 0x000000, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) )
|
||||
ROM_REGION( 0x400000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_WORD( "d67-08", 0x000000, 0x200000, CRC(56730d44) SHA1(110872714b3c26a82473c7b80c120918b91b1b4b) ) /* SCR 16x16 tiles */
|
||||
ROM_LOAD32_WORD( "d67-09", 0x000002, 0x200000, CRC(3c19f9e3) SHA1(7ba8475d37cbf8bf38029124afdf62c915c8668d) )
|
||||
|
||||
ROM_REGION( 0xa00000, "gfx2", 0 )
|
||||
ROM_REGION( 0xa00000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-03", 0x000000, 0x200000, CRC(3b6e99a9) SHA1(1e0e66763ddfa18a2d291626b245633555092959) ) /* OBJ 16x16 tiles */
|
||||
ROM_LOAD16_WORD_SWAP( "d67-04", 0x200000, 0x200000, CRC(8f2934c9) SHA1(ead95b34eec3a6df27199edcbdd5595bc6555a50) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-05", 0x400000, 0x200000, CRC(e2e7dcf3) SHA1(185dbd0489931123a295139dc0a045ad239018fb) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-06", 0x600000, 0x200000, CRC(a2a63488) SHA1(a1ed140cc3757c3c05a0a822089c6efc83bf4805) )
|
||||
ROM_LOAD16_WORD_SWAP( "d67-07", 0x800000, 0x200000, CRC(189c0ee5) SHA1(de85b39dc67f31ef80800ff6ec9a391652eb12e4) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||
ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 6bpp */
|
||||
ROM_REGION( 0x200000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "d67-10", 0x000001, 0x100000, CRC(d79e6ce9) SHA1(8b38302971816d599cdaa3279cb6395441373c6f) ) /* PIV 8x8 tiles, 4bpp */
|
||||
ROM_LOAD16_BYTE( "d67-11", 0x000000, 0x100000, CRC(7a401bb3) SHA1(47257a6a4b37ec1ceb4e974b776ee3ea30db06fa) )
|
||||
ROM_LOAD ( "d67-12", 0x300000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) )
|
||||
ROM_FILL ( 0x200000, 0x100000, 0x00 )
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 )
|
||||
ROM_LOAD ( "d67-12", 0x000000, 0x100000, CRC(67b16fec) SHA1(af0f9f50516331780ef6cfab1e12a23edf87daa7) ) /* PIV 8x8 tiles, 2bpp */
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "spritemap", 0 )
|
||||
ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */
|
||||
@ -791,11 +772,11 @@ ROM_START( cbombers )
|
||||
ROM_LOAD16_BYTE( "d83_28.ic26", 0x00001, 0x20000, CRC(06328ef7) SHA1(90a14649e56221e47b87958896f6eae4556265c2) )
|
||||
ROM_LOAD16_BYTE( "d83_29.ic27", 0x00000, 0x20000, CRC(771b4080) SHA1(a47c3a6abc07a6a61b694d32baa0ad4c25045841) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 )
|
||||
ROM_LOAD32_WORD_SWAP( "d83_04.ic8", 0x000002, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) )
|
||||
ROM_LOAD32_WORD_SWAP( "d83_05.ic7", 0x000000, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) )
|
||||
ROM_REGION( 0x400000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_WORD( "d83_04.ic8", 0x000000, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) )
|
||||
ROM_LOAD32_WORD( "d83_05.ic7", 0x000002, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) )
|
||||
|
||||
ROM_REGION( 0xf00000, "gfx2", 0 )
|
||||
ROM_REGION( 0xf00000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_06.ic28", 0x000000, 0x200000, CRC(4b71944e) SHA1(e8ed190280c7378fb4edcb192cef0d4d62582ad5) )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_07.ic30", 0x300000, 0x200000, CRC(29861b61) SHA1(76562b0243c1bc38623c0ef9d20de7572a979e37) )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_08.ic32", 0x600000, 0x200000, CRC(a0e81e01) SHA1(96ad8cfc849caaf85350cfc7cf23ad23635a3813) )
|
||||
@ -807,11 +788,12 @@ ROM_START( cbombers )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_14.ic44", 0xb00000, 0x100000, CRC(8b6f4f12) SHA1(6a28004d287f00627622376aa3d6704f2684a6f3) )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_15.ic42", 0xe00000, 0x100000, CRC(1b71175e) SHA1(60ad38ce97fd7995ff2f29d6b1a3b873dc2f0eb3) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||
ROM_REGION( 0x200000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "d83_16.ic19", 0x000001, 0x100000, CRC(d364cf1e) SHA1(ee43f50edf50ec840acfb98b1314140ee9693839) )
|
||||
ROM_LOAD16_BYTE( "d83_17.ic5", 0x000000, 0x100000, CRC(0ffe737c) SHA1(5923a4edf9d0c8339f793840c2bdc691e2c651e6) )
|
||||
ROM_LOAD ( "d83_18.ic6", 0x300000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) )
|
||||
ROM_FILL ( 0x200000, 0x100000, 0x00 )
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 )
|
||||
ROM_LOAD ( "d83_18.ic6", 0x000000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "spritemap", 0 )
|
||||
ROM_LOAD16_BYTE( "d83_31.ic10", 0x000001, 0x40000, CRC(85c37961) SHA1(15ea5c4904d910575e984e146c8941dff913d45f) )
|
||||
@ -845,11 +827,11 @@ ROM_START( cbombersj )
|
||||
ROM_LOAD16_BYTE( "d83_28.ic26", 0x00001, 0x20000, CRC(06328ef7) SHA1(90a14649e56221e47b87958896f6eae4556265c2) )
|
||||
ROM_LOAD16_BYTE( "d83_29.ic27", 0x00000, 0x20000, CRC(771b4080) SHA1(a47c3a6abc07a6a61b694d32baa0ad4c25045841) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 )
|
||||
ROM_LOAD32_WORD_SWAP( "d83_04.ic8", 0x000002, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) )
|
||||
ROM_LOAD32_WORD_SWAP( "d83_05.ic7", 0x000000, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) )
|
||||
ROM_REGION( 0x400000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_WORD( "d83_04.ic8", 0x000000, 0x200000, CRC(79f36cce) SHA1(2c8dc4cd5c4aa335c1e45888f5947acf94fa628a) )
|
||||
ROM_LOAD32_WORD( "d83_05.ic7", 0x000002, 0x200000, CRC(7787e495) SHA1(1758de5fdd1d12727368d08d7d4752c3756fc23e) )
|
||||
|
||||
ROM_REGION( 0xf00000, "gfx2", 0 )
|
||||
ROM_REGION( 0xf00000, "sprites", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_06.ic28", 0x000000, 0x200000, CRC(4b71944e) SHA1(e8ed190280c7378fb4edcb192cef0d4d62582ad5) )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_07.ic30", 0x300000, 0x200000, CRC(29861b61) SHA1(76562b0243c1bc38623c0ef9d20de7572a979e37) )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_08.ic32", 0x600000, 0x200000, CRC(a0e81e01) SHA1(96ad8cfc849caaf85350cfc7cf23ad23635a3813) )
|
||||
@ -861,11 +843,12 @@ ROM_START( cbombersj )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_14.ic44", 0xb00000, 0x100000, CRC(8b6f4f12) SHA1(6a28004d287f00627622376aa3d6704f2684a6f3) )
|
||||
ROM_LOAD16_WORD_SWAP( "d83_15.ic42", 0xe00000, 0x100000, CRC(1b71175e) SHA1(60ad38ce97fd7995ff2f29d6b1a3b873dc2f0eb3) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||
ROM_REGION( 0x200000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "d83_16.ic19", 0x000001, 0x100000, CRC(d364cf1e) SHA1(ee43f50edf50ec840acfb98b1314140ee9693839) )
|
||||
ROM_LOAD16_BYTE( "d83_17.ic5", 0x000000, 0x100000, CRC(0ffe737c) SHA1(5923a4edf9d0c8339f793840c2bdc691e2c651e6) )
|
||||
ROM_LOAD ( "d83_18.ic6", 0x300000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) )
|
||||
ROM_FILL ( 0x200000, 0x100000, 0x00 )
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 )
|
||||
ROM_LOAD ( "d83_18.ic6", 0x000000, 0x100000, CRC(87979155) SHA1(0ffafa970f9f9c98f8938104b97e63d2b5757804) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "spritemap", 0 )
|
||||
ROM_LOAD16_BYTE( "d83_31.ic10", 0x000001, 0x40000, CRC(85c37961) SHA1(15ea5c4904d910575e984e146c8941dff913d45f) )
|
||||
@ -901,17 +884,17 @@ ROM_START( cbombersp )
|
||||
ROM_LOAD16_BYTE( "5-l.bin", 0x00001, 0x20000, CRC(aed4c3c0) SHA1(004f83ce0739cb2839022eb4d83f82e54776914f) )
|
||||
ROM_LOAD16_BYTE( "5-h.bin", 0x00000, 0x20000, CRC(c6ec60e4) SHA1(554f19926e050ff2b8c56c30f174aca5a3fff845) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx1", 0 )
|
||||
ROM_LOAD32_BYTE( "scp0aa_2b04_ic35.bin", 0x000000, 0x80000, CRC(b8ec56bd) SHA1(00191fd4b2e315a5a18f2e690a45b6f6a6ebb3d2) )
|
||||
ROM_LOAD32_BYTE( "scp0hl_ic9.bin", 0x000001, 0x80000, CRC(5b6e413e) SHA1(7eaee158e985a20b5c228b476ee102f88311423a) )
|
||||
ROM_LOAD32_BYTE( "scp0lh_ic22.bin", 0x000002, 0x80000, CRC(d5109bca) SHA1(c4c5b8dbc1139718d2aa73413b1b206f9df10fed) )
|
||||
ROM_LOAD32_BYTE( "scp0ll_ic7.bin", 0x000003, 0x80000, CRC(b1af439d) SHA1(a13fb4242808d1f3fc629988912c8186a99fb878) )
|
||||
ROM_LOAD32_BYTE( "scp1hh_ic36.bin", 0x200000, 0x80000, CRC(24f545d8) SHA1(c5ae0e714ed4765f3416cb58bc9cfccfbf78081c) )
|
||||
ROM_LOAD32_BYTE( "scp1hl_ic24.bin", 0x200001, 0x80000, CRC(46d198ba) SHA1(d9c9ddb23ad8f2abbd0ab2322d31d929085f0591) )
|
||||
ROM_LOAD32_BYTE( "scp1lh_ic23.bin", 0x200002, 0x80000, CRC(7c9f0035) SHA1(a5632bd11426ba2cf0016847a3c08a2b90498271) )
|
||||
ROM_LOAD32_BYTE( "scp1ll_ic8.bin", 0x200003, 0x80000, CRC(eaa5839a) SHA1(80c7bb1151253a23934b65110db973641f7a073e) )
|
||||
ROM_REGION( 0x400000, "tc0480scp", 0 )
|
||||
ROM_LOAD32_BYTE( "scp0aa_2b04_ic35.bin", 0x000003, 0x80000, CRC(b8ec56bd) SHA1(00191fd4b2e315a5a18f2e690a45b6f6a6ebb3d2) )
|
||||
ROM_LOAD32_BYTE( "scp0hl_ic9.bin", 0x000002, 0x80000, CRC(5b6e413e) SHA1(7eaee158e985a20b5c228b476ee102f88311423a) )
|
||||
ROM_LOAD32_BYTE( "scp0lh_ic22.bin", 0x000001, 0x80000, CRC(d5109bca) SHA1(c4c5b8dbc1139718d2aa73413b1b206f9df10fed) )
|
||||
ROM_LOAD32_BYTE( "scp0ll_ic7.bin", 0x000000, 0x80000, CRC(b1af439d) SHA1(a13fb4242808d1f3fc629988912c8186a99fb878) )
|
||||
ROM_LOAD32_BYTE( "scp1hh_ic36.bin", 0x200003, 0x80000, CRC(24f545d8) SHA1(c5ae0e714ed4765f3416cb58bc9cfccfbf78081c) )
|
||||
ROM_LOAD32_BYTE( "scp1hl_ic24.bin", 0x200002, 0x80000, CRC(46d198ba) SHA1(d9c9ddb23ad8f2abbd0ab2322d31d929085f0591) )
|
||||
ROM_LOAD32_BYTE( "scp1lh_ic23.bin", 0x200001, 0x80000, CRC(7c9f0035) SHA1(a5632bd11426ba2cf0016847a3c08a2b90498271) )
|
||||
ROM_LOAD32_BYTE( "scp1ll_ic8.bin", 0x200000, 0x80000, CRC(eaa5839a) SHA1(80c7bb1151253a23934b65110db973641f7a073e) )
|
||||
|
||||
ROM_REGION( 0xf00000, "gfx2", 0 )
|
||||
ROM_REGION( 0xf00000, "sprites", 0 )
|
||||
// tiles 0x00000 - 0x07fff
|
||||
ROM_LOAD16_BYTE( "obj0l_ic29.bin", 0x0000001, 0x80000, CRC(4b954950) SHA1(cafd9ba3128aa2e7dbde959a705aff8db6c311fa) ) // bp 1
|
||||
ROM_LOAD16_BYTE( "obj16l_ic20.bin", 0x0300001, 0x80000, CRC(b53932c0) SHA1(94ea6ccc29bd7b7e94d7494aaf0cc19b67c4ce72) ) // bp 2
|
||||
@ -946,15 +929,15 @@ ROM_START( cbombersp )
|
||||
ROM_LOAD16_BYTE( "ic80_d511.bin", 0x0b00000, 0x80000, CRC(37da5baf) SHA1(a78ac413de08a1ff70ab14561b75df633a9e5be8) ) // bp 4
|
||||
ROM_LOAD16_BYTE( "ic82_3d3d.bin", 0x0e00000, 0x80000, CRC(3e62970e) SHA1(82970accb4ce29034e7b97b74c831ec0314c5a8f) ) // bp 5
|
||||
|
||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||
ROM_REGION( 0x200000, "tc0100scn", 0 )
|
||||
ROM_LOAD16_BYTE( "ic44_scc1.bin", 0x000000, 0x080000, CRC(868d0d3d) SHA1(29251d545548856296b5ae32a96f2eeef2418dc4) )
|
||||
ROM_LOAD16_BYTE( "ic43_scc4.bin", 0x000001, 0x080000, CRC(2f170ee4) SHA1(2b8f07186c9f7589e1af131b8c377443a29bd149) )
|
||||
ROM_LOAD ( "ic45_5cc2.bin", 0x300000, 0x080000, CRC(7ae48d63) SHA1(2a8b291f0a683ed5b0c39d221737956b6fc72fa5) )
|
||||
ROM_FILL ( 0x200000, 0x080000, 0x00 )
|
||||
ROM_LOAD16_BYTE( "ic58_f357.bin", 0x100000, 0x080000, CRC(16486967) SHA1(c2fd6c9f21232656b52ab589ac61f94aa728524e) )
|
||||
ROM_LOAD16_BYTE( "ic57_1a62.bin", 0x100001, 0x080000, CRC(afd45e35) SHA1(6d7c0729c7d2b204473679b97923130e289f429d) )
|
||||
ROM_LOAD ( "ic59_7cce.bin", 0x380000, 0x080000, CRC(ee762199) SHA1(d56e96feeedba8b77f8f18cb380d2902ca3f1e50) )
|
||||
ROM_FILL ( 0x280000, 0x080000, 0x00 )
|
||||
|
||||
ROM_REGION( 0x100000, "tc0100scn:hi_gfx", 0 )
|
||||
ROM_LOAD ( "ic45_5cc2.bin", 0x000000, 0x080000, CRC(7ae48d63) SHA1(2a8b291f0a683ed5b0c39d221737956b6fc72fa5) )
|
||||
ROM_LOAD ( "ic59_7cce.bin", 0x080000, 0x080000, CRC(ee762199) SHA1(d56e96feeedba8b77f8f18cb380d2902ca3f1e50) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "spritemap", 0 )
|
||||
ROM_LOAD16_BYTE( "st8_ic2.bin", 0x000001, 0x40000, CRC(d74254d8) SHA1(f4a4f9d95f70edf74d937be067d6a9f68a955ea7) )
|
||||
@ -985,26 +968,41 @@ ROM_END
|
||||
|
||||
void undrfire_state::driver_init()
|
||||
{
|
||||
u8 *gfx = memregion("gfx3")->base();
|
||||
const u32 size = memregion("gfx3")->bytes();
|
||||
|
||||
/* make SCC tile GFX format suitable for gfxdecode */
|
||||
u32 offset = size / 2;
|
||||
for (u32 i = size / 2 + size / 4; i < size; i++)
|
||||
u8 *gfx_hi = memregion("tc0100scn:hi_gfx")->base();
|
||||
gfx_element *gx0 = m_gfxdecode->gfx(2);
|
||||
|
||||
// allocate memory for the assembled data
|
||||
u8 *srcdata = auto_alloc_array(machine(), u8, gx0->elements() * gx0->width() * gx0->height());
|
||||
|
||||
// loop over elements
|
||||
u8 *dest = srcdata;
|
||||
for (int c = 0; c < gx0->elements(); c++)
|
||||
{
|
||||
/* Expand 2bits into 4bits format */
|
||||
const u8 data = gfx[i];
|
||||
const u8 d1 = (data >> 0) & 3;
|
||||
const u8 d2 = (data >> 2) & 3;
|
||||
const u8 d3 = (data >> 4) & 3;
|
||||
const u8 d4 = (data >> 6) & 3;
|
||||
const u8 *c0base = gx0->get_data(c);
|
||||
|
||||
gfx[offset] = (d3 << 2) | (d4 << 6);
|
||||
offset++;
|
||||
// loop over height
|
||||
for (int y = 0; y < gx0->height(); y++)
|
||||
{
|
||||
const u8 *c0 = c0base;
|
||||
|
||||
gfx[offset] = (d1 << 2) | (d2 << 6);
|
||||
offset++;
|
||||
for (int x = 0; x < gx0->width();)
|
||||
{
|
||||
u8 hipix = *gfx_hi++;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
*dest++ = (*c0++ & 0xf) | ((hipix >> 2) & 0x30);
|
||||
x++;
|
||||
hipix <<= 2;
|
||||
}
|
||||
}
|
||||
c0base += gx0->rowbytes();
|
||||
}
|
||||
}
|
||||
|
||||
gx0->set_raw_layout(srcdata, gx0->width(), gx0->height(), gx0->elements(), 8 * gx0->width(), 8 * gx0->width() * gx0->height());
|
||||
gx0->set_granularity(64);
|
||||
m_tc0100scn->update_granularity();
|
||||
}
|
||||
|
||||
|
||||
|
@ -197,7 +197,7 @@ void warriorb_state::pancontrol_w(offs_t offset, u8 data)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w)
|
||||
void warriorb_state::tc0100scn_dual_screen_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
m_tc0100scn[0]->ram_w(offset, data, mem_mask);
|
||||
m_tc0100scn[1]->ram_w(offset, data, mem_mask);
|
||||
@ -376,36 +376,14 @@ INPUT_PORTS_END
|
||||
GFX DECODING
|
||||
***********************************************************/
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
16,16, /* 16*16 sprites */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 3*4, 2*4, 11*4, 10*4, 1*4, 0*4, 9*4, 8*4, 7*4, 6*4, 15*4, 14*4, 5*4, 4*4, 13*4, 12*4 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8 /* every sprite takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_warriorb_1 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* scr tiles (screen 1) */
|
||||
GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "tc0100scn_1", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 1) */
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( gfx_warriorb_2 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0, 256 ) /* scr tiles (screen 2) */
|
||||
GFXDECODE_ENTRY( "sprites", 0, gfx_16x16x4_packed_lsb, 0, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "tc0100scn_2", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* scr tiles (screen 2) */
|
||||
GFXDECODE_END
|
||||
|
||||
/***********************************************************
|
||||
@ -428,11 +406,11 @@ void warriorb_state::machine_reset()
|
||||
void warriorb_state::darius2d(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, 12000000); /* 12 MHz ??? (Might well be 16!) */
|
||||
M68000(config, m_maincpu, 16_MHz_XTAL); /* MC68000P12F 16 MHz, 16 MHz XTAL */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &warriorb_state::darius2d_map);
|
||||
m_maincpu->set_vblank_int("lscreen", FUNC(warriorb_state::irq4_line_hold));
|
||||
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", 16_MHz_XTAL / 4)); /* 4 MHz (16 MHz XTAL / 4) */
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &warriorb_state::z80_sound_map);
|
||||
|
||||
TC0220IOC(config, m_tc0220ioc, 0);
|
||||
@ -486,7 +464,7 @@ void warriorb_state::darius2d(machine_config &config)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
|
||||
ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2));
|
||||
ymsnd.irq_handler().set_inputline("audiocpu", 0);
|
||||
ymsnd.add_route(0, "lspeaker", 0.25);
|
||||
ymsnd.add_route(0, "rspeaker", 0.25);
|
||||
@ -508,11 +486,11 @@ void warriorb_state::darius2d(machine_config &config)
|
||||
void warriorb_state::warriorb(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, 16000000); /* 16 MHz ? */
|
||||
M68000(config, m_maincpu, 16_MHz_XTAL); /* MC68000P12F 16 MHz, 16 MHz XTAL */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &warriorb_state::warriorb_map);
|
||||
m_maincpu->set_vblank_int("lscreen", FUNC(warriorb_state::irq4_line_hold));
|
||||
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", 16_MHz_XTAL / 4)); /* 4 MHz (16 MHz XTAL / 4) */
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &warriorb_state::z80_sound_map);
|
||||
|
||||
TC0510NIO(config, m_tc0510nio, 0);
|
||||
@ -567,7 +545,7 @@ void warriorb_state::warriorb(machine_config &config)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16000000/2));
|
||||
ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16_MHz_XTAL / 2));
|
||||
ymsnd.irq_handler().set_inputline("audiocpu", 0);
|
||||
ymsnd.add_route(0, "lspeaker", 0.25);
|
||||
ymsnd.add_route(0, "rspeaker", 0.25);
|
||||
@ -603,22 +581,19 @@ ROM_START( sagaia )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c07_41.69", 0x00000, 0x20000, CRC(b50256ea) SHA1(6ed271e4dafd1c759adaa55d5b2343d7374c721a) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */
|
||||
ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) /* OBJ */
|
||||
ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) )
|
||||
ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
|
||||
ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "c07-06.27", 0x00000, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) /* OBJ */
|
||||
ROM_LOAD32_BYTE( "c07-05.24", 0x00001, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) )
|
||||
ROM_LOAD32_BYTE( "c07-08.25", 0x00002, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
|
||||
ROM_LOAD32_BYTE( "c07-07.26", 0x00003, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x00000, 0x000000, 0x100000 ) /* SCr(screen 2) */
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for the 2nd TC0100SCN */
|
||||
// ROM_LOAD( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) )
|
||||
// ROM_LOAD( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) )
|
||||
@ -648,22 +623,19 @@ ROM_START( darius2d )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c07_17.69", 0x00000, 0x20000, CRC(ae16c905) SHA1(70ba5aacd8a8e00b94719e3955abad8827c67aa8) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */
|
||||
ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) /* OBJ */
|
||||
ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) )
|
||||
ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
|
||||
ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "c07-06.27", 0x00000, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) /* OBJ */
|
||||
ROM_LOAD32_BYTE( "c07-05.24", 0x00001, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) )
|
||||
ROM_LOAD32_BYTE( "c07-08.25", 0x00002, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
|
||||
ROM_LOAD32_BYTE( "c07-07.26", 0x00003, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x00000, 0x000000, 0x100000 ) /* SCr(screen 2) */
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for the 2nd TC0100SCN */
|
||||
// ROM_LOAD( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) )
|
||||
// ROM_LOAD( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) )
|
||||
@ -693,22 +665,19 @@ ROM_START( darius2do )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "c07_17.69", 0x00000, 0x20000, CRC(ae16c905) SHA1(70ba5aacd8a8e00b94719e3955abad8827c67aa8) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx1", 0 )
|
||||
ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */
|
||||
ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD( "c07-05.24", 0x00000, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) ) /* OBJ */
|
||||
ROM_LOAD64_WORD( "c07-06.27", 0x00002, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) )
|
||||
ROM_LOAD64_WORD( "c07-07.26", 0x00004, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
|
||||
ROM_LOAD64_WORD( "c07-08.25", 0x00006, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "c07-06.27", 0x00000, 0x80000, CRC(5eebbcd6) SHA1(d4d860bf6b099956c45c7273ad77b1d35deba4c1) ) /* OBJ */
|
||||
ROM_LOAD32_BYTE( "c07-05.24", 0x00001, 0x80000, CRC(fb6d0550) SHA1(2d570ff5ef262cb4cb52e8584a7f167263194d37) )
|
||||
ROM_LOAD32_BYTE( "c07-08.25", 0x00002, 0x80000, CRC(a07dc846) SHA1(7199a604fcd693215ddb7670bfb2daf150145fd7) )
|
||||
ROM_LOAD32_BYTE( "c07-07.26", 0x00003, 0x80000, CRC(fd9f9e74) SHA1(e89beb5cac844fe16662465b0c76337692591aae) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 1) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "gfx3", 0 )
|
||||
ROM_COPY( "gfx1", 0x00000, 0x000000, 0x100000 ) /* SCr(screen 2) */
|
||||
|
||||
/* The actual board duplicates the SCR gfx roms for the 2nd TC0100SCN */
|
||||
// ROM_LOAD( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) )
|
||||
// ROM_LOAD( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
ROM_REGION( 0x100000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "c07-03.47", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCr(screen 2) */
|
||||
ROM_LOAD16_WORD_SWAP( "c07-04.48", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) )
|
||||
|
||||
ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) )
|
||||
@ -735,19 +704,19 @@ ROM_START( warriorb )
|
||||
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "d24_17.69", 0x00000, 0x20000, CRC(e41e4aae) SHA1(9bf40b6e8aa5c6ec62c5d21edbb2214f6550c94f) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx1", 0 )
|
||||
ROM_LOAD( "d24-02.12", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR A, screen 1 */
|
||||
ROM_LOAD( "d24-01.11", 0x100000, 0x100000, CRC(326dcca9) SHA1(1993776d71bca7d6dfc6f84dd9262d0dcae87f69) )
|
||||
ROM_REGION( 0x400000, "sprites", 0 )
|
||||
ROM_LOAD64_WORD( "d24-03.24", 0x000000, 0x100000, CRC(46db9fd7) SHA1(f08f3c9833d80ce161b06f4ae484c5c79539639c) ) /* OBJ */
|
||||
ROM_LOAD64_WORD( "d24-06.27", 0x000002, 0x100000, CRC(918486fe) SHA1(cc9e287221ef33dba77a22975e23b250ba50b758) )
|
||||
ROM_LOAD64_WORD( "d24-05.26", 0x000004, 0x100000, CRC(9f414317) SHA1(204cf47404e5e1085c1108abacd2b79a6cd0f74a) )
|
||||
ROM_LOAD64_WORD( "d24-04.25", 0x000006, 0x100000, CRC(148e0493) SHA1(f1cb819830e5bd544b11762784e228b5cb62b7e4) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "d24-06.27", 0x000000, 0x100000, CRC(918486fe) SHA1(cc9e287221ef33dba77a22975e23b250ba50b758) ) /* OBJ */
|
||||
ROM_LOAD32_BYTE( "d24-03.24", 0x000001, 0x100000, CRC(46db9fd7) SHA1(f08f3c9833d80ce161b06f4ae484c5c79539639c) )
|
||||
ROM_LOAD32_BYTE( "d24-04.25", 0x000002, 0x100000, CRC(148e0493) SHA1(f1cb819830e5bd544b11762784e228b5cb62b7e4) )
|
||||
ROM_LOAD32_BYTE( "d24-05.26", 0x000003, 0x100000, CRC(9f414317) SHA1(204cf47404e5e1085c1108abacd2b79a6cd0f74a) )
|
||||
ROM_REGION( 0x200000, "tc0100scn_1", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d24-02.12", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR A, screen 1 */
|
||||
ROM_LOAD16_WORD_SWAP( "d24-01.11", 0x100000, 0x100000, CRC(326dcca9) SHA1(1993776d71bca7d6dfc6f84dd9262d0dcae87f69) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx3", 0 )
|
||||
ROM_LOAD( "d24-07.47", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR B, screen 2 */
|
||||
ROM_LOAD( "d24-08.48", 0x100000, 0x100000, CRC(1e6d1528) SHA1(d6843aa67befd7db44f468be16ba2f0efb85d40f) )
|
||||
ROM_REGION( 0x200000, "tc0100scn_2", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "d24-07.47", 0x000000, 0x100000, CRC(9f50c271) SHA1(1a1b2ae7cb7785e7f66aa26258a6cd2921a29545) ) /* SCR B, screen 2 */
|
||||
ROM_LOAD16_WORD_SWAP( "d24-08.48", 0x100000, 0x100000, CRC(1e6d1528) SHA1(d6843aa67befd7db44f468be16ba2f0efb85d40f) )
|
||||
|
||||
ROM_REGION( 0x300000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "d24-12.107", 0x000000, 0x100000, CRC(279203a1) SHA1(ed75e811a1f0863c134034457ce2e97372726bdb) )
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
XBOX (c) 2001 Microsoft
|
||||
|
||||
Skeleton driver
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
@ -33,15 +31,14 @@ class xbox_state : public xbox_base_state
|
||||
public:
|
||||
xbox_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: xbox_base_state(mconfig, type, tag)
|
||||
, m_ide(*this, "pci:09.0:ide")
|
||||
, m_devh(*this, "pci:09.0:ide:0:hdd")
|
||||
, m_devc(*this, "pci:09.0:ide:1:cdrom")
|
||||
, m_ide(*this, "pci:09.0:ide1")
|
||||
, m_devh(*this, "pci:09.0:ide1:0:hdd")
|
||||
, m_devc(*this, "pci:09.0:ide1:1:cdrom")
|
||||
{ }
|
||||
|
||||
void xbox(machine_config &config);
|
||||
protected:
|
||||
void xbox_map(address_map &map);
|
||||
void xbox_map_io(address_map &map);
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start() override;
|
||||
@ -62,15 +59,9 @@ void xbox_state::video_start()
|
||||
|
||||
void xbox_state::xbox_map(address_map &map)
|
||||
{
|
||||
xbox_base_map(map);
|
||||
map(0xff000000, 0xff0fffff).rom().region("bios", 0).mirror(0x00f00000);
|
||||
}
|
||||
|
||||
void xbox_state::xbox_map_io(address_map &map)
|
||||
{
|
||||
xbox_base_map_io(map);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( xbox )
|
||||
/* dummy active high structure */
|
||||
PORT_START("SYSA")
|
||||
@ -174,9 +165,8 @@ void xbox_state::xbox(machine_config &config)
|
||||
{
|
||||
xbox_base(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &xbox_state::xbox_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &xbox_state::xbox_map_io);
|
||||
|
||||
subdevice<ide_controller_32_device>(":pci:09.0:ide")->options(xbox_ata_devices, "hdd", "cdrom", true);
|
||||
subdevice<ide_controller_32_device>(":pci:09.0:ide1")->options(xbox_ata_devices, "hdd", "cdrom", true);
|
||||
|
||||
OHCI_USB_CONNECTOR(config, ":pci:02.0:port1", usb_xbox, nullptr, false);
|
||||
OHCI_USB_CONNECTOR(config, ":pci:02.0:port2", usb_xbox, nullptr, false);
|
||||
|
@ -19,14 +19,9 @@ class ashnojoe_state : public driver_device
|
||||
public:
|
||||
ashnojoe_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_tileram_3(*this, "tileram_3"),
|
||||
m_tileram_4(*this, "tileram_4"),
|
||||
m_tileram_5(*this, "tileram_5"),
|
||||
m_tileram_2(*this, "tileram_2"),
|
||||
m_tileram_6(*this, "tileram_6"),
|
||||
m_tileram_7(*this, "tileram_7"),
|
||||
m_tileram(*this, "tileram"),
|
||||
m_tileram(*this, "tileram_%u", 1U),
|
||||
m_tilemap_reg(*this, "tilemap_reg"),
|
||||
m_audiobank(*this, "audiobank"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_msm(*this, "msm"),
|
||||
@ -34,29 +29,27 @@ public:
|
||||
m_soundlatch(*this, "soundlatch")
|
||||
{ }
|
||||
|
||||
void init_ashnojoe();
|
||||
|
||||
void ashnojoe(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
/* memory pointers */
|
||||
uint16_t * m_tileram_1;
|
||||
required_shared_ptr<uint16_t> m_tileram_3;
|
||||
required_shared_ptr<uint16_t> m_tileram_4;
|
||||
required_shared_ptr<uint16_t> m_tileram_5;
|
||||
required_shared_ptr<uint16_t> m_tileram_2;
|
||||
required_shared_ptr<uint16_t> m_tileram_6;
|
||||
required_shared_ptr<uint16_t> m_tileram_7;
|
||||
required_shared_ptr<uint16_t> m_tileram;
|
||||
required_shared_ptr<uint16_t> m_tilemap_reg;
|
||||
required_shared_ptr_array<u16, 7> m_tileram;
|
||||
required_shared_ptr<u16> m_tilemap_reg;
|
||||
required_memory_bank m_audiobank;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_joetilemap;
|
||||
tilemap_t *m_joetilemap2;
|
||||
tilemap_t *m_joetilemap3;
|
||||
tilemap_t *m_joetilemap4;
|
||||
tilemap_t *m_joetilemap5;
|
||||
tilemap_t *m_joetilemap6;
|
||||
tilemap_t *m_joetilemap7;
|
||||
tilemap_t *m_tilemap[7];
|
||||
|
||||
/* sound-related */
|
||||
uint8_t m_adpcm_byte;
|
||||
int m_msm5205_vclk_toggle;
|
||||
u8 m_adpcm_byte;
|
||||
int m_msm5205_vclk_toggle;
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -65,34 +58,24 @@ public:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
DECLARE_READ16_MEMBER(fake_4a00a_r);
|
||||
DECLARE_WRITE8_MEMBER(adpcm_w);
|
||||
DECLARE_READ8_MEMBER(sound_latch_status_r);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram_w);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram2_w);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram3_w);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram4_w);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram5_w);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram6_w);
|
||||
DECLARE_WRITE16_MEMBER(ashnojoe_tileram7_w);
|
||||
DECLARE_WRITE16_MEMBER(joe_tilemaps_xscroll_w);
|
||||
DECLARE_WRITE16_MEMBER(joe_tilemaps_yscroll_w);
|
||||
DECLARE_WRITE8_MEMBER(ym2203_write_a);
|
||||
DECLARE_WRITE8_MEMBER(ym2203_write_b);
|
||||
void init_ashnojoe();
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info_2);
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info_3);
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info_4);
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info_5);
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info_6);
|
||||
TILE_GET_INFO_MEMBER(get_joe_tile_info_7);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u16 fake_4a00a_r();
|
||||
void adpcm_w(u8 data);
|
||||
u8 sound_latch_status_r();
|
||||
template<unsigned Which> void tileram_8x8_w(offs_t offset, u16 data);
|
||||
template<unsigned Which> void tileram_16x16_w(offs_t offset, u16 data);
|
||||
void tilemaps_xscroll_w(offs_t offset, u16 data);
|
||||
void tilemaps_yscroll_w(offs_t offset, u16 data);
|
||||
void tilemap_regs_w(offs_t offset, u16 data, u16 mem_mask);
|
||||
void ym2203_write_a(u8 data);
|
||||
void ym2203_write_b(u8 data);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_highest);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_midlow);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_high);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_low);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_midhigh);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_lowest);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(ashnojoe_vclk_cb);
|
||||
void ashnojoe(machine_config &config);
|
||||
void ashnojoe_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
void sound_portmap(address_map &map);
|
||||
|
@ -34,62 +34,39 @@ public:
|
||||
asuka_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_cadash_shared_ram(*this, "sharedram")
|
||||
, m_audiobank(*this, "audiobank")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_audiocpu(*this, "audiocpu")
|
||||
, m_cchip(*this, "cchip")
|
||||
, m_msm(*this, "msm")
|
||||
, m_adpcm_select(*this, "adpcm_select")
|
||||
, m_sound_data(*this, "ymsnd")
|
||||
, m_sound_data(*this, "msm")
|
||||
, m_pc090oj(*this, "pc090oj")
|
||||
, m_tc0100scn(*this, "tc0100scn")
|
||||
, m_tc0110pcr(*this, "tc0110pcr")
|
||||
, m_tc0220ioc(*this, "tc0220ioc")
|
||||
, m_cchip_irq_clear(*this, "cchip_irq_clear")
|
||||
, m_audiobank(*this, "audiobank")
|
||||
{ }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(coin_control_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(asuka_msm5205_address_w);
|
||||
DECLARE_READ16_MEMBER(cadash_share_r);
|
||||
DECLARE_WRITE16_MEMBER(cadash_share_w);
|
||||
DECLARE_WRITE16_MEMBER(asuka_spritectrl_w);
|
||||
DECLARE_WRITE8_MEMBER(asuka_msm5205_start_w);
|
||||
DECLARE_WRITE8_MEMBER(asuka_msm5205_stop_w);
|
||||
DECLARE_WRITE8_MEMBER(counters_w);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
uint32_t screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_asuka);
|
||||
INTERRUPT_GEN_MEMBER(cadash_interrupt);
|
||||
void init_cadash();
|
||||
void init_earthjkr();
|
||||
INTERRUPT_GEN_MEMBER(bonze_interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(asuka_msm5205_vck);
|
||||
|
||||
void mofflott(machine_config &config);
|
||||
void asuka(machine_config &config);
|
||||
void cadash(machine_config &config);
|
||||
void eto(machine_config &config);
|
||||
void bonzeadv(machine_config &config);
|
||||
void asuka_map(address_map &map);
|
||||
void bonzeadv_map(address_map &map);
|
||||
void bonzeadv_z80_map(address_map &map);
|
||||
void cadash_map(address_map &map);
|
||||
void cadash_sub_io(address_map &map);
|
||||
void cadash_sub_map(address_map &map);
|
||||
void cadash_z80_map(address_map &map);
|
||||
void eto_map(address_map &map);
|
||||
void z80_map(address_map &map);
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
/* video-related */
|
||||
u16 m_video_ctrl;
|
||||
u16 m_video_mask;
|
||||
private:
|
||||
// memory pointers
|
||||
optional_shared_ptr<u8> m_cadash_shared_ram;
|
||||
|
||||
required_memory_bank m_audiobank;
|
||||
|
||||
/* misc */
|
||||
u16 m_adpcm_pos;
|
||||
@ -97,8 +74,6 @@ protected:
|
||||
|
||||
emu_timer *m_cadash_int5_timer;
|
||||
|
||||
optional_shared_ptr<uint8_t> m_cadash_shared_ram;
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
@ -113,7 +88,33 @@ protected:
|
||||
|
||||
optional_device<timer_device> m_cchip_irq_clear;
|
||||
|
||||
required_memory_bank m_audiobank;
|
||||
void coin_control_w(u8 data);
|
||||
void sound_bankswitch_w(u8 data);
|
||||
void msm5205_address_w(u8 data);
|
||||
u16 cadash_share_r(offs_t offset);
|
||||
void cadash_share_w(offs_t offset, u16 data);
|
||||
void asuka_spritectrl_w(u16 data);
|
||||
void msm5205_start_w(u8 data);
|
||||
void msm5205_stop_w(u8 data);
|
||||
void counters_w(u8 data);
|
||||
uint32_t screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_asuka);
|
||||
INTERRUPT_GEN_MEMBER(cadash_interrupt);
|
||||
INTERRUPT_GEN_MEMBER(bonze_interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(asuka_msm5205_vck);
|
||||
|
||||
void asuka_map(address_map &map);
|
||||
void bonzeadv_map(address_map &map);
|
||||
void bonzeadv_z80_map(address_map &map);
|
||||
void cadash_map(address_map &map);
|
||||
void cadash_sub_io(address_map &map);
|
||||
void cadash_sub_map(address_map &map);
|
||||
void cadash_z80_map(address_map &map);
|
||||
void eto_map(address_map &map);
|
||||
void z80_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_ASUKA_H
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "machine/z80pio.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "audio/bally.h"
|
||||
#include "audio/midway.h"
|
||||
#include "audio/csd.h"
|
||||
#include "sound/samples.h"
|
||||
@ -126,7 +127,7 @@ protected:
|
||||
optional_device<midway_cheap_squeak_deluxe_device> m_cheap_squeak_deluxe;
|
||||
optional_device<midway_sounds_good_device> m_sounds_good;
|
||||
optional_device<midway_turbo_cheap_squeak_device> m_turbo_cheap_squeak;
|
||||
optional_device<midway_squawk_n_talk_device> m_squawk_n_talk;
|
||||
optional_device<bally_squawk_n_talk_device> m_squawk_n_talk;
|
||||
optional_device<samples_device> m_samples;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
@ -29,6 +29,7 @@ class mtx_state : public driver_device
|
||||
public:
|
||||
mtx_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_cassold(0)
|
||||
, m_maincpu(*this, "z80")
|
||||
, m_sn(*this, "sn76489a")
|
||||
, m_z80ctc(*this, "z80ctc")
|
||||
@ -50,6 +51,7 @@ protected:
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
bool m_cassold;
|
||||
required_device<z80_device> m_maincpu;
|
||||
required_device<sn76489a_device> m_sn;
|
||||
required_device<z80ctc_device> m_z80ctc;
|
||||
|
@ -43,6 +43,7 @@ private:
|
||||
required_device<intelfsh8_device> biosrom;
|
||||
uint32_t ram_size;
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(header_type_r) override;
|
||||
DECLARE_READ8_MEMBER(unknown_r);
|
||||
DECLARE_WRITE8_MEMBER(unknown_w);
|
||||
DECLARE_READ32_MEMBER(ram_size_r);
|
||||
|
@ -38,6 +38,11 @@ public:
|
||||
void darius2(machine_config &config);
|
||||
void ninjaw(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void device_post_load() override;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -50,31 +55,27 @@ private:
|
||||
required_device_array<gfxdecode_device, 3> m_gfxdecode;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
|
||||
/* memory regions */
|
||||
required_memory_bank m_z80bank;
|
||||
|
||||
/* misc */
|
||||
uint16_t m_cpua_ctrl;
|
||||
u16 m_cpua_ctrl;
|
||||
int m_pandata[4];
|
||||
|
||||
void coin_control_w(u8 data);
|
||||
DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
|
||||
void cpua_ctrl_w(u16 data);
|
||||
void sound_bankswitch_w(u8 data);
|
||||
void pancontrol_w(offs_t offset, u8 data);
|
||||
DECLARE_WRITE16_MEMBER(tc0100scn_triple_screen_w);
|
||||
void tc0100scn_triple_screen_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void postload();
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs, int chip);
|
||||
u32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip);
|
||||
void parse_control();
|
||||
uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip);
|
||||
u32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip);
|
||||
void darius2_master_map(address_map &map);
|
||||
void darius2_slave_map(address_map &map);
|
||||
void ninjaw_master_map(address_map &map);
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/6850acia.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "machine/timer.h"
|
||||
#include "machine/ram.h"
|
||||
#include "sound/discrete.h"
|
||||
#include "sound/beep.h"
|
||||
@ -32,9 +33,11 @@ class sb2m600_state : public driver_device
|
||||
public:
|
||||
sb2m600_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_cassbit(0)
|
||||
, m_cassold(0)
|
||||
, m_maincpu(*this, M6502_TAG)
|
||||
, m_acia_0(*this, "acia_0")
|
||||
, m_cassette(*this, "cassette")
|
||||
, m_acia(*this, "acia")
|
||||
, m_cass(*this, "cassette")
|
||||
, m_discrete(*this, DISCRETE_TAG)
|
||||
, m_ram(*this, RAM_TAG)
|
||||
, m_video_ram(*this, "video_ram")
|
||||
@ -55,8 +58,8 @@ protected:
|
||||
DECLARE_READ8_MEMBER( keyboard_r );
|
||||
DECLARE_WRITE8_MEMBER( keyboard_w );
|
||||
DECLARE_WRITE8_MEMBER( ctrl_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( cassette_tx );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_cassette_clock );
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(kansas_w);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
|
||||
|
||||
void floppy_index_callback(floppy_image_device *floppy, int state);
|
||||
|
||||
@ -66,9 +69,12 @@ protected:
|
||||
void osi630_video(machine_config &config);
|
||||
void osi600_mem(address_map &map);
|
||||
|
||||
uint8_t m_cass_data[4];
|
||||
bool m_cassbit;
|
||||
bool m_cassold;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<acia6850_device> m_acia_0;
|
||||
required_device<cassette_image_device> m_cassette;
|
||||
required_device<acia6850_device> m_acia;
|
||||
required_device<cassette_image_device> m_cass;
|
||||
optional_device<discrete_sound_device> m_discrete;
|
||||
required_device<ram_device> m_ram;
|
||||
required_shared_ptr<uint8_t> m_video_ram;
|
||||
|
@ -25,6 +25,8 @@ public:
|
||||
othunder_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this,"spriteram"),
|
||||
m_sprmap_rom(*this,"sprmap_rom"),
|
||||
m_z80bank(*this,"z80bank"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_eeprom(*this, "eeprom"),
|
||||
@ -48,7 +50,7 @@ protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const u32 *primasks, int y_offs);
|
||||
|
||||
void irq_ack_w(offs_t offset, u16 data);
|
||||
void eeprom_w(u8 data);
|
||||
@ -56,24 +58,25 @@ private:
|
||||
DECLARE_WRITE_LINE_MEMBER(adc_eoc_w);
|
||||
void sound_bankswitch_w(u8 data);
|
||||
void tc0310fam_w(offs_t offset, u8 data);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(vblank_w);
|
||||
|
||||
void othunder_map(address_map &map);
|
||||
void z80_sound_map(address_map &map);
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
required_region_ptr<u16> m_sprmap_rom;
|
||||
required_memory_bank m_z80bank;
|
||||
|
||||
/* video-related */
|
||||
struct tempsprite
|
||||
{
|
||||
int gfx;
|
||||
int code,color;
|
||||
int flipx,flipy;
|
||||
u32 code,color;
|
||||
bool flipx,flipy;
|
||||
int x,y;
|
||||
int zoomx,zoomy;
|
||||
int primask;
|
||||
u32 primask;
|
||||
};
|
||||
|
||||
std::unique_ptr<tempsprite[]> m_spritelist;
|
||||
|
@ -109,7 +109,7 @@ private:
|
||||
|
||||
DECLARE_READ32_MEMBER(sngkace_input_r);
|
||||
DECLARE_READ32_MEMBER(gunbird_input_r);
|
||||
DECLARE_WRITE32_MEMBER(s1945_mcu_w);
|
||||
void s1945_mcu_w(offs_t offset, uint8_t data);
|
||||
DECLARE_READ32_MEMBER(s1945_mcu_r);
|
||||
DECLARE_READ32_MEMBER(s1945_input_r);
|
||||
DECLARE_WRITE8_MEMBER(s1945bl_okibank_w);
|
||||
|
@ -199,7 +199,7 @@ protected:
|
||||
void sprite_extension_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void spritebank_w(offs_t offset, u16 data);
|
||||
void koshien_spritebank_w(u16 data);
|
||||
DECLARE_WRITE8_MEMBER(cameltrya_porta_w);
|
||||
void cameltrya_porta_w(u8 data);
|
||||
void mjnquest_gfxbank_w(u8 data);
|
||||
TC0100SCN_CB_MEMBER(mjnquest_tmap_cb);
|
||||
|
||||
@ -247,7 +247,7 @@ protected:
|
||||
void update_spritebanks();
|
||||
void handle_sprite_buffering();
|
||||
void update_sprites_active_area();
|
||||
void draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u32 priority);
|
||||
void draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u8 priority, u8 priority_mask = 0xff);
|
||||
void taito_f2_tc360_spritemixdraw(screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx,
|
||||
u32 code, u32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley);
|
||||
|
||||
|
@ -60,19 +60,28 @@ public:
|
||||
taito_f3_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "taito_en:audiocpu"),
|
||||
m_taito_en(*this, "taito_en"),
|
||||
m_watchdog(*this, "watchdog"),
|
||||
m_oki(*this, "oki"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_eeprom(*this, "eeprom"),
|
||||
m_f3_ram(*this,"f3_ram"),
|
||||
m_paletteram32(*this, "paletteram"),
|
||||
m_spriterom_hi(*this, "sprites_hi"),
|
||||
m_tilemaprom_hi(*this, "tilemap_hi"),
|
||||
m_textram(*this, "textram", 0),
|
||||
m_spriteram(*this, "spriteram", 0),
|
||||
m_charram(*this, "charram", 0),
|
||||
m_line_ram(*this, "line_ram", 0),
|
||||
m_pf_ram(*this, "pf_ram", 0),
|
||||
m_pivot_ram(*this, "pivot_ram", 0),
|
||||
m_input(*this, "IN.%u", 0),
|
||||
m_dial(*this, "DIAL.%u", 0),
|
||||
m_eepromin(*this, "EEPROMIN")
|
||||
m_eepromin(*this, "EEPROMIN"),
|
||||
m_eepromout(*this, "EEPROMOUT"),
|
||||
m_audiocpu(*this, "taito_en:audiocpu"),
|
||||
m_taito_en(*this, "taito_en"),
|
||||
m_oki(*this, "oki"),
|
||||
m_paletteram32(*this, "paletteram"),
|
||||
m_okibank(*this, "okibank")
|
||||
{ }
|
||||
|
||||
void f3_eeprom(machine_config &config);
|
||||
@ -132,75 +141,103 @@ protected:
|
||||
TIMER_F3_INTERRUPT3
|
||||
};
|
||||
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
virtual void device_post_load(void) override;
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<taito_en_device> m_taito_en;
|
||||
optional_device<watchdog_timer_device> m_watchdog;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
optional_device<eeprom_serial_base_device> m_eeprom;
|
||||
|
||||
optional_shared_ptr<uint32_t> m_f3_ram;
|
||||
optional_shared_ptr<uint32_t> m_paletteram32;
|
||||
optional_region_ptr<u8> m_spriterom_hi; // all but 2mindril, bubsymphb
|
||||
optional_region_ptr<u8> m_tilemaprom_hi;
|
||||
|
||||
required_shared_ptr<u16> m_textram;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
required_shared_ptr<u16> m_charram;
|
||||
required_shared_ptr<u16> m_line_ram;
|
||||
required_shared_ptr<u16> m_pf_ram;
|
||||
required_shared_ptr<u16> m_pivot_ram;
|
||||
|
||||
optional_ioport_array<6> m_input;
|
||||
optional_ioport_array<2> m_dial;
|
||||
optional_ioport m_eepromin;
|
||||
|
||||
|
||||
std::unique_ptr<uint16_t[]> m_videoram;
|
||||
std::unique_ptr<uint16_t[]> m_spriteram;
|
||||
std::unique_ptr<uint16_t[]> m_f3_vram;
|
||||
std::unique_ptr<uint16_t[]> m_f3_line_ram;
|
||||
std::unique_ptr<uint16_t[]> m_f3_pf_data;
|
||||
std::unique_ptr<uint16_t[]> m_f3_pivot_ram;
|
||||
optional_ioport m_eepromout;
|
||||
|
||||
emu_timer *m_interrupt3_timer;
|
||||
uint32_t m_coin_word[2];
|
||||
int m_f3_game;
|
||||
tilemap_t *m_pf1_tilemap;
|
||||
tilemap_t *m_pf2_tilemap;
|
||||
tilemap_t *m_pf3_tilemap;
|
||||
tilemap_t *m_pf4_tilemap;
|
||||
tilemap_t *m_pf5_tilemap;
|
||||
tilemap_t *m_pf6_tilemap;
|
||||
tilemap_t *m_pf7_tilemap;
|
||||
tilemap_t *m_pf8_tilemap;
|
||||
u32 m_coin_word[2];
|
||||
|
||||
struct tempsprite
|
||||
{
|
||||
int code, color;
|
||||
int flipx, flipy;
|
||||
int x, y;
|
||||
int zoomx, zoomy;
|
||||
int pri;
|
||||
};
|
||||
|
||||
struct f3_playfield_line_inf
|
||||
{
|
||||
int alpha_mode[256];
|
||||
int pri[256];
|
||||
|
||||
/* use for draw_scanlines */
|
||||
u16 *src[256], *src_s[256], *src_e[256];
|
||||
u8 *tsrc[256], *tsrc_s[256];
|
||||
int x_count[256];
|
||||
u32 x_zoom[256];
|
||||
u32 clip0[256];
|
||||
u32 clip1[256];
|
||||
};
|
||||
|
||||
struct f3_spritealpha_line_inf
|
||||
{
|
||||
u16 alpha_level[256];
|
||||
u16 spri[256];
|
||||
u16 sprite_alpha[256];
|
||||
u32 sprite_clip0[256];
|
||||
u32 sprite_clip1[256];
|
||||
s16 clip0_l[256];
|
||||
s16 clip0_r[256];
|
||||
s16 clip1_l[256];
|
||||
s16 clip1_r[256];
|
||||
};
|
||||
|
||||
int m_game;
|
||||
tilemap_t *m_tilemap[8];
|
||||
tilemap_t *m_pixel_layer;
|
||||
tilemap_t *m_vram_layer;
|
||||
std::unique_ptr<uint16_t[]> m_spriteram16_buffered;
|
||||
uint16_t m_f3_control_0[8];
|
||||
uint16_t m_f3_control_1[8];
|
||||
std::unique_ptr<u16[]> m_spriteram16_buffered;
|
||||
u16 m_control_0[8];
|
||||
u16 m_control_1[8];
|
||||
int m_flipscreen;
|
||||
uint8_t m_sprite_extra_planes;
|
||||
uint8_t m_sprite_pen_mask;
|
||||
uint16_t *m_f3_pf_data_1;
|
||||
uint16_t *m_f3_pf_data_2;
|
||||
uint16_t *m_f3_pf_data_3;
|
||||
uint16_t *m_f3_pf_data_4;
|
||||
uint16_t *m_f3_pf_data_5;
|
||||
uint16_t *m_f3_pf_data_6;
|
||||
uint16_t *m_f3_pf_data_7;
|
||||
uint16_t *m_f3_pf_data_8;
|
||||
u8 m_sprite_extra_planes;
|
||||
u8 m_sprite_pen_mask;
|
||||
u16 *m_pf_data[8];
|
||||
int m_sprite_lag;
|
||||
uint8_t m_sprite_pri_usage;
|
||||
u8 m_sprite_pri_usage;
|
||||
bitmap_ind8 m_pri_alp_bitmap;
|
||||
int m_f3_alpha_level_2as;
|
||||
int m_f3_alpha_level_2ad;
|
||||
int m_f3_alpha_level_3as;
|
||||
int m_f3_alpha_level_3ad;
|
||||
int m_f3_alpha_level_2bs;
|
||||
int m_f3_alpha_level_2bd;
|
||||
int m_f3_alpha_level_3bs;
|
||||
int m_f3_alpha_level_3bd;
|
||||
int m_alpha_level_2as;
|
||||
int m_alpha_level_2ad;
|
||||
int m_alpha_level_3as;
|
||||
int m_alpha_level_3ad;
|
||||
int m_alpha_level_2bs;
|
||||
int m_alpha_level_2bd;
|
||||
int m_alpha_level_3bs;
|
||||
int m_alpha_level_3bd;
|
||||
int m_alpha_level_last;
|
||||
int m_width_mask;
|
||||
int m_twidth_mask;
|
||||
int m_twidth_mask_bit;
|
||||
std::unique_ptr<uint8_t[]> m_tile_opaque_sp;
|
||||
std::unique_ptr<uint8_t[]> m_tile_opaque_pf[8];
|
||||
uint8_t m_add_sat[256][256];
|
||||
std::unique_ptr<u8[]> m_tile_opaque_sp;
|
||||
std::unique_ptr<u8[]> m_tile_opaque_pf[8];
|
||||
u8 m_add_sat[256][256];
|
||||
int m_alpha_s_1_1;
|
||||
int m_alpha_s_1_2;
|
||||
int m_alpha_s_1_4;
|
||||
@ -221,197 +258,151 @@ protected:
|
||||
int m_alpha_s_3b_0;
|
||||
int m_alpha_s_3b_1;
|
||||
int m_alpha_s_3b_2;
|
||||
uint32_t m_dval;
|
||||
uint8_t m_pval;
|
||||
uint8_t m_tval;
|
||||
uint8_t m_pdest_2a;
|
||||
uint8_t m_pdest_2b;
|
||||
u32 m_dval;
|
||||
u8 m_pval;
|
||||
u8 m_tval;
|
||||
u8 m_pdest_2a;
|
||||
u8 m_pdest_2b;
|
||||
int m_tr_2a;
|
||||
int m_tr_2b;
|
||||
uint8_t m_pdest_3a;
|
||||
uint8_t m_pdest_3b;
|
||||
u8 m_pdest_3a;
|
||||
u8 m_pdest_3b;
|
||||
int m_tr_3a;
|
||||
int m_tr_3b;
|
||||
uint16_t *m_src0;
|
||||
uint16_t *m_src_s0;
|
||||
uint16_t *m_src_e0;
|
||||
uint16_t m_clip_al0;
|
||||
uint16_t m_clip_ar0;
|
||||
uint16_t m_clip_bl0;
|
||||
uint16_t m_clip_br0;
|
||||
uint8_t *m_tsrc0;
|
||||
uint8_t *m_tsrc_s0;
|
||||
uint32_t m_x_count0;
|
||||
uint32_t m_x_zoom0;
|
||||
uint16_t *m_src1;
|
||||
uint16_t *m_src_s1;
|
||||
uint16_t *m_src_e1;
|
||||
uint16_t m_clip_al1;
|
||||
uint16_t m_clip_ar1;
|
||||
uint16_t m_clip_bl1;
|
||||
uint16_t m_clip_br1;
|
||||
uint8_t *m_tsrc1;
|
||||
uint8_t *m_tsrc_s1;
|
||||
uint32_t m_x_count1;
|
||||
uint32_t m_x_zoom1;
|
||||
uint16_t *m_src2;
|
||||
uint16_t *m_src_s2;
|
||||
uint16_t *m_src_e2;
|
||||
uint16_t m_clip_al2;
|
||||
uint16_t m_clip_ar2;
|
||||
uint16_t m_clip_bl2;
|
||||
uint16_t m_clip_br2;
|
||||
uint8_t *m_tsrc2;
|
||||
uint8_t *m_tsrc_s2;
|
||||
uint32_t m_x_count2;
|
||||
uint32_t m_x_zoom2;
|
||||
uint16_t *m_src3;
|
||||
uint16_t *m_src_s3;
|
||||
uint16_t *m_src_e3;
|
||||
uint16_t m_clip_al3;
|
||||
uint16_t m_clip_ar3;
|
||||
uint16_t m_clip_bl3;
|
||||
uint16_t m_clip_br3;
|
||||
uint8_t *m_tsrc3;
|
||||
uint8_t *m_tsrc_s3;
|
||||
uint32_t m_x_count3;
|
||||
uint32_t m_x_zoom3;
|
||||
uint16_t *m_src4;
|
||||
uint16_t *m_src_s4;
|
||||
uint16_t *m_src_e4;
|
||||
uint16_t m_clip_al4;
|
||||
uint16_t m_clip_ar4;
|
||||
uint16_t m_clip_bl4;
|
||||
uint16_t m_clip_br4;
|
||||
uint8_t *m_tsrc4;
|
||||
uint8_t *m_tsrc_s4;
|
||||
uint32_t m_x_count4;
|
||||
uint32_t m_x_zoom4;
|
||||
u16 *m_src[5];
|
||||
u16 *m_src_s[5];
|
||||
u16 *m_src_e[5];
|
||||
u16 m_clip_al[5];
|
||||
u16 m_clip_ar[5];
|
||||
u16 m_clip_bl[5];
|
||||
u16 m_clip_br[5];
|
||||
u8 *m_tsrc[5];
|
||||
u8 *m_tsrc_s[5];
|
||||
u32 m_x_count[5];
|
||||
u32 m_x_zoom[5];
|
||||
struct tempsprite *m_spritelist;
|
||||
const struct tempsprite *m_sprite_end;
|
||||
struct f3_playfield_line_inf *m_pf_line_inf;
|
||||
struct f3_spritealpha_line_inf *m_sa_line_inf;
|
||||
const struct F3config *m_f3_game_config;
|
||||
int (taito_f3_state::*m_dpix_n[8][16])(uint32_t s_pix);
|
||||
int (taito_f3_state::**m_dpix_lp[5])(uint32_t s_pix);
|
||||
int (taito_f3_state::**m_dpix_sp[9])(uint32_t s_pix);
|
||||
const struct F3config *m_game_config;
|
||||
int (taito_f3_state::*m_dpix_n[8][16])(u32 s_pix);
|
||||
int (taito_f3_state::**m_dpix_lp[5])(u32 s_pix);
|
||||
int (taito_f3_state::**m_dpix_sp[9])(u32 s_pix);
|
||||
|
||||
DECLARE_READ32_MEMBER(f3_control_r);
|
||||
DECLARE_WRITE32_MEMBER(f3_control_w);
|
||||
DECLARE_WRITE32_MEMBER(f3_sound_reset_0_w);
|
||||
DECLARE_WRITE32_MEMBER(f3_sound_reset_1_w);
|
||||
DECLARE_WRITE32_MEMBER(f3_sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(f3_unk_w);
|
||||
DECLARE_READ32_MEMBER(bubsympb_oki_r);
|
||||
DECLARE_WRITE32_MEMBER(bubsympb_oki_w);
|
||||
DECLARE_READ16_MEMBER(f3_pf_data_r);
|
||||
DECLARE_WRITE16_MEMBER(f3_pf_data_w);
|
||||
DECLARE_WRITE16_MEMBER(f3_control_0_w);
|
||||
DECLARE_WRITE16_MEMBER(f3_control_1_w);
|
||||
DECLARE_READ16_MEMBER(f3_spriteram_r);
|
||||
DECLARE_WRITE16_MEMBER(f3_spriteram_w);
|
||||
DECLARE_READ16_MEMBER(f3_videoram_r);
|
||||
DECLARE_WRITE16_MEMBER(f3_videoram_w);
|
||||
DECLARE_READ16_MEMBER(f3_vram_r);
|
||||
DECLARE_WRITE16_MEMBER(f3_vram_w);
|
||||
DECLARE_READ16_MEMBER(f3_pivot_r);
|
||||
DECLARE_WRITE16_MEMBER(f3_pivot_w);
|
||||
DECLARE_READ16_MEMBER(f3_lineram_r);
|
||||
DECLARE_WRITE16_MEMBER(f3_lineram_w);
|
||||
DECLARE_WRITE32_MEMBER(f3_palette_24bit_w);
|
||||
u16 pf_ram_r(offs_t offset);
|
||||
void pf_ram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void control_0_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void control_1_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 spriteram_r(offs_t offset);
|
||||
void spriteram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 textram_r(offs_t offset);
|
||||
void textram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 charram_r(offs_t offset);
|
||||
void charram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 pivot_r(offs_t offset);
|
||||
void pivot_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 lineram_r(offs_t offset);
|
||||
void lineram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info1);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info2);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info3);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info4);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info5);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info6);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info7);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info8);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_vram);
|
||||
template<unsigned Layer> TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_text);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_pixel);
|
||||
uint32_t screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_f3);
|
||||
INTERRUPT_GEN_MEMBER(f3_interrupt2);
|
||||
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
|
||||
void bubsympb_map(address_map &map);
|
||||
void f3_map(address_map &map);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
void tile_decode();
|
||||
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
virtual void device_post_load(void) override;
|
||||
|
||||
inline void get_tile_info(tile_data &tileinfo, int tile_index, uint16_t *gfx_base);
|
||||
inline void f3_drawgfx(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx,int code,int color,int flipx,int flipy,int sx,int sy,uint8_t pri_dst);
|
||||
inline void f3_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx,int code,int color,int flipx,int flipy,int sx,int sy,int scalex,int scaley,uint8_t pri_dst);
|
||||
inline void f3_drawgfx(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, int code, int color, int flipx, int flipy, int sx, int sy, u8 pri_dst);
|
||||
inline void f3_drawgfxzoom(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, int code, int color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, u8 pri_dst);
|
||||
void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
void get_sprite_info(const uint16_t *spriteram16_ptr);
|
||||
void get_sprite_info(const u16 *spriteram16_ptr);
|
||||
void print_debug_info(bitmap_rgb32 &bitmap);
|
||||
inline void f3_alpha_set_level();
|
||||
inline void f3_alpha_blend32_s(int alphas, uint32_t s);
|
||||
inline void f3_alpha_blend32_d(int alphas, uint32_t s);
|
||||
inline void f3_alpha_blend_1_1(uint32_t s);
|
||||
inline void f3_alpha_blend_1_2(uint32_t s);
|
||||
inline void f3_alpha_blend_1_4(uint32_t s);
|
||||
inline void f3_alpha_blend_1_5(uint32_t s);
|
||||
inline void f3_alpha_blend_1_6(uint32_t s);
|
||||
inline void f3_alpha_blend_1_8(uint32_t s);
|
||||
inline void f3_alpha_blend_1_9(uint32_t s);
|
||||
inline void f3_alpha_blend_1_a(uint32_t s);
|
||||
inline void f3_alpha_blend_2a_0(uint32_t s);
|
||||
inline void f3_alpha_blend_2a_4(uint32_t s);
|
||||
inline void f3_alpha_blend_2a_8(uint32_t s);
|
||||
inline void f3_alpha_blend_2b_0(uint32_t s);
|
||||
inline void f3_alpha_blend_2b_4(uint32_t s);
|
||||
inline void f3_alpha_blend_2b_8(uint32_t s);
|
||||
inline void f3_alpha_blend_3a_0(uint32_t s);
|
||||
inline void f3_alpha_blend_3a_1(uint32_t s);
|
||||
inline void f3_alpha_blend_3a_2(uint32_t s);
|
||||
inline void f3_alpha_blend_3b_0(uint32_t s);
|
||||
inline void f3_alpha_blend_3b_1(uint32_t s);
|
||||
inline void f3_alpha_blend_3b_2(uint32_t s);
|
||||
int dpix_1_noalpha(uint32_t s_pix);
|
||||
int dpix_ret1(uint32_t s_pix);
|
||||
int dpix_ret0(uint32_t s_pix);
|
||||
int dpix_1_1(uint32_t s_pix);
|
||||
int dpix_1_2(uint32_t s_pix);
|
||||
int dpix_1_4(uint32_t s_pix);
|
||||
int dpix_1_5(uint32_t s_pix);
|
||||
int dpix_1_6(uint32_t s_pix);
|
||||
int dpix_1_8(uint32_t s_pix);
|
||||
int dpix_1_9(uint32_t s_pix);
|
||||
int dpix_1_a(uint32_t s_pix);
|
||||
int dpix_2a_0(uint32_t s_pix);
|
||||
int dpix_2a_4(uint32_t s_pix);
|
||||
int dpix_2a_8(uint32_t s_pix);
|
||||
int dpix_3a_0(uint32_t s_pix);
|
||||
int dpix_3a_1(uint32_t s_pix);
|
||||
int dpix_3a_2(uint32_t s_pix);
|
||||
int dpix_2b_0(uint32_t s_pix);
|
||||
int dpix_2b_4(uint32_t s_pix);
|
||||
int dpix_2b_8(uint32_t s_pix);
|
||||
int dpix_3b_0(uint32_t s_pix);
|
||||
int dpix_3b_1(uint32_t s_pix);
|
||||
int dpix_3b_2(uint32_t s_pix);
|
||||
int dpix_2_0(uint32_t s_pix);
|
||||
int dpix_2_4(uint32_t s_pix);
|
||||
int dpix_2_8(uint32_t s_pix);
|
||||
int dpix_3_0(uint32_t s_pix);
|
||||
int dpix_3_1(uint32_t s_pix);
|
||||
int dpix_3_2(uint32_t s_pix);
|
||||
inline void dpix_1_sprite(uint32_t s_pix);
|
||||
inline void dpix_bg(uint32_t bgcolor);
|
||||
inline void alpha_set_level();
|
||||
inline void alpha_blend32_s(int alphas, u32 s);
|
||||
inline void alpha_blend32_d(int alphas, u32 s);
|
||||
inline void alpha_blend_1_1(u32 s);
|
||||
inline void alpha_blend_1_2(u32 s);
|
||||
inline void alpha_blend_1_4(u32 s);
|
||||
inline void alpha_blend_1_5(u32 s);
|
||||
inline void alpha_blend_1_6(u32 s);
|
||||
inline void alpha_blend_1_8(u32 s);
|
||||
inline void alpha_blend_1_9(u32 s);
|
||||
inline void alpha_blend_1_a(u32 s);
|
||||
inline void alpha_blend_2a_0(u32 s);
|
||||
inline void alpha_blend_2a_4(u32 s);
|
||||
inline void alpha_blend_2a_8(u32 s);
|
||||
inline void alpha_blend_2b_0(u32 s);
|
||||
inline void alpha_blend_2b_4(u32 s);
|
||||
inline void alpha_blend_2b_8(u32 s);
|
||||
inline void alpha_blend_3a_0(u32 s);
|
||||
inline void alpha_blend_3a_1(u32 s);
|
||||
inline void alpha_blend_3a_2(u32 s);
|
||||
inline void alpha_blend_3b_0(u32 s);
|
||||
inline void alpha_blend_3b_1(u32 s);
|
||||
inline void alpha_blend_3b_2(u32 s);
|
||||
int dpix_1_noalpha(u32 s_pix);
|
||||
int dpix_ret1(u32 s_pix);
|
||||
int dpix_ret0(u32 s_pix);
|
||||
int dpix_1_1(u32 s_pix);
|
||||
int dpix_1_2(u32 s_pix);
|
||||
int dpix_1_4(u32 s_pix);
|
||||
int dpix_1_5(u32 s_pix);
|
||||
int dpix_1_6(u32 s_pix);
|
||||
int dpix_1_8(u32 s_pix);
|
||||
int dpix_1_9(u32 s_pix);
|
||||
int dpix_1_a(u32 s_pix);
|
||||
int dpix_2a_0(u32 s_pix);
|
||||
int dpix_2a_4(u32 s_pix);
|
||||
int dpix_2a_8(u32 s_pix);
|
||||
int dpix_3a_0(u32 s_pix);
|
||||
int dpix_3a_1(u32 s_pix);
|
||||
int dpix_3a_2(u32 s_pix);
|
||||
int dpix_2b_0(u32 s_pix);
|
||||
int dpix_2b_4(u32 s_pix);
|
||||
int dpix_2b_8(u32 s_pix);
|
||||
int dpix_3b_0(u32 s_pix);
|
||||
int dpix_3b_1(u32 s_pix);
|
||||
int dpix_3b_2(u32 s_pix);
|
||||
int dpix_2_0(u32 s_pix);
|
||||
int dpix_2_4(u32 s_pix);
|
||||
int dpix_2_8(u32 s_pix);
|
||||
int dpix_3_0(u32 s_pix);
|
||||
int dpix_3_1(u32 s_pix);
|
||||
int dpix_3_2(u32 s_pix);
|
||||
inline void dpix_1_sprite(u32 s_pix);
|
||||
inline void dpix_bg(u32 bgcolor);
|
||||
void init_alpha_blend_func();
|
||||
inline void draw_scanlines(bitmap_rgb32 &bitmap, int xsize, int16_t *draw_line_num, const struct f3_playfield_line_inf **line_t, const int *sprite, uint32_t orient, int skip_layer_num);
|
||||
void visible_tile_check(struct f3_playfield_line_inf *line_t, int line, uint32_t x_index_fx,uint32_t y_index, uint16_t *f3_pf_data_n);
|
||||
void calculate_clip(int y, uint16_t pri, uint32_t* clip0, uint32_t* clip1, int* line_enable);
|
||||
inline void draw_scanlines(bitmap_rgb32 &bitmap, int xsize, s16 *draw_line_num, const struct f3_playfield_line_inf **line_t, const int *sprite, u32 orient, int skip_layer_num);
|
||||
void visible_tile_check(struct f3_playfield_line_inf *line_t, int line, u32 x_index_fx, u32 y_index, u16 *pf_data_n);
|
||||
void calculate_clip(int y, u16 pri, u32* clip0, u32* clip1, int *line_enable);
|
||||
void get_spritealphaclip_info();
|
||||
void get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, uint16_t *f3_pf_data_n);
|
||||
void get_line_ram_info(tilemap_t *tmap, int sx, int sy, int pos, u16 *pf_data_n);
|
||||
void get_vram_info(tilemap_t *vram_tilemap, tilemap_t *pixel_tilemap, int sx, int sy);
|
||||
void scanline_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
private:
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<taito_en_device> m_taito_en;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
|
||||
optional_shared_ptr<u32> m_paletteram32;
|
||||
optional_memory_bank m_okibank;
|
||||
|
||||
void bubsympb_oki_w(u8 data);
|
||||
u32 f3_control_r(offs_t offset);
|
||||
void f3_control_w(offs_t offset, u32 data, u32 mem_mask = ~0);
|
||||
void f3_unk_w(offs_t offset, u16 data);
|
||||
void sound_reset_0_w(u32 data);
|
||||
void sound_reset_1_w(u32 data);
|
||||
void sound_bankswitch_w(offs_t offset, u32 data, u32 mem_mask = ~0);
|
||||
void palette_24bit_w(offs_t offset, u32 data, u32 mem_mask = ~0);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(interrupt2);
|
||||
|
||||
void bubsympb_oki_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_TAITO_F3_H
|
||||
|
@ -68,6 +68,8 @@ public:
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
virtual void device_post_load() override;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
enum
|
||||
@ -89,7 +91,7 @@ private:
|
||||
u16 m_cpua_ctrl;
|
||||
s32 m_sci_int6;
|
||||
s32 m_ioc220_port;
|
||||
u8 m_eep_latch;
|
||||
u8 m_eep_latch;
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -129,8 +131,6 @@ private:
|
||||
u16 sci_spriteframe_r();
|
||||
void sci_spriteframe_w(u16 data);
|
||||
void contcirc_out_w(u8 data);
|
||||
DECLARE_MACHINE_START(taitoz);
|
||||
DECLARE_MACHINE_RESET(taitoz);
|
||||
DECLARE_VIDEO_START(taitoz);
|
||||
DECLARE_MACHINE_START(chasehq);
|
||||
u32 screen_update_contcirc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
@ -17,8 +17,8 @@
|
||||
class warriorb_state : public driver_device
|
||||
{
|
||||
public:
|
||||
warriorb_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
warriorb_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_tc0140syt(*this, "tc0140syt"),
|
||||
m_tc0100scn(*this, "tc0100scn_%u", 1),
|
||||
@ -29,7 +29,8 @@ public:
|
||||
m_2610_r(*this, "2610.%u.r", 1),
|
||||
m_gfxdecode(*this, "gfxdecode_%u", 1),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_z80bank(*this, "z80bank") { }
|
||||
m_z80bank(*this, "z80bank")
|
||||
{ }
|
||||
|
||||
void warriorb(machine_config &config);
|
||||
void darius2d(machine_config &config);
|
||||
@ -47,7 +48,7 @@ private:
|
||||
required_device_array<gfxdecode_device, 2> m_gfxdecode;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
|
||||
/* memory regions */
|
||||
required_memory_bank m_z80bank;
|
||||
@ -58,15 +59,15 @@ private:
|
||||
void coin_control_w(u8 data);
|
||||
void sound_bankswitch_w(u8 data);
|
||||
void pancontrol_w(offs_t offset, u8 data);
|
||||
DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w);
|
||||
void tc0100scn_dual_screen_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip);
|
||||
uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip);
|
||||
u32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip);
|
||||
|
||||
void darius2d_map(address_map &map);
|
||||
void warriorb_map(address_map &map);
|
||||
|
@ -71,6 +71,40 @@ private:
|
||||
|
||||
DECLARE_DEVICE_TYPE(XBOX_EEPROM, xbox_eeprom_device)
|
||||
|
||||
/*
|
||||
* Super-io connected to lpc bus used as a rs232 debug port
|
||||
*/
|
||||
|
||||
class xbox_superio_device : public device_t, public lpcbus_device_interface
|
||||
{
|
||||
public:
|
||||
xbox_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual void map_extra(address_space *memory_space, address_space *io_space) override;
|
||||
virtual void set_host(int index, lpcbus_host_interface *host) override;
|
||||
|
||||
DECLARE_READ8_MEMBER(read);
|
||||
DECLARE_WRITE8_MEMBER(write);
|
||||
DECLARE_READ8_MEMBER(read_rs232);
|
||||
DECLARE_WRITE8_MEMBER(write_rs232);
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
|
||||
private:
|
||||
void internal_io_map(address_map &map);
|
||||
|
||||
lpcbus_host_interface *lpchost;
|
||||
int lpcindex;
|
||||
address_space *memspace;
|
||||
address_space *iospace;
|
||||
bool configuration_mode;
|
||||
int index;
|
||||
int selected;
|
||||
uint8_t registers[16][256]; // 256 registers for up to 16 devices, registers 0-0x2f common to all
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(XBOX_SUPERIO, xbox_superio_device)
|
||||
|
||||
/*
|
||||
* Base
|
||||
*/
|
||||
@ -85,20 +119,12 @@ public:
|
||||
debug_irq_number(0),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
mcpxlpc(*this, ":pci:01.0"),
|
||||
ide(*this, ":pci:09.0:ide"),
|
||||
ide(*this, ":pci:09.0:ide1"),
|
||||
debugc_bios(nullptr) { }
|
||||
|
||||
void xbox_base(machine_config &config);
|
||||
|
||||
protected:
|
||||
DECLARE_READ8_MEMBER(superio_read);
|
||||
DECLARE_WRITE8_MEMBER(superio_write);
|
||||
DECLARE_READ8_MEMBER(superiors232_read);
|
||||
DECLARE_WRITE8_MEMBER(superiors232_write);
|
||||
|
||||
int smbus_pic16lc(int command, int rw, int data);
|
||||
int smbus_cx25871(int command, int rw, int data);
|
||||
int smbus_eeprom(int command, int rw, int data);
|
||||
void debug_generate_irq(int irq, bool active);
|
||||
virtual void hack_eeprom() {};
|
||||
virtual void hack_usb() {};
|
||||
@ -114,13 +140,6 @@ protected:
|
||||
DECLARE_WRITE_LINE_MEMBER(nv2a_interrupt_changed);
|
||||
IRQ_CALLBACK_MEMBER(irq_callback);
|
||||
|
||||
struct superio_state
|
||||
{
|
||||
bool configuration_mode;
|
||||
int index;
|
||||
int selected;
|
||||
uint8_t registers[16][256]; // 256 registers for up to 16 devices, registers 0-0x2f common to all
|
||||
} superiost;
|
||||
nv2a_renderer *nvidia_nv2a;
|
||||
bool debug_irq_active;
|
||||
int debug_irq_number;
|
||||
@ -134,9 +153,6 @@ protected:
|
||||
} debugp[];
|
||||
const debugger_constants *debugc_bios;
|
||||
|
||||
void xbox_base_map(address_map &map);
|
||||
void xbox_base_map_io(address_map &map);
|
||||
|
||||
private:
|
||||
void dump_string_command(int ref, const std::vector<std::string> ¶ms);
|
||||
void dump_process_command(int ref, const std::vector<std::string> ¶ms);
|
||||
|
@ -503,6 +503,7 @@ public:
|
||||
void debug_grab_texture(int type, const char *filename);
|
||||
void debug_grab_vertex_program_slot(int slot, uint32_t *instruction);
|
||||
void start(address_space *cpu_space);
|
||||
void set_ram_base(void *base);
|
||||
void savestate_items();
|
||||
void compute_supersample_factors(float &horizontal, float &vertical);
|
||||
void compute_limits_rendertarget(uint32_t chanel, uint32_t subchannel);
|
||||
|
@ -43,13 +43,27 @@ DECLARE_DEVICE_TYPE(NV2A_HOST, nv2a_host_device)
|
||||
|
||||
class nv2a_ram_device : public pci_device {
|
||||
public:
|
||||
nv2a_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, int memory_size)
|
||||
: nv2a_ram_device(mconfig, tag, owner, clock)
|
||||
{
|
||||
ram_size = memory_size;
|
||||
}
|
||||
nv2a_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
virtual void config_map(address_map &map) override;
|
||||
|
||||
virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
|
||||
DECLARE_READ32_MEMBER(config_register_r);
|
||||
DECLARE_WRITE32_MEMBER(config_register_w);
|
||||
|
||||
private:
|
||||
int ram_size;
|
||||
std::vector<uint32_t> ram;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(NV2A_RAM, nv2a_ram_device)
|
||||
@ -117,6 +131,12 @@ private:
|
||||
required_device<pic8259_device> pic8259_2;
|
||||
required_device<pit8254_device> pit8254;
|
||||
|
||||
uint16_t m_pm1_status;
|
||||
uint16_t m_pm1_enable;
|
||||
uint16_t m_pm1_control;
|
||||
uint16_t m_pm1_timer;
|
||||
uint16_t m_gpe0_status;
|
||||
uint16_t m_gpe0_enable;
|
||||
uint16_t m_global_smi_control;
|
||||
uint8_t m_smi_command_port;
|
||||
lpcbus_device_interface *lpcdevices[16];
|
||||
@ -332,17 +352,30 @@ class mcpx_ide_device : public pci_device {
|
||||
public:
|
||||
mcpx_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
auto interrupt_handler() { return m_interrupt_handler.bind(); }
|
||||
auto pri_interrupt_handler() { return m_pri_interrupt_handler.bind(); }
|
||||
auto sec_interrupt_handler() { return m_sec_interrupt_handler.bind(); }
|
||||
|
||||
virtual void config_map(address_map &map) override;
|
||||
|
||||
DECLARE_WRITE32_MEMBER(class_rev_w);
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
|
||||
|
||||
private:
|
||||
devcb_write_line m_interrupt_handler;
|
||||
void mcpx_ide_io(address_map &map);
|
||||
DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
|
||||
devcb_write_line m_pri_interrupt_handler;
|
||||
devcb_write_line m_sec_interrupt_handler;
|
||||
void ide_pri_command(address_map &map);
|
||||
void ide_pri_control(address_map &map);
|
||||
void ide_sec_command(address_map &map);
|
||||
void ide_sec_control(address_map &map);
|
||||
void ide_io(address_map &map);
|
||||
DECLARE_WRITE_LINE_MEMBER(ide_pri_interrupt);
|
||||
DECLARE_WRITE_LINE_MEMBER(ide_sec_interrupt);
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(MCPX_IDE, mcpx_ide_device)
|
||||
|
@ -725,6 +725,7 @@
|
||||
<element name="Text_Solenoids"><text string="Momentary Solenoids"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="Text_Coils"><text string="Coils"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="Text_MPU_LED"><text string="MPU LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="Text_Sound_LED"><text string="Sound LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="Text_Activity"><text string="Activity Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="Text_Service"><text string="Service Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
<element name="Text_Slam"><text string="Slam Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
|
||||
@ -1012,18 +1013,6 @@
|
||||
<bezel element="Text_Multiball"><bounds x="013" y="350" width="314" height="12" /></bezel>
|
||||
|
||||
|
||||
<!-- Backbox -->
|
||||
|
||||
<!-- MPU Board Power On Self Test LED -->
|
||||
<bezel element="Text_MPU_LED"> <bounds x="609" y="342" width="30" height="10" /></bezel>
|
||||
<bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- MPU Board Activity Switch -->
|
||||
<bezel element="Text_Activity"> <bounds x="540" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="550" y="331" width="20" height="10" /></bezel>
|
||||
<bezel element="Key_0"> <bounds x="571" y="330" width="10" height="10" /></bezel>
|
||||
|
||||
|
||||
<!-- Player 1 Score -->
|
||||
<bezel name="lamp14" element="Lamp_P1"><bounds x="330" y="55" width="15" height="15" /></bezel> <!-- Backbox ~ 1st Player Up -->
|
||||
<bezel name="digit17" element="Digit"><bounds x="360" y="55" width="10" height="15" /></bezel>
|
||||
@ -1184,20 +1173,32 @@
|
||||
<bezel name="solenoid19" element="Coil_PullDown"><bounds x="615" y="459" width="09" height="12" /></bezel>
|
||||
|
||||
|
||||
|
||||
<!-- Backbox -->
|
||||
<!-- Cabinet Switches -->
|
||||
<bezel element="Text_Service"> <bounds x="485" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="495" y="331" width="20" height="10" /></bezel>
|
||||
<bezel element="Key_9"> <bounds x="516" y="330" width="10" height="10" /></bezel>
|
||||
<bezel element="Text_Service"> <bounds x="425" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="435" y="331" width="20" height="10" /></bezel>
|
||||
<bezel element="Key_9"> <bounds x="456" y="330" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="Text_Slam"> <bounds x="430" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="434" y="331" width="25" height="08" /></bezel>
|
||||
<bezel element="Key_Equals"> <bounds x="461" y="330" width="10" height="10" /></bezel>
|
||||
<bezel element="Text_Slam"> <bounds x="370" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="374" y="331" width="25" height="08" /></bezel>
|
||||
<bezel element="Key_Equals"> <bounds x="401" y="330" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="Text_Tilt"> <bounds x="380" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="390" y="324" width="17" height="17" /></bezel>
|
||||
<bezel element="Key_T"> <bounds x="411" y="330" width="10" height="10" /></bezel>
|
||||
<bezel element="Text_Tilt"> <bounds x="320" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="330" y="324" width="17" height="17" /></bezel>
|
||||
<bezel element="Key_T"> <bounds x="351" y="330" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- MPU Board Activity Switch -->
|
||||
<bezel element="Text_Activity"> <bounds x="480" y="342" width="50" height="10" /></bezel>
|
||||
<bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="490" y="331" width="20" height="10" /></bezel>
|
||||
<bezel element="Key_0"> <bounds x="511" y="330" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- MPU Board Power On Self Test LED -->
|
||||
<bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
|
||||
<bezel element="Text_MPU_LED"> <bounds x="609" y="342" width="30" height="10" /></bezel>
|
||||
|
||||
<!-- Sound Board Power On Self Test LED -->
|
||||
<bezel name="sound_led0" element="LED_Green"><bounds x="618" y="358" width="10" height="10" /></bezel>
|
||||
<bezel element="Text_Sound_LED"> <bounds x="609" y="372" width="30" height="10" /></bezel>
|
||||
|
||||
<!-- Misc Solenoids -->
|
||||
<bezel name="solenoid5" element="Solenoid_Knocker"><bounds x="297" y="457" width="23" height="09" /></bezel>
|
||||
|
@ -2,9 +2,9 @@
|
||||
// copyright-holders:David Haywood
|
||||
|
||||
#include "emu.h"
|
||||
#include "rad_eu3a05gpio.h"
|
||||
#include "elan_eu3a05gpio.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(RADICA6502_GPIO, radica6502_gpio_device, "radica6502gpio", "Radica 6502 GPIO")
|
||||
DEFINE_DEVICE_TYPE(RADICA6502_GPIO, radica6502_gpio_device, "radica6502gpio", "Elan EU3A05 GPIO")
|
||||
|
||||
radica6502_gpio_device::radica6502_gpio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, RADICA6502_GPIO, tag, owner, clock)
|
@ -573,77 +573,6 @@ WRITE_LINE_MEMBER(xbox_base_state::ide_interrupt_changed)
|
||||
mcpxlpc->irq14(state);
|
||||
}
|
||||
|
||||
/*
|
||||
* SuperIO
|
||||
*/
|
||||
|
||||
READ8_MEMBER(xbox_base_state::superio_read)
|
||||
{
|
||||
if (superiost.configuration_mode == false)
|
||||
return 0;
|
||||
if (offset == 0) // index port 0x2e
|
||||
return superiost.index;
|
||||
if (offset == 1)
|
||||
{
|
||||
// data port 0x2f
|
||||
if (superiost.index < 0x30)
|
||||
return superiost.registers[0][superiost.index];
|
||||
return superiost.registers[superiost.selected][superiost.index];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xbox_base_state::superio_write)
|
||||
{
|
||||
if (superiost.configuration_mode == false)
|
||||
{
|
||||
// config port 0x2e
|
||||
if ((offset == 0) && (data == 0x55))
|
||||
superiost.configuration_mode = true;
|
||||
return;
|
||||
}
|
||||
if ((offset == 0) && (data == 0xaa))
|
||||
{
|
||||
// config port 0x2e
|
||||
superiost.configuration_mode = false;
|
||||
return;
|
||||
}
|
||||
if (offset == 0)
|
||||
{
|
||||
// index port 0x2e
|
||||
superiost.index = data;
|
||||
}
|
||||
if (offset == 1)
|
||||
{
|
||||
// data port 0x2f
|
||||
if (superiost.index < 0x30)
|
||||
{
|
||||
superiost.registers[0][superiost.index] = data;
|
||||
superiost.selected = superiost.registers[0][7];
|
||||
} else
|
||||
{
|
||||
superiost.registers[superiost.selected][superiost.index] = data;
|
||||
//if ((superiost.selected == 4) && (superiost.index == 0x30) && (data != 0))
|
||||
// ; // add handlers 0x3f8- +7
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER(xbox_base_state::superiors232_read)
|
||||
{
|
||||
if (offset == 5)
|
||||
return 0x20;
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xbox_base_state::superiors232_write)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
printf("%c", data);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* SMbus devices
|
||||
*/
|
||||
@ -778,6 +707,114 @@ void xbox_eeprom_device::device_reset()
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Super-io connected to lpc bus
|
||||
*/
|
||||
|
||||
DEFINE_DEVICE_TYPE(XBOX_SUPERIO, xbox_superio_device, "superio_device", "XBOX debug SuperIO")
|
||||
|
||||
xbox_superio_device::xbox_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, XBOX_SUPERIO, tag, owner, clock)
|
||||
, configuration_mode(false)
|
||||
, index(0)
|
||||
, selected(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void xbox_superio_device::internal_io_map(address_map &map)
|
||||
{
|
||||
map(0x002e, 0x002f).rw(FUNC(xbox_superio_device::read), FUNC(xbox_superio_device::write));
|
||||
map(0x03f8, 0x03ff).rw(FUNC(xbox_superio_device::read_rs232), FUNC(xbox_superio_device::write_rs232));
|
||||
}
|
||||
|
||||
void xbox_superio_device::map_extra(address_space *memory_space, address_space *io_space)
|
||||
{
|
||||
memspace = memory_space;
|
||||
iospace = io_space;
|
||||
io_space->install_device(0, 0xffff, *this, &xbox_superio_device::internal_io_map);
|
||||
}
|
||||
|
||||
void xbox_superio_device::set_host(int index, lpcbus_host_interface *host)
|
||||
{
|
||||
lpchost = host;
|
||||
lpcindex = index;
|
||||
}
|
||||
|
||||
void xbox_superio_device::device_start()
|
||||
{
|
||||
memset(registers, 0, sizeof(registers));
|
||||
registers[0][0x26] = 0x2e; // Configuration port address byte 0
|
||||
}
|
||||
|
||||
READ8_MEMBER(xbox_superio_device::read)
|
||||
{
|
||||
if (configuration_mode == false)
|
||||
return 0;
|
||||
if (offset == 0) // index port 0x2e
|
||||
return index;
|
||||
if (offset == 1)
|
||||
{
|
||||
// data port 0x2f
|
||||
if (index < 0x30)
|
||||
return registers[0][index];
|
||||
return registers[selected][index];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xbox_superio_device::write)
|
||||
{
|
||||
if (configuration_mode == false)
|
||||
{
|
||||
// config port 0x2e
|
||||
if ((offset == 0) && (data == 0x55))
|
||||
configuration_mode = true;
|
||||
return;
|
||||
}
|
||||
if ((offset == 0) && (data == 0xaa))
|
||||
{
|
||||
// config port 0x2e
|
||||
configuration_mode = false;
|
||||
return;
|
||||
}
|
||||
if (offset == 0)
|
||||
{
|
||||
// index port 0x2e
|
||||
index = data;
|
||||
}
|
||||
if (offset == 1)
|
||||
{
|
||||
// data port 0x2f
|
||||
if (index < 0x30)
|
||||
{
|
||||
registers[0][index] = data;
|
||||
selected = registers[0][7];
|
||||
}
|
||||
else
|
||||
{
|
||||
registers[selected][index] = data;
|
||||
//if ((superiost.selected == 4) && (superiost.index == 0x30) && (data != 0))
|
||||
// ; // add handlers 0x3f8- +7
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER(xbox_superio_device::read_rs232)
|
||||
{
|
||||
if (offset == 5)
|
||||
return 0x20;
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xbox_superio_device::write_rs232)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
printf("%c", data);
|
||||
}
|
||||
}
|
||||
|
||||
void xbox_base_state::machine_start()
|
||||
{
|
||||
find_debug_params();
|
||||
@ -798,19 +835,15 @@ void xbox_base_state::machine_start()
|
||||
hack_usb();
|
||||
}
|
||||
);
|
||||
// super-io
|
||||
memset(&superiost, 0, sizeof(superiost));
|
||||
superiost.configuration_mode = false;
|
||||
superiost.registers[0][0x26] = 0x2e; // Configuration port address byte 0
|
||||
// savestates
|
||||
save_item(NAME(debug_irq_active));
|
||||
save_item(NAME(debug_irq_number));
|
||||
}
|
||||
|
||||
#if 0
|
||||
void xbox_base_state::xbox_base_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x07ffffff).ram(); // 128 megabytes
|
||||
#if 0
|
||||
map(0xf0000000, 0xf7ffffff).ram().share("nv2a_share"); // 3d accelerator wants this
|
||||
map(0xfd000000, 0xfdffffff).ram().rw(FUNC(xbox_base_state::geforce_r), FUNC(xbox_base_state::geforce_w));
|
||||
map(0xfed00000, 0xfed003ff).rw(FUNC(xbox_base_state::ohci_usb_r), FUNC(xbox_base_state::ohci_usb_w));
|
||||
@ -818,15 +851,13 @@ void xbox_base_state::xbox_base_map(address_map &map)
|
||||
map(0xfe800000, 0xfe87ffff).rw(FUNC(xbox_base_state::audio_apu_r), FUNC(xbox_base_state::audio_apu_w));
|
||||
map(0xfec00000, 0xfec00fff).rw(FUNC(xbox_base_state::audio_ac93_r), FUNC(xbox_base_state::audio_ac93_w));
|
||||
map(0xfef00000, 0xfef003ff).rw(FUNC(xbox_base_state::network_r), FUNC(xbox_base_state::network_w));
|
||||
#endif
|
||||
}
|
||||
|
||||
void xbox_base_state::xbox_base_map_io(address_map &map)
|
||||
{
|
||||
map(0x01f0, 0x01f7).rw(":pci:09.0:ide1", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w));
|
||||
map(0x002e, 0x002f).rw(FUNC(xbox_base_state::superio_read), FUNC(xbox_base_state::superio_write));
|
||||
map(0x01f0, 0x01f7).rw(":pci:09.0:ide", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w));
|
||||
map(0x03f8, 0x03ff).rw(FUNC(xbox_base_state::superiors232_read), FUNC(xbox_base_state::superiors232_write));
|
||||
#if 0
|
||||
map(0x0cf8, 0x0cff).rw("pcibus", FUNC(pci_bus_legacy_device::read), FUNC(pci_bus_legacy_device::write));
|
||||
map(0x8000, 0x80ff).rw(FUNC(xbox_base_state::dummy_r), FUNC(xbox_base_state::dummy_w)); // lpc bridge
|
||||
map(0xc000, 0xc00f).rw(FUNC(xbox_base_state::smbus_r), FUNC(xbox_base_state::smbus_w));
|
||||
@ -835,23 +866,22 @@ void xbox_base_state::xbox_base_map_io(address_map &map)
|
||||
map(0xd200, 0xd27f).noprw(); // ac97
|
||||
map(0xe000, 0xe007).rw(FUNC(xbox_base_state::networkio_r), FUNC(xbox_base_state::networkio_w));
|
||||
map(0xff60, 0xff6f).rw("ide", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w));
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
void xbox_base_state::xbox_base(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
PENTIUM3(config, m_maincpu, 733333333); /* Wrong! family 6 model 8 stepping 10 */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &xbox_base_state::xbox_base_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &xbox_base_state::xbox_base_map_io);
|
||||
m_maincpu->set_irq_acknowledge_callback(FUNC(xbox_base_state::irq_callback));
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(6000);
|
||||
|
||||
PCI_ROOT(config, ":pci", 0);
|
||||
NV2A_HOST(config, ":pci:00.0", 0, m_maincpu);
|
||||
NV2A_RAM(config, ":pci:00.3", 0);
|
||||
NV2A_RAM(config, ":pci:00.3", 0, 128); // 128 megabytes
|
||||
MCPX_ISALPC(config, ":pci:01.0", 0, 0).interrupt_output().set(FUNC(xbox_base_state::maincpu_interrupt));
|
||||
XBOX_SUPERIO(config, ":pci:01.0:0", 0);
|
||||
MCPX_SMBUS(config, ":pci:01.1", 0).interrupt_handler().set(FUNC(xbox_base_state::smbus_interrupt_changed));
|
||||
XBOX_PIC16LC(config, ":pci:01.1:110", 0); // these 3 are on smbus number 1
|
||||
XBOX_CX25871(config, ":pci:01.1:145", 0);
|
||||
@ -863,7 +893,7 @@ void xbox_base_state::xbox_base(machine_config &config)
|
||||
MCPX_AC97_AUDIO(config, ":pci:06.0", 0);
|
||||
MCPX_AC97_MODEM(config, ":pci:06.1", 0);
|
||||
PCI_BRIDGE(config, ":pci:08.0", 0, 0x10de01b8, 0);
|
||||
MCPX_IDE(config, ":pci:09.0", 0).interrupt_handler().set(FUNC(xbox_base_state::ide_interrupt_changed));
|
||||
MCPX_IDE(config, ":pci:09.0", 0).pri_interrupt_handler().set(FUNC(xbox_base_state::ide_interrupt_changed));
|
||||
NV2A_AGP(config, ":pci:1e.0", 0, 0x10de01b7, 0);
|
||||
NV2A_GPU(config, ":pci:1e.0:00.0", 0, m_maincpu).interrupt_handler().set(FUNC(xbox_base_state::nv2a_interrupt_changed));
|
||||
|
||||
|
@ -69,6 +69,12 @@ nv2a_ram_device::nv2a_ram_device(const machine_config &mconfig, const char *tag,
|
||||
set_ids(0x10de02a6, 0, 0, 0);
|
||||
}
|
||||
|
||||
void nv2a_ram_device::device_start()
|
||||
{
|
||||
pci_device::device_start();
|
||||
ram.resize(ram_size * 1024 * 1024 / 4);
|
||||
}
|
||||
|
||||
READ32_MEMBER(nv2a_ram_device::config_register_r)
|
||||
{
|
||||
return 0x08800044;
|
||||
@ -78,6 +84,12 @@ WRITE32_MEMBER(nv2a_ram_device::config_register_w)
|
||||
{
|
||||
}
|
||||
|
||||
void nv2a_ram_device::map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space)
|
||||
{
|
||||
memory_space->install_ram(0x00000000, ram_size * 1024 * 1024 - 1, &ram[0]);
|
||||
}
|
||||
|
||||
/*
|
||||
* LPC Bus
|
||||
*/
|
||||
@ -121,6 +133,12 @@ mcpx_isalpc_device::mcpx_isalpc_device(const machine_config &mconfig, const char
|
||||
pic8259_1(*this, "pic8259_1"),
|
||||
pic8259_2(*this, "pic8259_2"),
|
||||
pit8254(*this, "pit8254"),
|
||||
m_pm1_status(0),
|
||||
m_pm1_enable(0),
|
||||
m_pm1_control(0),
|
||||
m_pm1_timer(0),
|
||||
m_gpe0_status(0),
|
||||
m_gpe0_enable(0),
|
||||
m_global_smi_control(0),
|
||||
m_smi_command_port(0)
|
||||
{
|
||||
@ -129,11 +147,15 @@ mcpx_isalpc_device::mcpx_isalpc_device(const machine_config &mconfig, const char
|
||||
void mcpx_isalpc_device::device_start()
|
||||
{
|
||||
pci_device::device_start();
|
||||
set_multifunction_device(true);
|
||||
m_smi_callback.resolve_safe();
|
||||
m_interrupt_output.resolve_safe();
|
||||
m_boot_state_hook.resolve_safe();
|
||||
add_map(0x00000100, M_IO, FUNC(mcpx_isalpc_device::lpc_io));
|
||||
bank_infos[0].adr = 0x8000;
|
||||
status = 0x00b0;
|
||||
command = 0x0081;
|
||||
command_mask = 0x01be;
|
||||
for (int a = 0; a < 16; a++)
|
||||
lpcdevices[a] = nullptr;
|
||||
for (device_t &d : subdevices())
|
||||
@ -203,7 +225,7 @@ void mcpx_isalpc_device::update_smi_line()
|
||||
|
||||
READ32_MEMBER(mcpx_isalpc_device::acpi_r)
|
||||
{
|
||||
logerror("Acpi read from %04X mask %08X\n", bank_infos[0].adr + offset * 4, mem_mask);
|
||||
logerror("Acpi read from %04X mask %08X\n", (bank_infos[0].adr & 0xfffffffe) + offset * 4, mem_mask);
|
||||
if ((offset == 0xa) && ACCESSING_BITS_0_15)
|
||||
return m_global_smi_control;
|
||||
if ((offset == 0xb) && ACCESSING_BITS_16_23)
|
||||
@ -213,15 +235,35 @@ READ32_MEMBER(mcpx_isalpc_device::acpi_r)
|
||||
|
||||
WRITE32_MEMBER(mcpx_isalpc_device::acpi_w)
|
||||
{
|
||||
// Seen using word registers at the following offsets
|
||||
logerror("Acpi write %08X to %04X mask %08X\n", data, (bank_infos[0].adr & 0xfffffffe) + offset * 4, mem_mask);
|
||||
// Seen using word registers at offsets
|
||||
// 0x00 0x02 0x04 0x08 0x20 0x22 0x28 0xa0 0xa2 0xc0-0xd8
|
||||
if ((offset == 0xa) && ACCESSING_BITS_0_15)
|
||||
// Byte access at 0x2e
|
||||
if ((offset == 0) && ACCESSING_BITS_0_15)
|
||||
// pm1 status register
|
||||
m_pm1_status = data & 0xffff;
|
||||
else if ((offset == 0) && ACCESSING_BITS_16_31)
|
||||
// pm1 enable register
|
||||
m_pm1_enable = data >> 16;
|
||||
else if ((offset == 1) && ACCESSING_BITS_0_15)
|
||||
// pm1 control register
|
||||
m_pm1_control = data & 0xffff;
|
||||
else if ((offset == 2) && ACCESSING_BITS_0_15)
|
||||
// pm1 timer register
|
||||
m_pm1_timer = data & 0xffff;
|
||||
else if ((offset == 8) && ACCESSING_BITS_0_15)
|
||||
// gpe0 status register
|
||||
m_gpe0_status = data & 0xffff;
|
||||
else if ((offset == 8) && ACCESSING_BITS_16_31)
|
||||
// gpe0 enable register
|
||||
m_gpe0_enable = data >> 16;
|
||||
else if ((offset == 0xa) && ACCESSING_BITS_0_15)
|
||||
{
|
||||
// Global SMI Control
|
||||
m_global_smi_control = m_global_smi_control & (~data & 0xffff);
|
||||
update_smi_line();
|
||||
}
|
||||
if ((offset == 0xb) && ACCESSING_BITS_16_23)
|
||||
else if ((offset == 0xb) && ACCESSING_BITS_16_23)
|
||||
{
|
||||
// SMI Command Port
|
||||
// write to byte 0x2e must generate a SMI interrupt
|
||||
@ -230,7 +272,8 @@ WRITE32_MEMBER(mcpx_isalpc_device::acpi_w)
|
||||
update_smi_line();
|
||||
logerror("Generate software SMI with value %02X\n", m_smi_command_port);
|
||||
}
|
||||
logerror("Acpi write %08X to %04X mask %08X\n", data, bank_infos[0].adr + offset * 4, mem_mask);
|
||||
else
|
||||
logerror("Acpi write not recognized\n");
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mcpx_isalpc_device::boot_state_w)
|
||||
@ -384,6 +427,7 @@ mcpx_smbus_device::mcpx_smbus_device(const machine_config &mconfig, const char *
|
||||
void mcpx_smbus_device::device_start()
|
||||
{
|
||||
pci_device::device_start();
|
||||
set_multifunction_device(true);
|
||||
m_interrupt_handler.resolve_safe();
|
||||
add_map(0x00000010, M_IO, FUNC(mcpx_smbus_device::smbus_io0));
|
||||
bank_infos[0].adr = 0x1000;
|
||||
@ -391,6 +435,7 @@ void mcpx_smbus_device::device_start()
|
||||
bank_infos[1].adr = 0xc000;
|
||||
add_map(0x00000020, M_IO, FUNC(mcpx_smbus_device::smbus_io2));
|
||||
bank_infos[2].adr = 0xc200;
|
||||
status = 0x00b0;
|
||||
memset(&smbusst, 0, sizeof(smbusst));
|
||||
for (int b = 0; b < 2; b++)
|
||||
for (int a = 0; a < 128; a++)
|
||||
@ -547,6 +592,7 @@ void mcpx_ohci_device::device_start()
|
||||
m_interrupt_handler.resolve_safe();
|
||||
add_map(0x00001000, M_MEM, FUNC(mcpx_ohci_device::ohci_mmio));
|
||||
bank_infos[0].adr = 0xfed00000;
|
||||
status = 0x00b0;
|
||||
ohci_usb = new ohci_usb_controller();
|
||||
ohci_usb->set_cpu(maincpu.target());
|
||||
ohci_usb->set_irq_callbaclk(
|
||||
@ -689,6 +735,7 @@ void mcpx_apu_device::device_start()
|
||||
pci_device::device_start();
|
||||
add_map(0x00080000, M_MEM, FUNC(mcpx_apu_device::apu_mmio));
|
||||
bank_infos[0].adr = 0xfe800000;
|
||||
status = 0x00b0;
|
||||
memset(apust.memory, 0, sizeof(apust.memory));
|
||||
memset(apust.voices_heap_blockaddr, 0, sizeof(apust.voices_heap_blockaddr));
|
||||
memset(apust.voices_active, 0, sizeof(apust.voices_active));
|
||||
@ -884,12 +931,14 @@ mcpx_ac97_audio_device::mcpx_ac97_audio_device(const machine_config &mconfig, co
|
||||
void mcpx_ac97_audio_device::device_start()
|
||||
{
|
||||
pci_device::device_start();
|
||||
set_multifunction_device(true);
|
||||
add_map(0x00000100, M_IO, FUNC(mcpx_ac97_audio_device::ac97_io0));
|
||||
bank_infos[0].adr = 0xd000;
|
||||
add_map(0x00000080, M_IO, FUNC(mcpx_ac97_audio_device::ac97_io1));
|
||||
bank_infos[1].adr = 0xd200;
|
||||
add_map(0x00001000, M_MEM, FUNC(mcpx_ac97_audio_device::ac97_mmio));
|
||||
bank_infos[2].adr = 0xfec00000;
|
||||
status = 0x00b0;
|
||||
memset(&ac97st, 0, sizeof(ac97st));
|
||||
}
|
||||
|
||||
@ -981,24 +1030,56 @@ mcpx_ac97_modem_device::mcpx_ac97_modem_device(const machine_config &mconfig, co
|
||||
|
||||
DEFINE_DEVICE_TYPE(MCPX_IDE, mcpx_ide_device, "mcpx_ide", "MCPX IDE Controller")
|
||||
|
||||
void mcpx_ide_device::mcpx_ide_io(address_map &map)
|
||||
void mcpx_ide_device::config_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x000f).rw("ide", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w));
|
||||
pci_device::config_map(map);
|
||||
map(0x08, 0x0b).rw(FUNC(pci_device::class_rev_r), FUNC(mcpx_ide_device::class_rev_w));
|
||||
}
|
||||
|
||||
void mcpx_ide_device::ide_pri_command(address_map &map)
|
||||
{
|
||||
map(0, 7).rw("ide1", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w));
|
||||
}
|
||||
|
||||
void mcpx_ide_device::ide_pri_control(address_map &map)
|
||||
{
|
||||
}
|
||||
|
||||
void mcpx_ide_device::ide_sec_command(address_map &map)
|
||||
{
|
||||
map(0, 7).rw("ide2", FUNC(bus_master_ide_controller_device::cs0_r), FUNC(bus_master_ide_controller_device::cs0_w));
|
||||
}
|
||||
|
||||
void mcpx_ide_device::ide_sec_control(address_map &map)
|
||||
{
|
||||
}
|
||||
|
||||
void mcpx_ide_device::ide_io(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0007).rw("ide1", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w));
|
||||
map(0x0008, 0x000f).rw("ide2", FUNC(bus_master_ide_controller_device::bmdma_r), FUNC(bus_master_ide_controller_device::bmdma_w));
|
||||
}
|
||||
|
||||
mcpx_ide_device::mcpx_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: pci_device(mconfig, MCPX_IDE, tag, owner, clock),
|
||||
m_interrupt_handler(*this)
|
||||
m_pri_interrupt_handler(*this),
|
||||
m_sec_interrupt_handler(*this)
|
||||
{
|
||||
set_ids(0x10de01bc, 0, 0, 0);
|
||||
set_ids(0x10de01bc, 0, 0x01018a, 0);
|
||||
}
|
||||
|
||||
void mcpx_ide_device::device_start()
|
||||
{
|
||||
pci_device::device_start();
|
||||
add_map(0x00000010, M_IO, FUNC(mcpx_ide_device::mcpx_ide_io));
|
||||
bank_infos[0].adr = 0xff60;
|
||||
m_interrupt_handler.resolve_safe();
|
||||
add_map(0x00000008, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_pri_command)); // primary command block
|
||||
add_map(0x00000004, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_pri_control)); // primary control block
|
||||
add_map(0x00000008, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_sec_command)); // secondary command block
|
||||
add_map(0x00000004, M_IO | M_DISABLED, FUNC(mcpx_ide_device::ide_sec_control)); // secondary control block
|
||||
add_map(0x00000010, M_IO, FUNC(mcpx_ide_device::ide_io));
|
||||
bank_infos[4].adr = 0xff60;
|
||||
status = 0x00b0;
|
||||
m_pri_interrupt_handler.resolve_safe();
|
||||
m_sec_interrupt_handler.resolve_safe();
|
||||
}
|
||||
|
||||
void mcpx_ide_device::device_reset()
|
||||
@ -1008,14 +1089,42 @@ void mcpx_ide_device::device_reset()
|
||||
|
||||
void mcpx_ide_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
bus_master_ide_controller_device &ide(BUS_MASTER_IDE_CONTROLLER(config, "ide", 0));
|
||||
ide.irq_handler().set(FUNC(mcpx_ide_device::ide_interrupt));
|
||||
ide.set_bus_master_space(":maincpu", AS_PROGRAM);
|
||||
bus_master_ide_controller_device &ide1(BUS_MASTER_IDE_CONTROLLER(config, "ide1", 0));
|
||||
ide1.irq_handler().set(FUNC(mcpx_ide_device::ide_pri_interrupt));
|
||||
ide1.set_bus_master_space(":maincpu", AS_PROGRAM);
|
||||
|
||||
bus_master_ide_controller_device &ide2(BUS_MASTER_IDE_CONTROLLER(config, "ide2", 0));
|
||||
ide2.irq_handler().set(FUNC(mcpx_ide_device::ide_sec_interrupt));
|
||||
ide2.set_bus_master_space(":maincpu", AS_PROGRAM);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(mcpx_ide_device::ide_interrupt)
|
||||
void mcpx_ide_device::map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
|
||||
uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space)
|
||||
{
|
||||
m_interrupt_handler(state);
|
||||
if (~pclass & 1)
|
||||
io_space->install_device(0x1f0, 0x1f7, *this, &mcpx_ide_device::ide_pri_command);
|
||||
/*if (~pclass & 4)
|
||||
io_space->install_device(0x3f0, 0x3f7, *this, &mcpx_ide_device::ide_sec_command);*/
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(mcpx_ide_device::class_rev_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
// bit 0 specifies if the primary channel is in compatibility or native-pci mode
|
||||
// bit 2 specifies if the secondary channel is in compatibility or native-pci mode
|
||||
pclass = (pclass & 0xfffffffa) | ((data >> 8) & 5);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(mcpx_ide_device::ide_pri_interrupt)
|
||||
{
|
||||
m_pri_interrupt_handler(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(mcpx_ide_device::ide_sec_interrupt)
|
||||
{
|
||||
m_sec_interrupt_handler(state);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1088,6 +1197,7 @@ void nv2a_gpu_device::device_start()
|
||||
void nv2a_gpu_device::device_reset()
|
||||
{
|
||||
pci_device::device_reset();
|
||||
nvidia_nv2a->set_ram_base(m_program->get_read_ptr(0));
|
||||
}
|
||||
|
||||
READ32_MEMBER(nv2a_gpu_device::geforce_r)
|
||||
|
@ -12482,6 +12482,22 @@ egghunt // (c) 1995 Invi Image
|
||||
einst256 //
|
||||
einstein //
|
||||
|
||||
@source:elan_eu3a14.cpp
|
||||
rad_gtg
|
||||
rad_rsg
|
||||
rad_rsgp
|
||||
rad_foot
|
||||
rad_bb3
|
||||
rad_bb3p
|
||||
rad_hnt3
|
||||
rad_hnt3p
|
||||
rad_bask
|
||||
rad_baskp
|
||||
|
||||
@source:elan_eu3a05.cpp
|
||||
rad_sinv
|
||||
rad_tetr
|
||||
|
||||
@source:electra.cpp
|
||||
avenger // (c) 1975 Electra
|
||||
|
||||
@ -21757,6 +21773,9 @@ milton // 1980 Milton Bradley
|
||||
@source:milwaukee.cpp
|
||||
mc1200 //
|
||||
|
||||
@source:mindset.cpp
|
||||
mindset // (c) 1984
|
||||
|
||||
@source:mini2440.cpp
|
||||
mini2440 //
|
||||
|
||||
@ -33373,22 +33392,6 @@ r9751 // ROLM 9751 phone system
|
||||
rabbit // (c) 1997 Electronic Arts
|
||||
rabbitjt // (c) 1996 Electronic Arts
|
||||
|
||||
@source:rad_eu3a14.cpp
|
||||
rad_gtg
|
||||
rad_rsg
|
||||
rad_rsgp
|
||||
rad_foot
|
||||
rad_bb3
|
||||
rad_bb3p
|
||||
rad_hnt3
|
||||
rad_hnt3p
|
||||
rad_bask
|
||||
rad_baskp
|
||||
|
||||
@source:rad_eu3a05.cpp
|
||||
rad_sinv
|
||||
rad_tetr
|
||||
|
||||
@source:radio86.cpp
|
||||
impuls03 //
|
||||
kr03 //
|
||||
|
@ -212,6 +212,8 @@ ec184x.cpp
|
||||
ec65.cpp
|
||||
ec7915.cpp
|
||||
einstein.cpp
|
||||
elan_eu3a05.cpp
|
||||
elan_eu3a14.cpp
|
||||
electron.cpp
|
||||
elekscmp.cpp
|
||||
elektronmono.cpp
|
||||
@ -468,6 +470,7 @@ mikrosha.cpp
|
||||
mightyframe.cpp
|
||||
milton6805.cpp
|
||||
milwaukee.cpp
|
||||
mindset.cpp
|
||||
mini2440.cpp
|
||||
minicom.cpp
|
||||
miniforce.cpp
|
||||
|
@ -11,9 +11,9 @@
|
||||
#include "includes/ashnojoe.h"
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info)
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_highest)
|
||||
{
|
||||
int code = m_tileram[tile_index];
|
||||
int code = m_tileram[0][tile_index];
|
||||
|
||||
SET_TILE_INFO_MEMBER(2,
|
||||
code & 0xfff,
|
||||
@ -21,10 +21,10 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_2)
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_midlow)
|
||||
{
|
||||
int code = m_tileram_2[tile_index * 2];
|
||||
int attr = m_tileram_2[tile_index * 2 + 1];
|
||||
int code = m_tileram[1][tile_index * 2];
|
||||
int attr = m_tileram[1][tile_index * 2 + 1];
|
||||
|
||||
SET_TILE_INFO_MEMBER(4,
|
||||
(code & 0x7fff),
|
||||
@ -32,9 +32,9 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_2)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_3)
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_high)
|
||||
{
|
||||
int code = m_tileram_3[tile_index];
|
||||
int code = m_tileram[2][tile_index];
|
||||
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
code & 0xfff,
|
||||
@ -42,9 +42,9 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_3)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_4)
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_low)
|
||||
{
|
||||
int code = m_tileram_4[tile_index];
|
||||
int code = m_tileram[3][tile_index];
|
||||
|
||||
SET_TILE_INFO_MEMBER(1,
|
||||
code & 0xfff,
|
||||
@ -52,10 +52,10 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_4)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_5)
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_midhigh)
|
||||
{
|
||||
int code = m_tileram_5[tile_index * 2];
|
||||
int attr = m_tileram_5[tile_index * 2 + 1];
|
||||
int code = m_tileram[4][tile_index * 2];
|
||||
int attr = m_tileram[4][tile_index * 2 + 1];
|
||||
|
||||
SET_TILE_INFO_MEMBER(4,
|
||||
(code & 0x7fff),
|
||||
@ -63,10 +63,11 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_5)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_6)
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_tile_info_lowest)
|
||||
{
|
||||
int code = m_tileram_6[tile_index * 2];
|
||||
int attr = m_tileram_6[tile_index * 2 + 1];
|
||||
const int buffer = (m_tilemap_reg[0] & 0x02) >> 1;
|
||||
int code = m_tileram[5 + buffer][tile_index * 2];
|
||||
int attr = m_tileram[5 + buffer][tile_index * 2 + 1];
|
||||
|
||||
SET_TILE_INFO_MEMBER(3,
|
||||
(code & 0x1fff),
|
||||
@ -75,139 +76,92 @@ TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_6)
|
||||
}
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(ashnojoe_state::get_joe_tile_info_7)
|
||||
void ashnojoe_state::tilemaps_xscroll_w(offs_t offset, u16 data)
|
||||
{
|
||||
int code = m_tileram_7[tile_index * 2];
|
||||
int attr = m_tileram_7[tile_index * 2 + 1];
|
||||
|
||||
SET_TILE_INFO_MEMBER(3,
|
||||
(code & 0x1fff),
|
||||
((attr >> 8) & 0x1f) + 0x70,
|
||||
0);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram_w)
|
||||
{
|
||||
m_tileram[offset] = data;
|
||||
m_joetilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram2_w)
|
||||
{
|
||||
m_tileram_2[offset] = data;
|
||||
m_joetilemap2->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram3_w)
|
||||
{
|
||||
m_tileram_3[offset] = data;
|
||||
m_joetilemap3->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram4_w)
|
||||
{
|
||||
m_tileram_4[offset] = data;
|
||||
m_joetilemap4->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram5_w)
|
||||
{
|
||||
m_tileram_5[offset] = data;
|
||||
m_joetilemap5->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram6_w)
|
||||
{
|
||||
m_tileram_6[offset] = data;
|
||||
m_joetilemap6->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::ashnojoe_tileram7_w)
|
||||
{
|
||||
m_tileram_7[offset] = data;
|
||||
m_joetilemap7->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::joe_tilemaps_xscroll_w)
|
||||
{
|
||||
switch( offset )
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
m_joetilemap3->set_scrollx(0, data);
|
||||
m_tilemap[2]->set_scrollx(0, data);
|
||||
break;
|
||||
case 1:
|
||||
m_joetilemap5->set_scrollx(0, data);
|
||||
m_tilemap[4]->set_scrollx(0, data);
|
||||
break;
|
||||
case 2:
|
||||
m_joetilemap2->set_scrollx(0, data);
|
||||
m_tilemap[1]->set_scrollx(0, data);
|
||||
break;
|
||||
case 3:
|
||||
m_joetilemap4->set_scrollx(0, data);
|
||||
m_tilemap[3]->set_scrollx(0, data);
|
||||
break;
|
||||
case 4:
|
||||
m_joetilemap6->set_scrollx(0, data);
|
||||
m_joetilemap7->set_scrollx(0, data);
|
||||
m_tilemap[5]->set_scrollx(0, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(ashnojoe_state::joe_tilemaps_yscroll_w)
|
||||
void ashnojoe_state::tilemaps_yscroll_w(offs_t offset, u16 data)
|
||||
{
|
||||
switch( offset )
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
m_joetilemap3->set_scrolly(0, data);
|
||||
m_tilemap[2]->set_scrolly(0, data);
|
||||
break;
|
||||
case 1:
|
||||
m_joetilemap5->set_scrolly(0, data);
|
||||
m_tilemap[4]->set_scrolly(0, data);
|
||||
break;
|
||||
case 2:
|
||||
m_joetilemap2->set_scrolly(0, data);
|
||||
m_tilemap[1]->set_scrolly(0, data);
|
||||
break;
|
||||
case 3:
|
||||
m_joetilemap4->set_scrolly(0, data);
|
||||
m_tilemap[3]->set_scrolly(0, data);
|
||||
break;
|
||||
case 4:
|
||||
m_joetilemap6->set_scrolly(0, data);
|
||||
m_joetilemap7->set_scrolly(0, data);
|
||||
m_tilemap[5]->set_scrolly(0, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ashnojoe_state::tilemap_regs_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
const u16 old = m_tilemap_reg[offset];
|
||||
data = COMBINE_DATA(&m_tilemap_reg[offset]);
|
||||
if (old != data)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
if ((old ^ data) & 0x02)
|
||||
m_tilemap[5]->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ashnojoe_state::video_start()
|
||||
{
|
||||
m_joetilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_joetilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
m_joetilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_3),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_joetilemap4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_4),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_joetilemap5 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_5),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
m_joetilemap6 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_6),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
m_joetilemap7 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_7),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_highest),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midlow),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_high),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_low),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midhigh),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_lowest),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
|
||||
|
||||
m_joetilemap->set_transparent_pen(15);
|
||||
m_joetilemap2->set_transparent_pen(15);
|
||||
m_joetilemap3->set_transparent_pen(15);
|
||||
m_joetilemap4->set_transparent_pen(15);
|
||||
m_joetilemap5->set_transparent_pen(15);
|
||||
m_tilemap[0]->set_transparent_pen(15);
|
||||
m_tilemap[1]->set_transparent_pen(15);
|
||||
m_tilemap[2]->set_transparent_pen(15);
|
||||
m_tilemap[3]->set_transparent_pen(15);
|
||||
m_tilemap[4]->set_transparent_pen(15);
|
||||
}
|
||||
|
||||
uint32_t ashnojoe_state::screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
u32 ashnojoe_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
//m_tilemap_reg[0] & 0x10 // ?? on coin insertion
|
||||
|
||||
flip_screen_set(m_tilemap_reg[0] & 1);
|
||||
|
||||
if(m_tilemap_reg[0] & 0x02)
|
||||
m_joetilemap7->draw(screen, bitmap, cliprect, 0, 0);
|
||||
else
|
||||
m_joetilemap6->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
m_joetilemap4->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_joetilemap2->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_joetilemap5->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_joetilemap3->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_joetilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[5]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[3]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[4]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[2]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
SPRITE READ AND WRITE HANDLERS
|
||||
**************************************************************/
|
||||
|
||||
WRITE16_MEMBER(asuka_state::asuka_spritectrl_w)
|
||||
void asuka_state::asuka_spritectrl_w(u16 data)
|
||||
{
|
||||
/* Bits 2-5 are color bank; in asuka games bit 0 is global priority */
|
||||
m_pc090oj->set_sprite_ctrl(((data & 0x3c) >> 2) | ((data & 0x1) << 15));
|
||||
@ -21,7 +21,7 @@ WRITE16_MEMBER(asuka_state::asuka_spritectrl_w)
|
||||
|
||||
uint32_t asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint8_t layer[3];
|
||||
u8 layer[3];
|
||||
|
||||
m_tc0100scn->tilemap_update();
|
||||
|
||||
@ -46,7 +46,7 @@ uint32_t asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &b
|
||||
|
||||
uint32_t asuka_state::screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint8_t layer[3];
|
||||
u8 layer[3];
|
||||
|
||||
m_tc0100scn->tilemap_update();
|
||||
|
||||
|
@ -55,11 +55,9 @@ deco_mxc06_device::deco_mxc06_device(const machine_config &mconfig, const char *
|
||||
void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size)
|
||||
{
|
||||
const bool priority = !m_colpri_cb.isnull();
|
||||
int start, end, inc;
|
||||
if (priority) { start = size - 4; end = -4; inc = -4; }
|
||||
else { start = 0; end = size; inc = +4; }
|
||||
struct sprite_t *sprite_ptr = m_spritelist.get();
|
||||
|
||||
for (int offs = start; offs != end;)
|
||||
for (int offs = 0; offs < size;)
|
||||
{
|
||||
u32 pri_mask = 0;
|
||||
int flipy, incy, mult, parentFlipY;
|
||||
@ -75,7 +73,7 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
|
||||
int flipx = data0 & 0x2000;
|
||||
parentFlipY = flipy = data0 & 0x4000;
|
||||
const int h = (1 << ((data0 & 0x1800) >> 11)); /* 1x, 2x, 4x, 8x height */
|
||||
int w = (1 << ((data0 & 0x0600) >> 9)); /* 1x, 2x, 4x, 8x width */
|
||||
const int w = (1 << ((data0 & 0x0600) >> 9)); /* 1x, 2x, 4x, 8x width */
|
||||
|
||||
int sx = data2 & 0x01ff;
|
||||
int sy = data0 & 0x01ff;
|
||||
@ -98,17 +96,16 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
|
||||
// thedeep strongly suggests that this check goes here, otherwise the radar breaks
|
||||
if (!(spriteram[offs] & 0x8000))
|
||||
{
|
||||
offs += inc;
|
||||
offs += 4;
|
||||
continue;
|
||||
}
|
||||
|
||||
int chainoffs = priority ? offs - ((w - 1) * 4) : offs; // or bandit breaks
|
||||
for (int x = 0; x < w; x++)
|
||||
{
|
||||
if ((chainoffs < size) && (chainoffs >= 0))
|
||||
if (offs < size)
|
||||
{
|
||||
// maybe, birdie try appears to specify the base code for each part..
|
||||
u16 code = spriteram[chainoffs + 1] & 0x1fff;
|
||||
u16 code = spriteram[offs + 1] & 0x1fff;
|
||||
|
||||
code &= ~(h - 1);
|
||||
|
||||
@ -121,37 +118,57 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
|
||||
incy = 1;
|
||||
}
|
||||
|
||||
for (int y = 0; y < h; y++)
|
||||
if (!flash || (screen.frame_number() & 1))
|
||||
{
|
||||
if (!flash || (screen.frame_number() & 1))
|
||||
sprite_ptr->height = h;
|
||||
sprite_ptr->colour = colour;
|
||||
sprite_ptr->flipx = flipx;
|
||||
sprite_ptr->flipy = flipy;
|
||||
if (priority)
|
||||
{
|
||||
if (priority)
|
||||
sprite_ptr->pri_mask = pri_mask;
|
||||
for (int y = 0; y < h; y++)
|
||||
{
|
||||
gfx->prio_transpen(bitmap, cliprect,
|
||||
code - y * incy,
|
||||
colour,
|
||||
flipx, flipy,
|
||||
sx + (mult * x), sy + (mult * y), screen.priority(), pri_mask, 0);
|
||||
sprite_ptr->code[y] = code - y * incy;
|
||||
sprite_ptr->x[y] = sx + (mult * x);
|
||||
sprite_ptr->y[y] = sy + (mult * y);
|
||||
}
|
||||
else
|
||||
sprite_ptr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int y = 0; y < h; y++)
|
||||
{
|
||||
sprite_ptr->code[y] = code - y * incy;
|
||||
sprite_ptr->x[y] = sx + (mult * x);
|
||||
sprite_ptr->y[y] = sy + (mult * y);
|
||||
gfx->transpen(bitmap, cliprect,
|
||||
code - y * incy,
|
||||
colour,
|
||||
flipx, flipy,
|
||||
sx + (mult * x), sy + (mult * y), 0);
|
||||
sprite_ptr->code[y],
|
||||
sprite_ptr->colour,
|
||||
sprite_ptr->flipx, sprite_ptr->flipy,
|
||||
sprite_ptr->x[y], sprite_ptr->y[y], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
chainoffs += 4;
|
||||
offs += 4;
|
||||
}
|
||||
while (w)
|
||||
}
|
||||
|
||||
if (priority)
|
||||
{
|
||||
while (sprite_ptr != m_spritelist.get())
|
||||
{
|
||||
w--;
|
||||
offs += inc;
|
||||
if (offs == end)
|
||||
return;
|
||||
sprite_ptr--;
|
||||
|
||||
for (int y = 0; y < sprite_ptr->height; y++)
|
||||
{
|
||||
gfx->prio_transpen(bitmap, cliprect,
|
||||
sprite_ptr->code[y],
|
||||
sprite_ptr->colour,
|
||||
sprite_ptr->flipx, sprite_ptr->flipy,
|
||||
sprite_ptr->x[y], sprite_ptr->y[y], screen.priority(), sprite_ptr->pri_mask, 0);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -161,11 +178,9 @@ void deco_mxc06_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
|
||||
void deco_mxc06_device::draw_sprites_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size)
|
||||
{
|
||||
const bool priority = !m_colpri_cb.isnull();
|
||||
int start, end, inc;
|
||||
if (priority) { start = size - 4; end = -4; inc = -4; }
|
||||
else { start = 0; end = size; inc = +4; }
|
||||
struct sprite_t *sprite_ptr = m_spritelist.get();
|
||||
|
||||
for (int offs = start; offs != end; offs += inc)
|
||||
for (int offs = 0; offs < size; offs += 4)
|
||||
{
|
||||
u32 pri_mask = 0;
|
||||
u32 code = spriteram[offs];
|
||||
@ -184,21 +199,38 @@ void deco_mxc06_device::draw_sprites_bootleg(screen_device &screen, bitmap_ind16
|
||||
|
||||
sx -= 0x100;
|
||||
|
||||
sprite_ptr->colour = colour;
|
||||
sprite_ptr->flipx = flipx;
|
||||
sprite_ptr->flipy = flipy;
|
||||
sprite_ptr->code[0] = code;
|
||||
sprite_ptr->x[0] = sx;
|
||||
sprite_ptr->y[0] = sy;
|
||||
if (priority)
|
||||
{
|
||||
gfx->prio_transpen(bitmap,cliprect,
|
||||
code,
|
||||
colour,
|
||||
flipx,flipy,
|
||||
sx,sy,screen.priority(),pri_mask,0);
|
||||
sprite_ptr->pri_mask = pri_mask;
|
||||
sprite_ptr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gfx->transpen(bitmap,cliprect,
|
||||
code,
|
||||
colour,
|
||||
flipx,flipy,
|
||||
sx,sy,0);
|
||||
sprite_ptr->code[0],
|
||||
sprite_ptr->colour,
|
||||
sprite_ptr->flipx,sprite_ptr->flipy,
|
||||
sprite_ptr->x[0],sprite_ptr->y[0],0);
|
||||
}
|
||||
}
|
||||
|
||||
if (priority)
|
||||
{
|
||||
while (sprite_ptr != m_spritelist.get())
|
||||
{
|
||||
sprite_ptr--;
|
||||
|
||||
gfx->prio_transpen(bitmap, cliprect,
|
||||
sprite_ptr->code[0],
|
||||
sprite_ptr->colour,
|
||||
sprite_ptr->flipx, sprite_ptr->flipy,
|
||||
sprite_ptr->x[0], sprite_ptr->y[0], screen.priority(), sprite_ptr->pri_mask, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -207,6 +239,7 @@ void deco_mxc06_device::device_start()
|
||||
{
|
||||
m_colpri_cb.bind_relative_to(*owner());
|
||||
m_flip_screen = false;
|
||||
m_spritelist = make_unique_clear<struct sprite_t[]>(0x400);
|
||||
|
||||
save_item(NAME(m_flip_screen));
|
||||
}
|
||||
|
@ -26,8 +26,17 @@ protected:
|
||||
virtual void device_reset() override;
|
||||
|
||||
private:
|
||||
struct sprite_t
|
||||
{
|
||||
int height;
|
||||
u32 code[8], colour;
|
||||
int x[8], y[8];
|
||||
bool flipx, flipy;
|
||||
u32 pri_mask;
|
||||
};
|
||||
decmxc06_colpri_cb_delegate m_colpri_cb;
|
||||
bool m_flip_screen;
|
||||
std::unique_ptr<struct sprite_t[]> m_spritelist;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(DECO_MXC06, deco_mxc06_device)
|
||||
|
@ -7,29 +7,31 @@
|
||||
SPRITE DRAW ROUTINE
|
||||
************************************************************/
|
||||
|
||||
void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs, int chip)
|
||||
void ninjaw_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip)
|
||||
{
|
||||
int offs, data, tilenum, color, flipx, flipy;
|
||||
int x, y, priority, curx, cury;
|
||||
int code;
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
int unknown = 0;
|
||||
#endif
|
||||
|
||||
for (offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4)
|
||||
static const u32 primask[2] =
|
||||
{
|
||||
data = m_spriteram[offs + 2];
|
||||
tilenum = data & 0x7fff;
|
||||
GFX_PMASK_4, // draw sprites with priority 0 which are over the mid layer
|
||||
(GFX_PMASK_4 | GFX_PMASK_2) // draw sprites with priority 1 which are under the mid layer
|
||||
};
|
||||
|
||||
for (int offs = 0; offs < (m_spriteram.bytes() / 2); offs += 4)
|
||||
{
|
||||
int data = m_spriteram[offs + 2];
|
||||
const u32 tilenum = data & 0x7fff;
|
||||
|
||||
if (!tilenum)
|
||||
continue;
|
||||
|
||||
data = m_spriteram[offs + 0];
|
||||
x = (data - 32) & 0x3ff; /* aligns sprites on rock outcrops and sewer hole */
|
||||
int x = (data - 32) & 0x3ff; /* aligns sprites on rock outcrops and sewer hole */
|
||||
|
||||
data = m_spriteram[offs + 1];
|
||||
y = (data - 0) & 0x1ff;
|
||||
int y = (data - 0) & 0x1ff;
|
||||
|
||||
/*
|
||||
The purpose of the bit at data&0x8 (below) is unknown, but it is set
|
||||
@ -45,13 +47,11 @@ void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
|
||||
but is again unknown, and there is no obvious visual problem.
|
||||
*/
|
||||
data = m_spriteram[offs + 3];
|
||||
flipx = (data & 0x1);
|
||||
flipy = (data & 0x2) >> 1;
|
||||
priority = (data & 0x4) >> 2; // 1 = low
|
||||
const bool flipx = (data & 0x1);
|
||||
const bool flipy = (data & 0x2) >> 1;
|
||||
const int priority = (data & 0x4) >> 2; // 1 = low
|
||||
/* data&0x8 - unknown */
|
||||
if (priority != primask)
|
||||
continue;
|
||||
color = (data & 0x7f00) >> 8;
|
||||
const u32 color = (data & 0x7f00) >> 8;
|
||||
/* data&0x8000 - unknown */
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
@ -65,14 +65,16 @@ void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
|
||||
if (x > 0x3c0) x -= 0x400;
|
||||
if (y > 0x180) y -= 0x200;
|
||||
|
||||
curx = x;
|
||||
cury = y;
|
||||
code = tilenum;
|
||||
const int curx = x;
|
||||
const int cury = y;
|
||||
const u32 code = tilenum;
|
||||
|
||||
m_gfxdecode[chip]->gfx(0)->transpen(bitmap,cliprect,
|
||||
m_gfxdecode[chip]->gfx(0)->prio_transpen(bitmap,cliprect,
|
||||
code, color,
|
||||
flipx, flipy,
|
||||
curx, cury, 0);
|
||||
curx, cury,
|
||||
screen.priority(), primask[priority],
|
||||
0);
|
||||
}
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
@ -86,11 +88,11 @@ void ninjaw_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
|
||||
SCREEN REFRESH
|
||||
**************************************************************/
|
||||
|
||||
uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip)
|
||||
u32 ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip)
|
||||
{
|
||||
tc0100scn_device *tc0100scn = m_tc0100scn[chip];
|
||||
xoffs *= chip;
|
||||
uint8_t layer[3], nodraw;
|
||||
u8 layer[3];
|
||||
|
||||
tc0100scn->tilemap_update();
|
||||
|
||||
@ -98,27 +100,27 @@ uint32_t ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap
|
||||
layer[1] = layer[0] ^ 1;
|
||||
layer[2] = 2;
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
/* chip 0 does tilemaps on the left, chip 1 center, chip 2 the right */
|
||||
// draw bottom layer
|
||||
nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */
|
||||
u8 nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); /* left */
|
||||
|
||||
/* Ensure screen blanked even when bottom layers not drawn due to disable bit */
|
||||
if (nodraw)
|
||||
bitmap.fill(m_tc0110pcr[chip]->black_pen(), cliprect);
|
||||
|
||||
/* Sprites can be under/over the layer below text layer */
|
||||
draw_sprites(bitmap, cliprect, 1, xoffs, 8, chip); // draw sprites with priority 1 which are under the mid layer
|
||||
|
||||
// draw middle layer
|
||||
tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0);
|
||||
|
||||
draw_sprites(bitmap, cliprect, 0, xoffs, 8, chip); // draw sprites with priority 0 which are over the mid layer
|
||||
tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
|
||||
// draw top(text) layer
|
||||
tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0);
|
||||
tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||
|
||||
/* Sprites can be under/over the layer below text layer */
|
||||
draw_sprites(screen, bitmap, cliprect, xoffs, 8, chip);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 0); }
|
||||
uint32_t ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 1); }
|
||||
uint32_t ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 2); }
|
||||
u32 ninjaw_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 0); }
|
||||
u32 ninjaw_state::screen_update_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 1); }
|
||||
u32 ninjaw_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8, 2); }
|
||||
|
@ -64,45 +64,38 @@ spriteram is being tested, take no notice of that.]
|
||||
********************************************************/
|
||||
|
||||
|
||||
void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs)
|
||||
void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const u32 *primasks, int y_offs)
|
||||
{
|
||||
uint16_t *spritemap = (uint16_t *)memregion("user1")->base();
|
||||
uint16_t tile_mask = (m_gfxdecode->gfx(0)->elements()) - 1;
|
||||
uint16_t *spriteram16 = m_spriteram;
|
||||
int offs, data, tilenum, color, flipx, flipy;
|
||||
int x, y, priority, curx, cury;
|
||||
const u32 tile_mask = (m_gfxdecode->gfx(0)->elements()) - 1;
|
||||
int sprites_flipscreen = 0;
|
||||
int zoomx, zoomy, zx, zy;
|
||||
int sprite_chunk, map_offset, code, j, k, px, py;
|
||||
int bad_chunks;
|
||||
|
||||
/* pdrawgfx() needs us to draw sprites front to back, so we have to build a list
|
||||
while processing sprite ram and then draw them all at the end */
|
||||
struct tempsprite *sprite_ptr = m_spritelist.get();
|
||||
|
||||
for (offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4)
|
||||
for (int offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
data = spriteram16[offs + 0];
|
||||
zoomy = (data & 0xfe00) >> 9;
|
||||
y = data & 0x1ff;
|
||||
u16 data = m_spriteram[offs + 0];
|
||||
int zoomy = (data & 0xfe00) >> 9;
|
||||
int y = data & 0x1ff;
|
||||
|
||||
data = spriteram16[offs + 1];
|
||||
flipx = (data & 0x4000) >> 14;
|
||||
priority = (data & 0x8000) >> 15;
|
||||
x = data & 0x1ff;
|
||||
data = m_spriteram[offs + 1];
|
||||
int flipx = (data & 0x4000) >> 14;
|
||||
const int priority = (data & 0x8000) >> 15;
|
||||
int x = data & 0x1ff;
|
||||
|
||||
data = spriteram16[offs + 2];
|
||||
color = (data & 0xff00) >> 8;
|
||||
zoomx = (data & 0x7f);
|
||||
data = m_spriteram[offs + 2];
|
||||
const u32 color = (data & 0xff00) >> 8;
|
||||
int zoomx = (data & 0x7f);
|
||||
|
||||
data = spriteram16[offs + 3];
|
||||
tilenum = data & 0x1fff; // $80000 spritemap rom maps up to $2000 64x64 sprites
|
||||
flipy = (data & 0x8000) >> 15;
|
||||
data = m_spriteram[offs + 3];
|
||||
const u16 tilenum = data & 0x1fff; // $80000 spritemap rom maps up to $2000 64x64 sprites
|
||||
int flipy = (data & 0x8000) >> 15;
|
||||
|
||||
if (!tilenum)
|
||||
continue;
|
||||
|
||||
map_offset = tilenum << 5;
|
||||
const int map_offset = tilenum << 5;
|
||||
|
||||
zoomx += 1;
|
||||
zoomy += 1;
|
||||
@ -113,19 +106,19 @@ void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c
|
||||
if (x > 0x140) x -= 0x200;
|
||||
if (y > 0x140) y -= 0x200;
|
||||
|
||||
bad_chunks = 0;
|
||||
int bad_chunks = 0;
|
||||
|
||||
for (sprite_chunk = 0; sprite_chunk < 32; sprite_chunk++)
|
||||
for (int sprite_chunk = 0; sprite_chunk < 32; sprite_chunk++)
|
||||
{
|
||||
k = sprite_chunk % 4; /* 4 chunks per row */
|
||||
j = sprite_chunk / 4; /* 8 rows */
|
||||
const int k = sprite_chunk % 4; /* 4 chunks per row */
|
||||
const int j = sprite_chunk / 4; /* 8 rows */
|
||||
|
||||
px = k;
|
||||
py = j;
|
||||
int px = k;
|
||||
int py = j;
|
||||
if (flipx) px = 3 - k; /* pick tiles back to front for x and y flips */
|
||||
if (flipy) py = 7 - j;
|
||||
|
||||
code = spritemap[map_offset + px + (py << 2)] & tile_mask;
|
||||
const u16 code = m_sprmap_rom[map_offset + px + (py << 2)] & tile_mask;
|
||||
|
||||
if (code == 0xffff)
|
||||
{
|
||||
@ -133,11 +126,11 @@ void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c
|
||||
continue;
|
||||
}
|
||||
|
||||
curx = x + ((k * zoomx) / 4);
|
||||
cury = y + ((j * zoomy) / 8);
|
||||
int curx = x + ((k * zoomx) / 4);
|
||||
int cury = y + ((j * zoomy) / 8);
|
||||
|
||||
zx= x + (((k + 1) * zoomx) / 4) - curx;
|
||||
zy= y + (((j + 1) * zoomy) / 8) - cury;
|
||||
const int zx = x + (((k + 1) * zoomx) / 4) - curx;
|
||||
const int zy = y + (((j + 1) * zoomy) / 8) - cury;
|
||||
|
||||
if (sprites_flipscreen)
|
||||
{
|
||||
@ -200,7 +193,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks);
|
||||
SCREEN REFRESH
|
||||
**************************************************************/
|
||||
|
||||
uint32_t othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
u32 othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int layer[3];
|
||||
|
||||
@ -221,7 +214,7 @@ uint32_t othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
|
||||
|
||||
/* Sprites can be under/over the layer below text layer */
|
||||
{
|
||||
static const int primasks[2] = {0xf0, 0xfc};
|
||||
static const u32 primasks[2] = {0xf0, 0xfc};
|
||||
draw_sprites(screen, bitmap, cliprect, primasks, 3);
|
||||
}
|
||||
|
||||
|
@ -696,7 +696,7 @@ void taitof2_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
|
||||
if (m_sprite_type == 0)
|
||||
{
|
||||
code = m_spriteram_buffered[(offs) / 2] & 0x1fff;
|
||||
u32 i = (code & 0x1c00) >> 10;
|
||||
const u32 i = (code & 0x1c00) >> 10;
|
||||
code = m_spritebank[i] + (code & 0x3ff);
|
||||
}
|
||||
|
||||
@ -1033,13 +1033,13 @@ u32 taitof2_state::screen_update_pri(screen_device &screen, bitmap_ind16 &bitmap
|
||||
|
||||
|
||||
|
||||
void taitof2_state::draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u32 priority)
|
||||
void taitof2_state::draw_roz_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, u8 priority, u8 priority_mask)
|
||||
{
|
||||
if (m_tc0280grd != nullptr)
|
||||
m_tc0280grd->tc0280grd_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority);
|
||||
m_tc0280grd->tc0280grd_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority, priority_mask);
|
||||
|
||||
if (m_tc0430grw != nullptr)
|
||||
m_tc0430grw->tc0430grw_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority);
|
||||
m_tc0430grw->tc0430grw_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority, priority_mask);
|
||||
}
|
||||
|
||||
u32 taitof2_state::screen_update_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
@ -1105,7 +1105,6 @@ u32 taitof2_state::screen_update_pri_roz(screen_device &screen, bitmap_ind16 &bi
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Thunderfox */
|
||||
u32 taitof2_state::screen_update_thundfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
@ -1207,7 +1206,6 @@ u32 taitof2_state::screen_update_thundfox(screen_device &screen, bitmap_ind16 &b
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
|
||||
Deadconx and Footchmp use in the PRI chip
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -222,7 +222,8 @@ void taitoz_state::contcirc_draw_sprites_16x8(screen_device &screen, bitmap_ind1
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<13,screen.priority(),primasks[priority],0);
|
||||
zx << 12,zy << 13,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
|
||||
if (bad_chunks)
|
||||
@ -312,7 +313,7 @@ void taitoz_state::chasehq_draw_sprites_16x16(screen_device &screen, bitmap_ind1
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<12,
|
||||
zx << 12,zy << 12,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
}
|
||||
@ -355,7 +356,7 @@ void taitoz_state::chasehq_draw_sprites_16x16(screen_device &screen, bitmap_ind1
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<12,
|
||||
zx << 12,zy << 12,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
}
|
||||
@ -398,7 +399,7 @@ void taitoz_state::chasehq_draw_sprites_16x16(screen_device &screen, bitmap_ind1
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<12,
|
||||
zx << 12,zy << 12,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
}
|
||||
@ -487,7 +488,7 @@ void taitoz_state::bshark_draw_sprites_16x8(screen_device &screen, bitmap_ind16
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<13,
|
||||
zx << 12,zy << 13,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
|
||||
@ -584,7 +585,7 @@ void taitoz_state::sci_draw_sprites_16x8(screen_device &screen, bitmap_ind16 &bi
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<13,
|
||||
zx << 12,zy << 13,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
|
||||
@ -671,7 +672,7 @@ void taitoz_state::aquajack_draw_sprites_16x8(screen_device &screen, bitmap_ind1
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<13,
|
||||
zx << 12,zy << 13,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
|
||||
@ -758,7 +759,7 @@ void taitoz_state::spacegun_draw_sprites_16x8(screen_device &screen, bitmap_ind1
|
||||
color,
|
||||
flipx,flipy,
|
||||
curx,cury,
|
||||
zx<<12,zy<<13,
|
||||
zx << 12,zy << 13,
|
||||
screen.priority(),primasks[priority],0);
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,11 @@ public:
|
||||
m_flip_text_xoffs = x_offset;
|
||||
m_flip_text_yoffs = y_offset;
|
||||
}
|
||||
void update_granularity()
|
||||
{
|
||||
if (gfx(0)) gfx(0)->set_granularity(m_gfxdecode->gfx(m_gfxnum)->granularity());
|
||||
if (gfx(1)) gfx(1)->set_granularity(m_gfxdecode->gfx(m_gfxnum)->granularity());
|
||||
}
|
||||
|
||||
static constexpr unsigned SINGLE_VDU = 1024; // for set_multiscr_xoffs
|
||||
|
||||
|
@ -31,23 +31,35 @@ DEFINE_DEVICE_TYPE(TC0280GRD, tc0280grd_device, "tc0280grd", "Taito TC0280GRD /
|
||||
|
||||
tc0280grd_device::tc0280grd_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: device_t(mconfig, TC0280GRD, tag, owner, clock)
|
||||
, device_gfx_interface(mconfig, *this)
|
||||
, m_ram(nullptr)
|
||||
, m_base_color(0)
|
||||
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
|
||||
, m_colorbase(0)
|
||||
{
|
||||
std::fill(std::begin(m_ctrl), std::end(m_ctrl), 0);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Graphics definitions
|
||||
*
|
||||
*************************************/
|
||||
|
||||
GFXDECODE_MEMBER(tc0280grd_device::gfxinfo)
|
||||
GFXDECODE_DEVICE(DEVICE_SELF, 0, gfx_8x8x4_packed_msb, 0, 256)
|
||||
GFXDECODE_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void tc0280grd_device::device_start()
|
||||
{
|
||||
if(!m_gfxdecode->started())
|
||||
throw device_missing_dependencies();
|
||||
// decode our graphics
|
||||
decode_gfx(gfxinfo);
|
||||
gfx(0)->set_colorbase(m_colorbase);
|
||||
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tc0280grd_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0280grd_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
|
||||
m_tilemap->set_transparent_pen(0);
|
||||
|
||||
m_ram = make_unique_clear<u16[]>(TC0280GRD_RAM_SIZE / 2);
|
||||
@ -62,8 +74,7 @@ void tc0280grd_device::device_start()
|
||||
|
||||
void tc0280grd_device::device_reset()
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_ctrl[i] = 0;
|
||||
std::fill(std::begin(m_ctrl), std::end(m_ctrl), 0);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
@ -73,7 +84,7 @@ void tc0280grd_device::device_reset()
|
||||
TILE_GET_INFO_MEMBER(tc0280grd_device::get_tile_info)
|
||||
{
|
||||
int attr = m_ram[tile_index];
|
||||
SET_TILE_INFO_MEMBER(m_gfxnum,
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
attr & 0x3fff,
|
||||
((attr & 0xc000) >> 14) + m_base_color,
|
||||
0);
|
||||
@ -124,7 +135,7 @@ void tc0280grd_device::tc0430grw_tilemap_update(int base_color)
|
||||
tc0280grd_tilemap_update(base_color);
|
||||
}
|
||||
|
||||
void tc0280grd_device::zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority, int xmultiply)
|
||||
void tc0280grd_device::zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, int xmultiply, u8 priority_mask)
|
||||
{
|
||||
/* 24-bit signed */
|
||||
u32 startx = ((m_ctrl[0] & 0xff) << 16) + m_ctrl[1];
|
||||
@ -152,15 +163,15 @@ void tc0280grd_device::zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, co
|
||||
m_tilemap->draw_roz(screen, bitmap, cliprect, startx << 4, starty << 4,
|
||||
incxx << 4, incxy << 4, incyx << 4, incyy << 4,
|
||||
1, /* copy with wraparound */
|
||||
0, priority);
|
||||
0, priority, priority_mask);
|
||||
}
|
||||
|
||||
void tc0280grd_device::tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority)
|
||||
void tc0280grd_device::tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask)
|
||||
{
|
||||
zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 2);
|
||||
zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 2, priority_mask);
|
||||
}
|
||||
|
||||
void tc0280grd_device::tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority)
|
||||
void tc0280grd_device::tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask)
|
||||
{
|
||||
zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 1);
|
||||
zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 1, priority_mask);
|
||||
}
|
||||
|
@ -5,26 +5,25 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
class tc0280grd_device : public device_t
|
||||
class tc0280grd_device : public device_t, public device_gfx_interface
|
||||
{
|
||||
public:
|
||||
tc0280grd_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
// configuration
|
||||
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
|
||||
void set_gfx_region(int gfxregion) { m_gfxnum = gfxregion; }
|
||||
void set_color_base(u16 base) { m_colorbase = base; }
|
||||
|
||||
u16 tc0280grd_word_r(offs_t offset);
|
||||
void tc0280grd_word_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tc0280grd_ctrl_word_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tc0280grd_tilemap_update(int base_color);
|
||||
void tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority);
|
||||
void tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask = 0xff);
|
||||
|
||||
u16 tc0430grw_word_r(offs_t offset);
|
||||
void tc0430grw_word_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tc0430grw_ctrl_word_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tc0430grw_tilemap_update(int base_color);
|
||||
void tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority);
|
||||
void tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, u8 priority_mask = 0xff);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
@ -39,11 +38,13 @@ private:
|
||||
|
||||
u16 m_ctrl[8];
|
||||
int m_base_color;
|
||||
int m_gfxnum;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
||||
// decoding info
|
||||
DECLARE_GFXDECODE_MEMBER(gfxinfo);
|
||||
u16 m_colorbase;
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u32 priority, int xmultiply);
|
||||
void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, u8 priority, int xmultiply, u8 priority_mask = 0xff);
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(TC0280GRD, tc0280grd_device)
|
||||
|
@ -10,38 +10,36 @@
|
||||
|
||||
void warriorb_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs, int chip)
|
||||
{
|
||||
int offs, data, data2, tilenum, color, flipx, flipy;
|
||||
int x, y, priority, pri_mask;
|
||||
u32 pri_mask;
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
int unknown = 0;
|
||||
#endif
|
||||
|
||||
/* pdrawgfx() needs us to draw sprites front to back */
|
||||
for (offs = 0; offs < m_spriteram.bytes() / 2; offs += 4)
|
||||
for (int offs = 0; offs < m_spriteram.bytes() / 2; offs += 4)
|
||||
{
|
||||
data = m_spriteram[offs + 1];
|
||||
tilenum = data & 0x7fff;
|
||||
int data = m_spriteram[offs + 1];
|
||||
const u32 tilenum = data & 0x7fff;
|
||||
|
||||
data = m_spriteram[offs + 0];
|
||||
y = (-(data & 0x1ff) - 24) & 0x1ff; /* (inverted y adjusted for vis area) */
|
||||
flipy = (data & 0x200) >> 9;
|
||||
int y = (-(data & 0x1ff) - 24) & 0x1ff; /* (inverted y adjusted for vis area) */
|
||||
const bool flipy = (data & 0x200) >> 9;
|
||||
|
||||
data2 = m_spriteram[offs + 2];
|
||||
const u16 data2 = m_spriteram[offs + 2];
|
||||
/* 8,4 also seen in msbyte */
|
||||
priority = (data2 & 0x0100) >> 8; // 1 = low
|
||||
const int priority = (data2 & 0x0100) >> 8; // 1 = low
|
||||
|
||||
if(priority)
|
||||
pri_mask = 0xfffe;
|
||||
else
|
||||
pri_mask = 0;
|
||||
|
||||
color = (data2 & 0x7f);
|
||||
const u32 color = (data2 & 0x7f);
|
||||
|
||||
data = m_spriteram[offs + 3];
|
||||
x = (data & 0x3ff);
|
||||
flipx = (data & 0x400) >> 10;
|
||||
|
||||
int x = (data & 0x3ff);
|
||||
const bool flipx = (data & 0x400) >> 10;
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
if (data2 & 0xf280) unknown |= (data2 &0xf280);
|
||||
@ -73,10 +71,10 @@ void warriorb_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c
|
||||
SCREEN REFRESH
|
||||
**************************************************************/
|
||||
|
||||
uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip)
|
||||
u32 warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, int chip)
|
||||
{
|
||||
tc0100scn_device *tc0100scn = m_tc0100scn[chip];
|
||||
uint8_t layer[3], nodraw;
|
||||
u8 layer[3];
|
||||
|
||||
tc0100scn->tilemap_update();
|
||||
|
||||
@ -89,7 +87,7 @@ uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitm
|
||||
|
||||
/* chip 0 does tilemaps on the left, chip 1 does the ones on the right */
|
||||
// draw bottom layer
|
||||
nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */
|
||||
const u8 nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */
|
||||
|
||||
/* Ensure screen blanked even when bottom layers not drawn due to disable bit */
|
||||
if (nodraw)
|
||||
@ -106,5 +104,5 @@ uint32_t warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitm
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 0); }
|
||||
uint32_t warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 1); }
|
||||
u32 warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 0); }
|
||||
u32 warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8, 1); }
|
||||
|
@ -4852,10 +4852,14 @@ void nv2a_renderer::savestate_items()
|
||||
{
|
||||
}
|
||||
|
||||
void nv2a_renderer::set_ram_base(void *base)
|
||||
{
|
||||
basemempointer = (uint8_t*)base;
|
||||
topmempointer = basemempointer + 512 * 1024 * 1024 - 1;
|
||||
}
|
||||
|
||||
void nv2a_renderer::start(address_space *cpu_space)
|
||||
{
|
||||
basemempointer = (uint8_t *)cpu_space->get_read_ptr(0);
|
||||
topmempointer = basemempointer + 512 * 1024 * 1024 - 1;
|
||||
puller_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(nv2a_renderer::puller_timer_work), this), (void *)"NV2A Puller Timer");
|
||||
puller_timer->enable(false);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user