#include "stdafx.h" #include "Emu/Cell/PPUModule.h" #include "libsynth2.h" LOG_CHANNEL(libsynth2); template <> void fmt_class_string::format(std::string& out, u64 arg) { format_enum(out, arg, [](auto error) { switch (error) { STR_CASE(CELL_SOUND_SYNTH2_ERROR_FATAL); STR_CASE(CELL_SOUND_SYNTH2_ERROR_INVALID_PARAMETER); STR_CASE(CELL_SOUND_SYNTH2_ERROR_ALREADY_INITIALIZED); } return unknown; }); } error_code cellSoundSynth2Config(s16 param, s32 value) { libsynth2.todo("cellSoundSynth2Config(param=%d, value=%d)", param, value); return CELL_OK; } error_code cellSoundSynth2Init(s16 flag) { libsynth2.todo("cellSoundSynth2Init(flag=%d)", flag); return CELL_OK; } error_code cellSoundSynth2Exit() { libsynth2.todo("cellSoundSynth2Exit()"); return CELL_OK; } void cellSoundSynth2SetParam(u16 reg, u16 value) { libsynth2.todo("cellSoundSynth2SetParam(register=0x%x, value=0x%x)", reg, value); } u16 cellSoundSynth2GetParam(u16 reg) { libsynth2.todo("cellSoundSynth2GetParam(register=0x%x)", reg); return 0; } void cellSoundSynth2SetSwitch(u16 reg, u32 value) { libsynth2.todo("cellSoundSynth2SetSwitch(register=0x%x, value=0x%x)", reg, value); } u32 cellSoundSynth2GetSwitch(u16 reg) { libsynth2.todo("cellSoundSynth2GetSwitch(register=0x%x)", reg); return 0; } error_code cellSoundSynth2SetAddr(u16 reg, u32 value) { libsynth2.todo("cellSoundSynth2SetAddr(register=0x%x, value=0x%x)", reg, value); return CELL_OK; } u32 cellSoundSynth2GetAddr(u16 reg) { libsynth2.todo("cellSoundSynth2GetAddr(register=0x%x)", reg); return 0; } error_code cellSoundSynth2SetEffectAttr(s16 bus, vm::ptr attr) { libsynth2.todo("cellSoundSynth2SetEffectAttr(bus=%d, attr=*0x%x)", bus, attr); return CELL_OK; } error_code cellSoundSynth2SetEffectMode(s16 bus, vm::ptr attr) { libsynth2.todo("cellSoundSynth2SetEffectMode(bus=%d, attr=*0x%x)", bus, attr); return CELL_OK; } void cellSoundSynth2SetCoreAttr(u16 entry, u16 value) { libsynth2.todo("cellSoundSynth2SetCoreAttr(entry=0x%x, value=0x%x)", entry, value); } error_code cellSoundSynth2Generate(u16 samples, vm::ptr Lout, vm::ptr Rout, vm::ptr Ls, vm::ptr Rs) { libsynth2.todo("cellSoundSynth2Generate(samples=0x%x, Lout=*0x%x, Rout=*0x%x, Ls=*0x%x, Rs=*0x%x)", samples, Lout, Rout, Ls, Rs); return CELL_OK; } error_code cellSoundSynth2VoiceTrans(s16 channel, u16 mode, vm::ptr m_addr, u32 s_addr, u32 size) { libsynth2.todo("cellSoundSynth2VoiceTrans(channel=%d, mode=0x%x, m_addr=*0x%x, s_addr=0x%x, size=0x%x)", channel, mode, m_addr, s_addr, size); return CELL_OK; } error_code cellSoundSynth2VoiceTransStatus(s16 channel, s16 flag) { libsynth2.todo("cellSoundSynth2VoiceTransStatus(channel=%d, flag=%d)", channel, flag); return CELL_OK; } u16 cellSoundSynth2Note2Pitch(u16 center_note, u16 center_fine, u16 note, s16 fine) { libsynth2.todo("cellSoundSynth2Note2Pitch(center_note=0x%x, center_fine=0x%x, note=0x%x, fine=%d)", center_note, center_fine, note, fine); return 0; } u16 cellSoundSynth2Pitch2Note(u16 center_note, u16 center_fine, u16 pitch) { libsynth2.todo("cellSoundSynth2Pitch2Note(center_note=0x%x, center_fine=0x%x, pitch=0x%x)", center_note, center_fine, pitch); return 0; } DECLARE(ppu_module_manager::libsynth2)("libsynth2", []() { REG_FUNC(libsynth2, cellSoundSynth2Config); REG_FUNC(libsynth2, cellSoundSynth2Init); REG_FUNC(libsynth2, cellSoundSynth2Exit); REG_FUNC(libsynth2, cellSoundSynth2SetParam); REG_FUNC(libsynth2, cellSoundSynth2GetParam); REG_FUNC(libsynth2, cellSoundSynth2SetSwitch); REG_FUNC(libsynth2, cellSoundSynth2GetSwitch); REG_FUNC(libsynth2, cellSoundSynth2SetAddr); REG_FUNC(libsynth2, cellSoundSynth2GetAddr); REG_FUNC(libsynth2, cellSoundSynth2SetEffectAttr); REG_FUNC(libsynth2, cellSoundSynth2SetEffectMode); REG_FUNC(libsynth2, cellSoundSynth2SetCoreAttr); REG_FUNC(libsynth2, cellSoundSynth2Generate); REG_FUNC(libsynth2, cellSoundSynth2VoiceTrans); REG_FUNC(libsynth2, cellSoundSynth2VoiceTransStatus); REG_FUNC(libsynth2, cellSoundSynth2Note2Pitch); REG_FUNC(libsynth2, cellSoundSynth2Pitch2Note); });