Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Porting Aquaria To the PSP

Soulskill posted more than 4 years ago | from the welcome-to-your-new-home dept.

Open Source 25

Apple Prophet writes "Just a few short weeks after BitBlot released the source to Aquaria as part of the Humble Indie Bundle, Andrew Church hacked up an ambitious homebrew port of the game to the PSP. He wrote a detailed synopsis of the technical challenges in an article on the Wolfire Blog, and of course, contributed all of the patches back to the project so anyone with a homebrew-equipped PSP can try it out. Check out the mercurial repository for the source."

Sorry! There are no comments related to the filter you selected.

Porting my cock! (-1, Troll)

Anonymous Coward | more than 4 years ago | (#32783320)

Right into your mother's mouth!
Suck it bitches!

Ecco the Dolphin ripoff. (-1, Offtopic)

Anonymous Coward | more than 4 years ago | (#32783342)


Re:Ecco the Dolphin ripoff. (1)

X0563511 (793323) | more than 4 years ago | (#32784538)

Yea. For the first 10 minutes.

I'm guessing your attention span was too short.

Speaking from experience (2, Informative)

MichaelSmith (789609) | more than 4 years ago | (#32783346)

Don't post mercurial repositories to slashdot. Its a fantastic version control system and I use it for all my personal work and a lot of my professional stuff, but exposing a python runtime to slashdotting is not going to work very well.

If I did it again I would just point directly to the source files and let anybody who really needs to see the revision history search for it.

And people: please go light on this server.

It's protected (hopefully!) (3, Informative)

achurch (201270) | more than 4 years ago | (#32783358)

I wasn't the one who posted the story, but I added a Coral Cache redirect for Slashdot referrers after the Wolfire column went live (just in case -- even though we all know Slashdotters never RTFA). People who actually want to clone the repository will presumably know not to use the Coral Cache URL, people who are just browsing shouldn't notice a difference, and hopefully my server will survive the onslaught. (:

Potential Wii/console ports (4, Informative)

Robotron23 (832528) | more than 4 years ago | (#32783382)

From the game's website, screenshots, and hardware requirements it seems possible that this game could be ported to the Wii. The simplistic control scheme (mouse only, keyboard can just be used for starting/exiting game) could easily have it work on pretty much any gamepad for any system. The technical hurdles the dev went through just to get it to the PSP (a platform of much less popularity than several others) suggests he possesses the resolution to get Aquaria on other systems.

The size (200MB) is within Wiiware limits, although I've become skeptical of Wiiware because of the massive price discrepancy between that store and the prices indie developers charge online. Obviously Nintendo wants a worthwhile profit, but when one can get PC versions for a tiny fraction of the Wiiware cost which are largely fixed for a long time, sometimes not going down ever...tends to make you wonder if Nintendo would even be willing to sacrifice anything at all for a much higher exposure of indie titles. But, that's expected of most corporations obviously.

Twenty years ago, games were not far off what many indie titles are today - made by between one and five people with the costs minescule compared to the development houses of today, and involving simple but entertaining and addictive concepts. The difference is that these games circa 1990 sold for $30-50, even some simpler titles that required much less work than certain more elaborate games of the day (Monkey Island, Mercenary series etc) . Considering one can pick up some of the best indie titles for under $5, and get much more hours of entertainment than if that 5 bucks went on a movie ticket or an exorbitant hour using Starbucks's pretty damn good value.

Re:Potential Wii/console ports (1, Informative)

Anonymous Coward | more than 4 years ago | (#32783476)

The size (200MB) is within Wiiware limits

That's far, far over the WiiWare limits. There's only 512 MB storage built into the Wii, and about half of that is reserved for various purposes. There'd be very little space left over if games that large were allowed.

Re:Potential Wii/console ports (1)

Robotron23 (832528) | more than 4 years ago | (#32783558)

That's completely correct; apologies for my error. Given that one can purchase a cheap SD card of at least 2GB to insert to the front slot, it seems the actual size limit of about 40MB for Wiiware indie titles is restrictive.

Towards the end of the Nintendo 64's life cycle, Nintendo promoted a chip that allowed more demanding games (Donkey Kong 64 etc) to work. Things like the MotionPlus are sort of echoing this, being designed for a later and somewhat narrow group of titles (thusfar).

Why they can't push SD cards more, whether in bundles or through somewhat more obvious methods in the menus/websites I do not know. I'd hazard a guess that those who buy many titles from virtual console or whatever end up being clued in anyway. But that doesn't make the limit for indie games go away.

Re:Potential Wii/console ports (2, Insightful)

X0563511 (793323) | more than 4 years ago | (#32784550)

<media-exec style="intelligence: low; paranoia: high; pockets: deep">Cause the dirty pirates can use them!!!</media-exec>

Re:Potential Wii/console ports (1)

arodland (127775) | more than 4 years ago | (#32934114)

Until a recent (late last year?) update you couldn't *do* anything useful with the SD card. You could put music or pictures on it, and you could put games on it if you didn't want to play them. Anything you actually wanted to run had to be moved back into main storage (moved, not copied, due to piracy paranoia), and then moved back when you were done with it (it couldn't just be quickly deleted because you had to move it the first time, due to piracy paranoia). So the existence of more than one app over 150MB would have completely crippled users' ability to enjoy the system.

Why they haven't changed the limits since then? Meh. Nintendo has never really made intelligent decisions.

Re:Potential Wii/console ports (1)

Goyuix (698012) | more than 4 years ago | (#32783482)

This would be a crown jewel in the Wii Homebrew scene. Not that there aren't plenty of amazing titles already there - this game was [unintentionally] designed to be played with a nunchuck and wiimote.

Re:Potential Wii/console ports (2, Informative)

SheeEttin (899897) | more than 4 years ago | (#32783570)

Sounds good! here's [] the how-to for setting up devkitPPC (the standard Wii homebrew toolchain).
I don't know what Aquaria uses for graphics, but if it's SDL, running it on the Wii should be trivial.

Re:Potential Wii/console ports (3, Interesting)

achurch (201270) | more than 4 years ago | (#32783782)

From the game's website, screenshots, and hardware requirements it seems possible that this game could be ported to the Wii. The simplistic control scheme (mouse only, keyboard can just be used for starting/exiting game) could easily have it work on pretty much any gamepad for any system. The technical hurdles the dev went through just to get it to the PSP (a platform of much less popularity than several others) suggests he possesses the resolution to get Aquaria on other systems.

Just for the record, this PSP port is totally unofficial -- I did it mainly for the challenge of porting (and because I enjoyed the heck out of the game). That said, judging from the Wii's specs, I don't think a Wii port would be too difficult as long as you don't have to copy textures into GPU RAM for drawing. The Linux port uses SDL and OpenGL, so if there's a functional SDL/GL port for the Wii, that could save a lot of time.

Re:Potential Wii/console ports (1)

arodland (127775) | more than 4 years ago | (#32934164)

SDL/GL is available on Wii Linux, but running a game under Wii Linux means mediocre performance and only running on "hacked" Wiis. Going the "official" route would require a much more thorough port of BBGL into Nintendo-approved bits. And lots of direct cooperation from Bit-Blot. And a few grand and some legal hassles. :)

Re:Potential Wii/console ports (1)

CompassIIDX (1522813) | more than 4 years ago | (#32783956)

Don't forget, adding insult to injury, WiiWare games are inextricably linked to the system that downloaded them. If anything ever happens to that system, those games are gone forever.

Generation clash. (2, Insightful)

Moskit (32486) | more than 4 years ago | (#32784730)

This is an excellent article, showing how many things are often taken for granted by modern software developers. Mr Church did a great job not only porting the game, but also taking time to write about all these things.

For anyone who started programming in "ye good ol' times", techniques used by Mr Church are fairly obvious and were in everyday use. Memory manager, optimizing file speed access - all of that has been used in many games written in 80s/90s. Games had "resource files" with their own index tables, games used own memory managers because C/C++ did not provide ones suited to the task, games' memory usage had to be optimized because PCs typically only had 640KB usable for programs (later a bit more thanks to extended/expanded memory access), and graphic cards did not provide any shaders or other hardware acceleration for games at all, just a tiny bit of memory.
Operating system (DOS, Windows 3.1) did not help a lot with things like memory management, either.

Judging just by how modern games and applications work, programmers no longer spend time taking care of such optimizations. They just throw the problem at OS or memory (4GB required), making software run as slow on fast CPU, as older optimized software ran on 100x slower CPUs.

Re:Generation clash. (0)

Anonymous Coward | more than 4 years ago | (#32784832)

None of those things you mentioned went away in the game software engineering world. Certainly for console dev they're an absolute necessity.

More of a progression, I think. (1)

achurch (201270) | more than 4 years ago | (#32786014)

I wouldn't call it a generation "clash" so much as a "progression" from one generation to the next. As one who's been programming for a fair number of years, I certainly advocate knowing the details of what's going on at the lowest levels; if you're not familiar with how caches work, for example, you might have trouble figuring out why a loop over a 2-D array is running so slowly (answer: you have the loops inverted, so every array access is missing the cache). For those who have learned programming in more modern environments, I hope my column has been informative. But at the same time, if your target environment has the capability to take care of all the details for you, I see nothing wrong with taking advantage of that. If your PC can generate new kittens faster than STL kills them off, then by all means, blast those felines to bits. (: After all, that's the whole point of progression in computer technology -- to let the programmer focus more on the high-level problem and less on the low-level nuts and bolts.

Also, just in case it wasn't clear from the column, it was not at all my intent to criticize the original software. There are certainly things that I would have done differently, but in my own playthrough, the game ran nearly flawlessly in its target environment. Creating a complex piece of software like this is no small effort, and I have nothing but respect for Alec (Holowka, the developer) for completing his work to such a high caliber.

Yup, not the best English here. (1)

Moskit (32486) | more than 4 years ago | (#32786242)

Agree that "clash" is not the best expression - I meant a difference, not fight. You are right correcting that.

Knowledge is the key, absolutely. In programming just like in many others areas it became more and more complicated to know and understand all past details - there is just too many of them. People working longer time (like you) have a certain advantage as soon as development is done on something else than the most current generation of hardware and tools (that take care of some details).

I did not get your columnt as criticism at all, just pointing out very interesting facts that are well worth knowing :-)

Thank you for valuable comment, keep up great work just as you did over all these years!b

Re:Generation clash. (0)

Anonymous Coward | more than 4 years ago | (#32788952)

Here's a serious question for all you programmers.

I started learning C++ about a month ago. I've been reading about DOS programming and DirectX and OpenGL and such. And holy fuck . DOS VGA mode 13h: here's 320x200 pixels, go hog wild. Simple. Sufficient.

Why the hell is there nothing like this in a modern OS? Jesus Christ, the mountain of shit you have to code to draw a single pixel to the screen is ridiculous. It's at least 50 lines, with 20,000 more in headers and includes and libraries and dependencies. I don't want to download a 600MB SDK to write a fucking pixel, Microsoft. How about I write a byte to a location in memory and you switch the screen mode, or give me a window with X*Y pixels? Can I not just be given a framebuffer and goddamn draw something?

No wonder programming isn't attractive to the general population. VC++, the definitive Windows IDE, DOESN'T EVEN INCLUDE THE FUCKING WINDOWS HEADERS. Very clever MS, very funny indeed. Well I like logical puzzles, but this is pure bitch-work I shouldn't have to touch with a ten foot pole in the year 20-fucking-10. Aren't we supposed to be standing on the shoulders of giants here? But the shoulders aren't there. They haven't been built upon in 20 fucking years!!

Abstraction after abstraction after abstraction, for what? It's not easier. It's not faster. I just want to draw a fucking line.

Re:Generation clash. (1)

grumbel (592662) | more than 4 years ago | (#32791476)

Why the hell is there nothing like this in a modern OS?

You can use SDL and get at least reasonably close to what it was in DOS with a bit more comfort and flexibility.

Anyway, the reason you don't get pixel putting in your average OS API is simply that hardware doesn't support it properly. Directly accessing graphics memory is slow and thus instead of accessing the pixels directly, you tell your graphics card to draw a polygon or if thats to high level, you prepare a piece of system memory by pixel-putting and then upload it the the gfx card in one go. Moved memory in huge chunks around is just a lot faster then in small ones.

On top of that abstraction also provides flexibility, you can send your graphics over the network, use different resolutions and color depths, multiple monitors, access a lot of input devices with a common interface and stuff like that. If you would directly poke around in memory, you couldn't do any of that.

That of course doesn't mean that all APIs are great, most are a mess and more complicated then they have to be, but they still provide a lot of things that we just take for granted, that would actually be quite complicated if you would want to do them all yourself.

Amazing (1) (1120467) | more than 4 years ago | (#32785784)

This is amazing work. I bought the Humble Indie Bundle specifically to get Aquaria (and support Linux indie games!). The fact that he managed to port a working version to the PSP so quickly is awesome. Bravo. *goes to throw copy on PSP*

Where do I download? (1)

keith_nt4 (612247) | more than 4 years ago | (#32786196)

Okay so maybe I'm missing something obvious here but I don't actually see a download link for the PSP port any where on the site. Is it one of those compile the source yourself sorts of things? I don't see anybody else asking so I must be missing something obvious...?

Re:Where do I download? (0)

Anonymous Coward | more than 4 years ago | (#32789140)

Ah, yes. Unfortunately there's no binary to make life easy on us. Open source isn't the same as free.

From the original developer's blog [] :

Getting the game data:
The game data is not shipping with the source code. Please buy a copy of the game (your copy from the Humble Indie Bundle will work just fine).

Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?