http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/commit/9efce7107229
https://git.citron-emu.org/citron/emu/-/commit/7730d14b4a26

--- src/common/logging/formatter.h.orig	2024-03-01 07:57:00 UTC
+++ src/common/logging/formatter.h
@@ -14,7 +14,7 @@ struct fmt::formatter<T, std::enable_if_t<std::is_enum
 struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>>
     : formatter<std::underlying_type_t<T>> {
     template <typename FormatContext>
-    auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out()) {
+    auto format(const T& value, FormatContext& ctx) const -> decltype(ctx.out()) {
         return fmt::formatter<std::underlying_type_t<T>>::format(
             static_cast<std::underlying_type_t<T>>(value), ctx);
     }
--- src/common/typed_address.h.orig	2024-03-01 07:57:00 UTC
+++ src/common/typed_address.h
@@ -262,7 +262,7 @@ struct fmt::formatter<Common::PhysicalAddress> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Common::PhysicalAddress& addr, FormatContext& ctx) {
+    auto format(const Common::PhysicalAddress& addr, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
     }
 };
@@ -273,7 +273,7 @@ struct fmt::formatter<Common::ProcessAddress> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Common::ProcessAddress& addr, FormatContext& ctx) {
+    auto format(const Common::ProcessAddress& addr, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
     }
 };
@@ -284,7 +284,7 @@ struct fmt::formatter<Common::VirtualAddress> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Common::VirtualAddress& addr, FormatContext& ctx) {
+    auto format(const Common::VirtualAddress& addr, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
     }
 };
--- src/core/arm/dynarmic/dynarmic_cp15.cpp.orig	2024-03-01 07:57:00 UTC
+++ src/core/arm/dynarmic/dynarmic_cp15.cpp
@@ -22,7 +22,7 @@ struct fmt::formatter<Dynarmic::A32::CoprocReg> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) {
+    auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "cp{}", static_cast<size_t>(reg));
     }
 };
--- src/core/debugger/gdbstub.cpp.orig	2024-03-01 07:57:00 UTC
+++ src/core/debugger/gdbstub.cpp
@@ -9,6 +9,7 @@
 #include <thread>
 
 #include <boost/algorithm/string.hpp>
+#include <fmt/ranges.h>
 
 #include "common/hex_util.h"
 #include "common/logging/log.h"
--- src/core/hle/service/nfc/common/device.cpp.orig	2024-03-01 07:57:00 UTC
+++ src/core/hle/service/nfc/common/device.cpp
@@ -14,7 +14,7 @@
 #pragma warning(pop)
 #endif
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/file.h"
 #include "common/fs/fs.h"
--- src/core/hle/service/psc/time/common.h.orig	2024-03-01 07:57:00 UTC
+++ src/core/hle/service/psc/time/common.h
@@ -167,7 +167,7 @@ struct fmt::formatter<Service::PSC::Time::TimeType> : 
 template <>
 struct fmt::formatter<Service::PSC::Time::TimeType> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
-    auto format(Service::PSC::Time::TimeType type, FormatContext& ctx) {
+    auto format(Service::PSC::Time::TimeType type, FormatContext& ctx) const {
         const string_view name = [type] {
             using Service::PSC::Time::TimeType;
             switch (type) {
--- src/shader_recompiler/backend/glasm/reg_alloc.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/backend/glasm/reg_alloc.h
@@ -184,7 +184,7 @@ struct fmt::formatter<Shader::Backend::GLASM::Id> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(Shader::Backend::GLASM::Id id, FormatContext& ctx) {
+    auto format(Shader::Backend::GLASM::Id id, FormatContext& ctx) const {
         return Shader::Backend::GLASM::FormatTo<true>(ctx, id);
     }
 };
@@ -195,7 +195,7 @@ struct fmt::formatter<Shader::Backend::GLASM::Register
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::Register& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::Register& value, FormatContext& ctx) const {
         if (value.type != Shader::Backend::GLASM::Type::Register) {
             throw Shader::InvalidArgument("Register value type is not register");
         }
@@ -209,7 +209,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarRe
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarRegister& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarRegister& value, FormatContext& ctx) const {
         if (value.type != Shader::Backend::GLASM::Type::Register) {
             throw Shader::InvalidArgument("Register value type is not register");
         }
@@ -223,7 +223,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU3
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
@@ -244,7 +244,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS3
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
@@ -265,7 +265,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF3
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
@@ -286,7 +286,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF6
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
--- src/shader_recompiler/frontend/ir/attribute.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/attribute.h
@@ -250,7 +250,7 @@ struct fmt::formatter<Shader::IR::Attribute> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Attribute& attribute, FormatContext& ctx) {
+    auto format(const Shader::IR::Attribute& attribute, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(attribute));
     }
 };
--- src/shader_recompiler/frontend/ir/condition.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/condition.h
@@ -52,7 +52,7 @@ struct fmt::formatter<Shader::IR::Condition> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Condition& cond, FormatContext& ctx) {
+    auto format(const Shader::IR::Condition& cond, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(cond));
     }
 };
--- src/shader_recompiler/frontend/ir/flow_test.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/flow_test.h
@@ -55,7 +55,7 @@ struct fmt::formatter<Shader::IR::FlowTest> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::FlowTest& flow_test, FormatContext& ctx) {
+    auto format(const Shader::IR::FlowTest& flow_test, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(flow_test));
     }
 };
--- src/shader_recompiler/frontend/ir/opcodes.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/opcodes.h
@@ -103,7 +103,7 @@ struct fmt::formatter<Shader::IR::Opcode> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Opcode& op, FormatContext& ctx) {
+    auto format(const Shader::IR::Opcode& op, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(op));
     }
 };
--- src/shader_recompiler/frontend/ir/pred.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/pred.h
@@ -33,7 +33,7 @@ struct fmt::formatter<Shader::IR::Pred> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Pred& pred, FormatContext& ctx) {
+    auto format(const Shader::IR::Pred& pred, FormatContext& ctx) const {
         if (pred == Shader::IR::Pred::PT) {
             return fmt::format_to(ctx.out(), "PT");
         } else {
--- src/shader_recompiler/frontend/ir/reg.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/reg.h
@@ -319,7 +319,7 @@ struct fmt::formatter<Shader::IR::Reg> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Reg& reg, FormatContext& ctx) {
+    auto format(const Shader::IR::Reg& reg, FormatContext& ctx) const {
         if (reg == Shader::IR::Reg::RZ) {
             return fmt::format_to(ctx.out(), "RZ");
         } else if (static_cast<int>(reg) >= 0 && static_cast<int>(reg) < 255) {
--- src/shader_recompiler/frontend/ir/type.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/ir/type.h
@@ -54,7 +54,7 @@ struct fmt::formatter<Shader::IR::Type> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Type& type, FormatContext& ctx) {
+    auto format(const Shader::IR::Type& type, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", NameOf(type));
     }
 };
--- src/shader_recompiler/frontend/maxwell/location.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/maxwell/location.h
@@ -102,7 +102,7 @@ struct fmt::formatter<Shader::Maxwell::Location> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Maxwell::Location& location, FormatContext& ctx) {
+    auto format(const Shader::Maxwell::Location& location, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:04x}", location.Offset());
     }
 };
--- src/shader_recompiler/frontend/maxwell/opcodes.h.orig	2024-03-01 07:57:00 UTC
+++ src/shader_recompiler/frontend/maxwell/opcodes.h
@@ -23,7 +23,7 @@ struct fmt::formatter<Shader::Maxwell::Opcode> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) {
+    auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", NameOf(opcode));
     }
 };
--- src/video_core/renderer_vulkan/renderer_vulkan.cpp.orig	2024-03-01 07:57:00 UTC
+++ src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -9,7 +9,7 @@
 #include <string>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/logging/log.h"
 #include "common/polyfill_ranges.h"
--- src/video_core/texture_cache/formatter.h.orig	2024-03-01 07:57:00 UTC
+++ src/video_core/texture_cache/formatter.h
@@ -13,7 +13,7 @@ struct fmt::formatter<VideoCore::Surface::PixelFormat>
 template <>
 struct fmt::formatter<VideoCore::Surface::PixelFormat> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
-    auto format(VideoCore::Surface::PixelFormat format, FormatContext& ctx) {
+    auto format(VideoCore::Surface::PixelFormat format, FormatContext& ctx) const {
         using VideoCore::Surface::PixelFormat;
         const string_view name = [format] {
             switch (format) {
@@ -234,7 +234,7 @@ struct fmt::formatter<VideoCommon::ImageType> : fmt::f
 template <>
 struct fmt::formatter<VideoCommon::ImageType> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
-    auto format(VideoCommon::ImageType type, FormatContext& ctx) {
+    auto format(VideoCommon::ImageType type, FormatContext& ctx) const {
         const string_view name = [type] {
             using VideoCommon::ImageType;
             switch (type) {
@@ -262,7 +262,7 @@ struct fmt::formatter<VideoCommon::Extent3D> {
     }
 
     template <typename FormatContext>
-    auto format(const VideoCommon::Extent3D& extent, FormatContext& ctx) {
+    auto format(const VideoCommon::Extent3D& extent, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{{{}, {}, {}}}", extent.width, extent.height,
                               extent.depth);
     }
--- src/yuzu/main.cpp.orig	2024-03-01 07:57:00 UTC
+++ src/yuzu/main.cpp
@@ -91,7 +91,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrap
 #include <SDL.h> // For SDL ScreenSaver functions
 #endif
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/detached_tasks.h"
 #include "common/fs/fs.h"
 #include "common/fs/path_util.h"
