appello a Kernel, PaTrYcK, e tutti gli altri esperti di video e modeline.pucci ha scritto:a questo punto il problema è: come riuscire a individuare la tipologia di monitor usato dal gioco basandosi non su liste compilate a mano ma usando solo i dati presenti nel listXML
i un mio vecchio MAME Database ho ritrovato una formula, sinceramente non so come ci arrivai e non so nemmeno se è corretta, ma magari qualcuno più esperto di me può correggerla, migliorarla o crarne una nuova
i dati che ci fornisce listXML sono questi:
- type (raster, vector): ci permette di separare i giochi vettoriali (che usavano appositi monitor) da quelli raster (che usano i comuni monitor dei cab)
- rotate (0, 90, 180, 270): in base al valore capiamo se un gioco usa lo schermo orizzontale (0 o 180) o verticale (90 o 270)
- width: larghezza
- height: altezza
- refresh: frequenza di aggiornamento verticale
ci sono anche questi dati che non so se possono tornare utili (credo che abbiano a che fare con linee/colonne totali, porch, blank period, ecc...):
- pixclock
- htotal
- hbend
- hbstart
- vtotal
- vbend
- vbstart
- flipx
la formula che mi sono ritrovato per identificare il tipo di monitor è questa:
è 15Khz se ((15720/refresh/1000000)-22)-height >= 0)
è 25Khz se ((15720/refresh/1000000)-22)-height < 0) AND ((25000/refresh/1000000)-22)-height >= 0)
è 31Khz se ((25000/refresh/1000000)-22)-height < 0)
a dire il vero avevo inserito anche queste condizioni, in aggiunta alle precedenti (e non ricordo il perchè):
25Khz se (height>288) AND (height<=384)
31Khz se (height>340)
le formule vanno sicuramente "riviste", qualche esperto di monitor può darmi una mano?
possibile che dai dati che riporto sopra non sia possibile individuare che tipo di monitor usava il cab?
se non ricordo male la limitazione dei vari tipi di monitor è legata al numero massimo di righe visualizzabili (mentre non dovrebbe creare problemi sul numero di colonne)
e sempre se non ricordo male, se il refresh diminuisce aumentano (a parita di monitor) il numero di righe visualizzabili
quindi direi che una banale formula che prenda numero di righe e refresh dovrebbe fornire la risposta
qualcuno può aiutarmi a trovarla?