Repository navigation
Releases: bmbelo87/decomp-it-up-the-prexurrection-3
Release list
PumpyReconstructed v1.1.0
Requer os arquivos do jogo original (Pump It Up The PREX 3). Os sons (WAVE) agora vão embutidos no executável, como no PUMPY.EXE original — não é mais preciso ter a pasta WAVE.
Downloads
| Plataforma | Arquivo | Observação |
|---|---|---|
| Windows (32 bits) | PumpyReconstructed-v1.1.0-win32.zip |
Executável único: SDL2, zlib, runtime do C e sons embutidos |
| Linux (x86_64) | PumpyReconstructed-v1.1.0-linux-x86_64.tar.gz |
Requer libsdl2-2.0-0 libglu1-mesa zlib1g |
Copie o executável para a pasta do jogo original e rode a partir dela. Instruções no LEIAME.txt de cada pacote.
Novidades
Sons embutidos
- Os 35 WAVs vão dentro do executável. Se existir uma pasta
WAVEao lado do exe, ela tem prioridade (dá para trocar sons sem recompilar).
Modo Division (conferido no assembly do PUMPY.EXE)
- DIVISION como 7º modo no Song Select.
- Chart lido como páginas × ramos; notas G, W e A escolhem o ramo da página seguinte.
- Velocidade por bloco multiplicando a do jogador, com a mesma rampa do original.
- Console de debug:
run <música> -dv//play.
GRAPHICS SETTINGS no Service Menu (extra do port)
- Tela cheia, resolução (4:3), VSync, filtro de textura, mostrar FPS e aspecto; aplicados na hora e gravados no
PUMPY.INI.
Correções
- Dígitos 5–9 do combo sem esticar.
v1.0.1
Versão de correções. Requer os arquivos do jogo original (Pump It Up The PREX 3) — os pacotes trazem só o executável reconstruído.
Downloads
| Plataforma | Arquivo | Observação |
|---|---|---|
| Windows (32 bits) | PumpyReconstructed-v1.0.1-win32.zip |
Executável único: SDL2, zlib e runtime do C embutidos |
| Linux (x86_64) | PumpyReconstructed-v1.0.1-linux-x86_64.tar.gz |
Requer libsdl2-2.0-0 libglu1-mesa zlib1g |
Copie o executável para a pasta do jogo original e rode a partir dela. Instruções no LEIAME.txt de cada pacote.
Correções
Build Windows (port SDL2)
- Crash ao abrir em placas NVIDIA (
glBitmapcom ponteiro nulo na fonte de debug). - Texturas PNG que não carregavam no Windows (agora usa zlib real).
- Console de debug não abria em teclado ABNT2 (tecla à esquerda do 1).
Áudio e sincronia
- Setas agora seguem a posição real da música;
AudioOffsetvolta a funcionar. - Rolagem sem travadas (relógio da música interpolado entre blocos de áudio).
- Fim da música como o original: vai para o Dance Grade quando os passos acabam ou a música termina, o que vier primeiro (antes podia ficar parado, ex.: 815 no Crazy).
Gameplay (conferido no assembly do PUMPY.EXE)
- Earthworm: velocidade reavaliada a cada linha, com o relógio de 240 Hz do original.
- Judge (PERFECT, GREAT...) com a duração original de 25 frames para todos os tipos.
- Animação das setas sincronizada com a batida (6 quadros por batida).
- Preenchimento da lifebar no HalfDouble.
Telas e tempos
- Preview do Song Select com os atrasos do original (1,35 s ao entrar / 0,68 s ao navegar).
- Mínimo de 4 s entre o título da música e o início; 2 s de espera antes da música do Staff.
Músicas 900 (fundo 3D / VSL)
- Texturas com repetição, matriz de animação na ordem do original e descarte de faces de trás — as cenas 3D voltam a aparecer como no original.
Outros
- F11 liga/desliga o modo debug (cronômetro da música e frame do VSL); começa desligado.
extras/key_mirror.py(Windows): espelha o teclado para o PUMPY.EXE original para comparar os dois lado a lado.
Detalhes e endereços do original em COMPARATIVO.md e docs/GAMEPLAY_RENDER.md.
PumpyReconstructed v1.0
Reconstrução em C + OpenGL + DirectSound do PUMPY.EXE (Pump It Up: PREX3).
Primeira versão com todos os sistemas principais do original implementados.
Esta release fecha o ciclo aberto na v0.9: o que faltava eram as telas de
operador, o fluxo de arcade e um punhado de divergências de fórmula que só
apareciam com o jogo rodando.
Sistemas novos
Menu de serviço — as 11 páginas do SETUP MENU original, com IO e EEPROM
adaptados para PC (os contadores vivem no PUMPY.INI).
F1 entra e percorre a lista · F2 seleciona · F3 coin clear · F4 coin 1 · F5 coin 2
Crédito e moeda — acumulador de moedas com credits = CoinTotal / Coin1,
cobrança num ponto único no caminho para a seleção de músicas. O padrão é
FREE PLAY, então nada muda se você não configurar nada.
Contador TIME na seleção de músicas — 60 segundos, bip a cada segundo a
partir de 10, e ao zerar entra na música sob o cursor.
Indicador de nível — bolinhas do DIFFLCUL.SPR e a caveira animada do
DIFFNIGH.SPR para NIGHTMARE, com a contagem vinda do Stage.cfg.
Setas de canto — AR-*, ARR-* e M-* seguindo os keyframes do
099.BGA: animação de entrada, repouso em loop e onda na direção pressionada.
Fullscreen com Alt+Enter — viewport preserva o 4:3 do gabinete, com barras
laterais em monitor widescreen.
Ranking e console de debug (abre na crase, 13 comandos).
Correções
Músicas com block split terminavam antes da hora. A leitura dos blocos do
.STX procurava o magic zlib 78 9C varrendo o espaço entre seções — era
heurística. O formato real, visto em Step_ParseFile (0x004068b0), tem a
contagem de blocos no header da seção e os blocos em sequência, cada um
prefixado pelo próprio tamanho comprimido. A regra antiga também reprovava
delay negativo, e os blocos seguintes da 826 "Come To Me" têm delay entre −3 e
−5: a música acabava no fim do primeiro bloco.
Holds fantasmas. O corpo do hold era ancorado no receptor sempre que
houvesse algum hold ativo naquele painel — inclusive o run de HOLD_B do
próximo hold, ainda subindo a tela, que era esticado do receptor ao topo e
cobria a lane inteira. Como o bug era de render, não pontuava nada, o que
mascarava a origem.
Fórmula da nota final. Extraída de DanceGradeDisplay (0x00415330): o
termo maxCombo * 0.03 só entra fora do modo EVENT, e a nota máxima exige
missCount == 0.
Curva de vida por dificuldade. O que varia é o lifeSpeed (init/min/max),
não o valor inicial da barra, que é sempre 500.
Outros — Log_Print estourava o buffer com argumentos longos · música do
menu não dava loop · auto-scroll DL/DR sem o segundo patamar de velocidade ·
BOX2 e LEVEL não apareciam para música fora do range ou sem DXXX.AUD ·
autoplay por seta desligado, agora só F8 alterna todas.
Notas
Compilado com MSVC. O build_pumpy.bat na raiz do projeto monta a solução.
O jogo espera os dados do PREX3 original ao lado do executável (BGA/,
STEP/, WAVE/, AUDIO/, Stage.cfg). Nada de conteúdo do jogo é
distribuído aqui.
Sobre o histórico: os commits desta versão foram separados por tema a partir de
uma árvore já acumulada, então os intermediários não compilam isoladamente —
só o último. Vale saber antes de fazer bisect.
O COMPARATIVO.md (não versionado) tem o mapeamento função a função entre o
original e a reconstrução, com marcação do que foi verificado em runtime.
v0.9 – Modifier System: Random Velocity, Earthworm & DL/DR Hold Auto-Scroll
What's New
Song Select
- DL/DR Hold Auto-Scroll — holding left/right on the song carousel now
scrolls continuously, accelerating after ~2 seconds (matches original
PREX3 behavior). Plays 3-2.WAV on initial press and 10-2.WAV on
each auto-scroll repeat.
Gameplay — Modifier System
-
Random Velocity (RV) — activating RV via Buffer9 cheat now randomly
changes scroll speed (×1–×4) once per measure throughout the song.
Both players share the same speed in co-op when either has RV active. -
Earthworm — activating Earthworm via Buffer9 cheat now oscillates
the scroll speed every frame:- BPM ≤ 150 → alternates ×3 ↔ ×2 (120-frame period)
- BPM > 150 → alternates ×2 ↔ ×1 (90-frame period)
Timing and thresholds reverse-engineered from original PREX3 binary.
Internal
GameContextgainscmdEarthworm[2]field; Buffer9 case 4 now
properly toggles it (previously only logged).