1985 · Novagen Software

Mercenary

This minisite was contributed by air, unorig. It’s currently claimed by air who is editing it to reach a Gold tier standard.

Eight craft to board, and one flying step that nearly all of them share: the models, the sixteen bytes that set each craft's handling, and top speeds that match Zzap!64's table to the digit.

01 · Models

All eight craft

Objects 0 to 7 are the craft B can board. The other 56 objects are on the Objects tab.

This catalogue reads the game from listing.json, so it needs the built site.

Every model drawn from its bytes, through the pointers at $2800/$2840: the last vertex number, then three signed bytes a vertex (X, height, Y) in steps of 16 units, then the edges ($97AB-$97F9). There are no faces, so every edge shows. Where each object starts, its room and its flags are the game's tables at the start ($2480-$25FF, $2880-$29FF). Drag the large view to turn it.

02 · The craft

All vehicle stats

Each craft's handling is sixteen bytes at $9DAD, copied to $BEA0 when you board and after every airborne pass.

RecordCraftRoutineTurn keptTurn stepPitch stepBankClimbSpeed keptCeilingThrust
The table is read from the game's bytes in listing.json, which the built site serves.

Decoded from the bytes at $9DAD by the loader $9D99: each float is a mantissa byte m and an exponent byte, worth (1 + m/256) × 2^e, e being the exponent byte's top six bits (signed) and bit 0 the sign. Byte 12 ($10 in records 0-7) is read by nothing. The Dart and CHEESE are named by the game's own messages and the new ship by the script that runs when it is shot. The game prints no name for the Hovercar, Concord 111, Hexapod or Sprintcar. Those four names are from the hire tariff on the Central City map in Novagen's Targ Survival Kit, matched to the objects by shape and top speed. Zzap!64 13's table calls the same four the Car, Jet, Palyar Diamond and Land Dart, and gives where each one starts. The tariff also lists a Casper-Hanley Eagle 8SE, "available soon". Read the initials, with the 8 as an E: it is the CHEESE.

03 · Flying

The flight model

Every craft but the interstellar ship runs the same flying step once a pass, with its handling read from a 16-byte record: take-off needs speed, the climb fades above the craft's ceiling, and a touchdown crashes only on a steep drop or a steep nose.

crash

Stick

Throttle keys

Run

    The flying step ($9F17-$A13C), the ground routine ($9EFD) and the throttle keys ($B47E, $B499), ported from the listing with the game's two-byte floats and its sine table, and the readouts drawn with the panel's own glyphs from $7800 ($B53D). Checked against the Dart recorded in the emulator (all 253 passes match in speed, throttle, pitch, height, X, Y and the motion record) and against the original code in a 6502 simulator (1.2 million random passes identical). Keys work when the plate has focus: arrows for the stick, digits, SHIFT + digit, SPACE, + and -.

    The throttle keys set a target, and the speed chases it: each pass the speed becomes (speed + throttle × thrust) × kept. On the ground a craft slower than 128 has its nose held level. Faster, it takes the level pitch's sine, -0.003, sinks below height 64 and lands again, every pass, until the stick lifts the nose. In the air the height changes by speed × sine of the pitch × the record's climb factor; climbing above the ceiling byte, that factor's power of two is replaced by the ceiling minus the height's top byte. A touchdown crashes when that pass's height step is 256 or more, or the nose is more than 45 degrees down.

    Two things follow from the arithmetic. Every craft has a hard ceiling: above its ceiling byte the climb shrinks until the truncated step is zero. Flat out with the nose straight up, the Dart stops at ALT 24000, well short of the Colony Craft's 64997; with the Poweramp, as in the Concord 111 or the CHEESE, the top is ALT 105000, which the panel prints **000. And the sine table is sampled half a step off, so the level pitch's sine is −0.003, not 0. Level flight sinks slowly, a fast craft on the ground lands again every pass, and in reverse a craft climbs: SHIFT + 0 lifts the Dart off the ground with its nose level, 9 units a pass. The emulator shows the same heights, 67, 74, 82 and on.

    04 · Top speeds

    Top speeds: Zzap! 64's table

    With key 0 and then + held until the game refuses it, the port's top speeds are the figures Zzap! 64 printed in May 1986.

    CraftStarts atAir, the portZzap!64Ground, the portZzap!64
    The speeds are computed by the port, which reads the game's bytes from listing.json, served by the built site.

    SPEED as the panel prints it ($B5A8): the speed's whole part, high byte as two digits and low byte × 25/64 as two more. Zzap! 64's figures are green where the port gives the same. Holding + multiplies the throttle by 1.03 a pass and stops after 23 passes at 32512, where the next step would reach 2^15 ($B4A7). On the ground every craft lands each pass and takes record 8's speed kept, 0.25. Zzap! 64 13 (May 1986), pages 61-62.