Tony Hawk: SHRED
Tony Hawk: SHRED (Robomodo, Activision, 2010) is a skateboarding and snowboarding game on Robomodo’s own RME engine. It runs on the
PlayStation 3 and checks for a skateboard-shaped controller peripheral at start-up; the disc, title ID BLUS30542, version 01.00, is the one recorded here. Observed
The check reads the capability word the controller reports and refuses a controller that declares an analog stick
(bit 8, HP_ANALOG_STICK). With that single test skipped in the executable, an emulated controller that reports the bit moves on from the “no board connected” screen to the board’s
calibration screen. Observed · the executable’s check, read; one run under RPCS3 with the test skipped
The executable has a second route past the board, a QA switch: the u32 qa_build at 0x172B10C, which only a qa_build entry of boot.ini (true or nonzero) sets at start-up. It gates the native cheat CTRL, which sets the globals board_build 0, controller_build 1 and keyboard_build 0, and the board-connect routine ignores the scripts’ controller_build unless the switch is set. Observed · static reading of the executable
With the switch and those three globals written into memory at start-up, an ordinary controller reaches the main menu and plays CHARLIE’s training, the board test left as shipped and no disc bytes changed. Observed · runs under RPCS3
CTRL is typed on the game’s own cheat screen (Universal/Initials/Initials.gfx) and is not a row of MAIN.DB’s cheat_codes, whose one row is RICE. Observed
On a controller, the skating scripts push on R1, turn with the left stick’s X axis and push while idle with its Y axis. Observed · static reading of the skating scripts
Every observation in the wiki’s SHRED pages comes from one dump of that disc: 1,124 files, 5,875,743,333 bytes, decrypted. Observed
Where the data lives
Section titled “Where the data lives”PS3_GAME/ PARAM.SFO title, title ID, version USRDIR/ EBOOT.BIN the executable (SCE SELF) SCRIPTS.SDAT compiled Lua 5.1, a PAK inside an NPD wrapper levels/ 10 level PAKs levels/layers/ 209 layer PAKs (sessions, difficulties, lighting) characters/, anim/, flash/ character, animation and Scaleform PAKs database/ 27 SQLite databases (MAIN.DB: levels, sessions, goals, surfaces) physics/ 8 Havok .HKX files audio/ Wwise banks and packages, OGG videos/bik/ 451 Bink videosPS3_UPDATE/PS3UPDAT.PUP console firmware updateAll of it observed on the dump; the file names are the disc’s Joliet names (The disc and its file names). Observed The 336 PAKs hold 67,320 entries (PAK archives); the largest groups are 28,046 texture pixel files and 27,446 texture headers. Proven · all 336 PAKs
Levels
Section titled “Levels”The game has ten level archives. Their names are letters of the NATO alphabet, and the levels table of MAIN.DB gives each one’s board type (skate or snow); the descriptions below are what that table and the level’s session data name. Observed
| Archive | Kind | Content |
|---|---|---|
| Charlie | skate | training and pro challenges (big air, manual and grind challenges, HP training) |
| India | skate | New Orleans |
| Juliet | skate | Morocco |
| Mike | skate | the amusement park: the table’s rows Kilo, Lima and Mike are its lower, combo and upper parts, in one archive |
| November | skate | Melbourne |
| Oscar | skate | the Wallows |
| Papa | skate | Santorini |
| Delta | snow | Beijing (halfpipe, big air) |
| Echo | snow | the French Alps |
| Foxtrot | snow | Whistler |
The table also lists Bravo, Golf and Hotel, which have no archive. Observed
Each level row names a load script, script\level_load_<name>.lua, which belongs to the encrypted script archive and has not been read. Observed
Besides the ten bases there are 209 layer PAKs whose names carry a map id, so one level archive serves several playable maps. Observed
The descriptions above are the database’s. The display strings the menus show were not read.
- Robomodo RME: the engine, its middleware and how sure the pages are.
- PAK archives, CSTR streams, The disc and its file names.
- Geometry: Model libraries, Vertex formats, Placements, Triangle winding, Skinned streams.
- Materials: Material banks.
- Textures: Textures (THP and TXP).
- Collision: Havok 7.1 collision packfiles.
- World: SCP scene tables, Spot chunks and spawns, Splines, Lights, Levels and layer PAKs.
- Data model: MAIN.DB and the other databases.
What is known
| System | Claims | Confidence | Proven or observed |
|---|---|---|---|
| Overview | 25 | 88% | |
| Archives and files | 71 | 96% | |
| Data model | 21 | 100% | |
| World and streaming | 176 | 80% | |
| Geometry | 181 | 78% | |
| Materials | 58 | 67% | |
| Shaders | 86 | 76% | |
| Textures | 50 | 84% | |
| Collision and physics | 197 | 84% |
Computed from the engine's pages; the whole picture is on the coverage page.