Skattv (driver adp)
Visto che per far funzionare kothello è stata migliorata l’emulazione del chip grafico hd63484 su suggerimento di Haze ho dato un’occhiata al driver adp che usa lo stesso chip. Su quel driver ci aveva già lavorato Dox che gentilmente mi ha passato le informazioni in suo possesso. Si tratta di un gioco di carte basato su un touchscreen. Utilizzando l’interfaccia del dispositivo 68681 (che ho dovuto modificare) e migliorando ulteriormente l’emulazione del chip grafico (in particolare le gestione della pattern ram) sono riuscito a fare ulteriori progressi.
Questi sono alcuni screenshot
Rimane comunque ancora parecchio lavoro da fare
Kyuukyoku no Othello
Un classico othello tutto in giapponese
Il gioco non funzionava per 2 motivi:
– grafica
– input
Per quanto riguarda la grafica c’era un errore di implementazione di una delle modalità di copia (praticamente la direzione di copia sia della sorgente sia della destinazione) -> fixato
Per quanto riguarda gli input il problema derivava dal fatto che al posto di usare le porte di I/O della cpu (come nei giochi shanghai e shangha2 dello stesso driver) il gioco usava delle locazioni di memoria; una volta identificate le locazioni era necessario identificare come gli input erano collegati a quelle locazioni -> fixato da etabeta
Ecco alcuni screenshot:
Rimangono da fixare alcuni piccoli bug ma il gioco comunque è giocabile
Bootleg di bbmanw, dynablst, pspikes, aerofght
Un bootleg è una rom di una scheda originale modificata per funzionare su un hardware modificato.
E’ molto interessante vedere quali sono le modifiche che vengono fatte al programma per poter girare su un hardware meno costoso.
Tipico è usare un chip per gli sprite diverso: di solito i chip meno costosi hanno meno funzionalità e quindi il bootlegger deve ingegnarsi per trovare modi per implementare il funzionamento del gioco.
Per esempio spesso un chip costoso supporta i multi sprite: la rom va modificata per spezzatare il multisprite in singoli sprite (serve un lavoro sui codici degli sprite, sulle coordinate e cosi’ via) in modo che il gioco possa funzionare con il chip meno costoso. Cosi’ succede per bomblord (bootleg di bbmanw) e dynablsb (bootleg di dynablst).
Di solito nell’implementazione è necessario fare ulteriori modifiche come per esempio spostare la sprite ram in altro posto in memoria o spostare alcuni bit quali il flip x o il flip y, il colore etc.
Il chip nuovo potrebbe avere un modo diverso per segnalare l’ultimo sprite da disegnare (un marker).
Anche il chip video viene di solito sostituito: il chip originale ha molti registri per molte funzionalità, il chip meno costoso ha meno registri video; anche qui bisogna ingegnarsi per trovare strade praticabili. Spesso gli offset sono diversi (i dati necessari per centrare lo schermo e gli sprite). Spesso le priorità fra i layer sono gestiti in maniera diversa.
Nella prossima release del mame i 2 bootleg saranno abbastanza funzionanti: rimangono alcuni problemi di priorità e di selezione della risoluzione ma comunque saranno giocabili.
Il bootleg 1991 spikes oltre a questo tipo di modifiche necessitava della traduzione della grafica in modo da mostrare un nuovo titolo e le istruzioni in italiano. In questo caso i bootleggers hanno utilizzato una mappatura fra i codici delle tile tramite una rom aggiuntiva: il codice reale della tile viene calcolata con un passaggio intermedio di traduzione. Anche il modo di rappresentare le tile dal punto di vista grafico è diverso: l’ordine dei bitplane ma anche la distanza fra un bit e un altro nella rom grafica. Anche questo è tipico (vedi i bootleg di aerofght).
Nuovi test
out 8e,4
il risultato è che non si vede nulla; lo schermo è completamente vuoto -> il bit 2 non è correlato con le priorità sprite/tile ma disabilità il video
out 8e,8: – out 8e,10: – out 8e,20: – out 8e,40: – out 8e,80:
il risultato è equivalente a out 8e,0 -> i bit 3,4,5,6,7 non sono correlati con le priorità sprite/tile
Risulta molto strano avere due bit di priorità per le tile dato che per ora sono solo 2 le tipologie di priorità per le tile: 11 e tutti gli altri (10 – 01 – 00)
La dimensione della sprite ram, per quizf1, è piu’ ampia di 52 sprite (0x34). Ho il forte sospetto che per bombrman invece la dimensione sia ridotta a 52.
Test sulla PCB “bombrman” – parte 2
Grazie al preziosissimo aiuto di Corrado (Kold) sono stati effettutati 3 ulteriori test; praticamente è stato modificato solo il valore da mandare alla porta 8e:
questi i risultati:
out 8e,1:
out 8e,2:
out 8e,3:
prime conclusioni:
con 1 e 3 gli sprite con colore 8,9,a,b,c,d,e,f hanno priorità su tutte le tile
invece con 2 solo gli sprite con colore c,d,e,f hanno priorità su tutte le tile