Tickompiler Documentation Release 1.9.0
chrislo27, SneakySpook
May 29, 2021
Tickflow Documentation
1 Basic Tickflow Syntax 3 1.1 Function Calls...... 3 1.2 Compile-time Variables...... 4 1.3 Markers...... 4 1.4 Directives...... 4
2 Key Tickflow Concepts / Glossary5
3 Known Global Tickflow Operations7 3.1 Asynchronous Subroutine (0)...... 7 3.2 Get Async/Set Function (1)...... 7 3.3 Async Call Location (2)...... 8 3.4 Kill Threads (3)...... 8 3.5 Subroutine (4)...... 8 3.6 Get Sync (5)...... 8 3.7 Call Location (6)...... 9 3.8 Return (7)...... 9 3.9 Stop (8)...... 9 3.10 Set Category (9)...... 9 3.11 Set Conditional Variable (0xA)...... 9 3.12 Add Conditional Variable (0xB)...... 9 3.13 Push Conditional Variable (0xC)...... 9 3.14 Pop Conditional Variable (0xD)...... 10 3.15 Rest (0xE)...... 10 3.16 Get/Set Rest (0xF)...... 10 3.17 Reset Rest Counter (0x11)...... 10 3.18 Unrest (0x12)...... 10 3.19 Label (0x14)...... 10 3.20 Goto (0x15)...... 11 3.21 If, Else, Endif (0x16. . . 0x18)...... 11 3.22 Switch, Case, Break, Default, Endswitch (0x19. . . 0x1D)...... 11 3.23 Countdown (0x1E)...... 12 3.24 Speed (0x24)...... 12 3.25 Relative Speed (0x25)...... 13 3.26 Engine (0x28)...... 13 3.27 Set Game to Asset Slot (0x2A)...... 13 3.28 Model Asset Management (0x31)...... 13
i 3.29 Cellanim Asset Management (0x35)...... 14 3.30 Effect Asset Management (0x39)...... 14 3.31 Layout Asset Management (0x3E)...... 14 3.32 Play SFX (0x40)...... 15 3.33 Set SFX Slot (0x5D)...... 15 3.34 Remove SFX (0x5F)...... 15 3.35 Enable/Disable Input (0x6A)...... 15 3.36 Zoom View (0x7E)...... 16 3.37 Pan View (0x7F)...... 16 3.38 Rotate View (0x80)...... 16 3.39 Skill Star (0xAE)...... 16 3.40 Random (0xB8)...... 17
4 Game Engines 19 4.1 Spaceball (0)...... 21 4.2 Clappy Trio (1)...... 22 4.3 Sneaky Spirits (2)...... 23 4.4 Rhythm Tweezers (3)...... 24 4.5 Bouncy Road (4)...... 26 4.6 Marching Orders (5)...... 26 4.7 Night Walk (6)...... 28 4.8 Quiz Show (7)...... 29 4.9 Bunny Hop (8)...... 32 4.10 Rat Race (9)...... 32 4.11 Power Calligraphy (0xA)...... 34 4.12 Space Dance (0xB)...... 37 4.13 Tap Trial (0xC)...... 39 4.14 Ninja Bodyguard (0xD)...... 42 4.15 Airboarder (0xE)...... 43 4.16 Lockstep (0xF)...... 45 4.17 Blue Birds (0x10)...... 46 4.18 The Dazzles (0x11)...... 48 4.19 Freeze Frame (0x12)...... 51 4.20 Glee Club (0x13)...... 53 4.21 Frog Hop (0x14)...... 55 4.22 Fan Club (0x15)...... 58 4.23 Dog Ninja (0x16)...... 61 4.24 Rhythm Rally (0x17)...... 62 4.25 Fillbots (0x18)...... 63 4.26 Shoot-‘Em-Up (0x19)...... 65 4.27 Big Rock Finish (0x1A)...... 66 4.28 Munchy Monk (0x1B)...... 69 4.29 Built to Scale (0x1C)...... 70 4.30 Air Rally (0x1D)...... 73 4.31 Exhibition Match (0x1E)...... 75 4.32 Flockstep (0x1F)...... 78 4.33 Cheer Readers (0x20)...... 79 4.34 Double Date (0x21)...... 82 4.35 Catch of the Day (0x22)...... 83 4.36 Micro-Row (0x23)...... 85 4.37 Fork Lifter (0x24)...... 86 4.38 Hole in One (0x25)...... 87 4.39 Flipper-Flop (0x26)...... 88 4.40 Ringside (0x27)...... 90 ii 4.41 Karate Man (0x28)...... 92 4.42 Working Dough (0x29)...... 96 4.43 Figure Fighter (0x2A)...... 97 4.44 Love Rap (0x2B)...... 100 4.45 Bossa Nova (0x2C)...... 102 4.46 Screwbot Factory (0x2D)...... 103 4.47 Launch Party (0x2E)...... 105 4.48 Board Meeting (0x2F)...... 107 4.49 Samurai Slice (0x30)...... 109 4.50 See-Saw (0x31)...... 112 4.51 Packing Pests (0x32)...... 113 4.52 Monkey Watch (0x33)...... 115 4.53 Blue Bear (0x34)...... 116 4.54 Animal Acrobat (0x35)...... 118 4.55 Tongue Lashing (0x36)...... 120 4.56 Super Samurai Slice (0x37)...... 123
iii iv Tickompiler Documentation, Release 1.9.0
Tickompiler is a compiler and decompiler for Tickflow, a language constructed from the bytecode format used by the game Rhythm Heaven Megamix for the Nintendo 3DS to create the sequence of events in its rhythm games and remixes. Tickompiler allows easy editing of these rhythm games in a more human-readable format.
Tickflow Documentation 1 Tickompiler Documentation, Release 1.9.0
2 Tickflow Documentation CHAPTER 1
Basic Tickflow Syntax
Every line in tickflow is one of four things: • Function Calls, which directly correspond to a single bytecode instruction. These are the only lines of tickflow that translate into bytecode; • Compile-time variable assignments, which do not correspond to bytecode, but rather allow you to use constant variables to replace magic numbers; • Markers, which allow you to use locations in the tickflow code as variables; • and Directives, which include custom function aliases and file metadata.
1.1 Function Calls
Function calls are of the form op
Here, op is either a name or a number; it determines what operation is performed. In bytecode, the opcode is a number between 0 and 0x3FF. This is an accepted value for op in Tickflow, but there are a number of known operations that have defined names in Tickflow. Examples include rest, if and case.
1.1.1 Expressions
Expressions resolve to numbers. They consist of variables, numbers and mathematical operations. The operators you can use for expressions are multiplication (*), addition (+), subtraction (-), integer division (/), bitwise right shift
3 Tickompiler Documentation, Release 1.9.0
(>>), bitwise left shift (<<), bitwise AND (&), bitwise OR (|), and bitwise XOR (^). Examples of expressions include 5, 0xFE3, 0xFF << 5, and x + 2.
1.2 Compile-time Variables
Compile-time variables can be used to store numbers for later use in your Tickflow code. For example, you could save a variable beat with value 0x30, since one beat of music corresponds to this value in timing-related functions. Variable assignment is of the form
var= expr
var denotes the variable name. Variable names must start with a letter and contain only alphanumeric characters and underscores. expr is an expression denoting the value you are setting the variable to.
1.3 Markers
Markers ‘mark’ locations in your tickflow code, saving the location into a variable so that they can be used in other parts of the file. These are usually used for functions like call, which execute tickflow at a specific location. Markers are of the form
name:
name is the name of the marker and has the same constraints as variable names. Markers generated by the decompiler will have a naming scheme locXX:, where the number XX is based on the order the locations are referenced in the file.
1.4 Directives
Directives carry metadata about the file, but are also used for custom operation aliases. Current directives are: • #index num sets the index of the rhythm game this file will replace when patched into the game. • #start loc sets the location in the file at which tickflow execution will begin. This is often 0. • #assets loc sets the location in the file where certain assets, like the intro screen, are loaded. This is needed for insertion into the game. • #alias name num creates a custom function alias under the name name for the operation number num.
4 Chapter 1. Basic Tickflow Syntax CHAPTER 2
Key Tickflow Concepts / Glossary
Code execution Tickflow code consists of a sequence of operations or functions, which are all executed sequentially. Some Tickflow operations may redirect the execution to some other location. Conditional variable Tickflow keeps track of a particular variable, which is used in several operations. It can be set by some operations, and is generally used by conditional operations such as if to determine what Tickflow code to run. Threads Tickflow is multithreaded. This means that multiple pieces of Tickflow code may be running at the same time. A thread is the execution of one such piece of Tickflow code. A synchronous Tickflow function call will change the location at which the current thread of execution is running, while an asynchronous call will spawn a new thread at the desired location. Ticks A tick is the basic unit of time used in all Tickflow operations. 48 (0x30) ticks are generally equal to one beat of music.
5 Tickompiler Documentation, Release 1.9.0
6 Chapter 2. Key Tickflow Concepts / Glossary CHAPTER 3
Known Global Tickflow Operations
This is a list of all Tickflow operations which have known functions and have been given a global alias.
3.1 Asynchronous Subroutine (0)
The async_sub function finds a subroutine corresponding to an argument, then calls it asynchronously (i.e. the code runs simultaneously to the Tickflow code already running). Async_sub calls have the following form:
async_sub id, delay, cat
The id argument is the ID number assigned to the subroutine. It is first taken from a lookup table of rhythm game- specific IDs, usually starting at 0x56, and then from a global list of subroutines, which starts at 0. delay represents the delay in ticks before the macro is executed. cat is the category the new thread will belong to. This is often 0x7D0 (2000). The second and third arguments can be omitted, and default to 0 and 0x7D0 respectively. If the location called by the sub is within the Tickflow file it’s called in, async_sub is replaced with a corresponding async_call call.
3.2 Get Async/Set Function (1)
These two operations share the same operation number, 1. They are differentiated by the special argument. get_async corresponds to 1<0>, while set_func corresponds to 1<1>. set_func stores the location of a function into a slot, which can later be accessed and run asynchronously using get_async, or synchronously using get_sync (5). set_func is of the following form:
set_func slot, loc
It stores the location loc into the slot slot. get_async is of the following form:
get_async slot, delay
7 Tickompiler Documentation, Release 1.9.0
It calls the location stored into slot slot as an asynchronous function after delay ticks.
3.3 Async Call Location (2)
async_call, operation number 2, takes a location as an argument and runs the Tickflow code at that location as an asynchronous function.
async_call loc, delay
The asynchronous function at loc is called after a delay of delay ticks.
3.4 Kill Threads (3)
Kills Tickflow threads according to several criteria.
kill_all
Kills all Tickflow threads.
kill_cat c
Kills all Tickflow threads in category c .
kill_loc location
Kills all Tickflow threads currently running inside the function at location .
kill_sub id
Kills all Tickflow threads currently running inside the subroutine id .
3.5 Subroutine (4)
sub finds a subroutine corresponding to an argument, then calls it synchronously.
sub id
The id argument is identical to the one in Asynchronous Subroutine (0).
3.6 Get Sync (5)
Gets a function set by set_func and calls it synchronously.
get_sync slot
8 Chapter 3. Known Global Tickflow Operations Tickompiler Documentation, Release 1.9.0
3.7 Call Location (6) call takes a location as an argument and calls the Tickflow code at that location as a synchronous function. call loc
The synchronous function at loc is called.
3.8 Return (7) return takes no arguments, but returns from a synchronous function call. That is, when return occurs in a synchronous function, execution is returned to the location the function was called from.
3.9 Stop (8) stop stops the current thread of execution.
3.10 Set Category (9) set_cat c
Sets the current thread to category c .
3.11 Set Conditional Variable (0xA) set_condvar sets the value of the conditional variable to its first argument. set_condvar val
3.12 Add Conditional Variable (0xB) add_condvar adds its first argument to the value of the conditional variable. add_condvar val
3.13 Push Conditional Variable (0xC)
The conditional variable is pushed to a stack containing at most 16 values. For more information about stacks, see Wikipedia. push_condvar
3.7. Call Location (6) 9 Tickompiler Documentation, Release 1.9.0
3.14 Pop Conditional Variable (0xD)
The conditional variable is popped from the previously mentioned stack. pop_condvar
3.15 Rest (0xE) rest duration duration is added to the rest counter. If the rest counter is now greater than zero, it will decrement at a rate of 48 per beat, pausing Tickflow execution until it reaches zero again. Note that duration is actually the special argument for rest, but the syntax is like a regular argument here for convenience.
3.16 Get/Set Rest (0xF) getrest and setrest work similarly to Get Async/Set Function (1): setrest stores a duration in a slot, to later be used by getrest to add to the rest counter. setrest slot, duration
The duration duration is stored in slot slot. getrest slot
The duration previously stored in slot is added to the rest counter.
3.17 Reset Rest Counter (0x11) rest_reset
The rest counter is set to 0.
3.18 Unrest (0x12) unrest duration duration is subtracted from the rest counter. If the rest counter is negative, no action is undertaken. This effectively functions as a sort of buffer to subtract a duration from succeeding rests. Like in rest, duration is actually a special argument, but the syntax is adjusted for convenience.
3.19 Label (0x14)
A label takes only a special argument, and marks this location for use by goto. Can be positioned after a goto.
10 Chapter 3. Known Global Tickflow Operations Tickompiler Documentation, Release 1.9.0
label id
This location in the file is marked as id for use by goto. Note that, like in Rest (0xE), id is actually a special argument.
3.20 Goto (0x15) goto takes only a special argument, and jumps to the corresponding label. It presumably searches for the nearest label matching the ID. goto id
Execution jumps to the label with ID id. Note that, like in Rest (0xE), id is actually a special argument.
3.21 If, Else, Endif (0x16. . . 0x18)
Together, these operations form if-blocks, a popular programming construct. if arg // Tickflow code else // other Tickflow code endif
If the value of the conditional variable is equal to arg, then the first block of Tickflow code is executed. Otherwise, the second block of Tickflow code is executed. The else block can be omitted entirely, in which case it is assumed to be empty. There are also several different variants on if: if_neq arg if_lt arg if_leq arg if_gt arg if_geq arg
These execute the code if the conditional variable is not equal, less than, less than or equal, greater than, and greater than or equal to arg, respectively.
3.22 Switch, Case, Break, Default, Endswitch (0x19. . . 0x1D)
Together, these operations form switch-case statements, another construct commonly found in programming lan- guages. switch case arg1 // tickflow code break case arg2 // more tickflow code (continues on next page)
3.20. Goto (0x15) 11 Tickompiler Documentation, Release 1.9.0
(continued from previous page) break [...] default // code break endswitch
If the value of the condition variable is equal to arg1, then the case arg1 block runs. If the value of the condition variable is equal to arg2, then the case arg2 block runs, etc. If none of the cases match the value of the condition variable, the default block runs. If any break is omitted, then after running the corresponding code block, the next case will also be run.
3.23 Countdown (0x1E)
countdown operations implement a countdown using two internal variables; the initial value of the countdown, and the “progress” of the countdown, which is subtracted from the initial value.
set_countdown num
Sets the initial value to num and sets the progress to 0. Equivalent to 0x1E<0>.
set_countdown_condvar
Sets the initial value to the value of the conditional variable, and sets progress to 0. Equivalent to 0x1E<1>.
get_countdown_init
Sets the conditional variable to the initial value of the countdown. Equivalent to 0x1E<2>.
get_countdown_prog
Sets the conditional variable to the progress of the countdown. Equivalent to 0x1E<3>.
get_countdown
Sets the conditional variable to the countdown value: initial - progress. Equivalent to 0x1E<4>.
dec_countdown
Increments the progress variable by 1, therefore decrementing the countdown value by 1. Equivalent to 0x1E<5>.
3.24 Speed (0x24)
speed sets the speed of the game to a specified fraction of the original speed. This also increases the pitch of the music. An example of speed usage can be found in Karate Man Senior, when the game speeds up.
speed val
The speed is set to val/256 of the original speed. For example, speed 0x100 sets the speed to the original speed, while speed 0x120 sets the speed to 288/256, or 112.5% of the original speed.
12 Chapter 3. Known Global Tickflow Operations Tickompiler Documentation, Release 1.9.0
3.25 Relative Speed (0x25)
This operation operates on the same speed value as speed (0x24) does, but instead of setting it, it multiplies, resulting in a relative speed change from the current speed. A lower and upper bound on the resulting overall speed can also be set.
speed_relative val, lb, ub
The game speed is multiplied by val/256. The resulting value cannot fall below lb/256 or rise above ub/256 of the original speed.
3.26 Engine (0x28)
engine sets the game engine to the one corresponding to the argument ID.
engine id
The game engine is set to the engine corresponding to id. Game engines have a set of special tickflow functions which are specific to that game, as well as a set of macros and/or subroutines.
3.27 Set Game to Asset Slot (0x2A)
This is a set of operations all sharing the same operation number, but being distinguished by different special argument values.
game_model id, slot game_cellanim id, slot game_effect id, slot game_layout id, slot
These assign a game engine ID to an asset (model, cellanim, effect or layout) slot, to allow the game to load assets from the correct asset slots when loading a game. game_model corresponds to 0x2A<0>, game_cellanim to 0x2A<2>, game_effect to 0x2A<3> and game_layout to 0x2A<4>.
3.28 Model Asset Management (0x31)
This is a set of operations differentiated by their special argument, which all share a common theme of being used to manage the loading of model assets. Model assets are organized into slots starting at slot 1, where one slot can hold assets for one rhythm game.
set_model slot, str, ???
The first argument is a the slot for the model assets to be loaded into, the second argument is a location in memory that contains a string, namely the filename of the file containing the assets to be loaded. The third argument is unknown, but seems to always be 1. set_model corresponds to 0x31<0>.
remove_model slot
Removes the model assets currently loaded into slot. remove_model corresponds to 0x31<1>.
3.25. Relative Speed (0x25) 13 Tickompiler Documentation, Release 1.9.0
has_model slot
Seems to set the conditional variable to 1 if slot contains assets, and 0 otherwise. has_model corresponds to 0x31<2>.
3.29 Cellanim Asset Management (0x35)
Very similarly to Model Asset Management (0x31), this set of operations manages cellanim assets. Cellanim assets consist of 2D sprites and animations thereof. Cellanim assets, similarly to model assets, are organized into slots starting at slot 2, with each slot holding assets for one rhythm game.
set_cellanim slot, str, ???
The first argument is the slot for the assets to be loaded into, the second argument is a location in memory that contains the filename of the file to be loaded. The third argument is unknown, but seems to always be 0xFFFFFFFF, -1 when interpreted as a signed integer. set_cellanim corresponds to 0x35<0>.
cellanim_busy slot
Seems to set the conditional variable to 1 if slot is currently being written to or deleted from, and 0 otherwise. cellanim_busy corresponds to 0x35<1>.
remove_cellanim slot
Removes the cellanim assets currently loaded into slot. remove_cellanim corresponds to 0x35<3>.
3.30 Effect Asset Management (0x39)
Similarly to the previous two entries, this set of operations manages effect assets. Effect assets seem to consist of particle effects, and are organized into slots starting at slot 2, with each slot holding assets for one rhythm game.
set_effect slot, str, ???
This operation has identical functioning to set_cellanim. set_effect corresponds to 0x39<0>.
effect_busy slot
This operation has identical functioning to cellanim_busy. effect_busy corresponds to 0x39<1>.
remove_effect slot
This operation has identical functioning to remove_cellanim. remove_effect corresponds to 0x39<7>.
3.31 Layout Asset Management (0x3E)
Similarly to the previous entries, this set of operations manages layout assets. Layout assets are organized into slots starting at slot 4, though the slots used by stock games and remixes wildly vary.
set_layout slot, str, ???
14 Chapter 3. Known Global Tickflow Operations Tickompiler Documentation, Release 1.9.0
This operation has identical functioning to set_effect and set_cellanim. set_layout corresponds to 0x3E<0>.
layout_busy slot
This operation has identical functioning to effect_busy and cellanim_busy. layout_busy corresponds to 0x3E<1>.
remove_layout slot
This operation has identical functioning to remove_effect and remove_cellanim. remove_layout corre- sponds to 0x3E<7>.
3.32 Play SFX (0x40)
This operation plays a sound effect according to an ID.
play_sfx id
A sound effect is played according to id. Where these IDs are defined is not yet clear, though the sound effect may be played after a tempo-dependent delay, suggesting that these IDs encode additional info, and not only the sound effect itself.
3.33 Set SFX Slot (0x5D)
This operation loads sound effects into the specified SFX slot. Sound effects in the loaded assets can thereafter be played at any time.
set_sfx slot, str
Loads the sound effects corresponding to the group name at the location str in memory into slot.
3.34 Remove SFX (0x5F)
This operation removes previously loaded sound effects from the specified SFX slot.
remove_sfx slot
Removes the SFX assets loaded into slot.
3.35 Enable/Disable Input (0x6A)
This operation enables or disables all user input.
input flag
Disables input if flag is 0, enables it if it is 1.
3.32. Play SFX (0x40) 15 Tickompiler Documentation, Release 1.9.0
3.36 Zoom View (0x7E)
zoom n, x, y
Instantaneously sets the X-axis zoom factor for the n th view to x/0x100, and the Y-axis zoom factor to y/0x100. It is currently unknown how to determine the correct view number to use, however, it is known to usually be 3 or 4 when it is used in-game.
zoom_gradual n, i, s, duration, x, y
Changes the X-axis zoom factor to x/0x100 and the Y-axis zoom factor to y/0x100 over duration ticks. i determines the interpolation method used, and s determines the intensity of said interpolation’s variation. Values for i are: • 1: Linear • 2: Faster at the start • 3: Faster at the end • 4: Faster in the middle (smooth) • 5: Slower in the middle
3.37 Pan View (0x7F)
pan n, x, y
Instantaneously pans the view to the position x units (pixels?) left and y units (pixels?) up from the origin. n is as above.
pan_gradual n, i, s, duration, x, y
Pans the view to x units left and y units up from the origin over duration ticks. i and s are as above.
3.38 Rotate View (0x80)
rotate n, angle
Instantaneously rotates the view to angle degrees clockwise from the default. n is as above.
rotate_gradual n, i, s, duration, angle
Rotates the view to angle degrees clockwise from the default over duration ticks. i and s are as above.
3.39 Skill Star (0xAE)
star time
A skill star appears, to be collected after time ticks. Glitchy if no input matches the given time.
16 Chapter 3. Known Global Tickflow Operations Tickompiler Documentation, Release 1.9.0
3.40 Random (0xB8)
This operation generates a random number and stores it in the conditional variable.
random num
Stores a random number between 0 and num exclusive in the conditional variable. Note that, like in Rest (0xE), num is actually a special variable.
3.40. Random (0xB8) 17 Tickompiler Documentation, Release 1.9.0
18 Chapter 3. Known Global Tickflow Operations CHAPTER 4
Game Engines
This page contains documentation for game engines. Game engines have sets of game-specific Tickflow operations starting at 0x100, as well as subroutines. Game engines can be loaded in remixes and rhythm games using the engine operation.
Table of Contents
• Game Engines – Spaceball (0) – Clappy Trio (1) – Sneaky Spirits (2) – Rhythm Tweezers (3) – Bouncy Road (4) – Marching Orders (5) – Night Walk (6) – Quiz Show (7) – Bunny Hop (8) – Rat Race (9) – Power Calligraphy (0xA) – Space Dance (0xB) – Tap Trial (0xC) – Ninja Bodyguard (0xD) – Airboarder (0xE) – Lockstep (0xF)
19 Tickompiler Documentation, Release 1.9.0
– Blue Birds (0x10) – The Dazzles (0x11) – Freeze Frame (0x12) – Glee Club (0x13) – Frog Hop (0x14) – Fan Club (0x15) – Dog Ninja (0x16) – Rhythm Rally (0x17) – Fillbots (0x18) – Shoot-‘Em-Up (0x19) – Big Rock Finish (0x1A) – Munchy Monk (0x1B) – Built to Scale (0x1C) – Air Rally (0x1D) – Exhibition Match (0x1E) – Flockstep (0x1F) – Cheer Readers (0x20) – Double Date (0x21) – Catch of the Day (0x22) – Micro-Row (0x23) – Fork Lifter (0x24) – Hole in One (0x25) – Flipper-Flop (0x26) – Ringside (0x27) – Karate Man (0x28) – Working Dough (0x29) – Figure Fighter (0x2A) – Love Rap (0x2B) – Bossa Nova (0x2C) – Screwbot Factory (0x2D) – Launch Party (0x2E) – Board Meeting (0x2F) – Samurai Slice (0x30) – See-Saw (0x31) – Packing Pests (0x32)
20 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
– Monkey Watch (0x33) – Blue Bear (0x34) – Animal Acrobat (0x35) – Tongue Lashing (0x36) – Super Samurai Slice (0x37)
4.1 Spaceball (0)
Spaceball is the first game engine, with the ID 0. It has several 0x100 series operations, which are used for cues, but no subs that would be useful in remixes.
4.1.1 0x100 - Bat object
0x100 time, type
An object is spawned (shot out of the pipe) depending on type. Legal values of type are: • 0, which spawns a baseball; • 1, which spawns a rice ball; • 2, which spawns the alien. time denotes the time in ticks before the batter has to hit the ball; the time before input. If time is equal to 0x30 (one beat), the low ball animation is used. Otherwise, the high ball animation is used.
4.1.2 0x101 - Batter costume
0x101 costume
The batter’s costume is changed depending on costume. Legal values of costume, along with their appearances in the standard Spaceball cellanim, are: • 0, which is the default costume; • 1, which is the “red head” costume; • 2, which is the bunny costume.
4.1.3 0x102 - Camera zoom
0x102
The camera zooms in or out. distance is the distance the camera will be at the end of the zoom. It ranges between 0 and 0xA (10), with 4 being the default camera position. The zoom will occur over time ticks. type controls the way the zoom is interpolated: 1 gives a linear interpolation, or a rough zoom, and 2 gives a cubic interpolation, a smooth zoom.
4.1. Spaceball (0) 21 Tickompiler Documentation, Release 1.9.0
4.1.4 0x103 - Alien animation
0x103
0x103 controls the animation of the alien in the middle of the screen, namely, 0x103<0> makes it pop out of its ship, while 0x103<1> makes it return to its ship.
4.2 Clappy Trio (1)
Clappy Trio uses 0x100 series operations for the basic building blocks, but bundles them together into subs for convenience.
4.2.1 0x100 - Clap cue
0x100 time
After 2*time ticks, the player has to press the A button to clap.
4.2.2 0x101 - Beat animation
0x101 ???
0x101 does the beat animation for the clappy trio (head bob). The argument’s purpose is unknown, though it seems to be 1 at the end of a set of beat animations, and 0 elsewhere.
0x101<1> num
0x101<1> precedes a set of num beat animations. Purpose unknown.
4.2.3 0x102 - Ready stance
0x102
0x102 does the ready stance animation for the clappy trio. If type is 0, the animation is the regular ready stance. If type is 1, the animation is the “determined” ready stance.
4.2.4 0x103 - Clap animation
0x103 num
0x103 does the clap animation and sound effects for a single member of the trio. num is the number of the member to do the clap animation for, from left to right starting at 0. Note that the player’s member is unaffected by this operation.
22 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.2.5 List of subs
0x56 (async) Does a full clap cue, with the claps spaced two beats apart. (no ready stance) 0x57 (async) Does a full clap cue, with the claps spaced one beat apart. (no ready stance) 0x58 (async) Does a full clap cue, with the claps spaced a half beat apart. (no ready stance) 0x59 (async) Does a full clap cue, with the claps spaced a quarter beat apart. (no ready stance) 0x5A (async) Does a full clap cue, with the claps spaced an eighth beat apart. (no ready stance) 0x5B (async) Does a full clap cue, with the claps spaced two thirds of a beat apart. (no ready stance)
4.3 Sneaky Spirits (2)
Sneaky Spirits bundles 0x100 series operations into subs.
4.3.1 0x100 - Shoot cue (?)
0x100 ???
A beat after 0x100, the input to shoot a spirit occurs. The purpose of the argument is unknown.
4.3.2 0x101 - Draw bow
0x101
0x101 draws the bow in preparation for a shot.
4.3.3 0x102 - Pop-up spirit
0x102 pos
0x102 makes a spirit pop up at the specified position on the fence. 0 is the leftmost position and 6 is the rightmost.
4.3.4 0x103 - Close door
0x103
0x103 closes the door.
4.3.5 0x104 - Spirit height
0x104 height
0x104 sets the height of the spirit, on a scale from 0 to 0x100 (256).
4.3. Sneaky Spirits (2) 23 Tickompiler Documentation, Release 1.9.0
4.3.6 0x105 - Spirit position (?)
0x105 pos
0x105 sets whether the spirit is behind the fence or in the hitzone. If pos is 1 it’s behind the fence, if it’s 0 it’s in the hitzone.
4.3.7 0x107 - Reset game speed
0x107
0x107 resets the game speed after a spirit was hit.
4.3.8 List of subs
These are all synchronous subroutines. 0x56 8-beat spirit cue that stays at max height. 0x57 8-beat spirit cue that drops off to 0 height slowly. 0x58 8-beat spirit cue that drops off to 0 height quickly. 0x59 8-beat spirit cue that drops off to 0 height very quickly. 0x5A 8-beat spirit cue that starts at 0 height and rises slowly. 0x5B 8-beat spirit cue that starts at 0 height and rises before dropping back down. 0x5C 8-beat spirit cue that starts at a low height and drops off slightly before rising. 0x5D 8-beat spirit cue that alternates between low and high height. 0x5E 8-beat spirit cue that stays at 0 height. 0x5F 7-beat spirit cue that stays at max height. 0x60 7-beat spirit cue that drops off to 0 height slowly. 0x61 7-beat spirit cue that drops off to 0 height quickly. 0x62 7-beat spirit cue that starts at 0 height and rises slowly.
4.4 Rhythm Tweezers (3)
Rhythm Tweezers does not pack cues into subs, likely because of the large variety of patterns. It uses 0x100 series operations.
4.4.1 0x100 - Spawn Hair
0x100 type
0x100 spawns a hair, to be plucked 4 beats later. If type is 0, spawns a normal hair. If type is 3, spawns a long hair.
24 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.4.2 0x101 - Reset Hair Position
0x101
Resets the position for spawning of hairs. Usually used at the beginning of a pattern.
4.4.3 0x102 - Spawn Tweezers
0x102
Spawns tweezers. Used 2 beats after the start of a pattern.
4.4.4 0x105 - Set Vegetable Type
0x105 type
Sets the type of the next vegetable to appear. 0 gives an onion, 1 a potato.
4.4.5 0x107 - Don’t Peek (unused)
0x107 type
Makes a sign appear that covers part or all of the hairs. 0 spawns a sign that covers both sides, 1 spawns a sign that covers the right side, and 2 spawns a sign that covers the left side. While normally the signs automatically despawn after a pattern, 0x107<1> also despawns them. Note that this entire command is unused in itself, as well as the graphics associated with it.
4.4.6 Extra notes
At the end of a pattern (4 beats after the start), the following code is found: rest 0xA2// 3.375 beats 0x108<1> if 0 0xA1<2> if 1 0x1060 if 1 0x105X else 0x103 endif else 0x105X endif endif rest 0x18// 0.5 beats rest6// 0.125 beats
The logic and functioning of most of this is unknown, however, the 0x105 s here change the type of the next vegetable. Note as well that input is usually disabled using input at the start of a pattern, and re-enabled 3 beats later.
4.4. Rhythm Tweezers (3) 25 Tickompiler Documentation, Release 1.9.0
4.5 Bouncy Road (4)
Bouncy Road groups 0x100 series operations into subs. It is necessary to do so, since only one ball can be managed per Tickflow thread.
4.5.1 0x100 - Spawn/Bounce Ball
0x100 time
0x100 spawns a ball with a bounce duration of time ticks.
0x100<1>
0x100<1> bounces the ball.
4.5.2 List of subs
These are all asynchronous subroutines. 0x56 Spawns a ball with half-beat bounces. 0x57 Spawns a ball with 2/3-beat bounces. 0x58 Spawns a ball with 1-beat bounces. 0x59 Spawns a ball with 2-beat bounces.
4.6 Marching Orders (5)
Marching Orders groups 0x100 series operations into subs.
4.6.1 0x100 - Cue Input
0x100 time, type
Sets up an input cue to be pressed after time ticks. Legal values of type are: • 0: March input • 1: Halt input • 2: Right turn input • 3: Left turn input
4.6.2 0x101 - Raise Legs
0x101
All marchers raise their legs in preparation for marching.
26 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.6.3 0x102 - Beat Animation
0x102
All marchers do the beat animation (tip toe).
4.6.4 0x103 - Reset stance
0x103
Resets all marchers’ stances after a 0x102.
4.6.5 0x104 - March animation
0x104
A single marcher, determined by pos, marches once. pos ranges from 1 to 3, though usually all are used at once.
4.6.6 0x105 - Halt animation
0x105
A single marcher, determined by pos, halts. pos ranges from 1 to 3, though usually all are used at once.
4.6.7 0x106 - Right turn animation
0x106
A single marcher, determined by pos, turns right. pos ranges from 1 to 3, though usually all are used at once.
4.6.8 0x107 - Left turn animation
0x107
A single marcher, determined by pos, turns left. pos ranges from 1 to 3, though usually all are used at once.
4.6.9 0x108 - Commander Mouth Movement
0x108
The commander moves his mouth.
4.6.10 0x109 - Activate Conveyor Belt
0x109
The conveyor belt activates.
4.6. Marching Orders (5) 27 Tickompiler Documentation, Release 1.9.0
4.6.11 List of subs
These are all asynchronous subroutines. 0x56 The sound effect for the commander saying “TURN!”, followed by the right turn cue. Does not include “Right face. . . ” 0x57 The sound effect for the commander saying “TURN!”, followed by the left turn cue. Does not include “Left face. . . ” 0x58 The sound effect for the commander saying “MARCH!”, followed by one march cue. Does not include “Atten- tion. . . ” 0x59 The sound effect for the commander saying “HALT!”, followed by the halt cue. Does not include “Attention. . . ”
4.7 Night Walk (6)
Night Walk only has one useful sub, and uses 0x100 series operations for everything else.
4.7.1 0x100 - Spawn Platform
0x100 time, type
Spawns a platform that will take time ticks to reach the player (requiring an A press at that time). type determines what pops up when the player successfully jumps on the platform. Legal values for type are: • 0: Heart flower • 1: Lollipop • 2: Umbrella • 3: Heart flower, with a slightly different sound to 0. • 4: Star wand (final platform) • 5: Edge platform (after final platform)
4.7.2 0x101 - Staircasing state
0x101 state
0x101 sets the state of staircasing for newly spawned platforms. Legal values for state are: • 0: No staircasing • 1: Full staircasing • 2: Random staircasing
4.7.3 0x103 - Balloons
0x103
0x103 spawns 7 balloons for Play-Yan to hold onto.
28 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x103<1> num
0x103<1> pops one of the balloons according to num. num ranges from 0 to 6.
4.7.4 0x105 - Death check
0x105
Sets the conditional variable to 1 if Play-Yan has fallen into a pit, 0 otherwise.
4.7.5 List of subs
0x56 (async) Pops Play-Yan’s balloons one after another, making a count-in.
4.8 Quiz Show (7)
Quiz Show groups several things into subroutines.
4.8.1 0x100 - Contestant Actions
0x100
The contestant puts his hands on the buttons.
0x100<1>
The contestant readies his hands for pressing.
0x100<2>
The contestant’s face returns to normal.
0x100<3>
The contestant’s face becomes happy.
0x100<4>
The contestant’s face becomes sad.
4.8.2 0x101 - Quizmaster Actions
0x101
The quizmaster puts his hands on the buttons.
0x101<1>
The quizmaster readies his hands for pressing.
4.8. Quiz Show (7) 29 Tickompiler Documentation, Release 1.9.0
0x101<2>
The quizmaster presses the A button, incrementing his counter.
0x101<3>
The quizmaster presses the + button, incrementing his counter.
0x101<4>
The quizmaster’s face returns to normal.
0x101<5>
The quizmaster’s face becomes happy.
0x101<6>
The quizmaster’s face becomes sad.
4.8.3 0x102 - Counter Actions
0x102
Resets the counters to 0.
0x102<1>
Hides the quizmaster’s counter (number becomes ??).
0x102<2>
Reveals the quizmaster’s counter.
0x102<3>
Sets the conditional variable to 1 if the quizmaster’s and contestant’s counters match, and 0 if they don’t.
4.8.4 0x103 - Spotlight
0x103 flag
If flag is 1, the spotlight focusing on the quizmaster’s podium turns on. If 0, it turns off.
4.8.5 0x104 - Timer Actions
0x104 flag
If flag is 1, shows the timer. If 0, hides the timer.
0x104<1> time
Sets the timer duration to time ticks and starts the timer.
30 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.8.6 0x105 - Scoring
0x105
Start recording player presses for scoring purposes.
0x105<1>
Start recording quizmaster presses for scoring purposes.
0x105<2>
Stop recording quizmaster or player presses for scoring purposes.
0x105<3> score
Add points to the rhythm game score on a scale up to score depending on player performance.
4.8.7 0x106 - Skill Star Score Criterium
0x106
Unknown.
0x106<1>
Sets the conditional variable to 1 if the player has reached a score of 90 (?), 0 otherwise. This is used to determine whether to award the skill star at the end of the rhythm game.
4.8.8 List of subs
These are all synchronous subroutines. 0x56 Hides the quizmaster’s counters, resets the counters and readies the quizmaster’s hands. 0x57 The quizmaster puts his hands on the buttons, a text box displays saying “Go ahead.”, the timer appears, the player’s hands are readied, input is enabled, scoring starts recording player presses, and a sound effect plays signaling the player to start. 0x58 Input is disabled, input recording stops, and the answer is revealed. 0x59 Quizmaster pattern for practice question #1. 0x5A Quizmaster pattern for practice question #2. 0x5B Quizmaster pattern for practice question #3. 0x5C Quizmaster pattern for question #4. 0x5D Quizmaster pattern for question #5. 0x5E Quizmaster pattern for question #6. 0x5F through 0x64 Several unused patterns. 0x65 Random button presses for use at the end of patterns.
4.8. Quiz Show (7) 31 Tickompiler Documentation, Release 1.9.0
4.9 Bunny Hop (8)
Bunny Hop does not use any subs for cues.
4.9.1 0x100 - Spawn Animal
0x100 type, delay
Spawns an animal for the bunny to hop on. The animal will spawn such that the bunny will reach it after delay ticks. Legal values for type are: • 0: Turtle • 1: Dark turtle • 2: Small whale (2-beat rest) • 3: Vertical whale • 4: Big whale (8-beat rest) • 5: Whale tail (4-beat rest) • 6: Final whale
4.9.2 0x101 - Hop on ground
0x101<1> ???
The bunny hops on the ground. The argument is unknown, but always 0.
4.10 Rat Race (9)
Rat Race makes use of subs for some cues.
4.10.1 0x100 - Cue
0x100 type, time
An input cue will happen depending on type after time ticks. Legal values for type are: • 0: Start holding • 1: Release button
4.10.2 0x101 - Background Movement
0x101 flag
If flag is 0, stops background movement, else starts background movement.
32 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.10.3 0x102 - Rat Animations
0x102 type
Does an animation for all rats. Legal values of type are: • 0: Hiding • 1: Running • 2: Crouching (in preparation for running)
4.10.4 0x104 - Cat Animations
0x104 type
Does an animation for the cat. Legal values of type are: • 0: Left paw (our perspective) put on the table. • 1: Right paw put on the table. • 2: Head pops up • 3: Head pops down • 4: Look straight ahead • 5: Look left (our perspective) • 6: Look right • 7: Close eyes • 8: Paws back down (?)
4.10.5 0x105 - Speed Boost
0x105 type
Sets what happens after you release the button (speed boost). Values for type are: • 1: Normal speed boost • 2: Large speed boost Every other value gives no speed boost.
4.10.6 0x106 - Spawn Foreground Object
0x106 delay, type
Spawns a foreground object, usually cover for the rats. It is spawned such that the player reaches it in delay ticks. Values for type are: • 0: Regular foreground object • 1: End of game (cheese etc.)
4.10. Rat Race (9) 33 Tickompiler Documentation, Release 1.9.0
4.10.7 0x107 - Stoplight Control
0x107
The front rat pulls up the stoplight.
0x107<1>
The front rat puts away the stoplight.
0x107<2> type
Changes the stoplight display according to type. Values for type are: • 0: Left light on (orange) • 1: Middle light on (orange)
0x107<3>
Turns all lights on the stoplight red.
0x107<4>
Turns all lights on the stoplight green.
0x107<5>
Turns all lights on the stoplight off.
0x107<6>
The front rat drops the stoplight.
4.10.8 List of subs
These are all asynchronous subroutines. 0x56 Sets up a hold cue for 4 beats after the start of the sub, including cat animations. 0x57 Sets up a release cue for 4 beats after the start of the sub, including cat animations. 0x58 Stoplight count for hold cue; timed such that the input should be 3 beats after the start of the sub. 0x59 Stoplight count for release cue; timed such that the input should be 3 beats after the start of the sub.
4.11 Power Calligraphy (0xA)
4.11.1 0x100 - Input
0x100
One beat after 0x100, an A press input is required.
34 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.11.2 0x101 - Pattern Actions
0x101 pattern
Sets the pattern on the page. Values for pattern are: • 0: • 1: • 2: • 3: • 4: • 5: • 6: Face pattern (final pattern) • 7: Final page ()
0x101<1> num
Sets the next section of the pattern to be written onto the page. This is part of one of the lines, and will be filled in with the next 0x105.
4.11.3 0x102 - Page Movement
0x102 x, y
Moves the page x units right and y units down.
4.11.4 0x103 - Turn page
0x103 type
Turns the page. If type is 1, the page turns slowly, if 0 it turns normally.
4.11.5 0x104 - Cue action
0x104 type
Sets which kind of movement will happen for the next A input. Values for type are: • 0: The stroke in the pattern • 2: The stroke in the pattern • 3: The stroke in the pattern • 4: The dot in the pattern • 5: The stroke in the pattern • 7: The dot in the pattern • 8: The stroke in the pattern
4.11. Power Calligraphy (0xA) 35 Tickompiler Documentation, Release 1.9.0
• 9: The dot in the pattern • 0xA: The stroke in the face (final) pattern
4.11.6 0x105 - Brush Actions
0x105 x, y, flag
Moves the brush to x units right and y units down from the middle of the paper. If flag is 1, moves with brush on the paper, else moves with brush above paper.
0x105<1> type
Does an animation in preparation for a cue. Values for type are: • 0: Presses brush into paper in preparation for a stroke cue. • 1: Lifts brush in preparation for a dot cue.
0x105<2> flag
Turns hand red if flag is 1, turns hand back to normal if 0.
0x105<3>
Unknown.
0x105<4>
Unknown, tends to appear alongside brush movements and 0x105<1>.
0x105<5>
Unknown, appears alongside 0x105<1> 1.
4.11.7 0x106 - Dancers
0x106<1> type
Sets the animation for the dancers on the sides of the page. Values for type are: • 1: Spawns dancers; default animation • 3: Bowing animation • 4: Sitting animation
4.11.8 List of subs
These are all synchronous subroutines. 0x56 Ready page 0x57 pattern 0x58 Ready page
36 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x59 pattern 0x5A Ready page 0x5B pattern 0x5C Ready page 0x5D pattern 0x5E Ready page 0x5F pattern 0x60 Ready page 0x61 pattern 0x62 Ready face (final) page 0x63 Face (final) pattern 0x64 Ready page (unused) 0x65 Swingy pattern (unused) 0x66 Ready page (unused) 0x67 Swingy pattern (unused) 0x68 Ready page (unused) 0x69 Swingy pattern (unused) 0x6A Ready page (unused) 0x6B Swingy pattern (unused) 0x6C Ready page (unused) 0x6D Swingy pattern (unused) 0x6E Ready page (unused) 0x6F Swingy pattern (unused) 0x70 Ready face (final) page (unused) 0x71 Swingy face (final) pattern (unused)
4.12 Space Dance (0xB)
4.12.1 0x100 - Cue
0x100 time, type
Sets up a button press after time ticks. Values for type are: • 0: D-pad right (pose) • 1: D-pad down (sit) • 2: A (punch)
4.12. Space Dance (0xB) 37 Tickompiler Documentation, Release 1.9.0
4.12.2 0x101-0x107 - Space Dancers Animations
All the following animations include associated sound effects.
0x101
Beat (bob) animation for the pos th dancer from the right.
0x102
Pose animation.
0x103
Sit animation.
0x104
Punch animation.
0x105
Pose preparation animation.
0x106
Sit preparation animation.
0x107
Punch preparation animation (clap hands). The argument is unknown, but is 1 for the second clap and 0 for others.
4.12.3 0x108-0x110 - Space Gramps Animations
0x108
Space Gramps beat (bob) animation.
0x109
Space Gramps pose animation.
0x10A
Space Gramps sit animation.
0x10B
Space Gramps punch animation.
0x10C
Space Gramps pose preparation animation.
0x10D
38 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
Space Gramps sit preparation animation.
0x10E
Space Gramps punch preparation animation (fist pump). If hand is 1, uses left hand, if 0, uses right hand.
0x10F
Space Gramps starts talking.
0x110
Space Gramps stops talking.
4.12.4 0x111 - Background Movement
0x111 hspeed, hdir, vspeed, vdir
Sets background movement. Sets horizontal speed to hspeed (unit unknown), horizontal direction to right if hdir is 0, left if hdir is 1. Sets vertical speed to vspeed, vertical direction to down if vdir is 0, up if vdir is 1.
4.12.5 List of subs
All the following are asynchronous subroutines. Note that these assume that getrest 0 and getrest 1 are set to appropriate values that add up to one beat. In Space Dance, both are a half-beat, 0x18 ticks. In Cosmic Dance, getrest 0 is 0x20 ticks and getrest 1 is 0x10 ticks. 0x56 A full punch, such that the input occurs one beat and getrest 0 ticks later, with regular voice SFX. 0x57 A full punch, with Space Gramps voice SFX. 0x58 A full punch, with both regular and Space Gramps voice SFX. 0x59 A full pose, such that the input occurs one beat later, with regular voice SFX. 0x5A A full pose, with Space Gramps voice SFX. 0x5B A full pose, with both regular and Space Gramps voice SFX. 0x5C A full sit, such that the input occurs one beat later, with regular voice SFX. 0x5D A full sit, with Space Gramps voice SFX. 0x5E A full sit, with both regular and Space Gramps voice SFX. 0x5F Space Gramps punch animation, including preparation. This is a sub because the timing depends on the values of getrest 0 and getrest 1.
4.13 Tap Trial (0xC)
4.13.1 0x100 - Cue
0x100
Sets up an A button press one beat later.
4.13. Tap Trial (0xC) 39 Tickompiler Documentation, Release 1.9.0
4.13.2 0x101 - Beat animation
0x101
Does a beat (bob) animation for all characters.
4.13.3 0x102 - Animations
0x102 type
Does an animation. Animations include associated sound effects. Values for type are: • 0: Ready single tap • 1: Ready double tap (pose only) • 4: Single tap • 5: Tap to the left (part of double tap) • 6: Tap to the left (part of triple tap) • 7: Tap to the right (part of triple tap) • 8: Ready triple tap (part 1) • 9: Crouch down (jump preparation) • 0xA: Jump up (type 1; used when landing into crouch) • 0xB: Jump up (type 2) • 0xC: Land from jump • 0xE: Land into crouch • 0xF: double tap “ook” • 0x10: Ready triple tap (part 2)
4.13.4 0x104 - Unknown
0x104
4.13.5 0x105 - Giraffe
0x1051
The giraffe appears.
4.13.6 0x106 - Giraffe thought
0x106
Removes giraffe thought bubble.
40 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x106<1> ???
Conditionally makes the giraffe think a random message if the player got the last input. The argument can be 0 through 2.
4.13.7 0x107 - Custom giraffe thought
0x107<1> string
The giraffe thinks a message from the script, namely the message corresponding to the name pointed to by string.
0x107<2>
Removes giraffe thought bubble.
4.13.8 0x108 - Background acceleration
0x108
Turns on background acceleration.
0x108<1>
Turns off background acceleration.
4.13.9 0x109 - Unknown
0x109
Unknown purpose, appears at the end of Tap Trial, but not Tap Trial 2.
4.13.10 List of subs
All the following are synchronous subroutines. 0x56 Full single tap 0x57 Full double tap 0x58 Jump preparation 0x59 Jump into crouch 0x5A Jump into pose 0x5B Full triple tap
4.13. Tap Trial (0xC) 41 Tickompiler Documentation, Release 1.9.0
4.14 Ninja Bodyguard (0xD)
4.14.1 0x100 - Cue arrow
0x100 time
Cues an arrow to be sliced after time ticks.
4.14.2 0x101 - Change scene
0x101
Changes the scene. Values for scene are: • 0: View of archers • 1: Middle view (intro cinematic) • 2: View of lord/ninja
4.14.3 0x102 - Archer control
0x102 num
Places num archers. Up to 6 archers are supported; 7 or more results in many off-screen archers.
0x102<1> pos
The pos th archer from the right, starting at 0, draws their bow. If pos is -1 (which it almost always is), all archers draw their bows.
0x102<2> pos
The pos th archer from the right, starting at 0, releases their bow and shoots an arrow.
4.14.4 0x104 - Intro animations
0x104
The enemy arrow flies from one tower to another.
0x104<1>
The enemy arrow lands on the player’s wall.
0x104<2>
The ninja falls into position. (Used in remixes for the ninja to appear during transition)
0x104<3>
The ninja gets his sword ready.
42 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x104<4> time
The sensei walks to the center of the wall in time ticks.
0x104<5>
The sensei faces the other way in confusion.
4.15 Airboarder (0xE)
4.15.1 0x100 - Spawn blocks
0x100 time, type
Spawns blocks (along with the corresponding button input), such that the player reaches them after time ticks. Values for type are: • 0: Hop • 1: Squat
4.15.2 0x101 - Switch camera
0x101 cam
Switches to camera number cam. There are three cameras, 0 through 2.
4.15.3 0x102 - Instant camera control
0x102 cam, pos, var
Sets the position of camera number cam to a preset position depending on pos and var.
0x102<1> cam, pos, var
Sets the focus (where camera is looking) of camera number cam to a preset position depending on pos and var.
0x102<2> cam, x, y, z
Sets the position of camera number cam to a vector defined by x, y and z, relative to the frontmost airboarder(?)
0x102<3> cam, x, y, z
Sets the focus of camera number cam to a vector defined by x, y and z.
0x102<4> cam, ???
Unknown, maybe zoom?
4.15. Airboarder (0xE) 43 Tickompiler Documentation, Release 1.9.0
4.15.4 0x103 - Smooth camera control
0x103 is identical to 0x102, with the difference that 0x103 camera changes occur over time, and two extra arguments are added, interp and time. interp determines the interpolation used to move the camera smoothly. time deter- mines how long the movement takes. For example, 0x102 cam, pos, var turns into 0x103 cam, interp, time, pos, var.
4.15.5 0x105 - Airboarder Animation
0x105 pos
Does the beat animation for the pos th airboarder, starting from 0.
0x105<1> pos
Does the ducking animation for the pos th airboarder from the front, starting from 0.
0x105<2> pos
The pos th airboarder from the front, starting from 0, stops ducking.
0x105<3> pos
The pos th airboarder from the front, starting from 0, starts the charging animation.
0x105<4> pos
The pos th airboarder from the front, starting from 0, jumps.
4.15.6 0x106 - Charging
0x106 flag
Sets whether the airboarders are charging up for a jump. If flag is 1, it will be possible to charge and jump, otherwise not.
4.15.7 List of subs
All the following are asynchronous subroutines. 0x56 Beat animations every beat, forever. 0x57 A full duck cue, such that the input is 28 beats later. 0x58 A full duck cue enabling charging, such that the input is 28 beats later. 0x59 A full jump cue without voice SFX at the start, such that the input is 28 beats later. 0x5A A full jump cue with voice SFX at the start, such that the input is 28 beats later.
44 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.16 Lockstep (0xF)
4.16.1 0x100 - Cue
0x100 type, time
Sets up a button input for after time ticks. Values for type are: • 0: Off-beat (to the right) • 1: On-beat (to the left)
4.16.2 0x101 - Beat animation
0x101
Does the beat animation for all Stepswitchers.
4.16.3 0x102 - Step animation
0x102
Does the step/cue animation for all Stepswitchers except the player’s.
4.16.4 0x103 - Set Direction
0x103 dir
Sets the direction in which all Stepswitchers will step. If dir is 0, it’s offbeat/to the right. If dir is 1, it’s onbeat/to the left.
4.16.5 0x104 - Change View
0x104 type
Sets the view (zoom in most cases). Values for type are: • 0: Regular zoom level. • 1: Zoomed out. • 2: Zoomed out further. • 3: Zoomed out yet further. • 4: Zoomed out the furthest (portraits are visible). • 5: Practice view.
4.16. Lockstep (0xF) 45 Tickompiler Documentation, Release 1.9.0
4.16.6 0x105 - Background color
0x105 color
Sets the color of the background. Values for color are: • 0, 2, 4, 6: Pink • 1, 3, 5, 7: Purple
4.16.7 List of subs
All the following are asynchronous subroutines. 0x56 On-beat marching for 4 beats, starting the next beat. 0x57 Transition from on-beat to off-beat marching, takes 4 beats, starting the next beat. 0x58 Off-beat marching for 4 beats, starting the next beat. 0x59 Transition from off-beat to on-beat marching, takes 4 beats, starting the next beat. 0x5A 0x104 0. 0x5B 0x104 1. 0x5C 0x104 2. 0x5D 0x104 3. 0x5E 0x104 4. 0x5F 0x104 5. 0x60 Background transition to off-beat, to be called one beat after 0x57. 0x61 Background transition to on-beat, to be called one beat after 0x59. 0x62 Voice clip for start of on-beat marching (“Hai!”). 0x63 Voice clip for transition to off-beat (“Hai hai hai ha-HA!”). 0x64 Voice clip for off-beat marching after transition (“Hop hop hop hop”). 0x65 Voice clip for transition to on-beat (“Hm-ha hm-ha”). 0x66 Voice clip for transition to on-beat with hops (“Hop hop hm-ha hm-ha”).
4.17 Blue Birds (0x10)
4.17.1 0x100 - Input/cue
0x100
Cues an input according to type one beat later. Values for type are: • 0: Peck (A press) • 1: Stretch prepare (start holding A) • 2: Stretch (stop holding A)
46 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.17.2 0x101 - Beat animation
0x101
Does the beat animation for the pos th character from the right, starting at 0.
4.17.3 0x102 - Captain Beak Movement
0x102
The captain moves his beak.
4.17.4 0x103-0x107 - Blue Birds Animations
0x103 part, pos
Does an animation depending on part for the pos th bird from the right, starting at 0. Values for part are: • 0: Crouch down (part 1 of peck preparation) • 1: Stretch up (part 2 of peck preparation)
0x104
The pos th bird from the right pecks its beak once.
0x105 part, pos
Does an animation depending on part for the pos th bird from the right, starting at 0. Values for part are: • 0: Determined look (part 1 of stretch preparation) • 1: Determined look with star (part 2 of stretch preparation)
0x106
The pos th bird from the right starts charging up for a stretch.
0x107
The pos th bird from the right stretches its neck.
4.17.5 0x108 - Unknown
An unknown operation 0x108 0 appears at the start of practices.
4.17.6 0x109 - Hide Captain
0x109
The captain goes off-screen.
4.17. Blue Birds (0x10) 47 Tickompiler Documentation, Release 1.9.0
4.17.7 0x10A - Show Memory
0x10A
Shows the num th memory, in the order they appear in the rhythm game Blue Birds, starting from 0.
4.17.8 0x10B - Hide Memory
0x10B
The memory fades away.
4.17.9 0x10C - Fin.
0x10C
The text “Fin.” appears.
4.17.10 List of subs
All the following are asynchronous subroutines. 0x57 A full “peck your beak” cue, such that the first input is two beats after the start. 0x58 “Peck your beak” voice clip. (included in 0x57 and 0x61) 0x59 Captain beak movement pattern for the “peck your beak” cue. (included in 0x57 and 0x61) 0x5A Relevant animations for the “peck your beak” cue. (included in 0x57) 0x5B A full “stretch out your neck” cue, such that the first input is 4 and a half beats after the start. 0x5C “Stretch out your neck” voice clip. (included in 0x5B and 0x5F) 0x5D Captain beak movement pattern for the “stretch out your neck” cue. (included in 0x5B and 0x5F) 0x5E Relevant animations for the “stretch out your neck” cue. (included in 0x5B) 0x5F A full “stretch out your neck” cue, where the first part of the preparation animation is skipped. 0x60 Relevant animations for the “stretch out your neck” cue, except the first part of the preparation animation. (included in 0x5F) 0x61 A full “peck your beak” cue, without the first part of the preparation animation. 0x62 Relevant animations for the “peck your beak” cue, without the first part of the preparation animation. (included in 0x61)
4.18 The Dazzles (0x11)
4.18.1 0x100 - Input
0x100 type, time
48 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
Cues up a button input depending on type after time ticks. Values for type are: • 0: Stop holding A • 1: Start holding A
4.18.2 0x101 - Enable/Disable Beat Animations
0x101 flag
Enables beat animations for all Dazzlers if flag is 1, disables if 0.
4.18.3 0x102 - Animations
0x102
Does the beat animation for all Dazzles.
0x102<1> x, y
The y th Dazzle from the top on the x th row (both starting from 0) starts crouching.
0x102<2> x, y
Unknown. Only used at the start of the game, and only on the player’s Dazzle.
0x102<3>
All Dazzles start charging up.
0x102<4> x, y
The specified Dazzle poses.
0x102<5>
All Dazzles stop posing.
4.18.4 0x103 - Charging
0x103 flag
Sets whether the Dazzles are charging for a pose (whether the player can pose). If flag is 1, enables, if 0, disables.
4.18.5 0x104 - Un-darken
0x104 x, y
Un-darkens the specified Dazzle. Only used with the player’s dazzle at the end of release cues.
4.18. The Dazzles (0x11) 49 Tickompiler Documentation, Release 1.9.0
4.18.6 0x105 - Player pose effect
0x105 type
Sets which visual effect occurs when the player successfully poses for a cue. Values for type are: • 0: Stars in a circle from the player’s hand. • 1: Stars with Play-yan.
4.18.7 0x106 - Shrink square
0x106 x, y, time
The specified Dazzle’s yellow square shrinks over time ticks.
4.18.8 List of subs
All the following are asynchronous subroutines. Posing patterns are described in a 2x6 grid of numbers, the numbers representing the order in which the Dazzles pose. Identical numbers are simultaneous. 0x56 Countdown voice clips (“Three, two”), timed such that the first voice clip is four beats after the start. 0x57 Dazzles start crouching from left to right. (no voice clips) 0x58 Dazzles start crouching all at once. (unused; no voice clips) 0x59 Dazzles start crouching from left to right 4 beats after start. (with voice clips) 0x5A Dazzles start crouching all at once 4 beats after start. (with voice clips) 0x5B Posing pattern:
123 123
There is one beat between each pose. 0x5C Posing pattern:
123 123
There is one beat between each pose, but the first pose only takes a half beat. 0x5D Posing pattern (unused):
145 236
There is a half beat between each pose. 0x5E Posing pattern (unused):
123 456
There is a half beat between each pose, with a beat delay between poses 3 and 4.
50 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x5F Posing pattern:
153 426
There is a three-quarter beat between each pose, but only a half-beat between poses 3 and 4. 0x60 Posing pattern:
111 222
There are two beats between the poses.
4.19 Freeze Frame (0x12)
4.19.1 0x100 - Input
0x100 car, time
An input for a picture of car number car is cued for after time ticks.
4.19.2 0x101 - Beat animation
0x101 type
The beat animation is played for the photographer. The exact function of type is unknown, but beat animation calls alternate between 1 and 0 for type.
4.19.3 0x102 - Camera Overlay
0x102 flag
Enables the camera overlay if flag is 1, disables if 0.
4.19.4 0x103 - Car Control
0x103 car, type
Sets car number car to a type determined by type. Values for type are: • 0: Yellow car • 1: Red car
0x103<1> car, x0, x1, time
Moves car number car in the background from x0 to x1 over time ticks. Positions are in units to the right of the center (possibly pixels).
4.19. Freeze Frame (0x12) 51 Tickompiler Documentation, Release 1.9.0
0x103<2> car, x0, x1, time
Moves car number car in the foreground from x0 to x1 over time ticks.
4.19.5 0x104 - Performance Display
0x104
Starts recording player performance for display.
0x104<1> flag
Shows performance (thumbs up, side or down) if flag is 1, hides it if 0.
0x104<2>
Sets the conditional variable to player performance (0 is thumbs up, 1 is side, 2 is down).
4.19.6 0x105 - Photograph Display
0x105 car, flag
Shows the photograph for car number car if flag is 1, hides if 0.
4.19.7 0x106 - Audience
0x106 flag
Shows the audience if flag is 1, hides if 0.
4.19.8 0x107 - Stoplight Control
0x107
Shows the stoplights.
0x107<1>
Hides the stoplights.
0x107<2>n
Turns on the n th stoplight, starting from 1.
4.19.9 0x108 - People in foreground
0x108 num, type
52 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
A person walks across the foreground. num is the “slot” for the person, and people in higher slots appear behind of people in lower slots. Used values for type are: • 0: Man wearing white shirt walking left. • 2: Woman walking left. • 4: Man wearing blue shirt walking right.
4.19.10 List of subs
All the following are asynchronous subroutines. 0x56 One yellow car cue; photograph disappears quickly. (unused) 0x57 One yellow car cue. 0x58 Two yellow cars cue. 0x59 Two yellow cars cue; photographs appear sequentially instead of simultaneously. 0x5A Three yellow cars cue. 0x5B Three yellow cars cue; photographs appear sequentially instead of simultaneously. 0x5C Red car cue; photograph disappears quickly. 0x5D Red car cue.
4.20 Glee Club (0x13)
4.20.1 0x100 - Input
0x100 type
An input is cued for after one beat. Values of type are: • 0: Release A (start singing) • 1: Release A (“Together now”) • 2: Hold A (stop singing)
4.20.2 0x101 - Shut your Yap
0x101<1>
Sets the conditional variable to 1 if you are holding A, 0 otherwise.
4.20.3 0x102 - Unknown
0x102 ???
Unknown. 0x102 0 appears at the start of Glee Club and Glee Club 2, but not in remixes.
4.20. Glee Club (0x13) 53 Tickompiler Documentation, Release 1.9.0
4.20.4 0x104 - Voice Control
0x104 pos, type, sfx, ???, pitch
Sets the sound effect that plays when the pos th Chorus Kid from the left (starting at 0) performs an action depending on type. The sound effect that plays has SFX ID sfx and is pitch-shifted up by pitch (can be negative). Note that the standard singing sound effect is 0x1000DAF, the sound effect to stop singing is 0x1000DB1, and the sound effect for screaming is 0x1000DB0. Values for type are: • 0: Singing • 1: Screaming • 2: Stop singing
0x104<1> pos, type, ???
The pos th Chorus Kid performs an action depending on type. Third argument is unknown, is usually 0. Values for type are: • 0: Singing • 1: Screaming • 2: Stop singing
0x104<2> pos
Unknown.
4.20.5 0x105 - Conductor Animations
0x105
Idle animation.
0x105<1>
The conductor raises his baton.
0x105<2>
The conductor snaps his baton.
4.20.6 0x106 - Unknown
0x106
Often appears one beat after the player’s Chorus Kid stops singing.
4.20.7 List of subs
Only one relevant subroutine exists. It is synchronous. 0x56 Shows the “shut your yap” message until the player shuts their yap.
54 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.21 Frog Hop (0x14)
4.21.1 0x100 - Input
0x100 type, time
Cues an input depending on type for after time ticks. Values for type are: • 0: Press A. • 1: Start holding B. • 2: Release B.
4.21.2 0x102 - Frog SFX
0x102 sfx
Plays the SFX with ID sfx (a voice clip), with the four dancer frogs “speaking” the SFX. Sound depends on player performance.
4.21.3 0x103 - Frog Animations
For the purposes of all 0x103 operations, frog positions are as follows: The blue foreground frog is 0, the orange foreground frog is 1, and the four background frogs are 2 through 5, from left to right.
0x103 pos
Does the beat animation for the frog at position pos.
0x103<1> pos
The frog at position pos shakes their hips.
0x103<2> pos
The frog at position pos does a long hip shake animation.
0x103<3> pos
The frog at position pos does the first part of the spin animation.
0x103<4> pos
The frog at position pos does the second part of the spin animation.
0x103<5> pos, type
The frog at position pos moves their mouths depending on type. Values of type are: • 0: Open mouth wide briefly. • 1: Open mouth narrowly. • 2: Open mouth wide.
4.21. Frog Hop (0x14) 55 Tickompiler Documentation, Release 1.9.0
• 3: Open mouth wide horizontally.
4.21.4 List of subs
Frog Hop has nearly 100 different useful subroutines. Some are synchronous, and some are asynchronous. 0x56 Beat animation for all frogs. (sync) 0x57 Hip shake for foreground frogs. (sync) 0x58 Hip shake for background frogs. (sync) 0x59 Long hip shake for foreground frogs. (sync) 0x5A Long hip shake for background frogs. (sync) 0x5B Spin part 1 for foreground frogs. (sync) 0x5C Spin part 1 for background frogs. (sync) 0x5D Spin part 2 for foreground frogs. (sync) 0x5E Spin part 2 for background frogs. (sync) 0x5F The spotlights change to the background frogs after 1 beat. Then change back to foreground frogs after 2 beats. (async) 0x60 Hip shake SFX. (sync) 0x61 “Yeah” voice clip, along with mouth movement for the orange frog. (async) 0x62 “Ya-” voice clip, along with mouth movement for the orange frog. (async) 0x63 “-Hoo!” voice clip, along with mouth movement for the orange frog. (async) 0x64 “-Hoo!” voice clip; mouth stays open longer. (async) 0x65 “Yeah-yeah-yeah” voice clip, along with mouth movement for orange frog; mouth stays open throughout. (async) 0x66 “Spin it” voice clip, along with speech bubble and mouth movement for orange frog. (async) 0x67 “Boys!” voice clip, along with mouth movement for orange frog. (async) 0x68 “Yeah” voice clip, along with mouth movement for background frogs. (async) 0x69 “Ya-” voice clip, along with mouth movement for background frogs. (async) 0x6A “-Hoo!” voice clip, along with mouth movement for background frogs. (async) 0x6B “-Hoo!” voice clip; mouths stay open longer. (async) 0x6C “Yeah-yeah-yeah” voice clip, along with mouth movement for background frogs; mouths stay open throughout. (async) 0x6D “Spin it” voice clip, along with mouth movement for background frogs. (async) 0x6E “Spin it” voice clip; alternate mouth movement. (async) 0x6F “Boys!” voice clip, along with mouth movement for background frogs. (async) 0x70 Four hip shake animations in a row for foreground frogs; uses sub 0x57. (async) 0x71 Four hip shake animations in a row for background frogs; uses sub 0x58. (async) 0x72 Four A press inputs in a row, starting one beat after the start of the sub. (async) 0x73 Hip shake SFX four times in a row; uses sub 0x60. (async)
56 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x74 Four full hip shake cues in a row; combines the previous four subs. (async) 0x75 Two hip shake animations in a row for foreground frogs; uses sub 0x57. (async) 0x76 Two hip shake animations in a row for background frogs; uses sub 0x58. (async) 0x77 Two A press inputs in a row, starting one beat after the start of the sub. (async) 0x78 Hip shake SFX two times in a row; uses sub 0x60. (async) 0x79 Two full hip shake cues in a row; combines the previous four subs. (async) 0x7A A triple hip shake animation, for foreground frogs; uses subs 0x57 and 0x59. (async) 0x7B Two hip shake animations, followed by a triple hip shake animation, for background frogs; uses subs 0x58 and 0x5A. (async) 0x7C Two A press inputs one beat apart, followed by three A press inputs a half-beat apart, starting one beat after the start of the sub. Also includes player’s “yeah-yeah-yeah” voice clips. (async) 0x7D “Yeah-yeah-yeah” voice clips for both the orange frog and background frogs; uses sub 0x60, and subs 0x61 and 0x68. (async) 0x7E A full “yeah-yeah-yeah” cue; combines subs 0x7A through 0x7D, as well as 0x5F. (async) 0x7F “Yeah-yeah-yeah” voice clips for both the orange frog and background frogs; mouths stay open throughout. (async) 0x80 A full “yeah-yeah-yeah” cue; combines subs 0x7A, 0x7B, 0x7C, 0x7F, and 0x5F (mouths stay open throughout). (sync; unused) 0x81-0x84 Identical to 0x7A-0x7D, except there is a preceding hip shake. (async) 0x85 A full “yeah-yeah-yeah” cue, with a preceding hip shake; combines the previous four subs, as well as 0x5F. 0x86 Identical to 0x7F, except there is a preceding hip shake. (async) 0x87 Identical to 0x80, except there is a preceding hip shake. (async) 0x88-0x8E Identical to 0x7A-0x80, except there is no preceding hip shake. (async) 0x8F One hip shake animation, followed by a “ya-hoo!” pattern animation, for foreground frogs; uses subs 0x57 and 0x59. (async) 0x90 Three hip shake animations, followed by a “ya-hoo!” pattern animation, for background frogs; uses subs 0x58 and 0x5A. (async) 0x91 Three A press inputs one beat apart, followed by A press inputs in a “ya-hoo!” pattern (two a half-beat apart), starting one beat after the start of the sub. Also includes the player’s “Ya-hoo!” voice clips. (async) 0x92 One hip shake SFX, followed by “Ya-hoo!” voice clips for both the orange frog and background frogs; uses sub 0x60, and subs 0x62, 0x63, 0x69, and 0x6A. (async) 0x93 A full “Ya-hoo!” cue; combines sub 0x8F-0x92, as well as 0x5F. (async) 0x94 One hip shake SFX, followed by “Ya-hoo!” voice clips for both the orange frog and background frogs. Mouths stay open longer; uses sub 0x60, and subs 0x62, 0x64, 0x69, and 0x6B. (async) 0x95 Identical to 0x7F, except there is a 1 beat delay. (async) A full “Ya-hoo!” cue. Mouths stay open longer; combines subs 0x8F-0x91, 0x94, and 0x5F. (async) 0x96-0x99 Identical to 0x88-0x8B, except there is no preceding hip shake. (async) 0x9A A full “Ya-hoo!” cue without preceding hip shake; combines the previous four subs, as well as 0x5F. (async) 0x9B Identical to 0x8C, except there is no preceding hip shake. (async)
4.21. Frog Hop (0x14) 57 Tickompiler Documentation, Release 1.9.0
0x9C A full “Ya-hoo!” cue without preceding hip shake. Mouths stay open longer; combines subs 0x8F-0x91, 0x94, and 0x5F. (async) 0x9D Three hip shake animations in a row for foreground frogs, starting one beat after the start of the sub. Uses sub 0x57. (async) 0x9E Three hip shake animations in a row for background frogs, starting one beat after the start of the sub. Uses sub 0x58. (async) 0x9F Three A press inputs in a row one beat apart, starting two beats after the start of the sub. (async) 0xA0 Three hip shake sound effects in a row, starting one beat after the start of the sub. Uses sub 0x60. (async) 0xA1 Three full hip shake cues, starting two beats after the start of the sub; combines the previous four subs. (async) 0xA2-0xA6 Identical to 0x96-0x9A, except there is only one hip shake instead of three. (async) 0xA7 A full spin animation for foreground frogs. Uses subs 0x5B and 0x5D. (async) 0xA8 Two hip shake animations, followed by a full spin animation for background frogs. Uses subs 0x5C and 0x5E. (async) 0xA9 Two A press inputs one beat after the start of the sub, followed by a B hold-and-release. Also includes player’s “Spin it, boys!” voice clips. (async) 0xAA “Spin it, boys!” voice clips for both the orange frog and background frogs; uses subs 0x66, 0x67, 0x6D and 0x6F. (async) 0xAB A full “Spin it, boys!” cue; combines the previous four subs, as well as 0x5F. (async) 0xAC “Spin it, boys!” voice clips for both the orange frog and background frogs; alternate mouth movement for background frogs. Uses subs 0x66, 0x67, 0x6D and 0x6E. (async) 0xAD A full “Spin it, boys!” cue; combines subs 0xA0-0xA3, 0xA5 and 0x5F. (sub; unused) 0xAE-0xB1 Identical to 0xA0-0xA3, except there is only one preceding hip shake. (async) 0xB2 A full “Spin it, boys!” cue with only one preceding hip shake; combines the previous four subs, as well as 0x5F. (async) 0xB3 Identical to 0xA5. (async) 0xB4 Identical to 0xA6, but with only one preceding hip shake. Combines subs 0xA7-0xA9, 0xAC and 0x5F. (async) 0xB5 “One, two, three, four!” count-in with mouth movements for the orange frog. (async)
4.22 Fan Club (0x15)
4.22.1 0x100 - Input
0x100
Cues an input for one half-beat after the operation, depending on type. Values for type are: • 0: A press. (can be omitted) • 1: Start holding A. • 2: Release A.
58 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.22.2 0x101-0x106 - Monkey Animations
0x101<1>
Beat animation for all monkeys.
0x102<1>
All monkeys put their hands up to clap.
0x102<2>
All monkeys put their hands up to clap while shaking.
0x103 pos
One monkey claps depending on pos.
0x103<1>
All monkeys clap.
0x104 pos
One monkey stops clapping depending on pos.
0x104<1>
All monkeys stop clapping.
0x105<1>
All monkeys start charging for a jump.
0x106<1>
All monkeys jump.
4.22.3 0x107-0x111 - Performer Animations
For the purposes of all operations in this category, performer indices are as follows: The singer is 0, left backup is 1, right backup is 2.
0x107i
Beat animation for the performer at index i.
0x108i
Beat animation with one hand raised.
0x109 flag, i
Hand twirl animation. If flag is 1, adds stars.
4.22. Fan Club (0x15) 59 Tickompiler Documentation, Release 1.9.0
0x10Ai
Clap animation.
0x10Bi
Stretch animation.
0x10Ci
Jump animation.
0x10Di
After-jump animation.
0x10E
Singer does “I suppose” animation.
0x10F
Singer does beat animation after “I suppose”.
0x110 i, dist, type
The performer at index i slides dist units to one direction, doing one of two animations determined by type (0 or 1). Never used for singer.
0x111 flag, i
Sets the performer at i to visible if flag is 1, invisible if 0.
4.22.4 0x112 - Lights
0x112
The lights flash.
0x112<1> flag
The stars (in Fan Club 2) start flashing if flag is 1, stop if 0.
0x112<2>
The lights (in Fan Club 2) flash in the first color scheme.
0x112<3>
The lights (in Fan Club 2) flash in the second color scheme.
4.22.5 0x114 - Background control
60 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x114 flag
Background darkens if flag is 1, lightens if 0.
4.22.6 0x116 - Confetti
0x116
Confetti pops out.
4.22.7 List of subs
All the following are asynchronous subroutines. 0x57 A full 4-clap cue, including animations and inputs. 0x58 A full “I suppose” cue, including animations and inputs. 0x59 A full “I suppose” cue; different monkey voice clip. 0x5A A full “I suppose” cue; different monkey voice clip. 0x5B A full “I suppose” cue; different monkey voice clip. 0x5C A full “I suppose” cue; different monkey voice clip. 0x5D A full “oh” cue, including animations, inputs, and voice clip. 0x5E Inputs for a 4-clap cue, starting one beat after the start of the sub. 0x5F Inputs for an “I suppose” cue. 0x60 Inputs for an “oh” cue. 0x61 Monkeys start clapping forever one after another (end of Fan Club 2).
4.23 Dog Ninja (0x16)
4.23.1 0x100 - Input/Throw Objects
0x100 time, obj1, obj2
Spawns objects, to be cut after time ticks. obj1 is the object coming from the right, obj2 from the left. Values for obj1 and obj2 are: • 0: Cucumber. • 1: Broccoli. • 2: Apple. • 3: Carrot. • 4: Potato. • 5: Bone. • 6: Yellow pepper.
4.23. Dog Ninja (0x16) 61 Tickompiler Documentation, Release 1.9.0
• 7: Tire. • 8: Frying pan. • 9: Game crash! • 0xA: Nothing.
4.23.2 0x101 - Beat Animation
0x101
Beat animation.
4.23.3 0x102 - Cut Everything!
0x102 flag
Shows the bird holding a sign saying “cut everything” if flag is 1, hides if 0.
4.24 Rhythm Rally (0x17)
Note: Units for arc height seem to be arbitrary. Arc height of a standard 1-beat bounce is 0x3E8 (1000), that of a 2-beat bounce is 0xBB8 (3000), and that of a half-beat bounce is 0x29E (670).
4.24.1 0x100 - Input
0x100 ???, height, time
The player will have an input after time ticks, after which the ball will bounce to the other side of the table over time ticks with an arc height of height. The first argument is 1 in a turbo rally, and 0 otherwise.
4.24.2 0x101 - Bounce Ball
0x101 type, height, time
The ball will bounce to a point determined by type over time ticks, with an arc height of height. Values for type are: • 1: The opponent’s paddle. • 2: The player’s side of the table. • 3: The player’s paddle. • 5: The opponent’s hand. (when serving)
4.24.3 0x102 - Player Performance
62 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x102
Sets the conditional variable to 1 if the player failed an input since the last 0x102<1>, and 0 otherwise.
4.24.4 0x104-0x107 - Paddler Animations
0x104i
A paddler corresponding to i does a beat animation. 0 is the opponent, 1 is the player.
0x105i
A paddler corresponding to i readies themselves to hit the ball.
0x106i
A paddler corresponding to i hits the ball.
0x107i
A paddler corresponding to i throws their arms up in victory.
4.24.5 List of subs
All the following are asynchronous subroutines. 0x56 A single regular, 1-beat rally. 0x57 A single regular, 2-beat rally. 0x58 A single regular, half-beat rally. (turbo rally) 0x59 A single half-beat rally, where the player hits the ball as though it were a 1-beat rally. (fast rally) 0x5A Fast rally cue sound, two beats after the start of the sub. 0x5B Turbo rally cue sound.
4.25 Fillbots (0x18)
4.25.1 0x100 - Input/Fill Robot
0x100 len
Sets up a full robot cue, including the inputs for holding and releasing A, 4 beats after the operation. Values for len are: • 0: Small Fillbot • 4: Normal Fillbot • 7: Large Fillbot Note that, while these values seem to suggest some correlation to the amount of beats A needs to be held, the values between these result in, while strictly increasing, odd non-linearly increasing times.
4.25. Fillbots (0x18) 63 Tickompiler Documentation, Release 1.9.0
4.25.2 0x101 - Nozzle Control
0x101
Beat animation for nozzle.
0x101<2> type
Sets how low the nozzle goes if you press A. If type is 1 it will go down to small fillbot level, otherwise normal level.
4.25.3 0x102 - Robot Animations
0x102 type, end
Assembles a robot of type type after half a beat. If end is 1, the robot will go off-screen after the cue, if 0, it will stay in place. Values for type are: • 0: Normal fillbot. • 1: Large fillbot. • 2: Small fillbot.
0x102<1> type, end, time
Same as the previous, but the robot gets assembled after time ticks instead of a half beat.
0x102<3>
Beat animation for robot.
4.25.4 0x106 - Factory Screen?
0x106 bflyt
Takes the name of a .bflyt file and shows the factory screen (?).
4.25.5 List of subs
All the following are asynchronous subroutines. 0x5D Beat animations every beat for 4 beats. 0x5E Beat animations every beat for 8 beats. 0x5F Beat animations every beat for 16 beats. 0x60 Beat animations every beat for 32 beats. 0x61 Beat animations every beat for 64 beats. 0x62 Beat animations every beat for 128 beats. 0x63 Beat animations every beat, forever. 0x64-0x6B Robot cues with 0x100 values 0-7 in order, all stay stationary after cue. 0, 4, and 7 (0x64, 0x68, 0x6B) are their respective robot types, others are normal fillbots graphically.
64 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x6C-0x73 Same as previous 8, but they go off-screen after cue. Of note are 0x6C, 0x70, 0x73, the used patterns.
4.26 Shoot-‘Em-Up (0x19)
4.26.1 0x100 - Spawn Alien
0x100 pos, time
Spawns an alien at a position determined by pos, to be shot after time ticks. Values for pos are: • 0: Far top left corner. • 1: Far top right corner. • 2: Slightly down and right from 0. • 3: Slightly down and left from 1. • 4: Slightly down and right from 2. • 5: Slightly down and left from 3. • 6: Slightly to the left of the center. • 7: Slightly to the right of the center. • 8: In the center. • 9: Nearly identical to 6. • 0xA: Nearly identical to 7. • 0xB: Left and slightly down from the center. • 0xC: Right and slightly down from the center. • 0xD: Down and left from 0xB. • 0xE: Down and right from 0xC. • 0xF: Slightly down and left from 0xD. (far bottom left corner) • 0x10: Slightly down and right from 0xE. (far bottom right corner)
4.26.2 0x102 - Metal Doors
0x1021
Spawns metal doors for the opening of Shoot-‘Em-Up 1.
0x102
Reveals part of the game, removing one of the three doors. n is which door to open, starting from 0, in the order they are opened in Shoot-‘Em-Up 1.
4.26. Shoot-‘Em-Up (0x19) 65 Tickompiler Documentation, Release 1.9.0
4.26.3 0x103 - Screen Control
0x103
The screen that looks suspiciously like a Wii U GamePad is brought into view.
0x103<1>
The screen is hidden.
4.26.4 0x104 - Radio Lady Control
0x104
The radio lady pops up on the screen.
0x104<1>
The radio lady is removed from view.
0x104<2>
Beat animation for radio lady.
0x104<3> num
The radio lady opens her mouth num times, simulating speech.
4.26.5 List of subs
All the following are asynchronous subroutines. 0x56-0x66 An alien is spawned at position 0-0x10 respectively a half beat later, along with a sound effect, to be shot 4 beats after it appears. 0x67-0x77 An alien is spawned at position 0-0x10 respectively a half beat later, along with a sound effect, to be shot 8 beats after it appears.
4.27 Big Rock Finish (0x1A)
4.27.1 0x100 - Input
0x100 time, type
Cues up an A press input after time ticks. If type is 1, the player will also jump up (final strum in a cue).
4.27.2 0x102 - Guitar Sound Control
0x102 short, long
Sets the length of a short and long guitar strum sound in ticks.
66 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x102<1> pitch
Sets the pitch relative to the base guitar sound in semitones.
4.27.3 0x103 - Light Patterns
0x103 type
Causes a light overlay effect to occur. Values for type are: • 0: Nothing. • 1: Green swirl pattern. (as in BRF Patterns A, D, G) • 2: Blue dot pattern. (as in BRF Patterns B, E, H) • 3: Red pattern. (as in BRF Patterns C, F) • 4: White flash. (when strumming)
4.27.4 0x104 - Player Animations
0x104
Player beat animation.
0x104<1>
Player ready animation.
4.27.5 0x105 - Green Ghost Animations
0x105
Green ghost beat animation.
0x105<1>
Green ghost ready animation.
0x105<3>
Green ghost strum animation.
0x105<4>
Green ghost long strum animation.
4.27.6 0x106 - Drummer Animations
0x106
Bass drum animation.
4.27. Big Rock Finish (0x1A) 67 Tickompiler Documentation, Release 1.9.0
0x106<1>
Snare drum animation.
0x106<2>
Hi-hat animation.
0x106<3>
Cymbal animation.
0x106<4>
Right tom animation.
0x106<5>
Left tom animation.
4.27.7 List of subs
All the following are asynchronous subroutines unless noted otherwise. 0x57 Player and green ghost animations for a regular guitar cue. 0x58 Drummer animations for a regular guitar cue. 0x59 Audience animations for a regular guitar cue. 0x5A Inputs for a regular guitar cue. 0x5B A full regular guitar cue. 0x5C Player and green ghost animations for a swingy guitar cue. 0x5D Drummer animations for a swingy guitar cue. 0x5E Audience animations for a swingy guitar cue. 0x5F Inputs for a swingy guitar cue. 0x60 A full swingy guitar cue. 0x61 Player and green ghost animations for a double-speed guitar cue. 0x62 Drummer animations for a double-speed guitar cue. 0x63 Audience animations for a double-speed guitar cue. 0x64 Inputs for a double-speed guitar cue. 0x65 A full double-speed guitar cue. 0x66 (synchronous) Beat animations for the player, green ghost and audience. 0x67 Four beat animations for the player, green ghost and audience. 0x68 “Thank you” voice clip. 0x6B-0x72 Drum patterns for songs A-H respectively.
68 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.28 Munchy Monk (0x1B)
4.28.1 0x100 - Input
0x100 type
Sets an input. Values for type are: • 0: “One” dumpling, input is after 1 beat. • 1: Second dumpling in “Two” cue; input after 1.5 beats. • 2: Second and third dumplings in “Three” cue; input after a half beat.
4.28.2 0x102 - Spawn Dumpling
0x102 color
A dumpling is spawned into the player’s hand. Up to two can be stacked; stacking more than two will crash the game. Values for color are: • 0: White. • 1: Pink. • 2: Green.
4.28.3 0x103 - Hand Control
0x103 type
A hand is spawned to give the player dumplings. Values for type are: • 0: Hand used in “one” cue. • 1: Hand used in “two” cue. • 2: Hand used in “three” cue.
0x103<1>
Removes the hand.
4.28.4 0x104 - Slide Forward
0x104
The Monk slides forward to reveal a baby.
4.28.5 0x106 - Hands Forward
0x106
The Monk’s hands slide forward.
4.28. Munchy Monk (0x1B) 69 Tickompiler Documentation, Release 1.9.0
4.28.6 0x107 - Background Movement
0x107 flag, ???
The background starts moving if flag is 1. The second argument is unknown, possibly speed or time it takes to start moving at full speed.
4.28.7 List of subs
All the following are asynchronous subroutines. All are such that the first dumpling will be placed into the Monk’s hand one beat after the start of the sub. 0x56 “One, go!” cue. 0x57 “T-Two, go-go!” cue. 0x58 “Three, go go go!” cue.
4.29 Built to Scale (0x1C)
4.29.1 0x101 - Paddle Control
Note that when a paddle number is an argument, it’s the nth paddle from the left, starting at 0. -1 is off-screen to the left and to the right.
0x101 p1, p2
Used when a peg bounces from paddle p1 to p2. Does the hitting animation for the paddle.
0x101<1>
Paddles reset to their neutral state.
0x101<2>p
Paddle p charges up.
0x101<3>p
Paddle p stops charging up.
4.29.2 0x102 - Peg Control
0x102 p1, p2, ???, cflag, pflag
The peg bounces from p1 to p2 over one beat. If p2 is the player’s paddle, includes an input. The third argument is always 0. If cflag is 1, it indicates that the paddle at the destination is charged up and will shoot the peg. If pflag is 1, it indicates that a charge will occur on the next bounce.
0x102<1>p
Used on the beat the peg will be shot by paddle p. Presumably causes the peg to fall if the player missed.
70 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.29.3 0x103 - Widget Pair Control
0x103 slot, active
Sets widget pair slot slot to active (visible?) if active is 1, inactive if 0.
0x103<1> slot, i, pos
Moves widget half i (0 is closer to paddles, 1 is further away) of pair slot to position pos. Position 0 is the middle, negative is to the left, positive is to the right.
0x103<2> slot
Combines widget in slot if the player shoots them correctly the next beat.
0x103<4>
Sets the conditional variable to the number of slots which are active.
4.29.4 List of subs
All the following are asynchronous subroutines. (???) indicates a sub that doesn’t make sense within the rules of the rhythm game. 0x56 The charging sound. 0x57 Bounce from paddle 1 to 2 to 3 to off-screen. 0x58 Bounce from off-screen to 3 to 2 to 1 to 0. 0x59 Bounce from 0 to 1 to 2 to 3 to 2. (unused) 0x5A Bounce from 2 to 1 to 0 to 1 to 2. (unused) 0x5B Bounce from 2 to 3 to 2 to 1 to 0. (unused) 0x5C Bounce from 3 to 2 to 1 to 0 to 1. 0x5D Bounce from 1 to 2 to 3 to 2 to 1. (unused) 0x5E Bounce from 1 to 0 to 1 to 2 to 3. (unused) 0x5F Bounce from 0 to 1 to 2 to 3, then shoot with 2. 0x60 Bounce from 2 to 1 to 0 to 1, then shoot with 2. (unused) 0x61 Bounce from 2 to 3 to 2 to 1, then shoot with 0. (???, unused) 0x62 Bounce from 3 to 2 to 1 to 0, then shoot with 1. (???, unused) 0x63 Bounce from 1 to 2 to 3 to 2, then shoot with 1. (???, unused) 0x64 Bounce from 1 to 0 to 1 to 2, then shoot with 3. (???, unused) 0x65 Bounce from 0 to 1 to 2 to 3, then start preparing for a charge at 2. (???, unused) 0x66 Bounce from 2 to 1 to 0 to 1, then start preparing for a charge at 2. (???, unused) 0x67 Bounce from 2 to 3 to 2 to 1, then start preparing for a charge at 0. (???, unused) 0x68 Bounce from 3 to 2 to 1 to 0, then start preparing for a charge at 1. (unused) 0x69 Bounce from 1 to 2 to 3 to 2, then start preparing for a charge at 1. (???, unused)
4.29. Built to Scale (0x1C) 71 Tickompiler Documentation, Release 1.9.0
0x6A Bounce from 1 to 0 to 1 to 2, then start preparing for a charge at 3. (unused) 0x6B Paddle 0 stops charging, and the peg falls if not hit. (???, unused) 0x6C Paddle 2 stops charging, and the peg falls if not hit. 0x6D Paddle 3 stops charging, and the peg falls if not hit. (???, unused) 0x6E Paddle 1 stops charging, and the peg falls if not hit. (???, unused) 0x6F Bounce from 0 to 1 to shoot with 1. (???, unused) 0x70 Bounce from 2 to 1 to shoot with 1. (???, unused) 0x71 Bounce from 2 to 3 to shoot with 3. (???, unused) 0x72 Bounce from 3 to 2 to shoot with 2. (unused) 0x73 Bounce from 1 to 2 to shoot with 2. (unused) 0x74 Bounce from 1 to 0 to shoot with 0. (???, unused) 0x75 Bounce from 0 to 1, then shoot with 2. 0x76 Bounce from 2 to 1, then shoot with 0. (???, unused) 0x77 Bounce from 2 to 3, then shoot with 2. (unused) 0x78 Bounce from 3 to 2, then shoot with 1. (???, unused) 0x79 Bounce from 1 to 2, then shoot with 3. (???, unused) 0x7A Bounce from 1 to 0, then shoot with 1. (???, unused) 0x7B Bounce from 0 to 1 to 2, then shoot with 3. (???, unused) 0x7C Bounce from 2 to 1 to 0, then shoot with 1. (???, unused) 0x7D Bounce from 2 to 3 to 2, then shoot with 1. (???, unused) 0x7E Bounce from 3 to 2 to 1, then shoot with 0. (???, unused) 0x7F Bounce from 1 to 2 to 3, then shoot with 2. 0x80 Bounce from 1 to 0 to 1, then shoot with 2. (unused) 0x81-0x84 Spawn widget halves in slots 0-3 respectively, starting 6 beats away from the middle, and move them every beat. 0x85-0x88 Spawn widget halves in slots 0-3 respectively, starting 5 beats away from the middle, and move them every beat. (unused) 0x89-0x8C Spawn widget halves in slots 0-3 respectively, starting 4 beats away from the middle, and move them every beat. (unused) 0x8D-0x90 Spawn widget halves in slots 0-3 respectively, starting 3 beats away from the middle, and move them every beat. (unused) 0x91-0x94 Spawn widget halves in slots 0-3 respectively, starting 2 beats away from the middle, and move them every beat. (unused) 0x95-0x98 Spawn widget halves in slots 0-3 respectively, starting at the middle, and move them every beat. (unused) 0x99-0x9C Identical to 0x81-0x84, but the widget halves move every half beat. (unused) 0x9D-0xA0 Identical to 0x81-0x84, but the widget halves move every quarter beat. (unused) 0xA1-0xA4 Identical to 0x81-0x84, but the widget halves move every eighth beat. (unused) 0xA5 0x58 followed by 0x75 (off-screen -> 3 -> 2 -> 1 -> 0 -> 1 -> shoot)
72 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0xA6 0x5C followed by 0x7F (3 -> 2 -> 1 -> 0 -> 1 -> 2 -> 3 -> shoot), then from off-screen into 0x5F (off-screen -> 0 -> 1 -> 2 -> 3 -> shoot), then spawn a peg from off-screen onto paddle 3. (this is the entire pattern that is repeated in Built to Scale.) 0xA7 Identical to 0xA6, but without spawning the next peg.
4.30 Air Rally (0x1D)
4.30.1 0x100 - Input
0x100
Cues an A press input. Time depends on arc time.
4.30.2 0x101 - Plane Positions
0x101 pos, flag
The player’s plane’s position becomes pos. If flag is 1, this will be instant, otherwise it’ll be smooth. Known values for pos are: • 0: Behind camera. • 1: Regular position.
0x101<1> pos, flag
Forthington’s plane’s position becomes pos. If flag is 1, this will be instant, otherwise smooth. Known values for pos are: • 0: Behind camera. • 2: Regular position. • 3: Further away from camera. • 4: Yet further away from camera. • 5: Very far away from camera.
4.30.3 0x102 - Shuttle Respawn
0x102
Respawns a shuttle at Forthington’s racket if an input was missed.
4.30.4 0x103 - Hit Shuttle
0x103
Forthington hits the shuttle to Baxter.
4.30. Air Rally (0x1D) 73 Tickompiler Documentation, Release 1.9.0
4.30.5 0x104 & 0x105 - Catch Shuttle
0x104 0x105
Forthington catches the shuttle. Seems to work only when both are present.
4.30.6 0x107 - Cloud Speed
0x107
Sets the speed of clouds rushing by, as a percentage of the regular speed in Air Rally 1.
4.30.7 0x109 - Color Overlay
0x109
Sets the color overlay for an element determined by type to the color determined by the given RGB values. Values for type are: • 0: Background • 1: Clouds • 2: Baxter, Forthington, and the shuttle • 3: Unknown
4.30.8 0x10A - Colors over Time
0x10A
Applies the most recent 0x109 changes to every type of element over time ticks.
4.30.9 0x10B - Set Arc Time
0x10B time1, time2
Sets the time for the shuttle to go from Forthington to Baxter to time1 and the time for the shuttle to go from Baxter to Forthington to time2. Affects inputs.
4.30.10 0x10E - Forthington Mouth Movement
0x10E<2>
Forthington moves his mouth.
74 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.30.11 List of subs
All the following are asynchronous unless otherwise noted. 0x56 Forthington speaks for a while. 0x57 Input and animation for a regular hit. 0x58 Input and animation for two regular hits. 0x59 Input and animation for a high hit. 0x5A Mouth movement for “ba-bum bum bum” 0x5B Identical to 0x5A? SFX added? 0x5C Mouth movement for “Two three four!” 0x5D Identical to 0x5C? SFX added? 0x5E Identical to 0x57. 0x5F A regular hit with “ba-bum bum bum” 0x60 A high hit with “ba-bum bum bum” 0x61 A high hit with “Two three four!” 0x62 A high hit. 0x63 A high hit that doesn’t respawn the shuttle. 0x64 A high hit that doesn’t respawn the shuttle. The shuttle returns to Forthington in one beat instead of two. 0x65 Removes any color overlay (makes it white). (sync) 0x66 Adds an “evening” overlay (orange; characters are black). (sync) 0x67 Adds a dark overlay. (sync) 0x68 “evening” overlay, but without characters being silhouettes. (sync)
4.31 Exhibition Match (0x1E)
4.31.1 0x100 - Spawn Ball/Input
0x100 time
Spawns a ball to be hit after time ticks. time is usually 0x20 due to the timing of the monkey’s throw animation.
4.31.2 0x101 - Slugger Animations
0x101
Beat animation for slugger.
0x101<1>
Slugger tenses up in preparation for a hit.
4.31. Exhibition Match (0x1E) 75 Tickompiler Documentation, Release 1.9.0
0x101<2> type
Post-pitch animation. Values for type are: • 0: Look at the camera. • 1: Face the camera. (This is probably not intended for mid-pitch) • 2: Sniff.
4.31.3 0x102 - Pitcher Animations
0x102
Beat animation for pitcher.
0x102<1>
Wind-up animation.
0x102<2>
Throw animation.
4.31.4 0x103 - Monkey Animations
0x103
Beat animation for monkey.
0x103<1>
Throw animation.
4.31.5 0x104 - Curtain
0x104<2>
Hide curtain.
4.31.6 0x105 - Slugger Swinging Animation
0x105 type
Sets the slugger’s swinging animation. Values for type are: • 0: Default swinging animation. • 1: Spinning animation.
76 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.31.7 0x108 - Zoom
0x108 zoom, time
Sets the zoom to zoom over time ticks. Default zoom value is -64.
0x108<1> zoom, time
Adds zoom to the zoom level over time ticks.
4.31.8 0x10B - Flash Lights
0x10B
Flashes the lights (only visible when very zoomed out; most zoomed-out view used is 0x139C).
4.31.9 List of subs
All the following are asynchronous. 0x56 Four beat animations in a row for all characters. 0x57 Two beat animations, followed by a pitching animation. 0x58 Regular throwing cue, from the moment the pitcher throws. 0x59 Same as 0x58, but the slugger looks at the camera mid-pitch. 0x5A Same as 0x58, but the slugger faces the camera mid-pitch. 0x5B Same as 0x58, but the slugger sniffs mid-pitch. 0x5C Nothing at all. 0x5D Unknown. 0x5E Waits 8 beats, then zooms camera in 4 times before resetting the zoom. 0x5F Waits 8 beats, then zooms camera in 3 times before resetting the zoom. 0x60 Waits 8 beats, then zooms camera in slowly before resetting the zoom. 0x61 Waits 8 beats, then zooms camera in twice before resetting the zoom. 0x62 Waits 8 beats, then zooms camera in sharply once, then slowly, before resetting the zoom. 0x63 Waits 8 beats, then zooms camera out very far before resetting the zoom. 0x64 Identical to 0x5E, the zoom is slightly more intense. 0x65 Identical to 0x5F, the zoom is slightly more intense. 0x66 Identical to 0x60, the zoom is slightly more intense. 0x67 Identical to 0x61, the zoom is slightly more intense. 0x68 Identical to 0x62, the zoom is slightly more intense.
4.31. Exhibition Match (0x1E) 77 Tickompiler Documentation, Release 1.9.0
4.32 Flockstep (0x1F)
4.32.1 0x100 - Input
0x100 type, time
Cues up an input based on type in time ticks. Values for type are: • 0: Press A. • 1: Start holding B. • 2: Stop holding B. • 4: Stop holding A. (When the other birds lift their feet; input not mandatory, but includes bird movement.)
4.32.2 0x102 - Bird Animations
0x102 ???, type
Does an animation for all birds. First argument is unknown, but seems to be 5 often. Values for type are: • 0: Step. • 1: Lift leg.
0x102<1> ???
All birds charge. Argument seems to always be 5.
0x102<2> ???
All birds jump. Argument seems to always be 5.
0x102<3> num
Set the amount of birds besides the four main ones. Birds will fly away or land to match the number specified.
0x102<5> num num new birds land.
4.32.3 0x104 - Beat Animation
0x1040
Beat animation for all birds.
4.32.4 0x107 - Color Variety
0x107 flag
Newly added birds can be only pink if flag is 0, all colors if 1.
78 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.32.5 0x108 - Earth Animation
0x108 view
Changes the view to one of the views from the Earth animations in Flockstep. Values for view are 0 through 5, and are in the order they appear in the game.
0x108<1>
Resets the view to normal.
4.32.6 0x109 - Earth In Eye
0x109
An image of the Earth appears in the eye of the player’s bird.
0x109<1>
Removes the image.
4.32.7 List of subs
All the following are asynchronous. 0x56 Count-in with cowbells. 0x57 Identical to 0x56. 0x58 Inputs for a step cue. 0x59 Inputs to start charging. 0x5A Inputs to jump. 0x5B Additional animations and camera movement for a step cue. 0x5C Additional animations and camera movement for a charge cue. 0x5D Additional animations and camera movement for a jump cue. 0x5E A full step cue. 0x5F A full charge cue. 0x60 A full jump cue.
4.33 Cheer Readers (0x20)
4.33.1 0x100 - Input
0x100 type, time, effect
Sets up a cue depending on type for after time ticks. effect adds some effects when the cue is hit successfully. Values for type are:
4.33. Cheer Readers (0x20) 79 Tickompiler Documentation, Release 1.9.0
• 2: Start holding B. • 3: Release B. • 5: Press A. Values for effect are: • 0: Nothing. • 1: Books gleam and the player’s cheer reader says “Yay!”. • 3: Books gleam and all cheer readers say “Yay!”. • 4: Special sound effect. Found in the “Rah-rah sis boom bah-BOOM!” cue.
4.33.2 0x101 - Flip Book
0x101 x, y
The cheer reader in the x th column and the y th row (from the top left, starting at 0) flips her book. Can also be used for the player.
4.33.3 0x102 - Spin Book
0x102 x, y
The specified cheer reader starts spinning her book.
0x102<1>
All cheer readers except the player start spinning their books.
4.33.4 0x103 - Open Book
0x103 x, y
The specified cheer reader stops spinning her book and opens it.
0x103<1>
All cheer readers except the player stop spinning their books and open them.
4.33.5 0x104 - Book Flipping Sound
0x104 0x104<1> 0x104<2>
The above all seem to produce the same book flipping sound effect. Different special values are used in different cues, but there seems not to be a difference.
80 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.33.6 0x106 - Opened Book Image
0x106 type
Sets which image is to be created by the opened books at the end of a spin cue. Values for type, along with their appearances in the standard cellanim, are: • 0: Rhythm Tweezers onion. • 1: DJ Yellow and his student. • 2: Lockstep.
4.33.7 0x107 - Misc. Animations
0x107 type
Does one of several animations for all cheer readers. Values for type are: • 0: Beat animation. • 1: Unsure, possibly an animation “reset”.
4.33.8 0x109 - Mouth Movement
0x109
Handles mouth movement for the cheer readers. The argument is unknown, maybe how wide the mouth opens or how long it stays open? Values for type are: • 0: Only the player speaks. • 1: Only the other cheer readers speak. • 2: Everybody speaks.
4.33.9 List of subs
The following are all synchronous. 0x56 Clears the subtitles of the top row after 3.5 beats. 0x57 Clears the subtitles of the bottom row after 3.5 beats. 0x58 “One! Two! Three!” subtitles on the top row. 0x59 “One! Two! Three!” subtitles on the bottom row. 0x5A “It’s up to you!” subtitles on the top row. 0x5B “It’s up to you!” subtitles on the bottom row. 0x5C “Rah-rah sis boom bah-BOOM!” subtitles on the top row. 0x5D “Rah-rah sis boom bah-BOOM!” subtitles on the bottom row. 0x5E “Let’s go read a buncha books!” subtitles on the top row. 0x5F “Let’s go read a buncha books!” subtitles on the bottom row.
4.33. Cheer Readers (0x20) 81 Tickompiler Documentation, Release 1.9.0
0x60 “OK, it’s on!” subtitles on the top row. 0x61 “OK, it’s on!” subtitles on the bottom row. 0x62 “One! Two! Three!” cue. 0x63 “It’s up to you!” cue. 0x64 “It’s up to you!” cue, with a “Yay!”. (unused) 0x65 “It’s up to you!” cue, with an unused effect. (unused) 0x66 “It’s up to you!” cue, with a “Yay!” by all cheer readers. (unused) 0x67 “Rah-rah sis boom bah-BOOM!” cue, with a sound effect. 0x68-0x6B “Let’s go read a bunch of books!” cues, with effects like in 0x63-0x66. 0x6C “OK, it’s on!” cue. 0x6D “OK, it’s on!” cue, but the top left three cheer readers don’t open their books. (used in conjunction with “Let’s go. . . ”) 0x6E Mouth movement for “One! Two! Three!”; only player. 0x6F Mouth movement for “One! Two! Three!”; only others. 0x70 Mouth movement for “One! Two! Three!”; everyone. 0x71-0x73 Mouth movements for “It’s up to you!”; variants as in 0x6E-0x70. 0x74-0x76 Mouth movements for “Rah-rah sis boom bah-BOOM!”; variants as above. 0x77-0x79 Mouth movements for “Let’s go read a buncha books!”; variants as above. 0x7A-0x7C Mouth movements for “OK, it’s on!”; variants as above. 0x7D-0x7F Single mouth movement; variants as above. (unused) 0x80 Misc. mouth movements for everyone but the player.
4.34 Double Date (0x21)
4.34.1 0x100 - Input/Ball
0x100
Spawns a ball to kick depending on type such that the first bounce is a beat later. Does not include sound effects. If jump is 1, the weasels will jump out of their hole. catch determines who or what will jump up to catch the ball in the background. The final argument advances the ball and input by time ticks, but it mantains the speed it would originally have. It normally stays at 0 and it’s only used for transitions in remixes. Values for type are: • 0: Soccer ball. (can be omitted) • 1: Basketball. • 2: Football. Values for catch are: • 0: Nothing. • 1: Football player. • 2: Two football players.
82 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
• 3: Martial artist. • 4: Basketball/volleyball player? • 5: Not sure what this is. • 6: Dog.
4.34.2 0x102-0x104 - Beat Animations
0x102
Beat animation for the player.
0x103
Beat animation for the girl.
0x104
Beat animation for the weasels.
4.34.3 List of subs
All the following are asynchronous. Note that these assume getrest 2 and getrest 3 are set to appropriate values that sum to half a beat. They are 0xE and 0xA respectively in the standard game. 0x56 Soccer ball cue. 0x57 Soccer ball cue, but the weasels jump up. 0x58 Basketball cue. 0x59 Basketball cue, but the weasels jump up. (unused) 0x5A Football cue. 0x5B-0x61 Football cue, but the weasels jump up. catch values of 0-6 respectively. (unused) 0x62-0x67 Identical to 0x5C-0x61.
4.35 Catch of the Day (0x22)
4.35.1 0x100 - Input
0x100 type, time
Sets an A press input for after time ticks. Values for type are: • 0: Quicknibble. • 1: Pausegill. • 2: Threefish.
4.35. Catch of the Day (0x22) 83 Tickompiler Documentation, Release 1.9.0
4.35.2 0x101 - Fish Animation
0x101 type
Makes a fish appear. Values for type are: • 0: Quicknibble. • 1: Pausegill. • 2: Threefish. • 3: Quicknibble, replaced by Threefish.
0x101<1> type
Does an animation for the fish. Values for type are: • 0: Touch hook (Quicknibble and Pausegill). • 1: Tongue up (Threefish). • 2: Tongue down (Threefish).
0x101<2>
The fish bites onto the hook before a cue.
4.35.3 0x102 - Scene Transition
0x102 type
A scene transition. Values for type are: • -1: Regular scene. • 0: Eel in foreground. • 1: Eel in background. • 2: School of fish in foreground.
4.35.4 List of subs
All the following are asynchronous. Note that these assume getrest 2 and getrest 3 are set to appropriate values that sum to half a beat. They will determine how long before the cue fish will bite onto the hook. They are 0xD and 0xB respectively in the standard game. 0x56 Quicknibble cue. 0x57 Pausegill cue. 0x58 Threefish cue. 0x59 Pausegill “And, go!” voice clip. To be called one beat after 0x57. 0x5A Threefish “One, two, three-go!” voice clip. To be called one beat after 0x58.
84 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.36 Micro-Row (0x23)
Note that not all operations are detailed as they are not well understood.
4.36.1 0x100 - Input
0x100 type, time
Sets an A press input for after time ticks. Values for type are: • 0: Regular swim cue. • 1: First press of a three-step. • 2: Second press of a three-step. • 3: Third press of a three-step.
4.36.2 0x101 - Trail Pattern
0x101 ptr, ???, ???
Sets the trail pattern (?) to the data at ptr. There is currently no way to create custom data for this, and the format is unknown. The Micro-Row 1 pattern is 0x101 0x530C98, 0x20, 0, Micro-Row 2 is 0x101 0x530B50, 0x20, 0.
4.36.3 0x102 - Microbe Animations
0x102 ptr, ???
Sets the pattern in which the microbes move to the data at ptr. Again, there is no way to create custom data. The Micro-Row 1 pattern is at 0x102 0x530C50, 9, Micro-Row 2 is 0x102 0x530D98, 9.
0x102<1>
All microbes step once.
0x102<2>
Beat animation for all microbes.
0x102<6>
All microbes do the double-step flash.
0x102<7>
All microbes prepare for a triple-step.
4.36. Micro-Row (0x23) 85 Tickompiler Documentation, Release 1.9.0
4.36.4 List of subs
All the following are asynchronous. 0x57 Regular one-step cue, with “GO!” voice clip. Input is 1.5 beats after start. 0x58 Regular one-step cue. 0x59 double-step cue. First input is 1.5 beats after start. 0x5A Triple-step cue. First input is 1.5 beats after start. 0x5B Cowbell count-in. 0x5C Another cowbell count-in.
4.37 Fork Lifter (0x24)
4.37.1 0x100 - Flick Food
0x100 type
Flicks a food item, to be stabbed after 2 beats. Values for type are: • 0: Pea. • 1: Burger top. • 2: Burger middle. • 3: Burger bottom.
4.37.2 0x101 - Ready Finger
0x101 type
Readies the finger with a specified food. Values are identical to those in 0x100.
4.37.3 0x102 - Eat Food
0x102
Food currently on the fork is eaten. If any of the food is a burger part, the special burger-eating sound effect will be used.
4.37.4 0x103 - New Food
0x103 type
Determines what food will be under the finger after the next flick. Values are identical to those in 0x100, with the addition of 4 meaning nothing.
86 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.38 Hole in One (0x25)
Note that the code snippet
0x102<2>1 0x104<1>1 0x101<1>2
Appears before all instances of Hole in One, and fixes various issues.
4.38.1 0x100 - Spawn Ball
0x100 type
Spawns a ball to be hit after 1 beat. Values for type are: • 0: Monkey throws the ball. • 1: Mandrill throws the ball. (the ball will only be visible after 1 beat)
4.38.2 0x102 - Player Animation
0x102
The player prepares to swing. Usually placed one beat before an input.
0x102<1>
Beat animation for the player.
4.38.3 0x103 - Monkey Animation
0x103
Monkey prepares to throw.
0x103<1>
Monkey throws the ball.
0x103<4>
Beat animation for Monkey.
4.38.4 0x104 - Mandrill Animation
0x104 type
Mandrill does a part of his throwing animation. Values for type are: • 0: Grabs the ball.
4.38. Hole in One (0x25) 87 Tickompiler Documentation, Release 1.9.0
• 1: “Hoo” part of the animation; Mandrill holds the ball close. • 2: Final part of the animation; Mandrill holds the ball behind him and throws.
0x104<2>
Beat animation for Mandrill.
4.38.5 List of subs
All the following are asynchronous. 0x56 Monkey cue. 0x57 Mandrill cue. Mandrill starts properly one beat after the start.
4.39 Flipper-Flop (0x26)
4.39.1 0x100 - Input
0x100 time, type
Sets an input for after time ticks. Values for type are: • 0: Press A • 1: Press B (flipper roll)
4.39.2 0x101 - Beat Animation
0x101
Beat animation for all seals.
4.39.3 0x102 - Raise Flipper
0x102 type, ???
All seals raise a flipper. If type is 1, they raise their left flipper, if 0 their right. Second argument always 0.
4.39.4 0x103 - Flip
0x103
All seals (except the player’s) flip (A press).
4.39.5 0x104 - Roll
88 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x104 ???
All seals (except the player’s) do a flipper roll.
4.39.6 0x105 - Captain Animations
0x105
The captain steps forward.
0x105<1>
Beat animation for the captain.
0x105<2> type
The captain moves his mouth. Values for type are: • 0: Mouth movements for “Attention, company!” • 1: Mouth movements for “That’s it!”
0x105<3> str1, str2
The captain does a beat animation according to the animation name at str1 and a face animation according to the animation name at str2, or none if 0.
4.39.7 List of subs
All the following are asynchronous. All flipper roll subs have the first input after 4 beats. 0x59 Count-in, including cowbells and “Attention, company!” 0x63 Flip cue (A press). The input is after 4 beats. 0x64 Triple-flip cue. Audio after 2 beats, input after 4 beats. 0x65 Flip cue, input after 2 beats. 0x66 Triple-flip cue, input after 2 beats, audio immediately. 0x67 Practice flipper roll. 0x68 Practice 2 flipper rolls. 0x69 One flipper roll. 0x6A One flipper roll without praise at the end. 0x6B Two flipper rolls. 0x6C Two flipper rolls without praise at the end. 0x6D Two flipper rolls without “One, two” voice clips. 0x6E Three flipper rolls. 0x6F Three flipper rolls without praise at the end. 0x70 Four flipper rolls.
4.39. Flipper-Flop (0x26) 89 Tickompiler Documentation, Release 1.9.0
0x71 Four flipper rolls without praise at the end and without the “Four” voice clip. 0x72-0x77 5-10 flipper rolls respectively.
4.40 Ringside (0x27)
4.40.1 0x100 - Input
0x100 type, time
Sets an input for after time ticks. Values for type are: • 0: Press A (“yes”). • 1: Press A (flex, first part). • 2: Press A (flex, second part). • 3: Press B (“Pose for the fans”). • 4: Press B (“Pose for the fans” with newspaper).
4.40.2 0x101 - View
0x101 type
Changes the view. Values for type are: • 0: View of wrestler and reporter, changes view instantly. • 1: Zoomed-out view with camera people, zooms smoothly.
4.40.3 0x102 - Camera People Animations
0x102
The camera people in the foreground bounce for a “pose for the fans” cue.
4.40.4 0x103 - Newspaper
0x103 time
A newspaper swirls in over time ticks.
0x103<1>
Hides the newspaper.
90 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.40.5 0x104 - Reporter Animations
0x104 type, ???
Mouth movements. The second argument is unknown, and is 6 for regular mouth movement in cues. Values for type are: • 0: “Wubbadubbadub is that true?” • 1: “Whoa, you go big guy!”
0x104<1>
The reporter raises her microphone.
0x104<2>
The reporter lowers her microphone.
4.40.6 0x106 - Beat Animation
0x106
The wrestler does a beat animation.
4.40.7 0x107 - Pose Ready Animation
0x107
The wrestler readies himself for a pose.
4.40.8 0x108 - Post-Pose Effect
0x108
Does an effect depending on player performance after a pose (fuzzy noise, radial background).
0x108<1>
Disables the effect.
4.40.9 0x10A - Rhythm Arena Animations
0x10A<1>
Beat animation.
0x10A<2> size1, size2, time
The Rhythm Arena overlay grows or shrinks in size from size1 to size2 (0x100 is regular size, sizes are propor- tional) over time ticks.
4.40. Ringside (0x27) 91 Tickompiler Documentation, Release 1.9.0
0x10A<3> alpha1, alpha2, time
The Rhythm Arena overlay’s opacity changes from alpha1 to alpha2 over time ticks. (max opacity is 0xFF)
0x10A<4>
The lights dim.
4.40.10 List of subs
All the following are asynchronous. 0x56 A standard “Wubbadubbadub is that true?” cue. Input is three beats after start. 0x57 A standard “Whoa, you go big guy!” cue. First input is 3.5 beats after start. 0x58 A “Whoa, you go big guy!” cue, however, there is no voice clip and the first input is 2.5 beats after start. 0x59 A standard “Pose for the fans!” cue. Input is three beats after start. 0x5A A “Pose for the fans!” cue as above, however, the view doesn’t cut back at the end. 0x5B A “Pose for the fans!” cue as above, however, the camera people bounce instead of a zoom occurring. 0x5C A “Pose for the fans!” cue, however, there is no voice clip and the first input is 2 beats after start. 0x5D-0x5F “Pose for the fans!” cues, variants as in 0x59-0x5B, with newspapers. 0x65 Beat animations for the wrestler 4 beats in a row. 0x66 Beat animations for the wrestler 172 beats in a row.
4.41 Karate Man (0x28)
4.41.1 0x100 - Spawn Object
0x100 type
Spawns an object that reaches the player in one beat and produces an input if necessary. Values for type are: • 0: A regular pot. • 1: A pot with a different sound effect (used for offbeat pots). • 2: Yellow lightbulb. • 3: Blue lightbulb. • 4: Alien. (unused) • 5: Rock. • 6: Soccer ball. • 7: Cooking pot. • 8: A rock, but Karate Joe briefly disappears (unimplemented animation?) • 9: First object in a combo. • 0xA: Second object in a combo.
92 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
• 0xB: Third object in a combo. • 0xC: Fourth object in a combo. • 0xD: Fifth object in a combo. • 0xE: Final object in a combo. • 0xF: Kick barrel.
4.41.2 0x102 - Performance-Dependant Animation
0x102
Starts recording player performance for an upcoming animation cue.
0x102<1> type
Does a happy animation according to type if the player hit everything since the last 0x102, or a sad animation otherwise. Values for type are: • 0: Smirk (used for kicks in Karate Man Kicks!) • 1: Blush and smile (used for combos in Karate Man Combos!)
4.41.3 0x104 - Karate Joe Animations
0x104 type
Does an animation for Karate Joe. Values for type are: • 0: Beat animation • 1: “Ready” animation • 2: Return to normal stance from ready stance.
4.41.4 0x105 - Text
0x105
Text appears in the background. Values for type are: • 0: “Combo!” • 1: “Grr!” • 2: “2!” (unused) • 3: “3!” • 4: “4!” (unused) • 5: “!!” • 0x63 (99): Clear text.
4.41. Karate Man (0x28) 93 Tickompiler Documentation, Release 1.9.0
4.41.5 0x109 - Freeze Animation
0x109
Karate Joe’s combo animation freezes at the end. (Used in Karate Man Combos!)
4.41.6 0x10B - Particle Effects
0x10B amount
Seems to set the amount of particles coming onto the screen in some amount of time (a beat?) to amount.
0x10B<1> speed, ???
Sets the horizontal speed of the particles to speed. Positive speed indicates rightward motion, negative indicates leftward. For reference, the fastest speed attained in Karate Man Combos! is -0x1400.
0x10B<3>
Sets the type of particles used to the yellow glowing particles that rise from the bottom of the screen, used in Karate Man Combos! and Senior, as opposed to the snow-like particles from Karate Man Kicks!.
4.41.7 0x10D - Allow/Restrict Combo
0x10D flag
If flag is 1, the player can’t combo, and if 0, the player can combo. Note that, by default, the player cannot combo.
4.41.8 0x111 - Background Effect
0x111
Does a background effect, like the flashing radial patterns in Karate Man and Karate Man Returns!.
0x111<1>
Disables background effect.
4.41.9 List of subs
All the following are asynchronous. 0x56 Objects appear for a combo. First input one beat after start. 0x57 5 beats after the start of the sub, does a happy or sad animation depending on player performance (0x102<1> 0) 0x58 Identical to 0x57, but the delay is 7 beats instead of 5. 0x59 Identical to 0x57, but uses 0x102<1> 1 instead. 0x5A Nothing.
94 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x5B A beat animation after 2 beats. 0x5C A ready animation after 2 beats. 0x5D A “stop ready” animation after 2 beats. 0x5E Two beat animations, a half beat apart, after 2 beats. 0x5F A beat animation after 2.5 beats. 0x60 A regular pot cue, with beat animation on the beat of input. Input 2 beats after start. 0x61 A rock cue, with beat animation on beat of input. Input 2 beats after start. 0x62 A soccer ball cue, with beat animation on beat of input. Input 2 beats after start. 0x63 A cooking pot cue, with beat animation on beat of input. Input 2 beats after start. 0x64 An off-beat pot cue. Input 2.5 beats after start. 0x65 Two pot cues a half-beat apart. First input 2 beats after start. 0x66 Off-beat rock cue, with beat animation on beat of input. Input 2.5 beats after start. 0x67 A zoom out, followed by a yellow lightbulb cue, with beat animation on beat of input. Calls 0x57 one beat after start. Input 2 beats after start. Zooms back in 6 beats after start. 0x68 Identical to 0x67, but does not zoom back in. 0x69 Identical to 0x68, but does not zoom out, and calls 0x58 instead of 0x57. 0x6A Identical to 0x67, but calls 0x59 instead. 0x6B Identical to 0x6A, but calls 0x59 a beat later. 0x6C Identical to 0x6A, but does not zoom back in. 0x6D-0x71 Identical to 0x67-0x6A and 0x6C respectively, but spawn a blue lightbulb instead. 0x72 Spawns the unused alien, with beat animation on beat of input. Input two beats after start. (unused) 0x73 Calls 0x56, and adds two beat animations one and two beats after the start. 0x74 A pot cue, but with an unknown addition that causes odd effects (Karate Joe keeps holding his arm out after punching). (unused) 0x75 Spawns a kick barrel. Input two beats after start. 0x76 Identical to 0x75, but with a zoom-in included after 4 beats. 0x77 The text “Combo!” appears for 3 beats. 0x78 The text “Grr!” appears for 3 beats. 0x79 The text “Grr!” appears for 1 beat. 0x7A The text “2!” appears for 4 beats. 0x7B The text “3!” appears for 4 beats. 0x7C The text “3!” appears for 2 beats. 0x7D The text “4!” appears for 4 beats. 0x7E The text “!!” appears for 1 beat. 0x7F “One two!” voice clip. 0x80 Nothing. 0x81 “Hit 3!” voice clip. Sounds after 0.5 beats.
4.41. Karate Man (0x28) 95 Tickompiler Documentation, Release 1.9.0
0x82 “Hit 4!” voice clip. Note that this is identical to “Hit 3!” in the English version, but distinct in the Japanese version. 0x84 “Punch-kick!” voice clip. 0x85 Nothing. 0x86 Identical to 0x7F. 0x87 0x7A is called after a half beat. 0x88 The “3!” text appears accompanied by the “Hit 3!” voice clip. Sounds after 1 beat. 0x89 Identical to 0x88, but the text appears for a shorter amount of time, and appears later. 0x8A Identical to 0x88, but the text appears later. 0x8B The “4!” text appears accompanied by the “Hit 4!” voice clip. Sounds after 1 beat. 0x8C The text “Combo!” appears after a half beat. 0x8D The text “!!” appears after a half beat. 0x8E The text “Grr!” appears after a half beat. 0x8F Calls 0x84 after a half beat.
4.42 Working Dough (0x29)
4.42.1 0x100 - Input/Spawn Ball
0x100 type, flash, time1, time2, time3
Spawns a ball to be hit on the left in time1 ticks, and on the right (by the player) in time2 ticks. If flash is 1, hitting it causes the background to flash. The final argument advances the ball and input by time3 ticks, but it mantains the speed it would originally have. It normally stays at 0 and it’s only used for transitions in remixes. Values for type are: • 0: Small ball • 1: Large ball • 2: Special large ball
4.42.2 0x101 - Open/Close Gates
0x101 type1, type2, 1, ???
Opens a gate specified by type1 and type2. These combined seem to specify which to open. Values are: • (0, 0): Leftmost gate. • (1, 0): Middle-right gate. • (1, 1): Middle-left gate. • (2, 1): Rightmost gate.
0x101 type1, type2,0
Closes a specified gate.
96 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.42.3 0x102 - Rocketship control
0x102<2> pos?, time
Move the rocketship to pos over time ticks. Units for pos are unknown, but the location it is moved to in-game is 0.
0x102<4>
Remove structure around rocketship.
4.42.4 0x103 - Background Guy Animations
0x103<1>
Background guy climbs up the ladder.
0x103<2>
Background guy handles the lever.
0x103<3>
Background guy walks away.
4.42.5 List of subs
Both are asynchronous. 0x56 Close gates on the right side after 1 beat. 0x57 Close gates on the left side after 1 beat.
4.43 Figure Fighter (0x2A)
4.43.1 0x100 - Input
0x100 type, time
Sets up an input for the player after time ticks. Values for type are: • 0: Jab • 1: First punch of a slow one-two. • 2: Second punch of a slow one-two. • 3: First punch of a fast one-two. • 4: Second punch of a fast one-two. • 5: First or second punch of a “go-go-go!” cue. • 6: Final punch of a “go-go-go!” cue.
4.43. Figure Fighter (0x2A) 97 Tickompiler Documentation, Release 1.9.0
4.43.2 0x101 - Muscle Doll Animations
0x101 ???
Does a beat animation for the Muscle Doll. The argument’s purpose is unknown, but it is always 0, 1, or 2.
0x101<1>
The Muscle Doll huddles up.
4.43.3 0x102 - Background
0x102
The background becomes black with a spotlight.
0x102<1>
The background returns to normal.
4.43.4 0x103 - Silhouettes
0x103 flag
If flag is 1, turns all foreground objects black. If 0, turns them back to normal.
4.43.5 0x104 - Fade to White
0x104
The screen fades to white.
0x104<1>
The screen fades from white.
4.43.6 0x106 - Text
0x106 str
Overlays white text on the screen corresponding to the text with the name pointed to by str.
0x106<1>
Hides the text.
4.43.7 0x107 - Black Bars
98 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x107 type
Adds black bars until the next input. Values for type are: • 0: Wide. • 1: Narrow. • 2: Very narrow.
4.43.8 0x109 - Knock down
0x109<2>
Makes the next “big punch” (end of combo) knock down the punching bag.
4.43.9 0x10B - Crowd Animations
0x10B<1> type
Does a crowd beat animation. Values for type are: • 0: Default animation. • 1: Some arms raised. • 2: Lots of arms raised.
4.43.10 0x10D - Lights
0x10D type
Turns on the specified spotlights. Values for type are: • 0: Overhead lights. • 1-6: Pairs of lights from outermost to innermost.
0x10D<1> type
Turns off the specified spotlights.
0x10D<2> type
Flashes the specified spotlights.
4.43.11 List of subs
All the following are asynchronous. 0x56 Calls 0x109<2> after one beat. 0x57 Calls 0x109<2> after two beats. 0x58 Calls 0x109<2> after four beats.
4.43. Figure Fighter (0x2A) 99 Tickompiler Documentation, Release 1.9.0
0x59 Narrowing black bars for slow “one two”. First black bars appear after 1 beat. 0x5A Identical(?) to 0x59. 0x5B Narrowing black bars for “go go go!”. First black bars appear after 1 beat. 0x5C A full “Jab” cue, including voice clip. Input is after 2 beats. 0x5D A slow “one two” cue, including voice clip, but not black bars. First input is after 3 beats. 0x5E A full fast “one two” cue, including voice clip. First input is after 2 beats. 0x5F A “go go go!” cue, including voice clip, but not black bars. First input is after 3 beats. 0x60 Combines 0x5D and 0x59 to create a full “one two” cue. 0x61 Identical to 0x60, but uses 0x5A instead of 0x59. 0x62 Combines 0x5F and 0x5B to create a full “go go go!” cue. 0x63 An “and” voice clip plays after one beat. Used before a “jab” cue. 0x64 A different “and” voice clip plays after one beat. Used before a “one-two” cue. 0x65 Beat animation after 1 beat. (uses 0x101 0). 0x66 Beat animation after 1 beat. (uses 0x101 1). 0x67 Beat animation after 1 beat. (uses 0x101 2). 0x68 Huddle up animation after three quarters of a beat.
4.44 Love Rap (0x2B)
4.44.1 0x100 - Input
0x100 type, time, variant
Sets an input depending on type for after time ticks. Each has two variants, which are differentiated by variant (0 or 1). Values for type are: • 0: “Into you”; variants are identical. • 1: “Crazy into you” • 2: “Fo’ sho’” • 3: “All about you”
4.44.2 0x101 - Speech/Rap Animations
0x101 1, type, ???
The left rapper raps a line, with speech bubble and animation included. Values for type are identical to above.
0x101 2, type, ???, variant
MC Adore raps a line, with speech bubble and animation included. type and variant are identical to those in 0x100.
100 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x101<1> which
Closes a speech bubble. If which is 1, closes the left rapper’s speech bubble, if 2, closes MC Adore’s speech bubble.
4.44.3 0x102 - Beat animations
0x102
Does a beat animation depending on type. Values for type are: • 0: Player • 1: Left rapper • 2: MC Adore • 3: The car
4.44.4 0x103 - Poses
0x103 type
Changes all rappers’ pose. Values for type are identical to those in 0x100.
4.44.5 List of subs
All the following are synchronous, unless otherwise noted. 0x6E 4 car beat animations in a row. (async) 0x6F 8 car beat animations in a row. (async; unused) 0x70 “Into you” cue (variant 0). Input 1 beat after start. 0x71 “Into you” cue (variant 0), leading into a “Crazy into you” (pose change). 0x72 “Into you” cue (variant 0), leading into a “Fo’ sho’” (pose change). 0x73 “Into you” cue (variant 0), leading into an “All about you” (pose change). 0x74-0x77 Identical to 0x70-0x73; uses variant 1 instead, but this is identical to variant 0. 0x78 “Crazy into you” cue (variant 0). Input 1.5 beats after start. 0x79 “Crazy into you” cue (variant 0), leading into an “Into you” (pose change). 0x7A “Crazy into you” cue (variant 0), leading into a “Fo’ sho’” (pose change). 0x7B “Crazy into you” cue (variant 0), leading into an “All about you” (pose change). 0x7C-0x7F Identical to 0x78-0x7B; uses variant 1 instead. 0x80 “Fo’ sho’” cue (MC Adore does variant 0, rappers do variant 1). Input 5/6 beat after start. 0x81 “Fo’ sho’” cue as above, leading into an “Into you”. 0x82 “Fo’ sho’” cue as above, leading into a “Crazy into you”. 0x83 “Fo’ sho’” cue as above, leading into an “All about you”. 0x84-0x87 Like 0x80-0x83; MC Adore does variant 1, rappers do variant 0. Input 2/3 beat after start.
4.44. Love Rap (0x2B) 101 Tickompiler Documentation, Release 1.9.0
0x88 “All about you” cue (MC Adore does variant 0, rappers do variant 1). Input 4/3 beat after start. 0x89 “All about you” cue as above, leading into an “Into you”. 0x8A “All about you” cue as above, leading into a “Crazy into you”. 0x8B “All about you” cue as above, leading into a “Fo’ sho’”. 0x8C-0x8F Like 0x88-0x8B; MC Adore does variant 1, rappers do variant 0. Input 7/6 beat after start. 0x90-0xAF Identical to 0x70-0x8F, but all delays and rests are doubled (twice as slow). (unused)
4.45 Bossa Nova (0x2C)
4.45.1 0x100 - Spawn Object
0x100 time, type
Spawns an object to be bounced away time ticks later. Values for type are: • 0: Ball (right) • 1: Cube (left)
4.45.2 0x101 - Cloud Control
0x101
The cloud dips down.
0x101<1>
The cloud turns, Bossa and Nova switching places.
4.45.3 0x103 - Voice Variants
0x103<1> variant
Sets the variant of the female voice to variant. There are two variants, 1 and 2.
0x103<2> variant
Sets the variant of the male voice to variant.
4.45.4 List of subs
All the following are asynchronous. 0x5E The regular Bossa Nova cue pattern, with male voice clips. (used for right side) Also changes the category for results screen accordingly. 0x5F The regular Bossa Nova cue pattern with male voice clips. The cloud turns at the end. Also changes the category for results screen accordingly.
102 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x60 The regular Bossa Nova cue pattern, with female voice clips. (used for left side) Also changes the category for results screen accordingly. 0x61 The regular Bossa Nova cue pattern with female voice clips. The cloud turns at the end. Also changes the category for results screen accordingly. 0x62-0x65 Identical to 0x5E-0x61, but they don’t change the category for the results screen. Probably use these in remixes.
4.46 Screwbot Factory (0x2D)
4.46.1 0x100 - Input
0x100 time, type, ???
Sets an input starting after time ticks. Third argument is unknown, but seems to always be 1. Values for type are: • 0: White robot (hold A one beat) • 1: Grey robot (hold A two beats)
4.46.2 0x101 - Raise Claw
0x101
Raises the player’s claw-arm-thingy.
4.46.3 0x102 - Crane Animations
0x102 type
The crane to the right grabs a robot (first part of the animation). Values for type are like in 0x100.
0x102<1> type
The crane to the right brings a robot up above the conveyor belt.
0x102<2> type
The crane drops a robot.
4.46.4 0x103 - Conveyor Control
0x103
Activates the conveyor belt.
4.46. Screwbot Factory (0x2D) 103 Tickompiler Documentation, Release 1.9.0
4.46.5 0x105 - Robot Animation
0x105<1> type
Does an animation for all completed robots. Values for type are: • 0: All robots return to their normal stance. • 1: All robots start doing beat animations rapidly. These are normally used one after another, 0 a quarter beat after 1.
4.46.6 0x106 - Spotlight (unused)
0x106 type
Enables the spotlights. Values for type are: • 0: Wide spotlights on both the crane and the arm. • 1: Narrower version of 0. • 2: Narrower version of 1; a bit of the background peeks out at the top, which is likely unintended. • 3: Narrower version of 2. • 4: Same as 0, but the spotlight on the crane is much wider and the one on the arm is much narrower. • 5: Opposite of 4. • 6: Four wide spotlights positioned in a “zig-zag” formation. • 7: 6, but flipped. • 8: Spotlight on the robot underneath the arm. • 9: Narrower version of 8; a bit of the background peeks out at the top. • 0xA: Narrower version of 9.
0x106<1>
Disables the spotlights.
4.46.7 List of subs
All the following are asynchronous. 0x56 White robot cue. Input at 4 beats after start. 0x57 White robot cue. Input 3 beats after start. (crane drops robot sooner) 0x58 Grey robot cue. Input 4 beats after start. 0x59 Grey robot cue. Input 3 beats after start. (crane drops robot sooner) 0x5A Beat animations for all robots for 8 beats.
104 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.47 Launch Party (0x2E)
4.47.1 0x100 - Countdown
0x100 type
Starts a countdown and sets up an input at the end. Values for type are: • 0: White Countdown (1. . . 0). Input 2 beats after start. • 1: Red Countdown (3, 2, 1, 0). Input 3 beats after start. • 2: Blue Countdown (5, 4-3-2-1-0). Input 2 beats after start. • 3: Green Countdown (7, 6543210). Input 2 beats after start.
4.47.2 0x101 - Counter Control (?; unused)
0x101 num, color
Displays the number num on the countdown. Values for color are: • 0: White • 1: Red • 2: Blue • 3: Green This is not used, as 0x100 incorporates these.
4.47.3 0x102 - Rocket Type
0x102 type
Changes the type of rocket that pops out of the box. Values for type correspond to above values.
0x102<1> type
Changes the type after the next rocket has launched.
4.47.4 0x103 - Rocket Appears
0x103
A rocket appears from the box.
4.47.5 0x105 - Background
0x105
The white background fades away.
4.47. Launch Party (0x2E) 105 Tickompiler Documentation, Release 1.9.0
0x105<1>
The white background is removed instantly.
0x105<2>
The box begins moving up in the background (in reality, the background is moving down).
4.47.6 0x106 - Hover Motion
0x1061
The box begins circling around, hovering in space.
4.47.7 0x107 - Stars
0x107 density
Sets the density of stars flying by. Unit of density is unknown.
0x107<1> speed
Sets the speed of stars flying by as a percentage of the initial speed seen in the rhythm game. (0x64 or 100 is this initial speed).
0x107<3> size
Sets the size of stars flying by. Units are unknown. Regular size is 0.
0x107<4>z
Sets how far stars can jump “forward” into the foreground from their background positions. Initial value in the rhythm game is 0x1E, and it is 0x190 after the first flurry of stars occurs.
0x107<6>0
Seems to stop stars from appearing at all.
4.47.8 0x109 - Spawn Flying Rocket
0x109
Spawns a flying rocket that will descend from above to x units (pixels?) to the right and y below the center. It will fly off again after time ticks. Values for type correspond to ones used in other operations. There seems to be a limit of four flying rockets. Trying to add any more will not do anything.
4.47.9 0x10A - Rocket Pitch
0x10A0
Reset pitch?
106 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x10A<1>
Increment pitch. Wraps back around after four incrementations (?). Normally called every beat.
4.47.10 0x10B - Box Engine
0x10B
Turns off the box’s engine.
0x10B<1>
Turns on the box’s engine; regular thrust.
0x10B<2>
Turns on the box’s engine; high thrust.
4.47.11 0x10E - Star Rings
0x10E flag
If flag is 1, enables light blue rings around stars, if 0, disables. Used in star flurries.
4.47.12 List of subs
All the following are asynchronous. 0x56 White countdown (using 0x101). Unused, as 0x100 incorporates this. 0x57 Red countdown (using 0x101). Unused, as 0x100 incorporates this. 0x58 Blue countdown (using 0x101). Unused, as 0x100 incorporates this. 0x59 Green countdown (using 0x101). Unused, as 0x100 incorporates this. 0x5A Pitch reset, followed by a pitch increment every beat forever. Usually called at the start of any instance of Launch Party.
4.48 Board Meeting (0x2F)
4.48.1 0x100 - Input
0x100 time, type
Sets up an input for after time ticks. Values for type are: • 0: Regular stop cue. • 1: Stop after “one-two-three” cue.
4.48. Board Meeting (0x2F) 107 Tickompiler Documentation, Release 1.9.0
4.48.2 0x101 - Individual Pig Animations
0x101 pos
The pos th pig from the left, starting at 0, does a beat animation.
0x101<1> pos
The specified pig readies itself to start spinning.
0x101<2> pos
The specified pig starts spinning.
0x101<3> pos
The specified pig stops spinning.
4.48.3 0x102 - Bulk Pig Animations
0x102 is identical to 0x101, except it does not have an argument and all pigs do the specified animation.
4.48.4 0x103 - Enable/Disable Beat Animations
0x103 flag
If flag is 0, disable beat animations for all pigs, if 1, enable them.
4.48.5 0x105 - Secretary Animations
0x105
Beat animation.
0x105<1> num
The secretary moves her mouth num times.
0x105<5>
“One-two-three” cue animation.
4.48.6 List of subs
All the following are asynchronous. 0x56 “One-two-three” voice clip and mouth movements, variant 1. 0x57 “One-two-three” voice clip and mouth movements, variant 2 (used at the end). 0x58 The pigs start spinning one after another, from left to right, two beats apart. 0x59 The pigs start spinning one after another, from left to right, one beat apart.
108 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x5A The pigs start spinning one after another, from left to right, one half beat apart. 0x5B The pigs start spinning one after another, from left to right, a third beat apart. 0x5C The pigs start spinning one after another, from left to right, a quarter beat apart. 0x5D The pigs start spinning simultaneously. 0x5E The pigs stop spinning one after another, from left to right, two beats apart. Includes input. 0x5F The pigs stop spinning one after another, from left to right, one beat apart. Includes input. 0x60 The pigs stop spinning one after another, from left to right, one half beat apart. Includes input. 0x61 The pigs stop spinning one after another, from left to right, a third beat apart. Includes input. 0x62 The pigs stop spinning one after another, from left to right, a quarter beat apart. Includes input. 0x63 “One-two-three” cue (variant 1), including input. 0x64 “One-two-three” cue (variant 2), including input.
4.49 Samurai Slice (0x30)
4.49.1 0x100 - Spawn Demon
0x100 type
Sets an input depending on type and spawns a demon. Values for type are: • 0: Regular demon • 1: Regular demon (different position; used for two demons in succession) • 2-8: Individual demons in the many-demon cue.
4.49.2 0x101 - Beat Animation
0x101
Beat animation for the samurai.
4.49.3 0x102 - Ready Animation
0x102
The samurai readies himself to strike.
4.49.4 0x104 - Story Overlay
0x1040
Reset story.
4.49. Samurai Slice (0x30) 109 Tickompiler Documentation, Release 1.9.0
0x104<1>
Advance to the next page of the story.
4.49.5 0x105 - Falling Particles
0x105
Snow starts falling down.
0x105<1>
Leaves start falling down.
0x105<2>
Particles stop falling down.
0x105<3> speed
Sets the horizontal speed of the falling particles. Negative speeds indicate leftward movement, while positive speeds indicate rightward movement.
4.49.6 0x106 - Rain
0x106 density
Sets the density of rainfall. Only powers of 2 are used for density in the rhythm game, and 8 is the highest density used.
4.49.7 0x107 - Thunder
0x107
If flag is 1, enables lightning striking each time an enemy is hit, if 0, disables.
4.49.8 0x108 - Portal
0x108 time
The demon portal opens over time ticks.
0x108<1> time
The demon portal closes over time ticks.
4.49.9 0x109 - Demon Size
110 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x109
Sets the size of new demons that appear. size starts at 0 and increases. The highest value used in the game is 3.
4.49.10 0x10A - Text
0x10A
Displays the intro text. Seems to be required to undarken the background, sadly.
0x10A<1>
Displays the “To be continued. . . ” (this is a lie) text.
4.49.11 0x10B - Samurai Enter/Leave
0x10B0
The samurai leaves (enters the house?)
0x10B<1>0
The samurai walks on screen.
4.49.12 0x10C - Pinwheel
0x10C
If flag is 1, demons have pinwheels. If 0, they don’t.
4.49.13 0x10D - Practice Demon
0x10D
A demon flies onto the screen from the top.
0x10D<1>
The demon flies into the house.
4.49.14 List of subs
All the following are asynchronous. 0x56 0x100 0. 0x57 0x100 1. 0x58 A whirlwind combo cue. First demon appears immediately.
4.49. Samurai Slice (0x30) 111 Tickompiler Documentation, Release 1.9.0
4.50 See-Saw (0x31)
4.50.1 0x100 - See-Saw Animations & Cues
0x1001
Start executing See-Saw cues, reading the positions from a location in memory as a sequence of bytes. More on this in 0x104 documentation.
0x100<2> index,0
One of the inspectors does a beat animation. Values for index are: • 0: Right • 1: Left
0x100<3> index, pos
Sets the position of the specified inspector to pos. Values for pos are: • 0: On the outside of the see-saw. • 1: On the inside of the see-saw. • 2: On the ground besides the see-saw.
4.50.2 0x102 - Enable/Disable High Jumps
0x102 flag
If flag is 1, enable high jumps (the inspectors will jump much higher than usual when on the outside). If 0, disable.
4.50.3 0x103 - Explode
0x103
The inspectors explode.
4.50.4 0x104 - Set Position Sequences
0x104 index, ptr
Sets the sequence of positions the specified inspector will have when doing cues to the one at ptr. This is a sequence of bytes, each representing a single jump. 0 means outside, 1 means inside, 2 means on the ground beside the see-saw, and 5 ends the sequence.
112 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.51 Packing Pests (0x32)
4.51.1 0x100 - Spawn Object/Input
0x100 type
Spawns an object, with corresponding input and sound effects. Input is 1 beat later. Values for type are: • 0: Candy • 1: Spider • 2: Paycheck
4.51.2 0x101 - Background Objects
0x101 idx, type
Spawns an object for the idx th background worker (from the front?) starting at 0. type is identical to the one in 0x100.
0x101<1> type
Spawns an object for all background workers.
0x101<2> time, type
Spawns an object of type type for all background workers, in random order and with random delays, over the next time ticks.
0x101<3> time
Spawns a spider or candy randomly for all background workers, in random order and with random delays, over the next time ticks.
4.51.3 0x102 - View Change
0x102<2> time
The view shifts to the initial view over time ticks.
0x102<4> time
The view shifts to view your worker’s head over time ticks.
4.51.4 0x103 - Clap
0x103
Your worker claps for a while. (used in practice)
4.51. Packing Pests (0x32) 113 Tickompiler Documentation, Release 1.9.0
4.51.5 0x104 - Background Workers
0x104
Spawns the background workers.
0x104<2> time
The background workers shift into view over time ticks.
4.51.6 0x105 - Worker Animations
0x105
Small beat/bob animation (used when a candy is spawned).
0x105<1>
Double up! animation.
4.51.7 0x106 - Curtain
0x106
Spawns the curtain.
0x106<1>
Removes the curtain by sliding to the left.
4.51.8 0x107 - Text
0x107 flag, type
If flag is 1, text appears above your worker according to type. If 0, text is removed. Values for type are: • 0: Double up! • 1: !!
4.51.9 List of subs
All the following are asynchronous. 0x56 “Double up!” appears for 2 beats. 0x57 “!!” appears for 1.5 beats. 0x58 A candy is spawned, with a beat animation. Input after 1 beat. 0x59 A spider is spawned, with a beat animation. Input after 1 beat. 0x5A A paycheck is spawned, with a beat animation. Input after 1 beat. (unused)
114 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x5B A regular pattern (candy then spider, 2 beats apart). First input after 1 beat. 0x5C A different pattern (candy then spider, 1.5 beats apart). First input after 1 beat. (unused) 0x5D The 0x5C pattern. First input after 1.5 beats. (unused) 0x5E A paycheck is spawned, with a beat animation. Input after 1 beat. 0x5F A full “Double up!” cue (candy, then spider after 1.5 beats, then another a beat later). First input after 1 beat. 0x60 “!!” appears after 3.5 beats, along with a sound effect. (unused) 0x61 A candy is spawned for all background workers. (unused) 0x62 A spider is spawned for all background workers. 0x63 A paycheck is spawned for all background workers. 0x64 A regular pattern is spawned for all background workers (candy then spider after 2 beats). 0x65 A “Double up!” pattern is spawned for all background workers. 0x66 The different pattern is spawned for all background workers (candy after a half beat, then spider after 1.5 beats).
4.52 Monkey Watch (0x33)
4.52.1 0x100 - Input
0x100 time
Cues up an input for after time ticks.
4.52.2 0x101 - Camera Movement
0x101<3> angle, time
The camera moves angle degrees around the clock in time ticks.
4.52.3 0x102 - View Change
0x102 type, flag
Changes the view. If flag is not 0, the change is instantaneous. Values for type are: • 0: Default view (following your monkey). • 1: Zoomed-out view of wrist.
4.52.4 0x103 - Watch Monkey Doors
0x103 pos, flag
The pos th monkey’s (from the top of the watch, starting from 0) door opens and the monkey comes out. If flag is 1, this is instantaneous.
4.52. Monkey Watch (0x33) 115 Tickompiler Documentation, Release 1.9.0
4.52.5 0x104 - Watch Monkeys
0x104<1>
The next monkey after your position on the clock stretches its arm out.
0x104<2>
The next monkey after your position on the clock stretches its arm back in preparation for a high-five.
0x104<3>n
The n th monkey after your position, starting at 0, becomes purple.
4.52.6 0x106 - Watch Beat Animation
0x106
Beat animation for the monkey head in the center of the watch.
4.52.7 0x107 - Balloon Control
The exact workings of this operation are as of yet unknown.
4.52.8 List of subs
All the following are asynchronous. 0x57 The 3rd and 4th monkeys from your position are purple (Starting at 0). 0x58 The 4th and 5th monkeys from your position are purple. 0x59 Sound effects for purple monkeys (“Oo-kii ooki-ki”) 0x5C Monkeys stretch back their arms every 2 beats forever.
4.53 Blue Bear (0x34)
4.53.1 0x100 - Input/Spawn Food
0x100 type, long, ???
Spawns a food to be eaten. If long is nonzero, a longer animation will be used for eating the food. The third argument is unknown, and is always zero. Values for type are: • 0: Donut (right side, 2 beats) • 1: Cake (left side, 3 beats)
116 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.53.2 0x101 - Bear Animations
0x101
The bear pushes on the left bag, ejecting a cake. (animation body_push_L in the cellanim)
0x101<1>
The bear pushes on the right bag, ejecting a donut. (animation body_push_R in the cellanim)
0x101<2>
The bear pushes on both bags. (animation body_push in the cellanim)
0x101<3>
The bear opens its mouth to catch food. (animation face_ready in the cellanim)
4.53.3 0x102 - Memory Animations
0x102 slot, name
Performs the animation with the name specified by name (as an ASCII string). It will fade in according to (hardcoded?) rules. A slot is also specified to allow two to run at the same time. Slot 0 is used for the right side, and 1 for the left. Animations used in the rhythm game with this operation are: • girl_in_R00, girl_in_R01 • girl_in_L00, girl_in_L01 • lostlove_inL, lostlove_inR
0x102<1> slot
The animation in slot fades out, according to the corresponding out animation (hardcoded?).
4.53.4 0x103 - Misc. Bear Animations
0x103 body, face
Does the animation specified by body as an ASCII string for the bear’s body (or all of the bear), and the animation specified by face (again as an ASCII string) for the bear’s face.
0x103<1>
Returns the body to the animation body_wait and the face to the animation face_wait (crying if necessary).
0x103<2> body, face
Same as 0x103 but returns to wait animations after the animations are done.
4.53. Blue Bear (0x34) 117 Tickompiler Documentation, Release 1.9.0
4.53.5 0x104 - Crying Flag
0x104f
If f is nonzero, the bear is now crying. Otherwise, it is not.
4.53.6 0x105 - Wind Animation
0x105
Does the wind animation from the cellanim.
4.53.7 0x106 - Dream Background Switch
0x106
Enables the epilogue background showing it was all a dream.
4.54 Animal Acrobat (0x35)
4.54.1 0x100 - Nothing
0x100
Do nothing.
4.54.2 0x101 - Intro Stuff
0x101
Beat animation.
0x101<1> time
Jump off the initial platform, to grab the first animal in time ticks.
4.54.3 0x102 - Pattern Loading
0x102 delay
Start executing a loaded byte array pattern, with the first animal being grabbed in delay ticks. This makes the animals start swinging.
0x102<1> location, size
Loads a byte array of size bytes, describing the game’s patterns. Every byte is an animal. Byte arrays can be created in Tickflow using the bytes command. Values for bytes are:
118 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
• 0: Single white monkey • 1: Elephant • 2: Multiple white monkeys • 3: Giraffe • 4: Final platform/end
4.54.4 0x103 - Spotlight
0x103f
If f is nonzero, turns spotlights on, otherwise turns them off.
4.54.5 0x104 - Ending Stuff
0x104
The monkey lands.
0x104<1>
The balloon takes off. (used in Jungle Gymnast only)
4.54.6 0x106 - Waterfall
0x106 ???
A waterfall appears. The argument is presumably some sort of distance or time argument, and is 0x21C in every instance.
4.54.7 0x107 - Vine
0x107 ???
A vine appears in the foreground. The argument is like in 106, but is 0x320.
4.54.8 0x108 - Particle Effects
0x108
Confetti appears.
0x108<1>
Leaves appear. (at the end of Jungle Gymnast)
4.54. Animal Acrobat (0x35) 119 Tickompiler Documentation, Release 1.9.0
4.55 Tongue Lashing (0x36)
4.55.1 0x100 - Yellow bug control
0x100
Spawns a yellow bug. Other 0x100 operations (except 0x100<1>) crash if this is not executed beforehand.
0x100<1> distO, distP1, distP2, sound
Sets the path for a yellow bug. distO determines the distance away from the tongue orthogonally that it starts at (in pixels?), distP1 is the distance to the chameleon, parallel to the tongue, at the start of its path, and distP2 is the distance parallel to the tongue at the end of its path. Note that negative parallel distances are to the front of the chameleon. sound determines the sound effect produced when eaten by the chameleon: 0x1001134 is the regular gulp sound, while 0x1001135 is a shorter gulp sound.
0x100<2> time
Sets the bug moving toward the chameleon, to be eaten after time ticks.
0x100<3>
Beat animation. Also applies to red bugs.
0x100<5>
Despawns the bug. Also applies to red bugs.
4.55.2 0x101 - Red bug control
0x101
Spawns a red bug.
0x101<1> distO1, distP1, distO2, distP2, distP3, sound
Sets the path for a red bug. distO1 determines the orthogonal distance at the start, distP1 the parallel distance at the start, distO2 the orthogonal distance when it stops and starts to feint, distP2 the parallel distance at that same point, and finally, distP3 is the parallel distance when eaten. sound is like in 0x100<1>.
0x101<2> time
Moves the bug to its stopping point over time ticks.
0x101<4> type
Does a feint. The final feint before it’s eaten has type of 1; maybe slightly more extreme feint?
0x101<5> time
Moves the bug from its stopping point to the tongue, to be eaten after time ticks.
0x101<6>
Stops the bug?
120 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
4.55.3 0x102 - Zoom
0x102<1>z
Sets the zoom to a factor of z/0x100
4.55.4 0x103 - Chameleon Position
0x103 x, y, tx, ty
Sets the position and target vector of the chameleon. (x, y) is the position of the chameleon, and (tx, ty) is the target position, which determines the direction the chameleon is facing. X values are in units to the right of the middle of the scene; Y values are in units down from the middle of the scene.
4.55.5 0x104 - Chameleon Animations
0x104
Beat animation.
0x104<1> start, end, time
The chameleon moves along its target axis. It starts at start away from its set position along the target axis, and ends at end. The movement takes time ticks.
0x104<2> start, end, time, delay
Identical to 0x104<1>, but only starts after delay ticks.
4.55.6 0x105 - Zoom+Position
0x105 z, x, y, tx, ty, delay
This is a combination of 0x102<1> and 0x103. It takes place after delay ticks.
4.55.7 0x106 - Chameleon Grin
0x106
Start recording player performance.
0x106<1>
If the player hasn’t missed, grin, else do a sad animation.
0x106<2>
Stop recording player performance.
4.55. Tongue Lashing (0x36) 121 Tickompiler Documentation, Release 1.9.0
4.55.8 0x107 - Perch
0x107<1> type, delay
Changes what the chameleon is perched on after delay ticks. Values for type are: • 0: Hand • 1: Foot
4.55.9 0x108 - Global Camera Control for whatever reason
0x108 x, y, zoom, delay
Sets the global camera pan to (x, y) and the global camera zoom to zoom after delay ticks. Note that this is distinct from the other zoom factor in 103/105.
4.55.10 0x109 - Update Effects
0x109
Updates location and size of visual effects to line up with the camera’s parameters. If not used, visual effects will retain the location and size they previously had after a camera change.
4.55.11 0x10A - The two guys
0x10A i, flag
Sets the specified guy visible if the flag is nonzero, and invisible otherwise. Values for i are: • 0: Nose guy • 1: Cool guy
0x10A<1> i, x, y
Sets the position of guy i to (x, y)
0x10A<2> i, x1, x2, time
Moves guy i horizontally from x1 to x2 over time ticks.
0x10A<3> 0x10A<4>
Parts of the animations after the bug is either eaten or missed. These should be placed 3/4 beats apart.
4.55.12 List of subs
Each is asynchronous. 0x56 Spawns a yellow bug and does its animations. The “three” sound effect happens two beats after the start, and thus the input is 4 beats after the start.
122 Chapter 4. Game Engines Tickompiler Documentation, Release 1.9.0
0x57 Spawns a red bug and does its animations. It starts feinting after 3 beats; the input is after 6 beats. 0x58 Identical to 0x57, but includes operations for the two guys’ animations.
4.56 Super Samurai Slice (0x37)
4.56.1 0x100 - Input Cue
0x100 type, time
Cues up an input for after time ticks. type determines both the type of input and the Samurai’s attack animation. Values for type are: • 0: Regular slice (press A) • 1: 1st in sequence of slices (press A) • 2: 2nd in sequence of slices (press A) • 3: 3rd in sequence of slices (press A) • 4: 4th in sequence of slices (press A) • 5: Block large enemy (start holding B) • 6: Slice large enemy (release B)
4.56.2 0x101 - Samurai Animations
0x101
Beat animation.
4.56. Super Samurai Slice (0x37) 123