Tonight I got some Abiathar audio improvements packaged into a beta release for the person who requested them. Along the way I found a couple minor other bugs. Previously the music mapping patches would be generated if audio files were linked regardless of whether Song Mappings had been used, leading to a zero-length song list being patched. Audio export apparently (probably as of v2.11.2) wrote zero-byte IMF files for empty chunks in the IMF range. This is fixed now so that empty chunks are always properly skipped.
Various technical articles, IT-related tutorials, software information, and development journals
Tuesday, October 27, 2020
Monday, October 26, 2020
FMod - Automatic audio chunk boundary adjustment
Today I spent a little time continuing improvement of Abiathar's audio import process. It now checks whether the chunk ID regions used by each type of sound are compatible with the archive layout that the project is configured to use for export. If not, it offers to adjust the project configuration to be consistent with the added chunks. The adjustment code is fiddly since I'm trying to avoid shifting the "original" IMF start chunk when possible so that Music Mappings doesn't break unnecessarily.
Sunday, October 25, 2020
FMod - Relaxing audio assumptions
FleexCore2's GalaxyAudio class used to require the layout of the audio archive to be provided in a chunk settings object. As of v2.11.2, only the ImfEnd field is used, since chunks will only be encoded or decoded when needed but the total number of chunks must be specified to save the archive. Abiathar still populated the chunk settings directly from its project's audio settings block, which assumes that an IMF region will exist and will be at the end of the audio archive. As part of the audio IO improvements started yesterday I relaxed some assumptions in this area. There might not be any IMF songs, so the maximum chunk ID given to FleexCore2 is now computed as the maximum of the last chunk ID of each of the three audio chunk ranges.
FMod - Starting audio IO improvements
A PCKF member is working on a mod with several extra sounds and often needs to adjust Abiathar's audio archive layout settings. This is somewhat difficult to do - it requires editing the project file manually. I don't have time for a major overhaul of Abiathar's audio support or for the addition of a fancy UI, but I have a couple ideas for useful improvements. Tonight I added a + directive to the ASNDS format that can be used in place of a chunk ID to automatically assign the next ID, which can remove the need to manually renumber everything after inserting a chunk. There's also now a BLANK directive to skip a chunk and advance to the next ID.
Sunday, September 13, 2020
FMod - v2.11.3
I received a report from a PCKF user that Abiathar was unable to open a certain mod's levels because one level was wider than 255 tiles. Indeed, Abiathar's level size restrictions structure uses one byte to store each dimension, so it couldn't handle larger levels. Such levels have weird behavior in-game past coordinate 255, but they can be played.
So I increased the default limits to 65,535 (the maximum that can be stored in the standard level format). It wasn't as simple as just increasing some constants, though, because some parts need to pack two coordinates into one 16-bit number, mostly having to do with links. I added some checks to reject link destinations with coordinates larger than 255. Then I found that saving really huge levels crashed because their compressed plane data sizes couldn't be fit into two bytes. I introduced a "maximum area" field to the level size restrictions and added checks for this to the level properties dialog and row/column manipulators.
Since inability to open valid levels is a major problem, I released these changes (and the IMF-related ones waiting in beta) immediately as v2.11.3.
Sunday, May 24, 2020
FMod - Grid size inconsistency fix
Wednesday, May 20, 2020
FMod - Song format flexibility
Monday, May 18, 2020
FMod - Song name migration
Sunday, April 12, 2020
FMod - v2.11.2
Friday, April 10, 2020
FMod - Less VeriMaps advertisement
Thursday, April 9, 2020
FMod - Unknown configuration section detection
If no extension claimed a section, it was silently ignored. This could be a problem if a project was opened without the extension used to create some important information, since the section would be lost upon saving. So I added a confirmation/warning when an unclaimed section is loaded.
Wednesday, April 8, 2020
FMod - More color customizability
A long time ago I added brightly colored bars to active planes' bays so that you can tell at a glance which ones are active. I tried to keep the three colors distinguishable from each other without looking garish and repelling new users. They ended up different shades of blue to match the overall Abiathar color scheme. But some users might want to sacrifice an attractive color scheme for more distinguishability, so the colors of those bars are now customizable on the Colors tab of the Settings. The bold blue color of the label "Active" can now also be changed, e.g. in case someone wants the very noticeable but eye-searing red of the Abiathar 1.x series.
Sunday, June 23, 2019
FMod - Side tileinfo customization
So today I changed FleexCore2 to have byte Left and Right fields rather than Boolean SolidLeft and SolidRight, then adjusted Abiathar's tileinfo translation functions to account for non-Boolean side values. In the interest of backward compatibility to extensions, I kept the functions that take Booleans; they now delegate to the byte-accepting versions, passing 0 or 1.
Virtually all users will only need binary side properties, so rather than entirely replacing the "Solid" checkboxes in the Tile Property Modifier UI I made dropdowns only appear if configured or if that tile has nonbinary side properties. Like with top, bottom, and special properties, custom side properties can be added to the ADEPS file and will appear in the dropdowns.
I also noticed that canceling the entry of a custom tile property value reset the dropdown to the first entry rather than leaving it where it was before. That's now fixed.
Thursday, October 4, 2018
Tharify package for Keen 3
Monday, September 17, 2018
Why is Y the Abiathar hotkey for Grid?
The keyboard shortcut to toggle the visibility of the grid is Y, not G. Before version 1.0, the menu item to start a new project was called Gather because project creation involves gathering up the several files that represent a level set. (The window to do that, which survived the entire 1.x series and was only retired in 2.0, was internally called the Dependency Gatherer. I don't recall whether or for how long that name was displayed.) The first letter of Gather is G, so that was the hotkey. When I added the grid, I figured that Y was a decent choice because it's close to G on the keyboard.
Feedback I received on the pre-release version informed me that the "gather" terminology was confusing, so I changed the menu item's text to New and the hotkey to N. The grid hotkey apparently didn't cross my mind when I was making that change because it didn't get changed to take advantage of the now-free G.
In version 2.0, the two tools that had no hotkey were given shortcuts. G and H went to the Tile Instance Remapper (effectively a find-and-replace tool) and Tile Instance Locator (find), respectively. H was for "highlight" (the TIL added a highlight to the desired tile) and G was next to it (replace is a related operation to find). Later down the line, the Tile Instance Locator tool became the Find Highlight view mode, but the TIR is still a tool with hotkey G.
Thursday, August 16, 2018
FMod - IMF import crash fix
Saturday, June 30, 2018
A newer CK5Patch fixes the %egadict issue
Thursday, June 28, 2018
FMod - v2.11.1
- The Level Inspector's new switch-related checks
- The Resource Accountant's new ability to show the number of each kind of item
- The fix for the vertical lines in the selected tile crosshairs not scrolling properly
- The workaround for CK5Patch's %egadict malfunction
Tuesday, June 26, 2018
FMod - Level Inspector for switches
Monday, June 18, 2018
FMod - Resource Accountant improvement
![]() |
Resource Account's results with item instance counts enabled |