Home Homebrew Porting di Perfect Dark: Dalla decompilazione all’esecuzione su PC e console Nintendo...

Porting di Perfect Dark: Dalla decompilazione all’esecuzione su PC e console Nintendo Switch

128
0

Un importante progetto di porting di Perfect Dark è attualmente in sviluppo, basato sulla decompilazione del gioco originale.

Questo lavoro mira a rendere il titolo giocabile su piattaforme moderne, incluso il PC e la console Nintendo Switch, offrendo una nuova vita a uno dei classici più amati dell’era Nintendo 64.

https://twitter.com/SenhorLinguica/status/1859619616718270792

Il porting richiede una ROM originale di Perfect Dark per funzionare. Le versioni supportate includono NTSC V1.1, consigliata per la sua stabilità, oltre alle versioni NTSC V1.0, PAL e giapponese.

Tuttavia, alcune di queste richiedono eseguibili personalizzati per essere compatibili con il progetto.

Attualmente, il port è in uno stato funzionale con modalità singleplayer e multiplayer split-screen già operative. Nonostante ciò, ci sono ancora problemi grafici minori, glitch occasionali e crash sporadici.

Tuttavia, le funzionalità aggiuntive rappresentano un miglioramento significativo rispetto all’esperienza originale.

Tra queste spiccano il supporto per il mouselook, l’uso di controller analogici dual-stick, la risoluzione widescreen, il supporto per i 60 FPS e la possibilità di regolare il campo visivo.

Inoltre, sono stati risolti alcuni bug del gioco originale, aumentata la memoria disponibile e introdotte opzioni sperimentali per supportare frame rate fino a 240 FPS.

Il porting include anche una funzione per emulare il Transfer Pak della versione Nintendo 64, consentendo di sbloccare automaticamente alcuni trucchi.

Confermato il supporto per architetture a 32 e 64 bit sia su PC Windows che su Linux, mentre l’esecuzione su piattaforme ARM è ancora in fase di test.

Per la versione Nintendo Switch, il processo di installazione richiede di copiare il contenuto del porting nella directory switch della scheda SD, insieme alla ROM appropriata. Sono supportate tutte le regioni del gioco, con cartelle specifiche per NTSC, PAL e giapponese.

ROM supportate

  • ntsc-final/US V1.1/US Rev 1 (MD5: e03b088b6ac9e0080440efed07c1e40f):
    Questa è la versione consigliata. Viene identificata come NTSC version 8.7 final nella schermata di avvio.
  • ntsc-1.0/US V1.0 (MD5: 7f4171b0c8d17815be37913f535e4e93):
    Tecnicamente supportata, ma non consigliata. Anch’essa appare come NTSC version 8.7 final nella schermata di avvio.
  • jpn-final (MD5: 538d2b75945eae069b29c46193e74790):
    Tecnicamente supportata, ma richiede un eseguibile personalizzato. Viene indicata come JPN version 8.9 final nella schermata di avvio.
  • pal-final (MD5: d9b5cd305d228424891ce38e71bc9213):
    Tecnicamente supportata, ma necessita anch’essa di un eseguibile personalizzato. È identificata come PAL 8.7 final nella schermata di avvio.

Funzionalità aggiuntive

Il porting include le seguenti caratteristiche:

  • Supporto al mouselook.
  • Configurazione per controller analogici a doppio stick.
  • Supporto per risoluzioni widescreen.
  • Campo visivo configurabile.
  • Supporto per 60 FPS, con correzioni per problemi legati al framerate.
  • Risoluzione di alcuni bug e crash del gioco originale.
  • Supporto base per mod, al momento sufficiente per caricare alcuni livelli personalizzati.
  • Leggera espansione della dimensione dell’heap di memoria.
  • Supporto sperimentale per framerate elevati (fino a 240 FPS):
    • Impostare Game.TickRateDivisor su 0 in pd.ini per attivarlo;
    • In pratica, il gioco potrebbe presentare problemi oltre i ~165 FPS, quindi è consigliabile utilizzare VSync o Video.FramerateLimit per limitare il framerate.
  • Emulazione della funzionalità Transfer Pak del Nintendo 64 per sbloccare automaticamente alcuni trucchi.

Attualmente, sono supportate piattaforme a 32 e 64 bit. Il port è stato testato su architetture i686 e x86_64, sia su Windows che su Linux. Le piattaforme ARM potrebbero essere supportate, ma sono in gran parte non testate.

Esecuzione

Per eseguire il porting, è necessario avere una ROM di Perfect Dark come indicato sopra. Assumendo l’utilizzo di una build x86_64, procedere come segue:

  1. Creare una directory denominata data accanto all’eseguibile pd.x86_64, se non esiste già.
  2. Inserire la ROM Perfect Dark NTSC denominata pd.ntsc-final.z64 nella directory data.
  3. Lanciare l’eseguibile pd.x86_64.

Se si desidera utilizzare una ROM PAL o JPN, inserirla nella directory data ed eseguire l’eseguibile appropriato:

  • PAL: Nome ROM pd.pal-final.z64, eseguibile pd.pal.x86_64.
  • JPN: Nome ROM pd.jpn-final.z64, eseguibile pd.jpn.x86_64.

È possibile inserire anche la ROM di Perfect Dark per GameBoy Color denominata pd.gbc nella directory data, per emulare il Transfer Pak e sbloccare automaticamente alcuni trucchi. Ulteriori informazioni sono disponibili nella wiki del progetto.

Requisiti

  • Per eseguire il porting, è necessaria una GPU con supporto OpenGL 3.0 o superiore.

Installazione della versione per Nintendo Switch

La build per Nintendo Switch viene distribuita in un archivio ZIP contenente tre cartelle corrispondenti alle regioni: perfectdark, perfectdark_pal e perfectdark_jpn.

  1. Scegliere la cartella corrispondente alla regione desiderata.
  2. Inserirla nella directory /switch sulla scheda SD.
  3. Inserire la ROM nella cartella data come descritto sopra.

Controlli

Sono implementati binding in stile 1964GEPD e Xbox. I pulsanti e  del pad N64 (o X_BUTTON e Y_BUTTON nel codice) si riferiscono ai pulsanti riservati 0x40 e 0x80, utilizzati anche da 1964GEPD.

È supportata una configurazione a due stick per 1.2. Si noti che il mouse controlla esclusivamente il giocatore 1. I controlli possono essere riconfigurati nel file pd.ini.

Download: Perfect Dark port (Windows x86_64) (Windows i686)

Download: Perfect Dark port (Linux x86_64) (Linux i686)

Download: Perfect Dark port (arm64 Switch)

Download: Source code Perfect Dark port

Fonte: x.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.