Xbox:EEPROM: Difference between revisions

From ConsoleMods Wiki
Jump to navigation Jump to search
(Rewording + link picoPromSD)
Line 1: Line 1:
[[File:Xbox EEPROM - 1.0.jpg|thumb|200px|In earlier consoles, the EEPROM is located between the SMC (upper) and TSOP (lower).]][[File:Xbox EEPROM - 1.6.jpg|thumb|200px|In 1.6 consoles, the EEPROM is located directly next to the LPC.]]In a [[Xbox:Original Xbox Mods Wiki|Microsoft Xbox]], certain configuration values are stored in a small re-writable eight-legged chip, located near the LPC. This is referred to as the '''EEPROM''', and it holds a mere 256 bytes in [[Xbox:Versions|all Xbox versions]].
[[File:Xbox EEPROM - 1.0.jpg|thumb|200px|In earlier consoles, the EEPROM is located between the SMC (upper) and TSOP (lower).]][[File:Xbox EEPROM - 1.6.jpg|thumb|200px|In 1.6 consoles, the EEPROM is located directly next to the LPC.]]In a [[Xbox:Original Xbox Mods Wiki|Microsoft Xbox]], certain system configuration values are stored in a small re-writable eight-legged chip on the top side of the motherboard, near the LPC. This is referred to as the '''EEPROM''', and it holds a mere 256 bytes in [[Xbox:Versions|all Xbox versions]].


Some of the system settings it maintains are:
Some of the system settings it maintains are:


* The console's unique HDD key, used for opening [[Xbox:Drive Locking|the disk's ATA security lock]] on boot.
* The console's unique HDD key, used for opening [[Xbox:Drive Locking|the disk's ATA security lock]] on boot.
* The console's serial number, used for identifying a specific console.
* The console's serial number, used for system identification.
* The console's language setting, used by games which support more than one.
* The console's language setting, used by games which support more than one.
* The console's region, used to determine which discs it's allowed to boot.
* The console's region, used to determine which discs it's allowed to boot.
Line 12: Line 12:
[https://xboxdevwiki.net/EEPROM Refer to XboxDevWiki for a more detailed overview of its contents and data layout.]
[https://xboxdevwiki.net/EEPROM Refer to XboxDevWiki for a more detailed overview of its contents and data layout.]


Some options, such as the system language, display modes, and audio modes, may be changed through the official [[Xbox:Microsoft Dashboard]]. Other dashboards tend to leave the EEPROM alone, storing their settings on the console's hard disk drive instead. You cannot use [[Xbox:UnleashX]] or [[Xbox:XBMC]] to enable HD display modes for games, for example - they must be enabled in the EEPROM separately, and even those dashboards themselves may only enter HD after this has been done.
Certain parameters, such as the system language, display modes, and audio modes, may be changed through the official [[Xbox:Microsoft Dashboard]]'s configuration screens. Settings kept in the EEPROM apply globally - for example, enabling the parental controls will prevent the system from running certain games regardless as to how users attempt to start them, and this setting will persist even if the console's HDD is reformatted or completely swapped out.


Modded console users, or those with access to external EEPROM readers (such as a Raspberry Pi running [[Xbox:PiPROM]]), have the ability to change ''all'' data values stored within the EEPROM - including the region, HDD key, and even the console's serial number. Doing so can be dangerous, as an Xbox with a corrupted EEPROM will be unable to boot - instead displaying a solid red front LED (or rarely, solid green), with no video output at all. Some advanced modchips, such as the OpenXenium, are able to work around a corrupted EEPROM. Without such an addon, an external EEPROM reader device is required to restore the chip's contents and revive the system.
Other dashboards tend to leave the EEPROM alone, storing their own individual settings within files on the HDD to be referenced only when those particular dashboards are running. You cannot use [[Xbox:UnleashX]] or [[Xbox:XBMC]] to enable or disable HD display modes for games, for example.


On a PC, [[Xbox:LiveInfo]] or [https://github.com/Ernegien/XboxEepromEditor Xbox EEPROM Editor] can be used to review, modify, or even create fresh EEPROM data sets. As useful as these tools are, however, '''it's strongly recommended to back up your original EEPROM to your PC as soon as you are able.''' [[Xbox:Drive Locking|In particular, the loss of your HDD key may mean loss of access to your Xbox's hard disk drive!]]
[[Xbox:Getting Started|After modding an Xbox to run unsigned code]] (such as [[Xbox:Config Magic]]), or by gaining access to [[#EEPROM Dumping / Restoring - Using a Reader / Writer|an external EEPROM reader]] (such as a Raspberry Pi running [[Xbox:PiPROM]]), it becomes possible to change ''all'' data values stored within the EEPROM - including the region, HDD key, and even the console's serial number. Once a backup has been sent to a PC, software tools such as [[Xbox:LiveInfo]] or [https://github.com/Ernegien/XboxEepromEditor Xbox EEPROM Editor] can be used to review or modify them. These tools can even create fresh EEPROM data sets from scratch if absolutely need be, however, '''it's still strongly recommended to back up your original EEPROM to your PC as soon as you are able!''' [[Xbox:Drive Locking|In particular, the loss of your HDD key may mean loss of access to your Xbox's hard disk drive!]]
 
It should be noted that an Xbox with a corrupted EEPROM will be unable to boot. A system so afflicted will instead exhibit a red front LED (sometimes solid, sometimes flashing), and will fail to produce any video output at all. Some advanced modchips are able to work around a corrupted EEPROM (eg an OpenXenium), but without such an addon [[#EEPROM Dumping / Restoring - Using a Reader / Writer|an external EEPROM reader device]] is required in order to correct the chip's contents.


==EEPROM Compatibility==
==EEPROM Compatibility==


The layout of the data stored within EEPROM chips changed in later [[Xbox:Versions|Xbox versions]]. 1.0 EEPROMs use one format, 1.1 consoles introduced a second, and 1.6 consoles introduced a third. Directly swapping a 1.4 EEPROM chip (which still uses the 1.1 layout) into a 1.6 console, for example, will render it inoperable - even though the actual hardware is acceptable.
As far as hardware goes, an EEPROM chip found in one original Xbox can be used in any other model of the original Xbox. However, the format of the ''data'' stored within the chips does change between certain [[Xbox:Versions|original Xbox versions]]:
 
* The first "1.0" format is used by 1.0 consoles.
* The second "1.1" format is used by 1.1, 1.2, 1.3, and 1.4 consoles.
* The third "1.6" format is used by 1.6 and 1.6b consoles.
 
For example, directly swapping a 1.2 EEPROM chip (which still uses the "1.1" layout) into a 1.6 console will render it inoperable, as the later model system would consider the chip to be corrupt. It would instead need to be reformatted for use with a 1.6 console before the transfer was carried out.
 
Rather than transplanting EEPROM chips by resoldering them, it's instead usually better to dump their contents, use [[Xbox:LiveInfo]] or [https://github.com/Ernegien/XboxEepromEditor Xbox EEPROM Editor] to re-save the data for use with the new system (if a reformat is required), and then to restore the backup into that system's chip. Even if one console or the other is unable to power up, [[#EEPROM Dumping / Restoring - Using a Reader / Writer|an EEPROM reader]] can be used to extract and re-write the data as needed.


It's still possible to dump a backup of the original EEPROM, use [[Xbox:LiveInfo]] or [https://github.com/Ernegien/XboxEepromEditor Xbox EEPROM Editor] to save a new version for the target console, and then to restore the altered backup into that system's chip.
Another potential problem when copying EEPROM data between consoles relates to the MAC address: since each console's network card pulls its identifier from the EEPROM, cloning the EEPROM will clone the MACs as well. Multiple consoles with the same MAC connected to the same local network at the same time will be unable to communicate. This particular situation is easy to resolve, however, as MACs may also be altered using [[Xbox:LiveInfo]] or [https://github.com/Ernegien/XboxEepromEditor Xbox EEPROM Editor] - or even through the [[Xbox:Microsoft Dashboard]].


Another potential problem when copying EEPROM data between consoles relates to the MAC address: since each console's network card pulls its identifier from the EEPROM, cloning the EEPROM will clone the MACs as well. If two consoles with the same MAC are connected to the same network, they'll be unable to communicate at all!
==EEPROM Dumping / Restoring - Xbox Homebrew==


This situation is easy to resolve, however, as MACs may also be altered using [[Xbox:LiveInfo]] or [https://github.com/Ernegien/XboxEepromEditor Xbox EEPROM Editor] - or even through the [[Xbox:Microsoft Dashboard]].
[[Xbox:Getting Started|Once an Xbox has been modded to allow the execution of unsigned code]], it becomes possible to dump or modify the content of the EEPROM chip by running homebrewed software.


==EEPROM Manipulation Through Xbox Homebrew==
===Softmod Installers===
===Backing up your EEPROM (Installers)===


With Xbox Softmod Tool, an EEPROM backup will automatically be made and placed in `C:\Backups\`. Softmod Installer Deluxe (SID) and installer discs have "Backup EEPROM" and "Backup C Drive" options, which will make a backup in `C:\Backups\`. Copy this to your PC at your earliest opportunity.
With Xbox Softmod Tool, an EEPROM backup will automatically be made and placed in `C:\Backups\`. Softmod Installer Deluxe (SID) and installer discs have "Backup EEPROM" and "Backup C Drive" options, which will make a backup in `C:\Backups\`. Copy this to your PC at your earliest opportunity.


===Backing up your EEPROM (EvolutionX)===
===EvolutionX===


While running the [[Xbox:EvolutionX|EvolutionX dashboard]], navigate to System Utils → Backup. Selecting this will backup of your EEPROM, on-board Bios, HDD Password, and HDD config and place it in `C:\Backup\`, from which it should be copied to your PC. If your dashboard is not installed on the C: drive, it may not work.  
While running the [[Xbox:EvolutionX|EvolutionX dashboard]], navigate to System Utils → Backup. Selecting this will backup of your EEPROM, on-board Bios, HDD Password, and HDD config and place it in `C:\Backup\`, from which it should be copied to your PC. If your dashboard is not installed on the C: drive, it may not work.  


===Backing up your EEPROM (ConfigMagic)===
===ConfigMagic===


While running [[Xbox:Config Magic]], select "Create Backup Files". This will create an EEPROM backup on the `E` partition, from which it should be copied to your PC. Most other actions in ConfigMagic will also create backups beforehand, but beware: you'll require separate hardware to restore your backups if you render your system inoperable!
While running [[Xbox:Config Magic]], select "Create Backup Files". This will create an EEPROM backup on the `E` partition, from which it should be copied to your PC. Most other actions in ConfigMagic will also create backups beforehand, but beware: you'll require separate hardware to restore your backups if you render your system inoperable!


==EEPROM Manipulation Through An External Reader==
==EEPROM Dumping / Restoring - Using a Reader / Writer==
===Backing up your EEPROM (PiPROM)===
 
If an Xbox can't currently run unsigned code - either because it isn't modded, or it's experiencing a hardware fault of most any description (up to and including a total failure to power on) - it's still possible to access the EEPROM content by interfacing directly with the chip on its motherboard. There are quite a variety of devices which can be used for this purpose, some of which are listed below.
 
===PiPROM===


In the event that you cannot boot into the Xbox to backup your EEPROM, or if your EEPROM chip corrupts and needs to be restored, you can use a Raspberry Pi and three wires to dump from, or write to, the chip directly. [[Xbox:PiPROM|A full guide can be found on the PiPROM page]].
In the event that you cannot boot into the Xbox to backup your EEPROM, or if your EEPROM chip corrupts and needs to be restored, you can use a Raspberry Pi and three wires to dump from, or write to, the chip directly. [[Xbox:PiPROM|A full guide can be found on the PiPROM page]].


===Backing up your EEPROM (Xbox EEPROM Utility)===
===Xbox EEPROM Utility===


[https://github.com/dx4m/Xbox-EEPROM-Utility Xbox EEPROM Utility] allows for dumping and writing to the EEPROM with just the Xbox motherboard using a readily available ESP-8266 or ESP-32 microcontroller, as well as being able to perform a variety of SMC functionality like remotely powering on/off the console via a web interface.
[https://github.com/dx4m/Xbox-EEPROM-Utility Xbox EEPROM Utility] allows for dumping and writing to the EEPROM with just the Xbox motherboard using a readily available ESP-8266 or ESP-32 microcontroller, as well as being able to perform a variety of SMC functionality like remotely powering on/off the console via a web interface.


===Backing up your EEPROM (Arduino)===
===ArduinoProm===
 
Adapted from PiPROM's code, [https://github.com/Ryzee119/ArduinoProm ArduinoProm] can be used with an Arduino module instead - such as a Pro Micro Leonardo.
 
===ArdPromSD & picoPromSD===


Adapted from PiPROM's code, [https://github.com/Ryzee119/ArduinoProm ArduinoProm] can be used with an Arduino module instead - such as a Pro Micro Leonardo. Alternatively, the [https://github.com/dtomcat/ArdPromSD ArdPromSD] is an altered board design that can directly read or write backups to or from a microSD card. [https://www.ogxbox.com/forums/index.php?/topic/8747-i The ArdPromSD is explained on the OGXbox forums.]
Designed by Dtomcat18, the earlier [https://github.com/dtomcat/ArdPromSD ArdPromSD] ([https://www.ogxbox.com/forums/index.php?/topic/8747-i OGXbox thread]) and later [https://github.com/dtomcat/picoPromSD picoPromSD] ([https://www.ogxbox.com/forums/index.php?/topic/11177-t OGXbox thread]) are each able to to write backups to or read backups from an inserted microSD card.


===Backing up your EEPROM (CH341A)===
===CH341A===


[[Xbox:CH341A EEPROM Reader|A CH341A mini programmer can be connected to PC's USB port to access your EEPROM,]] in a similar manner to an Arduino.
[[Xbox:CH341A EEPROM Reader|A CH341A mini programmer can be connected to PC's USB port in order to access your EEPROM,]] in a similar manner to an Arduino.


===Backing up your EEPROM (PC COM Port)===
===PC COM Port===


A PC equipped with a COM port can be fitted with [[Xbox:EEPROM COM Reader|a simple adaptor]] for reading from or writing to an Xbox EEPROM chip.
A PC equipped with a COM port can be fitted with [[Xbox:EEPROM COM Reader|a simple adaptor]] for reading from or writing to an Xbox EEPROM chip.


[[Category:Xbox]]
[[Category:Xbox]]

Revision as of 14:10, 3 November 2023

In earlier consoles, the EEPROM is located between the SMC (upper) and TSOP (lower).
In 1.6 consoles, the EEPROM is located directly next to the LPC.

In a Microsoft Xbox, certain system configuration values are stored in a small re-writable eight-legged chip on the top side of the motherboard, near the LPC. This is referred to as the EEPROM, and it holds a mere 256 bytes in all Xbox versions.

Some of the system settings it maintains are:

  • The console's unique HDD key, used for opening the disk's ATA security lock on boot.
  • The console's serial number, used for system identification.
  • The console's language setting, used by games which support more than one.
  • The console's region, used to determine which discs it's allowed to boot.
  • The console's IP settings and MAC address, previously used for Xbox Live's purposes, and now used by Insignia.
  • The console's allowed display modes, determining the resolution settings games may select from.

Refer to XboxDevWiki for a more detailed overview of its contents and data layout.

Certain parameters, such as the system language, display modes, and audio modes, may be changed through the official Xbox:Microsoft Dashboard's configuration screens. Settings kept in the EEPROM apply globally - for example, enabling the parental controls will prevent the system from running certain games regardless as to how users attempt to start them, and this setting will persist even if the console's HDD is reformatted or completely swapped out.

Other dashboards tend to leave the EEPROM alone, storing their own individual settings within files on the HDD to be referenced only when those particular dashboards are running. You cannot use Xbox:UnleashX or Xbox:XBMC to enable or disable HD display modes for games, for example.

After modding an Xbox to run unsigned code (such as Xbox:Config Magic), or by gaining access to an external EEPROM reader (such as a Raspberry Pi running Xbox:PiPROM), it becomes possible to change all data values stored within the EEPROM - including the region, HDD key, and even the console's serial number. Once a backup has been sent to a PC, software tools such as Xbox:LiveInfo or Xbox EEPROM Editor can be used to review or modify them. These tools can even create fresh EEPROM data sets from scratch if absolutely need be, however, it's still strongly recommended to back up your original EEPROM to your PC as soon as you are able! In particular, the loss of your HDD key may mean loss of access to your Xbox's hard disk drive!

It should be noted that an Xbox with a corrupted EEPROM will be unable to boot. A system so afflicted will instead exhibit a red front LED (sometimes solid, sometimes flashing), and will fail to produce any video output at all. Some advanced modchips are able to work around a corrupted EEPROM (eg an OpenXenium), but without such an addon an external EEPROM reader device is required in order to correct the chip's contents.

EEPROM Compatibility

As far as hardware goes, an EEPROM chip found in one original Xbox can be used in any other model of the original Xbox. However, the format of the data stored within the chips does change between certain original Xbox versions:

  • The first "1.0" format is used by 1.0 consoles.
  • The second "1.1" format is used by 1.1, 1.2, 1.3, and 1.4 consoles.
  • The third "1.6" format is used by 1.6 and 1.6b consoles.

For example, directly swapping a 1.2 EEPROM chip (which still uses the "1.1" layout) into a 1.6 console will render it inoperable, as the later model system would consider the chip to be corrupt. It would instead need to be reformatted for use with a 1.6 console before the transfer was carried out.

Rather than transplanting EEPROM chips by resoldering them, it's instead usually better to dump their contents, use Xbox:LiveInfo or Xbox EEPROM Editor to re-save the data for use with the new system (if a reformat is required), and then to restore the backup into that system's chip. Even if one console or the other is unable to power up, an EEPROM reader can be used to extract and re-write the data as needed.

Another potential problem when copying EEPROM data between consoles relates to the MAC address: since each console's network card pulls its identifier from the EEPROM, cloning the EEPROM will clone the MACs as well. Multiple consoles with the same MAC connected to the same local network at the same time will be unable to communicate. This particular situation is easy to resolve, however, as MACs may also be altered using Xbox:LiveInfo or Xbox EEPROM Editor - or even through the Xbox:Microsoft Dashboard.

EEPROM Dumping / Restoring - Xbox Homebrew

Once an Xbox has been modded to allow the execution of unsigned code, it becomes possible to dump or modify the content of the EEPROM chip by running homebrewed software.

Softmod Installers

With Xbox Softmod Tool, an EEPROM backup will automatically be made and placed in C:\Backups\. Softmod Installer Deluxe (SID) and installer discs have "Backup EEPROM" and "Backup C Drive" options, which will make a backup in C:\Backups\. Copy this to your PC at your earliest opportunity.

EvolutionX

While running the EvolutionX dashboard, navigate to System Utils → Backup. Selecting this will backup of your EEPROM, on-board Bios, HDD Password, and HDD config and place it in C:\Backup\, from which it should be copied to your PC. If your dashboard is not installed on the C: drive, it may not work.

ConfigMagic

While running Xbox:Config Magic, select "Create Backup Files". This will create an EEPROM backup on the E partition, from which it should be copied to your PC. Most other actions in ConfigMagic will also create backups beforehand, but beware: you'll require separate hardware to restore your backups if you render your system inoperable!

EEPROM Dumping / Restoring - Using a Reader / Writer

If an Xbox can't currently run unsigned code - either because it isn't modded, or it's experiencing a hardware fault of most any description (up to and including a total failure to power on) - it's still possible to access the EEPROM content by interfacing directly with the chip on its motherboard. There are quite a variety of devices which can be used for this purpose, some of which are listed below.

PiPROM

In the event that you cannot boot into the Xbox to backup your EEPROM, or if your EEPROM chip corrupts and needs to be restored, you can use a Raspberry Pi and three wires to dump from, or write to, the chip directly. A full guide can be found on the PiPROM page.

Xbox EEPROM Utility

Xbox EEPROM Utility allows for dumping and writing to the EEPROM with just the Xbox motherboard using a readily available ESP-8266 or ESP-32 microcontroller, as well as being able to perform a variety of SMC functionality like remotely powering on/off the console via a web interface.

ArduinoProm

Adapted from PiPROM's code, ArduinoProm can be used with an Arduino module instead - such as a Pro Micro Leonardo.

ArdPromSD & picoPromSD

Designed by Dtomcat18, the earlier ArdPromSD (OGXbox thread) and later picoPromSD (OGXbox thread) are each able to to write backups to or read backups from an inserted microSD card.

CH341A

A CH341A mini programmer can be connected to PC's USB port in order to access your EEPROM, in a similar manner to an Arduino.

PC COM Port

A PC equipped with a COM port can be fitted with a simple adaptor for reading from or writing to an Xbox EEPROM chip.