diff --git a/app/src/main/cpp/skyline/services/nvdrv/devices/deserialisation/deserialisation.h b/app/src/main/cpp/skyline/services/nvdrv/devices/deserialisation/deserialisation.h index 8d5cdb34..a2919606 100644 --- a/app/src/main/cpp/skyline/services/nvdrv/devices/deserialisation/deserialisation.h +++ b/app/src/main/cpp/skyline/services/nvdrv/devices/deserialisation/deserialisation.h @@ -55,7 +55,11 @@ namespace skyline::service::nvdrv::deserialisation { return make_ref_tuple(buffer.subspan(offset).template cast, std::dynamic_extent, true>()); } else if constexpr (IsPad::value) { offset += ArgType::Bytes; - return DecodeArgumentsImpl(buffer, offset, saveSlots); + if constexpr(sizeof...(ArgTypes) == 0) { + return std::tuple{}; + } else { + return DecodeArgumentsImpl(buffer, offset, saveSlots); + } } else if constexpr (IsSave::value) { saveSlots[ArgType::SaveSlot] = buffer.subspan(offset).template as, true>(); offset += sizeof(RemoveSave);