Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ES1983 no support #107

Open
Cortocircuitos opened this issue May 4, 2024 · 12 comments
Open

ES1983 no support #107

Cortocircuitos opened this issue May 4, 2024 · 12 comments

Comments

@Cortocircuitos
Copy link

Hello to the entire community. A query.
Is it very difficult to make the ES1983 chip work in the emulator?
I have already seen that ES1988 has been recently included, but it is not compatible with 1983 or 1983s. :(
ES1983s is installed on all Dell Latitude CP series laptops.
Thank you very much for your work.

@crazii
Copy link
Owner

crazii commented May 6, 2024

The problem is debugging and testing, I think @jiyunomegami has the 1988 card to test easily.

@AranVink
Copy link
Contributor

I have a laptop with this chip and would be happy to help, are there any guides for this?

@volkertb
Copy link
Collaborator

@AranVink Yes. 🙂 Go to release page of the version you'd like to test out, for instance 1.0beta4, scroll down to the Available files section, and then click on the arrow next to Preparing a bootable USB drive to expand the instructions on screen.

TL;DR: Go to the page of the latest release, download the .img.xz file and use a tool like balenaEtcher to write the image to a USB drive.

If the laptop you are testing is new enough to support booting from USB, and old enough to have either a legacy BIOS or a UEFI BIOS that still comes with a Compatibility Support Module (CSM), you can then just plug the USB stick into a USB port and boot it. It comes with a FreeDOS installation that loads SBEMU on boot.

Curious to hear about your findings. Good luck! 🙂

@AranVink
Copy link
Contributor

@volkertb I will give that a try somewhere this week, thanks.

I think I need to add the PCI ID's if they aren't there already. The code mentions the specific Dell model I have with this chip here: https://github.com/crazii/SBEMU/blob/main/drivers/maestro3/maestro3.c#L1286C16-L1286C17
I'm hoping it's just a matter of tying in the right PCI ID's so it's detected, and then running some tests.

For the record I have the following 2 laptops with the ESS1983 chip on which I will test:

  • Fujitsu Siemens Liteline
  • Dell Latitude C810 1000X

@AranVink
Copy link
Contributor

Did some testing this weekend, but no luck so far. The PCI ID's seem to match what's in the driver:
https://github.com/crazii/SBEMU/blob/main/mpxplay/au_cards/sc_allegro.c#L22 but still SBEMU isn't able to detect it.
This was run on my Dell Latitude C810 1000X.

I now have a debug version compiled with some custom logging (the ESS Allegro/Linux Maestro 3 drivers are not so verbose). Will give that a try next week.

@jiyunomegami
Copy link
Contributor

@AranVink
The PCI device ID should be 1998. The driver currently only detects 1988.
Try adding this line
{"Maestro-3i", 0x125D, 0x1998, 0},

@AranVink
Copy link
Contributor

Woops. Completely misread that 1988 to 1998, while looking straight at it 🙈
Compiled a new version with added PCI ID, the results:
✅ Sound card detected
✅ OPL2 music playback
❌ Digital audio playback

Unfortunately on both laptops Jill of the Jungle crashes on startup, and digital audio playback hangs the system (Supaplex). Will do some more testing at the end of this week, once I find a way to quickly transfer test binaries over. (None of my laptops support USB boot, so far now it's 💾)

@jiyunomegami
Copy link
Contributor

If OPL emulation works, digital audio should work as well.
I don't know if those games work with SBEMU.
You might want to try Descent setup, DN3D setup, or Doom.

@AranVink
Copy link
Contributor

I'll give those a try somewhere over the weekend and report back.

More of a general question in terms of way of working:
The PCI ID's for the Maestro 3i was missing in the Allegro driver, but I also see other PCI device ID's that are not there. Is this intentional? Would these be added once they are confirmed working, or were they simply forgotten in the past?

@jiyunomegami
Copy link
Contributor

My Allegro card has digital out (S/PDIF), but is not supported by the Linux driver.
I tried to add S/PDIF support but couldn't get it to work.
That is one of the reasons why I didn't put the other PCI device IDs in.
Another is that other devices may not have an MPU-401 interface, and the Linux driver doesn't support it. SBEMU does, because all SBEMU needs is the I/O address.
Now that we know that at least one other device works, it is probably OK to just add all of the other IDs.

@AranVink
Copy link
Contributor

Tested and working now on both of my laptops with this chip. SBEMU FM emulation sounds way better than the FM coming from the original ESS DOS drivers. 🎵

I've gone ahead and created a PR for this:
#123
It took me a bit longer since I noticed the microphone was enabled by default through AC97. The PR also takes care of this, muting all the inputs of the card by default.

@Torinde
Copy link
Contributor

Torinde commented Aug 28, 2024

Can you please update the README with the tested/untested models recently added?
And maybe close this issue, if it's completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants