-
Notifications
You must be signed in to change notification settings - Fork 50
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
FF7: allow filtering of internal textures that were originally filtered. #764
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for coming up with PR. I'm not really sure what are we fixing here, if this is just your preference, or we assume that what the Steam release did is the right one. In the meantime we unpack this, please look at the comments I left which we need to work nevertheless on top.
Overall I'm not really a fan of adding flags, or better only if needed, so I'm trying to understand what are we really trying to bring up here and which would be the best way to bring it to players.
Nevertheless, thanks for working on this, looking forward to it :)
## FF7 | ||
|
||
- Core: added option to filter what the original game filtered when still using internal textures. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please put this section in the right order after the Next. See other PR examples.
if (current_state.texture_set && (mode == MODE_COASTER) && !(VREF(texture_set, ogl.external))) // only ff7 has coaster minigame. | ||
{ | ||
current_state.texture_filter = false; // don't filter original coaster textures | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For both conditions even though we know it's only for ff7, I'd appreciate if we could add !ff8
nevertheless in the condition check. Additionally, please avoid over commenting ( stuff like // only ff7 has a submarine mode.
is literally noise while looking at the code ), as well as // don't filter original ... textures,
, just add notes of what it breaks in case it is set to true. No need to state the obvious :)
if (!_strnicmp(VREF(tex_header, file.pc_name), "menu/btl_win_c_", strlen("menu/btl_win_c_") - 1) && VREF(texture_set, palette_index) == 0) current_state.texture_filter = false; | ||
|
||
// don't filter original menu textures in ff7, because it introduces glitches | ||
if ((VREF(texture_set, ogl.external))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe do the opposite check so you avoid having this huge empty block of nothing?
Summary
This restores the missing filtering from all the 3d models when using the internal textures.
Motivation
This restores a missing feature that ffnx removes. FFNX was refusing to filter any internal textures. Now it only refuses to filter the ones that aren't safe to filter, as far as I know.
I'm aware this code is ugly and needs gardening, but i've tested it extensively (checked all the minigames), and it now appears to be at the point that it manages to replicate the look of the unmodded PC version when using the original assets.
ACKs
Closes #754 , in my opinion.