Gary L. Simmons  rev 08/19/03
Home  Marathon  Joke OT Weak  Web Building  Resumé  Lynx  Hobbies  Extra  Site Map Links Page Extra Go to next department

The Battle Cat's Litterbox

Anvil Tips | HAS Tutorials | Edit Notes | Sounds & Music | Images File | Tools | Nonstandard Colors | Control Modifications | HUD Modifications | Prefs Modifications | PICT Notes | Engine Hacking | Documentation | Bandwidth Saving | Unused Sounds | Hakvil | Shapes 1 | Shapes 2 | Color Clippings | Custom Icons | Clut Notes

HAS' Edit Notes

What have I wrought upon the world? Hopefully I won't live to regret this (maybe I should go play in traffic), but I have started an Anvil Tips section here in the Marathon Page. The Anvil Tips pages will contain tutorials on how to master Forge's evil twin... Anvil. Many believe that Anvil was the result of a teleporter accident involving Forge during an intense ion storm. Regardless it seems to drive people mad, and as a case in point, check out the first installment of Anvil tutorials below by none other than the master himself, Hamish Sanderson. This boy is just warming up, Edit Notes is just the start and soon you will be hacking with the best of them. Good luck! - gls

Anvil MasterClass | Reddig's Texture Notes | Term Picts | Editing Marathon | Sounds | Infinity Physics Slots
The links directly above this line take you to various subject matter on this same page



Top of page

HAS' Anvil "MasterClass" (V4)

Cut to the problem, OK?

Forge and Anvil are buggy. Always have been, and definitely always will be. Nuff said. That aside, here's some notes on how to make best use of what's available (simply to show it can be done).

First suggestion is: acquire a copy of Anvil v1.0.3b4 if you can (a v1.0.3->1.0.3b4 backdater patch should be available from the Hyperarchive for Marathon-Trilogy CD owners). v1.0.3b4 contains virtually all the useful extra features of v1.0.3 without v1.0.3's notorious sequence numbers [eg. bitmap no. = 8.9999] bug. Forge 1.0.3/1.0.4 has a similar bug in numerical fields (eg. heights palette), although this is restricted to 68K version only. v1.0.3 may be worth retaining for Physics Model editing and Sounds editing as it does contain additional bug-fixes

Also, Charles Lechasseur's Sound Editor is a much more powerful sound file editor than Anvil's built-in one (note: I would strongly recommend you use either one or the other, not both, on the same job). My advice is: always try to support the home-grown stuff, not only are folk spending a lot of their own time doing it for free, but it not infrequently turns out to have definite advantages (user-requested features, rapid bug-fixes, etc). And don't forget to write and let them know you care.

Frame numbering bug

The frame numbering bug causes Frames to become misnumbered. The result is that the same frame gets used more than once - you'll generally notice this when you've been been altering frames and then look back to the ones you did earlier and think "hey, that's not what I set it to, it's changed!" The problem occurs when you reduce the number of Frames-per-View in a sequence when the sequence has more than one View. To avoid it, set Views for that sequence to One, then adjust Frames-per-View, then set Views back to its original value. It does mean that you'll have to go through that sequence again, redoing all your Frames, but it's the only way to avoid the frames bug and a damn sight less hassle than clawing your eyes out after 16 hours straight of trying to debug a collection that's been trashed by this bug.

The thorny business of One-Animated and One-Not-Animated Sequences

(Anvil 1.0.3f added these options to the Views menu, except that it's buggy and doesn't actually work.)

What they do:

One-Animated is used for One View sequences that have several frames which should animate.

One-Non-Animated is a little more complex you can have several frames here also, but instead of animating them the Mi engine instead picks one at random and displays that constantly. (It's commonly used for scenery objects and corpses as a way of adding some randomness, e.g. so dead fighters can show a varied and interesting mix of bloodied corpses.)


  • Note that Four/Five/Eight Views always count as Animated (folks who create multi-sided scenery objects and then wonder why their other animated scenery items no longer animate should take note.)
  • When you create a new sequence it is set at One-Animated by default.
  • When you set the number of Views to One, a sequence becomes One-Non Animated.

The problems this causes:

Incorrect settings can often be the cause of commonly reported problems. For example:

  1. Monsters don't die correctly. A dying monster plays through its Dying sequence, but then, instead of displaying its Dead sequence, returns to the first frame of its Dying sequence, where it 'sticks'. This happens because the Dead sequence is set to One-Animated. Dead sequences must be set to One-Non Animated (or Four/Five/Eight Views).
  2. Scenery items you want to animate stay stuck at their first frame. This is generally because the sequence is set to One-Non Animated. (Actually, there is sometimes another reason for this happening in-game the maximum number of scenery items that can animate simultaneously in a level is 20. However, if none of your scenery items are animating, then check the Views setting.)
  3. Scenery items that you wish to remain static animate instead. This is the exact oppo-site to problem 2. (There is a barrel in the Sewage set of Mi that demonstrates this particular screw-up quite nicely.)


Use 1-10 Twiddler to view and edit the View settings for sequences. Note: Twiddler acts directly on your Shapes file, so changes are applied as you make them (it's not like Anvil and other applications where changes are only applied to the file when you Save.)

Also, to set a One-Animated View to One-Non-Animated, an alternative quick method is to set the number of Views to Four, and then back to One.

Related information:

  1. A monster may use an Animated sequence (i.e. One-Animated/Four/Five/Eight, with several Frames-per-View) for its Stationary appearance if you wish. A 'sleeping' monster (one that has not yet been activated) will only display the first frame of this sequence. Once a monster is awake, however, it will animate when displaying its Stationary sequence. This can be useful; for example, for a flying monster which you want to animate (i.e. flap its wings) as long as it is airborne (i.e. a flying monster moving in a vertical direction only will display its Stationary sequence while doing so). In such a case, you may simply use the same Animated sequence for both Stationary and Moving (preferably arranging the frames so that the first frame is also appropri-ate for when the monster is initially inactive).
  2. Weapons-in-Hand sequences can only animate for certain functions; i.e. Idle and Charging functions do not support animating, regardless of whether the sequence used is set to One-Animated or One-Non Animated.
  3. Items (e.g. weapons and ammo items) can't animate.

CLUT editing

(Note that the terms 'CLUT' and 'color table' have an appalling tendency to be used quite interchangeably and with scant regard to their correct use - I'm no exception here, but have tried to use 'CLUT' to discuss the color tables displayed within Anvil and/or ResEdit, and 'color table' to describe the CLUTs generated/exported by Photoshop when working with indexed-color images. I'm sure you follow all this..... : )

There are 3 ways to do this: either use Anvil's Autoblend facility to create nice smooth (sic!) color ramps (well, OK, I'll admit that it does sometimes work, usually when there's a "Y" in the month or something), set every color by hand using the Apple color picker, or get a copy of Charles Lechasseur's CLUT Modifier and a copy of ResEdit, and enjoy the benefits of being able to cut and paste entire color ramps in the blinking of an eye (look in the ResEdit file that accompanies CM for more info). You still need to use Anvil to set no of colors and no of CLUTs, of course (life's much easier if you do all this before extracting the CLUTs with CM).
Note that CLUTs re-imported with CM into the shapes file can contain non-legal colors and Anvil will not attempt to 'legalize' them - be aware that this may be a boon, but is an absolute no-no if you intend your shapes patch to be used on 256 color display (I never set colors manually with ResEdit - I do all manipulations by cutting and pasting the existing colors only). Remember, always test your shapes patch on 256 colors before distributing.

Note that the first CLUT in a collection should never contain duplicate colors, with the exception of black (the first 3 transparency colors don't matter either). [btw: there are 2 reds that appear in both the red-black ramp, and the yellow-orange-red-black ramp - Bungie artists didn't quite follow their own advice about no duplicate colors in the first CLUT, I guess.... Fortunately, they're quite dark reds, so any ugliness caused by swapping aliens' 'uniforms' and finding these colors get confused is generally not too noticeable.]

There is a problem using Photoshop color tables as generated by Anvil. When Photoshop creates a color table, it always insists that the first color is white and the last color is black; unfortunately, Anvil doesn't know this and starts its PS color table with the first color of the first CLUT (which is blue). The resulting side effect is that after indexing an image in PS with the Anvil-generated color table, you save the image and next time it's opened (whether in PS, Anvil or anything else), the background has turned black (and other colors may be affected too). The damage is done (by PS) to your saved image file and is permanent - you'll have to fix it by hand or hope you had a pre-indexed copy saved somewhere else that you can go back to. You can avoid this problem whilst continuing to use an Anvil-generated color table by swapping back to RGB mode after indexing with the faulty color table, then indexing again, this time letting PS generate an Exact color table for itself. Note that if you output a bitmap or entire bitmap collection to PICT format then this PICT file also contains a faulty color table and you should remember to fix this too if you go on to modify these pics in PS or elsewhere.

Another problem with using Anvil-generated color tables - if a collection has more than one CLUT, then Anvil doesn't stop after the first one; instead it keeps on going, adding colors from the following CLUTs until it runs out of CLUTs or reaches the 256 color size of the color table. So you may end up with colors in your color table that you really don't want there.

It is better to import/paste in images that are already indexed, rather than full color - Anvil doesn't tend to index full color images very well, even if all the colors are Marathon Infinity colors (it can still get confused).

In Anvil, don't forget to check that the last color in each color ramp is pure black, otherwise colors may look weird in the game.

Oh, and as for importing PS generated color tables into Anvil, well this is only really of use for Custom color collections (custom weapons-in-hand and high-res custom color landscapes) as it's pretty crap for anything else. Remember that if you import a PS generated color table for custom landscapes, make it 253 colors maximum, as Anvil always wants to keep the first 3 colors in a CLUT for itself (see Anvil's own update notes if this isn't clear).

If an alien collection doesn't require the use of more than the first CLUT - most Marathon aliens use more than one CLUT to give different uniform colors for indicating rank, then there is quite a useful suggestion been made somewhere that you may simply wish to make all 256 colors available in your collection. To do it, you export the Interface CLUT as a PS color table (note that since you're going to re-import this and not actually use it in Photoshop you don't want to 'fix' it at all) and re-import it into the alien collection in question (after setting the collection to 256 colors per CLUT, of course). This is fine, though you won't actually have all the Marathon Infinity colors available (in the case of the Interface CLUT you lose a brown ramp - although there is a total of 256 different colors in Marathon Infinity, you need to remember that black tends to be used more than once in a single CLUT and that takes up extra space).

A useful app to have is 'CLUT Converter' (or is it called 'Photoshop CLUT Converter'?), available from all good Mac ftp sites. This nifty app can convert a PS generated color table into a ResEdit CLUT (especially useful when you're doing stuff like chapter screens).

Finally, go check my Marathon Art Guide (old, but still quite relevant) for info on better methods for creating PS color tables and other stuff.

Cloning collections

When cloning collections, it pays to be cautious - I have a feeling there are bugs loitering in this area ready to catch the unwary. The following method always works though: Open shapes file, clone collection. At this point, Anvil won't realize a change has been made, so go to a different collection and make a make a change (easiest is to copy and paste a bitmap over itself). Now save (& close?). Best to do these cloning operations separately before proceeding with other editing, IMO.
(BTW, I never use Save As - not sure if this is simply due to habit, or if it causes crashes - I always use Save, and backup the file periodically just in case something really nasty does happen.)

Working with Forge and Anvil at same time

Bad habit this: it's better not to have a shapes file open in both these apps at same time (note that Forge always automatically opens the file called "shapes" when it is run - otherwise you wouldn't be able to use the visual mode!). Mostly it won't cause any crashes (mostly), but when you save changes in Anvil it gives the message "Couldn't save due to error". In fact, the changes have been saved, so it's best to close the shapes file in Anvil (click "don't Save" this time if you've already saved) just in case things do turn nasty later on. Your shapes changes won't show up in Forge till Forge is restarted (I think), and again, you may want to play safe by saving any maps and quitting Forge before continuing with your editing. Blame Anvil for not checking to see if a file is already open from another app before opening it itself (I think the game engine is also guilty of this).

Making patch files

Most folk seem to use Charles' Shape Juggler for this job, rather than Anvil's internal patch generator. Mostly this is a better way of doing things (you get a standalone patching app, plus you can specify exactly which collections you want the patcher to replace), however, there is one area where Anvil patch does have a definite advantage; eg. if you only modify one texture in an entire texture set and then use SJ to make a patch, then that patch will contain the entire texture collection (ie. a 1/2Mb patch for a single alteration is pretty irritating if you've got to spend time and money downloading the thing on a slow connection). If you use the Anvil system, however, only the alteration is saved to the patch file, making for a much smaller file size.
As a rule of thumb, if all you are altering is one or two textures then you may be better using an Anvil-generated patch for compactness; but if you're altering whole collections, or wish to create a patch containing specified collections only, then use SJ or something similar.

BTW, got a SJ-generated patch, but want it to replace a different collection to the one originally intended? Simply open the patch in ResEdit and open the .256 resource - each collection is held in a separate resource and numbered according to where it goes - just change that ID to the value of the collection you now want it to replace (the last 2 digits indicate the collection, eg. 1000 is interface 1001 is weapons-in-hand, etc).

Using extra-large bitmaps, cramming extra monsters onto the ends of existing collections, etc.

Well fine, if you insist... but just remember that somebody has to: 1. download the patch file (can be hell if you're on a slow modem connection, and remember that not everyone gets free local calls to their ISPs and long download times can wreak havoc on phone bills!); and 2. run the game with the patch installed (remember, not everyone can dedicate 20Mb+ free RAM to the game engine; plus there's a gray area in memory allocation where there is only just enough memory to load a map, but not enough for the game to run stably - and the player gets crashes when using Save terms, jumping to new levels, etc). Do remember to consider other factors when you are thinking just how nice it'd be to have 500 pixel high aliens throughout the game!

Deleting unused bitmaps, sequences, etc.

Well, you can't. The best you can do is try to minimize the amount of unused rubbish left over in a collection. Pasting 1x1 pixel bitmaps into unused bitmap slots is the best way to reduce file size and reduce the amount of data that the game engine has to load into RAM.
I'm a little unsure still of just how Marathon decides what sound and shape collections it needs to load - I think some stuff (texture, scenery & landscape set, weapons-in-hand, Marine collection, etc. are always loaded, with monster collections being loaded only when they appear in a map - note that it's probably a bad idea to have a monster use a weapon shot or blood splash that's contained in another monster's collection; I remember this causing trouble in M1 where the second monster wasn't present - it's graphics didn't load and M1 would crash when it tried to call the absent graphic).

Adding extra textures to a texture set

Got this one from someone on MMMG a long time ago (apologies, can't mind who). Paste in the extra textures, then go to Sequence editor (there's no sequences present for the standard Marathon Infinity collections, but this doesn't mean you can't add any) and create a new sequence with Views, Frames, etc. Simply allocate your excess bitmaps to those new frames - this will force Forge and Marathon Infinity to load these textures. Bear in mind though that a map created with a (eg.) 36 texture set will crash if then run in a (eg.) 30 texture set - the engine can't find the extra textures and crashes when it tries to display them (so make sure the map is run with the correctly altered shapes file only).

Standard and Custom collections

It's amazing how many folks still manage to get tripped up on this one. : ) Basically, in the regular Shapes file, the Weapons-in-Hand and Landscapes collections actually come in two flavors: Standard and Custom. Note that these are selected via a pop-up menu that appears in top-right corner of the bitmap editing window when viewing these collections. Standard is used when playing in 256 colors mode, whilst Custom is used in 1000s and millions of colors. The advantage of this is that Custom collections don't need to use the standard Marathon Infinity colors, so can use a custom palette best suited to the artwork. Don't forget that the first 3 colors in the custom CLUT are still your transparency colors, however, you don't need to worry about colors being arranged in smooth ramps or anything. As usual, when indexing your artwork, use 253 colors Maximum, as Anvil retains the existing 3 transparency colors when importing a new CLUT.

BTW, it is possible to remove Custom collections if unwanted (removing custom weapons-in-hand might be worthwhile if you really need to reduce file size). However, I'm unsure if the the application for doing this is in general circulation (Charles Lechasseur's Custom Set Remover) - still, if you needed to do this you could probably ask him. I'm unsure if the current version of SJ fully supports replacing of Standard+Custom collections with Standard-only ones (last time I checked was some time ago, and it was only part-way there).

Landscape bitmaps

Note that the default Standard and Custom Landscapes are of different sizes (270x512, 540x1024). This is so that players using 1000s/millions of colors get a better quality landscape - not only are the colors smoother (see above), but the pixel size is much reduced too (the assumption being that anyone playing in 1000s+ colors can afford the extra memory requirement of the bigger texture). Note that this is dependent on the width of the Landscape bitmap itself (normally 512 or 1024) - Marathon Infinity simply scales it to fit a 180° view. (Interestingly, a 256 wide bitmap tiles 4 times - 90° each). Remember to produce your artwork to suit both Standard and Custom versions, of course.

Landscape height is completely arbitrary, by the way. The values 270/540 are simply those that suit the default Maximum Elevation (in PM - the maximum angle you can look up or down), which is normally 42.6666. Thus, if you increase the Maximum Elevation, you also need to increase the height of your landscapes to avoid any smearing when looking up/down at a landscape view. BTW, note that because Marathon Infinity is not a true 3D engine (unlike eg. Quake/Unreal), the view will look increasingly distorted as you increase the Maximum Elevation - so although you could increase the value considerably the results would probably look pretty ugly (both walls and sprites would look extremely strange as a result). A modest increase might be worthwhile if you are replacing all your landscapes and wish to add a little bit of oomph to game play (nothing like an extra 5° when trying to take out pesky snipers on a high ledge;).

Using non-standard colors in Standard collections

A few notes on sounds

(Editor's Note: For more information about sounds please see Sounds and Unused Sound Slots. - gls 10/09/2000)

Anvil 1.0.3 or Charles Lechasseur's Wail are your two basic choices here. Wail is better featured than Anvil (it's certainly my preferred choice), allowing sounds to be deleted, selecting sounds via sub-menus according to class (much more convenient than scrolling the full list), copying and pasting of groups of sounds between slots, stripping of 16-bit sounds to create smaller 8-bit-only sound files, altering slot IDs, etc. One thing that must be observed, however, is that if you do decide to use Wail or Sound Editor, you should not then use Anvil again on the same Sounds file - because Wail allows you to delete sounds and make other changes that Anvil can't, an Wail-modified Sounds file will become corrupted if edited and saved in Anvil (Anvil saves the changes incorrectly). Make sure you read the Wail readme well, though, as it's a more complex beast than Anvil (although the basic editing window is actually pretty similar, making it easy to get to grips with) - features such as turning on Transfer to/from clipboard in Clipboard prefs makes it much more convenient to use when copying and pasting sounds in and out (it can import/export system 7 sound files too).

One other bit that often causes confusion is the Volume setting (soft/medium/loud). This does not actually alter playback volume of sounds; what it actually seems to alter is penetration depth of sounds (to what extent they can pass through walls, closed doors, etc.). Everything else should be fairly clear (though it's a bit unclear whether or not all of the check boxes actually do anything...).


Suffice to say it is entirely possible to produce clean, unbuggy custom Shapes/Sounds files using the available tools, but only if you know exactly where the problems lie and how to avoid them. It's a complex business, so make sure you know what you're doing before you tie yourself in too many knots - there is plenty of 3rd-party info out there, and if all else fails you can always try resorting to a bit of good old-fashioned trial-and-error (this is how most folks figure things out sooner or later - hell, even us "experts" were once green and clueless too!;).

Oh yeah, and always, always, ALWAYS keep BACKUPS!

Seriously - the more backups you keep as you're working, the better. You can always throw away intermediate copies later, once you've checked everything is well, but do retain any major version changes just in case something unexpected does crop up later on (note that Shapes Juggler can be terribly useful for shuttling in and out replacement collections if you do discover bugs later on - certainly saves rebuilding an entire shapes file when this does happen : ).

Good luck!

Top of page

Randy Reddig's Texture Notes

These notes used to be present on the HA, but I guess they were lost in one of the Big Bad Server Crashes of '98. They are so good, however, that I've bundled a copy in here for your convenience.
So, All Hail Ydnar!

: )

Loren Petrich: "One suggestion for wall-texture creators: try to consider the contexts in which the textures are likely to appear in existing maps; some textures have what look like lights, so you may want to have your textures have lights in the same places. Likewise for semitransparent textures (grilles, etc.), liquids, and so forth."

Loren is on the right track. A couple hints about creating textures...

  1. Your best friend with textures in photoshop is the "offset" filter. Bar none. Use it once, with offset of 64 and 64 (assuming a 128x128 pixeltexture) and thereafter hit command-f to check seams on your texture.
    Another useful thing is use the "make pattern" command and keep a scratch document 384x384 or larger open. Every once in a while, select-all andfill with your pattern. That lets you check how the texture would tile on larger walls/floors.
  2. Photoshop has a great color swatch palette. For the longest time mine was simply the 256 color m2/m:oo color table. This comes in handy when creating textures from scratch. you can match up colors nicely, and end up with a better texture after reduction to 8 bits.
  3. Create your textures in 128x128. not 256x256, not 512x512. "Why?" you might ask, "I'll get better results, i.e. nice anti-aliasing,smoother edges, etc. if i draw them larger and scale them down." Simple reasoning. A texel (texture pixel) in marathon is roughly an inch squared. That doesn't leave a lot of room for detail. Scaling single pixel lines drawn in a higher-resolution texture often smears them into blurred two pixel lines in the final 128x128 texture. you can get the best detail possible by working in the final resolution. Which leads me to...
  4. Zoom in. Work pixel-by-pixel if you have to...every one counts.
  5. When reducing your textures to 8-bits, never, ever, ever, ever have"dither" turned on. This is bad. Since the marathon engine doesn't support mips-mapping, dithered textures tend to moire at distances, giving them a flickering, silvery quality. Smooth color blends and flat areas do that aswell, but much less noticably. One side effect of dithering is that it gives textures a worn, rusty,"textured" sort of feel. this can be achived with a noise filter (as Loren said), rather than letting Photoshop toy with your colors by applying a dither to your texture.
  6. Recycle. Seriously. Taking bits and pieces of textures you've already drawn and laying the mover your new textures, with varying levels of opacity and draw mode (hard light and multiply often give interesting results) add a certain degree of consistency and "theme" to your new texture set. Textures that would otherwise clash can take on new symbiosis when meshed with a bit of similar lines.
  7. Play around. Don't depend on KPT to give you what you want. If you have a tablet, use it. If you have pets, tape the mouse button down and let them walk on it. Sample. Use the marquee. Use hue/saturation until your colors gel. Feather a little brightness around your lights (they glow). Don't use red and green in the same texture. Get in the holiday spirit, use both red and green. Bone, slate, and faded green are good colors.please redo the Pfhor texture set.

Hope this helps. my city is suffering from a brownout now, so i'd better post this before it becomes a blackout. : )

ydnar : ) oo

Top of page

Adding Term Picts, Chapter Screens, etc. to your Map

Create a ResEdit file called 'Terminal Picts" in the same folder as your unmerged maps, PMs etc.

Paste in your 256 color chapter screens into a 'PICT' resource, giving IDs from 1500 (level 0) onwards. (1599 is Endscreen.)

Paste your CLUTs for the chapter screens into a 'CLUT' resource, giving them the same IDs as the picts they go with. (You'll need something like Photoshop CLUT Converter to convert PS CLUT files into resources - I think Graphic Converter also may do something similar though I've not used it myself.)

If using chapter sounds then it's the same sort of thing again.

For additional screens in 1000s colors, start at ID 11500 (they don't require CLUT resources, of course).

Merge the lot. Forge does the rest.

Top of page


This is a list of some of the more advanced info relating to M editing. Most of it will probably only be of interest to those doing serious modifications to M (eg. new textures, shapes, weapons., etc). It's intended as reference only, not as a complete "how-to" manual - if you don't already know how to use tools such as Anvil or ResEdit then this isn't going to be of much use to you as I simply don't have time to write a full guide to M editing (something that would take far longer to write than to learn for oneself). And bear in mind that most of the "experts" around today got that way mainly through trial-and-error in figuring things out for themselves; even they had to start at the beginning, once. The best way to learn is to make backups, then dive in and experiment - you'll usually find a lot more out that way than from reading some long, boring description.

That said, onwards.....

M2/Marathon Infinity Application - stuff worth knowing...

Various stuff is contained in the Marathon Infinity app itself; some is easily accessible in the Resource fork using ResEdit, and some is accessible using Fux! only. If you're doing serious mods then you really ought to grab those apps (especially ResEdit) and explore.

Main resources to know of:

129 - Filenames (of support files, preferences files, etc)
137, 150 - weapons and ammo names (as seen in HUD) Several of the other resources are also worth exploring for yourself.

nrct, finf, CLUT
Only of use to folk wanting to alter layout and design of main controls screen and/or HUD

Also contains the default icons for all the support files and various other stuff, but I'm not going to bother explaining, cos if you don't already understand this stuff then it's not worth messing with.

In addition, Fux! gives you access to other stuff not normally available to folk (and this is really only one for experienced folk); eg. Media types (underwater color-shift, damage), Items (Maximum carried, type), Weapons display in HUD (position of weapon and ammo graphics, type and size of ammo display), Scenery Objects (breakable, solid). Invaluable if you're doing some heavy customisation, though, as it allows you to really improve the quality of your mods.


Images file - stuff worth knowing...

Less to know about this one - all it contains is PICTs for intro screen, main screen controls, credits and HUD. Note that PICTs numbered 1xxx are 256cols, 2xxx are 1000s colors, 3xxx are millions colors. Actually, you can reduce the size of the file by deleting those you don't want (with the exception of the 1xxx PICTs, which you _really_ don't want to take out) - frankly, I don't believe the 3xxx ones serve much useful purpose as there's generally a pretty small visible difference in quality between thousands and millions (and I suspect most players don't play at above 1000s colors anyway). Bandwidth monsters, naturally, will insist on having at least three flavours of everying (especially when at least two of those flavours are pretty hefty in size), but I'm sure they'll be happy to take the subsequent flak from those of us still downloading onto floppy disks from 14.4 modems on phonelines with local call tariffs halfway around the world (and I happen to think there's still a few of us around, so there!;P).

BTW, same sort of thing applies to Shapes and Sounds files - you don't _have_ to destribute Custom color shapes collections or 16-bit sounds if you don't want to. Though if you don't, you should really make sure that you remove any excess of the former (for me this means the Weapons-In-Hand collection [I _still_ don't see a significant difference in quality, people:], though not Lanscapes [which do make a real difference in 1000s colors]), and make a note for the latter that the scenario should be played in 8-bit sounds only (in fact, most sounds in the Marathon Infinity sound file don't have 16-bit equivalents in the first place - you just hear the 8-bit versions).

Okay, some facts and figures now...

The following is some of that really useful stuff that's never findable when you need it most. Hopefully, compiling some of it together will make things easier, and I've tried to credit original sources as best I can in the process.


M2/Marathon Infinity CLUT resource info (Bo Lindbergh)

CLUT 130 entry usage:

0: foreground color for ammo indicator bars[*]
1: background color for ammo indicator bars[*]
2: general background, used for terminals and the surrounding area on screens larger than 640x480
3: foreground color for inventory text
4: background color for inventory headings
5: background color for other inventory text
6-13: player colors
14: unknown
15: unknown
16: background color for terminal status lines
17: foreground color for terminal status lines
18-25: foreground colors for terminal text

[*] unless you've changed it with Fux! :-)


M2/Marathon Infinity nrct resource (Mike Trinder)

[This defines where main controls screen buttons and HUD items go.]

nrct Resource ID=128 Mara 0

18 rects

---- main game screen

1) 326 300 338 473 (net player name)

2) 464 398 475 578 (O2)

3) 464 181 475 361 (health)

4) 338 17 0 0 (motion detector, this is only the Top-Left coordinate of the place to put the motion detector, as the height and width are fixed) {NB invalid rect}

5) 0 0 0 0 (looks like a disabled something (the mic maybe?) doesn't do anything if you put a valid rect in here)

6) 352 204 454 384 (weapons/items list)

7) 352 384 454 596 (weapon graphic)

---- start new game screen

8) 179 101 210 268 (begin new game)

9) 221 25 253 238 (continue saved)

10) 263 11 294 223 (gather net)

11) 301 38 333 236 (join net)

12) 304 421 331 563 (prefs)

13) 386 231 413 406 (replay film)

14) 345 363 372 516 (save film)

15) 344 83 374 271 (replay saved film)

16) 206 245 347 382 (credits - central marathon logo)

17) 264 522 291 588 (quit)

18) 0 0 0 0 (obviously was the 'central graphic' button in the M1 interface, but doesn't do anything even with a valid rect in here)

If you want to change any of them, get hold of a recent copy of ResEdit and it will have the nrct editor, just type in the numbers you want. The mac defines rectangles top,left,bottom,right and there is some contentsion as to whether this includes the pixels on the bottom and right edges or not (depends on the toolbox routine you call : ) so I'm not sure which protocol Marathon is using.


M2/Marathon Infinity finf resource (Mike Trinder)

finf resources: this is another standard Mac resource for listing a series of Font Number, Style and Size parameters. Each number is a word, so takes up two bytes, the first number is the number of entries, then followed by 6 byte chunks listing the info. Only hard thing is the font numbering system: this is easy for the apple defined fonts, but for commercial fonts things are more complex as the ID's can change dynamically to resolve conflicts. What you want is what is known as the family ID: easy ones are:

ID (decimal) Font Family

0 system font (not necessarily Chicago)
1 application font (not necessarily Geneva either),
2 NewYork
3 Geneva
4 Monaco
5 Venice (not that I've seen a system with venice on it for ages)
6 London (see venice)
7 Athens
8 SanFrancisco
9 Toronto
11 Cairo
12 LosAngeles
20 Times
21 Helvetica
22 Courier
23 Symbol
24 Taliesin

Mara 2/Inf has two, ID 128 and ID 130

ID 128 has 7 entries (these are in Hexadecimal)

  1. ) 4,1,9 = Monaco, Bold, 9 point. This is the Weapon/Inventory list text, but not the number of each item that you are holding. changing font/style/size is OK, and even changes the dark green bg that the list title is drawn on.
  2. ) 4,1,9 = Monaco, Bold, 9 point. This is the description below the weapon graphic. It is not clipped the weapon graphic rect in the nrct resource, so make sure the text doesn't go outside the nrct (or make the rect bigger) or you will leave green pixels lying about.
  3. ) 4,1,9 = Monaco, Bold, 9 point. Not sure, but could be the Net Name. Not tested as noone about to play against.
  4. ) 4,0,9 = Monaco, Plain, 9 point. Weapon list numbers.
  5. )16,0,C = Courier,Plain, 12 point. Terminal text. Style affects the top and bottom status bar text, but the inherent styles of the terminal text override. Size is respected... 9 point looked lovely. Had some hangs and the like as the level was loading when I changed to Geneva (3) instead of courier. You'll have to test more thoroughly if you want to alter the fonts.
  6. ) 16,1,E = Courier, Bold, 14 point.
  7. ) 4,0,9 = Monaco, Plain, 9 point. Nothing changes (could be NetName, see above)

ID 130 has 1 entry

  1. ) 4,0,9 = Monaco, Plain, 9 point. Can't seem to find what it does.

None of these appeared to change the Map title or any text on the map: I may have missed this as I forgot to check at first.

Problems and fixes for "1-Animated" sequences (Mike Swinger/James Hastings-Trew)

Be sure to do this on a copy of the file.

An object that is animated can only have 1 view... and Anvil does not distinguish between 1 view, and 1 view Animated. Anvil 1.0.3 does.. but messes up other stuff [note: the '1-Animated' option still can't be selected in Anvil 1.0.3 due to a bug - HAS]. The value in the object file for "number of views, NOT animated" is A0 (or 10 to you and me). The value in the object file for "number of views, animated" is 01.

So.. do a search in the Shapes file with Norton Disk Editor for the NAME of the object you wish to modify. The first AO after the object name is the byte you want to change to a 01. Then the object will animate according to the values you set in the shapes file for number of frames, ticks per frame, transfer period, etc.

[BTW, note that 4,5&8 View sequences don't suffer any such problems - HAS]

Adding extra textures to texture sets (various)

Note that Texture Sets 1,2,3,5 all normally support 30 textures, and Set 4 supports 35. These numbers are determined in the M app - even if you paste in extra bitmaps the engine won't normally load them and you won't be able to use them. To get around this:

Under Expert menu create new bitmaps, paste in new graphics. In Sequences Editor, create New Sequence. Set a Frame to use each of the new bitmaps. Save.

This forces M to load those extra bitmaps. You should now see those extra bitmaps next time you are in Forge's visual mode (if you don't then you've obviously done something wrong:p).

Top of page

Marathon Infinity Physics Slots

Yes kids, you get a party hat as part of your EditNotes package. Well, it is a party hat after you download it, print it out and fold it up into a little hat. OK, it is the end of a long hard page and I am barking mad by now, so bear with me here. What this is is (... hey, just for clarification, "is" is defined as just plain "IS" for criminy sake, no need for parsing here) a text file you can download (4K) that is a list of all the Infinity Physics Slots. You can print this out and add your personal notes as to what you used those slots for in your own project. The HAKVIL patch (coming soon) renders this list a little obsolete, as one of the things HAS did with that was add numbering to all the menus (He used a version of HAKVIL in porting TM1's sounds and physics to M2, scribbling notes on a couple sheets A4 of which number of slot was used for what monster/effect/sound and the whole process was a breeze and took very little time as a result). So He'd recommend using HAKVIL and its numbered slots for tracking alts above Anvil plus this slot list.


Anvil Tips | HAS Tutorials | Edit Notes | Sounds & Music | Images File | Tools | Nonstandard Colors | Control Modifications | HUD Modifications | Prefs Modifications | PICT Notes | Engine Hacking | Documentation | Bandwidth Saving | Unused Sounds | Hakvil | Shapes 1 | Shapes 2 | Color Clippings | Custom Icons | Clut Notes

Top of page

Back to the Litterbox