SirBadger wrote:I still can't get sf4 to read menus either and I'm pretty sure they're in English although I can't see them to verify that. I wonder if the cheep key I got was for a foreign version or something? I'd have thought it would default to what ever language your computer, or steam it's self is set for though.
Hi there,
Unfortunately I'm not sure why it's not working for you while the SF4 menus are sonified for me. If you're definitely using the Steam version of Ultra Street Fighter 4 Arcade Edition and have the version with English menus running this is a weird one.
If you get the in-game warnings about "health low", "clock 50" and so on then at least irrKlang is loading correctly and is able to play those samples. If you do NOT get those in-game prompts then the only thing I can suggest is that if you go into the bin\x86 folder of your SoniFight release and directly run the command:
SoniFight_x86.exe > log.txt
Then, with SF4 running, start the SF4 config in sonifight, give it a couple of seconds and then click the Stop Running Config in SoniFight. At this point it might error with a 'pure virtual function' pop-up box, that's okay for now - just click okay and close down SoniFight.
Finally, go and look at the log.txt file which will have been created in the same directory as the SoniFight_x86.exe binary. Towards the bottom you should find the following text that indicates the irrKlang library has started up successfully:
Sonification stopped.
irrKlang sound library version 1.5.0
Loaded plugin: ikpflac_32.dll
Loaded plugin: ikpmp3_32.dll
Using DirectSound8 driver
There will probably be a couple of repeats of the irrKlang stuff because internally we use a couple of a different SoundEngine instances for various types of samples (InGame, InMenu, Continuous etc). If that irrKlang information saying that we've recognised the library, the flac and mp3 decoder plugins and that we have a valid sound driver isn't there, then that will be the source of the problem.
If it is there, then I'm afraid I'm at a loss and can only suggest you put the following pointer chain into the Pointer Chain Tester when connected to the SSFIV process:
Then select String (UTF-16) in the Data Type dropdown and see what happens to the Value field in the chain tester app as you move up and down the SF4 main menu. If it's showing garbage instead of 33-character long snippets of English then that will be the cause and it's likely you somehow have a different version of the SSFIV executable to the one I developed the config for (like perhaps an international version).
One alternative solution for the future might be that there exists a watch which tracks the currently selected menu option with the data type double (this is watch 6 - but it's currently marked as inactive (i.e. active checkbox is unchecked) and it isn't used by any triggers). The reason this isn't being used and the 'submenu text' matching is used instead, is that the menu selection number is re-used across multiple menus, and at present I have no way to identify which menu screen the game is on.
So for example, there are 11 options on the main menu which go from 0 (Arcade) down to 10 (Quit) - but if we go into the versus menu, then those same values are re-used for different menu options (Player Vs Player, Player Vs CPU, CPU Vs CPU etc). Without a way to identify the specific menu screen we're on this will mean that SoniFight says "Arcade", "Versus" etc again as you move through that screen, even though these are not the actual menu options available. If I can find a pointer chain to a value that identifies what screen we're on then I can add in a dependent trigger which will allow each menu screen to be read out properly based on this numerical watch rather than the presently used string-based matching. And in theory, comparing against numbers will be more universal and have a better chance of working across versions of the game.
Will have a shot at it as soon as I have a chance.
Cheers.