Greeting from devz3ro
---------------------

(12/25/04)

Hi all,

Just wanted to say a quick thanks to everyone for a great year. All
the major players know who they are, so I'm not going to name anyone. We
have traveled an extreme distance from the legacy font and audio exploits, 
and have done what most thought was impossible. Every new release is very 
exciting, and as Pedro would say to this release: "Once again the gap 
between softmod and modchip is reduced".

On behalf of the xbox-scene exploit team,

Angerwound, eh., krayzie, Ldots, PedrosPad, rmenhal, and I wish everyone
a very merry and very safe Christmas.

Special thanks to rmenhal for all of his hardwork and dedication. Without
him a lot of our development would not be possible.

-devz3ro

Nkpatcher version 10
--------------------

Introduction
------------

Hi again,

Another new feature for nkpatcher. :) Virtual eeprom redirects
eepromread/writes to a file. Some protection against eeprom
corruption.

Regarding direct booting to update.xbe: whether or not you choose to
setup the real EEPROM contents such that the retail kernel will boot
C:\xboxdash.xbe directly does not really concern nkpatcher. Nkpatcher
10 can be used to make eeprom look good afterwards though. I haven't
tested it, but it looks like you don't need to zero out the whole
dashboard/user part in the real eeprom. It may be enough to just set
the language dword to zero (and recompute the checksum of course). I
don't know if you can do this with Config Magic already. It also looks
like update.xbe will default to English in that case so UXE should
work fine.

Installation
------------

 * Just run nkpatcher-06.xbe or nkpatcher-67.xbe. They're signed with the habibi
   key. The dashboard path in the default configuration is C:\evoxdash.xbe
   (nkpatcher will launch this after patching done.) When you run nkpatcher.xbe,
   the kernel in memory should be retail except for possibly having habibi or fonts
   public key (this condition is satisfied with exploits.)

 * The file names follow the usual convention; nkpatcher-06 is the "F drive takes
   all the space" bios and nkpatcher-67 is "F drive up to 137 GB and G drive takes
   the rest". A partition table on the HD will override this (HD partition table
   can be made ignored with a config.inc setting.)

Software License
----------------

This software is released under GNU General Public License version 2. See
the file COPYING for details.

Notes
-----

 * Nkpatcher now has IGR and automatic game region setting. Remember to
   disable these features from your (Evox) dashboard so that they won't
   interfere.

 * Edit file config.inc to configure nkpatcher. Then compile using NASM
   (Netwide Assembler):

	   nasm -o nkpatcher.xbe xboxapp.asm

   Remember to sign the output file (XBE) with xbedump.

Files
-----

 * config.inc: kernel patcher configuration

 * xboxapp.asm: source code for the Xbox application (nkpatcher.xbe).
                contains also some configuration options at the beginning of
                the file.

 * nkpatcher.asm: source code for the core kernel patcher

 * diskimagedrv.asm: source code for virtual/shadow C drive

 * cdromimagedrv.asm: source code for virtual CD/DVD device driver

 * xa_lba48.asm: LBA48 and partition table, gather feature parameters.

 * lba48.asm: LBA48 kernel patch

 * virteeprom.asm: virtual EEPROM kernel patch

Changes
-------

From version 9 to version 10:
 * Added virtual EEPROM feature. This will patch kernel system calls
   HalReadSMBusValue and HalWriteSMBusValue such that EEPROM reads and writes
   are redirected to a user-specified file.

   It is possible to disable writing to the virtual EEPROM and it is also
   possible to continue using the real EEPROM but with writing disabled.
   Since the kernel keeps a cached copy of the EEPROM contents in RAM, you
   can modify EEPROM settings in software even when writing is disabled and
   the modifications will persist across quick reboots. The modifications
   are not actually written to the disk or actual EEPROM so they will
   disappear when you cold reboot. Therefore you can experiment with EEPROM
   settings and if you mess up, just do cold reboot. :)

   Note that some (homebrew) applications may access the EEPROM directly
   without going through the kernel, especially those based on Xbox-Linux
   project's code. The present feature does not protect against this.

   The virtual EEPROM feature is not enabled in the default compilation so go
   turn it on in config.inc and recompile.

From version 8.1 to version 9:
 * oz_paulb LBA48 and partition table support

 * Virtual C image may now be of any size. You can make a virtual drive from
   scratch by first creating a file (or copying any old), say 200 MB, and then
   formatting it. You can for example virtualize the F with the unformatted image
   first and then format F using Evox dashboard. Then copy stuff to F and then
   use the done image file to virtualize C. The number at the end of
   VIRTUAL_C_DRIVE option can be used to select any existing drive for
   virtualizing. I'm sure there are also Linux tools for creating a FATX file
   system inside a given file.

 * ACTUAL_C_DRIVE option makes the real C drive appear in the specified partition.
   You can now put a shadow image file into the real C drive. Use this option
   to make the real C drive appear for example as Partition7 or Partition8.
   Then make VIRTUAL_C_PATH point to blahblah\Partition8\blaablaa.img.

 * Moved the few configuration options in xboxapp.asm to config.inc. They're all
   in config.inc now.


From version 8 to version 8.1:
 * Fixed the version 8 problem (version 7 was fine) with kernels 5530 and above


From version 7 to version 8:
 * Added virtual/shadow C drive feature
 * Added virtual CD/DVD drive feature


 -rmenhal