Automatic
Old Maps
Basic
 Entry
More..
Info
N T U D I ↓
F E ↑
C R

LiveECL v: now with clickable line numbers!
Alt+S: switches focus,     Alt+R: restarts the game,
Alt+C: clears all bullets, Alt+F: fullscreen.
... and much more!

About

LiveECL is an online interface to both a compiler and an interpreter for the Enemy Control Language, otherwise known as ECL. As the scripting language of the Touhou Project, it is used to choreograph the enemies and patterns that appear in all Touhou Project games.

This project is made by and for the community, with the ultimate goal of being a perfectly accurate simulator for ECL scripts to help making modding ("patching") more accessible and more convenient. One of the goals of the project is to enable users to play full Touhou Project stages in the browser, from any device.

LiveECL started in December of 2019 and is lead by Guy L. For any inquiries, bug-reporting or suggestions, you can reach me on Discord @Guy#8081 or through email at g.guy.lab@gmail.com.

LiveECL is still in active development - see the Progress tab for more information.
If you need any help, the Features and Documentation pages are for you.

Modders are still preparing, please wait warmly and have some tea.

Current version:



Features

Overview

The basic concept of LiveECL is to enable users to automatically (or manually) compile and run any ECL script they write in the editor. To fully utilize this tool, you must have some understanding of both ECL and of the Touhou series of games. Information and help regarding ECL can be found in Documentation.

Tooltips are there to help you, so do point your cursor if something piques your interest!

Game

The game (or "Interpreter") is meant to be an accurate simulation of Touhou gameplay.
For the most part, shoot, dodge, and don't die. More here.
As usual, the controls are:

Information about more advanced features of the interpreter will appear here once they have been implemented. You are free to chose to play as any character, with any difficulty, in any game. A godmode option is provided for patterns better suited for viewing than playing. May or may not contain easter eggs.

Editor

You write, it compiles.

Alternatively, you can change compilation to manual mode by using this button:

Automatic

Additional options are given for veterans, such as the use of older ECLmaps and the simple compile mode.

You can also set which sub the game should attempt to run first (this defaults to main).

Do note that the LiveECL editor comes pre-packaged with the MERLIN library. Whether or not to use it is up to you. Errors and other debugging information is delivered through the terminal at the bottom. You can use the resize icon in the middle of the page to display (or hide) the three main components as needed.

Even more editor features are accessible through the functionalities below, and more are planned.




Functionalities

Easy-access buttons are provided for various useful features, along with keyboard shortcuts.
Do note that the Alt key should only be pressed when the game is not in focus.

Game
Button Shortcut Name Description
F (
Alt
) + 
F
Fullscreen Attempts to open the game view in fullscreen mode.
May not work in popup mode.
E (
Alt
) + 
E
External window
(Popup Mode)
Attempts to move the game to a new window.
Will create a new instance of the game.
Shortcut disabled due to popup-detection risk. See Options.
I (
Alt
) + 
I
Internal window Closes the popup window.
Only appears while popup window is open.
C (
Alt
) + 
C
Clear bullets Instantly destroys all enemy bullets.
R (
Alt
) + 
R
Restart game Reloads the game.
If an unreported crash occurs, please report it!
G (
Alt
) + 
G
Godmode Makes the player invulnerable and hidden.
Editor
Button Shortcut Name Description
N (
Alt
) + 
N
New file Clears the editor field, or resets it to default if empty.
Currently does not ask for confirmation.
T (
Alt
) + 
T
Toggle theme Toggles between light mode and dark mode.
U (
Alt
) + 
U
Upload file Prompts for a file to be loaded in the editor.
D (
Alt
) + 
D
Download file Prompts to download editor content in .ecs format.
General
Button Shortcut Name Description
↓ N/A Down Scrolls to bottom of page.
Mobile only.
↑ N/A Up Scrolls to top of page.
Mobile only.
S (
Alt
) + 
S
Switch focus Switches focus from game to editor, or from editor to game.
Shortcut only.

More

LiveECL is constantly updated with new features: see Progress for upcoming changes! Additional features are also available in the Options page. For more technical information as to how LiveECL came to be and currently works behind the scenes, see this page.

Progress

Goals

LiveECL is still in active development as it becomes it more accessible, more convenient, and—importantly—more accurate, update after update.

In no particular order, here are some of the main long-term goals we're shooting towards:


Here are some of the main features we're working on right now:



ECL Support

Only ECL instructions from Ten Desires are currently supported.
Here is the full list:

0-93 (System)

  • nop
  • delete
  • ret
  • call
  • jmp
  • jmpEq
  • jmpNeq
  • callAsync
  • callAsyncId
  • killAsync
  • killAllAsync
  • wait
  • waitf
  • stackAlloc
  • pushi
  • seti
  • pushf
  • setf
  • addi
  • addf
  • subi
  • subf
  • muli
  • mulf
  • divi
  • divf
  • modi
  • eqi
  • eqf
  • neqi
  • neqf
  • lessi
  • lessf
  • leqi
  • leqf
  • greateri
  • greaterf
  • geqi
  • geqf
  • noti
  • notf
  • or
  • and
  • xor
  • bit_or
  • bit_and
  • deci
  • stackSin
  • stackCos
  • mathCirclePos
  • validRad
  • negi
  • negf
  • squareSum
  • squareSumRoot
  • mathAngle
  • stackSqrt
  • linearFunc
  • pointRotate
Click to see more!

500-562 (Misc)

  • diffI
  • diffF
Click to see more!

600-640 (Bullets)

  • etNew
  • etOn
  • etSprite
  • etOffset
  • etAngle
  • etSpeed
  • etCount
  • etAim
  • etSound
  • etExSet
  • etExSet2
  • etEx
  • etEx2
  • etClearAll
  • etCopy
  • angleToPlayer
  • etSpeedD
  • etCountD
  • etOffsetRad
  • etDist
  • etOffsetAbs

Bullet Transforms

  • nop
  • wait
  • dist
  • accel
  • angleAccel
  • angle
  • bounce
  • setSprite
  • delete
  • playSound
  • wrap
  • shoot
  • defineShoot
  • vel
  • velAdd
  • bright
  • velTime
  • saveAngle
Click to see more!


Progress Tracker & Suggestions

Progress is kept track of both on this page and in the following Google Docs. If you want to leave suggestions for things to do, you can leave comments on the Docs using this link.

For bug reporting or any other reason, you can contact me personally through the contact detail given on the About tab.


LiveECL Progress Tracker

Click to see more!

Documentation

Help Portal

The majority of information regarding Touhou patching (including ECL, ANM and more) can be found on @Priw8#9873's website. Have a look around there!

It's highly recommended that you go through the ECL tutorial if you have no prior ECL experience.
Here's a list with some other resources from the community:

If you have questions or can't resolve an issue you're facing, feel free to visit ZUNcode!

(icon)

ZUNcode
You're invited!

Join


Ten Desires Instruction Table

Here's the list of Ten Desires instructions ripped from Priw8's site for quick access.
Collapsible sections will be added when more games get LiveECL support.

TD Instruction Table

Click to see more!

Database

Nothing here yet!

Options

Nothing here yet!

Close