Jump to content
IGNORED

Atari 2600+ Hardware


Blinky

Recommended Posts

I was thinking about Deeplay... then... ahhhh... dmenu.... Deeplay Menu....ahhhh... :) it uses the Deeplay-Keys device, Deeplay could stand for `De`v`e`lopment `Play`(Play could be from Plaion) as Ben was developing the console so before it got its name ... :) you would run the software on a prototype of it first so the software is usually make first, then hardware later.

Link to comment
Share on other sites

On 1/4/2024 at 12:04 PM, jj_0 said:

That's interesting. They are also mentioned in the kernel log:

[    1.168134] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-sel[0]' - status (0)
[    1.168223] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-rest[0]' - status (0)
[    1.168284] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-bw-color[0]' - status (0)
[    1.168342] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-1PAB[0]' - status (0)
[    1.168401] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-2PAB[0]' - status (0)
[    1.168458] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-169-43[0]' - status (0)
[    1.168515] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-card-det[0]' - status (0)
[    1.169082] input: Deeplay-keys as /devices/platform/gpio-keys-polled/input/input0

 

Game Reset and Game Select are mapped to BTN_Z and BTN_WEST of the '/dev/input/event0:    Deeplay-keys' device:

[root@rk312x:~]# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:	Deeplay-keys
/dev/input/event1:	adc-keys
/dev/input/event2:	 Retro Games LTD  USBController 
Select the device event number [0-2]: 0
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "Deeplay-keys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 304 (BTN_SOUTH)
    Event code 305 (BTN_EAST)
    Event code 306 (BTN_C)
    Event code 307 (BTN_NORTH)
    Event code 308 (BTN_WEST)
    Event code 309 (BTN_Z)
    Event code 310 (BTN_TL)
Properties:
Testing ... (interrupt to exit)
Event: time 395.650274, type 1 (EV_KEY), code 309 (BTN_Z), value 1
Event: time 395.650274, -------------- SYN_REPORT ------------
Event: time 395.850086, type 1 (EV_KEY), code 309 (BTN_Z), value 0
Event: time 395.850086, -------------- SYN_REPORT ------------
Event: time 397.750285, type 1 (EV_KEY), code 308 (BTN_WEST), value 1
Event: time 397.750285, -------------- SYN_REPORT ------------
Event: time 397.950072, type 1 (EV_KEY), code 308 (BTN_WEST), value 0
Event: time 397.950072, -------------- SYN_REPORT ------------

 

Anyone knows whats the second device `adc-keys` is...?
Is it maybe to do with the switches at the back, `Deeplay-keys` device is like a joystick controller just without the joystick so for the switches at the front manly(SELECT and RESET) what I do not understand is why they only work if `dmenbu.bin` runs first, if you run Retroarch on its own then they do not work, they work on Stella because it can see them and you add them in its GUI.
You can see Retroarch see all 3 devices but SELECT in Retroarch has a different name, is not `BTN_Z` but says `Console Select` so I am thinking dmenu changes them and gives them a new name.
When dmenu has dumped a cartridge it kills itself because its not needed no more and takes up ram plus you see though the Retroarch screen, it closes it then runs Retroarch.
Retroarch seeing the 3 devices on the A2600 Plus so all 3 are a device controllers.

[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.


They have new names on Retroarch that must be coming from the dmenu.bin file, this why they do not work in Retroarch on it own.

Console Reset
Console Select
Console Pause(not sure if this button is used)


In Retroarch Console Select and Reset are mapped to the keyboard so deeplay-keys is like a keyboard, the clue is in its name... :) .

Console Reset is mapped to S on the Keyboard and 6 on the joystick controller.
Console Select is mapped to rshift only on the Keyboard.
Console Pause is mapped too enter key only so if they want to add a Game Pause to the game running, but there is no pause on the real machine.

So the dmenu change them into keys on a keyboard.


In Stella they are BTN_Z(Console Reset) and BTN_WEST(Console Select).

There are 6(Switches) buttons on the Atari2600 Plus case, 3 at the front and 3 buttons at the back. 
Front: Color B/W, Select, Reset.
Back: Difficulty Left, Difficulty Right, 4:3/16:9 Screen.

if you change the switch on 4:3/16:9 at the back of the console and wounder if it status would change to 1

[ 1.168458] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys-polled/key-169-43[0]' - status (0)


The joysticks do not work in the Retroarch Menu too, when they should, only works with the keyboard, but might be because its not using Autoconfig and using `Remap Controls for This Core` is enabled in Retroarch, its under `Input` under the main settings in the Retroarch Menu so its using its own config for the joysticks.

Edited by Spanner
Link to comment
Share on other sites

Port 1 Controls in Retroarch is using the Analog controls from `Retro Games LTD USBController` for its UP, Down Left and Right.

Port 2 Controls in Retroarch is using the Hat controls from `Retro Games LTD USBController` for its UP, Down Left and Right.

So both controls are using one controller so like on a PS4 controller it has Analog and a Dpad and that what its using for both DB9 Atari Joysticks, Port 1 Left Atari Joystick is Analog(left Analog on a PS4 Controller) and the other one, Port 2 Right Atari Joystick is Hat(the Dpad on a PS4 Controller), that why they have to be remapped in Retroarch so can not use Autoconfig, its basically using one game controller for its 2 Joysticks, clever idea.. :).
And why if you connect the Atari2600 Plus to the PC and have the Color switch on B/W the PC sees it as one game controller connected, not two.
 

This uses the same IC thats in THEC64 Joystick/THEGamepad, the GH001 IC(Game Hub001) its just in a different package thats all.
 

 

Screenshot 2024-02-17 153426.png

Screenshot 2024-02-17 153604.png

Edited by Spanner
Link to comment
Share on other sites

  • 2 weeks later...

Trying to work out how Experimental Firmware 1.1x-r2 works, I manged to get it working from a Cartridge but not from a 7800 bin file, it loads it in Retroarch OK like 1.1-rev2 but the screen is blank(black screen) so the game is not been rendered, I am guessing that in 1.1x-r2 its render is in the dmenu.bin file now so why it has a black screen because dmenu.bin was closed(killed), the code for the render driver is in the dmenu.bin so its not using Retroarch to render it.


Is the dmenu.bin binary file now connected to Retroarch binary so its needs both running, like how the binary files work in THEC64/A500 by RGL, all the binary files in them use the code it needs from each binary so are all connected to each other, better then having one BIG binary file with all code in it.

If someone could help me, it would be greatly appreciated :) ?

 

Having Retroarch on `video_threaded = "true" will use more resources and can make the game shudder and lose frame rate so if you change it to "false" then it runs the game at the right speed and no frame drops, Antarctic Adventure on the MSX on THE C64 Mini(Allwinner A20 and has 256 mb ram too so is very similar) was shuddering and going about 10 frames a second on Retroarch 1.7.0, so I changed `video_threaded` to false and now its running normally.

Edited by Spanner
Link to comment
Share on other sites

  • 2 weeks later...
On 1/3/2024 at 12:22 AM, Blinky said:

Oops! I just discovered that I drew the serial debug header pinouts for the mainboard on the wrong PCB image! in my earlier post. 🧐

 

Here's the correct order when facing the bottom of the mainboard PCB:

image.thumb.png.f1991fc11a6839d3a8ab45b351d50292.png

 

Weird how the square pad is 3.3v when I thought it was ground, if you connect the Atari2600 Plus to your PC via the USB-C port then you should not need the ground pad, it should be grounded by the shield on the USB Port on the PC, so only need the RX and TX pads.

You can put both wires with pins on them in to the RX, TX pads without soldering them, you can use a elastic band or sticky tape to hold the wires down so they stay in the pin holes, I do it with all my mini machines so no need for soldering, its way easier... :)  or you can use phone wire thats stiff and tape it down.

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