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.
Original-code evidence exists and the rewrite disposition is recorded.
The original branch exists, but its complete ordinary owner keeps it hidden.
A versioned research lead—not implementation authority or a confirmed 483.07 bug.
91 entries shown
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.MSGcard 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.MSGcard-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.MSGcard-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.MSGcard-0 encoded rows 6 and 7, literal texts6and7- 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.MSGcard-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
$URBAN00card 0 row 3, “visit the stables”- Rewrite disposition
replicate- Original unit(s)
proc_0051_0EE0;proc_0029_1326selector0005h
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
$CITYN00card 0 row 1, “inquire about empire affairs,” when no value-0002h event selects a location-specific card- Rewrite disposition
replicatefor the certified indexed-location route; coordinate-mode clean projection remainspendingand 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,$RAUBI00robber-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.MSGcard 0 row 1, “ask for help,” with signed local reputation at least 50 and five occupied party slots- Rewrite disposition
pending; no natural clean$VILLA02route 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
0091hcompletion - 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.MSGcard 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.MSGcard 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.MSGcard 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.MSGcard 0 row 2- Rewrite disposition
- replicated faithfully
- Original unit(s)
proc_0029_19D0; resident RNG wrapperresident_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.MSGcard 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.MSGcard 0$NamedOneNameand$NamedTwoNamesubstitutions- 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.MSGcard 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.MSGcard 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.
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
EB0Ahpublication/callback route atovl_0049:3052
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-effectRETF; no audio call - Faithful disposition
- remain hidden
- First unresolved boundary
- no alternate publisher is proven
literal_placeholder `$BLACK01` card 0 rows 5–8 — literal placeholders
- Encoded text
- literal rows
5,6,7, and8 - 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/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
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
6and7 - Ordinary owner
proc_0054_1A78- Latent effect
- present
$COUNC00card 0 mode 0;proc_0029_05C8(0); write state0004h/$CITYE00; retain audio - Faithful disposition
- remain hidden; no clean/SDL route
- First unresolved boundary
- no distinct owner publishing either control word is proven
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
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
Confidence: official
Research note: Designer testimony associates it with original releases; fixed during the stabilization cycle.
Confidence: official
Research note: Do not conflate with the distinct unsafe-location save rollback acknowledged in 483.07.
Confidence: official but nonspecific
Research note: Primarily addressed by 483.06.
Confidence: official but nonspecific
Research note: 483.07 substantially improved it; this does not disprove the surviving rollback behavior below.
Confidence: official
Research note: Fixed in 483.07, though old saves could retain the bad state.
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.
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_reportConfidence: official
Research note: Save controller, temporary-to-persistent event transfer, and restore boundary.
RPT-PALETTE-0001official_483_07_reportConfidence: official; trigger unknown
Research note: Character palette mutation, battle-entry publication, and save serialization.
RPT-FILES-0001official_483_07_reportSAVES\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_reportConfidence: official
Research note: Universal menu/load controller and its input dispatch.
RPT-PLATFORM-0001platform_or_documentation/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_07Confidence: 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_07Confidence: 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_07Confidence: 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_07Confidence: moderate
Research note: Inn-storage quantity/record layouts at 254/255/256 and retrieval compaction.
RPT-INN-0002reported_483_07Confidence: 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_07Confidence: 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_07Confidence: 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_07Confidence: strong
Research note: `DARKLAND.SNT` records, selector table, descriptions, and invoked effect vectors.
RPT-SAINT-0002reported_483_07Confidence: 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_07Confidence: moderate/strong
Research note: Saint effect loop and equipped weapon category branch.
RPT-EQUIP-0001reported_483_07Confidence: 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_07Confidence: moderate
Research note: Reapplication dispatcher and all rewritten equipment fields.
RPT-EQUIP-0003reported_483_07Confidence: moderate
Research note: Effect category predicate; may instead be a documentation mismatch.
RPT-EQUIP-0004reported_483_07Confidence: 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_07Confidence: strong
Research note: Chest-generation item construction and relic definition quality.
RPT-RELIC-0002reported_483_07Confidence: tentative
Research note: Prayer threshold inputs for ordinary and greater relics; absence across all paths is not yet proven.
RPT-EVENT-0001reported_483_07Confidence: strong
Research note: Event initialization and failure/default record writes.
RPT-EVENT-0002reported_483_07Confidence: strong
Research note: Calendar comparison and event generator around year 1500.
RPT-CHURCH-0001reported_version_unresolvedConfidence: 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_07Confidence: 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_presentationConfidence: 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_unresolvedConfidence: 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_07Confidence: strong
Research note: Day/night merchant catalogue predicate and specialization masks.
RPT-ARMOR-0001reported_483_07Confidence: strong
Research note: Inventory aliasing/stack mutation, equipped-record identity, and damage write target.
RPT-QUEST-0001reported_version_unresolvedConfidence: 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_unresolvedConfidence: 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_07Confidence: 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_presentationConfidence: 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_07Confidence: moderate
Research note: Potion effect vector, timed event, and description record.
RPT-POTION-0002reported_483_07Confidence: moderate
Research note: Item availability contexts, event consumer, and effect vector.
RPT-POTION-0003reported_483_07Confidence: moderate
Research note: Combat target enumeration, arc predicate, distance, and line-of-sight calls.
RPT-POTION-0004reported_483_07Confidence: 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_07Confidence: tentative
Research note: World-map input and scroll controller; first exclude DOSBox/host input behavior.
RPT-COMBAT-0002reported_483_07Confidence: tentative
Research note: Encounter participant publication and zero-enemy continuation.
RPT-MINE-0001reported_483_07Confidence: tentative
Research note: Quest event/card selection and active visual source.
RPT-INITI-0001reported_483_07Confidence: tentative
Research note: `$INITI00` caller/owner and event-card index. Existing research must be consulted before reopening this target.
RPT-ROSTER-0001reported_483_07Confidence: tentative
Research note: Recruit template, appearance fields, palette selection, and save publication.
RPT-CALENDAR-0001reported_483_07Confidence: 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_hypothesisConfidence: 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_eraConfidence: 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
Research note: Artwork/manual error, not a world-data defect if the game records are correct.
Research note: Abandoned or incorrectly documented feature, not an executable bug.
Research note: Deliberate rule unless original evidence exposes a separate failure.
Research note: Reproduce under the original environment or trace into original behavior before cataloguing as a game defect.
Research note: Character-owned formula knowledge is intentional according to the archive. The collective-looking interface communicates ownership poorly.
Research note: Reported to reappear after a later Sabbat. Record a defect only if the intended lifecycle fails to respawn it.
Research note: This is a scripted trap, not a software crash. Purifying the tomb, including through Transformation, is part of the intended route.
Research note: Random choice is intended. Investigate only unavailable saints, ineffective valid saints, or a Hunt that fails to clear after success.
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.