546 - bombShield(int a, int script)
Sets the bomb invulnerability flag (a=0 false, a=1 true), the caller's ANM script will change to script when a bomb is active.
611 - etEx(int etId, int async, int type, float a, float b)
Adds bullet transformation to bullet manager etId, Transformation of flag type determines the specific behaviour of the bullet. Documentation can be found here.
BulletEffectType-67108864 - etExDelay(string et, string isAsync, string time)
Hide the bullet for time frames. During this time, it will not move, will be invisible and won't have a hitbox. If used as a first transformation, can be used to delay when the bullet actually appears.
6 - isDelayedSpawn
While this flag is set, the bullet will be invisible and not have a hitbox. This flag is cleared once the delay timer ends.
4 - short_timer
Integer value between -1 and 15 inclusive (by default -1). If non-negative, shooters using short_timer shoot their bullets and timer increments by 1 per frame until 15 is reached. Once 15, timer reset to -1 or 0 depending on Z key state.
5 - long_timer
Integer value between -1 and 120 inclusive (by default -1). If non-negative, shooters using long_timer shoot their bullets and timer increments by 1 per frame until 120 is reached. Once 120, timer reset to -1 or 0 depending on Z key state.
91 - floatTime(int slot, float var, int time, int mode, float start, float final)
In time frames using mode mode, variable var changes from start to final. slot is used to set the slot to be used by this ins, every enemy has 8 slots.
-9980 - F1
Local float variable, inherited by spawned enemies.
-9984 - I1
Local integer variable, inherited by spawned enemies.
-9989 - ANGLE_PLAYER
Angle from the enemy to the player.
-9962 - BOSS_Y
Final Y position of the boss.
-9990 - PLAYER_Y
Player's Y position.
-9963 - BOSS_X
Final X position of the boss.
-9991 - PLAYER_X
Player's X position.
81 - circlePos(float varX, float varY, float angle, float radius)
Performs following operation: varX = cos(angle) * radius and varY = cos(angle) * radius
-9981 - F0
Local float variable, inherited by spawned enemies.
300 - enmCreate(string sub, float x, float y, int hp, int score, int item)
Creates an enemy using subroutine sub at coordinates (x, y) (relative to position of the parent), health of created enemy is hp, score bonus is score and item drop is item.
601 - etOn(int etId)
Shoots bullet(s) using properties from bullet manager etId.
23 - wait(int time)
Stops sub execution for time frames.
1 - delete()
Returns to the top of current call stack.
2 - GAME_SPEED
The value controls by how much faster the game speed is run. This variable is often set to a number between 0 and 1. This value is often changed when a (final) boss dies or when a photo is taken. Its default value is 1.
-9985 - I0
Local integer variable, inherited by spawned enemies.
-9983 - I2
Local integer variable, inherited by spawned enemies.
-9982 - I3
Local integer variable, inherited by spawned enemies.
-9954 - ENEMY_HP
Enemy's current HP.
3 - goheiExists
A flag that determines if a gohei exists on-screen or not. Flag is set to true by active gohei. Flag is set to false if gohei goes off-screen or is despawning.
-9926 - GI0
Global integer value. Value is initialised to 0 on stage load but not on stage reset.
-9925 - GI1
Global integer value. Value is initialised to 0 on stage load but not on stage reset.
-9924 - GI2
Global integer value. Value is initialised to 0 on stage load but not on stage reset.
-9923 - GI3
Global integer value. Value is initialised to 0 on stage load but not on stage reset.
Incorrect boss position during spell practice
Specifications
- Versions:
1.00a -
1.00b -
1.00c
- Difficulty:
Easy -
Normal -
Hard -
Lunatic -
Extra-Overdrive - Mode:
Main game-Practice mode-Spell practice
- Shottype:
Reimu -
Marisa -
Sanae -
Youmu
What happens
The boss's initial position in spell practice does not match the boss's position outside of spell practice mode. This happens to the following spell-cards:
- Yuyuko's second spell-card (5, 6, 7, 8); (32 units higher in spell practice)
- Yuyuko's third spell-card (9, 10, 11, 12); (32 units higher in spell practice)
- Seiga's first spell-card (48, 49, 50, 51); (32 units higher in spell practice)
- Futo's second spell-card (67, 68, 69 ,70); (16 units higher in spell practice)
- Miko's fifth spell-card (95, 96, 97, 98); (16 units lower in spell practice)
- Miko's sixth spell-card (99, 100, 101, 102); (16 units lower in spell practice)
- Miko's seventh spell-card (103, 104, 105, 106). (56 units higher in spell practice)
The numbers in parentheses represent the spell IDs.
How it happens
This is done by going to the boss's spell on any difficulty in Spell Practice. The boss automatically skips over some instructions it would otherwise do outside of spell practice. The boss may therefore not move or have a wrong movement limit.
Why it happens
The reason why the boss has an incorrect position varies from spell to spell.
In the following sections some visuals will be provided of modified in-game screenshots.
The blue box represents the movement limit of the boss outside Spell Practice mode. The blue bullet represents the boss's position outside Spell Practice mode.
The red box represents the movement limit of the boss inside Spell Practice mode. The red bullet represents the boss's position inside Spell Practice mode.
Furthermore, the coordinate system in Touhou doesn't use the normal Cartesian coordinate system. Instead, the y-coordinate increases if you go downward and the y-coordinate decreases if you go upward.
Yuyuko's second spell-card (5, 6, 7, 8)
In spell practice, Yuyuko has a y-range of [96, 160]. She is programmed to move to y = 192. y = 192 is outside the range of [96, 160] so she can only move to y = 160.
Outside spell practice, Yuyuko has a y-range of [32, 224] She is programmed to move to y = 192. y = 192 is inside the range of [32, 224] so she moves to y = 192.

