Nooby Questions...


Atako

Still Fresh
Joined
Oct 12, 2008
Messages
25
Hey!

I wonder how we will access Pandora specific things like the analog nubs, the gamepad and so.
Will there be a "PandoraLib" like the "libnds" for Nintendo DS to write programs for all that specific stuff?

How will we use the specific input?
How will we use specific processor instructions?
How will we use wifi/bluetooth?
(With "use" I mean "access by software")

How will we be able to make games? Use SDL for a portable window and render in there with OpenGL ES?
Will we have to use SDL for input or will there be an extra library supplied by the devs?
What about Audio?

I have only programmed for Win32 with it's API, I just can't imagine how things will be on Linux...
Is it a task of the operating system to handle specific (input) hardware?
Is there even a "Linux API"?

I'm very confused as you might imagine...
Thanks a lot in advance for the enlightenment!
Greets
 
Atako said:
I wonder how we will access Pandora specific things like the analog nubs, the gamepad and so.
Will there be a "PandoraLib" like the "libnds" for Nintendo DS to write programs for all that specific stuff?

More than likely, yes. Ryleh wrote a minimal lib like that for the GP2X. So it stands to reason something like this will appear for the Pandora as well. To give you control of things like the Leds, screen brightness, and other hardware bits.
QUOTE

How will we use the specific input?
You can use the entries in /dev, the SDL interface, or any other sensible method for capturing input. I belive that the d-pad, analog sticks, and other "controller" buttons will appear as /dev/js0 and the keyboard will behave normally as a standard input.
QUOTE

How will we use specific processor instructions?


ARM assembly can be included in the source just as with any other machine specific code on other architectures.
QUOTE

How will we use wifi/bluetooth?


Wifi should be managed automatically by the OS, and I figure a easy to use configuration tool will be included with the GUI. Indivudual apps won't have to worry about the nitty gritty details of establishing the connection. It will either be available or not at runtime. Additional tools for managing wifi/bluetooth connections will likely be available at the command line as well. In addition to standard libraries that can be included in your project. So there are multiple ways to deal with it.

QUOTE

How will we be able to make games? Use SDL for a portable window and render in there with OpenGL ES?
Will we have to use SDL for input or will there be an extra library supplied by the devs?


In addition to SDL, I'm sure Allegro and other 2D libraries will be ported and made available for developers. You could also hit the framebuffer directly if you like doing things the hard way. Or you can use the device context provided by the X interface if you want to do something that runs right inside the GUI. How you implement your OpenGL/ES window is up to you. However, In order to get 3D acceleration, I think you must be using the X display.
QUOTE

What about Audio?


You should be able to use SDL, ALSA, or OSS to do sound.

QUOTE

I have only programmed for Win32 with it's API, I just can't imagine how things will be on Linux...
Is it a task of the operating system to handle specific (input) hardware?
Is there even a "Linux API"?


There isn't a "Linux" API per se. There are available libraries that you can choose to include in your project to extend functionity for specific purposes. Any lib that is available in the repository can be used to extend your project. It really depends on what you want to do, and how you want to do it. I think you'll find programming for the Linux platform refreshing and liberating since anything you want to take advantage of is exposed to you, and the source is free for you to explore and learn from. Unlike Windows, and it's commercial libraries.
 
Last edited by a moderator:
You'll access everything through the Linux kernel, just like on a desktop PC. Since the Pandora is a multitasking computer with a full OS, there is no "direct" hardware access [As with older consoles like NDS, gamecube, game boy, which only ran one program at a time], and you probably don't want to be executing specific machine instructions if you can just program in C++ [which you can, with the GCC]

Wifi will be accessed as a regular network interface, so you can open sockets, connect to things on the Internet, set up daemons, etc.
I don't know anything about Bluetooth.
The inputs will be available through the SDL library as regular joysticks. It will be similar to reading keyboard input, except with joysticks instead.

"Is there even a "Linux API"?"

Yeah, but I've never used the kernel API either. Most of what you do as far as game programming or application development will access the hardware through SDL or OpenGL. GUI programs can use GTK+ or Qt [look those up on Wikipedia if you need to] for their widget toolkits.

As for audio, SDL handles audio too. It's not a very advanced audio system, you just open a file and play it. Depending on what kind of audio backend Angstrom uses, there might be various ways to do more advanced things like synthesis, but SDL will do most of what you need.
 
Back
Top