I've spent the past several hours digging into this, and have found the real source of the problem...
AND a solution which works perfectly for me!
Mind you, this is not me doing my own coding, just doing "forensics" work.
The game "Battle for Naboo" "requires 3D acceleration," but it's really looking for a 3DFX video card. Failing to find that, it defaults to Direct3D, but to a version of Direct3D which is no longer available or supported.
Also, the sound calls used are from an older version of DirectSound, so you'll need to convert to the newer API.
Sound is easy... run the application in Windows 98 compatibility mode (you can try other modes as well, if you wish). I'm not sure which "fix" in that set is the key one for getting sound to work, but I do plan to pare down the list of fixes eventually.
Video is also easy... by "piggybacking" on the work of others. Go out and do a web search for an application called "dgVoodoo." This is what you'll use to fix the program.
What is dgVoodoo? Basically, it's a "wrapper" which pretends to be the old 3DFX "GLide" API but really just re-routes these calls to Direct3D. Fortunately, it is far more "compatible" (meaning no cheats or optimizations) than the crappy programming used in this program.
SO... the program will think it's writing GLide video calls, which will be intercepted by this and transformed into Direct3D video calls (properly formatted and structured).
There are two EXE files in "Battle for Naboo." BOTH require this emulation. So, you'll be putting a copy of dgVoodoo in the same folder as each of the two "Battle for Naboo" executables. (The first one is the menu executable, but it DOES access some video, which will cause issues, if you don't provide this as well.)
I did those two things... "compatibility mode" to fix sound, dgVoodoo to fix video, and VOILA! "Battle for Naboo" is working FLAWLESSLY on my system.
FYI, my system is an i7-based system on an Asus motherboard based on the Intel X58 chipset. My video card is an nVidia Geforce GTX295 (which is two 280 cards on a single board... so it's essentially "SLI" on a single card). My sound card is an HTOmega Claro+, which is more than sufficient for any gaming purposes, I've found, and is an audiophile-level music player. I'm running Windows XP SP3 (32-bit). I also dual-boot into XP-64 for "work."
I can't promise that this will work perfectly for Win7... but for XP, it is now running flawlessly, and I was just about to abandon my efforts. Now I don't have to. And, hopefully, neither will you guys!
EDIT: By the way, I tried setting the "launcher" applet to Win98 compatibility mode as well, but that caused issues. Basically, the program keeps calling itself from itself, if run from that mode. So ONLY set the BFN.exe file to Win98 compatibility mode, not the "battlefornaboo.exe" file (which is the one which is causing my problem right now).
A brief follow up...
I've determined the elements from the "Microsoft Application Compatibility Toolkit" which need to be set for this to work. I started off with the Windows 98 compatibility mode, and started turning bits off until I found a config which works perfectly for me... everything is very quick, and the sound is working just fine. Some of the items I turned off were slowing down graphics, so I recommend using this setup:
Add Write Permissions To Device Files
Change Authentification Level
Correct Create Event Name
Corect File Paths
Correct Sound Device Id
DirectPlay Enum Order
Emulate Create File Mapping
Emulate Create Process
Emulate Delete Object
Emulate Fine Handles
Emulate Get Command Line
Emulate Get Device Caps
Emulate Get Profile String
Emulate Missing EXE
Emulate Play Sound
EMulate Slow CPU
Emulate Ver Query Value
Emulate Write FIle
File Version Info Lie
Force CD Stop
Force Co Initialize
Force Keep Focus
Force Shell Link Resolve No UI
Handle API Exceptions
Handle Reg Expand Sz Registry Keys
Handle Wvsprintf Exceptions
Ignore Load Library
Load Library CWD
Map Memory B0000
ProfileS Env Strings
Profiles Get Folder Path
Profiles Reg Query Value Ex
Sync System And System32
I'm not saying that a few of these might not be able to be turned off, but I had no problems with them turned on, so I didn't see any reason to do so.
Hope this helps. Post a note if you find anything more.
Last edited by mimartin; 11-12-2011 at 02:03 AM.