Ovvero: ci sono giochi, come per es. galaxian, che riportano una risoluzione molto più alta di quella del cabinato. In questo caso 768x224.
Come è possibile?
Questo è l'xml:
Codice: Seleziona tutto
<machine name="galaxian" sourcefile="galaxian.cpp">
<description>Galaxian (Namco set 1)</description>
<year>1979</year>
<manufacturer>Namco</manufacturer>
<rom name="galmidw.u" size="2048" crc="745e2d61" sha1="e65f74e35b1bfaccd407e168ea55678ae9b68edf" region="maincpu" offset="0"/>
<rom name="galmidw.v" size="2048" crc="9c999a40" sha1="02fdcd95d8511e64c0d2b007b874112d53e41045" region="maincpu" offset="800"/>
<rom name="galmidw.w" size="2048" crc="b5894925" sha1="0046b9ed697a34d088de1aead8bd7cbe526a2396" region="maincpu" offset="1000"/>
<rom name="galmidw.y" size="2048" crc="6b3ca10b" sha1="18d8714e5ef52f63ba8888ecc5a25b17b3bf17d1" region="maincpu" offset="1800"/>
<rom name="7l" size="2048" crc="1b933207" sha1="8b44b0f74420871454e27894d0f004859f9e59a9" region="maincpu" offset="2000"/>
<rom name="1h.bin" size="2048" crc="39fb43a4" sha1="4755609bd974976f04855d51e08ec0d62ab4bc07" region="gfx1" offset="0"/>
<rom name="1k.bin" size="2048" crc="7e3f56a2" sha1="a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa" region="gfx1" offset="800"/>
<rom name="6l.bpr" size="32" crc="c3ac9467" sha1="f382ad5a34d282056c78a5ec00c30ec43772bae2" region="proms" offset="0"/>
<device_ref name="z80"/>
<device_ref name="watchdog"/>
<device_ref name="gfxdecode"/>
<device_ref name="palette"/>
<device_ref name="screen"/>
<device_ref name="speaker"/>
<device_ref name="galaxian_sound"/>
<device_ref name="discrete"/>
<chip type="cpu" tag="maincpu" name="Zilog Z80" clock="3072000"/>
<chip type="audio" tag="speaker" name="Speaker"/>
<chip type="audio" tag="cust" name="Galaxian Custom Sound"/>
<chip type="audio" tag="discrete" name="Discrete Sound"/>
<display tag="screen" type="raster" rotate="90" width="768" height="224" refresh="60.606061" pixclock="18432000" htotal="1152" hbend="0" hbstart="768" vtotal="264" vbend="16" vbstart="240"/>
<sound channels="1"/>
<input players="2" coins="2">
<control type="joy" player="1" buttons="1" ways="2"/>
<control type="joy" player="2" buttons="1" ways="2"/>
</input>
<dipswitch name="Cabinet" tag="IN0" mask="32">
<dipvalue name="Upright" value="0" default="yes"/>
<dipvalue name="Cocktail" value="32"/>
</dipswitch>
<dipswitch name="Service Mode" tag="IN0" mask="64">
<dipvalue name="Off" value="0" default="yes"/>
<dipvalue name="On" value="64"/>
</dipswitch>
<dipswitch name="Coinage" tag="IN1" mask="192">
<dipvalue name="2 Coins/1 Credit" value="64"/>
<dipvalue name="1 Coin/1 Credit" value="0" default="yes"/>
<dipvalue name="1 Coin/2 Credits" value="128"/>
<dipvalue name="Free Play" value="192"/>
</dipswitch>
<dipswitch name="Bonus Life" tag="IN2" mask="3">
<dipvalue name="7000" value="0" default="yes"/>
<dipvalue name="10000" value="1"/>
<dipvalue name="12000" value="2"/>
<dipvalue name="20000" value="3"/>
</dipswitch>
<dipswitch name="Lives" tag="IN2" mask="4">
<dipvalue name="2" value="0"/>
<dipvalue name="3" value="4" default="yes"/>
</dipswitch>
<dipswitch name="Unused" tag="IN2" mask="8">
<dipvalue name="Off" value="0" default="yes"/>
<dipvalue name="On" value="8"/>
</dipswitch>
<port tag=":IN0"/>
<port tag=":IN1"/>
<port tag=":IN2"/>
<driver status="good" emulation="good" savestate="supported"/>
</machine>
Codice: Seleziona tutto
<game name="galaxian" sourcefile="galaxian.c">
<description>Galaxian (Namco set 1)</description>
<year>1979</year>
<manufacturer>Namco</manufacturer>
<rom name="galmidw.u" size="2048" crc="745e2d61" sha1="e65f74e35b1bfaccd407e168ea55678ae9b68edf" region="cpu1" offset="0"/>
<rom name="galmidw.v" size="2048" crc="9c999a40" sha1="02fdcd95d8511e64c0d2b007b874112d53e41045" region="cpu1" offset="800"/>
<rom name="galmidw.w" size="2048" crc="b5894925" sha1="0046b9ed697a34d088de1aead8bd7cbe526a2396" region="cpu1" offset="1000"/>
<rom name="galmidw.y" size="2048" crc="6b3ca10b" sha1="18d8714e5ef52f63ba8888ecc5a25b17b3bf17d1" region="cpu1" offset="1800"/>
<rom name="7l" size="2048" crc="1b933207" sha1="8b44b0f74420871454e27894d0f004859f9e59a9" region="cpu1" offset="2000"/>
<rom name="1h.bin" size="2048" crc="39fb43a4" sha1="4755609bd974976f04855d51e08ec0d62ab4bc07" region="gfx1" dispose="yes" offset="0"/>
<rom name="1k.bin" size="2048" crc="7e3f56a2" sha1="a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa" region="gfx1" dispose="yes" offset="800"/>
<rom name="6l.bpr" size="32" crc="c3ac9467" sha1="f382ad5a34d282056c78a5ec00c30ec43772bae2" region="proms" offset="0"/>
<chip type="cpu" name="Z80" clock="3072000"/>
<chip type="audio" name="Samples"/>
<display type="raster" rotate="90" width="256" height="224" refresh="60.606061" pixclock="6144000" htotal="384" hbend="0" hbstart="256" vtotal="264" vbend="16" vbstart="240"/>
<sound channels="1"/>
<input players="2" buttons="1" coins="2">
<control type="joy2way"/>
</input>
<dipswitch name="Cabinet">
<dipvalue name="Upright" default="yes"/>
<dipvalue name="Cocktail"/>
</dipswitch>
<dipswitch name="Service Mode">
<dipvalue name="Off" default="yes"/>
<dipvalue name="On"/>
</dipswitch>
<dipswitch name="Coinage">
<dipvalue name="2 Coins/1 Credit"/>
<dipvalue name="1 Coin/1 Credit" default="yes"/>
<dipvalue name="1 Coin/2 Credits"/>
<dipvalue name="Free Play"/>
</dipswitch>
<dipswitch name="Bonus Life">
<dipvalue name="7000" default="yes"/>
<dipvalue name="10000"/>
<dipvalue name="12000"/>
<dipvalue name="20000"/>
</dipswitch>
<dipswitch name="Lives">
<dipvalue name="2"/>
<dipvalue name="3" default="yes"/>
</dipswitch>
<dipswitch name="Unused">
<dipvalue name="Off" default="yes"/>
<dipvalue name="On"/>
</dipswitch>
<driver status="good" emulation="good" color="good" sound="good" graphic="good" savestate="supported" palettesize="98"/>
</game>
Codice: Seleziona tutto
0.196: <display type="raster" rotate="90" width="768" height="224" refresh="60.606061" pixclock="18432000" htotal="1152" hbend="0" hbstart="768" vtotal="264" vbend="16" vbstart="240"/>
0.123: <display type="raster" rotate="90" width="256" height="224" refresh="60.606061" pixclock="6144000" htotal="384" hbend="0" hbstart="256" vtotal="264" vbend="16" vbstart="240"/>
Dai nomi pensavo a questa corrispondenza:
- htotal, vtotal: totale px in larghezza e altezza
- hbstart, hbend: coordinate iniziali e finali del bordo orizzontale
- vbstart, vbend: coordinate iniziali e finali del bordo verticale
Se è così, l'attributo width non esprime la larghezza schermo e andrebbe in qualche modo ricalcolata con nuove regole, oppure aggiungere un attributo "display width" e rinominare questo in "full view/artwork width" o qualcosa del genere.
Qualche idea?
Per esempio 1152-768 fa proprio 384... ma non torna in altri casi...
Prima di andare a controllare il sorgente volevo sapere se altri si sono posti il problema o se hanno già trovato la soluzione.