Archive

Archive for the ‘Gaming’ Category

When emulation actually improves the original..

January 13th, 2011
Comments Off

This is a seat-of-my-pants posting to gp32x forum again, so its not really up to snuff to be posted here on the blog, but I like the sentiment, and I’m too busy/lazy to rewrite it :)

You know whats sort of sad –

When emulation actually _improves_ the original. I’m an arcade collector, and also an emu author .. those seem opposed in one sense; emulation is great, for carrying around old gear on new gear and for having the ability to switch games without carrying around giant carts or pcboards… but being inexact, its often better to have the original. Certainly, the original controls add a lot (arcade, say) and sometimes you need the right ’sound’ (consider QBert, which had a little hammer knocking on the side of the arcade cabinet; you just can’t reproduce that in emulation.)

But after digging out some of my old gear I’m getting less tolerant; I used to just love some of this stuff, or be blinded to the flaws because it was just so awesome, especially in its time. But looking back now ..

Aside form being _HUGE_..

Game Gear — a crap screen; one of those LCDs thats ‘brightness’ and ‘tint’ was controlled by the angle you looked at it; seriously. And batteries good for 2-3 hours, so you had to buy a huuuge battery pack, on top of an already huge machine.

Turbo Express (TG16, PCEngine handheld) — super crap screen; tiny little screen, but also ‘blurry’ .. ie: its less resolution or something than the CRTs it was replacing (but you could runm real TG16 games on it, not portable-versions of them), so text was unreadable, and anythign using a patterned texture would shimmer like mad. Battery life like 3 hours on 6 AAs.

Atari Lynx — now, this was a pretty masterful machine with a great screen (big, good colours, and atually a pretty nice screen); but huge device. Also a battery life of 3-4 hours. Unique in that you can flip the machine over and hit a switch to rotate the screen.. left handed friendly!

GameBoy — just crap, really.

Emulation improves these guys. Suddenly the size is managable, the screens are 100 times better, no worry about batteries running out just like that .. I’ve been too busy with having a kid and working on pandora and my own games, and real work etc, I’ve just not dug these out in years, and I gotta say .. wow, they still rock, but damned if I’m not more inclined to just fire up the emus :)

Author: skeezix Categories: Entertainment, Gaming, Technology Tags:

Atari Portfolio vs Open Pandora

January 13th, 2011
Comments Off

Just for fun, I thought I would dig out an ancient machine .. one of the very first ‘palmtops’ (they were called back then, I think.) I used to trot this out when talking about PDAs years ago, but lets just show it beside a modern clamshell device .. the Open Pandora for instance (which I work on, I must admit.)  The Portfolio is even closer looking to more conventional clamshells (the Pandora has a d-pad on it for instance.) To me, they just seem so similar in so many ways — the overall look and hinge and such. The details are all different of course — the relative openness of the OP, the d-pad and analog controls and so on, but take a 3 second glance and they coudl be sisters.

Pandora vs Portfolio (thumbnail)

Pandora vs Portfolio (thumbnail)

For full size image click the pic or go here: http://www.walled.net/~jmitchell/skeleton.org/blogmedia/technology/atari/portfolio/pandora_vs_portfolio_1.jpg

Another pic with no flash: http://www.walled.net/~jmitchell/skeleton.org/blogmedia/technology/atari/portfolio/pandora_vs_portfolio_2.jpg

I posted to a thread on gp32x forum:

Notice the overall design similarity.

Atari Portfolio — 1989
Open Pandora — 2010-ish.

Theres 20 years of technology advancement, folks :)

For the curious, the Portfolio runs at just under 5Mhz and runs a modded DOS 2 if memory serves; due to low res (less than 80×20 columns, uses like 20×8 or something, I forget) it actually lets you pan the screen around, but well behaved DOS applications will (try to) adjust to fit; it runs old text adventures well .. I actually ported Frotz to it awhile back, just for a lark, and runs great :)

Author: skeezix Categories: Entertainment, Gaming, Technology Tags:

A matter of organization — re: ‘computer’/electronics cables, and widgetmacallits

January 2nd, 2011
Comments Off

Anyone whose ever been a ‘computer junkie’ (or a musician :) (or who has upgraded cell phones or shavers) knows about the ‘rats nest’ problem; with pretty much everyone using computers these days, I bet the problem became pretty large for awhile (and less so, now that most people are using laptops in the home.) The problem being that along with computers, over time is the accrued pile of gadgets and parts that come with them.

