PDA

Ver la versión completa : TUTORIAL BASICO SCRIPTING PRACTICO para Linux GP2x



KaosOverride
06/12/2005, 06:15
Os dejo un cutre-tutorial que he empezado sobre scripting linux practico para GP2x, para los que les de repelus meterse en ello. Mas que nada porque creo k algun programa k nos de problemas comentados en el tutorial pueden solventarse por uno mismo

Lo ire ampliando poco a poco

EDIT: tenia aun sin arrglar lo de los exec :rolleyes: y a ver si saco un poco de tiempo para ampliarlo con alguna "magia" pa la GP2x :D


TUTORIAL BASICO SCRIPTING PRACTICO para Linux GP2x


Bueno, a ver si esto le resulta util a alguien. Sobretodo esta orientado a los no-linuxeros, o los poco-linuxeros ;)

Os presento un pequeño tutorial para poder "interactuar" un poco mas con la GP2x, se trata de como realizar "scripts" que nos faciliten un poco la vida con la consola, incluso solucionar "problemas" con algunos programas y/o juegos. Los "scripts" son ficheros de texto con ordenes para procesar automaticamente, como si los teclearamos nosotros. Efectivamente, es la version Unix de los ficheros .BAT del DOS...

A nivel de ejecutables, la consola conoce .GPE (ejecutable de juego) y .GPU (utilidad) accesibles cada uno desde su menu correspondiente. Ambos son igual de ejecutables, sean binario o script. La diferencia es que con esto los separamos en dos "clases" y la consola solo ve el adecuado a cada menu. Por tanto, navegando con el lanzador de juegos, solo veremos .GPE, y por el de utilidades, solo veremos .GPU. A nivel practico, podrian ser todos GPE o GPU que los podriamos lanzar siempre desde el menu correspondiente de la consola.

Me voy a abstraer de todo el rollo de los permisos de Linux de ejecucion, propietarios, etc que no viene al caso...

1-Scripts y binarios: Matrimonio de conveniencia

Que diferencia hay entre un ejecutable binario y un ejecutable script? Lo mas evidente, es sobretodo y por regla general, el tamaño... Si habeis mirado el 2xQuake, habreis visto un QUAKEBIN.GPE y un QLAUNCH.GPE, el primero mega y pico y el segundo apenas 1 kilobyte... Si, el QLAUNCH.GPE es un script que lanza el QUAKEBIN.GPE y despues nos devuelve al menu... Podeis abrirlo con el editor de texto que mas rabia os de para verlo (Pero para editarlo, ojo!!! vereis algo mas abajo)

Porque complicarnos tanto? Porque el ejecutable del QUAKE no puede relanzar el menu de la GP2x por si solo, no es "GP2x friendly". Con esto digo que un ejecutable pensado totalmente para GP2x, deberia ser capaz de relanzar el menu de la consola, cosa que un port directo o un proyecto a medio desarrollar, no hara por si solo nunca si no lo preparamos para ello, sea a nivel de codigo fuente, o con ayuda de un script.

No "adaptar" supondra que al salir del programa, se queda la consola "frita" y tendremos que apagar y encenderla. Para haceros una idea, es como si sales de un juego en MS-DOS, no tienes teclado y se queda el sistema esperando que le teclees ordenes... Tambien mencionar que si se queda el ultimo frame del juego, es porque ha petado y/o no se ha limpiado el frame buffer (pontalla grafica) y por tanto no hay proceso que toque la matriz de la pantalla, nos da la sensacion de que se ha "colgado" cuando realmente hay un sistema operativo por debajo esperando que le metamos ordenes por un teclado (ejem).

Aqui es donde nos ayudan los scripts... ejecutando el menu segun la aplicacion (juego, utilidad) se cierre, casque, muera, o salga.




0.1-Posible editor para Windows:



Para editar los scripts, desde Linux o MacOsX no tendreis problema, ya que son Unix ambos a la hora de tratar ficheros de texto ASCII, pero en PC tenemos un problema... Los saltos de linea son distintos... Solucion, os adjunto en ZIP el pico, un editor intuitivo de Unix, compilado para consola Windows. Es facilito, podeis asociar las extensiones GPE y GPU al pico en windows, o sino ejecutarlo y dentro pulsais CONTROL+R (abajo en la ayuda pone READ FILE) y CONTROL+T para navegar por los ficheros (El ".." es ir un directorio hacia arriba) e ir a la SD directamente. Una vez seleccionado el fichero, lo editais tan campantes, cuando habeis acabado pulsais CTRL+X y dais a Y para grabar los cambios. CONTROL+K corta una linea (o varias seguidas si dais repetidamente a CTRL+K) y CTRL+U pega la/las linea/lineas. Espero que os funcione bien. Linux puede usar este u otros editores, y el terminal de MacOSx tiene tambien el pico ^^




1.0-Scripts basicos:


1.1-Caso sencillo: Ejecutar aplicacion, volver al menu...



Tenemos por ejemplo el Pong de Andrew Williams, un ejecutable binario llamado PONG.GPE que al darle al start para salir, "cuelga" la consola.

Si os fijais, hay un ejecutable script PONGLAUNCHER.GPU (si, tendreis que lanzarlo desde el menu de Utilidades) que lanza el juego y al dar a start sale al menu... Veamos como funciona esa "magia"

-----------------
#!/bin/sh
#
# Change the parameter below for a harder or easier game
# 1=very easy; 8=very hard
#
./pong.gpe 5
#
#Re-load the GP2X menu on exit
cd /usr/gp2x
./gp2xmenu
-----------------

Asusta??? Vamos a resumirlo al caso que nos ocupa: lanzar y volver al menu:


-----------------
#!/bin/sh
#
./pong.gpe
#Re-load the GP2X menu on exit
cd /usr/gp2x
./gp2xmenu
-----------------

Que tambien funcionara sin problemas. Veamos que hace:

Las lineas que empiezan por # son comentarios, son ignorados, podemos prescindir de ellas, si bien la primera, #!/bin/sh, suele decir al sistema con que shell hay que ejecutarla (Si, en MS-DOS, de serie solo teniais el COMMAND.COM... En Linux/Unix hay muchas shells: sh, bash csh etc..., cada una con su propia sintaxis)

El ./pong.gpe lanza el ejecutable binario, el ./ es porque el "." significa "el propio directorio/carpeta en el que estas" por tanto ./pong.gpe es "ejecuta el binario pong.gpe en el mismo directorio/carpeta en el que estas ahora". Siempre se asume el directorio local, el mismo donde se aloja el script.

El cd /usr/gp2x es un cambiar directorio/carpeta (Usare directorio a partir de ahora) a donde estan los ejecutables de los menus de la consola (Si, eso esta en la memoria NAND)

El ./gp2xmenu es para lanzar el menu de la consola (Volvemos a nuestro menu, oeeee oeeeee!!!)

Veis que la cosa entonces se resume a:

./pong.gpe Lanza el ejecutable en el mismo directorio del script
cd /usr/gp2x Nos desplaza al directorio de los menus de la consola
exec ./gp2xmenu Lanza el menu

Facil? Espero que si ^^




1.2-Caso especial 1: Paso de parametros,
(lo que no puedes hacer desde el JoyPad de tu GP2x)



En el anterior habeis visto que se lanza un ejecutable, y para volver al menu lo relanzamos desde el script al salir del programa. Pero hemos trabajado sobre el script original simplificado... Al principio os habia puesto el original donde se pasa un numero para ajustar la velocidad del juego:

# Change the parameter below for a harder or easier game
# 1=very easy; 8=very hard
./pong.gpe 5

Por tanto, poniendo un numerito al final, del 1 al 8, cambiais la velocidad... es un parametro.

Cojamos otro de los proyectos existentes para verlo mas claro: El emulador de Sega Master System (Gracias Efegea por el trabajo que te has tomado)

Tenemos estos ficheros en el directorio (carpeta?) del emulador en la SD:

sms_dll : Ejecutable binario SIN la extension (no aparece en el lanzador de ejecutables)
smsplus2x.gpe: Script de lanzamiento del emulador
rom.sms: Una rom cualquiera del sistema emulado.

