Author Topic: Snes9x (OpenDingux)  (Read 6051 times)

virusmater (OP)

  • Posts: 55
Snes9x (OpenDingux)
« on: September 23, 2011, 03:55:38 pm »
No sound support for now
Blog

Bin
Src
UPD: dosen't support direct links  ??? , download content from blog
« Last Edit: September 23, 2011, 04:02:19 pm by virusmater »
http://dingoowiki.com - let's fill it!

ruffnutts

  • Posts: 2653
Re: Snes9x (OpenDingux)
« Reply #1 on: September 23, 2011, 05:35:48 pm »
Nice one looking forward to sound :-)

HercTNT

  • Posts: 695
Re: Snes9x (OpenDingux)
« Reply #2 on: September 24, 2011, 01:27:22 am »
I completely agree. Works great. hoping that it keeps its speed when sound is enabled. Secret of mana was baby smooth :)

virusmater (OP)

  • Posts: 55
Re: Snes9x (OpenDingux)
« Reply #3 on: January 12, 2012, 09:44:33 pm »
If anyone want improve port:
https://github.com/domaemon/snes9x-sdl
This is sdl port of snes9x
I try compile it and it runs, but image was 2x zoomed and very slow
« Last Edit: January 12, 2012, 10:05:43 pm by virusmater »
http://dingoowiki.com - let's fill it!

abhoriel

  • Posts: 188
Re: Snes9x (OpenDingux)
« Reply #4 on: January 26, 2012, 12:34:33 pm »
it was about time I stopped lurking on this forum, and about time someone got this working with sound.
i'm not too sure about its performance though (from quick testing, megaman X: 20-40fps, zelda15-30fps, secret of mana ~10fps), but games are very playable. secret of mana is not baby smooth anymore, but it reaches 20fps with transparency disabled.

http://www.mediafire.com/file/bb6ba630calb8c0/snes9x.dge

I used drowsnug95's source. it just needed to be modified to use libao instead of OSS, which also required activating threading for the sound (as ao_play() is blocking, right? i've not used libao before) , but all very trivial. I will release the source later, and i'll try using profile guided optimisation (as mentioned in  ValdikSS's inspiring picodrive release) when I get home.

ideally, we want a snes emulator that uses sdl as a backend I suppose.


Coccijoe

  • Posts: 366
    • Underground Portables
Re: Snes9x (OpenDingux)
« Reply #5 on: January 26, 2012, 12:44:27 pm »
Thanks, good work :)

pcercuei

  • Posts: 1667
    • My devblog
Re: Snes9x (OpenDingux)
« Reply #6 on: January 26, 2012, 06:12:06 pm »
I used drowsnug95's source. it just needed to be modified to use libao instead of OSS, which also required activating threading for the sound (as ao_play() is blocking, right? i've not used libao before) , but all very trivial. I will release the source later, and i'll try using profile guided optimisation (as mentioned in  ValdikSS's inspiring picodrive release) when I get home.

ao_play() is blocking yes, but so is write() (when you output samples with OSS) so you shouldn't have to activate the threading of the sound.

abhoriel

  • Posts: 188
Re: Snes9x (OpenDingux)
« Reply #7 on: January 26, 2012, 06:37:56 pm »
I know that write() is blocking, but the original source used this (rather dodgy) OSS code to avoid blocking

Code: [Select]
   
audio_buf_info info;
    if (!Settings.ThreadSound &&
            (ioctl (so.sound_fd, SNDCTL_DSP_GETOSPACE, &info) == -1 ||
             info.bytes < so.buffer_size))
    {
        //printf("%d ,%d *****\n",info.bytes,so.buffer_size);

        return (NULL);
    }

edit: libao has no equivalent, and cannot use a callback

abhoriel

  • Posts: 188
Re: Snes9x (OpenDingux)
« Reply #8 on: January 26, 2012, 10:45:53 pm »
Just a quick update, a binary which doesn't crash on exit, and with more optimisation flags (from ValdikSS's post). Also, the source I promised.

binary (with icon)
http://www.mediafire.com/?9pvisvcrqofh99x

source (from drowsnug95's)
http://www.mediafire.com/?vmr4xbnz6pmmayp

For some reason, a lot of games performed less well when I used PGO, even games that I executed whilst profiling. No idea why. Performance has improved from the use of extra optimisation flags however

The performance gain surprises me, I always thought that you get diminishing returns rapidly after -O2. Especially because the larger code will cause more cache hits, which should be a big performance problem on the dingoo.

 

Post a new topic