Skip to content

Collision mass identification, collision view/editing tool, and collision data bin dumps#217

Open
Retnuhytnuob wants to merge 8 commits into
pret:masterfrom
Retnuhytnuob:fieldCollision
Open

Collision mass identification, collision view/editing tool, and collision data bin dumps#217
Retnuhytnuob wants to merge 8 commits into
pret:masterfrom
Retnuhytnuob:fieldCollision

Conversation

@Retnuhytnuob
Copy link
Copy Markdown
Contributor

@Retnuhytnuob Retnuhytnuob commented May 21, 2026

Summary

  • View/Editing tools for board collision / entity collision shapes
  • Dumps bin files for collision data (to use with viewing tool)
  • Collision function mass function param/var identification.
  • Ruby/Sapphire/Kecleon board trigger zone enum consts

Description

Dumps the board level collision tiledata/angledata/type data. (basic wall infrastructure, with trigger zones)

  • bin files, for use in the new viewing tool.
  • Reminder: kyogre/groudon share the basic board collision data for their arena.

Adds a html + javascript collision_viewer/editor for board collision data in the tools area.

  • GUI editor, with click interaction, keyboard navigation (arrow keys) and different coloration for collision angles/types for ease of comprehension.
  • When selecting the file, select all 3 bin files that share the same prefix. ( ___angledata, ___tiledata, ___typedata)
  • Note: the collision areas are set based on the center of the ball tracking, so the collision is a little inset from where the wall is. (This makes ramp/lanes look thinner, and obstacles look bigger)

Adds a second html collision viewer/editor for entity collision (different data structure)

  • GUI editor, select single entity bin file.
  • Size of trigger region is detected from the file name, or can be manually selected once a file is loaded

Mass Collision var renaming:

  • traced BallPosition var, named internally used/passed vars for collisionTileIndex, boardCollisionAngle, boardcollisionType, collisionType, boardTriggerType, collisionAngle, hasCollisionImpact
  • Added consts used for collision boards.
    • Which angle number corresponds to which bounce direction
    • Masks used for separating collisionType from Angle for the entity collision.
    • values used for the spin/bounce when the direction is near perfect "Up direction"
  • 'trigger' types from upper nibble on board collision type:
    • Kecleon environmental objects
    • Ruby/Sapphire ramp/trigger areas

Renames:

  • linoone related SideBumpers: adding 'linoone' to differentiate them from the plussle/minun buttons, and from the sapphire board side bumpers that have no mon decorative element
  • hatchMachineNewHit -> hatchMachineProgressTickSignaled and targetBumperHitCounter -> hatchMachineTriggerCounter (hatch machine alternates between 2 trigger types as the ball circles. Figured this better explained what was happening.)
  • sapphireBumperState -> sapphireMartGateBumperState (Button triggers on either side of the shop, not the tall buttons on either side of the board for seedot/zigzagoon)
  • ballLaunchTimer -> altBallCameraTimer
  • secondaryBall -> cameraBall Sorry, no multiball code... This takes a snapshot of the ball state, and has the camera follow that for a moment in a few places, before returning to follow the main ball
  • gKecleonTongueCollisionMap -> gKecleonUprightCollisionMap
  • gKecleonBodyCollisionMap -> gKecleonKnockedDownCollisionMap
  • function typedef: Unk86ACE0C -> BoardCollisionFunc

Additional improvements:

  • Adds a const set for 'side collision (0/1 = left /2 = right)' and 'side_index' (0 = left/1=right)

Discord username

retnuhytnuob

@Retnuhytnuob Retnuhytnuob changed the title Dumps board collision bins, Add collision view/edit tool Collision mass identification, collision view/editing tool, and collision data bin dumps Jun 1, 2026
@Retnuhytnuob
Copy link
Copy Markdown
Contributor Author

Added a second html page tool for viewing/editing the collision for board entities. (the boss mons, the linoone side bumper extensions, the pond bumpers, fire pillars, etc) (Of particular interest are Dusclops and Whiscash, which have a separate zone for capturing the ball rather than a normal hit.)

Mass comprehension naming of vars in board collision files.

Dumps board entity collision data to bin files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant