⚠️ Disclaimer:

The content on this blog is provided for educational and informational purposes only. I do not encourage, endorse, or support any illegal activity. Any techniques, tools, or concepts discussed are intended solely for learning, research, defensive security, or experimentation in safe, legal environments. Use this information responsibly and at your own risk. The author is not responsible for any misuse or legal consequences that may result from applying what’s written here.

How This Rabbit Hole Started:

It all began when I was messing around with Ghost of Tsushima, trying to locate the View-Projection matrix to build a working world-to-screen (w2s) function. I eventually found it and it worked as intended. But while digging through memory, I came across several other interesting matrices. Two of them stood out: the Camera World Matrix and the Perspective Projection Matrix. I figured i could reconstruct the View-Projection matrix myself by multiplying the inverse of the camera world matrix with projection matrix as most Direct-X games do. But the result didn’t match the actual View-Projection matrix. Curious, I started tracing the functions that write to the View-Projection matrix using IDA Pro, ReClass, and Cheat Engine. That’s when I discovered the engine was building the matrix in a non-standard way, or at least, a way that was unfamiliar to me and different from the basic graphics pipeline I was expecting.

Prerequisites

  • Understanding the assembly language (x86-64)
  • Basic Reverse Engineering Skills
  • Intermediate knowledge in C++
  • Windows API Familiarity
  • Linear algebra

    I assume you already understand the linear-algebra concepts used throughout: vectors, matrices (4×4), homogeneous coordinates (Vec4(x,y,z,1)), dot/cross products, matrix × vector, and the perspective divide

What Are we Trying to achieve?

In this write-up series, we’re going to reverse engineer how Ghost of Tsushima constructs its View-Projection matrix, the thing that turns 3D world positions into 2D screen coordinates. This is super important for stuff like ESP overlays (you can’t draw a box around an enemy if you don’t know where they are on screen).

We’ll be reverse engineering the game’s rendering pipeline using tools like IDA Pro, breaking down how the View-Projection matrix is built step by step including all the weird SIMD instructions it uses. The goal is to figure out where it’s stored, how it’s constructed, and how it’s used in the game.

What is an ESP?

ESP stands for Extra-Sensory Perception. In game hacking, it refers to any feature that shows you information you normally wouldn’t be able to see, stuff the game doesn’t intend to show. For example, an ESP might let you:

  • See players through walls
  • Know their exact health
  • Track what’s in their inventory
  • Spot hidden loot, traps etc…

This gives a huge unfair advantage over others.

Write-Up Outline:

What it should look like:

ESP-Image1

ESP-Image2

Snippets of what we will be working with:

IDA PRO: IDA-screenshot

Cheat Engine: CheatEngine-screenshot

Visual Studio: VisualStudio-screenshot

Reclass: Reclass-screenshot

This blog series is just me sharing what I’ve figured out so far while reverse engineering Ghost of Tsushima. There’s always more to understand, and I’m sure some things I say might not be 100% perfect, so if you spot something I missed, or you have better insights, I’d really love to hear from you.

Feel free to reach out to me: