Programación de DS

Siguiendo la idea que han propuesto en el otro post abro uno nuevo con una recopilacion de direcciones de interes para quien quiera meterse en el tema de la programacion de DS.

NDSTech Wiki: Wiki donde mas o menos se esta centralizando todo el trabajo en torno a la DS.
Aaron Rogers Day 1: Pequeño tutorial (en ingles) que explica como instalar y poner a punto el entorno de desarrollo.
Dovoto Day 1: [PDF] Similar al anterior.
Drunken Coders: Web con noticias al dia, ejemplos y demos.
DesktopMan's homepage: Algunas noticias y demos.
Darkfader: Descubridor del metodo en el que se basa el PassMe para cargar codigo casero.
Foro de gbadev (apartado DS): El apartado sobre programacion de DS del foro de la web gbadev.org.
DSDev: Web hermana de gbadev.org sobre DS (aun casi sin contenido).
DSlinux: Noticias sobre desarrollo de DS y futuro proyecto de portar Linux.

Sitios donde comprar un PassMe:
natrium42: El creador original del PassMe, ahora esta haciendo preorders.
dspassme: Vende PassMe hechos e incluye un interesante tutorial paso a paso de como construir uno (aunque en España sea casi imposible obtener el CPLD que usa).
kraln: Fue el primero en tener la idea de comercializar el PassMe aunque aun no los esta vendiendo.

Emuladores:
Dualis: Actualmente es probablemente el mejor emulador disponible.
HyperDS: Promete bastante, pero de momento no hay ninguna version publica.
iDeaS: El unico que actualmente emula tanto el ARM9 como el ARM7.
dsemu: Ademas de DS tambien emula GBA.

Utilidades:
GNU MSys: Minimal system de GNU, necesario para tener 'make' y demas si no se tienen ya.
devkitARM r11: Incluye el gcc y utilidades para compilar para cpus ARM.
ndslib: Libreria opensource para DS. Solo disponible mediante CVS.
Imagenndslib.rar: Libreria ndslib actualizada 06/04/05 [Codigo fuente solo]
Imagenndslib_install.exe: Instalador de la libreria ndslib actualizada 06/04/05. Elegir el directorio principal donde teneis devkitarm (ej: C:\devkitARM). Incluye las librerias y los includes, todo listo para usar.

FAQ:
P: ¿Que necesito para empezar a programar DS?
R: Con un compilador para ARM (por ejemplo el devkitARM) ya puedes programar DS, aunque para facilitar un poco las cosas es recomendable usar las librerias ndslib.

P: ¿Como pruebo lo que he programado?
R: Puedes probar en un emulador o en la consola utilizando un passthrough (por ejemplo un PassMe) con un cartucho flash de GBA.

P: ¿Que es un PassMe?
R: Es un circuito que se conecta entre la DS y un juego de la misma modificando la cabecera del juego para que realice un salto al cartucho de GBA donde esta nuestro codigo.

P: ¿Puedo utilizar roms de juegos comerciales con el PassMe?
R: NO. Debido al funcionamiento del passthrough no es posible cargar codigo que no este diseñado para el.

Si teneis alguna pregunta mas hacedla y la añado al FAQ.

--------------
Cambios:
31/03/05: Primera version
01/04/05: Añado algunas webs mas y el FAQ.
06/04/05: Añado un .rar con la ndslib actualizada al dia de hoy y un instalador.
wizardy si no te haces propaganda asi no vas a conseguir los 25 compradores de un passme xD.

la verdad que estas webs son geniales la mitad no las conocia y son megautiles.

Yo este finde empiezo a ver que sale xD
Esta no esta nada mal:
DsDev

A ver si con estas webs que has puesto consigo hacer algo! :D
Karkayu escribió:wizardy si no te haces propaganda asi no vas a conseguir los 25 compradores de un passme xD.

