Pagina 1 di 1

Risoluzione dello schermo nel Mame

Inviato: 10/04/2018, 23:22
da motoschifo
Dopo aver fatto alcuni controlli, mi è venuto un dubbio che non ricordo di aver chiarito tempo fa quando si parlava di risoluzione.
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>
mentre prima della versione 0.124 appariva così:

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>
La parte interessante è questa:

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"/>
Come posso ottenere la risoluzione corretta, o meglio cosa rappresentano questi valori?
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... <-think->

Prima di andare a controllare il sorgente volevo sapere se altri si sono posti il problema o se hanno già trovato la soluzione.

Re: Risoluzione dello schermo nel Mame

Inviato: 13/04/2018, 13:08
da Tox Nox Fox
Hai capito qualcosa poi ?

Re: Risoluzione dello schermo nel Mame

Inviato: 13/04/2018, 20:05
da motoschifo
No non ci ho più pensato, ho lanciato la richiesta sul forum proprio perchè non avevo tempo di approfondire 8-)

Mi pare strano che dalla versione 0.124 la risoluzione sia triplicata per quel gioco e non ci sia stato una spiegazione precisa del perchè.
Magari mi spulcio anche i changelog e i sorgenti, probabilmente hanno inserito commenti lì dentro.

Re: Risoluzione dello schermo nel Mame

Inviato: 25/04/2018, 9:52
da DigDug
un altro che ricordo avere incongruenze di risoluzione è popeye...

Re: Risoluzione dello schermo nel Mame

Inviato: 25/04/2018, 13:20
da motoschifo
Se si trova la regola, o anche solo una lista con i valori corretti dei giochi che si conoscono, posso mettere in piedi qualcosa per tenere traccia della giusta risoluzione.
Per adesso non ho trovato ancora nulla di valido da applicare.