VFansss / mgs2-v-s-fix

Unofficial fix for PC version of Metal Gear Solid 2
Other
569 stars 23 forks source link

Custom FOV Update #64

Closed UltimateNova1203 closed 5 years ago

UltimateNova1203 commented 5 years ago

Have gone through and extracted the Stage/Substage ID's from the game, to add to nemesis2000's FOV mod. The FOV multiplier should work and be comparable to the HD Collection, but was only tested at 16:9 aspect ratio. EDIT: Redacted, updated code below

VFansss commented 5 years ago

Hi!

Before all: sorry if I didn't answered to the Reddit PM, but I was very busy these days 😄

I'm curious on two things, mainly:

I will also answer your PM question:

I noticed when I had to rebuild the controller INIs, the tool remade the FoV data file, nuking the one I had updated.

This is an intended behaviour: the fix will re-deploy a "clean" situation on every "SAVE" action, so I'm sure that the fix is running with the exactly file situation I want.

I'm sorry if I made you lose some of your work 😄

Would it be possible to upstream the new data file to your fix?

Absolutely yes! 😄

I didn't released yet the next version of the fix, even if I've already finished my work on it. So it wouldn't be an issue to include it directly to the next version!

The file is already "prepared" inside the zip file "WidescreenFix.zip", that you can find inside the "Resources" folder inside the project files. But don't worry, I will include it myself, if you answer me the two curiosity above 😛

UltimateNova1203 commented 5 years ago

Hi!

Before all: sorry if I didn't answered to the Reddit PM, but I was very busy these days 😄

No worries, it is the holiday season after all.

I'm curious on two things, mainly:

  • How you had the patience to test all these stages? 😮 Have you done the old "trial-and-error" or you found some kind of way to edit at runtime the FOV value?

Yes, it was all tested during an actual playthrough, going to any spots I could find that shifted the camera view, testing both: camera views that change the substage ID (loading a room in Strut-F) and views that don't change the ID (camera pan while roaming). Load the stage, save, check the FoV compared to the HD Edition, make the changes, and reload the game to test. It would be nice to change the FoV during runtime, but I don't know how nemesis' patch handles it at this time. I played through both the HD Edition and PC version at the same time for a live comparison. This is how i know some stages need a very small amount of FoV changes.

EDIT: I should add, that if FoV is different between the substages (same main stage), then there is a noticable (depends) switch between the changes where it'll zoom in/out. Easy way to test is to go to Strut-F and go from the north door to the main area on the 1F. If FoV is different, the camera will snap to the new FoV and it's very noticable. This only applies of the camera pans to the new spot. Entering a room in Strut-F, the camera snaps to the new spot, so the FoV change isn't as noticable. Strut-F is a broken mess when it comes to FoV edits, thus why so many.

  • ALL these stages NEED a reduced FOV? Because (for what I know until now) the modified FOV is useful to avoid to see outside the stage. Otherwise, the reduced FOV is only a malus. So I don't know if is a good move to reduce the FOV on all these stages. Is truly necessary? Can you please explain it better your decision? 😛

Most of the stages need to be reduced, as there are plenty of stages that show the gray space outside of the map, see Strut-F for this as it gets pretty bad in the small rooms. I did notice that during some special events (Fatman bomb countdown from Strut-A to Strut-E), the game loads a completely different stage ID than is used in normal gameplay.

For example: Strut-E_heliport_p1 71 0 0.900 Strut-E_heliport_p2 71 1073741824 0.900 Strut-E_heliport_p3 89 0 0.900

These are all on the Strut-E heliport, P1 is before the Olga scene, and P2 is post Olga scene, but the game reverts back to P1 on subsequent visits. While going to defuse the bomb before the Fatman fight, it'll load P3, before going back to P1 before the Ninja scene. Any stages listed with the P1/P2/P3 at the end are needed for all the variants of the stage. Though any listed with a FoV of 1.000 could be ignored, i left it in just so I know i didn't miss a stage, though it is nice to have it documented if you want to change it's FoV at a later time without needing to find the memory addresses again.

Fun side-note, even the HD Edition still shows some out of bounds areas for a stage or two, Shell-1 B2, the small area you can hide in directly north of the lockers, it'll rotate the camera to show Raiden, HD will still show a slight gray area in the corner, due to how the fix works (not "proper" widescreen), this doesn't appear in this version.

Some area's (notable Struts-G/L perimeter) share the stage/substage ID's with the FA connecting bridge, so we have to make due with how it currently functions.

I will also answer your PM question:

I noticed when I had to rebuild the controller INIs, the tool remade the FoV data file, nuking the one I had updated.

This is an intended behaviour: the fix will re-deploy a "clean" situation on every "SAVE" action, so I'm sure that the fix is running with the exactly file situation I want.

I'm sorry if I made you lose some of your work 😄

This makes complete sense, it just surprised me. I made precautions after the first couple of stages I fixed got lost. Keep a backup (outside of the Bin folder of course)

Would it be possible to upstream the new data file to your fix?

Absolutely yes! 😄

I didn't released yet the next version of the fix, even if I've already finished my work on it. So it wouldn't be an issue to include it directly to the next version!

The file is already "prepared" inside the zip file "WidescreenFix.zip", that you can find inside the "Resources" folder inside the project files. But don't worry, I will include it myself, if you answer me the two curiosity above 😛

Hopefully I've answered your questions. I'm going in for my third full playthrough to see if there is any I missed on my first two runs as well.

VFansss commented 5 years ago

I played through both the HD Edition and PC version at the same time for a live comparison. This is how i know some stages need a very small amount of FoV changes.

😲

Hopefully I've answered your questions. I'm going in for my third full playthrough to see if there is any I missed on my first two runs as well.

I simply don't have words! You have done a FANTASTIC works.

Tell me when you have finished your third playthrough so I will gladly insert it inside the upcoming release, while I test and check various other things (and update the fix Wiki) 😄

UltimateNova1203 commented 5 years ago

Filled in the couple missing substages for campaign (Strut-C w/ Guards and Fortune fight), and made some slight corrections on to other stages that needed it (Deck B and Strut-A). This should be completely filled in now for every single stage/substage in the Campaign with no visible out of bounds in 16:9 aspect ratio.

VR Missions don't need correction (no out of bounds), and Alt. Missions use the campaigns values. Snake Tales has a couple of unique stage/substage values, but only for unique camera angles (Tales E, AB Bridge). Most values should be covered for the special modes. The Snake Tales missions are a bit more difficult than the main game, it will take me a while for that to be collected 😉

FOV values in this file optimized for 16:9 mode

results similar to HD collection version of the game

Stage ID adress 0x00A08198

Substage ID adress 0x00A16510

Compiled by nemesis2000, VFansss and UltimateNova1203

Stage Name #Stage ID #Substage ID #FOV Multiplier

