mwaterbu's XBE autopatcher & other CPU fixes

Discussion in 'Xbox (Original console)' started by weinerschnitzel, Feb 14, 2014.

  1. weinerschnitzel

    weinerschnitzel Spirited Member

    Joined:
    Sep 23, 2012
    Messages:
    153
    Likes Received:
    13
    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!

    [​IMG]

    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.
     
  2. Dragonslayer182

    Dragonslayer182 Rapidly Rising Member

    Joined:
    Jan 12, 2014
    Messages:
    82
    Likes Received:
    14
    Looks great! I had no idea games had to be patched for upgraded systems though.
     
  3. Myria

    Myria Peppy Member

    Joined:
    Aug 21, 2012
    Messages:
    340
    Likes Received:
    13
    How is QueryPerformanceCounter implemented? I'm not at home at the moment.
     
  4. sonicdude10

    sonicdude10 The retro brony!

    Joined:
    Jan 17, 2012
    Messages:
    2,561
    Likes Received:
    23
    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.
     
    Last edited: Feb 14, 2014
  5. davidthomas

    davidthomas Site Supporter 2013,2014

    Joined:
    Jun 28, 2013
    Messages:
    461
    Likes Received:
    4
    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!
     
  6. JayFoxRox

    JayFoxRox Spirited Member

    Joined:
    Dec 23, 2010
    Messages:
    176
    Likes Received:
    9
    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.
     
  7. RichardX

    RichardX Peppy Member

    Joined:
    Jun 3, 2008
    Messages:
    353
    Likes Received:
    13
    And you see any improvement ?
     
  8. sonicdude10

    sonicdude10 The retro brony!

    Joined:
    Jan 17, 2012
    Messages:
    2,561
    Likes Received:
    23
    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.
     
  9. emu_kidid

    emu_kidid Enthusiastic Member

    Joined:
    Jun 28, 2008
    Messages:
    524
    Likes Received:
    23
    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?
     
  10. weinerschnitzel

    weinerschnitzel Spirited Member

    Joined:
    Sep 23, 2012
    Messages:
    153
    Likes Received:
    13
    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.
     
    Last edited: Oct 3, 2014
  11. steocullen91

    steocullen91 Rising Member

    Joined:
    Jan 27, 2018
    Messages:
    62
    Likes Received:
    16
    Sorry to bump this, but I'm having the speed problem with both Splinter Cell Pandora Tomorrow and Chaos Theory, along with GTA San Andreas. When you say patch in kHz, what exactly does that involve? I know what the default hex value is and I'm testing San Andreas, but no matter what I change the value to, it still runs at the same speed. Is it a different value that needs changing in this game?

    I have a 1GHz Xbox with 128MB RAM, thanks.

    EDIT: It turns out Chaos Theory has sc3.xbe and sc3_adv.xbe, I just edited those to have the 1000000000Hz value and that seems to have solved the problem. Pandora Tomorrow has Offline.xbe that also needs the value changed to make the game work. As for San Andreas, I only noticed the first post had a quote which stated that it's usually in Hz, while that's kHz. I just got confused because I've seen that it's in kHz instead of MHz, but it's usually a value in Hz.
     
    Last edited: Apr 17, 2019

Share This Page