Xbox:EEPROM: Difference between revisions
mNo edit summary |
m (changed Dtomcat18 to Dtcomcat at Dtomcat's request.) |
||
(15 intermediate revisions by 6 users not shown) | |||
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. Its a BR24L02w]]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: | |||
* 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 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, and which video modes to use. | |||
* The console's IP settings and MAC address, previously used for Xbox Live's purposes, and now used by [https://insignia.live Insignia]. | |||
* The console's allowed display modes, determining [[Xbox:Games with Alternate Display Modes|the resolution settings games may select from.]] | |||
[https://xboxdevwiki.net/EEPROM 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. | |||
[[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== | ||
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. | |||
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]]. | |||
==EEPROM Dumping / Restoring - Xbox Homebrew== | |||
[[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. | |||
===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 [[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. | |||
===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. [[Xbox:PiPROM|A full guide can be found on the PiPROM page]]. | |||
===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. | |||
===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=== | |||
Designed by Dtomcat, 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. | |||
===CH341A=== | |||
[[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. | |||
===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. | |||
[[Category:Xbox]] |
Latest revision as of 19:59, 28 April 2024
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, and which video modes to use.
- 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 Dtomcat, 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.