Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Criminal Enterprises
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

*DO NOT* SHARE MEDIA OR LINKS TO LEAKED COPYRIGHTED MATERIAL. Discussion is allowed.

[REL] GTA IV Ivaud Editor Made by Vilavek


Zer0w5
 Share

Recommended Posts

I just released version 1.1.5 of GTA-IVaud, a sort of sub-version of the upcoming version 1.2. This version does NOT support the opening or replacing of compressed speech audio, or compressed multichannel audio such as music and radio stations, version 1.2 will do that. What this release does do is fix several issues which resulted in program instability, and it adds support for the showing of filenames. icon14.gif

 

* List now displays filenames

* List now displays audio length

* Removed hex offset and length from being automatically displayed

* Fixed issue which caused arithmetic and overflow errors to be displayed while opening certain ivaud files

 

It can be downloaded here -> http://vilavek.gamekage.com/gtaivaud/downl...aivaud1.1.5.zip

Link to comment
Share on other sites

 

I just released version 1.1.5 of GTA-IVaud, a sort of sub-version of the upcoming version 1.2. This version does NOT support the opening or replacing of compressed speech audio, or compressed multichannel audio such as music and radio stations, version 1.2 will do that. What this release does do is fix several issues which resulted in program instability, and it adds support for the showing of filenames.  icon14.gif

 

* List now displays filenames

* List now displays audio length

* Removed hex offset and length from being automatically displayed

* Fixed issue which caused arithmetic and overflow errors to be displayed while opening certain ivaud files

 

It can be downloaded here -> http://vilavek.gamekage.com/gtaivaud/downl...aivaud1.1.5.zip

Wow thanx for putting me in the credits really appreciate it, And way to go biggrin.gif

 

EDIT: Nice just tested but i think i may have found a bug im not sure though monocle.gif

 

When i start the new version of Ivaud-Editor and open my already modded weapons.ivaud file, When it opened i clicked on 2 different weapon sounds the uzi and pumpshotgun they both give an error mscorlib

 

But i dont have this error when i click on the wav in the older version of ivaud editor

 

 

System.ArgumentException: De bronmatrix is niet lang genoeg. Controleer srcIndex en de lengte ervan, en de ondergrenzen van de matrix.  bij System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)  bij GTA_IVaud.ivaudMono.Play(Int32 Index, Boolean bLoop)  bij GTA_IVaud.frmMain.PlaySelected()  bij GTA_IVaud.frmMain.lv_SelectedIndexChanged(Object sender, EventArgs e)  bij System.Windows.Forms.ListView.OnSelectedIndexChanged(EventArgs e)  bij System.Windows.Forms.ListView.WmReflectNotify(Message& m)  bij System.Windows.Forms.ListView.WndProc(Message& m)  bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)  bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)  bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)************** Geladen assembly's **************mscorlib   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3082 (QFE.050727-3000)   CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------GTA-IVaud Editor   Assembly-versie: 1.1.5.0   Win32-versie: 1.1.5.0   CodeBase: file:///D:/Downloads/gtaivaud1.1.5/GTA-IVaud_1.1.5.exe----------------------------------------Microsoft.VisualBasic   Assembly-versie: 8.0.0.0   Win32-versie: 8.0.50727.3053 (netfxsp.050727-3000)   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll----------------------------------------System   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3053 (netfxsp.050727-3000)   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll----------------------------------------System.Windows.Forms   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3053 (netfxsp.050727-3000)   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll----------------------------------------System.Drawing   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3053 (netfxsp.050727-3000)   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll----------------------------------------System.Runtime.Remoting   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3053 (netfxsp.050727-3000)   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll----------------------------------------System.Windows.Forms.resources   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3053 (netfxsp.050727-3000)   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_nl_b77a5c561934e089/System.Windows.Forms.resources.dll----------------------------------------mscorlib.resources   Assembly-versie: 2.0.0.0   Win32-versie: 2.0.50727.3082 (QFE.050727-3000)   CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------

 

Screenshot:

 

user posted image

Edited by zerofreeze
Link to comment
Share on other sites

Unfortunately, the way version 1.1 modified data within non-compressed ivaud files was sort of, well, incorrect in its approach. I recommend starting with a fresh copy of weapons.ivaud before you continue to mod audio. If you still have the problem then let me know and we can continue from there! =)

Link to comment
Share on other sites

Unfortunately, the way version 1.1 modified data within non-compressed ivaud files was sort of, well, incorrect in its approach. I recommend starting with a fresh copy of weapons.ivaud before you continue to mod audio. If you still have the problem then let me know and we can continue from there! =)

Yeah seems your right i tried an unmodded file and no problems with that biggrin.gif

Link to comment
Share on other sites

Thanks for reporting it! I added this to the known issues list which can be viewed by checking for updates within the program.

Link to comment
Share on other sites

Thanks for your support guys! I'm going to need all I can get if i'm going to get 1.2 released.. dozingoff.gif I am having every issue imaginable getting my ima/dvi adpcm decoder and encoder functioning, and thats after viewing several different sources of documentation and over 20 source code examples in numerous different languages.. I've worked at it for at least 6 hours a day for the past 4 days and have made zero progress on this part of the project.. suicidal.gif

 

I need detailed documentation on the ImaAdpcm or DviAdpcm format (same difference), which for whatever reason, I cannot find! All I can find is light documentation, and vague references to the format here and there on the web. For something both created in 1992 and made public domain, you'd figure there would be more than enough information out there about it... dontgetit.gif But hey, i'm stubborn, i'll get the project to 1.2 eventually! icon14.gif

Link to comment
Share on other sites

 

Thanks for your support guys! I'm going to need all I can get if i'm going to get 1.2 released..  dozingoff.gif  I am having every issue imaginable getting my ima/dvi adpcm decoder and encoder functioning, and thats after viewing several different sources of documentation and over 20 source code examples in numerous different languages..  I've worked at it for at least 6 hours a day for the past 4 days and have made zero progress on this part of the project.. suicidal.gif

 

I need detailed documentation on the ImaAdpcm or DviAdpcm format (same difference), which for whatever reason, I cannot find! All I can find is light documentation, and vague references to the format here and there on the web. For something both created in 1992 and made public domain, you'd figure there would be more than enough information out there about it...  dontgetit.gif But hey, i'm stubborn, i'll get the project to 1.2 eventually!  icon14.gif

This may be something blush.gif

 

http://en.wikipedia.org/wiki/Pulse-code_modulation

 

http://wiki.multimedia.cx/index.php?title=IMA_ADPCM

Link to comment
Share on other sites

Thanks for your support guys! I'm going to need all I can get if i'm going to get 1.2 released..   dozingoff.gif  I am having every issue imaginable getting my ima/dvi adpcm decoder and encoder functioning, and thats after viewing several different sources of documentation and over 20 source code examples in numerous different languages..  I've worked at it for at least 6 hours a day for the past 4 days and have made zero progress on this part of the project.. suicidal.gif

 

I need detailed documentation on the ImaAdpcm or DviAdpcm format (same difference), which for whatever reason, I cannot find! All I can find is light documentation, and vague references to the format here and there on the web. For something both created in 1992 and made public domain, you'd figure there would be more than enough information out there about it...  dontgetit.gif But hey, i'm stubborn, i'll get the project to 1.2 eventually!  icon14.gif

This may be something blush.gif

 

http://en.wikipedia.org/wiki/Pulse-code_modulation

 

http://wiki.multimedia.cx/index.php?title=IMA_ADPCM

Thank you for the links sir. The second link I have seen many times! I think my problem is in how I am processing the data blocks. I can't find a diagram or detailed description of how to disassemble the adpcm blocks themselves. I've looked at source code examples and followed suit, but no dice, still doesn't work. Bah.. confused.gif

Link to comment
Share on other sites

 

Thanks for your support guys! I'm going to need all I can get if i'm going to get 1.2 released..   dozingoff.gif  I am having every issue imaginable getting my ima/dvi adpcm decoder and encoder functioning, and thats after viewing several different sources of documentation and over 20 source code examples in numerous different languages..  I've worked at it for at least 6 hours a day for the past 4 days and have made zero progress on this part of the project.. suicidal.gif

 

I need detailed documentation on the ImaAdpcm or DviAdpcm format (same difference), which for whatever reason, I cannot find! All I can find is light documentation, and vague references to the format here and there on the web. For something both created in 1992 and made public domain, you'd figure there would be more than enough information out there about it...  dontgetit.gif But hey, i'm stubborn, i'll get the project to 1.2 eventually!  icon14.gif

This may be something blush.gif

 

http://en.wikipedia.org/wiki/Pulse-code_modulation

 

http://wiki.multimedia.cx/index.php?title=IMA_ADPCM

Thank you for the links sir. The second link I have seen many times! I think my problem is in how I am processing the data blocks. I can't find a diagram or detailed description of how to disassemble the adpcm blocks themselves. I've looked at source code examples and followed suit, but no dice, still doesn't work. Bah.. confused.gif

I really dont know what im doing notify.gif But im just searching for solutions to your problems

 

http://wiki.multimedia.cx/index.php?title=Microsoft_ADPCM << This may be something not sure though rolleyes.gif

 

http://www.mp3-tech.org/programmer/docs/adpcm.pdf

 

http://www.dialogic.com/products/docs/appn...lgorithm_an.pdf

 

Codetables to find and algorithm

Edited by zerofreeze
Link to comment
Share on other sites

look at the sparkiv code... i wrote the audio code (inspired by some c code from koders.com)

 

the header contains adpcm state tables:

 

 

struct adpcmState {   public short valprev;   public byte index;};

 

 

the data is organized in blocks of 2048 bytes, there is a starting state for each block (needed for seeking because it's a delta compression)

 

you have to find out where the data blocks are and decode them in the right order, each byte holds 2 16 bit samples:

 

 

// inititialize state from state table// something like this: adpcmState state = states[index]int bufferoffset = 0;while(bufferoffset < 2048){   short sample1 = DviAdpcmDecoder.DecodeAdpcm((byte)(block[bufferoffset] & 0xf), ref state));   // write sample1...   short sample2 = DviAdpcmDecoder.DecodeAdpcm((byte)((block[bufferoffset] >> 4) & 0xf), ref state));   // write sample2   bufferoffset++;}

 

 

 

   public class DviAdpcmDecoder {       #region intel/dvi adpcm decoder       public struct adpcmState {           public short valprev;           public byte index;       };       private static int[] indexTable = {           -1, -1, -1, -1, 2, 4, 6, 8,           -1, -1, -1, -1, 2, 4, 6, 8,       };       private static int[] stepsizeTable = {               7,     8,     9,    10,    11,    12,    13,    14,    16,    17,              19,    21,    23,    25,    28,    31,    34,    37,    41,    45,              50,    55,    60,    66,    73,    80,    88,    97,   107,   118,             130,   143,   157,   173,   190,   209,   230,   253,   279,   307,             337,   371,   408,   449,   494,   544,   598,   658,   724,   796,             876,   963,  1060,  1166,  1282,  1411,  1552,  1707,  1878,  2066,            2272,  2499,  2749,  3024,  3327,  3660,  4026,  4428,  4871,  5358,            5894,  6484,  7132,  7845,  8630,  9493, 10442, 11487, 12635, 13899,           15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767       };       public static short DecodeAdpcm(byte input, ref adpcmState state) {           int index = state.index;           int step = stepsizeTable[index];           int valpred = state.valprev;           int delta = input;           index += indexTable[delta];           if (index < 0) index = 0;           if (index > 88) index = 88;           bool sign = ((delta & 8) == 8);           delta = delta & 7;           int vpdiff = step >> 3;           if ((delta & 4) == 4) vpdiff += step;           if ((delta & 2) == 2) vpdiff += step >> 1;           if ((delta & 1) == 1) vpdiff += step >> 2;           if (sign) valpred -= vpdiff;           else valpred += vpdiff;           if (valpred > 32767) valpred = 32767;           else if (valpred < -32768) valpred = -32768;           state.valprev = (short)valpred;           state.index = (byte)index;           return (short)valpred;       }       #endregion      }

 

 

i think i first tried passing state without the ref but it didn't work (should work because struct is a ValueType...)

 

i repeat: look at the sparkiv code for a complete example, including name hashes, multichannel audio etc...

Edited by DerPlaya78
Link to comment
Share on other sites

Thank you very much for the code example. I've looked at SparkIV's code several times, including several other sources and for whatever reason it simply does not work, then again I've only played with it for a little while. I had to drop the project for a week or so on account of work and a job interview, but I am going to continue working on it now. I'll post when I have something new! icon14.gif

Link to comment
Share on other sites

How do i replace gunsounds with this tool? Please help I have recorded real gunsoudns and im ready to put them in the game and i WILL release the mod. I just need help with this tool and do i need spark iv first? and what do i do with that please help

Link to comment
Share on other sites

Never mind.. I figured it all out.. THanks to all responsible for this!! I will be release the real recorded gunsoudns mod shortly.. Stay tuned

Link to comment
Share on other sites

@Vilavek: you seem to be in violation of the GPL (section 6, though I'm not sure with the change in definition of 'derivative' in the GPLv3, though I think the 'translate to a different language' is included in 'requires copyright permission') now. Take a look at this screenshot from Reflector (and for fun, compare it with the SparkIV source).

 

user posted image

 

... now come on with that source code! tounge.gif

 

On a different note, could you document your findings about sounds.dat15? My current 'brute force' method doesn't exactly work. tounge.gif

Edited by NTAuthority

SsZgxdL.png

Inactive in GTA/R* title modification indefinitely pursuant to a court order obtained by TTWO. Good job acting against modding!

Link to comment
Share on other sites

...about the sounds.dat15:

 

You won't find all the filenames in this file. I found most of the stuff that's included in sparkiv's list by brute force, strings from the exe file, almost all game files, and most of the ingame dialog in xbox360 sound files (they contain the original animation names which happen to be the sounds names too)... there're a few missing in sparkiv's list (about 150 from 20000+)...

Link to comment
Share on other sites

As far as I am aware NTAuthority, I am not in violation of any GPL agreement. The hasher I created was hand-coded by myself, as the original hasher is not compatible with the VB.NET language due to inherent differences between C# and VB.NET (mainly the lack of unchecked variables). As you may have noticed I have been extremely hesitant to even look at SparkIV’s source code and incorporate it into my own work for this very reason. This is also the reason that I am coding the Ima/Dvi Adpcm decoder and encoder myself as well.

 

The screenshot you submitted shows me storing hashed values in a dictionary, is this the part you were referring to when you said I violated the GPL? If so, would you like me to redesign my application to not use dictionaries for this purpose? If so, how would you suggest I easily store 10,000+ hash values and associated filenames? With the same mentality, one would say that by using the only IMA Adpcm Decoding algorithm possible for decoding IMA Adpcm, I would be in violation of some license somewhere.

 

Version 1.1.5 was only released to give the community something to use until version 1.2 was released, something that supported filenames. I started GTA-IVaud while I had time off from work and school over the holiday season. Now that the holiday season is over and I am beginning the final semester of my college program, I am also starting a new fulltime job with a local higher-education focused technology firm. I fear I won’t have time to finish my work if I am forced to focus on minutia.

 

DerPlaya78 is correct. Through my own research into sounds.dat15 I came to the same conclusion he came to. Not all the filenames relating to audio are stored in sounds.dat15. Per your request however, I will document all my findings of sounds.dat15 and post an article on the subject, as soon as I get the time to do it, as my life does not consist solely of reverse engineering Grand Theft Auto IV’s design.

 

Link to comment
Share on other sites

While we're on the subject of credit where credit is due, oinkoink was the one responsible for my launch into sounds.dat15. If I give credit to anyone for assisting me with that portion of GTA-IVaud, it would be him. Which I believe I stated as much in the readme?

Link to comment
Share on other sites

Whoops...I was actually just reading...

...but it was an honor for me to help you out with my lil research on this issue. wink.gif

 

btw...maybe the other sound-config-files (EFFECTS.DAT11, GAME.DAT16 etc.) include the rest of the soundnames or am I totally wrong?

 

Greetz!

Link to comment
Share on other sites

You could very well be right oinkoink! I am focusing on the Adpcm decoder and encoder portion of the application at the moment, after finishing it I was going to go back to the filenames issue and see if I could resolve the missing filenames issue! smile.gif I'm thinking that it could very well be possible that not all audio streams are associated with filenames which are stored in files shipped with GTA4 (I hope not!) sad.gif

 

Thanks again for your help by the way! You saved me so much time! lol.. icon14.gif

Link to comment
Share on other sites

@vilavek: that's right (not all filenames are recoverable from the game files). As i said, the ingame dialog filenames are only in the xbox360 version, there're not used by the game anyway, that's what the hashes are for...

I spend a month collecting all the strings from all the files (I mean ALL game files) and checking for valid hashes.

Link to comment
Share on other sites

Nice, you sound like you've done more looking into the filename/hash business than I have for sure. I figured the ability to show filenames for the vast majority of files is all I needed for GTA-IVaud. I don't mind if my program can display them all or not, as long as it can display enough of them, which it finally does. People know that weapons.ivaud contains weapons related audio, so I figure if there are a few filenames missing in an ivaud, the rest can be done by ear. sigh.gif

Link to comment
Share on other sites

 

As far as I am aware NTAuthority, I am not in violation of any GPL agreement. The hasher I created was hand-coded by myself, as the original hasher is not compatible with the VB.NET language due to inherent differences between C# and VB.NET (mainly the lack of unchecked variables). As you may have noticed I have been extremely hesitant to even look at SparkIV’s source code and incorporate it into my own work for this very reason. This is also the reason that I am coding the Ima/Dvi Adpcm decoder and encoder myself as well.

I know those points, but read the next point smile.gif

 

 

The screenshot you submitted shows me storing hashed values in a dictionary, is this the part you were referring to when you said I violated the GPL? If so, would you like me to redesign my application to not use dictionaries for this purpose? If so, how would you suggest I easily store 10,000+ hash values and associated filenames?

 

 

Well, your variable names are exactly equal, and the compiled IL code would also be mostly the same. Even more so, that entire class seems almost equally named, though you used VB however. The rest of the code doesn't look that bad, however you also have (though unused) the 'DviAdpcmDecoder' class. Not that bad for a intermediate version, but I'd personally not release it when things look mostly similar -- even though I commonly rewrite code using equal variable names, and even released verbatim GPL code with the reason 'if anyone complains, they can get the source code'. tounge.gif

 

 

Version 1.1.5 was only released to give the community something to use until version 1.2 was released, something that supported filenames.

 

 

... oh well, I have been planning to rewrite some old C++ code I had lying around as well, never got to it, and in the meantime I had been hacking around on the old buggy codebase... and filenames can indeed be a great help.

 

 

DerPlaya78 is correct. Through my own research into sounds.dat15 I came to the same conclusion he came to. Not all the filenames relating to audio are stored in sounds.dat15.

 

 

Extracting just the strings from the file (to be precise, ep2_sounds.dat15) and comparing to ep2_sfx.rpf (hey, what?) did net me all filenames for the (non-radio related) files, minus most of the contents - some are stored in the sounds.dat15 files, but without exact table information I didn't find a way to extract the data.

 

 

Per your request however, I will document all my findings of sounds.dat15 and post an article on the subject, as soon as I get the time to do it, as my life does not consist solely of reverse engineering Grand Theft Auto IV’s design.

 

 

Whose life does, actually? tounge.gif

 

 

@vilavek: that's right (not all filenames are recoverable from the game files). As i said, the ingame dialog filenames are only in the xbox360 version, there're not used by the game anyway, that's what the hashes are for...

I spend a month collecting all the strings from all the files (I mean ALL game files) and checking for valid hashes.

 

 

... why would you use hashes in compiled code when you'd still need to use original filenames? SA had this issue in a similar way, there was a list of script names and their identifier, but those did absolutely not correlate to the audio files. IV's hash system is a lot more helpful in that way than the older engines were.

 

We're even lucky IV contains non-hashed names for all scripting functions, I can't imagine who would have been interested in naming all functions again for the new hash system?

SsZgxdL.png

Inactive in GTA/R* title modification indefinitely pursuant to a court order obtained by TTWO. Good job acting against modding!

Link to comment
Share on other sites

How big progress is with 1.2 version of your tool?

HHnErXC.png


Link to comment
Share on other sites

 

As far as I am aware NTAuthority, I am not in violation of any GPL agreement. The hasher I created was hand-coded by myself, as the original hasher is not compatible with the VB.NET language due to inherent differences between C# and VB.NET (mainly the lack of unchecked variables). As you may have noticed I have been extremely hesitant to even look at SparkIV’s source code and incorporate it into my own work for this very reason. This is also the reason that I am coding the Ima/Dvi Adpcm decoder and encoder myself as well.

I know those points, but read the next point smile.gif

 

 

DerPlaya78 is correct. Through my own research into sounds.dat15 I came to the same conclusion he came to. Not all the filenames relating to audio are stored in sounds.dat15.

 

 

Extracting just the strings from the file (to be precise, ep2_sounds.dat15) and comparing to ep2_sfx.rpf (hey, what?) did net me all filenames for the (non-radio related) files, minus most of the contents - some are stored in the sounds.dat15 files, but without exact table information I didn't find a way to extract the data.

 

Lol, those are the TBOGT audio configs and archives. tounge.gif

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.