Jump to content
IGNORED

Atari 2600+ Hardware


Blinky

Recommended Posts

2 hours ago, Spanner said:

Next have to work out how to load 7800 bin files

when dmenu.bin receives a rom it creates a file "/tmp/.next" which is executed by the S50launcer script. the contents of the file will depend on the rom type.

 

for a 2600 rom :

cd /oem/vendor/bin/
./retroarch -c /tmp/retroarch.cfg -L /oem/retroarch/cores/stella_libretro.so /tmp/atari2600.bin

 

for a 7800 rom :

cd /oem/vendor/bin/
./retroarch -c /tmp/retroarch.cfg -L /oem/retroarch/cores/prosystem_libretro.so /tmp/atari7800.bin

 

  • Like 1
Link to comment
Share on other sites

Yeah, I bypassed it so at the moment it runs a game called game1.bin on the USB Stick so you can add any game it can run, what the cores can run.
I might be able to test other cores too, On THEC64 Mini I added to PCUAE RA Mode, and that uses Retroarch 1.71, on this it uses RA 1.74.

Edited by Spanner
Link to comment
Share on other sites

Got Atari7800 games working now, I added a flag file in the USB Drive, its a txt file so you change it to yes or no, to enable Atari7800 games its `Atari7800-enabled=yes`or for Atari2600 Games its `Atari7800-enabled=no`
Its on the root of the USB Drive... :)
image.thumb.png.5b71cc65f928b2e75d6328fd9d7e3f9b.png

Edited by Spanner
Link to comment
Share on other sites

So I looked through my USB stuff and made a cursed contraption to power the 2600+ through the USB-C connector and hook-up a keyboard (or other USB device):

image.thumb.png.0ecf7ba4947e510792213d79e337df25.png

Found out the following keys:

  • ESC exit game
  • F1 menu
  • F2 save game state
  • F4 load game state
  • F9 toggle sound on/off
  • O exit game
  • P pause game on/off
  • H reset
  • K pause on only
  • L faster speed while pressed
  • ASZ + cursors for joystick 1
  • SPACE - toggle max speed on/off

When exiting the emulator with ESC or O, the loading screen (from dmenu.bin) will appear again but ends up in loading failed as the dumper doesn't (re)send the dump. The cart has to be pulled and reinserted or the 2600+ needs to be power cycled.

 

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

anyone know where its autoconfig folder is, where it keeps its joystick and controllers config files, so you can edit there buttons....?

I found a retroarch folder in /oem but that only has cores and system folders in it, it has to have one, unless its embedded, what's the userdata folder for, you have that on Android...?
Before I did this I made themes on Mobile phones(2010-2012 XDA) on the LG Viewty(and LG Cookie), I remember making a iPhone theme... :), one of the best phones LG made, it looked like a camera, it used Macromedia Flash in its menu I still have the phone... :)

 

If you slotted this machine in to do with ARM specs it would be in between THEC64 and THEA500, it has the same RAM as THEC64 but a more powerful ARM SoC then the Allwinner H3.
Its pretty closes... https://gadgetversus.com/processor/allwinner-h3-vs-rockchip-rk3128/ - just abit of fun... :)

Edited by Spanner
Link to comment
Share on other sites

Atari2600 Plus Retroarch 1.9.4 boot log

[WARN] [Config]: 'screenshot_directory' is not an existing directory, ignoring ...
[INFO] === Build =======================================
[INFO] Capabilities:  NEON VFPv3 VFPv4
[INFO] Built: Nov 24 2022
[INFO] Version: 1.9.4
[INFO] =================================================
[INFO] [Input]: Found input driver: "udev".
[INFO] [Core]: Loading dynamic libretro core from: "/oem/retroarch/cores/prosystem_libretro.so"
[INFO] [Overrides]: No core-specific overrides found at "/oem/retroarch/config/ProSystem/ProSystem.cfg".
[INFO] [Overrides]: No content-dir-specific overrides found at "/oem/retroarch/config/ProSystem/Run_From_USB.cfg".
[INFO] [Overrides]: No game-specific overrides found at "/oem/retroarch/config/ProSystem/Atari7800-1.cfg".
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: GET_LANGUAGE: "0".
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL.
[INFO] [Environ]: UNSUPPORTED (#65).
[INFO] Core requested VFS version >= v1, providing v3
[INFO] [Remaps]: Remap directory: "/oem/retroarch/remaps".
[INFO] [Overrides]: Redirecting save file to "/mnt/PCUAE-Atari-Games/Run_From_USB/Atari7800-1.srm".
[INFO] [Overrides]: Redirecting save state to "/mnt/PCUAE-Atari-Games/Run_From_USB/Atari7800-1.state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: PERFORMANCE_LEVEL: 5.
[INFO] [CONTENT LOAD]: Loading content file: /mnt/PCUAE-Atari-Games/Run_From_USB/Atari7800-1.bin
[INFO] Did not find a valid content patch.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] [Environ]: UNSUPPORTED (#66).
[INFO] [Environ]: SYSTEM_DIRECTORY: "/oem/retroarch/system".
[INFO] [SRAM]: Skipping SRAM load..
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 31200.00 Hz.
[INFO] [Video]: Timings deviate too much. Will not adjust. (Display = 60.00 Hz, Game = 50.00 Hz)
[INFO] [Video]: Video @ 1089x816
[INFO] [Video]: Starting threaded video driver ...
[INFO] [DRM]: Found 1 connectors.
[INFO] [DRM]: Connector 0 connected: yes
[INFO] [DRM]: Connector 0 has 1 modes.
[INFO] [DRM]: Connector 0 assigned to monitor index: #1.
[INFO] [DRM]: Mode 0: (1280x720) 1280 x 720, 60.000000 Hz
[INFO] [GL]: Found GL context: kms
[INFO] [GL]: Detecting screen resolution 1280x720.
[INFO] [EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT
arm_release_ver of this libMali is r7p0-00rel0, rk_so_ver is '2', built at '15:17:56', on 'Jul 16 2020'.
[INFO] [EGL]: EGL version: 1.4
[INFO] [EGL]: Current context: 0x40000001.
Post Color Buffer Success
[INFO] [KMS]: New FB: 1280x720 (stride: 5120).
[INFO] [GL]: Vendor: ARM, Renderer: Mali-400 MP.
[INFO] [GL]: Version: OpenGL ES 2.0.
[INFO] [GL]: Using resolution 1280x720
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [Video]: Graphics driver did not initialize an input driver. Attempting to pick a suitable driver.
[WARN] [udev]: Couldn't open any keyboard, mouse or touchpad. Are permissions set correctly for /dev/input/event*?
[WARN] [udev]: Full-screen pointer won't be available.
[INFO] [udev]: Pad #0 (/dev/input/event3) supports 0 force feedback effects.
[INFO] [udev]: Pad #1 (/dev/input/event2) supports 0 force feedback effects.
[INFO] [udev]: Pad #2 (/dev/input/event0) supports 0 force feedback effects.
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [Video]: Found display server: null
[INFO] ALSA: Using floating point format.
[INFO] ALSA: Period size: 384 frames
[INFO] ALSA: Buffer size: 1536 frames
[INFO] [Display]: Found display driver: "gl".
[INFO] [Playlist]: Loading history file: [/mnt/.options/mode_configs/content_history.lpl].
[INFO] [Playlist]: Loading history file: [/mnt/.options/mode_configs/content_music_history.lpl].
[INFO] [Playlist]: Loading history file: [/mnt/.options/mode_configs/content_image_history.lpl].
[INFO] [Playlist]: Loading favorites file: [/mnt/.options/mode_configs/content_favorites.lpl].
[INFO] [Environ]: ASPECT_RATIO.
[INFO] [KMS]: New FB: 1280x720 (stride: 5120).

 

Link to comment
Share on other sites

4 hours ago, Spanner said:

anyone know where its autoconfig folder is

Retroarch is executed with the switch

-c /tmp/retroarch.cfg

so /tmp is where it is. The S50laucher script copies the config file there from /oem/retroarch/retroarch.cfg

Edited by Blinky
Link to comment
Share on other sites

20 hours ago, Blinky said:

Retroarch is executed with the switch

-c /tmp/retroarch.cfg

so /tmp is where it is. The S50laucher script copies the config file there from /oem/retroarch/retroarch.cfg

it does not have one, its not in /oem/retroarch and not in /tmp
 

[root@rk312x:/tmp]# ls
keys  messages  mountall.log  retroarch.cfg
[root@rk312x:/tmp]#


 

[root@rk312x:/oem/retroarch]# ls
cheats  config  cores  retroarch.cfg  system
[root@rk312x:/oem/retroarch]#

 

Edited by Spanner
Link to comment
Share on other sites

5 minutes ago, John Stamos Mullet said:

That’s because it is too underpowered to use an SDL video driver. SDL requires far more CPU than GL.

Retroarch v1.7.1 SDL1 works on a Allwinner A20 THEC64 Mini and it works fine without threaded video and THEC64 Mini dose not have SDL 1, I had to add its libs, just added MSX/Colecovison Mode... :)

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

2 minutes ago, Spanner said:

Retroarch v1.7.1 SDL1 works on a Allwinner A20 THEC64 Mini and it works fine without threaded video.

The C64 Mini uses an entirely different emulator than Stella or Prosystem with different CPU loads. 
 

Since you’ve figured out out to access the system via terminal, you should be able to re-route the directory for video driver files to your USB add on and place the SDL drivers there. I’m betting it will be slower. 

Edited by John Stamos Mullet
Link to comment
Share on other sites

2 minutes ago, splendidnut said:

For what it's worth, SDL is not a driver.  It's a cross-platform library that's primary purpose is to wrap OS-specific functionality.  The graphics portion wraps either OpenGL or DirectX... depending on the system.

This^. SDL is just a generic wrapper. In this device’s case you would still end up using Open GL but with an additional SDL wrapper on it, slowing it down even more.

Link to comment
Share on other sites

dmenu.bin uses SDL2:

[root@rk312x:/oem/vendor/bin]# ./ldd ./dmenu.bin
	linux-vdso.so.1 (0xbeed4000)
	libSDL2_image-2.0.so.0 => /usr/lib/libSDL2_image-2.0.so.0 (0xb6eb1000)
	libSDL2_ttf-2.0.so.0 => /usr/lib/libSDL2_ttf-2.0.so.0 (0xb6e9b000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6e14000)
	libSDL2-2.0.so.0 => /usr/lib/libSDL2-2.0.so.0 (0xb6d38000)
	libSDL2_gfx-1.0.so.0 => /usr/lib/libSDL2_gfx-1.0.so.0 (0xb6d1c000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0xb6ce7000)
	libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb6ca7000)
	libm.so.6 => /lib/libm.so.6 (0xb6c3d000)
	libz.so.1 => /usr/lib/libz.so.1 (0xb6c1b000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb6bf2000)
	libc.so.6 => /lib/libc.so.6 (0xb6ab2000)
	libdl.so.2 => /lib/libdl.so.2 (0xb6a9f000)
	/lib/ld-linux-armhf.so.3 (0xb6ed8000)

 

 

  • Like 1
