Author Topic: Pap Gameta II Plus Custom Firmware  (Read 2434 times)

Giuvi72

Re: Pap Gameta II Plus Custom Firmware
« Reply #15 on: February 22, 2018, 03:42:36 pm »
Hello and thank you for this great work.
Only to say that I'm using Vice emulator and it seems to work. I've played my old love, Paradroid and it's a bit too fast but still usable.

Bien0

Re: Pap Gameta II Plus Custom Firmware
« Reply #16 on: March 07, 2018, 12:34:20 pm »
Hi there  ;)
I have a question about Gba emulation on gameta 2 plus..is there any way to fix the sound latency problem?
Its like 0,5 - 1 sec delay and it makes it  kinda hard to enjoy the games  :(

BVP

Re: Pap Gameta II Plus Custom Firmware
« Reply #17 on: March 08, 2018, 03:17:53 am »
Just tried it out, works great!  Especially love the PCEngine emulator!

Also PSX4all actually does seem to work, it's just spotty.  Eg Bomberman Party Edition seems to work great (just slight lag) if you load with no BIOS which defaults to the built-in emulated version.  If you load the same ROM with the no-sound emulator (to hope things speed up) it doesn't load at all and I get the same black screen others see.

ducdreamer

Re: Pap Gameta II Plus Custom Firmware
« Reply #18 on: March 20, 2018, 12:49:49 pm »
Hello Ererybody,
I have put the image on A 8 gb sd card.
But now I try to expand the file system.
But My windows 7 PC will not  see the card and tells me It have to be formatted.
So I cannot use AOMEI partition assistant to make the card 8Gb Again.
What must I use?
I hope to hear from you
Greetings Herman

Princebatman

Re: Pap Gameta II Plus Custom Firmware
« Reply #19 on: March 20, 2018, 03:33:26 pm »
Hello Ererybody,
I have put the image on A 8 gb sd card.
But now I try to expand the file system.
But My windows 7 PC will not  see the card and tells me It have to be formatted.
So I cannot use AOMEI partition assistant to make the card 8Gb Again.
What must I use?
I hope to hear from you
Greetings Herman

This may be a similar problem and solution that was posted on the rs-97 topic. I will copy and paste it:

after flashing windows would not see my sd card and demand to format it. if that's the case with you, then you will need to use minitool partition wizard to assign drive letters to partitions on the sd card. what happens is the firmware creates 4 partitons on the sd card. a swap, a root, an apps, and roms. root will likely be drive letter E. apps and roms will have no drive letter at all causing windows to see the whole thing as bad. right click on the apps and roms directorys from within minitool and assign them a drive letter. once you do that everything will work much much better.

ducdreamer

Re: Pap Gameta II Plus Custom Firmware
« Reply #20 on: March 20, 2018, 06:23:51 pm »
Hello Princebatman,

Dad did the trick
Thank you

Vert (OP)

Re: Pap Gameta II Plus Custom Firmware
« Reply #21 on: March 21, 2018, 12:31:32 am »
Hello Ererybody,
I have put the image on A 8 gb sd card.
But now I try to expand the file system.
But My windows 7 PC will not  see the card and tells me It have to be formatted.
So I cannot use AOMEI partition assistant to make the card 8Gb Again.
What must I use?
I hope to hear from you
Greetings Herman
the image contains a linux based system and to make changes you will need to use linux.
i use ubuntu and gparted to complete the task your suggesting.
the use of linux is exactly how i modified the firmware.
im sure there are programs that exist to modify ext3 partitions inside windows but a simple ubuntu live boot would get the job done easy.
one of the big draw backs to windows is the limited supported drive formats as where linux systems are able to read any drive format be it native linux, windows or mac as well as many other less known formats.
i personally use duel 32gb sd cards with my unit gparted takes a matter of seconds to expand move or other wise modify any partition format.
with out the ability to move/resize partitions i would have not been able to make the modifications as there was little to no space available to work with.
« Last Edit: March 21, 2018, 12:41:22 am by Vert »

ducdreamer

Re: Pap Gameta II Plus Custom Firmware
« Reply #22 on: March 21, 2018, 05:27:22 pm »
Hello Everybody,

I have installed this custom firmware.
But I have to open my device to get it done.
Is there A way to let the PAP boot from the external card?
Now Every time I must update the the card I must open the device.
and I am afraid to break the pins and ruin the screws
I hope somebody can help me
Also the linux partitions are not visible in antix linux so I must remove the card when I want to make changes to the system
Greetings Herman
« Last Edit: March 21, 2018, 05:35:57 pm by ducdreamer »

BVP

Re: Pap Gameta II Plus Custom Firmware
« Reply #23 on: March 22, 2018, 01:53:35 am »
Quote
Now Every time I must update the the card I must open the device.
and I am afraid to break the pins and ruin the screws

I've taken mine apart 3 times, I did snap one of the pins/clips on the cover but it still holds together fine with the screws (*whew!*).  Get a #000 size screw driver (found in any hardware shop in precision tool kits or cell phone repair kits) and be gentle, you shouldn't have a problem at all.  I also removed and replaced my internal SD Card with tweezers about 100 times now with no issues.

That said, I did make quite a few modifications to Vert's 1.0 version:

- Entirely removed the top row (previously a dummy folder icon) by using a transparent png and an unprintable unicode character for the name (hacky but effective since I can't figure out how to get those items to start anything other than an emulator)
- Reordered the Settings menu so the shutdown/reboot was last in the list, which is more standard and faster to use I think
- Added the missing emulators to the Games menu with new icons (Atari 2600/5200/7800/Lynx, Intellivision, TG-16, NEO-GEO, CPS, PlayStation)
- Modified each emulator to start in the correct games folder for that app when loading a rom, instead of the root Fat32 partition
- Added Doom & Duke Nukem 3D dingux ports (for the latter using 480x320 - only clips a small portion, and the game can't handle the 16:9 aspect ratio of 480x272 anyway), works great although I have to fix the key mappings still
- Added a ton of new backgrounds, because why not?  480x272 is the right size, google image search finds tons
- Added dynamic backgrounds so now they can be loaded from the external SD Card not just the internal one

That last one was achieved by simply making a sym-link in the wallpapers folder on the internal card to files on the external card since it's in a known location every time it's mounted, named Background1.png, Background2.png, etc.  The caveat is, those files *must* exist on the external SD Card or you're going to have a bad time (the background 'app' crashes when you try to scroll off the end of the list).

The only quirk so far - I'm noticing settings changes aren't always saving correctly.  Eg. When I change a backlight setting, it only saves it about 1/4 tries (same for setting the background).  Even then on a reboot it reverts back to the previous setting.  I have no idea why, I see it has some mechanism where it copies the config across partitions on boot, it's probably related to that.

When I get a chance and I'm in front of my desktop next I can grab the config files and images, if anyone wants to make similar customizations.

Big thanks to Vert though for all the work to let us build on!!
« Last Edit: April 03, 2018, 02:24:54 am by BVP »

Vert (OP)

Re: Pap Gameta II Plus Custom Firmware
« Reply #24 on: March 22, 2018, 04:38:31 pm »
Quote
Now Every time I must update the the card I must open the device.
and I am afraid to break the pins and ruin the screws

I've taken mine apart 3 times, I did snap one of the pins/clips on the cover but it still holds together fine with the screws (*whew!*).  Get a #2 size screw driver (found in any hardware shop in precision tool kits or cell phone repair kits) and be gentle, you shouldn't have a problem at all.  I also removed and replaced my internal SD Card with tweezers about 100 times now with no issues.

That said, I did make quite a few modifications to Vert's 1.0 version:

- Entirely removed the top row (previously a dummy folder icon) by using a transparent png and an unprintable unicode character for the name (hacky but effective since I can't figure out how to get those items to start anything other than an emulator)
- Reordered the Settings menu so the shutdown/reboot was last in the list, which is more standard and faster to use I think
- Added the missing emulators to the Games menu with new icons (Atari 2600/5200/7800/Lynx, Intellivision, TG-16, NEO-GEO, CPS, PlayStation)
- Modified each emulator to start in the correct games folder for that app when loading a rom, instead of the root Fat32 partition
- Added Doom & Duke Nukem 3D dingux ports (for the latter using 480x320 - only clips a small portion, and the game can't handle the 16:9 aspect ratio of 480x272 anyway), works great although I have to fix the key mappings still
- Added a ton of new backgrounds, because why not?  480x272 is the right size, google image search finds tons
- Added dynamic backgrounds so now they can be loaded from the external SD Card not just the internal one

That last one was achieved by simply making a sym-link in the wallpapers folder on the internal card to files on the external card since it's in a known location every time it's mounted, named Background1.png, Background2.png, etc.  The caveat is, those files *must* exist on the external SD Card or you're going to have a bad time (the background 'app' crashes when you try to scroll off the end of the list).

The only quirk so far - I'm noticing settings changes aren't always saving correctly.  Eg. When I change a backlight setting, it only saves it about 1/4 tries (same for setting the background).  Even then on a reboot it reverts back to the previous setting.  I have no idea why, I see it has some mechanism where it copies the config across partitions on boot, it's probably related to that.

When I get a chance and I'm in front of my desktop next I can grab the config files and images, if anyone wants to make similar customizations.

Big thanks to Vert though for all the work to let us build on!!

this is exactly what i had hoped would happen i did not plan to work on this much if at all anymore its great that someone has used it as a jumping off point and picked up where i left off adding more stuff ^^.
i do hope that more people come together and build on the work done here.

ducdreamer

Re: Pap Gameta II Plus Custom Firmware
« Reply #25 on: March 22, 2018, 05:47:41 pm »
Quote
Now Every time I must update the the card I must open the device.
and I am afraid to break the pins and ruin the screws

I've taken mine apart 3 times, I did snap one of the pins/clips on the cover but it still holds together fine with the screws (*whew!*).  Get a #2 size screw driver (found in any hardware shop in precision tool kits or cell phone repair kits) and be gentle, you shouldn't have a problem at all.  I also removed and replaced my internal SD Card with tweezers about 100 times now with no issues.

That said, I did make quite a few modifications to Vert's 1.0 version:

- Entirely removed the top row (previously a dummy folder icon) by using a transparent png and an unprintable unicode character for the name (hacky but effective since I can't figure out how to get those items to start anything other than an emulator)
- Reordered the Settings menu so the shutdown/reboot was last in the list, which is more standard and faster to use I think
- Added the missing emulators to the Games menu with new icons (Atari 2600/5200/7800/Lynx, Intellivision, TG-16, NEO-GEO, CPS, PlayStation)
- Modified each emulator to start in the correct games folder for that app when loading a rom, instead of the root Fat32 partition
- Added Doom & Duke Nukem 3D dingux ports (for the latter using 480x320 - only clips a small portion, and the game can't handle the 16:9 aspect ratio of 480x272 anyway), works great although I have to fix the key mappings still
- Added a ton of new backgrounds, because why not?  480x272 is the right size, google image search finds tons
- Added dynamic backgrounds so now they can be loaded from the external SD Card not just the internal one

That last one was achieved by simply making a sym-link in the wallpapers folder on the internal card to files on the external card since it's in a known location every time it's mounted, named Background1.png, Background2.png, etc.  The caveat is, those files *must* exist on the external SD Card or you're going to have a bad time (the background 'app' crashes when you try to scroll off the end of the list).

The only quirk so far - I'm noticing settings changes aren't always saving correctly.  Eg. When I change a backlight setting, it only saves it about 1/4 tries (same for setting the background).  Even then on a reboot it reverts back to the previous setting.  I have no idea why, I see it has some mechanism where it copies the config across partitions on boot, it's probably related to that.

When I get a chance and I'm in front of my desktop next I can grab the config files and images, if anyone wants to make similar customizations.

Big thanks to Vert though for all the work to let us build on!!
I do are hoping you upload the config files and images.
maby a little tutorial how to use them would be great

TechnopodMan

Re: Pap Gameta II Plus Custom Firmware
« Reply #26 on: March 22, 2018, 09:18:25 pm »
Today i receive my G2+, backup done and now Ryu it's on the Splash Screen. Perfect!
I'm testing, and have some many questions, but reading, the modifications made by BVP solve a lot...
Many thank's to all of you working on this and please Share all of your work!
I'm playing for 2 years with my old Gameta II only with the stock games (V1.01) and now with the new and your Custom firmware i can play more!!
Thanks again!! Many Thanks!!

BVP

Re: Pap Gameta II Plus Custom Firmware
« Reply #27 on: March 24, 2018, 11:28:10 pm »
OK a quick tutorial in 2 parts... to teach you how to get started modding things yoursef!

If anything is too technical, happy to answer questions - that's what this forum is all about!

If you want to skip this tutorial and just make smilar mods on your system, the files I modified and instructions can be found here:
    https://www.mediafire.com/folder/utj476qq5ntou/gameta

That link also contains a short video of the mods. The background change shown is from a file found on the external SD Card.
   
Also, I use linux, your mileage will vary on Windows. You can't do the dynamic background trick from Windows AFAIK.



Part 1 - Fundamentals

When you load up Vert's v1.0 img on your linux machine (or insert the SD card containing that image) three ext3 formatted linux partitions appear as drives (which actually just become folders to the Gameta system) and a single FAT32 data partition of folders:

105 MB Volume    <- Contains the UI config & resource files, extra apps, and other goodies
16 MB Volume     <- Contains app config files for mplayer (the app that plays music and video), camera, and the
                    built-in emulators
262 MB Volume    <- This contains the Linux OS that powers the device
15 GB Volume     <- This is the FAT32 partition that holds data like games you throw on it (the oddly named
                    'U Card' on the device). I extended this using gParted to fill the remainder of the 16 GB
                    card I'm using so the size for you might be different

All of the magic happens in the 105 MB Volume.  On boot the local folder gets mapped to /usr/local/ to the gameta system, as we'll see in the config in part 2.  A quick explanation of the layout:

105 MB Drive
  - game      <- Contains the original emulators
  - local     <- Gets mapped to /usr/local/ and contains all configuration
    - apps    <- The applications found in the bottom row of the main gameta screen
    - bin     <- Not important
    - dmenu   <- Houses the entire UI config
    - etc     <- Not important
    - home    <- Empty
    - lib     <- Empty
    - sbin    <- Not important except for show_pic.dge*
    - scrpts  <- Empty
    - share   <- Empty
  - usr       <- contains a sym-link** to mmc, i.e. the external SDCard when inserted
  - <more sym-links that aren't important right now>

* I suspect showpic.dge contains the boot/shutdown image, or at least is the binary called to show it (No, I have no idea how to modify that yet!)
** sym-link a.k.a. symbolic link: Unlike a hard link, a symbolic link does not contain the data in the target file; it points to another entry somewhere in the file system.  i.e. we can link to something that is going to exist after boot up but doesn't exist yet before boot-up.

Apps
In my setup, I added new apps from http://dl.openhandhelds.org/cgi-bin/dingoo.cgi. Just download and extract them into the apps folder above, and they can be run from the file explorer (or make a new icon in the main screen bottom row, how-to in part 2). Important: You must rename the executable to end in .dge if it isn't already or they will not show up in the Gameta file explorer and thus cannot be run!  Example: I put dingux-write into this folder to edit text files, it's executable is called 'dingux-write' and I had to rename this to 'dingux-write.dge' for it to work.



UI Configuration
Here's the file structure that shows where you can modify the UI, Backgrounds, and Sounds:

105 MB Drive
  - local/dmenu/
    - gSensor             <- Code to activate an accelerometer, device doesn't seem to have one though. Likely
                             here since this is a modified FW of another device
    - otg_configs         <- Looks like unimportant button mappings
    - pad                 <- Looks like unimportant controller on/off scripts
    - resources           <- Unused(?) icons
      - sounds            <- Where the user-selectable system sounds are kept. Modify away! (But see notes on
                             Sounds below)
    - scripts             <- Doesn't look important
    - themes              <- Where the UI configuration and icons are kept
      - cool_res          <- Where 'Main Screen' icons live
      - ipen              <- Main folder for the 'ipen' theme. Do not modify the themes.cfg sym-link here!
        - res             <- Icons for the Main Screen, many unused
          - mainface      <- Unused icons
          - subIcons      <- All 'game menu' icons live here
            - file_icon   <- All 'file explorer' icons live here
      - ipen-en           <- Where all of the 'English' config lives. Original FW has a folder for every
                             language, so menus display in the right language etc.
        - cooltheme.cfg   <- The config for the entire Main Screen. Modify away! (After reading notes on UI
                             Config in Part 2)
        - theme.cfg       <- The config for every Sub-menu, and where the earlier sym-link actually points to
                             (More in Part 2)
    - tv                  <- NTSC/Pal switching scripts
    - udc                 <- UDC enables USB mass storage(?), but empty so disabled - would be interesting to
                             try A320/380 scripts here to see if it activates...
    - wallpapers          <- All of the selectable backgrounds. Add files sized 480x272! Also see Backgrounds
                             below.
    - <many files you should not touch unless you know what you are doing!>


Sounds
The /local/dmenu/resources/sounds folder contains 5 folders (for each of the 5 selectable profiles in the settings menu) and 6 scripts to activate them. Based on my experiments, the system only seems to support 5 profiles period - activating a sixth caused the UI to go nuts and didn't work. So unless someone can get it to work it seems we're limited to replacing existing sounds instead of adding new ones. The folders named s1 through s5 (s6 is not used) each contain the .wav's you can replace.

FWIW the files named sound_1 though sound_5 are bash scripts that replace a specific config line in ../../demnu.ini to select the corresponding sound profile (the settings app runs each to make the selection). If this is confusing you can ignore it since it doesn't seem to be modifiable anyway.

Backgrounds
The /local/dmenu/wallpapers folder contains all of the images for user-selctable backgrounds. Just add as many as you want, the settings automatically picks them up for you! If you want Dynamic Backgrouds that can be modified via the external SD Card (so you don't have to take the thing apart to get fresh images), it's a little involved but here it is step-by-step (without images, sorry!):

1. Navigate to the /local/dmenu/wallpapers folder in your linux file explorer (In ubuntu like I use, the Files app)
2. Right-click the file-view and choose 'Open Terminal' to get a terminal into this folder
3. Run this command to create a sym-link: ln -s /mnt/mmc/backgrounds/background1.jpg
4. Repeat the previous step for as many backgrounds as you want, changing 'background1.jpg' to 'background2.jpg', etc. Type exit when done.
5. Now on your external SDCard, create a folder from the root called backgrounds and add the backgrounds you want with the same names as the previous step

If you do this there are two caveats:
1. You now should have the external SD card in at all times. Reason being, if you try to select a new background and the system can't find those files on the external card the system crashes (no permanent damage, just use the reboot button).
2. To make this work you have to fix the "SDCard Mount on Boot" bug I found by performing the steps below

Provided you've folowed these directions, you can now load backgrounds from the external SD Card!  This lets you keep things fresh by replacing these images with new ones anytime you want, without disassembling the device :)

Fixing the 'SDCard Mount On Boot' bug
You may have noticed that when you boot the device with an external SDCard inserted, the device won't 'see' it until you remove it then re-insert it.  The reason for this is that the system is not configured to mount the external card on boot (for some reason). To fix this:

1. Open the '262 MB Volume' - this contains the linux OS for the device
2. Make a backup copy of /etc/inittab somewhere safe, then edit this file in your favourite editor
3. In the '#Mount appfs' section add this line as the fourth line to mount the SDCard on boot:
       ::sysinit:/bin/mount /dev/mmcblk1p1 /mnt/mmc -t vfat -o rw,utf8,noatime
4. Save the file, and done!

My inittab looks like this (change in bold):

...
#Mount appfs
::sysinit:/bin/mount /dev/mmcblk0p2 /usr/mtdblock3  -t ext3  -o ro
::sysinit:/bin/mount /dev/mmcblk0p3 /usr/mtdblock4  -t ext3 -o rw
::sysinit:/bin/mount /dev/mmcblk0p4 /mnt/memory -t vfat -o rw,utf8
::sysinit:/bin/mount /dev/mmcblk1p1 /mnt/mmc -t vfat -o rw,utf8,noatime
::sysinit:/bin/mknod  /dev/tcsm c 238 73
::sysinit:/bin/cp  /boot/local/dmenu/dmenu_ln /tmp/dmenu_ln
...

Testing shows that if the SDCard is not present, the mount command is ignored, and no issues.  On boot if the card is present, it will now be available right away, no re-inserts needed.



Main Screen & Menu Config
This section is long so it's Part 2 :)
« Last Edit: March 24, 2018, 11:33:06 pm by BVP »

BVP

Re: Pap Gameta II Plus Custom Firmware
« Reply #28 on: March 25, 2018, 12:59:09 am »
Part 2 - Bending the UI To Your Will

Again, if anything is too technical I'm happy to answer questions - that's what this forum is all about!



Main Screen & Menu Config

The cooltheme.cfg configures the main screen menu and layout.  It looks like a proprietary config format similar to JSON (but isn't).  It is basically a bunch of 'key=value' pairs organized into sections with specific names - presumably the dmenu.bin app (which looks ike a custom build of the open source dmenu) picks these up for layout and to know what every button should do.

The file has a bunch of config at the top, not much of it looks used AFAICT.  Following this is the "Container LabelTable" section - this controls the icons and actions of the second row of the UI system.  Yes, to trick you up the top row is controlled by the bottom config, and the bottom row is controlled by the top config.  Luckily, I suspect the order of config doesn't matter, the section names are what seem to drive things.

Modifying the bottom app row
Anyway, the "Container LabelTable" section contains items that you can modify. Here's the format with an example:

...
Container LabelTable
{
    # The background image of this row:
    Icon = "table.png"
    # The folder location of all the icons for this row:
    IconDir = "/usr/local/dmenu/themes/cool_res/labels_icon/"
    LabelOriginX = 20
    LabelOriginY = 182
    LabelSpacing = 85
    ZoomedLabelOffsetX = 16
    ZoomedLabelOffsetY = 25
    SlideFrame = 3
    ListSelOriginY = 37

    Label GameRoom
    {
    Name = "GameRoom"        # This seems to have no function
    Icon = "gamer.png"       # Name of the icon file
    Executable = ""          # This is always blank?
    }
...


In this example, the table background lives in /usr/local/dmenu/themes/cool_res/labels_icon/table.png, the GameRoom icon lives in /usr/local/dmenu/themes/cool_res/labels_icon/gamer.png, and so on.

Some items start apps (Eg Music Player) while others bring up sub-menus defined in theme.cfg. What I can't figure out is:

1. How does the system know which to do (start an app or show a menu)? It might be hard-coded by the Label or Name value, which would suck since that limits what can be modified
2. The executable is always blank, so how does it know what to do?. It could also be that these keys are here but not used just so they match the same format in theme.cfg. This way lazy programmers like me can write one parser to read both instead of writing two parsers. But I digress...

So with the info above you should be able to remove/add/change things, but I haven't actually tried.

Modifying the top game row
Next is the "GamesContainer GamesTable" section - this is the section that defines the top row of the system (i.e. what were the quick-access games in the original FW, and a folder icon in Vert's CFW). Here's the format with an example:

...
GamesContainer GamesTable
{
    # The folder location of all the icons for this row:
    IconDir = "/usr/local/dmenu/themes/cool_res/games_icon/"
    IconsOriginX = 6
    IconsOriginY = 40
    IconsSpacing = 120
    ZoomedIconsX = 10
    ZoomedIconsY = 6
    SlideFrame = 3
    FontSize = 12

    NameOriginX = 48
    NameOriginY = 155
    NameSpacing = 112
   
    Label Game1      # Can be anything you want as long as it's unique
    {
    # Name of the icon file:
    Icon = "transparent.png"
    # Name of the icon to display:
    Name = " "
    # Full path & name of the emulator app to load:
    Executable = "null"
    # Folder path of where the emulator makes saves, etc.
    WorkDir = "/mnt/memory/"
    # Full path (and name?) of the rom to load in the emulator
    GamePath = "/mnt/memory/"
    }
...

For the life of me I haven't been able to make this row load any app except an emulator. Given the section name this is likely hard-coded in the system to only load emulators and games. To "remove" it, I used an icon that was 100% transparent (so you don't even see it).

To hide the name, I originally used a 'space' character but the UI did not like that! I think it is smart enough to trim whitespace to resolve this to nothing which it then hates. But, we know that the UI must be able to print unicode characters since Chinese is a supported language in the original FW and it does print those unicode characters. So it turns out you can trick it by using a non-printable unicode character like U+2001 in the example above, and it happily prints nothing! This and the transparent icon effectively make the top row disappear. I figure if it can't do anything useful, then get rid of it :)



Modifying the sub-menus
That's all cooltheme.cfg is good for AFAICT, so now let's look at theme.cfg.  This file controls the sub-menus, for example opening the Games menu (#1 in the bottom row), the emulators listed and their behaviour are controlled by this file.  How? The format again with examples:

<Most of the stuff at the top of this file looks unused AFAICT>
...
Menu "game" {
  # Icon when not 'selected' in main screen:
  Icon = "/usr/local/dmenu/themes/ipen/res/game_small.png"
  # Icon when 'selected' in main screen:
  Icon_focus = "/usr/local/dmenu/themes/ipen/res/game_big.png"
  # The name that shows in the upper-left corner on screen:
  Name = "Game Rooms"
 
  MenuItem "int" {        # Can be named anything as long as it's unique
    # Icon for this sub-menu item:
    Icon = "/usr/local/dmenu/themes/ipen/res/subIcons/int.png"
    # Name of Emulator to display:
    Name = "Intellivision"
    # Full path & name of emulator app to run:
    Executable = "/mnt/memory/Emulators/dingux-int/dingux-int.dge"
    # Folder path of where the emulator makes saves, etc.:
    WorkDir = "/mnt/memory/Emulators/dingux-int"
    # If true, select a rom before loading:
    Selector = true
    # If Selector=true, where to start in the File Explorer:
    SelectorDir = "/mnt/memory/game/Intellivision"
    # I have no idea, must be "!":
    Selectformat = "!"
  }
  MenuItem "2600" {
    Icon = "/usr/local/dmenu/themes/ipen/res/subIcons/atari.png"
    Name = "Atari 2600"
    Executable = "/mnt/memory/Emulators/dingux-2600/dingux-2600.dge"
    WorkDir = "/mnt/memory/Emulators/dingux-2600"
    # If false, do not pre-select a rom:
    Selector = false
  }
...

The name of the game menu section is "game". This has no tie at all to cooltheme.cfg so it must be a hard-coded name.

Everything else is self-exlanatory except the selector system. You may have noticed that when you choose some emulators from this menu, a File Explorer immediately appears letting you choose a game first, then the emulator is loaded with that game. Setting the Selector=true essentially enables this behaviour, and the SelectorDir= key tells the File Explorer which folder to start in when looking for games, as a convenience.

Some emulators however can't be started with a game, they have their own menuing system you must use (like the atari emulators). Setting the Selector=false disables the File Explorer behaviour (since it's not useful) and simply loads the emulator. In this case you can delete the other Selector* keys as they are not used.

The remainder of theme.cfg outlines the other sub-menus for each button on the bottom row of the main screen. The format is identical so no need to go over it, but what I will mention is that every menu concludes with an app that runs (i.e. with an Executable= key, as seen with the emulators).  For settings, take a look at the Executable= key - they are also executables! These are basically those <many files you should not touch unless you know what you are doing> files I mentioned in part 1. If you know bash scripting, feel free to modify and tweak away!



That's pretty much everything I've figured out so far. Up next:

1. Trying to find a way to make a serial connection to the device over a USB-to-Serial cable (I noticed in the inittab script a serial connection is created on usb0, so hopefully it's possible). If so that would open up a lot more opportunities to make modifications since it's likely how the developers made the FW in the first place.

Soul_Est

  • *
  • Posts: 26
Re: Pap Gameta II Plus Custom Firmware
« Reply #29 on: March 25, 2018, 04:42:22 am »
This is amazing @BVP ! It has definitely helped with what I am looking into.