Jump to content
IGNORED

Atari 2600+ Beta Update 1.1


Ben from Plaion

Recommended Posts

1 hour ago, chad5200 said:

Based on our comparisons of California Games, Keystone Kapers, and Kangaroo, I've come to the conclusion that you have the "slow" 2600+ version and I have the "fast" 2600+ version.

I'm sure this isn't it, but just thinking out loud...

Is everyone using the the same power adapter to power the unit?

 

I just know that with some of my Raspberry Pis, if my PSU isn't quite up to the task, it can slow down the CPU to cope...

  • Like 3
Link to comment
Share on other sites

12 minutes ago, Thomas Jentzsch said:

Phosphor will only reduce the effects of the problem but not fix it. There are frames skipped, this must be fixed.

we already saw on this video, that it was so much improved enabling the phosphor, I think the phosphor on retroarch is not the same as in plain stella, I think here is more an emulation thing, because if it were just visual like in stella, we'll see ghosting on the image

 

we can test if this works with PAL games on 1125 build untill we have a solution for the frames that are beening ommited

 

Link to comment
Share on other sites

24 minutes ago, desiv said:

Is everyone using the the same power adapter to power the unit?

I am curious as to power supply/SOC frequency being a factor here.  Unfortunately this is going to need to be checked at a terminal level which is going to rule out most people being candidates to take a look.

  • Like 1
Link to comment
Share on other sites

Does Stella automatically enable the phosphor effect for specific titles like the way it does with the Joystick for Indy 500?  I'm wondering if the people running into audio issues and/or missing sprites have an unrecognized cartridge variant.  (I kind of doubt it though given how those affected are experiencing issues with multiple titles.  It does sound like a hardware or power issue.)

Link to comment
Share on other sites

On 12/29/2023 at 3:55 PM, captcapcom said:

Bummed that Popeye wasn’t working. It’s pretty amazing, I’m guessing it’s some kind of super wonder chip set that just can’t be emulated? 

Popeye 2600 (NTSC) 1.1 beta works on mine. Try cleaning it a few times. Some carts that wouldn’t load for me I thought were clean after cleaning they worked.

Edited by MrChickenz
Link to comment
Share on other sites

21 minutes ago, KainXavier said:

Does Stella automatically enable the phosphor effect for specific titles like the way it does with the Joystick for Indy 500?  I'm wondering if the people running into audio issues and/or missing sprites have an unrecognized cartridge variant.  (I kind of doubt it though given how those affected are experiencing issues with multiple titles.  It does sound like a hardware or power issue.)

In any case, if phosphor is enabled, the flickering will be mitigated in all games equally, and I also believe that the autodetect function is exclusive for Stella and is not present in Retroarch

Link to comment
Share on other sites

43 minutes ago, KainXavier said:

Does Stella automatically enable the phosphor effect for specific titles like the way it does with the Joystick for Indy 500?  I'm wondering if the people running into audio issues and/or missing sprites have an unrecognized cartridge variant.  (I kind of doubt it though given how those affected are experiencing issues with multiple titles.  It does sound like a hardware or power issue.)

No it hasn't been enabled. We are trying it though.

  • Like 1
Link to comment
Share on other sites

OK, I have spent a bit of my time with my 2600+ opened up and have a few things the share.

 

The CPU clocks between 216MHz and 1.2GHz and is driven by the "interactive" governor, so it may not be running at 1.2GHz all of the time. It should scale up during emulation, though. The GPU clocks between 200MHz and 480MHz and is driven by the "simple_ondemand" governor. On my device it usually sits around 200MHz and reports 30% utilisation max. It uses the proprietary ARM Mali driver, just like the R77. Unfortunately, I could not find the DRAM clock, neither in Linux, nor in uboot.

 

I copied over several ROMs over the serial line and ran them while observing CPU usage with top. There are multiple threads, one of which is obviously running the emulation. CPU usage of the emulation thread is high for most games (all percentages refer to a single core):

  • Demon Attack (NTSC) uses about 69%
  • Cosmic Ark (NTSC) is 95% (!) --- the starfield effect is expensive
  • California Games (NTSC) uses 96% on the title screen
  • Kylearan's Ascend demo (PAL) uses between 75% and 90%
  • H.E.R.O. (NTSC) is about 93%
  • Stay Frosty 2 (NTSC, DPC+ with ARM code) uses 97% CPU, but still seems smooth
  • Mappy (NTSC, CDF with ARM) blows the core with 99%, stutters and skips frames (just like Kangaroo and other games in the videos shared by others on this thread)
  • Scramble (NTSC with ARM) blows the core with 99%, stutters and skips
  • RoboMechanik (NTSC) runs around 93% - 95% and does not maintain a stable display --- there is occasional frame skip, and sometime only every other frame is displayed for a second or so

All of these games use significantly more CPU as plain Stella 6 on the R77. We didn't recheck the exact numbers in top, but @Thomas Jentzsch and I did a few estimates based on Stella's speed display, and we're talking about a factor of about two. The CPUs of both devices are very similar, but Stella 6 on the R77 is highly optimised --- it is compiled with PGO (profile guided optimisation), and it uses a few unsafe shortcuts in ARM mode. Iirc PGO gave some 30% for demanding ARM games, so the difference is probably a combination of missing optimisation and differences in the way RetroArch handles the main loop.

 

To wrap up, from what I have seen I am now pretty sure that 1. this is a CPU issue and 2. some 2600+ run slower than others. I have seen the same frame skipping issues others have reported when CPU utilisation is close to 100% (or the core is maxed out). Many games use >90% of one core, and if some devices are slower than others that would explain the issues.

 

I don't know what the difference is between the consoles though (they all run the same software), but my best guess is DRAM. Unfortunately I have no good idea how to find out the DRAM clock. I think it would be worthwhile to open a few affected consoles and compare the DRAM chips (it's the smaller chip next to the Rockchip CPU). Mine is a Hynix H5TQ2G63GFR-RDC.

 

And now for a few pictures: 😏

 

IMG_2899.thumb.jpeg.2a8d2a0267aa8d6a919ae531ce42e093.jpeg

IMG_2896.thumb.jpeg.0c81c908cce172151be4b6fd01f85bd5.jpeg

IMG_2898.thumb.jpeg.bdf6af5c595714d56b983024ac00985b.jpeg

 

Edited by DirtyHairy
  • Like 11
  • Thanks 2
Link to comment
Share on other sites

If anyone cares to look, you can find the CPU and GPU clock values used by the scaling governors by doing "cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies" and "cat /sys/devices/platform/10091000.gpu/devfreq/10091000.gpu/available_frequencies" (after opening a terminal over the serial connection). I doubt that this differs between devices, though.

 

If you want to copy run your own ROMs over the serial line you first have to stop the dumper service ("killall S50Launcher") and any running instance of RA ("killall retroarch") and dmenu ("killall -9 dmenu.bin"). You will be transferring the ROM files over the serial line with the terminal attached, so you have to base64 encode them ("cat myrom.bin | gzip | base64 -b 64 > myrom.gz.b64") before sending. The "-b 64" is important as too long lines will mess up the transfer, and gzipping speeds things up. There are many ways to transfer the encoded file, but this one uses picocom as a terminal and is mine 😏:

  • Make sure that "ascii-xfr" is installed (i.e. as part of minicom) and specify it as the program for sending data when launching picocom by adding "--send-cmd 'ascii-xfr -snv'" to the command line
  • On the serial terminal, do "dd if=/dev/stdin of=/tmp/myrom.gz.b64 bs=1" to start receiving data
  • Press ctrl-a-s and give picocom the path to the encoded file
  • Wait for the transfer to complete. It is complete when picocom stops echoing the base64 encoded data.
  • Press ctrl-c to stop dd
  • Extract the transferred file by doing something like "base64 -d /tmp/myrom.gz.b64 | gunzip > /tmp/myrom.bin"

You can now run retroarch with "/oem/vendor/bin/retroarch -c /tmp/retroarch.cfg -L /oem/retroarch/cores/stella_libretro.so /tmp/myrom.bin &". In order to see CPU utilization run "top", press "H" to show threads and press "R" twice to sort by CPU usage.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

17 minutes ago, DirtyHairy said:

OK, I have spent a bit of my time with my 2600+ opened up and have a few things the share.

 

The CPU clocks between 216MHz and 1.2GHz and is driven by the "interactive" governor, so it may not be running at 1.2GHz all of the time. It should scale up during emulation, though. The GPU clocks between 200MHz and 80MHz and is driven by the "simple_ondemand" governor. On my device it usually sits around 200MHz and reports 30% utilisation max. It uses the proprietary ARM Mali driver, just like the R77. Unfortunately, I could not find the DRAM clock, neither in Linux, nor in uboot.

 

I copied over several ROMs over the serial line and ran them while observing CPU usage with top. There are two threads, one of which is obviously running the emulation. CPU usage of the emulation thread is high for most games (all percentages refer to a single core):

  • Demon Attack (NTSC) uses about 69%
  • Cosmic Ark (NTSC) is 95% (!) --- the starfield effect is expensive
  • California Games (NTSC) uses 96% on the title screen
  • Kylearan's Ascend demo (PAL) uses between 75% and 90%
  • H.E.R.O. (NTSC) is about 93%
  • Stay Frosty 2 (NTSC, DPC+ with ARM code) uses 97% CPU, but still seems smooth
  • Mappy (NTSC, CDF with ARM) blows the core with 99%,and stutters and skips frames (just like Kangaroo and other games in the videos shared by others on this thread)
  • Scramble (NTSC with ARM) blows the core with 99%, stutters and skips
  • RoboMechanik (NTSC) runs around 93% - 95% and does not maintain a stable display --- there is occasional frame skip, and sometime only every frame is displayed for a second or so

All of these games use significantly more CPU as plain Stella 6 on the R77. We didn't recheck the exact numbers in top, but @Thomas Jentzsch and I did a few estimates based on Stella's speed display, and we're talking about a factor of about two. The CPUs of both devices are very similar, but Stella 6 on the R77 is highly optimised --- it is compiled with PGO (profile guided optimisation), and it uses a few unsafe shortcuts in ARM mode. Iirc PGO gave some 30% for demanding ARM games, so the difference is probably a combination of missing optimisation and differences in the way RetroArch handles the main loop.

 

To wrap up, from what I have seen I am now pretty sure that 1. this is a CPU issue and 2. some 2600+ run slower than others. I have seen the same frame skipping issues others have reported when CPU utilisation is close to 100% (or the core is maxed out). Many games use >90% of one core, and if some devices are slower than others that would explain the issues.

 

I don't know what the difference is between the consoles though (they all run the same software), but my best guess is DRAM. Unfortunately I have no good idea how to find out the DRAM clock. I think it would be worthwhile to open a few affected consoles and compare the DRAM chips (it's the smaller chip next to the Rockchip CPU). Mine is a Hynix H5TQ2G63GFR-RDC.

 

And now for a few pictures: 😏

 

IMG_2899.thumb.jpeg.2a8d2a0267aa8d6a919ae531ce42e093.jpeg

IMG_2896.thumb.jpeg.0c81c908cce172151be4b6fd01f85bd5.jpeg

IMG_2898.thumb.jpeg.bdf6af5c595714d56b983024ac00985b.jpeg

 

I have a load of 2600+ machines at the office and I can open them up an check which ram chips were used, perhaps from there I can test a few games and see if I can replicate.

  • Like 4
Link to comment
Share on other sites

5 minutes ago, Ben from Plaion said:

I have a load of 2600+ machines at the office and I can open them up an check which ram chips were used, perhaps from there I can test a few games and see if I can replicate.

Judging from the CPU usage and from a video posted earlier on this thread (I think on the previous page) California Games might be a good candidate for testing --- the video has it stuttering audibly, and it uses 96% CPU on my device, so not far from the magical 100% margin 😏

Edited by DirtyHairy
  • Like 1
Link to comment
Share on other sites

4 minutes ago, DirtyHairy said:

Judging from the CPU usage and from a video posted earlier on this thread (I think on the previous page) California Games might be a good candidate for testing --- the video has it stuttering audibly, and it uses 96% CPU on my device, so not far from the magical 100% margin 😏

96% means that the average over multiple frames is 96%, right? So some frames might require over 100%, which then causes skipping.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

4 minutes ago, DirtyHairy said:

Judging from the CPU usage and from a video posted earlier on this thread (I think on the previous page) California Games might be a good candidate for testing --- the video has it stuttering audibly, and it uses 96% CPU on my device, so not far from the magical 100% margin 😏

Ok purchased

Screenshot_20240118-221109.png

  • Like 1
Link to comment
Share on other sites

21 minutes ago, DirtyHairy said:

There are many ways to transfer the encoded file, but this one uses picocom as a terminal and is mine 😏:

Thanks for all the awesome info : )

 

Since I have USB visible in the RGUI, I should be able to just copy roms to the USB stick.  I'll need to add some lines for the serial debug port.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...