NBA 2K23 Dynamic Perfect-Release SFX Template


 

GENERAL


  • !!!IMPORTANT!!! This is a resource for fellow modders, not a mod meant to be enjoyed on its own. !!!IMPORTANT!!!

  • This mod demonstrates a method for making perfect-release sound effects change every time they are triggered. In other words, every time you achieve a perfect shot release, you hear a different sound effect, rather than the one sound effect that you have selected in the Controller Settings menu.

  • The actual sound effects included in this mod are for demonstration only; they are simply a voice reciting a series of numbers, which allows you to hear how the effects trigger in-game. Two effect slots have been modded: (1) Catch fire and (2) Metal clank. To observe the changes, go into Controller Settings and make sure Perfect Release SFX is set to whichever one you want to hear. 'Catch fire' has 99 sound effects (the voice will go in order, first saying "1", then "2", then "3", etc., until finally getting to "99", then cycling back to "1", then "2", etc.). "Metal clank" demonstrates a shorter cycle (just "1", "2", "3", "1", "2", "3", "1", "2", etc.).

INSTALLATION


  • To install, open the attached ZIP file and drag its contents (all RESA files) into a default sfx_inside_001.iff file (which can be extracted using looyh's File Explorer), then place that sfx_inside_001.iff into your Mods folder or the equivalent.

KEY CONCEPTS


  • The contents of IFF files are not read directly by the game; rather the contents of IFF files are dumped into cache memory and are read from there. This means that, in many cases, the default IFF that contains a particular resource (for instance, global.iff containing the perfect-release flame sound effect, sfx-pr-flame_01.RESA) is not the only IFF capable of housing that resource, and if that's the case, then even if the resource has already been dumped into the cache by one IFF, it'll be overwritten if a different IFF subsequently caches a file with the same filename. In this case, the game loads sfx-pr-flame_01.RESA from global.iff upon boot up, but sfx_inside_001.iff seems to be programmed to dump all RESA files into cache memory, so if we place a different sfx-pr-flame_01.RESA in sfx_inside_001.iff, it will overwrite the one from global.iff.

  • RESA files are audio files typically found within IFF files, whereas outside of IFF files it is more common to see the WAV extension. Despite using a different extension, RESAs are standard 2K audio files. You simply use looyh's conversion tools and change the extension from WAV to RESA. Every RESA I have modded has been of the 'music' type (as opposed to 'line'), and I have had to add 1 second of silence at the beginning to have it trigger appropriately.

  • Many RESA sound effects have filenames that are appended with an underscore (_) and a number. Examples: ball-net-hard_01.RESA, ball-net-hard_02.RESA.

  • For most of these sound effects, the game is not programmed to read specific files, but rather it reads a general category and moves through the files within that category in a systematic way, starting with the _01 entry and moving one-by-one in order through the entire sequence of numbers that are available. Once it has proceeded through all of the numbers, it cycles back to _01 and repeats the sequence.

  • The game does not expect a specific number of effects within a category. So, for instance, in the default sfx_inside_001.iff, there are 9 rim-release sounds. In-game, they will trigger like rim-release_01, then 02, 03, 04, 05, 06, 07, 08, 09, 01, 02, 03, 04... etc., but if you delete 07, 08, and 09, then they will trigger like 01, 02, 03, 04, 05, 06, 01, 02, 03, 04... etc. Likewise if you add new files named rim-release_10.RESA and rim-release_11.RESA, then the effects will trigger like 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 01, 02, 03, 04... etc. In other words, the effects within each category are read dynamically. There is nothing programmed in the game that says there are 9 rim-release sounds.

  • Each perfect-release sound effect (again, found in global.iff) is its own category of sound effect, with only one entry in the category. For instance, there is sfx-pr-flame_01.RESA, but no sfx-pr-flame_02.RESA. The category sfx-pr-flame only has entry 01, but because these entries are processed dynamically by the game (as described above), if we for instance add files called sfx-pr-flame_02.RESA, sfx-pr-flame_03.RESA, and sfx-pr-flame_04.RESA, it will play like sfx-pr-flame_01, 02, 03, 04, 01, 02, 03, 04, 01, 02... etc. just like the standard on-court default sound effects in sfx_inside_001.iff.


Version: 1.0

Category:  Miscellaneous

Author: vetmin



Comments

CF ID