¿Se programa igual en...?

Dedicado al desarrollo de software casero para videoconsolas

Moderador: jiXo

KeiDash
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 502
Registrado: 16 Mar 2003
Ubicación: Outer Heaven

Mensajepor KeiDash 12 Dic 2011 01:56

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:

Código: Seleccionar todo
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
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 2405
Registrado: 19 Nov 2005
Ubicación: Ugao

Mensajepor kbks 12 Dic 2011 02:28

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
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 502
Registrado: 16 Mar 2003
Ubicación: Outer Heaven

Mensajepor KeiDash 12 Dic 2011 10:26

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í:

Código: Seleccionar todo
/* Hello World program */

#include<stdio.h>

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


}


¿Se puede utilizar porque es un método de stdio.h cierto?

kbks
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 2405
Registrado: 19 Nov 2005
Ubicación: Ugao

Mensajepor kbks 12 Dic 2011 13:31

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
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 502
Registrado: 16 Mar 2003
Ubicación: Outer Heaven

Mensajepor KeiDash 12 Dic 2011 13:36

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
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 2405
Registrado: 19 Nov 2005
Ubicación: Ugao

Mensajepor kbks 12 Dic 2011 14:32

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
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 502
Registrado: 16 Mar 2003
Ubicación: Outer Heaven

Mensajepor KeiDash 12 Dic 2011 14:37

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
Avatar de usuario
Adicto
 
Mensajes: 121
Registrado: 04 Dic 2006

Mensajepor petrix 22 Dic 2011 13:14

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:

Código: Seleccionar todo
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
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 502
Registrado: 16 Mar 2003
Ubicación: Outer Heaven

Mensajepor KeiDash 22 Dic 2011 13:34

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


Volver a Desarrollo

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 0 invitados