Suelen venir ya con el firmware flasheado, por lo que sólo es necesario copiar el launcher y el loader en la tarjeta SD, y esos ya están compilados y listos para bajar en GitHub.
Eso sí, lo más probable es que el firmware esté en modo WRFUxxed, lo que tiene la ventaja de poder funcionar en consolas DSi y 3DS sin modificar, pero el inconveniente de que en consolas DSi arranca directamente el cartucho sin pasar por el menú, y en 3DS el cartucho aparece con un icono genérico de una interrogación y el texto "NINTENDO DS Demostracion". Solo en consolas DS y DSL aparece con el icono y el texto propios de DSpico.
Si lo vas a usar en consolas DSi o 3DS modificadas con Unlaunch o Luma3DS, solo en ese caso, podrías compilar el firmware sin WRFUxxed en modo Hybrid Bootloader. De esa forma aparecería también en DSi y 3DS con el icono propio de DSpico.
Compilar el firmware no es excesivamente complicado, pero es muy recomendable moverse con soltura en Linux, ya que además algunas cosas no están explicadas en mucho detalle. En teoría se puede compilar usando WSL, MSYS2 o Linux Nativo. Yo opté por usar una máquina virtual con la última versión de Linux Mint, más por costumbre que por otra cosa.
Además de las instrucciones de los README de las páginas de GitHub del firmware, dldi y bootloader, el siguiente Dockerfile contiene la lista de comandos necesarios para compilar el firmware en modo WRFUxxed (a excepción de la instalación de Wonderful Toolchain y BlockDS), que a mi me fue muy útil.
https://gist.github.com/synthic/f939606 ... 6eba101b2e