Skip to content

Latest commit

 

History

History
299 lines (202 loc) · 17 KB

File metadata and controls

299 lines (202 loc) · 17 KB

Image

Discord

GBA Background Studio

GBA Background Studio — это настольное приложение для создания и редактирования фонов Game Boy Advance (GBA). Оно позволяет конвертировать изображения в совместимые с GBA тайлсеты и тайлмапы, визуально редактировать тайлы и палитры, а также экспортировать готовые к использованию ресурсы для ваших GBA-проектов.

⚠️ Это приложение предназначено для разработчиков, ROM-хакеров и пиксель-артистов, которым необходим точный контроль над фонами GBA.


🌐 Переводы

Этот README доступен на следующих языках:

English | Español | Português (BR) | Français | Deutsch | Italiano | Português | Nederlands | Polski
Türkçe | Tiếng Việt | Bahasa Indonesia | हिन्दी | Русский | 日本語 | 简体中文 | 繁體中文 | 한국어


✨ Возможности

  • Конвертация изображений в GBA

    • Конвертирует стандартные изображения в совместимые с GBA тайлсеты и тайлмапы.
    • Настройка размера вывода и глубины цвета (4bpp и 8bpp).
    • Предпросмотр результата перед экспортом.
  • Редактор тайлов

    • Визуальный выбор и редактирование тайлов.
    • Интерактивные инструменты рисования на сетке тайлмапа.
    • Уровни масштабирования от 100% до 800% для редактирования пиксель за пикселем.
  • Редактор палитр

    • Редактирование до 256 цветов на палитру.
    • Синхронизация изменений палитры с предпросмотром и тайлами.
    • Изменение порядка, замена или настройка отдельных цветов.
  • Вкладка предпросмотра

    • Визуализация финального фона на экране, похожем на GBA.
    • Быстрая проверка конфигураций тайлов и палитр.
  • История Отменить/Повторить

    • Полное отслеживание истории редактирования.
    • Операции отмены и повтора с большим буфером истории.
  • Настраиваемый интерфейс и строка состояния

    • Подробная строка состояния с выбором тайла, координатами тайлмапа, ID палитры, состоянием отражения и уровнем масштабирования.
    • Контекстная панель инструментов для каждой вкладки (предпросмотр, тайлы, палитры).
  • Многоязычная поддержка

    • Внутренняя система перевода (Translator) с выбором языка через настройки.
    • Разработан для поддержки нескольких языков в интерфейсе.

🖼️ Скриншоты

Image

Image

Image

Image


🏗️ Описание архитектуры

GBA Background Studio построен на Python и PySide6 / PySide2 (гибридный) и следует модульному дизайну интерфейса:

  • Главное окно (GBABackgroundStudio)

    • Управляет состоянием приложения (текущий BPP, уровень масштабирования, выбор тайла и палитры).
    • Содержит основные вкладки и пользовательскую строку состояния.
    • Загружает и применяет конфигурацию (включая последнюю сессию вывода).
  • Вкладки

    • PreviewTab – Предпросмотр фона в стиле GBA.
    • EditTilesTab – Инструменты редактирования тайлов и тайлмапа.
    • EditPalettesTab – Редактор палитр и инструменты манипуляции цветами.
  • Компоненты и утилиты интерфейса

    • MenuBar – Файловые операции (открыть изображение, экспортировать файлы, выход) и действия редактора.
    • CustomGraphicsView – Расширенный QGraphicsView с тайл-ориентированным взаимодействием.
    • TilemapUtils – Общая логика взаимодействия и выбора тайлмапа.
    • HistoryManager – Управление отменой/повтором для операций редактора.
    • HoverManager, GridManager – Визуальные помощники для эффектов наведения и наложений сетки.
    • Translator, ConfigManager – Локализация и постоянная конфигурация.

📦 Установка

Вариант 1 — Установщик (рекомендуется)

Загрузите последнюю версию с GitHub Releases:

Установщик Python ОС
GBABackgroundStudio_Setup.exe Встроен (установка не требуется) Windows 10 / 11
GBABackgroundStudio_Legacy_Setup.exe Встроен (установка не требуется) Windows 7 / 8 / 8.1

Просто запустите установщик и откройте приложение — Python и pip не нужны.


Вариант 2 — Запуск из исходного кода

Требования

Среда Python Qt-бэкенд ОС
Современная 3.10+ PySide6 (авто) Windows 10/11, macOS 11+, Linux
Legacy 3.8 / 3.9 PySide2 5.15.2 (авто) Windows 7 / 8 / 8.1

Приложение автоматически определяет, какой Qt-бэкенд использовать, исходя из вашей версии Python — ручная настройка не требуется.

Зависимости

pip install -r requirements.txt

requirements.txt автоматически устанавливает правильный Qt-бэкенд:

  • Python ≥ 3.10PySide6
  • Python 3.8 / 3.9PySide2 5.15.2

Прочие зависимости: Pillow, numpy, scipy, scikit-learn, opencv-python, certifi.


🏛️ Поддержка устаревших систем (Windows 7 / 8 / 8.1)

Полный графический интерфейс работает на Windows 7 и выше. Используйте Python 3.8, и requirements.txt автоматически установит PySide2 5.15.2.

