Pagina 18 di 52

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 17:50
da zanac
Bene, se mi dirai che openbor nuovo sdl2 su pandora è veloce ti passo makefile per compilare su sdk, chissà.... Se funziona sarebbe un colpaccio

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 19:06
da apiso
purtroppo non va sembra manchi una libreria

/openbor/OpenBOR: error while loading shared libraries: libSDL2_gfx-1.0.so.0: cannot open shared object file: No such file or directory

se riesci a darmela riprovo

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 19:46
da zanac
In realtà basta copiarla dal sdk, se riesci in autonomia se no te la passo domani, sorry pensavo di averla già messa sulla SD a suo tempo

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 21:06
da apiso
Adesso mi da l'errore "xdg runtime dir not setted in the enverinmont"

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 21:24
da zanac
Temevo questa risposta... :)
ok, devo lavorarci un po' di giorni, bisogna patchare il codice di sdl per compilarlo con KMSDRM (avevamo con myzar già patchato il codice per renderlo compatibile con la mali, ma c'è ancora da lavorare su sdl2, è una bruttissima bestia!!!).

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 21:30
da apiso
Ok zanac quando vuoi testo.

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 21:54
da zanac
Ci metterò un po' a preparare una nuova sdl... Intanto prova lanciarlo mettendo prima queste due variabili

export SDL_DIRECTFB_X11_CHECK=0
export SDL_VIDEODRIVER=DIRECTFB

Metti prima del lancio di openbor nuovo, fai una prova con entrambe e una prova con solo la prima variabile
Magari riusciamo imbrogliarlo

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 23:18
da apiso
Niente non funziona in nessuno dei due casi, mi viene pero' il dubbio che ho sovrascritto qualche dll di troppo,in particolare la libSDL2-2.0.so infatti non va piu' neanche emulationstation dandomi piu' o meno lo stesso errore, domani rimetto quelle originali prese da un backup che avevo e vediamo.

Re: Retroarch su Pandora's Box!

Inviato: 29/08/2018, 23:36
da zanac
Azz, occhio non devi mai cambiare librerie, devi solo aggiungere quella che mancava!! Le sdl2 che sono su pandora le abbiano patchate per usare nativamente il chipset video mali!! Se hai messo quelle del sdk sono invece per usare X via software. Devi solo aggiungere le gfx, rileggi bene quello che avevo detto, ci sta che se hai sovrascritto ti dava l'errore.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 8:24
da zanac
Dopo aver ripristinato le SDL di pandora, eccoti la lib che mancava....
libSDL2_gfx-1.0.so.0:


Poi, dopo aver fatto tutti i test (con la lib, usando le variabili in export, senza variabili e solo con una variabile), mi fai sapere se in uno dei tre modi (appunto senza variabili, con entrambe o con una) funziona...

Poi ho fatto pure una nuova versione di openbor ma che accede alla gpu mediante GL

openbor-gl:


Visto che ho tempo ti spiego un po' l'arcano (chiedimi pure lumi eventualmente, cerco di essere chiaro cmq)




Facciamo un po' di luce su questo strano chipset usato dalla pandora...

Sulla pandora spicca un bel Cortex A13 della allwinner, questo chipset è un sistema integrato che ha al suo interno CPU, GPU, DSP audio e persino un codec H265 nativo (quest'ultimo personalmente mai esplorato le possibilità).



CPU:
La CPU è un ARM compatibile con assembly cortex-a9-neon, questa informazione è davvero interessante... le estensioni neon permettono di creare programmi multimediali molto più veloci in quanto hanno molte primitive dedicate a calcoli matematici eseguite via hardware. Chiaro che per essere usate appieno serve codice assembler ottimizzato, molti progetti retroarch sono già compatibili (vedi l'emulatore PSX!), in ogni caso gcc/g++ permette di usare le direttive -marm -mcpu=cortex-a9 -mfpu=neon per migliorare anche codice C/C++ generico

Ultimo appunto sulla matematica float (che sappiamo essere molto usata negli su architetture ARM può essere implementata dal chipset via hardware o emulata da librerie software, parliamo di float-abi hard o float.... fortunatamente il nostro A13 ha al suo interno tutto il necessario per eseguire tutto via hardware, la direttiva al compilatore necessaria è quindi -mfloat-abi=hard

Oltre a queste di solito è migliorativo il classico -O3 (optimize livello 3) unita alla fast-math e omit-frame-pointer, ne consegue che per compilare su pandora la stringa CFLAGS consigliata è: -marm -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -fomit-frame-pointer -ffast-math -O3

La vita purtroppo non è così lineare, alcuni programmi o emulatori smettono di funzionare con queste stringhe e, con molto mal di testa, bisogna scoprire cosa togliere... :(

Di solito abbiamo avuta cura di mettere sul mio git un makefile per ogni programma compilato con le direttive usate.



GPU:
Qui la faccenda si fa ancora più complessa, dentro la allwinner c'è una mali mp400, una GPU 3D/2D non standard... per usarla a pieno regime serve un blob binario (libMali.so), una serie di link sulle EGL-2.0/EGL-3.0 che puntino al mali, e mettere negli header del compilatore tutta una serie di estensioni al set EGL standard!!! Ovviamente il nostro SDK è già pronto, ed è già pronta anche la /lib di pandora, prepararla però è stato un grosso mal di testa...

A complicare ancora di più c'è il fatto che non è compatibile ad opengl, ma EGL (un subset ridotto), e per giunta solo ad EGL-2.0 e, in parte al 3.0, niente 1.0!!!

Per accedere a queste funzioni i programmi hanno pià strade, usare EGL nativamente o farlo tramite SDL... se lo fanno nativamente chiramente compilando sul nostro SDK vengono presi gli header mali e tutto fila più o meno liscio, se invece accedono ad SDL... chiaro che serve una versione di SDL compilata con gli header e delle patch per accedere alla GPU! Le patch sono sul sito di retropie, ma anche qui altro mal di testa... pure queste non vanno bene, e abbiamo dovuto fare patch delle patch per far convivere SDL2 con SDL1 sulla mali!!! :(
https://github.com/RetroPie/SDL-mirror/tree/mali-2.0.8
https://github.com/RetroPie/SDL-mirror/tree/mali-2.0.7
https://github.com/RetroPie/SDL-mirror/tree/mali-2.0.6


dimenticavo, la DSP audio... è una ciofeca, ed è il vero limite della pandora! E' colpa sua se pandora ha rallentamenti... se disabilitiamo il DSP pandora diventa velocissima.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 9:15
da apiso
Spiegazione interessantassima, grazie Zanac, sto approfittando di questa cosa per approfondire un pochino le mie quasi nulle conoscenze in linux, stasera provo le due versioni su pandora e vediamo se vanno.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 9:33
da zanac
apiso ha scritto: 30/08/2018, 9:15 Spiegazione interessantassima, grazie Zanac, sto approfittando di questa cosa per approfondire un pochino le mie quasi nulle conoscenze in linux, stasera provo le due versioni su pandora e vediamo se vanno.
In realtà devo farti cmq i miei complimenti, comunque non è banale trovare qualcuno che ha voglia di fare prove, leggersi log di errori, etc. etc...

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 19:12
da apiso
Prova veloce con sdl2 fallita, errore segmentation fault e niente altro, il log openbor esce a f***8 se lo hai fatto tu ci capiamo.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 19:13
da apiso
apiso ha scritto: 30/08/2018, 19:12 Zanac Prova veloce con sdl2 fallita, errore segmentation fault e niente altro, il log openbor esce a f***8 se lo hai fatto tu ci capiamo. Adesso provo la gl e ti faccio sapere.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 19:27
da apiso
Wow gl funziona heman parte fullspeed sembra ma con controlli sbagliati, devo fare altri test ma siamo sulla strada giusta.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 19:59
da zanac
Immaginavo che funzionasse solo tramite gl, il perché è nel papiro che ti ho scritto, la gpu riusciamo usarla con sdl2 solo in quel modo. Domani cerco di fare makefile da darti per compilare in autonomia.... Per i controlli da capire
Questa è la versione nuovissima che supporta tutti i giochi!

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 20:04
da apiso
zanac ha scritto: 30/08/2018, 19:59 Immaginavo che funzionasse solo tramite gl, il perché è nel papiro che ti ho scritto, la gpu riusciamo usarla con sdl2 solo in quel modo. Domani cerco di fare makefile da darti per compilare in autonomia.... Per i controlli da capire
Questa è la versione nuovissima che supporta tutti i giochi!
Grande zanac, per i controlli verifico se anche con questa versione in qualche modo sono configurabili, alcuni pulsanti vanno, quindi il joy e comunque abilitato.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 20:24
da zanac
In tutta onestà senza il tuo supporto non mi sarei messo a fare questo porting, purtroppo con due bambini piccoli se accendo il cab per fare i test mi bloccano perché vogliono giocare :(

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 20:29
da apiso
zanac ha scritto: 30/08/2018, 20:24 In tutta onestà senza il tuo supporto non mi sarei messo a fare questo porting, purtroppo con due bambini piccoli se accendo il cab per fare i test mi bloccano perché vogliono giocare :(
La mia bimba ha 3 anni ancora non se lo fila, ma anche per me il tempo e poco un po la sera quando va a dormire.

Re: Retroarch su Pandora's Box!

Inviato: 30/08/2018, 20:36
da zanac
apiso ha scritto: 30/08/2018, 20:29
zanac ha scritto: 30/08/2018, 20:24 In tutta onestà senza il tuo supporto non mi sarei messo a fare questo porting, purtroppo con due bambini piccoli se accendo il cab per fare i test mi bloccano perché vogliono giocare :(
La mia bimba ha 3 anni ancora non se lo fila, ma anche per me il tempo e poco un po la sera quando va a dormire.
Se sei su fb dai un occhio al mio profilo e ti fai un'idea dei miei come li sto tirando su.. Hahahaha