elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOURCE-CODE] Comenzar desde cero hacer este proyecto con C# y DexDrive
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOURCE-CODE] Comenzar desde cero hacer este proyecto con C# y DexDrive  (Leído 2,285 veces)
Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
[SOURCE-CODE] Comenzar desde cero hacer este proyecto con C# y DexDrive
« en: 12 Diciembre 2016, 18:15 pm »

Hola:

1) Tenemos el diseño hecho de una interfaz en C#.


2) Introducimos los datos configurados del puerto serie indicado abajo.


3) Con esta documentación, hacemos los pasos necesarios para hacer las funciones o métedos.

https://github.com/fbriere/linux-dexdrive/blob/master/protocol.txt
https://web.archive.org/web/20100123200342/http://www.darklock.com/thps/dexdrive.html

4) Cuando ya tengamos las funciones del protocolo hecho, nos metemos en hacer los botones.

Backup: Leer la Memory Card.
Restore: Guardar los datos de la Memory Card en el PC.
Format: Formatear la Memory Card.
Refresh: Refrescarlos datos de la Memory Card.
Duplicate: Duplicar la Memory Card, es decir, hacer una copia de la tarjeta completo y guardar los datos en el PC.

5) Emepzamos aprobar el botón Backup, que es leer la tarjeta o Memory Card.

6) Dejo el proyecto vacío para empezar desde cero. Solo tiene el diseño hecho. Así ahorras tiempo.

Descargar

7) Animarse a hacer esta interfaz.


« Última modificación: 12 Diciembre 2016, 19:36 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [SOURCE-CODE] Comenzar desde cero hacer este proyecto con C# y DexDrive
« Respuesta #1 en: 12 Diciembre 2016, 19:40 pm »

Gracias por compartir. He modificado el título del post para que se entienda mejor, pues en un principio parece que estés pidiendo que te hagan el trabajo (quiero pensar que no), pero supongo que en realidad la intención ha sido compartir una especie de plantilla con la que otros puedan empezar a desarrollar su propia implementación del algoritmo de lectura de un dispositivo DexDrive, ¿me equivoco?.

PD: Como mejora visual, estaría bien que puediera representar los iconos de las carpetas.

Saludos!


« Última modificación: 12 Diciembre 2016, 19:44 pm por Eleкtro » En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: [SOURCE-CODE] Comenzar desde cero hacer este proyecto con C# y DexDrive
« Respuesta #2 en: 12 Diciembre 2016, 20:55 pm »

Buenas.

Está hecho ya en Linux en C y en Windows en C#, puedo dar el código completo pero no lo haré y funciona.
Cada uno lo puede hacer como quiera, cada persona tiene su forma de pensar y hacer programas internamente diferente aunque en apariencia sean ideánticas, solo que cada uno usa optimizaciones o no.

Para que se hagan una idea. Aquí en este enlace dice:
Citar
Native Sony Format
Internally, a PlayStation memory card has a single 1-megabit EEPROM chip. This chip can store a total of 128 kilobytes of data, divided into sixteen blocks. Each block, in turn, contains 64 frames, each of which is 128 bytes. While this arrangement may appear strange, it's primarily an optimisation measure, since the hardware reads and writes the card in one kilobit or 128 byte chunks.

The first thing most people say when they hear that a memory card has 16 blocks is generally "you mean FIFTEEN blocks". No, sixteen; the first block contains a directory of the other fifteen blocks. Each directory entry consumes one of the 64 frames in this block, and takes the following format.

    FRAME 0: Identification frame, used to determine whether the data is a valid PlayStation memory card.
    FRAMES 1 - 15: Directory frame, detailing the nature of the save data in the appropriate block.
    FRAMES 16 - 35: Reserved. Formatted as per normal directory frames, with the "reserved" block type and all implied data.
    FRAMES 36 - 62: Unused. All bytes in this region are set to 0xFF.
    FRAME 63: Write test. If it is desired to do a "test write" of data, this frame can be used without damaging the memory card.

The identification frame is constant, and always contains the following data. If the data differs from this, the card has not yet been formatted.

    The two characters "MC".
    125 NUL bytes (0x00).
    The XOR byte (0x0E).

The XOR byte needs a little clarification. This byte is calculated through an XOR of the preceding 127 bytes; one simply loops through from byte to byte as follows:


   char xor=0;
   for(int x=0;x<127;x++) xor^=frame
  • ;
   frame[127]=xor;

Since any number XORed with itself is 0, you can verify this byte with the following code:


   char xor=0;
   for(int x=0;x<128;x++) xor^=frame
  • ;
   if(xor==0) return 1; // XOR code correct
   return 0; // XOR code incorrect


En español traducido por google.
https://translate.google.com/translate?hl=es&sl=en&tl=es&u=https%3A%2F%2Fweb.archive.org%2Fweb%2F20100123200342%2Fhttp%3A%2F%2Fwww.darklock.com%2Fthps%2Fdexdrive.html

Vamos por parte, el código lo hice en C# en modo consola.
Código:
using System;

namespace DexDrive_for_prueba
{
    class Program
    {
        static void Main(string[] args)
        {
            sbyte[] frame = new sbyte[128];
            frame[0] = (sbyte)'M';
            frame[1] = (sbyte)'C';
            for (int k = 2; k < frame.Length - 1; k++) frame[k] = 0;
            frame[127] = 0x0E;

            sbyte xor = 0;
            for (int x = 0; x < 128; x++) xor ^= frame[x];

            // Muestra 1.
            Console.WriteLine(xor == 0 ? "FRAME 0 formateado" : "XOR code incorrect");

            // Muestra 2.
            if (xor == 0)
            {
                Console.WriteLine("FRAME 0 formateado");
            }

            else
            {
                Console.WriteLine("XOR code incorrect");
            }

            Console.ReadKey();
        }
    }
}

Así se empieza poco a poco.


Saludos 2016.

PD: Pues si, como mejora se puede poner dibujos en los botones.
« Última modificación: 12 Diciembre 2016, 21:31 pm por Meta » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
RETO comenzar desde cero: Victima Drtooth « 1 2 »
Ingeniería Inversa
ErCuñaodeRocky 17 9,226 Último mensaje 17 Abril 2011, 18:49 pm
por beholdthe
Proyecto-Taller: Electrónica, desde cero. « 1 2 3 »
Electrónica
Firos 20 41,335 Último mensaje 30 Abril 2010, 05:04 am
por Mr.Blue
Hacer un ordenador desde cero « 1 2 »
Hardware
Perchuto 18 11,330 Último mensaje 7 Enero 2011, 21:48 pm
por Perchuto
Proyecto Facebook Spam... Desde Cero :S!
Programación Visual Basic
yalosabes 1 4,028 Último mensaje 20 Mayo 2011, 20:14 pm
por x64core
[SOURCE-CODE] Proyecto - Educación Ambiental
Desarrollo Web
**Aincrad** 2 1,458 Último mensaje 28 Noviembre 2018, 15:22 pm
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines