Jump to content

Texture Editor: Difference between revisions

From SA Docs
mNo edit summary
mNo edit summary
 
(5 intermediate revisions by the same user not shown)
Line 2: Line 2:


== Supported Formats ==
== Supported Formats ==
Archives: PVM, GVM, XVM, PRS (texture archives only), PAK, PVMX, PB.
Archives: PVM, GVM, XVM, PRS (texture archives only), PAK, PVMX, PB. See [[Texture Editor#Texture Archive Formats|Texture Archive Formats]] for more information.
 
Textures: PVR, GVR, XVR, DDS, PNG/BMP/JPG/GIF. See [[Texture Editor#Texture File Formats|Texture File Formats]] for more information.


Textures: PVR, GVR, XVR, DDS, PNG/BMP/JPG/GIF.
== Using Texture Editor ==
== Using Texture Editor ==
[[File:Texture Editor 1768154231020.png|left|thumb|Texture Editor user interface]]
[[File:Texture Editor 1768154231020.png|left|thumb|Texture Editor user interface]]
Line 142: Line 143:
|✕
|✕
|✕
|✕
|
|△ (1)
|✕
|✕
|-
|-
Line 152: Line 153:
|〇
|〇
|〇
|〇
|△ (1)
|△ (2)
|△ (2)
|△ (3)
|-
|-
|DDS
|DDS
Line 161: Line 162:
|✕
|✕
|✕
|✕
|△
|△ (2)
|〇
|〇
|-
|-
Line 179: Line 180:
|✕
|✕
|✕
|✕
|△
|△ (2)
|〇
|〇
|}
|}
△ (1): Requires [[SADX Mod Loader]] to be installed and enabled.
△ (1): PVR textures in the Bitmap, Index8 and Index8 Mipmaps data formats (see [[Texture Editor#PVR Data Formats|PVR Data Formats]]) and some pixel formats (see notes in [[Texture Editor#Texture Pixel Formats|Texture Pixel Formats]]) are not supported in SADX PC.


△ (2): GVR textures in the RGB565 pixel format (see [[Texture Editor#Texture Pixel Formats|Texture Pixel Formats]]) are not supported in SA2 PC.
△ (2): Requires [[SADX Mod Loader]] to be installed and enabled.
 
△ (3): GVR textures in RGB565 and Intensity pixel formats (see [[Texture Editor#Texture Pixel Formats|Texture Pixel Formats]]) are not supported in SA2 PC.


=== Texture Archive Formats ===
=== Texture Archive Formats ===
Line 307: Line 310:
|Index8 (0x07)
|Index8 (0x07)
|NJD_TEXFMT_PALETTIZE8
|NJD_TEXFMT_PALETTIZE8
|A square 256-color texture that uses a palette loaded from a separate file. Pixel size is 8-bit (1 byte per pixel).
|A square 256-color texture that uses a palette loaded from a separate file. Pixel size is 8-bit (1 byte per pixel). SADX PC support not confirmed.
|-
|-
|Index8 Mipmaps (0x08)
|Index8 Mipmaps (0x08)
|NJD_TEXFMT_PALETTIZE8_MM
|NJD_TEXFMT_PALETTIZE8_MM
|Same as Index8 but with mipmaps.
|Same as Index8 but with mipmaps. SADX PC support not confirmed.
|-
|-
|Rectangle (0x09)
|Rectangle (0x09)
Line 323: Line 326:
|Rectangle Stride (0x0B)
|Rectangle Stride (0x0B)
|NJD_TEXFMT_STRIDE
|NJD_TEXFMT_STRIDE
|An alternative version of the Rectangle format optimized for faster loading on Dreamcast hardware. Width must be between 32 and 992 and divisible by 32. Height must be 8 or bigger.
|An alternative version of the Rectangle format optimized for faster loading on Dreamcast hardware. Width must be between 32 and 992 and divisible by 32. Height must be 8 or bigger. SADX PC support not confirmed.
|-
|-
|Rectangle Stride Mipmaps (0x0C)
|Rectangle Stride Mipmaps (0x0C)
Line 335: Line 338:
|Bitmap (0x0E)
|Bitmap (0x0E)
|NJD_TEXFMT_ABGR
|NJD_TEXFMT_ABGR
|This data format forces the pixel format to BGRA8888. Otherwise identical to Rectangle.
|This data format forces the pixel format to BGRA8888. Otherwise identical to Rectangle. SADX PC doesn't support this format.
|-
|-
|Bitmap Mipmaps (0x0F)
|Bitmap Mipmaps (0x0F)
Line 386: Line 389:
|16-bit
|16-bit
2 bytes/pixel
2 bytes/pixel
|5 bits for R and B, 6 bits for G. SA2 PC can only load this format in DDS textures, not GVR.
|5 bits for R and B, 6 bits for G.
SA2 PC can only load this format in DDS textures, not GVR.
|〇
|〇
|〇
|〇
Line 444: Line 448:
|〇
|〇
|〇
|〇
|
|
|-
|-
|ARGB8888
|ARGB8888
Line 450: Line 454:
4 bytes/pixel
4 bytes/pixel
|Lossless format with 8 bits for each color component.
|Lossless format with 8 bits for each color component.
PVR: Paletted formats only.  
PVR: Paletted formats only. GVR: Gamecube games only, not supported by SA2 PC.
GVR: Gamecube games only, PC not supported.
|△
|△
|△
|△
Line 471: Line 474:
|4-bit
|4-bit
2 pixels/byte
2 pixels/byte
|Grayscale pixels that can pick from 16 gradations of gray.
|Grayscale pixels that can pick from 16 gradations of gray. Not supported by SA2 PC.
|✕
|✕
|〇
|〇
Line 481: Line 484:
|8-bit
|8-bit
1 byte/pixel
1 byte/pixel
|Grayscale pixels that can pick from 16 gradations of gray and 16 gradations of Alpha.
|Grayscale pixels that can pick from 16 gradations of gray and 16 gradations of Alpha. Not supported by SA2 PC.
|✕
|✕
|〇
|〇
Line 491: Line 494:
|8-bit
|8-bit
1 byte/pixel
1 byte/pixel
|Grayscale pixels that can pick from 256 gradations of gray.
|Grayscale pixels that can pick from 256 gradations of gray. Not supported by SA2 PC.
|✕
|✕
|〇
|〇
Line 501: Line 504:
|16-bit
|16-bit
2 bytes/pixel
2 bytes/pixel
|Grayscale pixels that can pick from 256 gradations of gray and 256 gradations of Alpha.
|Grayscale pixels that can pick from 256 gradations of gray and 256 gradations of Alpha. Not supported by SA2 PC.
|✕
|✕
|〇
|〇

Latest revision as of 13:31, 17 January 2026

Texture Editor is a tool that can view and edit texture archives used in Sonic Adventure games. It can also be used to view individual texture files.

Supported Formats

Archives: PVM, GVM, XVM, PRS (texture archives only), PAK, PVMX, PB. See Texture Archive Formats for more information.

Textures: PVR, GVR, XVR, DDS, PNG/BMP/JPG/GIF. See Texture File Formats for more information.

Using Texture Editor

Texture Editor user interface

Opening Files

For ease of use, you can associate the supported file extensions with the program, which will make it open files on double click. Alternatively you can open texture files in SA Tools Hub, which will launch Texture Editor and make it open the selected file.

If you open an individual PVR, GVR or XVR file, the program will try to load all other textures in the same folder and display them as a list (as if they were all added to an archive).

Editing Texture Archives

Use the list box on the left to navigate the texture list. The buttons at the bottom left are used to add, remove and sort textures in the archive. The panel on the right contains editable parameters applicable to the current texture format and a preview image.

Texture Parameters

Index is the texture ID on the list. It indicates the order in which textures appear in the archive. You can change the index by sorting textures using the "Up" and "Down" buttons at the bottom of the texture list.

Name is a texture's individual name. Texture names are only stored in the archive and ignored in the games.

Global Index is a unique texture ID used in the games' texture caching system. The game checks the global index when it loads a new texture, and if a texture with the same global index is already loaded, the new texture is discarded and the previously loaded texture is reused.

The No Alpha Test checkbox controls a flag used by textures in SA2's PAK archives. This flag disables Alpha Test and Z Write, which can make transparent textures blend better or worse depending on how the model using the texture is rendered.

Size is used to view texture width and height. For textures in PVMX archives, you can override texture dimensions. This is commonly used to store the original dimensions of a non-HD UI texture when making an HD version of it to avoid stretching issues ingame. Actual Size will display the texture's current (HD) dimensions.

Data Format is the way the texture is represented in binary. It depends on the texture format, whether the texture is square or rectangular, and whether it is compressed or not. See Texture Data Formats for more information.

Pixel Format is the way and order in which the colors are stored the texture's binary data. Available pixel formats depend on the texture format. See Texture Pixel Formats for more information.

Surface Flags (SA2 PC only) are additional flags picked up by the game's renderer.

Mipmaps

The Mipmap checkbox controls a flag that indicates that the texture includes mipmaps.

Mipmaps are smaller copies of a texture used for displaying the texture from a distance. This makes distant textures look smoother. Usually mipmaps should be enabled for level textures and disabled for UI textures. There can be multiple mipmap levels, and each level is half the dimensions of the previous one. For example, a 64x64 texture will have 7 mipmaps including the full size level 0: 64x64, 32x32, 16x16, 8x8, 4x4, 2x2, 1x1.

Depending on the texture format, Texture Editor can generate or remove the texture's built-in mipmaps when this flag is toggled. Note that PVR and GVR textures must be square to make it possible to add mipmaps to them. DDS textures can have rectangular mipmaps. PNG textures cannot have mipmaps.

Texture Preview

Use the Zoom slider to adjust the size of the preview, and the Mipmap slider to select the mipmap level if applicable.

You can also enable or disable bicubic filtering for the texture preview in the program's View menu. Note: The filtering is only applied to the preview, not the texture itself.

You can click the texture preview to copy it to the clipboard, or drag it outside the window to export it as a PNG file.

Import and Export

The Import Texture... button under the texture preview is used to load an image and encode it as the currently selected texture without adding a new texture. The texture's pixel and data formats will be changed depending on the imported image data.

The Import Image... button under the texture preview is used to replace the contents of the currently selected texture without adding a new texture. The texture's pixel and data formats will not be changed.

The Export Image... button is to save the selected texture as a PNG file.

The Save Texture... button is for saving individual textures in their original format (PVR, GVR, DDS etc.).

You can also export all textures at once in the specified format using the Export All Textures As menu item in the File menu.

Texture Packs

You can also import and export texture archives as folder texture packs using the File menu. Folder texture packs can be loaded by the SADX Mod Loader if they are placed in the mod's textures folder. Texture packs can contain PNG or DDS textures.

The Edit Menu

The program's Edit menu contains various settings used in texture management and conversion.

  • High Quality GVMs controls whether GVR textures can be encoded in the ARGB8888 format. This format is only supported in the Gamecube version of SA2B.
  • SADX/SA2 Compatible GVPs controls whether Texture Editor will use ARGB1555 instead of Intensity8A8 and ARGB4444 instead of RGB5A3 for Gamecube palettes. This option must be enabled when working with SADX and SA2 Gamecube paletted textures, and disabled when working with paletted textures from other Gamecube games, such as PSO and Billy Hatcher.
  • Texture Conversion Settings/Prefer High Quality makes the program try to avoid quality loss when converting between texture formats. For example, if a texture is ARGB4444 but the target texture file format doesn't allow ARGB4444, it will be converted to a higher quality format such as ARGB8888.
  • Texture Conversion Settings/Allow Compressed Formats makes the program consider compressed texture formats (such as DXT or VQ) when converting between texture formats.
  • DDS/PNG Settings control whether newly imported textures in PVMX, PAK or folder texture packs should be in the DDS or PNG format. See Texture File Formats for more information.

The Tools menu

The program's Tools menu has various tools to automate some common tasks.

  • Generate New GBIX randomizes Global Indices for all textures.
  • The Mipmaps menu let you add or remove mipmaps to all textures at once, or export a texture's mipmaps as PNG files.
  • The PAK Alpha Flags menu let you add or remove the "No Alpha Test" flag to all PAK textures at once.

Working with Paletted (Indexed) Textures

Paletted (Indexed) textures are textures whose pixel data is represented by color indices rather than actual colors. The color indices are used to pick colors from a preset list of colors (palette) that can be built into the texture itself or loaded from an external file (PVP files for PVR textures, GVP files for GVR textures). In the Sonic Adventure games, the only case where paletted textures are used is the archive named AL_BODY, which stores Chao body textures.

There are two main formats of Indexed textures supported in the Sonic Adventure games:

  • Index4 is a 4-bit format (2 pixels per byte) that can have up to 16 unique colors in the texture.
  • Index8 is an 8-bit format (1 pixel per byte) that can have up to 256 unique colors in the texture.

The Sonic Adventure games only support Index4 textures natively, although you might be able to load Index8 textures in the future with the Mod Loader. Other games, such as Skies of Arcadia, PSO or Billy Hatcher, make use of both Index4 and Index8 textures.

Palette information and preview
Palette Information

When you select an Indexed texture in Texture Editor, an additional set of controls will appear under the texture preview.

On the bottom left there will be a palette preview that will display a grid containing all colors in the palette. You can click inside the preview to display information about a specific color.

On the bottom right there will be palette information: its color format, the number of colors and whether the palette is embedded into the texture (internal) or loaded from a file (external).

If no palette is currently loaded, a default palette will be created. The default palette consists of a simple gradient whose brightness corresponds to color index values in the texture.

You can use the buttons to import and export a palette as a PVP/GVP/PNG file, or unload a palette and replace it with the default one.

Palette Banks

Palette files can contain multiple palette banks. For example, palettes for Chao textures have 48 colors (three 16-color banks), and the game selects the bank depending on the texture. The Palette Bank combo box lets you select the current palette bank to apply to the texture.

Working with Chao Palettes

When your texture archive has known paletted Chao textures, the Chao Settings menu at the top lets you select specific Chao alignment and evolutions. These settings are used to determine the palette file and palette bank ID used by specific Chao body types. When you select a known paletted Chao texture, the correct palette and bank ID will be applied automatically.

Palette Start Bank and Start Color

In the original Dreamcast Ninja implementation, palettes can have a starting bank and a start (offset) color. When a starting bank value is defined, the palette's initial bank ID is set to that value instead of 0. When an offset color ID is specified, the colors in the palette start from that ID. For example, the first color in the bank would be 49 rather than 0 if the offset color value is 49.

Although documented in the official SDKs, Palette Start Bank and Start Color are not used in the Sonic Adventure games, and their usage in other games remains to be confirmed. In Texture Editor, changing these fields only edits them in the palette file, and their actual usage is ignored.

Importing and Exporting Indexed Images

You can export an Index4 PVR or GVR texture as a 16-color (4-bit) PNG, and an Index8 PVR or GVR texture as a 256-color (8-bit) PNG using the Export Image... button below the texture preview image. The exported PNG's internal palette will match the PVR or GVR Indexed texture's currently loaded palette.

Indexed Image Import Options dialog

To import a 16-color or 256-color PNG as an Indexed texture, use the Import Image... button under the texture preview image. Doing so will cause the Indexed Image Import Options dialog to appear.

In the dialog you can specify the target Indexed texture format and the palette format. For GVR textures, there is also an option to embed the palette into the texture. Pressing the Auto button will analyze the image to be imported, and find the closest matching palette formats.

Note that some palette formats are only available for PVR, and some only for GVR. For example, Intensity8A8 and RGB5A3 can only be used in GVP palettes and GVR textures. ARGB1555 and ARGB4444 can be used in both PVR and GVR textures, but GVRs with such palettes will only work in Sonic Adventure games. RGB5A3 and Intensity8A8 palettes cannot be used in Sonic Adventure games.

For palettes that aren't embedded into the texture, be sure to save them as PVP or GVP files after conversion has completed.

If you select Non-indexed as the target texture format, all palette information will be discarded, and the texture will be imported as if it was a regular non-indexed texture.

Information for Reference

Texture File Formats

The following table lists all texture file formats supported by Texture Editor.

Extension Description SA1 Dreamcast SA2 Dreamcast SADX Gamecube SA2B Gamecube SADX PC SA2 PC
PVR Dreamcast texture.

Dimensions must be power of 2 and up to 1024x1024.

△ (1)
GVR Gamecube variation of PVR with its own formats.

Dimensions must be power of 2 and up to 1024x1024.

△ (2) △ (3)
DDS Generic texture format used in many PC games. △ (2)
XVR DDS with a custom header. Used in PSO:BB.
PNG Generic graphics format. △ (2)

△ (1): PVR textures in the Bitmap, Index8 and Index8 Mipmaps data formats (see PVR Data Formats) and some pixel formats (see notes in Texture Pixel Formats) are not supported in SADX PC.

△ (2): Requires SADX Mod Loader to be installed and enabled.

△ (3): GVR textures in RGB565 and Intensity pixel formats (see Texture Pixel Formats) are not supported in SA2 PC.

Texture Archive Formats

The following table lists all texture archive formats supported by Texture Editor.

Extension Description SA1 Dreamcast SA2 Dreamcast SADX Gamecube SA2B Gamecube SADX PC SA2 PC
PVM Dreamcast texture archive.

Supported texture format: PVR.

PB A variation of PVM that uses a truncated header.

Supported texture format: PVR.

GVM Gamecube variation of PVM.

Supported texture format: GVR.

XVM Xbox variation of PVM.

Supported texture format: XVR.

PRS A compressed binary file that can be PVM/GVM/XVM.

Supported texture format: depends on the archive.

PVMX Custom texture archive format for SADX Mod Loader.

Supported texture formats: DDS, PNG, JPG, BMP, GIF.

PAK Proprietary archive format used in SA2 PC.

Supported texture formats: DDS, PNG, JPG, BMP, GIF. Can also contain other binary files, such as models.

△: Requires the Mod Loader to be installed and enabled.

Texture Data Formats

In some texture formats, color data may not be stored contiguously, and is instead organized ("twiddled" or "swizzled") in blocks designed to be loaded faster on specific console hardware. PVR and GVR textures in particular have a variety of such formats. In addition, DXT compressed DDS textures also use blocks.

PVR Data Formats

The following table lists all known PVR data formats supported by Texture Editor.

Name Ninja Equivalent Description
Square Twiddled (0x01) NJD_TEXFMT_TWIDDLED A twiddled square texture.
Square Twiddled Mipmaps (0x02) NJD_TEXFMT_TWIDDLED_MM A twiddled square texture with mipmaps.
VQ (0x03) NJD_TEXFMT_VQ A square texture that uses Vector Quantization encoding. The texture contains an internal palette ("codebook") that is used to approximate colors in the image.
VQ Mipmaps (0x04) NJD_TEXFMT_VQ_MM Same as VQ but with mipmaps. The 1x1 mipmap uses the bottom right pixel of the 2x2 mipmap.
Index4 (0x05) NJD_TEXFMT_PALETTIZE4 A square 16-color texture that uses a palette loaded from a separate file. Pixel size is 4-bit (2 pixels per byte).
Index4 Mipmaps (0x06) NJD_TEXFMT_PALETTIZE4_MM Same as Index4 but with mipmaps.
Index8 (0x07) NJD_TEXFMT_PALETTIZE8 A square 256-color texture that uses a palette loaded from a separate file. Pixel size is 8-bit (1 byte per pixel). SADX PC support not confirmed.
Index8 Mipmaps (0x08) NJD_TEXFMT_PALETTIZE8_MM Same as Index8 but with mipmaps. SADX PC support not confirmed.
Rectangle (0x09) NJD_TEXFMT_RECTANGLE A square or rectangle texture that is not twiddled.
Rectangle Mipmaps (0x0A) NJD_TEXFMT_RECTANGLE_MM This texture format ID is defined in Ninja SDK headers, but since only square textures can have mipmaps, this format is effectively the same as Rectangle.
Rectangle Stride (0x0B) NJD_TEXFMT_STRIDE An alternative version of the Rectangle format optimized for faster loading on Dreamcast hardware. Width must be between 32 and 992 and divisible by 32. Height must be 8 or bigger. SADX PC support not confirmed.
Rectangle Stride Mipmaps (0x0C) NJD_TEXFMT_STRIDE_MM This texture format ID is defined in Ninja SDK headers, but since only square textures can have mipmaps, this format is effectively the same as Rectangle Stride.
Rectangle Twiddled (0x0D) NJD_TEXFMT_TWIDDLED_RECTANGLE A twiddled variation of the Rectangle format.
Bitmap (0x0E) NJD_TEXFMT_ABGR This data format forces the pixel format to BGRA8888. Otherwise identical to Rectangle. SADX PC doesn't support this format.
Bitmap Mipmaps (0x0F) NJD_TEXFMT_ABGR_MM This texture format ID is defined in Ninja SDK headers, but since only square textures can have mipmaps, this format is effectively the same as Bitmap.
Small VQ (0x10) NJD_TEXFMT_SMALLVQ A variation of the VQ format that uses a different encoding algorithm meant for textures with the dimensions of 32x32 or smaller.
Small VQ Mipmaps (0x11) NJD_TEXFMT_SMALLVQ_MM Same as Small VQ but with mipmaps.
Square Twiddled Mipmaps DMA (0x12) NJD_TEXFMT_TWIDDLED_MM_DMA A modification of the Square Twiddled Mipmaps format introduced in Ninja 2. Identical to Square Twiddled Mipmaps except 4 dummy bytes at the start of texture data.

GVR Data Formats

GVR texture data is encoded in blocks similar to texture file formats in other Gamecube games. The block size and layout depends on the pixel format (see below).

While the same PVR data format can store different pixel formats, the data format of the GVR texture has only one pixel format associated with it. For more details on GVR data formats, check this page.

The page mentions the indexed 14-bit format (C14X2), which exists in other texture file formats found in Gamecube games. However, SADX and SA2B do not have textures in this format, and at the moment no Index14 GVR files have been found in any game.

Texture Pixel Formats

The following table lists all pixel formats supported by Texture Editor, as well as texture data formats that can store these pixel formats.

Pixel Format Pixel Size Descripton PVR GVR XVR DDS PNG
ARGB1555 16-bit

2 bytes/pixel

1 bit for Alpha, 5 bits for R, G and B.
RGB565 16-bit

2 bytes/pixel

5 bits for R and B, 6 bits for G.

SA2 PC can only load this format in DDS textures, not GVR.

ARGB4444 16-bit

2 bytes/pixel

4 bits for Alpha, R, G and B.
YUV422 16-bit

4 bytes/2 pixels

Uses YUV instead of RGB.

Not supported by the SA games.

BUMP88 16-bit

2 bytes/pixel

Stores a height map (azimuth + elevation).

Not supported by the SA games.

RGB555 16-bit

2 bytes/pixel

Same as ARGB1555 but the Alpha bit is always 1.

Not supported by the SA games.

RGB888 24-bit

3 bytes/pixel

Lossless format without transparency.
ARGB8888 32-bit

4 bytes/pixel

Lossless format with 8 bits for each color component.

PVR: Paletted formats only. GVR: Gamecube games only, not supported by SA2 PC.

RGB5A3 16-bit

2 bytes/pixel

Per pixel: ARGB3444 (three bits for Alpha, 4 bits for R, G and B) or RGB555 (5 bits for R, G and B). One bit is reserved. SADX and SA2B do not support this format.
Intensity4 4-bit

2 pixels/byte

Grayscale pixels that can pick from 16 gradations of gray. Not supported by SA2 PC.
Intensity4A4 8-bit

1 byte/pixel

Grayscale pixels that can pick from 16 gradations of gray and 16 gradations of Alpha. Not supported by SA2 PC.
Intensity8 8-bit

1 byte/pixel

Grayscale pixels that can pick from 256 gradations of gray. Not supported by SA2 PC.
Intensity8A8 16-bit

2 bytes/pixel

Grayscale pixels that can pick from 256 gradations of gray and 256 gradations of Alpha. Not supported by SA2 PC.
DXT1 4-bit

16 pixels/64 bytes

DXT1 compression.
DXT3 8-bit

16 pixels/16 bytes

DXT3 compression.
DXT5 8-bit

16 pixels/16 bytes

DXT5 compression.

Palette Pixel Formats

The following table lists palette color formats supported by Texture Editor.

Color Format PVR GVR Notes
ARGB1555 SADX GC and SA2B GC use this format instead of Intensity8A8.

To use this format with GVR, you must have the option SADX/SA2 Compatible GVPs checked in the program's Edit menu.

RGB565
ARGB4444 SADX GC and SA2B GC use this format instead of RGB5A3.

To use this format with GVR, you must have the option SADX/SA2 Compatible GVPs checked in the program's Edit menu.

ARGB8888
Intensity8A8 This palette format may be used by other Gamecube games, but SADX and SA2B don't use it.

To use this format with GVR, you must have the option SADX/SA2 Compatible GVPs unchecked in the program's Edit menu.

RGB5A3 This palette format is used by other Gamecube games such as PSO and Billy Hatcher, but SADX and SA2B don't use it.

To use this format with GVR, you must have the option SADX/SA2 Compatible GVPs unchecked in the program's Edit menu.

SA Tools Information
General Tools SALVLSAMDLSAFontEditTexture EditorData ToolboxSA Tools Hub
Sonic Adventure (DX) Tools SADXTweaker2SADXSndSharpSASavePL ToolVMS Editor
Sonic Adventure 2 (Battle) Tools SA2 Event ViewerSA2 Cutscene Text EditorSA2 Message File EditorSA2 Stage Select EditorSA2 Cutscene Effect EditorSA2 Light/Fog Editor
Other Command Line ToolsWorking with Binary Files