Hell — ever bought CDs (or games that came on CD?) Thats a heck of a CD tower you need after awhile!

Even for a layman .. you buy a mouse, and it has a good chance it comes with the USB<->PS2-style-port adapter widget in-box. Into the drawer it goes, right? Webcam for skyping, before laptops all came with built in cam?

You buy a larger SD card, and your old SD card.. into the drawer? Or a new camera, and your old CD card into the drawer since your new camera used SD? Cell phone and SD to micro-SD? Spare batteries for your phone, shaver, PSP, Nintendo DS? Lets not even get into parts for cars (fuses? lightbulbs?) since people are pretty hip to that stuff these days — toss ‘em into the in in the garage, or just pay big-$$ to the mechanic.

You buy an original iphone, with the Apple-evil headphone adapter (standard, but recessed -just so- so a normal headphone will not jack in, how nice Steve!) so you need a headphone adapter; or you need a 1/4″, 1/8″ and 1/16″ headphone plug adapter?

The problem I have is that as a nerd, my problem is 10x what others might have. I’ve been doing computer madness since I was a kid, and while I regularly toss out really old stuff, I’m also afflicted by the retro bug; so much old stuff really does have some value and will be used again. (So much stuff will not be and must be given to a good home or binned, lest you become a Hoarder ;) You do not keep 5 mice from machines 15 years dead, but you might want to keep an old Amiga or Atari ST mouse around…… right? Anyway, I collect arcade machines, so have a huge pile of arcade spare parts (joysticks, coindoors, wiring harnesses, replacement buttons for control panels, bulbs for marquees, t-molding to repair the rubberized edges of the cabinets, you name it.) Computer gear from the last 30 years.. check! Mobile development including cellphones, PDAs and experimental gear? Yep, and all the serial console and debug break-out-boards.. thats me! Peripherals and games for long dead equipment like the Atari 2600 or Vectrex? Floppy disk drives for an Atari XEGS or Atari XL? Yeah, _naturally_. Spare RAM (ie: replaced RAM) for laptop, desktop? You do have parts of several PDAs, phones and game systems that never made it to market right? Or iphones/androids without ‘cases’, just bare pcbs lieing around? Or dissected kid-toys just cause? You have an EEPROM burner within arm reach just in case you need to reflash the firmware on your microwave? Some of us have _issues_ man.

Its hard enough to keep track of all the bits and bobs for modern current gear, but my ‘current gear’ (stuff I’m developing for or using right now) is a pretty big pile. I just don’t know how to manage — I’ve got a GPH gp2x Wiz handy along with the more recent Caanoo (no Dingux, managed to stay clear), the Pandora _of course_, a Palm WebOS machine I did a couple ports for, the iphone; I’m still occasionally supporting some of my apps on the PSP and my daughter uses it, so the PSP power cabling has to be handy.

Camera charger/cable; iphone charger/cable; PSP charger for PSP and Pandora; USB charger cable for Caanoo and Wiz; external drive for backups; charger for wifes cellphone.

How do you keep that _really essential_ stuff straight? (for me, I have a little plastic box, and each cable is in a ziploc bag so that at least they do not tangle to each other; can label the ziploc bags in a pinch.)

But with all that gorramned arcade gear, old computer gear, retro gaming gear and ancient old carts, the parts closet ehind me .. how to keep it all organized so its not …

Such a Damned Mess.

Wish I knew.Do you know how to manage all this stuff? (How do knitting people keep track of all their afghans? hmrf!)

Next topic — lets talk Firebee and working on modern Amigas (Amiga X1000), C64s (Commodore 64x), and Atari STs (Firebee). Oh yes, we can use modern tools and hack on retro-gear.

Author: skeezix Categories: Day by Day, Gaming, Technology Tags:

Platform targeting

September 28th, 2010
Comments Off

For some topics, one of the real bummers is just trying to figure out how you’re going to do it, for where you’re going. You going to fly there, or drive there, or bike there, or walk there? Depends if your target is an island, has an airport, or roads, etc.

