Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archive

The Original Forum. Game archives, full of resources. How to open them? Get help here.
Tex
veteran
Posts: 89
Joined: Sat Aug 20, 2011 4:51 am
Has thanked: 21 times
Been thanked: 11 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Tex »

BobDoleOwndU wrote:So I discovered it's possible to get TPP to load new .dat files.
...
If we could gain priority over 0/00.dat and 0/01.dat, it would allow us to easily add dedicated modding .dat files.
That would be great, but I likewise suspect it's defined in the exe. I recall they flipped priority of 00.dat vs 01.dat during one patch.

Any chance anyone has chunk0.dat\foxfs.dat from past versions of the game?

nasanhak wrote:Sometime ago I saw an image file detailing how the inputs to Player.SetAroundCameraManualModeParams work. It showed how the camera position offsets resulted in actual in-game camera position. Can't seem to find this image again.
This: https://i.imgur.com/H52zJg0.jpg
From here:
https://forums.nexusmods.com/index.php? ... ipt/page-3

Inspired by CantStoptheBipBop I extended my debug output of messages, I've have had the debugMessages option for a few versions, but I was just throwing a bunch of different lookup tables at the args.
I now can define what the message parameters are for the function to give the args their names and define their type for the lookup functions which makes output a bit clearer, and doubles as documentation of the messages I guess. All that is in mod\modules\InfLookup.lua

If you want to run IH with debugMessages grab the 'InfStrcode lookup (IH debugging)' file from the files on IH nexus page (just a string scrape for runtime str32 comparison).

Otherwise here's an ih_log with all of IH debug logging on, just pretty much loading map and quitting, messages start on line 113.
http://pastebin.com/Zd62Lk1k


I fixed some stuff so simple modules using Update should with IH just by throwing them in \mod\modules, without needing to edit Tpp,TppMain.
So in theory your show camo value mod should work CantStoptheBipBop, but I haven't actually tested it because I'm terribad.
Not sure how your script loader would fare either unknown123, since it attempts to load all lua files in \modules it might trip over the extra luas you require(), if so it would likely just need a sub folder and changing to require"somesubfolder.somemodulename"
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

Tex wrote:Not sure how your script loader would fare either unknown123, since it attempts to load all lua files in \modules it might trip over the extra luas you require(), if so it would likely just need a sub folder and changing to require"somesubfolder.somemodulename"
I don't update it since no one uses it aside from me, so it's fine.
Btw, logs should be formatted using the same format, see line 298 and 302. Dumping arrays like this breaks the log and makes it unparseable, they should be printed in one line. Same with

Code: Select all

|128.20381369792|OnMessage|sender: UI, messageId: EndFadeOut, fadeInName=OnEstablishMissionClearFadeOut (str32), unk1=0 (number), 
|128.20381369792|TppRevenge.SetRevengePoint: revengeType:M_STEALTH from:0 to:0
| time | function | or : ?
Some log strings doesn't even have function names, just array values.
I don't have a lot of time to actually review your code (it's not on github, so I can't see what you've changed), but it seems that you don't have a template for log strings. One day someone (maybe even you) will try to write a parser for your logs and it will fail, so please, follow one template.
User avatar
Higus
advanced
Posts: 78
Joined: Sat Jun 30, 2012 5:35 am
Has thanked: 6 times
Been thanked: 5 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Higus »

