Newserator Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Cedni propose une version modifiée de Snes9X, émulateur Super Nintendo pour PS3, apportant des retouches esthétiques (interface verte et blanche) et sur le fonctionnement de l'émulateur. Installez l'émulateur dans /dev_hdd0/game/SNES90000/USRDIR Les roms sont recherchées d'abord dans /dev_hdd0/game/SNES90000/USRDIR/Roms puis dans /dev_usb000/Roms/Snes si absence de roms dans le répertoire précédent. Pour naviguer dans le tableau : - haut et bas , pour monter ou descendre - gauche et droite , pour monter ou descendre de 5 - L1 et R1 , pour aller sur la feuille precedente ou suivante Sont inclus les tweaks pour corriger le problème avec les roms PAL ainsi que le lag de l'autosave. Cedni indique qu'il reste pas mal de travail surtout avec les évènements boutons pour ajouter des fonctions comme stopper l émulation et revenir au menu de sélection ou encore charger les paramètres depuis un fichier Snes9x White And Green by Cedni Site officiel : http://gueux-forum.net/ Lien vers article original : http://ps3.gx-mod.com/modules/news/article.php?storyid=1938
cedni Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Parcontre petite coquille quand j ai rédigé Le repertoire testé en second , c est /dev_usb000/Roms/Snes et pas dev_usb000/Roms_Snes Désolé
lecareur Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Nikel, merci pour cette version cedni
Ormito Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Elle ma l'air pas mal cette version un grand merci
Ashura75013 Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Pourrait-on avoir les sources?
kurtspirit Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 J'ai testé, c'est pas mal mais juste un gros défaut (chez moi du moins), l'ému est mal centré (complètement en haut a gauche de l'écran) et une fois dans le soft, plus moyen d'en sortir c'est bien dommage :/ .. Hard Reset de la console , c'est pas cool. M'enfin c'est du bon boulot tout ça
Ormito Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Alors pour moi apres avoir tester pareil le menu d'affichage et mal centrer et le nom des Roms sont en tout mais tout petite faut vraiment ce raprocher pour voir quel Roms lancer sinon rien a dire fonctionne parfaitement.
kurtspirit Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 pour moi non fonctionnel, les roms se chargent mais après freeze de la console. Rien à faire..
cedni Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 (modifié) Pour ceux qui ont un souci de cadrage , vous etes en 1080 ? Pouvez vous tester en 720 ? Chez moi c est centré Si c est effectivement çà j aurais juste à forcer la résolution sur 720 au lancement Ou éventuellement gèrer le code en utilisant une variable définie en fonction de la résolution Pour le freeze , je pense que çà vient du fait qu' à un moment les fonctions min et max ne gère pas bien le current_index et laisse passer une valeur negative Je pense que çà ressemble à un "index out list of bound" Solution : en étant sur la première page , utiliser , les décrémentations judicieusement pour ne pas se retrouver avant 1 en effet , si vous sélectionnez la 1ere rom et faites un up , normalement çà freeze Je ne vois pas , la dernière occurrence est bien gèrée pour moi non fonctionnel, les roms se chargent mais après freeze de la console. Rien à faire.. T aurais pas renommer des sfc en smc ? Je songe à développer un petit soft externe ( sur pc ) pour réduire le nom des roms Pour les sources , remplacer le bloc rom() dans cell.cpp par : bool needs_update = true; char *file_names[8192] = { '\0' }; bool is_dir[8192] = { false }; char path[1024]; const char *msg = NULL; int fd; int TestDirRom = 0; int num_per_page = 70, current_index = 0, file_count = 0; uint32_t buttons; const char *ROM_PATH ="/dev_hdd0/game/SNES90000/USRDIR/Roms"; //sprintf(path, ROM_PATH);//sprintf(path, "/dev_usb000/Roms/Snes"); //sprintf(path, "/dev_hdd0/game/SNES00001/USRDIR/Roms"); int longueurChaine = 0; int page_number = current_index / num_per_page; int page_base = page_number * num_per_page; char *Tempo = NULL; char *Temp[8192] = { '\0' }; void updat_list_affich (int premier) { const char *test ="I-I";; color4_t mycolor = { 0x00, 0x00, 0xff, 0x00}; color4_t white = { 0xff, 0xff, 0xFF, 0xFF }; color4_t red = { 0xFF, 0xFF, 0, 0 }; color4_t green = { 0xFF, 0, 0xFF, 0 }; for (int i = page_base; i < file_count; ++i) { if ( i>page_base && i < page_base + num_per_page ) { debugOutStr( 5+7*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*(i - page_base ) , file_names[i],i == current_index ? red : is_dir[i] ? green : white); } if ( i>=page_base + 1*num_per_page && i < page_base + 2*num_per_page ) { debugOutStr( 5+85*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*(i - page_base -1*num_per_page) , file_names[i],i == current_index ? red : is_dir[i] ? green : white); } /* // Si je veux afficher une troisieme liste if ( i>=page_base + 2*num_per_page && i < page_base + 3*num_per_page ) { color4_t white = { 0xdd, 0xaa, 0xFF, 0xFF }; color4_t red = { 0xFF, 0xFF, 0, 0 }; color4_t green = { 0xFF, 0, 0xFF, 0 }; debugOutStr(900 , 32 + FONT_HEIGHT*FONT_SCALE*(i - page_base -2*num_per_page) , file_names[i],i == current_index ? red : is_dir[i] ? green : white); } */ } for (int i = 0; i <= num_per_page; ++i) { debugOutStr( 5 , 40 + FONT_HEIGHT*FONT_SCALE*i,"I" ,mycolor ); debugOutStr( 5+1*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"-" ,white ); debugOutStr( 5+2*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"I" ,mycolor ); debugOutStr( 5+78*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"I" ,mycolor ); debugOutStr( 5+79*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"-" ,white ); debugOutStr( 5+80*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"I" ,mycolor ); debugOutStr( 5+156*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"I" ,mycolor ); debugOutStr( 5+157*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"-" ,white ); debugOutStr( 5+158*FONT_WIDTH , 40 + FONT_HEIGHT*FONT_SCALE*i,"I" ,mycolor ); } for( int i=0; i<= 158;++i) { debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 13,"I" ,mycolor ); if ( i !=0 && i != 158 ) {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 22,"-" ,white ); } else {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 22,"I" ,mycolor );} if ( i !=1 && i != 157 && i != 79) {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 31,"I" ,mycolor ); } else {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 31,"-" ,white ); } if ( i !=1 && i != 157 && i != 79) {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 40 +FONT_HEIGHT*num_per_page+9 ,"I" ,mycolor ); } else {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 40 +FONT_HEIGHT*num_per_page+9 ,"-" ,white );} if ( i !=0 && i != 158) {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 40 +FONT_HEIGHT*num_per_page+18,"-" ,white ); } else {debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 40 +FONT_HEIGHT*num_per_page+18,"I" ,mycolor ); } debugOutStr( 5 + FONT_WIDTH*FONT_SCALE*i, 40 +FONT_HEIGHT*num_per_page+27,"I" ,mycolor ); } render(); } void rom_menu () { while (is_running) { if (needs_update) { sprintf(path, ROM_PATH);//sprintf(path, "/dev_usb000/Roms/Snes"); //sprintf(path, "/dev_hdd0/game/SNES00001/USRDIR/Roms"); needs_update = false; current_index = 0; for (int i = 2; i < 8192; ++i) {if (file_names[i]) { free(file_names[i]); file_names[i] = NULL; } else { break; } } int i = 0; if (cellFsOpendir(path, &fd) == CELL_FS_SUCCEEDED) { uint64_t nread; CellFsDirent dirent; while (cellFsReaddir(fd, &dirent, &nread) == CELL_FS_SUCCEEDED) { if (nread == 0) break; if (dirent.d_type != CELL_FS_TYPE_DIRECTORY && dirent.d_type != CELL_FS_TYPE_REGULAR) continue; // so lazy. // Bizarrement ma liste commence par un . ou rien en premiere position // et .. en deuxieme //if (dirent.d_name != "." && dirent.d_name != ".." && dirent.d_name != " " && dirent.d_name != "") continue; // so lazy. if (dirent.d_type == CELL_FS_TYPE_REGULAR) {int namelen = strlen(dirent.d_name); if (namelen < 4) continue; char *ext = dirent.d_name + namelen - 4; // if ( namelen > longueurChaine ) {longueurChaine = namelen;} if (strcasecmp(ext, ".smc") && strcasecmp(ext, ".fig")) continue; } is_dir[i] = dirent.d_type == CELL_FS_TYPE_DIRECTORY; file_names[i] = strdup(dirent.d_name); /* // je bloque carrément ici , je seche sur les conversions en c // ^ ^ ^ heureux dans son royaume celui qui connait le c++ // tenter de reduire la taille des noms à 50 Tempo = file_names[i]; //for ( int j=0;j <50; ++j ) { Temp[j]=Tempo[j]; } for ( int j=0;j <50; ++j) { strcat( Temp[j],(char *) &Tempo[j]); } file_names[i]; // http://bytes.com/topic/c/answers/584709-how-can-i-handle-invalid-conversion-int-const-char-error // char crypted_aux[255]; int aux1; strcat(crypted_aux,(char *) &aux1); */ ++i; if (i == 8192) { msg = "Jesus, you have too many ROMs!"; break; } } cellFsClosedir(fd); } else { msg = "Directory not found . "; } file_count = i; if (file_count == 0 && TestDirRom ==2 ) msg = "No ROMs"; if (file_count == 0 && TestDirRom <2 ) { TestDirRom++; ROM_PATH = "/dev_usb000/Roms/Snes"; msg=ROM_PATH; needs_update = true; } } // reste à tester le current index pour voir si le if (read_pad_buttons(&buttons)) { { if (buttons & CTRL_DOWN) { if (current_index == page_base+ 2*num_per_page) { ++current_index;} if (current_index >= page_base+ 2*num_per_page-1) { page_base+= 2*num_per_page; } // if ( page_base > file_count/num_per_page ){ page_base = file_count/num_per_page; } //++current_index;}//= MIN(current_index + 1, file_count - 1);} current_index = MIN(current_index + 1, file_count - 1);} if (buttons & CTRL_UP) { // debugOutStr(32, 32 + FONT_HEIGHT * FONT_SCALE * (num_per_page + 1), current_index); current_index = MAX(current_index - 1, 1); if (current_index <= page_base+1) { page_base-= 2*num_per_page;} // if ( page_base < 0 ){ page_base = 0; } //--current_index;}//= MAX(current_index - 1, 0);} //current_index = MAX(current_index - 1, 0); } if (buttons & CTRL_RIGHT) { if (current_index >= page_base+ 2*num_per_page-6) { page_base+= 2*num_per_page; } //if ( page_base > file_count/num_per_page ){ page_base = file_count/num_per_page; } current_index = MIN(current_index + 6, file_count - 1);} if (buttons & CTRL_LEFT) { if (current_index <= page_base+1) { page_base-= 2*num_per_page;} //if ( page_base < 0 ){ page_base = 0; } current_index = MAX(current_index - 5, 1);} if (buttons & CTRL_R1) { if (current_index >= page_base+ 2*num_per_page-1-num_per_page) { page_base+= 2*num_per_page;} //if ( page_base > file_count/num_per_page ){ page_base = file_count/num_per_page; } current_index = MIN(current_index + num_per_page, file_count - 1); } if (buttons & CTRL_L1) { if (current_index <= page_base+1+num_per_page) { page_base-= 2*num_per_page;} //if ( page_base < 0 ){ page_base = 0; } current_index = MAX(current_index - num_per_page, 1); } /* // pour plus tard if (buttons & CTRL_R2) { if (current_index >= page_base+ 3*num_per_page+1) { page_base+= 3*num_per_page;} //if ( page_base > file_count/num_per_page ){ page_base = file_count/num_per_page; } current_index = MIN(current_index + 5*num_per_page, file_count - 1);} if (buttons & CTRL_L2) { if (current_index <= page_base-1) { page_base-= 3*num_per_page;} //if ( page_base < 0 ){ page_base = 0; } current_index = MAX(current_index - 5*num_per_page, 0); } */ //if (buttons & CTRL_R3) { Settings.Mute = false; render(false);rom_menu(); } //if (buttons & CTRL_START) Settings.Paused = false;} //if (buttons & CTRL_L3) { Settings.DisplayFrameRate=true; Settings.DisplayPressedKeys=true; } //if (buttons & CTRL_R2) { Settings.Mute = false; render(false); rom_menu(); } //if (buttons & CTRL_L2) { Settings.DisplayFrameRate=true; Settings.DisplayPressedKeys=true; } if (buttons & CTRL_CROSS) { if (is_dir[current_index]) { sprintf(path, "%s/%s", path, file_names[current_index]); needs_update = true; continue; } else { sprintf(rom_path, "%s/%s", path, file_names[current_index]); return; }}} } memset(display, 0, color_buf[0].pitch * color_buf[0].height); updat_list_affich (page_base); // pas d affichage car render() placer dans la fonction ci-dessus if (msg) debugOutStr(32, 32 + FONT_HEIGHT * FONT_SCALE * (num_per_page + 1), msg); } } Modifié le 21 septembre 2010 par cedni
Ameo Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Hard Reset de la console , c'est pas cool. Le soft reset passe très bien (bouton PS)
lecareur Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Je songe à développer un petit soft externe ( sur pc ) pour réduire le nom des roms Salut, pour le soft, mieux vaut utiliser un qui existe déjà, tu aura juste a créer ton fichier *.dat pour gerer les noms, je vais me pencher la dessus si tu veux si cela peut aider du monde...
Arnaud02301 Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Avec quel logiciel vous modifier l'émulateur et ouvrez les fichiers PKG ?
Badablek Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 sachant qu'ils touchent directement la source : SDK officiel Sony. SDK qui contient bien évidemment tout le nécessaire pour compiler les sources et mettre tout ça au chaud dans un PKG.
Arnaud02301 Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Sa serait magnifique si quelqu'un arrivait à compilé un émulateur N64, pour jouer à Zelda OOT et Zelda MM
asmerisme Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Ca va bientot devenir une wii avec lecteur BR...
DOCKY99 Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Ca va bientot devenir une wii avec lecteur BR... Avec une émulation des manettes move :b
nolive72 Posté(e) le 22 septembre 2010 Posté(e) le 22 septembre 2010 marche superbement avec ps3break.cadre car je suis passe en 720p et pas de souci de freeze ou balck screen.et on peut sortir via la touche ps en effet. maintenant ou sont donc passees mes roms snes
navier57bis Posté(e) le 22 septembre 2010 Posté(e) le 22 septembre 2010 marche superbement avec ps3break.cadre car je suis passe en 720p et pas de souci de freeze ou balck screen.et on peut sortir via la touche ps en effet.maintenant ou sont donc passees mes roms snes
navier57bis Posté(e) le 22 septembre 2010 Posté(e) le 22 septembre 2010 Cedni propose une version modifiée de Snes9X, émulateur Super Nintendo pour PS3, apportant des retouches esthétiques (interface verte et blanche) et sur le fonctionnement de l'émulateur. Installez l'émulateur dans /dev_hdd0/game/SNES90000/USRDIR Les roms sont recherchées d'abord dans /dev_hdd0/game/SNES90000/USRDIR/Roms puis dans /dev_usb000/Roms/Snes si absence de roms dans le répertoire précédent. Pour naviguer dans le tableau : - haut et bas , pour monter ou descendre - gauche et droite , pour monter ou descendre de 5 - L1 et R1 , pour aller sur la feuille precedente ou suivante Sont inclus les tweaks pour corriger le problème avec les roms PAL ainsi que le lag de l'autosave. Cedni indique qu'il reste pas mal de travail surtout avec les évènements boutons pour ajouter des fonctions comme stopper l émulation et revenir au menu de sélection ou encore charger les paramètres depuis un fichier Snes9x White And Green by Cedni Site officiel : http://gueux-forum.net/ Lien vers article original : http://ps3.gx-mod.com/modules/news/article.php?storyid=1938 bonjour je suis un nigaut j'obtiens que la tramme verte et rien dedans je crains n'avoir pas bien compris le chemin pour mettre les roms sous une cle usb merci
cedni Posté(e) le 23 septembre 2010 Posté(e) le 23 septembre 2010 (modifié) A la racine de la clé usb , creer un dossier Roms Dans celui ci , creer un dossier Snes Y placer les roms dézippées au format smc Modifié le 23 septembre 2010 par cedni
navier57bis Posté(e) le 23 septembre 2010 Posté(e) le 23 septembre 2010 A la racine de la clé usb , creer un dossier Roms Dans celui ci , creer un dossier Snes Y placer les roms dézippées au format smc Quand je vous disais que je n"étais pas doué (j'avais inversé les 2 clefs jail et roms ) merci au concepteur de l'ému et vivement amstrad,amiga et +
cedni Posté(e) le 27 septembre 2010 Posté(e) le 27 septembre 2010 (modifié) Salut http://hotfile.com/dl/71991871/b2b257d/SNE...t_exit.pkg.html J avance aussi et je suis au même résultat , un tampon doit déborder à mon avis au chargement de la 5e rom J ai vainement fait des free , delete et new mais rien à faire Par contre j arrive à afficher des images mais , , au moins 40 fonctions pour décoder un png et l afficher Je pense que je vais m y prendre autrement , j ai déjà ma petite idée Sinon il y avait plus simple , c est bien de créer des fonctions mais ce n est pas utile lorsque l'on réplique le code seulement deux fois Dans read_pad if ( buttons & CTRL_R2) { render(false); rom_menu(); } Déclarer une variable int NbRomsloaded = 0 ; Et dans rom_menu if (buttons & CTRL_CROSS) { if (is_dir[current_index]) { sprintf(path, "%s/%s", path, file_names[current_index]); needs_update = true; continue; } else { if (NbRomsloaded == 4){ sys_process_exit(0); } else{ sprintf(rom_path, "%s/%s", path, file_names[current_index]); init_snes9x(); init_sound(); S9xSetSoundMute(FALSE); memset(display, 0, color_buf[0].height * color_buf[0].pitch); memset(display_back, 0, color_buf[0].height * color_buf[0].pitch); ++NbRomsloaded; return; } } } Sinon dans son code , Squarepusher ( pas Eiz ) devrait intégrer la persistance du rom_path http://hotfile.com/dl/71991871/b2b257d/SNE...t_exit.pkg.html Modifié le 27 septembre 2010 par cedni
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant