Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Jordan Tuzsuzov, posted on February 06, 2002

Image Description, by Jordan Tuzsuzov

Most of the IOTD postings are high-tech graphics engines using the latest graphic hardware, OpenGL/Direct3D APIs etc. We already made a posting like that about our PC game called FreeGen. Now this is something special :) Maybe some of FlipCode's readers don't know (or remember) the time when floating point calculations were a restricted area for realtime graphics. That was the time when 286/386 ruled the world - the time of fixed-point calcs, raycasters and direct video-RAM access.

This is the latest project of Garga Games (division of FreeGen developer Dimension Design): 3-D game for low-power PDAs. It's a "3-D", not "3D" because it's a special case of 3D environment. The screenshots are from the version for CASIO PocketViewer.

Here are some details of this computer:
  • V30 processor (i80186 compatible) running at 20MHz (which means good old 64KB segmentation);
  • 160x160 pixels with 1-bit "color" depth ;) touch-screen;
  • 4MB or 6MB flash memory (used as RAM sometimes) and 128KB RAM for dinamic application loading (where actually the application runs);
  • Casio OS developed by Casio specially for Pocket Viewer family of PDAs;
  • The game is coded 100% in C (without any ASM to be more portable), and has really optimized code to run in realtime on computer like this one. The code dosn't contain a single float or double calculation. The engine uses raycasting for walls (like Wolfenstein 3-D) and projection/scaling for sprites. The game has some interesting features like pseudo-lighting effects (in 2 colors ?!?!) using two models of every texture (dark and light). The game also contains the Garga Ball virtual analogue controller, designed especially for pen-based computers.

    You can download and try the demo version at the Garga Games website, - if you have a PocketViewer, of course! :)

    Jordan Tuzsuzov
    Programmer of Garga Games

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

    February 06, 2002, 09:39 AM

    Hey, cool work. In fact impressing regarding the very little memory you had. Where the hell can I get compilers for this kind of stuff?


    February 06, 2002, 09:41 AM


    Jan Niestadt

    February 06, 2002, 09:57 AM

    Looks great! I love this kind of stuff. Gotta get me a PDA sometime.. when I have money. :-)


    February 06, 2002, 10:00 AM

    Cool. :) But, I've never heard of such a device. How old is it? How many users are there? Are they still for sale? :) But again, very cool. Coding with extreme limits still rules. I think you would love the PocketPC btw. No FPU, but extreme performance nevertheless: Imagine fixed point coding on a 206Mhz CPU. ;)


    February 06, 2002, 10:26 AM

    Very nice indeed; are the colour versions of the palm fast enough to do some sort of ray-casting engine, or even a full texture mapper? I'm sure a lot of neat stuff could be done with these things if they are. I was quite surprised to see DOOM on the GBA although I suppose that has better support for games than a palm.
    Anyway, cool stuff, keep it up.



    February 06, 2002, 11:04 AM

    Give the artist a pat on the back.. everything looks very detailed - something which cant be easy given the vast palette of *2* colours. :)

    Nice one.



    February 06, 2002, 12:03 PM

    Just one word: Wow!
    I'd be glad to know how fast that runs (I'm lacking a PDA to try it out myself).
    Very cool work indeed! I love this 2.5D stuff :)


    February 06, 2002, 02:35 PM

    Can you run it on the emulator that is delivered with the Casio SDK ?


    February 06, 2002, 04:10 PM

    This is just wrong. Have you ever seen text mode quake? this is along the lines of wrongness that text mode quake is. really really wrong. Very impressive though :)

    Kárpáti István

    February 06, 2002, 05:56 PM

    ((Quake 2 src is in pure 'C'.))

    80186!!! Music for my ears.
    Have you tried the Watcom compiler?

    Nice work guys!
    Oldskool programmers unite!


    February 07, 2002, 12:25 AM

    HEY! This IOTD replaced/removed that evolutionary art IOTD from the 5th. Tsk.. tsk.. tsk..


    February 07, 2002, 01:57 AM

    Reminds me of a raycasting engine someone wrote for my calculator, a TI89. The 89 uses a mere 68K processor with 128 K of RAM and about 700 K of flash rom. The engine only runs half screen to keep up the frame rate, but I overclocked my calc from 10 to (rougly) 18 MHz, so something as complex as this PocketViewer should be able to run not too slowly.
    By the way, why use 1-bit color only? Can't you create a grayscale effect by flickering pixels at various speeds for various shades of gray? Several TI89 games use this trick to create seven or more gray levels; this should be less performance-cosly to implement on the more powerful PocketViewer.


    February 07, 2002, 04:26 AM

    This is the official page of PocketViewer :
    Thorn : CASIO provides a compiler with libs and docs for free download :)
    Phantom : It's really strange device - it's still in development and it's not very poppular (as PALM or PSION). The first PV100 and PV200/400 was a closed platforms without possibility to change OS and install additional programs (works like a standard organizer). Next models can do this : 250X, 450X, S250, S450, S600+, 750+ (with IrDA), S460 and S660. The available now models are S250/450 and S460/660.
    luther2K : Palm is not very fast machine too. It's actually slow :) Most palms runs Motorola Dragonball CPU @ 16MHz. Some of them use 33MHz version of the same processor. Maybe this can help PALM to survive after PocketPC invasion : :)
    Axel : It will start on SIM3022 (the emulator, which comes with the CASIO SDK) but the speed isn't true. On emulator it runs VERY slow :(
    Prunesquallor : Yes, some simple programs use the flicker LCD effect to draw some things in grayscale, but there is not enought CPU power to make this effect in UnderQuest too :(


    February 07, 2002, 05:00 AM

    Cool - impressive gfx ;-)

    But isn't this device a little bit outdated?

    Have fun


    February 07, 2002, 05:13 AM

    This device can't take the place of PocketPC, but as organizer it's cool. The battery life is more than 3 months, it has many built-in applications (as spreadsheet compatible with excel 2000, memo, quick-memo, contacts, expense, sheduler, etc.) It cost less than $90 and is just 1cm. thin.


    February 07, 2002, 06:25 AM

    Pure beauty! all CGA users will love this stuff!
    And if you introduce some sort of jumping, it will rock...
    But as I know these devices don't come close to the market share of palms, or even Pocket PC...

    Da jivee vtorata bulgarska igra :)))

    Arne Rosenfeldt

    February 07, 2002, 07:03 AM

    >engine uses raycasting for walls (like Wolfenstein 3-D)
    John Carmack said, he would use BSP for that today
    (I think with portals like BOOM3D)
    So why don't you follow his advice?
    So you don't have to cast 160 rays throug about 10cells
    but only draw 5 Walls and to use two portals
    (for both techniques only the visible things count,
    estimate is based on your image.)

    You could use a vertical c-buffer for some of the sprites,

    But the art is amazing to me since I cannot draw fantasy stuff.

    With a higher framerate and hires texture and some jitter for the camera you get also some kind of greyscale impression.


    February 07, 2002, 07:11 AM

    You are officially obsolete.


    February 07, 2002, 08:44 AM

    About PocketPC and PALM : the porting of game for these platforms is in progress. The Palm version will be BW and color, and PoketPC will be color with some expansions (because PocketPC is much more powerful, we can add floor, sky, effects, more objects, etc.) And Politic : everything is depending the platform and system resources. NOBODY can write QUAKE for PV/PALM. You too :)


    February 07, 2002, 08:56 AM

    No, you don't understand - there is about 20k polys in those monsters, simply LCDs are too bad at displaying the proper picture...


    February 07, 2002, 09:04 AM


    Arne Rosenfeldt

    February 07, 2002, 10:04 AM

    In the right upper image of the screen shots
    the edge between wall and floor is not straight??
    Have you done extrem-loop-unrolling-hardcoding
    like in the original Wolf3D? Maybe that eats to much memory.
    Have you used the wolf3D sources or looked at them?

    Lion V

    February 07, 2002, 10:40 AM

    coolness !


    February 07, 2002, 11:09 AM

    Of course i was looking in Wolf3D sources when they was first time released. DOOM and Quake sources also :) But UnderQuest is written independent the Wolf source code. The raycasting, texturing and sprite drawing functions in Wolf are in ASM, and we didn't use any ASM in the code. The loops aren't unrolled.

    Arne Rosenfeldt

    February 07, 2002, 11:36 AM

    Ok thanks for your answer
    a little bit loop unrolling would also be possible in c, but ok,


    February 07, 2002, 11:51 AM

    I am going to try to get one of those.


    February 07, 2002, 11:53 AM

    That'll cost you about a good $100 dollars, but it'd be good to start your graphics on... I think somebody owes me about $100...


    February 07, 2002, 12:16 PM

    I LOVE 1 bit color games... Not because of the colors, but because of where you can put them! Excellent Work

    ...Talking about "Excelent", and "Humiliation", when do you think we can port Quake III in to PalmOS ;)


    February 07, 2002, 04:17 PM

    Don't be hurt :) This message was for Politik, bacause i saw the other posts from him. He must be the teacher of Carmack to post comments ONLY like this one. But anyway - maybe it's possible to write an full poly engine with texturing for PALM right now. The problem is ... how. I already post an URL about the projects of Motorola, Palm and SEGA to build a 3D technology in next Dragoball CPUs of Motorola. Maybe then ?

    This thread contains 29 messages.
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.