Analysis model: gpt-5.5 xhigh

Noname by 2000 A.D. - Technical Dissection

Scope

Noname is a 1993 MS-DOS demo by 2000 A.D., credited in the archive to Anxious. Scene.org keeps it as noname.zip in the The Party 1993 PC demo directory. It is useful for this pass because it is not one of the familiar top-table TP93 entries, but it still contains a real packed 386/VGA demo, an unpacked show sequencer, and a standalone ProTracker module.

Public references:

This writeup is based on the scene.org archive, bundled text, Demozoo and Pouet metadata, MZ header parsing, UNP expansion under DOSBox-X, ProTracker module parsing, strings, short disassembly of the unpacked entry and effect blocks, byte-pattern scans, and brief DOSBox-X smoke runs. It is not a full source-level reconstruction.

Private contact/address details embedded in the NFO and exit text are deliberately omitted.

Release Context

The bundled FILE_ID.DIZ says:

NONAME from 2000AD
Released at the Party-93

The current scene.org result file lists the ranked The Party 1993 PC Demo table through The Newcomer by Pyten/Pyton, but does not include Noname in that ranked excerpt. Demozoo's amended The Party 1993 page and Noname production page list it as an MS-DOS demo in the The Party 1993 PC Demo competition, with a 28 December 1993 release date. Pouet lists the production as an MS-DOS demo by 2000AD with a July 1993 release date.

The bytes explain the disagreement. NONAME.EXE, NONAME.DAT, and NONAME.NFO have ZIP timestamps of 23 July 1993. The unpacked executable also prints NONAME WAS RELEASED ON THE 23'RD OF JULY 1993!. The DIZ, however, claims a The Party 1993 release, and Demozoo places it in that party's PC demo competition. I treat it here as a 1993 2000 A.D. MS-DOS demo associated with The Party 1993, but not as a ranked scene.org result-file entry.

Examined Files

Archive hash:

406b76604283f89289ed7d03fc766b255537f244ced5d80e6741c4491fd6bd6f  noname.zip

HTTP metadata observed from scene.org:

content-length  197659
last-modified   Mon, 03 Apr 2000 05:49:31 GMT

ZIP members:

FILE_ID.DIZ       48 bytes  party description
NONAME.DAT    234342 bytes  31-sample ProTracker module
NONAME.EXE     45435 bytes  packed MZ executable
NONAME.NFO       666 bytes  short author note

Extracted hashes:

5f9690f9aded117d8d9a612c6c24557f072d3c6ccf488fcb90f2fbf8a02342  FILE_ID.DIZ
b8c260ccaacb08e52141aba3303f84ead097da197b0f21aca5d69afaa036d9ba  NONAME.DAT
cd5544f7227a1f8e6f339bd2131906825aaa326f1de8000c03fd880a4b747b66  NONAME.EXE
5ab845f7ef19e0ac16bda4dfb8b9280a742cc208947916b7ce75581ccee52fda  NONAME.NFO

The NFO is frank about the production's scale: it calls the PC a strange machine for demo coding, says the result is not a world-top-ten demo, and asks to hear from other PC assembler coders. That tone matches the binary: compact, home-grown, and still very much a real 386/VGA demo engine.

Packed Loader

The archive executable is a packed MZ program:

file size       45435 bytes
MZ image size   45435 bytes
header size       144 bytes
relocations         0
min/max alloc   3108/ffff paragraphs
stack           0b18:0400
entry           fff0:0100
entry file off  100090h

The fff0:0100 entry resolves outside the file image, which is the packed-entry style also seen in several early DOS demo wrappers. There is no PKLITE, PKWARE, LZEXE, or WWPACK marker. The MZ header does, however, contain an identity string:

NONAME by Anxious of 2000AD!

The unpacker stub begins at file offset 0090h. Its early code checks memory, moves a small decompressor to another segment, then runs a bitstream depacker using lodsw, shifts through a 16-bit bit buffer, emits literal bytes with movsb, and copies earlier output runs with rep movsb. This is a generic LZ-style back-reference depacker rather than a named public packer signature.

Running UNP under DOSBox-X expands the executable cleanly:

packed size    45435 bytes
unpacked size  246614 bytes
unpacked sha256 e8f7d3f1956d37d4d38e08a9dc03799372a38cdfb7a9ec0f3ddbc744a732547e

The unpacked MZ has a normal relocation table:

file size      246614 bytes
MZ image size  246614 bytes
header size       512 bytes
relocations        71
min/max alloc   0001/ffff paragraphs
stack           028e:0200
entry           36a3:0000
entry file off  36c30h

The first relocation entries all target segment 36a3, which is also the entry segment. That makes the unpacked image much easier to reason about than the packed file.

Music File

NONAME.DAT is not a custom container. It is exactly one 4-channel ProTracker-style module:

title             altered reality
signature         M.K.
song length       54 orders
patterns          43
sample bytes      189226
computed size     234342 bytes
file size         234342 bytes
trailing bytes    0

Selected sample names and sizes:

01 yam-chorus1       20152 bytes
02 yam-chorus2       20796 bytes
03 (rs)brightbrass   11788 bytes
07 crash1            11932 bytes
15 synthlead1         9856 bytes
16 ofchurchpipes     36006 bytes
17 strange2           9680 bytes
18 icftd.string1      7944 bytes
19 HallBrass          9400 bytes

The false-looking MZ and PCX markers inside NONAME.DAT are sample data, not embedded executables or images. The module boundary calculation consumes the whole file exactly.

Sound Setup

The unpacked executable contains a MiniMod player string:

MiniMod v0.03.  cP

It also contains a compact device table for many simple PC audio paths:

PC Speaker
D/A converter on LPT1
D/A converter on LPT2
D/A converter on LPT3
D/A on 1&2   (Stereo)
D/A on 1&2     (Mono)
Sound Blaster   (2?0)
Disney Snd Src (LPT1)
Disney Snd Src (LPT2)
Disney Snd Src (LPT3)
Quad-on-one    (LPT?)
No sound

This is a useful contrast with the GUS-heavy TP93 entries. Noname is willing to run through commodity 8-bit output devices and even no sound. Its strings also warn that the demo runs faster without a memory manager or without music.

Visible setup and failure strings include:

THE DEMO REQUiRES AT LEAST A 386!
THE DEMO REQUiRES A VGA DiSPLAY!
OOOPS! MEMORY CONFLiCT! - RUN WiTH ANOTHER SETUP!
OOOPS! THE MUSiCFiLE FOR THE DEMO iS MiSSiNG!
OOOPS! YOU NEED MORE MEMORY FOR THE MUSiC!

The code supports those strings: the unpacked entry resizes DOS memory with INT 21h/AH=4Ah, checks the CPU path before entering the show, verifies VGA mode 13h through BIOS calls, and then continues into direct VGA register and VRAM access.

Unpacked Show Skeleton

The unpacked entry at 36c30h has a readable high-level sequence:

36c30  set DS to the entry segment
36c4e  INT 21h/AH=4Ah memory resize
36c67  CPU/setup check
36c6a  VGA mode check
36c6d  sound/music setup
36c75  INT 10h mode 13h
36c7a  program sequencer/CRTC registers
36dec  clear A000h using 32-bit STOSD
36e04  vertical retrace wait on 3DAh
36e20  flip sequencer clocking bit

After setup, the main routine runs a sequence of effect blocks separated by screen clears, retrace waits, and short CRTC changes:

371b8  text/transition block, palette upload and CRTC page movement
37cd0  vector-ball / dragon-ball block, heavy integer math
394e8  short transition block
39850  second vector/math block
3b00c  vector-line block
3b59c  related vector-line block with a different data range
3bcac  final credits/greetings block with CRTC start-address scrolling

The section names above are inferred from nearby code behavior and the demo's own scroll text. The scroll text introduces ancient vectorballs, realtime calculated dragon balls, multiple scrollers, an unfinished filled vector routine, vector lines, and final credits/greetings. I did not produce a successful post-setup video capture, so this is a static map rather than a screenshot-labeled timeline.

The code is still concrete enough to characterize:

That is a real early-1993 PC effect engine, not just a shell around the module.

Runtime Smoke Check

I ran the original packed archive executable under DOSBox-X 2026.01.02 with NONAME.DAT present. Without input, it reaches a text setup screen and waits. The captured setup screen reports:

NONAME WAS RELEASED ON THE 23'RD OF JULY 1993!
TO SPEED iT UP, RUN WiTHOUT MEMORY MANAGER OR WiTHOUT MUSiC!

It then offers PC Speaker, LPT DAC, Sound Blaster, Disney Sound Source, and No sound choices. A 19.975-second ZMBV capture stayed on that setup screen. I also tried redirected DOS input containing p for no sound, but the program did not advance, likely because it reads BIOS keyboard state rather than DOS standard input. I therefore did not use the runtime pass to name visual scenes.

Hardware Marker Evidence

The following byte-pattern scan is restricted to the unpacked executable. It is supporting evidence for the static disassembly, not an exact instruction count.

INT 10h               6
INT 16h               1
INT 21h              35
A000h VGA VRAM      325
B800h text VRAM      29
3DAh retrace         25
3C8h DAC index       10
3C4h sequencer       56
3D4h CRTC            20
PIT 43h               2
PIC 20h              50

The entry-point disassembly accounts for the important items: BIOS only gets the program into DOS/VGA state, after which the demo uses direct VGA registers, CRTC page motion, retrace polling, and direct VRAM clearing/drawing.

Why This One Matters

Noname sits at the rougher edge of the 1993 PC demo scene. It has conflicting July-versus-Party metadata, a tiny DIZ, a self-deprecating NFO, and a setup screen that can block a headless smoke run. Underneath that, it is a serious 386/VGA program:

That combination makes it a good obscure counterweight to the ranked TP93 writeups: not polished, not famous, but technically candid about what a Danish PC coder was building around 386/VGA and commodity sound output in 1993.