diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 4a285f48..24bca2f1 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -90,3 +90,6 @@ endif()
 
 # sirit
 add_subdirectory(sirit EXCLUDE_FROM_ALL)
+if (WIN32)
+    target_compile_options(sirit PUBLIC "-Wno-error=unused-command-line-argument")
+endif()
\ No newline at end of file
diff --git a/src/core/platform.h b/src/core/platform.h
index 084f161b..60baee6e 100644
--- a/src/core/platform.h
+++ b/src/core/platform.h
@@ -7,6 +7,7 @@
 #include "common/logging/log.h"
 #include "common/singleton.h"
 #include "common/types.h"
+#include "magic_enum.hpp"
 
 #include <functional>
 #include <mutex>
@@ -24,7 +25,8 @@ enum class InterruptId : u32 {
     Compute5RelMem = 5u,
     Compute6RelMem = 6u,
     GfxEop = 7u,
-    GfxFlip = 8u
+    GfxFlip = 8u,
+    MaxValue
 };
 
 using IrqHandler = std::function<void(InterruptId)>;
@@ -79,7 +81,7 @@ private:
         std::queue<IrqHandler> one_time_subscribers{};
         std::mutex m_lock{};
     };
-    std::array<IrqContext, 8> irq_contexts{};
+    std::array<IrqContext, (int)InterruptId::MaxValue> irq_contexts{};
 };
 
 using IrqC = Common::Singleton<IrqController>;