Il developer Cturt ha messo in pratica quanto riportato fino ad oggi attraverso il webKit exploit realizzando il primo emulatore nativo del Game Boy per Playstation 4.
La demo di Pong ha posto le basi spianando la strada verso la realizzazione nativa di homebrew, il rendered è stato creato in HTML5, mentre i controlli avvengono attraverso la connessione wireless del Nintendo DS.
[tube url=http://www.youtube.com/watch?v=94Q91xDJatE]
Cinoop su Playstation 4
Il porting su PlayStation 4 è stato probabilmente il più interessante progetto realizzato fino ad ora, in quanto gli homebrew veri e propri non sembrano essere ancora all’ordine del giorno; solo poche persone hanno accesso all’esecuzione di codice sulla PS4, e con l’accesso che abbiamo in scrittura ora, gli homebrew su questa console soffrono di alcune gravi limitazioni.
Il primo problema è il controller. Non sono abbastanza sicuro cosa ci sia di sbagliato, ma utilizzando il modulo libScePad.sprx questo non sembra funzionare. Forse perchè il controller è già in uso e che collegando un secondo controller questo potrebbe funzionare, ma non ho avuto modo di provare in quanto ho un solo controller.
Ci sono due possibili soluzioni per questo, possiamo cercare di utilizzare la libreria USB per ricevere l’input da un controller di terze parti, o potremmo semplicemente utilizzare un qualsiasi dispositivo compatibile in WiFi munito di pulsanti per inviare i dati in ingresso su di un socket UDP, ho optato dunque per l’utilizzo di un Nintendo DS in modalità wireless.
Il secondo problema l’abbiamo riscontrato nel modulo libSceVideoOut.sprx, questo sembra non lavorare per noi. Nel prossimo articolo spiegherò nel dettaglio come sia riuscito ad ottenere l’uscita video sulla PS4, ma la soluzione che ho trovato è quello di creare una rendered HTML5.
La limitazione finale è che non abbiamo i permessi per montare unità USB per poterli normalmente leggere, tuttavia abbiamo accesso al modulo libUsbd.sprx (fondamentalmente solo libusb) che ci permette di comunicare direttamente con i dispositivi USB.
In futuro molto probabilmente saremo in grado di puntare su di un’implementazione FAT piena, basata sui comandi USB prime, ma per ora ho provato con una mia ROM di Tetris salvata come immagine grezza all’interno della flash drive USB utilizzando Win32Disk Imager.
Progresso
- CPU: Sono state implementate tutte le istruzioni.
- GPU: Può visualizzare le tile maps, e gli sprite. Lo scambio delle palette non è stata ancora implementata, questo significa che alcuni colori potrebbero essere visualizzati in modo non corretto.
- Memoria: Supporto per ROMS a 32KB, senza mapper, solo (Tetris e Dr. Mario).
- Input: Supportato.
- Suono: Nessuno.
- Giochi: Tetris è probabilmente l’unica ROM giocabile.
Promemoria
Cinoop: Un emulatore del Game Boy per Windows, DS, GameCube, 3DS, sistemi operativi basati su Linux, PSP, e PS4, scritto in C.
Costruzione: Per costruire la versione PS4 richiede PS4-SDK.
Utilizzo: Per PS4, la ROM viene letta da un flash drive USB come immagine grezza. Utilizzare Win32 Disk Imager o dd per scriverlo.
Controlli: Utilizzate una console portatile DS come controller wireless.
Perdonate se lo chiedo quì, qualcuno sa se esistono controller ps4 non ufficiali di altre marche compatibili? Anche solo via cavo.
Vorrei un secondo controller senza spese eccessive
grazie
su Playstation 4 puoi collegare un Controller PS3 se ne hai uno, a tal proposito via USB dovrebbero essere compatibili tutti quelli per ps3 (probabilmente il tasto share e options non sarebbero fruibili)
Grazie.