Vegz78 / McAirpos

MakeCode Arcade games in RetroPie, Recalbox 7/8 and Batocera, running natively as ELF executables on Raspberry Pi OS/Linux ARM with 1-2 gamepads
https://Vegz78.github.io/McAirpos
MIT License
85 stars 11 forks source link

[GPi Case 2 + CM4 + RetroPie] No makecode menu in RetroPie (Solved, need to also update custom override es_systems.cfg, if present) #41

Closed deepdivered closed 2 years ago

deepdivered commented 2 years ago

I have installed this to a gpi 2 and there is no make code on the emulator menu.

I verified the files are all there and I can see it's entry in the config file.

Vegz78 commented 2 years ago

Thanks for trying McAirpos, @deepdivered!

Do you have any MakeCode Arcade .elf executable games in the …/roms/MakeCode folder(and reboot/restart EmulationStation after…)?

(To download games: https://vegz78.github.io/McAirpos/)

Vegz78 commented 2 years ago

?

deepdivered commented 2 years ago

yes, and I tried it again using this link provided and it still does not show up in the menu.

Vegz78 commented 2 years ago

Ok, could you please provide me with:

Just tested successfull install on latest Batocera and Recalbox on RPi, but encountered a regression on my side, or a breaking update for game menu/theme on latest RetroPie, which I am looking at right now.

deepdivered commented 2 years ago

One thing worth mentioning, I never could get it to install using curl as shown in the instructions. It gave a error about the site having a ssl issue or something. I had to upload it all over FTP and then make the install script executable and then run it.

its a cm4 its running an image with retropie version 4.7.20

pi@retropie:~ $ uname -a Linux retropie 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux

deepdivered commented 2 years ago

hmm It seems like i should really switch to batocera then on the gpi2. I had others recoment that os also. I just was used to running retropie from past use so i used that. After i get it working on the cm4 in a gpi2 case i plan to install this McAirpos on a gpi with a raspbery pi zero 2 w thats also currently using retropie. Unless i just change them both over to batocera since its currently working there you say.

Vegz78 commented 2 years ago

One thing worth mentioning, I never could get it to install using curl as shown in the instructions. It gave a error about the site having a ssl issue or something. I had to upload it all over FTP and then make the install script executable and then run it.

The certificate/ssl issue used to be possible to solve with something like this instead of the curl commands:

Raspberry Pi OS/RetroPie wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh&&chmod +x ./install.sh&&./install.sh

Recalbox 7: wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install_recalbox7.sh&&chmod +x ./install_recalbox7.sh&&./install_recalbox7.sh

Recalbox 8: wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install_recalbox8.sh&&chmod +x ./install_recalbox8.sh&&./install_recalbox8.sh

Recalbox 8 HDMI audio: wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install_recalbox8_HDMI-Audio-Fix.sh&&chmod +x ./install_recalbox8_HDMI-Audio-Fix.sh&&./install_recalbox8_HDMI-Audio-Fix.sh

Batocera: wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install_batocera.sh&&chmod +x ./install_batocera.sh&&./install_batocera.sh

Vegz78 commented 2 years ago

…i plan to install this McAirpos on a gpi with a raspbery pi zero 2 w thats also currently using retropie. Unless i just change them both over to batocera since its currently working there you say.

Please wait until the installer bug is fixed, unless you know the manual steps.

deepdivered commented 2 years ago

sorry that was i typo. i want i could never get it to install with curl like the instructions said to do.

i was able to run the installer fine once i just manually uploaded all the files to it. though i have this menu issue.

i am sorry no i do not remember when they changed it, its been a few years since i last used retropie. to see it on the menu do i have to use the carbon theme (i noticed that the carbon theme was mentioned in your scripts so i did try it and it was not visible in that theme eaither.)

deepdivered commented 2 years ago

ya ill wait for you to fix it and will do any testing you want. it will be less work to do that than re-image these things and set them up haha.

Vegz78 commented 2 years ago

Sorry, just remembered you were on v4.7.20...

deepdivered commented 2 years ago

this is a new setup. i just got these things a couple of days ago. it has never worked for me. everything else works. i can tell it to update if that will help it work with this makecode thing.

deepdivered commented 2 years ago

ok ya thats right its 4.7.2

Vegz78 commented 2 years ago

this is a new setup. i just got these things a couple of days ago. it has never worked for me. everything else works. i can tell it to update if that will help it work with this makecode thing.

I have bad experiences with updating, at least my manual installation "on-top" of Raspbian, which often break things. Should work better if you just flashed their ready-made image.

I you dare to update to latest 4.8, at least what I copy from my image is sure to compatible, and maybe the update restores your menu. Are theme images missing all around, or only MakeCode missing from your menu?

deepdivered commented 2 years ago

this is a new setup. i just got these things a couple of days ago. it has never worked for me. everything else works. i can tell it to update if that will help it work with this makecode thing.

I have bad experiences with updating, at least my manual installation "on-top" of Raspbian, which often break things. Should work better if you just flashed their ready-made image.

I you dare to update to latest 4.8, at least what I copy from my image is sure to compatible, and maybe the update restores your menu. Are theme images missing all around, or only MakeCode missing from your menu?

i installed the supreme gpi image on them both. it uses retropie and i think its bassed off the retropie os. should i update it or should i just reflash it to Batocera? its starting to sound like Batocera is just a better all-around build? these are for my 2 kids is that build more kid-friendly? one of my kids is learning to code with makecode arcade so i got this to run her games on it. much better solution it seems that than meowbit.

deepdivered commented 2 years ago

oh an its just that the makecode option is not on the menu. the menu itself works fine otherwise.

deepdivered commented 2 years ago

the installation of McAirpos did not break anything it just did not work to add makecode to the menu to launch the makecode games even though far as i can tell the install did all the things it was supposed to.

deepdivered commented 2 years ago

this is the image/ build i installed. https://www.patreon.com/m/supremeretrogaming/posts

Vegz78 commented 2 years ago

the installation of McAirpos did not break anything it just did not work to add makecode to the menu to launch the makecode games even though far as i can tell the install did all the things it was supposed to.

That's very good hear, since on my side, on RetroPie v4.8 fresh image, my installer suddenly broke the whole theme...

Could you try a cat /etc/emulationstation/es_systems.cfg to check if MakeCode is added as a system at the end of this file?

should i update it or should i just reflash it to Batocera? its starting to sound like Batocera is just a better all-around build? these are for my 2 kids is that build more kid-friendly? one of my kids is learning to code with makecode arcade so i got this to run her games on it. much better solution it seems that than meowbit.

I would be hard pressed to recommend any of them above the other. They are all great in their own way.

But the main reason I stick with RetroPie on most of my RPis (apart from laziness and not wanting to break things by updating too much) is that I have an "on-top" installation with a full Raspberry Pi OS with the PiXeL desktop environment beneath and besides the RetroPie installation. This because they are mainly used as various servers, game streaming clients, nomachine/rdesktop workstations, and not mainly as a retro gaming/arcade machine. Also my son and I learning to program Python, C++ and C. So RetroPie is the most flexible in this way, having a full Debian/Raspberry Pi OS installation included.

As for Recalbox and Batocera, they are much more restricted(to serve a more smooth user experience and harder to break), based on a minimal buildroot/busybox custom distro with locked down file system.

They really both excel as gaming machines/arcades, but not as free(to e.g. break things). Just started playing around with Batocera, and they might seem to embrace homebrew/independent game development more out of the box; Pixel8, pygame etc., but I could not say for sure.

They are all very open to new game systems and with mostly friendly and helpful communities and staff.

this is the image/ build i installed. https://www.patreon.com/m/supremeretrogaming/posts

Never heard of. Why use these supreme retro gaming images and not the official images?

Vegz78 commented 2 years ago

Hmmm, the new carbon-2021 theme seems to have entered into production on v4.7.19 in october 2021...: https://github.com/RetroPie/RetroPie-Setup/commit/3ce642043a347620b534cfd87888bda9b01620e9

deepdivered commented 2 years ago

the installation of McAirpos did not break anything it just did not work to add makecode to the menu to launch the makecode games even though far as i can tell the install did all the things it was supposed to.

That's very good hear, since on my side, on RetroPie v4.8 fresh image, my installer suddenly broke the whole theme...

Could you try a cat /etc/emulationstation/es_systems.cfg to check if MakeCode is added as a system at the end of this file?

should i update it or should i just reflash it to Batocera? its starting to sound like Batocera is just a better all-around build? these are for my 2 kids is that build more kid-friendly? one of my kids is learning to code with makecode arcade so i got this to run her games on it. much better solution it seems that than meowbit.

I would be hard pressed to recommend any of them above the other. They are all great in their own way.

But the main reason I stick with RetroPie on most of my RPis (apart from laziness and not wanting to break things by updating too much) is that I have an "on-top" installation with a full Raspberry Pi OS with the PiXeL desktop environment beneath and besides the RetroPie installation. This because they are mainly used as various servers, game streaming clients, nomachine/rdesktop workstations, and not mainly as a retro gaming/arcade machine. Also my son and I learning to program Python, C++ and C. So RetroPie is the most flexible in this way, having a full Debian/Raspberry Pi OS installation included.

As for Recalbox and Batocera, they are much more restricted(to serve a more smooth user experience and harder to break), based on a minimal buildroot/busybox custom distro with locked down file system.

They really both excel as gaming machines/arcades, but not as free(to e.g. break things). Just started playing around with Batocera, and they might seem to embrace homebrew/independent game development more out of the box; Pixel8, pygame etc., but I could not say for sure.

They are all very open to new game systems and with mostly friendly and helpful communities and staff.

this is the image/ build i installed. https://www.patreon.com/m/supremeretrogaming/posts

Never heard of. Why use these supreme retro gaming images and not the official images?

Hmm these are arcade machines that they will also play their make code games in as well as retro games. I also heard that biticera runs faster. I did not even know there were other non reteopie choices before I installed this image haha. I learned after that new options have came out since I made my first reteopie handheld like 6 years ago haha.

I used that image cause it was one of the recommended ones on the gpi case site. It had a build specifically for this case and model of pi. It's got the needed software for the device pre installed. Where if I go with botacera id have to installed some stuff on it and I imagined it would maybe be less stable and need more tweaking to get working.

Yea tomorrow morning ill get the output of that for you. I had looked my self beforehand since I saw it mentioned in the manual install and I saw it there but il show the exact output of it for you to see.

Vegz78 commented 2 years ago

Hmm these are arcade machines that they will also play their make code games in as well as retro games. I also heard that biticera runs faster. I did not even know there were other non reteopie choices before I installed this image haha. I learned after that new options have came out since I made my first reteopie handheld like 6 years ago haha.

That same use case is actually the same that triggered this whole project for me; I was looking for a learning project for coding, and wanted that my son could show and play his MakeCode Arcade game creations on the big screen and in RetroPie together with the rest of his games. Strange that Microsoft ignores this huge market for MakeCode by not sorting out the current compilation issues for Raspberry Pi/arm native executables(and maybe native executables for x86_x64 as well), and standardize the gamepad interface, instead of just focusing on the hand-held microcontroller devices and the web simulator. That would remove the need for my kludgy hack, and mutually boost both the MakeCode and RetroPie arcade communities, and lower the entrance threshold into other coding languages and projects.

Wouldn't know for certain about the speed, but since Recalbox and Batocera are both stripped down solutions running only strictly necessary services and tweaking for a smooth experience, I can imagine that they maybe run a bit more nimbly. Personally, I switch to game streaming with Moonlight, Parsec or Steam link etc. from our gaming rig/server to the Raspberrys whenever we want to play anything newer than PS1 (N64 and above), instead of using time to tweak the last CPU/GPU cycles out of these relatively small and weak computer boards. But we are different; some people like to get the last couple of mph out of their mopeds, while others just switch to a motorcycle or car instead. But there are still many reasons for or use cases where the moped is more practical or accessible than a car or motorbike, or the only option.

Yeah, there are a lot of options; the most famous being RetroPie, Recalbox, Batocera and Lakka, all good in their own ways.

I used that image cause it was one of the recommended ones on the gpi case site. It had a build specifically for this case and model of pi. It's got the needed software for the device pre installed. Where if I go with botacera id have to installed some stuff on it and I imagined it would maybe be less stable and need more tweaking to get working.

Ok, I see that Retroflag themselves recommend the supreme retro gaming images for their GPi cases, so they are probably good: https://support.retroflag.com//#:~:text=System%20made%20for

But I believe most support the GPi out of the box, too: https://www.recalbox.com/download/stable/rpi/rpizero2gpicase/ https://wiki.recalbox.com/en/basic-usage/preparation-and-installation/retroflag-gpi-case https://batocera.org/download RetroPie looks like more fiddling, so why tinker and risk running into hours of trouble when you can just flash instead?

Yea tomorrow morning ill get the output of that for you. I had looked my self beforehand since I saw it mentioned in the manual install and I saw it there but il show the exact output of it for you to see.

Now back to your problem, sorry for the delay, but it took me some time to figure out why and how to fix mye failing install script for RetroPie v>4.7.19...

The good news are that since your theme is not broken, you could probably just try to run the updated install script: wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh&&chmod +x ./install.sh&&./install.sh

To manually figure this out, I can for now think of 3 things that might be wrong and should be checked before going deeper into the matter:

  1. The _/etc/emulationstation/essystems.cfg is responsible for loading the system into the main menu, and must look exactly like this at the end of the file:

    <system>
    <name>MakeCode</name>
    <fullname>MakeCode Arcade</fullname>
    <path>/home/pi/RetroPie/roms/makecode</path>
    <extension>.elf .ELF</extension>
    <command>/home/pi/McAirpos/McAirpos/launCharc/launCharc %ROM%</command>
    <platform>makecode</platform>
    <theme>makecode</theme>
    </system>
    </systemList>

    Also check that the is correct for where you store your MCA games.

  2. Also make sure that you have MCA games, as .elf executable files(not .uf2 files), in the same roms folder as in above.

  3. Ensure executable permissions for your MCA games; chmod -R 755 /home/pi/RetroPie/roms/makecode/*, or same chmod for whatever roms folder you have for MCA games.

Good luck, hope that this works for you soon and that you return with a feedback of the results.

deepdivered commented 2 years ago

Now back to your problem, sorry for the delay, but it took me some time to figure out why and how to fix mye failing install script for RetroPie v>4.7.19...

The good news are that since your theme is not broken, you could probably just try to run the updated install script: wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh&&chmod +x ./install.sh&&./install.sh

Good luck, hope that this works for you soon and that you return with a feedback of the results.

I tried the new script first. here was the output.

pi@retropie:~ $ wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh&&chmod +x ./install.sh&&./install.sh --2022-06-16 18:21:34-- https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3095 (3.0K) [text/plain] Saving to: ‘install.sh.1’

install.sh.1 100%[===================>] 3.02K --.-KB/s in 0.002s

2022-06-16 18:21:35 (1.20 MB/s) - ‘install.sh.1’ saved [3095/3095]

Working direcory ok!: /home/pi McAirpos repository present, continuing... MakeCode Arcade games folder already present, continuing... make: Nothing to be done for 'default'. ln: failed to create symbolic link '/usr/bin/launCharc': File exists McAirpos finished installing! Please add a .elf game to the MakeCode roms folder and reboot RetroPie for the changes to take effect.

Download MakeCode Arcade .elf game files from https://vegz78.github.io/McAirpos Run MakeCode Arcade games from the RetroPie menu or from the Linux console/CLI: ./install.sh: line 69: /usr/bin/launCharc: Permission denied

For more details, please visit https://github.com/Vegz78/McAirpos

I checked the game i have in the folder was still there and has 755 perms for the game and the makecode folder also. and so i restarted and see no makecode menu option. i even changed the theme to carbon just in case and still no make code menu.

deepdivered commented 2 years ago

the installation of McAirpos did not break anything it just did not work to add makecode to the menu to launch the makecode games even though far as i can tell the install did all the things it was supposed to.

That's very good hear, since on my side, on RetroPie v4.8 fresh image, my installer suddenly broke the whole theme...

Could you try a cat /etc/emulationstation/es_systems.cfg to check if MakeCode is added as a system at the end of this file?

here it is.


  <system>
    <name>wine</name>
    <fullname>Wine</fullname>
    <path>/home/pi/RetroPie/roms/wine</path>
    <extension>.sh .conf .exe .SH .CONF .EXE</extension>
    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ wine %ROM%</command>
    <platform>wine</platform>
    <theme>wine</theme>
  </system>
  <system>
    <name>MakeCode</name>
    <fullname>MakeCode Arcade</fullname>
    <path>/home/pi/RetroPie/roms/makecode</path>
    <extension>.elf .ELF</extension>
    <command>/home/pi/McAirpos/McAirpos/launCharc/launCharc %ROM%</command>
    <platform>makecode</platform>
    <theme>makecode</theme>
  </system>
</systemList>
deepdivered commented 2 years ago

some other stuff that may help.

` pi@retropie:~ $ ls Config install.sh NVRAM RetroPie-BGM-Player Templates Desktop install.sh.1 Pictures RetroPie-Extra Videos Documents McAirpos Public RetroPie-Setup wine Downloads Music RetroPie scripts

pi@retropie:~/McAirpos $ ls ansible install_recalbox_v7.sh LICENSE docs install_recalbox_v8_HDMI-Audio-Fix.sh McAirpos HDMI-Audio-Fix.sh install_recalbox_v8.sh README.md install_batocera.sh install.sh

pi@retropie:~/RetroPie/roms $ ls BIOS makecode

trimmed out the extra systems for easy reading

pi@retropie:~/RetroPie/roms/makecode $ ls arcade-Chase-the-Pizza.elf

pi@retropie:~/RetroPie/roms/makecode $ chmod -R 755 /home/pi/RetroPie/roms/makecode/*

`

deepdivered commented 2 years ago

is this part of the issue? this was when i was looking into this symlink. it looks like the symlink is set to go to /home/pi/McAirpos/McAirpos/launCharc/launCharc but there is no launCharc folder inside the launCharc folder

Screenshot 2022-06-16 105610

but that was what it said when i tried to open the sym link in filezilla. when i look into it in ssh i got this

pi@retropie:/usr/bin $ readlink -f LaunCharc /usr/bin/LaunCharc

deepdivered commented 2 years ago

i also tried just deleting the application and then re-install it with the script i got this output.

`pi@retropie:~ $ wget --no-check-certificate https://raw.githubusercontent.com/Ve gz78/McAirpos/master/install.sh&&chmod +x ./install.sh&&./install.sh --2022-06-16 18:52:34-- https://raw.githubusercontent.com/Vegz78/McAirpos/maste r/install.sh Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.1 33, 185.199.108.133, 185.199.109.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111. 133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3095 (3.0K) [text/plain] Saving to: ‘install.sh.2’

install.sh.2 100%[===================>] 3.02K --.-KB/s in 0.004s

2022-06-16 18:52:34 (854 KB/s) - ‘install.sh.2’ saved [3095/3095]

Working direcory ok!: /home/pi Git already installed... Cloning into 'McAirpos'... remote: Enumerating objects: 937, done. remote: Counting objects: 100% (219/219), done. remote: Compressing objects: 100% (127/127), done. remote: Total 937 (delta 169), reused 106 (delta 90), pack-reused 718 Receiving objects: 100% (937/937), 23.06 MiB | 5.92 MiB/s, done. Resolving deltas: 100% (486/486), done. MakeCode Arcade games folder already present, continuing... make: Nothing to be done for 'default'. McAirpos finished installing! Please add a .elf game to the MakeCode roms folder and reboot RetroPie for the c hanges to take effect.

Download MakeCode Arcade .elf game files from https://vegz78.github.io/McAirpos Run MakeCode Arcade games from the RetroPie menu or from the Linux console/CLI: usage: launCharc [nomap / keybswap / verbose] [/path/to/arcadegame.elf]

For more details, please visit https://github.com/Vegz78/McAirpos `

deepdivered commented 2 years ago

ok i tried running it from ssh pi@retropie:/usr/bin$ launCharc /home/pi/RetroPie/roms/makecode/arcade-Chase-the-Pizza.elf and on the handheld, i still just saw the emulation station launcher. but as i powered it off and it closed emulationstation i saw the game was running. so looks like the application to run it is working it just the menu to launch it is not yet showing up.

Vegz78 commented 2 years ago

If you notice this line “install.sh.2” from your last run of wget and “install.sh.1” from the previous, it seems not to overwrite the original install.sh in the same folder.

Please delete all install.sh, before you try again, or try from another folder.

however, it does not explain why the system does not show up in the RetroPie menu. I cannot think of any other reasons right now other than the above 3 points…

Basically a entry in es_systems.cfg and a game in the corresponding folder should be everything needed for, at least, a themeless folder name to appear in RetroPie.

Very strange!

Vegz78 commented 2 years ago

And: sudo rm -rf /home/pi/McAirpos before….

Vegz78 commented 2 years ago

Think also you could delete/move to other location /etc/emulationstation/themes/carbon, which I don’t think is needed on v. >= 4.7.19…

deepdivered commented 2 years ago

i tried that. still not showing in menue. here was the output.

` pi@retropie:~ $ sudo rm -rf /home/pi/McAirpos pi@retropie:~ $ wget --no-check-certificate https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh&&chmod +x ./install.sh&&./install.sh --2022-06-16 22:52:22-- https://raw.githubusercontent.com/Vegz78/McAirpos/master/install.sh Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3095 (3.0K) [text/plain] Saving to: ‘install.sh.3’

install.sh.3 100%[===================>] 3.02K --.-KB/s in 0.004s

2022-06-16 22:52:22 (787 KB/s) - ‘install.sh.3’ saved [3095/3095]

Working direcory ok!: /home/pi Git already installed... Cloning into 'McAirpos'... remote: Enumerating objects: 937, done. remote: Counting objects: 100% (213/213), done. remote: Compressing objects: 100% (123/123), done. remote: Total 937 (delta 163), reused 104 (delta 88), pack-reused 724 Receiving objects: 100% (937/937), 23.06 MiB | 4.97 MiB/s, done. Resolving deltas: 100% (484/484), done. MakeCode Arcade games folder already present, continuing... make: Nothing to be done for 'default'. ln: failed to create symbolic link '/usr/bin/launCharc': File exists McAirpos finished installing! Please add a .elf game to the MakeCode roms folder and reboot RetroPie for the changes to take effect.

Download MakeCode Arcade .elf game files from https://vegz78.github.io/McAirpos Run MakeCode Arcade games from the RetroPie menu or from the Linux console/CLI: usage: launCharc [nomap / keybswap / verbose] [/path/to/arcadegame.elf]

For more details, please visit https://github.com/Vegz78/McAirpos ` i see the install with A number. but there are no install files there with a number.

Screenshot 2022-06-16 150235
deepdivered commented 2 years ago

Think also you could delete/move to other location /etc/emulationstation/themes/carbon, which I don’t think is needed on v. >= 4.7.19…

i dont understand what you are referring to here.

deepdivered commented 2 years ago

i figured what the heck. i am gonna give updating a try. when thats done ill let you know if it works.

deepdivered commented 2 years ago

so before i went and tried updating i got into the collections menu and i went to make a custom collection based on theme. makecode was in there and i selected it. it then opened a screen to select what games to put in it and there were none. however, i do have a .elf game in the makecode directory and it is set to 755 perms.

I wondered if maybe it does not like the _ in the file name of the game so i renamed it to just pizza.elf. still not working.

deepdivered commented 2 years ago

I FIGURED IT OUT!!! haha so when i was updating it i noticed it said this 20220616_160539 so i edited it there aswell and then it showed up. i also changed mugen's to mugen cause it looked like vs code thought it was commented or something. now there are 2 new issues. 1 the theme background music continues to play when the game opens and 2 the screen is not fit well.

20220616_162931

Vegz78 commented 2 years ago

Well done so far!

ok i tried running it from ssh pi@retropie:/usr/bin$ launCharc /home/pi/RetroPie/roms/makecode/arcade-Chase-the-Pizza.elf

Means that the launcher and game works, at least, though not yet showing correctly or launching as it should from EmulationStation...

i see the install with A number. but there are no install files there with a number.

That might be because you are looking inside the /home/pi/McAirpos folder, which is downloaded by the installation script, while the numbered _install.sh_s from wget you will probably find in the folder you run wget from. So you have probable been running an old version of install.sh, maybe in the folder /home/pi. But it does not matter anymore, since you have solved the theme/menu entry issue manually now.

I FIGURED IT OUT!!! haha so when i was updating it i noticed it said this

Very good and interesting! I have never heard of crvision, and is this something especially for the GPi mod of RetroPie? It will probably be too complex for me to support out-of-the box, but great to have in the issue/knowledge base for others with GPi cases(rather popular, I have noticed).

now there are 2 new issues. 1 the theme background music continues to play when the game opens and 2 the screen is not fit well.

MakeCode Arcade games operate on the lowest hardware level in all aspects, and are totally unaware and inconsiderate of everything surrounding them, espeially EmulationStation;

Normally and historically, EmulationStation quits or gracefully enters the background every time a launch command from the entry fields in es_systems.cfg is executed(You press button on game in menu, EmulationStation issues the system(sh -c "") inside its C++ code. The game then is free to launc, and when its process dies, EmulationStation is relaunched.

Luckily, this seems also to be the case for your system, since you get both game graphics and sound, albeit wrong aspect ratio and mixed audio streams.

Graphics/Aspect ratio

You can see in the /tmp/McAirpos.log, which graphics "mode"(screen resolution, color depth and refresh rate) that the MakeCode game has found and chosen, which will give you some information. On most systems, you will have resolution 1920x1080, or at least the same aspect ratio, and MCA games will find a way to display its 160x120 game screen correctly.

Therefore, I suspect you have to play around with screen settings for the frame buffer before launch. I cannot remember if others who have played around with this on GPi have encountered this problem, like @rdmueller here on GitHub, or @Neslou on the MakeCode Forum, though they both did it with Recalbox on the GPi; https://forum.makecode.com/t/makecode-arcade-on-recalbox/5914/6? https://forum.makecode.com/t/makecode-arcade-on-recalbox/5914/20 (RetroPie, but other handheld with other screen aspect ratio)

This is hard for me to support you on, since I do not have a GPi with its special quirks myself to test on, sorry.

Audio

I have encountered 3 ways audio is handled on different (EmulationStation) systems, in order of appearance; -Alsa audio, normally freed when EmulationStation quits/enters background on launch, if not, the game usually crashes instead of mixed streams. -PulseAudio, often hijacks Alsa so MCA games crashes. launCharc therefore kills all pulseaudio instances on launch, so that Alsa is freed. PulsAudio is then relaunched with EmulationStation, or by itself, when it gets access to hw:0,0 again. -pipewire puts itself inbetween the system and the Alsa driver in a rather nice way, and this is the only time(on Batocera so far, but this is coming on other systems soon) where I have experienced mixed audio streams. On Batocera solved itself when I had to switch tty to get the graphics displayed on screen, but if pipewire is present on and can be solved the same way on your RetroPie on the GPi, I unfortunately don't know.

On the latest RetroPie on my RPi4 I did not experience mixed sound, though I did not have any background music on in the EmulationStation menu, and I have seen now that EmulationStation is implemented in different ways between different images, which complicates matters. For instance, McAirpos runs well on Batocera for RPi4, but EmulationStation for RPi3 is a whole other beast I am still fighting with.

So there is much work coming in the future for McAirpos to support updated retro system versions on RPi4 and RPi3, which is my main focus(since RPi0s basically are stripped down RPi3s), and I am afraid there will be many installers in the future, both to support different versions of the different Retro systems, and for different hardware implementations. I will certainly not be able to support every combination, and need the community to help eachother and maybe pull request successfull installation scripts which I can categorize somehow. I am only able to test at home on vanilla RPi4 and RPi3 attached to a 1920x1080 screen via HDMI, and I can test audio via HDMI and jack.

Vegz78 commented 2 years ago

I am also contemplating introducing versioned releases for McAirpos, to keep in pace with the rapid development of the different systems, and to keep the number of checks and ifs down in launCharc. Meaning that backwards compatibility for older retro systems will be found exclusively in older releases, and support for newer retro systems in newer releases, where I also will prioritize my support efforts, unless I get som help from the community. I never imagined this number of combinations when I started out, hehe.

deepdivered commented 2 years ago

Well done so far!

ok i tried running it from ssh pi@retropie:/usr/bin$ launCharc /home/pi/RetroPie/roms/makecode/arcade-Chase-the-Pizza.elf

Means that the launcher and game works, at least, though not yet showing correctly or launching as it should from EmulationStation...

i see the install with A number. but there are no install files there with a number.

That might be because you are looking inside the /home/pi/McAirpos folder, which is downloaded by the installation script, while the numbered _install.sh_s from wget you will probably find in the folder you run wget from. So you have probable been running an old version of install.sh, maybe in the folder /home/pi. But it does not matter anymore, since you have solved the theme/menu entry issue manually now.

I FIGURED IT OUT!!! haha so when i was updating it i noticed it said this Very good and interesting! I have never heard of crvision, and is this something especially for the GPi mod of RetroPie? It will probably be too complex for me to support out-of-the box, but great to have in the issue/knowledge base for others with GPi cases(rather popular, I have noticed).

now there are 2 new issues. 1 the theme background music continues to play when the game opens and 2 the screen is not fit well.

MakeCode Arcade games operate on the lowest hardware level in all aspects, and are totally unaware and inconsiderate of everything surrounding them, espeially EmulationStation;

  • for graphics it tries to hijack the framebuffer on the active tty, fails if framebuffer/VT switch is busy, succeeds otherwise
  • for audio it demands direct access to Alsa driver on the first card/deveice number _hw:0,0. No access, and the game fails. Acsess means the game succeeds and sound plays regardless of other streams.
  • The controller interface is RAW Linux Input Substystem events(/dev/input/eventX), and though the game does not crash if it does not get hold of an event device, you get no controller input, and if it captures an input event device, it will hijack this, meaning that if other apps(like EmulationStation) runs in the background, they will also recieve these controller button presses, if they operate on the same eventX(Which they will do, since every controller has exectly one eventX each).

Normally and historically, EmulationStation quits or gracefully enters the background every time a launch command from the entry fields in es_systems.cfg is executed(You press button on game in menu, EmulationStation issues the system(sh -c "") inside its C++ code. The game then is free to launc, and when its process dies, EmulationStation is relaunched.

Luckily, this seems also to be the case for your system, since you get both game graphics and sound, albeit wrong aspect ratio and mixed audio streams.

Graphics/Aspect ratio

You can see in the /tmp/McAirpos.log, which graphics "mode"(screen resolution, color depth and refresh rate) that the MakeCode game has found and chosen, which will give you some information. On most systems, you will have resolution 1920x1080, or at least the same aspect ratio, and MCA games will find a way to display its 160x120 game screen correctly.

Therefore, I suspect you have to play around with screen settings for the frame buffer before launch. I cannot remember if others who have played around with this on GPi have encountered this problem, like @rdmueller here on GitHub, or @Neslou on the MakeCode Forum, though they both did it with Recalbox on the GPi; https://forum.makecode.com/t/makecode-arcade-on-recalbox/5914/6? https://forum.makecode.com/t/makecode-arcade-on-recalbox/5914/20 (RetroPie, but other handheld with other screen aspect ratio)

This is hard for me to support you on, since I do not have a GPi with its special quirks myself to test on, sorry.

Audio

I have encountered 3 ways audio is handled on different (EmulationStation) systems, in order of appearance; -Alsa audio, normally freed when EmulationStation quits/enters background on launch, if not, the game usually crashes instead of mixed streams. -PulseAudio, often hijacks Alsa so MCA games crashes. launCharc therefore kills all pulseaudio instances on launch, so that Alsa is freed. PulsAudio is then relaunched with EmulationStation, or by itself, when it gets access to hw:0,0 again. -pipewire puts itself inbetween the system and the Alsa driver in a rather nice way, and this is the only time(on Batocera so far, but this is coming on other systems soon) where I have experienced mixed audio streams. On Batocera solved itself when I had to switch tty to get the graphics displayed on screen, but if pipewire is present on and can be solved the same way on your RetroPie on the GPi, I unfortunately don't know.

On the latest RetroPie on my RPi4 I did not experience mixed sound, though I did not have any background music on in the EmulationStation menu, and I have seen now that EmulationStation is implemented in different ways between different images, which complicates matters. For instance, McAirpos runs well on Batocera for RPi4, but EmulationStation for RPi3 is a whole other beast I am still fighting with.

So there is much work coming in the future for McAirpos to support updated retro system versions on RPi4 and RPi3, which is my main focus(since RPi0s basically are stripped down RPi3s), and I am afraid there will be many installers in the future, both to support different versions of the different Retro systems, and for different hardware implementations. I will certainly not be able to support every combination, and need the community to help eachother and maybe pull request successfull installation scripts which I can categorize somehow. I am only able to test at home on vanilla RPi4 and RPi3 attached to a 1920x1080 screen via HDMI, and I can test audio via HDMI and jack.

Hmm I read that whole thread you linked me to on the forum and I never saw any mention or them changing anything with the display settings or then saying they had issues with resolution etc to begin with. Is it the correct post?

So changing the screen settings before launch where would I do that?

The background audio issue I can see an easy solution for. I will just disable it haha. the image came with it already enabled.

deepdivered commented 2 years ago

Oh so that screen shot I showed you that mentioned crvision. The crvision part was not what was important. What was important was the fact it said that the configuration of it would need to be copied in op/retropie/configs/all/emulationstation/es_systems.cfg so I wondered if that would be the case for makecode also. So I went to that file and it's just like the other cfg one we were change except that it did not have the entry for makecode in it. So I added it there also and then it showed up in the menu.

Vegz78 commented 2 years ago

Hmm I read that whole thread you linked me to on the forum and I never saw any mention or them changing anything with the display settings or then saying they had issues with resolution etc to begin with. Is it the correct post?

It is the right post, and @rdmueller and @Neslou are the only ones I know who have tried this on a GPi, albeit on vanilla Recalbox images, not RetroPie. My point was, that I don't know if they have encountered screen issues, but maybe they could help you.

So changing the screen settings before launch where would I do that?

I don't know for certain, I am only deducing what may be the problem. I am unfortunately unable to test on a GPi myself. Have you tried checking the /tmp/McAirpos log entry or with different screen resolutions to see if there's a difference?

The background audio issue I can see an easy solution for. I will just disable it haha. the image came with it already enabled.

That is the solution I would recommend as well... ;-)

Vegz78 commented 2 years ago

Did you get an output from:

  1. /tmp/McAirpos.log after running a game with the broken display, and
  2. the command fbset? (without any options fbset will display the mode settings of your framebuffer)?
Vegz78 commented 2 years ago

Any progress, @deepdivered? Would be nice if you got it to play well, eventually!

rdmueller commented 2 years ago

It is the right post, and @rdmueller and @Neslou are the only ones I know who have tried this on a GPi, albeit on vanilla Recalbox images, not RetroPie. My point was, that I don't know if they have encountered screen issues, but maybe they could help you.

yes, I used Recalbox and I can't remember that I had screen issues.

deepdivered commented 2 years ago

Any progress, @deepdivered? Would be nice if you got it to play well, eventually!

ill have to try that out in a bit. they are able to use it as is now its just not optimal. also I have no idea how to play with screen resolution as you are suggesting. any tips?

Vegz78 commented 2 years ago

First I would try posting here /tmp/McAirpos.log right after you have run and exited a working game, but with the wrong aspect ratio that you are experiencing.

Then, if you can connect a keyboard directly, I would exit RetroPie and go into the local Linux console. Is the GPi screen filled out fully here, while in text mode?

If yes, I would try to launch a game manually from the local Linux console, with launCharc /home/pi/RetroPie/roms/makecode/some-game-file.elf. Any difference? And please also post a _/tmp/McAirpos.log" file here after this operation, to see if there's a difference.

Then I would start playing with the fbset command; check and your current settings here by just typing in fbset without any options. Take note of this setting( ) to be able to revert.

Then check out the predefined/allowed modes in the file /etc/fb.modes, by issuing cat /etc/fb.modes.

Then see if changing to any of the other modes, like e.g. fbset -g 1920 1080 1920 1080 32 (not a relevant mode for your screen size, but use relevant combinations of for your device).

Launch game again and see if it changes/works better.

If you find a setting that works from the console, you can include the setting before launch and revert back to original in your es_systems.cfg file by separating multiple commands in the \<command> field; <command>fbset -g blah blah blah ... ; launCharc /home/pi/Retro.....elf ; fbset -g blah blah blah ...</command>

Alternatively, if not affecting other games/emulators, it might be set somehow at boot time, or by other means.

I am not entirely sure, but we will figure it out together!

Vegz78 commented 2 years ago

There is also a framebuffer terminal program, fbterm, that you can install and test how your framebuffer is set up from the Linux console(local command line, not ssh), exit via exit command or CTRL+C.

Vegz78 commented 2 years ago

Closing this issue, as the initial problem is solved. Please open a new issue about the screen problems, if there is anything I can do to help.

deepdivered commented 2 years ago

I will give that a try tomorrow and report what it says. I don't know how or where to mess with resolution settings.

On Sat, Jun 18, 2022, 12:30 AM Vegz78 @.***> wrote:

Did you get an output from:

  1. /tmp/McAirpos.log after running a game with the broken display, and
  2. the command fbset? (without any options fbset will display the mode settings of your framebuffer)?

— Reply to this email directly, view it on GitHub https://github.com/Vegz78/McAirpos/issues/41#issuecomment-1159385110, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHWS4P5XG3JKAGKYLIKH73VPV3ILANCNFSM5YXBOTTQ . You are receiving this because you were mentioned.Message ID: @.***>

Vegz78 commented 2 years ago

I opened the remaining screen resolution challenges as a new issue here, @deepdivered: https://github.com/Vegz78/McAirpos/issues/42

I will give that a try tomorrow and report what it says. I don't know how or where to mess with resolution settings.