From 5ff7e0db9f1d789693bf36f2c41ab6f92dce8210 Mon Sep 17 00:00:00 2001 From: Jaby Date: Sun, 29 Sep 2024 16:00:02 +0200 Subject: [PATCH] Re-Update SPU IO --- include/PSX/SPU/spu.hpp | 16 ++++----- include/PSX/System/IOPorts/spu_io.hpp | 36 +++++++++---------- .../internal-include/SPU/spu_internal.hpp | 8 ++--- src/Library/src/BootLoader/spu_boot.cpp | 1 + src/Library/src/BootLoader/start_boot.cpp | 2 +- .../src/File/Processor/vag_processor.cpp | 2 +- src/Library/src/SPU/spu.cpp | 2 +- src/Library/src/SPU/spu_mmu.cpp | 2 +- 8 files changed, 35 insertions(+), 34 deletions(-) diff --git a/include/PSX/SPU/spu.hpp b/include/PSX/SPU/spu.hpp index 81272412..29d9cc04 100644 --- a/include/PSX/SPU/spu.hpp +++ b/include/PSX/SPU/spu.hpp @@ -3,11 +3,11 @@ namespace JabyEngine { namespace SPU { - using SPU_IO::operator""_vol; + using SPU_IO_Values::operator""_vol; - using SRAMAdr = SPU_IO::SRAMAdr; - using SimpleVolume = SPU_IO::SimpleVolume; - using SweepVolume = SPU_IO::SweepVolume; + using SRAMAdr = SPU_IO_Values::SRAMAdr; + using SimpleVolume = SPU_IO_Values::SimpleVolume; + using SweepVolume = SPU_IO_Values::SweepVolume; struct Voice { size_t get_id() const { @@ -15,10 +15,10 @@ namespace JabyEngine { } SRAMAdr allocate(size_t size); - SRAMAdr allocate(SPU_IO::SampleRate frequency, size_t size); + SRAMAdr allocate(SPU_IO_Values::SampleRate frequency, size_t size); void deallocate(); - void set_sample_rate(SPU_IO::SampleRate frequency) { + void set_sample_rate(SPU_IO_Values::SampleRate frequency) { SPU_IO::Voice[Voice::get_id()].sampleRate.write(frequency); } @@ -28,7 +28,7 @@ namespace JabyEngine { } void play() { - SPU_IO::Key::On.write(SPU_IO::KeyOn::for_specific(Voice::get_id())); + SPU_IO::Key::On.write(SPU_IO_Values::KeyOn::for_specific(Voice::get_id())); } void play_if_end() { @@ -38,7 +38,7 @@ namespace JabyEngine { } void stop() { - SPU_IO::Key::Off.write(SPU_IO::KeyOff::for_specific(Voice::get_id())); + SPU_IO::Key::Off.write(SPU_IO_Values::KeyOff::for_specific(Voice::get_id())); } bool is_end() const { diff --git a/include/PSX/System/IOPorts/spu_io.hpp b/include/PSX/System/IOPorts/spu_io.hpp index 4fea5d37..9d10afcd 100644 --- a/include/PSX/System/IOPorts/spu_io.hpp +++ b/include/PSX/System/IOPorts/spu_io.hpp @@ -4,34 +4,34 @@ namespace JabyEngine { namespace SPU_IO { - using namespace SPU_IO_Values; + namespace Value = SPU_IO_Values; static constexpr size_t VoiceCount = 24; static constexpr size_t ReverbCount = 1; - struct ControlRegisterIO : public IOPort { + struct ControlRegisterIO : public IOPort { using TransferMode = Value::RAMTransferMode; void set_transfer_mode(TransferMode mode) { - this->write(this->read().set(ControlRegister::TransferMode.with(mode))); - while(this->read().get(ControlRegister::TransferMode) != mode); + this->write(this->read().set(Value::ControlRegister::TransferMode.with(mode))); + while(this->read().get(Value::ControlRegister::TransferMode) != mode); } }; - using ADIO = IOPort; - using DataTransferControlIO = IOPort; - using EchoIO = IOPort32; - using KeyOffIO = IOPort32; - using KeyOnIO = IOPort32; - using KeyStatusIO = IOPort32; - using NoiseIO = IOPort; - using PitchModulationIO = IOPort32; - using SampleRateIO = IOPort; - using SimpleVolumeIO = IOPort; - using StatusRegisterIO = IOPort; - using SRIO = IOPort; - using SRAMAdrIO = IOPort; - using SweepVolumeIO = IOPort; + using ADIO = IOPort; + using DataTransferControlIO = IOPort; + using EchoIO = IOPort32; + using KeyOffIO = IOPort32; + using KeyOnIO = IOPort32; + using KeyStatusIO = IOPort32; + using NoiseIO = IOPort; + using PitchModulationIO = IOPort32; + using SampleRateIO = IOPort; + using SimpleVolumeIO = IOPort; + using StatusRegisterIO = IOPort; + using SRIO = IOPort; + using SRAMAdrIO = IOPort; + using SweepVolumeIO = IOPort; #pragma pack(push, 1) struct Voice { diff --git a/src/Library/internal-include/SPU/spu_internal.hpp b/src/Library/internal-include/SPU/spu_internal.hpp index cb5e7776..7287d51c 100644 --- a/src/Library/internal-include/SPU/spu_internal.hpp +++ b/src/Library/internal-include/SPU/spu_internal.hpp @@ -12,14 +12,14 @@ namespace JabyEngine { } static void end() { - SPU_IO::ControlRegister.set_transfer_mode(SPU_IO::ControlRegister::Stop); + SPU_IO::ControlRegister.set_transfer_mode(SPU_IO_Values::ControlRegister::Stop); } struct Receive { static void prepare() { end(); - SPU_IO::DataTransferControl.write(SPU_IO::DataTransferControl::NormalTransferMode()); - SPU_IO::ControlRegister.set_transfer_mode(SPU_IO::ControlRegister::Stop); + SPU_IO::DataTransferControl.write(SPU_IO_Values::DataTransferControl::NormalTransferMode()); + SPU_IO::ControlRegister.set_transfer_mode(SPU_IO_Values::ControlRegister::Stop); } static void set_src(uintptr_t adr) { @@ -28,7 +28,7 @@ namespace JabyEngine { static void set_dst(SPU::SRAMAdr adr) { SPU_IO::SRAMTransferAdr.write(adr); - SPU_IO::ControlRegister.set_transfer_mode(SPU_IO::ControlRegister::DMAWrite); + SPU_IO::ControlRegister.set_transfer_mode(SPU_IO_Values::ControlRegister::DMAWrite); } static void start(uint16_t blockCount, uint16_t wordsPerBlock = 0x10) { diff --git a/src/Library/src/BootLoader/spu_boot.cpp b/src/Library/src/BootLoader/spu_boot.cpp index ea1d6ea0..334e5ee5 100644 --- a/src/Library/src/BootLoader/spu_boot.cpp +++ b/src/Library/src/BootLoader/spu_boot.cpp @@ -6,6 +6,7 @@ namespace JabyEngine { namespace SPU { using namespace JabyEngine; using namespace SPU_IO; + using namespace SPU_IO_Values; static void clear_main_volume() { static constexpr auto StartVol = SweepVolume::from(SweepVolume::VolumeMode::Enable, SweepVolume::VolumeMode::Volume.with(SweepVolume::VolumeMode::MaxVolume >> 1)); diff --git a/src/Library/src/BootLoader/start_boot.cpp b/src/Library/src/BootLoader/start_boot.cpp index e996258c..bbfcb49e 100644 --- a/src/Library/src/BootLoader/start_boot.cpp +++ b/src/Library/src/BootLoader/start_boot.cpp @@ -44,7 +44,7 @@ namespace JabyEngine { static void test_spu_alloc() { static const auto calculate_spu_adr = [](size_t size) -> const uint8_t* { - return reinterpret_cast(SPU_IO::MemoryMap::ADPCM + size); + return reinterpret_cast(SPU_IO_Values::MemoryMap::ADPCM + size); }; static const auto simple_assert = [](uint32_t test_id, const uint8_t* adr, const uint8_t* expected) { static const char* ok_text = "Test %i: 0x%p == 0x%p; OK\n"; diff --git a/src/Library/src/File/Processor/vag_processor.cpp b/src/Library/src/File/Processor/vag_processor.cpp index 9d0dcf05..9c6555ce 100644 --- a/src/Library/src/File/Processor/vag_processor.cpp +++ b/src/Library/src/File/Processor/vag_processor.cpp @@ -56,7 +56,7 @@ namespace JabyEngine { state.words_left = words; - auto sram_adr = SPU::voice[state.voice_id].allocate(SPU_IO::SampleRate::from_HZ(header.get_sample_frequency()), bytes); + auto sram_adr = SPU::voice[state.voice_id].allocate(SPU_IO_Values::SampleRate::from_HZ(header.get_sample_frequency()), bytes); SPU::voice[state.voice_id].set_volume(state.inital_vol, state.inital_vol); diff --git a/src/Library/src/SPU/spu.cpp b/src/Library/src/SPU/spu.cpp index 46042ad6..a8ddc2ac 100644 --- a/src/Library/src/SPU/spu.cpp +++ b/src/Library/src/SPU/spu.cpp @@ -17,7 +17,7 @@ namespace JabyEngine { return adr; } - SRAMAdr Voice :: allocate(SPU_IO::SampleRate frequency, size_t size) { + SRAMAdr Voice :: allocate(SPU_IO_Values::SampleRate frequency, size_t size) { const auto result = Voice::allocate(size); Voice::set_sample_rate(frequency); return result; diff --git a/src/Library/src/SPU/spu_mmu.cpp b/src/Library/src/SPU/spu_mmu.cpp index 71b224ed..c38ea785 100644 --- a/src/Library/src/SPU/spu_mmu.cpp +++ b/src/Library/src/SPU/spu_mmu.cpp @@ -9,7 +9,7 @@ namespace JabyEngine { namespace SPU_MMU { - namespace SPU_MemoryMap = SPU_IO::MemoryMap; + namespace SPU_MemoryMap = SPU_IO_Values::MemoryMap; struct SPUMemory { const uint8_t* adr;