[Otros] Clases de la programacion ds de homebrews[Entregar tareas o se pedirá una baja]


 
 
Herramientas Desplegado
  #1  
04/09/2011
Predeterminado Clases de la programacion ds de homebrews[Entregar tareas o se pedirá una baja]
Ya he comentado en los perfiles de los usuarios sobre la entrega de las tareas o se cerrará la escuela y tambien, que si hay algun problema por fechas o algo, se puede pedir solo una bajka temporal y no una permanente

Este es el seguimiento del tema anterior, asi que copiare varias partes del inicio. Pero antes aviso de que las inscripciones estan cerradas, asi que no comenteis que quereis entrar, las tareas son solo para los users inscritos.
Aviso que cualquier user que no esté inscrito no puede comentar, si lo hace será reportado, solo si algun moderador tiene que hacer una edicion o algo no pasará nada.

Bienvenidos a mi escuela:

Lo primero es decir que tengo el permiso para abrirla.

Contenidos: Aprenderemos a programar un juego para ds totalmente de cero, no os confundais con hackrom. Por si acaso os dejo en un spoiler el significado generico de homebrew que es lo que aprenderemos a hacer.

Pulsa para desplegar este spoiler

Se suele denominar homebrew (software casero no oficial) a las aplicaciones y juegos creados por programadores -aficionados y expertos- para cualquier plataforma, generalmente consolas de videojuegos propietarias.1 Recientemente, se han desarrollado consolas diseñadas específicamente para la ejecución de software homebrew, el cual se caracteriza por ser gratuito y en su mayoría abierto. El término «homebrew» tiene relación con el Homebrew Computer Club, aunque se desconoce si fue éste el origen.

En Japón estos juegos son llamados Dojin Soft, que es la manera de decir que este software no es ilegal, en principio, dependiendo del uso que se haga de él. Suele cuestionarse la legalidad del homebrew, sin embargo, su uso es muy extendido entre los usuarios avanzados.


Abandono debe realizarse por MP
Plazas:5, ya que esto es muy complejo.
Fecha de acabado de inscripciones: Cuando se cubran. Aunque la escuela empezará con 3.
Si alguien abandona quedará una plaza libre siempre y cuando se comunique por mp y se entreguen los trabajos atrasados por el mismo.

Requisitos para entrar:
  • No dejar la escuela sin avisar
  • Tener muchas ganas de aprender
  • No robar ningun tutorial ni nada

Temario:
  • Introducción
  • Instalación del entorno
  • Comprobación y Configuración del entorno
  • Funcionamiento de las librerias
  • Acercamiento al Hardware
  • Programacion Básica del Hello World
  • A partir de aqui se vera segun vea los animos, ya que depende del avance de la clase

Lista de alumnos 5/5

  • Kaliser
  • Tsuka
  • cosarara97
  • Legend
  • Abstract


Tareas entregadas


Tarea1

  • Tsuka
  • Kaliser
  • Abstract
  • Legend
  • cosarara97

Tarea2

  • Legend
  • Tsuka
  • Abstract
  • Kaliser
  • cosarara97

Tarea3

  • Tsuka
  • Legend
  • cosarara97
  • Abstract

Tarea4

  • cosarara97










Primera Clase: Introducción e Instalación


Introducción e Instalación del entorno:

Introducción:

He decidido juntar estos dos tutoriales ya que tienen mucho que ver.
Vamos ayá.

Lo primero es saber de que disponemos:

-Tenemos 4Mb de ram en la ds, que tambien incluye Vram

Sabiendo esto procederé a explicar que trata esto:
Vamos a usar un SDK llamado devkitpro, que sustituye al SDK oficial. Devkitpro viene con libnds como librería principal para ds, aunque recomiendo usar otra librería para empezar ya que esta es muy complicada. Podríamos usar Palib pero se ha quedado obsoleta, aunque muchos users la siguen usando, pero en estos tutoriales usaremos NFlib, una librería creada por KNighFox, un coder de habla hispana.

Todo sobre la ds se explicará mas adelante según sea necesario, por ahora con ver una ds es suficiente para saber lo que tenemos:

12 Botones utiles de juego, apagado, y volumen, 2 pantallas y una táctil, ademas de que contamos con 2 procesadores ARM9 y ARM7.
Por defecto la ds le en ensamblador, pero gracias a los compiladores incluidos en el msys podemos programar en C/C++.

Instalación:

Estos pasos son muy simples, primero entramos en http://sourceforge.net/projects/devkitpro/
Y descargais la ultima versión del instalador automatico para Windows, lo siento por lso users de Linux y Mac, por google podeis encontrar tutoriales de cómo instalarlo en estos sistemas.

Bueno empezemos, una vez bajado ejecutamos el instalador, y seguimos los pasos de estas imágenes, debeis dejarle el directorio por defecto, a mi no me sale porque lo tengo instalado:

La tercera imagen no es mia, porque yo ya lo tengo instalado y no sale, pero debeis seleccionar solo las que estan en rojo. Como he explicado puede haber variaciones porque el mio ya esta instalado, pero siguiendo lo escrito anteriormente y las imagenes no habrá problema

[attachment=1328]
[attachment=1329]
[attachment=1330]

Después solo a next, ya se instalará solo y después a next y por ultimo a finish.

En cuanto contesteis procedemos a lo siguiente. Recomiendo no ponerse a ver cosas todavía hasta que no expliquemos en los proximos tutoriales, tambien quiero evitar de que esto no esta, si lo habeis tocado es comun que pueda ocurrir cosas no esperadas.

Tarea1. Limite de entrega 5/9/11 a las 14:00 Hora española


Tarea1: Enseñarme una imagen de la carpeta donde teneis instalado el devkitpro con este tuto, pero quiero que en la screen tengais tambien la ruta, digo esto para evitar luego lios porque esto no compila o similares.


Segunda Clase: Ahora instalamos la nflib


En este tutorial instalaremos la nflib y haremos la prueba de compilacion.
Lo primero es bajar la ultima version de aqui:
http://sourceforge.net/projects/nflib/files/
Lo descomprimimos en el directorio de devkitpro, quedando asi:
C:\devkitPro\nflib
ahi nos vamos al directorio examples,text,textdemo. Osea que entramos en el directorio: C:\devkitPro\nflib\examples\text\textdemo
Y ahi ejecutamos el compile.bat, y esperamos que se ejecute, si todo ha ido bien se os generará un .nds, para ejecutarlo bien en este sistema recomiendo darle click derecho al .nds, propiedades, y cambiais el programa con el que se abre, y buscamos el emulador que esta en la carpeta: C:\devkitPro\nflib\tools\emus\demume
ya que es el mas compatible con el nitrofilesytem, sistema interno de ficheros para poder meter los archivos a la rom y poder ejecutarlos, eso sera lo siguiente. Pero ahora con la tarea que os encomiendo es suficiente.

Tarea2


Compilar el example dicho antes, y mandareis la captura de pantalla del juego funcionando o del fallo en caso de que no compile. Con esto comprobaremos si funciona y todo esta bien instalado, en el 3 tutorial veremos porfin empezar a programar lo simple.


Clase 3 primer tocamiento del code


Porfin vamos a programar algo en serio, nos volvemos a ir a la carpeta C:\devkitPro\nflib y copiamos la carpeta template a otro lugar pero con una condición, debe ser una carpeta sin espacios y sin caracteres especiales como `´’ñ $& o cualquier otro cuanque - _ si son aceptados, por ejemplo un directorio valido seria: C:\ds\template un ejemplo de directorio no valido seria C:\ds&dev\..dev.ñ

Recomiendo descargar el notepad++ para una programación mas facil.

Una vez comprendido esto con el template copiado le cambiaremos el nombre por el de t01 y copiamos otra vez el template para tener uno a mano siempre, os dejo la imagen para que veais como va.

[attachment=1332]

Ahora cogemos entramos en t01, y os voy a explicar que hace cada cosa.

Data: carpeta de archivos internos(no tiene nada que ver con el nitrofiles y rara vez lo usaremos.).
Nflib: carpeta interna de la librería, no se debe tocar nunca.
Nitrofiles: carpeta de los archivos internos del filesystem, aquí meteremos los archivos.
Release: Carpeta de una versión antigua, no la toqueis.
Sources: Carpeta donde iran todos los codes del juego.
Clean.bat archivo para borrar lo compilado
Compile.bat: archivo para compilar el proyecto.
Icon.bmp Icono del juego, mas adelante os explicare como editar el icono y que lo acepte la ds sin cosas raras

Abrimos la carpeta source y abrimos el archivo main.cpp, y nos saldrá esto:

/*
-------------------------------------------------

NightFox's Lib Template

Requiere DevkitARM R28
Requiere NightFox's Lib

Codigo por NightFox
http://blogs.gamefilia.com/knightfox
Inicio 10 de Octubre del 2009

(c)2009 - 2010 NightFox & Co.

-------------------------------------------------
*/





/*
-------------------------------------------------
Includes
-------------------------------------------------
*/

// Includes c/c++
#include <stdio.h>

// Includes propietarios NDS
#include <nds.h>

// Includes librerias propias
#include <nf_lib.h>





/*
-------------------------------------------------
Main() - Bloque general del programa
-------------------------------------------------
*/

int main(int argc, char **argv) {

consoleDemoInit(); // Inicializa la consola de texto
consoleClear(); // Borra la pantalla
setBrightness(3, 0); // Restaura el brillo

iprintf("\n Hello World!");

// Bucle (repite para siempre)
while(1) {

swiWaitForVBlank(); // Espera al sincronismo vertical

}

return 0;

}
Os explicaré cada parte por separado:
/*
-------------------------------------------------

NightFox's Lib Template

Requiere DevkitARM R28
Requiere NightFox's Lib

Codigo por NightFox
http://blogs.gamefilia.com/knightfox
Inicio 10 de Octubre del 2009

(c)2009 - 2010 NightFox & Co.

-------------------------------------------------
*/
Esto es un comentario de la librería, puedes quitarlo si quieres no surge ningún efecto.

/*
-------------------------------------------------
Includes
-------------------------------------------------
*/

// Includes c/c++
#include <stdio.h>

// Includes propietarios NDS
#include <nds.h>

// Includes librerias propias
#include <nf_lib.h>
Estos son los incluyes predefinidos por la librería, ya veremos lo de poner mas o ir quitando. De momento con los predeterminados vamos bien.

int main(int argc, char **argv)
Esta es la declaración del main, lo que primero ejecuta.

consoleDemoInit(); // Inicializa la consola de texto
consoleClear(); // Borra la pantalla
setBrightness(3, 0); // Restaura el brillo
iprintf("\n Hello World!");
Estas son funciones de libnds para cargar un texto de estilo ms-dos, i escribe lo de la ultima funcion. La primera lo inicia, la segunda limpia la pantalla, la tercera hace que puedas ver las pantallas. Y la ultima escribe.

// Bucle (repite para siempre)
while(1) {


swiWaitForVBlank(); // Espera al sincronismo vertical

}

return 0;
Esto es un bucle, básicamente se repetise siempre que lo que esta entre paréntesis (1) sea lo que pone, en este caso mientras 1 sea 1 el programa lo repetira, hay distintos tipos de bucles. while( lo que sea lo que sea ej: variable==5 ){
El swiWaitForVBlank(); coordina a los 60 frames por segundo, y ademas completa algunas funciones de libnds. Es obligatorio.
Y el return 0; lo que hace es devolver un valor, porque todas las funciones que no sean void, deben llevar un retrun.

Os voy a explicar un comando que usaremos que es de c, es el sprintf un comando que actualiza una variable de texto con otras variables.

Aunque el pritf lleva funciones preparadas para esto usaremos para luego poder usar la funcion interna de nflib que es mas completa y ademas podemos elegir el lugar exacto donde ponerlo, y ademas podemos usar la ñ y otros caracteres con acentos y mas.

Os recomiendo leer tutos de c para poder usar las variables, yo solo os dare el funcinamiento de las nuevas funciones.

Tarea3:

Vais a hacer que el programa lea un numero de una variable y lo escriba en la pantalla desde el comando sprintf. Usareis estas variables:
char text[32];
int variable=14;
sprintf(text,”La variable es:%d ”,variable);
Y luego lo imprimis usando printf(text);
Por lo que mandareis el source de un code por mp que imprima una variable en la pantalla, pero no lo metais en el bucle.
Con eso será suficiente. Aquí os pondré nota, antes del siguiente tuto, os podre un code para que lo corrijais los errores y me lo mandais por mp, con eso sera suficiente, en el siguiente tuto os explicare un poco mas de teoria, pero debeis leeros un tuto de c para que podais seguir con los siguientes tutos y lo entendais.


Clase 4 Investigando por nuestra cuenta


Esta clase va a ser muy sencilla como corta, ademas tiene la tarea incluida dentro de la clase, quiero que investigueis entre los examples de nflib: C:\devkitPro\nflib\examples pero antes vais a copiaros la carpeta C:\devkitPro\nflib\template a nuestra carpeta de proyectos, con el nombre de Incluyendo_Imagenes. Por cierto antes de hacer esto os recomiendo borrar la carpeta nflib de devkitpro y descargar la nueva version, ya que no compila cpp http://sourceforge.net/projects/nflib/files/. Debereis compilar con la utilidad grit en tools de nflib, y usando el examples deberemos ser capaces de poner cada uno el fondo que quiera, ojo: debe estan indexado a 256 colores y tener unas dimensiones multiples de 256, como: 256x256, 256x512, 512x256, 512x512, etc... Con esto hecho, lo meteremos en nitrofiles para poder usarlo, y seguimos el example para poner el fondo, ojo de nuevo: no copiar con copy y paste, sino que veais que os interesa, debereis buscar vosotros el example y hacerlo, esta es una clase bastante compleja.
  #2  
04/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
Instalé también el Notepad porque me apetecía echarle un ojo. No creo que haya problema con eso..

Tarea 1




Gracias por todo C:
  #3  
04/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
Muy bien, aunque yo recomiendo usar otro notepad que pondre mas adelante, ya que es mas sencillo, dos tareas mas resueltas y pasamos al siguiente tuto
  #4  
04/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
Aquí está mi tarea

Tarea (opiamente)




Os gusta el tema que le he puesto al w7? e.e
  #5  
04/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
Ok, uno mas y sigo con el tuto
  #6  
05/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
Mi tarea ;)


PD: Una cosa, no escribas mensajes tan cortos, puesto que alguien te lo puede considerar SPAM.
  #7  
05/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
OK, ya estan los 3, lo siento por lo de los comentarios, dentro de poco publicare el segundo tuto, de momento todos lo estais siguiendo bien
  #8  
05/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews

Tarea 1


Tarea 2


Es el NO$ZOOMER
  #9  
05/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews
Muy bien, la tercera clase donde ya tocamos programación aparecerá cuando contesten tres usuarios, mientras te recomiendo tocar algun tutorial en c, o almenos mirate las variables y funciones.
Gracias por el interes
  #10  
05/09/2011
Predeterminado RE: Clases de la programacion ds de homebrews


Hecho C:
 

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado


Temas similares
Tema Autor Foro Resp. Último mensaje
[Gráficos] Escuela de quimeras [clases] Dav6 Archivo 10 18/07/2011 16:30
[Gráficos] !Escuela de Diseño Gráfico [Clases]! SummonNight Archivo 34 21/04/2011 18:41


Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 21:07.