Skip to content

RTOS-like bare metal platform support library for Nintendo GBA and DS(i)

License

Notifications You must be signed in to change notification settings

devkitPro/calico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

calico

Calico is a system support library currently focused on the Nintendo DS(i). It provides operating system-like facilities for homebrew applications, and serves as a new foundation for libnds (and DS homebrew in general). Its main features include:

  • Multitasking system, providing threads (inspired by Horizon). Scheduling is preemptive and based on multiple priority levels, similar to real-time operating systems.
  • Synchronization primitives: mutex, condition variable, mailbox.
  • Interrupt and timed event handling.
  • Low-level support bits for integration with devkitARM (crt0, linker scripts, syscall implementations).
  • Message passing between the two processors (ARM9 and ARM7).
  • New device drivers for ARM7 peripherals, with programming interfaces accessible from the ARM9:
    • Power management, including sleep mode and application lifecycle management
    • Touch screen (both DS mode and DSi mode)
    • Real-time clock
    • Audio and microphone
    • Storage devices, including DLDI and DSi SD/eMMC
    • Wireless communications (Mitsumi/NDS and Atheros/DSi)