Reverse Engineering Crazy Taxi, Part 2
3 days ago
- #game development
- #3d graphics
- #reverse engineering
- The article discusses reverse engineering Crazy Taxi's .shp file format, suspected to contain 3D model data, using a cube model as a reference.
- Key techniques include analyzing hex data, understanding GameCube's Flipper GPU architecture, and using fixed-point number formats for vertex positions.
- The .shp file header contains offsets to vertex attribute streams (positions, normals, colors, textures) and display list commands for rendering.
- Cube0.shp's vertex positions are identified as signed 16-bit fixed-point Q0.15 numbers, normalized by a factor in the header.
- Texture coordinates are found in another section, likely using Q8.8 fixed-point format, and linked to texture names listed later in the file.
- Display lists in the file follow GameCube's GX format, with draw calls like GX_DRAW_TRIANGLES, enabling rendering of the cube model in a web emulator.