Page 1 of 3

[v2.11.2] Abiathar: the superior Keen Galaxy editor

Posted: Fri Mar 14, 2014 1:39 pm
by Fleexy
Celebrating three years of Abiathar - Keen Day 2017!

Behind every great mod, and even every not so well known mod, is a level editor. With patches more advanced than ever before, the need is arising for smart level editors. Seeing this, I started Abiathar three months ago, as a personal project and programming exercise. Originally just a map editor for the lost episode, it blossomed into a superpowerful Keen:Galaxy editor (of course retaining support for Keen:Dreams).

It may be said, “why did you go to all this trouble just to reinvent the wheel? The Omegamatic is already perfectly functional!” TOM is a very nice editor (and on the surface looks very similar to Abiathar), but Abiathar contains many features that TOM simply cannot match due to the language it is written in.

Some of Abiathar’s amazing new features include:
  • Internally stored default resources: don’t need to keep the original files around!
  • Tileinfo editing: tweak your tile properties immediately, without leaving the level editor!
  • Direct EGA graphics reading: don’t worry about exported graphics format!
  • Conglomerate file handling: once you have your resources together, you only need to deal with one dialog to open it again!
  • Tileinfo overlay: never worry about solid vs. secret area tiles again!
  • Inspectors: check your levels for crash bugs without having to load the game!
  • Sound management: add IMF tracks, edit sounds, and set level songs without knowing any patching!
  • Automatic patch/batch generation: easily get started modding!
  • Combinable infoplane: place infoplane sprite tiles in the foreground!
  • Custom, separate infoplane icons: squeeze the most foreground tiles out of your tileset and have visually recognizable infoplane icons!
  • Single-level export/import: share individual level files!
  • All kinds of config file settings: make Abiathar exactly what you want!
  • VeriMaps: sign your levels for authenticity and validate downloaded level sets, in Abiathar or with the VeriMaps tool!
  • Extension API: create your own specialized tools and features, share .NET DLLs to extend Abiathar!
  • Auto-updater: know about new features immediately!
  • ...and of course, every feature you’ve ever heard of or seen in other level editors
And that’s not even mentioning the amazing new tools like the Path Plotter and the Tile Instance Remapper! Even the commonplace tools that you expect in any level editor have been extended and empowered in Abiathar! (Read the help file for comprehensive and detailed information on tools and features.)

Before you begin to experience the amazing power of Abiathar, I recommend you begin to read its help file, at least the Concepts section:

Abiathar help file
Video tutorials too!

Now, let’s look at Abiathar in action!

Inspecting the Security Center in Keen 5, showing the switch link to the platform stopper:
Image

Showing tile properties in Keen Dreams, plus Simultaneous Tileset mode:
Image

Checking out Siege, a Keen 6-style NetKeen level:
Image

Since Abiathar is based on FleexCore 2, some DLL files need to stay with the executable. If you want to compact it down to just one EXE, use this ILMerge setup on it. Drop the three files (Abiathar.exe, FMod.dll, and Interop.dll) into the ILMerge directory and run the batch file. (I don’t publish pre-compacted executables because ILMerge does not produce strictly correct .NET assemblies and I don’t want to be responsible for a faulty program that blows up your .NET Framework. You’ll probably be fine, but it’s not my fault if Bad Things Happen.)

You should really read the Concepts section of the help file before starting to use Abiathar in earnest. Please, read the help file. Please?

My plan is to update Abiathar semifrequently, so it’s probably a good idea for you to download the updater, which will fetch the latest version from the right place.

Alright, ready? Three... two... one... KEEN DAY! (Also thousandth post!)
Download ABIATHAR update client
Or download Abiathar v2.11.2 in ZIP form

To get started with the defaults, go to File – New, select your episode from the drop-down in the upper right, check all the boxes (those are what tell it to use defaults), set the tileinfo drop-down to one that either dumps or reads from memory, and click OK. All the controls are pretty intuitive, but reading the help file is strongly recommended.

