Fixeight e i suoi cloni
Ha richiesto molto piu’ lavoro sia in fase di decrittazione per la presenza di opcode senza riferimenti negli altri giochi (kbash, dogyuun, vfife e batsugun) sia per la presenza di una EEPROM.
Alla fine, grazie al lavoro congiunto di me stesso, Haze a AWJ, siamo riusciti a implementare il sonoro. La conseguenza per ora è stata la necessità di creare un clone del gioco per ogni paese supportato (sono 14). Questo perche’ la EEPROM per ogni gioco è differente e pur essendo generabile dal codice del gioco, non è possibile attivare quel codice senza fare saldature nella PCB (questo per l’assenza di DSWs e Jumpers).
Nel caso in cui tramite i valori presenti nella EEPROM sia possibile variare altri parametri del gioco oltre al paese, tale implementazione è scorretta. Ci sarebbero nel caso due alternative: aggiungere dump di EEPROM di cui si ha la certezza della relativa presenza in sala giochi, o implementare un qualche sistema in gradi di riprogrammare la EEPROM (simulando ad esempio la presenza di jumpers nella PCB). Vedremo. Per ora accontentiamoci del sonoro.
E Kbash
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
Dogyuun e Vfive
decrittati abbastanza per sentire la musica e gli effetti sonori
Toaplan 2: cpu sonora
Recentemente AWJ ha implementato un core per la cpu nec v25/35; grazie a questo è stato emulato il sonoro in batsugun
Batsugun non usa la feature della cpu di codificare gli opcode tramite una tabella di conversione
Sfortunatamente kbash, vfive, dogyuun e fixeight si.
Analizzando il codice pero’ si notano grandissime somiglianze con il codice di batsugun; questa ha permesso a me e a AWJ di decrittare la maggior parte delgli opcode. Il primo risultato ottenuto è che la tabella di conversione per kbash, vfie e dogyuun è identica. Inoltre il codice di batsugun e kbash è quasi al cento per cento identico. Inoltre che il codice di startup di dogyuun, vfive e fixeight è identico. Per questi ultimi 3 è stato necessario un maggior lavoro dato che molti opcode non hanno trovato corrispondenza con batsugun. Una volta decrittati questi opcode pero’ ho notato che il codice di starup per questi tre decritta e copia in ram il contenuto presente in rom. Sucessivamente passa il controllo a questo nuovo codice e di nuovo si iniziano a notare grandissime somiglianza fra tutti e 5 i giochi.
Riepilogando:
batsugun permette di decrittare kbash (codice quasi identico)
kbash permette di decrittare vfive e dogyuun (stessa tabella di conversione)
vfive e dogyuun permettono di decrittare fixeight (codice quasi identico ma tabella di conversione differente)
Una volta finito di decrittare si potrà provare a implementare il sonoro.
SSV
Dopo aver acquistato una PCB di twin eagle ii e chiesto a kold la disponibilità di farmi dei test, ho deciso di riprendere il mano questo driver. Haze mi aveva fatto presente che probabilmente mancava un qualche tipo di effetto grafico nella transizione dall’attract all’high score (il valore di un registro decresceva e ricresceva); effettivamente l’area visibile si modificava.
In questo modo ho iniziato a implementare alcuni registri del CRT.
Per ora sono riuscito a eliminare gli offset dall’inizializzazione dei driver dato che sono ricavabili dai registri: inoltre ho implementato l’inversione delle coordinate y per gli sprite (usate per esempio attivando il flipscreen).
Per ora non sono riuscito a capire come si determinano gli offset per le tilemap diverse dalla principale e come si determina il sistema con il quale si impostano le coordinate degli sprite.
Credo che servirà ancora qualche test per la PCB!