From 6fb46effedb5a691a76e81e5a9879fc001c234fc Mon Sep 17 00:00:00 2001 From: RDW Date: Sun, 15 Oct 2023 04:37:17 +0200 Subject: [PATCH 1/5] Update 01-index.md --- docs/file-formats/01-index.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/file-formats/01-index.md b/docs/file-formats/01-index.md index 5c49b9b4..f1045ea5 100644 --- a/docs/file-formats/01-index.md +++ b/docs/file-formats/01-index.md @@ -61,3 +61,17 @@ 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". + +## List of Relevant File Formats + +The following special formats are used by the Ragnarok Online client: + +* Map files: RSW, GND, GAT +* 3D models: RSM, RSM2, GR2 (see RAD website) +* 2D sprites and effects: SPR, ACT, PAL, IMF, EBM, STR, EZV (BMP, TGA, JPG) +* Archives: GRF, RGZ, GPF +* Scripts: Lua and LUB (see Lua website) + +TODO old README, maybe separate page + +See also the list of Arcturus file formats; many formats are shared between RO and Arcturus (but not all). From 7c0abf27889520007d9e2a80b9375a5d0d2050c3 Mon Sep 17 00:00:00 2001 From: RDW Date: Fri, 18 Jul 2025 01:28:15 +0200 Subject: [PATCH 2/5] WIP: Maybe this will be finished before another 2 years pass Who am I kidding? --- docs/file-formats/01-index.md | 110 ++++++++++++++++++++++++++++++++-- 1 file changed, 104 insertions(+), 6 deletions(-) diff --git a/docs/file-formats/01-index.md b/docs/file-formats/01-index.md index f1045ea5..cac1437e 100644 --- a/docs/file-formats/01-index.md +++ b/docs/file-formats/01-index.md @@ -62,16 +62,114 @@ Here's a list of the atomic data types that you may encounter in the layout tabl Please note that in many cases the exact type is unknown and can only be guessed, based on examples found "in the wild". -## List of Relevant File Formats +## Ragnarok File Formats -The following special formats are used by the Ragnarok Online client: +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) -* 2D sprites and effects: SPR, ACT, PAL, IMF, EBM, STR, EZV (BMP, TGA, JPG) -* Archives: GRF, RGZ, GPF + + +### Miscellaneous + +Anything that doesn't fit the above criteria - most of these aren't particularly relevant: + * Scripts: Lua and LUB (see Lua website) -TODO old README, maybe separate page +```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...) + +### 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 -See also the list of Arcturus file formats; many formats are shared between RO and Arcturus (but not all). +--- + +TODO old README, maybe separate page From 16514f5e3dba078ac905b2a384a88df36547958f Mon Sep 17 00:00:00 2001 From: RDW Date: Fri, 18 Jul 2025 01:30:27 +0200 Subject: [PATCH 3/5] npm run autoformat --- docs/file-formats/01-index.md | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/file-formats/01-index.md b/docs/file-formats/01-index.md index cac1437e..16fd7aa0 100644 --- a/docs/file-formats/01-index.md +++ b/docs/file-formats/01-index.md @@ -71,10 +71,10 @@ This documentation differentiates between them only as far as is necessary to un 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 +- [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. @@ -82,33 +82,33 @@ Although modern SSDs have different performance characteristics than mechanical 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 +- [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]() 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 +- Map files: RSW, GND, GAT ### 2D Sprites -* 2D sprites and effects: SPR, ACT, , IMF, , STR, EZV (, , ) +- 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) +- 3D models: RSM, RSM2, GR2 (see RAD website) ### Miscellaneous Anything that doesn't fit the above criteria - most of these aren't particularly relevant: -* Scripts: Lua and LUB (see Lua website) +- Scripts: Lua and LUB (see Lua website) ```sh 1 bak @@ -153,7 +153,7 @@ Anything that doesn't fit the above criteria - most of these aren't particularly 39505 spr 46583 bmp 54845 act - ``` +``` See https://github.com/RagnarokResearchLab/ragnarokresearchlab.github.io/issues/92#issuecomment-1858732921 @@ -165,10 +165,10 @@ Also check Arcturus? (Maybe later...) 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 +- [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 --- From 4acb2b529abb0a4735a8c4cf38435087d37700cb Mon Sep 17 00:00:00 2001 From: RDW Date: Fri, 18 Jul 2025 01:37:35 +0200 Subject: [PATCH 4/5] Update 01-index.md --- docs/file-formats/01-index.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/file-formats/01-index.md b/docs/file-formats/01-index.md index 16fd7aa0..7324b4e4 100644 --- a/docs/file-formats/01-index.md +++ b/docs/file-formats/01-index.md @@ -104,6 +104,16 @@ 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: @@ -161,15 +171,6 @@ Most of this is probably garbage - double-check just to be safe? Also check Arcturus? (Maybe later...) -### 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 - --- TODO old README, maybe separate page From 494ce60694b9a2266806f4069ec19c2da8d61984 Mon Sep 17 00:00:00 2001 From: RDW Date: Fri, 18 Jul 2025 01:37:39 +0200 Subject: [PATCH 5/5] Update 01-index.md --- docs/arcturus/01-index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/arcturus/01-index.md b/docs/arcturus/01-index.md index b0983d49..00be88d7 100644 --- a/docs/arcturus/01-index.md +++ b/docs/arcturus/01-index.md @@ -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