irixxxx / picodrive

Fast MegaDrive/MegaCD/32X emulator
Other
55 stars 24 forks source link

dingoo a320 runs without sound #18

Closed ZOMBIE39 closed 3 years ago

ZOMBIE39 commented 3 years ago

My English is not good, so I used a translation site. I happen to have dingoo a320 in my hand. The new version was adapted to the dingoo a320, so I downloaded it and tried it out. The previous version didn't work, and the version after the fix worked but had no sound, so I came to reflect on the situation. Fix or not, thank you very much for still adapting the new version of the emulator for JZ4760.

irixxxx commented 3 years ago

Picodrive is statically linked against the opendingux libraries. Now that you say this, I seem to remember that opendingux handled sound differently than the old legacy dingux :-( Sound will probably only work on devices having opendingux installed. I shall update the release page with info about that.

ZOMBIE39 commented 3 years ago

Picodrive is statically linked against the opendingux libraries. Now that you say this, I seem to remember that opendingux handled sound differently than the old legacy dingux :-( Sound will probably only work on devices having opendingux installed. I shall update the release page with info about that.

I'm actually running it on opendingux. I can't test dingux either because I don't have the system files for dingux saved. But opendingux has a more friendly GUI and gmenu is easier to use.

irixxxx commented 3 years ago

Hmm. Seems like I should remove that device from the list. TBH I have only tested it on an rzx-50. Sorry.

irixxxx commented 3 years ago

I have rephrased the release info to be more clear about what I actually tested. Anyway, thanks for the report. I'm sorry I cannot give any real help here. I just don't have the hardware, and I have decided to support only hardware I have myself.

ZOMBIE39 commented 3 years ago

I have rephrased the release info to be more clear about what I actually tested. Anyway, thanks for the report. I'm sorry I cannot give any real help here. I just don't have the hardware, and I have decided to support only hardware I have myself.

I'm glad you remembered this ancient device, and the fact that someone can still adapt a new emulator for this obsolete hardware many years later is surprising enough in itself, thank you anyway.

irixxxx commented 3 years ago

Acording to this opendingux switched from oss to alsa, and that was changed in SDL too. Loading shared libs is very sensitive to versions in uClibc, which is why I linked picodrive statically against the 2012 opendingux version. I suspect it's possible that the earlier opendingux on a320 still uses oss, which would explain why the newer SDL linked into picodrive isn't working. Without the hardware I can't verify this, though.

ZOMBIE39 commented 3 years ago

Acording to this opendingux switched from oss to alsa, and that was changed in SDL too. Loading shared libs is very sensitive to versions in uClibc, which is why I linked picodrive statically against the 2012 opendingux version. I suspect it's possible that the earlier opendingux on a320 still uses oss, which would explain why the newer SDL linked into picodrive isn't working. Without the hardware I can't verify this, though.

You can upload the improved emulator and I'll test it.

ZOMBIE39 commented 3 years ago

I actually saw a post about an optimized version of picodrive 1.35 for the A320, after someone uploaded versions 1.91 and 1.93 of picodrive, and only after a little searching did I find that someone had taken over the picodrive for a subsequent update. I have tested both version 1.91 and 1.93 and found no problems. I'd love to help you find the source code, but in that post both 1.91 and 1.93 had only the files and no source code. 1.93 was uploaded on April 13, 2020, so I think he didn't find that you took over the subsequent updates of picodrive when he compiled it, so he didn't use your updated version.

irixxxx commented 3 years ago

I could send you a binary... if I at least have an idea how to mend this., Well, ATM I haven't. I don't know which audio is really needed.

ZOMBIE39 commented 3 years ago

I remembered that the dingux version of snes9xd was running without sound under opendingux, and here is a related posting that I hope will help you. Because my A320 was changed to an IPS screen, I was not able to keep a backup of the IPS screen driver for the dingux system, so I had to test the opendingux system. Snes9xd has a special opendingux version to have sound, so I guess the current picodrive should have sound on the dingux system. https://boards.dingoonity.org/dingux-releases/snes9x-od-(opendingux)-with-sound/

irixxxx commented 3 years ago

Here's a dynamically linked version. I have doubts it'll work considering uClibc's deficiencies in handling shared libs having different versions, but you might give it a try anyway: PicoDrive-dge.zip

ZOMBIE39 commented 3 years ago

Here's a dynamically linked version. I have doubts it'll work considering uClibc's deficiencies in handling shared libs having different versions, but you might give it a try anyway: PicoDrive-dge.zip

Very good, there is sound, I'm so happy. Then after I compared version 1.93 and 1.35, I found that the sound is a little bit smaller. If you can, I hope you can adjust the volume, because the volume shortcut of the emulator is not effective. If you want to release it, you can release both dingux and opendingux versions of A320 separately, because many other emulators under both systems of A320 are also not common to each other.

irixxxx commented 3 years ago

I reduced the sound level by about 1/4 before mixing the different sound sources. I did this to reduce clipping which occurred before, leading to slightly distorted sound in louder titles. So, yes, it's not as loud as before. It might be possible to change the volume selection in the driver, though. Unless I get more complaints about that I'm putting it on the back burner since I have the impression other things on my todo list are more important.

I'm not going to do a release for platforms I have no hardware for. So, no official release for dingoo devices, unless someone donates one. I'm going to test the shared version on the rzx-50 and replace the release version if it works, though.

Besides I'm rather reluctant to create more versions. They must all be tested before release, and that is already taking up quite some time for the 6 handhelds, plus desktop linux on i386, x86, and aarch64. More would only work if there would be more release testers around.

ZOMBIE39 commented 3 years ago

In China used A320 is very cheap, but send abroad should be enough postage to buy two more units. Personal energy is limited and understandable, and the A320 no longer has the value of use, but still appreciate that you can spend their time to study for an obsolete and does not have the practical significance of the device. The difference between rzx-50 and a320 should only be in the sound driver, of course I'm guessing, after all I'm not sure if rzx-50 is running on top of dingux or opendingux, but as long as you're still releasing the rzx-50 version of picodrive, I'll still use the A320 to test it out. I still know for the first time that there is JZ4755 open source handheld, China's current mainstream or Allwinner F500S, JZ4760, JZ4770, X1830, RK3326 of various shell replacement machines. By the way, I suggest you change the name of the included icon file to PicoDrive.png, so that others don't have to set the icon path or rename the file name again after adding it.

irixxxx commented 3 years ago

changed old opendingux linking to dynamic. Let's see if this holds for the next release.