Link to comment
Share on other sites

One idea would be good is add 4:3 and 16:9 display so you can have it as 4:3 how it was on a CRT screen and enable scanner lines so filters.
 

video_windowed_position_height = "720"
video_windowed_position_width = "1280"

so I would change that to 1080X720 maybe and see what happens
 

 
video_windowed_position_height = "720"
video_windowed_position_width = "1080"

 

Edited by Spanner
Link to comment
Share on other sites

1 hour ago, Spanner said:

One idea would be good is add 4:3 and 16:9 display so you can have it as 4:3 how it was on a CRT screen and enable scanner lines so filters.
 

video_windowed_position_height = "720"
video_windowed_position_width = "1280"

so I would change that to 1080X720 maybe and see what happens
 

 
video_windowed_position_height = "720"
video_windowed_position_width = "1080"

 

It already has 4:3 and 16:9, it's switchable with a switch on the back of the console.

 

I gotta say, between this and the claim that it doesn't use Stella (which you later edited when everyone corrected you), I'm starting to think you don't really know what you're talking about.

Edited by John Stamos Mullet
  • Haha 1
Link to comment
Share on other sites

14 hours ago, Spanner said:

The Atari2600 Plus use Retroarch not Stella, Stella is part of Retroarch.. :)

That's not the correct way of putting it. It's more like this: Stella is an Atari 2600 emulator which can run on multiple platforms, like Windows, macOS and Linux. It can also run on the Libretro platform, which is an API that exposes audio, video and input in a generic way. The port of Stella to libretro (called a 'core') can run on a libretro frontend like RetroArch.

 

So the Atari 2600+ is running RetroArch with the Stella core for 2600 emulation and the ProSystem core for 7800 emulation.

 

The problem is that the libretro-port of Stella isn't fully functional (the API was only partially implemented) and for now there seems to be little enthusiasm from the Stella core team to bring this port to the next level.

Edited by Dionoid
Link to comment
Share on other sites

I was wondering if anyone could help me make a version of Stella for the Atari2600 Plus, I found a version on GitHub but that version is for armhf but its for the Raspberry PI, it asks for libs from the RPI so need a version that works on the Atari2600 Plus, I have set it all up now so all I need to to do is add its binary and libs into the PCUAE USB ROM Loader, to enable it you use a flag file, you make a new text file on the root of the USB Stick and call it `stella-mode-enabled=yes` when it sees it it then load a different script on the USB Stick that loads Stella.

Edited by Spanner
Link to comment
Share on other sites

I think all the joystick controls are in the dmenu.bin file, am I correct so thats where retroarch's autoconfig is in a way so all controls are embedded in it, if not then the 3 buttons(switches)not including the power switch, thats independent) on the Atari2600 Plus would not work...?

If you kill dmenu.bin and run retroarch on its own it can not see the 3 buttons(switches) on the Atari2600 Plus, they are not part of retroarch, d in dmenu could stand for Device so Device Menu so like how a joystick is a device so its like its the switches driver so they can be seen in retroarch so it does two things, a device driver for the switches on the Atari2600 Plus and runs the dumper program for the cartridges it reads.

The Atari Flashback has switches too on its case so could work the same way and why it uses a Rockchip SoC like the AFB, its the only SoC thats compatible with the switches.
Arm SoC are based of a FPGA so a System On a Chip so like a Simulator On a Chip.... :) FPGA came first, the first one I saw was the C64 DTV in 2004, I still have mine, it used batteries but I added a power adapter to mine, it take 5v 1A.

Edited by Spanner
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...