Leer una clase en un formulario Windows de Visual C#

Iniciado por Meta, 10 Junio 2015, 04:59 AM

0 Miembros y 1 Visitante están viendo este tema.

Meta

#20
Hola:

Impresionante, pedazo trabajo. JAjaja.

Te iba poner el mismo documento pero en otra Web.
http://www.emulatronia.com/doctec/consolas/snes/sneskart.html

Sacada de aqui.
http://www.emulatronia.com/consolas/doctec/dt-snes.htm

En este se explica mejor las cabeceras.
http://en.m.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_map

Aquí información de SNES de unas 800 páginas, descarga de 24 MB.
http://www.romhacking.net/documents/226/

Una curiosidad. Por ejemplo, cuando vayas a modificar un dato, que es el único ASCII que hay legible en toda la ROM, es decir, el título del juego, si lo modificas, también en otra área de la ROM, se cambia el Checksum.

¿Cómo lo solucionas?

Saludos.


Edito:
Hice por ahora hasta aquí y esto hasta las ******************************** de colocar compañías.
Código (csharp) [Seleccionar]
                if (Codigo_Licencia == "0")
                {
                    textBox_Codigo_Licencia_2.Text = "Código de Licencia inválida";
                }
                else if (Codigo_Licencia == "1")
                {
                    textBox_Codigo_Licencia_2.Text = "Nintendo";
                }
                else if (Codigo_Licencia == "5")
                {
                    textBox_Codigo_Licencia_2.Text = "Zamuse";
                }
                else if (Codigo_Licencia == "8")
                {
                    textBox_Codigo_Licencia_2.Text = "Capcom";
                }
                else if (Codigo_Licencia == "9")
                {
                    textBox_Codigo_Licencia_2.Text = "HOT B";
                }
                else if (Codigo_Licencia == "A")
                {
                    textBox_Codigo_Licencia_2.Text = "Jaleco";
                }
                else if (Codigo_Licencia == "B")
                {
                    textBox_Codigo_Licencia_2.Text = "STORM (Sales Curve) (1)";
                }
                else if (Codigo_Licencia == "F")
                {
                    textBox_Codigo_Licencia_2.Text = "Mebio Software";
                }
                else if (Codigo_Licencia == "12")
                {
                    textBox_Codigo_Licencia_2.Text = "Gremlin Graphics";
                }
                else if (Codigo_Licencia == "15")
                {
                    textBox_Codigo_Licencia_2.Text = "COBRA Team";
                }
                else if (Codigo_Licencia == "16")
                {
                    textBox_Codigo_Licencia_2.Text = "Human/Field";
                }
                else if (Codigo_Licencia == "18")
                {
                    textBox_Codigo_Licencia_2.Text = "Hudson Soft";
                }
                else if (Codigo_Licencia == "1A")
                {
                    textBox_Codigo_Licencia_2.Text = "Yanoman";
                }
                else if (Codigo_Licencia == "1C")
                {
                    textBox_Codigo_Licencia_2.Text = "Tecmo (1)";
                }
                else if (Codigo_Licencia == "1E")
                {
                    textBox_Codigo_Licencia_2.Text = "Forum";
                }
                else if (Codigo_Licencia == "1F")
                {
                    textBox_Codigo_Licencia_2.Text = "Park Place Productions / VIRGIN";
                }
                else if (Codigo_Licencia == "21")
                {
                    textBox_Codigo_Licencia_2.Text = "Tokai Engeneering (SUNSOFT?)";
                }
                else if (Codigo_Licencia == "22")
                {
                    textBox_Codigo_Licencia_2.Text = "POW";
                }
                else if (Codigo_Licencia == "23")
                {
                    textBox_Codigo_Licencia_2.Text = "Loriciel / Micro World";
                }
                else if (Codigo_Licencia == "28")
                {
                    textBox_Codigo_Licencia_2.Text = "Kemco (1)";
                }
                else if (Codigo_Licencia == "29")
                {
                    textBox_Codigo_Licencia_2.Text = "Seta Co.,Ltd.";
                }
                else if (Codigo_Licencia == "2D")
                {
                    textBox_Codigo_Licencia_2.Text = "Visit Co.,Ltd.";
                }
                else if (Codigo_Licencia == "53")
                {
                    textBox_Codigo_Licencia_2.Text = "HECT";
                }
                else if (Codigo_Licencia == "3D")
                {
                    textBox_Codigo_Licencia_2.Text = "Loriciel";
                }
                else if (Codigo_Licencia == "3F")
                {
                    textBox_Codigo_Licencia_2.Text = "Seika Corp.";
                }
                else if (Codigo_Licencia == "40")
                {
                    textBox_Codigo_Licencia_2.Text = "UBI Soft";
                }
                else if (Codigo_Licencia == "47")
                {
                    textBox_Codigo_Licencia_2.Text = "Spectrum Holobyte";
                }
                else if (Codigo_Licencia == "49")
                {
                    textBox_Codigo_Licencia_2.Text = "Irem";
                }
                else if (Codigo_Licencia == "4B")
                {
                    textBox_Codigo_Licencia_2.Text = "Raya Systems/Sculptured Software";
                }
                else if (Codigo_Licencia == "4C")
                {
                    textBox_Codigo_Licencia_2.Text = "Renovation Pruducts";
                }
                else if (Codigo_Licencia == "4D")
                {
                    textBox_Codigo_Licencia_2.Text = "Malibu Games (T*HQ Inc.) / Black Pearl";
                }
                else if (Codigo_Licencia == "4F")
                {
                    textBox_Codigo_Licencia_2.Text = "U.S. Gold";
                }
                else if (Codigo_Licencia == "50")
                {
                    textBox_Codigo_Licencia_2.Text = "Absolute Entertainment";
                }
                else if (Codigo_Licencia == "51")
                {
                    textBox_Codigo_Licencia_2.Text = "Acclaim";
                }
                else if (Codigo_Licencia == "52")
                {
                    textBox_Codigo_Licencia_2.Text = "Activision";
                }
                else if (Codigo_Licencia == "53")
                {
                    textBox_Codigo_Licencia_2.Text = "American Sammy";
                }
                else if (Codigo_Licencia == "54")
                {
                    textBox_Codigo_Licencia_2.Text = "GameTek";
                }
                else if (Codigo_Licencia == "55")
                {
                    textBox_Codigo_Licencia_2.Text = "Hi Tech";
                }
                else if (Codigo_Licencia == "56")
                {
                    textBox_Codigo_Licencia_2.Text = "LJN Toys";
                }
                else if (Codigo_Licencia == "5A")
                {
                    textBox_Codigo_Licencia_2.Text = "Mindscape";
                }
                else if (Codigo_Licencia == "5D")
                {
                    textBox_Codigo_Licencia_2.Text = "Technos Japan Corp. (Tradewest)";
                }
                else if (Codigo_Licencia == "5F")
                {
                    textBox_Codigo_Licencia_2.Text = "American Softworks Corp.";
                }
                else if (Codigo_Licencia == "60")
                {
                    textBox_Codigo_Licencia_2.Text = "Titus";
                }
                else if (Codigo_Licencia == "61")
                {
                    textBox_Codigo_Licencia_2.Text = "Virgin Games";
                }
                else if (Codigo_Licencia == "62")
                {
                    textBox_Codigo_Licencia_2.Text = "Maxis";
                }
                else if (Codigo_Licencia == "67")
                {
                    textBox_Codigo_Licencia_2.Text = "Ocean";
                }


Aún me queda mucho y cansa psicológicamente.  ;D

Me salen juego con el valor 33 Hex. En la lista de abajo de tu enlace, no está precismamente esa compañía.

Código (csharp) [Seleccionar]
LICENSE       : 1 BYTE
     0 <Invalid License Code>
     1 Nintendo
     5 Zamuse
     8 Capcom
     9 HOT B
    10 Jaleco
    11 STORM (Sales Curve) (1)
    15 Mebio Software
    18 Gremlin Graphics
    21 COBRA Team
    22 Human/Field
    24 Hudson Soft
    26 Yanoman
    28 Tecmo (1)
    30 Forum
    31 Park Place Productions / VIRGIN
    33 Tokai Engeneering (SUNSOFT?)
    34 POW
    35 Loriciel / Micro World
    38 Enix
    40 Kemco (1)
    41 Seta Co.,Ltd.
    45 Visit Co.,Ltd.
    53 HECT
    61 Loriciel
    64 Seika Corp.
    65 UBI Soft
    71 Spectrum Holobyte
    73 Irem
    75 Raya Systems/Sculptured Software
    76 Renovation Pruducts
    77 Malibu Games (T*HQ Inc.) / Black Pearl
    79 U.S. Gold
    80 Absolute Entertainment
    81 Acclaim
    82 Activision
    83 American Sammy
    84 GameTek
    85 Hi Tech
    86 LJN Toys
    90 Mindscape
    93 Technos Japan Corp. (Tradewest)
    95 American Softworks Corp.
    96 Titus
    97 Virgin Games
    98 Maxis
   103 Ocean
   105 Electronic Arts
   107 Laser Beam
   110 Elite
   111 Electro Brain
   112 Infogrames
   113 Interplay
   114 LucasArts
   115 Sculptured Soft
   117 STORM (Sales Curve) (2)
   120 THQ Software
   121 Accolade Inc.
   122 Triffix Entertainment
   124 Microprose
   127 Kemco (2)
   130 Namcot/Namco Ltd. (1)
   132 Koei/Koei! (second license?)
   134 Tokuma Shoten Intermedia
   136 DATAM-Polystar
   139 Bullet-Proof Software
   140 Vic Tokai
   143 I'Max
   145 CHUN Soft
   146 Video System Co., Ltd.
   147 BEC
   151 Kaneco
   153 Pack in Video
   154 Nichibutsu
   155 TECMO (2)
   156 Imagineer Co.
   160 Wolf Team
   164 Konami
   165 K.Amusement
   167 Takara
   169 Technos Jap. ????
   170 JVC
   172 Toei Animation
   173 Toho
   175 Namcot/Namco Ltd. (2)
   177 ASCII Co. Activison
   178 BanDai America
   180 Enix
   182 Halken
   186 Culture Brain
   187 Sunsoft
   188 Toshiba EMI/System Vision
   189 Sony (Japan) / Imagesoft
   191 Sammy
   192 Taito
   194 Kemco (3) ????
   195 Square
   196 NHK
   197 Data East
   198 Tonkin House
   200 KOEI
   202 Konami USA
   205 Meldac/KAZe
   206 PONY CANYON
   207 Sotsu Agency
   209 Sofel
   210 Quest Corp.
   211 Sigma
   214 Naxat
   216 Capcom Co., Ltd. (2)
   217 Banpresto
   219 Hiro
   221 NCS
   222 Human Entertainment
   223 Ringler Studios
   224 K.K. DCE / Jaleco
   226 Sotsu Agency
   228 T&ESoft
   229 EPOCH Co.,Ltd.
   231 Athena
   232 Asmik
   233 Natsume
   234 King/A Wave
   235 Atlus
   236 Sony Music
   238 Psygnosis / igs
   243 Beam Software
   244 Tec Magik
   255 Hudson Soft


Por si alguien lo sabe, lo indica.

Gracias por todo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Eleкtro

#21
Cita de: Meta en 11 Junio 2015, 23:25 PM¿Cómo lo solucionas?

No llego a comprender cómo se computa el Checksum.

De todas formas tampoco le doy ningún interés, ya que el checksum es solo un indicador, un bad checksum no afecta al comportamiento del juego.



Cita de: Meta en 11 Junio 2015, 23:25 PMEdito:
Hice por ahora hasta aquí y esto hasta las ******************************** de colocar compañías.

Lo que estás haciendo, aparte de no ser nada práctico, son malas prácticas de programación,
¿en que momento se te ocurre que la mejor solución es ponerte a escribir una a una las +120 condicionales?  :-\,
¿para que tienes a tu disposición las Classes/Types de .Net Framework si no las usas?, ¿para que estás programando en C#?.

Existe una cosa que se llama Diccionarios (Dictionary) entre otros muchos tipos de objetos que puedes utilizar, como listas, tuplas, arrays dimensionales, arrays escalonados (jagged array), etc, o tu propia Class.

Piensa mejor en las alternativas que realmente existen para ahorrarte tiempo, antes de volver a hacer algo cómo lo que has hecho :P.

yo por ejemplo no me puse a escribir una a una la enumeración con las +120 entradas, no, esa enumeración la conseguí desarrollando un código de 2 o 3 lineas para reemplazar el orden de las palabras (los números a la derecha) de la lista original, y luego cojí un editor de texto que soportase expresiones regulares (Sublime Text) y usé el reemplazo mediante dichas expresiones para los caracteres ilegales; En caso de no haber tenido un editor que lo hiciese, habría desarrollado un pequeño código de pocas lineas para utilizar RegEx con los mismos fines.

Ejemplo:
Código (vbnet) [Seleccionar]
Public Class Form1

   Dim licenses As String =
       <a>
0 Invalid License Code
1 Nintendo
5 Zamuse
8 Capcom
9 HOT B
10 Jaleco
11 STORM (Sales Curve) (1)
15 Mebio Software
18 Gremlin Graphics
21 COBRA Team
22 Human/Field
24 Hudson Soft
26 Yanoman
28 Tecmo (1)
30 Forum
31 Park Place Productions / VIRGIN
33 Tokai Engeneering (SUNSOFT?)
34 POW
35 Loriciel / Micro World
38 Enix
40 Kemco (1)
41 Seta Co.,Ltd.
45 Visit Co.,Ltd.
53 HECT
61 Loriciel
64 Seika Corp.
65 UBI Soft
71 Spectrum Holobyte
73 Irem
75 Raya Systems/Sculptured Software
76 Renovation Pruducts
77 Malibu Games (T*HQ Inc.) / Black Pearl
79 U.S. Gold
80 Absolute Entertainment
81 Acclaim
82 Activision
83 American Sammy
84 GameTek
85 Hi Tech
86 LJN Toys
90 Mindscape
93 Technos Japan Corp. (Tradewest)
95 American Softworks Corp.
96 Titus
97 Virgin Games
98 Maxis
103 Ocean
105 Electronic Arts
107 Laser Beam
110 Elite
111 Electro Brain
112 Infogrames
113 Interplay
114 LucasArts
115 Sculptured Soft
117 STORM (Sales Curve) (2)
120 THQ Software
121 Accolade Inc.
122 Triffix Entertainment
124 Microprose
127 Kemco (2)
130 Namcot/Namco Ltd. (1)
132 Koei/Koei! (second license?)
134 Tokuma Shoten Intermedia
136 DATAM-Polystar
139 Bullet-Proof Software
140 Vic Tokai
143 I'Max
145 CHUN Soft
146 Video System Co., Ltd.
147 BEC
151 Kaneco
153 Pack in Video
154 Nichibutsu
155 TECMO (2)
156 Imagineer Co.
160 Wolf Team
164 Konami
165 K.Amusement
167 Takara
169 Technos Jap. ????
170 JVC
172 Toei Animation
173 Toho
175 Namcot/Namco Ltd. (2)
177 ASCII Co. Activison
178 BanDai America
180 Enix
182 Halken
186 Culture Brain
187 Sunsoft
188 Toshiba EMI/System Vision
189 Sony (Japan) / Imagesoft
191 Sammy
192 Taito
194 Kemco (3) ????
195 Square
196 NHK
197 Data East
198 Tonkin House
200 KOEI
202 Konami USA
205 Meldac/KAZe
206 PONY CANYON
207 Sotsu Agency
209 Sofel
210 Quest Corp.
211 Sigma
214 Naxat
216 Capcom Co., Ltd. (2)
217 Banpresto
219 Hiro
221 NCS
222 Human Entertainment
223 Ringler Studios
224 K.K. DCE / Jaleco
226 Sotsu Agency
228 TandESoft;
229 EPOCH Co.,Ltd.
231 Athena
232 Asmik
233 Natsume
234 King/A Wave
235 Atlus
236 Sony Music
238 Psygnosis / igs
243 Beam Software
244 Tec Magik
255 Hudson Soft
</a>.Value

   Private licDict As New Dictionary(Of String, String)

   Private Sub CreateLicenseDictionary()

       For Each line As String In licenses.Trim.Split({ControlChars.Lf}, StringSplitOptions.RemoveEmptyEntries)

           Dim code As Byte = Convert.ToByte(line.Substring(0, line.IndexOf(" "c)))
           Dim codeHex As String = Convert.ToString(code, toBase:=16)
           Dim name As String = line.Substring(line.IndexOf(" "c), line.Length - code.ToString.Length)

           licDict.Add(codeHex, name)

       Next line

   End Sub

   Private Sub Test()

       textBox_Codigo_Licencia_2.Text = Me.licDict(Codigo_Licencia)

   End Sub

End Class


Puedes hacer algo parecido en C#, con los datos de la variable "code" y "name" también puedes crear la enumeración de C# en un archivo de texto, construyendo el string con ese formato específico, que solo tendrías que copiar y pegar en tu código fuente.

En fin... será por porisiblidades.

Saludos!