Hacker News new | past | comments | ask | show | jobs | submit login
Xenia: Xbox 360 Emulator (2022) (xenia.jp)
125 points by Philpax on July 12, 2023 | hide | past | favorite | 64 comments



I'm not a religious person but folks that produce emulators are doing gods work.

Xbox 360 as a whole is in a half dead state nowadays. It is partially supported by Xbox One/Series X/S and if you want to get specific non supported titles to play, it is generally via rapidly aging, not very well built hardware.

I have a series E 360 I bought last year dirt cheap as a way to get to a lot of titles no emulator currently supports.

So Xbox Live is still supported but the store it is stuck in a partially preserved 2015 state, advertising Xbox One and a few upcoming titles.

You can still buy a lot of titles at reasonable prices, but you also get situations were you can download the demo - offer to upgrade to the full version but it no longer exists in the store.

There is a large amount of video streaming apps offered but are so old they cannot connect to the servers. Internet explorer is on there but the TLS certificates are all expired, so unless the site comes over pure HTTP - nothing happens.

BUT the MS Video store, still works and with recent releases! It is kind of neat to see in action and they build the service with legacy support. While only a maximum of 1080p, the image quality is pretty good for what is being offered.

I do wonder how much longer these things will limp along for but I suspect it won't be much longer.

With the poor hardware quality on both Xbox and Ps3, emulation is quickly becoming the main way that any of these titles will be playable.


I agree. Some games (GTA) are losing the original music due expires music licenses and it totally changes the character and feel of the game. Thank good for people archiving these games.


Sonic 3 (and related Sonic 3 & Knuckes) can’t come out as a re-release because Michael Jackson contributed to the soundtrack, but was uncredited.


It has been re-released in Sonic Origins although they did change the soundtrack.


Are you saying that already purchased games have code that stop playing included music tracks after a certain date?


Game versions are locked to a specific console, on a generation with some faulty hardware. The trend nowadays is to re-release games for newer generation.

The re-release is technically a different game, so it might require another music license, so it might not have the same soundtrack, it changes the feel of the game.

The old console has its time ticking.

Without emulators, that game experience won't be preserved, its simply at the whims of executives which don't really care enough about such small details for re-releases because the name of the game is usually enough to make some bucks.


I started playing Chrono Trigger during the pandemic and found multiple versions of it. The SNES version is still what I found most people recommend. The score/soundtrack apparently got worse as new versions were being rolled out to different platforms.


No, they have publishers that release updates which just make games worse.


The 360 version of GTA San Andreas was originally a backwards-compatible download of the game as it existed on OG XBOX, but some years later it was “””updated””” to a console port of the smartphone port of the game, losing many music tracks in the process. Everyone lost their saved progress too since the new mobile version wouldn’t read the old saves.


Oh yeah, you fire up Vice City - the first track in the games should be Michael Jackson... nope, gone!


If I remember correctly it was Mr. Mister - Broken Wings used in the intro sequence?


Same goes for GTA4.

Sad that the steam version has no none of the original.


I think crazy taxi might be the same


I heard once that Xbox one supports 360 games by using emulation. Is this true?


Former Microsoft employee here who occasionally had reason to work with the emulation team. It’s truly a thing of wonder and I hope they do a public talk on it someday. There are so many crazy tricks they’ve done that deserve recognition.


If I was to wager a guess... they are using a form of static recompilation. This is why they need to have the binary downloaded to function.

It would also explain how they could reconcile the differences between the PPC floating point length and the x87 code on Xbox One/X/S for specific titles.

They aren't so much pure emulation as they are binary conversions with intermediate interpreter for API calls (GPU/APU/IO etc). Combine this with splitting the 6 threads across 6 cores instead of the original 3 cores and this is how they could get reasonable performance out of the Jaguar chip.

There would be a lot more to it than that but that is just my basic theory. Would also explain the slow roll out.

I think this is the same thing they would have done getting the original Xbox onto the 360. But just a theory.


To add to this another little theory I have about the original Xbox compatibility.

When Xbox first came out MS wasn't too strict on the TRC of titles, this is why you saw some stuff that seemed to punch above their weight. Wreckless released in early 2002 was pushing the pixel shaders hard and in a way not really seen much elsewhere on the system. This isn't it looking at it's best but it give you a vague idea.

https://www.youtube.com/watch?v=zHyuFBMs78E

But I suspect that as the relations between Intel and Nvidia soured, MS realize they didn't have a great path toward backward compatibility ahead of them. By enforcing the TRC more and pushing things like XNA they could at least focus the games so that emulation via PPC wouldn't be such a huge task. So you had things like Halo 2 and Doom 3 get support long before a lot of earlier titles, if they ever got support.


XNA died when the people behind it left, thus the C++ side won once again, and DirectXTK was born as replacement.

https://walbourn.github.io/directxtk/

Years later they kind of sponsored Monogame, when they were recovering from XBox One mess,

https://news.xbox.com/en-us/2016/03/14/letter-chris-charla-i...

By the way, I think one of these episodes talks about the emulation, but I am not certain if it was on this podcast I heard about it.

https://theretrohour.com/?s=xbox


Yes.

Number of games that are backward compatible out of the total released [0]:

Xbox : 63/996 (6.32%)

Xbox 360: 633/2154 (29.38%)

As you can see the numbers are very disappointing.

[0] https://en.m.wikipedia.org/wiki/List_of_backward-compatible_...


It's worth noting that those numbers are partially because of licensing, not just technical constraints.

All of the original publishing contracts allowed Microsoft to sell Xbox/Xbox 360 games on those systems specifically, so Microsoft had to seek permission from each and every relevant third party publisher before making each title backwards compatible.

From what I understand original Xbox compatibility on the 360 was similar, with 462/996 games ultimately being compatible "officially" (https://en.wikipedia.org/wiki/List_of_Xbox_games_compatible_...). But with a jailbroken system compatibility is actually a fair bit better (https://consolemods.org/wiki/Xbox_360:Original_Xbox_Games_Co...).

Afaik there is no similar jailbreak for Xbox one/series, but if anyone ever does manage to get their internal emulator running with arbitrary titles I wouldn't be surprised if a lot more games work than their official numbers suggest.


I don't understand why contracts don't include provisions that allow Microsoft or other console manufacturers to emulate or have the game run on future consoles. Surely it'd be in the publishers interest to keep the game alive?


publishers want to resell the games at full price. your copy from 2002 still working conflicts with that motive. hell, they don’t even want to sell it to you these days. they’d much prefer you rent.


I work at Microsoft but have no inside knowledge. Presumably that wasn’t a consideration at the time? I suspect it is today, since games released for Xbox One can also be purchased on Series S/X…


What happens when you weight it for sales numbers? Personally I've only ever had one 360 game not be compatible with my xbone.


Yep, it's an emulator codenamed fission:

https://emulation.gametechwiki.com/index.php/Fission


the real question i wonder is how do they even know what to write in code for building an emulator? are they ex employees that know the internals of xbox. how can you build an emulator for something you dont have access to (i assume all the software is proprietary)


Homebrew is important so you can slowly build up a battery of tests and compare to real hardware. In fact that's arguably more important than any insider knowledge because insiders have a remarkably incorrect view of the systems they build compared to people who spend years looking at it as a hobby. Insiders are ultimately very driven by the deadlines and pressures of shipping commercial systems and their knowledge only has to be good enough against all the other competing concerns.


I will preface this with - I have never done it.

It looks like a decade long game of trail and error.

I suppose you start at the basics, getting an interpreter purely for CPU code. So PPC to x86 code. Then onto more complex stuff like floating point VMX to x87. Once you have basic code processing, every time a line of code comes up that cannot be interpreted, you figure out what it does and then build the appropriate interpreter. Do this again and again and you would gain some basic function.

Basically just try running game code and keep plodding away like this until it works. Like giant bug hunt for 100,000 bugs. Very Tedious but necessary work. As for optimizing for performance, that is just black magic.


Judging from what i see people do on a couple of OG Xbox Discord rooms, i'd guess the biggest contributor would be reverse engineering the existing software (games, etc) using tools like Ghidra (and whatever was common for reverse engineering before it). After that you build a bunch of tests that you can try to run on the original hardware and compare with the emulator (e.g. this[0] repository contains a bunch of tests written against the open source nxdk SDK for the original Xbox - note that the effort goes back to very early 2000s and it is only in recent years that you could call it usable for more than basic things[1] - and the author often contributes tests to specific issues with the Xemu emulator[2] comparing it with the real Xbox).

[0] https://github.com/abaire/nxdk_pgraph_tests

[1] though nxdk/freexdk/openxdk had to "compete" with the leaked XDK that a lot of homebrewers used so there was much less incentive to contribute to the open source one

[2] https://xemu.app/


Moving parts (other than RRoD) are the major reason for failure. HDs are among the worst offenders. The PS3 has a full SATA compatible drive slot and easy data transfer instructions. Designed to be owner accessible. Mine has a SSD now. Not so much on the 360 part, and my Jasper’s (hw rev) hard drive is not sounding great. There are utils for emulating the insane drive ID and custom boot block but why am I required to jump through such hoops.


Oh yeah, when I picked up my 360 and Ps3 recently, just judging by the time frames of the models and how little save games were on it - they didn't have a hard life.

My Ps3 only had save games for a WWE game and GTA 5 from 8 years ago. I figured if I could get 2 years out of these things that would be more than I could ask for. Storing these so the HDD's are stacked sideways can also help prevent head crashes. But that plan looks more like urban legend hyper mileing than anything that will make these last. Maybe it will buy a few months but then it puts more stain of the DVD/Bluray drives.

An SSD for the Ps3 will be the next step. The 360 because it is the E model actually has a reasonable solution. It has a 4GB internal storage that takes over if the HDD is removed. Then you can just store games on an external USB drive. It isn't amazing but it would work. I just worry about these things over heating because even the series E's would red ring with enough time.


While I agree, I also am happy to hear this. For example, the Xbox 360 was released in November, 2005.

For it to still be somewhat functional, 18 years later - is a testament that Microsoft somewhat cares(cared.)

Nintendo side, wiiu, 3ds, etc are all dead for their e-store, but the hardware is solid. Homebrew is alive, sure but offically, no. And they all have similar release dates.


Then there is the problem that the emulated games can't connect to their servers or verify their DRM so they run in demo mode. Every Extra Extend Extreme is one example, frustrating as I own this one.


What's the best bet for getting an X360 emulator that works with little hassle on Linux? I've not had the best of luck in this space.


I bought MX vs ATC Alive game was 40 Euro and you had to buy DLC to get extras. It was trst back then. But right not, I have half of the game...


My company pays an obscene amount of money for Charon VAX on Windows.

I have my own VMS install on SimH, which is free.

https://www.stromasys.com/solution/charon-vax/


Well, there is a difference between a commercial product and a free product. I have a page on my website: https://stanq.com/open-source where I cover the differences.

Take a look and let me know if there's something missing...


Xenia is really great! Fwiw - this[0] is the more popular fork - stable, greater compatibility with games etc

[0]https://github.com/xenia-canary/xenia-canary


If anyone has gotten the leaked XBLA version of Goldeneye 64 to run on Xenia on Ubuntu please share what you did to get it to work! I want to play it so bad and nothing I tried has worked. I asked on Reddit and they deleted the post for asking about a leaked game.


I have run it on Windows without requiring any special configuration/workarounds etc. Part of the issue may be your hardware specs - for example, I could never get it to run on an AMD GPU, but it ran fine on Nvidia GPUs for me. This may no longer be the case, but was the case for me around the time the leak came out.


It works fine for me using Wine on EndeavorOS. All I had to do was edit xenia.config.toml, specifically replace "any" with "vulkan" for the gpu option. It also works natively but I haven't tried a native build yet.


ooh okay great thank you! I will check that out.


It just works for me on the Steam Deck too


Xenia is certainly an impressive piece of software. I do wish they'd implement some creature comforts, like a settings GUI and an emulation speed display.


I thought there was already an Xbox 360 emulator called Windows 7


The Xbox 360 ran on a triple-core PowerPC.

It was not an x86 architecture, and would have required an emulator to run x86 Windows 7. I also never owned one.

https://en.m.wikipedia.org/wiki/Xbox_360

Windows NT 4 had a POWER port. This was discontinued when Windows 2000 arrived. If Microsoft wanted to release another version for POWER, they could easily do so.

https://en.m.wikipedia.org/wiki/Windows_NT

"Windows NT 3.51 added support for the PowerPC processor in 1995, specifically PReP-compliant systems such as the IBM ThinkPad Power Series laptops and Motorola PowerStack series; but despite meetings between Michael Spindler and Bill Gates, not on the Power Macintosh as the PReP compliant Power Macintosh project failed to ship."


The best way to get information online is to say the wrong thing. Kudos for enlightening me on this topic!


Actually, Sony and Nintendo were also on POWER at this stage. Sony ran a particularly exotic variant, the "Cell" processor; this used a single POWER core that was tied in a ring architecture to several specialized coprocessors.

https://en.wikipedia.org/wiki/Cell_(processor)

For the next generation of consoles, AMD's integration of ATI graphics onto a single die CPU/GPU/APU proved irresistible, and both Sony and Xbox switched to AMD x86 variants. The Nintendo Switch adopted the Nvidia Tegra ARM architecure.

IBM essentially had one generation of consoles. I don't know why they didn't fight harder for this market.


Compatibility is pretty poor. No support for Forza 2-4, Gears of War 2 or 3, Lost Odyssey or Blue Dragon. And controller support is broken on Oblivion and many other titles requiring another app to fix.


Forza 3 and 4 are on windows. 1 and 2 aren’t


Forza Horizon 3 and 4 are on Windows, but Forza 3 and 4 were Xbox 360 only.


Original Xbox had a tool released which could convert an Xbox binary to a Windows PE file and run it. Original Xbox was x86 running at 800mhz with a windows kernel IIRC.

You are probably thinking of that.


In a bizarre plot twist, there is an actual project which tries to recompile Xbox 360 XEXes to run on x86 Windows: https://github.com/rexdex/recompiler


Minor edit. It was 733Mhz with a Celeron/Pentium III with its cache halved


Was that an official tool? I thought one of the Xbox emulators worked that way.


Not official, no


Windows 7 is malware, bloatware, and everything wrong with software.


Ok, but please don't fulminate or post unsubstantive comments on HN.

https://news.ycombinator.com/newsguidelines.html


Windows 7 is the last usable one. You probably meant 10 and/or 11.


Agreed. It was what I kept running under emulation for years when I still had to maintain backward compatibility with IE on some sites. It was the last one that was actually a user-first OS as opposed to a corporate-first ad platform.


Actually I forgot what it was like. I have not used it in decades.

But it's all malware nevertheless and with each new version you can expect it to become more aggressive (e.g.: Pluto).


You forgot about 8 (likely for the better.)


The thing wrong with SW is postured elitism over other software from clueless users like you who just like to spread FUD.


Please don't respond to a bad comment by breaking the site guidelines yourself. That only makes things worse. Also, personal attacks will get you banned here, so please don't do that.

https://news.ycombinator.com/newsguidelines.html




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: