VOGONS


ZSNES sound problem (AC97)

Topic actions

First post, by Demolition-Man

User metadata
Rank Member
Rank
Member

Hi,
In my opinion, ZSNES is the best Super Nintendo emulator on DOS, with the right hardware (SB16 for example). I only noticed when testing several PCs that it doesn't work with AC97 sound (on Win98). No matter what you set, the sound is always massively distorted in places. Is there a bug fix or a special version for it?

ZSNES has high requirements that are actually too extreme for DOS. But it would be great if this would also work on the faster PCs with AC97 here , on Win98.I know there are other emulators for Windows 98, but ZSNES is my favourite.

Do you have any ideas about this? Thanks and regards.

Reply 5 of 24, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Demolition-Man wrote on 2023-04-19, 17:37:

ZSNES has high requirements that are actually too extreme for DOS.

I recall smoothness on Cyrix6x86MX with that. It's the fastest SNES emulator.

If you want extreme, try emulating DS games with DOS builds of NO$GBA

apsosig.png
long live PCem

Reply 6 of 24, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Demolition-Man wrote on 2023-04-19, 17:37:

ZSNES has high requirements that are actually too extreme for DOS. But it would be great if this would also work on the faster PCs with AC97 here , on Win98.I know there are other emulators for Windows 98, but ZSNES is my favourite.

Nah, it's fine. 🙂 A humble Pentium III at 733 MHz hasn't the slightest issue running it, as far as I can remember.
That's what we had at home in 2000, when Windows 98SE and ZSNES were still current.
Just because a software is targeting DOS as a platform doesn't (didn't) mean it's retro or lightweight. It was just a port, with similar requirements to the original.

Back in early 2000s, the arcade scene ran lots of upto-date emulators on DOS.
A DOS machine with a VGA card could be much better interfaced with existing arcade cabinets.

Using DOS based utilities, VGA could directly drive those 15KHz CRT screens (at game's native resolution) in the arcade cabs.
Also, DOS had much lower latency. No nasty pop-ups etc.
It was very easy to use as an embedded hardware platform.
ROM-DOS and other DOSes ran on modern embedded hardware of the time, too.

Similarly, the QBasic and QuickBasic scene was very active in the early-mid 2000s.
Lots of projects were being underway.
And they were not exactly made with a slow 4,77 MHz PC w/ CGA in mind.
This was before DOS was considered retro, I remember.
Rather, DirectX and Super VGA/VESA was what was being worked with.

Late DOS games using Allegro library required close to/more than 16 MB of RAM, sometimes.
A Sonic fan game I remember from 2004 or so needed 64 MB to run best, if memory serves me well.

All in all, DOS wasn't dead as a platform, aslong as Windows 98SE/Me was around.
From a temporal view, I mean. They weren't directly dependent of each other.
Some people used DOS 7 as stand-alone OS on their free will, without installing Windows 98 and using 2k/XP instead.

Or in other words, I mean to say that developers saw DOS both as an alternative to Windows and as an alternate mode of Windows, with more control over hardware.

Edit: Edited.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 7 of 24, by Demolition-Man

User metadata
Rank Member
Rank
Member

If you want extreme, try emulating DS games with DOS builds of NO$GBA

Do you have a link for me there, just for fun and interest?^^

Nah, it's fine. 🙂 A humble Pentium III at 733 MHz hasn't the slightest issue running it, as far as I can remember.

Not exactly a typical DOS pc. ZSNES runs fine on my K6-III 400 with RIVA 128 and CT2230. But a 166MMX (upgraded from 120) ist still a bit to slow.

And thanks for the detailed information!

Do you have another recommendation for a SNES emulator on Windows 98 that works with the AC97 sound? The emulators thread here is pretty old, do you have a list of current emulators for Nintendo (GB,NES, SNES) under DOS/Win98? Thanks!

Reply 8 of 24, by digger

User metadata
Rank Oldbie
Rank
Oldbie

It appears that you have two options here:

  1. Run the Windows or Linux version of ZSNES, both of which you should be able to run on any post-ISA system.
  2. Add support for ICHx AC'97, Intel HDA and other common modern audio devices to the DOS version of ZSNES. Or convince someone else to do so, if you lack the time and/or skill for it. ZSNES is, after all, an open-source project. 🙂

Reply 10 of 24, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Demolition-Man wrote on 2023-04-20, 08:49:

Nah, it's fine. 🙂 A humble Pentium III at 733 MHz hasn't the slightest issue running it, as far as I can remember.

Not exactly a typical DOS pc. ZSNES runs fine on my K6-III 400 with RIVA 128 and CT2230. But a 166MMX (upgraded from 120) ist still a bit to slow.

And thanks for the detailed information.

You're welcome. The on-board sound on that Pentium III mainboard was SB16 compatible.
There was an option to enable SB16 mode in CMOS Setup Utility, for DOS compatibility.

The Pentium III platform was the upper limit for DOS compatibility at the time.
Mainly because Windows 98SE (DOS-based) was still the leading Windows version at the time.

I'm not entirely sure, but I think the on-board chip might have been a SoundMAX or similar soundchip.
The Pentium III PC we had was among the fastest thing available in 2000.
Edit: My father was a developer at the time, that's why it was a bit overkill, maybe.
The previous PC was quite outdated, so he insisted on a proper upgrade this time.

Merely the graphics card wasn't the highest-end, I suppose. It was an nvidia card (AGP), not sure which model. 🤷‍♂️

My own hardware was closer to your retro hardware.
Pentium 75 to 166 MMX range, up to 64MB RAM.
My main PC in late '99 was a 286-12, still, with 4MB RAM, PAS16 soundcard and SCSI CD-ROM drive,
a Mustek handy scanner, Genius mouse, Laserjet printer, Creatix modem, DCF-77 radio-clock receiver etc.
A typical DOS PC, so to say. ;)

That was a fascinating time, switching from a 12 MHz 286 to a 733 MHz Pentium III and back, with both being capable of running same software (DOS, Windows 3.1x applications).

Edit: Not sure if it's helpful, but here's some information about older ZSNES releases:

https://www.reddit.com/r/emulation/comments/z … a_early_90s_pc/

Older releases w/ Windows front-end can be found here.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 11 of 24, by Demolition-Man

User metadata
Rank Member
Rank
Member

Hi, and thanks, unfortunately I don't have the time or the language skills, otherwise I'd like to chat a bit about all my old retro PCs.

But back to the problem and a question for you. I actually managed to get an external USB sound card (on the t5710 Thin client) working under Windows 98, which is really great. The problem with the sound output of ZSNES 1.51 (regardless of whether it is DOS or Windows version) is still there. Either the USB sound chip is also based on AC97,or there is another problem or incompatibility. What do you say to that?

Almost forgot. I found an emulator that works reasonably well. JNES 026, just NES but better than nothing.

Reply 12 of 24, by elszgensa

User metadata
Rank Member
Rank
Member

To rule out some more obvious things: Did you try multiple games, and/or ran the same game on the same version of ZSNES on a different PC (i.e. one with a different sound card)? Just to make sure it's not just an emulation bug with a single title. Pick a few well supported ones (not sure which ones that would be for such an old emulator, but uuuh the Mario games (except Mario RPG with it's SA-1 chip) are always a good bet I guess).

Tried setting ZSNES to output different sample rates? Might be a conversion issue. Does the distortion sound the same with all settings?

Reply 13 of 24, by Jo22

User metadata
Rank l33t++
Rank
l33t++

^Good idea. I'd recommend F-Zero for testing, too.
It uses stock Mode 7 graphics, no external DSP/Mapper etc.

Edit: I think if we knew the specs of the PCs, we could make better recommendations.
Personally, I ran SNES9x successfully back in the day on a Pentium 166 MMX w/ 64 MB and on-board VGA.

But on Windows XP, because Windows 98SE was exactly my problem at the time. The majority of emulators I used didn't like it.
Once I installed Windows XP, everything just worked. That convinced me to leave 98SE behind.

Edit: I thought about the sound problem.
If sound makes trouble on ZSNES/Windows, maybe the AC97 soundcard drivers for 98 don't support DirectSound?
Or maybe, it's a mixing problem (multiple audio streams being active)?
I recall that Win98SE was in its infancy here. No proper Kernal Mixer, etc.
Changing the driver type from VXD to WDM might solve this, at the cost of worse DOS compatibility (no Sound Blaster emulation).

Sampling rates might also be a problem, which can be solved from within ZSNES or via its config file.
Changing the sample rate to 22050 or 44100 Hz might satisfy the soundcard/ its driver.
Or, if the sound card supports it, disable re-sampling and use the native sampling rate of the SPC700, 32000Hz.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 14 of 24, by Demolition-Man

User metadata
Rank Member
Rank
Member

Tried it on my three pure Win 98 PCs:

1. HP Thin CLient t5710
2. Duron 900/MS-6340/Geforce 2 MX400
3. XP 2400+/Asrock K7VM2 Rev 3.01/FX5900 XT

All with variants of AC97 onboard sound, and the same issues.

And yes, sound problems with all games (more or less).

tried setting ZSNES to output different sample rates?

Yes, but no effect.

^Good idea. I'd recommend F-Zero for testing, too.

Slightly less distorted than Donkey Kong Country for example, but still.

SNES9x

Cant get it to work. I dont know why. It needs DX 9.0c, np,two of the three maschines have it, but the emulator is refusing to open roms/ the rom directory.
Not cool...

Edit: I thought about the sound problem. If sound makes trouble on ZSNES/Windows, maybe the AC97 soundcard drivers for 98 don't […]
Show full quote

Edit: I thought about the sound problem.
If sound makes trouble on ZSNES/Windows, maybe the AC97 soundcard drivers for 98 don't support DirectSound?
Or maybe, it's a mixing problem (multiple audio streams being active)?
I recall that Win98SE was in its infancy here. No proper Kernal Mixer, etc.
Changing the driver type from VXD to WDM might solve this, at the cost of worse DOS compatibility (no Sound Blaster emulation).

Yes, some of that will at least be involved in the problem.

It's a pity that it just doesn't work with the ThinClient. That would be best suited as a portable SNES/DOS/Win98 solution. So only the two Super Socket 7 PCs are really suitable for everything. I don't want to complain, I'm just surprised that with the widespread use of the AC97 sound solutions at the time, no one noticed that the most popular(?) SNES emulator didn't work properly with it.

Edit: A combination of 320x240 VESA2, frameskip 1 ,and 8000 Hz Sound works. The quality sounds terrible, but at least it doesn't sound like it's electrically disturbed.

Reply 15 of 24, by spiroyster

User metadata
Rank Oldbie
Rank
Oldbie

Have you tried different versions of zsnes?

I had no problems running zsnes on P233MMX back in the day. I probably had a dedicated sound card though. Many a moon ago, I had to roll different versions of WinUAE to work correctly on a crappy Intel Atom machine as later versions seems to break sound completely (circa 2012 version worked, later didn't).

Reply 16 of 24, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Demolition-Man wrote on 2023-04-22, 05:48:

SNES9x

Cant get it to work. I dont know why. It needs DX 9.0c, np,two of the three maschines have it, but the emulator is refusing to open roms/ the rom directory.
Not cool...

I used it in 2001-2003 time frame on Windows XP SP0/SP1/SP1a, which had DirectX Runtime 8.1 installed.
So you need to find an old version of SNES9X from that era, of course. Please try v1.40 of 2003: https://www.lysator.liu.se/snes9x/
My Pentium 166 MMX PC's on-board graphics didn't support Direct 3D, at all. It was comparable to an S3 Trio32/64.

Good luck! 😀 🤞

Edit: I've checked the readme of v1.40.. Good news, it might work.
Note that while my Pentium 166 had a slower clockrate, it also had MMX.

"What You Will Need
==================

Windows 95, 98, NT, ME, 2K, or XP with at least DirectX 6 and OpenGL installed running on
a modern, fast (e.g. Pentium 200 or higher) computer with at least 32Mb of
RAM. Some games require another CPU to be emulated and/or make heavy use of
colour translucency effects, so an even faster computer may be required to
get an acceptable frame rate."

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 17 of 24, by Demolition-Man

User metadata
Rank Member
Rank
Member

Thanks a lot for this. Version 1.40 actually starts. Man, that's really a bit mean. It almost works. Have 640x480 16 bit on. (the smaller resolutions cause a few other problems) With the framerate limit the games run smooth as butter, but the audio is a bit too slow. Conversely, the game (video) stutters a bit, but the sound is okay. In this case, maybe the weird CPU in the thin client is just too slow. I'll test all the options later and test the emulator on the faster Duron PC. Anyway, thanks again, we're almost there. 😁

Edit: Ok still on the t5710. It works, finally! For the record: Display Settings: Full Screen /Stretch Image. 640x480x16 (Enable Double Buffering) Output Image Processing: OpenlGL bi-linear
Automatic Frame Skipping: ON User Framerate Limiter: OFF ON

Sound: Everthing standard (32 kHz)

Great, now I have to look around for a Windows 98 compatible USB gamepad. 😀

Edit2: My old Logitech F310 is working fine under Win98. All you have to do is flip the small switch on the back of the gamepad from X to D. There is a thread about this somewhere in the forum. My recommendation.
There is still a small problem. The SNES9X emulator has problems with gamepad diagonal movement. Separate keys must be set for this. Luckily I have a cheap pad that can do that.

Reply 18 of 24, by Kahenraz

User metadata
Rank l33t
Rank
l33t
Demolition-Man wrote on 2023-04-23, 10:24:

Great, now I have to look around for a Windows 98 compatible USB gamepad. 😀

I found that several of the generic Chinese USB controllers work fine in Windows 98. I tested this with an NES and Playstation controller. The cheap SNES ones will probably work fine as well. Just make sure that you install the unofficial USB patch for Windows 98 first.

Reply 19 of 24, by Demolition-Man

User metadata
Rank Member
Rank
Member

Yes, the cheap USB gamepad with the separate directional buttons works. When testing the SNES9X emulator on another PC with gameprt, a normal D-Pad also worked.
But SNES9x 1.40 is not a universal solution either. On my Duron 900 Geforce 2MX400 PC, the emulator works like on the thin client with OpenGL.
But there are problems on my K6-III 400 with RIVA 128/Voodoo 2. OpenGL doesn't work, 3dfx does. Crazy to see a SNES emulator with 3dfx acceleration. Unfortunately, the sound is too slow there again. But on this PC ZNES 1.51 works without any problems, the only problem (USB doesn't really work there) finding a driver for the gamepad (game port) I was able to solve with the help of a 6 button Saitek driver.