Repository navigation
STORM SWITCH 13.1.1
💡 Релиз 13.1.1 (Срочное обновление) — Оперативное исправление запуска и разворачивания окна из системного трея (
Global\STORM_SWITCH_RestoreEventи устранение0xC0000374STATUS_HEAP_CORRUPTIONпри проверке DPI/одиночного экземпляра), полноценная интеграция мгновенных быстрых сохранений и загрузок SESS v2 в Меню «Файл» (с подменю Слотов 1–5, отображением размера и времени сохранения) и в настройки «Горячие клавиши» (Hotkeys) (F5/F7+ назначение любых клавиш клавиатуры и кнопок геймпада без конфликтаQShortcut), а также все нововведения ветки 13.1.x.
🚨 Срочные исправления и улучшения в 13.1.1
-
🛠️ [Исправление запуска и разворачивания окна из системного трея (
main.cpp,main_window.cpp)]:- Мгновенное пробуждение скрытого в трей окна (
Global\STORM_SWITCH_RestoreEvent): исправлена ситуация, когда после закрытия окна крестиком[✕](сворачивания в системный трей по стандарту Close-to-Tray) повторный запускSTORM_SWITCH.exeне разворачивал главное окно, так как Win32ShowWindow(SW_RESTORE)не пробуждает виджеты Qt6, скрытые черезQWidget::hide(). Теперь повторный запуск мгновенно сигнализирует именованное событиеGlobal\STORM_SWITCH_RestoreEvent, и работающий экземпляр автоматически вызываетshowNormal(),raise()иactivateWindow(). - Устранение сбоя кучи
0xC0000374(STATUS_HEAP_CORRUPTION) при старте: изGetHighDpiRoundingPolicy()удалено создание и разрушение временного объектаQApplicationсnullptrаргументами до инициализации основногоQApplication(заменено на прямой опрос метрик экрана Win32GetSystemMetrics), а фоновая загрузкаTitleDatabase::EnsureLoaded()перенесена строго после проверок дочернего процесса Vulkan и мьютекса одиночного запуска. - Безопасное завершение игры при сворачивании в трей: при нажатии
[✕]во время активной игры эмулятор теперь корректно запрашивает подтверждение и останавливает 3D-рендеринг перед скрытием окна в трей, не оставляя игру нагружать GPU/CPU в фоновом режиме.
- Мгновенное пробуждение скрытого в трей окна (
-
💾 [Управление быстрыми сохранениями и загрузками SESS v2 в меню «Файл» и «Горячие клавиши» (
main_window.cpp,uisettings.cpp)]:- Новые пункты в меню «Файл» (
Файл -> Быстрое сохранение / Быстрая загрузка):- «Быстрое сохранение (Слот 1)» (
F5) и «Быстрая загрузка (Слот 1)» (F7). - Подменю «Сохранить состояние в слот» (Слоты
1–5) и «Загрузить состояние из слота» (Слоты1–5) с автоматическим отображением размера файла в мегабайтах и точной даты/времени каждого сохранения ([MB — ДД.ММ.ГГГГ ЧЧ:ММ:СС]).
- «Быстрое сохранение (Слот 1)» (
- Полная настройка в «Горячих клавишах» (
Эмуляция -> Параметры -> Общие -> Горячие клавиши):- Действия
Quick Save(«Быстрое сохранение (Слот 1)») иQuick Load(«Быстрая загрузка (Слот 1)») зарегистрированы в глобальном реестреHotkeyRegistry(UISettings::default_hotkeys) с поддержкой переназначения на любую клавишу клавиатуры и комбинацию кнопок геймпада (Controller Shortcut). - Устранён конфликт дублирующихся
QShortcut(F5/F7), блокировавший срабатывание хоткеев.
- Действия
- Новые пункты в меню «Файл» (
🚀 Ключевые нововведения ветки 13.1.x
-
⚡ [Мгновенные быстрые сохранения и загрузки SESS v2 (
save_state.h/.cpp)]:- Ультра-быстрый RAM-кэш (
< 20 мс) и асинхронная запись на диск: быстрые сохранения (Quick Save) и загрузки (Quick Load) сначала фиксируются в оперативном LRU-кэше снимков памяти и мгновенно возвращают управление игре, а сжатиеZSTDи атомарная запись.sesвыполняются в фоновом потоке с гарантированным сбросомFlushPendingSaveStates()при выходе. - Минимальный размер файлов (4 КБ битовая маска нулевых страниц + фильтрация
KPageTable): сериализуются только реально изменяемые регионы памяти процесса (EnumerateWritableRegions), пропуская неизменяемые сегменты.text/.rodataи невыделенную кучу, а пустые 4 КБ страницы кодируются одним битом без хранения нулей. - Дифференциальное восстановление
WriteChangedи защита спящих потоков ядра (IsParkedInKernel): при быстрой загрузке перезаписываются и инвалидируются в GPU-кэше только изменившиеся 4 КБ страницы, а стеки хост-файберов спящих потоков защищены от повреждения. Сохранена 100% обратная совместимость с файлами сохранений форматаv1.
- Ультра-быстрый RAM-кэш (
-
🎙️ [Студийный экранный переводчик и ролевая многоголосая озвучка (
game_translator.h/.cpp)]:- Пространственный сборщик реплик (
DialogueSentenceAssembler) и детектор плашки говорящего (Speaker Nameplate): строки OCR сортируются по экранным координатам(Y, X), верхняя левая именная плашка автоматически отделяется от тела реплики и оформляется какИмя: «Текст», а многострочные диалоги склеиваются без разрывов предложений. - 24 голосовых архетипа (
CharacterPersona), ростер героев Nintendo Switch и каст-лист (voice_cast_<title_id>.json): автоматическое определение пола и тембра персонажа (Линк, Зельда, Ганондорф, Марио, Пич, Боузер, Самус, Байонетта, Ноа, Мио, Джокер и др.) с сохранением индивидуального голоса и высоты тона SAPI5 XML (<pitch middle='...'/>) за каждым героем на протяжении всей игры. - Нормализатор русской речи (
NormalizeForRussianTts), последовательная очередь реплик и режимSMART_BACKGROUND_MATCH: автоматическая расшифровка игровых аббревиатур (HP,MP,EXP,LV,NPC) и римских цифр для чистого произношения, чтение диалогов нескольких собеседников по ролям без обрыва фраз, адаптивный сэмплинг цвета подложки игры под текстом и мгновенное переключение/скрытие оверлея поF9или клику без всплытия окна настроек поверх игры.
- Пространственный сборщик реплик (
-
💎 [Прокачка 5 ключевых модулей экосистемы (
Amiibo,Читы,GameBanana,STORM GAMES WORLD,STORM SAVE SYNC)]:- Кабинет Amiibo (
amiibo_browser_dialog.cpp): быстрые фильтры «⭐ Избранное» и «🕒 Недавние», кнопка добавления фигурок в избранное и загрузка двойным кликом. - Менеджер читов (
cheats_dialog.cpp,configure_per_game_cheats.cpp): фильтр «⚡ Только включённые» и переключение читов двойным кликом. - Моды GameBanana (
configure_gamebanana_mods.cpp): живой поиск по установленным модам и пакетные кнопки «✅ Вкл. все» / «⚪ Выкл. все». - STORM GAMES WORLD (
storm_games_world_dialog.cpp): быстрые фильтр-кнопки («Все», «🇷🇺 RUS», «📦 DLC», «⚡ MOD»). - STORM SAVE SYNC (
storm_save_sync_dialog.cpp): фильтрация таблицы по статусу синхронизации и кнопка «📂 Папка сохранений».
- Кабинет Amiibo (
-
🛠️ [Оптимизация железа и исправление открытых обращений GitHub Issues (
#22,#21,#19,#18,#13,#8)]:- Issue
#22: удержание частот GPU на ROG Ally (AMD RDNA3) и защита CPU от перегрева 90°C+ на Snapdragon 8 Gen 3 (vk_turbo_mode.cpp). - Issue
#21: устранение вылета генерации кадров LSFG на GPU Mali (lsfg_gamma.cpp,lsfg_delta.cpp) и исправление переключателя стационарного/портативного режима на Android (native_config.cpp,SettingsItem.kt). - Issue
#19и#13: очистка компактного индикатора FPS (EmulationFragment.kt) и исправление мультитача экранного стика и кнопок на Android (InputOverlayDrawableJoystick.kt,InputOverlay.kt).
- Issue
🌐 English Changelog (click to expand)
- 🚨 [Urgent Fixes in 13.1.1 (
main.cpp,main_window.cpp,uisettings.cpp)]:- Tray Wakeup & Single-Instance Restore Fix (
Global\STORM_SWITCH_RestoreEvent): Fixed an issue where launchingSTORM_SWITCH.exewhile the emulator was hidden to the system tray did not restore the Qt6 window. - Startup Heap Corruption Fix (
0xC0000374): Removed the temporaryQApplicationinGetHighDpiRoundingPolicy()and movedTitleDatabase::EnsureLoaded()after child-process and single-instance checks. - Quick Save / Quick Load in File Menu & Hotkeys Settings: Added Quick Save (Slot 1) (
F5), Quick Load (Slot 1) (F7), and Save/Load State Slot 1–5 submenus (with live size and timestamp preview) to the File menu, and registered Quick Save and Quick Load in Emulation -> Configure -> General -> Hotkeys for custom keyboard and controller bindings.
- Tray Wakeup & Single-Instance Restore Fix (
- 🔸 [Instant & Ultra-Compact Quick Save / Quick Load SESS v2 (
save_state.h/.cpp)]:- In-RAM LRU snapshot cache (
< 20 mspause) with background asynchronousZSTDdisk compression,KPageTablewritable region filtering, 4 KB zero-page bitmask skipping, differentialWriteChangedpage restoration, and kernel sleeping thread fiber stack protection.
- In-RAM LRU snapshot cache (
- 🔸 [Studio Screen Translator & Multi-Character Voiceover (
game_translator.h/.cpp)]:- Spatial OCR line sorting, top-left speaker nameplate separation,
DialogueSentenceAssembler, 24 character voice archetypes with persistent per-game casting (voice_cast_<title_id>.json), Russian gaming abbreviation/Roman numeral TTS normalization, sequential multi-turn speech queue,SMART_BACKGROUND_MATCHHUD backdrop sampling, and instantF9/ click-to-dismiss overlay toggling.
- Spatial OCR line sorting, top-left speaker nameplate separation,
📦 Файлы и вложения к релизу (нажмите, чтобы развернуть)
- 📁 Прикреплённые файлы: Исполняемые файлы, APK и портативные архивы для Windows 10 и Windows 11 доступны в секции Assets ниже.
- 🛡️ Контроль целостности: Все бинарные файлы собраны из официального исходного кода, подписаны единым сертификатом STORM и проверены перед публикацией.
- 💻 Установка: Скачайте соответствующий архив или APK из списка Assets и следуйте стандартным инструкциям.