MarvelousMirth wrote:What does that hex mod actually do, though? Would need to know what to call the option

Well every game need to call at least once the "D3D resolution library", it's a bunch of value that the xbox and the game share together.
Before the xbox can send the signal to the tv, the .xbe will need to call first the "request AV capability", then, look if anything can match the "D3D resolution library" and then send the correct value from his library (xbe) associated to the matched resolution returned by the "Av capability" function to the xbox, and finally, the xbox send the final signal with resolution/hertz/color mode.
Tl;dr: The xbox and xbe communicate the resolution info by "predetermined value", the xbe does not send 1280x720 value, instead, it send something like "xxx" to the xbox, then the xbox match the "xxx" to 1280x720.
Off course, this is only affect the "window view", the "internal resolution", however, is manually triggered and managed differently for each .xbe.
Ok, it seems a better and simpler explanation is needed:First, Here the list of
some resolution supported by the xbox, those resolution are called "window view", they said to the tv what resolution to use.
- Code: Select all
640x480
720x480
1280x720
Then, here how they are in Hexadecimal:
- Code: Select all
80 02 E0 01
D0 02 E0 01
00 05 D0 02
Now, to send
80 02 E0 01 from the xbe to the xbox, the xbe need to use an "index" value:
- Code: Select all
01 07 07 88
01 08 08 88
02 0A 0B 88
So, In conclusion, when the xbox start a game (xbe), the xbe, before displaying anything, start to requesting/testing the tv (or anything connected) to get what signal can be supported (resolution/herz/color), then, after getting the returned signal, the xbe start to read a library where all resolution supported by the xbox is stored, in hope to find a value that will match the returned value from the TV.
If a value match, then the xbe send to the xbox the desired value, to let the xbox send to the tv the matched signal.
After that, the xbe will trigger a D3D "internal resolution", this is something totally arbitrary and not related at all to the TV/XBOX, the function will show "something" at the screen, either 2D, 3D or both, with a desired resolution, no matter what resolution used, the "window view" started by the XBOX/TV will not be impacted.
So, the conclusion is:- Code: Select all
01 07 07 88 -- 80 02 E0 01 -- 640x480
01 08 08 88 -- D0 02 E0 01 -- 720x480
02 0A 0B 88 -- 00 05 D0 02 -- 1280x720
Here a picture, showing the lib in IDA:
arfgh wrote:and also: neither 'OgXHD_x64.exe' and 'OgXHD_x86.exe' start on my computer. XP X64 SP2. What i need to make them to work ?
Same, the x86 won't work in my XP32, need to load this in the Windows7 x64 to properly start it.
Esppiral wrote:I have a question, as you may have noticed in my screen shots, some games are missing geometry in the main characters and NPc'. it happens in sonic heroes, Kill Swith and GTA, why is the reason for that?
It may be either:Ram limit exceeded: All games need to allocate a percentage of memory for each section: D3D (screen), DIrectSound (Audio), Input (joypad etc..), most games crash, freeze or display a "dirty disc" message when one those sections request too much memory than the
maximum available for their respected section.
BUT , some games, use a volatile memory management (usually, games that use this are games that will suffer of bad framerate even in stock condition (64mb RAM and 480i), ie really high demanding games), this type of memory management let one of this section (usually D3D or Input) being limited by the
maximum available memory, and then to restrict percentage for others section. (Otogi is great example here, the game won't crash, it will try to load the maximum he can, 3D mesh, Texture etc... off course, some of those will fails, but still, the game will run, at slow speed with missing texture/mesh, but still, it will run. IE, see my thread about Otogi in 1080i)
Generated/managed Mesh/effect: In some games, some parts of the 3D scene is positioned or rendered by 2D value (x, y) instead of 3D value (x, y, z), a great example is the "water" shader in Otogi, the shader require the x/y value of screen size to be positioned in a 3D scene, also, the hair from Raikho in Otogi is generated by the xbe, his animation, size, vertices etc... is managed by a X/Y value.
In that case, if some value are wrong, or not match in each of them, the resulted scene will display wrong or missing mesh, shader etc.... In some worst case, a simple shader/texture with wrong numbers can lead to stop rendering the entire mesh.....
Wrong value between .xbe and others files: well, this is something really rare, mostly used by port games from PC to Xbox. Those games use the .xbe and others files to store important info like positioning, rendering and scaling.
When off course we can change those value easily in the .xbe, others, will require to dig some .ini files to completely change all resolution or scaling value to get correct mesh and texture in final scene. In worst case, a deep reverse engineering will be needed to get proper rendering.
Esppiral wrote:Also there are games with native resolutions lower than 640x480 (Panzer Dragoon Orta, kung fu chaos) among others, are those unpatchable with this util?
Are you sure ? because I have a hard time with PDO, any idea of the size ? because this game always rendered to 640x480p for me.
Esppiral wrote:Last but no least, The game I trully want to play in HD on Xbox is Shenmue II, if someone could manage to make it work at 720 or just in widescreen I would be the happiest gamer in the world.
Then prepare to be happy, I will work on Shenmue 2 after finishing PDO and Double Steel. Downloading now.

PaulSilentin wrote:So, to make things perfect, we will need:
1. hardware modded xbox CPU
2. hardware modded xbox RAM
3. hack XBE to use new CPU and RAM
4. hack XBE to display as 16:9 and 720p
without 1 and 2 - games will always lag in 720p? Or better to play on vanilla XDK with XBE patch to run as debug?
Not necessary, PGR2 run smoothly, only some minor lag at some "special" zone in some tracks. But yes, for a lot of demanding games, a CPU/RAM upgrade will be needed.
scroeffie wrote:You need to replace each lines:
01 08 08 88
01 07 07 88
01 0F 11 88
by this:
02 0A 0B 88
how ??
Download HexEdit, then open the .xbe in the software, then go to EDIT > Replace:

Don't forget to save before closing the software.