Pagina 2 di 2

Re: YAWMMi

MessaggioInviato: 04/04/2011, 17:40
di Ricky
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ù.

Re: YAWMMi

MessaggioInviato: 04/04/2011, 19:38
di davebaol
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.

Re: YAWMMi

MessaggioInviato: 04/04/2011, 20:52
di Ricky
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?

Re: YAWMMi

MessaggioInviato: 04/04/2011, 21:06
di davebaol
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.

Re: YAWMMi

MessaggioInviato: 05/04/2011, 9:12
di Ricky
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;
}

Re: YAWMMi

MessaggioInviato: 05/04/2011, 9:27
di davebaol
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.

Re: YAWMMi

MessaggioInviato: 05/04/2011, 9:53
di Ricky
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;
      }

Re: YAWMMi

MessaggioInviato: 05/04/2011, 10:14
di davebaol
Appunto, come ti dicevo prima devi individuare quale dei 2 if genera il messaggio "Impossibile trovare regione del Menu Wii".

Re: YAWMMi

MessaggioInviato: 05/04/2011, 12:20
di Ricky
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?

Re: YAWMMi

MessaggioInviato: 05/04/2011, 12:37
di davebaol
Molto probabile.

Re: YAWMMi

MessaggioInviato: 06/04/2011, 17:05
di Ricky
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.

Re: [HOMEBREW] YAWMMi

MessaggioInviato: 01/08/2011, 21:15
di Ricky
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!

Re: [HOMEBREW] YAWMMi

MessaggioInviato: 04/03/2012, 18:14
di psycho123
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.