Puyo Puyo Tsu/Reverse Engineering

From Puyo Nexus Wiki
Jump to navigation Jump to search

The accurate Puyo Puyo Tsu game mechanics and algorithms are currently being determined through a reverse engineering effort on the Genesis and Arcade version of the game (which are mostly the same with respect to all major aspects of gameplay).

This page summarizes the various aspects of the game that have been or are currently being analyzed, as well as various technical information about the platform and the process of reverse engineering.

Forum post are provided for reference, as they were what started this documentation effort. They may not be accurate and/or up to date.

Introduction

People willing to pursue a reverse engineering effort on Puyo Puyo Tsu might find interesting pointers throughout the following pages:

And on the forums:

Game memory

These pages explain stuff related to memory management, data structures and locations of interest:

On the forums:

Frame data tables

The frame data tables are available on a dedicated page:

Direct access to the various subtables is provided below:

Game mechanics

So far, these game mechanics have been covered.

On randomization:

On input handling:

On game physics while controlling the falling puyos:

And the historical posts on the forums are:

Game modification

Patches and Game Genie codes that modify the gameplay in interesting ways are discussed below:

On the forums:

Areas of interest

Those are upcoming topics of a particular interest about the game mechanics:

  • Random number generation (RNG) throughout the game
  • RNG biases and issues
  • Score calculation
  • Identification of routines implementing game mechanics
  • Distribution algorithm of ojama puyos accross a row
  • Frame data and timings for various game sequences
    • chain resolving time with respect to column height and splitting
    • pair split / falloff speed
    • input lock period after pair placement (bouncing animation)
    • upcoming pair display lag
    • upcoming pair control lag
    • rotation timings
    • grace period before garbage (ojama) drop
    • soft drop speed modifier (down arrow)
    • margin time: impact on garbage sent
    • margin time: when does it occur / takes effect
    • drop speed increase after x seconds
    • motion cancel

History

This project started out of curiosity about the randomization algorithm used in Puyo Puyo Tsu, and was published on the forums on August 27, 2013. The efforts evolved into analyzing various game mechanics in order to have an accurate understanding of the game's internals.