¿Se programa igual en...?

Código EOL25: 25% dto. para la nueva colección Hawkers SS16
KeiDash
MegaAdicto!!!
543 mensajes
desde mar 2003
en Outer Heaven
Hola buenas a todos.

Recientemente me he puesto con el desarrollo para consolas y me ha vuelto a surgir la misma duda que me surge siempre que voy a indagar en la programación para consolas, a ver si alguien me puede ayudar.

Supongamos que tenemos dos máquinas de desarrollo, una es un PC con un S.O que permite desarrollar aplicaciones en C, y una PSP que también permite desarrollar en aplicaciones homebrew en C. (C me refiero a C puro y duro, nada de C++ o C#)

Si yo hago una aplicacion para el PC en C, que hace un "hello world" mas o menos de la seguiente manera:

Main()
{
     printf("Hello World");
}


Este ejemplo, que funcionaría en una aplicación de PC, mostrando en pantalla un "Hello World", ¿Funcionaría también para la PSP?


Es decir, ¿El mismo lenguaje y la manera de trabajar con ciertas elementos básicos del lenguaje, funcionarian tambien en la PSP, o con la PSP ese printf("Hello World") no haría absolutamente nada porque la PSP no lo entiende?

A mi parecer, creo que si debería entenderlo ya que el lenguaje con el que trabajan es el mismo, pero he ahí mi gran duda :P

A ver si alguien me quita la duda ya forever.

Gracias de antemano.
kbks
MegaAdicto!!!
3.036 mensajes
desde nov 2005
en Ugao
El lenguaje si va a funcionar exactamente igual, pero no las librerías. Printf no pertenece al lenguaje C, no es mas que una función (es decir, en ese punto el compilador solamente mete un CALL al código de la librería gestionando los parámetros y el retorno, pero no compila lo que hay dentro de la función printf). Para utilizar librerías necesitas que estas estén portadas a la máquina para la que vas a programar o utilizar librerías con la misma funcionalidad.
KeiDash
MegaAdicto!!!
543 mensajes
desde mar 2003
en Outer Heaven
Vale entendí que la manera de trabajar con el lenguaje entonces es igual para ambas, tanto para pc como psp o otro consola que acepte C.

Una duda más, me has comentado que el ejemplo que puse, el método printf no pertenece a C, y he visto varios ejemplos en internet donde un simple hello world lo realizan así:

/* Hello World program */

#include<stdio.h>

main()
{
    printf("Hello World");


}


¿Se puede utilizar porque es un método de stdio.h cierto?
kbks
MegaAdicto!!!
3.036 mensajes
desde nov 2005
en Ugao
No he programado nunca para PSP y no se que librerías hay o no hay para ella pero stdio.h es una cabecera de la librería estandar de C (libc), librería que imagino que si que estará portada. De todos modos si tu dices que has visto programas para PSP que la utilizan seguro que está para PSP y si que puedes utilizarla, aunque no tengo ni idea de como se realizará la salida, ya que printf escribe en la salida standar.
KeiDash
MegaAdicto!!!
543 mensajes
desde mar 2003
en Outer Heaven
kbks escribió:No he programado nunca para PSP y no se que librerías hay o no hay para ella pero stdio.h es una cabecera de la librería estandar de C (libc), librería que imagino que si que estará portada. De todos modos si tu dices que has visto programas para PSP que la utilizan seguro que está para PSP y si que puedes utilizarla, aunque no tengo ni idea de como se realizará la salida, ya que printf escribe en la salida standar.


No no, yo nohe dicho eso. Ni siquiera es para PSP es para Neo Geo Pocket, la psp es un ejemplo xD.

Lo que quería decir es que es un ejemplo de Hello World que he visto en la red para C, para consola de comandos
kbks
MegaAdicto!!!
3.036 mensajes
desde nov 2005
en Ugao
Pues en ese caso ni idea, ya que ni siquiera se si existe un compilador de C para Neo Geo Pocket (he estado buscando pero no encuentro nada...). Si existe imagino que tendrá su propia librería de dibujado (o a las malas acceso directo a la memoria de video) con sus funciones propias. ¿Tienes algún link a alguna página de desarrolladores de Neo Geo Pocket?
KeiDash
MegaAdicto!!!
543 mensajes
desde mar 2003
en Outer Heaven
Si existe compilador para su chip TCL900, tengo un framework y su compilador y estoy con el tema, por eso todas estas preguntas.

he llegado a generar una rom pero no consigo funcionalidad de momento. No es fácil encontrar su documentación y herramientas pero tengo bastante, todo reciclado xDDD

Puedes obtener más info si quieres en la página que tengo en la firma.
petrix
Adicto
142 mensajes
desde dic 2006
Como te han dicho, la manera de programar es la misma (misma sintáxis, etc), sin embargo para cosas específicas del hardware de la consola tendrás que usar sus librerías, por ejemplo. tu ejemplo de hello world, en la psp compilaría perfectamente sin embargo no te mostraría nada por la pantalla ya que tendrías que hacer:

pspDebugScreenInit();
pspDebugScreenPrintf("Hello world");


a parte hay muchas librerías de PC que están portadas, como sdl, librerías de audio, etc.

básicamente no puedes coger un programa de PC y ejecutarlo directamente en la consola porque te pasarán cosas de ese estilo, si quieres programar para consola generalmente necesitarás aprender algo de sus librerías.
KeiDash
MegaAdicto!!!
543 mensajes
desde mar 2003
en Outer Heaven
Buenas, gracias por contestar.

Efectivamente, encontré un framework para trabajar con la pocket y ya he conseguido hacer algo. Actualmente estoy y sigo con ello para comenzar a añadir sprites.

Si queréis hecharle un ojo, podeis verlo en mi blog http://ngpcfansite.blogspot.com/2011/12/conseguido-primer-hello-world-en-la-neo.html (y el de mis compañeros)

Saludos y gracias por las aclaraciones :D