Hasta que no hable con la empresa encargada de hacer las placas no quiero mover demasiado el tema por aqui. De todas formas lo comento por si hay interesados:

Puesto que muchos de vosotros me habeis preguntado que si os podia fabricar un PassMe como el mio me he decidido a intentar realizar una pequeña tirada de placas para fabricarlos. En principio creo que el pedido maximo que me permiten realizar es de 25 placas, asi que si no hay suficiente gente interesada no podre hacerlo. Todo el que este interesado que lo diga por aqui o por MP para ir anotandolo. Supongo que el coste final seria de alrededor de 20 euros.
Yo ya te lo dije pero lo vuelvo a escribir para confirmarlo ¡me lo pido!
Me Apuntoooo!! [oki]
Cuando te haga falta la $$$ mandame un MP, porfa [ginyo]

Gracias y Salu2!! [bye]

PS: Voy a pelearme un poco, a ver si instalo el software y hago algun ejemplo pa correrlo en el emu.
Lo quereis todos para correr las aplicaciones disponibles o alguno tiene intencion de desarrollar algo?
LockeCole escribió:Lo quereis todos para correr las aplicaciones disponibles o alguno tiene intencion de desarrollar algo?

No se los demas, pero yo ya estoy desarrollando cosas y tengo un par de proyectos grandes en mente. XD XD
Ok, pues si necesitas colaboracion para algo abre un post. A mi me tiene que llegar mi PM en un par de semanas... :)
Yo nunca he programaod para gba ni para ds por supuesto, pero llevo toda la carrera programando en C y C++, jeje. Intentaré aprender primero con gba, y si puedo ayudar en algo, pues ya me direis,ok? Un saludo
Hombre, yo tampoco he programado nunca para GBA, pero si me he hartado de programar en C, C++, C a bajo nivel, ensamblador. A parte tenga experiencia en desarrollar para microcontroladores Motorola 68000 y los Intel 80c51 y la verdad q tiene un aire. Pero weno, eso con ver un par de fuentes y leer un par de docs, ademas de pelearme, a ver si puedo ir trasteando, y desarrollar algo. Eso sí, de momento solo corro en Dualis, hasta q me hagas el PassT [ginyo]. Si teneis algun project, darme un toke, q un par de horas por la noche puede sacar.

Avisadme. Gracias y Salu2!! [bye]
Yo de momento tengo pensado hacerme un par de aplicaciones chorras para practicar antes de ponerme a hacer algo mas serio, y si alguien quiere hacer algo mas "grande" y necesita un cable a partir del 15 que entrego un proyecto que me tiene muy cogido estaré para lo que se necesite ;)
Una aplicacion que estaria mu bien y no deberia ser muy complicada, seria una pequeña base de datos de los juegos que tienes (con un hueco para añadir a los gorrotnes xD)
Jajajaja pues precisamente algo asi pero de mis dvds y juegos de todo ;) [jaja]
Alguien tiene a mano las librerias, es que al bajarlas con el CVS me da unos errores al instalar [+risas] [+risas]

Edito: Ya lo encontre, pero me sigue dando el mismo error

El sistema no puede hallar el archivo especificado.
        0 archivos copiados.
ds_arm7.ld
ds_arm7cart.ld
ds_arm9.ld
        3 archivos copiados.
ds_arm7.specs
ds_arm7cart.specs
ds_arm9.specs
        3 archivos copiados.
thumb\*.o
El sistema no puede hallar el archivo especificado.
        0 archivos copiados.
interwork\*.o
El sistema no puede hallar el archivo especificado.
        0 archivos copiados.
thumb\interwork\*.o
El sistema no puede hallar el archivo especificado.
        0 archivos copiados.
Presione una tecla para continuar . . .


ein?
yo esta noche lo instalo todo (espero) te digo si me ha dado problemas el CVS las librerias las has pillado de sourceforge?
Si de sourceforge con el CVS y como vi que no rulaban, encontre un .zip en una pagina de la scene de la DS y el mismo error :\
A mi el CVS me pide contraseña. Sabeis cual es?
Al final no lo pude probar ayer mi mujer necesitaba el portatil y me jodió mis ansias programisticas.

Habeis solucionado los problemas de CVS=?
En vista de que mas de uno estais teniendo problemas para bajar y compilar las ndslib las cuelgo aqui.

Codigo fuente actualizado del CVS ahora mismo:

Adjuntos

A los que decís que primero intentaréis algo para GBA, quizás tenga sentido porque hay emus más completos o tenéis un flash o lo que sea...

Pero si no estáis en ese caso, yo empezaría con DS directamente si sabéis programar medianamente bien que creo que es el caso de muchos de los de aquí (y claro, si realmente estáis interesados).

Los modos gráficos en 2D de DS son muy parecidos a los de GBA, y siempre podréis ir aprendiendo el 3D según se vaya conociendo más... Aprender GBA como paso previo a DS quizás pueda ser un poco pérdida de tiempo. Pero vamos, es sólo mi opinión.

Taiyou
¿Alguien se anima a crear un grupo de desarrollo?. Hablo de juegos, personalmente no tengo ni idea de programacion, pero tengo experiencia en guiones y musica... aver esas propuestas!!! [fumeta]
Y para los que no se quieran comer el coco en compilar las librerias os he preparado un instalador con todo listo para usarlo. Ejecutais el .exe y elegis el directorio principal donde teneis el devkitarm, por ejemplo C:\devkitARM . Con eso ya teneis las librerias e includes listos para usarlos.

Adjuntos

wizardy escribió:Y para los que no se quieran comer el coco en compilar las librerias os he preparado un instalador con todo listo para usarlo. Ejecutais el .exe y elegis el directorio principal donde teneis el devkitarm, por ejemplo C:\devkitARM . Con eso ya teneis las librerias e includes listos para usarlos.


Eres el puto amo!!!!

Con esto ya no hay excusas :)

Una pregunta no os da la sensacion que el wario touched es como una coleccion de librerias de cosas que se pueden hacer con la DS?
Puedo encontrar en algun sitio, programas ya echos para ver la estructura de programación???
Es c, ensamblador, o necesito ambos?????

Gracias
Segun se ha dicho en algun que otro post que ha pasado al olvido (lo malo de no tener foro de scene) es que era en c++
C o C++.

Pero vamos, ensamblador también es posible usarlo, pero allá cada uno XD.


Taiyou
jejejejeje bueno claro si prefiere crear subrutinas en ensamblador adelante pero hay que ser muy machote xDDD
leonidas1411 escribió:Puedo encontrar en algun sitio, programas ya echos para ver la estructura de programación???
Es c, ensamblador, o necesito ambos?????

En varias de las webs del primer post hay codigos de ejemplos, en drunkencoders creo que es donde mas hay.
Puedes usar C, C++ y/o ensamblador a tu gusto, pero vamos que con C te sobra si no quieres comerte el coco. De todas formas el ensamblador de DS es relativamente sencillo, muy similar al de GBA.

Os dejo una foto de un programa de dibujo que estube haciendo ayer :)
Imagen
He intentado que el entorno se parezca lo mas posible al Mario Paint de Super Nintendo XD.
A ver si la gente se va animando a hacer cosillas.
Arggggggg la sana envidia me corroe :)

Que mas has hecho?

P.D. El pulso veo que es tan bueno como el mio xD
Uou, si puedes ponerle para que grabe los dibujitos y recuperarlos en el ordenador ya triunfas. Me compro el jodido Passme pa poder hacer dibujillos en el bus
Joder que cuesta encontrar este hilo a veces.

A ver os compila el DStemplate a vostros??

error PRJ0019: Una herramienta devolvió un código de error de "Ejecutando acciones de proyecto de archivo MAKE"

pq tengo unos cast aqui que petan (codigo sin modificar de ellos menos mal q lo prové antes de toquetear)

c:/ndsdev/projects/template/arm7/main.cpp: In function `void InterruptHandler()':
c:/ndsdev/projects/template/arm7/main.cpp:37: error: invalid conversion from `int' to `int*'
c:/ndsdev/projects/template/arm7/main.cpp:37: error: initializing argument 1 of `uint32 touchReadTemperature(int*, int*)'

P.D. Podrian colgar esto arriba seria mas facil y todos los posibles programadores lo verian.

P.D.2 ya lo he arreglado tenia una paranoia cogiendo unas temperaturas de no se que ahroa la putada es que no encuentro lo que me acaba de compilar xD
Que IDE usais vosotros??? Porque a mi con el Visual C++ (express) me peta por todos los lados ><

PD: Que lenguaje usais? C? C++?
Yo estoy con VS .NET 2003 y me peta al compilar

dsdemo error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
A mi me tira este error en Visual C++ 2005 Express Edition Beta.

------ Build started: Project: dsdemo, Configuration: ViaPassthrough Win32 ------
Performing Makefile project actions
Project : error PRJ0003 : Error spawning 'cmd.exe'.
Build log was saved at "file://c:\ndsdev\projects\template\BuildLog.htm"
dsdemo - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Diablo eso es raro pq el cmd es tu msdos [Alaa!]

ROX revisa el makefile pq hay algo de lo de allí que no le mola si quieres postea aqui el cacho q veas sospechoso y lo miramos entre todos.
Hum ya, por eso me resulta raro... Me aconsejais algun compilador (grautito si puede ser)?
En el tutorial ese de first day noseque explica como hacerlo en modo msdos que para trabajar no te va a servir pero almenos veras si compila o no.

No sea alguna tonteria q no se ve como las que me pasaban a mi :|
El ejemplo que ellos intentan esta listo para developer 2003 y los tipicos del tetris y la mayoria piden el 2005
Con el DevC++ no puedo cargar ningun archivo de ejemplo porque vienen en el formato del VisualC++... Me bajare al VisualStudio... :-(
has probado la compilacion en msdos via linea de comandos si te funcionaba?
Ejecutar el make del template?
Uy..ahora no puedo que estoy programando un analizador de DML en Java, luego si puedo le echo un ojo [burla2] [burla2]
Con lo bien que funciona el make de toda la vida XD XD, no se, kizas soy demasiado clasico, pero a mi eso de usar algo de microsoft para programar DS me da mal rollo :-p
O.o, haciendo el make desde la linea de comandos si que funciona... Alguien sabe como arreglarlo para poder compilar desde VS?
A ver si alguno me puede echar una mano, que tengo unas dudas sobre aritmetica binaria que no me acabo de aclarar...

Un numero de 16 bits en punto fijo con formato 1.3.12 tiene rango (9, -8] o me estoy confundiendo?

Como seria la macro para multiplicar dos numeros en ese formato? Y para multiplicar un numero en ese formato con un entero unsigned char?

Venga, muxas gracias por adelantado.
no he entendido el formato xD
1 bit para el signo
3 para la parte entera
12 para la decimal?

te referias a eso?
Si, es el formato que usa la DS para los vertices, pero misteriosamente no soporta operaciones matematicas con este formato... (o por lo menos no aparecen en las ndslib...)
perdon pero este tema no lo he tocado las operaciones las quieres hacer a nivel de bit o a nivel de numero?
Pues a nivel de numero, pero como C no tiene operaciones predefinidas para este formato y por lo que parece, la ndslib tampoco, pues lo tengo que hacer a mano...

Me han sujerido que podria ser algo asi, pero no lo veo muy claro... si alguno puede confirmarlo o desmentirlo me haria un gran favor :)

mulv16 (a, b) = ( (a ^ b) & 0x3fff ) | ( ( (a * b) & 0x1fffffff ) <<12 );
54 respuestas
1, 2