12 users online: Abdu,  Anorakun, ASMagician Maks, Atsuineko, CalHal, El Cuh Fermin, Fostelif, Isikoro, RZRider, T.CYAN.S-smwcentral, Teaser, thegonzalex - Guests: 64 - Bots: 302
Users: 66,263 (2,216 active)
Latest user: onyxblaster

Callisto v0.3.0


Hi, today I'm happy to finally be releasing Callisto, a successor to Lunar Helper and Lunar Monitor that I've been working on since February. Its aim is to provide the same convenient mechanisms as previous tools while also adding new features and improving on old ones. As with Lunar Helper and Lunar Monitor, I provide both extensive setup guides and general documentation as well as a very easy to set up project template.

Please note that while I believe this version to be pretty stable, it is still a new tool and should thus be used cautiously. Please keep a backup of your project and ROM if you intend to migrate to Callisto.

In addition, please be aware that Callisto requires UberASMTool 2.0, which is not yet considered fully stable, as well as AddMusicK 1.0.9, which is currently still undergoing moderation. My project template comes pre-configured to download all required tools for you automatically which, among Callisto being a bit of work to set up manually, is why I would recommend using my template unless you're migrating a preexisting project (in which case you can check out the documentation on migrating projects).

Huge thanks to  mathie, MarsAmPear, MM102 and SpiritOfFen for testing as well as  AmperSam for proof-reading and editing the documentation!

Among the new features are:

- Hijack conflict analysis during rebuilds
- "Quick Build" renamed to "Update" and made vastly more reliable and faster
- Support for arbitrary tools and scripts in build process (outside of FLIPS and Lunar Magic)
- Global configuration support (only need one globally available clean ROM now)
- Return of a manual "Save" function
- "Global data" BPS patch split into four individual BPS patches (overworld, title screen, credits and global ExAnimation)
- Customizable (Ex)Graphics folder locations via automatically created symlinks
- Modifying patches in a way that removes a hijack now correctly causes a rebuild
- Reliable ROM reloading in Lunar Magic when a build succeeds
- Lunar-Monitor-like exports from Lunar Magic without any additional setup
- Rudimentary clean ROM check prior to build
- Multiple emulator support
- A nifty little menu interface
- Standardized configuration files in the TOML format
- "Globules" renamed to "Modules" and made more flexible

The hijack conflict detection in particular is something I believe to be extremely useful, as it has consistently let me spot hard to find problems with essentially zero effort while testing and using Callisto over the past days and weeks.

As with Lunar Helper and Lunar Monitor, I will prefer releasing new versions of Callisto on my GitHub rather than submitting them to the Tools section, since moderation times may quickly cause any version I submit to the site to become outdated. I will attempt to post in this thread whenever I release a new version, but the most reliable way to keep up with updates is definitely through GitHub itself.

I hope you will enjoy using this tool as much as I do! If you run into any issues, need help or have feature requests or bug reports please feel free to either reach out in the Discord server I set up or open an issue on GitHub. My DMs on Discord are also always open if you'd rather reach out there. There are also channels in the Discord server that will relay any updates made to both Callisto itself as well as my project template as soon as they happen!

Happy hacking!

Project Template
Download latest version of Callisto
View Callisto Documentation
View Callisto Source Code
Callisto v0.2.3 is now available:
-Adds an indicator to the UI that shows when the configuration is being reloaded
- Fixes conflict detection always showing FastROM addresses, even on SA-1 ROMs
- Ensures Eloper is launched by Lunar Magic via an absolute path
- Fixes a (potential?) timing dependent bug where Callisto would incorrectly detect changes in the ROM despite there being none
- Fixes a potential heap corruption
Callisto v0.2.4 is now available. It comes with no actual changes to the source code, the only changed part is the documentation, which now consists of HTML pages automatically created from the GitHub's wiki, which will always match the state of the release they're included in, neat! In addition, the additions I made for this release will also let me package the project much more easily in the future, that's just a me thing tho lol
Callisto v0.2.7 is now available:
- `callisto.asm` is now actually correctly included in patches/modules when `incsrc "callisto.asm"` is used
- modules now correctly account for each other's addresses ensuring proper cleanup
As a reminder, update posts on here will probably be infrequent (I'm lazy) so if you wanna get automated updates whenever a new version is available feel free to join the Discord server. It has channels that get a new post whenever I add a new Callisto release on GitHub or push a new commit to my project template, which is now using Lunar Magic 3.40 by the way.

Callisto v0.2.9 is now available:
- Updates initial patches for Lunar Magic 3.40
- Now properly shows project folder name in main menu even if it contains periods
- Now moves temporary levels folder to "temp_folder" rather than keeping it next to the actual level folder
Callisto v0.2.13 has been released!

I'm posting this one specifically, because it fixes a bit of a gnarly bug that's been around for a while that I'm happy to hopefully have finally gotten rid of, so I would highly recommend grabbing this version!

Note that as you can tell from the previous version number, I'm not regularly posting each version here, just cause it's kind of annoying to keep in mind, but you can join the Discord server to get automated updates.
It's been a little while, Callisto v0.2.17 now exists, highlights since the last release I posted about here include:
- support for Asar 1.91
- `call_module` no longer clobbering A and working in both 8-bit and 16-bit mode now
- patches and modules receiving a `!CALLISTO_INSERTION_TYPE` define which informs them whether they're being inserted as patches or as modules (this is more useful than it sounds, I promise)
Ok forget v0.2.17, Callisto v0.3.0 is where it's at.

This version finally lets any resource, including sprites, blocks, etc., check if they're being inserted as part of the Callisto build process. You can also now use `incsrc "callisto.asm"` anywhere without having to specify a relative path to it anymore. This means you can now call modules without having to have any knowledge of the user's actual folder structure, which means it's now possible to seamlessly incorporate modules into portable code while also still offering fallback options to people who aren't using Callisto.

I will use these new features soon to update some resources like the Reverse Gravity patch which previously did not really work with Callisto, but should work great as modules in the future.

v0.3.0 also includes two new macros in callisto.asm that let you `incsrc` and `incbin` files relative to the project root instead of relative to the current file being assembled which should be convenient in some cases.