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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,12 +21,13 @@ DEFINE_DEVICE_TYPE(BALLY_AS2888, bally_as2888_device, "as2888",
|
||||
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);
|
||||
@ -122,7 +120,6 @@ TIMER_CALLBACK_MEMBER(bally_as2888_device::sound_int_sync)
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as2888_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
DISCRETE(config, m_discrete, as2888_discrete);
|
||||
@ -135,7 +132,6 @@ void bally_as2888_device::device_add_mconfig(machine_config &config)
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_as2888_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_sound_select));
|
||||
@ -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)
|
||||
@ -195,7 +191,6 @@ INPUT_CHANGED_MEMBER(bally_as3022_device::sw1)
|
||||
//-------------------------------------------------
|
||||
// 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.
|
||||
@ -289,11 +281,9 @@ void bally_as3022_device::device_start()
|
||||
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)
|
||||
@ -456,7 +440,6 @@ INPUT_CHANGED_MEMBER(bally_cheap_squeak_device::sw1)
|
||||
//-------------------------------------------------
|
||||
// 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));
|
||||
@ -516,7 +496,6 @@ void bally_cheap_squeak_device::device_add_mconfig(machine_config &config)
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void bally_cheap_squeak_device::device_start()
|
||||
{
|
||||
m_sound_ack_w_handler.resolve();
|
||||
@ -527,7 +506,6 @@ void bally_cheap_squeak_device::device_start()
|
||||
//-------------------------------------------------
|
||||
// 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,7 +21,10 @@
|
||||
#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"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -32,6 +35,8 @@ 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,9 +67,8 @@ 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_t *owner) :
|
||||
device_t(mconfig, type, tag, owner, 0),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_snd_prom(*this, "sound"),
|
||||
m_discrete(*this, "discrete"),
|
||||
@ -126,7 +130,9 @@ protected:
|
||||
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();
|
||||
};
|
||||
|
||||
|
||||
@ -236,6 +244,7 @@ protected:
|
||||
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;
|
||||
}
|
@ -23,7 +23,6 @@
|
||||
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")
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -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( "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,7 +1740,7 @@ 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;
|
||||
|
@ -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,6 +212,8 @@ 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;
|
||||
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;
|
||||
};
|
||||
@ -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, 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, 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, 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)
|
||||
@ -2823,7 +2852,7 @@ GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Gra
|
||||
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( 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
|
||||
{
|
@ -30,6 +30,34 @@
|
||||
The Basketball camera also uses an ETOMS CU5502. It’s different from the others (XaviXport + Real Swing Golf) in that the sensor is on a small PCB with
|
||||
a 3.58MHz resonator with 16 wires going to another small PCB that has a glob and a 4MHz resonator. 6 wires go from that PCB to the main game PCB.
|
||||
|
||||
To access hidden test mode in Football hold enter and right during power on.
|
||||
|
||||
Football test mode tests X pos, Y pos, Z pos, direction and speed. This data must all be coming from the camera in the unit as the shinpads are simply
|
||||
reflective objects, they don't contain any electronics. It could be a useful test case for better understanding these things.
|
||||
|
||||
To access hidden test mode in Golden Tee Home hold back/backspin and left during power on.
|
||||
|
||||
To access hidden test mode in Basketball hold left and Button 1 during power on.
|
||||
|
||||
To access hidden test mode in Real Swing Golf hold left and down during power on.
|
||||
- test mode check
|
||||
77B6: lda $5041
|
||||
77B9: eor #$ed
|
||||
77BB: beq $77be
|
||||
|
||||
To access hidden test mode in Baseball 3 hold down during power on.
|
||||
- test mode check
|
||||
686E: lda $5041
|
||||
6871: eor #$f7
|
||||
6873: bne $68c8
|
||||
|
||||
It is not clear how to access Huntin'3 Test Mode (if possible) there do appear to be tiles for it tho
|
||||
|
||||
Huntin'3 appears to use the hardware much more extensively than other games and shows we need the following features
|
||||
- Raster Interrupt (Rowscroll in most game modes)
|
||||
- RAM based tiles (status bar in Shooting Range, text descriptions on menus etc.)
|
||||
these aren't yet emulated.
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -38,7 +66,7 @@
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "audio/rad_eu3a05.h"
|
||||
#include "audio/elan_eu3a05.h"
|
||||
#include "machine/timer.h"
|
||||
|
||||
/*
|
||||
@ -80,7 +108,7 @@ public:
|
||||
m_palram(*this, "palram"),
|
||||
m_scrollregs(*this, "scrollregs"),
|
||||
m_tilecfg(*this, "tilecfg"),
|
||||
m_tilebase(*this, "tilebase"),
|
||||
m_ramtilecfg(*this, "ramtilecfg"),
|
||||
m_spriteaddr(*this, "spriteaddr"),
|
||||
m_spritebase(*this, "spritebase"),
|
||||
m_mainram(*this, "mainram"),
|
||||
@ -88,6 +116,7 @@ public:
|
||||
m_bank(*this, "bank"),
|
||||
m_palette(*this, "palette"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_tvtype(*this, "TV")
|
||||
{ }
|
||||
|
||||
@ -154,7 +183,7 @@ private:
|
||||
required_shared_ptr<uint8_t> m_palram;
|
||||
required_shared_ptr<uint8_t> m_scrollregs;
|
||||
required_shared_ptr<uint8_t> m_tilecfg;
|
||||
required_shared_ptr<uint8_t> m_tilebase;
|
||||
required_shared_ptr<uint8_t> m_ramtilecfg;
|
||||
required_shared_ptr<uint8_t> m_spriteaddr;
|
||||
required_shared_ptr<uint8_t> m_spritebase;
|
||||
required_shared_ptr<uint8_t> m_mainram;
|
||||
@ -162,29 +191,34 @@ private:
|
||||
required_device<address_map_bank_device> m_bank;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_ioport m_tvtype;
|
||||
|
||||
uint8_t m_rombank_hi;
|
||||
uint8_t m_rombank_lo;
|
||||
int m_tilerambase;
|
||||
int m_spriterambase;
|
||||
int m_pagewidth;
|
||||
int m_pageheight;
|
||||
int m_bytespertile;
|
||||
|
||||
bitmap_ind8 m_prioritybitmap;
|
||||
|
||||
uint8_t m_portdir[3];
|
||||
|
||||
void draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int gfxno, int tileno, int base, int palette, int flipx, int flipy, int xpos, int ypos, int transpen, int size);
|
||||
void handle_palette(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int xbase, int ybase, int size);
|
||||
|
||||
void draw_background_ramlayer(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect);
|
||||
|
||||
void draw_background_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int bpp, int tileno, int palette, int priority, int flipx, int flipy, int xpos, int ypos, int transpen, int size, int base, int drawfromram);
|
||||
void draw_background_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int ramstart, int ramend, int xbase, int ybase, int size, int bpp, int base, int pagewidth,int pageheight, int bytespertile, int palettepri, int drawfromram);
|
||||
void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int count, int pal, int flipx, int flipy, int xpos, int ypos, int gfxno);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int drawpri);
|
||||
void draw_sprite_pix(const rectangle& cliprect, uint16_t* dst, uint8_t* pridst, int realx, int priority, uint8_t pix, uint8_t mask, uint8_t shift, int palette);
|
||||
void draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int line, int pal, int flipx, int pri, int xpos, int ypos, int bpp);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
|
||||
void radica_eu3a14_state::video_start()
|
||||
{
|
||||
m_screen->register_screen_bitmap(m_prioritybitmap);
|
||||
}
|
||||
|
||||
double radica_eu3a14_state::hue2rgb(double p, double q, double t)
|
||||
@ -236,20 +270,59 @@ void radica_eu3a14_state::handle_palette(screen_device &screen, bitmap_ind16 &bi
|
||||
}
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int gfxno, int tileno, int base, int palette, int flipx, int flipy, int xpos, int ypos, int transpen, int size)
|
||||
void radica_eu3a14_state::draw_background_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int bpp, int tileno, int palette, int priority, int flipx, int flipy, int xpos, int ypos, int transpen, int size, int base, int drawfromram)
|
||||
{
|
||||
int bppdiv = 1;
|
||||
int baseaddr = base * 256;
|
||||
|
||||
switch (gfxno)
|
||||
int backtiletype = 0;
|
||||
|
||||
if (bpp == 4) // 4bpp selection
|
||||
{
|
||||
case 0x03: bppdiv = 1; baseaddr += tileno * 256; break; // 16x16 8bpp
|
||||
case 0x04: bppdiv = 2; baseaddr += tileno * 128; break; // 16x16 4bpp
|
||||
case 0x05: bppdiv = 1; baseaddr += tileno * 64; break; // 8x8 8bpp
|
||||
case 0x06: bppdiv = 2; baseaddr += tileno * 64; break; // 8x8 4bpp
|
||||
backtiletype = 1; // 16x16 4bpp
|
||||
|
||||
if (size == 8)
|
||||
{
|
||||
backtiletype = 3; // 8x8 4bpp
|
||||
}
|
||||
}
|
||||
else if (bpp == 8) // 8bpp selection
|
||||
{
|
||||
backtiletype = 0; // 16x16 8bpp
|
||||
|
||||
if (size == 8)
|
||||
{
|
||||
backtiletype = 2; // 8x8 8bpp
|
||||
}
|
||||
|
||||
palette &= 0x100; // only top bit valid, as there are only 2 palettes?
|
||||
}
|
||||
else // 2bpp?
|
||||
{
|
||||
backtiletype = 4;
|
||||
}
|
||||
|
||||
switch (backtiletype)
|
||||
{
|
||||
case 0x00: bppdiv = 1; baseaddr += tileno * 256; break; // 16x16 8bpp
|
||||
case 0x01: bppdiv = 2; baseaddr += tileno * 128; break; // 16x16 4bpp
|
||||
case 0x02: bppdiv = 1; baseaddr += tileno * 64; break; // 8x8 8bpp
|
||||
case 0x03: bppdiv = 2; baseaddr += tileno * 32; break; // 8x8 4bpp
|
||||
case 0x04: bppdiv = 4; baseaddr += tileno * 64; break; // 16x16 2bpp
|
||||
|
||||
default: break;
|
||||
}
|
||||
const uint8_t *gfxdata = &m_mainregion[baseaddr & 0x3fffff];
|
||||
|
||||
uint8_t* gfxdata;
|
||||
|
||||
if (drawfromram)
|
||||
{
|
||||
gfxdata = &m_mainram[baseaddr & 0x3fff];
|
||||
}
|
||||
else
|
||||
{
|
||||
gfxdata = &m_mainregion[baseaddr & 0x3fffff];
|
||||
}
|
||||
|
||||
int xstride = size / bppdiv;
|
||||
|
||||
@ -258,6 +331,7 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr
|
||||
{
|
||||
int realy = ypos + y;
|
||||
uint16_t* dst = &bitmap.pix16(ypos + y);
|
||||
uint8_t* pridst = &m_prioritybitmap.pix8(ypos + y);
|
||||
|
||||
for (int x = 0; x < xstride; x++)
|
||||
{
|
||||
@ -271,7 +345,14 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix)
|
||||
dst[realx] = pix;
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = pix | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (bppdiv == 2) // 4bpp
|
||||
@ -280,7 +361,13 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0xf0)
|
||||
dst[realx] = (pix & 0xf0) >> 4;
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = ((pix & 0xf0) >> 4) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
realx++;
|
||||
@ -288,7 +375,70 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0x0f)
|
||||
dst[realx] = pix & 0x0f;
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = (pix & 0x0f) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (bppdiv == 4) // 2bpp (hnt3 ram text)
|
||||
{
|
||||
int realx = (x * 4) + xpos;
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0xc0)
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = ((pix & 0xc0) >> 6) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
realx++;
|
||||
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0x30)
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = ((pix & 0x30) >> 4) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
realx++;
|
||||
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0x0c)
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = ((pix & 0x0c) >> 2) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
realx++;
|
||||
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pix & 0x03)
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
dst[realx] = ((pix & 0x03) >> 0) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -297,131 +447,248 @@ void radica_eu3a14_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &clipr
|
||||
}
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_page(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int xbase, int ybase, int size)
|
||||
void radica_eu3a14_state::draw_background_page(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect, int ramstart, int ramend, int xbase, int ybase, int size, int bpp, int base, int pagewidth, int pageheight, int bytespertile, int palettepri, int drawfromram)
|
||||
{
|
||||
int gfxno = 0;
|
||||
|
||||
int pagesize = m_pagewidth * m_pageheight * 2;
|
||||
int palette = ((palettepri & 0xf0) >> 4) | ((palettepri & 0x08) << 1);
|
||||
palette = palette << 4;
|
||||
int priority = palettepri & 0x07;
|
||||
|
||||
int base = (m_tilebase[1] << 8) | m_tilebase[0];
|
||||
if (m_tilecfg[2] & 0x04) // 4bpp selection
|
||||
{
|
||||
gfxno = 4; // 16x16 4bpp
|
||||
|
||||
if (size == 8)
|
||||
{
|
||||
gfxno = 6; // 8x8 4bpp
|
||||
}
|
||||
}
|
||||
else // 8bpp selection
|
||||
{
|
||||
gfxno = 3; // 16x16 8bpp
|
||||
|
||||
if (size == 8)
|
||||
{
|
||||
gfxno = 5; // 8x8 8bpp
|
||||
}
|
||||
}
|
||||
|
||||
int xdraw = xbase;
|
||||
int ydraw = ybase;
|
||||
int count = 0;
|
||||
|
||||
for (int i = m_tilerambase + pagesize * which; i < m_tilerambase + pagesize * (which + 1); i += m_bytespertile)
|
||||
for (int i = ramstart; i < ramend; i += bytespertile)
|
||||
{
|
||||
int tile = 0;
|
||||
if (m_bytespertile == 2)
|
||||
int realpalette = palette;
|
||||
int realpriority = priority;
|
||||
int realbpp = bpp;
|
||||
|
||||
if (bytespertile == 2)
|
||||
{
|
||||
tile = m_mainram[i + 0] | (m_mainram[i + 1] << 8);
|
||||
}
|
||||
else if (m_bytespertile == 4) // rad_foot hidden test mode, rad_hnt3 shooting range (not yet correct)
|
||||
else if (bytespertile == 4) // rad_foot hidden test mode, rad_hnt3 shooting range (not yet correct)
|
||||
{
|
||||
tile = m_mainram[i + 0] | (m_mainram[i + 1] << 8);// | (m_mainram[i + 2] << 16) | | (m_mainram[i + 3] << 24);
|
||||
|
||||
// m_mainram[i + 3] & 0x04 is set in both seen cases, maybe per-tile bpp?
|
||||
// this would match up with this mode being inline replacements for m_tilecfg[1] (palettepri) and m_tilecfg[2] (bpp);
|
||||
|
||||
int newpalette = ((m_mainram[i + 2] & 0xf0) >> 4) | ((m_mainram[i + 2] & 0x08) << 1);
|
||||
newpalette = newpalette << 4;
|
||||
realpalette = newpalette;
|
||||
realpriority = m_mainram[i + 2] & 0x07;
|
||||
realbpp = m_mainram[i + 3] & 0x07;
|
||||
if (realbpp == 0)
|
||||
realbpp = 8;
|
||||
|
||||
}
|
||||
|
||||
draw_tile(bitmap, cliprect, gfxno, tile, base, 0, 0, 0, xdraw, ydraw, 0, size);
|
||||
draw_background_tile(bitmap, cliprect, realbpp, tile, realpalette, realpriority, 0, 0, xdraw, ydraw, 0, size, base, drawfromram);
|
||||
|
||||
xdraw += size;
|
||||
|
||||
count++;
|
||||
if (((count % m_pagewidth) == 0))
|
||||
if (((count % pagewidth) == 0))
|
||||
{
|
||||
xdraw -= size * m_pagewidth;
|
||||
xdraw -= size * pagewidth;
|
||||
ydraw += size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_background_ramlayer(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect)
|
||||
{
|
||||
// this register use is questionable
|
||||
if (m_ramtilecfg[0] & 0x80)
|
||||
{
|
||||
int rtm_size;;
|
||||
int rtm_pagewidth;
|
||||
int rtm_pageheight;
|
||||
int rtm_xscroll;;
|
||||
int rtm_yscroll;
|
||||
int rtm_bpp;
|
||||
int rtm_bytespertile = 2;
|
||||
uint8_t palettepri = m_ramtilecfg[1];
|
||||
|
||||
rtm_xscroll = 0;
|
||||
rtm_yscroll = 0;
|
||||
|
||||
// disable layer in shooting gallery for now until we understand it
|
||||
//if (m_ramtilecfg[5] == 0x06)
|
||||
// return;
|
||||
|
||||
// force same mode as other tilemap?
|
||||
#if 0
|
||||
if (m_tilecfg[0] & 0x80)
|
||||
{
|
||||
rtm_bytespertile = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
rtm_bytespertile = 2;
|
||||
}
|
||||
#endif
|
||||
|
||||
// this is the gfxbase in ram for all cases seen
|
||||
int rtm_base = (0x2000 - 0x200) / 256;
|
||||
|
||||
// same as regular layer?
|
||||
if (m_ramtilecfg[0] & 0x10)
|
||||
{
|
||||
rtm_size = 8;
|
||||
rtm_pagewidth = 32;
|
||||
rtm_pageheight = 28;
|
||||
}
|
||||
else
|
||||
{
|
||||
rtm_size = 16;
|
||||
rtm_pagewidth = 32 / 2;
|
||||
rtm_pageheight = 28 / 2;
|
||||
}
|
||||
|
||||
rtm_bpp = m_ramtilecfg[2] & 0x07;
|
||||
if (rtm_bpp == 0)
|
||||
rtm_bpp = 8;
|
||||
|
||||
// this is in the same place even when the first tilemap is in 16x16 mode, probably a base register somewhere
|
||||
int ramstart = m_tilerambase + 0x700;
|
||||
int ramend = m_tilerambase + 0x700 + 0x700;
|
||||
|
||||
// hack for shooting gallery mode
|
||||
if (m_ramtilecfg[5] == 0x06)
|
||||
{
|
||||
ramstart = 0x3980-0x200;
|
||||
ramend = 0x3980-0x200 + 0x700;
|
||||
}
|
||||
|
||||
// normal
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - rtm_xscroll, 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1);
|
||||
// wrap x
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (rtm_size * rtm_pagewidth) + 0 - rtm_xscroll, 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1);
|
||||
// wrap y
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - rtm_xscroll, (rtm_size * rtm_pageheight) + 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1);
|
||||
// wrap x+y
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (rtm_size * rtm_pagewidth) + 0 - rtm_xscroll, (rtm_size * rtm_pageheight) + 0 - rtm_yscroll, rtm_size, rtm_bpp, rtm_base, rtm_pagewidth, rtm_pageheight, rtm_bytespertile, palettepri, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void radica_eu3a14_state::draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int xscroll = m_scrollregs[0] | (m_scrollregs[1] << 8);
|
||||
int yscroll = m_scrollregs[2] | (m_scrollregs[3] << 8);
|
||||
|
||||
int base = (m_tilecfg[5] << 8) | m_tilecfg[4];
|
||||
uint8_t palettepri = m_tilecfg[1];
|
||||
|
||||
int pagewidth = 1, pageheight = 1;
|
||||
int bytespertile = 2;
|
||||
int size;
|
||||
|
||||
// m_tilecfg[0] b-as ?-hh b = bytes per tile s = tilesize / page size? a = always set when tilemaps are in use - check? h = related to page positions, when set uses 2x2 pages? ? = used
|
||||
// m_tilecfg[1] ---- ---? ? = used foot
|
||||
// m_tilecfg[2] ---- -B-- B = 4bpp tiles
|
||||
// m_tilecfg[1] pppp x--? ? = used foot x = used, huntin3 summary (palette bank?) p = palette (used for different stages in huntin3 and the hidden test modes in others)
|
||||
// m_tilecfg[2] ---- bbbb b = bpp mode (0 = 8bpp)
|
||||
// m_tilecfg[3] ---- ---- (unused or more gfxbase?)
|
||||
// m_tilecfg[4] gggg gggg gfxbase (lower bits)
|
||||
// m_tilecfg[5] gggg gggg gfxbase (upper bits)
|
||||
|
||||
// ramtilecfg appears to be a similar format, except for the other layer with ram base tiles
|
||||
// however 'a' in m_tilecfg[0] is NOT set
|
||||
// also m_tilecfg[0] has 0x80 set, which would be 4 bytes per tile, but it isn't?
|
||||
// the layer seems to be disabled by setting m_tilecfg[0] to 0?
|
||||
|
||||
if (m_tilecfg[0] & 0x10)
|
||||
{
|
||||
size = 8;
|
||||
m_pagewidth = 32;
|
||||
m_pageheight = 28;
|
||||
pagewidth = 32;
|
||||
pageheight = 28;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = 16;
|
||||
m_pagewidth = 16;
|
||||
m_pageheight = 14;
|
||||
pagewidth = 16;
|
||||
pageheight = 14;
|
||||
}
|
||||
|
||||
if (m_tilecfg[0] & 0x80)
|
||||
{
|
||||
m_bytespertile = 4;
|
||||
bytespertile = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_bytespertile = 2;
|
||||
bytespertile = 2;
|
||||
}
|
||||
|
||||
int bpp = (m_tilecfg[2] & 0x07);
|
||||
if (bpp == 0)
|
||||
bpp = 8;
|
||||
|
||||
int ramstart = 0;
|
||||
int ramend = 0;
|
||||
|
||||
int pagesize = pagewidth * pageheight * 2;
|
||||
|
||||
if (bytespertile == 4)
|
||||
{
|
||||
pagesize <<= 1; // shift because we need twice as much ram for this mode
|
||||
}
|
||||
|
||||
if ((m_tilecfg[0] & 0x03) == 0x00) // tilemaps arranged as 2x2 pages?
|
||||
{
|
||||
// normal
|
||||
draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth) - xscroll, 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 2, 0 - xscroll, (size * m_pageheight) - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth) - xscroll, (size * m_pageheight) - yscroll, size);
|
||||
ramstart = m_tilerambase + pagesize * 0;
|
||||
ramend = m_tilerambase + pagesize * 1;
|
||||
|
||||
// wrap x
|
||||
draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth * 2) + 0 - xscroll, 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth * 3) - xscroll, 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 2, (size * m_pagewidth * 2) + 0 - xscroll, (size * m_pageheight) - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth * 3) - xscroll, (size * m_pageheight) - yscroll, size);
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y
|
||||
|
||||
// wrap y
|
||||
draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth) - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 2, 0 - xscroll, (size * m_pageheight * 3) - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth) - xscroll, (size * m_pageheight * 3) - yscroll, size);
|
||||
ramstart = m_tilerambase + pagesize * 1;
|
||||
ramend = m_tilerambase + pagesize * 2;
|
||||
|
||||
// wrap x+y
|
||||
draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth * 2) + 0 - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 1, (size * m_pagewidth * 3) - xscroll, (size * m_pageheight * 2) + 0 - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 2, (size * m_pagewidth * 2) + 0 - xscroll, (size * m_pageheight * 3) - yscroll, size);
|
||||
draw_page(screen, bitmap, cliprect, 3, (size * m_pagewidth * 3) - xscroll, (size * m_pageheight * 3) - yscroll, size);
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, (size * pageheight * 2) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y
|
||||
|
||||
ramstart = m_tilerambase + pagesize * 2;
|
||||
ramend = m_tilerambase + pagesize * 3;
|
||||
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, 0 - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap y
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 2) + 0 - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y
|
||||
|
||||
ramstart = m_tilerambase + pagesize * 3;
|
||||
ramend = m_tilerambase + pagesize * 4;
|
||||
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // normal
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, (size * pageheight) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth) - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0);// wrap y
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart,ramend, (size * pagewidth * 3) - xscroll, (size * pageheight * 3) - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0); // wrap x+y
|
||||
}
|
||||
else if ((m_tilecfg[0] & 0x03) == 0x03) // individual tilemaps? multiple layers?
|
||||
{
|
||||
// popmessage("m_tilecfg[0] & 0x03 multiple layers config %04x", base);
|
||||
ramstart = m_tilerambase + pagesize * 0;
|
||||
ramend = m_tilerambase + pagesize * 1;
|
||||
|
||||
// normal
|
||||
draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, 0 - yscroll, size);
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0);
|
||||
// wrap x
|
||||
draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth) + 0 - xscroll, 0 - yscroll, size);
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (size * pagewidth) + 0 - xscroll, 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0);
|
||||
// wrap y
|
||||
draw_page(screen, bitmap, cliprect, 0, 0 - xscroll, (size * m_pageheight) + 0 - yscroll, size);
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, 0 - xscroll, (size * pageheight) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0);
|
||||
// wrap x+y
|
||||
draw_page(screen, bitmap, cliprect, 0, (size * m_pagewidth) + 0 - xscroll, (size * m_pageheight) + 0 - yscroll, size);
|
||||
draw_background_page(screen, bitmap, cliprect, ramstart, ramend, (size * pagewidth) + 0 - xscroll, (size * pageheight) + 0 - yscroll, size, bpp, base, pagewidth,pageheight, bytespertile, palettepri, 0);
|
||||
|
||||
// RAM based tile layer
|
||||
draw_background_ramlayer(screen, bitmap, cliprect);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -430,25 +697,145 @@ void radica_eu3a14_state::draw_background(screen_device &screen, bitmap_ind16 &b
|
||||
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int count, int pal, int flipx, int flipy, int xpos, int ypos, int gfxno)
|
||||
void radica_eu3a14_state::draw_sprite_pix(const rectangle& cliprect, uint16_t* dst, uint8_t* pridst, int realx, int priority, uint8_t pix, uint8_t mask, uint8_t shift, int palette)
|
||||
{
|
||||
int tileno = offset + count;
|
||||
gfx_element *gfx = m_gfxdecode->gfx(gfxno);
|
||||
gfx->transpen(bitmap, cliprect, tileno, pal, flipx, flipy, xpos, ypos, 0);
|
||||
if (realx >= cliprect.min_x && realx <= cliprect.max_x)
|
||||
{
|
||||
if (pridst[realx] <= priority)
|
||||
{
|
||||
if (pix & mask)
|
||||
{
|
||||
dst[realx] = ((pix & mask) >> shift) | palette;
|
||||
pridst[realx] = priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void radica_eu3a14_state::draw_sprite_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int offset, int line, int palette, int flipx, int priority, int xpos, int ypos, int bpp)
|
||||
{
|
||||
offset = offset * 2;
|
||||
|
||||
int bppdiv = 0;
|
||||
|
||||
switch (bpp)
|
||||
{
|
||||
default:
|
||||
case 0x8:
|
||||
case 0x7:
|
||||
case 0x6:
|
||||
case 0x5:
|
||||
offset += line * 8;
|
||||
bppdiv = 1;
|
||||
break;
|
||||
|
||||
case 0x4:
|
||||
case 0x3:
|
||||
offset += line * 4;
|
||||
bppdiv = 2;
|
||||
break;
|
||||
|
||||
case 0x2:
|
||||
offset += line * 2;
|
||||
bppdiv = 4;
|
||||
break;
|
||||
|
||||
case 0x1:
|
||||
offset += line * 1;
|
||||
bppdiv = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
uint8_t* gfxdata = &m_mainregion[offset & 0x3fffff];
|
||||
|
||||
if (ypos >= cliprect.min_y && ypos <= cliprect.max_y)
|
||||
{
|
||||
uint16_t* dst = &bitmap.pix16(ypos);
|
||||
uint8_t* pridst = &m_prioritybitmap.pix8(ypos);
|
||||
|
||||
int count = 0;
|
||||
for (int x = 0; x < 8/bppdiv;x++)
|
||||
{
|
||||
if (bpp == 8)
|
||||
{
|
||||
int pix,mask,shift;
|
||||
if (flipx) { pix = gfxdata[7 - count]; } else { pix = gfxdata[count]; }
|
||||
int realx = xpos + x * 1;
|
||||
if (flipx) { mask = 0xff; shift = 0; } else { mask = 0xff; shift = 0; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
}
|
||||
else if (bpp == 7)
|
||||
{
|
||||
int pix,mask,shift;
|
||||
if (flipx) { pix = gfxdata[7 - count]; } else { pix = gfxdata[count]; }
|
||||
int realx = xpos + x * 1;
|
||||
// stride doesn't change, data isn't packed, just don't use top bit
|
||||
if (flipx) { mask = 0x7f; shift = 0; } else { mask = 0x7f; shift = 0; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
}
|
||||
else if (bpp == 6)
|
||||
{
|
||||
popmessage("6bpp sprite\n");
|
||||
}
|
||||
else if (bpp == 5)
|
||||
{
|
||||
popmessage("5bpp sprite\n");
|
||||
}
|
||||
else if (bpp == 4)
|
||||
{
|
||||
int pix,mask,shift;
|
||||
if (flipx) { pix = gfxdata[3 - count]; } else { pix = gfxdata[count]; }
|
||||
int realx = xpos + x * 2;
|
||||
if (flipx) { mask = 0x0f; shift = 0; } else { mask = 0xf0; shift = 4; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
realx++;
|
||||
if (flipx) { mask = 0xf0; shift = 4; } else { mask = 0x0f; shift = 0; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
}
|
||||
else if (bpp == 3)
|
||||
{
|
||||
popmessage("3bpp sprite\n");
|
||||
}
|
||||
else if (bpp == 2)
|
||||
{
|
||||
int pix,mask,shift;
|
||||
if (flipx) { pix = gfxdata[1 - count]; } else { pix = gfxdata[count]; }
|
||||
int realx = xpos + x * 4;
|
||||
if (flipx) { mask = 0x03; shift = 0; } else { mask = 0xc0; shift = 6; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
realx++;
|
||||
if (flipx) { mask = 0x0c; shift = 2; } else { mask = 0x30; shift = 4; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
realx++;
|
||||
if (flipx) { mask = 0x30; shift = 4; } else { mask = 0x0c; shift = 2; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
realx++;
|
||||
if (flipx) { mask = 0xc0; shift = 6; } else { mask = 0x03; shift = 0; }
|
||||
draw_sprite_pix(cliprect, dst, pridst, realx, priority, pix, mask, shift, palette);
|
||||
}
|
||||
else if (bpp == 1)
|
||||
{
|
||||
popmessage("1bpp sprite\n");
|
||||
}
|
||||
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int drawpri)
|
||||
void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
// first 4 sprite entries seem to be garbage sprites, so we start at 0x20
|
||||
// likely we're just interpreting them wrong and they're used for blanking things or clipping?
|
||||
for (int i = m_spriterambase; i < m_spriterambase + 0x7e0; i += 8)
|
||||
for (int i = m_spriterambase; i < m_spriterambase + 0x800; i += 8)
|
||||
{
|
||||
/*
|
||||
+0 e-ff hhww flip yx, enable, height, width
|
||||
+1 yyyy yyyy ypos
|
||||
+2 xxxx xxxx xpos
|
||||
+3 pppp ---- palette
|
||||
+3 pppp Pzzz p = palette, P = upper palette bank, z = priority
|
||||
+4 tttt tttt tile bits
|
||||
+5 tttt tttt
|
||||
+6 --TT TPPP TTT = tile bank PPP = bpp select (+more?)
|
||||
@ -459,7 +846,7 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
|
||||
int attr = m_mainram[i + 0];
|
||||
int y = m_mainram[i + 1];
|
||||
int x = m_mainram[i + 2];
|
||||
int attr2 = m_mainram[i + 3];
|
||||
int palettepri = m_mainram[i + 3];
|
||||
|
||||
int h = attr & 0x0c;
|
||||
int w = attr & 0x03;
|
||||
@ -468,16 +855,11 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
|
||||
|
||||
int height = 0;
|
||||
int width = 0;
|
||||
int pal = attr2 >> 4;
|
||||
|
||||
int pri = attr2 & 0x07;
|
||||
int pri = palettepri & 0x07;
|
||||
|
||||
if (pri != drawpri)
|
||||
continue;
|
||||
|
||||
// no idea
|
||||
if (attr2 & 0x08)
|
||||
pal += 0x10;
|
||||
int palette = ((palettepri & 0xf0) >> 4) | ((palettepri & 0x08) << 1);
|
||||
palette = palette << 4;
|
||||
|
||||
switch (h)
|
||||
{
|
||||
@ -501,46 +883,20 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
|
||||
|
||||
height *= 4;
|
||||
|
||||
x -= 8;
|
||||
x -= 6;
|
||||
y -= 4;
|
||||
|
||||
int offset = ((m_mainram[i + 5] << 8) + (m_mainram[i + 4] << 0));
|
||||
int extra = m_mainram[i + 6];
|
||||
int gfxno = 1;
|
||||
|
||||
int spritebase = (m_spritebase[1] << 8) | m_spritebase[0];
|
||||
|
||||
offset += (extra & 0xf8) << 13;
|
||||
extra &= ~0xf8;
|
||||
offset += spritebase << 7;
|
||||
|
||||
switch (extra & 0x07)
|
||||
{
|
||||
case 0x00: // 8bpp
|
||||
case 0x07: // 8bpp
|
||||
offset >>= 1;
|
||||
gfxno = 2;
|
||||
break;
|
||||
|
||||
case 0x02: // 2bpp
|
||||
offset <<= 1;
|
||||
gfxno = 0;
|
||||
pal = 0;
|
||||
break;
|
||||
|
||||
case 0x04: // 4bpp
|
||||
gfxno = 1;
|
||||
break;
|
||||
|
||||
case 0x01: // unknowns
|
||||
case 0x03:
|
||||
case 0x05:
|
||||
case 0x06:
|
||||
pal = machine().rand();
|
||||
break;
|
||||
}
|
||||
|
||||
offset = offset >> 1;
|
||||
int bpp = extra & 0x07;
|
||||
if (bpp == 0)
|
||||
bpp = 8;
|
||||
|
||||
if (attr & 0x80)
|
||||
{
|
||||
@ -553,7 +909,7 @@ void radica_eu3a14_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitm
|
||||
{
|
||||
int xoff = flipx ? (((width - 1) * 8) - (xx * 8)) : (xx * 8);
|
||||
|
||||
draw_sprite_line(screen, bitmap, cliprect, offset, count, pal, flipx, flipy, x + xoff, y + yoff, gfxno);
|
||||
draw_sprite_line(screen, bitmap, cliprect, offset, count, palette, flipx, pri, x + xoff, y + yoff, bpp);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@ -568,14 +924,12 @@ uint32_t radica_eu3a14_state::screen_update(screen_device &screen, bitmap_ind16
|
||||
m_spriterambase = (m_spriteaddr[0] * 0x200) - 0x200;
|
||||
|
||||
bitmap.fill(0, cliprect);
|
||||
m_prioritybitmap.fill(0, cliprect);
|
||||
|
||||
handle_palette(screen, bitmap, cliprect);
|
||||
draw_background(screen, bitmap, cliprect);
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
draw_sprites(screen, bitmap, cliprect, i);
|
||||
}
|
||||
draw_sprites(screen, bitmap, cliprect);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -735,19 +1089,40 @@ void radica_eu3a14_state::radica_eu3a14_map(address_map &map)
|
||||
map(0x50a8, 0x50a8).r("6ch_sound", FUNC(radica6502_sound_device::radicasi_50a8_r));
|
||||
map(0x50a9, 0x50a9).nopw(); // startup, read foot
|
||||
|
||||
// video regs are here this time
|
||||
// video regs are in the 51xx range
|
||||
|
||||
// huntin'3 seems to use some registers for a windowing / highlight effect on the trophy room names and gallery mode timer??
|
||||
// 5100 - 0x0f when effect is enabled, 0x00 otherwise?
|
||||
// 5101 - 0x0e in both modes
|
||||
// 5102 - 0x86 in both modes
|
||||
// 5103 - 0x0e in tropy room (left?) / 0x2a in gallery mode (left position?)
|
||||
// 5104 - trophy room window / highlight top, move with cursor / 0xbf in gallery mode (top?)
|
||||
// 5105 - 0x52 in trophy room (right?) / counts from 0xa1 to 0x2a (right position?)
|
||||
// 5106 - trophy room window / highlight bottom, move with cursor / 0xcb in gallery mode (bottom?)
|
||||
// 5107 - 0x00
|
||||
// 5108 - 0x04 in both modes
|
||||
// 5109 - 0xc2 in both modes
|
||||
|
||||
map(0x5100, 0x5100).ram();
|
||||
map(0x5101, 0x5101).ram();
|
||||
map(0x5102, 0x5102).ram();
|
||||
map(0x5103, 0x5106).ram();
|
||||
map(0x5107, 0x5107).ram(); // on transitions, maybe layer disables?
|
||||
map(0x5110, 0x5112).ram().share("tilecfg");
|
||||
map(0x5113, 0x5113).ram(); // written with tilebase?
|
||||
map(0x5114, 0x5115).ram().share("tilebase");
|
||||
map(0x5116, 0x5117).ram();
|
||||
map(0x5121, 0x5124).ram().share("scrollregs");
|
||||
map(0x5108, 0x5109).ram(); // hnt3, frequently rewrites same values, maybe something to do with raster irq?
|
||||
|
||||
map(0x5140, 0x5140).ram();
|
||||
// layer specific regs?
|
||||
map(0x5110, 0x5115).ram().share("tilecfg");
|
||||
map(0x5116, 0x5117).ram();
|
||||
map(0x511a, 0x511e).ram(); // hnt3
|
||||
|
||||
map(0x5121, 0x5124).ram().share("scrollregs");
|
||||
map(0x5125, 0x512c).ram(); // hnt3
|
||||
|
||||
// layer specific regs?
|
||||
map(0x5140, 0x5145).ram().share("ramtilecfg"); // hnt3
|
||||
map(0x5148, 0x514b).ram(); // hnt3
|
||||
|
||||
// sprite specific regs?
|
||||
map(0x5150, 0x5150).ram().share("spriteaddr"); // startup 01 bb3,gtg,rsg, (na) foot 0c hnt3
|
||||
map(0x5151, 0x5152).ram().share("spritebase");
|
||||
map(0x5153, 0x5153).ram(); // startup
|
||||
@ -791,7 +1166,6 @@ WRITE8_MEMBER(radica_eu3a14_state::dma_trigger_w)
|
||||
}
|
||||
|
||||
|
||||
// hold back/backspin and left during power on for test mode
|
||||
static INPUT_PORTS_START( rad_gtg )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
@ -848,6 +1222,7 @@ static INPUT_PORTS_START( rad_gtg )
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( rad_rsg ) // base unit just has 4 directions + enter and a sensor to swing the club over
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // aiming
|
||||
@ -928,11 +1303,11 @@ static INPUT_PORTS_START( rad_rsgp )
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
// hold enter and left during power on for test mode
|
||||
|
||||
static INPUT_PORTS_START( radica_foot )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) // enter?
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
@ -1077,8 +1452,8 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( radica_bask )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_DIPNAME( 0x08, 0x08, "IN0" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
@ -1254,7 +1629,7 @@ void radica_eu3a14_state::machine_reset()
|
||||
m_portdir[1] = 0x00;
|
||||
m_portdir[2] = 0x00;
|
||||
|
||||
m_spriteaddr[0] = 0x14; // ?? rad_foot never writes, other games seem to use it to se sprite location
|
||||
m_spriteaddr[0] = 0x14; // ?? rad_foot never writes, other games seem to use it to set sprite location
|
||||
}
|
||||
|
||||
|
||||
@ -1288,39 +1663,6 @@ INTERRUPT_GEN_MEMBER(radica_eu3a14_state::interrupt)
|
||||
}
|
||||
|
||||
|
||||
static const gfx_layout helper8x1x2_layout =
|
||||
{
|
||||
8,1,
|
||||
RGN_FRAC(1,1),
|
||||
2,
|
||||
{ STEP2(0,1) },
|
||||
{ STEP8(0,2) },
|
||||
{ 0 },
|
||||
8 * 2
|
||||
};
|
||||
|
||||
static const gfx_layout helper8x1x4_layout =
|
||||
{
|
||||
8,1,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ STEP4(0,1) },
|
||||
{ STEP8(0,4) },
|
||||
{ 0 },
|
||||
8 * 4
|
||||
};
|
||||
|
||||
static const gfx_layout helper8x1x8_layout =
|
||||
{
|
||||
8,1,
|
||||
RGN_FRAC(1,1),
|
||||
8,
|
||||
{ STEP8(0,1) },
|
||||
{ STEP8(0,8) },
|
||||
{ 0 },
|
||||
8 * 8
|
||||
};
|
||||
|
||||
// background
|
||||
static const gfx_layout helper16x16x8_layout =
|
||||
{
|
||||
@ -1368,10 +1710,7 @@ static const gfx_layout helper8x8x4_layout =
|
||||
|
||||
|
||||
static GFXDECODE_START( gfx_helper )
|
||||
GFXDECODE_ENTRY( "maincpu", 0, helper8x1x2_layout, 0x0, 128 )
|
||||
GFXDECODE_ENTRY( "maincpu", 0, helper8x1x4_layout, 0x0, 32 )
|
||||
GFXDECODE_ENTRY( "maincpu", 0, helper8x1x8_layout, 0x0, 2 )
|
||||
// standard decodes
|
||||
// dummy standard decodes to see background tiles, not used for drawing
|
||||
GFXDECODE_ENTRY( "maincpu", 0, helper16x16x8_layout, 0x0, 2 )
|
||||
GFXDECODE_ENTRY( "maincpu", 0, helper16x16x4_layout, 0x0, 32 )
|
||||
GFXDECODE_ENTRY( "maincpu", 0, helper8x8x8_layout, 0x0, 2 )
|
||||
@ -1498,6 +1837,7 @@ ROM_END
|
||||
CONS( 2006, rad_gtg, 0, 0, radica_eu3a14_adc, rad_gtg, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios (licensed from Incredible Technologies)", "Golden Tee Golf: Home Edition", MACHINE_NOT_WORKING )
|
||||
|
||||
CONS( 2005, rad_rsg, 0, 0, radica_eu3a14, rad_rsg, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Play TV Real Swing Golf", MACHINE_NOT_WORKING )
|
||||
// some Connectv branded Real Swing Golf units have a language selection, so there are likely other PAL revisions of this
|
||||
CONS( 2005, rad_rsgp, rad_rsg, 0, radica_eu3a14p, rad_rsgp, radica_eu3a14_state, init_rad_gtg, "Radica / FarSight Studios", "Connectv Real Swing Golf", MACHINE_NOT_WORKING )
|
||||
|
||||
// also has a Connectv Real Soccer logo in the roms, apparently unused, maybe that was to be the US title (without the logo being changed to Play TV) but Play TV Soccer ended up being a different game licensed from Epoch instead.
|
@ -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.
|
||||
@ -364,5 +366,5 @@ 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 )
|
||||
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 )
|
||||
|
@ -376,4 +376,4 @@ ROM_START( stratos )
|
||||
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)
|
||||
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,28 +29,26 @@ 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;
|
||||
u8 m_adpcm_byte;
|
||||
int m_msm5205_vclk_toggle;
|
||||
|
||||
/* devices */
|
||||
@ -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
|
||||
@ -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))
|
||||
{
|
||||
sprite_ptr->height = h;
|
||||
sprite_ptr->colour = colour;
|
||||
sprite_ptr->flipx = flipx;
|
||||
sprite_ptr->flipy = flipy;
|
||||
if (priority)
|
||||
{
|
||||
gfx->prio_transpen(bitmap, cliprect,
|
||||
code - y * incy,
|
||||
colour,
|
||||
flipx, flipy,
|
||||
sx + (mult * x), sy + (mult * y), screen.priority(), pri_mask, 0);
|
||||
sprite_ptr->pri_mask = pri_mask;
|
||||
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);
|
||||
}
|
||||
sprite_ptr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gfx->transpen(bitmap, cliprect,
|
||||
code - y * incy,
|
||||
colour,
|
||||
flipx, flipy,
|
||||
sx + (mult * x), sy + (mult * y), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
chainoffs += 4;
|
||||
}
|
||||
while (w)
|
||||
for (int y = 0; y < h; y++)
|
||||
{
|
||||
w--;
|
||||
offs += inc;
|
||||
if (offs == end)
|
||||
return;
|
||||
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,
|
||||
sprite_ptr->code[y],
|
||||
sprite_ptr->colour,
|
||||
sprite_ptr->flipx, sprite_ptr->flipy,
|
||||
sprite_ptr->x[y], sprite_ptr->y[y], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
offs += 4;
|
||||
}
|
||||
}
|
||||
|
||||
if (priority)
|
||||
{
|
||||
while (sprite_ptr != m_spritelist.get())
|
||||
{
|
||||
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