Repository navigation
Home
Вики к репозиторию jumpyball-decomp: порт игры JumpyBall для Windows Mobile / Pocket PC (экран 240x320) на ANSI C (C89) и SDL2.
Логика восстановлена реверс-инжинирингом оригинальных JumpyBall.exe
(imagebase 0x00010000) и hss.dll. Код порта написан с нуля: из оригинальной
поставки в репозиторий входят только ассеты - BITMAP, Sounds, Musics.
README.md в репозитории - это инструкция: как собрать, как играть, как
поменять уровни. Вики про другое: как порт устроен внутри и откуда взята
каждая цифра.
| Страница | О чём |
|---|---|
| Architecture | Карта модулей jb_*, кадровый цикл, порядок отрисовки |
| Graphics | Поверхности, спрайты, десять блиттеров, RGB565, blend и тинт |
| Track-and-camera | Псевдо-3D: построчная проекция, 17 строк, таблицы, пять тем |
| Physics | Мяч: ускорения, прыжок, гравитация, спин, респавн |
| Levels | Формат уровня: три битмапа, сетка 16x1024, чекпоинты |
| Audio-and-TKM | Плеер .tkm (ProTracker), WAV-эффекты, шкалы громкости |
| Menu-and-controls | Экраны меню, шесть клавиш, keys.cfg, сенсор |
| Build-and-CI | Четыре способа сборки и что проверяет CI |
| Reverse-engineering | Как это восстанавливалось: Ghidra, адреса, проверки |
| Deviations | Где порт сознательно отличается от оригинала |
| Что | Значение | Откуда |
|---|---|---|
| Кадр | 240x320, 16 bpp RGB565 |
g_viewW 0x00026260, g_viewH 0x00026264
|
| Размер выгруженного кадра | 153600 байт (2403202) | -- |
| Сетка уровня | 16 столбцов x 1024 строки |
g_mapCols 0x0002628c, g_mapRows 0x00026274
|
| Видимых строк трассы | 17 | kVisibleRows 0x00026358 |
| Финиш уровня | строка камеры > 0x3fe
|
WndProc 0x00020920 |
| Уровней | 3 | Level_LoadTileMap 0x0001261c |
| Тем оформления | 5 (две недостижимы) | Level_Begin 0x0001376c |
| Кадров мяча | 9 по 70 px, рисуется 69 | Track_DrawFrame 0x0001ef10 |
| Такт трекера | 7159090 Гц | hssSpeaker::createTables 0x00103664 |
Порт - собственная реализация; сведения о поведении получены из дизассемблированного оригинала, а не из чужих исходников. В коде каждый неочевидный блок помечен комментарием с адресом функции оригинала, из которой он взят - см. Reverse-engineering.
Устройство порта
Сборка и происхождение