Jump to content
IGNORED

Custom firmware for Atari Gamestation Pro


Recommended Posts

Posted (edited)
On 2/13/2024 at 7:56 PM, Brad_from_the_80s said:

Greetings Atarians!

 

 For those who have been asking, here is my customized firmware image for the Atari Gamestation Pro.  This is along the same lines as the custom firmwares I have produced for Atari Flashback devices.  It allows you to add games and box art from the SD card to the Gamestation Pro menu and perform other customizations.
 
The filename is Firmware-c.img and you install it using the same method for the official 1.30 firmware.  On successful install it will update your version number to 1.30c

 

To use the new firmware features your SD card should be formatted as exFAT.  The custom firmware will not function correctly with FAT32 currently.

 

The firmware is activated by detecting a "mount_sd.ini" file on the sd card in the /agsp directory.  Extract /agsp folder from the attached agsp.zip archive to your sd card.  When the firmware sees the mount_sd.ini file inside this folder it will dump the internal /data partition to the sd card and remount it there.  The data folder will contain all of the system's game roms and boxart as well as the games.db file for the menu.  Dumping data takes about 40s with my sd card, a Sandisk Extreme UHS-I card that can write up to 90MB/s.  You will see the Loading screen while it is busy writing.  If you are using an old/slow SD card then the operation may take longer for you.  Give it up to 5-10 minutes in the extreme.

 

After dumping the /data partition (if it is not already present on the sd card), the firmware will run the startup.sh script in the agsp folder on the card.  This script will detect if a games.ini file needs to be generated (ie /data/games.ini doesn't exist).  It will run a simple SQL command piped to an awk script to spit out the .ini file.  If the games.ini file does exist, the script will read the first value in the file, "update_db".  If this value is set to 1 then the script will run a couple of SQL statements to truncate the db tables and execute a small binary utility, ini2gamedb, to import the ini file contents back into games.db.  It will then clear the update_db flag back to 0 in the games.ini file.

 

Finally there is a dump_retro flag in mount_sd.ini.  Set it and the script will extract retroarch binary and cores to a folder on the sd_card.  This does not really activate them from the sd card, but will enable the community to play around with using or modifying them as they see fit.  This is more a proof-of-concept of what can be done.  You can modify the startup.sh script as needed, but you'll need to test what works correctly with the busybox variant of ash shell.  Similarly the game launch script "start_local_sd.sh" will now be located under /data on the sd card.  The support for sourcing runme.sh from /agsp from the earlier patched firmware is still present, but you can modify it however you wish.  Of course if you break this script then your games won't launch.

 

--------------------------------------------------------------------------------

 

Adding games should be fairly straightforward.  For each game to display in the menu add a new ini section to /data/games.ini file.  The section name should match the rom file name exactly.  Fill in the rest of the ini sections, copying values from similar existing games where necessary.  For the "about" and "controls" sections, these are text bodies for display in the UI game description screen.  For larger entries that span multiple lines or have line breaks for formatting you need to be sure to start and end the content with a double quote (").  The ini converter generally should ignore entries it does not understand, but if anything goes wrong it should write a small log file under /data.

 

Here is a sample of a new game entry added to the new games.ini file:

 

[Pac-Man]
display_name=Pac-Man
suffix=.a26
release_date=1981
players=1 OR 2
class_type=1
game_type=5
hard=0
save=1
timer=/data/Games/Atari_Games/Atari 2600
about="We know that millions of people all over the world just love the PAC-MAN arcade game.  PAC-MAN has won the hearts of men, women, and children everywhere.  We also know that PAC-MAN has traditionally been an arcade game.  Well, we at ATARI know all about arcade games. After all, we make some of the greatest arcade games in the world, and we know how to bring the same dynamite game play into your home."
controls=Press A, then use the Joystick.
vertical=0

 

Some of the fields are pretty obvious.  The section name must match the rom file name, although it can contain spaces.  The display name can be prettier.  The path to the rom location for some weird reason is called "timer".  The game_type should correspond to what has been documented in the discussion threads already, and as found in the game launch script.  The class_type and hard fields are a little more obscure.  We have attached some information (thanks @Vic20Ian ), but the community may have to experiment with those.  Generally just try to copy values from similar types of games.  I am also providing a .csv dump of the original tbl_game table from games.db.

 

Remember to set the games.ini "update_db" value to 1 (first line of file) any time you want to import new custom entries into the games.db file on startup.

 

Place the matching rom file in the appropriate folder under /data/Games.  Co-located with the game are the menu images.  They each share the same file name as the rom.  There is a .png image for the box art, a .jpg image for the screen shot, and a <GameName>_title.png image for the title banner text/graphic.  Any new games added to the system should have corresponding image files of the same/matching size.

 

--------------------------------------------------------------------------------

 

I have tried to make my implementation reasonably resilient and recoverable, but issues may still occur.

 

If you somehow create a really bad ini file or corrupt the games.db file (not likely but possible) there are different things you can do.  Delete the /data/games.ini file and the startup script will generate a new one from games.db.  Delete the /data/games.db and the system will copy the default one back to the sd card /data folder on startup.  Delete or rename the entire /data folder and the system will regenerate it on startup so long as it sees the /agsp/mount_sd.ini file.  Delete or rename the /agsp folder or mount_sd.ini file, or remove the sd card, and the system will just run off of the default internal /data partition and stock configuration. The functionality related to using a /Games folder on the sd card should remain unaffected.

 

Also it is not known how many games you can add to the UI before it starts to encounter any loading or performance issues.

 

No promises, no warranties.  Use this firmware at your own risk.  But I hope the community gets some utility out of it for enhancing their Atari Gamestation Pros.

Firmware-c.img 215.5 MB · 721 downloads agsp.zip 1.67 kB · 801 downloads game_type.txt 1.16 kB · 634 downloads class_type.txt 686 B · 607 downloads tbl_game_202401280228.csv 114.7 kB · 580 downloads

Hi, I made a PDF of this post, I will be adding the AGSP Game Manager to it too so its all in one PDF file and going to make space on my one drive for Atari Gamestation Pro so all files are in one place so you be able add files as well if you what too, to do with AGSP.

Atari_Gamestation_Pro_Custom_Firmware_v1.3.0c.pdf

Edited by Spanner
Link to comment
Share on other sites

1 minute ago, Spanner said:

I plug in a sd card and keeps coming up with SD Card Mounted screen, is that normal...?

Yes.  Select the left side for the APP based game navigation, select Micro (right) for folder navigation (based off of the /sdcard/Games folder root) .

The app-based GUI does not show your custom /sdcard/games unless you configure them to show in the games.db.

Link to comment
Share on other sites

Posted (edited)

How about a way of scraping games so it fills in all the info it needs and then all you need to do is find the rom and the bios for the system the game runs on, you could get info from say https://www.mobygames.com or another website, it would make it easier to add games, abit like how PCUAE Manager does it.
I never made PCUAE Manager but it uses a lot of my ideas, scraping was one of them, the way it looks too, I made a mockup of how I wanted it to look like.

If you want to replace the box and screenshot images you can drag and drop them to change them, then it resizes them so they are the right size in THECarousel.
Its made in Java and uses a database file to store its games.

And instead of posting different version of the GSP Games on here why not add it to GitHub better place for it and can keep track of its updates.
PCUAE Manager's source code is available too... https://github.com/lantzelot-swe/PCUGameManager
image.thumb.png.fce37829a05c7368fb866065e637f470.png
image.png.88a75c11629c957563dd557f724c1e8f.png
image.png.a0413df3be882ff9740de64ef4b1123b.png

Edited by Spanner
Link to comment
Share on other sites

Posted (edited)

I still have `GenesisFlashbackGameManager.exe` thats made with .NET too on my One Drive, just found it... :) its was for the ATGAMES MD with SD Card, that used a all-games.ini file too, most of these all work the same.

AGSP uses different Retroach config files to set up its joystick so it uses the right buttons, that what I do if I add a Mode that uses Retroarch as the emulator in PCUAE, AGSP looks like it does not use Autoconfig like the Atari2600 Plus.

image.thumb.png.949325d9b69bbd87028116c94dc0cf1b.png

Edited by Spanner
Link to comment
Share on other sites

Posted (edited)

Every time I put my SD card in to the AGPS it messes it up and makes a folder at the top of the SD Card root with no name and when you click on it it shows the same folders that are on the SD card root, but if you click on one of the folders it say there a problem going in to the folder, I am using exFAT, weird why it can not read from FAT32, maybe its messing it up because it on exFAT and the SD Card do not like it, very odd.

The Micro SD card is a Kingston 64GB, does the AGSP have a limit on what GBs the SD card can be.

 

Anyone else had this problem...?

Edited by Spanner
Link to comment
Share on other sites

7 hours ago, Spanner said:

Anyone else had this problem...?

 

The AGSP works with exFAT - I've not tried it with FAT32, as exFAT is a more capable format.  exFAT is generally preferable as it allows for larger partition sizes, and is not limited to files of 4GB or less.

 

I'm using 128GB Sandisk cards in mine, without issue.

 

No strange "unnamed" folder getting created on either of my units.

 

A couple of things to note, though ...

  • AGSP reads the folder and file structures in creation (storage) order.  It does not sort files or folders for processing or display.  They will always show up in the order they were first copied to the device.  The only way to change this is to do a low-level re-org of the various exFAT tables, chains and links directly.  There's a tool for macOS called "fatsort" that will let you sort an unmounted volume.  Can't say for Windows.
  • There is some (seemingly) situationally case-sensitivity around filenames.

 

Link to comment
Share on other sites

Posted (edited)

Has anyone managed to connect AGSP to a USB CP2102 USB Serial, I am trying too but not getting anything from the 3 pin holes on its board, they usually always have a debug connector, when looking at it close up it  look like the square pin hole is is Rx or Tx because it connected to a resistor, like the middle pin hole that connects to the next resistor next to it, could they be Rx and Tx, the last pin hole on the right looks like the ground pin, it has no traces on it so it usually ground..?
20240507_145250.thumb.jpg.4e791cdeadfaf28788d817ac98f5a494.jpg
Pinout of the UART header. From left to right: Recieve, Transmit, Ground. The rightmost pad, Rx, is square while the other two are round.

Edited by Spanner
Link to comment
Share on other sites

Posted (edited)

Then One Day.... I GOT IN - TRON... :)
 

=> fdt set serial0 status okay
=> boot
Could not find misc partition
ANDROID: reboot reason: "(none)"
Fdt Ramdisk skip relocation
Booting ZIMAGE kernel at 0x62000000(Uncompress to 0x60000000) with fdt at 0x68300000...


## Booting Android Image at 0x61fff800 ...
Kernel load addr 0x62000000 size 4263 KiB
## Flattened Device Tree blob at 68300000
   Booting using the fdt blob at 0x68300000
   XIP Kernel Image ... OK
   Using Device Tree in place at 68300000, end 68308de7
Adding bank: 0x60000000 - 0x70000000 (size: 0x10000000)
Total: 467347.782 ms

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0xf00
[    0.000000] Linux version 4.4.194 (sunchip@sunchip-PowerEdge-R740) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #5148 SMP Fri Dec 8 14:45:50 CST 2023
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: Rockchip RK3032 Dongle
[    0.000000] cma: Reserved 4 MiB at 0x6fc00000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 13 pages/cpu @cf9c9000 s24216 r8192 d20840 u53248
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: storagemedia=nand androidboot.storagemedia=nand androidboot.mode=normal  androidboot.slot_suffix= androidboot.serialno=c3d9b8674f4b94f6  rw rootwait console=ttyS0,115200 root=PARTUUID=614e0000-0000 rootfstype=squashfs
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 244548K/262144K available (6144K kernel code, 403K rwdata, 1912K rodata, 1024K init, 355K bss, 13500K reserved, 4096K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0700000   (7136 kB)
[    0.000000]       .init : 0xc0a00000 - 0xc0b00000   (1024 kB)
[    0.000000]       .data : 0xc0b00000 - 0xc0b64f4c   ( 404 kB)
[    0.000000]        .bss : 0xc0b66000 - 0xc0bbee48   ( 356 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Architected cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000013] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000039] Switching to timer-based delay loop, resolution 41ns
[    0.001780] Console: colour dummy device 80x30
[    0.001833] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.001869] pid_max: default: 32768 minimum: 301
[    0.002114] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.002144] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.003372] CPU: Testing write buffer coherency: ok
[    0.003453] ftrace: allocating 24794 entries in 73 pages
[    0.068945] /cpus/cpu@f00 missing clock-frequency property
[    0.068989] /cpus/cpu@f01 missing clock-frequency property
[    0.069010] CPU0: update cpu_capacity 430
[    0.069029] CPU0: thread -1, cpu 0, socket 15, mpidr 80000f00
[    0.069258] Setting up static identity map for 0x60100000 - 0x60100058
[    0.074196] CPU1: update cpu_capacity 430
[    0.074212] CPU1: thread -1, cpu 1, socket 15, mpidr 80000f01
[    0.074419] Brought up 2 CPUs
[    0.074461] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.074473] CPU: All CPU(s) started in SVC mode.
[    0.076106] devtmpfs: initialized
[    0.090938] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.091749] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.091811] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.092867] pinctrl core: initialized pinctrl subsystem
[    0.095046] NET: Registered protocol family 16
[    0.097456] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.128771] cpuidle: using governor ladder
[    0.158831] cpuidle: using governor menu
[    0.187486] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.187513] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.245456] iommu: Adding device 10108400.vpu-service to group 0
[    0.245604] iommu: Adding device 1010c000.hevc-service to group 1
[    0.245735] iommu: Adding device 10118000.vop to group 2
[    0.246281] rk_iommu 10108800.iommu: can't get aclk
[    0.246308] rk_iommu 10108800.iommu: can't get hclk
[    0.246332] rk_iommu 10108800.iommu: can't get sclk
[    0.246995] rk_iommu 1010c440.iommu: can't get aclk
[    0.247030] rk_iommu 1010c440.iommu: can't get hclk
[    0.247057] rk_iommu 1010c440.iommu: can't get sclk
[    0.247371] rk_iommu 10118300.iommu: can't get aclk
[    0.247401] rk_iommu 10118300.iommu: can't get hclk
[    0.247424] rk_iommu 10118300.iommu: can't get sclk
[    0.248406] SCSI subsystem initialized
[    0.248755] usbcore: registered new interface driver usbfs
[    0.248907] usbcore: registered new interface driver hub
[    0.249207] usbcore: registered new device driver usb
[    0.250054] rk3036-usb-control usb_control: invalid usb gpio-2
[    0.250097] rk3036-usb-control usb_control: invalid host gpio-2
[    0.250140] rk3036-usb-control usb_control: invalid dongle gpio-2
[    0.250208] rk3036-usb-control usb_control: invalid reset gpio-2
[    0.250253] rk3036-usb-control usb_control: invalid otg gpio-2
[    0.250357] hello  usb  ctrl
[    0.253668] Advanced Linux Sound Architecture Driver Initialized.
[    0.256302] clocksource: Switched to clocksource arch_sys_counter
[    0.324495] NET: Registered protocol family 2
[    0.325737] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.325816] TCP bind hash table entries: 2048 (order: 3, 40960 bytes)
[    0.325954] TCP: Hash tables configured (established 2048 bind 2048)
[    0.326059] UDP hash table entries: 256 (order: 1, 12288 bytes)
[    0.326122] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
[    0.326638] NET: Registered protocol family 1
[    0.328174] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    0.350984] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.351687] exFAT: Version 1.2.9
[    0.353100] ntfs: driver 2.1.32 [Flags: R/W DEBUG].
[    0.353853] fuse init (API version 7.23)
[    0.357794] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.357836] io scheduler noop registered
[    0.357865] io scheduler deadline registered
[    0.358251] io scheduler cfq registered (default)
[    0.361525] rk-vcodec vpu-combo: no regulator for vcodec
[    0.362076] rk-vcodec vpu-combo: failed on clk_get clk_cabac
[    0.362220] platform 1010c000.hevc-service: probe device
[    0.362796] platform 1010c000.hevc-service: drm allocator with mmu enabled
[    0.364105] platform 10108400.vpu-service: probe device
[    0.364762] platform 10108400.vpu-service: drm allocator with mmu enabled
[    0.365952] rk-vcodec vpu-combo: could not find power_model node
[    0.365983] rk-vcodec vpu-combo: init success
[    0.370582] dma-pl330 20078000.pdma: Loaded driver for PL330 DMAC-241330
[    0.370616] dma-pl330 20078000.pdma:         DBUFF-64x8bytes Num_Chans-8 Num_Peri-14 Num_Events-16
[    0.372656] Serial: 8250/16550 driver, 5 ports, IRQ sharing disabled
[    0.373835] 20060000.serial: ttyS0 at MMIO 0x20060000 (irq = 41, base_baud = 1500000) is a 16550A
[    1.066622] console [ttyS0] enabled
[    1.072459] [drm] Initialized drm 1.1.0 20060810
[    1.079668] [drm] Rockchip DRM driver version: v1.0.1
[    1.085021] rockchip-drm display-subsystem: devfreq is not set
[    1.091713] rockchip-vop 10118000.vop: failed to get vop register byname
[    1.098547] rockchip-vop 10118000.vop: missing rockchip,grf property
[    1.105184] rockchip-drm display-subsystem: bound 10118000.vop (ops 0xc0769b28)
[    1.113291] i2c i2c-3: of_i2c: modalias failure on /hdmi@20034000/port
[    1.119910] innohdmi-rockchip 20034000.hdmi: registered Inno HDMI I2C bus driver
[    1.128173] rockchip-drm display-subsystem: bound 20034000.hdmi (ops 0xc0762320)
[    1.135585] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.142278] [drm] No driver support for vblank timestamp query.
[    1.148398] rockchip-drm display-subsystem: failed to parse display resources
[    1.168231] rockchip-vop 10118000.vop: [drm:vop_crtc_enable] Update mode to 1280x720p60, type: 11
[    1.229791] Console: switching to colour frame buffer device 160x45
[    1.262753] rockchip-drm display-subsystem: fb0:  frame buffer device
[    1.272271] usbcore: registered new interface driver udl
[    1.278348] lkdtm: No crash points registered, enable through debugfs
[    1.286488] 10180000.usb supply vusb_d not found, using dummy regulator
[    1.293255] 10180000.usb supply vusb_a not found, using dummy regulator
[    1.403145] dwc2 10180000.usb: DWC OTG Controller
[    1.408048] dwc2 10180000.usb: new USB bus registered, assigned bus number 1
[    1.415174] dwc2 10180000.usb: irq 34, io mem 0x10180000
[    1.421094] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.427966] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.435228] usb usb1: Product: DWC OTG Controller
[    1.439990] usb usb1: Manufacturer: Linux 4.4.194 dwc2_hsotg
[    1.445661] usb usb1: SerialNumber: 10180000.usb
[    1.451945] hub 1-0:1.0: USB hub found
[    1.455810] hub 1-0:1.0: 1 port detected
[    1.461261] 101c0000.usb supply vusb_d not found, using dummy regulator
[    1.468223] 101c0000.usb supply vusb_a not found, using dummy regulator
[    1.526386] dwc2 101c0000.usb: 1 invalid for enable_dynamic_fifo parameter. Check HW configuration.
[    1.535471] dwc2 101c0000.usb: 525 invalid for host_rx_fifo_size. Check HW configuration.
[    1.596934] dwc2 101c0000.usb: DWC OTG Controller
[    1.601749] dwc2 101c0000.usb: new USB bus registered, assigned bus number 2
[    1.608963] dwc2 101c0000.usb: irq 35, io mem 0x101c0000
[    1.614799] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.621699] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.628974] usb usb2: Product: DWC OTG Controller
[    1.633711] usb usb2: Manufacturer: Linux 4.4.194 dwc2_hsotg
[    1.639415] usb usb2: SerialNumber: 101c0000.usb
[    1.645674] hub 2-0:1.0: USB hub found
[    1.649695] hub 2-0:1.0: 1 port detected
[    1.657050] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.663607] ehci-platform: EHCI generic platform driver
[    1.669463] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.675699] ohci-platform: OHCI generic platform driver
[    1.681590] usbcore: registered new interface driver usb-storage
[    1.687716] usb20_otg: version 3.10a 21-DEC-2012
[    1.692872] usb20_host: version 3.10a 21-DEC-2012
[    1.699736] usbcore: registered new interface driver iforce
[    1.705504] usbcore: registered new interface driver xpad
[    1.711007] i2c /dev entries driver
[    1.739666] rk3x-i2c 2005a000.i2c: Initialized RK3xxx I2C bus at d084e000
[    1.749755] cpu cpu0: avs=0
[    1.752753] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 600000 KHz
[    1.760313] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1200000 KHz
[    1.769265] Synopsys Designware Multimedia Card Interface Driver
[    1.775884] dwmmc_rockchip 10214000.dwmmc: supports-highspeed property is deprecated.
[    1.784040] dwmmc_rockchip 10214000.dwmmc: Using external DMA controller.
[    1.790910] dwmmc_rockchip 10214000.dwmmc: Version ID is 270a
[    1.796761] dwmmc_rockchip 10214000.dwmmc: DW MMC controller at irq 37,32 bit host data width,256 deep fifo
[    1.806594] dwmmc_rockchip 10214000.dwmmc: 'clock-freq-min-max' property was deprecated.
[    1.814824] dwmmc_rockchip 10214000.dwmmc: No vqmmc regulator found
[    1.821287] dwmmc_rockchip 10214000.dwmmc: Got CD GPIO
[    1.836362] usb 1-1: new high-speed USB device number 2 using dwc2
[    1.842711] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    1.864813] dwmmc_rockchip 10214000.dwmmc: 1 slots initialized
[    1.872270] sony_init
[    1.874817] usbcore: registered new interface driver usbhid
[    1.880462] usbhid: USB HID core driver
[    1.885887] rksfc_base v1.1 2016-01-08
[    1.890142] rksfc 10208000.sfc: rksfc_probe clk rate = 99000000
[    1.896173] rkflash_dev_init enter
[    1.899667] sfc_nand id: ef aa 22
[    1.903013] SFTL version: 5.0.52 20191125
[    1.970623] FtlGcRefreshBlock  0x38d
[    1.974208] FtlGcRefreshBlock  0x38c
[    2.007613] ...FtlVpcCheckAndModify enter...
[    2.042661] FtlCheckVpc 38a = 40  0
[    2.046161] FtlCheckVpc 38b = 40  0
[    2.051076] rkflash[2] init success
[    2.055143] rkflashd vendor storage init ok !
[    2.076887] mmc_host mmc0: Bus speed (slot 0) = 12000000Hz (slot req 37500000Hz, actual 12000000HZ div = 0)
[    2.087022] mmc0: new high speed SDXC card at address 0001
[    2.093333] mmcblk0: mmc0:0001 SD16G 58.2 GiB
[    2.100329]  mmcblk0: p1
[    2.103695] Alternate GPT is invalid, using primary GPT.
[    2.109178]  rkflash0: p1 p2 p3 p4 p5
[    2.114872] rkflash_dev_init device register as blk dev, ret= 0
[    2.122078] usbcore: registered new interface driver snd-usb-audio
[    2.131617] Initializing XFRM netlink socket
[    2.135931] NET: Registered protocol family 17
[    2.137984] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
[    2.137995] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.138003] usb 1-1: Product: USB2.0 Hub
[    2.139159] hub 1-1:1.0: USB hub found
[    2.139544] hub 1-1:1.0: 4 ports detected
[    2.166105] NET: Registered protocol family 15
[    2.170674] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    2.183323] 8021q: 802.1Q VLAN Support v1.8
[    2.188255] ThumbEE CPU extension supported.
[    2.192561] Registering SWP/SWPB emulation handler
[    2.196391] flash vendor_init_thread!
[    2.196395] flash vendor storage:20170308 ret = -1
[    2.211906] pvtm list NULL
[    2.216516] asoc-simple-card sound: i2s-hifi <-> 10220000.i2s mapping ok
[    2.225521] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    2.232780] ---------lxm----add----evdev_connect,1401,dev_name(&evdev->dev)=(null),dev_no=0
[    2.232780]
[    2.242709] ---------lxm----add----evdev_connect,1408,evdev->handle.name=event0,dev_no=0
[    2.242709]
[    2.261268] I : [File] : drivers/gpu/arm/mali400/mali/linux/mali_kernel_linux.c; [Line] : 417; [Func] : mali_module_init(); svn_rev_string_from_arm of this mali_ko is '', rk_ko_ver is '5', built at '17:35:23', on 'Dec  6 2023'.
[    2.281832] mali-utgard 10091000.gpu: mali_platform_device->num_resources = 9
[    2.289029] mali-utgard 10091000.gpu: resource[0].start = 0x0x10091000
[    2.295556] mali-utgard 10091000.gpu: resource[1].start = 0x0x10090000
[    2.302108] mali-utgard 10091000.gpu: resource[2].start = 0x0x10093000
[    2.308661] mali-utgard 10091000.gpu: resource[3].start = 0x0x10098000
[    2.315189] mali-utgard 10091000.gpu: resource[4].start = 0x0x10094000
[    2.321754] mali-utgard 10091000.gpu: resource[5].start = 0x0x00000019
[    2.328295] mali-utgard 10091000.gpu: resource[6].start = 0x0x0000001a
[    2.334822] mali-utgard 10091000.gpu: resource[7].start = 0x0x0000001b
[    2.341378] mali-utgard 10091000.gpu: resource[8].start = 0x0x0000001a
[    2.347941] D : [File] : drivers/gpu/arm/mali400/mali/platform/rk/rk.c; [Line] : 623; [Func] : mali_platform_device_init(); to add platform_specific_data to platform_device_of_mali.
[    2.364196] mali-utgard 10091000.gpu: Failed to get leakage
[    2.369830] mali-utgard 10091000.gpu: Failed to get reg
[    2.375249] mali-utgard 10091000.gpu: avs=0
[    2.381874] Mali: Mali device driver loaded
[    2.386216] ALSA device list:
[    2.389251]   #0: rockchip,hdmi
[    2.392695] ttyS0 - failed to request DMA, use interrupt mode
[    2.416379] usb 1-1.3: new full-speed USB device number 3 using dwc2
[    2.429439] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    2.443725] devtmpfs: mounted
[    2.448633] Freeing unused kernel memory: 1024K
[    2.497907] devfreq 10091000.gpu: Couldn't update frequency transition information.
[    2.586218] usb 1-1.3: New USB device found, idVendor=20bc, idProduct=5500
[    2.593280] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.600760] usb 1-1.3: Product: Twin USB Joystick
[    2.605493] usb 1-1.3: Manufacturer: ShanWan
[    2.631280] input: ShanWan Twin USB Joystick as /devices/platform/10180000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:20BC:5500.0001/input/input1
[    2.696939] ---------lxm----add----evdev_connect,1401,dev_name(&evdev->dev)=(null),dev_no=1
[    2.696939]
[    2.707011] ---------lxm----add----evdev_connect,1408,evdev->handle.name=event1,dev_no=1
[    2.707011]
[    2.717101] betop 0003:20BC:5500.0001: input: USB HID v1.11 Gamepad [ShanWan Twin USB Joystick] on usb-10180000.usb-1.3/input0
NAME=Buildroot[    2.729043] betop 0003:20BC:5500.0001: Force feedback for betop devices by huangbo <huangbobupt@163.com>

VERSION=2018.02-rc3-g4aa12f56fa-dirty
ID=buildroot
VERSION_ID=2018.02-rc3
PRETTY_NAME="Buildroot 2018.02-rc3"
Starting logging: [    2.761255] input: ShanWan Twin USB Joystick as /devices/platform/10180000.usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:20BC:5500.0002/input/input2
OK
[    2.780424] random: nonblocking pool is initialized
Populating /dev using udev: [    2.836176] ---------lxm----add----evdev_connect,1401,dev_name(&evdev->dev)=(null),dev_no=2
[    2.836176]
[    2.852941] ---------lxm----add----evdev_connect,1408,evdev->handle.name=event2,dev_no=2
[    2.852941]
[    2.863029] betop 0003:20BC:5500.0002: input: USB HID v1.11 Gamepad [ShanWan Twin USB Joystick] on usb-10180000.usb-1.3/input1
[    2.874924] betop 0003:20BC:5500.0002: Force feedback for betop devices by huangbo <huangbobupt@163.com>
[    2.885335] usbhid 1-1.3:1.2: couldn't find an input interrupt endpoint
[    2.927783] udevd[73]: starting version 3.2.7
[    2.970027] udevd[73]: specified group 'kvm' unknown
[    2.987673] udevd[74]: starting eudev-3.2.7
[    3.715301] FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
[    3.727899] [EXFAT] trying to mount...
[    3.801063] [EXFAT] mounted successfully
done
read-only file system detected...done
realpath: /dev/block/by-name/misc: No such file or directory
Will now mount all partitions in /etc/fstab
strings: : No such file or directory
Note: Create /.skip_fsck to skip fsck
 - The check might take a while if didn't shutdown properly!
Handling /dev/rkflash0p4 / ext2 rw,noauto 1
Wrong fs type(ext2) for /dev/rkflash0p4
Handling /dev/rkflash0p5 /data ext2 defaults 0
Mounting /dev/rkflash0p5(ext2) on /data
[    4.590039] EXT2-fs (rkflash0p5): warning: mounting unchecked fs, running e2fsck is recommended
Log saved to /tmp/mountall.log
Starting ui: S40 recovery
/etc/init.d/S40_recovery: line 21: /usr/bin/recovery: not found
Starting network: OK
/etc/init.d/S49launcher: line 33: :
aplay /usr/bin/open.wav
sleep 0.5

#export XDG_CONFIG_HOME=/data
export XDG_RUNTIME_DIR=/data
/usr/bin/gbx75_spk-init.sh
sync
echo "1-1" > /sys/bus/usb/drivers/usb/unbind
sleep 1
#/usr/bin/gameui.sh start &
#/usr/bin/ffplay -x 1366 -y 768 -hide_banner -nostats -fs -vcodec h264 -autoexit /usr/local/share/minigui/res/images/logo.mp4
#echo "1-1" > /sys/bus/usb/drivers/usb/bind
#while  [ "1" = "1" ]
#       do
#       if [ `ps -ef |grep /usr/bin/game |grep -v "grep" |wc -l` == 0 ] && [ `ps -ef |grep start.sh |grep -v "grep" |wc -l` == 0 ]; then
#               echo "game status"
#               /usr/bin/game &
#       fi
#done
/usr/bin/game &
: not found
Starting ui: =========add lv 49launcher
Starting ui:
[    5.256452] vendor storage:20190527 ret = -1
error: XDG_RUNTIME_DIR not set in the environment.
sdl get_audio_device: default
Duplicate formats in ff_merge_formats detected
Post Color Buffer Success
[   11.480188] rockchip-vop 10118000.vop: [drm:vop_crtc_enable] Update mode to 1280x720p60, type: 11
dd: writing '/dev/fb0': No space left on device
7201+0 records in
7200+0 records out
No persistent location to store SSH host keys. New keys will be
generated at each boot. Are you sure this is what you want to do?
Starting dropbear sshd: OK
Debug: configfs_init
mkdir: can't create directory '/sys/kernel/config/usb_gadget/rockchip/functions/uac1.gs0': No such file or directory
mkdir: can't create directory '/sys/kernel/config/usb_gadget/rockchip/functions/uac2.gs0': No such file or directory
[   12.184690] file system registered
mkdir: can't create directory '/sys/kernel/config/usb_gadget/rockchip/functions/mtp.gs0': No such file or directory
mkdir: can't create directory '/sys/kernel/config/usb_gadget/rockchip/functions/rndis.gs0': No such file or directory
mkdir: can't create directory '/sys/kernel/config/usb_gadget/rockchip/functions/acm.gs6': No suc[   12.231291] Mass Storage Function, version: 2009/09/11
h file or directory
[   12.240700] LUN: removable file: (no medium)
===add lv FB_SetVideoMode w:1280,h:720===========
mkdir: can't create directory '/sys/kernel/config/usb_gadget/rockchip/functions/uvc.gs6': No such file or directory
[   12.334672] read descriptors
[   12.337997] read strings
initialize_gameres 686
MainWinProc sdCardExist=0
sh: write error: No such device
# ======media_play=======
 ipc_main_thread, 382
 ipc_main_thread, 403
audio_cfg_file :(null)
minigui_game export AUDIODEV=default
/usr/bin/ffplay -hide_banner -nostats -vn -volume 25 -nodisp -ss 1 -autoexit /usr/local/share/minigui/res/music/Track1.mp3
sdl get_audio_device: default
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2

# cd /
# ls
bin       init      media     proc      sdcard    userdata
data      lib       mnt       root      sys       usr
dev       lib32     oem       run       tmp       var
etc       linuxrc   opt       sbin      udisk
#

 

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

3 hours ago, Spanner said:

Then One Day.... I GOT IN - TRON... :)

Nice... 

3 hours ago, Spanner said:
ntfs: driver 2.1.32 [Flags: R/W DEBUG].

interesting.. probably still not enough to use ntfs with a card I suppose.

 

Curious about what might be exposed related to the wireless connectivity if anything.

  

Still trying to determine what changes are established after invoking an entry under known 'paddle' designations, perhaps some udev device rule (has been suggested), where the paddle is enabled and the stick becomes disabled. It's something that seems to be established prior to firing up the app used for game launch.  It could allow us to make more use of the GSP paddle controls outside of myarcade's current scopes.  Or just interesting to know what's going on behind the scenes to establish the unique device state.

Link to comment
Share on other sites

Posted (edited)

Its can read a USB Stick plugged into the front USB-C ports... :) if you do not want to use sdcard, or a USB Stick with FAT32 on.
 

[ 9717.546481] usb 1-1.1: new high-speed USB device number 5 using dwc2
[ 9717.659003] usb 1-1.1: New USB device found, idVendor=0d7d, idProduct=1900
[ 9717.665968] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9717.673492] usb 1-1.1: Product: USB DISK 2.0
[ 9717.678219] usb 1-1.1: Manufacturer:
[ 9717.682718] usb 1-1.1: SerialNumber: 0766063900E4
[ 9717.691928] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[ 9717.699555] scsi host0: usb-storage 1-1.1:1.0
[ 9718.708362] scsi 0:0:0:0: Direct-Access              USB DISK 2.0     PMAP PQ: 0 ANSI: 0 CCS
[ 9718.948528] sd 0:0:0:0: [sda] 473088 512-byte logical blocks: (242 MB/231 MiB)
[ 9718.957455] sd 0:0:0:0: [sda] Write Protect is off
[ 9718.963167] sd 0:0:0:0: [sda] No Caching mode page found
[ 9718.968575] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9718.981441]  sda: sda1
[ 9718.988066] sd 0:0:0:0: [sda] Attached SCSI removable disk

It can read my WIFI dongle too...

[10181.937214] usb 1-1.1: new high-speed USB device number 6 using dwc2
[10182.064559] usb 1-1.1: New USB device found, idVendor=148f, idProduct=3070
[10182.071735] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10182.079234] usb 1-1.1: Product: 802.11 n WLAN
[10182.083690] usb 1-1.1: Manufacturer: Ralink
[10182.088036] usb 1-1.1: SerialNumber: 1.0


 

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

Loading Breakout
 

Fail to system /usr/bin/ffplay -hide_banner -nostats -vn -volume 25 -nodisp -ss 1 -autoexit /usr/local/share/minigui/res/music/Track4.mp3, exit game
 run_ffplay_thread, 556
exit ipc_main_thread, fd = 20
clean_ipc_queue
exit media_exit
cfgfilepath:/usr/lib/libretro/retroarch/a2600_4_3.cfg
background:cp "/usr/lib/libretro/retroarch/background_cfg/CRTV.cfg" /tmp/background.cfg
enterGame: /data/Games/Atari_Games/Atari 2600/Breakout.a26
 game run : 15,-tv.scanlines 0 -tia.fs_stretch 0 -Border.Type 1 -Entry.Path 0;/data/Games/Atari_Games/Atari 2600/Breakout.a26
[14750.256941] sh (553): drop_caches: 1
 cmd=/data/start_local_sd.sh 1 15 "-tv.scanlines 0 -tia.fs_stretch 0 -Border.Type 1 -Entry.Path 0" "/data/Games/Atari_Games/Atari 2600/Breakout.a26"
[14816.064982] usb 1-1.2: USB disconnect, device number 7
buf remove@/devices/platform/10180000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:20BC:5500.0004/input/input4/event3
need_reinit_input 0

 

  • Like 1
Link to comment
Share on other sites

Posted (edited)
4 hours ago, Spanner said:

my WIFI dongle too

What brand dongle are you using with what controller? 

 

4 hours ago, Spanner said:

USB Stick plugged into the front

What's the device name seen as? Does it have to be mounted separately?

 

3 hours ago, Spanner said:
need_reinit_input 0

Interesting, not sure which statement is most significant, must use the cmd variable later to launch the start script, but the paddle secret not in the script command. Wondering if other types use need_reinit_input with a different value passed.

 

Can you compare this with the ra-mame launch of "super breakout"? That also enables paddles except executes RA instead of stella.

 

Or I suppose compare to any non paddle game launch.  Thank you!

Edited by big_guitar
Link to comment
Share on other sites

or else it's just reinitializing things generally after any usb hotplug event i suppose, but otherwise the cmd parms themselves do not establish the paddle activation, as having executed the equivalent in scripts previously was not sufficient on its own

Link to comment
Share on other sites

Posted (edited)

This is the joystick, I think it has 2 modes, one for the joystick and one for the paddle.
 

Starting logging: [    2.761255] input: ShanWan Twin USB Joystick as /devices/platform/10180000.usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:20BC:5500.0002/input/input2

It looks like it does something to it here when it runs a paddle game maybe it activates input 3 on it, the paddle...
It looks like the joystick has 2 devices on it, input2 - joystick and input3 - paddle.

buf remove@/devices/platform/10180000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:20BC:5500.0004/input/input4/event3
need_reinit_input 0
7 hours ago, big_guitar said:

What brand dongle are you using with what controller? 

 

What's the device name seen as? Does it have to be mounted separately?

 

Interesting, not sure which statement is most significant, must use the cmd variable later to launch the start script, but the paddle secret not in the script command. Wondering if other types use need_reinit_input with a different value passed.

 

Can you compare this with the ra-mame launch of "super breakout"? That also enables paddles except executes RA instead of stella.

 

Or I suppose compare to any non paddle game launch.  Thank you!

My WIFI dongle is a WU71RL USB WIFI Dongle so is a Ralink.
It uses these ko's:

mac80211.ko
rt2x00lib.ko
rt2800lib.ko
rt2x00usb.ko
rt2800usb.ko

it works in PCUAE, more info is here... https://thec64community.online/thread/1167/pcuae-network-internet-available-pcuae1

Edited by Spanner
Link to comment
Share on other sites

Posted (edited)
1 hour ago, Spanner said:

It looks like the joystick has 2 devices on it, input2 - joystick and input3 - paddle.

Thanks for that, wouldn't the remove@ be a removal action for event3 and thus opposite (vs add@)?  found some C code related to udev hot-plug usb actions. 

Let me know if you can capture a similar run for a non-paddle game so we can check out specific differences, thank you! 

 

My WIFI dongle is a WU71RL USB WIFI Dongle so is a Ralink.

Mostly curious about what else could work natively on GSP, although I know some have combined a MAYFLASH adapter (mayflash.com) with 8bitdo dongles... 

 

 

Edited by big_guitar
Link to comment
Share on other sites

AGSP use the same Rootfs as the Atari2600 Plus its the same Buildroot...

VERSION=2018.02-rc3-g4aa12f56fa-dirty
ID=buildroot
VERSION_ID=2018.02-rc3
PRETTY_NAME="Buildroot 2018.02-rc3"

so I can adapt PCUAE for the Atari2600 so it runs its modes and that just change it from booting demenu.bin and get tit to run its GUI instead from a USB Stick, PCUAE uses FAT32 and MBR because all the other mini's do.
 

Link to comment
Share on other sites

Every time you move the joystick on the SDCard screen(Highlight Storage or SDCard) or on the Atari games in the GUI, it prints this...
 

[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2
[425]DrawTextEx2

 

Link to comment
Share on other sites

Devices...
 

# cd /dev
# ls
block               stdin               tty43
bsg                 stdout              tty44
bus                 tty                 tty45
char                tty0                tty46
console             tty1                tty47
cpu_dma_latency     tty10               tty48
disk                tty11               tty49
dri                 tty12               tty5
fb0                 tty13               tty50
fd                  tty14               tty51
full                tty15               tty52
fuse                tty16               tty53
hevc-service        tty17               tty54
hwrng               tty18               tty55
i2c-2               tty19               tty56
i2c-3               tty2                tty57
input               tty20               tty58
kmsg                tty21               tty59
log                 tty22               tty6
mali                tty23               tty60
mem                 tty24               tty61
memory_bandwidth    tty25               tty62
mmcblk0             tty26               tty63
mmcblk0p1           tty27               tty7
network_latency     tty28               tty8
network_throughput  tty29               tty9
null                tty3                ttyS0
ptmx                tty30               urandom
pts                 tty31               usb-ffs
random              tty32               usbmon0
rkflash0            tty33               usbmon1
rkflash0p1          tty34               usbmon2
rkflash0p2          tty35               vcs
rkflash0p3          tty36               vcs1
rkflash0p4          tty37               vcsa
rkflash0p5          tty38               vcsa1
sda                 tty39               vendor_storage
sda1                tty4                vpu-service
shm                 tty40               zero
snd                 tty41
stderr              tty42

 

Link to comment
Share on other sites

Posted (edited)
5 hours ago, Spanner said:

get tit to run its GUI instead from a USB Stick

Well this of course would be promising to get the GUI to run from scard.  Even without a custom gui app, if resource paths were also recognized from the sdcard standpoint, we could modify existing image files/mp3 songs as desired & other gui-app specific aspects potentially.  

Edited by big_guitar
Link to comment
Share on other sites

8 hours ago, Spanner said:
buf remove@/devices/platform/10180000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:20BC:5500.0004/input/input4/event3
need_reinit_input 0

In testing, simply issuing these statements in script before stella execution caused no significant impact, so something else is likely in play to establish proper environment settings.

 

No errors were generated by running them, but they were insufficient otherwise, unless initial trigger action met the known GSP qualified rules (such as, any file triggered under a folder named 'Atari 2600 Paddle' will enable paddle mode). Of course in the latter scenario, the GSP app establishes the proper settings on its own.

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