Difference between revisions of "UsbGecko/es"
< UsbGecko
Jump to navigation
Jump to search
(Completely translated to Spanish) |
Hallowizer (talk | contribs) m (Link fix) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | El USB Gecko es una herramienta de desarrollo y hackeo para Wii y Gamecube que conecta el puerto USB de un ordenador, hacia la ranura de memoria de la Wii. Puede ser usado para cargar homebrew, para usar tu ordenador como un terminal remoto bajo [[Wii Linux/es|Wii Linux]] y como una herramienta de [[Debugging/es|debugging remoto]]. Para más información mira la [http://www.usbgecko.com página de USB Gecko]. | |
− | |||
− | El USB Gecko es una herramienta de desarrollo y hackeo para Wii y Gamecube que conecta el puerto USB de un ordenador, hacia la ranura de memoria de la Wii. Puede ser usado para cargar homebrew, para usar tu ordenador como un terminal remoto bajo [[ | ||
Para codear la aplicación de la parte del ordenador de USB Gecko necesitas: | Para codear la aplicación de la parte del ordenador de USB Gecko necesitas: | ||
Line 7: | Line 5: | ||
* Para Linux : [http://www.intra2net.com/de/produkte/opensource/ftdi/ API] [http://www.intra2net.com/de/produkte/opensource/ftdi/documentation/group__libftdi.html DOC] (en Inglés) | * Para Linux : [http://www.intra2net.com/de/produkte/opensource/ftdi/ API] [http://www.intra2net.com/de/produkte/opensource/ftdi/documentation/group__libftdi.html DOC] (en Inglés) | ||
− | |||
Line 171: | Line 168: | ||
} | } | ||
</source> | </source> | ||
+ | |||
[[Category:Homebrew]] | [[Category:Homebrew]] |
Latest revision as of 04:47, 29 July 2021
El USB Gecko es una herramienta de desarrollo y hackeo para Wii y Gamecube que conecta el puerto USB de un ordenador, hacia la ranura de memoria de la Wii. Puede ser usado para cargar homebrew, para usar tu ordenador como un terminal remoto bajo Wii Linux y como una herramienta de debugging remoto. Para más información mira la página de USB Gecko.
Para codear la aplicación de la parte del ordenador de USB Gecko necesitas:
He empezado una aplicación linux, todo parece estar bien, excepto por ftdi_read_data, que siempre reporta 0 :/
Para todos aquellos que estén interesados en esta página, esto puede ser una base para hacer una aplicación "usable".
#include <stdio.h>
#include <sys/types.h>
#include <ftdi.h>
//-------------------------- Globals ----------------------------------
int32_t status;
int ret;
int32_t TxSent;
int32_t RxSent;
struct ftdi_context ftdic;
int cmd_readmem = 0x04;
//-------------------------- Function Prototypes ----------------------------------
void gecko_opendevice();
int main(int argc, char **argv)
{
void* plop;
unsigned char responseback = 0;
ftdi_init(&ftdic);
printf("-----------------------------------\n");
printf("- NoNameNo's UsbGecko Linux Tools -\n");
printf("-----------------------------------\n\n");
gecko_opendevice();
printf("Connecting to Wii.\n");
printf("%x\n",gecko_writebyte(&cmd_readmem,1));
printf("%x\n",gecko_readbyte(&responseback, 1));
ftdi_usb_close(&ftdic);
ftdi_deinit(&ftdic);
return EXIT_SUCCESS;
}
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
int gecko_readbyte(unsigned char* lpBuffer, int dwBytesToRead)
{
status = ftdi_read_data(&ftdic, lpBuffer, dwBytesToRead);
if (status > 0){
if(status != dwBytesToRead){
return 2;
}
}
else{
printf("[Error] UsbGecko Reading Device\n");
//ftdi_usb_close(&ftdic);
//ftdi_deinit(&ftdic);
return status;
}
return 1;
}
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
int gecko_writebyte(unsigned char* lpBuffer, int dwBytesToWrite)
{
status = ftdi_write_data(&ftdic, lpBuffer, dwBytesToWrite);
if (status > 0){
if(status != dwBytesToWrite){
return 2;
}
}
else{
printf("[Error] UsbGecko Writing Device\n");
ftdi_usb_close(&ftdic);
ftdi_deinit(&ftdic);
return 0;
}
return 1;
}
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
void gecko_opendevice()
{
//---------------------------open device --------------------------------------
if((ret = ftdi_usb_open(&ftdic, 0x0403, 0x6001)) < 0) {
printf("[Error] UsbGecko NOT Detected\n");
exit(0);
}
else{
printf("[OK] UsbGecko Detected\n");
}
//---------------------------Reset device --------------------------------------
if((ret = ftdi_usb_reset(&ftdic)) < 0) {
printf("[Error] UsbGecko Reseting Device \n");
ftdi_usb_close(&ftdic);
ftdi_deinit(&ftdic);
exit(0);
}
else{
printf("[OK] UsbGecko Reseted\n");
}
//---------------------------SetTimeOut to 2000 --------------------------------------
ftdic.usb_read_timeout=2000;
ftdic.usb_write_timeout=2000;
printf("[OK] UsbGecko Setted 2 sec timout\n");
//---------------------------Purging RX/TX buffers --------------------------------------
if((ret = ftdi_usb_purge_buffers(&ftdic)) < 0) {
printf("[Error] UsbGecko Purging Buffer \n");
ftdi_usb_close(&ftdic);
ftdi_deinit(&ftdic);
exit(0);
}
else{
printf("[OK] UsbGecko Purged RX/TX buffers\n");
}
//--------------------------- Set RX/TX size buffer --------------------------------------
if((ret = ftdi_read_data_set_chunksize(&ftdic,65536)) < 0) {
printf("[Error] UsbGecko Setting RX buffer size\n");
ftdi_usb_close(&ftdic);
ftdi_deinit(&ftdic);
exit(0);
}
else{
printf("[OK] UsbGecko Setted RX Buffer Size\n");
}
if((ret = ftdi_write_data_set_chunksize(&ftdic,65536)) < 0) {
printf("[Error] UsbGecko Setting TX Buffer size\n");
ftdi_usb_close(&ftdic);
ftdi_deinit(&ftdic);
exit(0);
}
else{
printf("[OK] UsbGecko Setted TX Buffer Size\n");
}
//---------------------------Required ??? --------------------------------------
sleep(1);
}