Analysis model: gpt-5.5 xhigh

Galaxian Graffiti by Koyote Kid - Technical Dissection

Galaxian Graffiti is an extremely early MS-DOS cracktro / cracked-game front screen credited to Koyote Kid. Demozoo lists it as a Cracktro, released in 1984, on MS-Dos, with a Defacto2 external file record for GALAXIAN.ZIP. The Demozoo page also carries an important caveat: the release year is a guess based on the copyright notice found in the binary and the use of the wording broken by.

Release year: 1984, catalogue/copyright-derived

Source Status

This pass is source-limited.

The public Defacto2 page listed by Demozoo is:

The corresponding direct-download pattern is:

Both were blocked from this environment by Defacto2's current front-end protection, and the RGstation mirror page exposed screenshots but not the ZIP bytes without a logged-in file-output step. I therefore did not obtain galaxian.com, and this article does not claim opcode-level disassembly.

What is available and used:

Saved-source and image hashes:

fd646ef2cbe5630e2b6bbc8e4851be641a99fcf071d350f96c6ee8019990c8c3  demozoo-362692.json
166e64ccddf85957f76bb0d03a112896a16b7cb4f03de4378f1645d061c401ce  demozoo-362692-refresh.html
4b6f52a0580307247db3b220236e35ea551f1d5df94e7df395bb4cd9647a996a  rgstation-open.html
0c6465d190d8e617d6a1686099a6c57a3a0ee886784da542e104592100a65b24  galaxian-graffiti-demozoo.png
2aeaf80214fbe3104ed29f2504e3f6010575e0863143456dff0d4bce0fdc3047  galaxian-graffiti-rgstation-intro.png
9d6e36db00f9562ddb94e5647c24168e7a7469149c303031fd6f943eab0b5370  galaxian-graffiti-rgstation-game.png
d53fe0b6d8fd7c2a954a42a85c0e98718fbc198377174741e487aa4b5f4a0184  galaxian-graffiti-rgstation-options.png
0faac032852c55adae51798e8da57580d5829108c936f1b8b297ab071cf8788e  galaxian-graffiti-public-frames.png
e7138e1c6b873a2ee50fca967f470e883aefb0f35798c38a878d5d90bb7aa803  galaxian-graffiti-layout-map.png

The analysis below is therefore a display-format and control-surface reconstruction. It should be upgraded if the original ZIP becomes reachable.

Public Frames

Galaxian Graffiti public frame contact sheet

The public evidence shows three different states of the package:

Frame Source What it shows
Demozoo cracktro frame Demozoo screenshot The catalogued cracktro/title surface: ATARISOFT PRESENTS, GALAXIAN, BROKEN BY, THE KOYOTE KID, and F1 / F2 commands.
RGstation intro frame RGstation screenshot The same screen in a green/red/orange palette variant, at a clean 320x200 size.
RGstation game frame RGstation screenshot The actual Galaxian playfield: score row, alien formation, starfield, player ship, missile/projectile pixels, and bottom status row.
RGstation options frame RGstation screenshot The built-in options UI with function-key controls, keyboard/joystick selection, sound toggle, level, and Video: R. G. B. setting.

There are no exact runtime timestamps for this article because no runnable binary was obtained. These are public static screenshots, not local DOSBox-X captures.

Static Layout

Galaxian Graffiti static layout map

Front-page media note: the card uses the public-frame contact sheet, the public Demozoo screenshot, and the generated static layout map directly. I did not make a GIF for this pass because the available evidence is a set of untimed public static states, not a captured playback sequence.

The intro frame is almost certainly one static screen plus keyboard dispatch. Its visible regions are:

The layout is not a scrolling or multiplexed scene in the available evidence. It is a front screen grafted onto a small PC conversion. The interesting part is the date and purpose: it is early enough that the cracktro is still very close to a modified title/menu page, not a standalone demo layer with music, scrolltext, and moving logo machinery.

Palette Evidence

The copied screenshots have very small palettes:

Demozoo cracktro frame, 640x480, 4 colours:
300696  #000000  black
  5234  #00aaaa  cyan / medium-intensity green-blue
  1194  #aa0000  red
    76  #aaaaaa  grey / white-star slot

RGstation intro frame, 320x200, 4 colours:
 62659  #000000  black
  1083  #00aa00  green
   244  #aa0000  red
    14  #aa5500  brown/orange star pixels

RGstation game frame, 320x200, 4 colours:
 61513  #000000  black
  1758  #00aa00  green
   422  #aa5500  brown/orange
   307  #aa0000  red

RGstation options frame, 640x400, 2 colours:
235700  #000000  black
 20300  #00aa00  green

The capture variants disagree on whether the main text colour is cyan or green. That does not necessarily mean the software had two different intro pages. Early PC screenshots of CGA/RGBI material often differ depending on the emulator, monitor profile, or game option selected. The options frame's Video: R. G. B. line also suggests the game has display-configuration logic, so a green/red RGB mode and a cyan/red capture path are both plausible public views of the same underlying small-palette program.

The RGstation intro frame is the cleanest reconstruction base because it is already 320x200. The Demozoo frame is 640x480, has the same sparse-screen structure, and appears to be a scaled/captured presentation of that logical screen rather than an independent higher-resolution mode.

Probable Display Mode

The public frames fit a simple 320x200 indexed or CGA/RGBI-style display. The intro could have been implemented in any of these nearby ways:

Variant A: CGA graphics page
  INT 10h mode 04h/05h or equivalent register setup
  precomposed 320x200 2-bit page
  copy page to B800:0000
  poll keyboard for F1/F2

Variant B: BIOS/text-plus-game renderer
  game already has a pixel/font renderer
  clear black playfield
  draw 8x8 or custom bitmap text in selected colours
  place star pixels through the same pixel routine
  poll keyboard for F1/F2

Variant C: game title routine with patched strings
  original PC conversion supplies menu/options/game framework
  cracker changes title/menu text and maybe palette constants
  F1/F2 dispatch remains part of the original program

The third variant is especially plausible because the options screen is a real game UI and the bottom function-key line looks integrated, not appended as a separate cracktro-only prompt.

Expected Keyboard Dispatch

The visible controls reduce the title-loop shape to a very small state machine:

title_loop:
  draw_or_keep_intro_screen
  key = read_key()
  if key == F1:
      start_one_player_game()
  if key == F2:
      show_options_screen()
  otherwise:
      title_loop

On IBM PC BIOS, function keys are commonly read through INT 16h; after a function key, AH contains the scan code while AL is zero. The likely scan codes are:

F1  scan code 3B00h
F2  scan code 3C00h

If the program avoids BIOS and reads the keyboard controller directly, the same visible state machine still applies, but the comparison would be against raw set-1 make codes:

F1  3Bh
F2  3Ch

For a 1984 compact PC game, the BIOS path is the conservative default assumption. There is no evidence in the screenshots that this screen required interrupt hooking, custom repeat handling, or keyboard latency tricks.

Probable Inner Loops

The available public screenshots do not prove the exact code, but they bound the likely inner loops tightly.

Full Page Copy

If the title is precomposed, the page painter is the classic early-PC loop:

; likely shape, not disassembled from this binary
mov  ax, 0b800h
mov  es, ax
mov  ds, screen_segment
xor  di, di
xor  si, si
mov  cx, 8000h       ; 16000 bytes / 2, CGA 320x200x2bpp page
rep  movsw

This is the same family as other 1980s cracktro screens in this collection: one already-packed frame, no decompressor, wait for a key, then branch into the real program.

Bitmap Text Stamp

If the title is drawn from glyphs instead, each visible word is produced by a small rectangle writer:

for each character in string:
  glyph = font[character]
  for row in 0..glyph_height-1:
    bits = glyph[row]
    for bit in 0..glyph_width-1:
      if bits has bit:
        plot_pixel(x + bit, y + row, colour)
  x += glyph_advance

The blocky letter shapes make a byte-wide or nibble-wide font likely. The GALAXIAN logo is wider and more stylized than the small ATARISOFT PRESENTS line, so it may be stored as a separate bitmap/logo strip rather than rendered with the same font.

Starfield Writes

The starfield in the intro is sparse enough that it does not require a background generator. It can be a short coordinate table:

for each star in star_table:
  put_pixel(star.x, star.y, star.colour)

The RGstation intro frame has only a handful of orange/brown points. The Demozoo frame has a similarly sparse set of grey points. That makes an animated starfield possible but unproven; with only static frames, the safer conclusion is a fixed scatter of decorative pixels.

Options Screen

The options screen is text-heavy and two-colour. Its most likely implementation is not a custom bitmap scene but a text/menu printer over the same graphics surface:

draw_options:
  clear_screen()
  print_centered("Game Options")
  for each option row:
    print_text(row.y, left_column, key_name)
    print_text(row.y, action_column, description)
  print_current_settings()
  wait_for_function_or_letter_key()

The visible choices show this package is more than a one-screen cracktro. It has game configuration state:

F1   Start one-player game
F2   Return to intro screen
F3   Select number of players
F5   Select difficulty
P    Pause/resume game
X    Joystick calibration
C    Keyboard assignments
S    Sound on/off
F7   Joystick/keyboard
F8   RGB/composite video
F9   Roll whole screen left
F10  Roll whole screen right

That F8 display switch matters for the palette discrepancy above.

What The Crack Changed

The public metadata and visible text point to a small modification rather than a later scene-style loader:

So the cracktro's purpose is probably:

enter program
show modified title screen with cracker credit
wait for F1/F2
if F1: continue to original game entry
if F2: enter original or lightly patched options menu

That is exactly the missing link between crack screens and later intros: the credit screen is already self-conscious, but the code is still likely welded to the game front end.

Upgrade Path

If galaxian.zip becomes reachable, the next pass should replace the probabilistic sections above with:

Until then, this article should be treated as a visual/display reconstruction, not a binary dissection.