Skip to content

Releases: bmbelo87/decomp-it-up-the-prexurrection-3

PumpyReconstructed v1.1.0

Choose a tag to compare

@bmbelo87 bmbelo87 released this 26 Sep 20:09

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 WAVE ao 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

Choose a tag to compare

@bmbelo87 bmbelo87 released this 26 Sep 00:56

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 (glBitmap com 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; AudioOffset volta 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

Choose a tag to compare

@bmbelo87 bmbelo87 released this 15 Sep 13:48

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

Choose a tag to compare

@bmbelo87 bmbelo87 released this 12 Jul 06:01

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

  • GameContext gains cmdEarthworm[2] field; Buffer9 case 4 now
    properly toggles it (previously only logged).