예제 #1
0
        public static Bitmap IconoToBitmap(byte[] tileData, byte[] paletteData)
        {
            Bitmap imagen = new Bitmap(32, 32);

            Color[] paleta = Actions.BGR555ToColor(paletteData);

            tileData = BitsConverter.BytesToBit4(tileData);
            int i = 0;

            for (int hi = 0; hi < 4; hi++)
            {
                for (int wi = 0; wi < 4; wi++)
                {
                    for (int h = 0; h < 8; h++)
                    {
                        for (int w = 0; w < 8; w++)
                        {
                            imagen.SetPixel(w + wi * 8, h + hi * 8, paleta[tileData[i]]);
                            i++;
                        }
                    }
                }
            }

            return(imagen);
        }
예제 #2
0
 private void txtHeaderHex_TextChanged(object sender, EventArgs e)
 {
     if (txtHeaderHex.Focused)
     {
         txtHeader.Text = new String(Encoding.ASCII.GetChars(BitsConverter.StringToBytes(txtHeaderHex.Text, 4)));
     }
 }
예제 #3
0
        /// <summary>
        /// Converts a base64 message to byte Array
        /// </summary>
        /// <param name="message">Base64 Input Message</param>
        /// <returns>Byte Array</returns>
        /// <exception cref="ArgumentException">input cannot be null or empty string</exception>
        public static string Base64DecodeToBinaryDataString(string message)
        {
            if (IsValidBase64(message))
            {
                BitsConverter bitsConverter      = new BitsConverter();
                byte[]        base64EncodedBytes = System.Convert.FromBase64String(message);
                string        result             = bitsConverter.BitStringResult(base64EncodedBytes);

                return(result);
            }

            throw new ArgumentException("input cannot be null or empty string");
        }
예제 #4
0
 private void txtReserved2_Leave(object sender, EventArgs e)
 {
     header.reserved2  = BitsConverter.StringToBytes(txtReserved2.Text, 56);
     txtReserved2.Text = BitConverter.ToString(header.reserved2);
 }
예제 #5
0
 // Control events
 private void txtBanReserved_Leave(object sender, EventArgs e)
 {
     banner.reserved     = BitsConverter.StringToBytes(txtBanReserved.Text, 28);
     txtBanReserved.Text = BitConverter.ToString(banner.reserved);
 }
예제 #6
0
        private void Mostrar_Informacion(Nitro.Estructuras.ROMHeader cabecera, Nitro.Estructuras.Banner banner)
        {
            this.cabecera = cabecera;
            this.banner   = banner;

            // Remove older values
            if (listInfo.Items[0].SubItems.Count == 3)
            {
                for (int i = 0; i < listInfo.Items.Count; i++)
                {
                    listInfo.Items[i].SubItems.RemoveAt(2);
                }
            }

            #region Muestra la información de la cabecera
            listInfo.Items[0].SubItems.Add(new String(cabecera.gameTitle));
            listInfo.Items[1].SubItems.Add(new string(cabecera.gameCode));
            try
            {
                listInfo.Items[2].SubItems.Add(new String(cabecera.makerCode) + " (" +
                                               Nitro.Estructuras.makerCode[new String(cabecera.makerCode)] + ')');
            }
            catch
            {
                listInfo.Items[2].SubItems.Add(new String(cabecera.makerCode) + " (Desconocido)");
            }
            try
            {
                listInfo.Items[3].SubItems.Add("0x" + String.Format("{0:X}", cabecera.unitCode) +
                                               " (" + Nitro.Estructuras.unitCode[cabecera.unitCode] + ')');
            }
            catch
            {
                listInfo.Items[3].SubItems.Add("0x" + String.Format("{0:X}", cabecera.unitCode) + " (Desconocido)");
            }
            listInfo.Items[4].SubItems.Add(Convert.ToString(cabecera.encryptionSeed));
            listInfo.Items[5].SubItems.Add((cabecera.tamaño / Math.Pow(2, 20)).ToString() + " MB");
            listInfo.Items[6].SubItems.Add(BitsConverter.BytesToHexString(cabecera.reserved));
            listInfo.Items[7].SubItems.Add(Convert.ToString(cabecera.ROMversion));
            listInfo.Items[8].SubItems.Add(Convert.ToString(cabecera.internalFlags));
            listInfo.Items[9].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9romOffset));
            listInfo.Items[10].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9entryAddress));
            listInfo.Items[11].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9ramAddress));
            listInfo.Items[12].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9size) + " bytes");
            listInfo.Items[13].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7romOffset));
            listInfo.Items[14].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7entryAddress));
            listInfo.Items[15].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7ramAddress));
            listInfo.Items[16].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7size) + " bytes");
            listInfo.Items[17].SubItems.Add("0x" + String.Format("{0:X}", cabecera.fileNameTableOffset));
            listInfo.Items[18].SubItems.Add("0x" + String.Format("{0:X}", cabecera.fileNameTableSize) + " bytes");
            listInfo.Items[19].SubItems.Add("0x" + String.Format("{0:X}", cabecera.FAToffset));
            listInfo.Items[20].SubItems.Add("0x" + String.Format("{0:X}", cabecera.FATsize) + " bytes");
            listInfo.Items[21].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9overlayOffset));
            listInfo.Items[22].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9overlaySize) + " bytes");
            listInfo.Items[23].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7overlayOffset));
            listInfo.Items[24].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7overlaySize) + " bytes");
            listInfo.Items[25].SubItems.Add(Convert.ToString(cabecera.flagsRead, 2));
            listInfo.Items[26].SubItems.Add(Convert.ToString(cabecera.flagsInit, 2));
            listInfo.Items[27].SubItems.Add("0x" + String.Format("{0:X}", cabecera.bannerOffset));
            listInfo.Items[28].SubItems.Add(cabecera.secureCRC16.ToString() + " (" + Convert.ToString(cabecera.secureCRC) + ")");
            listInfo.Items[29].SubItems.Add(cabecera.ROMtimeout.ToString());
            listInfo.Items[30].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM9autoload));
            listInfo.Items[31].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ARM7autoload));
            listInfo.Items[32].SubItems.Add(cabecera.secureDisable.ToString());
            listInfo.Items[33].SubItems.Add("0x" + String.Format("{0:X}", cabecera.ROMsize) + " bytes");
            listInfo.Items[34].SubItems.Add("0x" + String.Format("{0:X}", cabecera.headerSize) + " bytes");
            listInfo.Items[35].SubItems.Add(BitsConverter.BytesToHexString(cabecera.reserved2));
            listInfo.Items[36].SubItems.Add(cabecera.logoCRC16.ToString() + " (" + Convert.ToString(cabecera.logoCRC) + ")");
            listInfo.Items[37].SubItems.Add(cabecera.headerCRC16.ToString() + " (" + Convert.ToString(cabecera.headerCRC) + ")");
            listInfo.Items[38].SubItems.Add("0x" + String.Format("{0:X}", cabecera.debug_romOffset));
            listInfo.Items[39].SubItems.Add("0x" + String.Format("{0:X}", cabecera.debug_size) + " bytes");
            listInfo.Items[40].SubItems.Add("0x" + String.Format("{0:X}", cabecera.debug_ramAddress));
            listInfo.Items[41].SubItems.Add("0x" + String.Format("{0:X}", cabecera.reserved3));
            #endregion
            #region Muestra la información del banner
            picIcon.BorderStyle = BorderStyle.None;
            picBanner           = Nitro.NDS.IconoToBitmap(banner.tileData, banner.palette);
            picIcon.Image       = picBanner;

            txtBannerVer.Text = banner.version.ToString();
            txtBannerCRC.Text = String.Format("{0:X}", banner.CRC16) + " (" +
                                (banner.checkCRC ? "OK)" : Tools.Helper.GetTranslation("RomInfo", "S39") + ')');
            txtBannerReserved.Text = BitsConverter.BytesToHexString(banner.reserved);

            titulos                       = new string[] { banner.japaneseTitle, banner.englishTitle, banner.frenchTitle, banner.germanTitle, banner.italianTitle, banner.spanishTitle };
            txtBannerTitle.Text           = titulos[0];
            comboBannerLang.SelectedIndex = 0;
            #endregion
        }