Xbox 360 SMC Utility
by Blackaddr

History & Credits:
- original hack released by Tmbinc
- original hack ported to SMC by Tiros
- original hack source code disassembled and published by happy_bunny
- Alternate I/O, Play'N'Charge fix developed by Blackaddr
- Hardware testing (Blackaddr, Arbiter34, l_oliveira)
- Technical discussion (XboxHacker BBS)


What's new?

1.2 - Modified IO mode to properly control ARGON lockout based on SMC version if known.
    - Modified INI parser to support comma-separated verison lists in CUSTOM patches
    - added new support for SMC versions 1.10, 1.13, 1.50, 1.53, and 1.9 to INI
    - AIO patches now disable MS debug function like the original hack.

Revision History

1.1 - Cleaned up the EXE a bit.  New AIO patches eliminate all known reboot problems.
1.0 - Initial Release.  This is a brand new program to replace SMC I/O Config Utility.




DESCRIPTION:

The SMC Utility is a patching engine for the decrypted Xbox 360 SMC.  It is the successor to the similarly named SMC I/O Config Utilty but much more advanced.  Patches include things like adding the JTAG hack, configuring for different JTAG wirings, fixes, debugging, etc.  Provides scripting for advanced users while maintaining an easy interface for general use.

The program itself no longer contains any hard-coded patches (except the IO mode), they are all written as scripts in the INI file.  This hopefully will allow any future patches to be written as scripts instead of re-releasing the program itself.


BASIC USAGE:

The following easy two-step approach can be used to prepare a hacked SMC file using the original unhacked, decrypted SMC you extraced from your original NAND using 360 Flash Tool or similar program.

1) Run your original or donor SMC through the custom mode.  The SMC version must be compatible with your mobo and must not have the hack already in it.  If you have a Xenon console, you can skip step 2.

e.g.
smc_util custom unhacked_smc_dec.bin custom_smc_dec.bin

2) If you have an HDMI console that does not use DB1F1 for TDI and AUD_CLAMP for TMS, you must also change the I/O in the SMC.

e.g.
smc_util io custom_smc_dec.bin new_io_smc.bin /i


ADVANCED FEATURES:

IO MODE - this provides easy access to the old SMC I/O Utility.  It features all the same parameters for usage, and has been updated to include insertion/removal of the ARGON lockout during JTAG execution depending on whether you chose to use ARGON_DATA (ROL) for JTAG or not.  This provides a quick, easy method of changing the JTAG I/O for an SMC file that already contains the hack.  This mode does not use the INI file.

e.g.  To run the interactive mode for easy I/O configuration
smc_util io input_dec.bin output_dec.bin /i


CUSTOM MODE - this mode is used to apply patches that have been written for specific SMC versions.  The program will apply all patches in the INI 'custom' section that match the input SMC version.  The initial release includes 'All-In-One' patches for SMC versions 1.51, 1.6, and 2.3.  The AIO patch is best applied to clean, unhacked SMCs and uses the popular DB1F1 and AUD_CLAMP I/O for TDI and TMS, as well as the PCIe write bug fix and the Play'N'Charge fix.

e.g. To run the custom mode on a clean, original SMC
smc_util custom unhacked_smc.bin hacked_smc.bin


PATCH MODE - this mode executes patches in the 'patch' section of the INI.  Patches are binary search strings (with wildcards) that if found, will replace the bytes specified in the patch.  Examples of the PCIe Write bug patch, as well as JTAG I/O patching are provided in the INI as instructional examples.  This mode may be useful in the future if new patches are needed.

e.g.
smc_util patch input_dec.bin output_dec.bin


ANALYSIS MODE - this mode is used to report on the status of an SMC file.  Analysis scripts provide binary search strings (with wildcard capability) that are applied to the SMC and the results reported.  This can be useful for checking if an SMC file is hacked, which I/O it is using, are any known bugs present, etc.  This mode does not modify the SMC.

e.g.
smc_util analysis input_dec.bin


HEX MODE - often when developing and testing new SMC code, you will be compiling assembly code into Intel-HEX format.  This mode simply acts as a basic I-HEX interpreter, applying the HEX file to the SMC.

e.g.
smc_util hex input_dec.bin patched_dec.bin patches.hex




