Jump to content
OGXbox.com

Searching for any and all Xcalibur information


empyreal96
 Share

Recommended Posts

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!!

 

Link to comment
Share on other sites

  • 3 weeks later...

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

Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 by empyreal96
Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
Share on other sites

(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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

Board Life Status


Board startup date: April 23, 2017 12:45:48
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.