From e1ab57e3f52b4646d7e1ee0352b41d141badd023 Mon Sep 17 00:00:00 2001 From: Vegz78 <> Date: Tue, 2 Feb 2021 01:05:49 +0100 Subject: [PATCH] Recalbox support -Added McAirpos support and as game system on Recalbox -Added quick installation script for Recalbox -Silenced game launch and background text, put into /tmp/McAirpos.log instead -Added verbose argument option for old verbose launch with text to stdout --- McAirpos/MakeCode/MakeCode_Arcade.png | Bin 0 -> 115641 bytes McAirpos/Recalbox/es_systems.cfg_MakeCode_RB | 17 + McAirpos/Recalbox/makecode/custom.xml | 53 + McAirpos/Recalbox/makecode/data/console.svg | 1740 +++++++++++++++++ .../Recalbox/makecode/data/consolegame.svg | 1740 +++++++++++++++++ .../Recalbox/makecode/data/controller.svg | 1 + McAirpos/Recalbox/makecode/data/controls.svg | 1 + .../Recalbox/makecode/data/icon_empty.svg | 1 + .../Recalbox/makecode/data/icon_filled.svg | 1 + McAirpos/Recalbox/makecode/data/logo.svg | 1740 +++++++++++++++++ McAirpos/launCharc/launCharc | Bin 30876 -> 33928 bytes McAirpos/launCharc/launCharc.c | 283 ++- install_recalbox.sh | 76 + 13 files changed, 5561 insertions(+), 92 deletions(-) create mode 100644 McAirpos/MakeCode/MakeCode_Arcade.png create mode 100644 McAirpos/Recalbox/es_systems.cfg_MakeCode_RB create mode 100644 McAirpos/Recalbox/makecode/custom.xml create mode 100644 McAirpos/Recalbox/makecode/data/console.svg create mode 100644 McAirpos/Recalbox/makecode/data/consolegame.svg create mode 100644 McAirpos/Recalbox/makecode/data/controller.svg create mode 100644 McAirpos/Recalbox/makecode/data/controls.svg create mode 100644 McAirpos/Recalbox/makecode/data/icon_empty.svg create mode 100644 McAirpos/Recalbox/makecode/data/icon_filled.svg create mode 100644 McAirpos/Recalbox/makecode/data/logo.svg create mode 100644 install_recalbox.sh diff --git a/McAirpos/MakeCode/MakeCode_Arcade.png b/McAirpos/MakeCode/MakeCode_Arcade.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e786aeb5d85b1ed41507f11a815fe511d6276b GIT binary patch literal 115641 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 z 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 + MakeCode Arcade + MakeCode + /recalbox/share/roms/makecode + .elf .ELF + /usr/bin/launCharc %ROM% + makecode + makecode + + + + launCharc + + + + + diff --git a/McAirpos/Recalbox/makecode/custom.xml b/McAirpos/Recalbox/makecode/custom.xml new file mode 100644 index 0000000..bb5cb4b --- /dev/null +++ b/McAirpos/Recalbox/makecode/custom.xml @@ -0,0 +1,53 @@ + + 4 + + + + Developer : Microsoft + + + Initial release : January 6, 2020 + + + Website : http://arcade.makecode.com + + + Written in : STS/C++ + + + "Microsoft MakeCode Arcade is a web-based beginner-friendly + + + the hardware of arcade game systems in software + code editor to create retro arcade games ... + + + ... with MakeCode, you can either use blocks[, Python] + + + or JavaScript to build your program ..." + + + Video: "... 160x120 screen showing 16 colors ..." + + + Sound: "... 4-channel retro-appropriate sound system ..." + + + + + + + FF69B4 + + + 36D787 + + + 4B77BE + + + BE90D4 + + + diff --git a/McAirpos/Recalbox/makecode/data/console.svg b/McAirpos/Recalbox/makecode/data/console.svg new file mode 100644 index 0000000..9a93b08 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/console.svg @@ -0,0 +1,1740 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/McAirpos/Recalbox/makecode/data/consolegame.svg b/McAirpos/Recalbox/makecode/data/consolegame.svg new file mode 100644 index 0000000..9a93b08 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/consolegame.svg @@ -0,0 +1,1740 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/McAirpos/Recalbox/makecode/data/controller.svg b/McAirpos/Recalbox/makecode/data/controller.svg new file mode 100644 index 0000000..3fea990 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/controller.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/McAirpos/Recalbox/makecode/data/controls.svg b/McAirpos/Recalbox/makecode/data/controls.svg new file mode 100644 index 0000000..fe59622 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/controls.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/McAirpos/Recalbox/makecode/data/icon_empty.svg b/McAirpos/Recalbox/makecode/data/icon_empty.svg new file mode 100644 index 0000000..8ebfda7 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/icon_empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/McAirpos/Recalbox/makecode/data/icon_filled.svg b/McAirpos/Recalbox/makecode/data/icon_filled.svg new file mode 100644 index 0000000..9503b91 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/icon_filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/McAirpos/Recalbox/makecode/data/logo.svg b/McAirpos/Recalbox/makecode/data/logo.svg new file mode 100644 index 0000000..9a93b08 --- /dev/null +++ b/McAirpos/Recalbox/makecode/data/logo.svg @@ -0,0 +1,1740 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/McAirpos/launCharc/launCharc b/McAirpos/launCharc/launCharc index 383cc3c9437a19179dd9cf0181f47a9032dd501a..d14823592e3792a2f232a96b77a68daa3e7e6d70 100755 GIT binary patch literal 33928 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 literal 30876 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 t1fECHkZhCn2-L3%fqfk9F>;+k +// Global variables +FILE *fl; + + // Function which returns results from shell commands run through system() char* getSystemOutput(char* inputCommand) { @@ -57,7 +61,7 @@ char* getSystemOutput(char* inputCommand) { memset (systemOutput, 0, sizeof(systemOutput)); fp = popen(inputCommand, "r"); if (fp == NULL) { - printf("Failed to run command\n"); + fprintf(fl, "Failed to run command\n"); exit(1); } @@ -73,33 +77,73 @@ char* getSystemOutput(char* inputCommand) { int main(int argc, char** argv) { + // Variables for whole main function scope + char* path = "/dev/tty"; + int fd; + + // Read game file argument to execute - char* game = ""; - char* options = ""; + char game[200]; + memset (game, 0, sizeof(game)); + char options[10]; + memset (options, 0, sizeof(options)); if (argc == 2) { - game = argv[1]; + strcat(game, argv[1]); } else if (argc == 3) { - game = argv[2]; - options = argv[1]; + strcat(game, argv[2]); + strcat(options, argv[1]); } else if ((argc > 3) || (argc < 2)) { - printf("usage: launCharc [nomap / keybswap] [/path/to/arcadegame.elf]\n"); + printf("usage: launCharc [nomap / keybswap / verbose] [/path/to/arcadegame.elf]\n"); return 1; } - // Check for nomap option - system("clear"); - if (!strcmp(options, "nomap")) { - printf("%s argument detected,\nlaunCharc starting %s with no automatic gamepad mappings...\n", options, game); + // Check if run on Recalbox + system("clear"); + int isRecalbox = 0; + if (!strcmp("RECALBOX", getSystemOutput("uname -a | tr ' ' '\\n' | grep RECALBOX | tr -d [:cntrl:]"))) { + isRecalbox = 1; + // Copy game_file.elf to /tmp(.../roms folder mount exFAT and cannot execute files) + char copyCmd[300]; + memset (copyCmd, 0, sizeof(copyCmd)); + snprintf(copyCmd, 300, "cp %s /tmp/arcade.elf&&chmod +x /tmp/arcade.elf", game); + system(copyCmd); + system("/usr/bin/fbv2 /home/pi/McAirpos/McAirpos/MakeCode/MakeCode_Arcade.png >>/dev/null 2>&1"); + } + + + // Check for verbose option + if (!strcmp("verbose", options)) { + fl = stdout; + }else { + fl = fopen("/tmp/McAirpos.log", "w+"); + // Switch console to graphics mode to avoid disturbing text output in borders + if (strcmp("not a tty", getSystemOutput("tty | tr -d [:cntrl:]"))) { + fd = open(path, O_RDWR, 0); + if (fd < 0) { + perror("unable to open tty"); + return 1; + } + if (ioctl(fd, KDSETMODE, KD_GRAPHICS) < 0) { + perror("warn: ioctl KDSETMODE failed"); + } + close(fd); + } + } + + + // Check for nomap option + if (!strcmp(options, "nomap")) { + fprintf(fl, "%s argument detected,\nlaunCharc starting %s with no automatic gamepad mappings...\n", options, game); sleep(1); - } else { + } else { // Determine the number of connected gamepads - printf("launCharc starting %s with automatic gamepad mappings...\n", game); + fprintf(fl, "launCharc starting %s with automatic gamepad mappings...\n", game); char eventPaths[100]; memset (eventPaths, 0, sizeof(eventPaths)); int numberOfPads = 0; int numberOfEvents = 1 + atoi(getSystemOutput("ls /dev/input | sed 's/event//' | sort -n | tail -1 | tr -d [:cntrl:]")); - printf("\nHighest found input event number: %d\n", numberOfEvents); + fprintf(fl, "\nHighest found input event number: %d\n", numberOfEvents); char padEvent[2][20]; memset (padEvent, 0, sizeof(padEvent)); for (int i = 0; i < numberOfEvents; i++) { @@ -110,9 +154,9 @@ int main(int argc, char** argv) { char* event = getSystemOutput(padCommand); if (strcmp(event, "")) { if (numberOfPads == 0) { - printf("Gamepad search hits:\n"); + fprintf(fl, "Gamepad search hits:\n"); } - printf("%s, Output:%s", padCommand, getSystemOutput(padCommand)); + fprintf(fl, "%s, Output:%s", padCommand, getSystemOutput(padCommand)); char iString[20]; memset (iString, 0, sizeof(iString)); sprintf(iString, "%d", i); @@ -135,8 +179,8 @@ int main(int argc, char** argv) { } char* keybEvent = getSystemOutput(keybCommand); if (strcmp(keybEvent, "")) { - printf("Keyboard search hit:\n"); - printf("%s, Output:%s", keybCommand, getSystemOutput(keybCommand)); + fprintf(fl, "Keyboard search hit:\n"); + fprintf(fl, "%s, Output:%s", keybCommand, getSystemOutput(keybCommand)); } @@ -150,52 +194,56 @@ int main(int argc, char** argv) { char defaultEvent[67]; memset (defaultEvent, 0, sizeof(defaultEvent)); strcat(defaultEvent, "SCAN_CODES=/dev/input/"); - printf("\n"); + fprintf(fl, "\n"); if ((numberOfPads == 0) && !strcmp(keybEvent, "")) { - printf("\nFound no gamepads or keyboards to configure...\n"); - printf("\nPlease try the \"nomap\" option and configure /sd/arcade.cfg manually. If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); + fprintf(fl, "\nFound no gamepads or keyboards to configure...\n"); + fprintf(fl, "\nPlease try the \"nomap\" option and configure /sd/arcade.cfg manually. If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); sleep(1); - exit(1); + goto cleanup; } else if (numberOfPads == 2) { - printf("\nFound %d gamepads to configure on:\n%s, and\n%s\n\n", numberOfPads, padEvent[0], padEvent[1]); - sprintf(stringNumberOfPads, "%d.py)&",numberOfPads); + fprintf(fl, "\nFound %d gamepads to configure on:\n%s, and\n%s\n\n", numberOfPads, padEvent[0], padEvent[1]); + sprintf(stringNumberOfPads, "%d.py &)",numberOfPads); } else if ((numberOfPads == 1) && strcmp(keybEvent, "")) { - printf("\nFound %d gamepad to configure on:\n%s\n", numberOfPads, padEvent[0]); - printf("\nFound 1 keyboard to configure on:\n/dev/input/%s\n\n", keybEvent); + fprintf(fl, "\nFound %d gamepad to configure on:\n%s\n", numberOfPads, padEvent[0]); + fprintf(fl, "\nFound 1 keyboard to configure on:\n/dev/input/%s\n\n", keybEvent); strcat(strcat(eventPaths, "/dev/input/"), keybEvent); strcat(eventPaths, " "); - sprintf(stringNumberOfPads, "%d.py)&",numberOfPads); + sprintf(stringNumberOfPads, "%d.py &)",numberOfPads); } else if (strcmp(keybEvent, "")) { - printf("\nFound 1 keyboard to configure on:\n/dev/input/%s\n\n", keybEvent); + fprintf(fl, "\nFound 1 keyboard to configure on:\n/dev/input/%s\n\n", keybEvent); strcat(defaultEvent, keybEvent); strcat(uinputMapperOrKeyboard, "keyboard"); } else if (numberOfPads == 1) { - printf("\nFound %d gamepad to configure on:\n%s\n\n", numberOfPads, padEvent[0]); - sprintf(stringNumberOfPads, "%d.py)&",numberOfPads); + fprintf(fl, "\nFound %d gamepad to configure on:\n%s\n\n", numberOfPads, padEvent[0]); + sprintf(stringNumberOfPads, "%d.py &)",numberOfPads); } else { - printf("\nSomething went wrong, exiting...\n"); - printf("If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); + fprintf(fl, "\nSomething went wrong, exiting...\n"); + fprintf(fl, "If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); sleep(1); - exit(1); + goto cleanup; } // Launching uinput-mapper if (numberOfPads > 0) { - strcat(strcat(strcat(strcat(uiMapCommand, "(/home/pi/McAirpos/McAirpos/uinput-mapper/input-read -C -D "), eventPaths), "| sudo /home/pi/McAirpos/McAirpos/uinput-mapper/input-create -C -S /home/pi/McAirpos/McAirpos/uinput-mapper/configs/arcade"), stringNumberOfPads); + if (isRecalbox == 1) { + strcat(strcat(strcat(strcat(uiMapCommand, "(/home/pi/McAirpos/McAirpos/uinput-mapper/input-read -C -D "), eventPaths), "| /home/pi/McAirpos/McAirpos/uinput-mapper/input-create -C -S /home/pi/McAirpos/McAirpos/uinput-mapper/configs/arcade"), stringNumberOfPads); + } else { + strcat(strcat(strcat(strcat(uiMapCommand, "(/home/pi/McAirpos/McAirpos/uinput-mapper/input-read -C -D "), eventPaths), "| sudo /home/pi/McAirpos/McAirpos/uinput-mapper/input-create -C -S /home/pi/McAirpos/McAirpos/uinput-mapper/configs/arcade"), stringNumberOfPads); + } if (system(uiMapCommand) == 0) { - printf("Starting UInput-Mapper with command:\n%s\n", uiMapCommand); + fprintf(fl, "Starting UInput-Mapper with command:\n%s\n", uiMapCommand); int whileCount = 0; while (!strcmp("", getSystemOutput("cat /proc/bus/input/devices | grep -A 8 \"UInputMapper: MakeCode_Arcade\" | tr ' ' '\n' | grep event"))) { if (whileCount > 500) { - printf("\nTimed out trying to set up UInput-Mapper...\n"); - printf("If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); - exit(1); + fprintf(fl, "\nTimed out trying to set up UInput-Mapper...\n"); + fprintf(fl, "If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); + goto cleanup; } whileCount++; } @@ -203,9 +251,9 @@ int main(int argc, char** argv) { strcat(defaultEvent, uinputEvent); strcat(uinputMapperOrKeyboard, "UInputMapper"); } else { - printf("\nUInput-Mapper failed to start...\n"); - printf("If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); - exit(1); + fprintf(fl, "\nUInput-Mapper failed to start...\n"); + fprintf(fl, "If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); + goto cleanup; } // Alternative way to launch uinput-mapper /*if (!fork()) { @@ -219,12 +267,21 @@ int main(int argc, char** argv) { char sedCommand[100]; memset (sedCommand, 0, sizeof(sedCommand)); snprintf(sedCommand, 100, "sed -i \"1s&.*&\"%s\"&\" /sd/arcade.cfg", defaultEvent); + if (isRecalbox == 1) { + system("mount -o remount,rw /"); + } if (system(sedCommand) == 0) { - printf("Setting up %s in MakeCode Arcade game's /sd/arcade.cfg with:\n%s\n\n", uinputMapperOrKeyboard, defaultEvent); + fprintf(fl, "Setting up %s in MakeCode Arcade game's /sd/arcade.cfg with:\n%s\n\n", uinputMapperOrKeyboard, defaultEvent); } else { - printf("Please check path or write permissions for /sd/arcade.cfg and try again.\n\n"); + fprintf(fl, "Please check path or write permissions for /sd/arcade.cfg and try again.\n\n"); + if (isRecalbox == 1) { + system("mount -o remount,ro /"); + } goto cleanup; } + if (isRecalbox == 1) { + system("mount -o remount,ro /"); + } } @@ -236,32 +293,52 @@ int main(int argc, char** argv) { foundPxtFile = 1; } if (strcmp("", getSystemOutput("ps -A | grep pulse"))) { - system("sudo killall pulseaudio"); //Kill PulseAudio if running, can sometimes halt game looking for ALSA + if (isRecalbox == 1) { + system("killall pulseaudio >>/dev/null 2>&1"); //Kill PulseAudio if running, can sometimes halt game looking for ALSA + } else { + system("sudo killall pulseaudio >>/dev/null 2>&1"); //Kill PulseAudio if running, can sometimes halt game looking for ALSA + } } - char* path = "/dev/tty"; - int fd; fflush(stdout); + // Fork game execution on launch, so that it is executed // the same way it's done in-game on reset if (!fork()) { - //Switch console to graphics mode to avoid disturbing text output in borders - fd = open(path, O_RDWR, 0); - if (fd < 0) { - perror("unable to open tty"); - return 1; - } - if (ioctl(fd, KDSETMODE, KD_GRAPHICS) < 0) { - perror("warn: ioctl KDSETMODE failed"); - } - close(fd); + // Switch console to graphics mode to avoid disturbing text output in borders + if (strcmp("not a tty", getSystemOutput("tty | tr -d [:cntrl:]"))) { + fd = open(path, O_RDWR, 0); + if (fd < 0) { + perror("unable to open tty"); + return 1; + } + if (ioctl(fd, KDSETMODE, KD_GRAPHICS) < 0) { + perror("warn: ioctl KDSETMODE failed"); + } + close(fd); + } + + // Run copy of game to circumvent Recalbox' read-only file system + if (isRecalbox == 1) { + memset (game, 0, sizeof(game)); + strcat(game, "/tmp/arcade.elf"); + } + + // Silence the game launch + char gameString[200]; + memcpy(gameString, game, strlen(game)+1); + if (strcmp("verbose", options)) { + fclose(fl); + strcat(game, " >>/tmp/McAirpos.log 2>&1"); + } // Launch the game - if (system(game) == 36608) { - printf("%s was exited by the user\n\n", game); + int launchInt = system(game); + if ((launchInt == 36608) || (launchInt == 15)) { + fprintf(fl, "%s was exited by the user or reset in-game\n\n", gameString); } else { - printf("Please check path to and executable permissions for game_file.elf and try again.\n\n"); + fprintf(fl, "Please check path to and executable permissions for game_file.elf and try again.\n\n"); } //Alternative way to launch game, but I need to spawn new process in fork, not replace fork process //execl(game, game, NULL); @@ -271,7 +348,7 @@ int main(int argc, char** argv) { // Wait for fork/game to launch and get running game's process name struct stat pxtFileBuffer; - char processID[20]; + char processID[20]; memset (processID, 0, sizeof(processID)); char processCommand[100]; memset (processCommand, 0, sizeof(processCommand)); @@ -282,15 +359,15 @@ int main(int argc, char** argv) { whileCount++; snprintf(processCommand, 100, "head -1 /proc/%s/comm >>/dev/null 2>&1", processID); if (whileCount > maxCount) { - printf("\nTimed out trying to find game's process ID...\n"); - printf("If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); + fprintf(fl, "\nTimed out trying to find game's process ID...\n"); + fprintf(fl, "If stuck, please read or open a related issue at https://github.com/Vegz78/McAirpos.\n"); goto cleanup; } // Check until found if /tmp/pxt-pid file exists without opening it, time out otherwise if (0 == foundPxtFile) { if (0 != stat("/tmp/pxt-pid", &pxtFileBuffer)) { if (whileCount > maxCount -1) { - printf("\nDid not find the file /tmp/pxt-pid...\n"); + fprintf(fl, "\nDid not find the file /tmp/pxt-pid...\n"); } continue; } else { @@ -309,7 +386,7 @@ int main(int argc, char** argv) { char processName[50]; memset (processName, 0, sizeof(processName)); snprintf(processName, 50, "%s", getSystemOutput(processCommand)); - printf("\nFound running game process \"%s\" on PID=%s\n\n", processName, processID); + fprintf(fl, "\nFound running game process \"%s\" on PID=%s\n\n", processName, processID); // Check every 2 secounds if a game process is still active @@ -322,14 +399,14 @@ int main(int argc, char** argv) { memset (newProcessID, 0, sizeof(newProcessID)); besure: while (strcmp(processID, "")) { - //printf("%s@PID=%s is keeping launCharc alive...\n", processName, processID); + //fprintf(fl, "%s@PID=%s is keeping launCharc alive...\n", processName, processID); sleep(2); snprintf(newProcessID, 20, getSystemOutput(processCheckCmd)); if (strcmp(processID, newProcessID)) { if (strcmp(newProcessID, "")) { - printf("\"%s\" restarted on PID=%s\n", processName, newProcessID); + fprintf(fl, "\"%s\" restarted on PID=%s\n", processName, newProcessID); } else { - printf("PID not found for \"%s\", trying again...\n", processName); + fprintf(fl, "PID not found for \"%s\", trying again...\n", processName); } snprintf(processID, 20, "%s", newProcessID); } @@ -339,43 +416,65 @@ int main(int argc, char** argv) { sleep(3); snprintf(processID, 20, getSystemOutput(processCheckCmd)); if (strcmp(processID, "")) {goto besure;} - else {printf("PID still not found for \"%s\", game exited?\nTerminating launCharc...\n", processName);} + else {fprintf(fl, "PID still not found for \"%s\", game exited?\nTerminating launCharc...\n", processName);} // Kill any remaining/orphaned game processes before exit char killAllCmd[100]; memset (killAllCmd, 0, sizeof(killAllCmd)); - snprintf(killAllCmd, 100, "killall %s 2>&1", processName); - system(killAllCmd); + if (strcmp("verbose", options)) { + snprintf(killAllCmd, 100, "killall -q %s >>/tmp/McAirpos.log 2>&1", processName); + }else{ + snprintf(killAllCmd, 100, "killall %s 2>&1", processName); + } + system(killAllCmd); cleanup: - system("sudo killall input-create 2>&1 & sudo killall input-read 2>&1"); + if (strcmp("verbose", options)) { + if (isRecalbox == 1) { + system("killall -q input-create >>/tmp/McAirpos.log 2>&1 && killall -q input-read >>/tmp/McAirpos.log 2>&1"); + }else { + system("sudo killall -q input-create >>/tmp/McAirpos.log 2>&1 && sudo killall -q input-read >>/tmp/McAirpos.log 2>&1"); + } + }else { + if (isRecalbox == 1) { + system("killall input-create 2>&1 && killall input-read 2>&1"); + }else { + system("sudo killall input-create 2>&1 && sudo killall input-read 2>&1"); + } + } // The following code is borrowed from https://github.com/hobbitalistair/termfix: // Terminal Fixer's cleanup part, which returns control of the // framebuffer and input mode to calling process after game's exit - fd = open(path, O_RDWR, 0); - if (fd < 0) { - perror("unable to open tty"); - return 1; - } - - // This one fails without sudo, but doesn't seem needed for - // MakeCode Arcade games(comment out or leave as and option?). - if (ioctl(fd, VT_UNLOCKSWITCH, 1) < 0) { - //perror("warn: ioctl VT_UNLOCKSWITCH failed"); - } - - if (ioctl(fd, KDSETMODE, KD_TEXT) < 0) { - perror("warn: ioctl KDSETMODE failed"); - } - - if (ioctl(fd, KDSKBMODE, K_XLATE) < 0) { - perror("warn: ioctl KBSKBMODE failed"); - } - + if (strcmp("not a tty", getSystemOutput("tty | tr -d [:cntrl:]"))) { + fd = open(path, O_RDWR, 0); + if (fd < 0) { + perror("unable to open tty"); + return 1; + } + + // This one fails without sudo, but doesn't seem needed for + // MakeCode Arcade games(comment out or leave as and option?). + if (ioctl(fd, VT_UNLOCKSWITCH, 1) < 0) { + //perror("warn: ioctl VT_UNLOCKSWITCH failed"); + } + + if (ioctl(fd, KDSETMODE, KD_TEXT) < 0) { + perror("warn: ioctl KDSETMODE failed"); + } + + if (ioctl(fd, KDSKBMODE, K_XLATE) < 0) { + perror("warn: ioctl KBSKBMODE failed"); + } + }else if (isRecalbox == 1) { + system("/usr/bin/fbv2 /recalbox/system/resources/splash/logo-version.png >>/dev/null 2>&1"); + } system("stty sane"); - //system("clear"); + fclose(fl); + if (strcmp("verbose", options)) { + system("clear"); + } } return 0; diff --git a/install_recalbox.sh b/install_recalbox.sh new file mode 100644 index 0000000..875564e --- /dev/null +++ b/install_recalbox.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +# 1. Make sure to start in directory /home/pi +mount -o remount,rw / +mkdir -p /home/pi +cd /home/pi + +#if [[ $(pwd) = "/home/pi" ]]; then + echo "Working direcory ok!: $(pwd)" +else + echo "Something wrong with working directory, exiting script..." +exit 1 +fi + +# 2. 1nstall prerequesites and clone McAirpos repository +if [[ -d ./McAirpos ]]; then + echo "McAirpos repository present, countinuing without downloading..." +else + if [[ -f /usr/bin/wget ] && [ -f /usr/bin/tar ]]; then + echo "Fetching McAirpos..." + wget https://github.com/Vegz78/McAirpos/archive/master.tar.gz + tar -zxf ./master.tar.gz -C /home/pi + mv /home/pi/McAirpos-master /home/pi/McAirpos + rm -f ./master.tar.gz + else + echo "wget or tar missing, exiting script..." + exit 1 + fi +fi + +# 3. Set up MakeCode Arcade files +cp -r /home/pi/McAirpos/McAirpos/MakeCode/sd / +chmod -R 755 /sd + +# 4. Set up EmulationStation +# Delete old es_systems.cfg backup file +if [[ -f /etc/emulationstation/es_systems.cfg_McAirpos.bak ]]; then + rm -f /etc/emulationstation/es_systems.cfg_McAirpos.bak +fi +# Installation of EmulationStation system needed for McAirpos +if [[ -f /etc/emulationstation/es_systems.cfg ]]; then + #Backup original es_systems.cfg file + cp /etc/emulationstation/es_systems.cfg /etc/emulationstation/es_systems.cfg_McAirpos.bak + # Removing MakeCode Arcade system, if present + sed -i '//{:a;/<\/system>/!{N;ba;}};/MakeCode<\/name>/d;' /etc/emulationstation/es_systems.cfg + # Appending updated MakeCode Arcade system from repository + set -i '$d' /etc/emulationstation/es_systems.cfg + cat /home/pi/McAirpos/McAirpos/Recalbox/es_systems.cfg_MakeCode_RB >> /etc/emulationstation/es_systems.cfg + # Add MakeCode Arcade carbon theme + cp -r /home/pi/McAirpos/McAirpos/Recalbox/makecode /etc/emulationstation/themes/recalbox-next/ +else + echo "Couldn't find the file /etc/emulationstation/es_systems.cfg, continuing script without..." +fi + +# 5. Create MakeCode Arcade games folder for RetroPie, if not present +if [[ -d ./RetroPie/roms/makecode ]]; then + echo "MakeCode Arcade games folder already present, continuing..." +else + mkdir -p /recalbox/share/roms/makecode + chmod -R 755 /recalbox/share/roms/makecode +fi + +# 6. Initialize uinput-mapper +#cd /home/pi/McAirpos/McAirpos/uinput-mapper +#make +#cd /home/pi + +# 7. Finish up +echo "McAirpos finished installing!" +echo "Download MakeCode Arcade .elf game files from https://vegz78.github.io/McAirpos" +echo "Run MakeCode Arcade games from RetroPie or from the Linux console/CLI:" +ln -s /home/pi/McAirpos/McAirpos/launCharc/launCharc /usr/bin/launCharc +launCharc +echo "" +echo "For more details, please visit https://github.com/Vegz78/McAirpos" +exit 0