Skip to content
This repository has been archived by the owner on Jun 23, 2023. It is now read-only.

Widescreen HUD and menu background texture scaling #431

Closed
well-defined opened this issue Nov 28, 2021 · 7 comments
Closed

Widescreen HUD and menu background texture scaling #431

well-defined opened this issue Nov 28, 2021 · 7 comments

Comments

@well-defined
Copy link

The background textures - the "Fullscreen menu background" texture, and, more notably, the texture used to fill in the blank space to the sides of the HUD in widescreen mode - appear to be scaled 1:1, meaning they look high-res and don't fit in with the wonderfully pixelated look of everything else. This is the default look and the only way I've found to change it is to change the screen_resolution option - the background's pixels line up with those in the other interface elements at 320x*.

Can this be configured?
If so, wouldn't it make sense to make consistent scaling the default option?
If not, perhaps this should be made configurable?

Images

For comparison, here is the same scene (smaller view to make the issue more apparent, the scaling of the bars to the sides of the HUD doesn't change)

  • In my current PrBoom-Plus
    image
  • and in GZDoom
    image
My prboom-plus.cfg
# Doom config file
# Format:
# variable   value

# System settings
process_priority                  0

# Misc settings
default_compatibility_level       -1
realtic_clock_rate                100
menu_background                   1
max_player_corpse                 32
flashing_hom                      0
demo_insurance                    2
endoom_mode                       0x5
level_precache                    1
demo_smoothturns                  0
demo_smoothturnsfactor            6
boom_autoswitch                   1

# Files
wadfile_1                         ""
wadfile_2                         ""
dehfile_1                         ""
dehfile_2                         ""

# Game settings
default_skill                     4
weapon_recoil                     0
player_bobbing                    1
weapon_attack_alignment           0
monsters_remember                 1
monster_infighting                1
monster_backing                   0
monster_avoid_hazards             1
monkeys                           0
monster_friction                  1
help_friends                      0
allow_pushers                     1
variable_friction                 1
player_helpers                    0
friend_distance                   128
dog_jumping                       1
colored_blood                     0
sts_always_red                    1
sts_pct_always_gray               0
sts_traditional_keys              0
sts_armorcolor_type               1
show_messages                     1
autorun                           1

# Dehacked settings
deh_apply_cheats                  1

# Compatibility settings
comp_zombie                       1
comp_infcheat                     0
comp_stairs                       0
comp_telefrag                     0
comp_dropoff                      0
comp_falloff                      0
comp_staylift                     0
comp_doorstuck                    0
comp_pursuit                      0
comp_vile                         0
comp_pain                         0
comp_skull                        0
comp_blazing                      0
comp_doorlight                    0
comp_god                          0
comp_skymap                       0
comp_floors                       0
comp_model                        0
comp_zerotags                     0
comp_moveblock                    0
comp_sound                        0
comp_666                          0
comp_soul                         0
comp_maskedanim                   0

# PrBoom-plus compatibility settings
comp_ouchface                     0
comp_maxhealth                    0
comp_translucency                 0
comp_skytransfers                 0

# Sound settings
snd_pcspeaker                     0
sound_card                        -1
music_card                        -1
pitched_sounds                    0
samplerate                        44100
slice_samplecount                 512
sfx_volume                        8
music_volume                      8
mus_pause_opt                     1
snd_channels                      32
snd_midiplayer                    "fluidsynth"
snd_soundfont                     "sound/trevor0402_SC55Soundfont_v1.2b.sf2"
snd_mididev                       ""
lowpass_filter                    0
full_sounds                       0
mus_fluidsynth_chorus             0
mus_fluidsynth_reverb             0
mus_fluidsynth_gain               50
mus_opl_gain                      50

# Video settings
videomode                         "32bit"
screen_resolution                 "1920x1080"
use_fullscreen                    1
exclusive_fullscreen              0
render_vsync                      1
translucency                      0
tran_filter_pct                   0
screenblocks                      10
usegamma                          0
uncapped_framerate                1
test_interpolation_method         0
filter_wall                       1
filter_floor                      1
filter_sprite                     1
filter_z                          1
filter_patch                      1
filter_threshold                  49152
sprite_edges                      0
patch_edges                       0

# OpenGL settings
gl_compatibility                  0
gl_arb_multitexture               1
gl_arb_texture_compression        1
gl_arb_texture_non_power_of_two   1
gl_ext_arb_vertex_buffer_object   1
gl_arb_pixel_buffer_object        1
gl_arb_shader_objects             1
gl_ext_blend_color                1
gl_ext_framebuffer_object         1
gl_ext_packed_depth_stencil       1
gl_ext_texture_filter_anisotropic 1
gl_use_stencil                    1
gl_use_display_lists              0
gl_finish                         1
gl_clear                          0
gl_ztrick                         0
gl_nearclip                       5
gl_colorbuffer_bits               32
gl_depthbuffer_bits               24
gl_texture_filter                 3
gl_sprite_filter                  0
gl_patch_filter                   0
gl_texture_filter_anisotropic     3
gl_tex_format_string              "GL_RGBA"
gl_sprite_offset                  0
gl_sprite_blend                   0
gl_mask_sprite_threshold          50
gl_skymode                        0
gl_sky_detail                     16
gl_use_paletted_texture           0
gl_use_shared_texture_palette     0

# Mouse settings
use_mouse                         1
mouse_sensitivity_horiz           10
mouse_sensitivity_vert            10
mouseb_fire                       0
mouseb_strafe                     -1
mouseb_forward                    -1
mouseb_backward                   -1
mouseb_turnright                  -1
mouseb_turnleft                   -1
mouseb_use                        -1
mb_weapon1                        -1
mb_weapon2                        -1
mb_weapon3                        -1
mb_weapon4                        -1
mb_weapon5                        -1
mb_weapon6                        -1
mb_weapon7                        -1
mb_weapon8                        -1
mb_weapon9                        -1

# Key bindings
key_right                         0x0
key_left                          0x0
key_up                            0x77
key_down                          0x73
key_mlook                         0x0
key_novert                        0x76
key_menu_right                    0xae
key_menu_left                     0xac
key_menu_up                       0xad
key_menu_down                     0xaf
key_menu_backspace                0x7f
key_menu_escape                   0x1b
key_menu_enter                    0xd
key_menu_clear                    0xc8
key_setup                         0x0
key_strafeleft                    0x61
key_straferight                   0x64
key_flyup                         0x0
key_flydown                       0x0
key_fire                          0x0
key_use                           0x65
key_strafe                        0x0
key_speed                         0xb6
key_savegame                      0xbc
key_loadgame                      0xbd
key_soundvolume                   0xbe
key_hud                           0xbf
key_quicksave                     0xc0
key_endgame                       0xc1
key_messages                      0xc2
key_quickload                     0xc3
key_quit                          0xc4
key_gamma                         0xd7
key_spy                           0xd8
key_pause                         0xff
key_autorun                       0xba
key_chat                          0x74
key_backspace                     0x7f
key_enter                         0xd
key_map                           0x9
key_map_right                     0xae
key_map_left                      0xac
key_map_up                        0xad
key_map_down                      0xaf
key_map_zoomin                    0x3d
key_map_zoomout                   0x2d
key_map_gobig                     0x30
key_map_follow                    0x66
key_map_mark                      0x6d
key_map_clear                     0x63
key_map_grid                      0x67
key_map_rotate                    0x72
key_map_overlay                   0x6f
key_map_textured                  0x0
key_reverse                       0x2f
key_zoomin                        0x3d
key_zoomout                       0x2d
key_chatplayer1                   0x67
key_chatplayer2                   0x69
key_chatplayer3                   0x62
key_chatplayer4                   0x72
key_weapontoggle                  0x30
key_weapon1                       0x31
key_weapon2                       0x32
key_weapon3                       0x33
key_weapon4                       0x34
key_weapon5                       0x35
key_weapon6                       0x36
key_weapon7                       0x37
key_weapon8                       0x38
key_weapon9                       0x39
key_nextweapon                    0xeb
key_prevweapon                    0xec
key_screenshot                    0x2a

# Joystick settings
use_joystick                      0
joy_left                          -1
joy_right                         -1
joy_up                            -1
joy_down                          -1
joyb_fire                         0
joyb_strafe                       1
joyb_strafeleft                   4
joyb_straferight                  5
joyb_speed                        2
joyb_use                          3

# Chat macros
chatmacro0                        "No"
chatmacro1                        "I'm ready to kick butt!"
chatmacro2                        "I'm OK."
chatmacro3                        "I'm not looking too good!"
chatmacro4                        "Help!"
chatmacro5                        "You suck!"
chatmacro6                        "Next time, scumbag..."
chatmacro7                        "Come here!"
chatmacro8                        "I'll take care of it."
chatmacro9                        "Yes"

# Automap settings
mapcolor_back                     0xf7
mapcolor_grid                     0x68
mapcolor_wall                     0x17
mapcolor_fchg                     0x37
mapcolor_cchg                     0xd7
mapcolor_clsd                     0xd0
mapcolor_rkey                     0xaf
mapcolor_bkey                     0xcc
mapcolor_ykey                     0xe7
mapcolor_rdor                     0xaf
mapcolor_bdor                     0xcc
mapcolor_ydor                     0xe7
mapcolor_tele                     0x77
mapcolor_secr                     0xfc
mapcolor_exit                     0x0
mapcolor_unsn                     0x68
mapcolor_flat                     0x58
mapcolor_sprt                     0x70
mapcolor_item                     0xe7
mapcolor_hair                     0xd0
mapcolor_sngl                     0xd0
mapcolor_me                       0x70
mapcolor_enemy                    0xb1
mapcolor_frnd                     0x70
map_secret_after                  0
map_point_coord                   0
map_level_stat                    1
automapmode                       0xa
map_always_updates                1
map_grid_size                     128
map_scroll_speed                  8
map_wheel_zoom                    1
map_use_multisamling              0
map_textured                      1
map_textured_trans                100
map_textured_overlay_trans        66
map_lines_overlay_trans           100
map_overlay_pos_x                 0
map_overlay_pos_y                 0
map_overlay_pos_width             320
map_overlay_pos_height            200
map_things_appearance             1

# Heads-up display settings
hudcolor_titl                     5
hudcolor_xyco                     3
hudcolor_mapstat_title            6
hudcolor_mapstat_value            2
hudcolor_mapstat_time             2
hudcolor_mesg                     6
hudcolor_chat                     5
hudcolor_list                     5
hud_msg_lines                     1
hud_list_bgon                     0
health_red                        25
health_yellow                     50
health_green                      100
armor_red                         25
armor_yellow                      50
armor_green                       100
ammo_red                          25
ammo_yellow                       50
ammo_colour_behaviour             2
hud_num                           6
hud_displayed                     0

# Prboom-plus key bindings
key_speedup                       0x0
key_speeddown                     0x0
key_speeddefault                  0x0
speed_step                        0
key_demo_skip                     0xd2
key_level_restart                 0xc7
key_nextlevel                     0xd1
key_demo_jointogame               0x71
key_demo_endlevel                 0xcf
key_walkcamera                    0x130
key_showalive                     0x12f

# Prboom-plus heads-up display settings
hudadd_gamespeed                  0
hudadd_leveltime                  1
hudadd_demotime                   0
hudadd_secretarea                 1
hudadd_smarttotals                1
hudadd_demoprogressbar            0
hudadd_timests                    1
hudadd_crosshair                  0
hudadd_crosshair_scale            0
hudadd_crosshair_color            3
hudadd_crosshair_health           0
hudadd_crosshair_target           0
hudadd_crosshair_target_color     9
hudadd_crosshair_lock_target      0

# Prboom-plus mouse settings
mouse_acceleration                0
mouse_sensitivity_mlook           10
mouse_doubleclick_as_use          0
mouse_carrytics                   0

# Prboom-plus demos settings
demo_extendedformat               1
demo_demoex_filename              ""
getwad_cmdline                    ""
demo_overwriteexisting            1
quickstart_window_ms              0

# Prboom-plus game settings
movement_strafe50                 0
movement_shorttics                0
interpolation_maxobjects          0

# Prboom-plus misc settings
showendoom                        0
screenshot_dir                    ""
health_bar                        0
health_bar_full_length            1
health_bar_red                    50
health_bar_yellow                 99
health_bar_green                  0

# Video capture encoding settings
cap_soundcommand                  "ffmpeg -f s16le -ar %s -ac 2 -i - -c:a flac -y temp_a.flac"
cap_videocommand                  "ffmpeg -f rawvideo -pix_fmt rgb24 -r %r -s %wx%h -i - -c:v libx264 -preset slow -crf 0 -y temp_v.nut"
cap_muxcommand                    "ffmpeg -i temp_v.nut -i temp_a.flac -c copy -y %f"
cap_tempfile1                     "temp_a.flac"
cap_tempfile2                     "temp_v.nut"
cap_remove_tempfiles              1
cap_fps                           60

# Prboom-plus video settings
sdl_video_window_pos              "center"
palette_ondamage                  1
palette_onbonus                   1
palette_onpowers                  1
render_wipescreen                 1
render_screen_multiply            1
integer_scaling                   0
render_aspect                     0
render_doom_lightmaps             0
fake_contrast                     1
render_stretch_hud                0
render_patches_scalex             0
render_patches_scaley             0
render_stretchsky                 1
sprites_doom_order                1
movement_mouselook                0
movement_mousenovert              1
movement_maxviewpitch             90
movement_mousestrafedivisor       4
movement_mouseinvert              0

# Prboom-plus OpenGL settings
gl_allow_detail_textures          1
gl_detail_maxdist                 0
render_multisampling              0
render_fov                        90
gl_spriteclip                     2
gl_spriteclip_threshold           10
gl_sprites_frustum_culling        1
render_paperitems                 0
gl_boom_colormaps                 1
gl_hires_24bit_colormap           0
gl_texture_internal_hires         1
gl_texture_external_hires         0
gl_hires_override_pwads           0
gl_texture_hires_dir              ""
gl_texture_hqresize               0
gl_texture_hqresize_textures      1
gl_texture_hqresize_sprites       0
gl_texture_hqresize_patches       1
gl_motionblur                     0
gl_motionblur_min_speed           "21.36"
gl_motionblur_min_angle           "20.0"
gl_motionblur_att_a               "55.0"
gl_motionblur_att_b               "1.8"
gl_motionblur_att_c               "0.9"
gl_lightmode                      0
gl_light_ambient                  20
gl_fog                            1
gl_fog_color                      0x0
useglgamma                        6
gl_color_mip_levels               0
gl_shadows                        0
gl_shadows_maxdist                1000
gl_shadows_factor                 128
gl_blend_animations               0
gl_thingspritefuzzmode            0
gl_weaponspritefuzzmode           0

# Prboom-plus emulation settings
overrun_spechit_warn              0
overrun_spechit_emulate           1
overrun_reject_warn               0
overrun_reject_emulate            1
overrun_intercept_warn            0
overrun_intercept_emulate         1
overrun_playeringame_warn         0
overrun_playeringame_emulate      1
overrun_donut_warn                0
overrun_donut_emulate             0
overrun_missedbackside_warn       0
overrun_missedbackside_emulate    0

# Prboom-plus 'bad' compatibility settings
comperr_zerotag                   0
comperr_passuse                   0
comperr_hangsolid                 0
comperr_blockmap                  0
comperr_allowjump                 0
comperr_freeaim                   0

# Prboom-plus demo patterns list. Put your patterns here
demo_patterns_mask                "demo_pattern"
demo_pattern0                     "DOOM 2: Hell on Earth/((lv)|(nm)|(pa)|(ty))\d\d.\d\d\d\.lmp/doom2.wad"
demo_pattern1                     "DOOM 2: Plutonia Experiment/p(c|f|l|n|p|r|s|t)\d\d.\d\d\d\.lmp/doom2.wad|plutonia.wad"
demo_pattern2                     "DOOM 2: TNT - Evilution/((e(c|f|v|p|r|s|t))|(tn))\d\d.\d\d\d\.lmp/doom2.wad|tnt.wad"
demo_pattern3                     "The Ultimate DOOM/(((e|f|n|p|r|t|u)\dm\d)|(n\ds\d)).\d\d\d\.lmp/doom.wad"
demo_pattern4                     "Alien Vendetta/a(c|f|n|p|r|s|t|v)\d\d.\d\d\d\.lmp/doom2.wad|av.wad|av.deh"
demo_pattern5                     "Requiem/r(c|f|n|p|q|r|s|t)\d\d.\d\d\d\.lmp/doom2.wad|requiem.wad|req21fix.wad|reqmus.wad"
demo_pattern6                     "Hell Revealed/h(c|e|f|n|p|r|s|t)\d\d.\d\d\d\.lmp/doom2.wad|hr.wad|hrmus.wad"
demo_pattern7                     "Memento Mori/mm\d\d.\d\d\d\.lmp/doom2.wad|mm.wad|mmmus.wad"
demo_pattern8                     "Memento Mori 2/m2\d\d.\d\d\d\.lmp/doom2.wad|mm2.wad|mm2mus.wad"

# Weapon preferences
weapon_choice_1                   6
weapon_choice_2                   9
weapon_choice_3                   4
weapon_choice_4                   3
weapon_choice_5                   2
weapon_choice_6                   8
weapon_choice_7                   5
weapon_choice_8                   7
weapon_choice_9                   1

# Music
mus_e1m1                          "e1m1.mp3"
mus_e1m2                          "e1m2.mp3"
mus_e1m3                          "e1m3.mp3"
mus_e1m4                          "e1m4.mp3"
mus_e1m5                          "e1m5.mp3"
mus_e1m6                          "e1m6.mp3"
mus_e1m7                          "e1m7.mp3"
mus_e1m8                          "e1m8.mp3"
mus_e1m9                          "e1m9.mp3"
mus_e2m1                          "e2m1.mp3"
mus_e2m2                          "e2m2.mp3"
mus_e2m3                          "e2m3.mp3"
mus_e2m4                          "e2m4.mp3"
mus_e2m5                          "e1m7.mp3"
mus_e2m6                          "e2m6.mp3"
mus_e2m7                          "e2m7.mp3"
mus_e2m8                          "e2m8.mp3"
mus_e2m9                          "e3m1.mp3"
mus_e3m1                          "e3m1.mp3"
mus_e3m2                          "e3m2.mp3"
mus_e3m3                          "e3m3.mp3"
mus_e3m4                          "e1m8.mp3"
mus_e3m5                          "e1m7.mp3"
mus_e3m6                          "e1m6.mp3"
mus_e3m7                          "e2m7.mp3"
mus_e3m8                          "e3m8.mp3"
mus_e3m9                          "e1m9.mp3"
mus_inter                         "e2m3.mp3"
mus_intro                         "intro.mp3"
mus_bunny                         "bunny.mp3"
mus_victor                        "victor.mp3"
mus_introa                        "intro.mp3"
mus_runnin                        "runnin.mp3"
mus_stalks                        "stalks.mp3"
mus_countd                        "countd.mp3"
mus_betwee                        "betwee.mp3"
mus_doom                          "doom.mp3"
mus_the_da                        "the_da.mp3"
mus_shawn                         "shawn.mp3"
mus_ddtblu                        "ddtblu.mp3"
mus_in_cit                        "in_cit.mp3"
mus_dead                          "dead.mp3"
mus_stlks2                        "stalks.mp3"
mus_theda2                        "the_da.mp3"
mus_doom2                         "doom.mp3"
mus_ddtbl2                        "ddtblu.mp3"
mus_runni2                        "runnin.mp3"
mus_dead2                         "dead.mp3"
mus_stlks3                        "stalks.mp3"
mus_romero                        "romero.mp3"
mus_shawn2                        "shawn.mp3"
mus_messag                        "messag.mp3"
mus_count2                        "countd.mp3"
mus_ddtbl3                        "ddtblu.mp3"
mus_ampie                         "ampie.mp3"
mus_theda3                        "the_da.mp3"
mus_adrian                        "adrian.mp3"
mus_messg2                        "messag.mp3"
mus_romer2                        "romero.mp3"
mus_tense                         "tense.mp3"
mus_shawn3                        "shawn.mp3"
mus_openin                        "openin.mp3"
mus_evil                          "evil.mp3"
mus_ultima                        "ultima.mp3"
mus_read_m                        "read_m.mp3"
mus_dm2ttl                        "dm2ttl.mp3"
mus_dm2int                        "dm2int.mp3"

Version: PrBoom-Plus v2.6.1um
Platform: Linux (AUR)

P.S. Sorry if I simply missed the relevant config option, but I've been looking for days now and found nothing.

@well-defined
Copy link
Author

well-defined commented Nov 28, 2021

Also on the subject of interface background textures, a more whimsical question. I figured out through experimentation that the widescreen HUD texture itself is taken from the current WAD. Could there, by any chance, be an option to select which texture it is? Is this even something that's up to the source port to decide, or does it always have to be the same? (I mean, GZDoom's does happen to be the same, so...)

