I played through this game yesterday for the heck of it. Then today when I saw Patryk1023's post I decided to look for some useful values in case anyone wants to try TASing this. I don't really feel like working on a TAS for this, but I was thinking I might try to make a bot for it like Bobo the King has done for
Super Mario RPG "Beetle Mania".
Incoming data dump:
(all values are 1 byte unsigned unless otherwise specified)
primary ball X: 7E0271
Primary ball Y: 7E02B1
Each life starts at 47 x position and 195 y position for single player
Each life starts at 47 x position and 179 y position for two player simultaneous
Multiball 1 Y:7E02B3
Multiball 1 X:7E0273
Multiball 2 Y:7E02B5
Multiball 2 X:7E0275
Multiball 3 Y:7E02B7
Multiball 3 X:7E0277
Multiball 4 Y:7E02B9
Multiball 4 X:7E0279
Multiball 5 Y:7E02BB
Multiball 5 X:7E027B
Multiball 6 Y:7E02BD
Multiball 6 X:7E027D
Multiball 7 Y:7E02BF
Multiball 7 X:7E027F
When you break up one of the ball enemies, they form balls that bounce around as well. Their locations are:
Enemy Ball 1 X:7E02A7
Enemy Ball 1 Y:7E02E7
Enemy Ball 2 X:7E02A5
Enemy Ball 2 Y:7E02E5
Enemy Ball 3 X:7E02A3
Enemy Ball 3 Y:7E02E3
If you break more than one (giving 6 balls on the screen) I'm guessing that the next would be: (but I haven't checked)
Enemy Ball 4 X:7E02AD
Enemy Ball 4 Y:7E02ED
Enemy Ball 5 X:7E02AB
Enemy Ball 5 Y:7E02EB
Enemy Ball 6 X:7E02A9
Enemy Ball 6 Y:7E02E9
X posision of enemy one: 7E2001
Y posision of enemy one: 7E2003
X posision of enemy two: 7E2021
Y posision of enemy two: 7E2023
frames since the ball last hit the paddle? 7E0196 (2bytes)
Blocks for the level:
address: 7E0FRC (read as hex)
where R is the row (0 to F) and C is the column (0 to 9) on the board
values in hex of the form XY:
If X = 1 then the block is of type breakable in one hit
In this case, Y is the color of the block and if it has an item
S color
0 white
1 orange
2 lightblue
3 green
4 red
5 blue
6 pink
7 yellow
8 white with item
9 orange with item
A lightblue with item
B green with item
C red with item
D blue with item
E pink with item
F yellow with item
If X = 2 then the block is of type breakable in mutiple hits
In this case, Y is the number of hits left on the block
If X = 3 then the block is a gold unbreakable block
00 means no block is there
p1 paddle position values:
paddle position: 7E044F
These are also values that have to do with the position. My guess is that they are delimiters on the paddle that determine the angle at which the ball bounces off? I haven't checked though.
7E1600
7E1604
7E1608
7E160C
7E1610 (only non 0 when an extender power-up has been collected)
7E1614 (only non 0 when an extender power-up has been collected)
7E1618 (only non 0 when two extender power-ups have been collected)
7E161C (only non 0 when two extender power-ups have been collected)
These values below seem to always be 4 more than the values above
7E1700
7E1704
7E1708
7E170C
7E1710
7E1714 (only non 0 when an extender power-up has been collected)
7E1718 (only non 0 when an extender power-up has been collected)
7E171C (only non 0 when two extender power-ups have been collected)
7E1720 (only non 0 when two extender power-ups have been collected)
p2 paddle position values:
paddle position = 7E0451 (16 to 143) (16 to 127) (16 to 111)
paddle position = 7E0492 (28 to 155) (I don't know why p1 doesn't have a coressponding value at 7E0490)
These are also values that have to do with the position. My guess is that they are delimiters on the paddle that determine the angle at which the ball bounces off? I haven't checked though.
7E1628
7E162C
7E1630
7E1634
7E1638 (only non 0 when an extender power-up has been collected)
7E163C (only non 0 when an extender power-up has been collected)
7E1640 (only non 0 when two extender power-ups have been collected)
7E1644 (only non 0 when two extender power-ups have been collected)
These values below seem to always be 4 more than the values above
7E1728
7E172C
7E1730
7E1734
7E1738
7E173C (only non 0 when an extender power-up has been collected)
7E1740 (only non 0 when an extender power-up has been collected)
7E1744 (only non 0 when two extender power-ups have been collected)
7E1748 (only non 0 when two extender power-ups have been collected)
power-up pills:
board location of the current power up dropped from 7E0496 (Hex RC [RowColumn])
board location of the second power up dropped from if there are two on the screen at once: 7E0494 (Hex RC [RowColumn])
So if it is 46 in hex it came from row 4 column 6
if it was A8 in hex it came from row A column 8
pixel locations:
current bottom of first pill: 7E16E5 or 7E16E9 or 7E16ED
current top of first pill: 7E16F1 or 7E16F5 or 7E04A6
current bottom of second pill: 7E16D1 or 7E16D5 or 7E16D9
current top of second pill: 7E16DD or 7E16E1 or 7E04A4
Pill type of first pill 7E049A
Pill type of second pill 7E0498
blue 01
???? 02
red 03
gray 04
orange 05
pink 06
light Green 07
magenta 08
dark Green 09
light Blue 00
Level specific power-up drop list order:
Legend
blue E
dark green T
Red L
Orange S
gray P
light green C
pink B
magenta M
light blue D
random R
Stage 1 power ups:
T E L R E T
Stage 2 power ups:
C L S C M L
Other notes:
each block is 16 pixels wide and 8 pixels tall
size of the paddle is 32
size of the paddle with 1 extender is 48
size of the paddle with 2 extenders is 64
Your paddle can only be extended twice
diameter of the ball is 4
There can only be two power-ups on the screen at a time
power up pills are 8 pixels tall by 16 pixels wide
The next power-up that appears is not dependent upon the block you hit (only that you hit an item block as described above), but
a list of predetermined power-ups for that stage. An option for that list can be "random" it seems. These random power-ups are where you can possibly get a warp power-up or an extra life power-up. It seems like some stages do not have random power-ups and that each one is predetermined (but I haven't tested enough to be sure).
Things still to find:
enemy type
ball speed
some sort of formula for how the ball bounces off corners of blocks
How bouncing off bosses works
Check the paddle position values to see if they have something to do with the angles the ball bounces off from the paddle and what that angle is.
Try to figure out stuff with the RNG and how it relates to enemy movement and random power-ups (not even sure where to start with that)
The power-up order for other stages and which are random
Last note: If anyone is seriously planning on TASing this and would like me to create some sort of LUA HUD for it let me know and tell me what kinds of things you'd like to see on it. I'd like to familiarize myself more with the LUA stuff and this would be a good excuse to do it.