Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/arcturus/01-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ This section is a placeholder. If you know anything about the topic, please help

## File Formats

The following file types have been found in the Japanese DVD release of Arcturus:
The following file types have been found in the Japanese DVD release of Arcturus (TODO: Add hash of the PAK files? There aren't that many versions...):

TODO: Shared file formats -> link to RO overview or combine both and add to landing page/link from there?

```txt title=arcturus-jp-extensions.txt
act
Expand Down
113 changes: 113 additions & 0 deletions docs/file-formats/01-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,116 @@ Here's a list of the atomic data types that you may encounter in the layout tabl
| `array` | variable | Fixed-size array of structures or values; the exact size depends and may only be implicit |

Please note that in many cases the exact type is unknown and can only be guessed, based on examples found "in the wild".

## Ragnarok File Formats

Gravity created a number of custom file formats for [Arcturus](/arcturus), which they later adapted for the RO client.
This documentation differentiates between them only as far as is necessary to understand their many unused (and oftentimes strange) features.

### Asset Containers

Bundling many small files in a [BLOB](https://en.wikipedia.org/wiki/Object_storage) "archive" can help minimize the disk footprint and speed up loading times:

- [GRF](/file-formats/GRF): Most of the game assets are stored in this large storage container, potentially compressed and/or encrypted
- [RGZ](/file-formats/RGZ): The RO client includes a "Patch Client" that downloads most updates in this compressed storage format
- [GPF](/file-formats/GPF): Another extension used the the game's updater, which however seems to just be an alias for GRF files
- [PAK](/file-formats/PAK): Arcturus and early RO clients use a different format, the origins of which aren't quite clear to me at this time

Although modern SSDs have different performance characteristics than mechanical HDDs, the game continues to rely on asset containers as a virtual file system. Most frequently-accessed files must therefore be extracted in-memory or on disk.

### Raster Images

A combination of standard and custom-made image formats see use in the RO client:

- [BMP](https://en.wikipedia.org/wiki/BMP_file_format): Most of the sprites and textures mapped to 3D geometry exists as raw bitmap
- PAL: They're lookup tables that store [palette](<https://en.wikipedia.org/wiki/Palette_(computing)>) colors for the indexed-color image formats
- [TGA](https://en.wikipedia.org/wiki/Truevision_TGA): Truecolor images with transparency exist for many effects and some monster sprites
- [JPG](https://en.wikipedia.org/wiki/JPEG): These appear to be fairly rare, but in a few instances JPEG textures were assigned
- [EBM](/file-formats/ebm): Guild emblems are also bitmaps, but the RO client compresses them first

Other formats may include image data as well, but it's usually combined with other metadata.

### Map Definitions

- Map files: RSW, GND, GAT

### 2D Sprites

- 2D sprites and effects: SPR, ACT, , IMF, , STR, EZV (, , )

### 3D Models

TODO: RSM, RSM2, GR2, Arcturus (RMA?)

- 3D models: RSM, RSM2, GR2 (see RAD website)

### Multimedia

Although both games contain various multimedia formats, they will not be fully specified here:

- [WAV](https://en.wikipedia.org/wiki/WAV): Sound effects and music-like jingles/songs utilize the waveform audio format
- [MP3](https://en.wikipedia.org/wiki/MP3): All of the background music ("BGM") tracks use this standard audio format
- [BIK](/file-formats): Video textures in [Bink](https://www.radgametools.com/bnkmain.htm) format; introduced recently and so far extremely niche
- [ADP](/file-formats/adp): Arcturus stores its music tracks in [ADPCM](https://en.wikipedia.org/wiki/Adaptive_differential_pulse-code_modulation) format, with a fairly arcane codec


### Miscellaneous

Anything that doesn't fit the above criteria - most of these aren't particularly relevant:

- Scripts: Lua and LUB (see Lua website)

```sh
1 bak
1 bat
1 egg
1 fds
1 flc
1 mp3
1 pptx
1 rsx
1 scp
1 zip
2 ase
2 scc
2 tmp
3 bson
3 log
4 gif
4 psd
4 sfk
4 xml
5 bik
16 lua
21 gr2
23 fna
64 db
91 ezv
114 txt
305 imf
392 jpg
449 png
453 lub
987 gnd
988 gat
988 rsw
1733 rsm2
2716 str
3103 wav
3676 pal
7048 rsm
7565 tga
39505 spr
46583 bmp
54845 act
```

See https://github.com/RagnarokResearchLab/ragnarokresearchlab.github.io/issues/92#issuecomment-1858732921

Most of this is probably garbage - double-check just to be safe?

Also check Arcturus? (Maybe later...)

---

TODO old README, maybe separate page
Loading