# 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);
```