|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Emuleightor - Emulador del CHIP-8 en ANSI C
|
en: 27 Septiembre 2014, 22:56 pm
|
Que tal, hoy les traigo esta máquina virtual para CHIP-8 que codifique para entrar en el mundo de la emulación. CHIP-8 es un pequeño intérprete que venía en ciertas computadoras antiguas y en la actualidad permite ejecutar ciertas joyas como PONG, SPACE INVADERS, TETRIS entre otras. Capturas: (Esto es PONG, la pelotita acababa de anotar cuando tome la captura xD) Está escrita en viejo y confiable ANSI C (O al menos la mayor parte, use Visual Studio para compilarlo y me vi forzado a usar algunas instrucciones _s), utiliza Allegro 5 para manejo de gráficos, controles, reloj y sonido. Es muy rápido, casi no consume nada de recursos y gracias a su capacidad de ejecutar ciertas instrucciones de 2 modos (No todos los programas de CHIP-8 esperan el mismo comportamiento de algunas instrucciones) es altamente compatible. A excepción de ciertos ROMs híbridos, ningún ROM de CHIP-8 se le resiste. Además de la gran precisión de emulación y el buen manejo de recursos este emulador incluye una función “AntiFlickering” que elimina en la gran mayoría de los juegos (depende de cómo haya sido programado) el molesto efecto de parpadeo que aqueja al CHIP-8 debido a su diseño. Hasta donde yo sé (tampoco es que haya investigado mucho) este es el único emulador de CHIP-8 que cuenta con esto. El código es limpio y está escrito con mucho cuidado (O por lo menos eso creo xD), tiene buena documentación y podría ser una excelente herramienta a modo de ejemplo para aquel que estudia organización y estructura de computadoras o algo similar. La aplicación se puede ejecutar por la línea de comandos, pero lo más fácil es que descargues el empaquetado que pondré aquí abajo, descomprimas, tomes algún ROM (ya incluí algunos, tienen extensión .ch8) y lo sueltes encima de Emuleightor.exe Emuleightor.zip (El empaquetado con el programa ya compilado y algunos juegos, podria requerir una versión de .NET framework) Emuleightor.c (Código fuente solo) Emuleightor.zip (Solucion de VS 2013, para aquellos que no quieren pelearse con las dependencias de Allegro, solo requiere que la version para Visual Studio de este se encuentre descomprimida en C:\allegro) PD: Los controles dependen mucho del juego, pero las teclas mapeadas son: 1234 QWER ASDF ZXCV
|
|
|
2
|
Seguridad Informática / WarZone / Hack-Web_EAS
|
en: 19 Abril 2011, 23:17 pm
|
Hola, Solo pasando a preguntar si la prueba Hack-Web_EAS esta operativa. Cierta URL oculta en un Iframe esta devolviendo un error 404, y no estoy seguro si es un error en la prueba o es para simular un sistema escolar jodido (Que seria toda una novedad) . Salu2
|
|
|
3
|
Informática / Software / DLL Genius 1.0 (Liberado)
|
en: 9 Enero 2011, 16:36 pm
|
Bueno, esta aplicacion es la que termino en primer lugar en el concurso [Ehn-Dev 2010]. En ese momento estaba en fase beta, pero la versión final ya esta lista y aquí se las dejo: DLL Genius es una aplicación que te permitirá descargar y registrar librerías .DLL automáticamente con solo indicar el nombre de esta. Ademas, también te permitirá registrar y des registrar archivos .OCX y .DLL que tengas en tu equipo. Descarga
|
|
|
4
|
Programación / .NET (C#, VB.NET, ASP) / Tuto-Como cargar un listview desde un archivo .txt en visualbasic
|
en: 15 Noviembre 2008, 02:31 am
|
Bueno aqui les tengo un tuto para cargar un listview desde visualbasic.net, y guardarlo. Utilizaremos Microsoft Visual Basic 2008 Primero abrimos un nuevo proyecto y agregamos 2 botones y un listview Propiedades: listiview con gridlines en true,view en detalis, y agregamos 2 columnas al final queda asi: ahora el codigo para cargar el listview, este cargara 2 archivos de texto que se encuentren en la misma carpeta que la app el primero lo llamaremos primero y sera el que se agregue en la primera columna el otro lo llamaremos segundo y sera el que se cargue en la segunda columna. el programa leera linea por linea el archivo y por cada linea agregara un item al listview 'la declaramos como un sub para poder llamarla despues facilmente Sub leer() 'comprobamos que existen los arcivos de texto If My.Computer.FileSystem.FileExists(Application.StartupPath + "/primera.txt") And My.Computer.FileSystem.FileExists(Application.StartupPath + "/segunda.txt") Then 'borramos el listview por seguridad ListView1.Items.Clear() 'empezamos a leer Dim sr As New System.IO.StreamReader( _ Application.StartupPath + "/primera.txt", _ System.Text.Encoding.Default, _ True) ' Leer el contenido mientras no se llegue al final While sr.Peek() <> -1 ' Leer una líena del archivo Dim s As String = sr.ReadLine() ' Si no está vacía, añadirla al listview ' Si está vacía, continuar If String.IsNullOrEmpty(s) Then Continue While End If 'añadirla al listview ListView1.Items.Add(s) End While ' Cerrar el archivo sr.Close() 'abrimos el segundo archivo Dim sd As New System.IO.StreamReader( _ Application.StartupPath + "/segunda.txt", _ System.Text.Encoding.Default, _ True) ' Leer el contenido mientras no se llegue al final While sd.Peek() <> -1 'Creamos un bucle algo complicado para poner el subitem Dim na As Integer na = 0 Dim laItem As ListViewItem Dim a As Integer For a = 1 To ListView1.Items.Count If na = ListView1.Items.Count Then Else For Each laItem In ListView1.Items 'Leer una líena del archivo Dim s As String s = sd.ReadLine ' Si no está vacía, añadirla al listview ' Si está vacía, continuar If String.IsNullOrEmpty(s) Then Continue While End If 'añadirla al listview ListView1.Items(na).SubItems.Add(s) na = na + 1 Next End If Next End While sd.Close() 'ordenamos los datos ListView1.Sort() Else MsgBox("No se encontro la base de datos, se cargara con las tablas vacias", MsgBoxStyle.Critical, "Error") ListView1.Items.Clear() 'aqui va el mensaje de error si no se encuentra los archivos de texto End If
y para llamar la instruccion solo hace falta escribir en el codigo, si queremos que cargue al presionar el boton seria Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click leer() End Sub y ya con esto la aplicacion carga los datos ahora lo segundo, guardar los datos Sub guardar() 'borramos la base de datos antigua If My.Computer.FileSystem.FileExists(Application.StartupPath + "/primera.txt") Then My.Computer.FileSystem.DeleteFile(Application.StartupPath + "/primera.txt") 'hacemos un bucle para obtener los datos de la primer columna Dim nu As Integer nu = 0 Dim loItem As ListViewItem Dim i As Integer For i = 1 To ListView1.Items.Count If nu = ListView1.Items.Count Then Else For Each loItem In ListView1.Items 'guardamos la nueva base de datos My.Computer.FileSystem.WriteAllText(Application.StartupPath + "/primera.txt", ListView1.Items(nu).Text + vbCrLf, True) nu = nu + 1 Next End If Next 'borramos la segunda If My.Computer.FileSystem.FileExists(Application.StartupPath + "/segunda.txt") Then My.Computer.FileSystem.DeleteFile(Application.StartupPath + "/segunda.txt") 'hacemos de nuevo un bucle Dim na As Integer na = 0 Dim laItem As ListViewItem Dim a As Integer For a = 1 To ListView1.Items.Count If na = ListView1.Items.Count Then Else For Each laItem In ListView1.Items 'lo guardamos My.Computer.FileSystem.WriteAllText(Application.StartupPath + "/segunda.txt", ListView1.Items(na).SubItems(1).Text + vbCrLf, True) na = na + 1 Next End If Next End Sub y al igual que con el otro lo podemos llamar como guardar () en el boton seria Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click guardar() End Sub y ya con eso queda, este codigo se puede usar en varios proyectos solo le hace falta como modificar los datos pero eso es facil de hacer les dejo el proyecto ya compilado http://www.badongo.com/file/12099321salu2
|
|
|
6
|
Programación / .NET (C#, VB.NET, ASP) / Pequeña vacuna para USB en Vb.net
|
en: 10 Septiembre 2008, 01:10 am
|
Bueno pues traigo mi primer aporte para esta comunidad una pequeña vacuna para las variantes de los virus RECYCLER bueno primero necesitamos saber que Usb escanear, para eso agregamos un control "ComboBox" lo agregamos y ponemos un boton con el texto "actualizar" con el siguiente codigo: ComboBox1.Items.Clear() Dim allDrives() As IO.DriveInfo = IO.DriveInfo.GetDrives Dim drive As IO.DriveInfo For Each drive In allDrives If drive.IsReady = True AndAlso drive.DriveType = IO.DriveType.Removable Then ComboBox1.Items.Add(drive.Name) End If Next
con este boton el combox obtendra la lista de todos los usb conectados al equipo (ademas seria bueno agregarlo al load del formulario) luego ponemos un boton con el texto "escanear" y el siguiente codigo 'Este para evitar errores If ComboBox1.SelectedItem = "" Then MsgBox("Seleccione una unidad", MsgBoxStyle.Critical, "Error") Else 'Aqui va el codigo de la vacuna Try 'declaramos cual es la unidad Dim usb As String usb = ComboBox1.Text 'buscamos la clasica carpeta If My.Computer.FileSystem.DirectoryExists(usb + "/RECYCLER") Then 'Obtenemos los archivos reales de la carpeta For Each foundFile As String In My.Computer.FileSystem.GetFiles _ (usb + "/RECYCLER", _ FileIO.SearchOption.SearchAllSubDirectories) 'Quitamos privilegios a los archivos IO.File.SetAttributes(foundFile, IO.FileAttributes.Normal) Next 'Obtenemos las subcarpetas reales de la carpeta For Each foundDirectory As String In _ My.Computer.FileSystem.GetDirectories _ (usb + "/RECYCLER", _ FileIO.SearchOption.SearchAllSubDirectories) 'Quitamos privilegios a los subdirectorios IO.File.SetAttributes(foundDirectory, IO.FileAttributes.Normal) Next 'Quitamos privilegios a la carpeta en si IO.File.SetAttributes(usb + "/RECYCLER", IO.FileAttributes.Normal) 'y por fin la borramos My.Computer.FileSystem.DeleteDirectory(usb + "/RECYCLER", FileIO.DeleteDirectoryOption.DeleteAllContents) 'Nos aseguramos que ya no hay virus If My.Computer.FileSystem.DirectoryExists(usb + "/RECYCLER") Then MsgBox("No se logro eliminar el virus", MsgBoxStyle.Exclamation, "Error") Else MsgBox("Virus eliminado con exito", MsgBoxStyle.Information, "Exito") End If Else 'Si no se encontro el virus este mensaje aparece MsgBox("No se encontro el virus", MsgBoxStyle.Information, "Informacion") End If Catch 'Un mensaje de error personalizado simple MsgBox("Error durante la operacion", MsgBoxStyle.Critical, "Error") End Try End If en total el codigo de la vacuna seria este:Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ComboBox1.Items.Clear() Dim allDrives() As IO.DriveInfo = IO.DriveInfo.GetDrives Dim drive As IO.DriveInfo For Each drive In allDrives If drive.IsReady = True AndAlso drive.DriveType = IO.DriveType.Removable Then ComboBox1.Items.Add(drive.Name) End If Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.Items.Clear() Dim allDrives() As IO.DriveInfo = IO.DriveInfo.GetDrives Dim drive As IO.DriveInfo For Each drive In allDrives If drive.IsReady = True AndAlso drive.DriveType = IO.DriveType.Removable Then ComboBox1.Items.Add(drive.Name) End If Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'Este para evitar errores If ComboBox1.SelectedItem = "" Then MsgBox("Seleccione una unidad", MsgBoxStyle.Critical, "Error") Else 'Aqui va el codigo de la vacuna Try 'declaramos cual es la unidad Dim usb As String usb = ComboBox1.Text 'buscamos la clasica carpeta If My.Computer.FileSystem.DirectoryExists(usb + "/RECYCLER") Then 'Obtenemos los archivos reales de la carpeta For Each foundFile As String In My.Computer.FileSystem.GetFiles _ (usb + "/RECYCLER", _ FileIO.SearchOption.SearchAllSubDirectories) 'Quitamos privilegios a los archivos IO.File.SetAttributes(foundFile, IO.FileAttributes.Normal) Next 'Obtenemos las subcarpetas reales de la carpeta For Each foundDirectory As String In _ My.Computer.FileSystem.GetDirectories _ (usb + "/RECYCLER", _ FileIO.SearchOption.SearchAllSubDirectories) 'Quitamos privilegios a los subdirectorios IO.File.SetAttributes(foundDirectory, IO.FileAttributes.Normal) Next 'Quitamos privilegios a la carpeta en si IO.File.SetAttributes(usb + "/RECYCLER", IO.FileAttributes.Normal) 'y por fin la borramos My.Computer.FileSystem.DeleteDirectory(usb + "/RECYCLER", FileIO.DeleteDirectoryOption.DeleteAllContents) 'Nos aseguramos que ya no hay virus If My.Computer.FileSystem.DirectoryExists(usb + "/RECYCLER") Then MsgBox("No se logro eliminar el virus", MsgBoxStyle.Exclamation, "Error") Else MsgBox("Virus eliminado con exito", MsgBoxStyle.Information, "Exito") End If Else 'Si no se encontro el virus este mensaje aparece MsgBox("No se encontro el virus", MsgBoxStyle.Information, "Informacion") End If Catch 'Un mensaje de error personalizado simple MsgBox("Error durante la operacion", MsgBoxStyle.Critical, "Error") End Try End If End Sub End Class
bueno espero que les guste y les dejo el link de descarga http://www.badongo.com/file/11279851se aceptarn dudas comentarias y demas salu2
|
|
|
|
|
|
|