smsplus2x.gpe tiene este contenido:

-----------------
./sms_sdl rom.sms
cd /usr/gp2x/
/usr/gp2x/gp2xmenu
-----------------

Aqui se lanza el emulador sms_sdl y se le pasa de parametro la ROM del juego correspondiente. Despues hace el clasico ejecutado de vuelta del menu...

Por tanto, podeis duplicar el smsplus2x.gpe con distitos nombres, y poner en cada uno una ROM distinta, y tener varios lanzadores para cada ROM...

Asi podeis tener:
juego1.gpe
juego2,gpe
juego3.gpe, cambiando en cada gpe, el rom.sms con el juegox.sms correspondiente

Es una chapuza pero es la forma de tener mas de 1 rom sin tener que renombrarlas desde el PC...

Por ciero... os habeis dado cuenta??? sms_sdl .... falta algo... NO TIENE EXTENSION .GPE . Por tanto... No es visible en el lanzador de juegos ni utilidades de la consola, pero sigue siendo ejecutable desde los scripts

Es un buen sistema para ocultar los ejecutables que NECESITAN parametros (En este caso una ROM) o los que no vuelven al menu por si solo, dejando solo visible el script, anulando la posibilidad de lanzar el binario por accidente y bloquear la consola (y ahorrarnos el apagar y encender)




1.3-Caso especial 2: Rutas absolutas



En algunos casos podemos encontrarnos que por el motivo que sea, no se usa la forma de ejecutar "en el mismo directorio que el script", o que el script nos fuerce a instalar el programa en una ubicacion determinada (Raiz de la SD, dentro de una carpeta en la raiz que se debe llamar FULANITO y no otra cosa, etc...). Esto es porque esta hecho con rutas absolutas...

Ejemplo: 2xQuake1

Script: QLAUNCH.GPE (Script resumido, luego os explicare porque)

-----------------
cd /mnt/sd/quake/
/mnt/sd/quake/quake.gpe
cd /usr/gp2x/
exec /usr/gp2x/gp2xmenu
-----------------

Por partes... Linux no tiene "letras de unidad", tiene un sistema de archivos unico llamado "/" y de hay cuelga todo lo demas... Cualquier otra particion/disco, se cuelga de un subdirectorio. Por conveniencia es en /mnt donde van a estar esos directorios del que se accede a cada otro disco/particion. Por tanto, la raiz de la SD, esta en /mnt/sd/. En ese directorio esta todo el contenido de la SD...

Como veis, este script nos obliga a instalar el juego EN LA RAIZ DE LA SD! Mal no esta, pero quien es un poco quisquilloso querra cambiarlo al directorio juegos y ahi dentro el directorio quake... no? :) Asi no petamos de directorios la raiz de una SD grandota...

Naaa, es facil... Supongamos el directorio JUEGOS en la raiz de la SD, y dentro el directorio QUAKE... Queda tal que asi:

-----------------
cd /mnt/sd/juegos/quake/
/mnt/sd/juegos/quake/quake.gpe
cd /usr/gp2x/
exec /usr/gp2x/gp2xmenu
-----------------

Que se podria usar el caso 1.1?? Podria ser, pero el script viene tal que asi, lo mismo nos pasa con el rockdogert o el sopwith_camel, que nos obliga a instalarlo en la raiz de la SD

Podemos corregir las rutas (forzar otra ubicacion) o reducir el script al caso primero, el sencillo

-----------------
./quake.gpe
cd /usr/gp2x/
exec /usr/gp2x/gp2xmenu
-----------------

:)

El quake da mucho jugo con esto de los scripts... es un ejecutable enteramente parametrizable...

-game MOD Nos permite cargar un MOD del quake (Gente se curro en su dia
expansiones y/o juegos nuevos)
-nosound No lo he probado en la GP pero en el PC anulaba el audio
(Mas F/PS??)
etc...

El interesante es el -game MOD, a buscar MODs single-player del quake!!!

Otra opcion es renombrar el ejecutable BINARIO a quake (sin extension) y editar el script:

-----------------
cd /mnt/sd/juegos/quake/
/mnt/sd/juegos/quake/quake
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu
-----------------
Por ejemplo.... Asi ocultais el binario que no llega al menu por si mismo...




1.4-La verdad esta ahi...

Bueno, la verdad es que os he mentido un poco... Vereis:

Script real del 2xQuake

-----------------
mount /mnt/sd -o remount,sync
cd /mnt/sd/quake/
/mnt/sd/quake/quake.gpe
mount /mnt/sd -o remount,async
cd /usr/gp2x/
exec /usr/gp2x/gp2xmenu
-----------------

Jarl!!!! y esas dos lineas "MOUNT"???

Script real del SMS emu de Efegea:

-----------------
mount -o remount,sync /mnt/sd
sync
./sms_sdl rom.sms
cd /usr/gp2x/
sync
exec /usr/gp2x/gp2xmenu
-----------------

Mas "MOUNT" y.... "SYNC"???? Esto que es? bueno.. Por partes..

MOUNT es la orden que se usa para "montar" los discos o particiones auxiliares a un directorio del sistema de archivos. Los parametros a groso modo que se observan en estos usos concretos son remount y sync. son para remontar la SD (/mnt/sd) en modo sincrono (Cada escritura se escribe IPSO FACTO, no se cachea en un buffer de memoria para grabar despues). el remount async nos deja la SD como estaba... cacheable la escritura (La verdad es que ahorra intentos de escritura, al grabar varios cambios de golpe)

SYNC es una orden que se usa para grabar IPSO FACTO los buffers de escritura de disco, en cada disco/particion. Esto es, sincronizar el contenido fisico con el que deberia tener (Pueden haber datos pendientes de escritura al usar modo asincrono)

Nesitemos o no esas ordenes, estan ahi, y biene bien que sepamos que existen y que hacen... Asi sabremos si sobran, hay que dejarlas o hay que tocarlas... ;)

1.5- RESUMEN SCRIPT BASICO

Ahora sabemos:
-Poner comentarios en los scripts ( #Esto es un comentario )
-Lanzar un binario y volver al menu, cuando este programa no deberia poder hacerlo, gracias a scripts
-Lanzar un binario con parametros
-Multiples scripts para multiples parametros (Roms sin menu selector, Mods de quake, parametros numericos, etc)
-Entender rutas absolutas (Ubicacion de la SD en el sistema de archivos Linux, /mnt/sd) y cambios de directorio ( cd directorio o cd /dir1/dir2 )
-No asustarnos con ordenes que aun no conocemos (Mount, y sync en este caso)

En el siguiente capitulo haremos algunas magias con scripts ;) Espero que este os haya ayudado a solventar algun problemita que os haya dado algun ejecutable de la GP2x ;)

pakoito
06/12/2005, 06:27
Aplauso, aplauso!!!!

(oye y no podrias hacerme tu el examen de scripting de la uni? xD

Puck2099
06/12/2005, 06:40
Solo decirte que te ha quedado genial :)

Había cosillas que explicas que no tenía muy claras hasta leer tu tutorial.

Muchas gracias :brindis:

ArTo
06/12/2005, 06:52
Muy bueno Kaos, espero ansioso el siguiente capítulo :brindis:

Saludos...

johnnypalmera
06/12/2005, 07:00
una pequeña correción: en MacOsX tampoco se pueden editar los ficheros ascii a pelo como en linux, ya que utiliza otro carácter para el salto de linea, por defecto:
Windows: CR+LF (Retorno de carro + Alimentación de linea)
Linux: CR (Retorno de Carro)
MacOSX: LF (Alimentación de línea)

Pero bueno, es fácilmete solventable trasteando un poco con las opciones de los editores.

KaosOverride
06/12/2005, 08:07
Por eso comentaba que el MacOSx trae tb el pico de serie (Al menos el G4 de mi curro asi lo trae...) y lo edita "guay" ;)

miq01
06/12/2005, 08:10
Buenísimo, el tutorial. Muchas gracias.

Aunque hay algo que no he pillado. Creo que entiendo la diferencia entre sync y async: el primero permite grabar en la SD cada vez que se hace una petición de escritura, mientras que el segundo con cada petición escribe en un buffer memoria, y al final traspasa toda esa información a disco. Si es así, ¿cuál es la diferencia a efectos prácticos? ¿Es más aconsejable lo primero o lo segundo? ¿O depende del caso?

KaosOverride
06/12/2005, 08:13
Con el async escribe "cuando puede" y no al momento... Fijate que en un lector de tarjetas si sacas la SD el ordenador se queja que no has desconectado (expulsado) la tarjeta antes de sacarla, ya que asi se volcaria lo que falta por escribir y no perderias datos no grabados...Apaños de los sistemas operativos para ganar rendimiento a costa de no escribir fisicamente al momento ;)

Efectivamente, depende del caso, si necesitas tiempo real, o rendimiento... El quake por lo visto necesita tiempo real, proque alguien se debio de dar cuenta que apagando a lo bonzo 10 segundos de salvar una partida, al encender la consola, perdia el contenido ;) Para esto tambien valdria un sync al salir del binario, pero imagina que estas jugando, grabas partida, y apagas de golpe... bendito remount -o sync ;)

miq01
06/12/2005, 08:22
Pillado del todo. :) Muchas gracias de nuevo.

LukStarkiller
06/12/2005, 08:45
Joer me parece haber vuelto al año enq ue estudie Linux XD

Juer ahora me doy cuenta que deberia haber prestado as atencion en clase ¬¬U

Oye en la GP2X que tipo de compatibilidad tiene con los comandos y archivos de linux, vaya que que le han añadido al linux de la GP2X aparte del kernel basico.

thanatos
06/12/2005, 18:22
Tengo dos (2) dudas.

Según eso, el script de efegea después de salir del emulador deja el remount,sync, ¿no? El de Qake lo vuelve a dejar en async (que entiendo que es lo habitual). ¿Sería recomendable volver a dejarlo en async en el caso de efegea?

También está el asunto del límite de lecturas y escrituras de una SD (entre 150.000 y 200.000 cada bloque). ¿Puede ser que usar el modo sync reduzca la vida de la SD?

Y otra. Si uno hace un dir no se verá porque no hay stdout. ¿Podría crearse un fichero con la salida de los comandos?

Por lo demás, muy bueno el tutorial, tanto para nuevos como para 'olvidadizos' (XDD) del linux como yo.

Puck2099
06/12/2005, 18:39
Y otra. Si uno hace un dir no se verá porque no hay stdout. ¿Podría crearse un fichero con la salida de los comandos?

¿Has probado con "ls > fichero.txt" ?

Saludos

efegea
06/12/2005, 18:47
Tengo dos (2) dudas.

Según eso, el script de efegea después de salir del emulador deja el remount,sync, ¿no? El de Qake lo vuelve a dejar en async (que entiendo que es lo habitual). ¿Sería recomendable volver a dejarlo en async en el caso de efegea?

También está el asunto del límite de lecturas y escrituras de una SD (entre 150.000 y 200.000 cada bloque). ¿Puede ser que usar el modo sync reduzca la vida de la SD?

Y otra. Si uno hace un dir no se verá porque no hay stdout. ¿Podría crearse un fichero con la salida de los comandos?

Por lo demás, muy bueno el tutorial, tanto para nuevos como para 'olvidadizos' (XDD) del linux como yo.

Todo tiene su explicacion ^_^

La dejo en modo sync porque es como creo que debería de dejarla GPH por defecto. Es un dispositivo que no tiene "apagado seguro" sino que pulsas el boton de apagado y no escribe los datos al disco, por lo que puede que hayas modificado algo y no se haya escrito en disco. Asi que veo preferible dejarlo en modo sync aunque sea sólo despues de jugar a la master system ^_^

KaosOverride
06/12/2005, 20:11
Como dice Efegea, el prefiere dejarlo asi porque lo ve mas coherente (y seguro)

Sobre los comandos chachis d elinux y redirigir la salida a ficheros de texto (que bien que tenemos un visor de TXT en la propia GP!!) lo tenia pensado para mas adelante... Ahora solo pretendia machacar la parte de "como ejecutar y volver al menu de la gp2x por ti mismo" con los scripts ;)

xyz0
06/12/2005, 23:33
Me ha encantado la primera parte de tu tutorial, Kaos... Muy sencillito, breve y claro, así da gusto.
Muchas gracias. [wei4]

Niku
07/12/2005, 00:14
¡Vaya pedazo de tutorial! ¡Imprescindible! :saltando: :saltando:

Mil millones de gracias :brindis:

tognin
12/12/2005, 07:44
si yo hago un script en el que use la orden SYNC y lo deje tal cual, entonces hasta que apague la consola quedara en modo sincrono?

como seria ese script?


slaudos

efegea
12/12/2005, 07:57
si yo hago un script en el que use la orden SYNC y lo deje tal cual, entonces hasta que apague la consola quedara en modo sincrono?

como seria ese script?


slaudos

No, la orden sync lo que hace es escribir el buffer a disco inmediatamente, para que quede en modo sinrono el comando es"mount -o remount,sync /mnt/sd"

miq01
13/12/2005, 10:46
Por cierto, en este hilo (http://www.gp32spain.com/foros/showthread.php?t=25401) explico cómo realizar escrituras en modo síncrono desde C.

KaosOverride
13/12/2005, 22:37
Buff, de lo que me acabo de percatar mientras tomaba un cafecito en el bar de debajo del curro

(Pensareis QUE FRIKI es este que se pone a juguetear con el sterm en el bareto en lugar de con el drmd por ejemplo...)

Despues de darme cuen del problemo y ejecutar el quake via script unas cuantas veces....


------------------
PID Uid VmSize Stat Command
1 root 1348 S init [3]
2 root S [keventd]
3 root S [ksoftirqd_CPU0]
4 root S [kswapd]
5 root S
6 root S [kupdated]
7 root S [mtdblockd]
8 root S [khubd]
9 root S [jffs2_gcd_mtd3]
17 root 1404 S devfsd /dev
31 root 2020 S -sh
49 root 1948 S /bin/sh ./quake.gpe
54 root 1948 S /bin/sh ./quake.gpe
59 root 1948 S /bin/sh ./quake.gpe
64 root 1948 S /bin/sh ./quake.gpe
69 root 3660 S ./sterm.gpu
70 root 2092 S /bin/sh
72 root 1644 R ps

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

Como veis, el script perdura, ya que el gp2xmenu se ejecuta dentro del script, aunque sea la ultima linea...

Habria que cerrar el proceso gp2xmenu para que el script se cerrara...

De todas formas, la soluccion es BIEN SENCILLA (Tendre que reeditar el tutorial)

En lugar de:

[B]./gp2xmenu

se pone

exec ./gp2xmenu

el comando exec cierra el proceso actual (el interprete de comandos que ejecuta el scritp, el "script engine" para entenderlo ;) ) y lo sustituye por el del menu de la gp2x, como si el scritp no se hubiera ejecutado nunca, liberando procesos y tb memoria... :saltando: :saltando: :saltando: :saltando:

Un saludo y perdonad el despiste

taromaru
14/12/2005, 02:45
En lugar de:

./gp2xmenu

se pone

exec ./gp2xmenu



...como bien pone en wiki.gp2x.org en estupendo ingles.

La verdad es que lo vi ayer pero se me habia olvidado comentartelo :)

KaosOverride
14/12/2005, 06:38
Pues los scripts que he visto hasta ahora eran de la misma calaña que los que puse en el tutorial...

Se darian cuenta por su lado tambien :)

Mas vale tarde que nunca y rectificar es de sabios (ajtooom** no va por mi... ajtooom**)

Igual podemos deducir ahora uno de los muchos y posibles motivos de porque al usar y usar programas seguidos podemos petar la consola y necesitar un ONyOFF para dejarla guay [wei4]

tognin
14/12/2005, 06:45
habeis probado algun comando que sirva para einiciar o apagar la consola?

no creo pero por si acaso yo pregunto.

slaudos

KaosOverride
14/12/2005, 16:41
Apagar no creo.. El interruptor es fisico (Estilo 486 clonicote con linux, para hacernos una idea... siempre seria "reset" por soft)

Habria que mirar el inittab a er como reconoce los runlevels, porque un init 6 deberia tirarlo abajo... pero la cosa es si al final se queda en halt o hace reset

Mas deberes pal finde, ya investigare :chupete:

taromaru
14/12/2005, 18:14
Apagar no creo.. El interruptor es fisico (Estilo 486 clonicote con linux, para hacernos una idea... siempre seria "reset" por soft)

Habria que mirar el inittab a er como reconoce los runlevels, porque un init 6 deberia tirarlo abajo... pero la cosa es si al final se queda en halt o hace reset

Mas deberes pal finde, ya investigare :chupete:

Que ganas de echarle el guante al sterm para llevarme tb linux a cualquier parte :saltando:

KaosOverride
18/12/2005, 05:46
Nada, he probado con init 6, shutdown -r now, etc

pero el resultado e sel mismo, muerte secuencial de procesos..
sale del sterm, y vuelves al menu
entonces cuando estas un rato moviendo el cursor del menu, se "cuelga" (Vamos, que muere el menu, pero la pantalla se queda con el ultimo frame enviado por el programa menu) Vamos, que por ahora no hay forma de resetearla por cauces "normales" en linux

ivanpd
09/02/2006, 05:38
El editor que has puesto no funciona bien, sigue poniendo salto de linea de windows, tienes alguno mas ?

JimmySlam
01/05/2006, 04:22
kaos tu tutorial de scripts ta wapo si. pero supuestamente ibas a hacer una segunda parte. de que trataria si la haces?

bufalo_1973
01/05/2006, 08:43
Sobre lo de tener que hacer distintos scripts para distintos juegos ¿no hay alguna manera de hacer una entrada (tipo read) para elegir mediante menú (texto espartano, pero menú) el juego?

Se me ocurre (si está incluido grep, nl y cut) que se podría hacer un script con un bucle y seleccionar de 1 en 1.

seinch
01/05/2006, 16:44
Buen trabajo, nos es a todos muy útil.

Gracias!

Saludos

Okiwan
01/05/2006, 17:21
Como editor de para Windows, por cierto, yo pongo los que suelo utilizar (por orden descendente de preferencia):

* VIM (http://www.vim.org/)
* JOE (http://sourceforge.net/projects/joe-editor/)
* TextPad (http://textpad.com/)

No he podido ver cuál es el que incluye KaosOverride en el pack pero a lo mejor es uno de los dos primeros. De todas formas el último es típico de Windows, muy intuitivo y con tropecientas opciones; es de pago, pero vale la pena.

Arcnor
03/05/2006, 18:18
Sobre lo de tener que hacer distintos scripts para distintos juegos ¿no hay alguna manera de hacer una entrada (tipo read) para elegir mediante menú (texto espartano, pero menú) el juego?

Se me ocurre (si está incluido grep, nl y cut) que se podría hacer un script con un bucle y seleccionar de 1 en 1.

O si están incluidas las ncurses currarse uno un poco más pijo :P

bufalo_1973
04/05/2006, 07:10
Arcnor, también, pero uno en ncurses es "un poco más laborioso" hacerlo que uno en bash pelao... siempre que estén los comandos y el método de entrada correcto, claro.

KaosOverride
04/05/2006, 15:30
Bueno, ya a estas alturas, para que se curro Kounch el selector???? :D
Que sus doy ;)

< - >


No he podido ver cuál es el que incluye KaosOverride en el pack pero a lo mejor es uno de los dos primeros. De todas formas el último es típico de Windows, muy intuitivo y con tropecientas opciones; es de pago, pero vale la pena.

Creo k inclui el PICO, que es de librex y en el "guardar como" deja opciones de grabar en texto MSDOS, UNIX, etc con una combinacion de teclas :D

Eeeeso si, es en interfaz "consola tipo msdos warro" jojojooj