Identified Instructions

10

Takes no parameters.

Return statement. NEEDS INVESTIGATION (to see what the differences are)



11

Type Description
Textsubname
Argumentsargs

Perform a subroutine. Pauses the current subroutine until it finishes.



12

Type Description
Intoffset
Inttime

Jump to another instruction and set the time value.



13

Type Description
Labeldestination
Inttime

Jump to a label at a time if the top of the stack = 0.



14

Type Description
Labeldestination
Inttime

Jump to a label at a time if the top of the stack != 0.



15

Type Description
Textsubname
Argumentsargs

Perform a subroutine as a coroutine. Does not pause execution of the current subroutine.



16

Type Description
Textsubname
IntID
Argumentsargs

Perform a subroutine as a background coroutine. May not be counted in ins_339's check.



17

Type Description
IntID

Terminates a background coroutine.



40

Type Description
Intsize

Sets up the stack. Size must be a multiple of 4.



42

Type Description
Intvalue

Push an integer onto the stack.



43

Type Description
Intvariable

Pops an integer off the stack.



44

Type Description
Flaotvalue

Push a float onto the stack.



45

Type Description
Flaotvariable

Pops a float off the stack.



50

Takes no parameters.

Pops two integers and adds them then pushes the result.



51

Takes no parameters.

Pops two floats and adds them then pushes the result.



52

Takes no parameters.

Pops two integers and subtracts them then pushes the result.



53

Takes no parameters.

Pops two floats and subtracts them then pushes the result.



54

Takes no parameters.

Pops two integers and multiplies them then pushes the result.



55

Takes no parameters.

Pops two floats and multiplies them then pushes the result.



56

Takes no parameters.

Pops two integers and divides them then pushes the result.



57

Takes no parameters.

Pops two floats and divides them then pushes the result.



58

Takes no parameters.

Pops two integers and takes the modulus then pushes the result.



59

Takes no parameters.

Pops two integers and checks if they are equal then pushes the result.



61

Takes no parameters.

Pops two integers and checks if they are not equal then pushes the result.



63

Takes no parameters.

Pops two integers and checks if the second to the top is less than the top then pushes the result.



64

Takes no parameters.

Pops two floats and checks if the second to the top is less than the top then pushes the result.



65

Takes no parameters.

Pops two integers and checks if the second to the top is less than or equal to the top then pushes the result.



67

Takes no parameters.

Pops two integers and checks if the second to the top is more than the top then pushes the result.



68

Takes no parameters.

Pops two floats and checks if the second to the top is more than the top then pushes the result.



69

Takes no parameters.

Pops two integers and checks if the second to the top is more than or equal to the top then pushes the result.



70

Takes no parameters.

Pops two floats and checks if the second to the top is more than or equal to the top then pushes the result.



71

Takes no parameters.

Pops an integer and performs the boolean NOT operation on it then pushes the result.



73

Takes no parameters.

Pops an integer and performs the boolean OR operation on it then pushes the result.



74

Takes no parameters.

Pops an integer and performs the boolean AND operation on it then pushes the result.



78

Type Description
Intvariable

Decrements the integer value of a variable or register.



81

Type Description
Flaotvariable
Flaotvariable
Flaotangle
Flaotradius

Calculate a position on the edge of a circle. Same as cos(angle) * radius and sin(angle) * radius. Angle is in radians.



83

Type Description
Intframes

Pause execution for the specified number of frames.



256

Type Description
Textsubname
Flaotx
Flaoty
Intlife
Intscore
Intdrop

"Create an object and attaches a subroutine to it. Drop: 1 = small power, 2 = point, 3 = large star, 4 = large power,\n5 = full point, 6 = full power, 7 = life, 8 = yellow orb, 9 = small star"



257

Type Description
Textsubname
Flaotx
Flaoty
Intlife
Intscore
Intdrop

"Create an object and attaches a subroutine to it. Drop: 1 = small power, 2 = point, 3 = large star, 4 = large power,\n5 = full point, 6 = full power, 7 = life, 8 = yellow orb, 9 = small star"



258

Type Description
Intanimindex

Sets which anm data to use from that point on. 0 is reserved for system graphics.



259

Type Description
IntID
Intanimation

Adds an animation to the object.



260

Type Description
Textsubname
Flaotx
Flaoty
Intlife
Intscore
Intdrop

"Create an object and attaches a subroutine to it. Drop: 1 = small power, 2 = point, 3 = large star, 4 = large power,\n5 = full point, 6 = full power, 7 = life, 8 = yellow orb, 9 = small star"



261

Type Description
Textsubname
Flaotx
Flaoty
Intlife
Intscore
Intdrop

"Create a mirrored object and attaches a subroutine to it. Drop: 1 = small power, 2 = point, 3 = large star,\n4 = large power, 5 = full point, 6 = full power, 7 = life, 8 = yellow orb, 9 = small star"



262

Type Description
IntID
Intanimation

Adds an animation to the object.



263

Type Description
IntID
Intanimation

"Creates an animation effect at the object's position. Useful system effects: 402 = White spiral, 404 = Pink spiral,\n409 = Absorb, 419 = Leaves effect"



264

Type Description
IntID
Intanimation

"Creates an animation effect at the a position. I'm not sure how to set which position to create it at. Useful system\neffects: 402 = White spiral, 404 = Pink spiral, 409 = Absorb, 419 = Leaves effect"



280

Type Description
Flaotx
Flaoty

Set the object's position.



281

Type Description
Intframes
Intmethod
Flaotx
Flaoty

"Move the object to a position with the chosen interpolation method. Method: 0 = Linear, 1 = Accelerate,\n4 = Decelerate, 9 = Smoothstep"



282

Type Description
Flaotx
Flaoty

"Seems to set the point of reference for the object's position and movement positions (This position will be treated as\n(0,0))."



284

Type Description
Flaotangle
Flaotspeed

Set the object's motion.



285

Type Description
Intframes
Intmethod
Flaotx
Flaoty

"Transition into another motion towards a position. Method: 0 = Linear, 1 = Accelerate, 4 = Decelerate,\n9 = Smoothstep"



286

Type Description
Flaotangle
Flaotacceleration

Sets gravity for the object. The object's motion will continually accelerate towards the given angle and acceleration.



290

Type Description
Flaotangle
Flaotangvel
Flaotradius
Flaotradvel

Move the object's graphic, hitbox, and creation position in circles or spirals around its movement position.



292

Type Description
Intframes
Intmethod
Flaotspeed

Move the object in a random direction. Method: 0 = Linear, 1 = Accelerate, 4 = Decelerate, 9 = Smoothstep



320

Type Description
Flaotwidth
Flaotheight

Set the object's hitbox.



321

Type Description
Flaotwidth
Flaotheight

Set the object's killbox (kills the player if they go within it).



322

Type Description
Intflag

"Sets some flags for the object. This still needs some studying. Useful flag sets: Boss/Midboss = 32,\nDead boss = 68, Stage main = 16, Dead Midboss = 8"



324

Type Description
IntID
Flaotcentery
Flaotwidth
Flaotheight

Sets the movement field for the object. For bosses. Prevents the object from moving out of the rectangle.



326

Takes no parameters.

Clears the object's drop list.



327

Type Description
Intdrop
Intcount

"Adds a drop to the object's drop list. Drop: 1 = small power, 2 = point, 3 = large star, 4 = large power, 5 = full point,\n6 = full power, 7 = life, 8 = yellow orb, 9 = small star"



328

Type Description
Flaotwidth
Flaotheight

Set the area to drop items around the object.



329

Takes no parameters.

Forces a drop of all the items in the drop list.



331

Type Description
Intlife

Sets the life for the object.



332

Type Description
Intmode

Sets boss mode on or off. 0 = On, -1 = Off



334

Type Description
IntID
Flaotlife
Inttime
Textsubname

Sets the life and time (in frames) for the spell card to complete at and go on to the next specified with subname.



335

Type Description
Intframes

Makes the boss object invulnerable for the given amount of time.



336

Type Description
Intsoundid

Plays a sound. Useful sound IDs: Player death = 4, Charge = 5, Card break = 18.



338

Type Description
IntID

Starts the dialog script with the given ID.



339

Takes no parameters.

Waits for coroutines to complete.



340

Takes no parameters.

Show the end stage information and prepare to move to the next stage.



341

Type Description
IntID
Textsubname

Might set the subroutine to go to if the spell conditions are not met. NEEDS INVESTIGATION



342

Type Description
IntID
Inttimer
Intunknown
Textspellname

Set up the spell card. The unknown argument is usually 1000000.



343

Takes no parameters.

Ends the spell card.



347

Type Description
IntID
Flaotlife
Intcolor

