pouët.net

Arrakis by Kakiarts [web] & Top Right Bottom Left [web]

                                                         __
                                                      ,-\| `` _
                                           __  __   ,'   |  _.[\
                                        ././/-<' `-/|    `p'    \
                                    ../'''     \  ,''.  ,-'\   __|
          ........................./ `.` . |    \ \  ]. oY--\,'  |......
          |            __-..      ,' ` \ 'pd     \ `.d/\_    \   |    ||
          |            '`:-]/ .   |  -]U|.P/      `\'\  '-.=--^..'    ||
          |          oo:--  :  `--\  b \ |      _.. -.` ./\.          ||
          |      _.-''__,.-'       \  "-     ,/].,-/\ ` b  d          ||
          |    ,' ,-''             .`+-.    /'',_..  `...'I_          ||
          |   /  /_                '.\  '   V. /8d8|   `O./8'`        ||
          | ,'  J`                  |.       \_`=::  |88/   `         ||
          \/,o'/'                 _ |./-.     |'\'' <J8P'             ||
          P /'/                  ,'|/|L'\,   ./Y ' _ "8               ||
          \' ,|        _  __  /b/  /  `\/\//:]L  L `>o/_,..           ||
          '/ "|      `/ "''YY'        ..\`P    \._:d./,''  \          ||
         |b'  \        \.              \\|'\      _._//\</\I|         ||
         d\    \ .       ` _          PU'' '"''''' '  `8\\]/          ||
         O'     `Y          `-.'__    8.             -/ |\/           ||
        |'        `J\           ./`--.|             ,d  'P            ||
        |            `V\        |     _\ .    _  __P'                 ||
        |,         /    \_.  _   o _,/\\[ `-"--"-'                    ||
         |       ,'       -" 'Y'' `b\.P' \                            ||
         |      /,'                 \   . |                           ||
         |     |,d                   '\  \|                           ||
         ||    |'|                  <h.. |P                           ||
          \      |                   \\/ /          _                 ||
          8.     '.|               /\| P/     _,.--XX`-o_             ||
        ,' ].     ``  _           ./ '/   ,/-X- XX   XX  `..          ||
       |   / `.     `d/\__    .,pY'/-'    `\  XX  XX   XXX  `..       ||
       |  ||   `-P.     P'\.,.\    '\.     `8.  XX  XXX   XX   `o_    ||
       \.  |       `---o/    "-=../=/8".._  'Y\   X    XX   XX    \b  ||
        \  '.           `-- ._      b.\ ( -o-.`\   XX    XX   XX    YoJ|
         `. ' _               `._ Y".].]. -.8/ `2\   XX    XX  _,.b::-"L
          |`._'-._               -` ..-PYb=:,|   \\_   X _,.ooP=-"'___.Yd.
          \___:\. '-..______________:::__::==_____:/o.==8\od=.o--/""""':J|
                 '-._ '-._                          \:==....=------''''
                    '`-._ '".._
                         `-._ '`-._
    ##    ##  ########  ##   `##_ ##-..########  ########  ########  #######
    ##  ##          ##  ##  ##   `##_   `-._ ##  ##    ##     ##     ##
    ########  ########  ########  ## `-########  ########     ##     #######
    ##    ##  ##    ##  ##    ##  ##   ##..  ##`b##  ##       ##          ##
    ##    ##  ########  ##    ##  ##   ########  ##    ##     ##     #######
                                              `b   `.
                                                `.   \.
                                                 `.   `.
                       .x.                         \    \
   |||||::::.. .     .d888b.     . ..::::|||||$$$$$|     |0000000000000000000
   |||::::.. .     .d8888888b.     . ..::::|||||$$$|     |8800000000000000000
   |::::.. .     .d88888888888b.     . ..::::|||||.'     ||888000000000000000
   :::.. .     .d888888888888888b.     . ..::::||||      /8888880000000000000
               8888888888888888888               |     ,'
               8888888P'.`Y8888888               `----''
               8P'88P'.d8b.`Y88`Y8            ______       .------.  ______
       .d88888P'  P' d88888b `Y  `Y88888b.   /      |__ ___|_     |_|      |
     .d888888888P'   8888888   `Y888888888b. ^       _/'    _>    '  |     |
   .d888888888P .d88888P'Y88888b.`Y888888888b|      |      |         |     |
 .d888888888P'.d88888P'   `Y88888b.`Y888888888b.    |      |      .  |     |
 `Y888888888b.`Y88888b.   .d88888P'.d888888888P'    |      |      |  |     |
   `Y888888888b.`Y88888b.d88888P'.d888888888P|      |      |      v  |     |
     `Y888888888b.   8888888   .d888888888P' |      |__    |         |     |__
       `Y88888b.  b. Y88888P .d  .d88888P'    \_______/____|\_______/<_______/
               8b.88b.`Y8P'.d88.db
               8888888b. .d8888888
               888888888Y888888888
   :::.. .     `Y888888888888888P'     . ..::::|||||$$$$$88888880000000000000
   |::::.. .     `Y88888888888P'     . ..::::|||||$$$$$8888888000000000000000
   |||::::.. .     `Y8888888P'     . ..::::|||||$$$$$888888800000000000000000
   |||||::::.. .     `Y888P'     . ..::::|||||$$$$$88888880000000000000000000
    . . . .            `Y'                                           . . . .
   :.:.:.:.:                                                        :.:.:.:.:
   .:.:.:.:.                                                        .:.:.:.:.
   |||||||||     A R R A K I S                                      |||||||||
   $$$$$$$$$                                                        $$$$$$$$$
   $$$$$$$$$     the second demo for the Apple iPod nano G1         $$$$$$$$$
   888888888                                                        888888888
   888888888     NOT presented at The Ultimate Meeting 2006         888888888
   000000000     but a decade later at Nordlicht 2016               000000000
   000000000                                                        000000000
   000000000     KeyJ .......................... code, graphics     000000000
   000000000     Brack .................................. music     000000000
   000000000     Gabi ..................... additional graphics     000000000
   000000000                                                        000000000
   000000000                                                        000000000
   000000000     This demo was intended to be a quick follow-up     000000000
   000000000     to "nano", the winner of the Evoke 2006 wild       000000000
   000000000     demo compo. The music was done first and the       000000000
   000000000     style and name of the track set the general        000000000
   000000000     topic, though we tried to avoid any direct         000000000
   000000000     Dune references, so no sandworms and Fremen.       000000000
   000000000     Instead, the slow part of the music inspired       000000000
   000000000     a story around rain in the desert. However,        000000000
   000000000     there was no clear idea what should happen         000000000
   000000000     during or after the rain, and after only a few     000000000
   000000000     days of coding and designing, the project was      000000000
   000000000     scrapped for the lack of ideas.                    000000000
   000000000                                                        000000000
   000000000     For a whole decade. Until 2016.                    888000000
   000000000                                                        888880000
   000000000     This is KeyJ's first visit to the Nordlicht        $$$888800
   000000000     demoparty, and its unique gravedigger compo        $$$$$8888
   000000000     is a perfect reason to revive the old code         |||$$$$88
   000000000     and fill the remaining 50% of the demo with        ·:·||$$$$
   000000000     something that's at least loosely related to       :·::·||$$
   000000000     the topic. Don't expect any coherence though :)     · ·::·||
   000000000                                                      .d8b.· ·::·
   000000000                                                     d88888b · ·:
   000000000                                                     8888888   ·
   000000000 .:::||||$$$$8888888000000008888888$$$$||||:.:. .d888 8P'Y8 888b.
   000000000 .:::||||$$$$888888800000008888888$$$$||||:.:..d88888P'   `Y88888b.
   KJ0000000 .:::||||$$$$888888800000008888888$$$$||||:.:.`Y88888b.   .d88888P'
   TED000000 .:::||||$$$$8888888000000008888888$$$$||||:.:. `Y888 8b.d8 888P'
                                                                 8888888
                                                                 Y88888P
                                                                  `Y8P'
REQUIREMENTS                                                        '
------------

iPod version:
    - an iPod nano, of course. IT WON'T WORK ON OTHER MODELS (read below).
    - an iPodLinux installation on that very device
    - approx. 7 MB of free space on the ext2 partition

PC/Linux version:
    - some modern GNU/Linux distribution
    - an x86 PC that was built in this millennium
    - SDL 1.2 (for Debian/Ubuntu: sudo apt install libsdl1.2debian:i386)
    - 32-bit libraries of libc, SDL and their dependencies need to be
      installed on 64-bit installations (the above line ought to install
      all of these)

PC/Win32 version:
    - an x86 PC that was built in this millennium
    - some Windows flavour (only tested on Win 10 so far, but should
      work on anything from 2000 on)


FAQ
---

Q.: Does it work on the later nano models (September 2006 and beyond)?
A.: Unfortunately, no. The new nano models are based on completely
    different hardware, and even worse, their firmware is encrypted and
    not easy to tinker with.

Q.: Can I run it on my iPod/2G/2G/4G/photo/video/Archos/iRiver/Cowon?
A.: As for the non-Apple devices, the answer is a clear 'no'. If you try
    to run it on an iPod other than the nano, it will probably crash; if
    you're lucky, you will at least hear the music :)

Q.: Is the sourcecode available somewhere?
A.: Indeed it is:
    > svn co https://svn.emphy.de/scene/trunk/arrakis/
    The build system is based on Makefiles and assumes to run on a
    GNU/Linux machine. Compiling the assets (graphics and music) requires
    Python 2.x with the Python Imaging Library (PIL or Pillow) and ffmpeg
    (which means that Ubuntu 14.04 users need to change the Makefiles to
    use avconv instead; sorry).
    To compile it for the iPod, you also need to install two(!) packages
    with ARM/uClibc toolchains:
    > http://www.uclinux.org/pub/uClinux/arm-elf-tools/
      arm-elf-tools-20030314.sh
    > http://www.uclinux.org/pub/uClinux/arm-elf-tools/gcc-3/
      uclinux-tools-20040603/arm-uclinux-tools-base-gcc3.4.0-20040610.sh
    Why two toolchains? Well, the code needs at least GCC 3 to compile,
    but the GCC 3 toolchain is missing some important files and therefore
    fails to link anything. That's where the other (GCC 2.95 based)
    toolchain comes into play. I know, it's ugly as heck, but it works.

Q.: Will you make a port for <insert device name here>?
A.: Only if it's a very interesting device with similar hardware
    properties that I have physical access to.
    In other words: probably not. Then again, the sources are available,
    so go ahead and port it yourself!

Q.: The screen in the Linux and Windows version is so huge and ugly!
A.: Upon popular request, I added some lame 4x linear upscaling (with
    fancy scanlines :) to the PC-based versions. If you don't like that,
    start the executable with the parameter "-1". A 2x zoom mode is also
    available: use "-2".

Q.: Where's the fullscreen mode in the PC versions?
A.: You don't really want to zoom 176x132 pixels of (mostly)
    non-antialiased graphics to HD or 4K resolution, do you?!


INSTALLATION INSTRUCTIONS
-------------------------

Note: The following section is specific to the installation on a real
      device. Also, there's nothing unobvious in here. So, if you don't
      have a nano or are already familiar with iPodLinux, you can easily
      skip it.

First, you need to install iPodLinux. Don't be afraid, it's next to
impossible to "brick" an iPod, you can always return it to a usable
state, only losing the data on it, which you should backup anyway.
There are several good tutorials on how to install iPodLinux on a nano
on the internet, so Google is (again) your friend. If you care, the one
I used is: http://www.linux.com/article.pl?sid=06/03/29/1628212

Since the iPodLinux project is more or less dead now, it might be a
little problematic to get the necessary files. My iPodLinux installation
dates back to 2006, when everything was still fine, so YMMV. You might
be able to get something useful from the old iPodLinux project's
SourceForge page: http://ipodlinux.sourceforge.net/index.shtml

When you're done setting up iPodLinux itself, unpack the demo's tarball
somewhere into the ext2 partition of your iPod. I used /home/arrakis as
the target directory, but any other will do, to. The tricky part is to
start the thing. The last time I checked, Podzilla wasn't able to
execute programs in the iPod's filesystem. My solution was to disable
the Podzilla autostart altogether by editing /etc/rc and replacing the
last line
    podzilla
by
    /sbin/sash
This will leave you with a shell after iPodLinux booted up. Unfortunately,
the shell isn't very usable, as the only letters you will be able to
input are m, w, f, n, l and r for the four buttons and the touch wheel.
So I added a small script called /sbin/d that looks like this:
    #!/bin/sh
    cd /home/arrakis
    ./arrakis-ipod
After bootup, you may now press the play button and the center button to
start the demo. You probably won't succeed doing so, because the touch
wheel is *very* sensitive and you usually end up having a bunch of l's
and r's in your command line :) Careful typing with a fingernail should
help. Or better yet, pushing the buttons with a pen tends to work quite
reliably.


FINAL WORDS
-----------

This is the very last Kakiarts release, because the group is dead for,
like, 7 years now, and we don't have any other unfinished prods left
that could be resurrected and released.

Did you know that the iPod nano is the second smallest device (I know
of) that ever has been made a demo for? (Not counting self-soldered
microcontroller stuff here.)

Greets go out to 3LN, 5711, Alcatraz, Andromeda, Approximate, ASD,
Bauknecht, CNCD, Cocoon, Conspiracy, Darklite, DSS, Ephidrena, Excess,
Fairlight, Farbrausch, Fit & Bandwagon, Ghostown, Haujobb, Holon,
Hooy-Program, Inque, Iris, Jumalauta, Kewlers, LNX, Loonies,
Madwizards, Marshals, Mercury, MFX, Moods Plateau, Nature, Nuance,
Outracks, Plastic, Portal Process, Rabenauge, Razor 1911, Rebels,
Still, TBC, TEK, The Black Lotus, Titan, Traction, Traktor, TRSi
and everyone else in the scene :)

                                                        -- KeyJ/TRBL