Skip to content

Releases: rhmodding/Tickompiler

v1.10.0-hotfix

31 May 22:24
Compare
Choose a tag to compare

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

18 Jan 20:39
Compare
Choose a tag to compare

Version 1.9.1

Bugfixes

  • Fixed file not found error when using notepad++ command with no arguments
  • Fixed GitHub URL in info not pointing to new rhmodding location

v1.9.0

26 Jun 18:35
Compare
Choose a tag to compare

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 in my_mod/tempo/ and output a tfobj
    • As such, each tfobj is now a entire compilable unit!
    • Their purpose comes in handy when packing: .tfobjs 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
  • Added updates command
    • Checks GitHub for the newest version

Changes

  • base.bin when running extract is now put next to the executable, rather than the code/ directory

Removals

  • Removed the commands macro and set_async
    • Use async_sub and set_func respectively, instead
    • These two commands were deprecated on Aug 12, 2017 and Oct 31, 2017 respectively

v1.8.0

12 Jan 21:10
Compare
Choose a tag to compare

Version 1.8.0

Changes

  • Refactored commands to use picocli
    • All command help and output is much more neatly formatted
    • Every sub-command has its own --help now
    • image
  • Removed help and version commands (replaced with --help and --version flags respectively)

v1.7.0

29 Jun 20:13
Compare
Choose a tag to compare
  • Switch/case/default statements/functions/whatever they are are now properly indented (the case/default indents and the break 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 Megamix code.bin

v1.6.0

31 Oct 11:22
Compare
Choose a tag to compare
  • 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 to set_func. set_async is now deprecated.
    • kill operations, which kill Tickflow threads which satisfy certain conditions.
    • get_sync, which works like get_async but calls the function synchronously.
    • set_cat, which modifies the current thread's "category."
    • zoom, pan, and rotate operations.
    • rest_reset and unrest, 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

15 Aug 13:53
Compare
Choose a tag to compare
  • 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
  • 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: and assets:.

v1.4.0

12 Aug 14:49
Compare
Choose a tag to compare
  • macro is now deprecated and you will get a warning when compiling
    • Use async_sub instead
  • 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
  • Markers now work in any operation, instead of only in select ones
  • Several new global operations are added:
    • set_condvar and add_condvar;
    • push_condvar and pop_condvar;
    • if_neq, if_lt, if_leq, if_gt, and if_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

v1.3.1

18 Jul 18:47
Compare
Choose a tag to compare
v.1.3.1

Initial commit