HomeForumChatInfoDisclaimerContattaci
Best View on: Firefox Chrome Opera IE9

[HOMEBREW] YAWMMi

Questo NON è un forum di aiuto. Per le richieste andate QUA

Moderatore: xabby666

QUESTO POST TI E/' PIACIUTO? DILLO A TUTTI I TUOI AMICI!

Condividi su Facebook Facebook Condividi su Twitter Twitter Condividi su Orkut Orkut Condividi su MySpace MySpace Condividi su Delicious Delicious Condividi su Technorati Technorati
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: YAWMMi 
Inviato: 04/04/2011, 17:40
davebaol ha scritto:@Ricky
Non è così.
Ogni riga di quella struttura riporta le versioni di un determinato system menu per ogni regione.
Apri NUSDownloader e verifica le versioni con un controllo incrociato.
Vedrai che la J corrisponde alle versioni JAP, la E alle versioni USA, la P alle versioni PAL e la K alle versioni Coreane.
Tra l'altro J,E,P,K sono anche la quinta lettera del title_ID dei giochi e guarda caso indicano proprio quelle regioni.
Quindi la riga del system menu 4.3 dovrebbe essere
{512, 'J'}, {513, 'E'}, {514, 'P'}, {518, 'K'},


Ok, comunque come si potrebbe risolvere?
La configurazione è esatta in ogni caso...la 514 è PAL. Per risolvere tutti i problemi legati alla regione bisogna rimuovere la scansione della regione, e quindi una protezione in più.
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Firefox
Messaggi: 7168
Iscritto il: 12/01/2010, 14:00
Grz inviati: 373 volte
Grz ricevuti: 2713 volte
Messaggio Re: YAWMMi
Inviato: 04/04/2011, 19:38
Inizia a mettere la J sul512, poi cerca alemo di capire in che linea di codice restituisce errore e provo a darti una mano.
Io non ho proprio tento per debuggare anche yawmm.

Indice delle Guide di Hackwii per categorie


Immagine
L'angolo delle... (C) (A) (Z) (Z) (Agc)Immagine
Immagine

Le idee sono come le tette: se non sono abbastanza grandi si possono sempre gonfiare.

La vita è come la scaletta del pollaio: corta corta e piena di merda.
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: YAWMMi
Inviato: 04/04/2011, 20:52
Ok, ecco la parte che ci interessa:
Codice: Seleziona tutto
SMRegion regionlist[] = {
   {33, 'X'},
   {128, 'J'}, {97, 'E'}, {130, 'P'},
   {162, 'P'},
   {192, 'J'}, {193, 'E'}, {194, 'P'},
   {224, 'J'}, {225, 'E'}, {226, 'P'},
   {256, 'J'}, {257, 'E'}, {258, 'P'},
   {288, 'J'}, {289, 'E'}, {290, 'P'},
   {352, 'J'}, {353, 'E'}, {354, 'P'}, {326, 'K'},
   {384, 'J'}, {385, 'E'}, {386, 'P'},
   {390, 'K'},
   {416, 'J'}, {417, 'E'}, {418, 'P'},
   {448, 'J'}, {449, 'E'}, {450, 'P'}, {454, 'K'},
   {480, 'J'}, {481, 'E'}, {482, 'P'}, {486, 'K'},
   {512, 'J'}, {513, 'E'}, {514, 'P'}, {518, 'K'},
};

Corretto come ha detto Dave, (512, da E a J), ora che si fa?
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Firefox
Messaggi: 7168
Iscritto il: 12/01/2010, 14:00
Grz inviati: 373 volte
Grz ricevuti: 2713 volte
Messaggio Re: YAWMMi
Inviato: 04/04/2011, 21:06
Se non ricordo male ci sono 2 if in wad.c in cui viene emesso quel messaggio d'errore.
Cambia il messaggio per capire quale dei 2 if dà il problema.

Indice delle Guide di Hackwii per categorie


Immagine
L'angolo delle... (C) (A) (Z) (Z) (Agc)Immagine
Immagine

Le idee sono come le tette: se non sono abbastanza grandi si possono sempre gonfiare.

La vita è come la scaletta del pollaio: corta corta e piena di merda.
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: YAWMMi
Inviato: 05/04/2011, 9:12
Va bene, ecco tutto il file:
Codice: Seleziona tutto
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <ogcsys.h>
#include <ogc/pad.h>

#include "sys.h"
#include "title.h"
#include "utils.h"
#include "video.h"
#include "wad.h"
#include "wpad.h"

// Turn upper and lower into a full title ID
#define TITLE_ID(x,y)      (((u64)(x) << 32) | (y))
// Get upper or lower half of a title ID
#define TITLE_UPPER(x)      ((u32)((x) >> 32))
// Turn upper and lower into a full title ID
#define TITLE_LOWER(x)      ((u32)(x))

typedef struct {
   int version;
   int region;

} SMRegion;

SMRegion regionlist[] = {
   {33, 'X'},
   {128, 'J'}, {97, 'E'}, {130, 'P'},
   {162, 'P'},
   {192, 'J'}, {193, 'E'}, {194, 'P'},
   {224, 'J'}, {225, 'E'}, {226, 'P'},
   {256, 'J'}, {257, 'E'}, {258, 'P'},
   {288, 'J'}, {289, 'E'}, {290, 'P'},
   {352, 'J'}, {353, 'E'}, {354, 'P'}, {326, 'K'},
   {384, 'J'}, {385, 'E'}, {386, 'P'},
   {390, 'K'},
   {416, 'J'}, {417, 'E'}, {418, 'P'},
   {448, 'J'}, {449, 'E'}, {450, 'P'}, {454, 'K'},
   {480, 'J'}, {481, 'E'}, {482, 'P'}, {486, 'K'},
   {512, 'J'}, {513, 'E'}, {514, 'P'}, {518, 'K'},
};

#define NB_SM      (sizeof(regionlist) / sizeof(SMRegion))

u32 WaitButtons(void);

u32 be32(const u8 *p)
{
   return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
}

u64 be64(const u8 *p)
{
   return ((u64)be32(p) << 32) | be32(p + 4);
}

u64 get_title_ios(u64 title) {
   s32 ret, fd;
   static char filepath[256] ATTRIBUTE_ALIGN(32);   
   
   // Check to see if title exists
   if (ES_GetDataDir(title, filepath) >= 0 ) {
      u32 tmd_size;
      static u8 tmd_buf[MAX_SIGNED_TMD_SIZE] ATTRIBUTE_ALIGN(32);
   
      ret = ES_GetStoredTMDSize(title, &tmd_size);
      if (ret < 0){
         // If we fail to use the ES function, try reading manually
         // This is a workaround added since some IOS (like 21) don't like our
         // call to ES_GetStoredTMDSize
         
         //printf("Error! ES_GetStoredTMDSize: %d\n", ret);
               
         sprintf(filepath, "/title/%08x/%08x/content/title.tmd", TITLE_UPPER(title), TITLE_LOWER(title));
         
         ret = ISFS_Open(filepath, ISFS_OPEN_READ);
         if (ret <= 0)
         {
            //printf("Error! ISFS_Open (ret = %d)\n", ret);
            return 0;
         }
         
         fd = ret;
         
         ret = ISFS_Seek(fd, 0x184, 0);
         if (ret < 0)
         {
            //printf("Error! ISFS_Seek (ret = %d)\n", ret);
            return 0;
         }
         
         ret = ISFS_Read(fd,tmd_buf,8);
         if (ret < 0)
         {
            //printf("Error! ISFS_Read (ret = %d)\n", ret);
            return 0;
         }
         
         ret = ISFS_Close(fd);
         if (ret < 0)
         {
            //printf("Error! ISFS_Close (ret = %d)\n", ret);
            return 0;
         }
         
         return be64(tmd_buf);
         
      } else {
         // Normal versions of IOS won't have a problem, so we do things the "right" way.
         
         // Some of this code adapted from bushing's title_lister.c
         signed_blob *s_tmd = (signed_blob *)tmd_buf;
         ret = ES_GetStoredTMD(title, s_tmd, tmd_size);
         if (ret < 0){
            //printf("Error! ES_GetStoredTMD: %d\n", ret);
            return -1;
         }
         tmd *t = SIGNATURE_PAYLOAD(s_tmd);
         return t->sys_version;
      }
      
      
   }
   return 0;
}

int get_sm_region_basic()
{
   u32 tmd_size;
      
   u64 title = TITLE_ID(1, 2);
   static u8 tmd_buf[MAX_SIGNED_TMD_SIZE] ATTRIBUTE_ALIGN(32);
   
   int ret = ES_GetStoredTMDSize(title, &tmd_size);
      
   // Some of this code adapted from bushing's title_lister.c
   signed_blob *s_tmd = (signed_blob *)tmd_buf;
   ret = ES_GetStoredTMD(title, s_tmd, tmd_size);
   if (ret < 0){
      //printf("Error! ES_GetStoredTMD: %d\n", ret);
      return -1;
   }
   tmd *t = SIGNATURE_PAYLOAD(s_tmd);
   ret = t->title_version;
   int i = 0;
   while( i <= NB_SM)
   {
      if(   regionlist[i].version == ret) return regionlist[i].region;
      i++;
   }
   return 0;
}

/* 'WAD Header' structure */
typedef struct {
   /* Header length */
   u32 header_len;

   /* WAD type */
   u16 type;

   u16 padding;

   /* Data length */
   u32 certs_len;
   u32 crl_len;
   u32 tik_len;
   u32 tmd_len;
   u32 data_len;
   u32 footer_len;
} ATTRIBUTE_PACKED wadHeader;

/* Variables */
static u8 wadBuffer[BLOCK_SIZE] ATTRIBUTE_ALIGN(32);


s32 __Wad_ReadFile(FILE *fp, void *outbuf, u32 offset, u32 len)
{
   s32 ret;

   /* Seek to offset */
   fseek(fp, offset, SEEK_SET);

   /* Read data */
   ret = fread(outbuf, len, 1, fp);
   if (ret < 0)
      return ret;

   return 0;
}

s32 __Wad_ReadAlloc(FILE *fp, void **outbuf, u32 offset, u32 len)
{
   void *buffer = NULL;
   s32   ret;

   /* Allocate memory */
   buffer = memalign(32, len);
   if (!buffer)
      return -1;

   /* Read file */
   ret = __Wad_ReadFile(fp, buffer, offset, len);
   if (ret < 0) {
      free(buffer);
      return ret;
   }

   /* Set pointer */
   *outbuf = buffer;

   return 0;
}

s32 __Wad_GetTitleID(FILE *fp, wadHeader *header, u64 *tid)
{
   signed_blob *p_tik    = NULL;
   tik         *tik_data = NULL;

   u32 offset = 0;
   s32 ret;

   /* Ticket offset */
   offset += round_up(header->header_len, 64);
   offset += round_up(header->certs_len,  64);
   offset += round_up(header->crl_len,    64);

   /* Read ticket */
   ret = __Wad_ReadAlloc(fp, (void *)&p_tik, offset, header->tik_len);
   if (ret < 0)
      goto out;

   /* Ticket data */
   tik_data = (tik *)SIGNATURE_PAYLOAD(p_tik);

   /* Copy title ID */
   *tid = tik_data->titleid;

out:
   /* Free memory */
   if (p_tik)
      free(p_tik);

   return ret;
}

void __Wad_FixTicket(signed_blob *p_tik)
{
   u8 *data = (u8 *)p_tik;
   u8 *ckey = data + 0x1F1;

   /* Check common key */
   if (*ckey > 1)
      *ckey = 0;
      
    /* Fakesign ticket */
    Title_FakesignTik(p_tik);
}

s32 Wad_Install(FILE *fp)
{
   wadHeader   *header  = NULL;
   signed_blob *p_certs = NULL, *p_crl = NULL, *p_tik = NULL, *p_tmd = NULL;

   tmd *tmd_data  = NULL;

   u32 cnt, offset = 0;
   s32 ret;
   u64 tid;

   printf("\t\t>> Leggendo .wad...");
   fflush(stdout);
   
   ret = __Wad_ReadAlloc(fp, (void *)&header, offset, sizeof(wadHeader));
   if (ret >= 0)
      offset += round_up(header->header_len, 64);
   else
   goto err;
   
   //Don't try to install boot2
   __Wad_GetTitleID(fp, header, &tid);
   
   if (tid == TITLE_ID(1, 1))
   {
      printf("\n    Non posso fartelo fare\n");
      ret = -999;
      goto out;
   }
   
/* WAD certificates */
   ret = __Wad_ReadAlloc(fp, (void *)&p_certs, offset, header->certs_len);
   if (ret >= 0)
      offset += round_up(header->certs_len, 64);
   else
   goto err;
   
   /* WAD crl */
   if (header->crl_len) {
      ret = __Wad_ReadAlloc(fp, (void *)&p_crl, offset, header->crl_len);
      if (ret < 0)
         goto err;
      else
         offset += round_up(header->crl_len, 64);
   }

   /* WAD ticket */
   ret = __Wad_ReadAlloc(fp, (void *)&p_tik, offset, header->tik_len);
   if (ret < 0)
      goto err;
   else
      offset += round_up(header->tik_len, 64);

   /* WAD TMD */
   ret = __Wad_ReadAlloc(fp, (void *)&p_tmd, offset, header->tmd_len);
   if (ret < 0)
      goto err;
   else
      offset += round_up(header->tmd_len, 64);

   Con_ClearLine();
   
   /* Get TMD info */
   
   tmd_data = (tmd *)SIGNATURE_PAYLOAD(p_tmd);
   
   if(TITLE_LOWER(tmd_data->sys_version) != NULL && isIOSstub(TITLE_LOWER(tmd_data->sys_version)))
   {
      printf("\n    Questo titolo usa IOS%i ma la versione installata\n    è uno STUB.\n", TITLE_LOWER(tmd_data->sys_version));
      ret = -999;
      goto err;
   }
   
   if(get_title_ios(TITLE_ID(1, 2)) == tid)
   {
      if ( ( tmd_data->num_contents == 3) && (tmd_data->contents[0].type == 1 && tmd_data->contents[1].type == 0x8001 && tmd_data->contents[2].type == 0x8001) )
      {
         printf("\n    Non installerò uno STUB al posto dell'IOS del Menu Wii\n");
         ret = -999;
         goto err;
      }
   }
   
   if(tid  == get_title_ios(TITLE_ID(0x10008, 0x48414B00 | 'E')) || tid  == get_title_ios(TITLE_ID(0x10008, 0x48414B00 | 'P')) || tid  == get_title_ios(TITLE_ID(0x10008, 0x48414B00 | 'J')) || tid  == get_title_ios(TITLE_ID(0x10008, 0x48414B00 | 'K')))
   {
      if ( ( tmd_data->num_contents == 3) && (tmd_data->contents[0].type == 1 && tmd_data->contents[1].type == 0x8001 && tmd_data->contents[2].type == 0x8001) )
      {
         printf("\n    Non installerò un EULA STUB\n");
         ret = -999;
         goto err;
      }
   }
   
   if(tid  == get_title_ios(TITLE_ID(0x10008, 0x48414C00 | 'E')) || tid  == get_title_ios(TITLE_ID(0x10008, 0x48414C00 | 'P')) || tid  == get_title_ios(TITLE_ID(0x10008, 0x48414C00 | 'J')) || tid  == get_title_ios(TITLE_ID(0x10008, 0x48414C00 | 'K')))
   {
      if ( ( tmd_data->num_contents == 3) && (tmd_data->contents[0].type == 1 && tmd_data->contents[1].type == 0x8001 && tmd_data->contents[2].type == 0x8001) )
      {
         printf("\n    Non installerò un'IOS del RS STUB\n");
         ret = -999;
         goto err;
      }
   }
   if (tid == get_title_ios(TITLE_ID(0x10001, 0x48415858)) || tid == get_title_ios(TITLE_ID(0x10001, 0x4A4F4449)))
   {
      if ( ( tmd_data->num_contents == 3) && (tmd_data->contents[0].type == 1 && tmd_data->contents[1].type == 0x8001 && tmd_data->contents[2].type == 0x8001) )
      {
         printf("\n    Vuoi davvero installare uno STUB al posto dell'IOS dell'HBC?\n");
         printf("\n    Premi A per continuare.\n");
         printf("    Premi B per saltare.");
      
         u32 buttons = WaitButtons();
      
         if (!(buttons & WPAD_BUTTON_A))
         {
            ret = -998;
            goto err;
         }
      }
   }
   
   if (tid == TITLE_ID(1, 2))
   {
      if(get_sm_region_basic() == 0)
      {
         printf("\n    Impossibile trovare regione del Menu Wii\n    Controlla il sito per aggiornamenti\n");
         ret = -999;
         goto err;
      }
      int i, ret = -1;
      for(i = 0; i <= NB_SM; i++)
      {
         if(   regionlist[i].version == tmd_data->title_version)
         {
            ret = 1;
            break;
         }
      }
      if(ret -1)
      {
         printf("\n    Impossibile trovare regione del Menu Wii\n    Controlla il sito per aggiornamenti\n");
         ret = -999;
         goto err;
      }
      if( get_sm_region_basic() != regionlist[i].region)
      {
         printf("\n    Non installerò un Menu Wii corrotto\n");
         ret = -999;
         goto err;
      }
      if(tmd_data->title_version < 416)
      {
         if(boot2version == 4)
         {
            printf("\n    Questa versione di Menu Wii\n    non è compatibile con la tua Wii\n");
            ret = -999;
            goto err;
         }
      }
   }
   
   /* Fix ticket */
   __Wad_FixTicket(p_tik);

   printf("\t\t>> Installando ticket...");
   fflush(stdout);

   /* Install ticket */
   ret = ES_AddTicket(p_tik, header->tik_len, p_certs, header->certs_len, p_crl, header->crl_len);
   if (ret < 0)
      goto err;

   Con_ClearLine();

   printf("\r\t\t>> Installando titolo...");
   fflush(stdout);

   /* Install title */
   ret = ES_AddTitleStart(p_tmd, header->tmd_len, p_certs, header->certs_len, p_crl, header->crl_len);
   if (ret < 0)
      goto err;
   
   /* Install contents */
   for (cnt = 0; cnt < tmd_data->num_contents; cnt++) {
      tmd_content *content = &tmd_data->contents[cnt];

      u32 idx = 0, len;
      s32 cfd;

      Con_ClearLine();

      printf("\r\t\t>> Installando contenuto #%02d...", content->cid);
      fflush(stdout);

      /* Encrypted content size */
      len = round_up(content->size, 64);

      /* Install content */
      cfd = ES_AddContentStart(tmd_data->title_id, content->cid);
      if (cfd < 0) {
         ret = cfd;
         goto err;
      }

      /* Install content data */
      while (idx < len) {
         u32 size;

         /* Data length */
         size = (len - idx);
         if (size > BLOCK_SIZE)
            size = BLOCK_SIZE;

         /* Read data */
         ret = __Wad_ReadFile(fp, &wadBuffer, offset, size);
         if (ret < 0)
            goto err;

         /* Install data */
         ret = ES_AddContentData(cfd, wadBuffer, size);
         if (ret < 0)
            goto err;

         /* Increase variables */
         idx    += size;
         offset += size;
      }

      /* Finish content installation */
      ret = ES_AddContentFinish(cfd);
      if (ret < 0)
         goto err;
   }

   Con_ClearLine();

   printf("\r\t\t>> Ultimando installazione...");
   fflush(stdout);

   /* Finish title install */
   ret = ES_AddTitleFinish();
   if (ret >= 0) {
      printf(" OK!\n");
      goto out;
   }

err:
   printf(" ERRORE! (ret = %d)\n", ret);

   /* Cancel install */
   ES_AddTitleCancel();

out:
   /* Free memory */
   if (header)
      free(header);
   if (p_certs)
      free(p_certs);
   if (p_crl)
      free(p_crl);
   if (p_tik)
      free(p_tik);
   if (p_tmd)
      free(p_tmd);

   return ret;
}

s32 Wad_Uninstall(FILE *fp)
{
   wadHeader *header   = NULL;
   tikview   *viewData = NULL;

   u64 tid;
   u32 viewCnt;
   s32 ret;

   printf("\t\t>> Leggendo .wad...");
   fflush(stdout);

   /* WAD header */
   ret = __Wad_ReadAlloc(fp, (void *)&header, 0, sizeof(wadHeader));
   if (ret < 0) {
      printf(" ERRORE! (ret = %d)\n", ret);
      goto out;
   }

   /* Get title ID */
   ret =  __Wad_GetTitleID(fp, header, &tid);
   if (ret < 0) {
      printf(" ERRORE! (ret = %d)\n", ret);
      goto out;
   }
   //Assorted Checks
   if (TITLE_UPPER(tid) == 1 && get_title_ios(TITLE_ID(1, 2)) == 0)
   {
      printf("\n    Non posso sapere qual'è l'IOS di sistema\nLa cancellazione di titoli è disabilitata\n");
      ret = -999;
      goto out;
   }
   if (tid == TITLE_ID(1, 1))
   {
      printf("\n    Non disinstallerò il boot2\n");
      ret = -999;
      goto out;
   }
   if (tid == TITLE_ID(1, 2))
   {
      printf("\n    Non disinstallerò il Menu Wii\n");
      ret = -999;
      goto out;
   }
   if(get_title_ios(TITLE_ID(1, 2)) == tid)
   {
      printf("\n    Non disinstallerò l'IOS di sistema\n");
      ret = -999;
      goto out;
   }
   if (tid == get_title_ios(TITLE_ID(0x10001, 0x48415858)) || tid == get_title_ios(TITLE_ID(0x10001, 0x4A4F4449)))
   {
      printf("\n    Questo IOS è usato da HBC, rimuoverlo lo renderà inutilizzabile!\n");
      printf("\n    Premi A per continuare.\n");
      printf("    Premi B per saltare.");
      
      u32 buttons = WaitButtons();
      
      if (!(buttons & WPAD_BUTTON_A))
      {
         ret = -998;
         goto out;
      }
   }
   if((tid  == TITLE_ID(0x10008, 0x48414B00 | 'E') || tid  == TITLE_ID(0x10008, 0x48414B00 | 'P') || tid  == TITLE_ID(0x10008, 0x48414B00 | 'J') || tid  == TITLE_ID(0x10008, 0x48414B00 | 'K')
      || (tid  == TITLE_ID(0x10008, 0x48414C00 | 'E') || tid  == TITLE_ID(0x10008, 0x48414C00 | 'P') || tid  == TITLE_ID(0x10008, 0x48414C00 | 'J') || tid  == TITLE_ID(0x10008, 0x48414C00 | 'K'))) && get_sm_region_basic() == 0)
   {
      printf("\n    Impossibile sapere la regione del Menu Wii\n    Controlla il sito per aggiornamenti\n");
      ret = -999;
      goto out;
   }
   if(tid  == TITLE_ID(0x10008, 0x48414B00 | get_sm_region_basic()))
   {
      printf("\n    Non disinstallerò l'EULA\n");
      ret = -999;
      goto out;
   }   
   if(tid  == TITLE_ID(0x10008, 0x48414C00 | get_sm_region_basic()))
   {
      printf("\n    Non disinstallerò il RS\n");
      ret = -999;
      goto out;
   }   
   if(tid  == get_title_ios(TITLE_ID(0x10008, 0x48414B00 | get_sm_region_basic())))
   {
      printf("\n    Non disinstallerò l'IOS di EULA\n");
      ret = -999;
      goto out;
   }   
   if(tid  == get_title_ios(TITLE_ID(0x10008, 0x48414C00 | get_sm_region_basic())))
   {
      printf("\n    Non disnistallerò l'IOS di RS\n");
      ret = -999;
      goto out;
   }

   Con_ClearLine();

   printf("\t\t>> Cancellando ticket...");
   fflush(stdout);

   /* Get ticket views */
   ret = Title_GetTicketViews(tid, &viewData, &viewCnt);
   if (ret < 0)
      printf(" ERRORE! (ret = %d)\n", ret);

   /* Delete tickets */
   if (ret >= 0) {
      u32 cnt;

      /* Delete all tickets */
      for (cnt = 0; cnt < viewCnt; cnt++) {
         ret = ES_DeleteTicket(&viewData[cnt]);
         if (ret < 0)
            break;
      }

      if (ret < 0)
         printf(" ERRORE! (ret = %d\n", ret);
      else
         printf(" OK!\n");
   }

   printf("\t\t>> Cancellando contenuto titolo...");
   fflush(stdout);

   /* Delete title contents */
   ret = ES_DeleteTitleContent(tid);
   if (ret < 0)
      printf(" ERRORE! (ret = %d)\n", ret);
   else
      printf(" OK!\n");


   printf("\t\t>> Cancellando titolo...");
   fflush(stdout);

   /* Delete title */
   ret = ES_DeleteTitle(tid);
   if (ret < 0)
      printf(" ERRORE! (ret = %d)\n", ret);
   else
      printf(" OK!\n");

out:
   /* Free memory */
   if (header)
      free(header);
   return ret;
}
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Firefox
Messaggi: 7168
Iscritto il: 12/01/2010, 14:00
Grz inviati: 373 volte
Grz ricevuti: 2713 volte
Messaggio Re: YAWMMi
Inviato: 05/04/2011, 9:27
Scusa ma così non andiamo da nessuna parte.
I ti posso solo indicare la strada ma il problema lo devi risolvere tu.
Il primo passo è riprodurre il problema, quiondi ti serve una 4.3E da downgradare a 4.1.
Una volta riprodotto il problema individua nel sorgente il messaggio d'errore che ottieni, magari metti delle printf per aiutarti a capire DOVE è il problema.
Una volta che hai ristretto l'area a poche righe di codice possiamo procedere per capire COME risolverlo.
Se non individui il dove è dura trovare un come.

Indice delle Guide di Hackwii per categorie


Immagine
L'angolo delle... (C) (A) (Z) (Z) (Agc)Immagine
Immagine

Le idee sono come le tette: se non sono abbastanza grandi si possono sempre gonfiare.

La vita è come la scaletta del pollaio: corta corta e piena di merda.
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: YAWMMi
Inviato: 05/04/2011, 9:53
Da Google Code YAWMM:
Can't get the SM region
Please check the site for updates
ERROR! (ret = -999)


Quindi la parte che ci interessa è questa:
Codice: Seleziona tutto
if (tid == TITLE_ID(1, 2))
   {
      if(get_sm_region_basic() == 0)
      {
         printf("\n    Impossibile trovare regione del Menu Wii\n    Controlla il sito per aggiornamenti\n");
         ret = -999;
         goto err;
      }
      int i, ret = -1;
      for(i = 0; i <= NB_SM; i++)
      {
         if(   regionlist[i].version == tmd_data->title_version)
         {
            ret = 1;
            break;
         }
      }
      if(ret -1)
      {
         printf("\n    Impossibile trovare regione del Menu Wii\n    Controlla il sito per aggiornamenti\n");
         ret = -999;
         goto err;
      }
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Firefox
Messaggi: 7168
Iscritto il: 12/01/2010, 14:00
Grz inviati: 373 volte
Grz ricevuti: 2713 volte
Messaggio Re: YAWMMi
Inviato: 05/04/2011, 10:14
Appunto, come ti dicevo prima devi individuare quale dei 2 if genera il messaggio "Impossibile trovare regione del Menu Wii".

Indice delle Guide di Hackwii per categorie


Immagine
L'angolo delle... (C) (A) (Z) (Z) (Agc)Immagine
Immagine

Le idee sono come le tette: se non sono abbastanza grandi si possono sempre gonfiare.

La vita è come la scaletta del pollaio: corta corta e piena di merda.
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: YAWMMi
Inviato: 05/04/2011, 12:20
davebaol ha scritto:Appunto, come ti dicevo prima devi individuare quale dei 2 if genera il messaggio "Impossibile trovare regione del Menu Wii".

Detto fatto, basta cambiare il printf così si può capire qual'è!
Ok, metterò in una SM (System Menu) e nell'altra lascio com'è ;)
Provo da sneek...

EDIT: Mmmmh....questa non me l'aspettavo...
Da 4.3E a 4.1U ricevo:
Non installerò un menu wii corrotto
ERRORE! (ret = 0 )


Potrebbe essere uneek?
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Firefox
Messaggi: 7168
Iscritto il: 12/01/2010, 14:00
Grz inviati: 373 volte
Grz ricevuti: 2713 volte
Messaggio Re: YAWMMi
Inviato: 05/04/2011, 12:37
Molto probabile.

Indice delle Guide di Hackwii per categorie


Immagine
L'angolo delle... (C) (A) (Z) (Z) (Agc)Immagine
Immagine

Le idee sono come le tette: se non sono abbastanza grandi si possono sempre gonfiare.

La vita è come la scaletta del pollaio: corta corta e piena di merda.
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: YAWMMi
Inviato: 06/04/2011, 17:05
Penso di aver capito male...a quanto dice qui: Registrati o effettua il Login per visualizzare il link!. il problema accadeva quando si downgradava da 4.3e a 4.1e o 4.3u a 4.1u...Beh io ho fatto provare ad un amico e non gli ha dato alcun errore.
Ha aggiornato al safe waninkoko, ha installato IOS60 poi SM4.1e...nessun errore.
Immagine
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
Messaggio Re: [HOMEBREW] YAWMMi
Inviato: 01/08/2011, 21:15
Salve
Novità!
Dopo tanto tempo ho ripreso in mano i sorgenti e ho subito risolto un fastidioso problema: se si selezionava uno slot di un cIOS diverso dai default hermes e waninkoko, andava in freeze e spesso si riceveva un dump. Il problema c'era anche in YAWMM r25
Ora ho risolto, ed ecco la versione che fixa il problema: Registrati o effettua il Login per visualizzare il link!. ... 7beta1.dol
Per giustizia ho anche segnalato i cambiamenti eseguiti nel sito ufficiale di YAWMM, sperando che risolvano anche loro

EDIT: Rilasciato YAWMMi v0.7!
E' persino migliore di YAWMM r25, poichè compatibile con TUTTI gli slot (YAWMM freezava selezionando 247 o altri)!
Ho anche rimosso la musica di sottofondo: a molti dava fastidio : Wink :

EDIT2: Rilasciato YAWMMi v0.8!
Ora supporta AHBPROT!
Immagine

Per questo messaggio l' autore Ricky ha ricevuto un "Thanks" da
Actar (01/08/2011, 23:36)
Rating: 0.26%
 
Avatar utente
Noob (active) User
Noob (active) User
    Windows 7 Firefox
Messaggi: 71
Iscritto il: 12/01/2011, 14:30
Grz inviati: 21 volte
Grz ricevuti: 6 volte
Messaggio Re: [HOMEBREW] YAWMMi
Inviato: 04/03/2012, 18:14
Ciao Ricky, non è che potresti gentilmente supportare la nuova libocg così da consentire ai possessori di nuovi wiimote di usare il tuo HB? Sarebbe fantastico. Grazie.
ImmagineImmagine

Sponsor

Sponsor
 

Precedente

Torna a HomeBrew di Sistema

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite