Creado por ooyamaneko (18/04/2007) – Actualizado: 14/04/2007
Colaboradores: KrashWii , darkserman
AVISO: Se ha caido mi servidor web, así que poco ha poco voy arreglando las imágenes, descargas, etc que tenía de varias cosas. Las imágenes y el enlace ya están corregidos, espero actualizar pronto el texto.
Bueno, al final me he puesto con el mini-tuto (el primero que realizo!!) y aquí lo tenéis. Primeramente será un manual básico que iré haciendo más completo a medida que se vayan descubriendo más cosas y siga apareciendo más código. Abro la puerta a que colabore todo el mundo y así poder hacer mejores casos de Phoenix Wright para que los disfrutemos todos!
Y ahora, dejando de irme por las ramas, empiezo el tuto:
1 - Instalación de las herramientas del Phoenix Wright Script Editor:
1A – Primero descarga el PWSE:
PWSE 0.2-a *actualizado
1B – Ahora, sería conveniente que sacaras tu backup que corresponda al Phoenix Wright Justice for All, pero atención!! La que corresponda con la numeración 0820 versión USA. Siento no poner un enlace, pero por motivos de ilegalidad y para no comprometer a EOL, cada uno tendréis que conseguir vuestro “backup” por vuestra cuenta...
1C – Muy bien, una vez tenemos todo esto procedemos a instalar (descomprimir básicamente) el PWSE en nuestro ordenador, pero OJO!! para su correcto funcionamiento debemos tener claro algo importante: la ruta no debe contener ni acentos, ni otros caracteres muy extraños. Por ejemplo, yo la tengo en C:\Desarrollo\NDS\PWSE. Eso sería una ruta completamente válida, pero por el contrario, C:\Documents and Settings\Víctor\ etc etc... daría error en ciertas funciones del programa (por no decir todas...).
1D – Esto mismo debe aplicarse al backup del juego: no puede estar en una ruta que contenga acentos... sino el programa no la admite.
NOTA: Gracias a pabloppp por testear con espacios (si hay una ruta con espacios si funciona, no funciona con acentos y símbolos).
1E – Una vez hecho esto ya tenemos nuestro programa preparado para funcionar.
2 – Primer uso de PWSE:
2A – Entramos en la carpeta donde hayamos puesto nuestro programa y ejecutamos “pwse.exe”. Nos aparecerá la siguiente ventana de selección del backup:
2B – Este paso es muy importante ya que el programa “memorizará” la ubicación del archivo y cuando lo ejecutes la próxima vez ya sabrá que la backup original se encuentra en ese sitio. Recuerda que es importante lo de los espacios y acentos, así como el hecho de que es la versión USA del PW2 Justice for All.
FAQ 1: He borrado la backup y ahora la tengo en otro directorio y el programa se abre pero no funciona ninguna acción ya que no encuentra el archivo. ¿Qué hago? – Todo en esta vida tiene solución jeje, el paso ya digo que es importante, pero para cualquier incidencia que haya, podéis abrir el archivo “config.py” que se crea y editar la ruta con el bloc de notas.
FAQ 2: ¿Mi backup se verá afectada? – En principio no ya que solo se utiliza para compilar luego otra y queda inalterada, pero como siempre en este mundo... haz una backup del backup (xD) por si acaso...
3 – Explorando el PWSE:
Ahora voy a explicar lo que sería el paso final, pero que he preferido incorporar ya en este punto del tutorial, ya que luego nos centraremos en el código del script y prefiero dejarlo para el final.
Ésta es la interfaz básica que nos encontraremos en el programa. Sirve para crear nuestro “nuevo juego”. Es muy sencillo y se trata de darle a una de las dos opciones (from zip si tenemos el contenido en un archivo comprimido en zip y from folder si tenemos el contenido en un directorio normal) para seleccionar en la siguiente ventana el zip o el directorio que contiene nuestro script y los archivos necesarios. Cuando hagamos esto nos aparecerá otra ventana:
Aquí debemos escoger el nombre que tendrá nuestro nuevo archivo de juego (no olvidéis el .nds), el lugar donde se guardará ese archivo y, finalmente, abrir (que sería aceptar). Entonces se empezarán a realizar toda una serie de procesos (rápido, no tarda mucho) y se creará el archivo nds en el directorio dodne hayamos escogido. Con él, ya podremos jugar a nuestro nuevo caso / casos (sí, en principio se pueden hacer varios casos, varias partes para los casos...).
3A - Funciones avanzadas al seleccionar “Show advanced commands”.
Ya os introduzco que es para extraer los scripts del juego original haciendo la descompilación. Desde mi punto de vista, para quien empieza, mejor que se salte de momento esto y comienze con los scripts del tutorial y creando los suyos básicos. No obstante si alguno se atreve o piensa de diferente forma, que siga adelante jeje ( para gustos, colores
)Nuestro compañero darkserman es el redactor de esta sección:
Desde una ventana de comandos usamos ndstool de esta forma:
ndstool -x nombreRom.nds -9 arm9.bin -7 arm7.bin -y9 y9.bin -y7 y7.bin -d data -y overlay -t banner.bin -h header.bin
Así nos extraerá el contenido de la rom, lo copiamos a una carpeta llamada "romdescomprimida" (por ejemplo)
Luego con el pwse.exe, seleccionamos la opción Extract script archive to a folder y en la ventana que se abre vamos a la carpeta donde hallamos descomprimido la rom, dentro entramos en la carpeta data, y seleccionamos el archivo mes_all.bin
Nos preguntaré donde extraer los scripts, creamos una carpeta llamada scripts y los ponemos ahí.
La segunda opción del pwse Convert binary script to text se usa para convertir los archivos de scripts que acabamos de extraer desde su formato original (*.bin) a texto (*.txt)
Los convertimos, y entonces ya podemos abrir los *.txt con el editor que queramos y modificarlos siguiendo el tutorial.
Gracias darkserman.
(cuando pueda subo las imágenes para amenizarlo un poco)
4 – Creación de Scripts:
Bueno, este es un tema muy largo así que iré añadiendo poco a poco ya que no tengo mucho tiempo. De momento os dejo el enlace al hilo del caso que estoy creando si aun nol o conocéis y los archivos de mi script del caso para que os vayáis familiarizando con las etiquetas y eso. Ya os digo que algo útil es seguir cada acción del juego leyendo a la vez el script.
Hilo –
http://www.elotrolado.net/showthread.php?s=&threadid=749601
Script –
Script demo ooyamaneko - El Asesino del Virus *actualizado
Agrego un documento de texto rtf donde están los comandos conocidos hasta la fecha para los script. De momento dejo la lista, la intención es ir explicándolos cuando tenga tiempo.
Lista de Comandos (English)
Gracias a KrashWii tenemos la lista de comandos traducida al castellano:
Comandos en castellano
*ATENCIÓN: Como avisa nuestro compañero KrashWii los comandos pueden haber sido traducidos con el traductor, así que el comando original cogedlo de la lista en inglés y leer la función en la lista de castellano.
4A - Iniciando el Script:
# El nombre de tu caso o título
@@
from anims import *
from bgs import *
from macros import *
@@
Bien, con este texto iniciamos el .txt de nuestro script. El principio, el símbolo "#" seguido de "El nombre de tu caso o título" sirve, tal como se deduce, para poner una descripción o título del caso que vamos a crear. Sea ya dicho que el símbolo "#" nos servirá para introducir anotaciones en el script que no serán tomadas como código, sinó como lo que son, simples descripciones y explicaciones.
A continuación vemos "@@". Aquí no sería estrictamente necesario, pero las he querido introducir para que os vayáis familiarizando con este símbolo. Esto sirve para llamar a las funciones que hemos creado nosotros (ya se explicará más adelante). Por ejemplo, si creamos una función llamada "pantalla_tiembla", luego cuando queramos que eso pase durante un lugar del juego tendríamos que poner "@@ pantalla_tiembla @@". Sirva de simple introducción, más delante se verá mejor.
A continuación de esto, sí que tenemos algo importante. El "from xxx import*" es necesario para llamar a los archivos .py que forman parte de nuestro script y serán usados en la compilación y en el código del script. Para empezar, recomiendo usar los que vienen con el tutorial y, más adelante, ya veremos como editarlos. Tenemos:
anims.py - formas de los personajes, animaciones (triste, emocionado...)
bgs.py - fondos de pantalla
macross.py - definimos código personalizado para el script y, luego, sólo tenemos que introducir el nombre que le hemos puesto entre "@@" en el archivo .txt para llamar a la función (o veremos más delante).
config.py - define las propiedades del juego que creamos. Por ejemplo:
name = 'EL ASESINO DEL VIRUS'
rom_name = 'pw_asesinovirus_ooyamaneko'
version = '0.2'
author = 'ooyamaneko'
email = 'xxx@xxx.com'
scripts = { 'tutorial.txt' : 1 }
# Not yet supported as of 0.2 release
anims = {}
bgs = {}
evidences = {}
Como véis tenemos el nombre de nuestro caso o juego, el nombre de nuestro rom .nds, la versión, el autor (nosotros, los creadores del script), el email y, algo importante, los scripts. Aquí debemos poner los nombres de los archivos .txt que forman parte de nuestro juego o caso. Aquí sólo se muestra el archivo de este tutorial que he dejado apra descargar, pero si alguien se animara mucho podríamos tener:
scripts = { 'caso1.txt' : 1 , 'caso2.txt' : 2 , 'caso3.txt' : 3 }
Es decir, podríamos tener un juego con varias partes y no sólo una.
4B - Sobre los backgrounds (fondos de pantalla):
Bien, pues en este apartado veremos 4 cositas sobre algo muy sencillo, los fondos de pantalla. Para ello será importante localizar el archivo del cual ya se habló con anterioridad, el "bgs.py". En realidad este archivo no es estrictamente necesario, pero nos da una opción muy buena.
En el script, los backgrounds (a partir de ahora bgs) se llaman con un simple numerito. Por ejemplo, para ir al de la oficina de Phoenix nos bastaría llamar al bgs 18. Lo que nos proporciona el archivo "bgs.py" es la oportunidad de ponerle un nombre a cada bgs. En el caso que nos ocupa, si habrimos el archivo con el bloc de notas o wordpad, veremos unas lineas de código simple. Entre ellas encontraremos: "BG_PHOENIX_WRIGHT = 18".
Esta linea relaciona el bgs 18 con el nombre "BG_PHOENIX_WRIGHT". Así, una vez en el script simplemente poniendo "@set_bg(BG_PHOENIX_OFFICE)@" haremos que el fondo de la pantalla del juego cambie a la oficina de Phoenix. Esto nos ayuda a no tener que recordar todos los números de los fondos y poder editar a nuestro antojo los nombres.
Aquí, otra persona podría poner simplemente "BG_OFICINA" y listo, cada vez que quisiera llamar al fondo sería: "@set_bg(BG_OFICINA)@". Como véis algo sencillo y muy útil.
Cuando se pueda se añadirá una lista con cada número de bgs el sitio al que lleva (ojo!! puede que algún bgs no sea un lugar sino una imagen de prueba grande o algo similar que ocupe toda la pantalla).
Continuará...
------------------------------AUN EN CONSTRUCCIÓN ----------------------------------
Saludos!!