Pubblicato un primo aggiornamento per Titan, le patch binarie scritte a mano per il kernel della console Microsoft Xbox original ci permette di sfruttare l’archiviazione estesa.
Queste patch sono state progettate per espandere le capacità di archiviazione della popolare console di gioco del 2001, anche oltre 16 TB. Ciò si ottiene modificando il kernel per supportare LBA48 ed estendendo il numero di settori del disco indirizzabili a 512 byte nello stack IO.
Disclaimer
[stextbox id=’info’]Nota: Questo progetto NON utilizza alcun codice protetto da copyright né aiuta a eludere i meccanismi di sicurezza di una console Xbox.[/stextbox]
Queste patch dovrebbero essere considerate altamente sperimentali in attesa di ulteriori attestazioni. Utilizzando questo software, accetti il rischio di subire la perdita totale o la distruzione dei dati sulla console in questione.
Titan potrebbe interrompere l’homebrew Xbox esistente e l’homebrew esistente potrebbe rompere i sistemi basati su Titan.
Utilizzo
Il patcher del kernel basato su PC di Titan è scritto in Python 3. Si consiglia vivamente di scaricare i pacchetti rilasciati che raggruppano le dipendenze applicabili per PC Windows, Linux e macOS.
Di seguito viene fornito un esempio di utilizzo:
python3 tpatch.py m8plus_kernel.img
L’output riuscito dovrebbe essere simile al seguente:
[*] Patching with Titan v1.0 -- by Markus Gaasedelen
[*] - Hashing kernel 'C:\titan\m8plus_kernel.img' to ensure compatibility
[*] - 0x800243AA: Patching HddStartVerify(...)
[*] - 0x8002443F: Patching HddVerify(...)
[*] - 0x800244E6: Patching HddStartRw_Length(...)
[*] - 0x80024534: Patching HddStartRw_Transfer(...)
[*] - 0x80024632: Patching HddRw_Save(...)
[*] - 0x8002465B: Patching HddRw_Smuggle(...)
[*] - 0x80024485: Patching HddCompleteRw(...)
[*] - 0x800246F3: Patching HddGetDriveGeometry(...)
[*] - 0x8002F066: Patching HddPartitionCreate(...)
[*] - 0x80024B5A: Patching HddCreateQuick(...)
[*] - 0x8005546D: Patching HddCreate(...)
[*] - 0x80027143: Patching FatxParseSupeblock(...)
[*] - 0x80029CE5: Patching FatxStartAsyncIo(...)
[*] - 0x80029E5B: Patching FatxAsyncIo(...)
[+] Patching successful!
Per una procedura dettagliata sulla configurazione di una Xbox con Titan, fare riferimento a GUIDE.md
fornito in questo repository.
Note aggiuntive
Alcune note aggiuntive su Titan sono le seguenti:
- Formattazione
- Il progetto FATX è attualmente l’unico metodo testato/supportato per formattare un disco per un sistema basato su Titan.
- XBPartitioner/XBlast/XeniumOS/FATXplorer sono tutti considerati non supportati e probabilmente richiedono aggiornamenti.
- Mi aspetto che questi strumenti ottengano versioni aggiornate nel prossimo futuro.
- Partitioni
- Titan è essenzialmente codificato per utilizzare uno schema di partizionamento in stile “F (Partition 6) Takes All”.
- Titan potrebbe essere esteso per supportare partizioni aggiuntive, ma sembra non necessario.
- Cluster
- Titan consente di aumentare le dimensioni dei cluster di 128kb, 256kb, 512kb, 1mb.
- Si consiglia vivamente di formattare dischi di grandi dimensioni (2 TB+) con 1024 settori per cluster (512 kb).
- FATX di Matt è l’unico strumento in grado di formattare attualmente dischi con cluster più grandi.
- A causa del modo in cui il kernel memorizza nella cache le informazioni sui file, le partizioni sono limitate a 2^24 cluster.
- Cluster da 128 kb: Dimensioni della partizione fino a 2 TB.
- Cluster da 256 kb: Dimensioni della partizione fino a 4 TB.
- Cluster da 512 kb: Dimensioni della partizione fino a 8 TB.
- Cluster da 1 MB: Dimensioni della partizione fino a 16 TB.
- L’aumento delle dimensioni dei cluster aumenta notevolmente la velocità di montaggio dei volumi FATX (avvio più rapido).
- L’aumento delle dimensioni dei cluster garantirà letture più lineari sul disco (letture di file più veloci, caricamento del gioco, ecc..).
- L’aumento delle dimensioni dei cluster consente più elementi nella directory del disco principale (8192 elementi a cluster da 512 kb).
- Se stai usando Titan, puoi permetterti il lusso di cluster più grandi, quindi smettila di lamentarti dello spazio sprecato.
- Titan consente di aumentare le dimensioni dei cluster di 128kb, 256kb, 512kb, 1mb.
- UDMA
- Titan può cambiare la modalità di trasferimento UDMA usata dal kernel con
`--udma N`
- L’aumento della modalità UDMA è stato profilato per migliorare alcuni tempi di caricamento del gioco superiori al 20%.
- Un benchmark completo con SSD + StarTech mostra che l’IO del disco è del 70-100% più veloce su tutta la linea.
- L’aumento della modalità UDMA richiederà un cavo IDE a 80 pin.
- L’aumento della modalità UDMA è stato profilato per migliorare alcuni tempi di caricamento del gioco superiori al 20%.
- La Xbox retail utilizza UDMA 2 (33 mb/s) per impostazione predefinita (come fanno molti/tutti(?) BIOS modificati’).
- La modalità UDMA massima supportata da Xbox southbridge è UDMA 5 (100 mb/s HDD <–> CPU).
- UDMA 5 NON FUNZIONA CON TUTTI GLI ADATTATORI DA IDE A SATA.
- UDMA 5 è confermato per funzionare e stabile con gli adattatori StarTech.
- UDMA 5 è instabile su adattatori basati su RXD-629A7-7, ma UDMA 4 sembra a posto.
- WLXKG-863B sono gli adattatori “peggiori” che ho sperimentato lavorando su Titan e sono in gran parte non testati.
- Titan può cambiare la modalità di trasferimento UDMA usata dal kernel con
- Giochi
- Testato un assortimento casuale di giochi per garantire una base di stabilità del sistema.
- Non mi aspetto grandi problemi qui, ma ovviamente dovrebbero essere eseguiti più test.
- Testato un assortimento casuale di giochi per garantire una base di stabilità del sistema.
- Dashboard
- XBMC sembra funzionare bene.
- Lo stato dell’unità DVD può essere instabile in XBMC in modalità UDMA superiori (problemi con SMBus? molto probabilmente).
- EvoX sembra funzionare bene.
- EvoX visualizza la dimensione del disco errata perché esegue un modulo di ‘gigabyte disponibili’ di 1000.
- Ciò non significa che hai formattato in modo errato o che l’HDD sia danneggiato.
- FTP sembra a posto?
- EvoX visualizza la dimensione del disco errata perché esegue un modulo di ‘gigabyte disponibili’ di 1000.
- Gli FTP basati su dashboard sono probabilmente molto più sicuri degli FTP basati su BIOS (ad es. XeniumOS).
- Considera tutti gli altri dashboard come non testati.
- XBMC sembra funzionare bene.
- Note sugli altri Homebrew
- DVD2Xbox funziona bene.
- FTP tramite XeniumOS è probabilmente rischioso. Lo userei solo per trasferire file su partizioni RETAIL (C o E).
- Tutto ciò che si avvia in un BIOS BFM (PBL, Hexen?) Non è totalmente supportato per l’accesso alla partizione Titan (F).
- Dovrebbe essere possibile modificare M8+Titan con una versione modificata di EVTool (rilasceremo presto maggiori informazioni).
- Considera tutti gli altri homebrew come non testati.
- Patch
- Titan è supportato solo sul kernel M8+. M8+ è una versione modificata del kernel finale (5838).
- Titan/M8+ può essere utilizzato su TUTTE le revisioni hardware al dettaglio (1.0 -> 1.6b).
- Queste patch possono quasi certamente essere trasferite su altri kernel Xbox, ma non è qualcosa che ho intenzione di fare.
- Le precedenti iterazioni di queste patch hanno modificato il kernel per utilizzare settori 4K, ma sono state ritenute non necessarie.
- Le patch rilasciate possono essere ulteriormente semplificate, allontanandosi dall’implementazione 4K originale.
- Più patch sperimentali che accelerano ulteriormente il montaggio di grandi volumi FATX possono essere aggiunte in seguito.
- Titan è supportato solo sul kernel M8+. M8+ è una versione modificata del kernel finale (5838).
Changelog
- Titan ora supporta un numero “arbitrario” di settori per cluster (#5).
- Corretto un bug per cui Titan calcolava in modo errato la lunghezza della partizione (#6).
- Questa modifica “spezzerà” le partizioni Titan esistenti… ma è la soluzione migliore per la compatibilità a lungo termine con l’ecosistema Xbox.
- Aggiornato un po’ il README con qualche nota in più rispetto al rilascio iniziale.
Download: Titan kernel v1.1.0 (Linux)
Download: Titan kernel v1.1.0 (MacOS)
Download: Titan kernel v1.1.0 (Win32)
Download: Source code Titan kernel v1.1.0
Fonte: github.com