• This repository has been archived on 05/Dec/2023
  • Stars
    star
    253
  • Rank 160,776 (Top 4 %)
  • Language VHDL
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenXenium - Open Source Xenium Modchip CPLD replacement project for the Original Xbox

OpenXenium

OpenXenium Assembled

About this Repository

This is an open source recreation of an Original Xbox LPC memory/IO device. Generally known as a modchip. The VHDL is 100% compatible with XeniumOS, which is a legal non-Microsoft based bootloader made by TeamXodus for the Original Xbox. This allows loading user BIOS binaries and some basic Xbox tools (EEPROM Backup/modification, Hard drive Rebuilding, Locking, Unlocking, FTP access).

The VHDL written by Team Xodus was never released and the CPLD is read protected so it is not trivial to extract the bitstream. My own VHDL is probably quite similar to what Team Xodus produced for the Xenium Modchip but I have independently reverse engineered the behavioral design on the CPLD. (There was no bypassing of the protection features of a genuine Xenium.) Therefore I have named this project OpenXenium. An open source recreation of the Xenium CPLD released under GPL which documents the internal workings by means of open source VHDL of the Xenium Modchip.

I do a quick run through of the build process here: https://youtu.be/P6YYViKby74

To manage your OpenXenium device's flash memory, the Xenium-Tools homebrew program has been moved here.

Supported Features

The VHDL implements the following LPC transactions:

  • Memory Read/Writes (Translated to a parallel flash memory interface)
  • IO Read/Writes

From an Original Xbox perspective, this covers all requirements to make a custom LPC memory/IO peripheral for the console. Colloquially known as a modchip which can load custom BIOS files like Cromwell and its derivatives without modifying the onboard TSOP flash memory or softmodding. This supports IO control for accessories like LCD screens, LED controllers, external switches etc.

When used with XeniumOS the VHDL in this repo supports the following features:

  • Software controlled BIOS bank switching (any BIOS combinations that fit into 1mbyte of flash memory (4x256k, 1x512+2x256k, 2x512k, 1x1mbyte).
  • Instant boot to a chosen BIOS using the power button.
  • Boot the XeniumOS with eject button.
  • Ability to boot from the onboard BIOS (colloquially known as TSOP booting). This will completely disable OpenXenium and release D0/LFRAME(1.6) to boot the Xbox as if stock.
  • All the standard features in XeniumOS. (EEPROM tools, Hard drive tools, FTP/SMB Server etc.).
  • Three general purpose outputs. These are normally bitbanged as a SPI master (MOSI,CLK,CS) with the most common use an LCD, however could support any SPI peripheral in theory.
  • Two general purpose inputs. On a Xenium, these are I believe intended to be MISO lines to complement the SPI interface but could be used for any 3.3V digital logic.
  • Three outputs are connected to an RGB led (Or an external user added RGB led).
  • Reserved memory on the flash chip for non-volatile storage of an EEPROM backup and XeniumOS settings.
  • If you bridge the two recovery pins on power up, it will attempt to boot the XeniumOS recovery BIOS if available. This functions the same as a genuine Xenium modchip.
  • I also simulate the LFRAME abort mechanism (Ref Intel LPC Interface Spec Rev 1.1 Section 4.3.1.13) so that this will work on a v1.6 Original Xbox. This aborts the LPC transaction to prevent the Xyclops responding to the MCPX LPC Memory Read requests during boot (and conflicting with an external LPC memory peripheral). This is generally accepted to be better than shorting LFRAME the ground constantly which some traditional Modchips do.

XeniumOS BIOS

The recommended way to get a copy of XeniumOS is to take a backup of your own Xenium modchip using Xenium-Tools. It is also possible to parse the v2.3.1 XeniumOS update files released by Team Xodus to extract the neccessary data; however this will not contain the factory programmed recovery sector, but otherwise works in the same way.

This has been tested with XeniumOS 2.3.1 (Last release) and XeniumOS 2.3.1(Gold variant). The only way to obtain Gold OS is to dump the flash contents of your XeniumGold as the binary files were never distributed individually.

Installation and Initial Setup

See Installation.MD

Licensing

OpenXenium is free and open source. Please respect the licenses available in their respective folders.

References that helped me in this project

Open Xenium Installed

If you like my work please consider a small donation
paypal
By Ryzee119

More Repositories

1

ogx360

Add modern xinput USB support to your Original Xbox 📺 🎮
C++
403
star
2

usb64

usb64 - A project developed to use USB controllers on the Nintendo 64 console 📺 🎮
C
146
star
3

ogx360_t4

A project to use modern USB game controllers on the original Xbox console with a Teensy4.1.
C++
117
star
4

hawk

Open Source Recreation of the Xbox Live Communicator for Original Xbox
C
73
star
5

LithiumX

A simple dashboard, mainly developed for the Original Xbox console, but it can be compiled for Windows and Linux for rapid development and testing.
C
71
star
6

ArduinoProm

Original Xbox EEPROM reader and writer. Based on and inspired by the awesome work by Grimdoomer on PiPROM
C++
59
star
7

lvgl-sdl

A crossplatform SDL wrapper for the Light and Versatile Graphics Library https://lvgl.io/.
C
49
star
8

spi2par2019

Open source recreation of the spi2par, a board that allowed you to use HD44780 compliant LCDs on the Xenium modchip for the OG Xbox
C++
45
star
9

AladdinLCD

Convert the cheap AladdinXT 4032 Original Xbox modchip to an LCD driver for TSOP modded consoles.
VHDL
44
star
10

Xenium-Tools

A program to manage Xenium modchip devices on the Original Xbox
C++
42
star
11

n360

Add Wireless Xbox 360 Controller Support to your Nintendo 64
C++
39
star
12

n64_controller_test

A homebrew rom made to test various features of the N64 controller on a N64 console. 🎮
C
39
star
13

XboxHDMI-Ryzee119

100% digital Original Xbox HDMI Concept Board
C
35
star
14

tusb_xinput

TinyUSB xinput host driver I am using in some of my projects
C
31
star
15

Omnispeak64

A port of Commander Keen "Commander Keen in Goodbye Galaxy!" to the Nintendo 64. 🔫
C
25
star
16

LPCAnalyzer

LPC Protocol Analyzer Plugin for Kingst Branded Logic Analysers
C++
16
star
17

OpenXeniumRGB

RGB Addon Board for the OpenXenium modchip.
16
star
18

Dongle_Dumper

Dump the ROM from an Original Xbox DVD Movie Playback IR Dongle
C
16
star
19

tinyogx360

15
star
20

XBLC-Dumper

Dump firmware off the Xbox Live Communicator from the Original Xbox
C
11
star
21

SameBoyT4

Port of SameBoy, a highly accurate GB and GBC emulator to the Teensy4.1 microcontroller.
C
10
star
22

XMU_Dumper

Dump a raw image of a Xbox Memory Unit straight using an Xbox console
C
6
star
23

OmnispeakT4

A port of Commander Keen "Commander Keen in Goodbye Galaxy!" to the Teeny4.1 microcontroller . 🔫
C++
6
star
24

XcaliburInjector

Just a way to inject new register values into the Xcalibur video encoder located on Original Xbox consoles with a v1.6 motherboard.
C++
6
star
25

nxdk_ohci_test

Tests all inbuilt class drivers for nxdk's USB Host stack
C
5
star
26

Cosmo64

A port of Cosmo's Cosmic Adventure to the Nintendo 64.
C
4
star
27

libusbohci

Original import from https://github.com/OpenNuvoton/N9H30_emWin_NonOS. Tweaked for portability and for use with nxdk. A OSS toolchain for The Original Xbox console
C
3
star
28

SameBoyX

C
2
star
29

Nuklear_xbox

C
2
star
30

tinyusb_host_test

C
2
star
31

SDL_audio_tests

C
2
star
32

donut

C
1
star
33

NeverBall64

Port of neverball to the N64 (WIP)
C
1
star
34

usbx_nxdk

Testing AzureRTOS USBX and NetXDuo in nxdk
C
1
star
35

OGX_CHALLENGE_TABLE

C
1
star
36

TheKeplerian

The Keplerian is a celestial object tracker that is able to track planets, The Sun, The Moon and man-made earth orbiting objects. Two servo motors drive the azimuth and elevation arm which provide an accurate visual indication of the objects location in the sky!
1
star