Steamをインストール
ログイン
|
言語
简体中文(簡体字中国語)
繁體中文(繁体字中国語)
한국어 (韓国語)
ไทย (タイ語)
български (ブルガリア語)
Čeština(チェコ語)
Dansk (デンマーク語)
Deutsch (ドイツ語)
English (英語)
Español - España (スペイン語 - スペイン)
Español - Latinoamérica (スペイン語 - ラテンアメリカ)
Ελληνικά (ギリシャ語)
Français (フランス語)
Italiano (イタリア語)
Bahasa Indonesia(インドネシア語)
Magyar(ハンガリー語)
Nederlands (オランダ語)
Norsk (ノルウェー語)
Polski (ポーランド語)
Português(ポルトガル語-ポルトガル)
Português - Brasil (ポルトガル語 - ブラジル)
Română(ルーマニア語)
Русский (ロシア語)
Suomi (フィンランド語)
Svenska (スウェーデン語)
Türkçe (トルコ語)
Tiếng Việt (ベトナム語)
Українська (ウクライナ語)
翻訳の問題を報告
The game seems to scale pretty similarly performance wise no matter the resolution that I use, so it's likely an optimization issue that goes deeper than GPU-bound stuff.
Yeah, arbitrary resolutions work without much issues, setting aside the scaling issues reported at 1080p (Which are seemingly non-existent with the 4K native mode), and the minimap being broken.
I will probably hook the currently used resolution, and adjust the game's internal resolution based on that.
The second game is actually much easier to get running in 21:9 (for example), with the only thing really being an issue is the map being offset (although it's nowhere as severe as the first game). That just requires a value to be adjusted for the fullscreen mode to remove pillarboxing (Which isn't present above 2560x1080 anyways), and then a single aspect ratio value that controls the occlusion culling and aspect ratio of save crystals and walls needs to be adjusted.
Because AMD's Radeon Software's custom resolution support is kind of dodgy (It only supports custom resolutions below your native screen resolution, with the exception of VSR, which is a separate option), I am unable to take proper 7680x2160 or 7680x4320 screenshots.
It will probably take a bit to release something that I'm confident in, but once it's available, I will publicly announce a download link. There's a lot of work to be done.
For resolution related stuff, I searched for values being modified when the resolution changes between the 1080p and 4K Native mode.
For some internal resolution stuff, for example, at 1080p, I found that by looking for "80 07 00 00" strings in a hex editor, and searching for those AOBs in Cheat Engine if they end with 38 04.
I've also dug around the disassembler in Cheat Engine to find opcodes that access other values nearby. I've also poked around how the framelimiter works in Ghidra, which has something that allows you to view psuedocode (Which is somewhat similar to what appears in the disassembler.
For modifying the vertex shader command lists to see what they do, and what values to modify, I used SpecialK to inject into the game's exectuable, and I used the shader editor to modify those. I simply checked the checkbox near the respective vertex shader, and I pasted in the command list parameters that RenderDoc spit out, while modifying some of those values to offset stuff. For example, here are some results (Although some stuff such as character portraits should be shrunk manually to prevent clipping, the minimap needs to be modified to work properly, and the screen bounds for stuff like mouse menus need to be modified):
https://steamcommunity.com/sharedfiles/filedetails/?id=2348016328
Another interesting thing that I managed to find was a 0.5 float value in CE that was affecting a lot of things, and thanks to that, I found some minimap offset stuff, some FOV related stuff, and other things (Although I have no clue on how I exactly did this).
Another interesting tidbit is that the game handles aspect ratio with it's internal resolution, but some stuff, such as save crystals and objects, seemingly are using a separate render target, which requires adjusting the aspect ratio value according to the internal resolution to get looking correct.
https://drive.google.com/file/d/1dp5vyFkLsjHnoLzQwLNEh1TpxjQpyEtv/view?usp=sharing
Do you plan to use Special K as your injector and just add on whatever you plan to overlay?
Ghidra is a disassembler that is FOSS (Free Open Source), and is also maintained by the CIA, as it's used for reverse engineering software and for security researchers who reverse engineer malware, but it's definitely a good and cheap alternative to IDA Pro (Which costs thousands for a license). I personally use it alongside Cheat Engine to find out how things tick (and what to modify), and I'd like to look into incorporating x64dbg into my workspace as well, once I get around to figuring out how to use that (As I'd like to figure out a full intro skip, including the legal screens which don't use video files).
My plans is to have it run independently. I was just using SpecialK to debug shader related stuff, and stuff like VSync, window modes (If I can figure things out, I might look into a proper exclusive fullscreen mode instead of a borderless mode). I'd ideally like to find something that changes the scale and position of the UI in the game rather than relying on an exorbiant amount of shader parameter modifications (Which can get messy real quick, especially when dealing with an abundance of float4 values) which still don't affect mouse coordinates.
As for resolution support in the second game, from my time looking around disassembled code, it seems to actually render at the resolutions that the in-game options list now (could have been added in a patch, but from what I've seen, it operates on a switch statement like system), and from my time digging around in Ghidra, that game handles internal resolutions differently. Getting custom resolution support in that game will likely be easier, but I've gotten much farther in looking at the first game, so things have naturally progressed further. I'd like to either go about finding a way to make each resolution option behave similarly to how the second game does things, alongside replacing the 4K Native option with a custom resolution option that will read from an INI. Fixing the stretching in fullscreen mode and having it run at whatever the desktop's current resolution is (instead of stretching the image) would be nice to figure out too.
There's a lot of work to be done, but my plan is to have a working build (That works in a DLL wrapper, and that has support for multiple games) with some basic functionalities in a few months (To be generous, as my schedule is kind of unpredictable). I'm still new to a lot of stuff, such as hooking and graphics programming related stuff, despite my experience with modding UE4 games, and I wanted to challenge myself.
So I've made some more progress in terms of finding what resolution is being selected in the options menu (It's seemingly using an integer range), alongside the currently saved value. This will help with modifying the internal resolution values to match up with the resolution value selected in-game, rather than upscaling/downscaling from 1080p. My plans are to also replace the 4K Native option (As 3840x2160 will likely run at 4K instead) with a custom resolution option that will read a custom resolution from an INI file.
Another thing that guess I can add to the planned feature list is possibly re-implementing surround sound support (possibly), as Neptunia VIIR and Dragon Star Varnir supports it, but every IF port past those two (that use Orochi 4) seemingly don't have the option for it. I recently got a Sound BlasterX G6, and I've been playing quite a bit with it's surround sound solution. Maybe there could be a way to get it running in more than 4.1 surround sound if the engine supports it. That's a big maybe though, as I'd need to look into that individual aspect of VIIR and Varnir, and then reverse engineer it, and then find equivalent functions in the other games.
Anyways, Here's a small preview of the centered UI (Although more work has to be done to get it running properly) with a scale value (for the pause menu window) in Cheat Engine, and manually modifying the vertex shader's command buffer for the rest: https://i.imgur.com/Vun12CX.png
I'd like to figure out individual coordinates of things, so I could maybe do both a centered UI (for those with multimonitor/32:9 setups) and spanned UI option (for those with 21:9 displays). Some things may require me to figure out how to add pillarboxing/letterboxing though, such as VN sequences and still images.