Yuyuko's third spell-card (9, 10, 11, 12)
In spell practice, Yuyuko has a y-range of [96, 160]. She is programmed to move to y = 192. y = 192 is outside the range of [96, 160] so she can only move to y = 160.
Outside spell practice, Yuyuko has a y-range of [32, 224] She is programmed to move to y = 192. y = 192 is inside the range of [32, 224] so she moves to y = 192.

Seiga's first spell-card (48, 49, 50, 51)
In spell practice, Seiga has a y-range of [96, 160]. She is programmed to move to y = 96. y = 96 is inside the range of [96, 160] so she moves to y = 96.
Outside spell practice, Seiga has a y-range of [128, 192] She is programmed to move to y = 96. y = 96 is outside the range of [128, 192] so she can only move to y = 128.

Though, it is barely noticable that she spawns on a different height. This is because the movement limit of Seiga is changed once she starts moving.
Futo's second spell-card (67, 68, 69 ,70)
In spell practice, Futo has a y-range of [96, 160]. She is programmed to move to y = 96. y = 96 is inside the range of [96, 160] so she moves to y = 96.
Outside spell practice, Futo has a y-range of [112, 144] She is programmed to move to y = 96. y = 96 is outside the range of [112, 144] so she can only move to y = 112.

Though, it is barely noticable that she spawns on a different height. This is because the movement limit of Futo is changed once she starts moving.
Miko's fifth spell-card (95, 96, 97, 98)
In spell practice, Miko moves to y = 144. An instruction that tells her to move to y = 128 is skipped.
Outside spell practice, Miko goes to y = 128.

Miko's sixth spell-card (99, 100, 101, 102)
In spell practice, Miko moves to y = 144. An instruction that tells her to move to y = 128 is skipped.
Outside spell practice, Miko goes to y = 128.

Miko's seventh spell-card (103, 104, 105, 106)
In spell practice, Miko moves to y = 144. An instruction that tells her to move to y = 200 is skipped.
Outside spell practice, Miko goes to y = 200.

In this case, Miko does not have a movement limit outside of spell practice, so there is no blue box.
Links
Replays
This section has no content yet. Would you like to add to this section? Contact me if you are interested!
Videos
This section has no content yet. Would you like to add to this section? Contact me if you are interested!
All Ten Desires pages: | |
|---|---|
| Incorrect boss position during spell practice · Misalignment of timer · Slowdown Item Duplication · Yoshika Revival Bug · Invincibility Desync · Marisa Desync | All Ecl-related pages: |