Fixed setting the right DSP service on deserialization

This commit is contained in:
Hamish Milne 2020-01-17 01:01:18 +00:00 committed by zhupengfei
parent 2217b3558d
commit b2370ea353
3 changed files with 15 additions and 3 deletions

View file

@ -448,7 +448,10 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
ar&* kernel.get();
// This needs to be set from somewhere - might as well be here!
Service::GSP::SetGlobalModule(*this);
if (Archive::is_loading::value) {
Service::GSP::SetGlobalModule(*this);
DSP().SetServiceToInterrupt(ServiceManager().GetService<Service::DSP::DSP_DSP>("dsp::DSP"));
}
}
void System::Save(std::ostream& stream) const {

View file

@ -130,8 +130,9 @@ void Timing::Advance() {
std::pop_heap(event_queue.begin(), event_queue.end(), std::greater<>());
event_queue.pop_back();
if (event_types.find(*evt.type->name) == event_types.end()) {
LOG_ERROR(Core, "Unknown queued event");
continue;
LOG_ERROR(Core, "Unknown queued event {}", *evt.type->name);
} else if (evt.type->callback == nullptr) {
LOG_ERROR(Core, "Event '{}' has no callback", *evt.type->name);
}
if (evt.type->callback != nullptr) {
evt.type->callback(evt.userdata, global_timer - evt.time);

View file

@ -5,6 +5,7 @@
#pragma once
#include <memory>
#include <boost/serialization/export.hpp>
#include "video_core/shader/shader.h"
namespace Pica {
@ -12,6 +13,9 @@ namespace Pica {
struct State;
class GeometryPipelineBackend;
class GeometryPipeline_Point;
class GeometryPipeline_VariablePrimitive;
class GeometryPipeline_FixedPrimitive;
/// A pipeline receiving from vertex shader and sending to geometry shader and primitive assembler
class GeometryPipeline {
@ -52,3 +56,7 @@ private:
friend class boost::serialization::access;
};
} // namespace Pica
BOOST_CLASS_EXPORT_KEY(Pica::GeometryPipeline_Point)
BOOST_CLASS_EXPORT_KEY(Pica::GeometryPipeline_VariablePrimitive)
BOOST_CLASS_EXPORT_KEY(Pica::GeometryPipeline_FixedPrimitive)