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); }
private void txtHeaderHex_TextChanged(object sender, EventArgs e) { if (txtHeaderHex.Focused) { txtHeader.Text = new String(Encoding.ASCII.GetChars(BitsConverter.StringToBytes(txtHeaderHex.Text, 4))); } }
/// <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"); }
private void txtReserved2_Leave(object sender, EventArgs e) { header.reserved2 = BitsConverter.StringToBytes(txtReserved2.Text, 56); txtReserved2.Text = BitConverter.ToString(header.reserved2); }
// Control events private void txtBanReserved_Leave(object sender, EventArgs e) { banner.reserved = BitsConverter.StringToBytes(txtBanReserved.Text, 28); txtBanReserved.Text = BitConverter.ToString(banner.reserved); }
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 }