By Alex Free
A portable open source program for the creation, modification, and extraction of XISOs (an original Xbox and Xbox 360 ISO format). Nextract-XISO is a fork of Extract-XISO, which was orginally created by in, and then maintained and modernized by the XboxDev organization. I have forked this software for the following reasons:
The XboxDev organization does not care about Xbox 360 compatibility. I want an open source C program for dealing with Xbox 360 XISOs, not a rust/python replacement.
It uses a build system I don’t like (CMake).
Portablity can be improved in a better way that really lets the C code shine. The original dev “In” is a legend, his year of the Linux desktop was in the mid 90s according to the original code comments and back when I was a baby he was saying the exact same things about Windows that I do now.
The release binaries on their github don’t work (at least for Mac OS, but the Windows binaries as well requiring external dependencies isn’t great).
Essentially, development has halted on the original Extract-XISO. 25 open issues, 12 attempted pull requests. This is just my opinion, but the tool deserves better, hence this fork. Nothing that really improves the code has happened in years.
The Nextract-XISO difference:
Support Xbox 360 related issues/compatibility fixes.
Improves readability and fixes warnings during compilation.
Implements my EzRe build system, expanding portability and removing CMake.
Release binaries that work for more systems. Builds for more systems.
Homepage | Github |
Fixed a ton of warnings about unused paramaters for functions, and unused variables in certain contexts.
Fixed compiling on Linux, at the very least Fedora Linux specifically.
Rewrote some confusing for statements into readable while loops (also fixed warnings).
Fixes big endian detection, by adding macros for legacy Apple GCC on ancient Mac OS X as well as modern GCC built-ins.
nextract-xiso-v1.0-windows-i686-static.zip Portable Release For Windows 95 OSR 2.5 and above, Pentium CPU minimum (32 bit)
nextract-xiso-v1.0-windows-x86_64-static.zip Portable Release For x86_64 Windows (64 bit)
nextract-xiso-v1.0-mac-os-powerpc.zip Portable Release For Mac OS 10.4-10.6.8, PowerPC G3/G4/G5 (32 bit)
nextract-xiso-v1.0-mac-os-x86_64.zip Portable Release For Mac OS 10.12 and above, x86_64 (64 bit)
nextract-xiso-v1.0-linux-i386-static.zip Portable Release For Linux 3.2.0 and above, 386 CPU minimum (32 bit)
nextract-xiso-v1.0-linux-i386-static.deb Deb package file For Linux 3.2.0 and above, 386 CPU minimum (32 bit)
nextract-xiso-1.0-1.i386.rpm RPM package file For Linux 3.2.0 and above, 386 CPU minimum (32 bit)
nextract-xiso-v1.0-linux-x86_64-static.zip Portable Release For x86_64 Linux 3.2.0 and above (64 bit)
nextract-xiso-v1.0-linux-x86_64-static.deb Deb package file for x86_64 Linux 3.2.0 and above (64 bit)
nextract-xiso-1.0-1.x86_64.rpm RPM package file For Linux 3.2.0 and above, x86_64 CPU minimum (64 bit)
The extract-xiso
utility can run in multiple modes: create, list, rewrite, and extract.
Create halo-2.iso in the current directory containing the files within ./halo-2.iso:
nxiso -c ./halo-2
Create halo-ce.iso in the /home/me/games directory containing files in the ./halo-ce directory:
extract-xiso -c ./halo-ce /home/me/games/halo-ce.iso
Get file contents of a XISO:
./nxiso -l ./halo-ce.iso
List file contents of multiple XISOs:
./nxiso -l ./halo-2.iso ./halo-ce.iso
./nxiso -r ./halo-ce.iso
Can be batched:
./nxiso -r ./halo-ce.iso ./halo-2.iso
Default mode when no arguments given, extracts to ./halo-ce
nxiso ./halo-ce.iso
Can be given a target directory:
nxiso ./halo-2.iso -d /home/games/halo-2/
nxiso
has a few optional arguments that can be provided in different modes:
-d <directory> In extract mode, expand xiso in <directory>.
In rewrite mode, rewrite xiso in <directory>.
-D In rewrite mode, delete old xiso after processing.
-h Print this help text and exit.
-m In create or rewrite mode, disable automatic .xbe
media enable patching (not recommended).
-q Run quiet (suppress all non-error output).
-Q Run silent (suppress all output).
-s Skip $SystemUpdate folder.
-v Print version information and exit.