# dma.config The purpose of the `dma.config` file is to define entries in the DMA table, each associated with an index specified by the corresponding folder name. For example, consider the path: ``` rom/dma/0x##-entry_name/dma.config ``` Here, the `0x##` represents a hexadecimal index, and `entry_name` is the name of the DMA entry. ## File Specifier To specify files within the `dma.config`, adhere to the following convention: ```ini file = [ "file.bin", "binary" ] ``` Here, the entry is an array where the first element designates the file path (relative to `dma.config`). The second element specifies the type of the file. ## File Types z64rom supports the following options for file import types: - `"binary"` - `"texture:rgba32"` - `"texture:rgba16"` - `"texture:ci4"` - `"texture:ci8"` - `"texture:ia16"` - `"texture:ia8"` - `"texture:ia4"` - `"texture:i8"` - `"texture:i4"` The `"binary"` type will be written as-is, without any modifications. Any other type will be encoded to the specified format. ## Type: "file" For a single file, the configuration is straightforward: ```ini type = "file" file = [ "my_file.bin", "binary" ] compress = true ``` ## Type: "collection" A collection is a versatile entry in the DMA table, capable of holding various types of files. ```ini type = "collection" name = "MyCollection" compress = true collection = [ { name = "MyFile" file = [ "file.bin", "binary" ] } ] ``` Collection entries generate symbols based on the `name` and the `collection entry name`. For example, the first entry in the given example would be named `gMyCollection_MyFile`. z64rom provides an API to easily access items in these entries: ```c u32 DmaCollection_EntrySize(void* entry); s32 DmaCollection_EntryLoad(void* entry, void* dst); ```