Once you close Abiathar for the first time, quite a few settings will get saved to the editor.aconf config file. Its format is pretty intuitive, so it should be pretty obvious how to reconfigure stuff. For more details about the formats of values there, read the appropriate section of the help file. Those settings are loaded when Abiathar starts.

The *.adeps files created when you save a level set are what can be opened later. They don’t store any level data on their own, just pointers to all the resource files. Please do not try to send someone your levels by sending the dependency binder.

If you ever need to place your resource files in a different folder or change the names of them, you should probably create a new dependency binder. (It’s also possible to modify the .adeps, but that might result in some weird stuff if not done right.)

Miscellaneous utilities are also packaged with Abiathar, but you don’t need to worry about keeping a folder full of them – just use the File Emitter. Select what you need, choose the output folder, and click Emit! Some of the more useful are FxTomDMh (which can repair TOM-created Dreams files), ManTliMh (possibly helpful when modifying NetKeen levels), and the Galaxy patchers.

Abiathar was designed with NetKeen in mind. “NetKeen” is present as an option in the Dependency Collector’s episode drop-down, allowing you to open and edit NetKeen levels. Make sure you select "in maphead" for the tileinfo.

If you’re interested in creating extensions for Abiathar, contact me for more information. If you have a bug report (oh no!) or a feature request, by all means pester me until it gets done – but please start by creating a topic in this category or replying to this thread.

Take a moment to thank the beta testers; without their help, Abiathar would not be nearly as amazing as it is.
  • lemm was the first to actually open Abiathar, which was then called Fudge. He requested it to be made into a Galaxy editor, for it was at the time only for Dreams. He also helped with the NetKeen support much later.
  • levellass was the first one I sent it to. She found some very important crash bugs and has continued to provide suggestions for tweaks.
  • Ceilick did perhaps the most important testing: actually using it. Under his guidance, all kinds of features were added, including the Simultaneous Tileset and Lone Editing mode.
Well, I’ve typed enough. Thanks everyone; Keen Days 2014-17 are ones to remember! (Use Abiathar to make the next even more amazing!)

Ben Nordick
“Fleexy”

Posted: Sat Mar 15, 2014 9:43 pm
by levellass
This is glorious.

It's a pity my computer's F keys are locked into other things, that means I cannot use them (which is why I liked TOM's 1-6 keys.)

Posted: Wed Jul 09, 2014 8:24 pm
by kalinus
Hey thanks for this tool! I have version 1.5 because I want to make a bio-menace mod (Just have to figure out how to Import audio/sprites) any way I think I will start my modding with Bio-Menace then move on to Commander Keen. My first post btw.

Edit: Didn't mean import audio/sprites with your tool I have keenwave :P
Though it would be nice to be able to

Posted: Thu Jul 10, 2014 7:36 pm
by MoffD
kalinus wrote: Edit: Didn't mean import audio/sprites with your tool I have keenwave :P
Though it would be nice to be able to
Anything someone else can do/has done before, saves you time.
Especially when one has problems importing audio into keen *smashes head against wall*
Edit: Speaking of... do you have any ideas lass, or is my dropbox just too terrible to do anything with? :D

Posted: Mon Jul 14, 2014 4:08 am
by levellass
Any ideas for what? As far as I'm aware your dropbox is working fine.

Posted: Mon Jul 14, 2014 1:18 pm
by MoffD
levellass wrote:Any ideas for what? As far as I'm aware your dropbox is working fine.
Ah, sorry I did not clarify.

I was wondering if you knew what was wrong with my method of loading music in game. I figure there's something very basic that I'm missing.

Posted: Mon Jul 14, 2014 6:31 pm
by Fleexy
While you guys are in the Abiathar thread, I suppose I'll mention to the Lass that the v1.5 beta I released over in that Bio Menace thread has switched to using TED5 style for plane control (you can change it to my way by disabling NostalgicPlaneControl in editor.aconf). Gridlock's Infoplane Override feature is there - use ALL the tileset! - plus a level image exporter and a bunch of other awesome things. The real v1.5 will be released hopefully soon with some fixes for longstanding oddities and performance improvements.

Posted: Tue Jul 15, 2014 12:58 am
by MoffD
Fleexy wrote:While you guys are in the Abiathar thread, I suppose I'll mention to the Lass that the v1.5 beta I released over in that Bio Menace thread has switched to using TED5 style for plane control (you can change it to my way by disabling NostalgicPlaneControl in editor.aconf). Gridlock's Infoplane Override feature is there - use ALL the tileset! - plus a level image exporter and a bunch of other awesome things. The real v1.5 will be released hopefully soon with some fixes for longstanding oddities and performance improvements.
Hehe, sorry for going off topic a bit, I'll give v1.5 a go!

Also, an image exporter sounds very handy for making map images of future mods for the wiki.

Posted: Tue Jul 15, 2014 8:41 am
by levellass
Awesome, that was the one thing that bugged me and kept me using TOM.

Switched you to the windows version of Keenwave; frankly I'm waiting for Abiathar to get sound support. (Also Fleex, I see what you did there with that biblical name!)

I notice all your IMF files are type 0 (Can't be played by Keen) and not type 1 (Keen's kind.) Using your files as they currently are tells the game 'This song is exactly 0 tics long!' and the song doesn't play.

I inserted two test imfs 'morrowind.imf' and simple.imf. The versions of these files in the directory have been changed to type 1. (Notice the two byte difference in size.)

Notice in the patch file I changed song # from $06 to $08 (Increase by 2) first music chunk from 9C to 9A (Decrease by 2) and the other 3 values from $C895W to $C891W (Decrease by FOUR.) Every time you change the number of songs you will need to change those patches or the game won't notice. (If you simply overwrite a song, no problem.)

Posted: Tue Jul 15, 2014 1:14 pm
by MoffD
levellass wrote:Awesome, that was the one thing that bugged me and kept me using TOM.

Switched you to the windows version of Keenwave; frankly I'm waiting for Abiathar to get sound support. (Also Fleex, I see what you did there with that biblical name!)

I notice all your IMF files are type 0 (Can't be played by Keen) and not type 1 (Keen's kind.) Using your files as they currently are tells the game 'This song is exactly 0 tics long!' and the song doesn't play.

I inserted two test imfs 'morrowind.imf' and simple.imf. The versions of these files in the directory have been changed to type 1. (Notice the two byte difference in size.)

Notice in the patch file I changed song # from $06 to $08 (Increase by 2) first music chunk from 9C to 9A (Decrease by 2) and the other 3 values from $C895W to $C891W (Decrease by FOUR.) Every time you change the number of songs you will need to change those patches or the game won't notice. (If you simply overwrite a song, no problem.)
Wow... I thought I had checked those to make sure they were type 1 O_O

Ah well... I don't feel too stupid because I've never done this before, thanks again Lass.

@Fleexy, imf import/conversion for Abiathar *wink wink*

Posted: Sun Aug 03, 2014 7:58 pm
by Fleexy
Well, everybody, it's been quite a while since Abiathar updated and there have been some great additions. Those additions are so major that I decided to call this version 2.0! So, here we go...

UPDATE
v2.0: the customizability update, with lots of other things too!

Documentation

As always, you can get it with the magical auto-updater, or download the v2.0 files in ZIP format. Now, let's go over the changes!

First, there's an entirely new way of starting a project! It's called the New Project Wizard, and it is intended to replace the Dependency Collector. (You can bring the DC back in the config file, ShowAdvancedMenuOptions/LegacyDepsCollector.) As I said, it's a wizard, so it steps you through every part of creating a project and offers a lot more features than the old DC.

The features introduced by the New Project Wizard are amazing. Abiathar now supports Bio Menace: choose to input settings manually, select "TED5 MapTemp/MapHead" for the level format, open the GFXINFOE file that comes with Bio Menace, and run the wizard as usual. You should also be able to open other TED5-created games with that or the other TED5 option (MapTemp/MapTHead).

The NPW also permits you to use tile sheet bitmaps as your graphics source. It supports ModKeen and KeenGraph bitmaps (plus KG grouting), automatically detecting what type it was given. You can also take advantage of Infoplane Override to show a different set of tiles in the infoplane layer than in the foreground layer for the same IDs.

Then, even after you're done with the NPW, you can always come back to it to modify your project setup later, using "Project Settings" under Edit. Also, if you get inexplicable errors in the NPW, you can use its new error reporter to send me a report of the issue so I can help tell you what's wrong.

You know the level maps on KeenWiki? You no longer need a separate tool to make them - just use Abiathar's new "Export Image" option under View. The config file lets you do things like clip the outer 2-tile border, use a custom zoom level, or automatically choose a filename based on level properties instead of specifying one every time.

MoffD and wiivn were very kind and made some icons for Abiathar! There are three of them; they appear in various places.

The Row and Column Adjusters have been extended with the ability to update links only if the foreground tile property makes it appropriate. This is not the default, though, because it takes a little longer to complete and doesn't work if the foreground tile changes in-game (such as on the Keen 5 world map). If you don't want to update links for some reason, there's also an option for that. Press Space while using those tools to choose your link update policy.

The Level Inspector has been made more efficient, and given better detection routines (as has the inspection mode of the Tile Property Modifier). It also has a better report GUI, which allows you to scroll through the list, sort it, or save the list to disk.

Performance has been improved, especially while using the Tile Tweaker. Some miscellaneous improvements all over the place speed up other tasks as well.

The Tile Instance Locator (find tool) now allows placing tiles, and updates when you pick a tile from the tile palette.

Translucent colors are now rendered as the normal color with 50% opacity, as opposed to not showing up at all. This works best when loading from EGA resources.

The Reload Graphics command now uses Shift+Enter as a hotkey, and works a lot better. The crashing has been eliminated and the level no longer vanishes while the reload is in progress. (It does still show the "Abiathar" splash screen while reloading on Linux, though, due to a missing API method.) Speaking of keybind changes, the undo command is now simply Z, as opposed to Ctrl+Z. Tile Instance Locator and Tile Instance Remapper have been given shortcuts.

Code cleanliness has been improved, increasing stability and making it easier for me to maintain it and add more features!

A rare level corruption bug involving Dreams levels with embedded tileinfo has been fixed.

Using Assimilate Infoplane no longer disables the infoplane-only palette, and the strangeness with right-clicking in the combined tileset has been removed.

Finally, the plane controls have changed. As you will see quite clearly, the plane state labels give a more obvious visual indication of how active they are. The business with function keys to set plane state is no longer default; the TED5 style is in. You can still use the menu options or the labels to change the state, or switch to the old behavior in the config file. Tilesets can be called with the spacebar and switched between with 1 through 3 while in palette mode, and remember their Y offset. If you don't want to press Space to access them, use Simultaneous Tileset mode or use the appropriate key in the 7-9 range.

Oh, and Abiathar has a Twitter account now! Follow @AbiatharDev for updates, tips, and general awesomeness! You can also tweet short support requests or bug reports (oh no!) to it.

Happy modding!
Fleexy

Posted: Mon Aug 04, 2014 5:04 am
by levellass
This torrent of new features truly earned the mantle of 2.0 This is an astounding advance over the previous (also astounding) project.

Posted: Mon Dec 01, 2014 3:11 pm
by MoffD
Hey everyone!

Just a quick message for Linux users running Abiathar through wine+mono, the updater failed for me and I found a problem some others may experience.

So I got this from running the updater from the cli:

Code: Select all

Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

Which I found to mean that my mono install doesn't have any ssl certs installed. This can be fixed by running:

Code: Select all

sudo mozroots --import --sync
Which will install Mozilla's certificates (Note: mozroots is in the mono-devel packages)

Posted: Fri Nov 06, 2015 9:45 am
by SupFanat
The direct link to Dropbox is once again broken!
Could you please create some replacement for it? Thank you very much!

Posted: Fri Nov 06, 2015 3:06 pm
by Fleexy
Whoops, I've been forgetting to update it here. Should be up to date now. Thanks for the note!