-
Notifications
You must be signed in to change notification settings - Fork 1
BPV1 textures
Several files contain collections of sequences of PVR textures with the signature BPV1
. The header contains information on the number of textures, their PVR formats, and dimensions. The pixel data for the textures are then stored one after another with no intervening headers. These chunks may be PRS-compressed, in which case the compressed data is followed by CPRS
and four 00
bytes.
Information on this format is based on findings from DerekPascarella and the PVR format as documented at https://github.com/nickworonekin/puyotools/wiki/PVR-Texture.
The first 16 bytes consist of the following:
Offset | Length | Description |
---|---|---|
0x0 |
4 | The signature 42 50 56 31 , or BPV1 in ASCII |
0x4 |
4 | The size of this BPV1 chunk, starting after the first 8 bytes |
0x8 |
4 | Sub-header length, usually 0x8
|
0xC |
4 | The number of textures in this chunk, 1 or more |
Following the header are two offset tables, both containing a number of entries equal to the number of textures.
The first table contains data describing entries in the next table. Each entry contains the following data:
Offset | Length | Description |
---|---|---|
0x0 |
4 | Offset for the entry in the next table, starting after the first 8 bytes |
0x4 |
4 | An unknown value, usually 00 00 80 40 (floating point 4.0) |
0x8 |
4 | An unknown value, possibly an ID |
Entries in the second table contain information on the textures.
Offset | Length | Description |
---|---|---|
0x0 |
4 | Offset for the pixel data, starting after the first 8 bytes |
0x4 |
2 | 00 |
0x6 |
1 | PVR pixel format |
0x7 |
1 | PVR data format |
0x8 |
8 | 00 |
0x10 |
4 | Texture width |
0x14 |
4 | Texture height |
0x18 |
20 | 00 |
See this page for information on PVR pixel and data formats. Some formats contained in these chunks are not supported by current tools.
Following the tables is the PVR texture data for each entry, one after another. This data can be copied into a handcrafted PVR file with the corresponding format data written into the header to form a valid PVR texture.
Larger files may contain a table with a signature of BTLA
preceding a collection of BPV1
chunks.
This table consists of the following:
Offset | Length | Description |
---|---|---|
0x0 |
4 | The signature 42 54 4C 41 , or BTLA in ASCII |
0x4 |
4 | The total file size of this chunk and the following BPV1 chunks |
0x8 |
4 | Sub-header length, usually 0x8
|
0xC |
4 | The number of BPV1 chunks, 1 or more |
This is followed by a list of offsets for the BPV1
chunks, starting after the first 8 bytes.
Formats
- ASCR format
- SBX/SBN
- LIP file
- SKFONT.CG
- ADCG texture
- BPV1 container
- LC1 file
- EYECATCH.BIN
- OpOption.bin
- Miscellaneous information
English translation technical details
Translation Instructions
- Extracting assets and rebuilding disc images
- Ghidra setup
- Emulation and memory searching
- Debugging Flycast with gdb-multiarch
- Script files
- Custom font tiles
- Map labels
- Editing compressed graphics
- Texture locations
- SRPG strings
- Menu strings
- Video encoding