RetroASD = JammASD (versione usb) + Mini PC!
-
- Cab-maniaco
- Messaggi: 1646
- Iscritto il: 02/08/2005, 8:40
- Medaglie: 1
- Città: Latina
- Grazie Inviati: 6 volte
- Grazie Ricevuti: 3 volte
Re: RetroASD = JammASD + Mini PC!
Fantastico!
Non voglio farti perdere tempo in post troppo tecnici ma trovo veramente brillante la soluzione delle risoluzioni "ultrawide" per riuscire ad ottenere risoluzioni e refresh rate (modeline) arbitrari anche con schede grafiche integrate.
Se ho ben capito hai surclassato i famosi CRT Emudrivers che soffrono invece di molte limitazioni relativamente all'hardware utilizzabile.
Con questi script (pre/post) poi si apre di fatto la possibilità di realizzare un sistema pixel-perfect per ogni piattaforma/gioco
Non voglio farti perdere tempo in post troppo tecnici ma trovo veramente brillante la soluzione delle risoluzioni "ultrawide" per riuscire ad ottenere risoluzioni e refresh rate (modeline) arbitrari anche con schede grafiche integrate.
Se ho ben capito hai surclassato i famosi CRT Emudrivers che soffrono invece di molte limitazioni relativamente all'hardware utilizzabile.
Con questi script (pre/post) poi si apre di fatto la possibilità di realizzare un sistema pixel-perfect per ogni piattaforma/gioco
-
Tox Nox Fox
- Moderatore
- Messaggi: 11839
- Iscritto il: 14/01/2007, 23:35
- Medaglie: 3
- Grazie Inviati: 166 volte
- Grazie Ricevuti: 277 volte
Re: RetroASD = JammASD + Mini PC!
la teoria sotto è la stessa dei crtemudriver, ma rielaborata sotto Linux e con qualche "colpo di genio" di zanac che li rendono utilizzabili un po' ovunque.
Come dicevo anche con zanac, al tempo del dos puro (anni fa ) usando Linux o Dos si usciva a 15khz su ogni scheda video in circolazione. In Dos, con ArcadeOs bastava una riga in un file di testo per uscire a 15khz.
Poi con Windows iniziarono i problemi per la forzatura.
Come dicevo anche con zanac, al tempo del dos puro (anni fa ) usando Linux o Dos si usciva a 15khz su ogni scheda video in circolazione. In Dos, con ArcadeOs bastava una riga in un file di testo per uscire a 15khz.
Poi con Windows iniziarono i problemi per la forzatura.
-
picerno
- God of Arcade
- Messaggi: 3620
- Iscritto il: 20/11/2006, 21:31
- Medaglie: 1
- Località: Provincia di Potenza
- Grazie Inviati: 1 volta
- Grazie Ricevuti: 42 volte
Re: RetroASD = JammASD + Mini PC!
Io sono rimasto a quei tempi. Dos e advmameTox Nox Fox ha scritto: ↑06/11/2019, 13:21 , al tempo del dos puro (anni fa ) usando Linux o Dos si usciva a 15khz su ogni scheda video in circolazione. In Dos, con ArcadeOs bastava una riga in un file di testo per uscire a 15khz..
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Male male, ma a fine progetto conto di farti "evolvere"picerno ha scritto: ↑06/11/2019, 18:12Io sono rimasto a quei tempi. Dos e advmameTox Nox Fox ha scritto: ↑06/11/2019, 13:21 , al tempo del dos puro (anni fa ) usando Linux o Dos si usciva a 15khz su ogni scheda video in circolazione. In Dos, con ArcadeOs bastava una riga in un file di testo per uscire a 15khz..
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Continua la sperimentazione.
Dopo un po' di giorni che giravo alla risoluzione descritta mi sono spinto a spingere, perdonate il gioco di parole, il mio buon vecchio Mivar alla massima risoluzione che supportava e sopportava.
Il Mivar reggeva tranquillamente una risoluzione di 300p a 15khz, tuttavia ho deciso di scendere a 274p per mantenere la compatibilità con magari altri monitor arcade meno di manica larga.
Con questa risoluzione i giochi che usano 224p (la maggior parte) possono essere visualizzati aggiungendo 25 pixel sopra e sotto lo schermo (25+225+25=274), la risoluzione orizzontale invece è ora ad una fiammante 2560 pixel, con questo compremesso possiamo ora far girare i Sega Model 3 (che ricordo essere 496x384) a 2480x274 con una perdita di qualità video di "appena" il 29% dei pixel contro il 35% di una risoluzione 15khz standard (non sto qui a riportarvi il dettaglio dei calcoli per non annoiare troppo).
Veniamo ora ad alcuni giochi con risoluzioni bastarde.
Mortal Kombat: 400x256... risoluzione orizzontale 80+400*5+80, risoluzione verticale 9+256+9! Ci siamo.
Popeye, interlacciata a 512x448. No, non ci siamo.
Per le interflacciate serve una super risoluzione che copra più casistiche... dopo diversi tentativi ho tirato fuori una 1024x600 interlacciata! Popeye quindi diventa 512*2,76+448+76
Tutto bene? Si, quasi. Come fare a gestire due modeline così esotiche con xrandr? Ecco il trucchetto....
/usr/bin/xrandr --newmode "MODE_2560x274p" 52.42 2560 2664 2912 3328 274 275 277 300 -hsync -vsync
/usr/bin/xrandr --newmode "MODE_1024x600i" 20.161 1024 1032 1127 1264 600 601 607 638 interlace -hsync -vsync
/usr/bin/xrandr --addmode $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") "MODE_2560x274p"
/usr/bin/xrandr --addmode $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") "MODE_1024x600i"
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_2560x274p" --scale-from 384x274
Fatto questo possiamo cambiare da una risoluzione all'altra con questi tre comandi:
Super risoluzione progressiva:
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_2560x274p" --transform none
Super risoluzione progressiva scalata (per emulation):
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_2560x274p" --scale-from 384x274
Super risoluzione interlacciata:
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_1024x600i"
Per finire ecco un altro tema che mi sta a cuore: l'uso di emulatori a schermo intero ma che in realtà faremo girare su una finestra grande quanto il desktop!
In questo caso tutto funziona bene tranne che il cursore del mouse va oscurato. Come fare?
Semplice, definiamo un file ad hoc cursor_hidden.xbm con all'interno queste righe:
cursor_hidden.xbm:
#define blnk_ptr_width 1
#define blnk_ptr_height 1
#define blnk_ptr_x_hot 0
#define blnk_ptr_y_hot 0
static unsigned char blnk_ptr_bits[] = { 0x00 };
Ora il comando:
/usr/bin/xsetroot -cursor /opt/retropie/retroasd/cursor_hidden.xbm /opt/retropie/retroasd/cursor_hidden.xbm
Ora ci siamo davvero!
E se il cursorse serve nuovamente?
Detto fatto:
xsetroot -cursor_name left_ptr
Dopo un po' di giorni che giravo alla risoluzione descritta mi sono spinto a spingere, perdonate il gioco di parole, il mio buon vecchio Mivar alla massima risoluzione che supportava e sopportava.
Il Mivar reggeva tranquillamente una risoluzione di 300p a 15khz, tuttavia ho deciso di scendere a 274p per mantenere la compatibilità con magari altri monitor arcade meno di manica larga.
Con questa risoluzione i giochi che usano 224p (la maggior parte) possono essere visualizzati aggiungendo 25 pixel sopra e sotto lo schermo (25+225+25=274), la risoluzione orizzontale invece è ora ad una fiammante 2560 pixel, con questo compremesso possiamo ora far girare i Sega Model 3 (che ricordo essere 496x384) a 2480x274 con una perdita di qualità video di "appena" il 29% dei pixel contro il 35% di una risoluzione 15khz standard (non sto qui a riportarvi il dettaglio dei calcoli per non annoiare troppo).
Veniamo ora ad alcuni giochi con risoluzioni bastarde.
Mortal Kombat: 400x256... risoluzione orizzontale 80+400*5+80, risoluzione verticale 9+256+9! Ci siamo.
Popeye, interlacciata a 512x448. No, non ci siamo.
Per le interflacciate serve una super risoluzione che copra più casistiche... dopo diversi tentativi ho tirato fuori una 1024x600 interlacciata! Popeye quindi diventa 512*2,76+448+76
Tutto bene? Si, quasi. Come fare a gestire due modeline così esotiche con xrandr? Ecco il trucchetto....
/usr/bin/xrandr --newmode "MODE_2560x274p" 52.42 2560 2664 2912 3328 274 275 277 300 -hsync -vsync
/usr/bin/xrandr --newmode "MODE_1024x600i" 20.161 1024 1032 1127 1264 600 601 607 638 interlace -hsync -vsync
/usr/bin/xrandr --addmode $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") "MODE_2560x274p"
/usr/bin/xrandr --addmode $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") "MODE_1024x600i"
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_2560x274p" --scale-from 384x274
Fatto questo possiamo cambiare da una risoluzione all'altra con questi tre comandi:
Super risoluzione progressiva:
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_2560x274p" --transform none
Super risoluzione progressiva scalata (per emulation):
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_2560x274p" --scale-from 384x274
Super risoluzione interlacciata:
/usr/bin/xrandr --output $(/usr/bin/xrandr | grep ' connected ' | sed "s/^\(.*\) connected.*/\1/") --mode "MODE_1024x600i"
Per finire ecco un altro tema che mi sta a cuore: l'uso di emulatori a schermo intero ma che in realtà faremo girare su una finestra grande quanto il desktop!
In questo caso tutto funziona bene tranne che il cursore del mouse va oscurato. Come fare?
Semplice, definiamo un file ad hoc cursor_hidden.xbm con all'interno queste righe:
cursor_hidden.xbm:
#define blnk_ptr_width 1
#define blnk_ptr_height 1
#define blnk_ptr_x_hot 0
#define blnk_ptr_y_hot 0
static unsigned char blnk_ptr_bits[] = { 0x00 };
Ora il comando:
/usr/bin/xsetroot -cursor /opt/retropie/retroasd/cursor_hidden.xbm /opt/retropie/retroasd/cursor_hidden.xbm
Ora ci siamo davvero!
E se il cursorse serve nuovamente?
Detto fatto:
xsetroot -cursor_name left_ptr
-
- Cab-maniaco
- Messaggi: 1646
- Iscritto il: 02/08/2005, 8:40
- Medaglie: 1
- Città: Latina
- Grazie Inviati: 6 volte
- Grazie Ricevuti: 3 volte
Re: RetroASD = JammASD + Mini PC!
Grande!
Come gestirà l'emulatore (mame ad esempio) la scelta della risoluzione adatta tra quelle installate?
Prevedi un'impostazione manuale degli "ini" oppure qualche altro meccanismo?
Immagino che conosci già perfettamente "groovymame" che dovrebbe supportare l'utilizzo e la selezione delle "super resolution" molto simili al metodo che stai implementando!
Come gestirà l'emulatore (mame ad esempio) la scelta della risoluzione adatta tra quelle installate?
Prevedi un'impostazione manuale degli "ini" oppure qualche altro meccanismo?
Immagino che conosci già perfettamente "groovymame" che dovrebbe supportare l'utilizzo e la selezione delle "super resolution" molto simili al metodo che stai implementando!
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
In realtà non ho mai usato groovymame, chi mi conosce sa che provengo da Pandora Tieni conto che non sono un maniaco del pixel perfect, anzi... in verità mi piace quasi di più giocare con qualche filtro che faccia un upscaling della risoluzione del giocoantoniomauro ha scritto: ↑13/11/2019, 11:23 Grande!
Come gestirà l'emulatore (mame ad esempio) la scelta della risoluzione adatta tra quelle installate?
Prevedi un'impostazione manuale degli "ini" oppure qualche altro meccanismo?
Immagino che conosci già perfettamente "groovymame" che dovrebbe supportare l'utilizzo e la selezione delle "super resolution" molto simili al metodo che stai implementando!
Tuttavia voglio tenermi aperto e permettere a chi invece piaccioni i pixel di avvicinarsi ad un'esperienza arcade originale... detto questo in prima fase appunto non ho intenzione di usare alcun stratagemma per cambiare la risoluzione, ma mi interessa capirne la fattibilità.
Come ho in mente di farlo? Facile, mame tramite la sua api a command line permette di estrarre le info di ogni gioco, nel tag <display> ci sono le info della risoluzione desiderata dal gioco, in base a quella non farò altro che settare al volo retroarch
-
- Cab-maniaco
- Messaggi: 1646
- Iscritto il: 02/08/2005, 8:40
- Medaglie: 1
- Città: Latina
- Grazie Inviati: 6 volte
- Grazie Ricevuti: 3 volte
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
pyJammASD v 0.0.3
Versione Windows: https://github.com/zanac/RetroASD/relea ... v_0.0.3.7z
su Git c'è il source per Linux.
Rimosso parametro -d e aggiunto -c
Ora tramite -c si può caricare un dizionario di regole...
Ho predisposto due dizionari di esempio: default.ini e libretro.ini
Il default.ini imposta le regole di base che RetroASD caricherà all'avvio... libretro.ini invece contiene una configurazione che ho pensato studiata per l'uso di retroarch.
In questa configurazione i tasti shiftati hanno il "repeat" settato, ovvero tenendo premuto il tasto start del player 1 i tasti avranno il repeat settato... questo è comodo per gli shot m up o tipo nei picchiaduro dove si deve premere velocemente un pulsante (tipo le 100 mani di Honda).
Versione Windows: https://github.com/zanac/RetroASD/relea ... v_0.0.3.7z
su Git c'è il source per Linux.
Rimosso parametro -d e aggiunto -c
Ora tramite -c si può caricare un dizionario di regole...
Ho predisposto due dizionari di esempio: default.ini e libretro.ini
Il default.ini imposta le regole di base che RetroASD caricherà all'avvio... libretro.ini invece contiene una configurazione che ho pensato studiata per l'uso di retroarch.
In questa configurazione i tasti shiftati hanno il "repeat" settato, ovvero tenendo premuto il tasto start del player 1 i tasti avranno il repeat settato... questo è comodo per gli shot m up o tipo nei picchiaduro dove si deve premere velocemente un pulsante (tipo le 100 mani di Honda).
- zanac
- Cab-dipendente
- Messaggi: 538
- Iscritto il: 10/09/2017, 16:13
- Città: PD
- Grazie Inviati: 16 volte
- Grazie Ricevuti: 22 volte
Re: RetroASD = JammASD + Mini PC!
Finalmente è tempo di romset!
RetroASD inizia a funzionare... Ed è tempo di romset! Lato mame sono coperto, lato Naomi e atomiswave sto cercando rom+chd testati con core flycast. Se qualcuno ha voglia di darmi una mano fatemi pure un fischio su fb o via PM.
Attenzione, solo a chi ha rom testate con questo core! Astenersi perdi tempo e/o rom testate con altri emulatori!
..
RetroASD inizia a funzionare... Ed è tempo di romset! Lato mame sono coperto, lato Naomi e atomiswave sto cercando rom+chd testati con core flycast. Se qualcuno ha voglia di darmi una mano fatemi pure un fischio su fb o via PM.
Attenzione, solo a chi ha rom testate con questo core! Astenersi perdi tempo e/o rom testate con altri emulatori!
..