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:
- Scene.org archive: https://archive.scene.org/pub/parties/1993/theparty93/demo/noname.zip
- Scene.org DIZ: https://archive.scene.org/pub/parties/1993/theparty93/demo/noname.diz
- Scene.org The Party 1993 demo directory: https://archive.scene.org/pub/parties/1993/theparty93/demo/
- Scene.org The Party 1993 results: https://archive.scene.org/pub/parties/1993/theparty93/results.txt
- Demozoo production page: https://demozoo.org/productions/185653/
- Pouet production page: https://www.pouet.net/prod.php?which=69442
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:
- it programs mode 13h but also changes VGA sequencer and CRTC registers;
- it clears and flips pages using
A000h,A4B0h, and CRTC start addresses; - it waits on vertical retrace through port
3DAh; - several effect blocks use
imul, 386-size66hoperations, and table driven loops; - palette uploads use
3C8h/3C9hwith 768-byte ramps; - the final block advances the CRTC start address by
0050hsteps.
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:
- custom packed MZ loader, expanded successfully with UNP;
- 246 KB unpacked executable with a readable show sequencer;
- exact standalone
M.K.module with no hidden resource tail; - MiniMod-based playback through PC speaker, LPT DACs, Sound Blaster, Disney Sound Source, and no-sound mode;
- direct VGA sequencer, CRTC, DAC, retrace, and
A000hpaths; - visible intent for vectorballs, dragon-ball dots, scrollers, vector lines, and credits.
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.