PDA

View Full Version : Xenoborg Official Discussion


Pabolo
June 18th, 2011, 12:45
blueshogun96 apparently making new emulator (Xenoborg), which will playing games like Midtown Madness 3 :drool: etc.. Are there any new news about this program?

Hard core Rikki
June 18th, 2011, 13:54
I don't recall his progress was continued under the Xenoborg name, given he's been contributing his work to cxbx.

Pabolo
June 18th, 2011, 14:47
It should wash away your doubt :):

Blueshogun's Xenoborg Dev Blog (http://www.xenoborg-emu.blogspot.com/) - Official Site

blueshogun96
June 18th, 2011, 23:28
I don't recall his progress was continued under the Xenoborg name, given he's been contributing his work to cxbx.

Looks like someone hasn't been following the blog :)

Btw, I already have a forum home for this project.

Bill_gates
June 19th, 2011, 16:40
speaking of blogs any chance of a new blog post coming soon?

Pabolo
June 20th, 2011, 09:39
I'm just waiting for some new news from the Xenoborg :)

I might even help blueshogun96's in realization this project, but... I have no time :(

blueshogun96
June 22nd, 2011, 00:07
speaking of blogs any chance of a new blog post coming soon?

Yeah, but it's going to be some bad news :(

Bill_gates
June 22nd, 2011, 06:08
that sucks :( hope its not a show stopper...

ssj4bq
July 28th, 2011, 02:17
I have compiled and posted on the board "Forum & Emulation News Discussion" Xenoborg, link down:

Compiled:

*nuked*



PS: Blueshogun sorry if I made something wrong in posting already compiled.

JayFoxRox
July 28th, 2011, 05:08
Last time [about 5 minutes ago...] I checked the repo at code.google, it was mostly dummy files. Is there a private or shadow repo which has anything different on it?
If not: What does this even do?
With only a handful of kernel exports, no graphics emulation etc. this shouldn't be much more than a xbe-loader with some x86-interpreter and unnecessary patcher attached to it... - So why would anyone need a binary (yet)?

blueshogun96
July 29th, 2011, 00:51
Removed link, for reasons I will explain later. Have to leave very soon.

ssj4bq
July 29th, 2011, 17:50
Removed link, for reasons I will explain later. Have to leave very soon.

could explain why this topic or in your blog "xenoborg"?

As for your code, I understand (if you're wrong can correct me), this very truncated:

1) You call it. EXE, 2) it calls the process of DX, 3) the DX GUI API calls, 4) the GUI API is programmed instructions to open an XBE and 5) XBE's time to run the "CRITICAL ERROR INSIDE MEMORY "I understand. Is that right?

I think the only reason to have started a new emulator would not SYSWOW membership of 64.

Cause I really think I should not have compiled no, actually I could not even call it the source, has nothing necessarily the code. = /

Sorry Blueshogun else was trying to help see if anyone is interested in your code open source, although the same have much truncated and almost nothing really interesting in my opinion. :thumb:

blueshogun96
July 30th, 2011, 21:29
I appreciate your interest, but the reason I removed that link was because I already have a forum for this project elsewhere. Last time something of this nature happened, I got into some huge trouble and almost lost it.

As for the reason I started this, HLE is inadequate and not the best way to emulate Xbox.

Stewie
August 4th, 2011, 23:33
Just a Question, Since the Xbox uses PC hardware e.g. Pentium III and a Geforce Graphics Card, Would it not be Possible to Run the XBOX Operating System in a Virtual X86 Machine.

JoaoHadouken
August 6th, 2011, 01:30
Yeah... I think it would be possible, but I think that's not legal, because the Xbox 360 OS is a intellectual property of Microsoft. And even if there is a hole in the law about this... Microsoft would make rain knives on your head (and in your $ pocket $ :lol:) until you stop producing/improving this kind of software.

Anyway, this way of "emulate" consoles wouldn't give the programmer that feeling of power when a game is running under his emulator :P

LoRd_SnOw
August 6th, 2011, 03:37
Just a Question, Since the Xbox uses PC hardware e.g. Pentium III and a Geforce Graphics Card, Would it not be Possible to Run the XBOX Operating System in a Virtual X86 Machine.

That pretty much sums what cxbx, dxbx and xeon does. There are similarities, but there also a lot of custom stuff from the so called "Pentium 3" processor that the original Xbox has, like a few different instructions... Sounds easy? guess again, emulating a p3 is very complex and from what i understand not very well documented, with that said emulating that custom p3 for the xbox is pretty much next to impossible at this point with out some reverse engineering.

