# Integration Integrating hUGEDriver into your project depends on what you are using. First, get the [release of hUGEDriver](https://github.com/SuperDisk/hUGEDriver/releases) that matches your version of hUGETracker. ### RGBDS (assembly) Import [`hUGEDriver.asm`](https://github.com/SuperDisk/hUGEDriver/blob/master/hUGEDriver.asm) and [`hUGE.inc`](https://github.com/SuperDisk/hUGEDriver/blob/master/include/hUGE.inc) (in the `include` directory) into your project (songs need the latter as well). You will additionally need [`hardware.inc`](https://github.com/gbdev/hardware.inc) 4.2 or later, if you don't already. Then, simply compile `hUGEDriver.asm` with the rest of your code, and you're done! ### GBDK (C) hUGEDriver releases contain a pre-compiled `.lib` for use with GBDK-2020. Link it while compiling, include `hUGEDriver.h`, and you're done: ```sh lcc ... -Wl-lhUGEDriver.lib ``` If you want to compile the driver yourself, a few extra steps are necessary. 0. You will need [RGBDS](https://rgbds.gbdev.io), and [Python](https://www.python.org/) 1. Assemble hUGEDriver: `rgbasm -o hUGEDriver.obj hUGEDriver.asm` 3. Convert the object file: `python tools\rgb2sdas.py -o hUGEDriver.o hUGEDriver.obj` 4. Import `hUGEDriver.h` into your project 5. Simply link `hUGEDriver.o` with the rest of your code, and you're done! ## Usage There are two parts to using hUGEDriver: *initializing* a song, and *playing* a song. ### Initialization You begin playing a song by passing a pointer to it to the `hUGE_init` function. How can you get such a pointer, though? Simple! The "song descriptor" that you choose when exporting your song names a label (assembly) / variable (C) that points to the song! So if your song descriptor was, say, `ryukenden`:
| Assembly | C |
|---|---|
| ```avrasm ld hl, ryukenden call hUGE_init ``` | ```c hUGE_init(ryukenden); ``` |