"Adds a section to the lifebar. To use any color, use this tool http://www.binaryconvert.com/convert_signed_int.html\nJust enter the hexidecimal form of the color (ARGB) and convert. You can also just use the Programmer part of\nWindows' Calculator with ""Dword"" checked. Useful colors: Spell = -24448, Nonspell = -1"



355

Type Description
Intvariable
Inteasyvalue
Intnormalvalue
Inthardvalue
Intlunaticvalue

Sets a variable to an int value based on the current difficulty setting.



356

Type Description
Flaotvariable
Flaoteasyvalue
Flaotnormalvalue
Flaothardvalue
Flaotlunaticvalue

Sets a variable to a float value based on the current difficulty setting.



357

Type Description
IntID
Inttimer
Intunknown
Textspellname

Set up the spell card. The unknown argument is usually 1000000.



359

Type Description
IntID
Inttimer
Intunknown
Textspellname

Set up the spell card. The unknown argument is usually 1000000.



360

Type Description
Intcount

Sets the remaining spell counter.



366

Type Description
Intinvulnerable
Intanimation

Sets the object's invulnerability to bombs. If 1, the animation will be changed to the given animation during a bomb.



400

Type Description
IntID

Create a shot definition.



401

Type Description
IntID

Fire a shot of the given definition.



402

Type Description
IntID
Intgraphic
Intcolor

Set the appearance of a shot definition. An in-depth list of these will be here soon.



403

Type Description
IntID
Flaotx
Flaoty

Set the fire offset position of a shot definition.



404

Type Description
IntID
Flaotangle
Flaotunknown

Set the fire angle of a shot definition. NEEDS INVESTIGATION



405

Type Description
IntID
Flaotspeed
Flaotminspeed

Set the fire speed of a shot definition. The speed won't go below minspeed when being slowed down with patterns.



406

Type Description
IntID
Intcount
Intlayers

"Set the count for a shot definition. More than 1 layer will cause the shot to be fired multiple times, each at a lower\nspeed than the last."



407

Type Description
IntID
Intaimmode

"Set the aim mode for a shot definition. Useful aim modes: Aimed = 0, Normal = 1, Aimed ring = 2, Ring = 3,\nAway (opposite of aimed) = 4, Gap ring (there's always a gap in the target direction) = 5, Random-direction 90 degree\nCCW arc = 6, Random-speed ring = 7, Random-speed 90 degree CCW arc = 8"



409

Type Description
'?'ID
IntpatternID
Intnowait
Intmethod
Intpatternarg0
Intpatternarg1
Flaotpatternarg2,\npatternarg3"

"Add a pattern to a shot definition. If nowait is 1 then the engine will not wait for the previous pattern to complete\nbefore starting this one. ZUN uses -999999 for null ints and -999999.0f for null floats. Useful patterns: \nMake next used duration = 4 (may make the next pattern use duration instead of delay)\nAccelerate in direction = 16 (arg0: duration, arg1: repeats, arg2: acceleration, arg3: angle [-999999.0f to use the\nshot's current direction])\nChange movement relative = 32 (arg0: duration, arg1: repeats, arg2: speedchange, arg3: angularchange)\nDecelerate = 64 (arg0: duration, arg1: repeats)\nChange movement relative to player = 128 (arg0: duration, arg1: repeats, arg2: speed, arg3: angleoffset)\nChange movement absolute = 256 (arg0: duration, arg1: repeats, arg2: speed, arg3: angle)\nBounce = 1024\nBounce except on bottom = 2048\nChange graphic = 16384 (arg0: graphic, arg1: appearance)\nDestroy = 65536\nWrap horizontally = 1048576 (arg0: unknown)\nNEEDS INVESTIGATION"



411

Type Description
IntID
Intfrozen

Seems to control whether shots are frozen or not. NEEDS INVESTIGATION



412

Type Description
Intgraphic
Intcolor
Flaotangle
Flaotspeed
Flaotunknown
Flaotlength
Intlifetime
Flaotwidth

Fires an additive "loose laser". NEEDS INVESTIGATION



413

Type Description
'?'ID
Intgraphic
Intcolor
Flaotangle
Flaotunknown
Flaotlength
Intdelay
Intappeartime,\nlifetime
Intfadetime
Flaotwidth
Intunknown"

Fires an additive laser. NEEDS INVESTIGATION



420

Type Description
Flaotdistance

Clears shots around the object, turning them into items.



421

Type Description
Flaotdistance

Clears shots around the object.



425

Type Description
'?'ID
Intcountafterdeath
Intlayersafterdeath
Intcurrentcount
Intcurrentlayers
Intunknown,\nunknown"

Seems to set shot counts for a shot definition based on some conditions. NEEDS INVESTIGATION



428

Type Description
Intgraphic
Intcolor
Flaotangle
Flaotspeed
Flaotunknown
Flaotlength
Intlifetime
Flaotwidth

Fires an alpha "loose laser". NEEDS INVESTIGATION



431

Type Description
'?'graphic
Intcolor
Flaotangle
Flaotspeed
Intunknown
Flaotlength
Flaotshrinklength,\nwidth"

Fires an additive loose laser that can shrink and disappear. NEEDS INVESTIGATION



433

Type Description
'?'graphic
Intcolor
Flaotangle
Flaotspeed
Intunknown
Flaotlength
Flaotshrinklength,\nwidth"

Fires an alpha loose laser that can shrink and disappear. NEEDS INVESTIGATION



435

Type Description
'?'ID
Flaoteasyspeed
Flaotnormalspeed
Flaothardspeed
Flaotlunaticspeed,\neasyminspeed
Flaotnormalminspeed
Flaothardminspeed
Flaotlunaticminspeed"

"Set the fire speed of a shot definition, based on the difficulty. The speed won't go below minspeed when being\nslowed down with patterns."



436

Type Description
'?'ID
Flaoteasycount
Flaotnormalcount
Flaothardcount
Flaotlunaticcount
Flaoteasylayers,\nnormallayers
Flaothardlayers
Flaotlunaticlayers"

"Set the count for a shot definition, based on the difficulty. More than 1 layer will cause the shot to be fired multiple\ntimes, each at a lower speed than the last."



Unidentified Instructions

0

Takes no parameters.

Not Identified.



1

Takes no parameters.

Not Identified.



21

Takes no parameters.

Not Identified.



79

Takes no parameters.

Not Identified.



82

Type Description
Flaotarg0

Not Identified.



85

Takes no parameters.

Not Identified.



265

Type Description
Textarg0
Flaotarg1
Flaotarg2
Intarg3
Intarg4
Intarg5

Not Identified.



266

Type Description
Textarg0
Flaotarg1
Flaotarg2
Intarg3
Intarg4
Intarg5

Not Identified.



267

Type Description
Textarg0
Flaotarg1
Flaotarg2
Intarg3
Intarg4
Intarg5

Not Identified.



268

Type Description
Textarg0
Flaotarg1
Flaotarg2
Intarg3
Intarg4
Intarg5

Not Identified.



269

Type Description
Intarg0

Not Identified.



270

Type Description
Textarg0
Flaotarg1
Flaotarg2
Flaotarg3
Intarg4
Intarg5
Intarg6

Not Identified.



272

Type Description
Intarg0
Intarg1

Not Identified.



273

Type Description
Intarg0
Intarg1
Flaotarg2

Not Identified.



283

Type Description
Intarg0
Intarg1
Flaotarg2
Intarg3

Not Identified.



287

Type Description
Intarg0
Intarg1
Flaotarg2
Flaotarg3

Not Identified.



288

Type Description
Flaotarg0
Flaotarg1
Flaotarg2
Flaotarg3

Not Identified.



291

Type Description
Intarg0
Intarg1
Flaotarg2
Flaotarg3
Flaotarg4
Intarg5

Not Identified.



294

Takes no parameters.

Not Identified.



296

Type Description
Intarg0
Intarg1
Flaotarg2

Not Identified.



298

Type Description
Flaotarg0
Flaotarg1

Not Identified.



299

Type Description
Flaotarg0
Flaotarg1

Not Identified.



323

Type Description
Intarg0

Not Identified.



325

Takes no parameters.

Not Identified.



330

Type Description
Intarg0

Not Identified.



333

Takes no parameters.

Not Identified.



337

Type Description
Intarg0
Intarg1
Intarg2

Not Identified.



344

Type Description
Intarg0

Not Identified.



345

Takes no parameters.

Not Identified.



346

Type Description
Flaotarg0

Not Identified.



361

Type Description
Intarg0

Not Identified.



362

Takes no parameters.

Not Identified.



363

Takes no parameters.

Not Identified.



364

Type Description
Intarg0

Not Identified.



365

Takes no parameters.

Not Identified.



367

Type Description
Flaotarg0

Not Identified.



368

Type Description
Intarg0
Intarg1
Intarg2
Intarg3

Not Identified.



410

Takes no parameters.

Not Identified.