This is what I got so far for entry.a:
Code:
dl_main
run_console
GBA_card_write_rom
write_gba_card
vxMem_Info
GBA_Get_Rom
GBA_hardware_init
getext
AppMain
void abort()
int printf(const char*, ...)
int sprintf(char*, const char*, ...)
int fprintf(FILE*, const char*, ...)
strncasecmp
void* malloc(size_t)
void* realloc(void*, size_t)
void free(void*)
size_t fread(void*, size_t, size_t, FILE*)
size_t fwrite(const void*, size_t, size_t, FILE*)
int fseek(FILE*, long int, int)
LcdGetDisMode
vxGoHome
StartSwTimer
void free_irq(unsigned int irq)
fsys_RefreshCache
strlen
void _lcd_set_frame()
void* _lcd_get_frame()
void* lcd_get_cframe()
ap_lcd_set_frame
lcd_flip
void __icache_invalidate_all()
void __dcache_writeback_all()
TaskMediaFunStop
OS_CPU_SR OSCPUSaveSR()
void OSCPURestoreSR(OS_CPU_SR cpu_sr)
int serial_getc()
void serial_putc(const char c)
void _kbd_get_status(KEY_STATUS*)
get_game_vol
unsigned int _kbd_get_key()
FILE* fsys_fopen(const char*, const char*)
int fsys_fread(void*, size_t, size_t, FILE*)
int fsys_fclose(FILE*)
int fsys_fseek(FILE*, long int, int)
long int fsys_ftell(FILE*)
fsys_remove
fsys_rename
int fsys_ferror(FILE*)
int fsys_feof(FILE*)
int fsys_fwrite(const void*, size_t, size_t, FILE*)
fsys_findfirst
fsys_findnext
fsys_findclose
fsys_flush_cache
USB_Connect
udc_attached
USB_No_Connect
void* _waveout_open(void *)
int _waveout_close(void *)
void _waveout_close_at_once(unsigned int)
waveout_set_volume
HP_Mute_sw
waveout_can_write
waveout_write
int pcm_can_write()
int pcm_ioctl(unsigned int cmd, unsigned long arg)
uint32_t OSTimeGet()
void OSTimeDly(uint16_t ticks)
void OSSemPend(OS_EVENT* event, uint16_t timeout, uint8_t* error)
uint8_t OSSemPost(OS_EVENT* event)
OS_EVENT* OSSemCreate(uint16_t cnt)
uint8_t OSTaskCreate(void (*task)(), void* data, uint16_t stack_size, uint8_t priority)
OS_EVENT* OSSemDel(OS_EVENT *event, uint8_t option, uint8_t* error)
uint8_t OSTaskDel(uint8_t priority)
unsigned long int GetTickCount()
int _sys_judge_event()
fsys_fopenW
__to_unicode_le
char* __to_locale_ansi(wchar_t*)
get_current_language
get_dl_handle
dl_res_open
dl_res_get_size
dl_res_get_data
dl_res_close
pmp_au
If anyone has any questions regarding the ones I've defined then ask, some interesting information about things I discovered:
For GetTickCount() the tick resolution seems to be 960KHz (960000).
Once the framebuffer has been written to (at address _lcd_get_frame), you need to call _lcd_set_frame and a dcache invalidate to update the screen.
You don't need to allocate space for the framebuffer, that is done inside the operating system at some point.
The button masks are:
Code:
#define CONTROL_BUTTON_A 0x80000000
#define CONTROL_BUTTON_B 0x00200000
#define CONTROL_BUTTON_X 0x00010000
#define CONTROL_BUTTON_Y 0x00000040
#define CONTROL_BUTTON_START 0x00000800
#define CONTROL_BUTTON_SELECT 0x00000400
#define CONTROL_TRIGGER_LEFT 0x00000100
#define CONTROL_TRIGGER_RIGHT 0x20000000
#define CONTROL_DPAD_UP 0x00100000
#define CONTROL_DPAD_DOWN 0x08000000
#define CONTROL_DPAD_LEFT 0x10000000
#define CONTROL_DPAD_RIGHT 0x00040000
The code in the loader seems to be just plain wrong.
Also the whole of interface.c, and keyboard.h are completely redundant.
EDIT: The list has been modified for ones that I haven't fully determined, and some new ones.
IMPORTANT NOTE: strlen is not the same as strlen in the c standard library, using it as such will cause your programs to crash.