By using this site, you agree to our Privacy Policy and our Terms of Use. Close
DonFerrari said:
drkohler said:

For those who want a starting point, google "Static binary translation". From that point on, it gets more difficult because of multicore architecture, but it also gets easier as self-modifying code is forbidden in consoles - a major obstacle in PC code. It also helps that MS owns all the OS and library sources which makes it possible to write and constantly refine a crossassembler that probably does 99% of the work.

And that needs to redownload the game, severely improves graphics and just work on specific games cause of reason?

First of all, when you play a BC game, there is not a single line of X360 code involved. Not a single bit. You redownload "the game" because components in the run time system (might) have been improved since.

Here's a simple example (for illustration only, not real functions or memnonics). Suppose you disassemble some x360 game code and you come across something like:

PUSH $500

PUSH $300

CALL $ACFE000

Now this is the end for us, no outsider knows what that mystery procedure call does. But not for MS. Since they have all the x360 source code, they know these three lines resolve to a call of a procedure named CreateShadowBuffer(xsize,ysize)

So MS instantly knows the game allocates memory for a 1280*768 buffer. It can now replace these lines with the corresponding X1 procedure CreateSBufSize(1920,1080)

And they have automatically increased the resolution to 1920*1080. Of course this doesn't magically create better shadows, but it will not break the game at all (the game still uses the 1280,768 sizes for all calculationssince those are variables you have to find in your disassembly. Until MS finds the variables that are set to 1280,768 and replaces them with 1920,1080 and presto your BC game has better shadows. 

Apparently there are enough "MS grunt workers" around to look for stuff like this and improve the code bit by bit, hence you redownload the runtime system to profit from those finds. Since every x360 game uses different "ideas for programming" (for lack of a better word), every BC game comes with its own run time system. Which, again, contains zero x360 code lines (but an entire x360 os written in Jaguar code, for starters).