07 dicembre 2020

Romset e corrispondenze con mame

Con l'arrivo del raspberry sono apparsi diversi romset rinominati ma che in realtà si poggiano su versioni specifiche dei romset mame che a loro volta utilizzano determinate versioni dei CHD, vediamo di fare chiarezza una volta per tutte.

mame4all usa il romset 0.37b5 --> Non utilizza files CHD 
lr-imame4all usa il romset 0.37b5 --> Non utilizza files CHD 
lr-mame2003 usa il romset 0.78 --> CHD v3 
advmame-.94 usa il romset 0.94 --> CHD v3 
advmame-1.4 usa il romset 0.106 --> CHD v3 
pifba usa il romset 0.114 (fba 0.2.96.71) --> CHD v3 
gngeopi usa il romset 0.138 --> CHD v4 
lr-mame2010 usa il romset 0.139 --> CHD v4 
lr-fba usa il romset 0.154 --> CHD v5 - Rinominato in lr-fbalpha2012 
lr-fbalpha2012 usa il romset 0.154 (fba 0.2.97.30) --> CHD v5 
lr-mame2014 usa il romset 0.159 --> CHD v5 
lr-fba-next usa il romset 0.173 (fba 0.2.97.38) --> CHD v5 - Sostituito da lr-fbalpha 
lr-fbalpha usa il romset 0.175 (fba 0.2.97.39) --> CHD v5 
final burn neo usa un romset basato invece sui dat rilasciati su github

 Cercherò di aggiornare le info per ogni nuova uscita.

29 ottobre 2020

Vmmaker aggiungere modeline da linea di comando

 è possibile aggiungere risoluzioni direttamente dalla commandline inclusa in vmmaker, il tutto rende le operazioni più rapide.

Ecco un esempio di come fare (cito direttamente Calamity per praticità):

If you're using VMMaker beta 9, there are commands now to make this easy. Make sure the correct output is selected in the settings tab. Then, in VMMakers command line, type:

>>modelist import

This will load the modelines from the driver. Make sure the correct mode list has been loaded, by typing.

>> modelist list

Now you can add a new mode to the RAM list, by typing, e.g.:

>> mode add 320x240@60.000000

Now, list all modes again to make sure the mode is added to the RAM list:

>> modelist list

Finally, if you're happy with the resulting mode list, install it to the driver:

>> modelist install

 

Notice you can't add single modes through the "install" method, you always add a whole modelist, wiping the previous installed one. So if you miss the "import" step at the beginning, you'll be deleting all modes and installing just the new one you created. So be careful with this.


Anyway, you can also "import" and "export" from file. This means you can backup (you should) your tweaked modelines. It's a plain text file, so you can also insert new modelines in there and load the file back to RAM by the "import" method.

ricordo anche che è possibile avere un elenco dei comandi implementati digitando help, di seguito una lista riferita a VMMaker beta 9

 >>help               

display <action> <param>

init     <device key>  : initializes display device.

restart  <device name> : restarts PCI display device, forcing driver to reinitialize.


modelist <action> <params>

build                : build RAM mode list calculating modelines from user files.

reset                : reset RAM mode list to start from scratch.

install              : install RAM mode list to the video driver.

uninstall            : uninstall mode list from the video driver.

import               : import mode list from video driver and load it to RAM.

import   <file_name> : import mode list from file_name and load it to RAM.

export   <file_name> : export RAM mode list to file_name

list                 : list all modes in mode list.

enum                 : list all modes in mode list with indexes.


mode    <action> <params...>

calc     <width_height_refresh> : calculate a modeline.

add      <width_height_refresh> : calculate and add a modeline to the mode list.

add      <modeline>             : add the specified modeline to the mode list.

del      <index>                : delete a modeline at index from the mode list.


edid    <action> <param>

create   <file_name> : creates an EDID block and saves it to <file_name>.

start    <output>    : starts EDID emulation on <output>.

stop     <output>    : stops EDID emulation on <output>.

read     <output>    : reads emulated EDID from <output>.

15 ottobre 2020

Attractmode configurazione

Come configurare attractmode

Abbiamo principalmente 2 file da configurare, quello globale attract.cfg situato nella directory insieme all'eseguibile del frontend e quello relativo agli emulatori, in questo caso mame.cfg che troviamo nella sottocartella emulators.

In questo esempio vedremo come configurare oltre al frontend anche il mame.

La forza di questo software sta nall'utilizzo di filtri e regole, il che consente di utilizzare un romset puro avendo però la possibilità di poter visualizzare solo i titoli che noi sceglieremo, con l'aiuto di un file aggiuntivo, il catver.ini scaricabile dal sito che lo ospita da anni progetto-snaps

Al primo avvio del frontend ci verrà chiesto di configurare almeno un emulatore, scegliamo mame e verrà creata una prima impostazione di default.

Da ora in poi lavoreremo sui file di configurazione, ometterò volontariamente la GUI in quanto non la trovo un'opzione rapida ed efficace come l'editor di testo.

Iniziamo dal file mame.cfg il suo contenuto standard è questo

# Generated by Attract-Mode v2.6.0

#

executable   mame

args         [name]

rompath      $HOME/mame/roms/

romext       .zip;.7z

system       Arcade

info_source  listxml

artwork      marquee   $HOME/mame/marquee

artwork      snap    $HOME/mame/video;$HOME/mame/snap


ed andrà completato con alcuni percorsi:

# Generated by Attract-Mode v2.6.0

#

executable   c:\mame\mame.exe (inseriremo quindi il percorso dell'eseguibile mame, compresa l'estensione)

