nbusseneau/hephaistos

vert+ scaling (support for 16:10, etc.)

Closed this issue · 38 comments

The target is Steam Deck, which has a 16:10 display.
The interactive mode doesn't allow this, nor the advanced mode

@cmalvi Can you clarify what you mean with "add an option for keep HUD stock"?

Using the mod, the HUD is "cut off" to the edges, like if all is zoomed in instead of a proper resolution change.

For example, the life bar is half-cutted, the gift aren't visible.

Same thing for the right part of the HUD

With "stock" option, I mean to keep the hud unmodified, so at least it shouldn't be cutted using a 16:10 aspect ratio

OK. This is indeed because you are using the mod at 16:10, in that configuration the HUD will be cut-off as the default hor+ scaling of Hephaistos was not intended to be used for reducing the horizontal FOV, but only for increasing it.

You can try to use pixel scaling instead, e.g. hephaistos patch 1920 1200 -v --scaling=pixel. Note that you want to use 1920x1200 here, not the Steam Deck resolution of 1280x800, because what you want is to resize Hades' internal viewport of 1920x1080 to a 16:10 aspect ratio, and using 1280x800 with pixel scaling would just break everything.

Disclaimer: you will encounter issues with the HUD with pixel scaling, as the mod is not intended to be used like this, but it should be better than the default hor+ behaviour for ratios < 16:9, though of course the best option is not to use the mod at all and play in 16:9.

I have to think some more on how I would want to implement proper first party support for 16:10 in Hephaistos.

I have thought a bit about it in the background this afternoon, and of course the best way to do this is to have Hephaistos support vert+ scaling for aspect ratios taller than 16:9. This way we'll have hor+ for wider aspect ratios, and vert+ for taller ones.

Yes, I'm working on it right now and it works fine so far. Some quirks to fix here and there of course, but I expect it to be completely fixable just like hor+ :)

I'll upload a test build here when ready, probably somewhen this week or next week.

@cmalvi Here's a test branch: https://github.com/nbusseneau/hephaistos/tree/vert-plus-support

You'll find 16:10 options available in the interactive setup. It should work for mostly everything, minus two issues which I've identified but are unrelated to the new vert+ scaling (they were already there, I just hadn't seen them because they're very very minor and nobody reported on them because it's very late game stuff and cosmetic only).

Thanks, tomorrow I'll test it.

Could you upload it in a separate branch? Never mind, just saw now the branch

Also what are the two issues?

I don't want to spoil if you haven't played the game yet, but basically it's cosmetic things you can buy at end game.

I'm at the end game (last invitation missing), don't worry

It works very well, thanks. Here some notes for now:

  • The mod don't touch the bottom part of main menu (in previous versions it did)

  • The time increase regarding the escape condition seems too distant from the total time (they are in the bottom-down part of the screen)

  • The location name seems a little to down (very little)

  • dialogues with choice : choice aren't affected by the mod, resulting in a wrong position

  • character's art in dialogues seems fine for some and cutted at bottom for other (maybe due to original design?)

  • status like the "claw icon" (sorry I'm playing it in italian so I don't know the equivalent in English), overlap with boss bar. This also happen with small enemies, so maybe is a "icon size" problem

  • darker background where you sell booms isn't patched, still 16:9 (the other is ok)

  • Orfeo's music menu has alignment problem

  • Codex has alignment problem with heart, text, characters

Thanks for testing, good stuff.

Quick question first: did you use the test build I sent yesterday, or the branch code directly? I was under the assumption you'd use the branch code considering your question above, but I'm now unsure which you used as some of these I had already fixed in the branch but after sending the test build.

It works very well, thanks. Here some notes for now:

* The mod don't touch the bottom part of main menu (in previous versions it did)

Can you clarify what you mean by this? The mod is unable to resize the main menu background as this a pre-baked animation, and resizing would distort it. This didn't change w.r.t. previous versions, so I'm curious what behaviour you saw before.

EDIT: I think I understood why you mention this: in previous versions you had Hor+ scaling, so at 16:10 it was actually cutting on the left/right but keeping full height (just like the rest of the assets, as you had noticed in your initial message). So no issue here, it's actually working as intended because we don't want to distort such assets.

* The time increase regarding the escape condition seems too distant from the total time (they are in the bottom-down part of the screen)

Nice one, I thought I had fixed it but it seems I broke the fix later while fixing other things, will revisit.

EDIT: fixed in test branch.

* The location name seems a little to down (very little)

I decided not to move it up and keep it in the original location, as I felt it was better than moving it up (happy to discuss if you disagree).

EDIT: I changed my mind, it looks better when relocated to a fixed position at the top, as in the original game. Fixed in test branch.

* dialogues with choice : choice aren't affected by the mod, resulting in a wrong position

With which dialogues did you see the issue? I had fixed encounter dialogues already (Eurydice, etc.) in the test branch, but maybe dialogues for other instances are not using the same code path.

* character's art in dialogues seems fine for some and cutted at bottom for other (maybe due to original design?)

These are also static assets, resizing in one direction would result in distorting. It appears cut at the bottom because I kept the art in the center of the screen, as I felt that was better than moving it to the bottom (happy to discuss if you disagree). It also happens that some of the original assets actually extend below the cutoff (e.g. Chaos artwork), and in these instances you'd see more of it using the mod than in the original game.

* status like the "claw icon" (sorry I'm playing it in italian so I don't know the equivalent in English), overlap with boss bar. This also happen with small enemies, so maybe is a "icon size" problem

Interesting, I'll have to do a test run specifically for that. There was never any code in Hephaistos for that, so it's probably something that was already here. Thanks for catching it!

* darker background where you sell booms isn't patched, still 16:9 (the other is ok)

Good catch, I also saw this yesterday after sending the test version. It works when using ModUtil, and not when using Hephaistos custom hooks. I already know why this happens, now I need to devise a fix :D

EDIT: fixed in test branch.

* Orfeo's music menu has alignment problem

I had fixed this already in the test branch, so I suppose you were not using the test branch?

* Codex has alignment problem with heart, text, characters

The one where it looks fine at first and then you switch to another entry and it's all messed up because? Good catch, saw it yesterday after sending the test version as well. Same issue as above: works with ModUtil, does not work without.

EDIT: fixed in test branch.

I'm at the end game (last invitation missing), don't worry

The two issues I was referring to are the cosmetic backings and badge that are displayed on the advanced boon info menu (the "B" key by default, it's the one that displays all your current boons and run status), after you have bought cosmetic UI upgrades and earned badges from the end game Resource Director.

Thanks for testing, good stuff.

Quick question first: did you use the test build I sent yesterday, or the branch code directly? I was under the assumption you'd use the branch code considering your question above, but I'm now unsure which you used as some of these I had already fixed in the branch but after sending the test build.

It works very well, thanks. Here some notes for now:

* The mod don't touch the bottom part of main menu (in previous versions it did)

Can you clarify what you mean by this? The mod is unable to resize the main menu background as this a pre-baked animation, and resizing would distort it. This didn't change w.r.t. previous versions, so I'm curious what behaviour you saw before.

EDIT: I think I understood why you mention this: in previous versions you had Hor+ scaling, so at 16:10 it was actually cutting on the left/right but keeping full height (just like the rest of the assets, as you had noticed in your initial message). So no issue here, it's actually working as intended because we don't want to distort such assets.

* The time increase regarding the escape condition seems too distant from the total time (they are in the bottom-down part of the screen)

Nice one, I thought I had fixed it but it seems I broke the fix later while fixing other things, will revisit.

EDIT: fixed in test branch.

* The location name seems a little to down (very little)

I decided not to move it up and keep it in the original location, as I felt it was better than moving it up (happy to discuss if you disagree).

* dialogues with choice : choice aren't affected by the mod, resulting in a wrong position

With which dialogues did you see the issue? I had fixed encounter dialogues already (Eurydice, etc.) in the test branch, but maybe dialogues for other instances are not using the same code path.

* character's art in dialogues seems fine for some and cutted at bottom for other (maybe due to original design?)

These are also static assets, resizing in one direction would result in distorting. It appears cut at the bottom because I kept the art in the center of the screen, as I felt that was better than moving it to the bottom (happy to discuss if you disagree). It also happens that some of the original assets actually extend below the cutoff (e.g. Chaos artwork), and in these instances you'd see more of it using the mod than in the original game.

* status like the "claw icon" (sorry I'm playing it in italian so I don't know the equivalent in English), overlap with boss bar. This also happen with small enemies, so maybe is a "icon size" problem

Interesting, I'll have to do a test run specifically for that. There was never any code in Hephaistos for that, so it's probably something that was already here. Thanks for catching it!

* darker background where you sell booms isn't patched, still 16:9 (the other is ok)

Good catch, I also saw this yesterday after sending the test version. It works when using ModUtil, and not when using Hephaistos custom hooks. I already know why this happens, now I need to devise a fix :D

EDIT: fixed in test branch.

* Orfeo's music menu has alignment problem

I had fixed this already in the test branch, so I suppose you were not using the test branch?

* Codex has alignment problem with heart, text, characters

The one where it looks fine at first and then you switch to another entry and it's all messed up because? Good catch, saw it yesterday after sending the test version as well. Same issue as above: works with ModUtil, does not work without.

EDIT: fixed in test branch.

I've used the test build you sent me yesterday.

EDIT: I think I understood why you mention this: in previous versions you had Hor+ scaling, so at 16:10 it was actually cutting on the left/right but keeping full height (just like the rest of the assets, as you had noticed in your initial message). So no issue here, it's actually working as intended because we don't want to distort such assets.

Exactly.

I decided not to move it up and keep it in the original location, as I felt it was better than moving it up (happy to discuss if you disagree).

What do you think about moving it up by very few pixels?

With which dialogues did you see the issue? I had fixed encounter dialogues already (Eurydice, etc.) in the test branch, but maybe dialogues for other instances are not using the same code path.

Here's the caracthers with i;ve encountered the issue:

  • Sisyphus (gift choice )
  • Dusa (when she want to give you back your gifts after story epilogue)

These are also static assets, resizing in one direction would result in distorting. It appears cut at the bottom because I kept the art in the center of the screen, as I felt that was better than moving it to the bottom (happy to discuss if you disagree). It also happens that some of the original assets actually extend below the cutoff (e.g. Chaos artwork), and in these instances you'd see more of it using the mod than in the original game.

Really i don't know here, because maybe is a too big work and out of scope of the mod. As it is now maybe is a good compromise, what do you think about?

I had fixed this already in the test branch, so I suppose you were not using the test branch?

Yes, i've not seen a build guide, so was quicker to use the test build you sent me

Thanks for your work

Here some screenshot

image

image

image

image

image

image

image

image

What do you think about moving it up by very few pixels?

I suppose you had already started typing before I edited my message above, so just to advertise it, I changed location banner position:

EDIT: I changed my mind, it looks better when relocated to a fixed position at the top, as in the original game. Fixed in test branch.

Here's the caracthers with i;ve encountered the issue:

* Sisyphus (gift choice )

* Dusa (when she want to give you back your gifts after story epilogue)

OK, I will try to double-check but these should be fixed in the test branch, you encountered the issue since you used the test build.

Really i don't know here, because maybe is a too big work and out of scope of the mod. As it is now maybe is a good compromise, what do you think about?

Sadly it is not possible to resize a static asset in only one dimension (horizontal or vertical) without distorting it. I did do it for some assets where it made sense and distorting did not have any visible effect (most overlays, e.g. menu backgrounds, room transitions, or lava / poison overlays), but I did not resize any assets where distorting would be visible (almost everything).

Almost all assets in the game are cut off specifically for 16:9 (some of them extend beyond but not many), so to upscale in one direction without distorting, there are only 2 choices:

  • Move around the asset without resizing it.
  • "Oversize" the asset, and be content with having it be cut off on the non-scaled direction.

There is little value in the second option as most of the assets in the game are specifically made to make use of the whole screen space by being overlayed with other elements, and thus by oversizing we'd lose part of the screen (as you had noticed in your original message).

The only exception to that would be fullscreen cutscenes / animations, such as the main menu background, Hades flashback / remembrance cutscene when starting a new run, or the death cutscene: in these cases, cutting part of the screen might be acceptable as long as we don't stray too far off from 16:9 and most of the original screen is kept.

I did not do that in the original mod because you can bet that at 21:9 (which is the most common use case), it already cuts way too much. I think 16:10 might be the only resolution at which it might make sense to do this, and even then, I'm not sure it makes sense outside of the main menu, as even the flashback / death cutscenes might not look as good with the sides cut off.

Yes, i've not seen a build guide, so was quicker to use the test build you sent me

No problem. If you want to use the test branch directly, you don't need to build anything, just use the Python version (see README).

No problem. If you want to use the test branch directly, you don't need to build anything, just use the Python version (see README).

Installed now, seems a step down from test build:

  • The entire ui is shifted up with "16:9" aspect ratio, including main menu, "gray" background behind menu and gameplay ui

Due to the problem reported, others ui issues i've mentioned before aren't present here.

I think this is related to the ui edit you mentioned previously, but now is a lot worse, only location should be moved upper but not on top

I don't think this is an issue with the mod itself, it looks like a patching conflict. Probably there was a conflict between the test build and Python version, restore the original version of the game by doing a Steam files validation check and then clean up hephaistos-data directory by removing backups, hashes, and sjson-data. Then try the Python patch again from this clean state.

I don't think this is an issue with the mod itself, it looks like a patching conflict. Probably there was a conflict between the test build and Python version, restore the original version of the game by doing a Steam files validation check and then clean up hephaistos-data directory by removing backups, hashes, and sjson-data. Then try the Python patch again from this clean state.

I'm having problem using python on the steam deck, don't know why.

Could you please add a build to the branch please? if it's not a problem

Sure, no problem: hephaistos-linux.zip

Okay now works thanks.

After a quick test here the result

  • Menu problems fixed, except for the Orfeo's music list ( i think shift down a little bit only the song list fix the issue)
  • Location name seems perfect now for me
  • Timer issue fixed
  • "claws" icon size problem still present
  • Sisyphus (gift choice ) fixed
  • darker background where you sell booms fixed

So excect Orfeo and prophecies adjustement, only the status icon seems remain to need a fix,
Thanks again

Here the song list problem

image

Here the prophiecies stock, in my previous message you can see the modded one

https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse4.mm.bing.net%2Fth%3Fid%3DOIP._X1nmvcgqVzbpthcdB3KVQHaDt%26pid%3DApi&f=1

Ah yes, sorry, I pushed the wrong fix for the music menu. I have it fixed properly now, and also fixed prophecies. So now I just have to check the status thing.

Oh thank you! could you put a build here please? same python problem on the deck

Here you go: hephaistos-linux.zip

I can't seem to reproduce the status issue though, it seems normal to me.
Here's how it's supposed to look (original game, 16:9): 2022-07-08_16-38-37
Here's how it looks in vert+ (1000x1500, 2:3, to spot Y axis issues more easily): 2022-07-08_16-40-37

Thanks to the build, i suggest you to put it in the release section / readme.

About the status issue, shame on me, i recall is different on 16:9,

So all issue seems fixed right?

Yea, except the two I had identified with cosmetic data + badges, which were already bugged before starting the vert+ work. I think the vert+ mod is in a very good state right now. I will try to fix these last two things before doing a proper v1.7.0 release, hopefully I don't take too long to sort these out.

Thanks again, checked it now and all seems fixed.

two I had identified with cosmetic data + badges

have you any image about?

Sure: image
Note how the cosmetic backings (lava thingies) and badge name, on the left, are not properly repositioned, instead sticking to their original position.

Oh yes, even on the deck, never noticed it before.

However i think this issue could be closed, it's okay for you?

@cmalvi v1.7.0 is officially released. Thanks for your help!

By the way, I'm just thinking: would you be willing to take a photo of Hades running on your Steam Deck with Hephaistos having resized it fullscreen? Just a photo of the Steam Deck in full frame / focus, where we can see that black bars are not there. Maybe even take two photos, one before and after Hephaistos? If it looks good I could add it to the showcase on the README. If you don't want to / can't it's also OK, I can always try to find someone else :)

By the way, I'm just thinking: would you be willing to take a photo of Hades running on your Steam Deck with Hephaistos having resized it fullscreen? Just a photo of the Steam Deck in full frame / focus, where we can see that black bars are not there. Maybe even take two photos, one before and after Hephaistos? If it looks good I could add it to the showcase on the README. If you don't want to / can't it's also OK, I can always try to find someone else :)

All the screenshots I've uploaded here come from my Steam Deck. Do you need more or some specific scene? :)

Sorry, it wasn't clear: the request was for photos where we see the Steam Deck itself, not screenshots. As you can see on the showcase in the README I already made screenshots in 16:10, but I thought it would be nice to have actual photos of the game running on a Steam Deck vanilla (with black bars) and then patched with Hephaistos (without black bars), ideally in a bright ingame location (I think maybe the Skelly room would work?) so that black bars are very easy to see.

Oh I understand, sorry I prefer not