Skip to content

0.1.90

Pre-release
Pre-release

Choose a tag to compare

@chaoseandbladesGOW chaoseandbladesGOW released this 08 Aug 22:57
f1c5422

📦 Что нового? (В разработке)

📚 Большое обновление ArcadeDeck!

Это обновление, на самом деле — отправная точку к тому, чего хотят все, кто связан так или иначе с эмуляцией — простоту работы с ними и простое желание поиграть или вспомнить детство. Я считаю, что вспомнить детство в контексте запуска ретро-игр не должно быть времязатратным или хлопотным. В этом обновлении я закладываю основу работы программы, расчерчиваю ядро программы и строю его так, чтобы оно работало стабильно и было гибким к новым изменениям в программе.

Это будет новый опыт для тех, кто знает про эмуляцию.
А пока — список изменений ниже:

🧩 Полностью переработан главный экран

  • Новый экран библиотеки создаётся автоматически, если в папке users/games обнаружена одна или более игр.
  • Если игр нет — появляется минималистичный экран:
    Поисковик в центре. На данный момент поддерживает лишь небольшое количество игр, встроен поиск по гайдам со сборника. В дальнейшем будет активно развиваться.
    Одна кнопка-плитка для добавления игры — через нажатие или drag-n-drop!
  • Поддержка перетаскивания: можно переместить .iso, .cso или .pbp файл прямо в окно программы.
  • Поддержка открытия системного проводника (через ту же кнопку) — для выбора файла вручную.
  • После добавления — программа автоматически переместит игру в каталог и отобразит игру в виде плитки.
  • В программе реализована динамическая отрисовка плиток игр. Добавили 10 игр в программу — столько и появится :)
  • Начало работы над механикой: если у игры нет конфига — программа предложит его создать или запустить как есть.
  • Реализовано, нужны небольшие доработки: если добавлен неподдерживаемый формат — программа проигнорирует такие файл и добавить только игры поддерживаемых форматов. В программе невозможно добавить неподдерживаемый формат — его нет в списке в проводнике, а при перемещении с помощью drag-n-drop будет активен крестил — формат не поддерживается.
📂 Файлы, задействованные в системе
  • game_library.py — отвечает за главный экран (поисковик, плитки, drag-n-drop)
  • game_importer.py — логика обработки вручную добавленных файлов
  • game_scanner.py — сканирует папку users/games и проверяет форматы
  • platform.json — описывает поддерживаемые форматы (расширяемо)
  • search_bar.py — Модуль поиска, в будущем расширится

🧩 Экран информации об игре

  • Начальная реализация экрана информации об игре. На этом экране пользователи в будущем смогут запускать свои игры, устанавливать новые, а так же изучить описание, скришноты и тд.

🎮 Система навигации в программе

  • Отказ от устаревшего pygame для работы с управлением геймпадом, его событиями и тд.
  • Вместо этого будет использоваться SDL2 последней версии.

🧠 Расширяемая система форматов

  • Введён platform.json — содержит информацию о поддерживаемых форматах эмуляторов.
  • Пока реализована поддержка PPSSPP (PSP), с форматами .iso, .cso, .pbp.

⚙️ Оптимизации. чистка проекта. правка багов

  • Удалены старые дублирующиеся UI-элементы, кнопки, верхние панели
  • Обновлена централизованная система навигации между слоями
  • Поддержка действий с геймпада (навигация, выход, установка игр)
  • Очистка кода от плагинов, старых методов и дублирования
  • Упрощена структура проекта, основные функции разделены по модулям
  • Исправлен сломанный запуск с ярлыка на рабочем столе 😀
  • Исправлена ошибка при отсутствии обновлений не показывалось уведомление об отсутствии обновлений.

💽 Установщик

  • Один кроссплатформенный установщик, который скачивает только нужную версию
  • Удалена лишняя документация и тесты из пакета — размер архива стал меньше
  • Финальная чистка кода установщика, улучшена скорость установки

📈 Результаты работы

  • Полный вес программы со всеми компонентами уменьшился с 292МБ до 260МБ
  • Удалено более 400 строк кода
  • Программа работает стабильнее и плавнее
  • Занимает меньше места примерно на
  • Заложена мощная основа для относительно простой масштабируемости в плане поддержки эмуляторов, новых игр, конфигураций и тд.