XKUtils EEPROM Code Update
#1
XKUtils EEPROM code has a number of problems, some of which were updated in later versions by Yoshihiro, and some I updated myself:
- No proper support for Debug or 1.6 EEPROMs - 1.6 support by Yoshihiro (see LiveInfo), Debug support by me
- HalReadSMBusValue / HalWriteSMBusValue calls replaced with ExQueryNonVolatileSetting / ExSaveNonVolatileSetting.

All Xbox Title Libraries that deal with EEPROM information, including the XOnline / XNet libraries, use ExQueryNonVolatileSetting to retrieve EEPROM information - this function, when first called, creates a "shadow" copy of the EEPROM in RAM which is used in subsequent calls to Query, and updated by ExSaveNonVolatileSetting.

XBMC had used HalReadSMBusValue / HalWriteSMBusValue to read and write the EEPROM 1 byte at a time, which had a few problems:
- the tiny overflow problem (corrected previously)
- 256 calls to redump / write the EEPROM every time (ExQueryNonVolatileSetting uses a WORD-updating HalRead / HalWrite, so only 128 calls)
- No shadowing - have to redump the EEPROM every time any information needs to be read or written.
- XBMC quickly goes out of sync with any application that does read the shadowed EEPROM through ExQueryNonVolatileSetting, i.e. any app that uses the Xbox Title Libraries.

The Debug and 1.6 EEPROM support is more of an update, but the ExQueryNonVolatileSetting support can be seen as more of a bugfix, I think.

Patch is on Sourceforge.net - be kind, this is my first patch! Quite a few more if this goes well.

Kreet
Reply
#2
XKUtils EEPROM code actually updates the eeprom checksum as well, but here the VideoFlags is updated directly via ExSaveNonVolatileSetting. So does this actually work?
Reply

Logout Mark Read Team Forum Stats Members Help
XKUtils EEPROM Code Update0