The problem with these emulators is that even though the XBE format comes very close to acting like an normal executable, there are just plenty of custom xbox direct3d calls that just aren't found in directX.

Yeah... I think it would be possible, but I think that's not legal, because the Xbox 360 OS is a intellectual property of Microsoft. And even if there is a hole in the law about this... Microsoft would make rain knives on your head (and in your $ pocket $ :lol:) until you stop producing/improving this kind of software.

Anyway, this way of "emulate" consoles wouldn't give the programmer that feeling of power when a game is running under his emulator :P

What are you on? oO

JayFoxRox
August 6th, 2011, 11:28
JoaoHadouken: We were talking about xbox 1, also get your facts straight..

That pretty much sums what cxbx, dxbx and xeon does. There are similarities, but there also a lot of custom stuff from the so called "Pentium 3" processor that the original Xbox has, like a few different instructions... Sounds easy? guess again, emulating a p3 is very complex and from what i understand not very well documented, with that said emulating that custom p3 for the xbox is pretty much next to impossible at this point with out some reverse engineering.

The problem with these emulators is that even though the XBE format comes very close to acting like an normal executable, there are just plenty of custom xbox direct3d calls that just aren't found in directX.

Cxbx, dxbx and xeon are software emulators - not actual xbox emulators. Which is also why I personally call them XTL software emulators.
Xenoborg is said to be a low-level-emulator (to me, this sounds like a hardware emulator), yet to me, it looks like another kernel-emulator too with some XTL parts slapped ontop. Personally, I still don't really get where Xenoborg is going to be or what it is.

The Pentium 3 is AFAIK stock.
No modifications it seems. Even normal CPUID and very old features which should have been stripped. Maybe the CPU would have been different if things had worked out with AMD. But the intel CPU in the final product seems to be unmodified.

Emulating Pentium 3 software without timing is rather easy. It's just a lot of work. But it can easily be done within a few days I believe. The architecture is very well documented and if you knew it before it all comes down to writing the code. The hard part is probably making a good emulator which is not only fast, but also accurate. Timing and interrupts are probably going to be pretty hard. Also memory segmentation [which is not necessary for XTL titles due to the use of flat memory] is very costly in emulation.

Personally I would say that the xbe is far more away from exe than the xbox d3d is away from the normal d3d8. But you are comparing oranges and apples here.

Also, xbes would - and could - not be emulated be anymore when emulating the hardware. It's the firmwares job to load the xbe.
Also, d3d would not have to be emulated anymore.
As cxbx and co. are simply trying to find d3d functions in memory this is what they try to emulate. However, these d3d functions would normally write to the nv2a (which is a 'custom' graphics processor) which would in turn draw stuff.
The nv2a seems to be built as opengl hardware (but I still think that it would be easier to emulate it using direct3d - shogun thinks otherwise) and it should also be rather easy to emulate it.

The problem with hardware emulation is that you could not ignore much about the hardware or the firmware won't even start. While we know a lot about some pieces of hardware we don't know much about others.
Also most of these machine emulators are way too slow to be of any use for now.

Personally I considered using qemu as a base for my emulator too because it allows you to connect anything to the PCI bus as you wish, it's ok-ish speed wise, portable and it's probably not too hard to write custom hardware. However, before you even see or hear anything you would have countless hours debugging the (huge) firmware.

My approach now is to do kernel level emulation (which is lower level than the XTL by a good bit) with all necessary hardware emulation. Once that does work stable enough I'll just try to add hardware support to the high level functions of my own emulator-kernel. Once that works too one could simply drop the kernel emulation layer and run xbe's straight away.
At that point you would have to rewrite basicly everything of the emulator so it supports all interrupts, timing, paging / segmentation etc.
And once that is done you can add the remaining hardware and hardware features to do a full firmware emulation. However, due to the complexity of the hardware this is VERY unlikely to happen.

JoaoHadouken
August 6th, 2011, 12:29
Sorry sorry... I was seeing a xbox 360 new in a website and then i jumped to here... I can't believe that I talked about the xbox 360 OS... I mean the original xbox OS. Really sorry!

The method I thought that you had in mind was to make an image of the xbox 1 HD and then install it on a virtual machine... for example, if you can run linux on a xbox, you can use a linux program which makes the image of an HD and then take this image to put on a VM.

That's why I said that MS would do everything to turn off your program.

LoRd_SnOw
August 6th, 2011, 20:27
JoaoHadouken: We were talking about xbox 1, also get your facts straight..



Cxbx, dxbx and xeon are software emulators - not actual xbox emulators. Which is also why I personally call them XTL software emulators.
Xenoborg is said to be a low-level-emulator (to me, this sounds like a hardware emulator), yet to me, it looks like another kernel-emulator too with some XTL parts slapped ontop. Personally, I still don't really get where Xenoborg is going to be or what it is.

The Pentium 3 is AFAIK stock.
No modifications it seems. Even normal CPUID and very old features which should have been stripped. Maybe the CPU would have been different if things had worked out with AMD. But the intel CPU in the final product seems to be unmodified.

Emulating Pentium 3 software without timing is rather easy. It's just a lot of work. But it can easily be done within a few days I believe. The architecture is very well documented and if you knew it before it all comes down to writing the code. The hard part is probably making a good emulator which is not only fast, but also accurate. Timing and interrupts are probably going to be pretty hard. Also memory segmentation [which is not necessary for XTL titles due to the use of flat memory] is very costly in emulation.

Personally I would say that the xbe is far more away from exe than the xbox d3d is away from the normal d3d8. But you are comparing oranges and apples here.

Also, xbes would - and could - not be emulated be anymore when emulating the hardware. It's the firmwares job to load the xbe.
Also, d3d would not have to be emulated anymore.
As cxbx and co. are simply trying to find d3d functions in memory this is what they try to emulate. However, these d3d functions would normally write to the nv2a (which is a 'custom' graphics processor) which would in turn draw stuff.
The nv2a seems to be built as opengl hardware (but I still think that it would be easier to emulate it using direct3d - shogun thinks otherwise) and it should also be rather easy to emulate it.

The problem with hardware emulation is that you could not ignore much about the hardware or the firmware won't even start. While we know a lot about some pieces of hardware we don't know much about others.
Also most of these machine emulators are way too slow to be of any use for now.

Personally I considered using qemu as a base for my emulator too because it allows you to connect anything to the PCI bus as you wish, it's ok-ish speed wise, portable and it's probably not too hard to write custom hardware. However, before you even see or hear anything you would have countless hours debugging the (huge) firmware.

My approach now is to do kernel level emulation (which is lower level than the XTL by a good bit) with all necessary hardware emulation. Once that does work stable enough I'll just try to add hardware support to the high level functions of my own emulator-kernel. Once that works too one could simply drop the kernel emulation layer and run xbe's straight away.
At that point you would have to rewrite basicly everything of the emulator so it supports all interrupts, timing, paging / segmentation etc.
And once that is done you can add the remaining hardware and hardware features to do a full firmware emulation. However, due to the complexity of the hardware this is VERY unlikely to happen.

Wow thank you for explaining this, there were quite a bit of things i didn't know.

At the moment, i'm experimenting with the Xbe file format and trying keep track of what i know so far on my blog. Sorry, if i said anything wrong, i'm not well-versed. :p

May i ask where did you get your documentations, or is this completely based on your own personal knowledge?

blueshogun96
August 11th, 2011, 10:02
JoaoHadouken: We were talking about xbox 1, also get your facts straight..



Cxbx, dxbx and xeon are software emulators - not actual xbox emulators. Which is also why I personally call them XTL software emulators.
Xenoborg is said to be a low-level-emulator (to me, this sounds like a hardware emulator), yet to me, it looks like another kernel-emulator too with some XTL parts slapped ontop. Personally, I still don't really get where Xenoborg is going to be or what it is.

The Pentium 3 is AFAIK stock.
No modifications it seems. Even normal CPUID and very old features which should have been stripped. Maybe the CPU would have been different if things had worked out with AMD. But the intel CPU in the final product seems to be unmodified.

Emulating Pentium 3 software without timing is rather easy. It's just a lot of work. But it can easily be done within a few days I believe. The architecture is very well documented and if you knew it before it all comes down to writing the code. The hard part is probably making a good emulator which is not only fast, but also accurate. Timing and interrupts are probably going to be pretty hard. Also memory segmentation [which is not necessary for XTL titles due to the use of flat memory] is very costly in emulation.

Personally I would say that the xbe is far more away from exe than the xbox d3d is away from the normal d3d8. But you are comparing oranges and apples here.