Tex wrote:Any chance anyone has chunk0.dat\foxfs.dat from past versions of the game?
From a chunk0 last modified September 6th, 2015:
https://mega.nz/#!OgYn2LzR!nC14XVQ_om8J ... ZMJKtjEpGg

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<fs>
	<safiles>
		<file code="16355669509839002145"/>
		<file code="16355281632549195911"/>
		<file code="16355925670434988166"/>
		<file code="16355565633005451293"/>
		<file code="16355073395740587526"/>
	</safiles>
	<version build="f0c9f82d-61cc-46d6-95f3-eff6492368c3"/>
	<layout dataroot="master" locater="1" sqar="1"/>
	<chunks>
		<chunk id="0" label="cypr" qar="chunk0.dat" textures="texture0.dat"/>
		<chunk id="1" label="base" qar="chunk1.dat" textures="texture1.dat"/>
		<chunk id="2" label="afgh" qar="chunk2.dat" textures="texture2.dat"/>
		<chunk id="3" label="mtbs" qar="chunk3.dat" textures="texture3.dat"/>
		<chunk id="4" label="mafr" qar="chunk4.dat" textures="texture4.dat"/>
		<chunk id="5" label="mgo"/>
	</chunks>
	<textures/>
	<qars>
		<qar ext="164" name="data1.dat"/>
		<qar ext="2056" name="data1.dat"/>
		<qar ext="1740" name="data1.dat"/>
		<qar ext="2609" name="data1.dat"/>
		<qar ext="7189" name="data1.dat"/>
		<qar ext="1591" name="data1.dat"/>
		<qar ext="3832" name="data1.dat"/>
		<qar ext="3609" name="data1.dat"/>
		<qar ext="796" name="data1.dat"/>
		<qar ext="5533" name="data1.dat"/>
		<qar ext="1752" name="data1.dat"/>
		<qar ext="1439" name="data1.dat"/>
	</qars>
</fs>
Last edited by Higus on Sun Feb 12, 2017 12:32 am, edited 1 time in total.
CantStoptheBipBop
advanced
Posts: 53
Joined: Sat Aug 27, 2016 9:43 am
Has thanked: 7 times
Been thanked: 7 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by CantStoptheBipBop »

Higus wrote:
Tex wrote:Any chance anyone has chunk0.dat\foxfs.dat from past versions of the game?
From a chunk0 last modified September 6th, 2015:
https://mega.nz/#!OgYn2LzR!nC14XVQ_om8J ... ZMJKtjEpGg
Contents of the current patched foxfs.dat:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<fs>
	<safiles>        <!--values always start at 16355-->
		<file code="16355565633005451293"/>
		<file code="16355073395740587526"/>
		<file code="16355925670434988166"/>    <!--only unchanged file code-->
		<file code="16355669509839002145"/>
		<file code="16355281632549195911"/>
	</safiles>
	<version build="2f8f0203-824c-40f5-b14e-8e5068b32fd3"/>
   <!--values below here were not changed-->
	<layout dataroot="master" locater="1" sqar="1"/>
	<chunks>
		<chunk id="0" label="cypr" qar="chunk0.dat" textures="texture0.dat"/>
		<chunk id="1" label="base" qar="chunk1.dat" textures="texture1.dat"/>
		<chunk id="2" label="afgh" qar="chunk2.dat" textures="texture2.dat"/>
		<chunk id="3" label="mtbs" qar="chunk3.dat" textures="texture3.dat"/>
		<chunk id="4" label="mafr" qar="chunk4.dat" textures="texture4.dat"/>
		<chunk id="5" label="mgo"/>
	</chunks>
	<textures/>
	<qars>
		<qar ext="164" name="data1.dat"/>
		<qar ext="2056" name="data1.dat"/>
		<qar ext="1740" name="data1.dat"/>
		<qar ext="2609" name="data1.dat"/>
		<qar ext="7189" name="data1.dat"/>
		<qar ext="1591" name="data1.dat"/>
		<qar ext="3832" name="data1.dat"/>
		<qar ext="3609" name="data1.dat"/>
		<qar ext="796" name="data1.dat"/>
		<qar ext="5533" name="data1.dat"/>
		<qar ext="1752" name="data1.dat"/>
		<qar ext="1439" name="data1.dat"/>
	</qars>
</fs>
@Tex
Thanks for the notice. I forgot to mention but the previous method didn't work for me. After adding it to the inf table the game just acted like the file didn't exist by not printing out anything to the announce log.

edit: just tested it out on r199, works great. I noticed some things with inf itself though. In the debug menu the print buttons option appears twice (9 & 16). When one module has trouble loading (like calling a nonexistent function) it prevents the entire mod from working properly

Code: Select all

|4.0540596269714|LoadExternalModule cbpCamoIndex
|4.0540596269714|...teamapps\common\MGS_TPP\mod\modules\cbpCamoIndex.lua:620: attempt to call global 'getCamoTableValues' (a nil value)

|4.0540596269714|Infinite Heaven: Could not load modules from MGS_TPP\mod\. See Installation.txt
TppDefine has some error message being logged.

Code: Select all

|0.70070166392099|InfRequiresStart - start of TppDefine requires-list
|0.80914343259551|Load TppDefine.lua
|0.80914343259551|InfCore.StrCode32: WARNING: Attempting to encode a number: 982961015
|0.80914343259551|caller: /Assets/tpp/script/lib/TppDefine.lua:470 - 
|0.80914343259551|InfCore.StrCode32: WARNING: Attempting to encode a number: 2770109797
|0.80914343259551|caller: /Assets/tpp/script/lib/TppDefine.lua:470 - 
|0.80914343259551|TppDefine.lua done
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

Tex wrote:
nasanhak wrote:Sometime ago I saw an image file detailing how the inputs to Player.SetAroundCameraManualModeParams work. It showed how the camera position offsets resulted in actual in-game camera position. Can't seem to find this image again.
This: https://i.imgur.com/H52zJg0.jpg
From here:
https://forums.nexusmods.com/index.php? ... ipt/page-3
Thanks Tex! Exactly what I was looking for. I did however do a complete testing of the camera funcs anyways:

Code: Select all

Player.SetAroundCameraManualModeParams{
	offset=Vector3(-1,2,-3), --Camera offset from Snake. (X,Y,Z) --X: +ve moves horizontally left, -ve moves horizontally right. Default is negative value(-0.65 I think) --Y is height: +ve moves vertically up, -ve moves vertically down(but will never go below the floor) --Z: +ve moves horizontally up, -ve moves horizontally down  
	distance=4, --Camera distance from Snake
	focalLength=21, --Should not be zero! How much to focus in on the target point
	focusDistance=8.75, --If 0, blur is removed. Higher values set blur distance farther from the screen
	aperture = 1.6, --If 0, blur is removed. Higher values reduce blur
	targetInterpTime=.2, --Time taken for camera to acquire new pos
	targetIsPlayer=true, --Sets whether camera target is player or not
	target=Vector3(2,10,10), --When targetIsPlayer is false, the camera targets these co-ords. Diving breaks this camera as focus goes back to Snake. Can be set to Vector3(vars.playerPosX,vars.playerPosY,vars.playerPosZ)
	ignoreCollisionGameObjectName="Player", --No idea what this does
	rotationLimitMinX=10, --Lower vertical rotation, Min should ideally be -90. Lower values will rotate camera further
	rotationLimitMaxX=10, --Upper vertical rotation, Max should ideally be +90. Higher values will rotate camera further
	alphaDistance=.5, --Distance from cam Snake starts to disappear. This is not in meters unlike all other distance/offset values
},
Player.RequestToSetCameraRotation{
	rotX = 10, --Camera should rotate to this X pos(vertical). Can be set to vars.playerCameraRotation[0]. Range seems to be -90 to +90
	rotY = vars.playerCameraRotation[1], --Camera should rotate to this Y pos(horizontal). Can be set to vars.playerCameraRotation[1]. Range seems to be -90 to +90
	interpTime = 0.3 --Time taken for camera to rotate around to new pos. When set to 10, you will see a cinematic pan
},
With these exact settings, am able to do this:
https://youtu.be/pTsqkrTyk9s

