ATDT Demo board online

DOS door guide

Running Usurper

Gang wars, dungeon crawls, kings, gods, children, and a town full of computer characters that insult your players by name. Usurper is also famously fussier to install than LORD, so both versions are packaged and ready to drop in.

Second edition, with the housekeeping lessons of a month of field boards · back to DOS doors

#The easy way: download a package

Both versions of Usurper are packaged for ATDT: the right files picked out, the control file written, the manifest built, and the DATA copy of USUTEXT.DAT already in place. Unzip into dosdoors/, and skip steps 1 through 3 of the by-hand guide entirely.

Usurper 0.24Recommended

The 2015 community release from usurper.info, the last version anyone shipped. Start here unless you have a reason not to.

Download

Usurper 0.20eOriginal author

The 2009 release, the last by Jakob Dangarden himself. For SysOps who want the game exactly as its author left it.

Download

Both are the same game to play. 0.24 carries the community's later fixes; 0.20e is the original. Each package ships a README noting anything specific to that build.

Upload in binary mode. Force it for the whole folder. On "auto" an FTP client will often guess wrong, and a corrupted .EXE or .OVR makes a door that dies the instant it starts with nothing on screen to say why.

#What you still do

A package saves you the file archaeology. Four things are still yours, and the third is the one every other door skips.

1. Put your board's name in the control file

Open files/USURP.CTL and change the first three lines to suit you. The last two lines are load-bearing and must stay exactly as they are.

SYSOPFIRST Sysop SYSOPLAST . BBSNAME My ATDT Board BBSTYPE DOORSYS FOSSIL

BBSTYPE DOORSYS tells Usurper to read the DOOR.SYS drop file ATDT generates for every caller, and FOSSIL tells it to talk to the line through the FOSSIL driver ATDT's DOS machine provides. Without those two lines the door will not run.

2. Scan and enable

Console, DOS Doors, press Scan. Usurper appears in the door list; enable it. ATDT seeds the live game directory from files/, which is where the world lives from now on. The files/ folder stays behind as the pristine master copy that a Reset game state would return to.

3. Build the world

Usurper will not run until its world exists, and no package can ship one: the editor builds it against your board. Five minutes of keyboard work and a coffee's worth of waiting.

  • On the door's row, open the maintain page.
  • Type EDITOR.EXE in the command box and press Boot. The DOS machine starts in your browser and the blue Usurper Editor appears. On its first run it quietly creates the DATA, NODE and SCORES directories and writes a fresh USURPER.CFG all by itself.
  • Press the Down arrow once, so the hint line at the bottom right reads Reset GAME, and press Enter.
  • A dialog asks "Are you really sure?" with Yes highlighted. Press Enter. If a dialog ever ignores your first Enter, press Enter again: the editor swallows the first keypress a freshly opened dialog receives, on purpose, to guard against held-down keys. This applies to every dialog in the editor.
  • Progress bars roll while the editor writes the whole world: level limits, door guards, fifteen item files, monsters, armor, weapons, computer characters, team names, moat monsters. On shared hosting give it five to ten minutes. Keep the tab open until the box says "Usurper has been RESET!", then press Enter.
  • Optional: open Configuration and browse some two hundred options with the arrow keys, from dungeon difficulty to how vicious the computer characters are. Everything saves into the live game.
  • Quit the editor: Down to Quit, Enter, confirm. You land at a real DOS prompt on D:, the live game directory. Type DIR DATA to admire the new world, then End session.
Worth a check: in that DIR listing, OBJDAT14.DAT is the weapons file and should be exactly 248,325 bytes. If it is zero or short, a hosting hiccup interrupted the reset; run Reset Game again and it will happily redo everything.

4. Put it on a menu, then take the first call yourself

Console, Menus: add an item with action DOSDOOR and argument usurper, on any key and menu you like. That is the whole integration. ATDT writes a fresh DOOR.SYS per caller per entry, with their handle, node number and time left.

Enter the door once from the board menu before announcing it. The very first entry stamps the game's date file, shows the title screen, and drops you straight back to the board menu. That is not a fault; it is Usurper starting its calendar. Enter again and you are in the game for real: pick an alias, gender, race and class, answer the battle cry prompts (the game suggests fine defaults), and you arrive on Main Street with the whole town talking.

Then run the first housekeeping yourself, at the keyboard: see care and feeding below. After that the door looks after itself.

#Installing by hand

If you would rather assemble it yourself, or you have an archive the packages do not cover, here is the whole job. Three reasons Usurper is not drag and drop, each handled by one step:

  • The archive is a toolbox, not a door. It holds about twenty files, and only eight of them run the game. The rest are upgrade converters for old game worlds, the source code, samples, and documentation.
  • The world must be built before anyone can play. A separate program, the Usurper Editor, creates every data file, and you run it once from the door's maintain page.
  • The game keeps a daily rhythm of its own. Once a day, on the first entry after the board's midnight, it does its housekeeping and sends that caller back to the board menu. Knowing this ahead of time is the difference between "broken" and "oh, that's just Usurper."

You will need ATDT 1.7.0 or later with DOS doors switched on, and usurp020e.zip (or the 0.24 archive). The game is free software under the GPL v2; the 0.20e archive even carries its full source code.

Step 01

#Pick the eight files that matter

Unzip the archive on your own computer. Some copies hold a second identical set of files in a subfolder; either set is fine. You need these eight:

USURPER.EXEThe game.
USURPER.OVRThe game's overlay, its biggest file, about 2 MB.
USUTEXT.DATThe game's text. Goes in twice: beside the programs and again in DATA/.
EDITOR.EXEThe world builder and configuration tool.
EDITOR.OVRThe editor's overlay.
EDITOR.HLPThe editor's help.
BADWORDS.DATLanguage filter word list, found inside SAMPLES.ZIP.
USURP.CTLThe control file. You write this one yourself, next step.

Leave the rest on your computer. You do not need the converter programs (017TO018.EXE, 019to020.EXE, 020to20e.EXE, which upgrade worlds from older Usurper versions), DDSETUP.ZIP (a DOS era control file editor), Source20e.zip, or the documentation, though SYSOP.DOC and WHATS.NEW are a fine read with a coffee.

Step 02

#Write USURP.CTL

Create it in any text editor, five lines:

SYSOPFIRST Sysop SYSOPLAST . BBSNAME My ATDT Board BBSTYPE DOORSYS FOSSIL

Change the first three lines to taste. The last two are the load-bearing ones and must stay exactly as written, for the reasons given in the section above.

One control file covers every node. On a classic multi-line BBS each line could carry a different modem setup, and Usurper supports USURP1.CTL, USURP2.CTL and so on for that. On ATDT every node is the same virtual serial port, so the single USURP.CTL is all you ever need.
Step 03

#Build the door folder

Build this structure and upload it, in binary mode for the EXE and OVR files:

dosdoors/ usurper/ dosdoor.json files/ USURPER.EXE EDITOR.EXE USURPER.OVR EDITOR.OVR USUTEXT.DAT EDITOR.HLP BADWORDS.DAT USURP.CTL DATA/ USUTEXT.DAT a second copy of the same file

And dosdoor.json is this, exactly:

{ "api": 1, "slug": "usurper", "title": "Usurper", "command": "USURPER.EXE /X", "dropfile": "DOOR.SYS", "static": ["*.EXE", "*.OVR", "*.HLP", "USUTEXT.DAT"], "max_nodes": 4, "minutes": 60 }
  • The /X switch matters. It keeps Usurper's two megabyte overlay in the DOS machine's XMS memory, so the game loads it once instead of re-reading it from the game drive all session. Always keep it.
  • The second USUTEXT.DAT, inside DATA. The game reads its pictures from its DATA directory, but the release ships the file next to the program. Without a copy in DATA, the daily housekeeping stops at its very first screen with [Press a key] and waits for a keyboard that may not be there. Ship the copy and that trap never exists. If the game ever created a zero byte DATA\USUTEXT.DAT on its own, which it does when the file is missing, replace it with the real 58,745 byte one.
  • The static list marks the program files so each caller's browser caches them. The first entry fetches about 2.9 MB; later entries skip nearly all of it.
  • max_nodes is how many callers can play at once, and minutes is the daily time allowance in the door. Four nodes and sixty minutes are sensible starts.

From here, pick up at scan and enable: the rest is the same whether you assembled the folder or unzipped a package.

#Multi-node play

Nothing extra to install. Every caller gets their own DOS machine and their own node number, all of them share the one live game world on the board, and ATDT serializes every file operation and honors DOS record locks, the same arbitration SHARE gave a 1990s LAN. Players see each other enter and leave, trade insults through the town, message each other from the main menu, and wage gang wars across nodes. The max_nodes number in dosdoor.json is the only knob to turn. This guide was verified with two callers playing at once on separate nodes.

#Care and feeding

The daily rhythm

Once a day, on the first entry after the board's midnight, Usurper runs its housekeeping: news roll over, score boards, character upkeep, gang activity. On a young world this takes under a minute; as the town fills with characters and history it grows to many minutes, all of it spent by whichever caller happened to walk in first. When it finishes the game returns that caller to the board menu; they enter again and play.

On a busy world, run the housekeeping yourself each morning from the maintain page instead, so no caller ever pays for it, or put a line about the bounce in the door's bulletin.

Housekeeping on demandFrom the maintain page, boot with USURPER.EXE /HMAINT /X: it prints the title, runs the whole housekeeping, says "All Deeds are done!" and exits to the DOS prompt. Keep the /X here too; without it the run rereads the two megabyte overlay from the board all the way through and looks like it will never finish. Do not use /FMAINT for this: it runs the same housekeeping and then drops into the game's own menu and waits for a key forever, which in an unattended tab reads as a hang. Budget real time: ten to fifteen minutes on a fresh world, half an hour and more as the world grows.
The first housekeeping wants a keyboardOn a brand new world the game creates its remaining files mid run and stops at [Press a key] after each batch. So run your first /HMAINT /X at the keyboard rather than walking away: press the key when asked and wait for "All Deeds are done!". A world that has finished one housekeeping never prompts again.
The date fileDATA\DATE.DAT is the game's calendar marker. If it goes missing, the next caller through the door triggers a full housekeeping before the game reads any switch or setting, and that caller watches "Browsing characters" for a long time. Never delete DATE.DAT to force a housekeeping; use /HMAINT, which rewrites it.
Quitting properlyPlayers leave by going to sleep: Go to sleep at the Dormitory, or Quit from Main Street and choosing where to spend the night. That closes their game day cleanly.
The closed tabA player who just closes the browser mid game stays marked as playing. Their next entry says "You might have been challenged by another player..." and returns them to the board. It clears at the next day's housekeeping, or immediately from the maintain page: boot with any command and type DEL NODE\ONLINERS.DAT at the DOS prompt. A bulletin line telling players that sleeping is the polite exit saves you the question.
Interrupted housekeepingIf the daily maintenance gets cut off mid run, a flag file can linger and block the game. Same remedy, same place: DEL NODE\MAINT.FLG, then enter the door and let it finish.
Do not use /LUsurper's local test mode does not draw on the DOS machine's console under ATDT. Nothing is wrong with your install; test from the board menu instead, which for you is local anyway.
Error dialogs during a resetA box saying "Unable to ACCESS" or "Unable to WRITE" during the world reset means the hosting dropped file operations faster than ATDT could retry them, and one data file may be short. Press OK, let it finish, run Reset Game once more, and check the OBJDAT14.DAT size. Current ATDT retries every file operation automatically, so most boards never see this.
The Ctrl keys and the FULL buttonUsurper binds Ctrl+W (Who is Online) and Ctrl+T (message an online player), and on a normal page the browser keeps those chords for itself: Ctrl+W closes the tab, mid game. The terminal has a FULL button for exactly this: it goes full screen and locks the keyboard, so every chord reaches the game. Holding Esc leaves full screen, and the browser explains that on screen by itself. Tell your players: FULL before they fight.
Editor keysArrows move one entry per press and Enter presses the highlighted button; remember the swallowed first Enter rule in fresh dialogs. If your arrows jump two entries at a time, update ATDT: older clients delivered PC arrow codes that Borland era programs counted twice.

#Updating an install from the first edition

A door installed from the first edition of this guide catches up in two minutes at the maintain page, and nothing here touches the world; players keep their characters. Boot with any command to reach the DOS prompt and type DIR DATA. Look for USUTEXT.DAT in the listing.

If it is missing, or shows 0 bytes, fix it from the same prompt:

DEL DATA\USUTEXT.DAT only if the zero byte one is there COPY USUTEXT.DAT DATA

Then run USURPER.EXE /HMAINT /X once at the keyboard, pressing a key if asked, until "All Deeds are done!". From then on the housekeeping runs prompt free. The dosdoor.json needs no change: the /X on the command line has been there since the first edition.

#Notes on the 2015 community release (0.24)

Development of Usurper continued after 2009 at usurper.info, and the final community release, 0.24 from November 2015, is what the recommended package carries. If you are assembling it yourself, its archive holds three builds; only the plain DOS programs run in the DOS machine, so ignore USURPER32.EXE, EDITOR32.EXE and the extensionless Linux binaries.

  • Install it fresh, the same way. Build the same folder as this guide, but take USURPER.EXE, USURPER.OVR, EDITOR.EXE and EDITOR.OVR from the 0.24 archive, and add EDITOR32.HLP next to EDITOR.HLP (0.24 wants both help files). Keep USUTEXT.DAT, BADWORDS.DAT and EDITOR.HLP from the 0.20e archive; 0.24 does not ship them. Give USUTEXT.DAT the same second copy in files/DATA/. Then the same steps: scan, editor, Reset Game. After the reset, the DIR check reads the same 248,325 bytes for OBJDAT14.DAT, and MONSTER.DAT is 239,239 bytes in the new format.
  • Do not upgrade a live world in place. 0.24 converts old data files at startup, split between the game and the editor with a version marker on disk. Interrupt that dance once, and a closed browser tab is enough, and the editor can greet every later start with Runtime error 002 before its menu even draws. On ATDT the clean route costs one minute: console, the typed name Reset game state on the door row (which reseeds the folder from files/), then editor, Reset Game, and you have a fresh 0.24 world with none of the conversion machinery involved.

#The whole install on one card

THE PACKAGED WAY 1 Download usurper024atdt.zip (or 020e) and unzip into dosdoors/, in binary mode. 2 Edit files/USURP.CTL: your handle, your board name. Leave BBSTYPE DOORSYS and FOSSIL alone. 3 Console, DOS Doors, Scan, enable. 4 Maintain page, EDITOR.EXE, Reset Game, Yes, wait for RESET!, quit the editor. 5 Add the DOSDOOR menu item. 6 Enter the door twice: the first entry starts the calendar, the second starts your legend. 7 Run USURPER.EXE /HMAINT /X from the maintain page once, at the keyboard; when the world grows busy, run it each morning so no caller pays for the housekeeping. 8 Tell your players to leave by sleeping, and enjoy the gang wars. BY HAND, ADD THESE FIRST a Unzip the archive; keep the six program files and USUTEXT.DAT, which goes in twice, beside the programs and again in DATA/; pull BADWORDS.DAT out of SAMPLES.ZIP. b Write the five line USURP.CTL. c Build dosdoors/usurper/ with dosdoor.json and files/.

Tested end to end on ATDT with Usurper 0.20e (2009-08-31) and the 0.24 community release (2015-11-03): world reset, first entries, character creation, daily housekeeping, two simultaneous players, and recovery from dropped connections. Usurper is by Jakob Dangarden, JAS Software, released under the GNU GPL v2.

↑ Back to the top