libdragon
Macros | Functions | Variables

N64 System Interface. More...

Macros

#define cache_op(op, linesize)
 Helper macro to perform cache refresh operations. More...
 
#define TV_TYPE_LOC   0x80000300
 Memory location to read which determines the TV type.
 

Functions

bool sys_bbplayer (void)
 Return true if we are running on a iQue player.
 
int sys_get_boot_cic ()
 Return the boot CIC. More...
 
void sys_set_boot_cic (int bc)
 Set the boot CIC. More...
 
void data_cache_hit_writeback (volatile const void *addr, unsigned long length)
 Force a data cache writeback over a memory region. More...
 
void __data_cache_hit_invalidate (volatile void *addr, unsigned long length)
 Underlying implementation of data_cache_hit_invalidate.
 
void data_cache_hit_writeback_invalidate (volatile void *addr, unsigned long length)
 Force a data cache writeback invalidate over a memory region. More...
 
void data_cache_index_writeback_invalidate (volatile void *addr, unsigned long length)
 Force a data cache index writeback invalidate over a memory region. More...
 
void data_cache_writeback_invalidate_all (void)
 Force a data cache writeback invalidate over whole memory. More...
 
void inst_cache_hit_writeback (volatile const void *addr, unsigned long length)
 Force an instruction cache writeback over a memory region. More...
 
void inst_cache_hit_invalidate (volatile void *addr, unsigned long length)
 Force an instruction cache invalidate over a memory region. More...
 
void inst_cache_index_invalidate (volatile void *addr, unsigned long length)
 Force an instruction cache index invalidate over a memory region. More...
 
void inst_cache_invalidate_all (void)
 Force an instruction cache invalidate over whole memory. More...
 
void * malloc_uncached (size_t size)
 Allocate a buffer that will be accessed as uncached memory. More...
 
void * malloc_uncached_aligned (int align, size_t size)
 Allocate a buffer that will be accessed as uncached memory, specifying alignment. More...
 
void free_uncached (void *buf)
 Free an uncached memory buffer. More...
 
int get_memory_size ()
 Get amount of available memory. More...
 
bool is_memory_expanded ()
 Is expansion pak in use. More...
 
tv_type_t get_tv_type ()
 Is system NTSC/PAL/MPAL. More...
 
uint64_t get_ticks (void)
 Read the number of ticks since system startup. More...
 
uint64_t get_ticks_us (void)
 Read the number of microseconds since system startup. More...
 
uint64_t get_ticks_ms (void)
 Read the number of millisecounds since system startup. More...
 
void wait_ticks (unsigned long wait)
 Spin wait until the number of ticks have elapsed. More...
 
void wait_ms (unsigned long wait_ms)
 Spin wait until the number of milliseconds have elapsed. More...
 
void __init_cop1 (void)
 Initialize COP1 with default settings that prevent undesirable exceptions. More...
 

Variables

int __bbplayer = 0
 Indicates whether we are running on a vanilla N64 or a iQue player.
 
int __bootcic = 6102
 Boot CIC. More...
 

Detailed Description

N64 System Interface.

Macro Definition Documentation

◆ cache_op

#define cache_op (   op,
  linesize 
)
Value:
({ \
if (length) { \
void *cur = (void*)((unsigned long)addr & ~(linesize-1)); \
int count = (int)length + (addr-cur); \
for (int i = 0; i < count; i += linesize) \
asm ("\tcache %0,(%1)\n"::"i" (op), "r" (cur+i)); \
} \
})

Helper macro to perform cache refresh operations.

Parameters
[in]opOperation to perform
[in]linesizeSize of a cacheline in bytes

Function Documentation

◆ __init_cop1()

void __init_cop1 ( void  )

Initialize COP1 with default settings that prevent undesirable exceptions.

Enable FPU exceptions that can help programmers avoid bugs in their code. Underflow exceptions are not enabled because they are triggered whenever a denormalized float is generated, even if the FS bit is set (see below). So basically having the underflow exception enabled seems to be useless unless also the underflow (and the inexact) exceptions are off. Notice that underflows can happen also with library code such as tanf(BITCAST_I2F(0x3f490fdb)) (0.785398185253).

Variable Documentation

◆ __bootcic

int __bootcic = 6102

Boot CIC.

Defaults to 6102.