Page 1 of 1

N64/ Trusty CPU microcode bios update

Posted: Wed Apr 03, 2019 12:47 am
by professor_jonny
HI I have been playing around with the my Xbox and the bios and have realised none of the bioses are optimised specifically for Trusty and N64 modded motherboards with updated Microcodes to patch Eratta.

Eratta is basically bugs contained with in the processor that causes it to operate outside of what it is expected, this could be any thing up to lockups and crashes.
To give you an indication on what the microcode does below is a link to the intel Pentium 3 microcode Eratta that explains what these microcodes potentially fix:

ftp://ftp.jameco.com/Archive/Current-Te ... 196509.pdf

The retail bios images contain two Microcodes to support the two revisions of the stock coppermine processor with CPUID 686 and 68A for platform ID 10.

So I replaced the Microcodes with CPUID 6B1 and 6B4 suitable for the Intel pentium 3 Tualatin processor and tested it out and it seems to boot and run as expected.

So the process is rather easy all you have to do is unpack your chosen bios with XBtool or EVtool so you get a uncompressed kernel image that you can open it with a hex editor.

Once you have your Kernel image and your new and old Microcodes you can then open it with HxD for example and select all of the contents of the old microcode and search for the hex string and replace it with the new microcode, you can then repeat the process patching in the other microcode to support all variants of the Tualatin processor.

You can then repack the bios and test flash it to a spare bank on your modchip.

NOTE: I don't recommend you flash it directly to your TSOP or main bios after editing it just in case something goes wrong so you can recover if need be.

Of note I tried to add all four Microcodes to support all processors but the Xbox would only frag I suspect the bios I tested must be referenced top down or bottom up or something and the resulting kernel image would change in size by 4Kb causing addressing issues.

You can verify the microcode is active by running Linux and checking the microcode revision.

Re: N64/ Trusty CPU microcode bios update

Posted: Wed Apr 03, 2019 8:09 am
by professor_jonny
As a check after the Kenel is patched you can run MC extractor and verify the Microcodes afterwards are correct and only the two updated ones are installed and are not corrupt.

You can find MC extractor below:
https://github.com/platomav/MCExtractor/releases

The resultant kernel image after patching should be identical in size as all Microcodes for the P6 micro architecture are all 2kb

you can find the updated Microcodes here:
https://github.com/platomav/CPUMicrocod ... ster/Intel

if your bios is patched correctly the output to MC extractor will be like the below image but with the updated microcodes.
correct.jpg

Re: N64/ Trusty CPU microcode bios update

Posted: Wed Apr 03, 2019 6:23 pm
by GhostlyGamer
Necroing my account to say that this is freaking insane and you're awesome

Re: N64/ Trusty CPU microcode bios update

Posted: Tue Apr 16, 2019 10:48 am
by blighty
Excellent news!

which files should I be grabbing for my Trusty?
helpmeplease.jpg
helpmeplease2.jpg

Re: N64/ Trusty CPU microcode bios update

Posted: Wed Apr 17, 2019 6:15 am
by professor_jonny
defiantly the platform 10 codes as it is the socket 370 and micro mobilebga sockets we want to add support for.

Re: N64/ Trusty CPU microcode bios update

Posted: Thu Apr 25, 2019 11:18 pm
by arcam007
Hi professor_jonny,

Thank you for your work but where can i download modded bios ? I have Two modded XBOX from "N64 Freaks" : one with cpu @1ghz and another one with cpu @1,4ghz.

Thanks in advance,

Re: N64/ Trusty CPU microcode bios update

Posted: Sat Apr 27, 2019 10:03 am
by professor_jonny
arcam007 wrote: Thu Apr 25, 2019 11:18 pm Hi professor_jonny,

Thank you for your work but where can i download modded bios ? I have Two modded XBOX from "N64 Freaks" : one with cpu @1ghz and another one with cpu @1,4ghz.

Thanks in advance,
Sorry you won't find pre modded ones yet as it is relatively a new thing and I'm not wiling to distribute such material, I suggest you mod your own (it really is quite easy), or in due time someone may create a pack to download.

I'm not 100% sure but I believe the 1GHZ chip may not require updated microcodes as it may be covered by the stock ones, I have not really looked into that as I don't have one of these boards but they are the same formfactor and core so likely it won't need updating.

Re: N64/ Trusty CPU microcode bios update

Posted: Tue Apr 30, 2019 1:13 pm
by Geeba
Impressive work there!!

Re: N64/ Trusty CPU microcode bios update

Posted: Sat Aug 03, 2019 3:37 am
by arcam007
Finally i do it ! Thx a lot Professor 8)

Here is my setup:
Model: XBOX 1.0 CPU@1,4Ghz + 128Mo RAM
Modder: N64 Freaks
Modchip: Xecuter3
BIOS* : (512) x2_5035_67.bin

I update the microcode with the content of these files :

New microcode to update with the bios "(512) x2_5035_67.bin":

- cpu006B1_plat10_ver0000001C_2001-02-15_PRD_6506E1CF.bin
- cpu006B4_plat10_ver00000001_2002-01-10_PRD_58213E6A.bin

Old microcode inside the original bios:
- cpu0068A_plat10_ver00000001_2000-11-02_PRD_80FC9E3B.bin
- cpu00686_plat10_ver00000008_2000-05-05_PRD_EA2B7B61.bin

Step of the upgrade:

1- Unpack the bios with the tools "XBtool.exe" (press "unpack" button)
You get a folder with 3 files: 2bl.img, remainder.img, xboxkrnl.img
2- In the tool "HxD" open these files in several "tabs":
- xboxkrnl.img
- cpu006B1_plat10_ver0000001C_2001-02-15_PRD_6506E1CF.bin
- cpu006B4_plat10_ver00000001_2002-01-10_PRD_58213E6A.bin
- cpu0068A_plat10_ver00000001_2000-11-02_PRD_80FC9E3B.bin
- cpu00686_plat10_ver00000008_2000-05-05_PRD_EA2B7B61.bin
3- Modify the content of the bios from "HxD":
a - copy (ctrl-c) the content of the "tab" "cpu0068A_plat10_ver00000001_2000-11-02_PRD_80FC9E3B.bin"
b - from the "tab" "xboxkrnl.img" apply the content to find with ctrl-f / ctrl-v (select HEX value)
At this point microcode to update is highlighted
c - copy (ctrl-c) the content of the "tab" "cpu006B1_plat10_ver0000001C_2001-02-15_PRD_6506E1CF.bin"
d - from the "tab" "xboxkrnl.img" apply the new microcode in the highlighted zone with ctrl-v

repeat the operation for the microcode "cpu00686_plat10_ver00000008_2000-05-05_PRD_EA2B7B61.bin" to update with the new "microcode cpu006B4_plat10_ver00000001_2002-01-10_PRD_58213E6A.bin" in the "xboxkrnl.img"
e- test the modification under CMD with the tools "MCE.exe"
Use the command : MCE.exe xboxkrnl.img

-> CPU microcode BEFORE modification :

https://ibb.co/cyC8Qtm

-> CPU microcode AFTER modification :

https://ibb.co/7tssy2p

f- Repack the bios with the tools "XBtool.exe" (press "pack" button)
g- Flash your modded bios 8)

Thanks a lot for the professor

PS: It works for me with these BIOS:

- (256) iND-BiOS.5004.67.bin - Flash Test OK on Xecuter 3
- (256) iND-BiOS.5003.67.bin - Flash Test OK on Xecuter 3
- (512) x2_5035_67.bin - Flash Test OK on Xecuter 3 + TSOP (XBOX 1.0)
- (1024) x3_3294.bin - Flash Test OK on Xecuter 3

Re: N64/ Trusty CPU microcode bios update

Posted: Sun Oct 06, 2019 11:02 am
by TeleTubby666
Patched them into the X2 5035 Bios successully.

A have attached them here (Vanilla, VGA-Mod and Force480p Mod) if you want to use them.

Also, they are hex-edited to load the x2config.ini from C. If the files are not found on C, the BIOS will attempt to load from E as usual. Loading the config file from drive F will not work any more!

The files are set to read the HDD's parition table (offset 0x1b04 set to "0")

http://dl.go4up.com/dl/c06aa566862e0e

Hope someone can make use of it

Re: N64/ Trusty CPU microcode bios update

Posted: Tue Oct 08, 2019 10:06 pm
by nin1
1 Ghz Processor doesn´t need to be updated?

Re: N64/ Trusty CPU microcode bios update

Posted: Wed Oct 09, 2019 10:55 am
by professor_jonny
nin1 wrote: Tue Oct 08, 2019 10:06 pm 1 Ghz Processor doesn´t need to be updated?
I don't believe so as it is the same formfactor but I do not have a 1 GHZ to actually check the processor info from Linux to confirm.
I believe the chip they use is a BGA 495 (KC80526GY001256) or (KP80526GY001256) which both I believe are covered by the 68A microcode.