It's an MGS style fixed camera with the vertical rotation removed. Horizontal can't be removed(and shouldn't be anyways). While the video isn't the best example due to the vertical terrain, the game is surprisingly playable.

The only issue being that the camera rot forces the binocs/weapon aim vertical rotation as well. Does anybody know how to influence the aiming/binocs rotation?

This failed:

Code: Select all

function this.FixCameraRot(sender, msg)
	--Nope only for TPS camera
	TUPPMLog.Log("Resetting camera rots for "..tostring(msg),3,true)
	vars.playerCameraRotation[0]=0
	vars.playerCameraRotation[1]=0
end

----Messages to fix camera angle while aiming/binocs, doesn't work without timers either
Player = {
	{
		msg="OnBinocularsMode",
		func=function() GkEventTimerManagerStart("Timer_CorrectAim", timerForCameraFix) end,
	},
	{
		msg="PlayerHoldWeapon",
		func=function() GkEventTimerManagerStart("Timer_CorrectAim", timerForCameraFix) end,
	},
	{
		msg="OnPlayerUseBoosterScope",
		func=function() GkEventTimerManagerStart("Timer_CorrectAim", timerForCameraFix) end,
	},
},
Timer={
	{
		msg="Finish",
		sender="Timer_CorrectAim",
		func=this.FixCameraRot
	},
},
EDIT:
Here's a better look with M3: https://youtu.be/VX7u2_Hl0dk
youarebritish
n00b
Posts: 13
Joined: Thu Oct 29, 2015 9:23 pm
Been thanked: 7 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by youarebritish »

I finally managed to find the htre files which I believe contain the terrain tile data. Afghanistan's is in Assets/tpp/pack/environ/stagelow/afgh/small_lod0. I tried extracting the height data from one of them (afgh_144_145) and imported it into World Machine in raw32 format:

Image

And it looks like I've hit the jackpot! I'm not sure why it came in chopped up and doubled. Is it maybe a 64-bit height format instead of 32? Hmmm. This is what the heightmap itself looks like:

Image

It looks like each tile has a corresponding fox2 file in its matching fpkd. The most pertinent information I find in that is the position of that terrain tile (for instance, that tile is at x="1472" y="0" z="1600" w="0"). Each one also has a terrain decal pack file (ftdp).

EDIT: I found that some of the tiles also have a corresponding fmdl, which appears to be the foliage and rocks on that part of the terrain:

Image

I noticed that the origin of the fmdl was way off in the middle of nowhere, so on a hunch, I imported another one into the same scene:

Image
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

MGS1 camera style, somewhat working but playable. TPS camera can't be influenced.

Code: Select all


Player.SetAroundCameraManualModeParams{
	offset=Vector3(-1,2,-3), --Camera offset from Snake. (X,Y,Z) --X: +ve moves horizontally left, -ve moves horizontally right. Default is negative value --Y is height: +ve moves vertically up, -ve moves vertically down(but will never go below the floor) --Z: +ve moves horizontally up, -ve moves horizontally down  
	distance=4, --Camera distance from Snake
	focalLength=21, --Should not be zero! How much to focus in on the target point
	focusDistance=8.75, --If 0, blur is removed. Higher values set blur distance farther from the screen
	aperture = 1.6, --If 0, blur is removed. Higher values reduce blur
	targetInterpTime=.2, --Time taken for camera to acquire new pos
	targetIsPlayer=true, --Sets whether camera target is player or not
	target=Vector3(2,10,10), --When targetIsPlayer is false, the camera targets these co-ords. Diving breaks this camera as focus goes back to Snake. Can be set to Vector3(vars.playerPosX,vars.playerPosY,vars.playerPosZ)
	ignoreCollisionGameObjectName="Player", --No idea what this does
	rotationLimitMinX=10, --Lower vertical rotation, Min should ideally be -90. Lower values will rotate camera further
	rotationLimitMaxX=10, --Upper vertical rotation, Max should ideally be +90. Higher values will rotate camera further
	alphaDistance=.5, --Distance from cam Snake starts to disappear. This is not in meters unlike all other distance/offset values
},
Player.RequestToSetCameraRotation{
	rotX = 10, --Camera should rotate to this X pos(vertical). Can be set to vars.playerCameraRotation[0]. Range seems to be -90 to +90
	rotY = vars.playerCameraRotation[1], --Camera should rotate to this Y pos(horizontal). Can be set to vars.playerCameraRotation[1]. Range seems to be -90 to +90
	interpTime = 0.3 --Time taken for camera to rotate around to new pos. When set to 10, you will see a cinematic pan
},


---Function to fix FPS aim/binocs - TPS aims can't be influenced?
function this.FixCameraRot(msg)
	Player.RequestToSetCameraRotation{
		rotX = 0, --Should be zero to level off the aim
		rotY = vars.playerCameraRotation[1], --
		--		rotY = vars.playerRotY, --A bit wonky in cover
		interpTime = 0, --Time taken for camera to rotate around to new pos. When set to 10, you will see a cinematic pan
	}
end


---Messages
Player = {
	{
		msg="OnBinocularsMode",
		func=function()
			--Do not do this if weapon is held
			if bit.band(PlayerVars.scannedButtonsDirect,PlayerPad.HOLD)==PlayerPad.HOLD then return end
			this.FixCameraRot"OnBinocularsMode"
		end,
	},
	{
		msg="PlayerHoldWeapon",
		func=function()
			this.FixCameraRot"PlayerHoldWeapon"
		end,
	},
},




Also, vars.playerCameraRotation[0] and vars.playerCameraRotation[1] hold the final values of the cam(for save file purposes I guess) and are not the actual camera rotation values. Am guessing this is true for most other 'vars' as well judging from my previous attempts at changing weapons.


EDIT:
On a different note, somebody had mentioned loading DLL files sometime back I think. Here is the error message when a Lua file fails to load via pcall(require,moduleName):
module 'TUPPMSettings' not found:
no field package.preload['TUPPMSettings']
no file '.\TUPPMSettings.lua'
no file 'C:\MyData\Games\Steam\steamapps\common\MGS_TPP\lua\TUPPMSettings.lua'
no file 'C:\MyData\Games\Steam\steamapps\common\MGS_TPP\lua\TUPPMSettings\init.lua'
no file 'C:\MyData\Games\Steam\steamapps\common\MGS_TPP\TUPPMSettings.lua'
no file 'C:\MyData\Games\Steam\steamapps\common\MGS_TPP\TUPPMSettings\init.lua'
no file '.\TUPPMSettings.dll'
no file 'C:\MyData\Games\Steam\steamapps\common\MGS_TPP\TUPPMSettings.dll'
no file 'C:\MyData\Games\Steam\steamapps\common\MGS_TPP\loadall.dll'
Does this mean it could be possible to load C/C++ code via DLL files via lua require function??
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

nasanhak wrote: On a different note, somebody had mentioned loading DLL files sometime back I think.
Theoretically, you can do it. http://lua-users.org/wiki/BindingCodeToLua
I was thinking about it, but honestly this is pointless. What will that module do?
We already have access to almost everything in Lua, why manipulate it with C?
The only thing I have in mind is advanced logging, but it still will be limited to Lua memory space (or whatever it called).
nasanhak
advanced
Posts: 71
Joined: Sat Nov 28, 2015 6:01 am
Has thanked: 10 times
Been thanked: 4 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by nasanhak »

unknown123 wrote: Theoretically, you can do it. http://lua-users.org/wiki/BindingCodeToLua
I was thinking about it, but honestly this is pointless. What will that module do?
We already have access to almost everything in Lua, why manipulate it with C?
The only thing I have in mind is advanced logging, but it still will be limited to Lua memory space (or whatever it called).
Advanced logging is exactly what I had in mind. Logging unknown Lua/C functions params and function calls using hooks. I think all of these are possible but require some coding effort. Granted the reward at this point would not be great but it may allow modders to manipulate functions that have so far been beyond our reach.

Here's a vid for the camera options I used, including the MGS1 style cam with somewhat fixed FPS camera at least:
https://youtu.be/HQJgit991fQ
CantStoptheBipBop
advanced
Posts: 53
Joined: Sat Aug 27, 2016 9:43 am
Has thanked: 7 times
Been thanked: 7 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by CantStoptheBipBop »

nasanhak wrote: MGS1 camera style, somewhat working but playable. TPS camera can't be influenced.
I haven't played with the camera settings so I wouldn't know anything about it. But I was pulling strings for vars tables and misc function names from the exe a few days ago and there are a ton of what look like camera variables under Player. I guess you could give those a try if you haven't done something similar already. The second group is the one I'm referring to. link
User avatar
Higus
advanced
Posts: 78
Joined: Sat Jun 30, 2012 5:35 am
Has thanked: 6 times
Been thanked: 5 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Higus »

I know this thread is more for research than modding, however I just want to drop this where it can be seen, so that somebody may possibly pick it up:

I started a Sword/Eli/Skulls mod with a bit of animation swaps and such, and I think it's a nice concept for a mod to be taken on, however I don't have the time/interest to see it completed, so to whoever may be interested in that, you can download the files of my draft here if you wish-
https://www.youtube.com/watch?v=-k4sXn26cQg

@nasanhak
I'm not sure if you've seen this or not, but I've done work regarding this myself if it's what you're looking into now:
https://www.youtube.com/watch?v=d3ZWM31fRl8
http://www.nexusmods.com/metalgearsolidvtpp/mods/258/?
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

I am proud to announce that I've been able to make a client emulator which is capable of communicating with konami servers.
That includes decoding and encoding messages sent from and to servers (only for COMPOUND and COMMON encryption types, haven't seen others in use yet).

http://pastebin.com/raw/PaDVkh20 - decoded steam session, removed a lot of unneeded stuff (like list of my 3500 soldiers) and censored account-related info.

Right now I am busy with making a [url - request] list to make proper requests.
Please note that I work on that only during weekends (and sometimes my weekends are really busy), so don't expect frequent updates and (especially) releases.

I am also looking for people with any console (ps3/4, xbox360/xbone) capable of setting up a proxy server with ssl decryption to capture packets between your console and konami server. Steam version has it's own auth protocol based on steam tickets; urls are also version-specific (tppstm), so I can't make requests for other platforms. This is the only reason I posted the announcement without releasing code.

My goals are:
  • Getting current nuke amount from all platforms at once (captures from other platforms are required)
  • Developing a konami server emulator so people can set up custom fob games
Bluesoju
ultra-n00b
Posts: 6
Joined: Fri Mar 26, 2010 12:25 pm
Has thanked: 1 time

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Bluesoju »

Could anyone tell me how I can extract sounds from the game? Is there a special tool I need?
I tried looking through this thread, but with over 100 pages it would take me forever. Any help would be greatly appreciated.
unknown123
advanced
Posts: 75
Joined: Sat Apr 09, 2016 5:36 pm
Has thanked: 4 times
Been thanked: 13 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by unknown123 »

Bluesoju wrote:Could anyone tell me how I can extract sounds from the game?
See https://forum.xentax.com/viewtopic.php?p=120135#p120135 and some posts onwards.
I also believe that gzstool works with .sbp files as well, although I haven't tried it myself (in terms of sound extraction).
BobDoleOwndU
advanced
Posts: 68
Joined: Thu Dec 24, 2015 7:45 am
Has thanked: 10 times
Been thanked: 10 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by BobDoleOwndU »

Bluesoju wrote:Could anyone tell me how I can extract sounds from the game? Is there a special tool I need?
I tried looking through this thread, but with over 100 pages it would take me forever. Any help would be greatly appreciated.
Ravioli Game Tools is what you need.
Post Reply