XRSH devlog 2024-07-05 booting ISO in WebXR, buildroot, composability, UNIX
XRSH devlog 2024-07-05 booting ISO in WebXR, buildroot, composability, UNIX
Quei gamer che come me hanno nell’animo il PC masterrace, ma nella pratica odiano il tedio contro cui ci si imbatte appena si vuole effettivamente giocare a qualcosa per PC, staranno con ansia aspettando progressi sulla questione di giochi Windows nel browser. Quindi, che ho fatto ieri? …Un cazzo di niente! 🥰
Ho perso mezza giornata cercando invano di far funzionare prima alcuni programmi di benchmark, e poi Touhou. Ho dovuto installare DirectX 9 per quei programmi, ma poi comunque questi non partivano, perché a quanto pare DX9 non include rendering via software per Direct3D, e in v86 non c’è alcuna GPU. Pazienza, per quelli me ne farò una ragione, non ho vitale bisogno dei benchmark… però per i giochi è una rogna. Sorprendentemente, Touhou 6 parte in questo ambiente mezzo sfasciato, ma c’è un problema: non so come il gioco gira, riesco anche a muovermi nei menu alla cieca e avviare una partita, ma viene renderizzato solo lo sfondo e letteralmente null’altro, quindi non si può effettivamente giocare. (Dettagli più precisi in questa chat qui.) 🤬
Ho provato allora con DirectX 8a, che pare essere l’ultima versione con software rendering prima di DX10 (che lo ha reintrodotto dopo che fu tolto tipo), e stando a Wikipedia ES dovrebbe essere il minimo richiesto da Touhou 6 (altre fonti specificano semplicemente DX8 generico). E qui il gioco però smette di partire, restituendo un errore non molto chiaro… che ho decifrato con Reddit e Google Traduttore, ma la cosa non mi ha dato alcun aiuto, non so a cosa si riferisca l’errore esattamente, e nessuna opzione disponibile tra configurazione del gioco e impostazioni di Windows ha risolto il problema (chiede di cambiare una roba che online non vedo discutere, probabilmente manco esiste). 🐭Proprio stamattina ho voluto dare una chance a Boxedwine; pensandoci, posso usarlo in maniera complementare a v86, nei casi in cui questo non va bene. Fare tutto tra telefono e tablet (dato che non sono a casa) è stato un casino, tra lentezza generale, memoria che si satura (per questo devo usare due dispositivi alla volta) e via… e ugualmente non è servito A NULLA. A parte il tempo perso (tanto, maneggiare con gli ZIP sullo Ximi non è veloce) tentando di avviare gli ultimi pacchetti distribuiti dall’autore per Wine 1.7 e 5.0, che evidentemente non funzionano (il primo non so perché, il secondo è colpa di #11), usando il pacchetto di boxedwine.org sono riuscita ad almeno avviare il gioco, ma termina con un errore che credo sia proprio lo stesso di Windows 2000. Nella console di Wine vedo prima del crash una riga fixme:win:EnumDisplayDevicesW ((null),0,0x32f898,0x00000000), stub!, che può confermare i miei sospetti, ma non so se centri o sia una coincidenza. Guardando i file di Boxedwine credo ci sia DirectX dall’8 al 10, quindi non sarà un problema di librerie mancanti. 🐞
Se avete idee, per favore suggerite, perché sono proprio alla frutta, ho finito di giocare ancor prima di iniziare. Il problema è che il gioco non parte con software rendering, anche se in teoria potrebbe usarlo, sospetto che cerchi appunto una GPU e halti se non la trova. (Qui ho caricato il log di Wine.) Ieri sera ho fatto anche tardissimo per andare a letto, per via di questa roba, ma vi giuro ci ho messo un secolo a prendere sonno… questa cosa ora mi tormenta e devo risolverla: so che Touhou è abbastanza leggero da poter girare nel browser, se giochi anche molto più pesanti ce la fanno, quindi ora pretendo di averlo nel browser! Voglio giocarci in Sala Museo! Il problema sono ste cazzo di API; possibile che solo sulle console i giochi funzionano e basta? (Dovrò fare un emulatore Switch per il web, a proposito…) 🧱
https://octospacc.altervista.org/2024/05/24/cant-have-x-in-direct/
#BoxedWine #crash #Direct3D #DirectX #emulazione #EoSD #gaming #gioco #GPU #PC #rendering #retro #retrogaming #Th06 #Touhou #v86 #WASM #web #Windows #Wine #x86
Per quanto non ho ancora risolto questo problema (ho trovato un programmino che dovrebbe funzionare e per ora è meglio di nulla ma non è il massimo), ne ho già un altro In questo emulatore pare non sia possibile dare una GPU al sistema guest (non è implementata l'emulazione), quindi DirectX va al massimo col software rendering. Su Windows 2000 SP4 è preinstallato DX7, e il software che usa quello funziona. Peccato che molti giochi richiedano almeno 8 o 9, tra cui Touhou 6. Ho installato DX9 apparentemente con successo, ma così facendo mi sembra di aver perso il software rendering per Direct3D (aprendo dxdiag con DX7 posso avviare il test via software rendering sia di DirectDraw che Direct3D, mentre con DX9 installato posso usare solo DirectDraw). Alcuni software, come altri di benchmark che volevo provare e ancora non ho potuto, non finiscono nemmeno di avviarsi, mentre un gioco come Touhou 6 si apre, gira... e renderizza solo lo sfondo. Sento che il gioco gira, riproduce effetti sonori se mi muovo con le freccette…
Ieri sera su spacctorium è stato sollevato un dubbio su se sarebbe possibile o meno emulare eseguibili Windows sulla #SalaMuseoGames. All’inizio ho detto che in teoria si, ma in pratica no, dopo che tutti i miei tentativi risalenti a pochissimo tempo fa sono sempre falliti in partenza… Però poi ci ho voluto pensare un attimo, e mi sono chiesta: davvero se Boxedwine non esegue qualcosa, tutto il resto gira talmente male che ci dobbiamo accontentare di non avere un cazzo? A quanto pare, la risposta è no. 😜
Boxedwine è praticamente un emulatore x86 che include un sistema Linux striminzito e una runtime Wine vecchissima (per qualche motivo non sono riuscita a far partire versioni più nuove lì dentro), e quindi anche con pesanti mancanze di compatibilità, che può girare nel browser. È abbastanza impressivo, ma dai miei test, quelle pochissime volte che qualcosa riesce a girare, lo fa veramente male, per colpa degli strati. Mi chiedevo quindi se magari ci fosse qualcosa di meglio, e cado quindi su v86, che già conoscevo da tempo ma non avevo realizzato prima quanto fosse basato: usa una tecnica di codegen WASM per sfruttare il JIT del browser come JIT del motore x86 (che è l’unico modo praticamente, il browser può ricompilare JIT il codice che deve eseguire, ma questo codice non può a sua volta ricompilarne altro). 🪨
In sostanza, questa soluzione è molto più veloce di quanto i miei test superficiali (ad esempio, navigando in Windows Explorer) mi portavano a pensare (per quanto Windows di 20 anni fa riesce ad essere sorprendentemente reattivo lì dentro, persino su browser mobile, dove invece Boxedwine si impalla al suo boot), e credo sia lo stato dell’arte. Fino a poco fa ho dovuto risolvere (o aggirare…) dei problemi (tra cui uno veramente stupido per l’audio su Windows 2000, ho aperto una issue mezza per niente aiuto sono tremenda), ma poi ho finalmente potuto far partire uno dei giochi vecchi che avevo da parte sul PC, e… 🤫️
Boh, giudicate voi dal video! Midtown Madness che gira su Windows 2000 dentro questa roba, sul mio PC fisso, ed a dettagli minimi è sorprendentemente giocabile per il contesto. Gira persino meglio di come gira in DOSBox-Pure sui miei dispositivi Android (dove spesso bisogna addirittura rinunciare al JIT perché Windows 9x sennò è instabile). Per quanto non posso promettere che riuscirò effettivamente a mettere giochi Windows sul mio sito (anche se sarebbe un sogno, un ulteriore passo avanti alla concorrenza for-profit), questa roba è decisamente promettente. 🤯️I margini di miglioramento comunque ci sono. Innanzitutto, magari 9x gira meglio per alcuni giochi, e quindi nel caso si preferisce quello; poi, per quanto i Windows d’epoca non avessero tutto questo bloat, penso che almeno qualche FPS in più uscirebbe fuori togliendo vari servizi inutili (e uccidendo Explorer); se tutto va male poi possiamo tentare (dato che abbiamo i sorgenti illegali) di ricompilare componenti di Windows con ottimizzazioni o robe, e infine potremmo sempre implementare delle hack in v86, anche specifiche per ogni gioco (praticamente HLE). L’hosting soltanto potrebbe essere rognoso, perché le immagini disco vanno preparate in un modo che non vi sto a spiegare ora, ma ci sarà da impazzire (non tanto per il sistema base, ma coi giochi di mezzo si). 😷
https://octospacc.altervista.org/2024/05/23/finestre-wasmanti/
#browser #emulazione #gaming #JIT #MidtownMadness #retro #SalaMuseoGames #v86 #VM #web #Windows #Windows2000 #x86
https://turtles-classic.supernetworks.org/
You can now boot a linux kernel to load a WiFi-centric CTF in your web browser #v86 #wifi #ctf
I keep forgetting emulation of a 32-bit PC in the browser is not just possible, but efficient, and free these days:
#v86 is a #x86 #emulator for the browser.
v86 is a performant emulator for x86 that translates x86 machine code into #WASM on the fly. This live translation allows for emulated environments to run at maximal speed in the browser. v86 emulates several components of an x86 machine, including SSE2 extensions, floppy and IDE controller, VGA card, networking card, SoundBlaster card, and HID.
Website 🔗️: https://copy.sh/v86/