"Walk Through Walls" Tools for Shenmue I & II Re-Release

Switch

Shenmue analysis at www.phantomriverstone.com
Joined
Jul 28, 2018
Location
Japan
Update: tool for the Shenmue II Re-Release also added.

I've made a some of tools that let you walk through walls & go out of bounds anywhere in the Shenmue I & II re-release (PC version). It is based on a method that was originally developed by Giorgio, but changes only memory and not any disc files

Important: the tools are built using the Cheat Engine, so preferably don't run it on a computer you use for online gaming (or at a minimum reboot after use) - I have seen reports on general games forums from users who were banned due to CE being detected on their system.

Details & download link at the PRS blog:
For Shenmue I: https://www.phantomriverstone.com/2018/10/walk-through-walls-automated-cheat-tool.html
tool-screenshot.jpg

For Shenmue II: https://www.phantomriverstone.com/2018/11/out-of-bounds-in-china-automated-cheat.html
app-window.jpg

Yamanose-rain.jpg


Feel free to use this thread to post images / videos of your own exploration!
 
Last edited:
Nice. This will be tons of fun after I replay the game. I'm also very curious to see what other people find using this.
Question: How did you take that picture from that height in Yamanose? Did you climb the hill on foot?
 
Question: How did you take that picture from that height in Yamanose? Did you climb the hill on foot?
Yup, exactly right! I started at the top end of Yamanose and walked sideways off the roadway. With this cheat you maintain your height so as long as you can find a suitably high "launching point" you can get some nice views of the rest of the area.
 
Nah, it's just building on the great hacks of those before me who paved the way (Giorgio, BlueMue, James Reiner to name a few)
 
A similar tool for Shenmue II has been added - link added in the OP. This tool also lets you adjust Ryo's height / position.

OnFountain.jpg
 
Last edited:
Great stuff!
The height feature is amazing. Any plans/possibility for an update to the Shenmue I mod and implement it on there as well?
 
Great minds think alike.
Btw, Position change works on fights too and it teleports both characters. Very interesting. (I pushed em outside of the boundaries) :LOL:
lol.jpg
lol2.jpg

Wow, was shocked by this. The computer in Shenmue is so smart it manages to chase and regroup with Ryo even when separated apart by miles.
follow.jpg
 
Last edited:
- Hazuki's Residence Y axis: Shenmue.exe+674E2B0
- Hazuki's Yard/Dojo Y axis: Shenmue.exe+670AA70
- Hazuki's Basement Y axis: Shenmue.exe+68A0D10
- Yamanose Y axis: Shenmue.exe+67F6990
- Sakuragaoka Y axis: Shenmue.exe+67C40D0
- Dobuita Y axis: Shenmue.exe+6726650
- Harbor Y axis: Shenmue.exe+6BE54B0

Note: v1.07

EDIT: Argh! Didn't find a single address for all the maps, probably there is none. :p
What little I found in common (most of the times) is that the height coordinates, which I'm identifying as Y, are at an offset located 140 bytes before (after) the byte pattern 44 52 48 43 (CHRD), and 12 bytes after (before) the byte pattern 50 57 45 43 (CEWP). Unfortunately there are usually more than 1 result within these parameters, not sure if there is any extraordinary distinction or if overriding the same 4 bytes everywhere is a problem (shouldn't be though).

P.S: This one is out of the scope of this topic, but I figured I should mention it anyway:
- Camera diving height: Shenmue.exe+5E15254
- Camera vertical tilt angle: Shenmue.exe+5E15260

P.S.2: I don't know if people have pointed this out before, but I was baffled by the approach used by SEGA to create the mirroring effect in the basement's mirror, on a cabinet. Basically they created a duplicate, inverted, room behind the one the player is in, and then they placed a Ryo NPC that mimics (inverted) every action of the player. It's exactly the same technique used by movie makers in some situations where they do the scene in one shot without CGI with a double standing behind a transparent mirror frame, imitating every action by the main actor.
 
Last edited:
@GYO6161 - interesting result!

And thanks @ner0 for the results of your investigation into where coordinates are stored in Shenmue I. I found that a similar complication exists in Shenmue II, where the memory location of Ryo's coordinates changes with each area he's in (as well as existing in multiple places in memory). What I ended up doing for the tool is having it perform a search for a short section of the assembly code that sets his coordinates and grabbing the memory locations from there directly..

I think it should be possible to apply a similar approach to add the feature to the Shenmue I tool also.

P.S.2: I don't know if people have pointed this out before, but I was baffled by the approach used by SEGA to create the mirroring effect in the basement's mirror, on a cabinet. Basically they created a duplicate, inverted, room behind the one the player is in, and then they placed a Ryo NPC that mimics (inverted) every action of the player. It's exactly the same technique used by movie makers in some situations where they do the scene in one shot without CGI with a double standing behind a transparent mirror frame, imitating every action by the main actor.
It's fascinating that is was implemented so effectively back then. @James Brown created some videos recently demonstrating the effect. Here's a link to the Dojo topic:
https://www.shenmuedojo.com/forum/index.php?threads/how-reflections-work-in-shenmue-video.662/
 
@Switch I think I found an address that does away completely with collisions with the change of a single byte.
I haven't tested much, but it seems to work pretty much the same as with deleting the collision data, the only difference is that it's an instruction that ignores the collision data instead of erasing/overwriting it. In fact I have found 2 offsets, but the second one works a little differently.

Anyway, this is what I've found (S1 v1.07):
1. No Clip / No Collisions: Shenmue.exe+8EBD9 [2 bytes] (default 741B [je], change to EB1B [jmp] for no collision);
2. Partial No Clip: Shenmue.exe+64C8FA8 [byte] (default 255, 0 for no collision);

The second is different in three ways (afaik):
1. It's a place holder, the value gets rewritten when entering/exiting areas;
2. It only affects certain objects/geometry, mostly doors;
3. Weirdly, it doesn't work on any door in the Hazuki Residence;

NOTE: Your tool is still better in the sense that the method is universal and doesn't rely on static offsets that change across versions of the executable.
 
P.S.2: I don't know if people have pointed this out before, but I was baffled by the approach used by SEGA to create the mirroring effect in the basement's mirror, on a cabinet. Basically they created a duplicate, inverted, room behind the one the player is in, and then they placed a Ryo NPC that mimics (inverted) every action of the player. It's exactly the same technique used by movie makers in some situations where they do the scene in one shot without CGI with a double standing behind a transparent mirror frame, imitating every action by the main actor.

You might not realize it, but this is actually common in 3D games before there was enough processing power to do real reflections. It was used in everything from Super Mario 64:


to Silent Hill 2:

 
You might not realize it, but this is actually common in 3D games before there was enough processing power to do real reflections. It was used in everything from Super Mario 64:


to Silent Hill 2:

I wasn't aware, no.
But thinking about it, makes sense since it took much less processing power (i guess).
 
@Switch I think I found an address that does away completely with collisions with the change of a single byte.
I haven't tested much, but it seems to work pretty much the same as with deleting the collision data, the only difference is that it's an instruction that ignores the collision data instead of erasing/overwriting it. In fact I have found 2 offsets, but the second one works a little differently.

Anyway, this is what I've found (S1 v1.07):
1. No Clip / No Collisions: Shenmue.exe+8EBD9 [2 bytes] (default 741B [je], change to EB1B [jmp] for no collision);
2. Partial No Clip: Shenmue.exe+64C8FA8 [byte] (default 255, 0 for no collision);

The second is different in three ways (afaik):
1. It's a place holder, the value gets rewritten when entering/exiting areas;
2. It only affects certain objects/geometry, mostly doors;
3. Weirdly, it doesn't work on any door in the Hazuki Residence;

NOTE: Your tool is still better in the sense that the method is universal and doesn't rely on static offsets that change across versions of the executable.
 
Back
Top