mwaterbu made a new XBE patcher that takes alot of the stress away from patching individual .xbe's. I recommend anyone with any upgraded processor or RAM upgrade to check it out! http://www.emuxtras.net/forum/viewtopic.php?f=179&t=3749 (For now, I will link to here until mwaterbu wants to mirror somewhere else) ITT I would like to discuss this patcher, and anything it takes to patch edge-case games that require a special fix. This should include the tools needed to decompile and analyse an XBE, the sections relevant to patching, and actual hex edits themselves. I'm completely new to reverse engineering. We really need to come up with a list of broken games and eventually come up with a fix for all of them. I feel that if there is a pool of capable and interested people, it would be on this forum. I think that watching the XDK revision may give some hints to different patches. Help/Support/Advice/Ideas are all greatly appreciated.
Looks useful. I do know one game that is messed up and the older patcher for the DreamX 1480 doesn't seem to work on it for me. Shadow the Hedgehog. Game runs at double speed. I'd try it but I doubt if it will help me right now since it claims to only work on GTA. EDIT: Forgot to say what I have. Trusty mod 1.1 with 1.4GHz Tualatin and 128MB RAM.
Thanks! I have 950 original games and just to patch them for 128 RAM was a 2 day mission! I am very thankful for this tool! I wish I had it before but now is good also! I also have both the 1GHz and the 1.4GHz so I never patched them all. This way I can scan lets say coinops and then redo it for the other size processor. Very cool! I will try it out tonight!
Wouldn't an FTP tool and proper code-search make a lot more sense? I could imagine that just replacing 2BB5C755 could break a lot if it's found in a data section for example. It would probably be wise to monitor the hardware timing register access too (rdtsc). Myria: I believe they use the kernel? KeQueryPerformanceCounter (Ordinal 126) and KeQueryPerformanceFrequency (Ordinal 127). So one could probably easily create a trampoline function which wraps around these / or patch the kernel? I'm not sure about all of this CPU freq. modding though. But if you need to use a different kernel anyway then it would be the most logical step to fix the kernel. Personally I don't have any interest or time to do that though.
Some do improve. I think one of the Halo games will do a bit better in multiplayer with the 128MB patch. Also helps to have the 1.4GHz CPU too for when your console hosts the match with more than 8 players. More CPU power prevents lag during heavy moments.
I've been trying to get GTA Vice City running properly on my 1GHz Xbox but even with all instances of 0B3095 (733333) manually patched and the other patch I still get faster than expected speeds in game, any idea which GTA the author was referring to when he patched or how he got the symbol names for the XBE in IDA?
GTA SA was fixable if you patched the clockrate values in KHz instead of MHz. The other GTA's are less forgiving. I patched several values removing the last relevant numbers from "73333333" until I broke the game. Some parts of the game worked better with more patching. That tells me there are likely more values that effect gameplay speed. Searching for all suspicious occurrences relating remotely to the clockrate and then checking them in IDA should be the best way to come up with a custom patch. I'm curious about the relevance of code that does not get affected by using a CPU mod with a switch like DreamX or the new trusty board. Video playback in most games, (HL2 and other GTA's specifically) are still out of sync. Switch enabled or disabled. Those seem unbeatable to me through simple patches.