[DESARROLLO] libntfs_ext con soporte NTFS EXT2/3/4 para PS3

Git de la Librería:

https://github.com/Estwald/libntfs_ext

NOTA IMPORTANTE: Ahora se soporta el uso de funciones estándar de libc como fopen(), opendir(), mkdir(), rmdir()... con sólo llamar a la función "NTFS_init_system_io();" como primera función en main(). Ver notas en PS3_README.txt de las funciones soportadas y el nuevo ejemplo "ps3_example_stdio".

Abro este hilo de trabajo sobre esta librería que recientemente he portado.

¿Que es libntfs_ext?

Una librería que proporciona soporte de lectura/escritura para las particiones NTFS y de lectura para las particiones EXT2/3/4 de los dispositivos USB que conectemos.

Está basada en libntfs Wii que a su vez se basa en libntfs-3g y tambien en libext2fs con los cambios pertinentes para trabajar en PS3 y con algunas correcciones que evitan bugs de las originales.

¿Como se trabaja con libntfs_ext?

Lo primero que necesitamos, es detectar cuando un dispositivo es insertado, dar un tiempo prudencial (yo empleo 5 segundos) para darle tiempo al sistema de hacer sus gestiones (de otra forma, no se montarán las unidades por que dará error) y luego proceder al montaje.

Para detectar si un dispositivo USB está o no insertado, disponemos de la función:

bool PS3_NTFS_IsInserted(int fd); // fd from 0 to 7 (usb000... usb007)

Y en el ejemplo que incluyo se muestra como meter en el bucle del programa la detección y montaje o desmontaje (en este caso para liberar la partición) de dispositivos al desenchufar.

ANTES de desenchufar el dispositivo se debe proceder al desmontaje si se ha escrito sobre el (o bien la aplicación al salir que desmonte todas las particiones (en mi ejemplo con NTFS_UnMountAll(); ) o que proceda al desmontaje de un dispositivo proporcionando una función para ello (usando NTFS_UnMount(int id))

Existe una función que permite averiguar, partiendo de la unidad "ntfX" en mi ejemplo, el puerto USB (fd) donde está instalado: (para las particiones EXT2/3/4 la unidad es "extX" siendo X el número de unidad)

Por ejemplo: fd = NTFS_Test_Device("ntfs0"); devolvería -1 si no está montado y de 0 a 7 para corresponderse con USB000 a USB007 (fd = NTFS_Test_Device("ext0"); para las de Linux)

¿Y con ficheros?

Para manejar ficheros no podemos usar las funciones habituales en el sistema: por ello, implemento funciones propias, como ps3ntfs_open() y similares.

Lo que si he hecho, es que desde estas funciones, podamos acceder a los dispositivos del sistema ;) .

Así es posible abrir "/dev_hdd" como "ntfs:0" o su variante "/ntfs0:" (es importante el uso de ":" para separar la ruta en este caso). De esta forma, podemos usar solo un tipo de funciones (para evitar lo que yo he tenido que hacer con Iris Manager, duplicando funciones XD)

Esto es una lista de todas las funciones y sus ejemplos, tal como viene en README_PS3.txt

To access to NTFS device, for file operations you must use this functions:


int ps3ntfs_open(const char *path, int flags, int mode); // flags: O_RDONLY... mode: 0777
int ps3ntfs_close(int fd);
int ps3ntfs_write(int fd, const char *ptr, size_t len);
int ps3ntfs_read(int fd, char *ptr, size_t len);
off_t ps3ntfs_seek(int fd, off_t pos, int dir);
s64 ps3ntfs_seek64(int fd, s64 pos, int dir); // 64 bits version for large files
int ps3ntfs_fstat(int fd, struct stat *st);
int ps3ntfs_stat(const char *file, struct stat *st);
int ps3ntfs_link(const char *existing, const char *newLink);
int ps3ntfs_unlink(const char *name); // for files and folders

int ps3ntfs_rename(const char *oldName, const char *newName);
int ps3ntfs_mkdir(const char *path, int mode);

DIR_ITER* ps3ntfs_diropen(const char *path);
int ps3ntfs_dirreset(DIR_ITER *dirState);
int ps3ntfs_dirnext(DIR_ITER *dirState, char *filename, struct stat *filestat);
int ps3ntfs_dirclose(DIR_ITER *dirState);

NTFS path must be absolute (with device/unit name). NTFS units can be accessed using "ntfsX:" or "/ntfsX:" (X = is the unit number).

Also i have implemented in this functions support for PS3 internal devices as "/dev_hdd", "/dev_usb000" using
LV2 syscalls

Examples:

// NTFS operation to write

int fd = ps3ntfs_open("ntfs0:/text.txt", O_CREAT | O_WRONLY | O_TRUNC, 0777);

if(fd < 0) error(fd);

-------------------

// EXT operation to write

int fd = ps3ntfs_open("ext0:/text.txt", O_CREAT | O_WRONLY | O_TRUNC, 0777);

if(fd < 0) error(fd);

-------------------

// FAT operation to write (from internal device)

int fd = ps3ntfs_open("/dev_usb000/text.txt", O_CREAT | O_WRONLY | O_TRUNC, 0777);

if(fd < 0) error(fd);

-------------------

// NTFS operation to read

int fd = ps3ntfs_open("ntfs0:/text.txt", O_RDONLY, 0);

if(fd < 0) error(fd);

/***********************************************************************************************************/
/***********************************************************************************************************/

Exceptions:


ps3ntfs_chdir() -> is not supported because the paths must be absolute

ps3ntfs_statvfs() -> is only supported for NTFS devices (for internal devices uses sysFsGetFreeSize() function)

ps3ntfs_dirreset() -> is only supported for NTFS devices


El ejemplo está compilado ya como PKG y es suficiente explícito por si mismo, pero si necesitáis mas información, reportar bugs, etc, para eso tenemos este hilo ;)

Saludos
PuRo Crack! (Substituir R por T)

Saludos!
A probar se ha dicho... Gracias x tu trabajo
Yo solo puedo felicitarte a ti y los demás desarrolladores. que hacen posible dar vida al ps3.

Lamentablemente, todos mis disco están en formato ext4, tenia un fat32 de 500GB, pero lo vendí y le puse 1TB interno al ps3.

Espero que la gente aquí se anime, y copie muchos archivos de diferentes tamaños y cantidades para ver el comportamiento del mismo.
Casi lloro de la emocion al ver el titulo, desde luego no podia ser otro el que hiciese algo asi ^^.
Mi felicitaciones maquina.

Solo una idea, no quiero que parezca una peticion ni nada por el estilo, es solo una idea que me ha venido a la cabeza cuando he leido el hilo y te lo consulto.
Lo ideal seria crear un sprx o algun ejecutable por el estilo, reconocible por el sistema y que de esta manera pudieramos usar los dispositivos en el XMB tambien y no seria necesario implementarlo en las apps no?
Mas aun pudiendo ejecutar "plugins" en segundo plano, bien sea con el CORE (en los MLT) o con el PRX Launcher.
¿Cabria esa posibilidad, o es algo imposible?

Solo es por resolver la duda ^^.

Un saludo y gracias de nuevo por traer siempre cosas utiles.
1985a escribió:Yo solo puedo felicitarte a ti y los demás desarrolladores. que hacen posible dar vida al ps3.

Lamentablemente, todos mis disco están en formato ext4, tenia un fat32 de 500GB, pero lo vendí y le puse 1TB interno al ps3.

Espero que la gente aquí se anime, y copie muchos archivos de diferentes tamaños y cantidades para ver el comportamiento del mismo.


Yo no tengo disco en ext2/ext3/ext4 pero hay una librería portada a Wii que tiene ese soporte y tal vez lo pueda mirar algo más adelante y aplicarle los arreglos que he metido en la cache en esta e incluso fusionarlas (no prometo nada)

Isma_OMG escribió:Casi lloro de la emocion al ver el titulo, desde luego no podia ser otro el que hiciese algo asi ^^.
Mi felicitaciones maquina.

Solo una idea, no quiero que parezca una peticion ni nada por el estilo, es solo una idea que me ha venido a la cabeza cuando he leido el hilo y te lo consulto.
Lo ideal seria crear un sprx o algun ejecutable por el estilo, reconocible por el sistema y que de esta manera pudieramos usar los dispositivos en el XMB tambien no?
Mas aun pudiendo ejecutar "plugins" en segundo plano, bien sea con el CORE (en los MLT) o con el PRX Launcher.
¿Cabria esa posibilidad, o es algo imposible?

Solo es por resolver la duda ^^.

Un saludo y gracias de nuevo por traer siempre cosas utiles.


No se puede, sencillamente: este tipo de cosas quedan limitadas para que los sceners podamos tener acceso en nuestras aplicaciones y ya eso mismo es muy complicado y no exento de mil problemas (las librerías de Wii que se basan en la caché de escritura de "Chishm" son un puto cáncer y luego surgen problemas por todos los lados, desde por que puedes que estés solapando sectores entre particiones, hasta que se procede a escribir solapando datos con la propia caché, cuando no son otros bugs).

Realmente, estos días han sido un puto infierno para llegar aquí teniendo no solo que portar la librería, readaptarla, crear un ejemplo (para vosotros y en primera instancia, para probar las primeras funciones), si no que al mismo tiempo, adaptar primero Iris Manager y luego usarlo de banco de pruebas para pulir todos los problemas que han surgido, que un simple ejemplo, no podía mostrar (ese es otro fallo de muchos de los que hacen éste tipo de librerías.. que se limitan a hacerlas o portarlas, pero sin probarlas a fondo y por eso, luego heredas tu esos problemas... años después XD).

Uno ve cosas que de verdad, da ganas de mandarlo todo a paseo, por que no es normal (por ejemplo, ésta librería tenía un fallo al listar directorios que conseguí corregir... pero en el ejemplo de Wii hacían cosas raras... y eran para "disimular" esos fallos ¬_¬ : en vez de coger y arreglarlos, hacen esa chapuza, con lo cual me tengo que volver loco yo para encontrar donde petaba el tema ¬_¬) y encima, habrá que ver si fructifica de alguna manera (a ver que aplicaciones hay bajo PSL1GHT v2 que estén interesadas en soportar NTFS por motivos razonables).

Saludos
Muchas gracias por la aclaracion Estwald.
Es una pena que no podamos tenerlo funcionando desde el sistema, pero si se implementa en todas las aplicaciones poco a poco seria una verdadera maravilla.
Seguiria sin servir para ejecutar los backups, pero al menos es un gran paso para intercambiar datos entre el disco externo y el interno, que no es moco de pavo.

Mil gracias de nuevo.

PD: Si hablas con MLT dile que ya me di por vencido con el, que ya no le escribo mas, pero no entiendo su cambio de actitud conmigo que tuvo de la noche a la mañana. Al menos podria haberme dado una explicacion de porque no quiere contestarme ni nada de nada. En fin no voy a convertir esto en algo publico, para algo estan los MP.

Saludos.
Isma_OMG escribió:PD: Si hablas con MLT dile que ya me di por vencido con el, que ya no le escribo mas, pero no entiendo su cambio de actitud conmigo que tuvo de la noche a la mañana. Al menos podria haberme dado una explicacion de porque no quiere contestarme ni nada de nada. En fin no voy a convertir esto en algo publico, para algo estan los MP.

Saludos.


Llevo unos días que no hablo con él, después de meses sin hacerlo... pero sin saber de que va el tema, a veces, tenéis que entender que la gente necesita su espacio. Y a veces, ese espacio es casi infinito [+risas] .

No conozco el tema, pero te cuento como me siento yo y tal vez te sirva de referencia:

La mayoría de la gente tiene sus problemas y sus quehaceres diarios. Estos problemas pueden ser muy grandes y ser sobrellevados por uno como si no pasara nada (mientras que otros se hundirían) o pequeños (y tal vez el problema es que se le dan demasiada importancia y parecen mayores).

A esto se une que la programación y más la de este tipo consume muchas energías (y horas!) y que la scene, básicamente, consiste para uno en que el scener aporta todo o incluso más de lo que tiene o debería, y recibe poco o nada a cambio. Y aunque sea como hobby, uno echa el resto ahí... y eso acaba por agotar.

Todo esto genera unas cargas de estrés lógicas y cambios de comportamiento, que hace que veces uno no quiera ni leer los foros... y con menos razón contestar a la peña. Peña que muchas veces, te requieren para aconsejarte/sugerirte/pedirte que hagas no se que (sin darse cuenta de lo inoportuno del momento, o inadecuado del hecho), peña que te pide consejo/ayuda (lo cual puede ser imposible o pillarte a desgana en ese momento, pues a veces requiere que revises tus códigos fuentes o datos que tengas en un equipo diferente) y muy rara vez, alguien que como Evilnat, me pasa sus cambios (lo cual es útil: no me suelen "molestar" para indicarme, "mira este código fuente que han publicado". Sobretodo, esto es útil cuando se sabe que estoy en condición de retiro/semiretiro o que no me he pispado de ello, pero si lo hacen, es para mostrar algo que no es código fuente siquiera (¿Has visto que Multiman hace no se qué? ¿Por qué no lo implementas tu?. Pues... ¡por que no hay código fuente y/o no me sale de los cojones o tal vez no sepa como hacerlo!).

Hay gente, que por ejemplo, tiene interés en tener contacto conmigo por que de alguna forma se beneficia y por el contrario, a mi me supondría un trabajo extra. O incluso si no es así, requieren unas atenciones que no puedo o no tengo ánimo de dispensar (estoy seguro que MiralaTijera está diciendo: ¿por que no se conecta el cabrón de Estwald?. Pues chico, por que he estado de trabajo hasta las cejas y no me podía permitir perder la concentración ni para decir "hola": luego me conecto XD). Hay gente que en su momento, tenía sentido que tuviera contacto habitual con ellos, pero luego no: yo cambio, ellos cambian...

Diréis algunos, "no es cierto del todo que no obtienes nada a cambio con la scene": hay quien usa tus cosas (eso les beneficia a ELLOS XD), quien te aporta como Evilnat o Rancid-o (en realidad, no me ahorran el trabajo de portar cosas... PARA VOSOTROS XD), o Miralatijera (en realidad, me ha supuesto muchísimo más trabajo, ya sea para corregir/ añadir cosas.. que disfrutáis VOSOTROS), o mira, D_Skywalk es quien te hizo el relevo del Hermes Manager a Iris Manager (¿y que me ha supuesto si no un porrón de trabajo, a veces, por decisiones como, por ejemplo, lo de meter soporte de idiomas... que había que mejorar en lo posible? XD) o estas librerías que publicas aquí, que están hechas inicialmente por otros (y me han supuesto un montón de trabajo para arreglarlas, adaptarlas y por supuesto, darles uso XD)

El problema base, es la scene nunca sale gratis para el scener: es decir, los supuestos beneficios son todos gastos, puesto que cualquier aportación de otro que requiera trabajo por mi parte, es gasto que se acumula al gasto total (incluso si no tuviera que arreglar una librería, si la uso es para algo... que hay que hacer XD), que en mi caso, es enorme y necesitaría vidas enteras de ser compensado sin hacer nada XD : Iris Manager, si cuantificaramos el coste en horas trabajadas por mi parte sin valorarlas de forma extraordinaria, costaría muchos miles de euros... pero eso solo reflejaría una conversión de horas (y esfuerzos) de trabajo a euros. La solución es simplemente, no ser scener y eso explica por qué muchos lo dejan tarde o temprano XD

En realidad, la colaboración de otros, puede servir de incentivo (¡y por eso hay que odiarlos! [+risas] ) : por ejemplo, si nadie hubiera hecho una librería NTFS, yo no la hubiera portado. Pero al haber una y viendo posible portarla, lo he hecho lo mejor que podía, con un montón de curro eso si. O si D_Skywalk no hubiera decidido volver para rescatar Iris Manager, yo no me hubiera ofrecido para echarle una mano... y ¡que cantidad de curro me hubiera ahorrado!, ¿verdad? XD .

Todas estas cosas se acumulan... y en mi caso, el depósito, que no era pequeño precisamente, hace tiempo que ha desbordado varias veces.. y eso genera que tal vez uno no esté todo lo adecuado en ocasiones... sobre todo si hay que tener en cuenta que uno puede ser referencia para muchos, pero esos muchos, uno a uno, son muy difíciles de tratar e incluso lo que es peor, que a veces, cuando te diriges a uno en concreto, hay otros que se sienten molestos... incluso aunque no vaya con ellos, si es que estabas recriminando algo en concreto, o por que a ese si le diriges la palabra y a los otros no [+risas]

No digo esto para justificar nada en concreto, pero si para que veáis "elotrolado" como es: para algunos, la scene es divertida o emocionante, o satisfactoria, pero en mi caso concreto, a mi no me divierte que por ejemplo, una librería se me ponga a corromperme sectores por que no está bien hecha y comprometa con ella un montón de trabajo llevado a cabo en Iris Manager para implementarla, mas todo el trabajo empleada en la propia librería. Y que no sepas a veces por donde agarrar estos problemas... emoción ninguna, frustración, mucha :(.

¿Y satisfacción?. Pues debo confesar que estoy mas satisfecho por que ayer pude concluir en un punto en concreto, que por el hecho de haber logrado nada [+risas] : mas que un logro en si, es reducir los daños al mínimo, por que se parte de algo que debería ser factible a conseguirlo a pesar de todo.

De hecho, tal es el nivel de frustración, que hoy mismo ya he implementado una mejora en la librería: la podía haber hecho ayer, pues es muy simple (pero obviamente, no solo es modificar, si no hacer test de pruebas), pero es que en realidad, necesitaba acabar en un momento dado de una puñetera vez, para poder "soltar vapor" y ya de paso, que vosotros mismos podáis probar.

¿Que sucedería si encontrarais un bug?. Pues que supondría mas trabajo, lo cual es frustrante, sin saber que coño puede ser, o que tal vez, no pudiera reproducirlo, por lo que sería mas frustrante por ese mismo hecho y porque probablemente, sería mas trabajo tirado de forma inútil, para tratar de encontrar el problema).

Pensad también lo frustrante que es que tu implementes algo o unas mejoras y que luego venga el usuario típico diciendo "esto no funciona" [+risas]

Así que cada cual, lo afronta como puede: yo me he semiretirado, o lo que es lo mismo: sin decir que no voy a volver a aparecer, he dejado de estar activo durante meses... y sinceramente, lo de la librería NTFS lo tenía en la recámara pero pensé que otros podían hacerlo (y no solo no ha sido así, si no que encima, la librería fallaba y había que hacer mas cosas) y ahora he aprovechado "un rato" para meter una mejora que podría haber estado, por conocimientos necesarios, hecha hace meses... pero no tenía la disposición necesaria para hacerlo (necesitas desconectar, pasar de todo. Al menos hasta que llegue otro momento) y por el mismo motivo, estaba casi ausente de los foros (de EOL visito Miscelánea lo que más, a veces hecho un vistazo a las noticias y el foro de scene y softmods: poco más).

Y sobre MP, pues alguno los estuve sin ver mucho tiempo, por que pasé del tema y finalmente, no he contestado, ya sea por que no mereció la pena, o por otro motivo. Y creo que en el Git hay un polaco que quiere que añada su idioma: supongo que pensarán que soy un maleducado por que no contesto pero... si anuncié mi semiretiro es por que estas cosas pueden pasar y no deberían sorprender: llega un punto donde no puedes dar abasto a todo, simplemente y ya ni siquiera es cuestión de tomarte unos minutos para hacerlo, por que aunque los tenga, no tengo las ganas de hacerlo.

Esto que va sobre mí, no se hasta que punto puede aplicarse a MiralaTijera: creo que es interesante que lo exponga por que al menos, entenderéis como me puedo sentir yo y por que hago las cosas de una u otra manera...

Una cosa buena hacia vosotros de todo esto, es que como yo hace mucho que ya se estas cosas que estoy contando, las tengo bastante aceptadas en parte. Y aunque no puedo evitar la desgana y el odio de tener que pelearme con código conflictivo y matarme a currar [+risas] (y eso hace que a veces me cueste hasta escribir una línea), eso logra que siendo mi condición oficial casi siempre de retirado o semiretirado, haga cosas que no se esperan de mí y quizá, cuando menos se esperan [+risas]

En fin, no viene mal un poco de offtopic, sobre el topic XD

Saludos
Estwald:Personas como tu, no hay muchas(por desgracia).
Lo cierto es que no entiendo una mierda de lo que haces(lo digo en el buen sentido).
Siempre leo tus aportes y la verdad es que me quito el sombrero con los curracos que te pegas y todo desinteresadamente,eres mi idolo [beer]

Perdon por el Offtopic
Pues a mi la librería esta me parece una mierda [boma]
XD [careto?]

Te quiero mucho tío, y sabes que si te retiras mañana el iris seguirá vivo, por que hemos conseguido que mucha gente se implique :)
Estwald (no te voy a contar nada que no sepas) la programación es eso, una frustración continua. Pero al menos nosotros tenemos un fruto del que disfrutamos, yo estoy muy orgulloso de haber puesto mi granito de arena y de ver como funciona la app.
Mi objetivo fue no tener que usar el MM (por que no me salía de los c0jones) ya lo cumplimos hace tiempo, pero es que el Iris es ahora es mucho más es la p000ya [babas]

Yo no se cuanto mi trabajo me dejará disfrutarlo pero ya nos quedan como mucho un par de años de PS3, quizás un par de updates más de firmware y luego viene lo mejor... cuando Sony deje de jodernos por que estarán ocupados con su PS4 ;)

Un Saludo y estoy con Estwald que no se lo tomes a mal Isma, si no ha pasado nada simplemente dale espacio y el te lo agradecerá seguro.
Te entiendo muy bien Estwald, se lo frustrante que es que, cuando crees haber hecho algo bien, haya un pequeño fallo que lo mande todo al garete. Se lo que es hacer muchisimo mas de lo que deberias por los demas y encima "salir escaldado" (quizas no en los mismos ambitos, pero al fin y al cabo viene a ser lo mismo). Y se tambien que hay veces que uno no tiene ganas ni de respirar, hasta ahi te entiendo muy bien y CREEME, no se los demas, pero yo te agradezco infinitamente tus esfuerzos, tus sacrificios y tus sudores por traernos siempre cosas utiles que, para que a nosotros nos puedan parecer sencillas, han tenido que costarte muchos sudores y horas de trabajo a ti antes (y lo mismo que a ti a muchos otros sceners), eso no esta pagado con nada, solo puedo darte MIL Y UNA GRACIAS.

Tu mensaje me ha servido para entrar en razon y darme cuenta de que MLT tambien es humano y quizas necesite "descansar de nosotros" de vez en cuando.
Solo he querido decirle en todo este tiempo que cuente conmigo para ayudar en lo que pueda y saber que tal andaba, ya que la ultima vez que hable con el se encontraba regular de salud si mal no recuerdo y estaba liado reparando su coche, y aun asi me echo una mano con mi consola, yo tan solo le pedi consejo y el me parcheo mi volcado de la R-Flash y me explico con todo detalle el proceso. Eso para mi no tiene precio y se lo agradezco infinitamente. Por eso quiero decir (Por si lee esto) que el resto de veces que le he hablado (quitando una que estaba desesperado y pretendia hacerle una consulta como experto) solo queria interesarme por el, agradecerle sus esfuerzos personalmente y prestarle mi ayuda en lo que fuese posible.

Asi que bueno, mil gracias a los 2 y espero que las aguas vuelvan a su cauce,

Saludos.
Grande Estwald como siempre , como scener vales oro , pero como persona es incalculable.
Gracias por el trabajo chicos.
Bueno, actualizado el hilo con la nueva librería que ademas de NTFS, soporta particiones ext2/3/4 en modo de lectura (la escritura se puede habilitar... pero es muy, pero que muy lenta (de tardar unos cuantos segundos en crear un fichero vacío)

La librería se maneja exactamente igual solo que ahora las particiones ext se montarán como "ext0", "ext1", ..., "ext6" y serán accesibles como "ext0:" o "/ext0:"

PD: No tengo previsión alguna en arreglar la escritura. De hecho, ya le he dedicado mucho mas tiempo del que pudiera parecer y las particiones ext se escapan de mi alcance. Pero bueno, entre no tener nada, a tener la posibilidad de leer los dispositivos de una forma mas que decente y tener unificada en una sola librería todo el tema funcionando, creo que podemos estar mas que satisfechos.

Saludos
Madre mia pero como puedes hacerlo tan rapido?
Eres un autentico crack.

Mil gracias.

Un saludo tio.
Estwald escribió:
Llevo unos días que no hablo con él, después de meses sin hacerlo... pero sin saber de que va el tema, a veces, tenéis que entender que la gente necesita su espacio. Y a veces, ese espacio es casi infinito [+risas] .

No conozco el tema, pero te cuento como me siento yo y tal vez te sirva de referencia:

La mayoría de la gente tiene sus problemas y sus quehaceres diarios. Estos problemas pueden ser muy grandes y ser sobrellevados por uno como si no pasara nada (mientras que otros se hundirían) o pequeños (y tal vez el problema es que se le dan demasiada importancia y parecen mayores).

A esto se une que la programación y más la de este tipo consume muchas energías (y horas!) y que la scene, básicamente, consiste para uno en que el scener aporta todo o incluso más de lo que tiene o debería, y recibe poco o nada a cambio. Y aunque sea como hobby, uno echa el resto ahí... y eso acaba por agotar.

Todo esto genera unas cargas de estrés lógicas y cambios de comportamiento, que hace que veces uno no quiera ni leer los foros... y con menos razón contestar a la peña. Peña que muchas veces, te requieren para aconsejarte/sugerirte/pedirte que hagas no se que (sin darse cuenta de lo inoportuno del momento, o inadecuado del hecho), peña que te pide consejo/ayuda (lo cual puede ser imposible o pillarte a desgana en ese momento, pues a veces requiere que revises tus códigos fuentes o datos que tengas en un equipo diferente) y muy rara vez, alguien que como Evilnat, me pasa sus cambios (lo cual es útil: no me suelen "molestar" para indicarme, "mira este código fuente que han publicado". Sobretodo, esto es útil cuando se sabe que estoy en condición de retiro/semiretiro o que no me he pispado de ello, pero si lo hacen, es para mostrar algo que no es código fuente siquiera (¿Has visto que Multiman hace no se qué? ¿Por qué no lo implementas tu?. Pues... ¡por que no hay código fuente y/o no me sale de los cojones o tal vez no sepa como hacerlo!).

Hay gente, que por ejemplo, tiene interés en tener contacto conmigo por que de alguna forma se beneficia y por el contrario, a mi me supondría un trabajo extra. O incluso si no es así, requieren unas atenciones que no puedo o no tengo ánimo de dispensar (estoy seguro que MiralaTijera está diciendo: ¿por que no se conecta el cabrón de Estwald?. Pues chico, por que he estado de trabajo hasta las cejas y no me podía permitir perder la concentración ni para decir "hola": luego me conecto XD). Hay gente que en su momento, tenía sentido que tuviera contacto habitual con ellos, pero luego no: yo cambio, ellos cambian...

Diréis algunos, "no es cierto del todo que no obtienes nada a cambio con la scene": hay quien usa tus cosas (eso les beneficia a ELLOS XD), quien te aporta como Evilnat o Rancid-o (en realidad, no me ahorran el trabajo de portar cosas... PARA VOSOTROS XD), o Miralatijera (en realidad, me ha supuesto muchísimo más trabajo, ya sea para corregir/ añadir cosas.. que disfrutáis VOSOTROS), o mira, D_Skywalk es quien te hizo el relevo del Hermes Manager a Iris Manager (¿y que me ha supuesto si no un porrón de trabajo, a veces, por decisiones como, por ejemplo, lo de meter soporte de idiomas... que había que mejorar en lo posible? XD) o estas librerías que publicas aquí, que están hechas inicialmente por otros (y me han supuesto un montón de trabajo para arreglarlas, adaptarlas y por supuesto, darles uso XD)

El problema base, es la scene nunca sale gratis para el scener: es decir, los supuestos beneficios son todos gastos, puesto que cualquier aportación de otro que requiera trabajo por mi parte, es gasto que se acumula al gasto total (incluso si no tuviera que arreglar una librería, si la uso es para algo... que hay que hacer XD), que en mi caso, es enorme y necesitaría vidas enteras de ser compensado sin hacer nada XD : Iris Manager, si cuantificaramos el coste en horas trabajadas por mi parte sin valorarlas de forma extraordinaria, costaría muchos miles de euros... pero eso solo reflejaría una conversión de horas (y esfuerzos) de trabajo a euros. La solución es simplemente, no ser scener y eso explica por qué muchos lo dejan tarde o temprano XD

En realidad, la colaboración de otros, puede servir de incentivo (¡y por eso hay que odiarlos! [+risas] ) : por ejemplo, si nadie hubiera hecho una librería NTFS, yo no la hubiera portado. Pero al haber una y viendo posible portarla, lo he hecho lo mejor que podía, con un montón de curro eso si. O si D_Skywalk no hubiera decidido volver para rescatar Iris Manager, yo no me hubiera ofrecido para echarle una mano... y ¡que cantidad de curro me hubiera ahorrado!, ¿verdad? XD .

Todas estas cosas se acumulan... y en mi caso, el depósito, que no era pequeño precisamente, hace tiempo que ha desbordado varias veces.. y eso genera que tal vez uno no esté todo lo adecuado en ocasiones... sobre todo si hay que tener en cuenta que uno puede ser referencia para muchos, pero esos muchos, uno a uno, son muy difíciles de tratar e incluso lo que es peor, que a veces, cuando te diriges a uno en concreto, hay otros que se sienten molestos... incluso aunque no vaya con ellos, si es que estabas recriminando algo en concreto, o por que a ese si le diriges la palabra y a los otros no [+risas]

No digo esto para justificar nada en concreto, pero si para que veáis "elotrolado" como es: para algunos, la scene es divertida o emocionante, o satisfactoria, pero en mi caso concreto, a mi no me divierte que por ejemplo, una librería se me ponga a corromperme sectores por que no está bien hecha y comprometa con ella un montón de trabajo llevado a cabo en Iris Manager para implementarla, mas todo el trabajo empleada en la propia librería. Y que no sepas a veces por donde agarrar estos problemas... emoción ninguna, frustración, mucha :(.

¿Y satisfacción?. Pues debo confesar que estoy mas satisfecho por que ayer pude concluir en un punto en concreto, que por el hecho de haber logrado nada [+risas] : mas que un logro en si, es reducir los daños al mínimo, por que se parte de algo que debería ser factible a conseguirlo a pesar de todo.

De hecho, tal es el nivel de frustración, que hoy mismo ya he implementado una mejora en la librería: la podía haber hecho ayer, pues es muy simple (pero obviamente, no solo es modificar, si no hacer test de pruebas), pero es que en realidad, necesitaba acabar en un momento dado de una puñetera vez, para poder "soltar vapor" y ya de paso, que vosotros mismos podáis probar.

¿Que sucedería si encontrarais un bug?. Pues que supondría mas trabajo, lo cual es frustrante, sin saber que coño puede ser, o que tal vez, no pudiera reproducirlo, por lo que sería mas frustrante por ese mismo hecho y porque probablemente, sería mas trabajo tirado de forma inútil, para tratar de encontrar el problema).

Pensad también lo frustrante que es que tu implementes algo o unas mejoras y que luego venga el usuario típico diciendo "esto no funciona" [+risas]

Así que cada cual, lo afronta como puede: yo me he semiretirado, o lo que es lo mismo: sin decir que no voy a volver a aparecer, he dejado de estar activo durante meses... y sinceramente, lo de la librería NTFS lo tenía en la recámara pero pensé que otros podían hacerlo (y no solo no ha sido así, si no que encima, la librería fallaba y había que hacer mas cosas) y ahora he aprovechado "un rato" para meter una mejora que podría haber estado, por conocimientos necesarios, hecha hace meses... pero no tenía la disposición necesaria para hacerlo (necesitas desconectar, pasar de todo. Al menos hasta que llegue otro momento) y por el mismo motivo, estaba casi ausente de los foros (de EOL visito Miscelánea lo que más, a veces hecho un vistazo a las noticias y el foro de scene y softmods: poco más).

Y sobre MP, pues alguno los estuve sin ver mucho tiempo, por que pasé del tema y finalmente, no he contestado, ya sea por que no mereció la pena, o por otro motivo. Y creo que en el Git hay un polaco que quiere que añada su idioma: supongo que pensarán que soy un maleducado por que no contesto pero... si anuncié mi semiretiro es por que estas cosas pueden pasar y no deberían sorprender: llega un punto donde no puedes dar abasto a todo, simplemente y ya ni siquiera es cuestión de tomarte unos minutos para hacerlo, por que aunque los tenga, no tengo las ganas de hacerlo.

Esto que va sobre mí, no se hasta que punto puede aplicarse a MiralaTijera: creo que es interesante que lo exponga por que al menos, entenderéis como me puedo sentir yo y por que hago las cosas de una u otra manera...

Una cosa buena hacia vosotros de todo esto, es que como yo hace mucho que ya se estas cosas que estoy contando, las tengo bastante aceptadas en parte. Y aunque no puedo evitar la desgana y el odio de tener que pelearme con código conflictivo y matarme a currar [+risas] (y eso hace que a veces me cueste hasta escribir una línea), eso logra que siendo mi condición oficial casi siempre de retirado o semiretirado, haga cosas que no se esperan de mí y quizá, cuando menos se esperan [+risas]

En fin, no viene mal un poco de offtopic, sobre el topic XD

Saludos


Mi máximo respeto, ni idea de lo que te suponía todo.

Ójala hubiese más gente con esa garra y fuerza (no en la scene o PS3 o este mundillo, digo en general, porque muchos problemas de los que hay hoy en día en algunos sectores posiblemente estarían en vías de extinción).

Salud, y ánimo/suerte con todos tus proyectos tío.
Hacía mucho que ni escribía ni me metía por la scene de Ps3 pero la ocasión merece que vuelva a escribir.
Muy buen avance !! Gracias por tantos y tantos trabajos tuyos y en diversas consolas.

(perdón por el offtopic, acabarás pillandote la Ps4 ?)
Frange escribió:(perdón por el offtopic, acabarás pillandote la Ps4 ?)


Hola,

veo imposible que me pille la PS4 o hasta un PC nuevo, que falta me haría (de hecho, el que tengo es muy viejo y ahora mismo para programar, me estoy dejando los ojos en un monitor chiquitillo TFT antiguo, por que el que tenía mas moderno petó).

Ya sabéis que estoy en situación de desempleo de larguísima duración y desde hace unos meses, no entra ni un solo euro en casa, por lo que no está la cosa como para pensar en consolitas, ni todas esas pijadas que van saliendo últimamente: ahora mismo, ya el hecho de tener internet es un lujo que de momento, me puedo permitir pero que tal vez algún día, si esto sigue así, me perdáis la pista por que decido prescindir también de esto...

Como dije en el otro post, la gente a veces suele tener una idea equivocada de las personas, lo cual es lógico por que no nos conocemos o solo nos conocemos del foro y en parte.

Saludos
Estwald yo tengo un monitor de Tft 17' muerto de risa, si te hace papel dímelo y es tuyo. Es lo mínimo que puedo ofrecerte como muestra de agradecimiento.

Ya me dirás si lo quieres.

Aprovecho para darte las gracias por tu esfuerzo, la scene no sería lo mismo sin tus aportes. GRACIAS!
Estwald, como andas? Compile la libreria y despues el ejemplo y resulta que al ejecutar el ejemplo mediante ps3loadx se cuelga la ps3....
Estaba intentando hacer un explorador de archivos con esta libreia.

Muchas graicas
racinglocura07 escribió:Estwald, como andas? Compile la libreria y despues el ejemplo y resulta que al ejecutar el ejemplo mediante ps3loadx se cuelga la ps3....
Estaba intentando hacer un explorador de archivos con esta libreia.

Muchas graicas


Si estás intentando ejecutar el EBOOT.BIN que genera, es NPDRM... por lo que no vale. Y ahora mismo no recuerdo si el .self que genera es bueno.

Yo lo que tengo instalado es un programa de FTP y lo que hago es pasar el EBOOT.BIN a un PKG que uso de pruebas y luego ejecuto ese PKG (me es mucho más rápido. De hecho, cuando trabajo en Iris Manager, uso el propio Iris para pasar el EBOOT.BIN nuevo que lo reemplaza [+risas] )

Sobre el tema del monitor, no os preocupéis: es solo poner en conocimiento de que ya simplemente en trastos, que es lo último que tiene prioridad hoy día para mi, hay muchas cosas antes de una PS4 que no va a ser otra cosa que un PC capado con juegos que costarán un riñón XD
Un PC capado y de medio pelo. Yo tengo por ahí un monitor de 15 pulgadas aunque si me pongo seguro que podría encontrar algo mejor.

Un saludo.
Bueno, he hecho dos cosillas:

Por un lado, he eliminado de github "libntfs" para que no se preste a confusiones.

Por otro lado, he proporcionado soporte para las funciones estándar de I/O en la librería libntf_ext.

¿Y esto que quiere decir?

Pues que si añadís al principio, en vuestro main() la función "NTFS_init_system_io();" a partir de ahí (y una vez montados los dispositivos, claro), podréis usar fopen(), fclose(), fread(), opendir(), readdir(),closedir(), mkdir()... entre otras, de forma directa ;) (Ver el PS3_README.txt para mas detalles de las funciones soportadas).

Con esto se facilitara mucho añadir este soporte a otros programas que tiran de dichas funciones estandar de libc ;)

PD: He mandado un mail al que lleva Showtime, explicándole como va esto, por si le interesa añadirlo XD
Saludos
Gracias por la librería!!

Una cosa para borrar ficheros que función hay que utilizar por que no la veo jajajajja

Seria así no?

int ps3ntfs_remove(const char *path);


Salu2
woulf_alpha escribió:Gracias por la librería!!

Una cosa para borrar ficheros que función hay que utilizar por que no la veo jajajajja

Seria así no?

int ps3ntfs_remove(const char *path);


Salu2


La función:

int ps3ntfs_unlink(const char *name) ;

Cumple ese cometido y sirve tanto para ficheros como para directorios (ojo con esto, aunque se supone que el directorio debe de estar vacío para ser borrado XD)

EDIT:

Si inicializas con NTFS_init_system_io(), puedes usar unlink(path); solo para ficheros y rmdir(path) para los directorios (ambas en unistd.h).
gracias por la libreria Estwald,

haber si saco tiempo de algun lao y le puedo echar un vistazo.
Estwald escribió:
woulf_alpha escribió:Gracias por la librería!!

Una cosa para borrar ficheros que función hay que utilizar por que no la veo jajajajja

Seria así no?

int ps3ntfs_remove(const char *path);


Salu2


La función:

int ps3ntfs_unlink(const char *name) ;

Cumple ese cometido y sirve tanto para ficheros como para directorios (ojo con esto, aunque se supone que el directorio debe de estar vacío para ser borrado XD)

EDIT:

Si inicializas con NTFS_init_system_io(), puedes usar unlink(path); solo para ficheros y rmdir(path) para los directorios (ambas en unistd.h).


Muchas gracias por la info!

Otra cosa podíamos incluir una función para obtener el espacio libre y utilizado del usb?

Salu2
woulf_alpha escribió:
Otra cosa podíamos incluir una función para obtener el espacio libre y utilizado del usb?

Salu2


Tienes la función int ps3ntfs_statvfs(const char *path, struct statvfs *buf);

El tipo se define en ntfs.h, por cierto.

Si quieres saber el espacio libre, usa algo asi:

struct statvfs vfs;

ps3ntfs_statvfs("ntfs0:/", &vfs);

u64 free_space = ((u64)vfs.f_bsize * vfs.f_bfree); // en bytes

Supongo que el espacio total sería usando vfs.f_blocks;

En las librerías C que yo tengo, no hay soporte de statvfs (que yo sepa) y también tengo que hacer notar que esta función no está implementada para dispositivos del sistema (por el momento al menos)

Saludos
27 respuestas