Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assets up-scaling (future request) #3

Open
baszczewski opened this issue Oct 3, 2018 · 16 comments
Open

Assets up-scaling (future request) #3

baszczewski opened this issue Oct 3, 2018 · 16 comments
Labels
enhancement New feature or request

Comments

@baszczewski
Copy link

Please support modern resolutions and post processing filters for up-scaling. This will allow to presents game in modern, but maybe little cartoonish way. I made some samples with Waifu2x filter:
inventory-after
dungeon-after
diablo-after

@ghost
Copy link

ghost commented Oct 13, 2018

I plan on adding this in.

It shouldn't be too hard either.

Thanks for issue.

@ghost
Copy link

ghost commented Dec 28, 2018

You can now resize the window after game start

@AJenbo
Copy link
Member

AJenbo commented Jan 28, 2019

At the moment we have it using a virtual resolution so it's not locked to anything specific. Tee scaling is very basic though.

@AJenbo
Copy link
Member

AJenbo commented Feb 1, 2019

The game now runs in fullscreen (native desktop resolution) and uses bilinear scalling.

Waifu2x appears to not be perfomant enough to be used for post processing and processing the assets would require a rewrite of the render engine. hqx might be a more realistic route to go. Implementing it here should be fairly straight forward:
https://github.com/diasurgical/devilutionX/blob/master/Stub/dx.cpp#L83 though you would probably have to disable logical LogicalSize and handle scaling of coordinates manually.
https://github.com/diasurgical/devilutionX/blob/master/Stub/DiabloUI/sdlrender.cpp#L203

https://github.com/diasurgical/devilutionX/blob/master/Stub/DiabloUI/sdlrender.cpp#L405

@sheepo99
Copy link

I have a question. Will advanced features such as HQ resolutions and other advanced features be supported by the DevilutionX build, or will they be exclusive to the future Devilution Plus Plus package?

@AJenbo
Copy link
Member

AJenbo commented Mar 21, 2019

I have a question. Will advanced features such as HQ resolutions and other advanced features be supported by the DevilutionX build, or will they be exclusive to the future Devilution Plus Plus package?

The groundworks are being laid, the very first step of making the graphics more configurable is basically ready #44. The render is being cleaned up (this is also a huge step toward 64bit support), this will give us the opportunity for making it hardware accelerated and resolution independent. So it may take a bit of time, but it is on its way.

@AJenbo AJenbo added the enhancement New feature or request label Mar 23, 2019
@AJenbo
Copy link
Member

AJenbo commented Mar 23, 2019

Adding Waifu2x asssets depends on #46

AJenbo added a commit that referenced this issue Mar 24, 2019
Co-Authored-By: qndel <stefan551@o2.pl>
@AJenbo AJenbo mentioned this issue Jul 7, 2019
@ivan89el
Copy link

@baszczewski Tried topaz ai gigapixel turned out even more cute:
med

@ghost
Copy link

ghost commented Jul 10, 2019

@ivan89el This issue is closed.

I like though the Russian in this. How much of the game is translated into Russian? Can we talk about this in our discord?

@ivan89el
Copy link

@ApertureSecurity The exe translation was done in hex and the old (1998) translated MPQ resources were used.

@AJenbo
Copy link
Member

AJenbo commented Jul 19, 2019

This one was pointed out on the GOG forums:
https://github.com/atheros/xbrzscale

med

@qndel
Copy link
Member

qndel commented Jul 19, 2019

Yeah but the thing is none of these are fast enough to be applied in realtime and modifying a screenshot is not a big deal

@AJenbo
Copy link
Member

AJenbo commented Jul 21, 2019

@qndel we could implement this as part of the loading routine, of cause that we rewrite the render to support upscaled tile, but that's on the road map anyway.

@BF3000
Copy link

BF3000 commented Jul 29, 2019

What can I say, there is more than enough scaling algorithms to do the job.
Bilinear,Bicubic, Lanczos, Blackman, Spline.
Something super heavy, like Nnedi3 or Waifu2x can be used to upscale sprites during level loading, but not for realtime rendering.

AJenbo pushed a commit that referenced this issue Sep 26, 2019
AJenbo pushed a commit that referenced this issue Sep 26, 2019
@dcworldwide
Copy link

AJenbo pushed a commit that referenced this issue Mar 23, 2021
Single-player difficulty selection was implemented in a very hacky way.

Documents what's going on there and fixes a memory leak.

Memory leaks that this fixes looked like this:

```
Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f435b789f17 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.6+0xb1f17)
    #1 0x5567766c62b8 in dvl::selgame_GameSelection_Select(int) ../SourceX/DiabloUI/selgame.cpp:163
    #2 0x5567766d8ee8 in dvl::selhero_Load_Select(int) ../SourceX/DiabloUI/selhero.cpp:464
    #3 0x5567766d6ed1 in dvl::selhero_List_Select(int) ../SourceX/DiabloUI/selhero.cpp:325
    #4 0x556776692683 in dvl::UiFocusNavigationSelect() ../SourceX/DiabloUI/diabloui.cpp:396
    #5 0x55677669158e in HandleMenuAction ../SourceX/DiabloUI/diabloui.cpp:223
    #6 0x5567766917b9 in dvl::UiFocusNavigation(SDL_Event*) ../SourceX/DiabloUI/diabloui.cpp:277
    #7 0x556776695dff in dvl::UiPollAndRender() ../SourceX/DiabloUI/diabloui.cpp:626
    #8 0x5567766d94ef in UiSelHeroDialog ../SourceX/DiabloUI/selhero.cpp:512
    #9 0x5567766d997f in dvl::UiSelHeroSingDialog(int (*)(int (*)(dvl::_uiheroinfo*)), int (*)(dvl::_uiheroinfo*), int (*)(dvl::_uiheroinfo*), void (*)(unsigned int, dvl::_uidefaultstats*), int*, char (*) [16], int*) ../SourceX/DiabloUI/selhero.cpp:547
    #10 0x556776a44f45 in mainmenu_select_hero_dialog ../Source/mainmenu.cpp:98
    #11 0x5567765f9f15 in SNetInitializeProvider ../SourceX/storm/storm_net.cpp:102
    #12 0x556776c996b9 in multi_init_single ../Source/multi.cpp:826
    #13 0x556776c98b1e in NetInit ../Source/multi.cpp:770
    #14 0x5567767d0c0b in StartGame ../Source/diablo.cpp:375
    #15 0x556776a4493d in mainmenu_init_menu ../Source/mainmenu.cpp:45
    #16 0x556776a44c05 in mainmenu_single_player ../Source/mainmenu.cpp:61
    #17 0x556776a454a9 in mainmenu_loop ../Source/mainmenu.cpp:152
    #18 0x5567767d2892 in DiabloMain ../Source/diablo.cpp:602
    #19 0x5567766e3c69 in main ../SourceX/main.cpp:34
    #20 0x7f435a69ecb1 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28cb1)
```
@dcworldwide
Copy link

5 years on since op.... Has the technology's scalability improved enough to make this feasible?

tukkek pushed a commit to tukkek/turn-based-diablo-1 that referenced this issue Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants