Giter Club home page Giter Club logo

Comments (165)

qndel avatar qndel commented on April 27, 2024 8

image
that's how the quest panel should actually look but we NEVER saw the golden "quest log" because they messed up with the drawing order -

void DrawQuestLog()
{
	int y, i;

	PrintQLString(0, 2, TRUE, "Quest Log", 3);
	CelDraw(SCREEN_X, SCREEN_Y + 351, pQLogCel, 1, SPANEL_WIDTH);

Quest Log gets drawn first then gets covered by the panel, swap these 2 lines to fix

from devilution.

qndel avatar qndel commented on April 27, 2024 5

if you walk south or east while having 20% light radius, your character disappears while you are moving
[fixed by diasurgical/devilutionX#899]
thedark

you can only see monsters that are diagonally from you if you have 20% light radius, if the monster is north/east/south/west, it's invisible
monsters that are invisible on the tiles mentioned above attack player, but lose aggro over time
[fixed by diasurgical/devilutionX#899]

leaving the level through town portal and reentering through entrance grants you vision of things at town portal till you get close enough to overwrite it
[fixed by diasurgical/devilutionX#899]

light radius and vision aren't updated consistently, they are supposed to be equal but the function that recalculates item stats limits light radius to 2-15 and vision to 10-15 = after you reequip an item you can pull more monsters than you see
[fixed by diasurgical/devilutionX#899]
darkaggro

knockback can knock you out of your light radius/vision = character disappears
[fixed by diasurgical/devilutionX#899]
getknockedpleb

vision updating is pretty poo, even more so on low light radius - 30% on the gif
[fixed by diasurgical/devilutionX#899]
radius3

This has to be the most complete light radius bugs list xDD

from devilution.

 avatar commented on April 27, 2024 4

Another bug where standing in certain spots overwrites the top left corner of the control panel:
_tile_bug_lv1

from devilution.

qndel avatar qndel commented on April 27, 2024 4

monsters.cpp -> MonstStartKill

if (pnum < MAX_PLRS && i > MAX_PLRS)
		AddPlrMonstExper(Monst->mLevel, Monst->mExp, Monst->mWhoHit);`

i > MAX_PLRS should be i >= MAX_PLRS, otherwise monsters at index 4 (which are perfectly valid) don't give xp - this happens to be butcher/leoric etc. and I'm assuming on levels without quest monsters, there's 1 random monster that doesn't give xp
Discovering new d1 bugs in 2020 = yay :D

from devilution.

xavier-sb avatar xavier-sb commented on April 27, 2024 4

Here's a batch of character graphical errors:

The south-west direction is not used on Warrior when a medium armor, mace, and shield are equipped while standing idle. It forces him to stand facing west. Although the sprite does seem to exist. https://www.twitch.tv/videos/753340000
Warrior - Medium Armor with Mace and Shield

On Warrior while wearing medium armor, and a sword, if you cast a magic spell, his sheath disappears from about 7 of the 8 directions. This does not happen when casting a fire spell or lightning spell. Check the circles. https://www.twitch.tv/videos/753340093
Warrior - Medium Armor with Sword

On Rogue while wearing either light armor or medium armor and using a mace, a sheath appears when attacking, then promptly vanishes when standing idle. Check the circles. https://www.twitch.tv/videos/753340376
Rogue - Light   Medium Armor with Mace

On Rogue while wearing heavy armor and using a staff, if you swing the staff, 1 of the directions is missing entirely. It seems the devs duplicated this one and ordered the directions wrong, causing Rogue to not swing properly in 5 of the 8 directions.
https://www.twitch.tv/videos/753340484
Rogue - Heavy Armor with Staff

On Rogue while wearing medium armor and using a bow, casting any magic type will show Rogue holding an arrow in both hands. This does not occur while wearing light armor or heavy armor; she holds the arrow only in the same hand as the bow. Check the circles. https://www.twitch.tv/videos/753340587
Rogue - All Armors with Bow

On Rogue while wearing medium armor, sword, and shield, if you walk south-west, west, or north-west, a goldish pixel appears at the top of the right wing on her shield. This does not appear as part of the character sprite. https://www.twitch.tv/videos/753340690
Rogue - Medium Armor with Sword and Shield

Edit: Forgot about the way Rogue's sword and sheath curve while walking when wearing medium armor and heavy armor.
Also, it appears that while Rogue is wearing medium armor, mace, AND a shield, the sheath will appear as well.

from devilution.

 avatar commented on April 27, 2024 3

Eldritch Shrine Bug

The Eldritch shrine (turns healing/mana pots into rejuvs and full pots into full rejuvs) uses the player's holding item buffer to temporarily store the rejuvs. What could possibly go wrong here?........ xD xD

If you click on the shrine and then pickup an item from your inventory/belt, the item you're holding will get overwritten. When you place it back down, it turns into a rejuv. BEWARE!

As a side note, this can be exploited for an extra rejuv, grabbing say 1 piece of gold or some junk item.

Bugfix

The routine for this in OperateShrine should use a temporary buffer local to the function or the global temporary buffer curruitem to fix this. :)

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024 3

@ssjkakaroto i'm pretty sure this is the affected code:

if ((int)(ticks - PentSpin_tick) > 25) {

But looking at the code there appears to be a ton of things that would be affected by this, not being able to join a game, battle.net chat not working, lava not animating, sounds not playing, multiplayer stopping, quest dialogs not closing automatically, game can hang on launch if you hit the exact moment (and have an old version of MS Office installed), the game doesn't detect network disconnect, some in-game chat messages not being displayed, targeting other players being interrupted working, game crashes if video context is lost during the rollover. Package drop if sent around the rollover.

Some of the bugs may only appear to happen at the exact moment of the rollover.
Also there's a related but that autosave won't work after 25 days.

So yeah, menu animations are probably the least of your worries if you play the game for more then 50 days at a time :)

from devilution.

qndel avatar qndel commented on April 27, 2024 3

image
weird pixels in menu - easiest to notice it by holding esc - menu will flash and you will notice spots outside of it, best seen at light terrain like the central square in tristram ;)
@mewmew I guess I joined the pixel hunting club :D

from devilution.

mewmew avatar mewmew commented on April 27, 2024 3

You can drop items across the barrier(yellow), but your character cannot cross it. Nor can you pick the item back up from across the barrier.

Feature, not a bug. We call this the bounty sacrifice. By hearsay, this has been known to enhance the random item spawn of Wirt.

from devilution.

galaxyhaxz avatar galaxyhaxz commented on April 27, 2024 3

@mewmew You are two years late: https://github.com/diasurgical/scalpel/blob/master/BUGS.md

;p

This "thread" has become so long and convoluted, consider putting images and longer posts in spoiler tags.

from devilution.

qndel avatar qndel commented on April 27, 2024 3

diasurgical/devilutionX#1672
Hellfire bug:
Fire arrows from traps instakilling sometimes.
This required a pretty specific scenario to happen:
You had to successfully block the projectile
You had to be standing against a wall or some other obstacle.

  1. Player triggers the trap
  2. Player blocks the trap successfully
  3. It flies further, collides with the obstacle and explodes
  4. Player is still recovering from blocking and gets cooked by the explosion getting hit multiple times

Seems this bug also exists in vanilla, hellfire just added another way to die from it 😆
instakill

from devilution.

 avatar commented on April 27, 2024 2

There is an overflow bug in the dungeon algorithm of Cathedral that sometimes causes out-of-map pieces. Documented here.

I can confirm that Devilution works correctly (i.e. is bugged like vanilla). Current known seeds:

Cathedral:
2588
4743
7281
9345
15236

from devilution.

 avatar commented on April 27, 2024 2

Edit: actually the spaces in yellow are spots where there aren't any pixels in the .CEL, so the game never draws anything there. The function responsible for drawing the void fills them black. The only way to fix this is to edit the CEL map and create pixels in the empty spots.
DIABLO_2019031337_061641
DIABLO_20190317_221850

from devilution.

 avatar commented on April 27, 2024 2

By chance I stumbled upon a broken tile on level 5. Here is the picture with seed and location:
_seed_bug_lv5

from devilution.

 avatar commented on April 27, 2024 2

@mewmew Yeah it's in vanilla. You won't notice the bug unless you hover your mouse over that spot in the control panel, it overwrites the panel graphic. I rewrote the whole render and discovered this bug while testing. It's likely caused by DrawMain not blitting all parts of the screen all the time.

@AJenbo The belt items is just a side effect of the new render, not in vanilla. If you notice there's transparency! <3

Edit: attached save file so you can test it. Load the game and place mouse over top left corner.
single_4.zip

Interesting is that this bug doesn't happen in the debug release or prior. So it was caused by something changed in the render in 1.00.

from devilution.

 avatar commented on April 27, 2024 2

@AJenbo had pointed this bug out awhile back, as it was thought to be caused by my render re-implementation. Actually, it's caused by the whole eflag system where for some reason, when walking south east, arches aren't drawn above the player. So the fix was to add separate drawing code outside of the render. I had to catch it mid action, but the spots in yellow are where eflag tiles are drawn. They overwrite the book case. IIRC this bug was fixed in the PSX version, since they ditched eflag entirely.
DIABLO_20190428_063210

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024 2

Here's another render issue:
Caves

diasurgical/devilutionX#111

from devilution.

 avatar commented on April 27, 2024 2

The file gendata/logo.smk is broken in the original release. The first 25 frames have garbage filling the background instead of a black color. Though you can't notice it unless you have Windows 7. It seems this was fixed in all diablo releases after 1998, only the original 1996 discs have the broken file.

Checksums:

(Broken) MD5: 68f049866b44688a7af65ba766bef75a    Date: 12-26-1996
(Fixed) MD5: 011bc6518e6166206231080a4440b373    Date: 12-04-1997

Animated GIFs:

Broken
Fixed

from devilution.

 avatar commented on April 27, 2024 2

Proper documentation for the bug outlined here: diasurgical/devilutionX#477
This bug is caused by the DRLG_L3Pool function not filling all blank tiles with lava tiles. Here a few sample seeds to see it on level 9:

751
1222
2617
3031
7675
8117
8616

Here is a pic of seed 2617
DIABLO_20191117_001530

from devilution.

 avatar commented on April 27, 2024 2

The unique helmet Helm of Sprits has a typo, it was clearly meant to say Spirits. The PSX version translated it to say spirits in other languages, so was implied.

from devilution.

 avatar commented on April 27, 2024 2

Old remains from the demo when they used the store dialog for quests:
ql

from devilution.

mewmew avatar mewmew commented on April 27, 2024 2

screenshot_2020-07-13_00:40:02

Wow, this is not even sub-millisecond anymore. @qndel you literally posted a reply in the future.

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024 2

You can drop items across the barrier(yellow) in either direction, but your character cannot cross it. Nor can you pick the item back up from across the barrier.

images images
1 2
3 4
5 6

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024 2

Some vanilla bugs from devilutionX issues:

Bad pallet at end of loading poisoned water
diasurgical/devilutionX#593
Caves Door Multiplayer Tearing
diasurgical/devilutionX#762
Scrolls and charges not consumed correctly if swapped before hit-frame
diasurgical/devilutionX#792
Remove animation skipping on player attacks
diasurgical/devilutionX#779
Scroll removal behavior is different when using as items vs using as spell
diasurgical/devilutionX#793
Inconsistent behavior when attacking monsters: holding SHIFT vs standard attack
diasurgical/devilutionX#801
Consistent use of spacing for information on bottom panel
diasurgical/devilutionX#803
Inconsistent wording for health / mana potion information
diasurgical/devilutionX#807
Reword potion effect descriptions for consistency
diasurgical/devilutionX#808
Incorrect spelling of "right-click" verbs on item descriptions and help screen
diasurgical/devilutionX#809
Incorrect referece to "left mouse buttons" as "left click" on game help
diasurgical/devilutionX#810
Character screen base/now attributes and life/mana values are misaligned in the UI
diasurgical/devilutionX#814
Inconsistent references to health values in the game: "LIFE" vs "HIT POINTS"
diasurgical/devilutionX#815
Inconsistent spelling of "hotkey"/"hot key"
diasurgical/devilutionX#817
Slain hero quest can freze the game
diasurgical/devilutionX#826
Missing 1st animation frame on all player/monster/item animations
diasurgical/devilutionX#838
'quick' and 'haste' speed modifiers do not work as intended
diasurgical/devilutionX#839
Attempting to buy item that cannot be used while inventory is full results in lost item
diasurgical/devilutionX#848

from devilution.

xavier-sb avatar xavier-sb commented on April 27, 2024 2

Boy do I feel like an idiot. I did not even bother to read the comments on the lurker lounge bug list. See Belix's comments on light radius..

the actual behavior is that, if any item equipped or unequipped alters your light radius after entering a floor, the minimum effective light radius becomes 100%.

So if you had one Radiance (+40% Light) item on and unequipped it, this would drop your light radius from 140% to 100% correctly for both light shown on screen AND effective monster activation. However, if you also had one Night item (-40% Light) and then unequipped your radiance, it would only reduce your effective light radius from 120% to 100%, instead of the expected 80%.

Just to clarify, if you so much as equip or unequip ANY +/- light radius item (even if swapped instantly with another of equal magnitude) the minimum light radius becomes 100% for the remainder of your stay on that dungeon level.

2 new vids of the light radius bug:
https://www.twitch.tv/videos/715546903
https://www.twitch.tv/videos/715546976

From my observation, Belix's comment seems to be mostly correct. The only incorrect part is "(even if swapped instantly with another of equal magnitude)." I tested this in the second vid and my light radius did not change in terms of monster activation. Something interesting I did notice in the first vid tho is that if you wear enough gear to achieve -100% LR, then adding +20% doesn't change anything at all, not even monster activation, and it doesn't set it back to 100%.

from devilution.

ChaosMarc avatar ChaosMarc commented on April 27, 2024 2

You could consider creating a new milestone "Diablo without bugs" and add issues for all known vanilla bugs. When a fix is found and added via comment to the code the issue could be closed. this way there would be a better overview of the known bugs.

Perhaps you could also implement the fixes not as comments but in an IF DEFINED statement instead so that a bugfree version could be compiled with a special flag.

from devilution.

galaxyhaxz avatar galaxyhaxz commented on April 27, 2024 2

I love the first idea, but IF DEFINED statement is an issue. For one, some bugs are graphical and require patching game assets. Two, those that are code related, many are certainly not just a clean one-liner and some are tied to multiple functions. Some may be relevant to another bugfix or require rewriting a function here, fixing this there etc. In the end you'd end up with something that looks almost as ugly as what IDA spat out.

Which brings me to point no. 2. This probably wasn't mentioned before so here it is: my long term goal was to get the code cleaned up and produce 100% exact results (which we did). Afterwards, using the code as a reference from which everything can be rewritten from the ground up. This would allow fixing bugs, modern coding practices, more efficient and easier to mod etc. while guaranteed accurate unlike the many re-implementation projects floating around that were based off guesswork.
(It's not open source, but I've done this with Diablo's UI using the original as a guide)

So imo Devilution should die where it is. Some asswipe released the official code (hey buddy that's great but ya' could have done so sooner ok??). Which effectively achieves the above goal several times over in that now we have the purest reference from which to work, but also rendered many manual-hours by me (and a few others) nigh-useless. So there is our starting point, don't use it, don't copy it, but reference it. The even tastier fruit is for all hands taking.

What the new owner(s) of Devilution do is up to them: Buy it break it fix it smash it melt it love it hate it burn it. If coming up with a multiple if-def nested monster is what they choose or not. Just my 2 cents, the last 2 cents I had saved up for college.

from devilution.

StephenCWills avatar StephenCWills commented on April 27, 2024 2

Player takes damage to HP through Mana Shield when Infravision wears off. This can also occur during transitions of the Rage skill.
diasurgical/devilutionX#1353 (comment)

Additional notes: I didn't exhaustively analyze all usages of CalcPlrItemVals() so this could potentially happen in other ways as well. However, most of the time, order of events in the game logic would protect the player from receiving damage to HP even if CalcPlrItemVals() is called so moving items around in your inventory, for example, should not trigger this bug. Infravision and Rage were just the most obvious offenders.

from devilution.

 avatar commented on April 27, 2024 1

@ApertureSecurity check Support/surgery.xls for a spreadsheet containing addresses.

Found another one while testing the world.cpp refactor. This bug is also part of vanilla.

EDIT: This bug was Devilution only
https://s33.postimg.cc/w9y0yf6ov/doorflip.png

from devilution.

 avatar commented on April 27, 2024 1

Well, it looks like the door issue mentioned above was devilution specific. However, these pieces are saved with the character so it becomes bugged when loading the character in a vanilla game. ee56751

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

Well, it looks like the door issue mentioned above was devilution specific. However, these pieces are saved with the character so it becomes bugged when loading the character in a vanilla game. ee56751

Interesting find. This is good to know when validating bugs in the future against vanilla Diablo. Basically, we can use the same seed for dungeon generation when validation, but we can't use save files.

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

It's great. We are gonna be able to create a version of Diablo that fixes all known bugs. Of course, Devilution will contain all original bugs to stay true to its origin.

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024 1

Yeah, tied to how the Windows API works, for DevilutionX it's instead 49 days after starting the game, so much less likely to happen.
https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-gettickcount

from devilution.

 avatar commented on April 27, 2024 1

so much less likely to happen.

Not on my watch!

There is also another annoying time bug where once you hit the year 2038 the random function overflows and returns a value past 0x7FFFFFFF (a negative number) and thus all randomness ceases and dungeon is the same.

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

There is also another annoying time bug where once you hit the year 2038 the random function overflows and returns a value past 0x7FFFFFFF (a negative number) and thus all randomness ceases and dungeon is the same.

Really? Have you tried it by setting the clock? Haha, would be a somewhat incredible way to cheat the PRNG 🗡️

from devilution.

 avatar commented on April 27, 2024 1

I time traveled instead to 2038. Unfortunately there's an apocalypse in the future and my time machine busted so its parts went everywhere and I had to walk back. We will see them one day! Next time I'll take you with me.

from devilution.

 avatar commented on April 27, 2024 1

Seems to me the issue is that the tile isn't set to be transparent.

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024 1

If you load a save game where Diablo is in his Death throes the audio will be muted after the movies play. This happens because sgbSaveSoundOn is left unset since M_DiabloDeath is skipped.

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

To keep bugs in one place, I've inlined the comments of diasurgical/devilutionX#572 (Ground Tile Rendering Grey) reported by @mgpat-gm here:

From diasurgical/devilutionX#572 (comment):
image

From diasurgical/devilutionX#572 (comment):

This is a hole in the town map, not something specific to DevilutionX and fixing it requires patching the data so out of scope for what we are doing atm. You can report original issues like this in the upstream bucket issue: #64

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024 1

According to https://diablo.fandom.com/wiki/Rogue:

There is a bug that causes rogues to gain 3 mana instead of 2 when reaching the 33rd level

I have not verified, but it sounds plausible.

According to JG 1.62:

As a curiosity, the light radius is always one square less in the catacombs and it is always the highest light radius you have had on a level that counts, even if you later lower it.

Edit: removed the portion about rounding down.

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

There are two typos made in the missile direction index lookup quadrant in GetDirection16 which results in a non-symmetric division of space between the various directions. This is better illustrated with a screenshot.

bugfix_GetDirection16

from devilution.

NiteKat avatar NiteKat commented on April 27, 2024 1

So we have a test using dlvl 6 and Death Spit thanks to Xavier. You can see Death Spit reacting to changing the light radius both lower and higher in this clip. https://www.twitch.tv/videos/680811199

from devilution.

qndel avatar qndel commented on April 27, 2024 1

I found another one with warrior - light armor's shield slightly changes color depending on if you are wearing a weapon or not, this change does not persist while moving

https://github.com/diasurgical/devilutionX/pull/899/files
This explains the bug which causes unique monsters' light radius to appear on the level away from them.
From what I've seen, it works properly the first time you enter the level, but on next entries, the monsters might actually be generated in completely different places, where the light radius stays at the original spot

This is caused by two things in LoadGameLevel function
First one:

  • calls to GetRndSeed() which actually change the seed itself
    glMid1Seed[currlevel] = GetRndSeed(); - glMid1Seed and friends are only used for debugging, yet affect the whole game

Second one is HoldThemeRooms();
This function changes the BFLAG_POPULATED flag for theme rooms, which prevents placing monsters and is only called when the level is entered for the first time.
And that's where things diverge - means MonstPlace will encounter different flags and return different values on subsequent entries = different number of random calls = different random values = different monster positions

fixed by diasurgical/devilutionX#899

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

Written by Bolty in 2010-08-08 at The DSF Buglist for Diablo v1.09. Copied here as a mirror:

Already part of https://github.com/diasurgical/scalpel/blob/master/BUGS.md


The DSF Buglist for Diablo v1.09

The intent of this list is not to make Blizzard look bad; in fact, compared to most other computer games out there, Diablo is exceptionally stable and bugless. The intent of this list is to educate and provide insight for anyone wanting to see what parts of the game don't work as intended or are strange. This list was constructed on the Diablo Strategy Forum, from the people who know more about the game than Blizzard itself does. :)

If you feel that you know of a reproducible bug that affects gameplay, post about it on the DSF. Find out if it really is a new bug, and I'll get it added.

Heartfelt thanks and a major thumbs up to all who've contributed bugs or helped explain them so far: Agammaglobulin, Argus McFrugal, Armin, Bolty, Charles Warren, Claudio(Cat), Code Myster, Cyrene, Darkman(BNM), Dark_Slayer, Das Regard, DaveMcW, Dr. Disaster, Dr. Zed, Drasca, El_Gecko, Erthshade, Esau, EviL, felisandria, Flux, Frank, Frenzy, Gorakh, Gyrefalcon, JakRabbit, Jarulf, KingOfPain, Kipo, Lance, Lochnar, M., Mayaheine, mellymel, moe SAINT EverGreen, Mystifier(CB), NoVit4Me, Nystul, Omega, Rand'al, Rich, Ruger, Tahrajj, Thecla, the Sage, Saxywoo, Sourceror, StormDemon, Stu, Tommi Helminen, Uwain, Van Damned, Varaya, and Walkiry.

Unless stated so, all bugs are multiplayer bugs. Some may apply to single player mode, some may not. Also, a key point here: many of these bugs aren't really bugs, but strange behavior, or quirk, in the game that was probably intentional. The reason they are in this list is because the list is meant to be an educational tool to point out quirks of the game to people who've never heard of them.

To date, two immediate game-crashing bugs have been identified in version 1.09.

SPELL BUGS

All bugs in this category are related to spells and spellcasting.

CHARGED BOLT

If you stand in a tile of a bookcase or shrine and cast Charged Bolt, the spell effect will be terminated immediately. No bolts will form, but you will lose mana.

FIRE WALL

Fire Walls do more damage than listed in the spell book.

When you walk through a firewall in a way against its alignment, you will not be damaged if you step through its gaps. For instance, walking through a horizontal straight firewall diagonally won't damage you if you walk through at the correct tiles. The same effect applies to monsters and other players.

TELEKINESIS

If you Telekinesis a monster too much, it's possible for it to disappear into a wall. You will see the graphic in the wall, but no monster.

You cannot drink a potion from your belt using number keys while the Telekinesis cursor is active.

Telekinesis won't work on a monster unless it is activated. These means you can't mess with them if you can only see them with Infravision.

TOWN PORTAL

If a character goes to pick up an item as he/she is entering a Town Portal, a dupe will appear on the other side, thus creating the same item in town and in the dungeon. Neither item will be destroyed.

If a character dies while entering a Town Portal he/she will arrive in town dead, being unable to restart in town. The character must be resurrected, or he/she can drink a potion to heal to a living state. Also, if the character was killed by a monster, his/her equipment will fall in town - in a position relative to the level he/she left (sometimes in impossible locations, such as inside buildings).

Casting a spell just as you enter a Town Portal can cause a casting of the spell in town, producing an Illegal Spell warning.

On levels in which "Gargoyles" (i.e. Winged Demons, Gargoyles, Blood Claws, and Death Wings) are present, if a player leaves via Town Portal and re-enters the level, upon arrival all Gargoyles' "stone status" is not preserved. They'll activate normally, but they'll behave differently had they been in "stone status."

You cannot drink a potion from your belt using number keys while the Town Portal cursor is active.

FLASH

If you stand in the X in the diagram below and cast Flash, monsters in squares 1, 3, and 5 will receive about 1/10 of the normal Flash damage for some weird reason. Conversely, if the MONSTER is in the X, standing in 4, 6, and 8 will limit the damage you will be doing to that monster with flash. This rule also applies for when the monsters are casting Flash.

   1
  2 3
 4 X 5
  6 7
   8

When casting Flash, your character becomes temporarily invulnerable (but cannot move or take any other action).

STONE CURSE

Enemy mages can be Stone Cursed in mid-teleport, which makes them invisible and invincible until Stone Curse wears off. Golems will even (unsuccessfully) attack mages in this state.

FLAME WAVE

Flame Wave misses every other square when cast in the diagonal, direct left, right, top and bottom screen orientation.

FIREBALL

Fireball actually does far more damage than listed in the spell book, as a Fireball hit causes initial damage to the target and then splash damage on top of it.

Splash damage from Fireballs (possibly other spells) is removed when traveling over objects like spikes, chests, etc. Try casting a Fireball into a pack of Snow Witches behind a spike or something, and only the direct damage will be applied; one witch will be hit, the rest won't be scratched.

MANA SHIELD

Any attack causing more damage than a character's current hit points will not stun the character if they are using Mana Shield. Furthermore, the game considers the character to be in a state of death for a small period of time before his/her hit points are "refunded" by the Mana Shield. During this period of death (fraction of a second) the character is actually rendered immune to attacks, and cannot be knocked backward as well.

Players can "block" stairways when they enter them. A "ghost" image of the character remains at the stair entrance to the other players, and remains until the stair-taking player finishes loading up the next level. This blocking effect occurs 100% of the time when the player has a Mana Shield cast.

All spell levels of Mana Shield have the same damage reduction effect, 33%.

Mana Shields only reduce the damage caused by a Constricting Ring by 25%, not 33%.

GOLEM

The damage listed under the Golem spell in the Spell Book has no meaning. Golems do not do a constant rate of damage; their hit points are controlled by the caster's max mana.

If a character steps into a square the Golem was swinging at (to kill a monster) and the Golem hits the character, it then treats the character as an enemy and will attack him.

If, while standing adjacent to an enemy, you cast a golem with your cursor on yourself, the golem will appear on your tile. Your golem takes no damage with this bug.

A Golem has an infinite light radius to anything that uses Succubus, Goat Archer, or Skeleton Archer AI. Any such creature in a line of sight to it will fire at it but will not necessarily be otherwise activated.

Golems do very minimal damage against witches when the witches are trapped inside a Hell stairwell.

SPELL MEMORY CARRYOVER

Upon starting the Diablo program (before you play any other games of Diablo), start a game; click on the spell speedbook square and press 'S' at the same time. You'll get to use the Null Skill, which does nothing and looks like a fire-based spell.

If you use a spell on one character and then switch to a new one who doesn't have that spell, you can use the same technique above to load the old spell on the new character. If the character doesn't have that spell, it'll show up as a level zero spell.

SPELL QUEUING

You can queue spells by casting one while another's already being cast, and this can cause lots of problems. Examples are Teleporting only a space or two because the spell queued where your cursor was at the time, casting a spell when you don't have enough mana for it (you get a free cast and end up with negative mana), and firing spells in completely wrong directions because your mouse cursor was moved after the first cast.

You can queue a spell before entering a level (while it's still loading), which causes it to take effect to where your cursor was on the level beforehand. So, if the stairs down were on the left side of the upper level, and the entranceway below was on the right side of the lower level, you could cast Teleport and cross the entire lower level instantly. Same goes with other spells such as Town Portal. You can also cause illegal spells in town to occur this way, although the timing is very difficult to get right.

Certain spells from scrolls can be cast twice if a character casts a read, known spell and interrupts it with the scroll spell, casting twice in rapid succession. This is because the game queues the scroll spell before it realizes it can only be cast once.

A spell from a staff can be cast even if you run out by queuing the spell before the last spell casts.

SCROLL SPELL LEVELS

Scrolls of spells that you cannot read books of (i.e. Infravision) will be cast at the spell level of whatever book-read spell you have selected in your speedbook, when the scroll is cast from the belt. A level 15 Infravision can last a long time.

INCORRECT SCROLL DESCRIPTIONS

Scrolls often have the wrong directions for casting. Scrolls either have a "Right-click to read" description or a "Right-click to read. Left-click to target" description. On many spells, the description is wrong. For instance, the Flash spell scroll has the 'left-click to target' description, even though left clicking is not required.

INCORRECT SIGNED/UNSIGNED VALUES

A bug exists where you can cast spells while you have negative mana. This can result in incorrect values for spells that depend on mana. For example, a golem is nearly invincible if it is cast while you have negative mana. The game treats the negative value as unsigned and thus an enormous HP value is applied.

LAG AND DESYNC BUGS

All bugs in this category are generally caused by lag and game desyncronization.

TOWN PLACEMENT OF "HOTPOINTS"

Occasionally the characters ("hotpoints") in town will be in a wildly different location than normal (such as a cow placed right next to Griswold). This is caused by clients arguing over the true position of these hotpoints.

TOWN PLACEMENT OF DROPPED ITEMS

When dropping items in town and entering the dungeon, upon return to town the items dropped will have sometimes moved, even to impossible locations - such as inside buildings or across the Tristram borders. This is caused by other players entering the game and not receiving the correct information as to town placement, so the entering client "moves" all the items around (as long as no other clients are in town).

DISAPPEARING ITEMS

Occasionally an item will simply disappear when a character tries to pick it up. It is believed to be caused by lag, although there are reports of occurrences in Single Player mode - which may be a wholly different bug. Generally however this is a result of a game desync, when clients do not agree as to the items that were "generated" by dying monsters.

DESYNCED LEVELS

When playing with a partner, it is possible to play in a disjointed level (possibly related to previous bug). This occurs when the level layouts are different for each player. This causes strange effects such as watching your partner walk through walls. You may also see completely different monsters. It is highly dangerous to play this way, and both players should leave the level immediately.

WRONG CHARACTER STATUS

Characters can sometimes appear dead, permanently stunned, equipment-less, or other ways due to game desyncs when the player changes his/her status, or when suddenly leaving the game.

PLAYER GHOSTS

If a player leaves the game while in a "trouble" situation (i.e. swarmed by monsters), it may not have a graceful exit. The character's "ghost" remains, the picture of the player. It can be highlighted by another player, even attacked. On other players' screens that can see the ghost, they may see monsters try to attack the ghost.

EXITING PLAYERS

When a player is lagged out, or "times out" of a game, the other clients will occasionally see a "Player has left the game" message instead of the time out message.

EQUIPMENT BUGS

All bugs in this category are related to effects caused by equipment or equipment generation.

STEALTH EFFECTS

When using items that reduce a character's light radius, a character will only activate monsters who are in that light radius. However, the character's light radius for attracting monsters depends upon the highest light radius the character had on a level until he/she exits the level. If the light radius is increased/decreased while on the level, it will alter the player's light radius, but not in terms of monster attraction - they will be attracted to the highest radius that existed at any time on the character. In other words, always have stealth equipment equipped BEFORE entering a level, and if you drop a stealth item, you'll have to leave the level and come back to use its effect on monster attraction again.

When at full stealth level (-80% light radius), walls sometimes cannot be mapped even when the character is right next to them. Also, portions of the map for a level will appear as revealed very far away from the character's position. And, last of all, you won't see a monster one square away from you if it's at a diagonal angle. It won't see you, either.

HIGH DURABILITY WRAPAROUND

When a character is saved with an item that has over 255 durability, its durability wraps around back to 1 to 10 durability. This can cause strange effects when using Hidden Shrines or finding items with durability-boosting suffixes that would normally cause its durability to be higher than 255.

If you use Hidden Shrines to take an item to exactly 255 durability, the item will transform to an indestructible item. This is because Blizzard used 255 in their code that checks whether an item is indestructible.

Items raised to 256 durability with Hidden Shrines have a number of problems. When starting a new game, the item will have zero maximum durability. Any attempt to repair the item at Griswold will then crash the game. Any attempt to repair the item with a warrior's Repair Skill (when it is something other than 0/0 durability) will result in the either the immediate disappearance of the item, or the item will become unselectable and will disappear when clicked on again.

GRISWOLD'S REPAIRS

Occasionally Griswold will charge you for repairing an item and yet not repair it, forcing you to have to pay for repairs again, and possibly multiple times.

Griswold will not repair a cursed item because its value to him is negative or less than one.

Griswold can only repair an item when at least 1% of its durability has been lost; therefore, items over 100 durability can only be repaired after they've lost more than one durability point (over 200, 2 points).

ADRIA'S ISSUES

Occasionally Adria will charge you for recharging a staff and yet not recharge it, forcing you to have to pay for recharge again, and possibly multiple times.

Adria will recharge a staff for free if the number of charges to be reset is less than 1% of the total number of charges on the staff.

If you sell an item at Adria and you don't have enough room for the cash to be placed in your inventory, the excess gold is lost.

DEADLY HUNTER

This unique bow is listed as doing +200% damage versus demons, just as the BloodSlayer (axe) and Civerb's Cudgel (mace). However, while the Civerb's Cudgel and Bloodslayer have the effect of tripling a characters total damage to demons (not the weapon damage, but the total), the Deadly Hunter does not. This is caused by the way the game engine handles arrows differently than melee weapons.

IMPOSSIBLE ITEMS

Due to the item generation rules of Diablo, these unique items cannot be found: Bramble, Crackrust, Lightforge, The Deflector, Gonnagal's Dirk, and The Mangler.

KING'S VS. CHAMPION'S PREFIX

The prefix "Champion's," while being weaker than "King's," is considered more valuable in terms of rarity in the game. This causes "Champion's" to be unfindable from any monster; it can only be bought from Wirt. This is a result of a hasty change in the value of the "King's" prefix before the release of the game - it was lowered to make it easier to obtain, and "Champion's" was not.

SWING SPEED

The suffix "of Haste" is supposed to be faster than "of Speed," but they both produce the same swing speed as they eliminate the same number of animation frames on an attack. Blizzard incorrectly claims this was fixed in the 1.07 patch.

The suffix "of readiness" (designed to drop one frame of animation) is useless.

DEATH WITH CURSED ITEMS

When dying from monsters' attacks, a character loses all items. If he/she was carrying items that lower hitpoints, he/she will regain the hitpoints that were drained by those (either cursed items or certain uniques). Upon dropping the items, the player will sometimes reach a value of hit points greater than zero - but the character will remain dead on his/her screen. For other players in the game this character has positive hitpoints, though, and thus they will not see a corpse and thus be unable to cast resurrect on him/her.

SHARP PREFIX

The prefix "Sharp" is considered a cursed prefix by the game (it shouldn't be), so you can't buy it in town.

CURSED AC ROUNDING

When a cursed prefix or suffix modifies the AC value of an item, it is supposed to lower the AC. However, if the amount of AC to be lowered rounds down to zero, the AC is actually raised by 1. For example, an AC 3 helm with -26% AC will yield an AC of 4, since 26% of 3 is rounded to 1.

"RED" ITEMS

"Red" items (i.e. items that you are "wearing" but cannot use because you don't meet the requirements), put on your character by using an item that gave you the requirements, equipping it, and then removing the item that allowed you to use it, will lose durability just like items you're allowed to use.

Even though a red item cannot be used by your character, it will still modify your damage based on weapon type. If you use a "red" sword, for instance, your fist damage will be raised by 1.5 times when you punch animals, and lowered by 0.5 times when you punch undead.

GRISWOLD/WIRT PRICING INCONSISTENCY

If you buy an item from Wirt and then go to sell it to Griswold, he will offer you one fourth of the price you paid Wirt for it. If you then start a new game, however, Griswold will only offer you one fourth of what HE would sell it for (less money).

CORRUPTION SUFFIX

Equipping an item "of Corruption" when you have negative mana will actually GIVE you mana, setting your mana to zero.

If you equip an item of corruption and afterwards equip mana adding items, mana will still be added. Also, when you take off the corruption item and re-equip it, mana will not be reset to 0, but instead to what it previously was (i.e., mana from items equipped after equipping the corruption item will still be added).

More seriously, if your character has negative max mana (possible with mana-reducing items such as the Cranium Basher), using an item of Corruption will set your mana to zero. Removing it keeps your current mana at zero (of a max of a negative number). If you then unequip the item(s) which gave you negative max mana, the game will immediately crash. Don't try this at home.

GOLD IMAGE STABILITY

Images of gold piles are updated incorrectly sometimes. For instance, if you have two piles of gold totaling between 5,000 and 10,000 gold, you can merge one gold pile with the other and the amounts will switch. If this causes one pile to obtain a "smaller" shape, drop it on the ground and pick it back up - it will have the older image of a larger pile again.

UNFINDABLE ITEMS IN DUNGEONS

Monsters in each level of difficulty have the same value for item drops in terms of prefixes and suffixes; therefore, many high-end prefixes and suffixes can never be dropped by a monster. Specifically, these prefixes and suffixes cannot be found on items dropped by monsters: Mammoth, Whale, Holy, Godly, Weird, Strange, Champion's, Ruthless, Merciless, Carnage, Slaughter, Osmosis, Burning, and Thunder. Only Wirt can sell you these prefixes and suffixes. Hydra's and Wyrm's enchantments cannot be generated in town or in dungeon.

FIRE/LIGHTNING SUFFIX ISSUES

Damage from Fire or Lightning elemental arrows will occasionally be highly excessive. It is caused by the calculation for the damage occurring multiple times as it hits its target. This occurs on traps sometimes, as well.

When a monster is hit by a fire damage arrow, it stops regenerating hit points. This even applies to the Dark Lord, Diablo.

DUNGEON LAYOUT/POSITIONAL BUGS

All bugs in this category are related to problems with dungeon layouts, level transitions, the positions of objects, and other errors caused by the tile layout design of the game.

SCREEN DRAW ERRORS IN CAVES

Certain wall formations in the caves can cause screen draw problems which are harmless. This is caused by spots on the level map that do not contain graphics, usually seen as stalagmites. Images in them will "ripple."

"Mirroring" effects can be seen where a character's image will appear in lava pools.

LEVEL RESETS

Occasionally, if you go down a set of stairs, back up, and back down again, the entire level changes. This includes wall placements, creatures, etc...which can lead to you arriving in the middle of a pack of monsters, or a wall.

HELL'S INVISIBLE WALLS

Sometimes in Hell levels, especially level 16, hidden walls exist which cannot be seen by the player but are treated as physical barriers that also block sight and shots. There seems to be a correlation between dead body parts hung on walls (aka "Shish Kebabs") and hidden wall squares.

HOLES IN THE WALL

Many walls in the game have holes in them that allow arrows and spells to leak through. One such hole exists on the left side of Lazarus' chamber.

IMPOSSIBLE LEVELS

Very rarely will a level be generated that is not continuous - it is split into sides that can only be accessed by casting Phasing or Teleport.

FAR OFF MAP SQUARES

Occasionally dotted map squares, corresponding to walls and inaccessible areas, will be visible on the map upon level entry - even when being very far away.

MONSTERS IN WALLS

Monsters will occasionally appear inside closed doors or walls, as they are generated there. As soon as they enter your light radius they simply walk out of the wall/door they were "in."

RANGED ATTACK ANGLES

Certain angles of ranged attack against monsters will result in a character being unable to hit them; the character will have to move a square to be able to score a hit. Shots fired in straight lines to the target are much easier to connect.

SHARING SQUARES

When a character teleports/phases onto a square that a monster was moving in to, they will overlap. The character will have to move off the square to hit the monster. The monster, however, can attack the same square it's standing on.

If two characters wind up occupying the same square, which can happen rarely when casting Teleport or when Resurrecting while standing over a body, the player who does not move will become invisible to both players, until he/she moves. Further, the player first on the internal list of players may be the first targeted and attacked if a monster approaches.

The player can also share a square with a Golem.

STAIRWAY PROBLEMS

A character can teleport/phase into a stairway leading down in Hell levels and "levitate" in the open area inside the "cage" of the stairway. He/she can then shoot ranged attacks out of the mouth of the stairway, but no ranged attacks from monsters can get in from certain angles.

If you enter the caves via the cave mouth entrance near Wirt, you can run the mouse cursor over the stairs on level 9, and a small spot on the right side of the stairs will read "up to level 8." If you left click on that spot your character will begin walking towards the level 8 stairs (even if you can't see them on the map), unless the way is blocked by lava, grates, or some other obstacle. If you teleport onto that spot, your character will teleport all the way to the level 8 stairs and go up!

Players can "block" stairways when they enter them. A "ghost" image of the character remains at the stair entrance to the other players, and remains until the stair-taking player finishes loading up the next level. This blocking effect occurs 100% of the time when the player has a Mana Shield cast.

Monsters that use Hidden AI are always active. Unless there's a barrier between them and the player (e.g. closed door, barrels completely blocking a path), they'll reach the player without any action on the player's part.

The game normally doesn't generate monsters within a certain range of the stairs. This does not apply to rooms, however. For example, you may enter a level of the caves and find Storm Demons waiting 7 squares away, placed there because they are inside a fenced area. They will fire at you immediately, open the door, and come after you.

BOSS LIGHT RADII

All bosses in Diablo emit a light radius visible to players. If they move, their light radius moves as well. However, if you leave the level and re-enter, the bosses original positions will have a light radius on the floor, even when the boss' dead body is located at a different position on the level.

LEVEL ENTRANCE DISPLACEMENT

When players use stairwells to go down, each player will see the other in the wrong spot at next level, with their player being in the "correct" position and the partner displaced. When the characters move, the game engine corrects this situation by showing the other player walk one space over.

In a similar fashion, a player taking another player's Town Portal down to a level can wind up on the other side of a wall if the portal was placed just to the "north" of the wall. This is due to a displacement of one square, as the player cannot land on the exact square of the Portal (they'd head right back up again, then).

TRAP RESETTING

If a door with a trap is opened, thus setting off the trap, and the door is closed again, you can "reset" the trap. Leave the level and come back to it, and the trap will be reset.

127 LIMIT

You cannot drop more than 127 items on the floor in any one level, including town. Note that this can cause you to lose monster drops if you have 127 items on the floor of a level, since a dying monster will have no "room" to drop it and it will simply never exist. Remember that every pile of gold is an "item."

Diablo also has a 127 limit as to the number of ongoing spell effects (including arrows) that can appear on a level at any one time, which is 127. Some spells, especially Chain Lightning, can use up several effects.

ITEM DROPS ON SHRINE/BOOKCASE TILES

If an item drops on the tile for a shrine or bookcase, you cannot highlight or pick up the item until activating the shrine or bookcase.

MOONBENDER'S LIGHT RADIUS

The light square of Moonbender (a Blink boss) will freeze in place if it 'blinks' next to you, and won't follow the boss even if the boss moves afterward.

UNHITTABLE WHEN WALKING HORIZONTALLY

When a character (or monster) walks horizontally on the screen (as in on your monitor), he/she/it cannot be hit by most spells and ALL arrows, even when fired on the same line of action of the walker.

GOING UP AND DOWN STAIRS

You will only descend a stairwell while you're in "walk" mode. Other actions, such as swinging or casting, will prevent you from descending a staircase.

MISCELLANEOUS BUGS

Everything else.

DUPLICATES

Various duplication bugs/quirks exist in Diablo.

Vendors can occasionally sell duplicates. Duplicates of potions are somewhat common since the range of ID numbers assigned to potions is rather small

You'll occasionally find the exact same item twice (or even thrice) in the same dungeon. After ID'ing, these items will produce a duplicate item message when simultaneously dropped.

The commonly abused duplication has to do with the item-pickup routine. Blizzard has never fixed the item-pickup bug. They claim that it cannot be fixed without an overhaul of the game engine, but this seems incorrect as it has been fixed in modifications.

FIFTH SPELL BOOK PAGE

Clicking on the small area between the number 4 and the right edge of the spellbook causes a blank page to appear.

PRICE LIMIT

The upper limit to the price of items Griswold or Adria can sell you is 140,000 gold, even though a character could still buy an item that takes up six slots and carry 170,000 gold. Wirt's limit is 135,000 gold.

FAMILIARS

Familiars are demons and not animals like all of the other bat types.

BOSS AND MONSTER APPEARANCE

Due to the dungeon level assignments of bosses and their corresponding monster types in the code, certain bosses can never appear in the game. For example, Lord of the Pit (Azure Drake boss) is assigned to appear on dlvl 13 whereas Azure drakes cannot appear on 13; thus, no boss.

Some bosses are assigned monster types which don't appear in-game. Monsters that don't appear: Invisible Lord, Lord Sayter, Wyrm, Cave Slug, Devil Wyrm, Devourer, Bone Demon, Red Death, Litch Demon, Undead Balrog, Incinerator, Flame Lord, Doom Fire, Hell Burner, Devil Kin Brute, Unraveler, Hollow One, Pain Master, Reality Weaver, The Arch-Litch Malignus. (Satyr Lords, Devil Kin Brutes, Bone Demons, and Unravelers do make an appearance in Hellfire, however.) Bosses not appearing in the game:

Name - Type: Dungeon level

  • Blightstone the Weak - Lord Sayter: 4
  • Hazeshifter - Unseen: 5
  • Warmaggot the Mad - Wyrm: 6
  • Glasskull the Jagged - Red Storm : 7
  • Wrathfire the Doomed - Incinerator: 8
  • Bronzefist Firestone - Hellstone: 8
  • Doomgrin the Rotting - Red Death: 8
  • Stormbane - Storm Rider: 9
  • Madburner - Flame Lord: 9
  • Lord of the Pit - Azure Drake: 13
  • Bonesaw the Litch - Litch Demon: 9
  • Grimspike - Obsidian Lord: 19
  • Devilskull Sharpbone - Red Death: 9
  • Doomlock - Storm Lord - 28
  • Warpfire Hellspawn - Hell Burner: 11
  • Blacktongue - Counselor: 12
  • Festerskull - Undead Balrog: 11
  • Soulslash - Unraveler: 12
  • Howlingire the Shade - Hollow One: 13
  • Bloodmoon Soulfire - Pain Master: 13
  • Zamphir - Reality Weaver: 15

SHRINES

An Enchanted Shrine will reduce a spell by two levels if it is base level 15, instead of just one spell level reduction. This is caused by how the shrine works - it raises all spell levels by one and then picks a spell to reduce by 2 levels. A level 15 spell will not raise to 16 and then go down to 14, it will stay 15 and be reduced to 13.

Mysterious Shrines, Tainted Shrines, and Fountains of Tears do the same kind of thing with character stats - they can pick a stat to be raised that's already maxed, and wind up lowering all the other stats.

Due to a design flaw in how the game engine handles the random effects in shrines, Hidden Shrines will tend to reduce the durability of the item in the right slot (left hand) more often. Mysterious Shrines will tend to raise Dexterity more often than other stats. Enchanted shrines will tend to reduce Chain Lightning more often than the other spells. This effect becomes less noticeable the more you play in a single gaming session, i.e. the shrine effects will become more 'random.' Namely, the "random seed" stored with ANY shrine is not initialized properly, and the shrine uses whatever happens to be in that memory location. At startup this memory will mostly be "empty", which is read as zero, which then causes the non-random behavior. After the game is played for a while, the memory is much less likely to be zero, and therefore tends to approach randomness.

ZERO HIT POINT ISSUES

Under special circumstances a character can wind up with 0 hit points and yet not die. The character then is invincible to all forms of attack unless he/she heals or has Heal Other cast upon the character. This is apparently caused by some portions of the code treating -1 HP as death, not 0.

A character with negative hit points will be killed by any sort of Healing.

RESURRECT IN TOWN

Occasionally when a character is resurrected by another player in the dungeons, players in town can see the beam of light in town corresponding to the player's position on a level in the dungeon.

DUPE MESSAGE ON GAME ENTRY

If a player enters a game at the exact same time that another player drops an item in town, the entering player will see a "A duplicate item has been detected from another player" message.

PLAYER FRIENDLY MODE IN DUELS

If you use a melee weapon against a character who has set themselves on "Player Friendly" you cannot stun lock him/her. This does not apply to attacks with a a bow.

KNOCKBACK PROBLEMS

When being hit by a creature with knockback power (or a character with a knockback weapon) such as Diablo or a charging beast, you can be knocked back physically, but your light radius does not move unless your character makes some form of move (either walking or attacking). Thus, you can eventually be knocked outside of your own light radius and all creatures will disappear.

Knockback bows do not knock enemies back 100% of the time.

Hitting a monster/player will knock them back according to the direction they are facing; thus, you can technically knock a creature back towards you if it's facing away from you.

SINGLE PLAYER DIFFICULTY LEVELS

If you start a multiplayer game at Nightmare or Hell difficulty and then quit to start a single player game, the single player game will be the same difficulty as the multiplayer one, including the value of experience per monster, gold drops, etc.

BOSS ERRORS

Powerful bosses in higher levels of difficulty have their experience level overflow, as the game calculates the experience level for them too many times.

Bosses in Nightmare and Hell difficulties are sometimes far weaker than they should be, with poor AC and to-hit%. This is because these values are byte values and they overflow with higher difficulty bonuses.

Diablo in Nightmare and Hell difficulties suffers from the same problem as the bosses above.

LEVEL 50 CROSSOVER PROBLEMS

Any partners in a game where a player levels up to 50 will still see the player as level 49 in that game.

A character does not receive a hit point or mana point bonus on leveling to 50.

SINGLE PLAYER LEVEL BONUSES

Players get an extra 1/64th HP and MP on leveling up in single player in addition to a full 64/64.

GOLD LOSS ON DEATH

If you are carrying a large amount of gold in your inventory, you stand to lose much more than half of it when you die. The game won't drop enough piles of it and the piles themselves will have less than 5,000 gold each. It apparently doesn't generate the gold correctly when you are defeated.

EARS

Ears from the same character are duplicates.

If a player dies from a PK attack and an ear from that character is already on the floor somewhere, a new ear will not be generated (related to bug above).

YEAR 2039 RANDOMIZER ISSUE

The game engine will stop creating random levels after midnight of January 1, 2039. Any game started before January 1, 1970, will also not be random.

CHARACTER DAMAGE UPDATE UPON LEVEL UP

When a character levels up, the damage displayed in the character screen may be incorrect until the status of the character changes. Status changes include the removal and/or applying of equipment or a raise in character attributes.

TRAP DAMAGE

Trap damage does not get increased by difficulty. Traps in Nightmare and Hell difficulties do the same amount of damage as the ones in Normal. This makes traps for high-level characters meaningless.

ATTRIBUTE WRAPAROUND

If an attribute of a character becomes negative, which can be accomplished through the use of Mysterious and Tainted Shrines (by partners touching them), on starting a new game the character's attribute will wrap around to 255-value. If magic or vitality wrap around this way, the character will NOT gain the hit points and mana one would expect from this "gain." For example, if a warrior obtains -2 magic, in the next game he starts he'll have 253 magic (which will then be limited to 50 magic, his max). However, a character will not gain mana from this wrap around, thus harshly corrupting the character.

BLOCK BONUS LOSS

Characters in Diablo are supposed to have a blocking bonus; 30 for a warrior, 20 for a rogue, and 10 for a sorcerer. This would be equivalent to a warrior having 30 more dexterity in terms of blocking ability, and likewise for the other two classes. However, this bonus is not saved with the character when it is saved (via Save Game in Single Player or Exit Game in Multiplayer). Thus, a character has a blocking bonus when it is started which is lost forever after the first session - a huge loss for ironman characters.

TOWN TALKING

If you press F1 to open the help screen and then talk to a townsperson, pressing F1 to clear the help screen overlay causes the talk menu to stretch out across the screen. When this happens, you cannot select any of the talk menu's options and must clear it using the Esc key.

GAMEPLAY BUGS FIXED IN PREVIOUS OR CURRENT VERSIONS OF DIABLO

VERSION 1.08

  • Mac Only Improved Mac vs. PC multiplayer, modem, and direct connect.

VERSION 1.07

  • Fixed crashes associated with being attacked or killed by a Black Death (Zombie class). This includes the crash upon resurrecting after being killed by a Black Death.
  • Fixed the freeze upon touching a Hidden Shrine while equipped with only indestructible items.
  • Prevented players from becoming stuck inside a wall when Town Portalling down into a dungeon.
  • Fixed bug that made some Hell difficulty monsters too easy to hit. Beware.
  • Fixed the Mana Shield bugs that could make a player invulnerable and/or invisible to other players.
  • Fixed the bug that prevented Rogues from properly disarming traps on levels 13 through 15.
  • Fixed bug that rarely transformed unique items (like the Optic Amulet) into some other (usually mundane) item when saving the game and then starting a new game.
  • Prevented repeated castings (128 or more) of Mana Shield from disabling the casting of any more spells.
  • Fixed bugs that prevented items with the suffixes Thieves, Balance/Stability/Harmony, and Piercing/Bashing/Puncturing from working properly.
  • Fixed the bug that caused Mana Shield to become less effective with increasing spell level.
  • Fixed the bug that caused excessive damage when a Mana Shield expired due to an attack.
  • Prevented bows with fire-hit damage from interfering with the behavior of Gargoyle class monsters.
  • Allowed right-clicking (casting/drinking) belt items in positions 5 through 8, while the Spellbook is open.
  • Fixed the bug that froze Lazarus (and made him invulnerable to arrows and spells) after player had entered his lair, then left (or died), and finally returned.
  • When in effect, the Mana Shield graphic appears to all players.
  • The casting of a Nova spell is now visible to all nearby players.
  • Adria's books appear white now only if a player can read them.
  • Equipped shields always appear properly to all players.
  • Nightmare and Hell difficulty monsters now display the correct number of hit-points (HP).
  • In single player, the sound is no longer shut off by loading a saved game while Diablo is in his death throes.

VERSION 1.05

  • Fixed potential memory corruption bug that occurred when casting town portal

VERSION 1.04

  • Fixes the Hidden Shrine freeze which was caused by touching the shrine when not holding an item with durability
  • Fixes the Black Death crash which occurred when fighting the monsters with an active Mana Shield and Full Health
  • Corrects the functionality of the Rogue's Disarm Trap skill

VERSION 1.03

  • Prevents other players from casting illegal spells in town
  • Fixes duplicate item generation at the Blacksmith and Witch within the same game
  • Improves game speed over previous version
  • Improves the game's handling of latency and packet loss over the Internet

VERSION 1.02

  • Corrects the NULL cell buffer errors and other draw problems in Single Player
  • Improves error handling for dropped network packets
  • Fixes the problem with some equipped items not being seen by other players in multiplayer games
  • Numerous fixes to item integrity. NOTE: With this patch, when the game detects duplicate items they will be removed from the game.
  • Prevents Lazarus's red portal from disappearing after leaving his lair in Single Player games
  • Fixes the Level Advance Indicator remaining on screen after character attributes are maxed

from devilution.

mewmew avatar mewmew commented on April 27, 2024 1

@mewmew You are two years late: https://github.com/diasurgical/scalpel/blob/master/BUGS.md

perpetually late to the party.

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024 1

Even with ifdef's you woudn't know that you didn't fundamentally break the game with a online fix to a oob error.

The solution is writing tests and automation, I'm working on implementing time demos atm.

from devilution.

NiteKat avatar NiteKat commented on April 27, 2024 1

I don't think I saw this one listed, but sometimes on floors 13 through 16, you will be spawned on a tile you normally cannot stand on. You can easily walk off the tile, so it's not a major deal for normal play, but still is a thing that shouldn't happen.
spawn on can't walk tile

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024 1

yes -> diasurgical/devilutionX#1492

from devilution.

NiteKat avatar NiteKat commented on April 27, 2024 1

We finally have a reproducible level reroll bug: diasurgical/devilutionX#1506

from devilution.

StephenCWills avatar StephenCWills commented on April 27, 2024 1

Golem HP overflows when cast with negative mana
diasurgical/devilutionX#1522

from devilution.

qndel avatar qndel commented on April 27, 2024 1

diasurgical/devilutionX#1541
image
Sometimes random automap parts would get explored, this is because X/X got passed into SetAutomapView in DoVision instead of X/Y
🤦

from devilution.

FluffyQuack avatar FluffyQuack commented on April 27, 2024 1

If a player tries to swap sword+shield with a two-handed weapon without sufficient inventory space it leads to a network desync (what's in the right hand gets de-equipped on other clients, but not for local client).

Video example: https://www.youtube.com/watch?v=2GtUv-m8FoI
(Uh, never mind the shield position looking weird. That's a minor bug which happened to be in the branch I used for recording this.)

The cause was the game always sending a network packet for de-equipping the right-hand item before even checking if the local player has space to finish the weapon swap.

PR fixing the bug: diasurgical/devilutionX#1546

from devilution.

fearedbliss avatar fearedbliss commented on April 27, 2024

Are these bugs going to be fixed in devilution after devilution development becomes stable or is the devilution source code gonna be a pure documentation update including leaving in the vanilla bugs?

from devilution.

 avatar commented on April 27, 2024

The Purpose section of the readme has the answer.

from devilution.

fearedbliss avatar fearedbliss commented on April 27, 2024

Ah ok, I did read this like a week ago but I guess I forgot ;D.

from devilution.

ttdonovan avatar ttdonovan commented on April 27, 2024

The pull request above is basically a copy of the text from the original posting with some Markup for formatting. Is something like this is what is being requested?

from devilution.

 avatar commented on April 27, 2024

We can definitely make use of your copy in case the original one goes down. However, this issue is to track new bugs that haven't been documented anywhere else, so that we can fix them in the future.

(Not Devilution of course, but mods based on)

from devilution.

 avatar commented on April 27, 2024

As a rule for any bug published can we have the save file for this? I would like to have something to make this more easy to replicate...

because I am thinking on looking at the TP sequence and the Chamber of bone locations... because Technically TP is working but it's not marking the chamber of bone as a different map , if I am not mistaken...

EDIT:

I am probably completely wrong on that one. The dungeon map array looks ok for the most part...

Perhaps the Portal setting and getting is wrong? Perhaps it's not specifying the correct map for special maps?

Ok . Which memory map (showing address locations) is the most accurate for the origional diablo? Do you have it ? All the addresses I am seeing appear to be inaccurate.

from devilution.

 avatar commented on April 27, 2024

Brevik himself talked about this bug in an interview once. The Caves were entirely hardcoded and many fixes added per-tile:
cave bug

from devilution.

 avatar commented on April 27, 2024

@galaxyhaxz is this in the origional game or are we going to add this to our bug list?

from devilution.

mewmew avatar mewmew commented on April 27, 2024

As a side note, this can be exploited for an extra rejuv, grabbing say 1 piece of gold or some junk item.

Haha, great hack!

from devilution.

mewmew avatar mewmew commented on April 27, 2024

Another bug where standing in certain spots overwrites the top left corner of the control panel:

Is this in vanilla too? Never seen the panel being incorrectly rendered before.

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024

All your belt items also went invisible. Could be a miss calculated CelSkip/CelCap

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024

Nice catch, my print screen has a delay so getting shots like this is a pain :)

The other yellow box is causing issues when we upgrade the render to have per-pixel transparency because it renders the tile twice, resulting in 75% opaqueness instead of 50%

from devilution.

qndel avatar qndel commented on April 27, 2024

In the very tristram itself :)
image

Zoomed:
image

I'ts more obvious in tchernobog, that's what made me notice it :P

from devilution.

 avatar commented on April 27, 2024

@AJenbo I believe that issue is the same one I reported above. There's a broken tile that can occasionally spawn in the caves that does that.

Here is a list of seeds for Caves with that broken tile and the coordinate of it:

seed 24, x 28, y 10
seed 206, x 19, y 27
seed 265, x 27, y 6
seed 534, x 26, y 20
seed 1714, x 24, y 25
seed 1980, x 12, y 14

Here is code to fix the tile by brute force. It should be ran during DRLG_L3:

	for(j = 0; j < 40; j++)
	{
		for(i = 0; i < 40; i++)
		{
			if(dungeon[i][j] == 9 && dungeon[i - 1][j] == 13 && dungeon[i][j - 1] == 14)
			{
				dungeon[i][j] = 7; // set broken tiles to dirt instead of stalagmite
				dungeon[i][j - 1] = 7;
				dungeon[i-1][j] = 7;
			}
		}
	}

Additionally, here are seeds for Catacombs that contain the broken wall tile:

550
2346
2377
2992
5162
6365
6500
6711
7152
7155
7462

And the code to fix it:

			if(dungeon[i][j] == 15 && dungeon[i][j + 1] == 1) { /// add this check
				dungeon[i][j + 1] = 8; // change left wall to left corner
			}

Last but not least, some more seeds with the overflow bug in DRLG_L1 documented by @mewmew:

24627
29946
32559

from devilution.

ssjkakaroto avatar ssjkakaroto commented on April 27, 2024

Hi all, the latest changelog for The Hell 2 had me raise an eyebrow:

Fixed in-game menu animations, they would stop after machine spent 49+ days without rebooting (a rare original D1 bug, but we fix them all anyways);

Were you guys able to find this in the cleanup?

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024

Dirt tiles can appear on top of doors

image

from devilution.

Chance4us avatar Chance4us commented on April 27, 2024

Next one vanilla bug.
single_7.sv.zip
vanilla

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024

Off-by-one pixel when drawing line in unique item box and stores box (see 36e319c and 6448f79)

from devilution.

NiteKat avatar NiteKat commented on April 27, 2024

On "it is always the highest light radius you have had on a level that counts, even if you later lower it." this has not been observed in testing. Xavier has done experiments with Diablo where he has parked Diablo on a specific tile, and approached with no minus light radius gear. Found the tile that activates Diablo, reloads, and marks that tile with gold. He then equips a minus light radius item (while not leaving the level), and can now go to that same tile and Diablo no longer activates.

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

On "it is always the highest light radius you have had on a level that counts, even if you later lower it." this has not been observed in testing. Xavier has done experiments with Diablo where he has parked Diablo on a specific tile, and approached with no minus light radius gear. Found the tile that activates Diablo, reloads, and marks that tile with gold. He then equips a minus light radius item (while not leaving the level), and can now go to that same tile and Diablo no longer activates.

I'm not sure it applies to level 16.

always one square less in the catacombs

I have not tested yet.

from devilution.

NiteKat avatar NiteKat commented on April 27, 2024

I'm not sure it applies to level 16.

Hm. Level 16 is the easiest place to test this (because Diablo can be parked at certain points with relative ease, and is always only the floor), so that's where I've seen this tested. I'll bring this up with Xavier (with Diablo) and see if they can do similar tests on other floors.

from devilution.

qndel avatar qndel commented on April 27, 2024

think this is the reason why flash is missing on some tiles?

from devilution.

qndel avatar qndel commented on April 27, 2024

iirc light radius is capped at +50% anyway so he overstacked :)

from devilution.

mewmew avatar mewmew commented on April 27, 2024

@mewmew I guess I joined the pixel hunting club :D

haha, the hunt is on!

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

So we have a test using dlvl 6 and Death Spit thanks to Xavier. You can see Death Spit reacting to changing the light radius both lower and higher in this clip. https://www.twitch.tv/videos/680811199

Boy do I feel like an idiot. I did not even bother to read the comments on the lurker lounge bug list. See Belix's comments on light radius..

the actual behavior is that, if any item equipped or unequipped alters your light radius after entering a floor, the minimum effective light radius becomes 100%.

So if you had one Radiance (+40% Light) item on and unequipped it, this would drop your light radius from 140% to 100% correctly for both light shown on screen AND effective monster activation. However, if you also had one Night item (-40% Light) and then unequipped your radiance, it would only reduce your effective light radius from 120% to 100%, instead of the expected 80%.

Just to clarify, if you so much as equip or unequip ANY +/- light radius item (even if swapped instantly with another of equal magnitude) the minimum light radius becomes 100% for the remainder of your stay on that dungeon level.

This unfortunately was not tested in the video.

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

Unusually shaded areas in Tristram buildings:

Ogden Ogden 2
ogden ogden2
Gris Pepin
gris pepin

I have an image of tristram here. https://mgpat-gm.github.io/tristram.html (You can zoom/scroll in browser)

from devilution.

mewmew avatar mewmew commented on April 27, 2024

Michael, you have a good eye for detail.

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

Michael, you have a good eye for detail.

That would be true if I had noticed it 20 years ago rather than 2 months ago!

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

Additional barriers in town exist around trees. I don't know the inner workings of the game, but I assume the mechanism is related to my previous observations.

You can drop items across the barrier(yellow) in either direction, but your character cannot cross it. Nor can you pick the item back up from across the barrier.

trees

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

River

Bends in the river have a slightly lighter image Straight line river areas have a checkered pattern
riverbend riverhoriz

Trees missing shadows:

images images
treecath treecow
treefork treegillian
treehell treeright
treetop treewall

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

Many of the rocks have been cut throughout town:

Normal Cut
normal cut

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024

The world is devised in to a diamond grid, a pice can be either solid or walkable. You can always walk to a neighboring tile, but players can only walk to diagonal tiles if they are not cornored off by solid tiles from both sides.

Only monsters can move between diagonally blocked tiles:


┌───┬───┐
│ X │   │
├───┼───┘
│   │ X │
└───┘───┘

Every one can move betwen any of the free tiles here:


┌───┬───┐
│   │   │
├───┼───┘
│   │ X │
└───┘───┘

from devilution.

mgpat-gm avatar mgpat-gm commented on April 27, 2024

Every one can move betwen any of the free tiles here:

This does not reflect what I see with the tree:

  1   2   3
┌───┬───┐───┐
│   │   │   |  A
├───┼───┼───┼
│   │ X │ P |  B
├───┼───┼───┼
│   │ I │   |  C
└───┘───┘───┘

P = Character
X = Tree
I = Item

P cannot move to diagonal squares. Furthermore, in order to pick up I, P has to move to C3. Is my grid correct?

from devilution.

qndel avatar qndel commented on April 27, 2024
  • monsters have light index 0 by default, which is a perfectly valid index and code related to light treats -1 as having no light, also a vanilla bug
  • after you reenter level, light radius of all unique monsters gets moved to their spawn locations and only gets updated when they move
    fixed by diasurgical/devilutionX#899

from devilution.

AJenbo avatar AJenbo commented on April 27, 2024

The idea is definitely nice, but I agree that a lot of ifdef is going to turn ugly real quick. Instead, we are fixing them in DevilutionX 1.x.y. We have also unified the shareware and retail version and made it detected what version to run depending on the provided MPQ and intend to do the same with hellfire exactly to minimize the amount of ifdef found in the code.

Here is a quick example of what issues you quickly encounter with a lot of ifdef in the code:

#ifdef FIX
if (bug && fix) {
#else
if (bug) {
#endif
    // Am I indented once or twice?
}
// is this file broken?

from devilution.

galaxyhaxz avatar galaxyhaxz commented on April 27, 2024

Forgot to mention that as well but yeah we have a lot of those from debug related ifdef code. At least on Windows I use Notepad++ which has the ability to fold nested code, and it causes lots of issues since it doesn't know where to stop.

from devilution.

ChaosMarc avatar ChaosMarc commented on April 27, 2024

You've convinced me. IFDEFs are not the way to go 😄
I guess it's ok to only fix them in devilutionX but I don't see how we can prove that devilutionX still is exactly like vanilla + bugfixes. there are so many changes over there (like the QOL stuff which I love BTW).

from devilution.

qndel avatar qndel commented on April 27, 2024

When you reenter the level, the light is wrong. In church it's actually 1 tile off, it's because when you leave the level, the current light gets saved to dLight, which includes character being at the level entrance then gets restored when you come back. In catacombs the old light seems to be on the same tile but slightly affects the strength of light around the player.

ChangeLightXY(plr[myplr]._plid, plr[myplr]._px, plr[myplr]._py); 

adding this line after

plr[pnum]._plid = AddLight(plr[pnum]._px, plr[pnum]._py, plr[pnum]._pLightRad);

seems to fix the problem - technically it doesn't move player's light because it's at px/py already, but gets rid of the leftover light anyway

fixed by diasurgical/devilutionX#899

from devilution.

qndel avatar qndel commented on April 27, 2024

Quest items are spawned with seed 0 and iCreateInfo 0 which makes 2 quest items of the same type considered dupes, have fun with 3 bloodstones in valor quest 👍
Valor quest sometimes gets bugged up - bloodstones don't open anything or open all 3 rooms at once - this is related to pedestal's oVar6 which acts as a counter showing how many bloodstones you've inserted so far, if it gets a value above 2, valor is basically bugged. No idea what's ruining oVar6 though.

from devilution.

galaxyhaxz avatar galaxyhaxz commented on April 27, 2024

A few of warrior's animations while wearing a shield but no weapon have wrong colors.

Heavy armor, shield, no weapon, casting spell:
image

from devilution.

mewmew avatar mewmew commented on April 27, 2024

I don't think I saw this one listed, but sometimes on floors 13 through 16, you will be spawned on a tile you normally cannot stand on. You can easily walk off the tile, so it's not a major deal for normal play, but still is a thing that shouldn't happen.

Do you have a save file or game seed to reproduce this @NiteKat?

from devilution.

qndel avatar qndel commented on April 27, 2024

You can get Zhar to display his angry message twice diasurgical/devilutionX#1540
Found by @NiteKat

from devilution.

qndel avatar qndel commented on April 27, 2024

Hellfire's shimmering shrine says "Spirtual energy is restored"

Phasing or holy shrine (because it uses phasing) in hellfire will warp the player to 0/0 coords in case of failure (unable to find a spot for teleporting in 500 tries)

from devilution.

qndel avatar qndel commented on April 27, 2024

diasurgical/devilutionX#1582
No idea why they check the distance in some cases and don't in other, I don't see a pattern:
Distance from trigger check:

Crypt stairs up (first level)
Catacombs stairs up
Catacombs quick entrance
Caves stairs down
Caves quick entrance
Nest stairs up(first level)
Hell quick entrance

Missing distance check:
Church stairs up (Including ones to town)
Church stairs down
Crypt stairs up
Crypt stairs down
Catacombs stairs down
Caves stairs up (was the one causing problems)
Nest stairs up
Nest stairs down
Hell stairs up
Hell stairs down
Hell's entrance to dlvl 16

from devilution.

qndel avatar qndel commented on April 27, 2024

diasurgical/devilutionX#1589
Golems fight each other

Hellfire:
Berserked monsters get light but it disappears if you reenter the level
Light from dead monsters stays on the ground when you reenter the level till you come close enough to overwrite it with player's light
diasurgical/devilutionX#1586
diasurgical/devilutionX#1588

from devilution.

qndel avatar qndel commented on April 27, 2024

diasurgical/devilutionX#1678
Diablo has some weird action queuing that lets attacks/casts be faster if you are spamming them (they don't play the full animation),
code is in CheckNewPath ( 🤮 ), while it made sense to include barrels there to be able to smash them with maximum possible speed, having regular object interaction there is a mistake.
It's just a coincidence diablo doesn't have many objects that can react to multiple clicks and fast enough for it to make a difference - mana/health fountains and doors being an exception. Behold the chaos on the gif below.
crazydoors

from devilution.

qndel avatar qndel commented on April 27, 2024

Multihit by a trap bug
Happens if:

  1. You are standing against a wall/some obstacle and the arrow misses you and explodes on the obstacle
    farrow1
  2. (Hellfire) You are standing against a wall/some obstacle and block the arrow
    farrow2
  3. You are walking towards the arrow
    farrow3
  4. You are standing diagonally vs the chest and it misses you then hits (If you are standing diagonally, it doesn't leave your tile on time and performs a second hit check, was able to reproduce multihit 100% of the time by forcing arrow to miss first hit and hit all next + standing diagonally - does it mean the arrow explodes twice?)
    farrow4

from devilution.

thebigMuh avatar thebigMuh commented on April 27, 2024

diasurgical/devilutionX#1515

There is a bug that very rarely causes the braziers around the story book on crypt level 1 to be missing, and then randomly causes the game to crash. If the game doesn't crash, it will simply fail to load the graphics, and the story book location will look like this:
image

This bug also exists in vanilla Hellfire:
image

Explanation of the bug:

The braziers rely on OFILE_CANDLE2 assets being loaded
Those assets get only loaded if:

  • The Archbishop Lazarus quest is active on the current level
  • There is a shrine themed room on the current level
  • There is a library themed room on the current level
  • Or you are in dungeon levels 2 - 12

As for the crypts level 1:

  • Lazarus is never active on that level
  • For purposes of loading assets, it counts as level 1 (even though it is actually 21)
  • Even though shrines or libraries never appear in the crypt, the themes can be active, but only if there is sufficient space for the theme generation to place the theme somewhere
    The bug happens if the level structure is convoluted enough for absolutely no library or shrine themed rooms to fit anywhere. In that case, no OFILE_CANDLE2 assets are loaded.

If the assets are not loaded, then a second bug happens, where while searching for the assets the game will simply run off past the end of an array into no-man's-land until it randomly finds a byte that matches what it is looking for. Depending on where that is, the game will randomly either just not have any graphics to show, or will crash.

This bug should be fixed by diasurgical/devilutionX#1748

from devilution.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.