One of my sundry projects is a good old client/server game; the server is in working state right now .. its easy, it sits on one target box, and that code is portable to a wide variety of common systems. Piece of cake. But the client, the piece the user (player!) will see, thats the hard one. Do I go javascript-css and make a browser based client (so no real install for the user, and the ‘promise’ of working on many platforms without much code change), or go native? and going native do you go full hog OpenGL fancy graphics, or a basic dialog-box type UI?

This decision is hugely complicated, due to things being in a high state of flux. Oh, you want to use OpenGL and do it in a js/css app? Well, you _will_ be able to using WebGL, but its not delivered yet. You want to use the modern Canvas (and maybe svg) tech in a browser based client? Well, your support is spotty even amongst desktop big name browsers, but just forget working in Opera Mini or on a Pandora or an iphone, and its really unpleasant to handle such wide varieties of screens on handhelds .. form high res, to tiny low res, with random features present.

But say you decide to go native; do you want to code from scratch using SDL or UI toolkits like gtk or QT? and for other target platforms, do they have those same toolkits available?

Say you want to use some fancy OpenGL .. are you talking Open GL ES for mobiles? and if so, GLES 1.0, 1.1, or 2.0?

And if you want to get GLES 2.0 say, knowing the world is moving that way … how will you code it? Will you code it on the target platform, or cross compile to it, or try to code native with frequent ports to target for optimum coding efficiency? Well, did you know that Open GL desktop has some (but not yet full) support for GLES APIs? So you may well need a GLES adapter/emulator on your GL desktop?

Software development has always been about breaking large problems up into smaller managable bits, and matching requirements to solutions; but when it comes to writing a game client, life is just a pain. But a wise friend of mine did say .. pick a platform; you can’t target them all with this sort of thing.. pick a platform, and then you’ve at least got a few more requirements to fall back on.

Hrmpf.

Author: skeezix Categories: Gaming, Technology Tags: , , ,

Civilization V under Linux — yes! Crossover / Wine step to the plate!

September 21st, 2010
Comments Off

More later (need to play!), but gaming under Linux has really come a long way; sure, we don’t have the moral victories of having native ports of very many big ticket games, but it is sure nice to be able to fire up Starcraft 2 or World of Warcraft without a hitch.

Civilization V has come out today and it ran right out of the box (well, from a Steam online purchase anyway); audio, fullscreen or windowed mode and performing well, today is Civ Linux day!

As time is tight, I’ve chosen Crossover Games (a commercially supported Wine) though I imagine the normal Wine could pull it off; The Crossover folks have been good to the Linux community imho so I don’t mind supporting them whatsoever.

A fresh game, with low details and small windowed mode

A fresh game, with low details and small windowed mode

Preview – GPH Caanoo handheld gaming device

September 2nd, 2010
Comments Off

We’re all gadget nutbars, aren’t we? I’ve been doing mobile development in homebrew, shareware and commercial arenas for 10+ years and can even today build some of my apps for a dozen platforms all in one shot :) Disclosure — yes, I’m one of the guys who spent way too much time on the Pandora… and also the Wiz, the GP2x F100 and F200, the GP32, and you name it, so I think I’m a pretty balanced (pre)reviewer.

Regarding the Caanoo, I’ve been on the fence – it seemed to arrive a little too quick on the heels of the Wiz in my books so I’ve worried there may be some disappointment from the Wiz community; only time will tell if GPH keeps up support for the Wiz (in terms of WiFi and games on their homespun FunGP store) but it is heartening that they have said that “Yes!” they are still behind the Wiz.. but understandably just a bit tired out in launching the new device. Fair enough! Further, with specs rather similar to the Wiz itself, I wasn’t sure if I needed to upgrade or not.

Well, GPH very gratiously sent me a white Caanoo for development (and no, I do not mark something up just because I got a freebie! This is my ‘first impressions’ but rest assurred I will be fair .. buying me out costs a hell of a lot more than a device! GPH if you’re listening – send me a Camaro and we’ll talk!)

Now, my wordy stream of consiousness ‘first impressions’ .. sorry for the length!

Main stuff:

