Releases: rhmodding/Tickompiler
Releases · rhmodding/Tickompiler
v1.10.0-hotfix
v1.10.0 was first publically released in March 08, 2022, with many users reporting an error when .tickflow compiling due to what is assumed to have been a faulty build of the program. The build provided in this re-release has been confirmed to lack said error.
Version 1.10.0
Thanks to EpicHaxGuy and everyone who helped test this release!
Additions
- Tickompiler now exposes the loop flag to .tempo files, meaning you can now have custom looping music in the game! (#12)
- Previously Tickompiler would overwrite this flag, so .tempo files for songs that once looped in the vanilla game would not loop once extracted and packed into a C00.bin.
- .tempo files lacking the loop flag are still supported, and will behave like they did on older releases of Tickompiler. You don't need to rework any of your old mods' tempo files unless you want your custom songs to loop.
v1.9.1
v1.9.0
Version 1.9.0
Many thanks to the users that tested pre-release versions of this update.
This update will greatly improve how individual mods can be distributed and packed altogether.
Additions
- Added tickflow objects
- Tickflow objects have the file extension
.tfobj
and are a compilation option - They combine the compiled
.tickflow
files (the.bin
files) with the associated.tempo
files into a single file - To create them, the
compile
command has a new option:--objectify
(or-o
) which takes a directory to where the associated tempo files are- Example:
compile --objectify my_mod/tempo/ my_mod/ my_mod/output/my_mod.tfobj
- This will compile all the .tickflow files in the folder
my_mod/
using the tempo files inmy_mod/tempo/
and output atfobj
- This will compile all the .tickflow files in the folder
- Example:
- As such, each tfobj is now a entire compilable unit!
- Their purpose comes in handy when
pack
ing:.tfobj
s are treated as a packable object, and the packer will take the internal.bin
and.tempo
files inside the.tfobj
and pack them individually - With this new system, you can distribute your mods as
.tfobj
files and have your users combine multiple mods at the same time without having to deal with the .bin and .tempo files individually.- Obviously, like before, you can't combine conflicting mods at the same time
- Tickflow objects have the file extension
- Added
updates
command- Checks GitHub for the newest version
Changes
base.bin
when runningextract
is now put next to the executable, rather than thecode/
directory
Removals
- Removed the commands
macro
andset_async
- Use
async_sub
andset_func
respectively, instead - These two commands were deprecated on Aug 12, 2017 and Oct 31, 2017 respectively
- Use
v1.8.0
v1.7.0
- Switch/case/default statements/functions/whatever they are are now properly indented (the
case
/default
indents and thebreak
unindents) - Added support for a
bytes
function that inserts a raw byte array into the compiled binary file. The byte array will be padded to the next multiple of 4 with zeroes. - Added the
grab
command to extract non-game code from an arbitrary location in a Megamixcode.bin
v1.6.0
- Added
version
command - Added
notepad++
command- Will output a Notepad++ custom language XML file for you to aid in writing .tickflow files.
- Added special error message for extract (decryption warning)
- Improved instructions in daemon mode
- Tempo file decimal places are now rounded to three decimal places
- Several new global Tickflow operations added:
set_async
renamed toset_func
.set_async
is now deprecated.kill
operations, which kill Tickflow threads which satisfy certain conditions.get_sync
, which works likeget_async
but calls the function synchronously.set_cat
, which modifies the current thread's "category."zoom
,pan
, androtate
operations.rest_reset
andunrest
, which modify the rest counter.speed_relative
, which modifies the game speed relative to the current speed rather than setting it to an absolute value.- See the documentation for more details.
v1.5.0
- Internal refactoring of commands
- You can now get help on a specific command
- Also corrected that one mistake where the decompile command said it compiled things
- Added daemon mode
- Run the command
daemon
(with an optional command to start) - This will leave Tickompiler running and you can continuously enter more commands
- This is beneficial because of runtime optimizations during compilation and decompilation that would otherwise be lost to continual stopping and restarting of the JVM
- Run the command
- Gate and endless games will now be extracted from the code.bin, and can be packed.
- Make sure to update your base packing file before packing gate games.
- In order to use this properly, the latest release of RHMPatch is needed.
- The
#start
and#assets
directives are now deprecated.- Their function is taken over by special markers with the names
start:
andassets:
.
- Their function is taken over by special markers with the names
v1.4.0
macro
is now deprecated and you will get a warning when compiling- Use
async_sub
instead
- Use
async_call
's second argument can now be omitted- Added
-bytecode
flag to decompiler - Added
-t
flag for the game extractor- Will now extract tempo files and put them in a folder, making the old Python GameExtractor/Putter redundant
- Double-quoted strings can now be used in expressions. They will be turned into an appropriate location containing the string at the end of the file when compiled.
- Strings can be Unicode or ASCII format. Unicode strings have a
u
prepended before the first double quote. - Select operations get a string argument when extracting
- Strings can be Unicode or ASCII format. Unicode strings have a
- Markers now work in any operation, instead of only in select ones
- Several new global operations are added:
set_condvar
andadd_condvar
;push_condvar
andpop_condvar
;if_neq
,if_lt
,if_leq
,if_gt
, andif_geq
;- The various
countdown
operations
- The decompiler now puts the version of Tickompiler used as a comment
- Fixed leaking file stream for packing
- Package directive changed to
rhmodding.tickompiler