Skip to content

Original Bugs & Oddities

Darklands contains genuine defects, surprising rules, internally inconsistent behavior, and authored routes that its ordinary owners never publish. This reference keeps those findings distinct from bugs introduced by the restoration.

The evidence label matters. Byte-confirmed entries are established from the original 483.07 executable. Dormant branches are proven hidden in their complete ordinary owner. Reported leads are investigation targets only: they may be real defects, older-version behavior, deliberate mechanics, platform problems, or documentation errors.

22byte-confirmed entries
7dormant branch groups
62reported research leads
2026-08-24source synchronization
Byte-confirmed

Original-code evidence exists and the rewrite disposition is recorded.

Dormant

The original branch exists, but its complete ordinary owner keeps it hidden.

Reported

A versioned research lead—not implementation authority or a confirmed 483.07 bug.

91 entries shown

01

Byte-confirmed original behavior

These entries come from the canonical original-bug register. “Confirmed” means the behavior is established in original bytes; it does not always mean the behavior has been classified as an unintended defect.

DL-ORIG-GAME-0012 `$URBAN01` retains an orphan tenth exit slot beyond its encoded rows
Evidence status
byte-confirmed dormant original oddity; defect classification pending
Affected route/input
no encoded input; $URBAN01.MSG card 0 ends at row 8 while the owner allocates slot 9
Rewrite disposition
pending (remain absent)
Original unit(s)
proc_0051_12F0; proc_0051_1B12

The night-inn owner publishes ten controller bytes and ten callback/action cells even though $URBAN01 card 0 contains only nine source rows. The tenth control is permanently zero, so the generic controller cannot return ordinal 9. Nevertheless, its latent action is coherent: it presents card 0 in mode 0, runs the zero-hour calendar/event service, and publishes state 0004h, the ordinary $CITYE00 family. It contains no audio gateway.

This may be harmless fixed-width template residue, an abandoned tenth choice, or an accidentally omitted resource row. The rewrite keeps it absent. The latent destination must not be exposed unless a distinct original publisher is proved or an explicit enhanced-mode policy is adopted separately from faithful behavior.

DL-ORIG-GAME-0008 `$HANSE01` owner publishes the shared `$HANSE00` card corpus
Evidence status
byte-confirmed resource-identity oddity; likely deliberate reuse, defect classification pending
Affected route/input
state 0047h, Hanseatic League office at night
Rewrite disposition
replicate; keep owner identity and selectable document identity distinct
Original unit(s)
proc_0061_2278

$HANSE01.MSG contains one rowless card describing the nighttime Hanseatic League office. Nevertheless, the state-0047h owner publishes ten selectable rows and later card 6 from the thirteen-card $HANSE00.MSG corpus. The resource basename copied at owner entry, exact controller publication, and extracted MSG corpus all agree; this is not a missing $HANSE01 extraction.

The arrangement may be intentional day/night resource reuse rather than a defect. It is recorded because conflating owner and card-document identity causes unresolved-token failures and misleading row bindings. Clean code keeps $HANSE01.MSG as the owner resource and $HANSE00.MSG as the displayed card document. Tests must reject any future attempt to treat $HANSE01.MSG as the selectable multi-card document.

DL-ORIG-GAME-0005 `$MILCR00` contains a coherent but unpublished Soldier's Road
Evidence status
byte-confirmed dormant original oddity; defect classification pending
Affected route/input
$MILCR00.MSG card-0 encoded row 0, Soldier’s Road
Rewrite disposition
pending (remain hidden)
Original unit(s)
proc_0049_2E2C; proc_0049_315C; proc_0049_310E

The complete ordinary owner writes row 0’s publication state to zero and never enables it. Nevertheless, its callback and local action form a coherent lane: signed selector parity chooses card 1 or 2, the Arms Outfitter opens, two hours pass, state returns to $MILCR00, and the existing audio cue is retained. A controlled forced-publication experiment confirmed both latent branches without establishing natural reachability.

This may be deliberately cut content, an unfinished alternate publisher, or an accidental omission. The rewrite keeps it hidden. Proving a distinct original publisher through the unresolved alternate dispatch would explain the apparent anomaly; absent that proof, neither the complete latent code nor the runtime experiment authorizes exposing it.

DL-ORIG-GAME-0006 `$BLACK01` authors a hidden guild-guard row whose action does nothing
Evidence status
byte-confirmed dormant original oddity; defect classification pending
Affected route/input
$BLACK01.MSG card-0 encoded row 4, guard the guild block
Rewrite disposition
pending (remain hidden)
Original unit(s)
proc_0063_0000; proc_0063_0966; proc_0063_0964

The owner permanently leaves row 4 unpublished despite substantive prose in the resource. Its callback returns the ordinary no-check sentinel, but its local action is only a one-byte RETF and produces no gameplay, presentation, calendar, or audio effect. Neighboring rows 5 through 8 are explicit literal placeholders and are catalogued separately rather than treated as completed content.

This may be an intentional stub or an abandoned feature rather than a defect. The rewrite keeps it hidden; a future reclassification requires either a distinct original publisher/action or external design evidence that explains the stub without overriding the byte-proven faithful behavior.

DL-ORIG-GAME-0007 `$COUNC00` literal placeholder rows retain substantive exit actions
Evidence status
byte-confirmed dormant original oddity; defect classification pending
Affected route/input
$COUNC00.MSG card-0 encoded rows 6 and 7, literal texts 6 and 7
Rewrite disposition
pending (remain hidden)
Original unit(s)
proc_0054_1A78; proc_0054_2C4C; proc_0054_2C6A; proc_0054_2CA2; proc_0054_2CC0

The complete owner permanently suppresses both literal placeholder rows, but each retains a callback and a substantive action. The two action bodies are byte-identical: they present council card 0, invoke the zero-hour helper, and publish state 0004h / ordinary $CITYE00. Row 7 additionally returns a selected-character threshold pair from its callback even though the action does not consume that argument. No audio gateway occurs.

This could be compiler/template residue, deliberately abandoned exits, or an unfinished pair of choices. The rewrite keeps both rows hidden and does not convert their latent destination into a useful route. A distinct original publisher would be required to explain the apparent anomaly and reopen their classification.

DL-ORIG-GAME-0004 `$COUNC00` contains a complete but hidden weapons-training route
Evidence status
byte-confirmed dormant original oddity; defect classification pending
Affected route/input
$COUNC00.MSG card-0 encoded row 5, ...inquire about weapons training.
Rewrite disposition
pending (remain hidden)
Original unit(s)
proc_0054_1A78; proc_0054_2B8C; proc_0054_29F8

The council owner leaves row 5’s publication state at zero, so the generic controller cannot select it. This is despite a complete callback/action path that would negotiate guard training, create five kind-0028h training events, display success/refusal cards 12/13, create a kind-0041h cooldown, and return to the day/night city square.

The latent action also formats a dynamic displayed price, while the five training records contain one fixed 50-pfennig fee and four fixed 25-pfennig fees. Because the parent makes the route unreachable, controlled normal runtime cannot establish whether the hidden publication and price/fee mismatch are abandoned content, an accidental omission, or an unfinished feature.

DL-ORIG-UI-0001 Ctrl+F leader shortcut corrupts merchant UI state
Evidence status
byte-confirmed original defect/quirk
Affected route/input
Ctrl+F1 through Ctrl+F5 while the Goods Merchant controller is active
Rewrite disposition
disable
Original unit(s)
proc_0043_33C6; proc_0032_0000; proc_0032_0F60; proc_0032_076C; proc_0032_078E

The generic extended-key dispatcher maps BIOS words 5E00h..6200h to party slots 0..4, writes the chosen leader to byte DS:907Bh, and repaints the party panel. That is consistent with the quick-reference card’s “define leader” description.

The nested merchant controller intercepts the same keys. It validates the chosen active party slot, writes DS:907Bh, and repaints only the party panel. It does not call the full merchant redraw at proc_0032_078E, does not update the merchant transaction target at DS:884Eh, and does not recompose the displayed barterer text, inventory lists, or prices. Execution then falls through into ovl_0032:160F..1763, the same block used to switch Purchase and Sell, which flips the active list and redraws the two controls with their enabled/disabled colors.

DL-ORIG-GAME-0001 Merchant charges for an item that a full inventory cannot accept
Evidence status
byte-confirmed original defect/quirk
Affected route/input
Purchase with 40h occupied inventory records and no compatible stack that can accept quantity 01h
Rewrite disposition
replicate
Original unit(s)
proc_0032_0F60; proc_0029_5090; proc_0031_4A04; proc_0032_1770

The Goods Merchant Purchase arm checks affordability, calculates its payment price, and calls proc_0029_5090 to subtract that price from the three-word party purse before calling proc_0031_4A04 to insert the item. The inventory owner first tries to merge the item into an exact code/type/quality stack. If no compatible stack accepts the additional quantity, it may append a new six-byte record only while the inventory count is below 40h.

At count 40h, a failed merge returns the unchanged count without inserting the purchased item. The Purchase caller does not test that return for failure and does not refund the earlier purse subtraction; it stores the returned count and redraws the held-item list through proc_0032_1770. The resulting observable behavior is therefore:

DL-ORIG-GAME-0002 Stablemaster mount predicate selects counterintuitive card text
Evidence status
byte-confirmed original anomaly; defect classification needs controlled runtime confirmation
Affected route/input
$URBAN00 card 0 row 3, “visit the stables”
Rewrite disposition
replicate
Original unit(s)
proc_0051_0EE0; proc_0029_1326 selector 0005h

The original action calls proc_0029_1326(0005h) and displays $URBAN00 card 1 when the result is nonzero, otherwise card 7. Selector 0005h returns nonzero only when every active party record owns a nonzero-quantity item whose definition word at +20h intersects mount flag 2000h. Therefore:

Both cards say that boarding is included in the inn charge and introduce the Stablemaster’s available horses and mules. Card 7 alone adds that the Stablemaster asks whether any of the party’s mounts are for sale. This is counterintuitive: the extra sale inquiry appears even when nobody owns a mount, while it is omitted when every active member owns one. The same shared merchant controller follows either card and allows selling in both cases.

DL-ORIG-GAME-0003 `$AFFAI00` fallback reverses its value-000Ch condition by location mode
Evidence status
byte-confirmed original anomaly; defect classification needs controlled runtime confirmation
Affected route/input
$CITYN00 card 0 row 1, “inquire about empire affairs,” when no value-0002h event selects a location-specific card
Rewrite disposition
replicate for the certified indexed-location route; coordinate-mode clean projection remains pending and fail-closed
Original unit(s)
proc_0071_15A4; proc_0029_360C; resident_06A1_2FE8

The owner accepts either an indexed current location in DS:907Eh or the sentinel FFFFh, which selects the coordinate pair at DS:E3D0h:E3D2h. After the shared value-0004h prefix and the location-specific value-0002h search fail to choose a final card, the two modes test a due value-000Ch event with opposite fallback results:

Thus, with no due value-0002h, value-0004h, or value-000Ch event, an indexed location displays $AFFAI00 card 3 while the coordinate fallback displays no final card. With only value-000Ch due, the indexed route displays the card-17 prefix and no final card, while the coordinate route displays card 17 followed by card 3. Exact bytes, Ghidra, and independent Reko output agree on this asymmetry. Raw owner tests preserve both sides, including negative cases that prevent the coordinate arm from inheriting the intuitive indexed fallback.

DL-ORIG-GAME-0009 `$RAUBI00` assumes a differently keyed quest event exists
Evidence status
confirmed original publisher/consumer mismatch with platform-memory-dependent unchecked continuation
Affected route/input
state 0090h, $RAUBI00 robber-knight quest offer
Rewrite disposition
pending; fail closed when the event is absent
Original unit(s)
proc_0061_260A; proc_0039_10B6; proc_0080_0000; proc_0029_3B62

The owner searches for kind 0008h with field1A=DS:E896h and field28=0003h. It stores the returned slot but never compares it with the FFFFh not-found sentinel. Instead it immediately multiplies the slot by four, indexes the event-pointer table, reads event field +00h, and passes that word to proc_0029_0DB4.

If every legal state-0090h publisher has already created this exact record, the omission is a harmless original invariant. If state 0090h can be reached without it, the FFFFh index wraps and reads an unrelated pointer cell. The same unchecked pattern begins the paired state-0091h proc_0080_038C completion owner for its required kind-0024h record.

DL-ORIG-GAME-0011 Full-party `$VILLA02` help displays a one-florin gift without adding money
Evidence status
byte-confirmed original anomaly; defect classification needs controlled runtime confirmation
Affected route/input
$VILLA02.MSG card 0 row 1, “ask for help,” with signed local reputation at least 50 and five occupied party slots
Rewrite disposition
pending; no natural clean $VILLA02 route is authorized
Original unit(s)
proc_0077_15EC; proc_0077_1958; proc_0029_5040

The action treats high local reputation as a guaranteed-recruitment tier. If fewer than five party slots are occupied, it shows card 4 and constructs the Schulz companion. If all five slots are occupied, it instead shows card 6, whose prose says that the Schulz drops one florin into the party’s hand.

That full-party branch jumps directly to the common cooldown suffix and never calls proc_0029_5040; the purse is unchanged. The same card 6 is also used by the low-reputation fame-weighted success branch, but that separate branch does call proc_0029_5040(DS:906Bh,0001h,0000h,0000h) and therefore really adds one florin. Result-card identity is consequently insufficient to infer the money effect.

DL-ORIG-GAME-0010 `$RAUBI01` companion-departure prose ignores companion membership
Evidence status
byte-confirmed original anomaly; actual upstream companion-removal behavior needs controlled runtime confirmation
Affected route/input
robber-knight offer from the village Schulz or Hanse, followed by state 0091h completion
Rewrite disposition
pending; no clean quest-completion projection is authorized
Original unit(s)
proc_0080_0000; proc_0080_038C

The $RAUBI00 offer allows the player to accept or decline a temporary Schulz companion for origin 0086h, or a Hanse guard/knight for origin 0047h. Both actions return through the same inherited origin value. Decline only writes DS:E48Ah=DS:E7D8h; it does not mark the quest event with a distinction later read by $RAUBI01.

At completion, $RAUBI01 selects card 1 unconditionally for origin 0086h. That card says the Schulz departs from the party. For origin 0047h, the owner draws RNG(2) and selects card 6 on a nonzero result or card 7 on zero. Card 6 says the Hanse friend leaves and card 7 does not. The completion owner does not inspect party membership, does not inspect an acceptance flag, and contains no party/roster-removal call.

DL-ORIG-GAME-0013 `$DOCKS01` describes chunks of ice through May
Evidence status
byte-confirmed original seasonal oddity; defect classification pending
Affected route/input
$DOCKS01.MSG card selection and swimming-row publication
Rewrite disposition
faithfully preserved
Original unit(s)
proc_0052_0000

The owner reads the zero-based current month from DS:00E4h. It selects frozen-water card 1 and disables the two swimming variants when the signed month is at least 10 or at most 4: November through December and January through May. Only June through October selects ordinary card 0. The predicate does not read the current hour.

Card 1 explicitly describes chunks of ice in the water, making its use through all of May geographically and seasonally surprising. This may be an intentional broad cold-water season rather than a defect, so the catalogue does not classify it as a confirmed bug. The faithful projection preserves the exact month boundary; it must not substitute a modernized climate rule.

DL-ORIG-GAME-0014 Night state `0014h` retains unrelated MSG labels under a different action table
Evidence status
byte-confirmed original owner/resource mismatch; runtime presentation confirmation pending
Affected route/input
$SIDES01.MSG card 0 row 5 ordinary success whose one-hour advance ends outside hours 5 through 18
Rewrite disposition
faithfully preserves the owner/resource split
Original unit(s)
proc_0046_1132; proc_0046_1734; proc_0049_0000

At night, proc_0049_0000 skips the copy that would replace the active MSG name with $BUSIN00. The inherited $SIDES01.MSG card-0 text therefore remains visible over XNMAIN.PIC. The same owner then publishes the ten state-0014h callback and action cells. Those handlers are not the proc_0046_1132 $SIDES01 handlers: a displayed row is acted upon according to its coincident numeric ordinal in the state-0014h table.

The mismatch can make a label describe one destination while its action goes somewhere else. It appears to be a missing night-resource replacement rather than intentional content, but runtime confirmation of the exact presentation and several selections is still required before classifying it as a confirmed defect. The rewrite must not use the displayed document name as dispatch authority or silently substitute $BUSIN00 text.

DL-ORIG-GAME-0015 `$SIDES01` grove rare outcome hard-codes nighttime history after advancing time
Evidence status
byte-confirmed original asymmetry; defect classification pending
Affected route/input
$SIDES01.MSG card 0 row 7 rare action outcome
Rewrite disposition
typed fail-closed; no speculative repair
Original unit(s)
proc_0046_1132; proc_0046_1866

Both action outcomes call proc_0029_54D8(0001h). The ordinary outcome then calls proc_0029_563A and publishes state 0021h by day or 0022h by night. The rare outcome does not call the classifier: it always writes DS:E7D8h=0022h before publishing state 003Ch, even when its one-hour advance ends in daytime.

The retained value may be intentional history for the unresolved state-003Ch owner rather than a defect. Until that destination owner is decoded or a controlled runtime capture proves how it consumes E7D8h, the rewrite must not replace the fixed value with a day/night classification. The selected ordinary grove route is independently certified, while this rare branch remains fail-closed.

DL-ORIG-GAME-0016 Equal negative location-score bounds randomly subtract one or two
Evidence status
byte-confirmed original arithmetic oddity; defect classification pending
Affected route/input
$CITYG06.MSG card 0 row 2
Rewrite disposition
replicated faithfully
Original unit(s)
proc_0029_19D0; resident RNG wrapper resident_0000_0C70

The adjustment owner computes the second RNG range as abs(upper)-abs(lower). Equal bounds therefore pass zero. The original RNG wrapper uses divisor 2 for both range 0 and range 1, so RNG(0000h) returns either 0 or 1. With lower and upper both -1, an accepted score gate therefore subtracts either one or two points. A rejected gate still consumes only its RNG(0064h) draw and changes nothing.

This may be a deliberate general RNG convention rather than a gameplay bug. Do not normalize the overnight loss to a fixed value without broader caller analysis. The reconstruction preserves the byte-proven result and RNG order.

DL-ORIG-GAME-0017 `$OTHER00` contains six permanently dormant placeholder rows
Evidence status
byte-confirmed dormant-content oddity; defect classification pending
Affected route/input
$OTHER00.MSG card 0 rows 2 through 7
Rewrite disposition
omitted exactly as published by the original owner
Original unit(s)
proc_0075_0000

The extracted MSG payload gives encoded rows 2 through 7 only the literal texts 2 through 7. The owner initializes all six corresponding control bytes to zero and never enables them. Latent action entries still exist and each would perform a zero-hour calendar call before publishing state 0062h, but the ordinary controller cannot select them.

This looks like unfinished reserved content, although it could be an intentional fixed-size table. The rewrite must neither expose the placeholder rows nor infer destinations from their latent actions. If a different owner or external writer is later proven to publish those controls, this entry must be updated rather than silently removed.

DL-ORIG-GAME-0018 Named-home name tables contain trailing entries outside their RNG bounds
Evidence status
byte-confirmed data-table oddity; defect classification pending
Affected route/input
$OTHER00.MSG card 0 $NamedOneName and $NamedTwoName substitutions
Rewrite disposition
preserve the original RNG bounds; do not expose trailing entries
Original unit(s)
proc_0029_5CC4

Selector 0001h uses RNG bound 0058h, making exactly 88 consecutive female first-name strings selectable. The same contiguous resource area continues with Suzanne and Viktoria, but neither can be selected through this owner. Selector 0002h similarly uses bound 0010h over exactly 16 family-name strings; the immediately trailing Welser entry is outside the draw.

This may be deliberate shared-table packing rather than a defect, and no claim is made that these names were intended for the two $OTHER00 substitutions. The rewrite must retain the byte-proven bounds and must not broaden the pools merely because additional valid strings are adjacent. A future caller that selects the trailing entries would revise this classification.

DL-ORIG-GAME-0019 The shipped city-revolt family contains permanently unpublished entry lanes
Evidence status
byte-confirmed dormant-content oddity at the entry owners; whole-family and earlier-version defect classifications pending
Rewrite disposition
proven-unpublished rows remain hidden; substantive family remains fail-closed at unresolved owners
Original unit(s)
proc_0048_0000; proc_0048_0D6E; proc_0073_0000; downstream family owners not yet fully mapped

The 483.07 data ships nineteen consecutive $REVOLxx resources with 230 cards. Their prose forms a large, coherent revolution/counter-revolution quest covering political investigation, recruitment, arrests and rescues, timed summons, crowds, marches, sieges, relief forces, and both rebel and government victories. This is substantially more authored content than the three family resources currently encountered by the reconstructed city route.

The complete daytime entry owner initializes rows 5–8 to zero and never publishes them. Row 5 is the substantive Force-entry choice; rows 6–8 are blank placeholders. The complete nighttime owner likewise leaves rows 5–8 at zero, where they are literal numeric placeholders. Callback/action table cells exist for these zero-state rows, but their latent effects remain an explicit decode boundary. Table existence cannot make a row selectable.

DL-ORIG-GAME-0020 `$REVOL00` row 0 can repeat its surveillance card
Evidence status
byte-confirmed presentation oddity; defect classification pending
Affected route/input
$REVOL00.MSG card 0 row 0 successful action outcomes
Rewrite disposition
typed fail-closed; no speculative deduplication
Original unit(s)
proc_0048_03D6

After a successful signed RNG check, nonzero DS:E3D0h publishes cards 2 and 12 before the selector-0029h result is considered. The selector then always publishes card 2 again followed by card 3 when its result equals 0002h, or card 4 otherwise. The two exact nonzero-lane sequences are therefore 2,12,2,3 and 2,12,2,4; card 2 appears twice. The zero lane omits the prefix and publishes only 2,3 or 2,4.

The repeated card may be deliberate recap after the lane-specific card 12, or it may be an original presentation bug. Do not collapse, reorder, or deduplicate the sequence without evidence from another original version. In particular, card 12 depends only on nonzero DS:E3D0h, while the choice of card 3 versus card 4 depends only on the selector result; neither predicate may be substituted for the other.

DL-ORIG-GAME-0021 `$REVOL00` row 1 repeats an identical event query
Evidence status
byte-confirmed redundant-query oddity; defect classification pending
Affected route/input
$REVOL00.MSG card 0 encoded row 1, signed RNG-success lane
Rewrite disposition
raw owner only; replicate ordering if the clean route is later authorized
Original unit(s)
proc_0048_0506; proc_0029_3742

After the one-hour calendar call and signed RNG check select the complementary lane, the owner calls proc_0029_3742(0002h,0000h,current-city) once. If the result is FFFFh while DS:E3D0h is zero, it immediately takes the no-card state-0079h tail. Every other case calls the same helper again with the same three words. A second result of 0001h suppresses card 5 only when DS:E3D0h is nonzero; otherwise the owner publishes card 5 and state 0074h.

The selected helper scans the same live kind-001Ch event records and writes the selected slot index to DS:E3CEh; it does not mutate the matched record. Consequently the second result is ordinarily identical to the first, and the second scan appears redundant. It may be compiler output from two separately authored selector predicates, intentional refresh of DS:E3CEh, or an unfinished design in which another operation once separated the calls. Exact bytes do not prove which explanation is correct.

02

Dormant original branches

These lanes are present in the shipped resources or code but proven unpublished by their complete ordinary owner. Faithful behavior keeps them hidden; decoding a latent action does not make it playable content.

authored_latent_lane `$MILCR00` card 0 row 0 — Soldier's Road
Encoded text
...Soldier's Road.
Ordinary owner
proc_0049_2E2C
Faithful disposition
remain hidden; no clean/SDL route
First unresolved boundary
alternate EB0Ah publication/callback route at ovl_0049:3052
The latent action calls selector 0021h, uses signed parity to present card 1 or 2, opens the exact Arms Outfitter transaction proc_0029_21AA(0001h,DS:58A4h,00FFh,0400h), advances two hours, writes state 0017h, and retains the existing audio cue. A controlled experiment changed only the publication byte and confirmed both parity branches and the complete continuation. That experiment proves internal coherence, not natural reachability.
authored_no_effect_stub `$BLACK01` card 0 row 4 — guard the guild block
Encoded text
...guard the guild block.
Ordinary owner
proc_0063_0000
Latent effect
callback returns FFFFh:FFFEh; action is a one-byte no-effect RETF; no audio call
Faithful disposition
remain hidden
First unresolved boundary
no alternate publisher is proven
The real prose is present, but forcing publication cannot reveal a completed gameplay lane because the selected action has no observable effect.
literal_placeholder `$BLACK01` card 0 rows 5–8 — literal placeholders
Encoded text
literal rows 5, 6, 7, and 8
Ordinary owner
proc_0063_0000
Latent effect
every callback and action is a one-byte no-effect RETF; no audio call
Faithful disposition
remain hidden
Evidence for row 4 and rows 5–8: evidence/reconstruction/darklands_483_07/msg/MSG_BLACK00_BLACK01_OWNER_DECODE_20260816.md.
row 3 authored_no_effect_stub; rows 4–8 literal_placeholder `$SPECI00` card 0 rows 3–8 — hidden information stubs
Encoded text
row 3 ...there are some interesting rumors flying around...; rows 4–8 ...info 4. through ...info 8.
Ordinary owner
proc_0069_175A
Latent effect
every selected local action is a no-op; no audio gateway exists in the owner
Faithful disposition
remain hidden
First unresolved boundary
no alternate publisher is proven
authored_latent_lane `$COUNC00` card 0 row 5 — weapons training
Encoded text
...inquire about weapons training.
Ordinary owner
proc_0054_1A78
Faithful disposition
remain hidden; raw latent owners only
First unresolved boundary
a distinct original publisher for row 5 has not been proved
The latent action advances one hour, tests RNG(100) <= threshold, creates five kind-0028h training events and card 12 on success or adjusts local score and presents card 13 on refusal, then creates a kind-0041h cooldown and returns to the day/night city square. It contains no audio gateway. The dynamic displayed price and fixed per-event fee words also differ; that oddity is tracked separately in docs/KNOWN_ORIGINAL_BUGS.md.
literal_placeholder `$COUNC00` card 0 rows 6–7 — literal placeholders with latent exits
Encoded text
literal rows 6 and 7
Ordinary owner
proc_0054_1A78
Latent effect
present $COUNC00 card 0 mode 0; proc_0029_05C8(0); write state 0004h / $CITYE00; retain audio
Faithful disposition
remain hidden; no clean/SDL route
First unresolved boundary
no distinct owner publishing either control word is proven
Row 6’s callback returns the ordinary no-check sentinel. Row 7 instead returns AX=100 and the selected slot in DX, but its action ignores that stack argument. The complete latent actions make these more than inert stubs; their literal labels and permanent suppression still classify them as unfinished placeholders rather than functioning cut choices.
orphan_controller_slot `$URBAN01` card 0 orphan controller slot 9
Encoded text
none; card 0 ends at source row 8
Ordinary owner
proc_0051_12F0
Latent effect
card 0 mode 0; zero-hour calendar/event service; state 0004h / $CITYE00; inherited audio retained
Faithful disposition
remain absent; no tenth clean/SDL choice
First unresolved boundary
no distinct original publisher for the orphan slot is proven
This is not a hidden source row: the MSG resource has only nine rows. The owner appears to retain a ten-slot template whose final callback/action pair would provide a coherent exit if forced. The latent code cannot authorize a route without a corresponding original publisher.
03

Reported research leads

These reports are preserved for investigation and boundary testing. They cannot authorize reconstructed behavior until the exact 483.07 owner and path are established from original evidence.

Historical defects fixed before 483.077 entries
historical_fixed_by_483_07
Quest-blocking memory leak in early retail builds

Confidence: official

Research note: Designer testimony associates it with original releases; fixed during the stabilization cycle.

historical_fixed_by_483_07
Save corruption caused by the same early memory defect

Confidence: official

Research note: Do not conflate with the distinct unsafe-location save rollback acknowledged in 483.07.

historical_fixed_by_483_07
Broad 483.04/05/051 machine-compatibility failures

Confidence: official but nonspecific

Research note: Primarily addressed by 483.06.

historical_fixed_by_483_07
Earlier save/load unreliability

Confidence: official but nonspecific

Research note: 483.07 substantially improved it; this does not disprove the surviving rollback behavior below.

historical_fixed_by_483_07
Graz exit/progression-state problem

Confidence: official

Research note: Fixed in 483.07, though old saves could retain the bad state.

platform_or_documentation
Roland music plus DMA digital-audio regression

Confidence: official

Research note: Present in the 483.07 distribution and fixed by the separate March 1993 DRKSND driver update; not a core MSG/gameplay rule.

historical_fixed_by_483_07
High-reputation merchant buy/resell arbitrage

Confidence: strong player comparison

Research note: Yahoo #9494 recalls the original as probably 483.04 and reports the exploit absent after upgrading to 483.07. The exact first fixed version is unknown. Test preserved binaries at reputation 99/100/101/120/150; do not reconstruct this as final-version commerce behavior.

Officially reported surviving 483.07 issues5 entries
RPT-SAVE-0001official_483_07_report
Saving while complex transient event state is being committed can restore an earlier state or time.

Confidence: official

Research note: Save controller, temporary-to-persistent event transfer, and restore boundary.

RPT-PALETTE-0001official_483_07_report
Character battlefield colors can become corrupted, appear in a later battle, and persist in a save.

Confidence: official; trigger unknown

Research note: Character palette mutation, battle-entry publication, and save serialization.

RPT-FILES-0001official_483_07_report
Character generation depends on SAVES\DEFAULT; deleting it disables creation.

Confidence: official

Research note: Startup/party-creation resource dependency. The rewrite already deliberately loads the default save, but the original failure relation is not yet a known-bug entry.

RPT-LOAD-0001official_483_07_report
The in-game Load dialog cannot be cancelled once opened.

Confidence: official

Research note: Universal menu/load controller and its input dispatch.

RPT-PLATFORM-0001platform_or_documentation
Some disk controllers fail during the opening and two later cinematics; /Q bypasses animations.

Confidence: official, hardware-sensitive

Research note: Typed platform boundary only if a game-observable dependency requires it. Do not emulate obsolete controller failure.

Inventory and numeric boundaries6 entries
RPT-INV-0001reported_483_07
More than approximately 64 distinct inventory records can cause silent item loss.

Confidence: strong

Research note: 63/64/65 records across loot, transfer, purchase, save, and reload. Distinguish failure to insert from later serialization loss.

RPT-INV-0002reported_483_07
A stack quantity is structurally bounded by one byte; behavior of an attempted quantity 256 remains unknown.

Confidence: strong structure, runtime overflow unverified

Research note: Test quantities 254/255 plus insertion, merge, split, transfer, consumption, and save/load. Do not state wrap, loss, or corruption without reproduction.

RPT-INV-0003reported_483_07
Aggregate inventory above 255 was proposed as a palette-corruption trigger.

Confidence: weak/conflicted

Research note: A character has only 64 record slots; the claim may conflate stack quantity, aggregate objects, inn indexing, or an unrelated palette copy defect. It is not an established trigger for `RPT-PALETTE-0001`.

RPT-INN-0001reported_483_07
More than 255 items stored at an inn may be lost on retrieval.

Confidence: moderate

Research note: Inn-storage quantity/record layouts at 254/255/256 and retrieval compaction.

RPT-INN-0002reported_483_07
Inn storage and enemy cloth drops stopped working in one long-running world; moving the party to a fresh world restored storage.

Confidence: moderate; one detailed 2025 case

Research note: Investigate world/event-table corruption or exhaustion separately from party records. Copying the old four-byte world RNG seed happened after storage was repaired and is not evidence that the seed caused or fixed the defect. “Storing cloth causes it” remains unsupported.

RPT-NUM-0001reported_483_07
Attributes or temporarily boosted skills above 99 can behave incorrectly.

Confidence: moderate

Research note: Values 98/99/100 and expiration/reapplication paths; do not assume a common cause across fields.

Data and gameplay reports22 entries
RPT-ALCH-0001reported_483_07
Alchemical vendors appear to select only the first 22 of 66 quality-specific formula records.

Confidence: strong; Groups.io #9863

Research note: Merchant formula table bound/index and random formula-trade path. The report concerns vendor selection, not total formula availability through trading or special sources. Test indices 21/22/23/65 for alchemists, universities, and overland monasteries.

RPT-SAINT-0001reported_483_07
Paul the Apostle and Paul the Simple have swapped or contradictory effect associations.

Confidence: strong

Research note: `DARKLAND.SNT` records, selector table, descriptions, and invoked effect vectors.

RPT-SAINT-0002reported_483_07
Overlapping attribute blessings can leave two expiration events and subtract twice.

Confidence: moderate; exact v7 status disputed

Research note: Blessing replacement plus both expiration-event records, tested in both expiration orders. Keep distinct from equipment modifiers that announce expiration but remain active.

RPT-SAINT-0003reported_483_07
A flail skill blessing can apply twice when a flail is equipped.

Confidence: moderate/strong

Research note: Saint effect loop and equipped weapon category branch.

RPT-EQUIP-0001reported_483_07
Equipment-affecting potion/saint modifiers may announce expiration while their armor, weapon, or fire-resistance fields remain active.

Confidence: strong; repeated 2025/2026 reports plus identified save fields

Research note: Modifier-event creation, persistent armor/weapon/fire fields, equipment publication, expiration consumer, and save/reload. Reports specifically include Firewall, St. Polycarp, Deadly Blade, Greatpower, and Strongedge.

RPT-EQUIP-0002reported_483_07
Reapplying an equipment modifier can recalculate unrelated equipment.

Confidence: moderate

Research note: Reapplication dispatcher and all rewritten equipment fields.

RPT-EQUIP-0003reported_483_07
Greatpower appears to affect the armed weapon regardless of documented category.

Confidence: moderate

Research note: Effect category predicate; may instead be a documentation mismatch.

RPT-EQUIP-0004reported_483_07
Overlapping temporary stat effects can expire incorrectly and leave a permanent reduction below the original value.

Confidence: moderate; one expert 2026 report

Research note: Test saint then potion and potion then saint, both expiration orders, and save/reload while both are active. Do not merge with `RPT-EQUIP-0001`: the visible failure and possibly the owner chain differ.

RPT-RELIC-0001reported_483_07
Battlefield-chest relic weapons are forced to quality 35 despite authored qualities.

Confidence: strong

Research note: Chest-generation item construction and relic definition quality.

RPT-RELIC-0002reported_483_07
Relics may not improve associated saint prayers.

Confidence: tentative

Research note: Prayer threshold inputs for ordinary and greater relics; absence across all paths is not yet proven.

RPT-EVENT-0001reported_483_07
High Sabbat can default to invalid “Jan 0” and map coordinates 0,0.

Confidence: strong

Research note: Event initialization and failure/default record writes.

RPT-EVENT-0002reported_483_07
High Sabbat generation fails beyond 31 December 1499.

Confidence: strong

Research note: Calendar comparison and event generator around year 1500.

RPT-CHURCH-0001reported_version_unresolved
Confession time can become zero near local reputation 130 and negative above it.

Confidence: moderate; Yahoo #9553

Research note: Church owner arithmetic at reputation 128--132 and higher; observe the signed calendar-helper argument exactly. The report names no executable version.

RPT-CHURCH-0002reported_483_07
Tithing was reported to omit the final party member when restoring Divine Favor.

Confidence: disputed

Research note: The mined archive instead observed the Virtue increase on every eligible party member. Retain only as a boundary-test lead for parties of one through five pending exact loop inspection.

RPT-BALANCE-0001mechanic_or_presentation
Sufficient cash and Religion make Virtue gains from the church donation predictable and repeatable.

Confidence: strong mechanic, defect status unsupported

Research note: The church takes 10% of party cash: 6,001 pf on hand produces a 601-pf donation, reported sufficient for an eligible Religion-30 character. Decode the rule; repeatability alone does not make it a bug.

RPT-COMBAT-0001reported_version_unresolved
Pause while aiming, choose Flee without a destination, then resume to release repeated missiles through the melee animation.

Confidence: strong; Yahoo #9455 independently reproduced

Research note: Combat action state for bows, firearms, and thrown weapons. Separately observe animation, pending projectile, cooldown, original target, and target-death cleanup. Potions reportedly do not share the same autofire state.

RPT-MERCHANT-0001reported_483_07
Guild/smith specialization can fail for nighttime inventories.

Confidence: strong

Research note: Day/night merchant catalogue predicate and specialization masks.

RPT-ARMOR-0001reported_483_07
Damage to one equipped armor copy can affect every identical stacked copy.

Confidence: strong

Research note: Inventory aliasing/stack mutation, equipped-record identity, and damage write target.

RPT-QUEST-0001reported_version_unresolved
A fortress/Feste ruler can issue a raubritter quest but fail to recognize completion or pay the reward, unlike a Rathaus.

Confidence: moderate/strong; corroborated 2017 observations

Research note: Compare identical targets and simultaneous commissions from Rathaus, Feste, guild, Fugger, and Hanse issuers; inspect completion flags, reward owner, and reputation effects.

RPT-QUEST-0002reported_version_unresolved
A clerk’s “come back tomorrow” appointment may establish no usable follow-up state.

Confidence: moderate/low

Research note: Separate the in-game appointment/event state from limitations of the third-party quest viewer mentioned in the same report.

RPT-WILDHUNT-0001reported_483_07
World generation may choose a Wild Hunt banishing saint that is unobtainable anywhere in that world.

Confidence: moderate; one expert report

Research note: Enumerate generated saint availability against every Hunt requirement. Random selection itself is intended; only an unavailable, ineffective, or uncleared requirement is suspect.

RPT-STONE-0001mechanic_or_presentation
An attempted Philosopher’s Stone upgrade can fail repeatedly without explaining that the university’s Stone is not better.

Confidence: moderate

Research note: Separate legitimate world generation with no superior Stone from the missing comparison feedback. Do not classify it as a broken success roll without operand evidence.

Potion and description mismatches4 entries
RPT-POTION-0001reported_483_07
New-wind grants temporary Endurance rather than restoring lost Endurance as described.

Confidence: moderate

Research note: Potion effect vector, timed event, and description record.

RPT-POTION-0002reported_483_07
Black Cloud changes no displayed Stealth/Perception and instead serves event concealment.

Confidence: moderate

Research note: Item availability contexts, event consumer, and effect vector.

RPT-POTION-0003reported_483_07
Sunburst ignores range and physical obstruction while applying facing/arc logic.

Confidence: moderate

Research note: Combat target enumeration, arc predicate, distance, and line-of-sight calls.

RPT-POTION-0004reported_483_07
Greatpower category, expiration, and reapplication behavior contradicts documentation.

Confidence: moderate

Research note: Cross-reference `RPT-EQUIP-0001..0003`; do not create duplicate runtime policies.

Tentative runtime and content reports8 entries
RPT-WORLDMAP-0001reported_483_07
Travel map can freeze or scroll continuously.

Confidence: tentative

Research note: World-map input and scroll controller; first exclude DOSBox/host input behavior.

RPT-COMBAT-0002reported_483_07
A wilderness battle can begin without enemies.

Confidence: tentative

Research note: Encounter participant publication and zero-enemy continuation.

RPT-MINE-0001reported_483_07
Mine Problem III parley can produce an empty screen.

Confidence: tentative

Research note: Quest event/card selection and active visual source.

RPT-INITI-0001reported_483_07
The “Initial Card for Testing Only” card can appear during the main plot.

Confidence: tentative

Research note: `$INITI00` caller/owner and event-card index. Existing research must be consulted before reopening this target.

RPT-ROSTER-0001reported_483_07
Female or alchemist inn recruits can receive an incorrect sprite/color.

Confidence: tentative

Research note: Recruit template, appearance fields, palette selection, and save publication.

RPT-CALENDAR-0001reported_483_07
A fresh GOG game reportedly rolled from 28 July 1400 back to 1 July, repeatedly invoked copy protection, and published the first High Sabbat as “Jan 0.”

Confidence: moderate incident, low causal confidence; Yahoo #9692

Research note: Treat as a possible linked initialization/state-loss cluster, not proof that every Jan-0 event shares one cause. Exercise custom-party starts from April through August 1400 while observing calendar, protection state, event initialization, and quest reset.

RPT-REVOL-0001byte_confirmed_read_producer_unresolved
$REVOL00 conditionally opens on card 5 rather than card 0 when byte DS:5835h is nonzero, although that byte sits between the initialized $Revol00 and $Revol01 resource strings and has no direct absolute writer in the current 135-overlay materialization.

Confidence: strong read/card relation; low defect confidence

Research note: Identify every indirect producer or alias of `DS:5835h`, the intended lifecycle of card 5, and a controlled original transition with the byte zero and nonzero. Do not call the card dormant or expose it unconditionally meanwhile.

RPT-REVOL-0002historical_version_hypothesis
The nineteen-resource, 230-card city-revolt family may have been more fully connected in an earlier Darklands release and become partly or wholly dormant by 483.07.

Confidence: strong shipped-content evidence; no version-difference proof

Research note: Acquire an authenticated earlier executable and matching MSGFILES; compare hashes, resources, state/event producers, dispatch owners, publication writes and `DS:5835h`; demonstrate natural unpatched entry in both versions before calling this a regression. Current 483.07 bytes prove only specific unpublished `$REVOL00/$REVOL01` rows, not whole-family dormancy.

Forensic save signatures1 entries
RPT-PALETTE-0002forensic_final_era
In two damaged final-era saves, the party color block was displaced by exactly one 16-bit word; its trailing bytes overwrote the beginning of character record 0. Repositioning the block repaired both saves.

Confidence: very strong signature; trigger unknown; Groups.io #9968

Research note: Byte-diff the party header and first character record across 4-to-5 recruitment, dismissal, temporary absence/imprisonment, death, inventory mutation, and intervening saves. Do not claim that party size or inventory quantity is the trigger until reproduced.

Documentation, platform issues, and deliberate mechanics9 entries
platform_or_documentation
Printed map says “Freiberg im Breisgau” instead of Freiburg

Research note: Artwork/manual error, not a world-data defect if the game records are correct.

platform_or_documentation
Manual describes a Hall of Fame that is absent

Research note: Abandoned or incorrectly documented feature, not an executable bug.

platform_or_documentation
Battlefield saving is restricted to particular cleared locations

Research note: Deliberate rule unless original evidence exposes a separate failure.

platform_or_documentation
Modern fullscreen, mouse, audio, or filesystem failures

Research note: Reproduce under the original environment or trace into original behavior before cataloguing as a game defect.

mechanic_or_presentation
A purchased formula belongs to the purchasing character; a traded formula goes to the current leader

Research note: Character-owned formula knowledge is intentional according to the archive. The collective-looking interface communicates ownership poorly.

mechanic_or_presentation
The main-quest fortress monastery disappears after an attempt

Research note: Reported to reappear after a later Sabbat. Record a defect only if the intended lifecycle fails to respawn it.

mechanic_or_presentation
Tarnhelm interaction causes the party to “crash through the floor”

Research note: This is a scripted trap, not a software crash. Purifying the tomb, including through Transformation, is part of the intended route.

mechanic_or_presentation
Different Wild Hunts require different randomly selected saints

Research note: Random choice is intended. Investigate only unavailable saints, ineffective valid saints, or a Hunt that fails to clear after success.

platform_or_documentation
Protection prompts occur at every map event after editing a save

Research note: Yahoo #9643 explicitly ties this case to Jugglindan's editor. Keep separate from the fresh-GOG calendar/protection incident in `RPT-CALENDAR-0001`.

Catalogue synchronization

This page is generated from the restoration engine’s canonical catalogues at commit bae23a99be6a (2026-08-24). The public summary preserves the source status and rewrite disposition; the engine files remain authoritative.

Source files and hashes
  • docs/KNOWN_ORIGINAL_BUGS.mdSHA-256 f86661a77b125822…
  • docs/DORMANT_ORIGINAL_BRANCHES.mdSHA-256 c3099d1ffd4d0e74…
  • docs/research/DARKLANDS_483_07_REPORTED_BUG_CATALOGUE.mdSHA-256 28c3669c2caab313…

Refresh with python tools/sync-original-oddities.py. CI or a local audit can detect drift with python tools/sync-original-oddities.py --check.