BizHawk/waterbox/virtualjaguar/src/dsp.h

34 lines
941 B
C

//
// dsp.h
//
#ifndef __DSP_H__
#define __DSP_H__
#include "memory.h"
#define DSP_CONTROL_RAM_BASE 0x00F1A100
#define DSP_WORK_RAM_BASE 0x00F1B000
void DSPInit(void);
void DSPReset(void);
void DSPExec(int32_t);
void DSPSetIRQLine(int irqline, int state);
uint8_t DSPReadByte(uint32_t offset, uint32_t who = UNKNOWN);
uint16_t DSPReadWord(uint32_t offset, uint32_t who = UNKNOWN);
uint32_t DSPReadLong(uint32_t offset, uint32_t who = UNKNOWN);
void DSPWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
void DSPWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
void DSPWriteLong(uint32_t offset, uint32_t data, uint32_t who = UNKNOWN);
bool DSPIsRunning(void);
// Exported vars
extern uint32_t dsp_reg_bank_0[], dsp_reg_bank_1[];
// DSP interrupt numbers (in $F1A100, bits 4-8 & 16)
enum { DSPIRQ_CPU = 0, DSPIRQ_SSI, DSPIRQ_TIMER0, DSPIRQ_TIMER1, DSPIRQ_EXT0, DSPIRQ_EXT1 };
#endif // __DSP_H__