Technical Reference

Detailed documentation of DOKAPON! Sword of Fury’s file formats and compression systems.

Overview

This section contains reverse-engineered documentation of the game’s proprietary file formats. These technical details are essential for creating modding tools and understanding how game assets work.

File Formats

LZ77 Compression

The compression system used across multiple file formats in the game.

  • Nintendo-style LZ77 variant
  • 10-bit sliding window (1-1024 bytes)
  • Block-based compression with markers

MDL Model Format

3D model format used for characters, enemies, and objects.

  • LZ77 compressed container
  • PS2-style VIF commands for geometry
  • Vertex, normal, and index data blocks
  • Animation and transform sequences

SPRANM Sprite Animation Format

Sprite animation format for 2D graphics and effects.

  • Animation control files (compressed)
  • Sprite resource files (with embedded PNG)
  • Transform matrices and keyframe data
  • State-based animation system

MPD Map/Cell Format

Map and cell data format for game environments.

  • Cell-based organization
  • Index and data sections
  • Dimension and alignment data

Architecture Overview

Game Asset Pipeline
├── Raw Assets
│   ├── 3D Models (.mdl)
│   ├── 2D Sprites (.spranm)
│   ├── Map Data (.mpd)
│   └── Textures (.tex)
│
├── Compression Layer
│   └── LZ77 Compression
│       ├── 16-byte header
│       ├── Compressed stream
│       └── Block markers
│
└── Runtime Processing
    ├── Decompression
    ├── Block parsing
    └── GPU upload

Common Patterns

Block Markers

MarkerTypeDescription
0xAAAAAAAAAlignmentBlock boundary/padding
0x55555555StructureSection structure marker
0x0000C000GeometryVertex data block
0x000040C1NormalNormal vector data
0x00004000IndexTriangle index data
0x000080B9AnimationAnimation frame data
0xFFFFFFFFDataRaw data block
0x0000803FFloatFloat value (1.0)

Data Alignment

Most data in these formats follows specific alignment rules:

  • 4-byte alignment: Standard for most integer and float data
  • 12-byte stride: Vertex and normal vectors (3× float32)
  • 16-byte alignment: Matrices and quaternions
  • 2048-byte boundaries: Major section divisions

Tools Reference

The following tools work with these formats:

ToolFormatsPurpose
Dokapon Extract.tex, .mpd, .spranm, .fntExtract and repack assets
Image Extractor.fnt, .spranmExtract embedded PNG images
Text Extractor.exeExtract and modify game text

Research Notes

This documentation is based on community reverse-engineering efforts. Some details may be incomplete or subject to revision as research continues.

Contributing

Help improve this documentation:

  • Submit corrections via pull request
  • Share additional research findings
  • Report inaccuracies in the format documentation
  • Join our Discord to discuss research

Table of contents