Perhaps I'd like a more grayish stone texture instead of green bricks to the sides of my gray HUD :)

@Kappa971
Copy link

Kappa971 commented Nov 29, 2021

I think this shouldn't be a problem as it is possible to add widescreen assets for hud (and more).

2219187044_preview_2300_20200904233825_1

I don't know why widescreen assets for original games (ultimate doom, doom 2, final doom) or even just widescreen hud are not built into the source port (there probably will be a reason).

@ghost
Copy link

ghost commented Dec 3, 2021

That would be a great feature, but aren't those assets technically copyrighted? Could be wrong though, I'm not a fair use expert.

I should definitely learn how to use widescreen assets for my projects now that I think of it 👀

@Kappa971
Copy link

Kappa971 commented Dec 4, 2021

I don't know if there are any copyright issues. GZDoom for example integrates widescreen assets into its packages so I don't know.

@fabiangreffrath
Copy link
Collaborator

PrBoom+ will not ship with any widescreen assets bundled, because it is simply not considered as the source port's job to provide additional artwork. Also, we take copyright and licensing issues very serious,

@well-defined
Copy link
Author

well-defined commented Dec 7, 2021

@fabiangreffrath It is entirely understandable that the source port should not include any additional assets. However, assets had nothing to do with my original issue, they only came up in the related discussion. In fact, the original issue only arises if no extra assets are loaded in the first place.

Do you consider the current scaling of the (already there, taken from the wad) background textures to be okay? That much is clearly the source port's job. The strips to the left and the right of the HUD and the menu background texture are already there, wouldn't it make sense to apply correct scaling to them?

@fabiangreffrath
Copy link
Collaborator

Do you mean the difference between this (Crispy Doom)

DOOM0001

and this (Woof)?

doom05

Well, I'd say that's an implementation detail and nothing that needs fixing. Some users may prefer the former, more crispy look, whereas others prefer the latter, more blurry look. You just cannot get it right for all, so it's probably better to keep it as it is.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants