commit cc8aee51b346a42469ec57a67bd39fef1901db26 Author: Guillaume Astier Ruiz Date: Tue Nov 6 14:20:43 2018 +0100 Migration from scratch de la version 2.10 NIHM diff --git a/BIN/CPS3.sh b/BIN/CPS3.sh new file mode 100755 index 0000000..f7974f4 --- /dev/null +++ b/BIN/CPS3.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +####### CONF ######## +ROM=$1 +SCREEN=$2 +PATH_ROMS=${HOME}/pyrharckade/MEDIA/CPS3/ROMS/ +BIN=${HOME}/pyrharckade/BIN/LIBRETRO/CPS3.so +####### CONF ######## +cd $PATH_ROMS + +${HOME}/pyrharckade/BIN/LIBRETRO/retroarch -c ${HOME}/pyrharckade/BIN/LIBRETRO/retroarch.cfg -L ${BIN} ${PATH_ROMS}/${ROM}.zip + +###### RESTART PYR ###### +cd ${HOME}/pyrharckade/ +./start.py $SCREEN +###### RESTART PYR ###### diff --git a/BIN/ConfigKeyboard.py b/BIN/ConfigKeyboard.py new file mode 100755 index 0000000..b97cf46 --- /dev/null +++ b/BIN/ConfigKeyboard.py @@ -0,0 +1,622 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +import os, sys, pygame, pygame.font, pygame.image,subprocess, sys, time +from pygame.locals import * +sys.path.insert(0, '../CONF/') +import urllib2 +import math +from DefResAndSysFile import * +Resolution=DefResolution() + +def getSize(filename): + st = os.stat(filename) + return st.st_size + + +pygame.init() + +finished = 0 + + +### PROD +pygame.init() +Y,X=Resolution +PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + +ConfigFile="../CONF/KeyMapKeyBoard.py" +KeyHack = 'NULL' +T1=0 +TDiff=0 +Space_bar=20 +XBAR=(Y-(Y/Space_bar)) +YBAR=(X/10) +WHERE_XBAR=Space_bar +WHERE_YBAR=(Y/2) - (YBAR/2) + + +fond = pygame.transform.scale(pygame.image.load("KEY/background_key.png").convert(),Resolution) +PyrScreen.blit(fond, (0,0)) +time.sleep(0.8) +SCREEN_W,SCREEN_H = Resolution +FontSize=(SCREEN_H/10) +print "FontSize => " + str(FontSize) +font = pygame.font.Font('../MEDIA/font.ttf', FontSize) + + + +resolution=SCREEN_W,SCREEN_H + +SIZE_IMG_BTN=int(SCREEN_H/3) + +WHERE_IMG_X = int(SCREEN_W /2) - int(SIZE_IMG_BTN/2) +WHERE_IMG_Y = int(SCREEN_H /2) - int(SIZE_IMG_BTN/2) +WHERE_IMG = (WHERE_IMG_X,WHERE_IMG_Y) +WHERE_TEXTE_X = int(SCREEN_W /6) +WHERE_TEXTE_Y = int(SCREEN_H /6) +WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) +WHERE_TEXTE_HACK=(10,10) + +pygame.joystick.init() +while KeyHack == 'NULL': + text1 = "Do you used a hack keyboard card ? (UP : Yes / DOWN : No)" + text2 = font.render(text1, True, pygame.Color("black"), pygame.Color("red")) + TDiff=5-(round(time.time() - T1)) +# PyrScreen.blit(fond, (0,0)) + pygame.display.update() +# PyrScreen.blit(text2,(Space_bar,WHERE_YBAR+(YBAR*2))) + PyrScreen.blit(text2,(WHERE_TEXTE_HACK)) + PngKeyPush="KEY/BTN_HACK.png" + PngKeyPushObj=pygame.transform.scale(pygame.image.load(PngKeyPush).convert_alpha(),(SIZE_IMG_BTN,SIZE_IMG_BTN)) + PyrScreen.blit(PngKeyPushObj,WHERE_IMG),(SIZE_IMG_BTN,SIZE_IMG_BTN) + + + for event in pygame.event.get(): + + if event.type == KEYDOWN and event.key == K_UP: + KeyHack='Y' + + if event.type == KEYDOWN and event.key == K_DOWN: + KeyHack='N' + + +if pygame.joystick.get_count() != 0: + print "Y a un joystick" + +if pygame.joystick.get_count() != 0 and KeyHack == 'N': + print "You select no HackKeyboard or joy = " + KeyHack + mon_joystick = pygame.joystick.Joystick(0) + mon_joystick.init() + + ListeCommandToSet=['BTN_J1_1','BTN_J1_2','BTN_J1_3','BTN_J1_4','BTN_J1_5','BTN_J1_6','SELECT_J1','COIN_J1','START_J1','BTN_J2_1','BTN_J2_2','BTN_J2_3','BTN_J2_4','BTN_J2_5','BTN_J2_6','SELECT_J2','COIN_J2','START_J2'] + JOY_TEST = 1 +else: + print "You select a HackKeyboard or keyboard = " + KeyHack + JOY_TEST = 0 + ListeCommandToSet=['UP_J1','DOWN_J1','LEFT_J1','RIGHT_J1','BTN_J1_1','BTN_J1_2','BTN_J1_3','BTN_J1_4','BTN_J1_5','BTN_J1_6','SELECT_J1','COIN_J1','START_J1','UP_J2','DOWN_J2','LEFT_J2','RIGHT_J2','BTN_J2_1','BTN_J2_2','BTN_J2_3','BTN_J2_4','BTN_J2_5','BTN_J2_6','SELECT_J2','COIN_J2','START_J2'] + +if not os.path.exists(ConfigFile): + file = open(ConfigFile, "w") + file.write("import pygame\n") + file.write("from pygame.locals import *\n\n") + if KeyHack == 'Y': + file.write("HACK_KEY_CARD = 'Y'\n\n") + if KeyHack == 'N': + file.write("HACK_KEY_CARD = 'N'\n\n") + + + +#else: +# os.remove(ConfigFile) +# file = open(ConfigFile, "w") +# file.write("import pygame\n") +# file.write("from pygame.locals import *\n\n") + + + + + + + + + + + + continuer = 1 + KeyToExport="NULL" + + for KeyPush in ListeCommandToSet: + print KeyPush + text1 = "Push a key for : " + KeyPush + "(" + str(TDiff) + ")" + text2 = font.render(text1, True, pygame.Color("black"), pygame.Color("white")) + #PyrScreen.blit(fond, (0,0)) + PyrScreen.blit(text2,(WHERE_TEXTE)) + + PngKeyPush="KEY/" + KeyPush + ".png" + PngKeyPushObj=pygame.transform.scale(pygame.image.load(PngKeyPush).convert_alpha(),(SIZE_IMG_BTN,SIZE_IMG_BTN)) + PyrScreen.blit(PngKeyPushObj,WHERE_IMG),(SIZE_IMG_BTN,SIZE_IMG_BTN) + + # PyrScreen.blit(PngKeyPushObj) + + # pygame.display.update() + + + print "Push a key for : " + KeyPush + + if T1 == 0: + T1=time.time() + + while KeyToExport == "NULL": + text1 = "Push a key for : " + KeyPush + "(" + str(TDiff) + ")" + text2 = font.render(text1, True, pygame.Color("black"), pygame.Color("white")) + TDiff=5-(round(time.time() - T1)) + # PyrScreen.blit(fond, (0,0)) + pygame.display.update() + # PyrScreen.blit(text2,(Space_bar,WHERE_YBAR+(YBAR*2))) + PyrScreen.blit(text2,(WHERE_TEXTE)) + + + for event in pygame.event.get(): + + if JOY_TEST != 0 and event.type == JOYBUTTONDOWN: + T1 = 0 + if event.button == 1: + print 'Btn 1 -> ' + str(event.button) + KeyToExport="1" + if event.button == 2: + print 'Btn 2 -> ' + str(event.button) + KeyToExport="2" + if event.button == 3: + print 'Btn 3 -> ' + str(event.button) + KeyToExport="3" + if event.button == 4: + print 'Btn 4 -> ' + str(event.button) + KeyToExport="4" + if event.button == 5: + print 'Btn 5 -> ' + str(event.button) + KeyToExport="5" + if event.button == 6: + print 'Btn 6 -> ' + str(event.button) + KeyToExport="6" + if event.button == 7: + print 'Btn 7 -> ' + str(event.button) + KeyToExport="7" + if event.button == 8: + print 'Btn 8 -> ' + str(event.button) + KeyToExport="8" + if event.button == 9: + print 'Btn 9 -> ' + str(event.button) + KeyToExport="9" + + + if JOY_TEST == 0 : + + if event.type == KEYDOWN: + T1 = 0 + if event.key == K_BACKSPACE: + print "backspace -> " + str(event.key) + KeyToExport="K_BACKSPACE" + if event.key == K_TAB: + print "tab -> " + str(event.key) + KeyToExport="K_TAB" + if event.key == K_CLEAR: + print "clear -> " + str(event.key) + KeyToExport="K_CLEAR" + if event.key == K_RETURN: + print "return -> " + str(event.key) + KeyToExport="K_RETURN" + if event.key == K_PAUSE: + print "pause -> " + str(event.key) + KeyToExport="K_PAUSE" + if event.key == K_ESCAPE: + print "escape -> " + str(event.key) + KeyToExport="K_ESCAPE" + if event.key == K_SPACE: + print "space -> " + str(event.key) + KeyToExport="K_SPACE" + if event.key == K_EXCLAIM: + print "exclaim -> " + str(event.key) + KeyToExport="K_EXCLAIM" + if event.key == K_QUOTEDBL: + print "quotedbl -> " + str(event.key) + KeyToExport="K_QUOTEDBL" + if event.key == K_HASH: + print "hash -> " + str(event.key) + KeyToExport="K_HASH" + if event.key == K_DOLLAR: + print "dollar -> " + str(event.key) + KeyToExport="K_DOLLAR" + if event.key == K_AMPERSAND: + print "ampersand -> " + str(event.key) + KeyToExport="K_AMPERSAND" + if event.key == K_QUOTE: + print "quote -> " + str(event.key) + KeyToExport="K_QUOTE" + if event.key == K_LEFTPAREN: + print "leftparen -> " + str(event.key) + KeyToExport="K_LEFTPAREN" + if event.key == K_RIGHTPAREN: + print "rightparen -> " + str(event.key) + KeyToExport="K_RIGHTPAREN" + if event.key == K_ASTERISK: + print "asterisk -> " + str(event.key) + KeyToExport="K_ASTERISK" + if event.key == K_PLUS: + print "plus -> " + str(event.key) + KeyToExport="K_PLUS" + if event.key == K_COMMA: + print "comma -> " + str(event.key) + KeyToExport="K_COMMA" + if event.key == K_MINUS: + print "minus -> " + str(event.key) + KeyToExport="K_MINUS" + if event.key == K_PERIOD: + print "period -> " + str(event.key) + KeyToExport="K_PERIOD" + if event.key == K_SLASH: + print "slash -> " + str(event.key) + KeyToExport="K_SLASH" + if event.key == K_0: + print "0 -> " + str(event.key) + KeyToExport="K_0" + if event.key == K_1: + print "1 -> " + str(event.key) + KeyToExport="K_1" + if event.key == K_2: + print "2 -> " + str(event.key) + KeyToExport="K_2" + if event.key == K_3: + print "3 -> " + str(event.key) + KeyToExport="K_3" + if event.key == K_4: + print "4 -> " + str(event.key) + KeyToExport="K_4" + if event.key == K_5: + print "5 -> " + str(event.key) + KeyToExport="K_5" + if event.key == K_6: + print "6 -> " + str(event.key) + KeyToExport="K_6" + if event.key == K_7: + print "7 -> " + str(event.key) + KeyToExport="K_7" + if event.key == K_8: + print "8 -> " + str(event.key) + KeyToExport="K_8" + if event.key == K_9: + print "9 -> " + str(event.key) + KeyToExport="K_9" + if event.key == K_COLON: + print "colon -> " + str(event.key) + KeyToExport="K_COLON" + if event.key == K_SEMICOLON: + print "semicolon -> " + str(event.key) + KeyToExport="K_SEMICOLON" + if event.key == K_LESS: + print "less -> " + str(event.key) + KeyToExport="K_LESS" + if event.key == K_EQUALS: + print "equals -> " + str(event.key) + KeyToExport="K_EQUALS" + if event.key == K_GREATER: + print "greater -> " + str(event.key) + KeyToExport="K_GREATER" + if event.key == K_QUESTION: + print "question -> " + str(event.key) + KeyToExport="K_QUESTION" + if event.key == K_AT: + print "at -> " + str(event.key) + KeyToExport="K_AT" + if event.key == K_LEFTBRACKET: + print "leftbracket -> " + str(event.key) + KeyToExport="K_LEFTBRACKET" + if event.key == K_BACKSLASH: + print "backslash -> " + str(event.key) + KeyToExport="K_BACKSLASH" + if event.key == K_RIGHTBRACKET: + print "rightbracket -> " + str(event.key) + KeyToExport="K_RIGHTBRACKET" + if event.key == K_CARET: + print "caret -> " + str(event.key) + KeyToExport="K_CARET" + if event.key == K_UNDERSCORE: + print "underscore -> " + str(event.key) + KeyToExport="K_UNDERSCORE" + if event.key == K_BACKQUOTE: + print "backquote -> " + str(event.key) + KeyToExport="K_BACKQUOTE" + if event.key == K_a: + print "a -> " + str(event.key) + KeyToExport="K_a" + if event.key == K_b: + print "b -> " + str(event.key) + KeyToExport="K_b" + if event.key == K_c: + print "c -> " + str(event.key) + KeyToExport="K_c" + if event.key == K_d: + print "d -> " + str(event.key) + KeyToExport="K_d" + if event.key == K_e: + print "e -> " + str(event.key) + KeyToExport="K_e" + if event.key == K_f: + print "f -> " + str(event.key) + KeyToExport="K_f" + if event.key == K_g: + print "g -> " + str(event.key) + KeyToExport="K_g" + if event.key == K_h: + print "h -> " + str(event.key) + KeyToExport="K_h" + if event.key == K_i: + print "i -> " + str(event.key) + KeyToExport="K_i" + if event.key == K_j: + print "j -> " + str(event.key) + KeyToExport="K_j" + if event.key == K_k: + print "k -> " + str(event.key) + KeyToExport="K_k" + if event.key == K_l: + print "l -> " + str(event.key) + KeyToExport="K_l" + if event.key == K_m: + print "m -> " + str(event.key) + KeyToExport="K_m" + if event.key == K_n: + print "n -> " + str(event.key) + KeyToExport="K_n" + if event.key == K_o: + print "o -> " + str(event.key) + KeyToExport="K_o" + if event.key == K_p: + print "p -> " + str(event.key) + KeyToExport="K_p" + if event.key == K_q: + print "q -> " + str(event.key) + KeyToExport="K_q" + if event.key == K_r: + print "r -> " + str(event.key) + KeyToExport="K_r" + if event.key == K_s: + print "s -> " + str(event.key) + KeyToExport="K_s" + if event.key == K_t: + print "t -> " + str(event.key) + KeyToExport="K_t" + if event.key == K_u: + print "u -> " + str(event.key) + KeyToExport="K_u" + if event.key == K_v: + print "v -> " + str(event.key) + KeyToExport="K_v" + if event.key == K_w: + print "w -> " + str(event.key) + KeyToExport="K_w" + if event.key == K_x: + print "x -> " + str(event.key) + KeyToExport="K_x" + if event.key == K_y: + print "y -> " + str(event.key) + KeyToExport="K_y" + if event.key == K_z: + print "z -> " + str(event.key) + KeyToExport="K_z" + if event.key == K_DELETE: + print "delete -> " + str(event.key) + KeyToExport="K_DELETE" + if event.key == K_KP0: + print "kp0 -> " + str(event.key) + KeyToExport="K_KP0" + if event.key == K_KP1: + print "kp1 -> " + str(event.key) + KeyToExport="K_KP1" + if event.key == K_KP2: + print "kp2 -> " + str(event.key) + KeyToExport="K_KP2" + if event.key == K_KP3: + print "kp3 -> " + str(event.key) + KeyToExport="K_KP3" + if event.key == K_KP4: + print "kp4 -> " + str(event.key) + KeyToExport="K_KP4" + if event.key == K_KP5: + print "kp5 -> " + str(event.key) + KeyToExport="K_KP5" + if event.key == K_KP6: + print "kp6 -> " + str(event.key) + KeyToExport="K_KP6" + if event.key == K_KP7: + print "kp7 -> " + str(event.key) + KeyToExport="K_KP7" + if event.key == K_KP8: + print "kp8 -> " + str(event.key) + KeyToExport="K_KP8" + if event.key == K_KP9: + print "kp9 -> " + str(event.key) + KeyToExport="K_KP9" + if event.key == K_KP_PERIOD: + print "kp_period -> " + str(event.key) + KeyToExport="K_KP_PERIOD" + if event.key == K_KP_DIVIDE: + print "kp_divide -> " + str(event.key) + KeyToExport="K_KP_DIVIDE" + if event.key == K_KP_MULTIPLY: + print "kp_multiply -> " + str(event.key) + KeyToExport="K_KP_MULTIPLY" + if event.key == K_KP_MINUS: + print "kp_minus -> " + str(event.key) + KeyToExport="K_KP_MINUS" + if event.key == K_KP_PLUS: + print "kp_plus -> " + str(event.key) + KeyToExport="K_KP_PLUS" + if event.key == K_KP_ENTER: + print "kp_enter -> " + str(event.key) + KeyToExport="K_KP_ENTER" + if event.key == K_KP_EQUALS: + print "kp_equals -> " + str(event.key) + KeyToExport="K_KP_EQUALS" + if event.key == K_UP: + print "up -> " + str(event.key) + KeyToExport="K_UP" + if event.key == K_DOWN: + print "down -> " + str(event.key) + KeyToExport="K_DOWN" + if event.key == K_RIGHT: + print "right -> " + str(event.key) + KeyToExport="K_RIGHT" + if event.key == K_LEFT: + print "left -> " + str(event.key) + KeyToExport="K_LEFT" + if event.key == K_INSERT: + print "insert -> " + str(event.key) + KeyToExport="K_INSERT" + if event.key == K_HOME: + print "home -> " + str(event.key) + KeyToExport="K_HOME" + if event.key == K_END: + print "end -> " + str(event.key) + KeyToExport="K_END" + if event.key == K_PAGEUP: + print "pageup -> " + str(event.key) + KeyToExport="K_PAGEUP" + if event.key == K_PAGEDOWN: + print "pagedown -> " + str(event.key) + KeyToExport="K_PAGEDOWN" + if event.key == K_F1: + print "f1 -> " + str(event.key) + KeyToExport="K_F1" + if event.key == K_F2: + print "f2 -> " + str(event.key) + KeyToExport="K_F2" + if event.key == K_F3: + print "f3 -> " + str(event.key) + KeyToExport="K_F3" + if event.key == K_F4: + print "f4 -> " + str(event.key) + KeyToExport="K_F4" + if event.key == K_F5: + print "f5 -> " + str(event.key) + KeyToExport="K_F5" + if event.key == K_F6: + print "f6 -> " + str(event.key) + KeyToExport="K_F6" + if event.key == K_F7: + print "f7 -> " + str(event.key) + KeyToExport="K_F7" + if event.key == K_F8: + print "f8 -> " + str(event.key) + KeyToExport="K_F8" + if event.key == K_F9: + print "f9 -> " + str(event.key) + KeyToExport="K_F9" + if event.key == K_F10: + print "f10 -> " + str(event.key) + KeyToExport="K_F10" + if event.key == K_F11: + print "f11 -> " + str(event.key) + KeyToExport="K_F11" + if event.key == K_F12: + print "f12 -> " + str(event.key) + KeyToExport="K_F12" + if event.key == K_F13: + print "f13 -> " + str(event.key) + KeyToExport="K_F13" + if event.key == K_F14: + print "f14 -> " + str(event.key) + KeyToExport="K_F14" + if event.key == K_F15: + print "f15 -> " + str(event.key) + KeyToExport="K_F15" + if event.key == K_NUMLOCK: + print "numlock -> " + str(event.key) + KeyToExport="K_NUMLOCK" + if event.key == K_CAPSLOCK: + print "capslock -> " + str(event.key) + KeyToExport="K_CAPSLOCK" + if event.key == K_SCROLLOCK: + print "scrollock -> " + str(event.key) + KeyToExport="K_SCROLLOCK" + if event.key == K_RSHIFT: + print "rshift -> " + str(event.key) + KeyToExport="K_RSHIFT" + if event.key == K_LSHIFT: + print "lshift -> " + str(event.key) + KeyToExport="K_LSHIFT" + if event.key == K_RCTRL: + print "rctrl -> " + str(event.key) + KeyToExport="K_RCTRL" + if event.key == K_LCTRL: + print "lctrl -> " + str(event.key) + KeyToExport="K_LCTRL" + if event.key == K_RALT: + print "ralt -> " + str(event.key) + KeyToExport="K_RALT" + if event.key == K_LALT: + print "lalt -> " + str(event.key) + KeyToExport="K_LALT" + if event.key == K_RMETA: + print "rmeta -> " + str(event.key) + KeyToExport="K_RMETA" + if event.key == K_LMETA: + print "lmeta -> " + str(event.key) + KeyToExport="K_LMETA" + if event.key == K_LSUPER: + print "lsuper -> " + str(event.key) + KeyToExport="K_LSUPER" + if event.key == K_RSUPER: + print "rsuper -> " + str(event.key) + KeyToExport="K_RSUPER" + if event.key == K_MODE: + print "mode -> " + str(event.key) + KeyToExport="K_MODE" + if event.key == K_HELP: + print "help -> " + str(event.key) + KeyToExport="K_HELP" + if event.key == K_PRINT: + print "print -> " + str(event.key) + KeyToExport="K_PRINT" + if event.key == K_SYSREQ: + print "sysreq -> " + str(event.key) + KeyToExport="K_SYSREQ" + if event.key == K_BREAK: + print "break -> " + str(event.key) + KeyToExport="K_BREAK" + if event.key == K_MENU: + print "menu -> " + str(event.key) + KeyToExport="K_MENU" + if event.key == K_POWER: + print "power -> " + str(event.key) + KeyToExport="K_POWER" + if event.key == K_EURO: + print "euro -> " + str(event.key) + KeyToExport="K_EURO" + + + + if TDiff != 0: + PyrScreen.blit(fond, (0,0)) + PyrScreen.blit(text2,(WHERE_TEXTE)) + PyrScreen.blit(PngKeyPushObj,WHERE_IMG),(SIZE_IMG_BTN,SIZE_IMG_BTN) + + if TDiff == -1: + print str(KeyPush) + " = No touch" + T1 = 0 + KeyToExport="NULL" + + #pygame.time.wait(10) + file.write(str(KeyPush) + " = " + str(KeyToExport) + "\n") + + + KeyToExport="NULL" + + #pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + + # PyrScreen.blit(fond, (0,0)) + PyrScreen.blit(fond, (0,0)) + pygame.display.update() + pygame.display.update() + + file.close() + diff --git a/BIN/FBA.sh b/BIN/FBA.sh new file mode 100755 index 0000000..67f16a3 --- /dev/null +++ b/BIN/FBA.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +####### CONF ######## +ROM=$1 +SCREEN=$2 +PATH_ROMS=${HOME}/pyrharckade/MEDIA/FBA/ROMS/ +BIN=${HOME}/pyrharckade/BIN/LIBRETRO/FBA.so +####### CONF ######## +cd $PATH_ROMS + +${HOME}/pyrharckade/BIN/LIBRETRO/retroarch -c ${HOME}/pyrharckade/BIN/LIBRETRO/retroarch.cfg -L ${BIN} ${PATH_ROMS}/${ROM}.zip + +###### RESTART PYR ###### +cd ${HOME}/pyrharckade/ +./start.py $SCREEN +###### RESTART PYR ###### diff --git a/BIN/FILE_EDITOR.py b/BIN/FILE_EDITOR.py new file mode 100755 index 0000000..5976e9d --- /dev/null +++ b/BIN/FILE_EDITOR.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- +# pyrharckade 2 is a simple pygame front for PIMAME +# version: 2.0A +# guillaume@tuxme.net +# GPL Licence + +from Tkinter import * +import os +FILE='../ROM_CONFIG_FILES.csv' +def SaveFile(): + open(FILE, "w").write(text.get(0., END)) + +TkBackupFile = Tk() +TkBackupFile.title('ROM_CONFIG_FILES.csv Editor') +BoutonSave = Button(TkBackupFile, text ='Save',command=SaveFile) +BoutonQuit = Button(TkBackupFile, text ='Quit',command=TkBackupFile.quit) + +BoutonSave.grid(row =0, column =0) +BoutonSave.configure() +BoutonQuit.grid(row =0, column =1) +BoutonQuit.configure() + +text = Text() +if os.path.exists(FILE): + text.insert(1.,open(FILE,'r').read()) +else: + text.insert(1.,open(FILE,'w+').read()) +text.grid(row=1, column=0, columnspan=25, sticky=N, padx=2, pady=2) +entree = Entry(TkBackupFile) +TkBackupFile.mainloop() diff --git a/BIN/GAMEBOY.sh b/BIN/GAMEBOY.sh new file mode 100755 index 0000000..96767aa --- /dev/null +++ b/BIN/GAMEBOY.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +####### CONF ######## +ROM=$1 +SCREEN=$2 +PATH_ROMS=${HOME}/pyrharckade/MEDIA/GAMEBOY/ROMS/ +BIN=${HOME}/pyrharckade/BIN/LIBRETRO/GAMEBOY.so +####### CONF ######## +cd $PATH_ROMS + +${HOME}/pyrharckade/BIN/LIBRETRO/retroarch -c ${HOME}/pyrharckade/BIN/LIBRETRO/retroarch.cfg -L ${BIN} ${PATH_ROMS}/${ROM}.zip + +###### RESTART PYR ###### +cd ${HOME}/pyrharckade/ +./start.py $SCREEN +###### RESTART PYR ###### diff --git a/BIN/GAW.sh b/BIN/GAW.sh new file mode 100755 index 0000000..0a86930 --- /dev/null +++ b/BIN/GAW.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +####### CONF ######## +ROM=$1 +SCREEN=$2 +PATH_ROMS=${HOME}/pyrharckade/MEDIA/GAW/ROMS/ +BIN=${HOME}/pyrharckade/BIN/LIBRETRO/GAW.so +####### CONF ######## +cd $PATH_ROMS + +${HOME}/pyrharckade/BIN/LIBRETRO/retroarch -c ${HOME}/pyrharckade/BIN/LIBRETRO/retroarch.cfg -L ${BIN} ${PATH_ROMS}/${ROM}.zip + +###### RESTART PYR ###### +cd ${HOME}/pyrharckade/ +./start.py $SCREEN +###### RESTART PYR ###### diff --git a/BIN/GNGEO.sh b/BIN/GNGEO.sh new file mode 100755 index 0000000..56b13f7 --- /dev/null +++ b/BIN/GNGEO.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +####### CONF ######## +ROM=$1 +SCREEN=$2 +PATH_ROMS=${HOME}/pyrharckade/MEDIA/GNGEO/ROMS/ +BIN=${HOME}/pyrharckade/BIN/LIBRETRO/FBA.so +####### CONF ######## +cd $PATH_ROMS + +${HOME}/pyrharckade/BIN/LIBRETRO/retroarch -c ${HOME}/pyrharckade/BIN/LIBRETRO/retroarch.cfg -L ${BIN} ${PATH_ROMS}/${ROM}.zip +echo ${HOME}/pyrharckade/BIN/LIBRETRO/retroarch -L ${BIN} ${PATH_ROMS}/${ROM}.zip + +###### RESTART PYR ###### +cd ${HOME}/pyrharckade/ +./start.py $SCREEN +###### RESTART PYR ###### diff --git a/BIN/GetListAndGame.py b/BIN/GetListAndGame.py new file mode 100755 index 0000000..33f1781 --- /dev/null +++ b/BIN/GetListAndGame.py @@ -0,0 +1,413 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- +# pyrharckade 2 is a simple pygame front for PIMAME +# version: 2.0A +# guillaume@tuxme.net +# GPL Licence + +import glob + + + +import os, sys, pygame, pygame.font, pygame.image,subprocess, sys, time +sys.path.insert(0, '../CONF/') + +import os +from ConfAllPath import * +from KeyMapKeyBoard import * +import shutil +from DefDownladPerGame import DownloadGraphical +if not glob.glob("ROM_CONFIG_FILES.csv"): + DownloadGraphical("SYS","ROM_CONFIG_FILES") + shutil.move("../MEDIA/SYS/ROMS/ROM_CONFIG_FILES.csv","./ROM_CONFIG_FILES.csv") + + + +from pygame.locals import * +from DefReadConfRomFile import DefReadConfRom +from ConfAllPath import DefConfPathHome +import urllib2 +import math +import subprocess +from DefResAndSysFile import * +from DefCheckEnvFile import DefCheckEnv +Resolution=DefResolution() +ParentOfPyr,ConfRomFile,AllMedia,ConfigKeyboardFile=DefConfPathHome() +Sys=DefCheckEnv() +MAX, MAX_EMU,li,emu=DefReadConfRom(ConfRomFile) +pygame.joystick.init() +if pygame.joystick.get_count() != 0: + mon_joystick = pygame.joystick.Joystick(0) + mon_joystick.init() + JOY_TEST = 1 + if HACK_KEY_CARD == 'Y': + JOY_TEST = 0 +else: + JOY_TEST = 0 + + + +pygame.init() + +print "MAX: " + str(MAX) +print "MAX_EMU: " + str(MAX_EMU) + + + + +finished = 0 + + +### PROD +pygame.init() +Y,X=Resolution +PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + +### TEST +#Y,X=(800,600) +#Resolution=(Y,X) +#PyrScreen = pygame.display.set_mode(Resolution) + + +Space_bar=20 +XBAR=(Y-(Y/Space_bar)) +YBAR=(X/10) +WHERE_XBAR=Space_bar +WHERE_YBAR=(Y/2) - (YBAR/2) + +fg = 250, 240, 230 +bg = 5, 5, 5 + + +fond = pygame.transform.scale(pygame.image.load("KEY/background.png").convert(),Resolution) + +PyrScreen.blit(fond, (0,0)) +time.sleep(0.8) +FontSize=(Y/20) + +font = pygame.font.Font('../MEDIA/font.ttf', FontSize) +font_big = pygame.font.Font('../MEDIA/font.ttf', FontSize+10) +SCREEN_W,SCREEN_H = Resolution + +resolution=SCREEN_W,SCREEN_H + +SIZE_IMG_BTN=400 + +WHERE_IMG_X = int(SCREEN_W /3) +WHERE_IMG_Y = int(SCREEN_H /2) - int(SIZE_IMG_BTN/2) +WHERE_IMG = (WHERE_IMG_X,WHERE_IMG_Y) +WHERE_TEXTE_X = int(SCREEN_W /4) +WHERE_TEXTE_Y = int(SCREEN_H /2) +WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) + + +WHERE_TEXTE_1U=(WHERE_TEXTE_X,WHERE_TEXTE_Y+50) +WHERE_TEXTE_2U=(WHERE_TEXTE_X,WHERE_TEXTE_Y+100) +WHERE_TEXTE_3U=(WHERE_TEXTE_X,WHERE_TEXTE_Y+150) +WHERE_TEXTE_4U=(WHERE_TEXTE_X,WHERE_TEXTE_Y+200) +WHERE_TEXTE_5U=(WHERE_TEXTE_X,WHERE_TEXTE_Y+250) +WHERE_TEXTE_1D=(WHERE_TEXTE_X,WHERE_TEXTE_Y-50) +WHERE_TEXTE_2D=(WHERE_TEXTE_X,WHERE_TEXTE_Y-100) +WHERE_TEXTE_3D=(WHERE_TEXTE_X,WHERE_TEXTE_Y-150) +WHERE_TEXTE_4D=(WHERE_TEXTE_X,WHERE_TEXTE_Y-200) +WHERE_TEXTE_5D=(WHERE_TEXTE_X,WHERE_TEXTE_Y-250) + + +KeyToExport="RUN" +CPT=0 +NMAX=-MAX +MAX=MAX-1 +AddInRegularConfFile="N" + +text1 = "Touch any key to generate list" +text2 = font.render(text1, True, fg) + +PyrScreen.blit(text2,(WHERE_TEXTE)) +pygame.key.set_repeat(400, 70) +if CPT>MAX: + CPT=NMAX +if CPTMAX: + CPT_1D=NMAX+CPT+1 +CPT_2D=CPT+2 +if CPT_2D>MAX: + CPT_2D=NMAX+CPT+2 +CPT_3D=CPT+3 +if CPT_3D>MAX: + CPT_3D=NMAX+CPT+3 +CPT_4D=CPT+4 +if CPT_4D>MAX: + CPT_4D=NMAX+CPT+4 +CPT_5D=CPT+5 +if CPT_5D>MAX: + CPT_5D=NMAX+CPT+5 + +while KeyToExport != "ESC" : + for event in pygame.event.get(): + if JOY_TEST != 0 : + if event.type == JOYAXISMOTION: + if event.axis == 1 and event.value > 0: + CPT=CPT-1 + if event.axis == 1 and event.value < 0: + CPT=CPT-1 + if event.axis == 0 and event.value < 0: + ROM_L1 = li[CPT][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CPT = CPT - 1 + if CPT>MAX: + CPT=NMAX + if CPT 0: + ROM_L1 = li[CPT][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CPT = CPT +1 + if CPT>MAX: + CPT=NMAX + if CPT " + str(event.button ) + KeyToExport="ESC" + + if CPT>MAX: + CPT=NMAX + if CPTMAX: + CPT_1D=NMAX+CPT+1 + CPT_2D=CPT+2 + if CPT_2D>MAX: + CPT_2D=NMAX+CPT+2 + CPT_3D=CPT+3 + if CPT_3D>MAX: + CPT_3D=NMAX+CPT+3 + CPT_4D=CPT+4 + if CPT_4D>MAX: + CPT_4D=NMAX+CPT+4 + CPT_5D=CPT+5 + if CPT_5D>MAX: + CPT_5D=NMAX+CPT+5 + if JOY_TEST == 0 : + + if CPT>MAX: + CPT=NMAX + if CPTMAX: + CPT_1D=NMAX+CPT+1 + CPT_2D=CPT+2 + if CPT_2D>MAX: + CPT_2D=NMAX+CPT+2 + CPT_3D=CPT+3 + if CPT_3D>MAX: + CPT_3D=NMAX+CPT+3 + CPT_4D=CPT+4 + if CPT_4D>MAX: + CPT_4D=NMAX+CPT+4 + CPT_5D=CPT+5 + if CPT_5D>MAX: + CPT_5D=NMAX+CPT+5 + + + + + if event.type == KEYDOWN: + if event.key == BTN_J1_2: + print "escape -> " + str(event.key) + KeyToExport="ESC" + + if event.key == DOWN_J1: + CPT=CPT-1 + if event.key == UP_J1: + CPT=CPT+1 + if event.key == LEFT_J1: + ROM_L1 = li[CPT][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CPT = CPT - 1 + if CPT>MAX: + CPT=NMAX + if CPTMAX: + CPT=NMAX + if CPT CONVERT_FILE_MPG/${var}.mpg" + ffmpeg -loglevel panic -i ${var}.mp4 -target ntsc-vcd CONVERT_FILE_MPG/${var}.mpg 2> /dev/null + fi + done diff --git a/BIN/download.png b/BIN/download.png new file mode 100644 index 0000000..ab1802a Binary files /dev/null and b/BIN/download.png differ diff --git a/BIN/download_graphical.py b/BIN/download_graphical.py new file mode 100755 index 0000000..f4cefed --- /dev/null +++ b/BIN/download_graphical.py @@ -0,0 +1,392 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +import os, sys, pygame, pygame.font, pygame.image,subprocess, sys, time +from pygame.locals import * +sys.path.insert(0, '../CONF/') +import urllib2 +from DefResAndSysFile import * +from DefCheckEnvFile import DefCheckEnv +Sys=DefSystem() +Resolution=DefResolution() + +def getSize(filename): + st = os.stat(filename) + return st.st_size + + +pygame.init() + + + +finished = 0 + + +Emu_Media=str(sys.argv[1]) +Media=str(sys.argv[2]) + + +if Emu_Media == "BIOS": + Ext_Media=".tar.bz2" +if Emu_Media == "LIBRETRO": + Ext_Media=".so" + + +if Emu_Media == "FBA" or Emu_Media == "CPS3" or Emu_Media == "GNGEO" or Emu_Media == "MAME" or Emu_Media == "CPS3": + Emu_Media_url = "ARCADE" +else: + Emu_Media_url=Emu_Media + + +### PROD +pygame.init() +Y,X=Resolution +PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + +### TEST +#Y,X=(800,600) +#Resolution=(Y,X) +#PyrScreen = pygame.display.set_mode(Resolution) + + + + +Space_bar=20 +XBAR=(Y-(Y/Space_bar)) +YBAR=(X/8) +WHERE_XBAR=Space_bar +WHERE_YBAR=(Y/2) - (YBAR/2) + + +fond = pygame.transform.scale(pygame.image.load("download.png").convert(),Resolution) +PyrScreen.blit(fond, (0,0)) +time.sleep(0.8) +pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) +FontSize=(X/10) +font = pygame.font.Font('../MEDIA/font.ttf', FontSize) +GoToOne=0 + + + + +if Sys == "Darwin": + Liste_media='SNAP','WHEEL','DOCS','ROMS' +else : + Liste_media='SNAP','WHEEL','DOCS','ROMS','VIDEO' + +if Emu_Media == "LIBRETRO": + Liste_media='RPI23' + GoToOne=1 +if Emu_Media == "BIOS": + Liste_media='ROMS' + Media='BIOS' + GoToOne=1 + +if GoToOne == 1: + if Emu_Media == "LIBRETRO": + Ext_Media=".so" + url = "http://media.pyrharckade.io/"+ Emu_Media + "/" + Liste_media + "/" + Media + Ext_Media + PathToDir='../BIN/'+ Emu_Media + '/' + + if Media == "retroarch": + Ext_Media="" + url = "http://media.pyrharckade.io/"+ Emu_Media + "/" + Liste_media + "/" + Media + Ext_Media + PathToDir='../BIN/'+ Emu_Media + '/' + if Media == "config_libretro": + Ext_Media=".cfg" + url = "http://media.pyrharckade.io/"+ Emu_Media + "/" + Liste_media + "/" + Media + Ext_Media + PathToDir='../BIN/'+ Emu_Media + '/' + + + + if Emu_Media == "BIOS": + url = "http://media.pyrharckade.io/"+ Emu_Media + "/" + Liste_media + "/" + Media + Ext_Media + PathToDir='../MEDIA/BIOS/ROMS/' + + text1 = "Check : " + Emu_Media_url + "/" + Liste_media + "/" + Media + Ext_Media + text2 = font.render(text1, True, pygame.Color("white"), pygame.Color("black")) + PyrScreen.blit(text2,((Space_bar),(X/2))) + PyrScreen.blit(fond, (0,0)) + + if not os.path.exists(PathToDir + Media + Ext_Media): + try: + urllib2.urlopen(url) + ERR_TEST='OK' + except urllib2.HTTPError, e: + ERR_TEST=str(e.code) + else: + ERR_TEST = '404' + u = urllib2.urlopen(url) + meta = u.info() + file_size = int(meta.getheaders("Content-Length")[0]) + file_size_exist=getSize(PathToDir + Media + Ext_Media) + if str(file_size) == str(file_size_exist): + ERR_TEST = '404' + text1 = "Check : " + Emu_Media + "/" + Media + Ext_Media + " : OK" + text2 = font.render(text1, True, pygame.Color("white"), pygame.Color("black")) + PyrScreen.blit(text2,((Space_bar),(X/2))) + pygame.draw.rect(PyrScreen,(120,38,38),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + pygame.display.update() + time.sleep(0.8) + + + + else: + ERR_TEST = 'GO_TO_DL' + print "File Diff" + + + + if ERR_TEST != '404': + continuer = 1 + if not os.path.exists(PathToDir): + os.makedirs(PathToDir) + u = urllib2.urlopen(url) + + meta = u.info() + file_size = int(meta.getheaders("Content-Length")[0]) + + file_name = url.split('/')[-1] + + f = open(PathToDir + file_name, 'wb') + meta = u.info() + file_size_dl = 0 + block_sz = 8192 + buffer=0 + #entry_info = 'Download ' + Type_Media + " in " + Emu_Media + " for " + Media + + + pygame.display.update() + + + while finished == 0: + if file_size_dl == file_size: + text2 = font.render(entry_info, True, pygame.Color("green"),pygame.Color("black")) + PyrScreen.blit(text2,((Space_bar),(X/2))) + # pygame.display.update() + time.sleep(0.8) + break + finished=1 + buffer = u.read(block_sz) + + file_size_dl += len(buffer) + f.write(buffer) + status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) + status = status + chr(8)*(len(status)+1) + Progress=((XBAR*file_size_dl)/file_size) + pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + pygame.draw.rect(PyrScreen,(120,38,38),((WHERE_XBAR,WHERE_YBAR),(Progress,YBAR)),0) + Pourcent=100*file_size_dl/file_size + + # pygame.display.update() + + entry_info = 'Download ' + Emu_Media + " for " + Media + " : " + str(Pourcent) + " %" + + text1 = entry_info + text2 = font.render(entry_info, True, pygame.Color("white"), pygame.Color("black")) + + pygame.time.delay(40) + +# pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + #PyrScreen.blit(fond, (0,0)) + # pygame.display.update() + PyrScreen.blit(text2,((Space_bar),(X/2))) + pygame.display.update() + + else: + print PathToDir + "/" + Media + Ext_Media + ' : OK' + f.close() + #pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + PyrScreen.blit(fond, (0,0)) + # pygame.display.update() + pygame.display.update() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +else: + for Type_Media in (Liste_media): + #for Type_Media in ('SNAP','WHEEL','DOCS','ROMS','VIDEO'): + print(Type_Media) + if Type_Media == "SNAP" or Type_Media == "WHEEL": + Ext_Media=".png" + if Type_Media == "VIDEO": + Ext_Media=".mpg" + if Type_Media == "ROMS": + Ext_Media=".zip" + if Type_Media == "DOCS": + Ext_Media=".txt" + if Emu_Media == "BIOS": + Ext_Media=".tar.bz2" + if Emu_Media == "NES" and Type_Media=="ROMS": + Ext_Media=".nes" + if Emu_Media == "GAMEBOY" and Type_Media=="ROMS": + Ext_Media=".gb" + + if Emu_Media == "FBA" or Emu_Media == "CPS3" or Emu_Media == "GNGEO" or Emu_Media == "MAME" or Emu_Media == "CPS3": + Emu_Media_url = "ARCADE" + else: + Emu_Media_url=Emu_Media + + + + + + text1 = "Check : " + Emu_Media_url + "/" + Type_Media+ "/" + Media + Ext_Media + text2 = font.render(text1, True, pygame.Color("white"), pygame.Color("black")) + PyrScreen.blit(text2,((Space_bar),(X/2))) + PyrScreen.blit(fond, (0,0)) + + + url = "http://media.pyrharckade.io/"+ Emu_Media_url + "/" + Type_Media+ "/" + Media + Ext_Media + print(url) + + file_name = url.split('/')[-1] + + + if not os.path.exists('../MEDIA/' + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media): + try: + urllib2.urlopen(url) + ERR_TEST='OK' + except urllib2.HTTPError, e: + ERR_TEST=str(e.code) + else: + ERR_TEST = '404' + u = urllib2.urlopen(url) + meta = u.info() + file_size = int(meta.getheaders("Content-Length")[0]) + file_size_exist=getSize('../MEDIA/' + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media) + if str(file_size) == str(file_size_exist): + ERR_TEST = '404' + text1 = "Check : " + Emu_Media_url + "/" + Type_Media+ "/" + Media + Ext_Media + " : OK" + text2 = font.render(text1, True, pygame.Color("white"), pygame.Color("black")) + PyrScreen.blit(text2,((Space_bar),(X/2))) + pygame.draw.rect(PyrScreen,(120,38,38),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + pygame.display.update() + time.sleep(0.8) + + + + else: + ERR_TEST = 'GO_TO_DL' + print "File Diff" + + + + if ERR_TEST != '404': + continuer = 1 + if not os.path.exists('../MEDIA/' + Emu_Media + '/' + Type_Media): + os.makedirs('../MEDIA/' + Emu_Media + '/' + Type_Media) + u = urllib2.urlopen(url) + + meta = u.info() + file_size = int(meta.getheaders("Content-Length")[0]) + + f = open('../MEDIA/' + Emu_Media + '/' + Type_Media + '/' + file_name, 'wb') + meta = u.info() + file_size_dl = 0 + block_sz = 8192 + buffer=0 + #entry_info = 'Download ' + Type_Media + " in " + Emu_Media + " for " + Media + + + pygame.display.update() + + + while finished == 0: + if file_size_dl == file_size: + text2 = font.render(entry_info, True, pygame.Color("green"),pygame.Color("black")) + PyrScreen.blit(text2,((Space_bar),(X/2))) + # pygame.display.update() + time.sleep(0.8) + break + finished=1 + buffer = u.read(block_sz) + + file_size_dl += len(buffer) + f.write(buffer) + status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) + status = status + chr(8)*(len(status)+1) + Progress=((XBAR*file_size_dl)/file_size) + pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + pygame.draw.rect(PyrScreen,(120,38,38),((WHERE_XBAR,WHERE_YBAR),(Progress,YBAR)),0) + Pourcent=100*file_size_dl/file_size + + # pygame.display.update() + + entry_info = 'Download ' + Type_Media + " in " + Emu_Media + " for " + Media + " : " + str(Pourcent) + " %" + + text1 = entry_info + text2 = font.render(entry_info, True, pygame.Color("white"), pygame.Color("black")) + + pygame.time.delay(40) + + # pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + #PyrScreen.blit(fond, (0,0)) + # pygame.display.update() + PyrScreen.blit(text2,((Space_bar),(X/2))) + pygame.display.update() + + else: + print '../MEDIA/' + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media + ' : OK' + f.close() + #pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + PyrScreen.blit(fond, (0,0)) + # pygame.display.update() + pygame.display.update() + + + + + + diff --git a/BIN/get_BIOS.sh b/BIN/get_BIOS.sh new file mode 100755 index 0000000..bd54bb0 --- /dev/null +++ b/BIN/get_BIOS.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +cd ../ +WIM=`pwd` +echo $WIM + +if [[ ! -d "${WIM}/MEDIA/BIOS/" ]]; then mkdir -p ${WIM}/MEDIA/BIOS/ROMS/;fi + +cd ${WIM}/BIN +./download_graphical.py BIOS ROMS BIOS + + + +cd ${WIM}/MEDIA/BIOS/ROMS/ +tar -jxf BIOS.tar.bz2 +for EMU in `cat ${WIM}/ROM_CONFIG_FILES.csv | cut -d"," -f2 | sort -u| grep -E "FBA|MAME|CPS3|GNGEO"` + do + echo "------------------------ $EMU ------------------------" + for bios_file in `find ${WIM}/MEDIA/BIOS/ROMS/ | grep "\.zip"` + do + bios=`basename $bios_file` + if [[ ! -d "${WIM}/MEDIA/${EMU}/ROMS/" ]] ;then mkdir -p ${WIM}/MEDIA/${EMU}/ROMS/ ;fi + if [[ -f ${WIM}/MEDIA/${EMU}/ROMS/${bios} ]];then rm -f ${WIM}/MEDIA/${EMU}/ROMS/${bios} ;fi + ln -s ${WIM}/MEDIA/BIOS/ROMS/${bios} ${WIM}/MEDIA/${EMU}/ROMS/${bios} + done + + done diff --git a/BIN/get_libretro_rpi_2_3.sh b/BIN/get_libretro_rpi_2_3.sh new file mode 100755 index 0000000..642427a --- /dev/null +++ b/BIN/get_libretro_rpi_2_3.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +cd ../ +WIM=`pwd` +echo $WIM + +if [[ ! -d "${WIM}/BIN/LIBRETRO" ]]; then mkdir -p ${WIM}/BIN/LIBRETRO/;fi + +cd ${WIM}/BIN + + +for var in `cat ../ROM_CONFIG_FILES.csv| cut -d',' -f2| sort -u| grep -v SYS$` + do + ./download_graphical.py LIBRETRO $var + done +./download_graphical.py LIBRETRO retroarch +./download_graphical.py LIBRETRO config_libretro + +mv ${WIM}/BIN/LIBRETRO/config_libretro.cfg ${WIM}/BIN/LIBRETRO/retroarch.cfg +chmod +x ${WIM}/BIN/LIBRETRO/retroarch + + + diff --git a/BIN/get_media.sh b/BIN/get_media.sh new file mode 100755 index 0000000..101f2e7 --- /dev/null +++ b/BIN/get_media.sh @@ -0,0 +1,255 @@ +#!/bin/bash + +ROM_ARG=$1 + +usage() { + +echo "$0 : Recupere les medias de type information / snapshoot / wheel selon votre fichier ROM_CONFIG_FILES.csv" +echo " Recupere aussi les ROMS MAME / FBA / GNGEO si elles existent sur le serveur" +echo "" +echo "OPTION : " +echo " $0 --> recupere tout les medias" +echo " $0 \"[rom],[EMU]\" --> recupere tout les medias d'une rom particuliere en mode FORCE (ecrase l'existant)" +exit + +} + +test_arg() { +EMU=`echo $ROM_ARG | cut -d"," -f2` +ROM=`echo $ROM_ARG | cut -d"," -f1` + +if [[ -z $EMU ]] || [[ -z $ROM ]] || [[ -z `echo $ROM_ARG | grep ","` ]] + then + usage + +fi + +} + +TEST_REP() { + +if [[ ! -z $ROM_ARG ]] + then + for REP in WHEEL SNAP VIDEO ROMS DOCS + do + if [[ ! -d ../MEDIA/${EMU}/$REP ]] + then + echo "Creation rep IMG de ${EMU} : ../MEDIA/${EMU}/${REP}" + mkdir -p ../MEDIA/${EMU}/${REP} + fi + done + else + + for EMU_DIR in `cat ../ROM_CONFIG_FILES.csv | cut -d"," -f2 | sort -u` + do + for REP in WHEEL SNAP VIDEO ROMS DOCS + do + if [[ ! -d ../MEDIA/${EMU_DIR}/$REP ]] + then + echo "Creation rep IMG de ${EMU_DIR} : ../MEDIA/${EMU_DIR}/${REP}" + mkdir -p ../MEDIA/${EMU_DIR}/${REP} + fi + done + + done +fi + +} + + +get_docs() { + if [[ "${EMU}" == "MAME" ]] || [[ "${EMU}" == "FBA" ]] || [[ "${EMU}" == "GNGEO" ]] + then + EMU_DL=ARCADE + else + EMU_DL=$EMU + + fi + wget -c -q -nv "http://media.pyrharckade.io/${EMU_DL}/DOCS/${ROM}.txt" -O ../MEDIA/${EMU}/DOCS/${ROM}.txt + RES=$? + if [[ "$RES" != "0" ]] + then + rm -f ../MEDIA/${EMU}/DOCS/${ROM}.txt + echo -e " -> DOCS \033[31m FAILED \033[0m" + else + echo -e " -> DOCS \033[32m SUCCESS \033[0m" + + fi + +} + +get_snap() { + if [[ "${EMU}" == "MAME" ]] || [[ "${EMU}" == "FBA" ]] || [[ "${EMU}" == "GNGEO" ]] + then + EMU_DL=ARCADE + else + EMU_DL=$EMU + + fi + wget -c -q -nv "http://media.pyrharckade.io/${EMU_DL}/SNAP/${ROM}.png" -O ../MEDIA/${EMU}/SNAP/${ROM}.png + RES=$? + if [[ "$RES" != "0" ]] + then + rm -f ../MEDIA/${EMU}/SNAP/${ROM}.png + echo -e " -> SNAP \033[31m FAILED \033[0m" + else + echo -e " -> SNAP \033[32m SUCCESS \033[0m" + fi + +} + +get_wheel() { + if [[ "${EMU}" == "MAME" ]] || [[ "${EMU_DL}" == "FBA" ]] || [[ "${EMU}" == "GNGEO" ]] + then + EMU_DL=ARCADE + else + EMU_DL=$EMU + + fi + + wget -c -q -nv "http://media.pyrharckade.io/${EMU}/WHEEL/${ROM}.png" -O ../MEDIA/${EMU}/WHEEL/${ROM}.png + RES=$? + if [[ "$RES" != "0" ]] + then + rm -f ../MEDIA/${EMU}/WHEEL/${ROM}.png + echo -e " -> WHEEL \033[31m FAILED \033[0m" + else + echo -e " -> WHEEL \033[32m SUCCESS \033[0m" + fi + +} +get_video() { + if [[ "${ROM}" == 001_* ]] + then + echo -e " -> VIDEO \033[30m NA \033[0m" + + else + + if [[ "${EMU}" == "MAME" ]] || [[ "${EMU}" == "FBA" ]] || [[ "${EMU}" == "GNGEO" ]] + then + EMU_DL=ARCADE + else + EMU_DL=$EMU + fi + wget -c -q -nv "http://media.pyrharckade.io/${EMU_DL}/VIDEO/${ROM}.mpg" -O ../MEDIA/${EMU}/VIDEO/${ROM}.mpg + RES=$? + if [[ "$RES" != "0" ]] + then + rm -f ../MEDIA/${EMU}/VIDEO/${ROM}.mpg + echo -e " -> VIDEO \033[31m FAILED \033[0m" + else + echo -e " -> VIDEO \033[32m SUCCESS \033[0m" + fi + fi + +} + +get_bios() { + echo "CHECK BIOS FILES" + if [[ -f ~/pyrharckade/MEDIA/BIOS/bios_pack ]] + then + echo -e " -> BIOS PACK \033[32m SUCCESS \033[0m" + else + mkdir ~/pyrharckade/MEDIA/BIOS/ + wget -c -q -nv "http://media.pyrharckade.io/BIOS/bios_pack.zip" -O ~/pyrharckade/MEDIA/BIOS/bios_pack.zip + cd ~/pyrharckade/MEDIA/BIOS/ + unzip -e bios_pack.zip > /dev/null + for EMU in `cat ~/pyrharckade/ROM_CONFIG_FILES.csv|cut -d',' -f2|sort -u| grep -E "MAME|FBA|GNGEO"` + do + for bios in `ls -1| grep zip$| grep -v bios_pack.zip` + do + ln -s ~/pyrharckade/MEDIA/BIOS/$bios ~/pyrharckade/MEDIA/${EMU}/ROMS/$bios + done + done + touch bios_pack + cd - + echo -e " -> BIOS PACK \033[32m SUCCESS \033[0m" + fi + +} + + + +get_roms() { + + if [[ "${ROM}" == 001_* ]] + then + echo -e " -> VIDEO \033[30m NA \033[0m" + + else + EMU_URL=$EMU + + if [[ "${EMU}" == "MAME" ]] || [[ "${EMU}" == "FBA" ]] || [[ "${EMU}" == "GNGEO" ]] + then + EMU_URL=ARCADE + EXT_ROM=".zip" + fi + if [[ "${EMU}" == "GAMEBOY" ]] + then + EXT_ROM=".gb" + fi + if [[ "${EMU}" == "N64" ]] + then + EXT_ROM=".z64" + fi + if [[ "${EMU}" == "NES" ]] + then + EXT_ROM=".nes" + fi + + + + wget -c -q -nv "http://media.pyrharckade.io/${EMU_URL}/ROMS/${ROM}${EXT_ROM}" -O ../MEDIA/${EMU}/ROMS/${ROM}${EXT_ROM} + RES=$? + if [[ "$RES" != "0" ]] + then + rm -f ../MEDIA/${EMU}/ROMS/${ROM}${EXT_ROM} + echo -e " -> ROMS ${EMU} \033[31m FAILED \033[0m" + else + echo -e " -> ROMS ${EMU} \033[32m SUCCESS \033[0m" + fi + fi + +} + + + +if [[ -z $ROM_ARG ]] + then + TEST_REP +fi + + +if [[ ! -z $ROM_ARG ]] + then + test_arg + TEST_REP + get_snap + get_wheel + get_video + get_docs + get_roms + get_bios + exit 0 +fi + +export DISPLAY=0:0 +python ../CONF/download.py & + +while read line + do + if [[ ! -z `echo $line | grep ','` ]] + then + echo $line | while IFS=',' read ROM EMU + do + echo -e "----- \033[36m $ROM \033[0m -----" + get_snap + get_wheel + get_video + get_docs + get_roms + done + fi +done < ../ROM_CONFIG_FILES.csv +get_bios +sudo killall -9 python diff --git a/BIN/get_media_graphical.sh b/BIN/get_media_graphical.sh new file mode 100755 index 0000000..6b5d0ed --- /dev/null +++ b/BIN/get_media_graphical.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +ROM=$2 +EMU=$1 + +if [[ ! -z "$ROM" ]] && [[ ! -z "$EMU" ]] + then + cd BIN/ + ./download_graphical.py $EMU $ROM + else + for RomConfigLine in `cat ../ROM_CONFIG_FILES.csv | sort | grep ','` + do + EMU=`echo $RomConfigLine| cut -d"," -f2` + ROM=`echo $RomConfigLine| cut -d"," -f1` + if [[ $EMU != "SYS" ]] + then + ./download_graphical.py $EMU $ROM + fi + done +fi diff --git a/CONF/ConfAllPath.py b/CONF/ConfAllPath.py new file mode 100644 index 0000000..efd36ef --- /dev/null +++ b/CONF/ConfAllPath.py @@ -0,0 +1,50 @@ + +def DefConfPathHome(): + import os + #os.path.abspath(os.curdir) + ParentOfPyr=os.path.abspath(os.curdir) + #ParentOfPyr=(os.environ['HOME'] + "/pyrharckade_2") + ConfRomFile=(ParentOfPyr + "/ROM_CONFIG_FILES.csv") + AllMedia=(ParentOfPyr + "/MEDIA/") + ConfigKeyboardFile=ParentOfPyr + "/CONF/KeyMapKeyBoard.py" + return ParentOfPyr,ConfRomFile,AllMedia,ConfigKeyboardFile + + +def DefConfPathEmu(Orientation): + import os + + ParentOfPyr=os.path.abspath(os.curdir) + #ParentOfPyr=(os.environ['HOME'] + "/pyrharckade_2") + Img=(ParentOfPyr + "/MEDIA/IMG/") + BACKGROUNG=(ParentOfPyr + "/MEDIA/IMG/IMGY/SYS.png") + if Orientation == "Y": + BACKGROUNG_EMU=(ParentOfPyr + "/MEDIA/IMG/menu_Y.png") + else: + BACKGROUNG_EMU=(ParentOfPyr + "/MEDIA/IMG/menu_X.png") + IMG_EMU = (ParentOfPyr + "/MEDIA/IMG/EMU/") + BACKGROUNG_START=(ParentOfPyr + "/MEDIA/IMG/dpfe_welcom_X.png") + BlackImg = (ParentOfPyr + "/MEDIA/IMG/black.png") + SLEEP_BEFORE_START = 4 + if Orientation == "Y": + BACKGROUNG_ORIG=(ParentOfPyr + "/MEDIA/IMG/IMGY/bg2_Y.png") + else: + BACKGROUNG_ORIG=(ParentOfPyr + "/MEDIA/IMG/IMGY/bg2_X.png") + return Img,BACKGROUNG_ORIG,BACKGROUNG,IMG_EMU,BACKGROUNG_EMU + +def DefConfPathGame(Orientation): + import os + ParentOfPyr=os.path.abspath(os.curdir) + #ParentOfPyr=(os.environ['HOME'] + "/pyrharckade_2") + BinOfPyr=(ParentOfPyr + "/BIN/") + Wheel=(ParentOfPyr + "/MEDIA/Wheel/") + Snap=(ParentOfPyr + "/MEDIA/SNAP/") + Sound=(ParentOfPyr + "/MEDIA/SOUND/") + IMG_EMU = (ParentOfPyr + "/MEDIA/IMG/EMU/") + Roms=(ParentOfPyr + "/MEDIA/ROMS/") + Docs=(ParentOfPyr + "/MEDIA/DOCS/") + ImgY=(ParentOfPyr + "/MEDIA/IMG/IMGY/") + ImgX=(ParentOfPyr + "/MEDIA/IMG/IMGX/") + Img=(ParentOfPyr + "/MEDIA/IMG/") + BlackImg = (ParentOfPyr + "/MEDIA/IMG/black.png") + return ParentOfPyr,BinOfPyr,Wheel,Snap,Sound,Roms,Docs,ImgY,ImgX,Img,BlackImg,IMG_EMU + diff --git a/CONF/DefCheckEnvFile.py b/CONF/DefCheckEnvFile.py new file mode 100644 index 0000000..44e8cb2 --- /dev/null +++ b/CONF/DefCheckEnvFile.py @@ -0,0 +1,6 @@ +import os + +def DefCheckEnv (): + + Sys=os.uname() + return Sys diff --git a/CONF/DefDownladPerGame.py b/CONF/DefDownladPerGame.py new file mode 100644 index 0000000..7007089 --- /dev/null +++ b/CONF/DefDownladPerGame.py @@ -0,0 +1,242 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- +# pyrharckade 2 is a simple pygame front for PIMAME +# version: 2.0A +# guillaume@tuxme.net +# GPL Licence + +import os, sys, pygame, pygame.font, pygame.image,subprocess, sys, time +from pygame.locals import * +import urllib2 +import urllib +from DefResAndSysFile import * +from DefCheckEnvFile import DefCheckEnv +Sys=DefSystem() +import glob +Resolution=DefResolution() + + +def DownloadGraphical(Emu_Media,Media): + + def getSize(filename): + st = os.stat(filename) + return st.st_size + + finished = 0 + + + + + + if Emu_Media == "BIOS": + Ext_Media=".tar.bz2" + + if Emu_Media == "FBA" or Emu_Media == "CPS3" or Emu_Media == "GNGEO" or Emu_Media == "MAME" or Emu_Media == "CPS3": + Emu_Media_url = "ARCADE" + else: + Emu_Media_url=Emu_Media + + + ### PROD + pygame.init() + Y,X=Resolution + PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + + ### TEST + #Y,X=(800,600) + #Resolution=(Y,X) + #PyrScreen = pygame.display.set_mode(Resolution) + + + + + Space_bar=20 + XBAR=(Y-(Y/Space_bar)) + YBAR=(X/10) + WHERE_XBAR=Space_bar + WHERE_YBAR=(Y/2) - (YBAR/2) + + + if glob.glob("./BIN/download.png"): + IMG_DL="./BIN/download.png" + FONT_DL="./MEDIA/font.ttf" + PATH_MEDIA="./MEDIA/" + else: + IMG_DL="download.png" + FONT_DL="../MEDIA/font.ttf" + PATH_MEDIA="../MEDIA/" + + fond = pygame.transform.scale(pygame.image.load(IMG_DL).convert(),Resolution) + PyrScreen.blit(fond, (0,0)) + time.sleep(0.8) + pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + FontSize = (X/10) + font = pygame.font.Font(FONT_DL, (FontSize+10)) + + + + + if Sys == "Darwin": + Liste_media='SNAP','WHEEL','DOCS','ROMS' + else : + Liste_media='SNAP','WHEEL','DOCS','ROMS','VIDEO' + print("SYSTEM : " + (Sys)) + + for Type_Media in (Liste_media): + #for Type_Media in ('SNAP','WHEEL','DOCS'): + + + + if Type_Media == "SNAP" or Type_Media == "WHEEL": + Ext_Media=".png" + if Type_Media == "VIDEO": + Ext_Media=".mpg" + if Type_Media == "ROMS": + Ext_Media=".zip" + if Type_Media == "DOCS": + Ext_Media=".txt" + if Emu_Media == "BIOS": + Ext_Media=".tar.bz2" + if Emu_Media == "NES" and Type_Media=="ROMS": + Ext_Media=".nes" + if Emu_Media == "GAMEBOY" and Type_Media=="ROMS": + Ext_Media=".gb" + + + + if Emu_Media == "FBA" or Emu_Media == "CPS3" or Emu_Media == "GNGEO" or Emu_Media == "MAME" or Emu_Media == "CPS3": + Emu_Media_url = "ARCADE" + else: + Emu_Media_url=Emu_Media + + + + + + + text1 = "Check : " + Emu_Media_url + "/" + Type_Media+ "/" + Media + Ext_Media + text2 = font.render(text1, True, pygame.Color("white"), pygame.Color("black")) + #PyrScreen.blit(text2,((Y/2),(Y/2))) + PyrScreen.blit(text2,((Space_bar),(X/2))) + PyrScreen.blit(fond, (0,0)) + + url = "http://media.pyrharckade.io/"+ Emu_Media_url + "/" + Type_Media+ "/" + Media + Ext_Media + + if Type_Media == "ROMS" and Emu_Media_url == "ARCADE": + Ext_Media=".zip" + url = "http://www.arcadehits.net/downloads/tool.php?am=berzerking&Fichier=mame/" + Media + Ext_Media + + + + + if Emu_Media == "SYS" and Type_Media=="ROMS": + Ext_media=".csv" + url="http://media.pyrharckade.io/SYS/ROMS/ROM_CONFIG_FILES.csv" + print(url) + + file_name = url.split('/')[-1] + print ( PATH_MEDIA + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media) + + if not os.path.exists(PATH_MEDIA + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media): + TestCodeUrl=urllib.urlopen(url).getcode() + if TestCodeUrl == 200: + #try: + # urllib2.urlopen(url) + ERR_TEST='OK' + #except urllib2.HTTPError, e: + # ERR_TEST=str(e.code) + else: + ERR_TEST='404' + + + else: + ERR_TEST = '404' + print (PATH_MEDIA + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media) + u = urllib2.urlopen(url) + meta = u.info() + file_size = int(meta.getheaders("Content-Length")[0]) + file_size_exist=getSize(PATH_MEDIA + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media) + if str(file_size) == str(file_size_exist): + ERR_TEST = '404' + text1 = "Check : " + Emu_Media_url + "/" + Type_Media+ "/" + Media + Ext_Media + " : OK" + text2 = font.render(text1, True, pygame.Color("white"), pygame.Color("black")) + #PyrScreen.blit(text2,(Space_bar,WHERE_YBAR+(YBAR*2))) + PyrScreen.blit(text2,((Space_bar),(X/2))) + pygame.draw.rect(PyrScreen,(120,38,38),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + pygame.display.update() + time.sleep(0.8) + + else: + ERR_TEST = 'GO_TO_DL' + print ("File Diff") + + if ERR_TEST != '404': + continuer = 1 + if not os.path.exists(PATH_MEDIA + Emu_Media + '/' + Type_Media): + os.makedirs(PATH_MEDIA + Emu_Media + '/' + Type_Media) + u = urllib.urlopen(url) + + meta = u.info() + file_size = int(meta.getheaders("Content-Length")[0]) + + f = open(PATH_MEDIA + Emu_Media + '/' + Type_Media + '/' + file_name, 'wb') + meta = u.info() + file_size_dl = 0 + block_sz = 8192 + buffer=0 + #entry_info = 'Download ' + Type_Media + " in " + Emu_Media + " for " + Media + + + pygame.display.update() + + + while finished == 0: + if file_size_dl == file_size: + text2 = font.render(entry_info, True, pygame.Color("green"),pygame.Color("black")) + #PyrScreen.blit(text2,(Space_bar,WHERE_YBAR+(YBAR*2))) + + PyrScreen.blit(text2,((Space_bar),(X/2))) + # pygame.display.update() + time.sleep(0.8) + break + finished=1 + buffer = u.read(block_sz) + + file_size_dl += len(buffer) + f.write(buffer) + status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) + status = status + chr(8)*(len(status)+1) + Progress=((XBAR*file_size_dl)/file_size) + pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + pygame.draw.rect(PyrScreen,(120,38,38),((WHERE_XBAR,WHERE_YBAR),(Progress,YBAR)),0) + Pourcent=100*file_size_dl/file_size + + # pygame.display.update() + + entry_info = 'Download ' + Type_Media + " in " + Emu_Media + " for " + Media + " : " + str(Pourcent) + " %" + + text1 = entry_info + text2 = font.render(entry_info, True, pygame.Color("white"), pygame.Color("black")) + + pygame.time.delay(40) + + # pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + #PyrScreen.blit(fond, (0,0)) + # pygame.display.update() + #PyrScreen.blit(text2,(Space_bar,WHERE_YBAR+(YBAR*2))) + PyrScreen.blit(text2,((Space_bar),(X/2))) + pygame.display.update() + + else: + print ( PATH_MEDIA + Emu_Media + '/' + Type_Media + "/" + Media + Ext_Media + ' : OK') + f.close() + #pygame.draw.rect(PyrScreen,(200,200,200),((WHERE_XBAR,WHERE_YBAR),(XBAR,YBAR)),0) + PyrScreen.blit(fond, (0,0)) + # pygame.display.update() + pygame.display.update() + + + + + + diff --git a/CONF/DefFrontEndEmuFile.py b/CONF/DefFrontEndEmuFile.py new file mode 100644 index 0000000..9c1a7e1 --- /dev/null +++ b/CONF/DefFrontEndEmuFile.py @@ -0,0 +1,155 @@ +import pygame +import sys + +from pygame.locals import * +from DefFrontEndGameMapFile import * +from DefFrontEndEmuFile import * +from ConfAllPath import * + + +import os +from ConfAllPath import * +from KeyMapKeyBoard import * + +def DefFrontEndEmu(Resolution,emu,MapingEmu,li,CptEmu,MAX_EMU,MAX,Orientation,JOY_TEST): + + #one_debug = 0 + MAX_EMU = MAX_EMU -1 + pygame.key.set_repeat(400, 50) + Img,BACKGROUNG_ORIG,BACKGROUNG,IMG_EMU,BACKGROUNG_EMU=DefConfPathEmu(Orientation) + SIZE_BIN_1,SIZE_BIN_2,SIZE_BIN_3,WHERE_BIN_1,WHERE_BIN_2,WHERE_BIN_3=MapingEmu + Resolution=Resolution + pygame.init() + PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + fond = pygame.transform.scale(pygame.image.load(BACKGROUNG_EMU).convert(),Resolution) + PyrScreen.blit(fond, (0,0)) + #pygame.joystick.init() + if JOY_TEST == 1: + mon_joystick = pygame.joystick.Joystick(0) + mon_joystick.init + if(CptEmu > MAX_EMU) or (CptEmu < - MAX_EMU): + CptEmu = 0 + + if (CptEmu + 1) > MAX_EMU: + CptRight = 0 + else: + CptRight = CptEmu + 1 + + if (CptEmu - 1) < - MAX_EMU: + CptLeft = 0 + else: + CptLeft = CptEmu - 1 + + pygame.display.flip() + KeepInEmu = 1 + FrontEndEmu = 1 + ExitStatus = 0 + while KeepInEmu == 1: + BeepFile=Img + "../SOUND/blip.wav" + BeepFileLoad=pygame.mixer.music.load(BeepFile) + for event in pygame.event.get(): + if JOY_TEST == 0 : + if event.type == KEYDOWN: + # if event.key == K_LEFT: + if event.key == LEFT_J1: + CptEmu = CptEmu - 1 + # print "DEBUG : LEFT : " + str(LEFT_J1) + # one_debug = 0 + # if event.key == K_RIGHT: + if event.key == RIGHT_J1: + CptEmu = CptEmu + 1 + # print "DEBUG : RIGHT : " + str(RIGHT_J1) + # one_debug = 0 + if event.key == BTN_J1_1: + FrontEndEmu = 0 + ExitStatus = 0 + KeepInEmu = 0 + FrontEndGame = 1 + EmuChoose = emu[CptEmu] + #print "Play ... " + if event.key == K_ESCAPE: + FrontEndEmu = 0 + ExitStatus = 1 + FrontEndGame = 0 + EmuChoose = "" + KeepInEmu=0 + pygame.mixer.Sound(BeepFile).play() + if JOY_TEST == 1 : + if event.type == JOYAXISMOTION: + if event.axis == 0 and event.value > 0: + CptEmu = CptEmu - 1 + if event.axis == 0 and event.value < 0: + CptEmu = CptEmu + 1 + if event.type == JOYBUTTONDOWN and event.button == BTN_J1_1: + FrontEndEmu = 0 + ExitStatus = 0 + KeepInEmu = 0 + FrontEndGame = 1 + EmuChoose = emu[CptEmu] + pygame.mixer.Sound(BeepFile).play() + + if (CptEmu > MAX_EMU) or (CptEmu < - MAX_EMU): + CptEmu = 0 + + if (CptEmu + 1) > MAX_EMU: + CptRight = 0 + else: + CptRight = CptEmu + 1 + + if (CptEmu - 1) < - MAX_EMU: + CptLeft = 0 + else: + CptLeft = CptEmu - 1 + + #if one_debug == 0: + # print "4. CptLeft -> " + str(CptLeft) + + #if one_debug == 0: + # print "2. CptEmu -> " + str(CptEmu) + + #if one_debug == 0: + # print "3. CptRight -> " + str(CptRight) + + EmuRightPath=IMG_EMU+'/'+emu[CptRight]+ ".png" + EmuLeftPath=IMG_EMU+'/'+emu[CptLeft]+ ".png" + EmuCenterPath=IMG_EMU+'/'+emu[CptEmu]+ ".png" + + #if one_debug == 0: + # print "EmuLeftPath -> " + EmuLeftPath + #if one_debug == 0: + # print "EmuCenterPath -> " + EmuCenterPath + #if one_debug == 0: + # print "EmuRightPath -> " + EmuRightPath + #if one_debug == 0: + # print "5. " + str(CptEmu) + " : " + emu[CptEmu] + #if one_debug == 0: + # one_debug = 1; + + if (os.path.isfile(IMG_EMU+'/'+emu[CptRight]+ ".png")): + EmuRightPath=IMG_EMU+'/'+emu[CptRight]+ ".png" + EmuRight=pygame.transform.scale(pygame.image.load(EmuRightPath).convert_alpha(),SIZE_BIN_3) + else: + muRightPath=IMG_EMU+'/no_emu.png' + EmuRight=pygame.transform.scale(pygame.image.load(EmuRightPath).convert_alpha(),SIZE_BIN_3) + + if (os.path.isfile(IMG_EMU+'/'+emu[CptLeft]+ ".png")): + EmuLeftPath=IMG_EMU+'/'+emu[CptLeft]+ ".png" + EmuLeft=pygame.transform.scale(pygame.image.load(EmuLeftPath).convert_alpha(),SIZE_BIN_2) + else: + EmuLeftPath=IMG_EMU+'/no_emu.png' + EmuLeft=pygame.transform.scale(pygame.image.load(EmuLeftPath).convert_alpha(),SIZE_BIN_2) + + if (os.path.isfile(IMG_EMU+'/'+emu[CptEmu]+ ".png")): + EmuCenterPath=IMG_EMU+'/'+emu[CptEmu]+ ".png" + EmuCenter=pygame.transform.scale(pygame.image.load(EmuCenterPath).convert_alpha(),SIZE_BIN_1) + else: + EmuCenterPath=IMG_EMU+'/no_emu.png' + EmuCenter=pygame.transform.scale(pygame.image.load(EmuCenterPath).convert_alpha(),SIZE_BIN_1) + + + PyrScreen.blit(fond, (0,0)) + PyrScreen.blit(EmuRight,WHERE_BIN_2),SIZE_BIN_3 + PyrScreen.blit(EmuLeft,WHERE_BIN_3),SIZE_BIN_1 + PyrScreen.blit(EmuCenter,WHERE_BIN_1),SIZE_BIN_1 + pygame.display.flip() + return FrontEndEmu,ExitStatus,FrontEndGame,EmuChoose,CptEmu diff --git a/CONF/DefFrontEndEmuMapFile.py b/CONF/DefFrontEndEmuMapFile.py new file mode 100644 index 0000000..f8fd053 --- /dev/null +++ b/CONF/DefFrontEndEmuMapFile.py @@ -0,0 +1,80 @@ +from math import * + +def DefFrontEndEmuMapX(resolution): + SCREEN_W,SCREEN_H=resolution + #print str(SCREEN_W) + "x" + str(SCREEN_H) + ## TAILLE DES MENU EMU + + SIZE_BIN_X_1 = int(floor(SCREEN_W /4)) + SIZE_BIN_Y_1 = SIZE_BIN_X_1 + SIZE_BIN_1 = (SIZE_BIN_X_1,SIZE_BIN_Y_1) + + SIZE_BIN_X_2 = int(floor(SIZE_BIN_X_1*2/3)) + SIZE_BIN_Y_2 = SIZE_BIN_X_2 + SIZE_BIN_2 = (SIZE_BIN_X_2,SIZE_BIN_Y_2) + + SIZE_BIN_X_3 = SIZE_BIN_X_2 + SIZE_BIN_Y_3 = SIZE_BIN_X_3 + SIZE_BIN_3 = (SIZE_BIN_X_3,SIZE_BIN_Y_3) + + ##EMU CENTRE POSITION + + WHERE_BIN_1_X=int(floor((SCREEN_W / 2)-(SIZE_BIN_X_1/2))) + WHERE_BIN_1_Y=int(floor((SCREEN_H / 2) - (SIZE_BIN_X_1/2))) + WHERE_BIN_1=(WHERE_BIN_1_X,WHERE_BIN_1_Y) + + ##EMU GAUCHE POSITION + + WHERE_BIN_2_X=int(floor((SCREEN_W / 4)-(SIZE_BIN_X_2/2))) + WHERE_BIN_2_Y=int(floor(SCREEN_H / 3)) + WHERE_BIN_2=(WHERE_BIN_2_X,WHERE_BIN_2_Y) + + ##EMU GAUCHE POSITION + + WHERE_BIN_3_X=int(floor((SCREEN_W * 3 / 4)-(SIZE_BIN_X_3/2))) + WHERE_BIN_3_Y=int(floor(SCREEN_H / 3)) + WHERE_BIN_3=(WHERE_BIN_3_X,WHERE_BIN_3_Y) + + + return(SIZE_BIN_1,SIZE_BIN_2,SIZE_BIN_3,WHERE_BIN_1,WHERE_BIN_2,WHERE_BIN_3) + + + +def DefFrontEndEmuMapY(resolution): + SCREEN_W,SCREEN_H=resolution + #print str(SCREEN_W) + "x" + str(SCREEN_H) + SIZE_BIN_X_1 = int(floor(SCREEN_W /4)) + SIZE_BIN_Y_1 = SIZE_BIN_X_1 + SIZE_BIN_1 = (SIZE_BIN_X_1,SIZE_BIN_Y_1) + + SIZE_BIN_X_2 = SIZE_BIN_X_1/2 + SIZE_BIN_Y_2 = SIZE_BIN_X_2 + SIZE_BIN_2 = (SIZE_BIN_X_2,SIZE_BIN_Y_2) + + SIZE_BIN_X_3 = SIZE_BIN_X_2 + SIZE_BIN_Y_3 = SIZE_BIN_X_3 + SIZE_BIN_3 = (SIZE_BIN_X_3,SIZE_BIN_Y_3) + + ##EMU CENTRE POSITION + + WHERE_BIN_1_X=int(floor((SCREEN_W / 2)-(SIZE_BIN_X_1/2))) + WHERE_BIN_1_Y=int(floor((SCREEN_H / 2) - (SIZE_BIN_X_1/2))) + WHERE_BIN_1=(WHERE_BIN_1_X,WHERE_BIN_1_Y) + + ##EMU GAUCHE POSITION + + WHERE_BIN_2_X=WHERE_BIN_1_X+(SIZE_BIN_X_2/2) + WHERE_BIN_2_Y=SCREEN_H/8 + WHERE_BIN_2=(WHERE_BIN_2_X,WHERE_BIN_2_Y) + + ##EMU GAUCHE POSITION + + WHERE_BIN_3_X=WHERE_BIN_2_X + WHERE_BIN_3_Y=SCREEN_H-SIZE_BIN_Y_3-SCREEN_H/8 + + WHERE_BIN_3=(WHERE_BIN_3_X,WHERE_BIN_3_Y) + + + return(SIZE_BIN_1,SIZE_BIN_2,SIZE_BIN_3,WHERE_BIN_1,WHERE_BIN_2,WHERE_BIN_3) + + diff --git a/CONF/DefFrontEndGameFile.py b/CONF/DefFrontEndGameFile.py new file mode 100644 index 0000000..be21e29 --- /dev/null +++ b/CONF/DefFrontEndGameFile.py @@ -0,0 +1,350 @@ +import pygame +import sys +import time +import subprocess +import os +from pygame.locals import * +from pygame import * +from pygame import movie +#from pygame.movie import * +from DefFrontEndEmuMapFile import * +from DefFrontEndEmuFile import * +from ConfAllPath import * +from DefFrontEndGameMapFile import DefFrontEndGameMap +from DefLaunchSomethingFile import DefLaunchSomething +from DefDownladPerGame import DownloadGraphical +from DefCheckEnvFile import DefCheckEnv +from KeyMapKeyBoard import * +from time import gmtime, strftime + + + + + + +def DefFrontEndGame(EmuChoose,Resolution,emu,li,CptGame,MAX_EMU,MAX,CptEmu,GamePerEmu,MaxForThisEmu,Orientation,JOY_TEST): + + Sys=DefCheckEnv()[0] + pygame.key.set_repeat(400, 70) +# Orientation='X' + ParentOfPyr,ConfRomFile,AllMedia,ConfigKeyboardFile=DefConfPathHome() + + + + font_path,font_size,max_carac,WHERE_TEXTE,WHERE_TEXTE_X,WHERE_TEXTE_Y,SIZE_TEXTE_W,SIZE_TEXTE_H,SIZE_TEXTE,WHERE_WHEEL,WHERE_SYS,SIZE_WHEEL_CONVERT,WHERE_SNAP,SIZE_SNAP_CONVERT,SIZE_SYS_CONVERT,UNIT_L,UNIT_H=DefFrontEndGameMap(Resolution,Orientation) + font = pygame.font.Font(font_path, font_size) + ParentOfPyr,BinOfPyr,Wheel,Snap,Sound,Roms,Docs,ImgY,ImgX,Img,BlackImg,IMG_EMU=DefConfPathGame(Orientation) + BeepFileGame=ParentOfPyr + "/MEDIA/SOUND/blip.wav" + MyBip=pygame.mixer.Sound(BeepFileGame) + pygame.init() + PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + if Orientation=='Y': + + ### TODO + if (os.path.isfile(ImgY + EmuChoose + ".png")): + Background=Img + "/black.png" + else: + Background=Img + "/black.png" + ### ODOT + else: + if (os.path.isfile(ImgX + EmuChoose + ".png")): + Background=ImgX + EmuChoose + ".png" + else: + Background=Img + "/menu_X.png" + fond = pygame.transform.scale(pygame.image.load(Background).convert(),Resolution) + PyrScreen.blit(fond, (0,0)) + + + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_SNAP_CONVERT)),WHERE_SNAP) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_SYS_CONVERT)),WHERE_SYS) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_WHEEL_CONVERT)),WHERE_WHEEL) + + + GameSnapPath=AllMedia+EmuChoose+ "/SNAP/" + GamePerEmu[CptGame][0]+".png" + GameWheelPath=AllMedia+EmuChoose+ "/WHEEL/" + GamePerEmu[CptGame][0]+".png" + GameSysPath=AllMedia + "/IMG/EMU/LOGO/" + EmuChoose +".png" + GameDocPath=AllMedia+EmuChoose+ "/DOCS/" + GamePerEmu[CptGame][0]+".txt" + GameVideoPath=AllMedia+EmuChoose+ "/VIDEO/" + GamePerEmu[CptGame][0]+".mpg" + + + + + if (os.path.isfile(GameSysPath)): + GameSys=pygame.transform.scale(pygame.image.load(GameSysPath).convert_alpha(),SIZE_SYS_CONVERT) + else: + GameSysPath=AllMedia+"/no_sys.png" + GameSys=pygame.transform.scale(pygame.image.load(GameSysPath).convert_alpha(),SIZE_SYS_CONVERT) + + + + + if (os.path.isfile(GameSnapPath)): + GameSnap=pygame.transform.scale(pygame.image.load(GameSnapPath).convert_alpha(),SIZE_SNAP_CONVERT) + else: + GameSnapPath=AllMedia+"/no_snap.png" + GameSnap=pygame.transform.scale(pygame.image.load(GameSnapPath).convert_alpha(),SIZE_SNAP_CONVERT) + + + if (os.path.isfile(GameWheelPath)): + GameWheel=pygame.transform.scale(pygame.image.load(GameWheelPath).convert_alpha(),SIZE_WHEEL_CONVERT) + else: + GameWheelPath=AllMedia+"/no_wheel.png" + GameWheel=pygame.transform.scale(pygame.image.load(GameWheelPath).convert_alpha(),SIZE_WHEEL_CONVERT) + FILE_INFO=AllMedia+EmuChoose+ "/DOCS/" + GamePerEmu[CptGame][0]+".txt" + if os.path.isfile(FILE_INFO): + FILE_DOC = open(FILE_INFO,"r") + text1 = FILE_DOC.read() + LPLUS=0 + LPLUS=LPLUS + (font_size+3) + WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),(WHERE_TEXTE)) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),WHERE_TEXTE) + for ligne in text1.splitlines(): + ligne=ligne[0:max_carac] + x,y = PyrScreen.blit(font.render(ligne,10,pygame.Color("red")),(WHERE_TEXTE_X,WHERE_TEXTE_Y+LPLUS)).bottomleft + LPLUS=LPLUS + (font_size+1) + if ((WHERE_TEXTE_Y + LPLUS) > (SIZE_TEXTE_H*3 +(UNIT_H*2))): + break + FILE_DOC.close() + else: + text1 = "No DATA File : " #+ GamePerEmu[CptGame][MAX_EMU][0] + text2 = font.render(text1, True, pygame.Color("red")) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE_W,SIZE_TEXTE_H)),((WHERE_TEXTE_X,WHERE_TEXTE_Y))) + + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),WHERE_TEXTE) + PyrScreen.blit(text2,(WHERE_TEXTE_X,WHERE_TEXTE_Y+50)).bottomleft + + + + + PyrScreen.blit(GameSnap,WHERE_SNAP) + PyrScreen.blit(GameSys,WHERE_SYS) + PyrScreen.blit(GameWheel,WHERE_WHEEL) + pygame.display.flip() + + + KeepInGame = 1 + FrontEndGame = 1 + ExitStatus = 0 + T1=0 + while KeepInGame == 1: + + for event in pygame.event.get(): + #T1=(time.time()) + T1=strftime("%H%M%S", gmtime()) + + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),WHERE_TEXTE) + if JOY_TEST == 1 : + if event.type == JOYAXISMOTION: + if event.axis == 0 and event.value > 0: + CptGame = CptGame + 1 + if event.axis == 0 and event.value < 0: + CptGame = CptGame - 1 + if event.axis == 1 and event.value < 0: + ROM_L1 = GamePerEmu[CptGame][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CptGame = CptGame + 1 + if CptGame >= MaxForThisEmu: + CptGame=0 + break + ROM_L1 = GamePerEmu[CptGame][0][0] + if event.axis == 1 and event.value > 0: + ROM_L1 = GamePerEmu[CptGame][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CptGame = CptGame - 1 + if CptGame <= -MaxForThisEmu: + CptGame=0 + break + ROM_L1 = GamePerEmu[CptGame][0][0] + if event.type == JOYBUTTONDOWN: + if event.button == BTN_J1_2: + FrontEndGame = 0 + ExitStatus = 0 + KeepInGame = 0 + FrontEndEmu = 1 + CptEmu = 0 + if event.button == BTN_J1_1: + FrontEndGame = 0 + FrontEndGame = 1 + ExitStatus = 0 + KeepInGame= 1 + FrontEndEmu = 0 + GameChoose = GamePerEmu[CptGame][0] + DefLaunchSomething(EmuChoose,GameChoose,AllMedia,font,Resolution,BlackImg,WHERE_TEXTE,SIZE_TEXTE,Background,Orientation) + pygame.mixer.Sound(BeepFileGame).play() + + if JOY_TEST == 0 : + if event.type == KEYDOWN: + if event.key == LEFT_J1: +# if event.key == K_LEFT: + CptGame = CptGame - 1 +# if event.key == K_RIGHT: + if event.key == RIGHT_J1: + CptGame = CptGame + 1 +# if event.key == K_UP: + if event.key == UP_J1: + ROM_L1 = GamePerEmu[CptGame][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CptGame = CptGame + 1 + if CptGame >= MaxForThisEmu: + CptGame=0 + break + ROM_L1 = GamePerEmu[CptGame][0][0] + if event.key == DOWN_J1: +# if event.key == K_DOWN: + ROM_L1 = GamePerEmu[CptGame][0][0] + ROM_L2 = ROM_L1 + while (ROM_L1 == ROM_L2): + CptGame = CptGame - 1 + if CptGame <= -MaxForThisEmu: + CptGame=0 + break + ROM_L1 = GamePerEmu[CptGame][0][0] + # LAUNCH GAME + if event.key == BTN_J1_1: +# if event.key == K_d: + FrontEndGame = 1 + ExitStatus = 0 + KeepInGame= 1 + FrontEndEmu = 0 + GameChoose = GamePerEmu[CptGame][0] + DefLaunchSomething(EmuChoose,GameChoose,AllMedia,font,Resolution,BlackImg,WHERE_TEXTE,SIZE_TEXTE,Background,Orientation) + + + ################################################### + # DOWNLAOD MEDIA +# if event.key == K_f: + if event.key == BTN_J1_3: + T1=0 + T2=0 + + DownloadGraphical(EmuChoose, GamePerEmu[CptGame][0]) + + PyrScreen.blit(fond, (0,0)) + + T1=0 + T2=0 + ################################################### + # ESCAPE (keyboard only) + if event.key == K_ESCAPE: + FrontEndGame = 0 + ExitStatus = 1 + KeepInGame=0 + FrontEndEmu = 0 + # Back to Emu Selector + if event.key == BTN_J1_2: +# if event.key == K_e: + FrontEndGame = 0 + ExitStatus = 0 + KeepInGame = 0 + FrontEndEmu = 1 + CptEmu = 0 + + + + + + + + + pygame.mixer.Sound(BeepFileGame).play() + + + if CptGame >= MaxForThisEmu: + CptGame = -MaxForThisEmu + + if CptGame < -MaxForThisEmu: + CptGame = MaxForThisEmu -1 + if MaxForThisEmu == 1: + CptGame = 0 + GameSnapPath=AllMedia+EmuChoose+ "/SNAP/" + GamePerEmu[CptGame][0]+".png" + if (os.path.isfile(GameSnapPath)): + GameSnap=pygame.transform.scale(pygame.image.load(GameSnapPath).convert_alpha(),SIZE_SNAP_CONVERT) + else: + GameSnapPath=AllMedia+"/no_snap.png" + GameWheelPath=AllMedia+EmuChoose+ "/WHEEL/" + GamePerEmu[CptGame][0]+".png" + if (os.path.isfile(GameWheelPath)): + GameWheel=pygame.transform.scale(pygame.image.load(GameWheelPath).convert_alpha(),SIZE_WHEEL_CONVERT) + else: + GameWheelPath=AllMedia+"/no_wheel.png" + GameWheel=pygame.transform.scale(pygame.image.load(GameWheelPath).convert_alpha(),SIZE_WHEEL_CONVERT) + + + GameSnap=pygame.transform.scale(pygame.image.load(GameSnapPath).convert_alpha(),SIZE_SNAP_CONVERT) + + FILE_INFO=AllMedia+EmuChoose+ "/DOCS/" + GamePerEmu[CptGame][0]+".txt" + if os.path.isfile(FILE_INFO): + FILE_DOC = open(FILE_INFO,"r") + text1 = FILE_DOC.read() + LPLUS=0 + LPLUS=LPLUS + (font_size+3) + WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),(WHERE_TEXTE)) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),WHERE_TEXTE) + for ligne in text1.splitlines(): + ligne=ligne[0:max_carac] + x,y = PyrScreen.blit(font.render(ligne,1,pygame.Color("red")),(WHERE_TEXTE_X,WHERE_TEXTE_Y+LPLUS)).bottomleft + LPLUS=LPLUS + (font_size+1) + if ((WHERE_TEXTE_Y + LPLUS) > (SIZE_TEXTE_H*3 +(UNIT_H*2))): + break + + FILE_DOC.close() + else: + text1 = "No DATA File : " + GamePerEmu[CptGame][0] + text2 = font.render(text1, True, pygame.Color("red")) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE_W,SIZE_TEXTE_H)),((WHERE_TEXTE_X,WHERE_TEXTE_Y))) + + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),WHERE_TEXTE) + PyrScreen.blit(text2,(WHERE_TEXTE_X,WHERE_TEXTE_Y+50)).bottomleft + + + + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_SNAP_CONVERT)),WHERE_SNAP) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_SYS_CONVERT)),WHERE_SYS) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_WHEEL_CONVERT)),WHERE_WHEEL) + + + PyrScreen.blit(GameSnap,WHERE_SNAP) + PyrScreen.blit(GameSys,WHERE_SYS) + PyrScreen.blit(GameWheel,WHERE_WHEEL) + + if T1 == 0: + T1=strftime("%H%M%S", gmtime()) + TDiff=int(strftime("%H%M%S", gmtime())) - int(T1) + GameVideoPath=AllMedia+EmuChoose+ "/VIDEO/" + GamePerEmu[CptGame][0]+".mpg" + + + if os.path.isfile(GameVideoPath): + if TDiff > 2 and Sys != "Darwin": + + FPS = 60 + + pygame.mixer.quit() + + movie = pygame.movie.Movie(GameVideoPath) + movie.set_volume(0.8) + + #VIDE FULLSCREEN + #mrect = pygame.Rect((0,0),Resolution) + + mrect = pygame.Rect(WHERE_SNAP,SIZE_SNAP_CONVERT) + movie.set_display(PyrScreen,mrect) + + + movie.play() + + while movie.get_busy(): + evt = pygame.event.wait() + if any( [ evt.type == JOYAXISMOTION,evt.type == JOYBUTTONDOWN, evt.type == QUIT,evt.type == KEYDOWN] ): + T1=0 + T2=0 + movie.stop() + movie=None + pygame.mixer.init() + break + pygame.display.flip() + pygame.display.flip() + return FrontEndGame,ExitStatus,FrontEndEmu,CptEmu diff --git a/CONF/DefFrontEndGameMapFile.py b/CONF/DefFrontEndGameMapFile.py new file mode 100644 index 0000000..e14fd24 --- /dev/null +++ b/CONF/DefFrontEndGameMapFile.py @@ -0,0 +1,84 @@ +from math import * + + +def DefFrontEndGameMap(resolution,Orientation): + + if Orientation == "Y": + SCREEN_W,SCREEN_H=resolution + SIZE_SNAP_CONVERT_W = int(floor(SCREEN_W / 3)) + SIZE_SNAP_CONVERT_H = int(floor(SCREEN_H / 5)) + SIZE_SNAP_CONVERT=(SIZE_SNAP_CONVERT_W,SIZE_SNAP_CONVERT_H) + SIZE_WHEEL_CONVERT_W = SIZE_SNAP_CONVERT_W + SIZE_WHEEL_CONVERT_H = int(floor(SIZE_WHEEL_CONVERT_W / 4)) + SIZE_WHEEL_CONVERT=(SIZE_WHEEL_CONVERT_W,SIZE_WHEEL_CONVERT_H) + WHERE_WHEEL_X = SIZE_WHEEL_CONVERT_W + WHERE_WHEEL_Y = int(floor(SCREEN_H / 10)) + WHERE_WHEEL=(WHERE_WHEEL_X,WHERE_WHEEL_Y) + WHERE_SNAP_X = SIZE_WHEEL_CONVERT_W + WHERE_SNAP_Y = WHERE_WHEEL_Y + SIZE_WHEEL_CONVERT_H + SEPARATION_WHEEL_SNAP + WHERE_SNAP=(WHERE_SNAP_X,WHERE_SNAP_Y) + WHERE_TEXTE_X = WHERE_WHEEL_X + WHERE_TEXTE_Y = int(floor(SCREEN_H / 2)) + SIZE_TEXTE_W = SIZE_SNAP_CONVERT_W + SIZE_TEXTE_H = int(floor(SIZE_SNAP_CONVERT_H)) + WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) + SIZE_TEXTE = (SIZE_TEXTE_W,SIZE_TEXTE_H) + font_path = "./MEDIA/font.ttf" + max_carac = 50 + font_path = "./MEDIA/font.ttf" + max_carac = 30 + font_size=int(round(floor(SIZE_TEXTE_W / max_carac))) + +# font_size = 20 + + + else: + SCREEN_W,SCREEN_H=resolution + UNIT_H=int(floor(SCREEN_H/20)) + UNIT_L=int(floor(SCREEN_W/30)) + + + ######### SNAP ######## + SIZE_SNAP_CONVERT_W = (int(floor((SCREEN_W / 2)-((UNIT_L + UNIT_L/2))))) + SIZE_SNAP_CONVERT_H = int(floor(SCREEN_H - (UNIT_H*2 + UNIT_H/2 ))) + SIZE_SNAP_CONVERT=(SIZE_SNAP_CONVERT_W,SIZE_SNAP_CONVERT_H) + WHERE_SNAP_X = int(floor(((SCREEN_W / 2) + (UNIT_L/2)))) + WHERE_SNAP_Y = UNIT_H + WHERE_SNAP=(WHERE_SNAP_X,WHERE_SNAP_Y) + + ######### WHEEL ######## + SIZE_WHEEL_CONVERT_W = SIZE_SNAP_CONVERT_W + SIZE_WHEEL_CONVERT_H = int(floor((SCREEN_H /3)-( UNIT_H + UNIT_H/2) )) + SIZE_WHEEL_CONVERT=(SIZE_WHEEL_CONVERT_W,SIZE_WHEEL_CONVERT_H) + WHERE_WHEEL_X = UNIT_L + WHERE_WHEEL_Y = SIZE_WHEEL_CONVERT_H + (UNIT_H * 2) + WHERE_WHEEL = (WHERE_WHEEL_X,WHERE_WHEEL_Y) + + ########## SYS ######### + SIZE_SYS_W = SIZE_WHEEL_CONVERT_W + SIZE_SYS_H = SIZE_WHEEL_CONVERT_H + SIZE_SYS_CONVERT= (SIZE_SYS_W,SIZE_SYS_H) + WHERE_SYS_X = UNIT_L + WHERE_SYS_Y = UNIT_H + WHERE_SYS=(WHERE_SYS_X,WHERE_SYS_Y) + + ######### TEXTE ######## + SIZE_TEXTE_W = SIZE_WHEEL_CONVERT_W + SIZE_TEXTE_H = SIZE_WHEEL_CONVERT_H + SIZE_TEXTE = (SIZE_TEXTE_W,SIZE_TEXTE_H) + WHERE_TEXTE_X = UNIT_L + WHERE_TEXTE_Y = (SIZE_WHEEL_CONVERT_H * 2) + (UNIT_H * 3) + WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) + + + + + font_path = "./MEDIA/font.ttf" + max_carac = 54 + max_carac = int(floor((SCREEN_W/10) -( SCREEN_W/10 * 2/3))) + font_size=int(round(floor((SIZE_TEXTE_W / max_carac))*2)) + #font_size = 35 + + + return font_path,font_size,max_carac,WHERE_TEXTE,WHERE_TEXTE_X,WHERE_TEXTE_Y,SIZE_TEXTE_W,SIZE_TEXTE_H,SIZE_TEXTE,WHERE_WHEEL,WHERE_SYS,SIZE_WHEEL_CONVERT,WHERE_SNAP,SIZE_SNAP_CONVERT,SIZE_SYS_CONVERT,UNIT_L,UNIT_H + diff --git a/CONF/DefFrontEndGameReadDocsFile.py b/CONF/DefFrontEndGameReadDocsFile.py new file mode 100644 index 0000000..5f6ca7d --- /dev/null +++ b/CONF/DefFrontEndGameReadDocsFile.py @@ -0,0 +1,24 @@ +def DefFrontEndGameReadDocs (Resolution,emu,MapingEmu,li,CptEmu,MAX_EMU,MAX): + + + if os.path.isfile(FILE_INFO): + FILE_DOC = open(FILE_INFO,"r") + text1 = FILE_DOC.read() + LPLUS=0 + LPLUS=LPLUS + (font_size+5) + WHERE_TEXTE=(WHERE_TEXTE_X,WHERE_TEXTE_Y) + fenetre.blit(pygame.transform.scale(pygame.image.load(BLACK).convert(),(SIZE_TEXTE)),(WHERE_TEXTE)) + for ligne in text1.splitlines(): + ligne=ligne[0:max_carac] + x,y = fenetre.blit(font.render(ligne,5,pygame.Color("white")),(WHERE_TEXTE_X,WHERE_TEXTE_Y+LPLUS)).bottomleft + LPLUS=LPLUS + (font_size+5) + FILE_DOC.close() + else: + text1 = "No DATA File : " + li[CPT][0] + text2 = font.render(text1, True, pygame.Color("white")) + fenetre.blit(pygame.transform.scale(pygame.image.load(BLACK).convert(),(SIZE_TEXTE_W,SIZE_TEXTE_H)),((WHERE_TEXTE_X,WHERE_TEXTE_Y))) + fenetre.blit(text2,(WHERE_TEXTE_X,WHERE_TEXTE_Y+50)).bottomleft +# if not (os.path.isfile(IMG_WHEEL)): +# IMG_WHEEL = SNAP_AND_WHEEL + "no_wheel.png" +# if not (os.path.isfile(IMG_SNAP)): +# IMG_SNAP = SNAP_AND_WHEEL + "no_snap.png" diff --git a/CONF/DefLaunchSomethingFile.py b/CONF/DefLaunchSomethingFile.py new file mode 100644 index 0000000..13b162b --- /dev/null +++ b/CONF/DefLaunchSomethingFile.py @@ -0,0 +1,44 @@ +import os +import glob +import pygame +import subprocess +import sys +def DefLaunchSomething(EmuChoose,GameChoose,AllMedia,font,Resolution,BlackImg,WHERE_TEXTE,SIZE_TEXTE,Background,Orientation): + PyrScreen = pygame.display.set_mode(Resolution) + WHERE_TEXTE_W,WHERE_TEXTE_Y=WHERE_TEXTE + fond = pygame.transform.scale(pygame.image.load(Background).convert(),Resolution) + PyrScreen.blit(fond, (0,0)) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),(WHERE_TEXTE)) + + PathOfGame=AllMedia+EmuChoose+"/ROMS/" + GameChooseJoker=GameChoose + ".*" + FullPathJoker=glob.glob(os.path.join(PathOfGame, GameChooseJoker)) + PathOfBin=AllMedia + "../BIN/" + BinCooseJoker=PathOfBin + EmuChoose +".*" + FullPathJokerBin=glob.glob(os.path.join(PathOfBin, BinCooseJoker)) + if FullPathJokerBin: + BinFullPathJoker=FullPathJokerBin[0] + if EmuChoose == "SYS": + ##print "EmuChoose: " + EmuChoose + " | GameChoose : " + GameChoose + APP=BinFullPathJoker + " " + GameChoose + " " + Orientation + p = subprocess.Popen(APP, shell=True) + sys.exit("GO play bitch ;)") + else: + if FullPathJoker: + GameFullPathJoker=FullPathJoker[0] + else: + GameFullPathJoker="xxxxxxxxxxxxxxxxxxxxx" + if (os.path.isfile(GameFullPathJoker)): + ##print "EmuChoose: " + EmuChoose + " | GameChoose : " + GameChoose + APP="BIN/" + EmuChoose +".sh" + " " + GameChoose + " " + Orientation + p = subprocess.Popen(APP, shell=True) + sys.exit("GO play bitch ;)") + + else: + ##print "Roms " + GameChoose + " NOT FOUND " + AllMedia+EmuChoose + "/ROMS/" + text1 = "Roms " + GameChoose + " NOT FOUND" + text2 = font.render(text1, True, pygame.Color("white")) + PyrScreen.blit(pygame.transform.scale(pygame.image.load(BlackImg).convert(),(SIZE_TEXTE)),((WHERE_TEXTE))) + PyrScreen.blit(text2,(WHERE_TEXTE_W,WHERE_TEXTE_Y)).bottomleft + + diff --git a/CONF/DefReadConfGameFile.py b/CONF/DefReadConfGameFile.py new file mode 100644 index 0000000..8d7ffb3 --- /dev/null +++ b/CONF/DefReadConfGameFile.py @@ -0,0 +1,15 @@ +#COMPTEUR et lecture du fichier conf +import csv +def DefReadConfGame(rom_config_file,EmuChoose,li): + GamePerEmu = [] + MaxForThisEmu = 0 + for row2 in li: + GameListe,EmuListe=row2 + if EmuListe == EmuChoose: + GamePerEmu.append(row2) + MaxForThisEmu=MaxForThisEmu+1 + def getKey(item): + return item[0] + sorted(GamePerEmu, key=getKey) + GamePerEmu + return GamePerEmu,MaxForThisEmu diff --git a/CONF/DefReadConfRomFile.py b/CONF/DefReadConfRomFile.py new file mode 100644 index 0000000..eac1636 --- /dev/null +++ b/CONF/DefReadConfRomFile.py @@ -0,0 +1,24 @@ +#COMPTEUR et lecture du fichier conf +import csv +def DefReadConfRom(rom_config_file): + reader = csv.reader(open(rom_config_file),delimiter=',') + li = [] + emu = [] + GamePerEmu = [] + MAX = 0 + MAX_EMU = 0 + + for row in reader: + if row: + li.append(row) + if not (li[MAX][1] in emu): + emu.append(li[MAX][1]) + MAX_EMU=MAX_EMU +1 + + MAX = MAX +1 + def getKey(item): + return item[1] + sorted(li, key=getKey) + + #return {'MAX':MAX, 'MAX_EMU':MAX_EMU,'li':li,'emu':emu} + return MAX,MAX_EMU,li,emu diff --git a/CONF/DefResAndSysFile.py b/CONF/DefResAndSysFile.py new file mode 100644 index 0000000..71eb206 --- /dev/null +++ b/CONF/DefResAndSysFile.py @@ -0,0 +1,16 @@ +import pygame +import subprocess + +def DefResolution(): + screen = pygame.display.set_mode((0,0)) + screen.fill((0,0,180)) + size = screen.get_rect() + SCREEN_W = size[2] + SCREEN_H = size[3] + return SCREEN_W,SCREEN_H + #return 1280,1024 + +def DefSystem(): + p = subprocess.check_output(['uname']) + sys_check = p.strip() + return sys_check diff --git a/CONF/DefTransition.py b/CONF/DefTransition.py new file mode 100644 index 0000000..ae315d2 --- /dev/null +++ b/CONF/DefTransition.py @@ -0,0 +1,39 @@ +import pygame +import sys +import time +import subprocess +import os +from pygame.locals import * +from DefFrontEndEmuMapFile import * +from DefFrontEndEmuFile import * +from ConfAllPath import * +from DefFrontEndGameMapFile import DefFrontEndGameMap +from DefLaunchSomethingFile import DefLaunchSomething +from DefDownladPerGame import DownloadGraphical +from DefCheckEnvFile import DefCheckEnv + + + +def Transition(Resolution,emu,MapingEmu,li,CptEmu,MAX_EMU,MAX,Orientation): + PyrScreen = pygame.display.set_mode(Resolution,FULLSCREEN) + pygame.mixer.quit() + movie = pygame.movie.Movie('MEDIA/boom.mpg') + movie.set_volume(0.8) + + #VIDE FULLSCREEN + mrect = pygame.Rect((0,0),Resolution) + + #mrect = pygame.Rect(WHERE_SNAP,SIZE_SNAP_CONVERT) + movie.set_display(PyrScreen,mrect) + movie.play() + while movie.get_busy(): + evt = pygame.event.wait() + if any( [ evt.type == JOYAXISMOTION,evt.type == JOYBUTTONDOWN, evt.type == QUIT,evt.type == KEYDOWN] ): + T1=0 + T2=0 + movie.stop() + movie=None + pygame.mixer.init() + break + pygame.display.flip() + diff --git a/MEDIA/IMG/EMU/CPS.png b/MEDIA/IMG/EMU/CPS.png new file mode 100644 index 0000000..d7d7ca4 Binary files /dev/null and b/MEDIA/IMG/EMU/CPS.png differ diff --git a/MEDIA/IMG/EMU/CPS3.png b/MEDIA/IMG/EMU/CPS3.png new file mode 100644 index 0000000..1ca110a Binary files /dev/null and b/MEDIA/IMG/EMU/CPS3.png differ diff --git a/MEDIA/IMG/EMU/FBA.png b/MEDIA/IMG/EMU/FBA.png new file mode 100644 index 0000000..50ecdba Binary files /dev/null and b/MEDIA/IMG/EMU/FBA.png differ diff --git a/MEDIA/IMG/EMU/GAMEBOY.png b/MEDIA/IMG/EMU/GAMEBOY.png new file mode 100644 index 0000000..1a44c81 Binary files /dev/null and b/MEDIA/IMG/EMU/GAMEBOY.png differ diff --git a/MEDIA/IMG/EMU/GAME_GEAR.png b/MEDIA/IMG/EMU/GAME_GEAR.png new file mode 100644 index 0000000..01bfadd Binary files /dev/null and b/MEDIA/IMG/EMU/GAME_GEAR.png differ diff --git a/MEDIA/IMG/EMU/GAW.png b/MEDIA/IMG/EMU/GAW.png new file mode 100644 index 0000000..e93e644 Binary files /dev/null and b/MEDIA/IMG/EMU/GAW.png differ diff --git a/MEDIA/IMG/EMU/GNGEO.png b/MEDIA/IMG/EMU/GNGEO.png new file mode 100644 index 0000000..75fd454 Binary files /dev/null and b/MEDIA/IMG/EMU/GNGEO.png differ diff --git a/MEDIA/IMG/EMU/LOGO/CPS3.png b/MEDIA/IMG/EMU/LOGO/CPS3.png new file mode 100644 index 0000000..676d9d1 Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/CPS3.png differ diff --git a/MEDIA/IMG/EMU/LOGO/FBA.png b/MEDIA/IMG/EMU/LOGO/FBA.png new file mode 100644 index 0000000..44409d0 Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/FBA.png differ diff --git a/MEDIA/IMG/EMU/LOGO/GAMEBOY.png b/MEDIA/IMG/EMU/LOGO/GAMEBOY.png new file mode 100644 index 0000000..c14acf4 Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/GAMEBOY.png differ diff --git a/MEDIA/IMG/EMU/LOGO/GAW.png b/MEDIA/IMG/EMU/LOGO/GAW.png new file mode 100644 index 0000000..7adc3e0 Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/GAW.png differ diff --git a/MEDIA/IMG/EMU/LOGO/GNGEO.png b/MEDIA/IMG/EMU/LOGO/GNGEO.png new file mode 100644 index 0000000..66621aa Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/GNGEO.png differ diff --git a/MEDIA/IMG/EMU/LOGO/MAME.png b/MEDIA/IMG/EMU/LOGO/MAME.png new file mode 100644 index 0000000..101771d Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/MAME.png differ diff --git a/MEDIA/IMG/EMU/LOGO/N64.png b/MEDIA/IMG/EMU/LOGO/N64.png new file mode 100644 index 0000000..f52dcb1 Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/N64.png differ diff --git a/MEDIA/IMG/EMU/LOGO/NES.png b/MEDIA/IMG/EMU/LOGO/NES.png new file mode 100644 index 0000000..a71e42e Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/NES.png differ diff --git a/MEDIA/IMG/EMU/LOGO/PS1.png b/MEDIA/IMG/EMU/LOGO/PS1.png new file mode 100644 index 0000000..848ee1a Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/PS1.png differ diff --git a/MEDIA/IMG/EMU/LOGO/SNES.png b/MEDIA/IMG/EMU/LOGO/SNES.png new file mode 100644 index 0000000..d0ab452 Binary files /dev/null and b/MEDIA/IMG/EMU/LOGO/SNES.png differ diff --git a/MEDIA/IMG/EMU/MAME.png b/MEDIA/IMG/EMU/MAME.png new file mode 100644 index 0000000..b33dde4 Binary files /dev/null and b/MEDIA/IMG/EMU/MAME.png differ diff --git a/MEDIA/IMG/EMU/MASTER_SYSTEM.png b/MEDIA/IMG/EMU/MASTER_SYSTEM.png new file mode 100644 index 0000000..e11b02c Binary files /dev/null and b/MEDIA/IMG/EMU/MASTER_SYSTEM.png differ diff --git a/MEDIA/IMG/EMU/N64.png b/MEDIA/IMG/EMU/N64.png new file mode 100644 index 0000000..b71fb1a Binary files /dev/null and b/MEDIA/IMG/EMU/N64.png differ diff --git a/MEDIA/IMG/EMU/NEOGEO.png b/MEDIA/IMG/EMU/NEOGEO.png new file mode 100644 index 0000000..11bf561 Binary files /dev/null and b/MEDIA/IMG/EMU/NEOGEO.png differ diff --git a/MEDIA/IMG/EMU/NES.png b/MEDIA/IMG/EMU/NES.png new file mode 100644 index 0000000..f099b2e Binary files /dev/null and b/MEDIA/IMG/EMU/NES.png differ diff --git a/MEDIA/IMG/EMU/PGM.png b/MEDIA/IMG/EMU/PGM.png new file mode 100644 index 0000000..62dc23b Binary files /dev/null and b/MEDIA/IMG/EMU/PGM.png differ diff --git a/MEDIA/IMG/EMU/PS1.png b/MEDIA/IMG/EMU/PS1.png new file mode 100644 index 0000000..b73c8d3 Binary files /dev/null and b/MEDIA/IMG/EMU/PS1.png differ diff --git a/MEDIA/IMG/EMU/SNES.png b/MEDIA/IMG/EMU/SNES.png new file mode 100644 index 0000000..cd4753f Binary files /dev/null and b/MEDIA/IMG/EMU/SNES.png differ diff --git a/MEDIA/IMG/EMU/SYS.png b/MEDIA/IMG/EMU/SYS.png new file mode 100644 index 0000000..74ab784 Binary files /dev/null and b/MEDIA/IMG/EMU/SYS.png differ diff --git a/MEDIA/IMG/EMU/no_emu.png b/MEDIA/IMG/EMU/no_emu.png new file mode 100644 index 0000000..916e8ac Binary files /dev/null and b/MEDIA/IMG/EMU/no_emu.png differ diff --git a/MEDIA/IMG/IMGX/CPS3.png b/MEDIA/IMG/IMGX/CPS3.png new file mode 100644 index 0000000..37135b2 Binary files /dev/null and b/MEDIA/IMG/IMGX/CPS3.png differ diff --git a/MEDIA/IMG/IMGX/FBA.png b/MEDIA/IMG/IMGX/FBA.png new file mode 100644 index 0000000..2e636e1 Binary files /dev/null and b/MEDIA/IMG/IMGX/FBA.png differ diff --git a/MEDIA/IMG/IMGX/GAMEBOY.png b/MEDIA/IMG/IMGX/GAMEBOY.png new file mode 100644 index 0000000..8401982 Binary files /dev/null and b/MEDIA/IMG/IMGX/GAMEBOY.png differ diff --git a/MEDIA/IMG/IMGX/GAW.png b/MEDIA/IMG/IMGX/GAW.png new file mode 100644 index 0000000..976bcef Binary files /dev/null and b/MEDIA/IMG/IMGX/GAW.png differ diff --git a/MEDIA/IMG/IMGX/GNGEO.png b/MEDIA/IMG/IMGX/GNGEO.png new file mode 100644 index 0000000..287d624 Binary files /dev/null and b/MEDIA/IMG/IMGX/GNGEO.png differ diff --git a/MEDIA/IMG/IMGX/MAME.png b/MEDIA/IMG/IMGX/MAME.png new file mode 100644 index 0000000..f92c4e1 Binary files /dev/null and b/MEDIA/IMG/IMGX/MAME.png differ diff --git a/MEDIA/IMG/IMGX/N64.png b/MEDIA/IMG/IMGX/N64.png new file mode 100644 index 0000000..ccccd3b Binary files /dev/null and b/MEDIA/IMG/IMGX/N64.png differ diff --git a/MEDIA/IMG/IMGX/NES.png b/MEDIA/IMG/IMGX/NES.png new file mode 100644 index 0000000..1bf9c56 Binary files /dev/null and b/MEDIA/IMG/IMGX/NES.png differ diff --git a/MEDIA/IMG/IMGX/PS1.png b/MEDIA/IMG/IMGX/PS1.png new file mode 100644 index 0000000..bb52dfa Binary files /dev/null and b/MEDIA/IMG/IMGX/PS1.png differ diff --git a/MEDIA/IMG/IMGX/SNES.png b/MEDIA/IMG/IMGX/SNES.png new file mode 100644 index 0000000..b2b209e Binary files /dev/null and b/MEDIA/IMG/IMGX/SNES.png differ diff --git a/MEDIA/IMG/IMGX/SYS.png b/MEDIA/IMG/IMGX/SYS.png new file mode 100644 index 0000000..97ca84f Binary files /dev/null and b/MEDIA/IMG/IMGX/SYS.png differ diff --git a/MEDIA/IMG/IMGX/bg2_X.png b/MEDIA/IMG/IMGX/bg2_X.png new file mode 100644 index 0000000..d923dbe Binary files /dev/null and b/MEDIA/IMG/IMGX/bg2_X.png differ diff --git a/MEDIA/IMG/IMGY/FBA.png b/MEDIA/IMG/IMGY/FBA.png new file mode 100644 index 0000000..ea010ab Binary files /dev/null and b/MEDIA/IMG/IMGY/FBA.png differ diff --git a/MEDIA/IMG/IMGY/GNGEO.png b/MEDIA/IMG/IMGY/GNGEO.png new file mode 100644 index 0000000..530705f Binary files /dev/null and b/MEDIA/IMG/IMGY/GNGEO.png differ diff --git a/MEDIA/IMG/IMGY/MAME.png b/MEDIA/IMG/IMGY/MAME.png new file mode 100644 index 0000000..6920ba9 Binary files /dev/null and b/MEDIA/IMG/IMGY/MAME.png differ diff --git a/MEDIA/IMG/IMGY/SYS.png b/MEDIA/IMG/IMGY/SYS.png new file mode 100644 index 0000000..327a5f7 Binary files /dev/null and b/MEDIA/IMG/IMGY/SYS.png differ diff --git a/MEDIA/IMG/IMGY/bg2_Y.png b/MEDIA/IMG/IMGY/bg2_Y.png new file mode 100644 index 0000000..2857dc4 Binary files /dev/null and b/MEDIA/IMG/IMGY/bg2_Y.png differ diff --git a/MEDIA/IMG/IMGY/layout.png b/MEDIA/IMG/IMGY/layout.png new file mode 100644 index 0000000..df350f8 Binary files /dev/null and b/MEDIA/IMG/IMGY/layout.png differ diff --git a/MEDIA/IMG/black.png b/MEDIA/IMG/black.png new file mode 100644 index 0000000..9a52ff5 Binary files /dev/null and b/MEDIA/IMG/black.png differ diff --git a/MEDIA/IMG/dpfe_welcom_X.png b/MEDIA/IMG/dpfe_welcom_X.png new file mode 100644 index 0000000..e4d282d Binary files /dev/null and b/MEDIA/IMG/dpfe_welcom_X.png differ diff --git a/MEDIA/IMG/dpfe_welcom_Y.png b/MEDIA/IMG/dpfe_welcom_Y.png new file mode 100644 index 0000000..0ff1703 Binary files /dev/null and b/MEDIA/IMG/dpfe_welcom_Y.png differ diff --git a/MEDIA/IMG/menu_X.png b/MEDIA/IMG/menu_X.png new file mode 100644 index 0000000..c2fd241 Binary files /dev/null and b/MEDIA/IMG/menu_X.png differ diff --git a/MEDIA/IMG/menu_Y.png b/MEDIA/IMG/menu_Y.png new file mode 100644 index 0000000..2261ef6 Binary files /dev/null and b/MEDIA/IMG/menu_Y.png differ diff --git a/MEDIA/SOUND/beep.mp3 b/MEDIA/SOUND/beep.mp3 new file mode 100644 index 0000000..cd3a3ec Binary files /dev/null and b/MEDIA/SOUND/beep.mp3 differ diff --git a/MEDIA/SOUND/blip.wav b/MEDIA/SOUND/blip.wav new file mode 100644 index 0000000..d6fc81b Binary files /dev/null and b/MEDIA/SOUND/blip.wav differ diff --git a/MEDIA/SOUND/blip_games.wav b/MEDIA/SOUND/blip_games.wav new file mode 100644 index 0000000..545c260 Binary files /dev/null and b/MEDIA/SOUND/blip_games.wav differ diff --git a/MEDIA/SOUND/intro.wav b/MEDIA/SOUND/intro.wav new file mode 100644 index 0000000..4f7b256 Binary files /dev/null and b/MEDIA/SOUND/intro.wav differ diff --git a/MEDIA/SYS/DOCS/001_BIOS.txt b/MEDIA/SYS/DOCS/001_BIOS.txt new file mode 100644 index 0000000..7c8a668 --- /dev/null +++ b/MEDIA/SYS/DOCS/001_BIOS.txt @@ -0,0 +1,3 @@ +Get BIOS Package FROM PyrDB +and link all MAME Bios in +FBA / MAME / CPS* / GNGEO diff --git a/MEDIA/SYS/DOCS/001_EDIT.txt b/MEDIA/SYS/DOCS/001_EDIT.txt new file mode 100644 index 0000000..de1098f --- /dev/null +++ b/MEDIA/SYS/DOCS/001_EDIT.txt @@ -0,0 +1,7 @@ +Edit the ROM_CONFIG_FILES.csv + +You can add all the game you want :) + +See PyroBase : + +http://pyrharckade.io/Pyrobase/ diff --git a/MEDIA/SYS/DOCS/001_HALT.txt b/MEDIA/SYS/DOCS/001_HALT.txt new file mode 100644 index 0000000..03ccf54 --- /dev/null +++ b/MEDIA/SYS/DOCS/001_HALT.txt @@ -0,0 +1,2 @@ +Stop your Computer / RPI + better way to don't kill your SD CARD !!! diff --git a/MEDIA/SYS/DOCS/001_MEDIA.txt b/MEDIA/SYS/DOCS/001_MEDIA.txt new file mode 100644 index 0000000..432b984 --- /dev/null +++ b/MEDIA/SYS/DOCS/001_MEDIA.txt @@ -0,0 +1 @@ +Get all the media FROM pyrharckade.tuxme.net server ... diff --git a/MEDIA/SYS/DOCS/001_QUIT.txt b/MEDIA/SYS/DOCS/001_QUIT.txt new file mode 100644 index 0000000..36f9985 --- /dev/null +++ b/MEDIA/SYS/DOCS/001_QUIT.txt @@ -0,0 +1,3 @@ +Just EXIT the FE + +See you soon !!! diff --git a/MEDIA/SYS/DOCS/001_REBOOT.txt b/MEDIA/SYS/DOCS/001_REBOOT.txt new file mode 100644 index 0000000..5e12cfa --- /dev/null +++ b/MEDIA/SYS/DOCS/001_REBOOT.txt @@ -0,0 +1 @@ +Restart your Computer / RPI diff --git a/MEDIA/SYS/DOCS/001_RETROARCH.txt b/MEDIA/SYS/DOCS/001_RETROARCH.txt new file mode 100644 index 0000000..4c91e41 --- /dev/null +++ b/MEDIA/SYS/DOCS/001_RETROARCH.txt @@ -0,0 +1,3 @@ +Retroarch pour RPI 2/3 + * Ajout des librairies + * Ajout de retroarch diff --git a/MEDIA/SYS/SNAP/001_BIOS.png b/MEDIA/SYS/SNAP/001_BIOS.png new file mode 100644 index 0000000..2e4015b Binary files /dev/null and b/MEDIA/SYS/SNAP/001_BIOS.png differ diff --git a/MEDIA/SYS/SNAP/001_CONFIG_KEYBOARD.png b/MEDIA/SYS/SNAP/001_CONFIG_KEYBOARD.png new file mode 100644 index 0000000..b7a2819 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_CONFIG_KEYBOARD.png differ diff --git a/MEDIA/SYS/SNAP/001_EDIT.png b/MEDIA/SYS/SNAP/001_EDIT.png new file mode 100644 index 0000000..f80ed36 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_EDIT.png differ diff --git a/MEDIA/SYS/SNAP/001_GET_LIST.png b/MEDIA/SYS/SNAP/001_GET_LIST.png new file mode 100644 index 0000000..09e91e0 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_GET_LIST.png differ diff --git a/MEDIA/SYS/SNAP/001_HALT.png b/MEDIA/SYS/SNAP/001_HALT.png new file mode 100644 index 0000000..6aae6d7 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_HALT.png differ diff --git a/MEDIA/SYS/SNAP/001_MEDIA.png b/MEDIA/SYS/SNAP/001_MEDIA.png new file mode 100644 index 0000000..6c99306 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_MEDIA.png differ diff --git a/MEDIA/SYS/SNAP/001_QUIT.png b/MEDIA/SYS/SNAP/001_QUIT.png new file mode 100644 index 0000000..2076b6f Binary files /dev/null and b/MEDIA/SYS/SNAP/001_QUIT.png differ diff --git a/MEDIA/SYS/SNAP/001_REBOOT.png b/MEDIA/SYS/SNAP/001_REBOOT.png new file mode 100644 index 0000000..8f25d13 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_REBOOT.png differ diff --git a/MEDIA/SYS/SNAP/001_RETROARCH.png b/MEDIA/SYS/SNAP/001_RETROARCH.png new file mode 100644 index 0000000..12741d7 Binary files /dev/null and b/MEDIA/SYS/SNAP/001_RETROARCH.png differ diff --git a/MEDIA/SYS/WHEEL/001_BIOS.png b/MEDIA/SYS/WHEEL/001_BIOS.png new file mode 100644 index 0000000..c8216be Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_BIOS.png differ diff --git a/MEDIA/SYS/WHEEL/001_CONFIG_KEYBOARD.png b/MEDIA/SYS/WHEEL/001_CONFIG_KEYBOARD.png new file mode 100644 index 0000000..86931b8 Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_CONFIG_KEYBOARD.png differ diff --git a/MEDIA/SYS/WHEEL/001_EDIT.png b/MEDIA/SYS/WHEEL/001_EDIT.png new file mode 100644 index 0000000..1666ba2 Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_EDIT.png differ diff --git a/MEDIA/SYS/WHEEL/001_GET_LIST.png b/MEDIA/SYS/WHEEL/001_GET_LIST.png new file mode 100644 index 0000000..d85cf1d Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_GET_LIST.png differ diff --git a/MEDIA/SYS/WHEEL/001_HALT.png b/MEDIA/SYS/WHEEL/001_HALT.png new file mode 100644 index 0000000..515ac64 Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_HALT.png differ diff --git a/MEDIA/SYS/WHEEL/001_MEDIA.png b/MEDIA/SYS/WHEEL/001_MEDIA.png new file mode 100644 index 0000000..58e24a8 Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_MEDIA.png differ diff --git a/MEDIA/SYS/WHEEL/001_QUIT.png b/MEDIA/SYS/WHEEL/001_QUIT.png new file mode 100644 index 0000000..8e7871a Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_QUIT.png differ diff --git a/MEDIA/SYS/WHEEL/001_REBOOT.png b/MEDIA/SYS/WHEEL/001_REBOOT.png new file mode 100644 index 0000000..6aa27b7 Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_REBOOT.png differ diff --git a/MEDIA/SYS/WHEEL/001_RETROARCH.png b/MEDIA/SYS/WHEEL/001_RETROARCH.png new file mode 100644 index 0000000..6b17e7d Binary files /dev/null and b/MEDIA/SYS/WHEEL/001_RETROARCH.png differ diff --git a/MEDIA/boom.mpeg b/MEDIA/boom.mpeg new file mode 100644 index 0000000..36bebfb Binary files /dev/null and b/MEDIA/boom.mpeg differ diff --git a/MEDIA/boom.mpg b/MEDIA/boom.mpg new file mode 100644 index 0000000..3ac8918 Binary files /dev/null and b/MEDIA/boom.mpg differ diff --git a/MEDIA/font.ttf b/MEDIA/font.ttf new file mode 100644 index 0000000..3974d34 Binary files /dev/null and b/MEDIA/font.ttf differ diff --git a/MEDIA/no_snap.png b/MEDIA/no_snap.png new file mode 100644 index 0000000..b517302 Binary files /dev/null and b/MEDIA/no_snap.png differ diff --git a/MEDIA/no_sys.png b/MEDIA/no_sys.png new file mode 100644 index 0000000..e7f113c Binary files /dev/null and b/MEDIA/no_sys.png differ diff --git a/MEDIA/no_wheel.png b/MEDIA/no_wheel.png new file mode 100644 index 0000000..b8f394b Binary files /dev/null and b/MEDIA/no_wheel.png differ diff --git a/ROM_CONFIG_FILES.csv b/ROM_CONFIG_FILES.csv new file mode 100644 index 0000000..70fac0a --- /dev/null +++ b/ROM_CONFIG_FILES.csv @@ -0,0 +1,12 @@ +001_HALT,SYS +001_REBOOT,SYS +001_MEDIA,SYS +001_BIOS,SYS +001_RETROARCH,SYS +001_QUIT,SYS +001_CONFIG_KEYBOARD,SYS +001_GET_LIST,SYS +19xx,FBA +gauntlet,MAME +dkong3,MAME +aof,GNGEO diff --git a/start.py b/start.py new file mode 100755 index 0000000..f76d977 --- /dev/null +++ b/start.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python2 + +#-*- coding: utf-8 -*- +# pyrharckade 2 is a simple pygame front for PIMAME +# version: 2.0A +# guillaume@tuxme.net +# GPL Licence + + +import pygame +from time import * + +import csv +import os +from datetime import datetime +import sys +import subprocess +from pygame.locals import * +from pygame.compat import unicode_ +sys.path.insert(0, './CONF/') + + +if not os.path.exists("./CONF/KeyMapKeyBoard.py"): + APP="./BIN/SYS.sh 001_CONFIG_KEYBOARD" + p = subprocess.Popen(APP, shell=True) + sys.exit("GO play bitch ;)") + + + + +from DefFrontEndEmuFile import DefFrontEndEmu +from DefFrontEndGameFile import DefFrontEndGame +from DefReadConfRomFile import DefReadConfRom +from DefReadConfGameFile import DefReadConfGame +from KeyMapKeyBoard import * + + + + + + +#from DefTransition import Transition +pygame.mouse.set_visible(False) +Orientation="X" +if len(sys.argv) == 2: + if str(sys.argv[1])=="Y": + Orientation="Y" + +if Orientation=="Y": + from DefFrontEndEmuMapFile import DefFrontEndEmuMapY +else: + from DefFrontEndEmuMapFile import DefFrontEndEmuMapX + + + + +from ConfAllPath import * +from DefResAndSysFile import * +import math +from math import * + +Resolution=DefResolution() +System=DefSystem() +if Orientation=="Y": + MapingEmu=DefFrontEndEmuMapY(Resolution) +else: + MapingEmu=DefFrontEndEmuMapX(Resolution) +#print str(System) +#print str(Resolution) +ParentOfPyr,ConfRomFile,AllMedia,ConfigKeyboardFile=DefConfPathHome() + + +#if not os.path.exists(ConfigKeyboardFile): +# APP="BIN/SYS.sh CONFIG_KEYBOARD" +# p = subprocess.Popen(APP, shell=True) +# sys.exit("GO play bitch ;)") + +ExitStatus = 0 +FrontEndEmu=1 +FrontEndGame=0 +MAX, MAX_EMU,li,emu=DefReadConfRom(ConfRomFile) + +CptGame=0 +CptEmu=0 + + +pygame.mixer.init() +pygame.joystick.init() + +if pygame.joystick.get_count() != 0: + mon_joystick = pygame.joystick.Joystick(0) + mon_joystick.init() + JOY_TEST = 1 + if HACK_KEY_CARD == 'Y': + JOY_TEST = 0 +else: + JOY_TEST = 0 + + +while ExitStatus == 0: + while FrontEndEmu == 1: +# Transition(Resolution,emu,MapingEmu,li,CptEmu,MAX_EMU,MAX,Orientation) + FrontEndEmu,ExitStatus,FrontEndGame,EmuChoose,CptEmu=DefFrontEndEmu(Resolution,emu,MapingEmu,li,CptEmu,MAX_EMU,MAX,Orientation,JOY_TEST) + GamePerEmu,MaxForThisEmu=DefReadConfGame(ConfRomFile,EmuChoose,li) + while FrontEndGame == 1: + #print "Go in Game" + FrontEndGame,ExitStatus,FrontEndEmu,CptEmu=DefFrontEndGame(EmuChoose,Resolution,emu,li,CptGame,MAX_EMU,MAX,CptEmu,GamePerEmu,MaxForThisEmu,Orientation,JOY_TEST) + + + + + +