https://github.com/amdray/bounce_zero
Reverse-engineered PSP port of Nokia’s 2002 Java ME game "Bounce", uses only original data files.
https://github.com/amdray/bounce_zero
bounce c classic-games gaming homebrew java port porting porting-game psp psp-homebrew retro vibe-coding
Last synced: 4 months ago
JSON representation
Reverse-engineered PSP port of Nokia’s 2002 Java ME game "Bounce", uses only original data files.
- Host: GitHub
- URL: https://github.com/amdray/bounce_zero
- Owner: amdray
- License: mit
- Created: 2025-10-12T10:11:50.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-12-19T05:27:03.000Z (6 months ago)
- Last Synced: 2026-01-21T04:32:20.583Z (4 months ago)
- Topics: bounce, c, classic-games, gaming, homebrew, java, port, porting, porting-game, psp, psp-homebrew, retro, vibe-coding
- Language: C
- Homepage:
- Size: 21.6 MB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[English version](README_en.md)
# Bounce Zero
Порт оригинальной игры **Bounce (2002, Java/Sun для Nokia 7210)** на платформу **PlayStation Portable (PSP)**.
Игровая логика полностью переписана на **C**, при этом используются только оригинальные игровые ассеты из версии для телефонов Nokia.
Проект создан в исследовательских целях, без модификации контента.
## Скриншоты
Первый экран

Главное меню/меню паузы

Первый уровень с HUD

Выбор уровней

Третий уровень

## Особенности
- Полная переимплементация игрового цикла и физики
- Чтение и использование оригинальных игровых данных из JAR-версии Bounce 2002:
- файлы уровней 001-011 - написан парсер уровней
- текстуры png - использует нативный загрузчик psp sdk
- файлы звуков ott - написан парсер ott формата на лету генерирующий звук в PCM
- lang файлы - написан парсер формата локализации, в зависимости от языка консоли переключает язык в игре
- шрифты из телефона Nokia 7210 (9, 12, 23 размера) были сдамплены через PPmod, сконвертированы bitmap формат и вшиты в игру
- возможность выбрать уроовень
- система сейвов (в dat файл, пока что не использует систему сохранений Sony PSP)
- Совместимость с реальным устройством PSP и эмулятором PPSSPP
## Недостатки, недоработки
- таймер физики в оригинале 33 кадра, в этом порте - 30 кадров
- шрифт состоит из пикселей, не из текстур, нагрузка на консоль чуть сильнее чем могло быть
- мимнимальные расхождения физики, не влияющие на геймплей, будт поправлены в новой версии
## Сборка
Необходим установленный [PSP SDK (pspdev)](https://github.com/pspdev/pspdev).
```bash
sudo apt-get update
sudo apt-get install build-essential cmake pkgconf libreadline8 libusb-0.1 libgpgme11 libarchive-tools fakeroot wget
wget https://github.com/pspdev/pspdev/releases/latest/download/pspdev-ubuntu-latest-x86_64.tar.gz
tar -xvf pspdev-ubuntu-latest-x86_64.tar.gz -C $HOME
export PSPDEV="$HOME/pspdev"
export PATH="$PATH:$PSPDEV/bin"
make
```
Собранный файл `EBOOT.PBP` появится в каталоге `release/`.
## Инструменты
В папке `tools/` лежат утилиты для генерации шрифтов и атласов из исходных текстовых данных.
Это вспомогательные скрипты, которые не требуются для сборки, но нужны для воспроизводимости пайплайна.
Документация к этим инструментам находится в `docs/font_txt_format.md`.
Также в `tools/` есть `grid_watcher_1.py` для просмотра/проверки тайловой сетки.
## Запуск
Скопируйте содержимое папки `release/` на карту памяти PSP:
```
/PSP/GAME/BounceZero/
```
или откройте `EBOOT.PBP` через эмулятор PPSSPP.
## Совместимость
- PlayStation Portable 6.00 и выше
- Эмулятор PPSSPP
## Лицензия
Исходный код распространяется под лицензией **MIT**.
Все оригинальные материалы (*Bounce, 2002*) принадлежат **Nokia** и/или **Sun Microsystems** и используются исключительно в исследовательских целях.
## Об эксперименте
Весь исходный код написан с использованием модели **Claude AI** в рамках эксперимента по **vibe-coding** — записание полноценного проекта на основе описаний поведения и логики, без ручного программирования.