Also, xbes would - and could - not be emulated be anymore when emulating the hardware. It's the firmwares job to load the xbe.
Also, d3d would not have to be emulated anymore.
As cxbx and co. are simply trying to find d3d functions in memory this is what they try to emulate. However, these d3d functions would normally write to the nv2a (which is a 'custom' graphics processor) which would in turn draw stuff.
The nv2a seems to be built as opengl hardware (but I still think that it would be easier to emulate it using direct3d - shogun thinks otherwise) and it should also be rather easy to emulate it.

The problem with hardware emulation is that you could not ignore much about the hardware or the firmware won't even start. While we know a lot about some pieces of hardware we don't know much about others.
Also most of these machine emulators are way too slow to be of any use for now.

Personally I considered using qemu as a base for my emulator too because it allows you to connect anything to the PCI bus as you wish, it's ok-ish speed wise, portable and it's probably not too hard to write custom hardware. However, before you even see or hear anything you would have countless hours debugging the (huge) firmware.

My approach now is to do kernel level emulation (which is lower level than the XTL by a good bit) with all necessary hardware emulation. Once that does work stable enough I'll just try to add hardware support to the high level functions of my own emulator-kernel. Once that works too one could simply drop the kernel emulation layer and run xbe's straight away.
At that point you would have to rewrite basicly everything of the emulator so it supports all interrupts, timing, paging / segmentation etc.
And once that is done you can add the remaining hardware and hardware features to do a full firmware emulation. However, due to the complexity of the hardware this is VERY unlikely to happen.

Okay, it looks like I'll be the one to say it...

You make alot of claims, but how much of this are you really capable of? I don't mean this as an insult, but for someone who just learned what a pointer was, like a year ago or maybe more, you sure do come off with a rather narcissist attitude. I'm just curious, how many emulators have you written in the past? Quite frankly, there may be much we can learn from each other and I don't claim to be better than anyone else, but so far, I'm still not convinced that you are as skilled as you claim. You have a few good here, and that's about all you have so far.

JayFoxRox
August 17th, 2011, 09:37
Post moved to pm in reply to shogun.

LoRd_SnOw
August 17th, 2011, 21:26
Very impressive! i see you're the mystery man i've heard so much about :)

I wish you the best of luck, it looks like you're headed in the right direction. I only wish i knew so much but all i'm settling atm is learning more about Xbe's. Oh, well i'll keep trying. :p

Frog186
August 18th, 2011, 03:27
Hi All I just wanted to say even though I am a beginner and not an expert I will try and make an xbox emulator in my sparetime I know I am not a pro at making an emulator like most of you all in this forum so I am going to make one in autoplay media studio 8 it might be crappy but at least I tried I can't program in my sparetime because I have other things to do in general and in private I know what your going to tell me that is a piece of crap software but I don't care most people care and most people don't but I have to give it alot of credit on my part and yours as well.

JayFoxRox

Hi I just wanted to say to you great luck on your part as well I appreciate others who keep xbox emulation alive and not dead maybe I will play emulator and then focus on what needs to be achieved I wish others can follow dxbx, cxbx, and your emulator too as a whole I know most people are busy but more people might follow I have one question are you making your emulator for windows xp, windows vista, and windows 7 I have a windows vista x64 also are you making the graphics in opengl or directx? well talk with you later on see ya later.

blueshogun96
August 20th, 2011, 01:18
Alright, I think he's proven his point :)

patrickvl
September 9th, 2011, 07:57
Okay, it looks like I'll be the one to say it...

You make alot of claims, but how much of this are you really capable of? I don't mean this as an insult, but for someone who just learned what a pointer was, like a year ago or maybe more, you sure do come off with a rather narcissist attitude. I'm just curious, how many emulators have you written in the past? Quite frankly, there may be much we can learn from each other and I don't claim to be better than anyone else, but so far, I'm still not convinced that you are as skilled as you claim. You have a few good here, and that's about all you have so far.

I'm just quickly hopping by, but do take a look at these screenshots made by JayFoxRox (the guys doesn't say much, but he does show amazing progress - I wish he published his code so other motivated and capable people could join in) :

These where made on 2011-08-02 :
*nuked*

Two days later and he's got this, which to me shows amazing progress :
*nuked*

It seems he's also been working on Chihiro support : *nuked*

I think he doesn't really need to prove anything - JayFoxRox is the man to follow if you want a portable xbox emulator :D

JayFoxRox
September 9th, 2011, 10:08
Ah didn't want those screens to be on the emu pages yet because attention is usually causing more trouble than good.
(Also, it gives that special feeling to people who found them on their own :P)

But yep, mostly doing Chihiro related work at the moment [that will mostly happen on ASSEMblergames it seems].
I already wrote some tools for GDROM decryption, extraction, security PIC dump generation, partly bios emulation, firmware parsing and such things. Also, I started work on an chihiro loader for the xbox. I just received my new Geforce 2 [1 euro on ebay!] so I can increase my RAM. Luckily a friend gave a second xbox to me too so I always have a backup unit.

On the emulation-front I also started LLE of the startup code too now but OHCI is still missing.

Right now I'm busy with University anyway. So I won't be doing any further work until (at least) October.
However, I'm still looking for a cheap Chihiro for research now and then [I know how to write to the DIMM and RAM via network, also I can build my own security PICs so I should be able to run all my dumps + homebrew test software].

//Edit: Oh. Forgot to mention that I'm also trying to get in touch with Noxa again regarding xbox 360 and xbox kernel emulation [That does NOT mean I'm going to work on xbox 360 [I might do, but it won't be much]. But I think that these 3 systems have so much in common, that we could work together on some parts].
//Edit: Also I didn't want to hijack the thread..

blueshogun96
September 10th, 2011, 04:12
I'm just quickly hopping by, but do take a look at these screenshots made by JayFoxRox (the guys doesn't say much, but he does show amazing progress - I wish he published his code so other motivated and capable people could join in) :

These where made on 2011-08-02 :
*nuked*

Two days later and he's got this, which to me shows amazing progress :
*nuked*

It seems he's also been working on Chihiro support : *nuked*

I think he doesn't really need to prove anything - JayFoxRox is the man to follow if you want a portable xbox emulator :D

Hey Patrick,

Glad you could stop by and see how things are going. I removed the screens by JayFox's request out of respect for his work. I'm sure you understand.

The reason I questioned his abilities was because I've seen alot of people who make claims but really don't have the skills to back up their claims. While I think he's on a distinguished road, I do believe that the hardest part for him is just beginning. I can't wait to see how well he handles emulating the soundstorm among other things.

My hope is that we can double up on the Xbox front and with friendly competition we can learn more from each other and what not. I do want to see JayFox do well on his emulator.

Another thing, I never did get around to saying this, but I've completely trashed my other implementation well over a month ago because now is not a good time to be repeating previous emu author's "mistakes" by cutting corners. If there's one thing pseudonymn from PCSX2 land taught me, it's to learn from history so I'm not doomed to repeat it. I'm not trying to steal the spotlight here, but I've adopted a pre-existing x86 core to move things along since I don't have all the time in the world (GPL of course). I'm giving libemu a shot since it's easy to manage (although not guaranteed to be sufficient or even usable) and it appears to be working ok, except I have to implement a double handful of missing instructions myself and I had to change the memory paging code to use a flat memory model to work properly. As far as other hardware goes, I was fortunately able to move over some of my previously written code that I started but never really had time to finish. So don't count me out of the portability window just yet because I'm going to be getting a Macbook pro soon and I obviously plan on porting my emu to that. I know I haven't done any recent blog updates, but I'm waiting until I reach a certain milestone before I do that AND update the google code page. Right now, my code isn't well organized, and quite frankly, it's a bit buggy and embarrassing :emb:

@JayFox, you don't have to answer this if you don't want to, but I'm curious as to how you've been emulating the kernel. Are you using HLE and patching any code that references DS:0x80000xxx or something like that, or are using the actual BIOS/xboxkrnl file? Hope that made sense.

Bill_gates
September 13th, 2011, 21:51
I'm just quickly hopping by, but do take a look at these screenshots made by JayFoxRox (the guys doesn't say much, but he does show amazing progress - I wish he published his code so other motivated and capable people could join in) :

These where made on 2011-08-02 :
*nuked*

Two days later and he's got this, which to me shows amazing progress :
*nuked*

It seems he's also been working on Chihiro support : *nuked*

I think he doesn't really need to prove anything - JayFoxRox is the man to follow if you want a portable xbox emulator :D

glad you were able to stop by for a bit :D
ive also seen some of jayfoxrox's work and hes definitely the real deal