Dingux (Dingoo Linux) > Releases

Snes9x (OpenDingux)

<< < (2/2)

Coccijoe:
Thanks, good work :)

pcercuei:

--- Quote from: abhoriel on January 26, 2012, 12:34:33 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.

--- End quote ---

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:
I know that write() is blocking, but the original source used this (rather dodgy) OSS code to avoid blocking


--- Code: ---   
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);
    }

--- End code ---

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

abhoriel:
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.

Navigation

[0] Message Index

[*] Previous page

Go to full version