mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	DSP now works... committing this!!
This commit is contained in:
		
							parent
							
								
									5604613642
								
							
						
					
					
						commit
						3d1180ee21
					
				
					 3 changed files with 20 additions and 9 deletions
				
			
		|  | @ -1,3 +1,4 @@ | ||||||
|  | #pragma optimize("", off) | ||||||
| // Copyright 2017 Citra Emulator Project
 | // Copyright 2017 Citra Emulator Project
 | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
|  | @ -14,7 +15,11 @@ | ||||||
| namespace AudioCore { | namespace AudioCore { | ||||||
| 
 | 
 | ||||||
| DspInterface::DspInterface() = default; | DspInterface::DspInterface() = default; | ||||||
| DspInterface::~DspInterface() = default; | DspInterface::~DspInterface() { | ||||||
|  |     LOG_WARNING(Audio_DSP, "c1"); | ||||||
|  |     sink.reset(); | ||||||
|  |     LOG_WARNING(Audio_DSP, "c2"); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void DspInterface::SetSink(const std::string& sink_id, const std::string& audio_device) { | void DspInterface::SetSink(const std::string& sink_id, const std::string& audio_device) { | ||||||
|     sink = CreateSinkFromID(Settings::values.sink_id, Settings::values.audio_device_id); |     sink = CreateSinkFromID(Settings::values.sink_id, Settings::values.audio_device_id); | ||||||
|  |  | ||||||
|  | @ -16,6 +16,7 @@ | ||||||
| #elif HAVE_FDK | #elif HAVE_FDK | ||||||
| #include "audio_core/hle/fdk_decoder.h" | #include "audio_core/hle/fdk_decoder.h" | ||||||
| #endif | #endif | ||||||
|  | #include <iostream> | ||||||
| #include "audio_core/hle/common.h" | #include "audio_core/hle/common.h" | ||||||
| #include "audio_core/hle/decoder.h" | #include "audio_core/hle/decoder.h" | ||||||
| #include "audio_core/hle/hle.h" | #include "audio_core/hle/hle.h" | ||||||
|  | @ -148,8 +149,11 @@ DspHle::Impl::Impl(DspHle& parent_, Memory::MemorySystem& memory) : parent(paren | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| DspHle::Impl::~Impl() { | DspHle::Impl::~Impl() { | ||||||
|  |     LOG_WARNING(Audio_DSP, "b1"); | ||||||
|     Core::Timing& timing = Core::System::GetInstance().CoreTiming(); |     Core::Timing& timing = Core::System::GetInstance().CoreTiming(); | ||||||
|  |     LOG_WARNING(Audio_DSP, "b2"); | ||||||
|     timing.UnscheduleEvent(tick_event, 0); |     timing.UnscheduleEvent(tick_event, 0); | ||||||
|  |     LOG_WARNING(Audio_DSP, "b3"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| DspState DspHle::Impl::GetDspState() const { | DspState DspHle::Impl::GetDspState() const { | ||||||
|  | @ -448,7 +452,12 @@ void DspHle::Impl::AudioTickCallback(s64 cycles_late) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| DspHle::DspHle(Memory::MemorySystem& memory) : impl(std::make_unique<Impl>(*this, memory)) {} | DspHle::DspHle(Memory::MemorySystem& memory) : impl(std::make_unique<Impl>(*this, memory)) {} | ||||||
| DspHle::~DspHle() = default; | DspHle::~DspHle() { | ||||||
|  | 
 | ||||||
|  |     LOG_WARNING(Audio_DSP, "a1"); | ||||||
|  |     impl.reset(); | ||||||
|  |     LOG_WARNING(Audio_DSP, "a2"); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| u16 DspHle::RecvData(u32 register_number) { | u16 DspHle::RecvData(u32 register_number) { | ||||||
|     return impl->RecvData(register_number); |     return impl->RecvData(register_number); | ||||||
|  |  | ||||||
|  | @ -547,13 +547,10 @@ void System::serialize(Archive& ar, const unsigned int file_version) { | ||||||
|     ar&* service_manager.get(); |     ar&* service_manager.get(); | ||||||
|     ar& GPU::g_regs; |     ar& GPU::g_regs; | ||||||
|     ar& LCD::g_regs; |     ar& LCD::g_regs; | ||||||
|     if (Archive::is_loading::value) { |     if (!dynamic_cast<AudioCore::DspHle*>(dsp_core.get())) { | ||||||
|         dsp_core.reset(); |         throw std::runtime_error("Only HLE audio supported"); | ||||||
|     } |     } | ||||||
|     if (dsp_core) { |     ar&* dynamic_cast<AudioCore::DspHle*>(dsp_core.get()); | ||||||
|         throw "BLEH"; |  | ||||||
|     } |  | ||||||
|     ar& dsp_core; |  | ||||||
|     ar&* memory.get(); |     ar&* memory.get(); | ||||||
|     ar&* kernel.get(); |     ar&* kernel.get(); | ||||||
| 
 | 
 | ||||||
|  | @ -562,7 +559,7 @@ void System::serialize(Archive& ar, const unsigned int file_version) { | ||||||
|         Service::GSP::SetGlobalModule(*this); |         Service::GSP::SetGlobalModule(*this); | ||||||
| 
 | 
 | ||||||
|         memory->SetDSP(*dsp_core); |         memory->SetDSP(*dsp_core); | ||||||
|         dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id); |         // dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id);
 | ||||||
|         dsp_core->EnableStretching(Settings::values.enable_audio_stretching); |         dsp_core->EnableStretching(Settings::values.enable_audio_stretching); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue