Mame, derivati ed altri emulatori già compilati per Windows, Linux e Raspberry. Progetti e guide, gaming related e non.
07 dicembre 2020
Romset e corrispondenze con mame
04 novembre 2020
mame e hbmame 0.225 e 0.226 update pack
Al sesto piano e sul canale telegram, insieme a tutti gli altri.
Buon download.
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
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
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
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
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
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
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.
pronti |
GPIO profilo 1
|
GPIO profilo 2 |
Resistenze messe |
montato connettore VGA |
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
sudo nano /etc/network/interfaces
# 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
sudo /etc/init.d/networking restart
sudo nano /etc/resolv.conf
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.
sudo apt-get updatepoi
sudo apt-get upgrade
sudo rpi-update
non dimenticando il sudo reboot suggerito dal sistema
sudo apt-get install git autoconf automake libasound2-dev libfreetype6-dev zlib1g-dev libexpat1-dev libslang2-dev libncurses5-devdopo un po' di controllo mi chiede conferma, s e via
git clone https://github.com/amadvance/advancemame.git
cd advancemame
sh autogen.sh
./configure
make -j3
sudo make install
advmame gridleee si avvia correttamente
cd
cd .advance
sudo nano advmame.rc
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)
display_adjust generate_y
misc_quiet yes
che attiva il nonag in pratica
# settaggi specifici Gert's VGA 666 e Raspberry Pi 3ora
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
sudo poweroff
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 -vsyncConcludendo posso dire che la scheda vale sicuramente l'acquisto, vista la spesa irrisoria (nemmeno 10€).
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
Accendete il saldatore e preparate il rasp!!!
Piccolo aggiornamento
05 aprile 2020
Te lo do io l' ATARI VCS
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.
eccola! |
il legnetto |
pannello |
interno |
- 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°
sudo nano /boot/config.txt
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 .
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 |
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.
Partiamo dalla tastiera.
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.
prova pettine |
prova 2 |
the amazing spider arduino! |
gli diamo un aspetto decente |
saldiamo i pin del pettine |
et voilà! |
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.
Qualche foto dei lavori ed un video di test.
connettore led |
scambio pin |
olé! |
aggiungiamo il connettore su arduino |
e siamo pronti |
resistenza da 220ohm, un po' una zozzata ma vabbé |
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 |
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.
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