If you have started a project on an older version of the baserom and are looking to upgrade to the latest release to get some new features or fixes that came out, there are a couple ways to go about this.
The first is to port your existing project from an older version to a newer version of the baserom, or: grab the changes you want from a newer version and add them to your current project.
If you already have a project started we strongly recommend just sticking with the version you have already. Rarely are there critical updates in successive versions that would require upgrading or starting your project over on a new version, but if there's something you really want your best course of action is to cherry-pick the new things and backport them.
If you do want to restart a project on a newer version of the 5.x baserom the simplest approach to upgrading is to migrate your resources from an older version to a newer and rebuild.
Callisto will (if you have been using it) export things from your project as you work on it to make it easier to move them or track changes if you are using version control.
As of version 5.10, all exported files will be found in the export directory. To upgrade, you can copy or move these files into a new project, replacing as needed.
Item | Description |
---|---|
global | All global resources in a rom: the titlescreen, overworld, credits and global ExAnimation settings (as .bps files). |
levels | All your exported levels (as .mwl files), including any levels that had a minor edit. |
all_map16.map16 | A full export of your project's entire Map16, which includes all pages. |
shared_palettes.pal | A full export of your project's shared palette. (Level palettes are saved with levels.) |
Since the global resources are not very portable—using a BPS patch is very heavy-handed—you may have to manually fix some things, like global ExAnimation, if the baserom made changes between updates.
The graphics files for your project are still local to the ROM and will be in the workspace folder, so be sure to copy the "Graphics" and "ExGraphics" directories of your existing project to the new one.
If you have added new assets to a project, such as custom sprites, blocks, UberASM, patches, music, etc., you will have to port those over to the new version of your project. When doing so take care to also update the relevant list files for the tools, and also check to see if you are overwriting any changes made by the baserom instead of just copy and replacing.
If you have changed the configuration for any of the tools or resources that come with the baserom, such as the Callisto settings, the shared FreeRAM definitions, or the Retry System config, be sure to make those changes as well.
Once everything has be transferred you can simply Rebuild the project using Callisto. If there's something you missed, simply transfer that over and Rebuild again.
Older versions of the baserom are no longer receiving updates and upgrading a project based on those versions to version 5 will not be very straightforward.
The Lunar Helper based version of the baserom ended at 4.17 and isn't receiving any more updates. The upgrade process will be somewhat similar to the above for Callisto, since Lunar Helper functioned similarly, but things are organized quite differently.
If for some reason you are using the incredibly old Version 3 baserom, your upgrade path is simply to start a new project entirely on the latest version. Lunar Magic has some functionality to manually export things, like levels, and it's recommended to consult the Help document for instructions on using that.
This is a more advanced process (which is easier if you are already familiar with the baserom) where you can pull in only specific changes by reviewing the changes that happened between versions and picking out only what you want.
The best way to go about this is to review the commit history of the baserom's GitHub repository to see what got committed during development, finding those commits that are relevant or of interest, and apply the changes in those to your own project.