SSBM Decomp
Loading...
Searching...
No Matches
axdriver.c File Reference
#include "axdriver.h"
#include "axdriver.static.h"
#include <math_ppc.h>
#include <string.h>
#include <dolphin/axfx.h>
#include <dolphin/dvd.h>
#include <dolphin/os.h>
#include <sysdolphin/baselib/debug.h>
#include <sysdolphin/baselib/synth.h>

Data Structures

struct  RevHiDims

Macros

#define MIN2(x, y)
#define MAX2(x, y)
#define CLAMP(min, val, max)

Functions

void * AXDriverAlloc (size_t size)
void AXDriverFree (void *ptr)
void AXDriverUnlink (HSD_SM *v, HSD_SM **head)
static void unk_inline (HSD_SM *v, HSD_SM **head)
static bool tmp (HSD_SM *v)
bool AXDriverKeyOff (int vid)
void HSD_AudioSFXKeyOffAll (void)
void HSD_AudioSFXKeyOffTrack (int track)
static void unused (HSD_SM *v)
 unused function to force data ordering for this assert string
u32 AXDriver_8038C678 (u32 param_type, u32 param_value)
static float sqrtf_store (float x, volatile float *y)
 MSL sqrtf expansion (src/MSL/math_ppc.h) writing its result through a caller-provided slot, as in sqrtf_store in lbcollision.c and mplib.c.
void AXDriver_8038BF6C (HSD_SM *v)
void AXDriver_8038C6C0 (HSD_SM *v)
static void fn_8038CC1C (void)
static void fn_8038CEA4 (s32 vID)
static void fn_8038CF48 (s32 vID)
static HSD_SMAXDriver_8038CFF4_inline (void)
int AXDriver_8038CFF4 (int sound_id, u8 volume, u8 pan, int track, int channel)
bool AXDriver_8038D2B4 (int vid, u8 pan)
bool AXDriver_8038D3B8 (s32 vid, u8 volume)
bool AXDriver_8038D4E4 (s32 vid, s16 pitch)
bool AXDriver_8038D5B4 (s32 vid, s32 aux_bus, u8 send_level)
bool AXDriver_8038D914 (s32 channel, s32 aux_bus, s8 send_level)
bool AXDriver_8038D9D8 (int vid)
static void fn_8038DA5C (s32 result, DVDFileInfo *fileInfo)
void AXDriver_8038DA70 (const char *path, void(*callback)(void))
void AXDriver_8038DCFC (void)
int AXDriverSetupAux (int channel, AXDriverAuxType type, void *param)
s32 HSD_AudioGetAuxHeapSize (AXDriverAuxType type, void *param)
bool AXDriver_8038E30C (s32 channel, s32 type, void *param, u8 *heap, u32 heap_size)
bool AXDriver_8038E37C (AXDriverAuxType type, void *param)
void AXDriver_8038E498 (int voices, int priority, int sample_rate, int aram_size)
int AXDriver_8038E5D4 (void)
int AXDriver_8038E5DC (void)
static bool AXDriver_8038E5E4 (int vid)
bool AXDriver_8038E6C0 (int channel)
static bool AXDriver_8038E768 (int vid)
bool AXDriver_8038E844 (int channel)
bool AXDriver_8038E8EC (const char *path, u8 volume, int track)
bool AXDriverStop (void)
bool AXDriverPause (void)
bool AXDriverResume (void)
bool AXDriver_8038EA18 (void)

Variables

const RevHiDims AXDriver_803B95F8
const s32 AXDriver_803B9618 []

Macro Definition Documentation

◆ MIN2

#define MIN2 ( x,
y )
Value:
((x) < (y) ? (x) : (y))

◆ MAX2

#define MAX2 ( x,
y )
Value:
((x) < (y) ? (y) : (x))

◆ CLAMP

#define CLAMP ( min,
val,
max )
Value:
MAX2(MIN2(val, max), min)
#define MAX2(x, y)
Definition axdriver.c:315
#define MIN2(x, y)
Definition axdriver.c:314

Function Documentation

◆ AXDriverAlloc()

void * AXDriverAlloc ( size_t size)

◆ AXDriverFree()

void AXDriverFree ( void * ptr)

◆ AXDriverUnlink()

void AXDriverUnlink ( HSD_SM * v,
HSD_SM ** head )

◆ unk_inline()

void unk_inline ( HSD_SM * v,
HSD_SM ** head )
static

◆ tmp()

bool tmp ( HSD_SM * v)
static

◆ AXDriverKeyOff()

bool AXDriverKeyOff ( int vid)

◆ HSD_AudioSFXKeyOffAll()

void HSD_AudioSFXKeyOffAll ( void )

◆ HSD_AudioSFXKeyOffTrack()

void HSD_AudioSFXKeyOffTrack ( int track)

◆ unused()

void unused ( HSD_SM * v)
static

unused function to force data ordering for this assert string

◆ AXDriver_8038C678()

u32 AXDriver_8038C678 ( u32 param_type,
u32 param_value )

◆ sqrtf_store()

float sqrtf_store ( float x,
volatile float * y )
inlinestatic

MSL sqrtf expansion (src/MSL/math_ppc.h) writing its result through a caller-provided slot, as in sqrtf_store in lbcollision.c and mplib.c.

Evidence: retail AXDriver_8038BF6C keeps its eight sqrt results in adjacent 4-byte stack temps at frame offsets 0x10..0x2C (an 8-byte aligned base), one slot per call in source order, each accessed as a stfs/lfs pair. The volatile-qualified accesses through the slot pointer pin those pairs without changing behavior.

◆ AXDriver_8038BF6C()

void AXDriver_8038BF6C ( HSD_SM * v)

sqrtf result slots; retail frame offsets 0x10..0x2C (base aligned 8)

◆ AXDriver_8038C6C0()

void AXDriver_8038C6C0 ( HSD_SM * v)

◆ fn_8038CC1C()

void fn_8038CC1C ( void )
static

◆ fn_8038CEA4()

void fn_8038CEA4 ( s32 vID)
static

◆ fn_8038CF48()

void fn_8038CF48 ( s32 vID)
static

◆ AXDriver_8038CFF4_inline()

HSD_SM * AXDriver_8038CFF4_inline ( void )
inlinestatic

◆ AXDriver_8038CFF4()

int AXDriver_8038CFF4 ( int sound_id,
u8 volume,
u8 pan,
int track,
int channel )

◆ AXDriver_8038D2B4()

bool AXDriver_8038D2B4 ( int vid,
u8 pan )

◆ AXDriver_8038D3B8()

bool AXDriver_8038D3B8 ( s32 vid,
u8 volume )

◆ AXDriver_8038D4E4()

bool AXDriver_8038D4E4 ( s32 vid,
s16 pitch )

◆ AXDriver_8038D5B4()

bool AXDriver_8038D5B4 ( s32 vid,
s32 aux_bus,
u8 send_level )

◆ AXDriver_8038D914()

bool AXDriver_8038D914 ( s32 channel,
s32 aux_bus,
s8 send_level )

◆ AXDriver_8038D9D8()

bool AXDriver_8038D9D8 ( int vid)

◆ fn_8038DA5C()

void fn_8038DA5C ( s32 result,
DVDFileInfo * fileInfo )
static

◆ AXDriver_8038DA70()

void AXDriver_8038DA70 ( const char * path,
void(* callback )(void) )

◆ AXDriver_8038DCFC()

void AXDriver_8038DCFC ( void )

◆ AXDriverSetupAux()

int AXDriverSetupAux ( int channel,
AXDriverAuxType type,
void * param )

◆ HSD_AudioGetAuxHeapSize()

s32 HSD_AudioGetAuxHeapSize ( AXDriverAuxType type,
void * param )

◆ AXDriver_8038E30C()

bool AXDriver_8038E30C ( s32 channel,
s32 type,
void * param,
u8 * heap,
u32 heap_size )

◆ AXDriver_8038E37C()

bool AXDriver_8038E37C ( AXDriverAuxType type,
void * param )

◆ AXDriver_8038E498()

void AXDriver_8038E498 ( int voices,
int priority,
int sample_rate,
int aram_size )

◆ AXDriver_8038E5D4()

int AXDriver_8038E5D4 ( void )

◆ AXDriver_8038E5DC()

int AXDriver_8038E5DC ( void )

◆ AXDriver_8038E5E4()

bool AXDriver_8038E5E4 ( int vid)
static

◆ AXDriver_8038E6C0()

bool AXDriver_8038E6C0 ( int channel)

◆ AXDriver_8038E768()

bool AXDriver_8038E768 ( int vid)
static

◆ AXDriver_8038E844()

bool AXDriver_8038E844 ( int channel)

◆ AXDriver_8038E8EC()

bool AXDriver_8038E8EC ( const char * path,
u8 volume,
int track )

◆ AXDriverStop()

bool AXDriverStop ( void )

◆ AXDriverPause()

bool AXDriverPause ( void )

◆ AXDriverResume()

bool AXDriverResume ( void )

◆ AXDriver_8038EA18()

bool AXDriver_8038EA18 ( void )

Variable Documentation

◆ AXDriver_803B95F8

const RevHiDims AXDriver_803B95F8
Initial value:
= {
{ 0x6FD, 0x7CF, 0x91D, 0x1B1, 0x95, 0x2F, 0x49, 0x43 },
}

◆ AXDriver_803B9618

const s32 AXDriver_803B9618[]
Initial value:
= {
0x6FD,
0x7CF,
0x1B1,
0x95,
}