Audio in the Atari800 core

@r-type: this is what you can do to reproduce the problem.

  1. Load the core with a game.
  2. Press F1 to go to the menu. The RA menu will come up: press F1 again to stay in the Atari800 GUI.
  3. Go to “Emulation Configuration” -> “Save configuration file”. No need to make any changes, just save it.
  4. Exit the core and RA.
  5. Enter the core again and you should see a white image and nothing else.

Now, you can see these values have been added to .atari800.cfg COLOURS_NTSC_SATURATION=1.21004e-298 COLOURS_NTSC_CONTRAST=1.21004e-298 COLOURS_NTSC_BRIGHTNESS=1.21004e-298 COLOURS_NTSC_GAMMA=1.21004e-298 COLOURS_NTSC_HUE=1.21004e-298 COLOURS_NTSC_GTIA_DELAY=1.21004e-298 COLOURS_NTSC_EXTERNAL_PALETTE= COLOURS_NTSC_EXTERNAL_PALETTE_LOADED=0 COLOURS_NTSC_ADJUST_EXTERNAL_PALETTE=0 COLOURS_PAL_SATURATION=1.21004e-298 COLOURS_PAL_CONTRAST=1.21004e-298 COLOURS_PAL_BRIGHTNESS=1.21004e-298 COLOURS_PAL_GAMMA=1.21004e-298 COLOURS_PAL_HUE=1.21004e-298 COLOURS_PAL_GTIA_DELAY=1.21004e-298 COLOURS_PAL_EXTERNAL_PALETTE= COLOURS_PAL_EXTERNAL_PALETTE_LOADED=0 COLOURS_PAL_ADJUST_EXTERNAL_PALETTE=0

These values ARE the problem. Remove them totally (delete those lines), re-enter RA with the core, and image will be ok again.

[QUOTE=vanfanel;34396]@r-type: this is what you can do to reproduce the problem.

  1. Load the core with a game.
  2. Press F1 to go to the menu. The RA menu will come up: press F1 again to stay in the Atari800 GUI.
  3. Go to “Emulation Configuration” -> “Save configuration file”. No need to make any changes, just save it.
  4. Exit the core and RA.
  5. Enter the core again and you should see a white image and nothing else.

Now, you can see these values have been added to .atari800.cfg COLOURS_NTSC_SATURATION=1.21004e-298 COLOURS_NTSC_CONTRAST=1.21004e-298 COLOURS_NTSC_BRIGHTNESS=1.21004e-298 COLOURS_NTSC_GAMMA=1.21004e-298 COLOURS_NTSC_HUE=1.21004e-298 COLOURS_NTSC_GTIA_DELAY=1.21004e-298 COLOURS_NTSC_EXTERNAL_PALETTE= COLOURS_NTSC_EXTERNAL_PALETTE_LOADED=0 COLOURS_NTSC_ADJUST_EXTERNAL_PALETTE=0 COLOURS_PAL_SATURATION=1.21004e-298 COLOURS_PAL_CONTRAST=1.21004e-298 COLOURS_PAL_BRIGHTNESS=1.21004e-298 COLOURS_PAL_GAMMA=1.21004e-298 COLOURS_PAL_HUE=1.21004e-298 COLOURS_PAL_GTIA_DELAY=1.21004e-298 COLOURS_PAL_EXTERNAL_PALETTE= COLOURS_PAL_EXTERNAL_PALETTE_LOADED=0 COLOURS_PAL_ADJUST_EXTERNAL_PALETTE=0

These values ARE the problem. Remove them totally (delete those lines), re-enter RA with the core, and image will be ok again.[/QUOTE]

i have hotkey enable so F1 lead me directly to atari menu ! btw, i have change many setting (color ,palette, machine ect …) or just save configuration file like you explain , and i don’t have to behaviour. it’s definitively a bug on rpi or at least not affecting linux x64 . surely related to float value.


COLOURS_NTSC_SATURATION=0
COLOURS_NTSC_CONTRAST=0
COLOURS_NTSC_BRIGHTNESS=0
COLOURS_NTSC_GAMMA=0.3
COLOURS_NTSC_HUE=0
COLOURS_NTSC_GTIA_DELAY=26.8
COLOURS_NTSC_EXTERNAL_PALETTE=
COLOURS_NTSC_EXTERNAL_PALETTE_LOADED=0
COLOURS_NTSC_ADJUST_EXTERNAL_PALETTE=0
COLOURS_PAL_SATURATION=0
COLOURS_PAL_CONTRAST=0.08
COLOURS_PAL_BRIGHTNESS=-0.08
COLOURS_PAL_GAMMA=2.35
COLOURS_PAL_HUE=0
COLOURS_PAL_GTIA_DELAY=23.2
COLOURS_PAL_EXTERNAL_PALETTE=/vm/libretro/act/jakub.act
COLOURS_PAL_EXTERNAL_PALETTE_LOADED=1

ok just tested with a pi2 and get the same behaviour (white screen and wrong value in cfg) like you. i ll look at.

You also get no audio on the Pi2, right?

No with last commit i get sound over hdmi working fine.

@r-type: Ok, I got sound working now on the Pi. However, there’s still something very wrong with the sound. This doesn’t sound like standalone Atari800 emulator: it has far worse sound. Have you also noticed that? Compare Dropzone audio effects, for example.

yes i know, it’s sound horrible, I tried on my own many sound implementation (sync/callback/pokeysnd … ) but they all sound as bad as the current one , it’s a bit frustrating.

i don’t know why ,but i don’t give up :slight_smile:

Ok finally got sample working in Joyride :slight_smile:

was missing in config.h #define SYNCHRONIZED_SOUND 1 and setup->buffer_frames = 1024; then Sound_Callback(SBUF, 1024);

but not optimal yet

i ll push update on git soon.

Whoa! Great!! So the optimal solution is on latest github push? Or should we wait to try?

the last push on git should sound better and it now play sample , at least on my linux et my rpi2.

Could you test on your side to confirm as i only tested rpi2 with joyride . sample play but i have no idea how it should sound as official atari800 segfault on my ubuntu ;( i just watch some video and it seem ok for me , but not sure.

it not optimal yet because i force 8bit unsigned mono for pokeysnd and then upscaling to 16bit signed and copy channel 1 to channel 2 on Libretro side to have 16bit stereo . So not the best way of dealing sound ! ill look later if none make a PR.

For the pb with config file on rpi , i have no idea . so if anyone have idea …

@r-type: it still sounds more or less the same bad to me with the latest git push :frowning: You can build Atari800 standalone for the Pi, it has support for it (it lacks the video/audio synchronization of a libretro port, but it will do for comparisions on how you core should be sounding). Look at the --target==rpi configure option. It doesn’t segfault on a Pi.

[QUOTE=vanfanel;34520]@r-type: it still sounds more or less the same bad to me with the latest git push :frowning: You can build Atari800 standalone for the Pi, it has support for it (it lacks the video/audio synchronization of a libretro port, but it will do for comparisions on how you core should be sounding). Look at the --target==rpi configure option. It doesn’t segfault on a Pi.[/QUOTE]

ok this is what i get with the last push ( rec of the control demo http://www.pouet.net/prod.php?which=56481 )

http://dl.free.fr/getfile.pl?file=/upelPXXy

can you give me a reference file pointing the same demo recording with standalone ?

@r-type: Here is how that demo sounds on standalone Atari800 emulator;

It sounds the same on Libretro/RetroArch on my X86_64 desktop computer. I only have WRONG audio on the Pi. Do you see the same? I mean: bad audio only on the Pi.

Yes wrong for me too with rpi , sound only in 1 channel . desperate with this core on rpi !

@r-type: maybe it’s the same problem causing the wrong numbers generated in the COLOR_* values of the atari800.cfg file? I mean, some kind of precission problem that’s only happening on the Pi for some reason.

[QUOTE=vanfanel;34604]@r-type: maybe it’s the same problem causing the wrong numbers generated in the COLOR_* values of the atari800.cfg file? I mean, some kind of precission problem that’s only happening on the Pi for some reason.[/QUOTE]

Ok so for the bad value in cfg , was my fault i was using an old and bad libco arm with a not-8byte aligned stack. now with the last push from git , you should not have the wrongs numbers in .atari800.cfg

now for the sound i have to dig …

@r-type, yes, colors are right now :slight_smile:

@vanfanel, i’ve tried atari800 on bananapi (not having rpi2 here) and it sound if i change

retro_audio_cb(SNDBUF[x],SNDBUF[x+1]); to retro_audio_cb(SNDBUF[x],SNDBUF[x+2]);

@r-type: Whoa! It souds good at last! You seem to have discovered the problem! Also, there are audio poppings after a while. Use a “silen” game or boot to basic, and wait for a while to hear them. And could you please enable NTSC mode? Right now, it runs at PAL video frequencies even if you select NTSC mode.

[QUOTE=vanfanel;35116]@r-type: Whoa! It souds good at last! You seem to have discovered the problem! Also, there are audio poppings after a while. Use a “silen” game or boot to basic, and wait for a while to hear them. And could you please enable NTSC mode? Right now, it runs at PAL video frequencies even if you select NTSC mode.[/QUOTE]

i can’t reproduce audio popping on x86_64 , but I haven’t test yet on rpi2.

I pushed a commit to handle PAL/NTSC change , now should run fine at 60hz if you enable NTSC in atari800 UI or config. ( only tested on x86_64 )