ok i understand that a restart is not needed to write to the eeprom however my idea/suggestion is a little more complexed than that:
what i'm trying to conway is; what if a 'test' could be preformed
before xbmc writes to the actual eeprom in order to find out if the users tv support that specific selected video-mode, (because as you know an eeprom does have a writting limit plus you do not want to take a too big of a risk in messing it up). so what i suggest to is something like this; use
cherry's videomode code (link) to patch the eeprom mirror that was loaded into the persistent (ram) memory area at boot (thus writting to actual eeprom chip is not needed for this test) and because that code require a restart of a/the xbe start a other executable called ex 'videomode.xbe' that will display a short demo (and a message) on the users tv in the new video-mode that will show/prove to the user that his/hers tv support and can display that specific video-mode, ....hell, an extention on this test/feature would be to then put the actual code and option that do write to the eeprom chip into the 'videomode.xbe' instead of the main xbmc xbe (and thus make it easier for developers to debug if needed), so if the user do get a picture 'videomode.xbe' in the new video mode then he will see the message to confirm (plus see the 10 second countdown-timer) and if he press yes (should default to no) then code inside 'videomode.xbe' write that video-mode to the eeprom chip, however if the user do not get a picture then he/she will only have to wait for the 10 seconds timeout to run out which will (depending how the developer choose to choose to code this part); cause the 'videomode.xbe' to either reboot (thus restoring the original video mode as the new mode was only written to ram) or alternativly re-patch the eeprom mirror in ram (not the eeprom chip) to previous video-mode and then launch xbmc without reboot.
so exampel on my concept is a little bit different but more fool-proof (less risky):
1. information on the screen (in xbmc) before regarding which video modes do what, and why you might want to switch mode.
2. when user select one will get a message (still in xbmc with information as to what you will see on the following screen if everything goes correct, and information as to what to do if you don't see it (will be a timeout as well as a simple button press). option here with 'proceed' or 'cancel'.
3. if user press 'proceed' in step 2 then xbmc will first patch the eeprom mirror that's in the persistent (ram) memory area to the selected video-mode (thus not yet writting anything to the actual eeprom chip) and then launch 'videomode.xbe'.
4. 'videomode.xbe' starts and give a message "do you see this screen and text" (with demo running in background, plus maybe music or someone speaking/reading the same message so user don't think the xbox has hung) and present two options 'confirm change' or 'cancel change', plus a 10-second countdown timer running.
5a. if the user press 'confirm change' then code inside 'videomode.xbe' will write that video-mode into that xbox eeprom chip.
5b. if the user instead press 'cancel change' or wait until the timer runs out then code inside 'videomode.xbe' will (depending how the developers code it) either reboot (thus restoring the original video mode as the new mode was only written to ram) or alternativly re-patch the eeprom mirror in ram (not the eeprom chip) to the prevvious video-mode and launch xbmc without reboot.
ps! @
jmarshall, can you please upload the info/code you have on writting to the eeprom chip to .it so that we can then share it?