Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

netiso

Plugin-less Xbox 360 network ISO launcher with Aurora dashboard integration.

Stream games from a PC or NAS over your local network. Aurora sees each game as a normal installed title — with boxart, metadata, and title update support — no dashboard plugin or modified Nova.xex required.

How it works

  1. A stub generator (Python, runs on your PC) creates a small .xex per game with the correct Title ID and Media ID baked into the header
  2. Aurora scans the stub like any local title — fetches cover art, associates DLC/title updates
  3. When you launch the stub, it connects to a netiso server on your network, mounts the ISO, locates default.xex inside it, downloads it, and boots the game
  4. The server is tuxuser/netiso-srv, used as-is

Requirements: RGH/JTAG console running Aurora dashboard.

Project structure

proto/           Shared wire protocol definitions (C header)
stub/            libxenon stub source — the .xex that runs on Xbox 360
generator/       Host-side Python tool to produce per-game stubs
server/          Docker Compose config for netiso-srv

Building the stub

The stub is cross-compiled for Xbox 360 using the libxenon toolchain.

Option A: Docker (recommended)

make docker-build

This runs the build inside a free60/libxenon:latest container. Output: stub/netiso-stub.elf32.

Option B: Native toolchain

Install the libxenon toolchain to /usr/local/xenon (or set DEVKITXENON):

export DEVKITXENON="/usr/local/xenon"
export PATH="$DEVKITXENON/bin:$DEVKITXENON/usr/bin:$PATH"

make stub

Output: stub/netiso-stub.elf32.

Running the server

Place your .iso files in a directory and start the server:

cd server
mkdir -p isos
# copy/symlink your ISOs into isos/
docker compose up

The server listens on TCP port 4323 and recursively scans for .iso files. You can also run it natively — see server/README.md.

Generating game stubs

For each game you want to appear in Aurora, run the generator:

cd generator

python generate.py \
  --title-id 4D5307E6 \
  --media-id AABBCCDD \
  --server 192.168.1.100 \
  --iso Halo3.iso \
  --stub ../stub/netiso-stub.elf32 \
  --output ./output
Flag Description
--title-id 8-character hex Title ID (e.g. 4D5307E6 for Halo 3)
--media-id 8-character hex Media ID
--server IP address of the machine running netiso-srv
--port Server port (default: 4323)
--iso ISO filename as it appears on the server
--stub Path to the compiled stub binary
--output Output directory (default: ./output)

This creates:

output/4D5307E6/
  00007000/
    4D5307E6.xex     ← patched stub
    netiso.cfg        ← server + game config

You can find Title ID and Media ID for your games on sites like xboxunity.net.

Installing on your Xbox 360

  1. Copy the generated folder to your Xbox 360 HDD via FTP:

    output/4D5307E6/  →  Hdd1:\Content\0000000000000000\4D5307E6\
    
  2. In Aurora, scan for new content (or restart the dashboard)

  3. The game appears with cover art and metadata

  4. Launch it — the stub connects to your server and boots the game

Repeat the generator step for each game. You can script it for batch generation.

DLC and title updates

DLC and title updates stay on local storage in the standard Content directory structure. Aurora associates them with the stub by Title ID automatically.

Configuration

Each stub reads a netiso.cfg placed next to it. The generator writes this automatically, but you can edit it manually:

[server]
host=192.168.1.100
port=4323

[game]
iso=Halo3.iso
title_id=4D5307E6
media_id=AABBCCDD

To point a game at a different server, just edit the config — no rebuild needed.

Known limitations

  • After chain-loading default.xex, the game cannot read additional disc sectors (levels, textures, audio) without a kernel-level virtual DVD driver. This is inherent to the bare-metal/plugin-less approach. Games that fit mostly in the executable will work; games that stream heavily from disc will not boot past initial loading.
  • The stub locates default.xex in the ISO root directory only — games with non-standard executable paths are not supported.
  • No XBLA / GOD container support — ISO images only.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages