diasurgical / devilutionX

Diablo build for modern operating systems
Other
7.99k stars 781 forks source link

First startup game choice graphics broken for Hellfire #3209

Closed glebm closed 2 years ago

glebm commented 2 years ago

image

Looks good for Diablo: image

licaon-kter commented 2 years ago

Looks fine for me on 2d3574db7068cfd94f849ddc85801f2a902f488f Linux amd64

What settings?

glebm commented 2 years ago

diablo.ini

glebm commented 2 years ago

Also happens with the default settings. Startup log with --verbose:

VERBOSE: MPQ search paths:
     1. '/home/gleb/devilutionX/build/'
     2. '/home/gleb/.local/share/diasurgical/devilution/'
     3. '/usr/share/diasurgical/devilutionx/'
     4. '/usr/local/share/diasurgical/devilutionx/'
     5. ''
VERBOSE:   Found: devilutionx.mpq in /home/gleb/devilutionX/build/
VERBOSE: Missing: fonts.mpq
VERBOSE: Missing: DIABDAT.MPQ
VERBOSE:   Found: diabdat.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE:   Found: hellfire.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE:   Found: hfmonk.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE: Missing: hfbard.mpq
VERBOSE: Missing: hfbarb.mpq
VERBOSE:   Found: hfmusic.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE:   Found: hfvoice.mpq in /home/gleb/.local/share/diasurgical/devilution/
licaon-kter commented 2 years ago

My --verbose has info on renderer and shader and such, which build version do you run exactly?

glebm commented 2 years ago

mine does as well, I simply didn't copy them

licaon-kter commented 2 years ago

Would be interesting to compare those too, eg. my full log

VERBOSE: Prefered locale: en_US
VERBOSE: Best match locale: en
DEBUG: Failed loading udev_device_get_action: /lib/x86_64-linux-gnu/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action
DEBUG: Using udev for joystick device discovery
INFO: OpenGL shaders: ENABLED
INFO: Created renderer: opengl
VERBOSE: MPQ search paths:
     1. '/home/username/d1/'
     2. './'
     3. '/usr/share/diasurgical/devilutionx/'
     4. '/usr/local/share/diasurgical/devilutionx/'
     5. ''
VERBOSE:   Found: devilutionx.mpq in /home/username/d1/
VERBOSE: Missing: fonts.mpq
VERBOSE: Missing: DIABDAT.MPQ
VERBOSE:   Found: diabdat.mpq in /home/username/d1/
VERBOSE:   Found: hellfire.mpq in /home/username/d1/
VERBOSE:   Found: hfmonk.mpq in /home/username/d1/
VERBOSE: Missing: hfbard.mpq
VERBOSE: Missing: hfbarb.mpq
VERBOSE:   Found: hfmusic.mpq in /home/username/d1/
VERBOSE:   Found: hfvoice.mpq in /home/username/d1/
DEBUG: Couldn't open en.mo
DEBUG: Couldn't open en.gmo
en.gmo: No such file or directory
VERBOSE: SFileOpenFile("ui_art\hero0.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero1.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero2.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero3.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero4.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero5.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero6.pcx") File not found
INFO: Removed file: ./Diablo1ReadOnlyTest.foo
VERBOSE: Aulib sampleRate=22050 channels=2 frameSize=1024 format=0x8010
VERBOSE: SVid audio depth=16 channels=1 rate=22050
DEBUG: Unhandled SDL event: SDL_AUDIODEVICEADDED 0
DEBUG: Unhandled SDL event: SDL_AUDIODEVICEADDED 0
DEBUG: Unhandled SDL event: SDL_TEXTEDITING 0
glebm commented 2 years ago

Sure, full log:

VERBOSE: Prefered locale: en_GB
VERBOSE: Best match locale: en
DEBUG: Failed loading udev_device_get_action: /lib/x86_64-linux-gnu/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action
DEBUG: Using udev for joystick device discovery
INFO: OpenGL shaders: ENABLED
INFO: Created renderer: opengl
VERBOSE: MPQ search paths:
     1. '/home/gleb/devilutionX/build/'
     2. '/home/gleb/.local/share/diasurgical/devilution/'
     3. '/usr/share/diasurgical/devilutionx/'
     4. '/usr/local/share/diasurgical/devilutionx/'
     5. ''
VERBOSE:   Found: devilutionx.mpq in /home/gleb/devilutionX/build/
VERBOSE:   Found: fonts.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE: Missing: es.mpq
VERBOSE: Missing: DIABDAT.MPQ
VERBOSE:   Found: diabdat.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE:   Found: hellfire.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE:   Found: hfmonk.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE: Missing: hfbard.mpq
VERBOSE: Missing: hfbarb.mpq
VERBOSE:   Found: hfmusic.mpq in /home/gleb/.local/share/diasurgical/devilution/
VERBOSE:   Found: hfvoice.mpq in /home/gleb/.local/share/diasurgical/devilution/
DEBUG: Couldn't open es.mo
DEBUG: Couldn't open es.gmo
es.gmo: No such file or directory
VERBOSE: SFileOpenFile("ui_art\hero0.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero1.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero2.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero3.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero4.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero5.pcx") File not found
VERBOSE: SFileOpenFile("ui_art\hero6.pcx") File not found
INFO: Removed file: /home/gleb/.local/share/diasurgical/devilution/Diablo1ReadOnlyTest.foo
INFO: Adding joystick 0: Xbox 360 Controller
INFO: Opening game controller for joystick at index 0
INFO: Opened game controller with mapping:
030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,
julealgon commented 2 years ago

This screenshot shows the use of the Diablo background, with the hellfire wide screen sections: image

I believe the background should be changed according to the selection too. Once the correct (in this case, Hellfire) background is loaded, the hellfire logo should display correctly.

The same issue occurs the other way around: loading the Diablo logo with the Hellfire background leads to incorrect colors in the letters.

Same for the character selection screen (unrelated here but figured I'd mention it). The monk portrait will not display correctly with the Diablo background.

I think they are all the same underlying issue related to the palette being used.

licaon-kter commented 2 years ago

Why don't I see the same though?

@glebm This is a SDL1 vs SDL2 issue or?

glebm commented 2 years ago

It happens in both sdl 2 and 1

StephenCWills commented 2 years ago

@glebm If you select "Enter Hellfire", do you see the same broken graphics on the main menu? You don't happen to have ui_art\mainmenu.pcx from diabdat.mpq in your data folder, do you?

image

image

glebm commented 2 years ago

You don't happen to have ui_art\mainmenu.pcx from diabdat.mpq in your data folder, do you?

This was the issue, sorry for the confusion! Thanks for thinking of this

licaon-kter commented 2 years ago

@StephenCWills should I open an issue for Verbose NOT logging that it loads those files?

StephenCWills commented 2 years ago

should I open an issue for Verbose NOT logging that it loads those files?

I don't think that's necessary. It's usually more noisy than useful to log a message whenever loading a resource succeeds. The issue in this case occurred because there exists two different resources with the same path so unless the log includes which MPQ (or direct file path) provided the data, it wouldn't have helped anyway.

glebm commented 2 years ago

I've added verbose logging for MPQ file overrides only in #3222:

VERBOSE: Loaded MPQ file override: /home/gleb/.local/share/diasurgical/devilution/ui_art/mainmenu.pcx