In hand ergonomics and look: Pretty fine, I have to admit; it reminds me of the old GP32 though of course not as bulky or rounded. It feels pretty solid though does have some creek in a few places when you twist it a touch, but nothing to worry about (and quite possibly is a result of the stylus slot.) I liked the Wiz when it came around due to its pocketability and gorgeous screen (compared against the gp2x), but after the device-honeymoon phase I found the small size and tiny d-pads buttons more annoying than beneficial. In the end when I’m commuting I don’t really have down-time (usually driving or with my little one) and so the pocketability isn’t really of value to me. All told, the Caanoo is a much better looking and feeling machine if you can deal with the size. The larger screen and better button placement is all win. To sum — its actually a pretty attractice machine, is solid feeling, and everything seems placed well. It _immediately_ replaced my Wiz. (Disclosure; I got sent a developer Wiz (GPH is _really_ cool in this regard, they’ve been trying very hard to make good with the developer community; this is doubly commendable for reaching out to the English and Spanish homebrew communities.) I also _bought_ a Wiz to show support and get the same specs as everyone else.)

Size: The unit actually fits loosely into a PSP sleeve, so its smaller than the PSP; it should fit into a jeans pocket pretty well, but it is a little large. This is a benefit to me (since I don’t carry gadgets in pocket for the most part), but may be a concern for some; those people can stick with a Wiz. I’d say the size is a win.

Screen: Sure, its no OLED like on the Wiz (what was a goregeous bright little screen we must all admit), but its nice and big and sharp; it doesn’t have the black levels or intensity of the OLED but as a mobile dev I long ago grew accustomed to these sorts of screens and I think most are in a similar boat – but the size and crispness go a long way. (Okay sure, I’m a purist in some regards and collect arcade machines, with their giant 30 year old fuzzy-pixel monitors, so you’d think crispness wouldn’t matter; but in the small mobile space, crispness works really well. The blur in big arcade monitors is great when your pixels are the size of your finger ;) I did notice in some lighting conditions and on-screen colour situations that it was a touch brighter at the bottom than the top, but its barely noticable. Being a TFT (I think?) screen I thought it would actually be a little worse (more like the PDAs of years gone by) but its an excellent screen without too much ’stage bloom’ on one side like most TFTs have. In daylight visibility is not too shabby, which is a traditional weakness of TFT. It is pretty odd that the screen plastic overlaps the display by a little bit, but I suspect this is to cover another traditional TFT oddity — the ‘white band’;
many LCD screens have a bright white single-pixel boarder round the outside – not too annoying really, but odd nonetheless. Either way, the casing covers probably 4 a pixels on each side which is a little much. (Given a large set of the use-cases will be emulation, video and music playing its not a problem — most arcade or home console games focused most activity on the middle of the screen to avoid bezel problems like this, and of course music doesn’t care. Applicatoins may have to compensate however, and your Galaga game will suffer a touch with enemies who deliberately hide in the bezel. So instead of calling it a 320×240 screen you might want to call it a 310×230 and center it :) The screen is a touchscreen and seems as accurate as PDAs of yore as well, unlike the pretty atrocious touchscreen on the F200 and Wiz. I’ve not worked it hard, but it doesn’t seem to have the big dead-regions of those guys. So its a great screen, but it does have some trim.

Joystick: An old rant is that I actually liked the wobbly top heavy GP32 joystick, and really liked the Neo Geo Pocket stick; but its been years since I really used those so I can’t fairly compare. The Caanoo has a joystick and not a d-pad or discus-of-control, and it is clearly superior to the GP2x F100 stick and the really goofy F200-button-pad-thing; the Wiz d-pad was not too mechanically bad, but just too small for my fingers and so just worked out not to be too good. With all of this behind, you can pretty much argue the Caanoo stick is right off the top better than anything GPH has done, and more to point — it turns out to be a fairly accurate controller as well. The material is grippy enough to not have your thumb sliding off and feels good, without sticking too far out. Now, I’ve not looked into the APIs or hardware to know ‘how analog’ it is or if the firmware or apps are mapping to digital ordinals on their own and with what approach etc etc, but with Mame4all (the only app I’ve tried so far as not much is natively available yet) it works out quite well; trying hard-ordinals like Pacman, no problem; trying shmups like Sky Shark / Flying Shark (one of my favourites, and actually the first actual cabinet I bought :) works pretty well though a little diagonally at times; I tried to get a good feel for the stick using Gauntlet (I own two of those cabinets ;) and while a thumb controller can never compare to a real joystick, it works pretty well when trying to line up shots to the creature-spawn points. Now, I suck at playing games, so not being 100% precise is probably a large part my fault (I’m nbever all that precise with dpads either), but this is a good stick, one of the very best mobile controllers I’ve used. (I’ve not really used a NDS enough to say, but I find the PSP d-pad anoying in the first few iterations but pretty good on the PSP-slim (PSP-2000); I’d say this stick is about that good, though a totaly differenyt kind of animal of course.) I’ve not tried the stick in a more purely analog mode, and will have to get to coding before I get a good feel there, but I feel confident in saying — GPH did good here. Controls are a traditional weakness of GPH, and I think they nailed this one pretty well. The stick does have a push-for-button, and its pretty stiff so might be usable; in general I just hate push-me buttons on a stick since I want to whale on the stick and not accidentally press buttons, but this one may be okay (like in an xbox or ps2 controller .. stiff enough you don’t hit it normally, but good in a pinch.) the corresponding d-pad buttons are well placed and well spaced (the opposite of the Wiz), and work well.

Battery: I’ve not measured to see the lifespan, but it seems pretty good; the only point I can make is that it is not designed to be user-removable. I’ve not disssembled yet to know if it in fact _is_ user changable or if its custom and hard to access, but its important to note. I think the PSP did it well where batteries are available on every corner, but most devices have a built-in and unremovable battery, so you can’t fault the Caanoo for it. Still, I prefer otherwise. But its not like the battery will not last as long as you’re using the device (a few years), so not really a concern.

Specs and Utility: It perhaps need to be said, the unit is more or less similar to a Wiz in specs; its sort of a Wiz v 3.0 — larger (a win in my book), with improved interfaces and buttons and the g-sensor and so on, but still more or less a Wiz. Technology is not moving forward too much here, but ergonomics is. This is a game-playing device, really oriented to 8- and 16-bit style of games (witness the emulated games in the FunGP store), and not a general purpose gadget per se. I honestly don’t think it’d make a good book reader due to the low rez of the display (and the built in book reader is really what I’d call a ‘text file reader’ since it doesn’t do any ebook format of note), but as an mp3 player, emu player, etc, it is well designed. Obviously, and especially being Linux based, you can push its limits and go nuts (that _is_ why we’re all here, right?), but I don’t think it’ll really be _fun_ to use as a VNC terminal say. But for your retro gaming and general hacking, it actually seems pretty ideal, what with that screen rez being pretty ideal. I don’t mean to suggest the unit is designed for Linux geeks, it is _very_ accessible for avergae joe.

Boot time: Very fast! I’ll have to check what they did there.. nice :)

Minor stuff:

SD Slot: Good old solid SD slot, and with a port cover (like most ports on the unit, nicely done!); a minor beef is the slot is a little over recessed so hard to push the SD in that list little bit to stick it in place or eject it; not something to concern over.

Power Switch: big and Battlestar Galactica style, I dig it; a big orange switch on the side .. nice and easy to work, no sloppyness. When I saw pics I thought it looked goofy, but in person.. great. On the left side of the unit is a big LED to indicate on or charge state, and and again .. big and BSG style, and awesome. The looks are good.

Headphones: As with most devices, the headphone jack is on the bottom; I wish otherwise, but what can you do? Typical for these kidns of devices.. I don’t know why :)

Shoulders: The ‘trigger’ buttons are mechanically fine, but as with any small handheld, they’ll be positioned in an awkward place; theres nothign a mobile can do about it, so these are pretty good in terms of the mobile space.

Menu and software: its ‘just a menu’, which is to say it works, swooshes nicely and has some animation, but it stays out of the way and gets to the point pretty well, so good enough; I’m not a UI guy (as in, I’m a pretty forgiving guy when it comes to menus and hardware; sometimes I wish I was more picky, but blessedly I’m not!) So the menu seems great. I mostly look at a menu as — its either there, or its bad, so this is good — I don’t notice it, so it did the right job!

Disliked:

The Speakers — this is the achillies heal of the Caanoo. It doesn’t sound too bad, but it does sound a little weird — like sound coming from the next room over down the hall; its obvious the sound is being pointed out the back and sounds a little muffled as a result (especially if your hands accidentally cover the grills, but thats not too much an issue.) A few times I found myself wanting to subconsiously flip the unit over to hear clearer. The sound is crisp in headphones of course, but the speakers facing backwards is just wrong. I appreciate the mechanical realestate challenges, but it has to be said .. the speakers are of good quality, just placed in the wrong spot.

Untested:

I didn’t try the motion sensor or feedback-buzzer.

I didn’t try Wifi since their Wifi-module is not available yet; I must say I find it very distasteful to list the unit as having Wifi (with an asterisk saying an external module is needed) — check the review sites and videos, and you’ll see most of them miss the asterisk and assume the unit actually has Wifi, when _it does not._ Anyway, browsing on the small res screen is not the best thing ever (check your PDAs of yore on 320×320 of 160×160), but it’d be handy for multiplayer gaming or game-ladders, etc. It should be pretty good on the Caanoo as with any Linux device, but its not something they should push in advertising per se. *shrug*

I didn’t try the GPU (or really try to push hard performance. This sort of machine is not designed to be a speed demon, but is instead designed to have the specs good enough and then some for its target of games.)

Final word:

In the end — I thought the Caanoo might have come too soon and not been enough of an upgrade; if you’re tight for cash or pocket space this might still be the case. But I gotta say – given a Caanoo, _I_ would never go back to the Wiz — the larger size is great for me and I really think they’ve got a hit for ergonomics and changes. Its not a giant leap forward, but its definatley the way to go for new buyers or those looking for a change.

Author: skeezix Categories: Day by Day, Gaming, Technology Tags: , , , , ,

Getting up and going with a crosscompiler for Pandora (ARM) in 5 minutes

June 2nd, 2010
Comments Off

This is a quick write-up just to provide a tipping-off point; if you would like a more in depth article, let me know (skeezix skeleton org) and I can write up something when I get a moment; I’m hoping that a few tidbits here will just provide some ‘eureka!’ moments and folks will be be off and going :) I wrote this seat of my pants, so don’t expect it to be very well organized!

Components you need to build ‘hello world’ for your Pandora (or other non-native platform.): a toolchain, libraries, and somewhere to run the toolchain.

Where to Run:

This usually a ‘given’ — you run on your PC, the very same one you’re using to run your web browser on

If you’re a little nutty like me, theres lots of other options, but normal folks – just skip this:  You could well build on a remote shell server, or your Pandora or smartphone, or any number of options (cloud based server?) So for most people.. think — you need a toolchain for Windows to run on your Windows box (or under cygwin, say.) But what I do is run from VMs, which I copy between USB and hard drives and all over the darned place. VM – a virtual machine. I’ve built up a number of them for various specific uses, and carry them around on a flash thumb drive (pick up a 16GB or 32GB flash drive for your keychain, say. Boot time is pretty fast actually, but shutting down the VM and storing the RAM snapshot etc back to a flash drive takes a few minutes. You could copy it to the local hard drive before/after if you wanted.) You could use the VM on a machine and never move it around, or transfer it on SD cards, whatever you like to do. (ie: There are uses for all combinations .. you might never move the VMs around, but want 5 different testing or build environments, or maybe you need move them all around all the time.) As an aside, an interesting hack is to make your flash drive bootable — I can boot from my flash drive into an OS, and I can run the VM off the flash drive to get the VM. To do both, I make a small bootable OS that has VMWare Player on it (use VirtualBox or whatever you prefer), then mount the VM and go. Or just use VMWare Player on the native OS wherever you’re sitting — so on the flash thumbdrive, I usually carry the VM, VMWare Player for installing to various OSes, and a bootable OS on the thumbdrive itself :)

I bought VMWare Workstation years ago and still use it, but you can get away for free with VMWare Player (and hand edit the conf files, or use online tools to generate them.) But VirtualBox and a half dozen other products are free or vary in price, so look around. Either way though you just get a VM hypervisor, a blank disk image (I keep zipped blank drive images around in a tiny zip file; since they’re _empty_, they compress like 99%, so one tiny zip has 1GB, 5GB, 8GB, 16GNB disk images, and its a few K of zip :), and OS .iso’s — suck down a Ubuntu .iso, and you can set it up into a VM in 20 minutes.

But for most people, they will just run the toolchain in their native OS.

Toolchain:

This is the ‘confusing part’; you can either roll your own (ie: build a cross compiler from sources, which takes an hour), or you can pull down someone elses prebuilt toolchain.

For purposes of the 5 minute setup, just grab CodeSourcery’s prebuilt gcc for the command line:

http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057

When using a prebuilt toolchain, just pick a directory and unpack it. Add it to your path, and you’re done.

ie: Create /code/toolchain and extract it all there, then add /code/toolchain/bin to your $PATH. Now you’ve got arm-none-linux-gcc (for example.) In CSL’s case, it comes with some basic core libs (like glibc) etc, so you can spit out Hello World there.

Consider: Extract, set path, build hello world — thats what, 1 minute of work, after the download?

Libraries:

For any remotely useful application, you need to link against libraries. And I dunno about you, I really don’t want to compile 200 libraries to get going, but you could do that. What I do, is use a copy of the Pandora firmware and pull all the libraries out of that.

We didn’t modify any headers, so you can compile against whatever Linux headers you already have (/usr/include); if you’re on Linux and don’t have them, you can ask your package manager to fetch them for you. If you’re on Windows, well, suck them out of a Linux distro’s .iso :)

As I code in a Linux VM (on a linux box, or a Mac, or Windows, or whatever), the Linux VM has my native and cross compiler toolchains and all the headers.

An OUT OF DATE copy of the Pandora first firmware is here:

http://www.codejedi.com/pandora/libpnd/pandora-xfce-image-omap3-pandora-20101705-image-for-checking-fixes.tar.bz2

Look in /usr/lib there, and you see a pile of libs you can use for linking.

Remember, those are already on real Pandora’s, so you don’t need to include them in your app or pnd-file. They’re _just for linking_, and then when you build hello.bin for running, thats the only file you need to copy around.

NOTE: Your toolchain’s linker naming policy might be different, so libfoo.so.1.2.3 in /usr/lib of the firmware might not get found when you -L to it; I created a short sh-script to ln -s to common names.. so libfoo.so.1.2.3 also gets a symlink of libfoo.so.1 and libfoo.so, so that it’ll be found by my cross compilers ld.

Tieing it all together:

1) Preparation; -> well, setting up a VM might take you 20mins, but I don’t count that in the timer; I already had one :)

i) Set up your VM, or whatever OS you want to run your toolchain in. ie: Install an OS. Make it have Linux headers, which is probably just default for many Linux distros, or maybe you need to add the basic developer package. (For random libs, you’ll want to pull down other packages too.. for SDL, your Linux distro will have the native libSDL, but not the SDL headers; so you might well need to apt-get sdl-1.3-dev (or whatever) to get the headers. We really should supply a list of packages to get, so that you have all the headers in your native linux that the Pandora would have libs for. But I digress, and its not hard to piecemeal them over time.)

ii) Build, or suck down a prebuilt, toolchain -> depends on your bandwidth speed of course :)

2) Set it up

i) Set the toolchain up in some well defined path; Try something like /devo/toolchains/arm/codesourcery/2009-q3/ (say), so that you have …../2009-q3/bin with the tools in it. It will use relative paths, so can find oits own libs and bits it needs. -> if using CodeSourcey (say), we’re saying: untar or unzip the files, and that takes .. 2 minutes.

ii) Set your PATH; something like “set PATH=${PATH}:/devo/toolchains/arm/codesourcery/2009-q3/bin”; then when you type arm-none-linux-gcc and hit return, it’ll say “no input files” instead of “file not found”, and that means you’re good to go. -> 30 seconds

iii) Extract the Pandora firmware to /devo/pandora/firmware/prerelease (say), so that …../prerelease/usr/lib has all the lib*so* files in it. -> 2 minutes

— thats it, 5 minutes of setup :)

3) Use it

i) When compiling., specify -I/usr/include – many prebuilt crosscompilers will drop native paths (rightly so), thinking you’ll tell them somewhere else to go; but I just use the native headers anyway, so -I/usr/include works fine

ii) Specify a lib path; something like -L/devo/pandora/firmware/prerelease/usr/lib (or whatever) will make most things happy; sometimes you’ll need to specify a hint to ld so that when it pulls in one lib, and that lib depends on another, it’ll still find the subsequent ones; its all pretty easy stuff.

iii) Set your CC/etc in the Makefile, since you want to use arm-none-linux-g++ instead of “g++” (the native one.)

Piece of cake!

I know, I’m glossing over quite a lot here, but feel free to ask!

Pandora.. plumbing!

February 17th, 2010
Comments Off

We’re nearly there with the Pandora firmware; really, we’re aiming several arrows at once — the hardware, the kernel, the OS distribution, and the userland. We’ve got a body on each piece really, with some overlap.

Most people never think about the plumbing; you press a button your ipod, and the hardware clicks, the OS clacks, and something happens. But we developers build that stuff, make it all happen. Make it so you don’t have to think about it.

The last couple days, I finally got around to hooking up the Pandora button to pop up the menu; vimacs is our Script Lord — that man knows some shit :)  Likewise, you close the device lid and the screen goes off, and we were even so generous as to make the screen come back on when you open the lid. Just tonight I whipped up blinkenlights — when the battery gets low, the appropriate LED will throb at you, a friendly suggestiong to plug in or save up. And lots of other hacking lately, to get the user experience a little tighter, a little more smooth. EvilDragon, he’s good with figuring out what people want, and helping guide us .. arrows.

Good times; I really enjoy being a plumber, sometimes :)

Author: skeezix Categories: Gaming, Technology Tags:

Get off my lawn!

January 2nd, 2010
Comments Off

Just so we’re straight — I’m one of the guys who thinks that racing to the bottom in iphone pricing is a sure way to kill the market*, but let me say it this way — the established price for a game is what, $3 these days? Premier titles get yelled at for being $5 or $7, and those are from Capcom with a multi person team behind them.

When I was young, we went to the arcade, and we bled 25c _per play_, and $1 per play if it was Dragon’s Lair.

Bah!

* as to destroying the market, this isn’t the point of the post.. but for those nigglers, heresd the condensed version: consider the risk in even making an app for iTMS when Apple can refuse to sell it for completely arbitrary and random reasons, and frequently does; consider that just by signing up to the store binds you to an agreement saying once you code an app for iTMS, you can’t sell it anywhere else .. even if Apple rejects it (!). All that aside, with folks racing to the pricing bottom, it provides gratification to the buyer now, but only guarantees a minimal investment in quality up front since you’re balancing rejection odds versus a pitance in sale price versus being in the top-25 which actually might make oyu a few bucks. From all accounts, its a brutal market. Yay!

Author: skeezix Categories: Entertainment, Gaming Tags: , , ,

Hacking on the emu cab (part 3)

September 16th, 2009
Comments Off

As I already have a pile of arcade gear, why am I now bothering with an emu cab? After looking down my nose upon such projects for so long?

A few reasons really; this sort of kit can serve up games ill-suited to the cabinets I have now — consider driving games with steering wheels, for which I have no cabs. Cabs are big, I’m only keeping a couple around :) Another is that you can pack a few games into it and fire them up without switching arcade game PCBs and mucking with wiring, etc.  Thats a heck of a lot of convenience, and also makes it more interesting to ‘just play’ .. wander into the basement, fire it up and go .. no ‘ah shit, need to change which game is in the harness, bah’.

But also, maybe I can stop worrying about collecting PCBs so much; I’ve got quite a few, and a lot of doubles (for parts, say.) I’ve got some original Pacman PCBs .. not just one that is all I need, but a couple spares in case that one rots out. Likewise for Galaxian, Galaga, Donkey Kong, and so on through the classics. Also for ‘pirate boards’ of those (also called ‘copy boards.’ They were common in some towns, such as Toronto .. companies popped up to manufacture clones of real games sold at a fraction of the price; these bootlegs were usually inferior quality, but they ran the games well enough. Oddly, some of them actually improved on the original hardware to get rid of idiosyncracies the real manufacturers built in…) — plus all the rare or weird games I just happen to like, or games that I’d like to wire up someday but don’t have the hardware for, etc. I can reduce the size of my collection without as much risk now, which might be nice.

My cocktail cabinet is a great project machine, I’ve had a lot of fun over the last 10-15 years screwing with it. Someday though I’d like to get a really good condition cabinet that has a big sharp display and looks great, with lots of internal space.. say a Killer Instinct machine, which has nice sideart. This is a cocktail machine, so tight on room, but fits in small places… but its not much to look at. This PC setup inside though could transport to any other JAMMA machine in just minutes .. pull out the belly bits, stick them in another cabinets belly, and good to go. Thats a feature in my mind. (By the same token though, a PC is a heck of a lot more fragile than real gear.. the hard drive could die, and *poof*. Still, most of the hardware should be pretty resilient..)

And its a cool project!

Author: skeezix Categories: Entertainment, Gaming Tags: , ,