Anuncios Google

Ayudenme con la programación NFLIB

Buenas a todos, quiero empezar a aprender a programar en DS (La ds ya casi a muerto, pero es no significa que muera los homebrews) y necesito ayuda con la programación, que me hago un lío, vamos a ver, leyendo en la web de nightfox, he leido como se instala, si instalando devikpro y visual c++ en C:\NDS y que me descargue una utilidad para que el visual genere proyectos de ds, todo instalado, luego en la carpeta del proyecto, pongo la libreria nflib de nightfox, y compilo un juego, y me sale un .nds que cuando lo habro dice Hello world! eso significa que ya puedo empezar a programar, pero es que sabemos que es dificil y me ago un lio, sé que tengo que abrir el Main.c de la carpeta source, y lo abro pues leyendo tutos del nflib, pues no me entero (normal de un novato) y dice que lea los tutos de C, pero no los entendí muy bien, ya saber ponen, tienen que poner tal codigo y no os copiéis favorece el lenguaje, y yo, lo tendría que poner el código en el main.c no? pues donda donde lo ponga, al compilar me dice un error, como make *** [build] error o algo así, y no es problema de instalación de libreria, porque si me compilaba bien al principio, y si lo borro todo comoe staba antes si me compila bien, es decir, que no lo entiendo, por favor, me pueden ayudar un poco con esto, soy novato y quiero ser un coder, y hacer mis juegos, Gracias a todos, si no entendéis algo decidmelo ;)

Edito: Poco a poco avanzamos, gracias a Dioni, hemos conseguio cargar fondos, y me parece un avance de programación, segúro que poco a poco voy a saber más cosas :)


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Draco el dragon

Lo de que puedas compilar sin

Lo de que puedas compilar sin errores significa que has hecho la instalacion bien, pero haber, ¿que codigo intentas poner (ponlo con la opcion del Tiny de insertar codigo y selecciona C)? Pon el error entero, porque dudo que te ponga solo eso. Te pondra las lineas del codigo en la que tienes fallos y al final de cada linea te pondra que fallo hay ahi.

Imagen de _-jose-_

Mira

Sobre las constantes sale este codigo: (un ejemplo)

/*Jugando con las constantes*/
 
#include <stdio.h>
 
#define agnos_en_un_lustro 5
 
#define agnos_en_una_decada 10
 
#define agnos_en_un_siglo agnos_en_una_decada*(agnos_en_un_lustro*2)
 
int main()
{
    printf("Un lustro tiene %i agnos.\n",agnos_en_un_lustro);
 
    printf("Una decada tiene %i agnos.\n",agnos_en_una_decada);
 
    printf("Un siglo tiene %i agnos.",agnos_en_un_siglo);
 
    getchar();
 
    return 0;
 
} 

Y la duda es ¿Donde lo tengo que poner el código en la ds para que vaya? o primero tengo que hacer el codigo en el PC? porque yo me hago un lío, no sé en que parte del main.c hay que ponerlo para que vaya :( porque si nightfox me ha dicho que los tutos de C sirven en el nflib, si alguien me pudiera ayudar, porque soy un auténtico novato :(

 


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.

Imagen de Draco el dragon

Vete mas despacio, no

Vete mas despacio, no empieces ya con defines o funciones de imprimir texto en pantalla sino entiendes aun como funciona la estructura del lenguaje C. Antes de empezar con nflib, como ya te dijeron, tienes que aprender C, pero aprender C no es copiar un codigo en un main.c que no sabes como funciona y darle a compilar esperando que todo vaya bien. Lo primero que tienes que entender es como funciona (para que sirven los ;, que son los return, como funcionan los bucles, etc.), y luego puedes empezar a programar usando nflib, porque los tutoriales de C de WWW estan hechos para programar para PC. Si bien es cierto que te pueden servir para programar en nds aprendiendo sobre C, necesitaras compilar usando el template para PC, etc, porque el que usas es para DS, y no va a funcionar sin el while que mantiene funcionando la DS ni nada de lo que tienes ahi puesto.

Imagen de _-jose-_

Entonces ?

Me leo los tutos de C, solo leerlos y cuando lo lea y entenderlo ya puedo aprender a programar en ds?

Imagen de Draco el dragon

Si los entiendes, no veo

Si los entiendes, no veo problema. Tambien puedes leer los tutos de almamu que tambien tienen al principio un poco sobre como funciona C, y al estar ya para DS no te armaras tanto lio.

Imagen de _-jose-_

Vamos haber

Que me hago un lio xD ¿que hago entonces? los tutos del ALMAMUPP yo no los entiendo bien.

Porque mira, dice, después de mostrar el main, dice:

Primero de todo voy a explicar las distintas partes del código, quiero destacar que este main.cpp solo sirve para escribir en consola, y no sirve para mostrar gráficos, más adelante pondremos gráficos.

// Includes c/c++
#include <stdio.h>
 
// Includes propietarios NDS
#include <nds.h>
 
// Includes librerias propias
#include <nf_lib.h>

Y abajo sales unos codigos, sale

En esta parte del código incluimos los archivos necesarios con las funciones que usa NFlib y las que usaremos nosotros.

<span style="color: #993333;">int</span> main<span style="color: #009900;">(</span><span style="color: #993333;">void</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>

Aqui simplemente iniciamos la funcion main, la cual se ejecuta automáticamente al iniciar el Homebrew.

&nbsp; &nbsp; &nbsp; &nbsp; consoleDemoInit<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Inicializa la consola de texto</span>

Aqui iniciamos el sistema de texto estilo consola, es una buena opción para escribir mensajes de debug.

&nbsp; &nbsp; &nbsp; &nbsp; iprintf<span style="color: #009900;">(</span><span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\n</span> Hello World!"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

Esto escribe un mensaje en la consola de texto y lo muestra en al pantalla, es simple de usar.

Entonces yo pongo los codigos en el main abajo de lo de inf_lib.h (Segun he leido) y cuando compilo sale:

1>arm-eabi-gcc -MMD -MP -MF /c/NDS/projects/Estudio/Estudio/build/main.d -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -iquote /c/NDS/projects/Estudio/Estudio/include -I/c/NDS/devkitPro/libnds/include -I/c/NDS/projects/Estudio/Estudio/nflib/include -I/c/NDS/projects/Estudio/Estudio/build -DARM9 -c /c/NDS/projects/Estudio/Estudio/source/main.c -o main.o 2>&1 | sed -e 's/\(.[a-zA-Z]\+\):\([0-9]\+\):/\1(\2):/g'
1>This application has requested the Runtime to terminate it in an unusual way.
1>Please contact the application's support team for more information.
1>Cannot create temporary file in c:\NDS\projects\Estudio\Estudio\build\c\Users\jose\AppData\Local\Temp\: No such file or directory
1>linking Estudio.elf
1>arm-eabi-gcc.exe: error: main.o: No such file or directory
1>make[1]: *** [/c/NDS/projects/Estudio/Estudio/Estudio.elf] Error 1
1>make: *** [build] Error 2

y me sale que dejo de funcionar, y entonces no sé, deberia compilar un .nds con un texto pero no T-T


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.

Imagen de Draco el dragon

Si el template te compilaba,

Si el template te compilaba, es que tienes algo mal puesto en la carpeta o en el main.cpp, porque el codigo que ponia almamu ahi era el mismo que el del template. ¿Lo tienes todo bien colocado? Carpetas, archivos dentro de las carpetas... Simplemente copia todo el template sino lo hiciste ya. Todo esto siempre que hayas puesto el codigo bien y lo hayas entendido, porque como ya te han dicho mas abajo, aprender no consiste en copiar y pegar...

Imagen de _-jose-_

!NO SIRVE!

Mira ayudenme, he puesto una función para el HomeBrew, lo he compilado, sin errores, y ahora a la hora de abrir el .nds !se queda en blanco! esta e la función (la he puesto sin copiar)

void MenuPrincipal(){//Tipo de funcion Void, sin argumentos
	//Funciones que ejecuta
	consoleDemoInit();
	iprintf("Menu principal\nEmpezar\nAyuda");
	while(1){
		swiWaitForVBlank();
	}
	return 1;//Si no hubiese While volveria a la funcion que la llamo
}//Fin de la funcion

Deberia salir un menú principal pero a la hora de ponerlo se queda en blanco! ayuda!

 


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.

Imagen de Dioni0396

Hum....

Te falta cosas;

hacer un limpiado de pantalla, restaurar brillo, cargar las librerias y que la funcion void Menuprincipal() se llamo int main()

Imagen de _-jose-_

Lo siento

No me enteré muy bien.

Imagen de Dioni0396

Un Copy/paste de la noticia para crear texto.

// 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(void) {
 
	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; 
 
}
 
Primero de todo voy a explicar las distintas partes del código, quiero destacar que este main.cpp solo sirve para escribir en consola, y no sirve para mostrar gráficos, más adelante pondremos gráficos.
 
// Includes c/c++
#include <stdio.h>
 
// Includes propietarios NDS
#include <nds.h>
 
// Includes librerias propias
#include <nf_lib.h>
 
En esta parte del código incluimos los archivos necesarios con las funciones que usa NFlib y las que usaremos nosotros.
 
int main(void) {
 
Aqui simplemente iniciamos la funcion main, la cual se ejecuta automáticamente al iniciar el Homebrew.
 
        consoleDemoInit();              // Inicializa la consola de texto
 
Aqui iniciamos el sistema de texto estilo consola, es una buena opción para escribir mensajes de debug.
 
        consoleClear();                 // Borra la pantalla
 
Aqui simplemente vaciamos la lista de textos enviados a la consola.
 
        setBrightness(3, 0);    // Restaura el brillo
 
Esto cambia el brillo, ojo, esto no es para la DSlite, es para poder reducir la luminosidad de la pantalla, puede ser util para muchas cosas, como veremos en próximos tutoriales.
 
        iprintf("\n Hello World!");
 
Esto escribe un mensaje en la consola de texto y lo muestra en al pantalla, es simple de usar.
 
        while(1) {
 
Aqui iniciamos el bucle principal, esto es necesario para casi toda función.
 
                swiWaitForVBlank();             // Espera al sincronismo vertical
 
Esto espera al sincronismo vertical para actualizar todo.
 
	}
	return 0; 
}
 
Cerramos el While y cerramos la función main.

Imagen de _-jose-_

Pues que raro

Pongo el code (sin copiar) el que yo puse antes, ahora pongo todo bien pero a la hora de compilar dice algo que dejo de funcionar, y al recompilar salió:

1>------ Operación Generar iniciada: proyecto: Estudio, configuración: Debug Win32 ------
1>Ejecutando acciones de proyecto de archivo MAKE
1>main.c
1>arm-eabi-gcc -MMD -MP -MF /c/NDS/projects/Estudio/Estudio/build/main.d -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -iquote /c/NDS/projects/Estudio/Estudio/include -I/c/NDS/devkitPro/libnds/include -I/c/NDS/projects/Estudio/Estudio/nflib/include -I/c/NDS/projects/Estudio/Estudio/build -DARM9 -c /c/NDS/projects/Estudio/Estudio/source/main.c -o main.o 2>&1 | sed -e 's/\(.[a-zA-Z]\+\):\([0-9]\+\):/\1(\2):/g'
1>c:/NDS/projects/Estudio/Estudio/source/main.c: In function 'MenuPrincipal':
1>c:/NDS/projects/Estudio/Estudio/source/main.c(55):2: warning: 'return' with a value, in function returning void [enabled by default]
1>linking Estudio.elf
1>c:/nds/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.6.1/../../../../arm-eabi/lib/thumb/ds_arm9_crt0.o: In function `CIDLoop':
1>(.init+0x218): undefined reference to `main'
1>collect2: ld returned 1 exit status
1>make[1]: *** [/c/NDS/projects/Estudio/Estudio/Estudio.elf] Error 1
1>make: *** [build] Error 2
1>El registro de compilación se guardó en el "file://c:\NDS\projects\Estudio\Estudio\Debug\BuildLog.htm"
1>Estudio - 0 errores, 1 advertencias
========== Generar: 1 correctos, 0 incorrectos, 0 actualizados, 0 omitidos ==========


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.

Imagen de exterminator

Has puesto

una función void, la cual no puede devolver ningun valor.

En serio, el código que te viene por defecto NO LO MODIFIQUES si no sabes.


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Imagen de _-jose-_

No entiendo

bien esto, recomiendo que alguien me de por Mensaje Privado su MSN y yo lo añado y hablamos directamente, porque si no, nos vamos a llenar de preguntas que hasta una letra es una linea xD.


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.

Imagen de Dioni0396

Mp enviado

Mp enviado

Imagen de Dioni0396

Si, basicamente es eso

pero nada de copiar ni de pegar, solo es enterder la base de la programacion.

Imagen de exterminator

Ese

código no te va a funcionar en la DS, porque está pensado para PC. Ni incluyes las librerías de NDS, ni inicias el modo consola de texto...


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Imagen de Dioni0396

La cosa es que asi nunca te va a ir

porque? porque eso esta hecho en C de PC.

Porque no te pasas por los tutos de nflib? Y te dejas los de PC?

Imagen de _-jose-_

Pero

Si lei que tendria que leer los tutos de C, y además OFF-TOPIC cuando cambias el avatar pareces otro usuario xD

Imagen de Dioni0396

Si, los cambios de avatar siempre los hago drasticos.

Vamos a ver, los tutos de PC es para que tengas una base, pero eso no servira nunca a NDS porque la arquitectura es distinta, los tutos de PC son para tener una base sobre constante, variables, bucles, sentencias, estructuras, arrays.

Imagen de auroszxmm

Pues

yo cuando empezé, ya sabia lo basico de C. Segui el tutorial usando la libreria precompilada de aqui en SB, simplemente la baje, la coloque en la carpeta C:\devkitpro, y como ya tenia el Notepad++ no necesite instalar nada de lo demas. Ahorita estoy parado, voy por el tuto 2 pero me estoy tomando un descanso... Yo no he tenid problemas de compilación de esta forma, todo normal. Prueba hacerlo como yo.

Saludos ;)

EDITO:

Probe bajando la nueva version de la NFlib. Y me da el error que tu dices!!! Falta que se pase por aqui kNightFox, y nos ayude con este inconveniente... Sino, a usar la version anterior.


Equipos

  • LG Optimus One + ClockWorkMod 5.0.2.7 + IcySnap v1.6 (ICS 4.0.4) + Overclock [Performance/SmartassV2 480min - 748max).
  • NDS Lite Edición Especial Pkmn D&P + R4DS 2GB + WoodR4 1.51.
  • PC: Intel Pentium Dual-Core 1.6Ghz, Intel GMA 950, RAM 1GB, HDD 160 GB + Win7 Ultimate & Archlinux (+Openbox).
  • Apple iPod Touch 4G, iOS 5.1.1, Jailbreak + Tweaks.

Imagen de kNightFox

Si vosotros os pasarais por

Si vosotros os pasarais por los foros OFICIALES de la libreria, no tendrias que esperar a que yo me pasara por aqui....

 

http://www.nightfoxandco.com/forum/index.php?topic=271.0


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de auroszxmm

Wooops

Revise mi codigo, y el error no era de la libreria, era mio por colocar una letra de mas en un par de funciones...

Sorry -///-"

PD: Que bueno que ahora los mensajes de error puedan mostrarse en español :) +1 por eso


Equipos

  • LG Optimus One + ClockWorkMod 5.0.2.7 + IcySnap v1.6 (ICS 4.0.4) + Overclock [Performance/SmartassV2 480min - 748max).
  • NDS Lite Edición Especial Pkmn D&P + R4DS 2GB + WoodR4 1.51.
  • PC: Intel Pentium Dual-Core 1.6Ghz, Intel GMA 950, RAM 1GB, HDD 160 GB + Win7 Ultimate & Archlinux (+Openbox).
  • Apple iPod Touch 4G, iOS 5.1.1, Jailbreak + Tweaks.

Imagen de _-jose-_

Un momento!

Cuando yo compilo el juego sale bien, pero cuando modifico algo sale eso, entonces ¿no es que lo haya puesto mal? sino ¿que es porque falla algo?


Consolas: DS, WII, 3DS.

Juegos 3DS: Super mario 3D Land, Mario Kart 7, One Piece Unlimited Cruise SP y Sonic Generations

Eshop: Pullblox, Mario vs Donkey Kong ¡Los minis marchan de nuevo!, Birds Mania 3D, Fun! Fun! Minigolf touch!,  Colors 3D, Kid icarus (GC) Super Mario land 2:6 golden coins(GB), Calculadora Mario, Pyoro, Inchworm Animation y Photo dojo.

Consolas pirateadas: WII, DS.

Consolas en espera para piratearlas: 3DS.

Imagen de kNightFox

Si te compila el template y

Si te compila el template y empiezas de 0, lo tienes bien. Esto solo sirve para gente que tiene projectos empezados y al actualizar les da problemas de compilacion.


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de _-jose-_

Hombre

Si no has leido bien el post, dice claramente que me compila bien, dije que no sabía que habia que hacer.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.