Jump to content
IGNORED

Atari 2600+ Hardware


Blinky

Recommended Posts

12 hours ago, karri said:

The timing is perfect for Xmas. Plus the machine is enjoyable with the carts coming with it.

That's the key.   It wouldn't sell so well if they delayed until April or whatever to fix issues.   Get the hardware out, fix with firmware updates.   You see the same thing in the games industry.  They ship games in a broken state to meet a crucial deadline and fix with patches after release.   

  • Like 4
Link to comment
Share on other sites

On 11/25/2023 at 6:28 PM, Blinky said:

Connecting the 2600+ with a USB-C cable to your PC, putting the B-W / Color switch in the B-W position, pressing down game reset  while powering on will put the 2600+ into 'Stella Adapter mode'.

 

So you can use original controllers hooked to the 2600+ as a USB controller to play games with Stella on your PC :D (Joystick port 2 must be configured in Stella to work)

This works on MiSTer, too.

 

Doesn't recognize the Select/Reset switches, though, which is a pity. This would make a very nice control box for the MiSTer 7800 core.

 

Now if your dumper code could be launched as a MiSTer script... well, there's the cartridge port everyone has been asking for.

Link to comment
Share on other sites

9 minutes ago, xeex said:

This works on MiSTer, too.

 

Doesn't recognize the Select/Reset switches, though, which is a pity. This would make a very nice control box for the MiSTer 7800 core.

 

Now if your dumper code could be launched as a MiSTer script... well, there's the cartridge port everyone has been asking for.

Are the B/W and difficulty switches recognized on MiSTer?  If not, do we know what USB codes the switches are sending that could perhaps be mapped in the core?  (Because it would make for a hugely expensive joystick adapter, but providing the original experience enough to make it absolutely compelling.)

Link to comment
Share on other sites

11 minutes ago, Rodney Hester said:

Are the B/W and difficulty switches recognized on MiSTer?  If not, do we know what USB codes the switches are sending that could perhaps be mapped in the core?  (Because it would make for a hugely expensive joystick adapter, but providing the original experience enough to make it absolutely compelling.)

The B/W switch changes the device ID. I can't see that any of the other switches are recognized. I'm no hacker, though, so a more enterprising person could probably figure things out.

Link to comment
Share on other sites

3 hours ago, xeex said:

Doesn't recognize the Select/Reset switches, though,

Same with 2600+ only the joystick ports are available over USB. The Select, Reset and difficulty switches seem to be only available to the rock chip.

However if you wish to hook the 2600+ to the MiSTer then you could remove the main board and hook al the IO to the MiSTer.

 

3 hours ago, xeex said:

Now if your dumper code could be launched as a MiSTer script..

Don't know about MiSTer scripts but the Python code is easy modifyable. If  the MiSTer script contents can be passed as a command line then you don't even need to modify the script.

 

 

  • Like 1
Link to comment
Share on other sites

16 hours ago, Thomas Jentzsch said:

Does the USB C provide this too

The 2600+ functions as a USB controller when connected to a PC  when the 'Stella Adapter' mode is triggered.

 

I do not know if you can hook a USB controller to the 2600+ (have not tested this) for which you probably need a OTG cable.

 

 

Link to comment
Share on other sites

The USB port on the PCB with the Rockchip and nand, thats not a USB-C is it, well it does not look like one, it looks like a Micro USB port so you should be able to put a OTG Cable on it or a USB Hub with a Micro USB connector on it and maybe have its cable coming out of the Atari2600+.

To connect a USBserial to the Atari2600+ UART(thats what the 4 header pins are called) you can connect it using a rubber band so you do not need to solder the pins on, thats how I have my cables connected.

You can use 2 wires connected to the TX, RX and ground it by its HDMI cable thats connected to the PC.

Edited by Spanner
Link to comment
Share on other sites

 

1 hour ago, Spanner said:

thats not a USB-C

Note that the Atari 2600+ does not have USB-C it has a USB-C connector that is wired (incompletely) for USB 2.0.

 

The incompletely part is that the USB-C standard requires 5.1K pull down resistors on the CC1 and CC2 pins to supply 5V. So if a genuine USB-C charger/adapter is used it will not supply any power.

 

1 hour ago, Thomas Jentzsch said:

connected it to the internal USB port

When you connect something to the micro usb port on the mainboard. The mainboard should not be connected to the I/O board otherwise there will be a collision with the 'USB-C' port of the I/O board.

Link to comment
Share on other sites

19 minutes ago, Blinky said:

Note that the Atari 2600+ does not have USB-C it has a USB-C connector that is wired (incompletely) for USB 2.0.

 

The incompletely part is that the USB-C standard requires 5.1K pull down resistors on the CC1 and CC2 pins to supply 5V. So if a genuine USB-C charger/adapter is used it will not supply any power.

What does that mean for an uninformed like me? That an OTG 2 in 1 cable will not work?

19 minutes ago, Blinky said:

When you connect something to the micro usb port on the mainboard. The mainboard should not be connected to the I/O board otherwise there will be a collision with the 'USB-C' port of the I/O board.

Does that mean I should unplug the USB C cable only or the whole I/O board? And power the 2600+ through the micro USB? But, with the I/O board disconnected, the switches will not work. :? 

Link to comment
Share on other sites

25 minutes ago, Blinky said:

 

Note that the Atari 2600+ does not have USB-C it has a USB-C connector that is wired (incompletely) for USB 2.0.

 

The incompletely part is that the USB-C standard requires 5.1K pull down resistors on the CC1 and CC2 pins to supply 5V. So if a genuine USB-C charger/adapter is used it will not supply any power.

 

When you connect something to the micro usb port on the mainboard. The mainboard should not be connected to the I/O board otherwise there will be a collision with the 'USB-C' port of the I/O board.

I am currently using an official Raspberry Pi 4 power supply, which is indeed USB-C, and it works like a charm.

Link to comment
Share on other sites

22 hours ago, Thomas Jentzsch said:

What does that mean for an uninformed like me? That an OTG 2 in 1 cable will not work?

Using a 2-In-1 Type-C Otg Adapter shouldn't be a problem if the power supply also works with the 2600+

22 hours ago, John Stamos Mullet said:

I am currently using an official Raspberry Pi 4 power supply

Good to know. Maybe it works cause it only has a single power profile (5V/3A) or it's just a 5V/3A power supply with a USB-C plug. Anyway if a smartphone (fast) charger or a power supply with a USB-C connector or cable doesn't work and you wonder why it doesn't. It's because the USB-C on the 2600+ isn't fully compliant with the USB-C standard.

 

6 hours ago, Spanner said:

I just opened mine and it has no big yellow resistor on the right hand side

Interesting. My serial is 21399. I also spotted the resistor in Ben's framed 2600+ image.

 

  • Like 1
Link to comment
Share on other sites

On 11/19/2023 at 8:17 PM, Blinky said:

That doesn't work. It has the same function as the external USB-C port.

 

Confirmed! The 4 pin header on the mainboard is a serial debug port:

image.thumb.png.12fba2a76c54d17b8b5f9d538517fcf9.png

 

Hooked a FTDI cable (Serial to USB cable) to it at 115200 baud and got this:
 

DDR Version 2.12 20191113_uart1_dbg
In
ID:0x0
1A1A1A1A   3
DDR3
282C1A1A   3
35351A1A   3
Bus Width=16 Col=10 Bank=8 Row=14 CS=1 Die Bus-Width=16 Size=256MB
mach:8
OUT


U-Boot 2017.09 (Jul 26 2023 - 10:50:50 +0800)

Model: Rockchip RK3128 Evaluation board
DRAM:  253 MiB
Sysmem: init
Relocation Offset: 00000000, fdt: 6be1b098
Using default environment

dwmmc@1021c000: 0
MMC Device 1 not found
no mmc device at slot 1
Card did not respond to voltage select!
mmc_init: -95, time 9
Unknown command 'mtd_blk' - try 'help'
Unknown command 'mtd_blk' - try 'help'
Unknown command 'mtd_blk' - try 'help'

Device 0: ...nandc_flash_init enter...
No.1 FLASH ID:98 da 90 15 76 16
SFTL version: 5.0.58 20220814
Vendor: 0x0308 Rev: V1.00 Prod: rkflash-NandFlash
            Type: Hard Disk
            Capacity: 218.5 MB = 0.2 GB (447488 x 512)
... is now current device
Bootdev: rknand 0
PartType: EFI
boot mode: None
Found DTB in boot part
DTB: rk-kernel.dtb
HASH(s): OK
Android header version 0
vdd_arm init 1100000 uV
vdd_logic init 1100000 uV
Can't get crtc id, default set to id = 0
Model: Rockchip RK3128 atari2600 board
Rockchip UBOOT DRM driver version: v1.0.1
failed to get edid
mode:1280x720
CLK: (uboot. arm: enter 600000 KHz, init 600000 KHz, kernel 0N/A)
  apll 600000 KHz
  dpll 600000 KHz
  cpll 668000 KHz
  gpll 594000 KHz
  armclk 600000 KHz
  aclk_cpu 148500 KHz
  hclk_cpu 74250 KHz
  pclk_cpu 74250 KHz
  aclk_peri 148500 KHz
  hclk_peri 74250 KHz
  pclk_peri 74250 KHz
Net:   Net Initialization Skipped
No ethernet found.
Hit key to stop autoboot('CTRL+C'):  0
ANDROID: reboot reason: "(none)"
TEEC: Waring: Could not find security partition
Not AVB images, AVB skip
Kernel image @ 0x6be7d6c0 [ 0x000000 - 0x6617b8 ]
Booting ZIMAGE kernel at 0x62008000(Uncompress to 0x60000000) with fdt at 0x6830                                                                                                             0000...


Fdt Ramdisk skip relocation
## Booting Android Image at 0x62007800 ...
Kernel load addr 0x62008000 size 6534 KiB
## Flattened Device Tree blob at 68300000
   Booting using the fdt blob at 0x68300000
   XIP Kernel Image from 0x62008000 to 0x62008000 ... OK
  'reserved-memory' ramoops@62e00000: addr=62e00000 size=f0000
   Using Device Tree in place at 68300000, end 6830de97
Adding bank: 0x60000000 - 0x61800000 (size: 0x01800000)
Adding bank: 0x61b00000 - 0x70000000 (size: 0x0e500000)
Total: 1778.306 ms

Starting kernel ...

[    0.104319] /cpus/cpu@f00 missing clock-frequency property
[    0.110313] /cpus/cpu@f01 missing clock-frequency property
[    0.116361] /cpus/cpu@f02 missing clock-frequency property
[    0.122321] /cpus/cpu@f03 missing clock-frequency property
[    0.260014] genirq: Setting trigger mode 8 for irq 181 failed (gic_set_type+0                                                                                                             x0/0x60)
[    0.333311] vcc_io: regulator get failed, ret=-517
[    0.521628] rk-vcodec vpu_combo: failed on clk_get clk_cabac
[    0.531328] rk-vcodec vpu_combo: could not find power_model node
[    0.557055] rockchip-vop 1010e000.vop: missing rockchip,grf property
[    0.564421] i2c i2c-4: of_i2c: modalias failure on /hdmi@20034000/ports
[    1.192934] rockchip-pinctrl pinctrl: pin_config_set op failed for pin 11
[    1.199802] gpio-keys-polled gpio-keys-polled: Error applying setting, revers                                                                                                             e things back
[    1.221334] cpu cpu0: Failed to get pvtm
[    1.228010] cpu cpu0: failed to read out thermal zone (-22)
[    1.234567] cpu cpu0: failed to find power_model node
[    1.270446] rockchip-dmc dmc: unable to get devfreq-event device : dfi
[    1.279750] rknandc_base v1.1 2017-01-11
[    1.284769] rkflash_dev_init enter
[    1.398911] rkflash_dev_init device register as blk dev, ret= 0
[    1.405083] rksfc_base v1.1 2016-01-08
[    1.430286] rockchip-dmc dmc: Failed to get leakage
[    1.435430] rockchip-dmc dmc: Failed to get pvtm
[    1.440862] rockchip-dmc dmc: failed to get vop bandwidth to dmc rate
[    1.447410] rockchip-dmc dmc: failed to get vop pn to msch rl
[    1.453725] rockchip-dmc dmc: could not find power_model node
[    1.468520] asoc-simple-card sound: ASoC: no source widget found for HPOL
[    1.475402] asoc-simple-card sound: ASoC: Failed to add route HPOL -> direct                                                                                                              -> Headphone Jack
[    1.484088] asoc-simple-card sound: ASoC: no source widget found for HPOR
[    1.490875] asoc-simple-card sound: ASoC: Failed to add route HPOR -> direct                                                                                                              -> Headphone Jack
[    1.519383] mali-utgard 10091000.gpu: Failed to get leakage
[    1.525152] mali-utgard 10091000.gpu: Failed to get pvtm
[    1.633682] devfreq 10091000.gpu: Couldn't update frequency transition inform                                                                                                             ation.
NAME=Buildroot
VERSION=2018.02-rc3
ID=buildroot
VERSION_ID=2018.02-rc3
PRETTY_NAME="Buildroot 2018.02-rc3"
Starting logging: OK
Populating /dev using udev: [    2.484678] udevd[142]: specified group 'kvm' unk                                                                                                             nown
done
Will now mount all partitions in /etc/fstab
Note: Create /.skip_fsck to skip fsck
 - The check might take a while if didn't shutdown properly!
Handling rootfs: /dev/rkflash0p6 / ext2 rw,noauto 1
Wrong fs type(ext2) for /dev/rkflash0p6
Handling misc: /dev/rkflash0p3 /misc emmc defaults 0
Unsupported file system emmc for /dev/rkflash0p3
Handling oem: /dev/rkflash0p7 /oem ext2 defaults 2
Mounting /dev/rkflash0p7(ext2) on /oem
[    3.791017] EXT4-fs (rkflash0p7): couldn't mount as ext3 due to feature incom                                                                                                             patibilities
Handling userdata: /dev/rkflash0p8 /userdata vfat defaults 2
You may need to enable BR2_PACKAGE_DOSFSTOOLS_FATLABE
Log saved to /tmp/mountall.log
Starting network: OK
Starting launcher:
Starting input-event-daemon: input-event-daemon: Start parsing /etc/input-event-                                                                                                             daemon.conf...
input-event-daemon: Adding device: /dev/input/event0...
input-event-daemon: Adding device: /dev/input/event1...
input-event-daemon: Adding device: /dev/input/event2...
input-event-daemon: Start listening on 3 devices...
done
rk312x login:

 

I can not get anything from the UART SerialUSB, I am using a CP2101 Module USB to TTL, its works fine on THEC64/THEA500 Mini.. 

OK now got it... :) I was connecting ground on TX... :)

Edited by Spanner
Link to comment
Share on other sites

Discovered the function of the CAR_TEST (CARD_TEST on the main board) pin. This pin is controlled by the dumper MCU to signal the mainboard that a cart is inserted in the slot.

 

When there is no cart in the cart slot this pin is low. When a cart is inserted it is set to high and remains high until the cart is removed or a dip switch on the cart is changed. In case a dip switch is changed the pin goes momentary low and then high again (probably as soon as it detected the new game rom)

 

 

Link to comment
Share on other sites

On 11/24/2023 at 1:12 AM, Blinky said:

after completion of the rom dump, another 5 byte command is send:

 

0x55 0xAA Command ID
0x99 ?? (value varies)
Cart type_size (0x04  for 4K .. 0x16 for 16K)
Cart type_bankswitch (0x00  for none, 0xF6 for F6)

 

The 0x99 ?? there isn't just a random value but some crc check to validate the dump.

Link to comment
Share on other sites

1 minute ago, NinjaWarrior said:

Why doesn't the Genesis Controller don't work, But the SMS Controller does

The SMS controller is a  controller without electronics. The Genesis/Mega drive controller uses a (multiplex) chip that requires power.

Link to comment
Share on other sites

36 minutes ago, NinjaWarrior said:

Oh ok, prob the same with the Star Raider Controller, Kids Controller & the Programm Controller

No those controller don't use electronics. Those controllers are made of a 4 by 3 key matrix. What they do is configure one of the up/down/left/right pins as active low output (to simulate a connection to GND) to select a row of 3 keys and read in those keys using the fire button and paddle inputs to determine which button was pressed.

 

Here's a small diagram to help understand how it works. the blue lines indicate that that direction pin is configured as an active low output (GND). The blue symbols represent a low input at the fire / paddle pin when the corresponding key is pressed (unpressed keys are read as high input).

image.thumb.png.72fe42a7757c9abcbea99e9c01b25935.png

  • Like 2
Link to comment
Share on other sites

On 12/2/2023 at 3:52 PM, Blinky said:

No those controller don't use electronics. Those controllers are made of a 4 by 3 key matrix. What they do is configure one of the up/down/left/right pins as active low output (to simulate a connection to GND) to select a row of 3 keys and read in those keys using the fire button and paddle inputs to determine which button was pressed.

 

Here's a small diagram to help understand how it works. the blue lines indicate that that direction pin is configured as an active low output (GND). The blue symbols represent a low input at the fire / paddle pin when the corresponding key is pressed (unpressed keys are read as high input).

image.thumb.png.72fe42a7757c9abcbea99e9c01b25935.png

Does this information give us hope that the touchpad may one day be supported by the 2600+? @Ben from Plaion

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