cog/Frameworks/GME/vgmplay/chips/yam.h

55 lines
1.8 KiB
C
Raw Normal View History

2016-07-02 09:57:36 +00:00
/////////////////////////////////////////////////////////////////////////////
//
// yam - Emulates Yamaha SCSP and AICA
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __SEGA_YAM_H__
#define __SEGA_YAM_H__
#include "emuconfig.h"
#ifdef __cplusplus
extern "C" {
#endif
/////////////////////////////////////////////////////////////////////////////
// version = 1 for SCSP, 2 for AICA
// ramsize must be a power of 2
sint32 EMU_CALL yam_init(void);
uint32 EMU_CALL yam_get_state_size(uint8 version);
void EMU_CALL yam_clear_state(void *state, uint8 version);
void EMU_CALL yam_enable_dry(void *state, uint8 enable);
void EMU_CALL yam_enable_dsp(void *state, uint8 enable);
void EMU_CALL yam_enable_dsp_dynarec(void *state, uint8 enable);
void EMU_CALL yam_setram(void *state, uint32 *ram, uint32 size, uint8 mbx, uint8 mwx);
void EMU_CALL yam_beginbuffer(void *state, sint16 *buf);
void EMU_CALL yam_advance(void *state, uint32 samples);
void EMU_CALL yam_flush(void *state);
uint32 EMU_CALL yam_aica_load_reg(void *state, uint32 a, uint32 mask);
void EMU_CALL yam_aica_store_reg(void *state, uint32 a, uint32 d, uint32 mask, uint8 *breakcpu);
uint32 EMU_CALL yam_scsp_load_reg(void *state, uint32 a, uint32 mask);
void EMU_CALL yam_scsp_store_reg(void *state, uint32 a, uint32 d, uint32 mask, uint8 *breakcpu);
uint8* EMU_CALL yam_get_interrupt_pending_ptr(void *state);
uint32 EMU_CALL yam_get_min_samples_until_interrupt(void *state);
void EMU_CALL yam_prepare_dynacode(void *state);
void EMU_CALL yam_unprepare_dynacode(void *state);
void EMU_CALL yam_set_mute(void *state, uint32 channel, uint32 enable);
/////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#endif