Кроме того, Многоязычный мастер командной строки (GBA_Studio_Wizard.bat) доступен для пакетных конвертаций без графического интерфейса и работает на любой версии Windows с Python 3.8+:

  1. Перейдите в корневую директорию проекта.
  2. Запустите GBA_Studio_Wizard.bat.
  3. Выберите ваш язык (поддерживается 18 языков).
  4. Следуйте пошаговым инструкциям для конвертации вашего изображения.

🚀 Начало работы

  1. Клонировать репозиторий

    git clone https://github.com/CompuMaxx/gba-background-studio.git
    cd gba-background-studio
  2. Создать и активировать виртуальное окружение (необязательно, но рекомендуется)

    python -m venv .venv
    source .venv/bin/activate   # В Windows: .venv\Scripts\activate
  3. Установить зависимости

    pip install -r requirements.txt
  4. Запустить приложение

    python main.py

🧭 Основное использование

  1. Открыть изображение

    • Перейдите в Файл → Открыть изображение или нажмите Ctrl+O.
    • Выберите изображение, которое хотите преобразовать в фон GBA.
  2. Настроить конвертацию

    • Выберите Режим фона (Текстовый режим или Вращение/Масштаб).
    • Выберите палитру(ы) или Тайлмап для использования (только для Текстового режима 4bpp).
    • Установите цвет, который будет использоваться как прозрачный.
    • Настройте размер вывода и другие необходимые параметры.
    • Нажмите Конвертировать, и приложение сделает остальное.
  3. Редактор тайлов

    • Переключитесь на вкладку Редактор тайлов.
    • Используйте вид тайлмапа для рисования и изменения отдельных тайлов.
    • Выбирайте целые области для копирования, вырезания, вставки или поворота групп тайлов.
    • Синхронизируйте изменения в реальном времени для мгновенных результатов.
    • Настройте уровень масштабирования для идеальной точности.
    • Оптимизировать/Деоптимизировать тайлы для экономии места или обеспечения совместимости с оборудованием.
    • Конвертировать ресурсы между форматами 4bpp и 8bpp.
    • Плавно переключаться между Текстовым режимом и Вращением/Масштабом.
  4. Редактор палитр

    • Перейдите на вкладку Редактор палитр.
    • Изменяйте цвета в сетке палитр и настраивайте их с помощью редактора цветов.
    • Выбирайте конкретные области или все тайлы, принадлежащие палитре, для замены или обмена с другой.
  5. Предпросмотр фона

    • Переключитесь на вкладку Предпросмотр для точного представления того, как это будет выглядеть на реальном GBA.
    • Убедитесь, что конфигурации тайлов и палитр работают вместе идеально.
  6. Экспорт ресурсов

    • Перейдите в Файл → Экспортировать файлы или нажмите Ctrl+E.
    • Экспортируйте тайлсеты, тайлмапы и палитры в форматах, готовых для интеграции в вашу цепочку инструментов разработки GBA.
    • При необходимости экспортируйте отдельные ресурсы из соответствующих меню.

🔄 Отменить/Повторить

Приложение отслеживает ваши действия редактирования с помощью менеджера истории:

  • Отменить – отменяет последнюю операцию.
  • Повторить – повторно применяет отменённую операцию.

Система истории поддерживает буфер последних состояний, включая редактирование тайлов, изменения палитр и операции с тайлмапом.


⚙️ Конфигурация и локализация

Конфигурация

Приложение использует менеджер конфигурации для хранения настроек, таких как:

  • Последний использованный язык
  • Последний использованный уровень масштабирования
  • Загружать ли последний вывод при запуске
  • Другие настройки интерфейса и редактора

Конфигурация загружается при запуске и применяется к интерфейсу и меню.

Локализация

Компонент Translator управляет текстами интерфейса:

  • Язык по умолчанию настраивается через настройки.
  • Файлы перевода можно добавлять или редактировать для поддержки большего количества языков.
  • Тексты интерфейса (меню, диалоги, метки) проходят через переводчик.

🤝 Вклад

Вклад приветствуется! Если вы хотите помочь:

  1. Сделайте форк этого репозитория.
  2. Создайте ветку функции:
    git checkout -b feature/moya-novaya-funkciya
  3. Зафиксируйте изменения:
    git commit -am "Добавить мою новую функцию"
  4. Отправьте ветку:
    git push origin feature/moya-novaya-funkciya
  5. Откройте Pull Request с описанием ваших изменений.

Пожалуйста, поддерживайте код в соответствии с существующим стилем и включайте тесты, когда это возможно.


📄 Лицензия

Этот проект лицензирован под GNU General Public License v3.0 (GPL-3.0).
Подробности см. в файле LICENSE.


🙏 Благодарности

  • Спасибо сообществам GBA homebrew и ROM-хакинга за их документацию и инструменты.
  • Вдохновлён классическими редакторами пиксель-арта и утилитами разработки GBA.

📩 Контакты и поддержка

Discord ServerJoin our Discord

Если вы находите этот инструмент полезным и хотите поддержать его разработку, рассмотрите возможность угостить меня кофе!

ko-fi