Aft_deck 125 1073741824 1.000 Deck-A_crews_quarters 121 1073741824 0.850 Deck-A_crews_quarters_room 121 536870912 0.850 Deck-A_crews_lounge 118 1073741824 0.850 Deck-B_crews_quarters 115 1073741824 0.790 Deck-C_crews_quarters 114 1073741824 0.850 Deck-D_crews_quarters 116 536870912 0.750 Deck-D_crews_quarters_room 116 268435456 0.750 Deck-D_crews_quarters_kitchen 116 1073741824 0.750 Deck-D_crews_quarters_corridor 116 134217728 0.750 Deck-E_the_bridge 120 0 0.750 Navigational-deck_port_wing_olga 122 0 1.000 Navigational-deck_port_wing 125 1073741824 1.000 Engine_room_starboard 124 1073741824 0.850 Engine_room 124 536870912 0.850 Engine_room_port 124 134217728 0.850 Deck-2_port_section_1 123 1073741824 0.900 Deck-2_port_section_2 123 53680912 0.900 Deck-2_port_section_3 123 268435456 0.900 Deck-2_port_section_4 123 134217728 0.900 Deck-2_port_section_5 123 67108864 0.900 Deck-2_starboard_section_1 117 0 0.900 Deck-2_starboard_section_2 117 536870912 0.900 Holds 119 1073741824 1.000 Holds_room 119 268435456 1.000 Holds_room-2 119 536870912 1.000 Strut-A_deep_sea_dock_main 78 1073741824 0.875 Strut-A_deep_sea_dock_corridor 78 536870912 0.875 Strut-A_deep_sea_dock_elevator_p1 78 268435456 0.875 Strut-A_deep_sea_dock_elevator_p2 78 0 0.875 Strut-A_deep_sea_dock_elevator_p3 94 0 0.830 Strut-A_roof_p1 77 1073741824 1.000 Strut-A_roof_p2 77 0 1.000 Strut-A_pump_facility_p1 76 0 0.805 Strut-A_pump_facility_p2 76 1073741824 0.805 Strut-A_pump_room 76 536870912 0.875 AB_connecting_bridge 75 1073741824 0.900 Strut-B_transformer_room_p1 87 0 0.750 Strut-B_transformer_room_p2 87 1073741824 0.750 Strut-B_transformer_room_p3 87 536870912 0.750 BC_connecting_bridge_p1 74 0 0.900 BC_connecting_bridge_p2 74 1073741824 0.900 Strut-C_dining_hall_p1 58 0 0.750 Strut-C_dining_hall_p2 58 536870912 0.750 Strut-C_dining_hall_hall 58 1073741824 0.750 Strut-C_dining_hall_front 58 67108864 0.750 Strut-C_dining_hall_mens 58 268435456 0.750 Strut-C_dining_hall_womens 58 134217728 0.750 CD_connecting_bridge 61 1073741824 0.900 Strut-D_sediment_pool 73 1073741824 0.850 DE_connecting_bridge 92 1073741824 0.800 Strut-E_parcel_room_1F 72 1073741824 0.800 Strut-E_parcel_room_2F 72 536870912 0.800 Strut-E_parcel_room_B1 72 268435456 0.800 Strut-E_parcel_room_B1_room 72 134217728 0.800 Strut-E_parcel_room_B1_ladder 72 67108864 0.800 Strut-E_heliport_p1 71 0 0.900 Strut-E_heliport_p2 71 1073741824 0.900 Strut-E_heliport_p3 89 0 0.900 EF_connecting_bridge 70 1073741824 0.900 Strut-F_warehouse_1F_main_s 69 8388608 0.825 Strut-F_warehouse_1F_main_n 69 16777216 0.825 Strut-F_warehouse_1F_1-A 69 1073741824 0.775 Strut-F_warehouse_1F_1-B 69 536870912 0.775 Strut-F_warehouse_1F_1-C 69 268435456 0.775 Strut-F_warehouse_1F_1-D 69 134217728 0.775 Strut-F_warehouse_1F_1-E 69 67108864 0.775 Strut-F_warehouse_1F_1-F 69 33554432 0.775 Strut-F_warehouse_B1_main 69 524288 0.825 Strut-F_warehouse_B1_room_medicine 69 2097152 0.775 Strut-F_warehouse_B1_room_socom 69 1048576 0.775 Strut-F_warehouse_B1_room_aks74u 69 4194304 0.775 Shell-1_core_1F_p1 68 1073741824 0.800 Shell-1_core_1F_p2 68 0 0.800 Shell-1_core-B1_scene 68 0 0.850 Shell-1_core_B1_main 68 1073741824 0.850 Shell-1_core_B1_room 68 536870912 0.850 Shell-1_core_B1_lounge 68 268435456 0.850 Shell-1_core_B1_hall 90 1073741824 0.900 Shell-1_core_B1_hall_scene 62 0 1.000 Shell-1_core_B1_hall_ocelot 62 1073741824 1.000 Shell-1_core_B2_computer_room 82 1073741824 0.800 Shell-1-2_connecting_bridge 86 1073741824 1.000 LG_connecting_bridge 92 536870912 0.800 Shell-2_core_1F_p1 84 1073741824 0.850 Shell-2_core_1F_p2 81 1073741824 0.850 Shell-2_core_B1_filter_chamber 91 0 0.800 Shell-2_core_B1_filter_chamber_vamp 83 0 0.800 KL_connecting_bridge 67 1073741824 0.800 Strut-L_sewage_treatment 66 1073741824 0.800 Strut-L_oil_fence 88 1073741824 1.000 Arsenal-Gear_stomach_p1 65 0 0.800 Arsenal-Gear_stomach_p2 65 1073741824 0.800 Arsenal-Gear_colon 93 1073741824 0.900 Arsenal-Gear_rectum 80 0 1.000 Manhattan 64 0 1.000 Federal-Hall 85 0 1.000 VR-Missions 30 1073741824 1.000 VR-Missions_dark 22 1073741824 1.000 VR-Missions_gurlugon 24 1073741824 1.000 VR-Missions_variety 28 1073741824 1.000

VFansss commented 5 years ago

Fantastic 😄

As soon as I can I will do a fast play-through to test your FOV values and see if the fix has some other issues, and if all is working good it will be the last addition to the fix until the 1.7 release! 👍

VFansss commented 5 years ago

Ok. I can safely say that it was a fantastic addition to the project 😄

I'm closing this because I've integrated everything, and isn't an "Issue" anymore. If you (or even someone else, why not...) have something to add/change, this issue can simply be re-opened and we can proceed.

I don't have words to thank you: you have done a very tedious work, but everyone can enjoy its results.

I will better credit you on the Wiki the next time I edit it.

Thanks again 😃