empyreal96 Posted March 10, 2021 Report Share Posted March 10, 2021 As we all know the Xcalibur encoder in the 1.6 Xbox, was Microshafts in-house built chip.. No public documentation or anything. I'm wanting to find bits and pieces of info that may be round from old dead forum threads, randome files etc.. Sadly I have no Reverse Engineering and little coding know how to be able to pick a newer Kernel apart, but I am thinking I may be able to dump some info from my 1.6 itself while it's running. So if anyone has any ideas please post here!! Quote Link to comment Share on other sites More sharing options...
sweetdarkdestiny Posted March 10, 2021 Report Share Posted March 10, 2021 Check your PM's Quote Link to comment Share on other sites More sharing options...
empyreal96 Posted March 26, 2021 Author Report Share Posted March 26, 2021 So I haven't been able to dig up much, a couple of files that could be helpful seem to be dead links (mainly .txt files saying certain things like the Xcalibur/1.6 I2C stuff) One thing I am slowly looking into is seeing if I can figure out differences in a 1.6 capable Kernel and the source tree as I have an idea on the functions needed, hopefully any av registers can be extracted, and maybe xbox linux could help? But with no real coding experience it will take some time to piece it together Quote Link to comment Share on other sites More sharing options...
KaosEngineer Posted March 28, 2021 Report Share Posted March 28, 2021 On 3/26/2021 at 5:39 PM, empyreal96 said: So I haven't been able to dig up much, a couple of files that could be helpful seem to be dead links (mainly .txt files saying certain things like the Xcalibur/1.6 I2C stuff) Here's the xcalibur-i2c-startup.txt file (have to do a bit of digging around in the Wayback Machine to find it. xcalibur-I2C-Startup.txt 1 Quote Link to comment Share on other sites More sharing options...
empyreal96 Posted March 28, 2021 Author Report Share Posted March 28, 2021 5 minutes ago, KaosEngineer said: Here's the xcalibur-i2c-startup.txt file (have to do a bit of digging around in the Wayback Machine to find it. xcalibur-I2C-Startup.txt 16.76 kB · 0 downloads Oh you diamond thank you! That's one of the files I was curious in finding Quote Link to comment Share on other sites More sharing options...
KaosEngineer Posted March 28, 2021 Report Share Posted March 28, 2021 If you have the URLs of other content that's no longer accessible, I can try to dig them up. Quote Link to comment Share on other sites More sharing options...
empyreal96 Posted March 28, 2021 Author Report Share Posted March 28, 2021 Just now, KaosEngineer said: If you have the URLs of other content that's no longer accessible, I can try to dig them up. I'll keep that in mind thanks! Currently still on the digging theough many forums phase trying to compare any info with what I have code wise.. Recently saw someone theorizing that the Xcalibur was a rebranded Connexant chip as some av registers matched, but that could be coincidence/compatibility Quote Link to comment Share on other sites More sharing options...
KaosEngineer Posted March 28, 2021 Report Share Posted March 28, 2021 I found someone mention that it may be a rebranded SiS301C. Edit: https://xbox-linux-devel.narkive.com/muYBmAnE/xcalibur-codes And I found a decapped die picture on twitter posted by @Siliconinsid: 1 Quote Link to comment Share on other sites More sharing options...
empyreal96 Posted March 28, 2021 Author Report Share Posted March 28, 2021 (edited) 13 minutes ago, KaosEngineer said: I found someone mention that it may be a rebranded SiS301C. Edit: https://xbox-linux-devel.narkive.com/muYBmAnE/xcalibur-codes And I found a decapped die picture on twitter posted by @Siliconinsid: That's interesting, especially as another thought on the rumour mill was M$ used old/binned chips, and iirc around the time of the 1.6 being spotted SiS chipsets weren't as popular Nice for linking that link, I'll give it a proper tickle later, I guess any registers in the link would be in the `xcalibur-regs.h` file in xbox-linux.. I think I'll try compare that with any that's in the code I have and see if I can make sense of it, I do know that the Xcalibur chip is present at 0xE0 (focus = 0xD4, Conn = 0x8A) but that is all I properly know yet Edited March 28, 2021 by empyreal96 Quote Link to comment Share on other sites More sharing options...
empyreal96 Posted April 6, 2021 Author Report Share Posted April 6, 2021 So I have been trawling old x-s forum mirrors, found the original 1.6 thread and there are a few bits of interesting info: https://xbox-scene.xbins.org/forums/index.php/topic,1215.0.html These symbols were extracted from the "latest" 1.6 kernel at the time of the thread, may be handy to look at: AV: Conexant TV encoder _Conexant_CCRegisters Conexant_CCRegisters AV: Focus TV encoder _Focus_MacrovisionHamp Focus_MacrovisionHamp AV: XCalibur TV encoder _XCalibur_RSM53Regs _XCalibur_RSMRegs _XCalibur_RSMRegAddr XCalibur_RSMRegAddr XCalibur_RSMRegs XCalibur_RSM53Regs And some I have stumbled across when looking at the 5933 Kernel: AvpInitCurrentTvEncoder //Not present in available sources AvSendTVEncoderOption I also found Yoshi's asm code for one of his first patches for the xcalibur TV encoder.. // Notes from his post in the x-s link // // "Info Encoder ID : 8A=Conexant , 0D4=Focus & 0E0=Xcalibur " // // "..you need to make a new init table to be able to launch this bios" // // "Support Xcalibur in kernal 5530 extract by Yoshihiro" // .text:80014899 ; --------------------------------------------------------------------------- .text:80014899 .text:80014899 loc_80014899: ; DATA XREF: sub_800148F0+8o .text:80014899 mov eax, ds:xboxkrnl_322 .text:8001489E test ah, 4 .text:800148A1 mov dword_800377F0, offset loc_8001487F .text:800148AB jz short loc_800148BA .text:800148AD push 0Fh .text:800148AF push 4 .text:800148B1 push 4 .text:800148B3 push 0E0h ;ID ENCODER XCALIBUR IN 5530 .text:800148B8 jmp short loc_800148E6 .text:800148BA ; --------------------------------------------------------------------------- .text:800148BA .text:800148BA loc_800148BA: ; CODE XREF: .text:800148ABj .text:800148BA test al, 20h .text:800148BC jz short loc_800148D1 .text:800148BE push 20Fh .text:800148C3 push 2 .text:800148C5 push 0A0h .text:800148CA push 0D4h ;ID ENCODER FOCUS IN 5530 .text:800148CF jmp short loc_800148E6 .text:800148D1 ; --------------------------------------------------------------------------- .text:800148D1 .text:800148D1 loc_800148D1: ; CODE XREF: .text:800148BCj .text:800148D1 push 3Fh .text:800148D3 push 1 .text:800148D5 mov dx, 80D3h .text:800148D9 mov al, 5 .text:800148DB push 0BAh .text:800148E0 out dx, al .text:800148E1 push 8Ah ;ID ENCODER CONEXANT IN 5530 .text:800148E6 .text:800148E6 loc_800148E6: ; CODE XREF: .text:800148B8j .text:800148E6 ; .text:800148CFj .text:800148E6 call sub_800146D1 .text:800148EB mov al, 1 .text:800148ED retn 4 .text:800148F0 For now I am not going to try make sense of this, still learning the basics of this, and just trying to info gather Quote Link to comment Share on other sites More sharing options...
empyreal96 Posted April 6, 2021 Author Report Share Posted April 6, 2021 (Forgot to add in last post and can't edit) I did decomp into IDA psudocode most functions in the 5933 Kernel, but I do need to go over it and learn how to improve ida's output.. This one is for AvpInitCurrentTvEncoder https://www.github.com/Empyreal96/xboxkrnl-IDA-decomp-test/tree/main/Functions%2FAvpInitCurrentTVEncoder.c Every other function is in the repo's tree Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.