args         [name] (questo non lo tocchiamo, è quello che il frontend metterà dopo l'eseguibile mame per avviare il gioco)

workdir        c:\mame (possiamo lasciare questo campo vuoto o inserire la directory nella quale si trova l'eseguibile dell'emulatore)

rompath      $HOME/mame/roms/ (quì dobbiamo indicare il percorso della cartella contenente le roms)

romext       .zip;.7z (lasciamolo così, indica quali estensioni considerare per la creazione della lista roms)

system       Arcade (indica il sistema per lo scraping delle snap etc. per mame va bene così)

info_source  listxml (indica da cosa reperire le informazioni, il file xml di mame che verrà creato dal frontend stesso)

import_extras        c:\mame\catver.ini (una linea aggiunta ex novo nella quale dobbiamo indicare il percorso di catver.ini per utilizzare le categorie nei filtri)

artwork      marquee   $HOME/mame/marquee (la cartella dove sono i marquee)

artwork      snap    $HOME/mame/video;$HOME/mame/snap (la cartella dove sono snap e video)

artwork      flyers   (possiamo aggiungere a mano altre cartelle per i flyer ad esempio o qualunque altro file utile per il tema che vorremo utilizzare, quindi sempre il percorso alla directory)

Dopo aver completato questa configurazione, apriamo il frontend, andiamo nelle impostazioni dell'emulatore e scegliamo di generare la romlist, verranno lette tutte le roms contenite nella cartella indicata e categorizzate in base al file catver.ini che gli abbiamo fatto caricare, se vogliamo possiamo anche fare lo scraping delle immagini, ci vorrà un pochetto.

La parte relativa all'emulatore è configurata, ora passiamo al pezzo forte, configuriamo il frontend con le liste ed i filtri.

Lavoreremo nel file attract.cfg, in particolare nella prima parte relativa al display del mame (il display non è nient'altro che il menu dell'emulatore mame creato prima)

la parte iniziale si presenta così:

# Generated by Attract-Mode v2.6.0

#

display arcade

layout               Attrac-Man

romlist              arcade

in_cycle             yes

in_menu              yes

filter               All

filter               Favourites

rule                 Favourite equals 1


sound

.

.

.

ed è proprio quì che andremo ad aggiungere un po' di roba

Si lavorerà per logica, quindi basta capire il meccanismo che tutto risulterà semplicissimo.

Avendo caricato e creato la lista con il catver.ini abbiamo raggruppato per categoria tutte le roms, in più grazie all'xml del mame abbiamo moltissimi parametri con i  quali poter creare filtri sempre per raggruppare le roms.

aggiungiamo la voce global filter ed applichiamo delle regole base, avremo quanto segue

# Generated by Attract-Mode v2.6.1

#

display mame

layout               Attrac-Man

romlist              mame

in_cycle             yes

in_menu              yes

global_filter        

rule                 FileIsAvailable equals 1 (vedremo il titolo del gioco solo se la rom è nella cartella, se il file è disponibile quindi)

rule                 CloneOf not_equals .* (i file visualizzati non devono essere contrassegnati come cloni)

rule                 Status equals good|imperfect (vedremo solo i file con statu del driver good o imperfect, che saranno quindi giocabili)

rule                 Status not_equals preliminary (escludiamo tutte le roms il cui driver è in stato preliminare, che quindi potrebbe non funzionare)

rule                 DisplayType equals raster (visualizziamo solo le roms con questo tipo di display)

filter               All

filter               Favourites

.

.

.

.

il global filter viene eseguito per primo al caricamento del display (la lista insomma), in questo caso abbiamo appilcato le regole che vedete e gli abbiamo dato già una bella scremata.

Possiamo aggiungere un sacco di "regole" per affinare la nostra ricerca e decidere se includerle in una lista per poi accedere dal tasto filtri (che dovremo configurare) o se creare altri display che chiameremo ad esempio Platform orizzontali, nei quali faremo mostrare solo le roms orizzontali con una regola sotto il global filter 

rule                 Rotation equals 0|180

ed una sotto un altro filtro che chiameremo "Platform" ad esempio

filter               Platform

rule                 Category contains Platform


possiamo anche raggruppare per Manufacturer ad esempio, scrivendo

filter               "SNK Collection"

rule                 Manufacturer contains SNK


o ancora crearci una collection degli Street Figlter ordinati per anno

filter               "Street Fighter Collection"

sort_by              Year

rule                 Title contains Street Fighter

il sort by come vedrete indica come ordinare i titoli trovati.


Aggiungo una configurazione tipo per un cab verticale, con categorie in inglese (catver.ini in inglese appunto)

global_filter       

exception            Name equals batsugunsp|cyvernj|driftout|ddpdojblk|dkongjrj|dogosokb|downtownj|ghoxj|gwarb|ikarijpb|omegafs

rule                 Rotation equals 90|270

rule                 DisplayType equals raster

rule                 DisplayCount equals 1

rule                 Control contains joystick|dial

rule                 Control not_contains gambling|positional

rule                 Category not_contains Mature|Casino|MultiGame|Redemption

rule                 Status not_equals preliminary

rule                 Title not_contains bootleg|internal build|\(prototype|prototype\)|China|Raiden II New

rule                 Manufacturer not_contains bootleg|Promat

rule                 CloneOf not_contains .

rule                 AltRomname not_equals decocass|cedmag

rule                 Year not_contains ?

rule                 Name not_equals batsugun|cyvern|ddp3|ddpdojt|dkongjr|ghox|ikari|gwar|mjleague|metlhawk|alleymas|omegaf

filter               "All Games"

filter               "Most Played"

sort_by              PlayedTime

reverse_order        true

list_limit           25

filter               "Breakout Games"

rule                 Category contains Breakout

filter               "Driving Games"

rule                 Category equals Driving.+

filter               "Fighting Games"

rule                 Category equals Fight.+

filter               "Maze Games"

rule                 Category equals Maze.+

filter               "Platform Games"

rule                 Category equals Platform.+

filter               "Puzzle Games"

rule                 Category equals Puzzle.+

filter               "Shooting Games"

rule                 Category equals Shooter.+

filter               "Sports Games"

rule                 Category equals Sport.+

filter               "© Alpha Denshi"

rule                 Manufacturer equals (Alpha.Densh.*)|(.*/.Alpha.Densh.*)

filter               "© Bally/Midway"

rule                 Manufacturer equals (Ball.*)|(Midwa.*)|(.*/.Ball.*)|(.*/.Midwa.*)

filter               "© Capcom"

rule                 Manufacturer equals (Capco.*)|(.*/.Capco.*)

filter               "© Cave"

rule                 Manufacturer equals (Cav.*)|(.*/.Cav.*)

filter               "© Data East"

rule                 Manufacturer equals (Data.Eas.*)|(.*/.Data.Eas.*)

filter               "© Irem"

rule                 Manufacturer equals (Ire.*)|(.*/.Ire.*)

filter               "© Jaleco"

rule                 Manufacturer equals (Jalec.*)|(.*/.Jalec.*)

filter               "© Kaneko"

rule                 Manufacturer equals (Kanek.*)|(.*/.Kanek.*)

filter               "© Konami"

rule                 Manufacturer equals (Konam.*)|(.*/.Konam.*)

filter               "© Namco"

rule                 Manufacturer equals (Namc.*)|(.*/.Namc.*)

filter               "© Nintendo"

rule                 Manufacturer equals (Nintend.*)|(.*/.Nintend.*)

filter               "© Psikyo"

rule                 Manufacturer equals (Psiky.*)|(.*/.Psiky.*)

filter               "© Raizing / Eighting"

rule                 Manufacturer equals (Raizin.*)|(Eightin.*)|(.*/.Raizin.*)|(.*/.Eightin.*)

filter               "© Seibu Kaihatsu"

rule                 Manufacturer equals (Seibu.Kaihats.*)|(.*/.Seibu.Kaihats.*)

filter               "© Sega"

rule                 Manufacturer equals (Seg.*)|(.*/.Seg.*)

filter               "© SNK"

rule                 Manufacturer equals (SN.*)|(.*/.SN.*)

filter               "© Taito"

rule                 Manufacturer equals (Tait.*)|(.*/.Tait.*)

filter               "© Technos"

rule                 Manufacturer equals (Techno.*)|(.*/.Techno.*)

filter               "© Tecmo"

rule                 Manufacturer equals (Tecm.*)|(.*/.Tecm.*)

filter               "© Toaplan"

rule                 Manufacturer equals (Toapla.*)|(.*/.Toapla.*)

filter               "© Universal"

rule                 Manufacturer equals (Universa.*)|(.*/.Universa.*)

filter               "© Video System Co."

rule                 Manufacturer equals (Visc.*)|(Video.System.Co.*)|(.*/.Visc.*)|(.*/.Video.System.C.*)

filter               "© Zaccaria"

rule                 Manufacturer equals (Zaccari.*)|(.*/.Zaccari.*)

filter               "Released 1970 - 1979"

rule                 Year equals 197.

filter               "Released 1980"

rule                 Year equals 1980

filter               "Released 1981"

rule                 Year equals 1981

filter               "Released 1982"

rule                 Year equals 1982

filter               "Released 1983"

rule                 Year equals 1983

filter               "Released 1984 - 1985"

rule                 Year equals 1984|1985

filter               "Released 1986 - 1987"

rule                 Year equals 1986|1987

filter               "Released 1988 - 1989"

rule                 Year equals 1988|1989

filter               "Released 1990 - 1994"

rule                 Year equals 1990|1991|1992|1993|1994

filter               "Released 1995 - 1999"

rule                 Year equals 1995|1996|1997|1998|1999

filter               "Released 2000 - 2020"

rule                 Year equals 20..

Le possibilità sono veramente tante, non resta che provare.


Buona configurazione.

05 ottobre 2020

mame 0.225

Mame64 + groovy 017s + nonag + d3d9ex - windows

Mame64 + groovy 017s + nonag - linux

HBMame64 + groovy 017s + nonag - linux

HBMame64 + groovy 017s + nonag + d3d9ex - windows

To download all the versions compiled by me you can directly access my drive from here and select the corresponding folder or go to the sixthfloor BBS

Attention windows users, i always recommend to download the standard version of mame and replace only the groovy executable after unzipping all the files, and after creating the mame.ini, so you will not have any errors due to old versions of the configuration file.

21 settembre 2020

nonag on mame0.224 aggiornato

 ATTENZIONE ho aggiornato la build della versione di mame 0.224, nella precedente continuavano a comparire i messaggi di avvertimento, ho dovuto modificare la patch, ora è tutto ok, scusate il disguido.

potete trovarla ai soliti posto e sostituire la precedente versione.

b4nd1t0

15 settembre 2020

mame 0.224

Mame64 + groovy 017r + nonag + d3d9ex - windows

Wolfmame64 + groovy 017r + nonag + d3d9ex - windows

To download all my builds you can directly access my drive from here and select the corresponding folder or go to sixthfloor.ddns.net (via telnet or ftp)

Attention windows users, i always recommend to download the standard version of mame and replace only the groovy executable after unzipping all the files, and after creating the mame.ini, so you will not have any errors due to old versions of the configuration file.

04 settembre 2020

Mame 0.224 Update Pack Completo

Al sesto piano e sul gruppo telegram, insieme a tutti gli altri.

Buon download.


11 agosto 2020

la BBS che non mancava ma che è tornata

 sixthfloor.ddns.net


si torna al sesto piano, dopo tanti anni, molto lavoro è ancora da fare ma già c'è tanta roba, fate i bravi

Usate syncTERM, putty, WinSCP o un qualunque altro client ftp


b4nd1t0


30 giugno 2020

mame 0.222

Mame64 + groovy 017q + nonag + d3d9ex - windows
Mame64 + groovy 017q + nonag - windows (no 3d39ex patch)

To download all the versions compiled by me you can directly access my drive from here and select the corresponding folder

Attention windows users, i always recommend to download the standard version of mame and replace only the groovy executable after unzipping all the files, and after creating the mame.ini, so you will not have any errors due to old versions of the configuration file.

18 maggio 2020

mame 0.221

Mame64 + groovy 017p + nonag + d3d9ex + nopotfix - windows

To download all the versions compiled by me you can directly access my drive from here and select the corresponding folder

Attention windows users, i always recommend to download the standard version of mame and replace only the groovy executable after unzipping all the files, and after creating the mame.ini, so you will not have any errors due to old versions of the configuration file.

12 aprile 2020

mame 0.220

Mame64 + groovy 017p + nonag + d3d9ex - windows

To download all the versions compiled by me you can directly access my drive from here and select the corresponding folder

Attention windows users, i always recommend to download the standard version of mame and replace only the groovy executable after unzipping all the files, and after creating the mame.ini, so you will not have any errors due to old versions of the configuration file.

07 aprile 2020

Raspberry + VGA666 vs b4nd1t0

Dopo l'acquisto del Raspberry ho deciso di iniziare a fare un po' di prove, perché si, è fiacco per gli ultimi mame, ma mi rendo conto che anche se ci faccio girare una 106 i giochi sono comunque tanti (c'è ben più di una sala giochi) e qualche soddisfazione te la puoi togliere, poi mi intrigano le sfide e riuscire a far funzionare qualcosa ha sempre il suo fascino.
Sarebbe interessante viste le ridotte dimensioni infilare un rasp direttamente nella scocca di un tv (l'aveva già ipotizzato qualcuno ma non ricordo chi) o fare un bartop con crt di dimensioni contenute, insomma le possibilità sono molte.
Ho deciso quindi di prendere un adattatore VGA666 per far uscire il rasp su CRT, ma non potevo non complicarmi la vita, quindi l'ho preso in kit, premettendo che non ne assemblo uno dai tempi di Nuova Elettronica, posso solo sperare che vada tutto bene, anche perché il saldatore è sempre lo stesso.

Parto con l'assemblaggio del kit che si presenta piuttosto semplice (il kit), c'è la basetta, il connettore VGA e le resistenze raggruppate per valore



primi approcci con le saldature che all'una di notte non è che sia il massimo, sono andato un po' a fortuna

pronti

GPIO profilo 1
GPIO profilo 2
Resistenze messe
montato connettore VGA
Finito di assemblare, arriva il momento di configurare il raspberry dal lato software, ho raccolto informazioni un po' in giro, in rete, la maggior parte dal sito Advancemame che attualmente è l'unico emulatore per farci uscire su CRT.

Partirò da zero utilizzando la versione Lite di Raspbian, così non ci saranno programmi inutili che appesantiscono il sistema. (anche perché essendo un ex sessantaquattrista la digitazione di comandi o listati mi è rimasta nel sangue quindi non posso fare altro, mi spiace)

Per prima cosa, dopo aver scaricato l'immagine di Raspbian Lite dal sito ufficiale, scrivo il file .img sulla sd con Win32 Disk Imager (sono su Windows), operazione abbastanza rapida viste le dimensioni.
Una volta avviato il sistema inizio la configurazione preliminare, tramite sudo raspi-config cambio la lingua, la time zone, la tastiera (così trovo i tasti al posto giusto) ed abilito il login automatico.
Riavvio il raspberry e verifico che la connessione di rete sia attiva, pingando il gateway, per praticità utilizzerò la connessione via cavo, se sono fortunato avrò tutto già configurato in automatico ma ovviamente non lo sono e devo farlo a mano per via del dhcp sul router che fa i capricci
configuro la scheda di rete digitando

sudo nano /etc/network/interfaces

si apre l'editor di testo "nano" ed aggiungo i seguenti dati 

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1


salvo con Ctrl+x poi s e poi invio

Riavvio il servizio digitando 

sudo /etc/init.d/networking restart


per poi aggiungere i dns nel file resolv.conf sfruttando di nuovo nano 

sudo nano /etc/resolv.conf

cancello quelli che ci sono ed aggiungo 

nameserver 8.8.8.8
nameserver 8.8.4.4


salvo Ctrl+x->s->invio

Sono in rete, provo a pingare di nuovo ed ho successo.

Aggiorno tutto digitando 

sudo apt-get update
poi

sudo apt-get upgrade


ed infine 

sudo rpi-update


non dimenticando il sudo reboot suggerito dal sistema

Sono pronto per installare le librerie necessarie a compilare Advancemame e compagnia bella 

sudo apt-get install git autoconf automake libasound2-dev libfreetype6-dev zlib1g-dev libexpat1-dev libslang2-dev libncurses5-dev
dopo un po' di controllo mi chiede conferma, s e via

Mi procuro i sorgenti da compilare 

git clone https://github.com/amadvance/advancemame.git

mi sposto nella cartella appena creata

cd advancemame

preparo i file per la compilazione 

sh autogen.sh

seguito da 

./configure

ora compilo (ci ha messo 45 minuti) 

make -j3

una volta completato installo il tutto 

sudo make install
ora posso provare ad avviare una rom tra quelle già disponibili (gratuite) nella cartella rom 

advmame gridlee
e si avvia correttamente

Ora che mi sono sincerato che tutto funziona, passo alla configurazione di advmame 

cd
cd .advance
sudo nano advmame.rc


aggiungo una linea contenente le specifiche del monitor/TV a cui voglio connettermi 

per monitor Arcade standard 15Khz
device_video_clock 4 - 50 / 15.75 / 60

per TV PAL (europee)
device_video_clock 4 - 50 / 15.62 / 50

per TV NTSC (USA)
device_video_clock 4 - 50 / 15.73 / 60

TV Europee che supportano anche i 60Hz
device_video_clock 4 - 50 / 15.62 / 50 ; 4 - 50 / 15.73 / 60 (sono i due valori semplicemente separati da ; e spazi)

modifico la linea contenente display_adjust none in 

display_adjust generate_y

ed aggiungo anche la modifica di 

misc_quiet yes


che attiva il nonag in pratica

A questo punto posso editare (facendo una copia di backup per sicurezza) il file config.txt nella partizione boot della sd, accessibile anche da windows questa volta, ed aggiungere le seguenti linee 

# settaggi specifici Gert's VGA 666 e Raspberry Pi 3
dpi_group=2
dpi_mode=87
hdmi_timings 320 1 14 46 28 256 1 17 32 9 0 0 0 50 0 6400000 1
device_tree=bcm2710-rpi-3-b.dtb
dtparam=i2c_arm=off
dtparam=spi=off
dtparam=uart0=off
dtparam=uart1=off
dtoverlay=pi3-disable-bt-overlay
dtoverlay=vga666
enable_dpi_lcd=1
display_default_lcd=1
force_pwm_open=0
dtparam=audio=on
gpu_mem=128
ora

sudo poweroff

reinserisco la sd nel rasp, connetto la Gert's VGA 666 e la collego alla scart, 


accendendo si vedrà la sequenza di avvio di raspbian sul televisore/monitor

IMPORTANTE, il cavo VGA/scart deve essere alimentato o non si vedrà l'immagine sul tv (almeno sul mio)

ecco un paio di video del funzionamento della schedina, spero si capisca



una volta avviato il sistema operativo sarà necessario configurare le risoluzioni che advmame dovrà utilizzare, digito

advv


e si presenterà una lista di risoluzioni in rosso, scorrendo alcune sono in blu, basta evidenziarle, premere invio, aggiustarle (centratura etc) e selezionarle con spazio. Una volta provate e selezionate tutte quelle visibili salviamo con F2. Si è generata una lista di risoluzioni tra le quali advmame sceglierà nel momento in cui dovrà avviare un gioco per farlo apparire al meglio.
Osservando il file advmame.rc, noto che dopo questa operazione di scelta delle risoluzioni, sono state aggiunte queste linee di seguito, che sembrano proprio combaciare con quelle da me selezionate 


device_video_modeline raspberry_DPI_pal_1008x288 19.2 1008 1024 1112 1232 288 291 294 312 -hsync -vsync
device_video_modeline standard_768x288 16.3488 768 816 896 1040 288 290 294 314 -hsync -vsync
device_video_modeline pal_768x288 14.75 768 776 856 944 288 291 294 312 -hsync -vsync
device_video_modeline raspberry_DPI_pal_496x288 9.6 496 512 552 616 288 291 294 312 -hsync -vsync
device_video_modeline standard_384x288 8.1744 384 408 448 520 288 291 295 314 -hsync -vsync
device_video_modeline pal_384x288 7.375 384 392 432 472 288 291 294 312 -hsync -vsync
device_video_modeline raspberry_DPI_pal_336x288 6.4 336 344 368 408 288 291 294 312 -hsync -vsync
device_video_modeline raspberry_DPI_pal_240x288 4.8 240 256 280 304 288 291 294 312 -hsync -vsync
device_video_modeline pal_640x240 12.25 640 656 720 784 240 267 270 312 -hsync -vsync
device_video_modeline pal_512x240 9.75 512 528 576 624 240 267 270 312 -hsync -vsync
device_video_modeline pal_320x240 6.125 320 328 360 392 240 267 270 312 -hsync -vsync
device_video_modeline pal_256x240 4.875 256 264 288 312 240 267 270 312 -hsync -vsync
device_video_modeline pal_640x224 12.25 640 656 720 784 224 259 262 312 -hsync -vsync
device_video_modeline pal_512x224 9.75 512 528 576 624 224 259 262 312 -hsync -vsync
device_video_modeline pal_320x224 6.125 320 328 360 392 224 259 262 312 -hsync -vsync
device_video_modeline pal_256x224 4.875 256 264 288 312 224 259 262 312 -hsync -vsync
Concludendo posso dire che la scheda vale sicuramente l'acquisto, vista la spesa irrisoria (nemmeno 10€).
Accendete il saldatore e preparate il rasp!!!

Piccolo aggiornamento

Dopo l'acquisto del Raspberry Pi 4, posso affermare che la vga666 funziona egregiamente anche con quest'ultimo, ho dovuto modificare solo la risoluzione nel config.txt, appena ho un attimo incollo quì le linee di configurazione.

05 aprile 2020

Te lo do io l' ATARI VCS

Considerato che un 2600 non cel'ho mai avuto, mi sono voluto togliere lo sfizio utilizzando una scocca e mettendoci dentro il solito rasp che per quanto mi riguarda morirà li.
La cosa è abbastanza semplice e la macchina donatrice ha abbastanza spazio all'interno, ho preferito la versione americana per il maggior numero di interruttori presenti sul pannello, fanno sempre scena  .
Allego alcune foto del lavoro veramente rapido che mi piace molto, devo reperire una cartuccia da fissare e nella quale vorrei mettere almeno un led o qualcosa di simile, giusto per capire quando la console è accesa.
Per ora comunque è tutto già pronto e funzionante.
Ho utilizzato l'interruttore originale per l'accensione e gli spazi delle porte joy originali per le prese usb ed ho un po' allargato l'uscita del cavo RF per infilarci il connettore della presa di corrente di un alimentatore di una vecchia stampante, dissaldato e un po' "lavorato" per il caso.
Infine ho ovviamente aggiunto l'uscita hdmi, è rimasto tutto ben mascherato, ovviamente Bluetooth e WiFi funzionano anche da li dentro.
Ecco le foto.
Console acquistata rotta a 15€ mi interessava particolarmente il "legnetto", che fosse in buone condizioni 
eccola!
ed infatti anche la scritta atari è perfetta 

il legnetto
anche le scritte del pannello sono messe bene, giusto un po' scolorito l'arancio del contorno ma si riprende presto con un pennellino

pannello
una volta aperta ecco cosa ho trovato, niente di che (e che t'aspettavi?)

interno
sotto quel guscio c'è il cuore! 


ecco la main board che dovrebbe essere rotta, la tengo da parte, non si sa mai... nel frattempo una bella doccia con sgrassatore alla scocca e poi posso lavorarci



queste le prolunghe che utilizzerò per i pad usb 


basta fare i fori di fissaggio, il resto già c'è 


la scheda con gli interruttori, eterni dato il tipo di costruzione, è impossibile che non funzionino, anche se una pulita con spray secco non farà male, ho comunque tolto tutti i componenti non necessari 


calcolati gli ingombri ho fatto a metà la copertura della vecchia scheda, sia per mantenere un po' di peso che per lasciare il supporto alla cartuccia che verrà fissata in seguito 


non dimentichiamo il foro per la presa hdmi, fatto con una limetta preceduta da 4 fori del trapano


ultima prova degli ingombri delle usb, il connettore nella parte interna toccava ed ho dovuto ricavare 2 piccoli incassi per far posto alle prese, fortuna che è alluminio e quindi lavorabile con poco sforzo 


ecco come staranno i cavi all'interno, di spazio ce ne sta in abbondanza

 
ora occupiamoci dell'alimentatore del rasp, è stata la parte più rognosa perché immaginavo di non poter andare troppo all'interno con lame o roba varia per aprire il guscio, ho dovuto lavorare col seghetto lentamente su 3 lati ed ho quasi fatto fuori un condensatore ma credo di aver solo scalfito la plastica che lo ricopre (se sentite il botto avevo fatto peggio), comunque è pieno di colla, un incubo 



alla fine è sceso qualcuno a darmi una mano e cel'ho fatta 


il connettore per l'alimentazione l'ho ricavato dall'uscita del cavo RF opportunamente allargata, non l'ho messa verso dietro per non snaturare troppo l'estetica, fondamentale un adattatore a 90° per collegare il cavo però 


ecco fuori come si vede ( non si vede in pratica)


dopo aver ricollegato l'interruttore di alimentazione ho rimontato il tutto, ho deciso di piazzare il rasp nel suo case e fissare quello (con biadesivo) così se ho necessità posso rimuoverlo facilmente senza stare a svitare o dover intervenire con attrezzi, basta sbloccare il suo case, tanto è tutto aperto e non influirà nel riscaldamento 



Tirando le somme ho speso
- 15€ per la console rotta
- 2.08€ per 2 prolunghe usb
- 1.72€ per la prolunga HDMI
- ~50€ per il raspberry con alimentatore e case (che già avevo)
- la sd boh non ricordo ma ce ne sta una da 16Gb che ormai costeranno una decina di€
- 4.28€ il connettore di alimentazione a 90°
siamo a poco più di 80€

ho montato l'ultimo recalbox e quasi tutte le vecchie console, nessuna macchina che necessiti di tastiera, la psx non c'è, non c'entrava proprio niente col progetto.

Piccolo aggiornamento, dopo aver saldato il connettore di alimentazione e completato la cartuccia, adesso è finita! (STRANO!)



La parte più rognosa è stata sicuramente l'apertura dell'alimentazione del rasp, c'era più colla che circuiti.

Ancora un aggiornamento, ho cambiato la disposizione interna per via dell'aggiunta della vga666 e relativo cavo, con l' hdmi non aveva davvero senso la console e tantomeno giocare determinati titoli.
ecco il lavoro fatto, niente di che


ho dovuto anche limare leggermente il supporto scheda per far entrare il connettore del cavo video ed aggiunto un filtro per l'audio (che ho tirato fuori dall'uscita cuffie) perché se veniva mostrato molto bianco sullo schermo si sentiva un ronzio molto fastidioso, ora non più


ora ci siamo davvero, non c'è retro console che regga, posso giocare tutto perfettamente e su un tubo, senza aver speso un patrimonio.

Aggiornamento 07/11/2021

Non un'aggiunta fondamentale ma utile, un semplice led per capire se la console è accesa o spenta (visti i danni che potremmo procurare in caso di spegnimento non a regola)

avviamo il pi ed accediamo via SSH poi abilitiamo la porta seriale modificando il config.txt, allora digitiamo:

sudo nano /boot/config.txt
a questo punto dobbiamo semplicemente aggiungere

enable_uart=1

salviamo e riavviamo.

ora non ci resta altro che collegare un led da 5v ai pin 6 ed 8 del GPIO 




e fare un forellino sul case ospitante, io ho optato per un posticino accanto alla scritta power, opportunamente fissato con della cola a caldo.



Questo è il risultato finale, non accecante come vogliono le ultime tendenze in fatto di led... 😅






Perfetto!


Bare Metal Commodore 64



Il mio primo computer è stato un Commodore64, me lo comprarono a Natale, non ricordo di che anno, so solo che da allora sono impazzito.
Quel biscottone fu il mio compagno per svariati anni, non ebbi mai il lettore floppy, costava troppo (in effetti, quasi come un altro 64!!!) mi adattai quindi alle attese del nastro ed al TV in bianco e nero, al quale seguì un monitor a fosfori verdi, uno ambra e finalmente uno a colori, un Hantarex usato, nel frattempo era uscita Amiga e col 64 ci giocavo molto meno, insomma alla fine ho fatto la cazzata, l'ho venduto per circa duecentomila lirette e ci comprai le mie prime Adidas Torsion, chi se le ricorda? Vabbè!!!

Negli anni ho sempre pensato di riprenderne uno ma non ho mai fatto il passo, no so perché, forse per via degli optional ormai obbligatori (non ho al momento, il tempo di aspettare 5 minuti che si carichi un gioco) dal costo un po' altino, in fin dei conti emulandolo potevo giocare lo stesso, non spendendo una lira, così ho sempre rimandato, finché (recentemente) sono venuto a conoscenza della possibilità di emulare nel miglior (secondo me) modo possibile, ovvero potendo utilizzare la scocca e la tastiera vera dell'amato biscottone, in più c'è un po' da smanettare, quindi mi ci sono tuffato .

Ho rimediato un Commodore64 primo modello (il successivo, quello bianco, per me non esiste), purtroppo aveva un tasto rotto ma ho potuto rimediare sostituendolo facilmente 


ecco il biscottone col tasto rotto



il tasto nuovo trovato al mercato nero dai miei spacciatori

vanno tolte tutte le viti, si
e dissaldato il Caps Lock
ferito individuato!
perno sostituito!
e la tastiera di 30 anni fa è sistemata
e dopo una pulitina sono pronto per iniziare.

Ecco cosa ho fatto.

Utilizzando un Raspberry (2 o 3) è possibile caricare una immagine tipo firmware, direttamente in memoria, senza sistemi operativi, come un BIOS, il risultato è che tutto si avvia in circa 4 secondi ed è possibile spegnerlo proprio come si faceva allora senza pericolo di perdere dati, è tutto solo in memoria.

Utilizzando arduino e flashando un .hex, facendo qualche saldatura è possibile interfacciare la vera tastiera al raspino ed utilizzarla, ci sono scorciatoie tramite combinazioni di tasti ( C=+F7 ) che consentono di accedere al menu del VICE (si alla fine il motore di tutto è lui) per poter cambiare programma e variare tutte le impostazioni del caso.

Premetto che questa cosa ha senso se il fine ultimo è quello di collegare il computer tramite la sua uscita naturale, il cavo composito su CRT, il top sarebbe un monitor Commodore, ma anche un TV può andar bene, se volete collegare tutto ad un LCD 16:9 da 50 pollici, passate oltre e proseguite col vostro normale PC.

Cercherò di spiegare i passaggi che ho effettuato per arrivare al risultato finale, interfacciare la tastiera originale, configurare ed abilitare l'uscita video su composito, abilitare l'utilizzo dei joy originali su DB9 e riscoprire la poesia di premere SHIFT+RUN STOP sulla tastiera.

Partiamo dalla tastiera.


C'è bisogno di un arduino ProMicro, dico direttamente questo senza fare troppi giri, tanto alla fine si comprerà quello che costa meno e funziona (nemmeno 3€ dal Sol Levante), dobbiamo flasharlo per farlo funzionare come un encoder, farà lui da tramite fra la tastiera originale del 64 ed arduino.
Ci sono diversi modi per flashare il ProMicro, io ho utilizzato il software avrdude con una interfaccia ->QUI<-, ammetto che la procedura non è molto user friendly, garantisco comunque che dopo un po' di madonne tutto funziona, avrò provato a flashare (prima di capire cosa sbagliavo) una cinquantina di volte, visto che come al solito le info ci sono ma sono sparse per tutto il pianeta cerco di riassumere, di seguito, la procedura funzionante.

Ho utilizzato Win764bit
- Collegare la scheda Arduino al PC
- Aprire il pannello di controllo -> System -> Device Manager -> Ports(COM e LPT)
- compare il ProMicro con la sua porta assegnata
- cortocircuitando il pin GND+RST si resetta la board e si mette in modalità programmazione, di fatti si vedrà che la porta COM cambia, per pochi secondi, per poi tornare a quella assegnata precedentemente
- organizziamo avrdudess (caricando i vari files come descritto nel link sotto) ed impostiamo la porta di programmazione su quella che compare per pochi secondi, attenzione che sarà disponibile e selezionabile solo dopo aver effettuato il reset della board, quindi siate rapidi
- una volta impostato tutto, resettiamo e facciamo click su programma finché la cosa non va a buon fine

vi lascio comunque il link al progetto su github ->Eccolo<- nel quale è descritto più o meno tutto, se avete dubbi chiedete pure.

Dopo un po' di saldature relativamente semplici il risultato è questo

prova pettine
prova 2
the amazing spider arduino!
gli diamo un aspetto decente
saldiamo i pin del pettine
et voilà!
Non dovremo far altro che inserire il "pettine" da noi creato nel connettore della tastiera del biscottone ed il ProMicro al Raspberry, il gioco è fatto!

Segnalo che è possibile utilizzare il pin vcc di arduino per allimentare il led del Commodore 64, non essendo prioritario vedrò di farlo e descrivere la procedura in seguito.

Non ci rimane adesso che preparare la SD del raspberry con il BMC64, attualmente l'ultima versione è la 1.8 ed è molto completa, anche se è sempre possibile migliorare. Il link per scaricarla ed avere una piccola descrizione è il seguente

Consiglio di seguire la prima procedura per il flash, ovvero, formattare in FAT32 la sd e decomprimere semplicemente i file dentro, avremo già tutto pronto. Per i futuri aggiornamenti ci basterà sovrascrivere 2 singoli file, il Kernal8-32.img e il Kernal7.img

Così abbiamo un sistema standard, senza espansioni o custom ROM, il mio consiglio è di sostituire la KERNAL rom e quella del drive 1541II con quelle JiffyDOS, in tal modo ci si apre un mondo, tra cui il caricamento veloce dei file. Per reperire queste ROM usate google, si possono acquistare.

Di seguito qualche video, il primo con le roms standard ed i loro tempi di caricamento, gli altri con le roms JiffyDOS, al momento sono su un LCD ed ho collegato alla stessa ciabatta sia il monitor che l'alimentatore del rasp, quasi quasi ci mette di più a scomparire il logo del monitor che ad avviarsi il 64, eccellente direi.




Completato il cablaggio delle porte con i DB9 e collegato tutto al GPIO, sistemato il led della tastiera e testato un joy che avevo al volo, non è uno Commodore ma è l' Arcade Power Stick del Megadrive, tanto il connettore è lo stesso e la sua funzione l'ha fatta.
Qualche foto dei lavori ed un video di test.

Per prima cosa ho spostato il cavetto nel connettore del led per farlo combaciare a quello su arduino

connettore led
scambio pin
olé!
aggiungiamo il connettore su arduino
e siamo pronti
poi ho collegato una resistenza da 220 ohm sul vcc per non far cuocere il led

resistenza da 220ohm, un po' una zozzata ma vabbé
dopo di che, ho seguito la guida ->quì<- della quale riporto la parte interessata, per collegare le DB9 alla GPIO, per il collegamento ho utilizzato dei cavetti recuperati da vecchi case per PC di quelli per collegare la mainboard ai vari tasti e led.

GPIO Joystick Banks (No PCB required)
DO NOT ATTEMPT THIS IF YOU ARE NOT COMFORTABLE WITH WIRING THINGS UP TO YOUR PI I TAKE NO RESPONSIBILITY IF YOU WIRE THINGS INCORRECTLY OR DAMAGE YOUR DEVICE

It's possible to wire real Commodore or Atari joysticks directly to the Pi without a PCB. Each joystick gets its own set of GPIO pins, making it easy to hook up using nothing but jumpers and DB9 connectors. (See the website for adapter instructions). The switches inside the joystick will ground the pins like they would on a real C64. Wiring is as follows:

GPIO BANK 1 GPIO BANK 2 C64 JOY PIN
GPIO17 GPIO5 1 (Up)
GPIO18 GPIO6 2 (Down)
GPIO27 GPIO12 3 (Left)
GPIO22 GPIO13 4 (Right)
GPIO23 GPIO19 6 (Fire)
GND GND 8 (GND)
In the menu, select either GPIO1 or GPIO2 and assign it to one of the emulated ports.
i DB9 collegati
una volta collegato tutto ed infilato nella scocca ecco quello che è successo, a voi il video.

Un successone, non mi rimane che sistemare per bene i componenti nella scocca e fissarli, configurare l'uscita analogica ed il gioco è fatto.

Ho notato, dopo alcuni test un po' di ritardo nell'audio.

Aggiornamento, dopo l'update alla 1.9 del BMC64 hofatto il collegamento al CRT ed ho eliminato delay sul joy (che a quanto pare era dovuto alla connessione video), fatto la centratura dello schermo e drei che siamo a buon punto.

Allego di seguito i config.txt ed il ed il cmdline.txt per riferimento se qualcuno volesse cimentarsi.

config.txt

framebuffer_aspect=0x00050006
disable_overscan=1
sdtv_mode=18
hdmi_group=1
hdmi_mode=19
gpu_mem=64
disable_splash=1
boot_delay=0

cmdline.txt


hide_console=1 fast=true vicii_canvas_width=392 vicii_canvas_height=288 vic_canvas_width=392 vic_canvas_height=288 machine_timing=pal-composite

ricordo che questi settaggi sono per conettere il raspberry tramite il cavo composito 

Ho fatto qualche test per valutare eventuale ritardo nei controlli e c'è un piccolo delay nell'audio, devo sicuramente regolare delle impostazioni per sistemare la cosa, di seguito i video dei test.



dopo di che ho collegato tutto al CRT e sistemato il delay audio, i settaggi che trovate in alto sono già corretti


e niente sembra proprio il mio vecchio biscottone!

Non mi rimane che montare la stampante 3D e stampare i pezzi per fissare al meglio i componenti "volanti".


Ringrazio Roberto Lari per avermi accettato nel gruppo BMC64 & C. Italia (Bare Metal 8bit Commodore Raspberry), dal quale ho avuto tutte le info per realizzare questo piccolo sogno, oltre ovviamente tutti quelli che hanno dato il loro supporto per interfacciare i vari componenti.