User Tools

Site Tools


yesterday

Resource Reverse Engineering: Yesterday

The Android version is basically a lower resolution version the Steam version packed in a single OBB file, a few of the video and audio formats are different.

Chapters Mapping

Android OBB

  • Number of files = 4 bytes / 4
  • For each file:
  • Filename length = 4 bytes
  • ASCII filename
  • Offset = 4 bytes
  • Size = 4 bytes

Audio

Filename contains DATAA, or starts with Resource.S0

Pack file containing wav, ogg, or something else.

  • Number of files = 4 bytes / 4
  • For each file:
  • Offset = 4 bytes
  • Size = 4 bytes
  • Unknown = 4 bytes
  • Type = 1 byte
  • Type 0x00 is wav
  • Type 0x02 is ogg
  • Otherwise I have no idea.

Image

File name contains Resource, isn't any of the other types, extension isn't 003/TAB/FNT/DIS, and extension doesn't start with S/P (but it can be *.SP*).

Sometimes these are single images, sometimes it's a packed format.

  • Number of files = 4 bytes / 4
  • For each file: Offset = 4 bytes
  • For each file: Size = 4 bytes

Then for each file read the first 4 bytes.

  • 0x474E5089 = PNG
  • 0xE0FFD8FF or 0xE1FFD8FF = JPG
  • It might be another packed image, just repeat this process on it.
  • In the case of *.SP* files, these are somehow sprites.

Sprites

Similar to Runaway NDS sprites, except all the frames are in one file and there's an extra byte in the format. Android sprites are just a lower resolution than Steam sprites, same format otherwise.

Basically the SPR files only store used pixels (no palette!). Repeat the following until EOF:

  • Start x = 2 bytes
  • Start y = 2 bytes
  • Flag = 1 byte
  • Num Values Base = 2 bytes
  • If Flag = 4, then values is Base (these are usually found near feet, unsure what it means)
  • If Flag = 6, then values is Base * 3 (BGR)
  • If Flag = 7, then values is Base * 4 (BGRA)
  • If Flag = 8, then end the image frame? Unsure what Base here means.

Video

Filename starts with V, is RESOURCE.B31 or RESOURCE.CRD.

Read the first 4 bytes, rename the file depending on the header.

  • 0x46464952 = RIFF (Android) = MP4
  • 0x694B4942 = BIKi (Steam) = BIK

Yesterday Origins

Only just released, I will likely start looking around the files after I finish a playthrough. It's a Unity game so there might not actually be anything to solve?

yesterday.txt ยท Last modified: 2020/10/31 08:31 by jas2o

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki