Header New Beetle (front)
Homepage
My Volkswagens
My Motorcycle
My Mazda 6
Curriculum Vitae
Software Projects
Private Information

Select one of the items listed above.

The homepage provides a general introduction about who I am, what I do and what I like

All lot of information and pictures of my 1950 Beetle and 2000 New Beetle.

Some pictures of my 1994 Honda VFR-750F

Some pictures of my 2004 Mazda 6 Executive (136bhp diesel)

Overview of my work experiences
(in Dutch only)

The photo gallery contains pictures of holidays, cars, etc...

Overview and downloads of some of my private software projects.

Personal information, such as my address, phonenumber, etc...
(password protected)


Overview
Bubbles for Pocket PC
Tetris for Pocket PC
Pacman for Pocket PC
Serial library for C++
Photoshop

Tetris for Pocket PC 2002

Overview

About Tetris...

Tetris for Pocket PC 2002 is similar to the popular game that is available on nearly every computer platform. It probably doesn't need any introduction. This Pocket PC implementation is almost the same as the original version and doesn't include any fancy features (yet).

The creation and evolution of Tetris

Bubbles was the first game I have written for the Pocket PC. That game is very suitable for the Pocket PC, because it makes excellent use of the pen. The next step was to create a more dynamic game with more animation. Because I liked Tetris very much, I decided to implement it. The Bubbles source code was used to jumpstart the development. Bubbles is distributed under terms of the GNU Public License and contains full source code. Tetris is currently distributed as freeware as well, but its source code won't be released.

Tetris uses some simple animation, which is quite hard to implement on the Windows platform (without DirectX). Even on my good old Commodore CBM-64 it would have been easier, because it features sprites. Sprites aren't available on Windows CE, so you have to implement animation completely by yourself. This is a little troublesome, because it's a lot of work and software sprites are relatively inefficient. Tetris redraws it's display each time the blocks move. Although inefficient, it's easy to implement and the Pocket PC has enough power to use this algorithm without any problems.

A friend of my started developing Pac Man for Pocket PC in parallel and encountered the same problems. Unfortunately, Pac Man uses a lot more moving objects (you and the ghosts) and has much smoother animation, so the performance problem becomes more and more problematic. My next project will probably be a high-performance reusable sprite library for the Pocket PC. It will probably take a lot of time, but it should make developing games for the Pocket PC a lot easier.

What's hot and what's not

The current version of Tetris is sufficient for a whole lot of fun. It has the following features:

  • The concept of Tetris is very simple, but the idea is just great.
  • The Pocket PC navigation keys are used for game control. I only have experience with the Compaq iPaq, but I am not very happy with the navigation keys on it. You can also use the command bar buttons, but this is probably even harder.
  • Highscore list, so you have prove when you reach a good score. It's also possible to reset the list of highscores.
  • Synchronizing highscores with other Tetris users using the infrared port. People who are familiar with Bubbles, will notice that the Tetris highscore list is quite similar.
  • Very neat about dialog, which is similar to the picture shown at the top of this page. The logo is created using POV-Ray.

Some features are still missing. I might implement it in a future version, but don't expect anything soon. The following features are planned:

  • Add animation when rows are deleted.
  • Skins for the Tetris main screen, shapes and fonts. Although not very difficult to implement I just hadn't time to do so. It has a low priority (I'm just not that much of a UI guy).
  • Better installation support, but I do need to get some more experience with ActiveSync installation. I don't want to rely on external tooling (such as InstallShield).
  • Help file for the game, explaining the various options and rules of the game.

Links

Tetris gameplay

There are just to much Tetris related sites on the internet to list them all, but the following sites might be worth checking.

  • One of the creators of the original Tetris game started an Official Tetris site describing the history of Tetris.
  • Daniel Jackson released a freeware Tetris for the Pocket PC as well and it is called QTris. It's pretty good, but it doesn't have the programmable keys of my version of Tetris. This makes it useless for devices without navigation keys, but if you have navigation keys it's definetely worth a download. The graphics are great and gameplay is good as well. If you're there take a look at some other fine games from Daniel.
  • Applian released an Applian Bonus Pak, which includes a Tetris clone for free. It's called called Blox. It was one of the first freeware Tetris clone I found on the net. Don't bother downloading the game, because it's just a waste of memory on your Pocket PC.
  • Play Tetris online (using shockwave) at Shockwave Tetris .
  • Another online version of Tetris is called Dropping blocks and uses Java to play the game.
  • My Tetris has been reviewed by some magazines. One of them is a Spanish magazine called Mi PC de Bolsillo and their review can be found here . PocketNow.com wrote an article, called Battle of the Tetris clones! and compared Tetris for Pocket PC with Retris from Resco Software , which costs a few bucks. Tetris for Pocket PC was the big winner (and not only because it's free).

If you know about more Tetris clones, please mail me.

Legal statement

This program is copyrighted by Ramon de Klein and distributed under terms of the GNU General Public License.

History

v1.0

  • Ported release to PocketPC 2002 SDK. Only the ARM release is supported, because PocketPC 2002 doesn't support other platforms.

v1.0 (beta 6)

  • Changed speed algorithm, so the game is still playable at levels 9 and above. Speed won't increase after this level anymore.

v1.0 (beta 5)

  • Added key-mapping, which allows the user to map navigation keys and buttons to certain actions. This allows users without the complete set of navigation keys to map keys differently, so they can still use Tetris.
  • Added pen support for devices which don't have four navigation keys (up, down, left and right) like the Compaq iPaq. You can use the pen to tap on the screen to move and rotate the piece.
  • New options dialog which now uses property pages to display all the options, which makes it better readable. The option titles now use a smaller font.
  • Redesigned commandbars to make them more intuitive. The toolbar buttons have been updated. The SIP has been removed from the main window, because it had no use there. The commandbar is empty in the dialogs and property sheets.

v1.0 (beta 4)

  • Fixed a bug that prevented scores above 10000 to be displayed correctly in the hall of fame.
  • Fixed a bug that restarted the game at the same speed as the previous game had ended.
  • Restarting the game performs an implicit resume, when the game was paused.
  • Rewritten layout code, which makes adding skin support easier and the code easier to read. If everything went fine, then you won't know the difference.
  • The Compaq iPaq suffers from the so-called button problem. It can cause problems while playing Tetris. Sometimes the iPaq won't see that you've released a key on the navigation pad. The result is that pieces keep dropping (when soft-drop is enabled) or keep moving sideways. Unfortunately, I cannot fix this problem in Tetris. However, I have added some intelligence in the code, which stops the key-repeat at certain moments. When a piece hits the bottom or the side of the screen it stops repeating. If the button problem occurs, then you now only may lose one piece instead of the entire game. I know it's not the ideal solution, but it's all I can do to fix it.

v1.0 (beta 3)

  • You have a short time to shift and rotate the piece after it hits the bottom (if there is space to do so). In beta 2 (and earlier) another blocks falls immediately, which limited the oppertunity to fill some gaps (thanks to Glen Carbone for mentioning this).
  • Use own keyboard repeat mechanism, which is much more intuitive and can be configured using the options dialog.
  • Dropping a piece is now done using a so called soft-drop, which drops the shape only one position. As long as you hold the drop key it keeps dropping until it hits the bottom. This is can be useful to quickly move a piece to the bottom and still be able to move and rotate it later. If you like harddrop better, then you can enable it in the options dialog.
  • More efficient screen update mechanisms, which reduces CPU load during gameplay. Not really necessary, but you might be able to play a few seconds longer, when running on battery power.
  • Added sound when a piece hits the bottom or is rotated.
  • The background of the game area has lower contrast, so the game area is now better visible. I hope this reduces mistakes.
  • Changed the scoring rules again. Every time you manually drop a piece you get one point. Clearing a row is now awarded 100 points (1 row), 400 point (2 rows), 900 points (3 rows) or 2000 points (4 rows). Speed increases after each 2000 points.
  • The easy level drops one position each second. Each speed increase is 100ms faster, until you reach level 10. The moderate level is twice as fast and the hard level is four time as fast.
  • Pause key can be enabled or disabled in the options dialog. Several people complained that they accidently pressed the pause key during gameplay. If the pausekey is disabled, the game can be paused and resumed using the commandbar. When the game is paused, it will be shown in the navigation bar.
  • Removed accelerator table from program, which has become obsolete and only causes problems in the emulator (during development).
  • Removed navigation keys from the commandbar, because it was horrible to use.

v1.0 (beta 2)

  • Use a semi-transparent background bitmap, which uses double buffering techniques.
  • The shape's building blocks have been updated and are better visible. The shapes have now the same colors as the original Tetris.
  • The game is paused, when another window is activated. It's resumed when the window is activated again.
  • About box uses smoother building blocks.
  • Fixed text problems in the commandbar.
  • Improved scoring mechanism. You're now awarded if you clear several rows at once (1 row=10 points, 2 rows=20 points, 3 rows=40 points and 4 rows=80 points).
  • It's now possible to rotate the shape, even when it doesn't fit at the top. The invisible remainder just isn't visible. I found that it made the game more intuitive and better playable.

v1.0 (beta 1)

  • Initial release for ARM, MIPS and SH3 processors.
  • Based on Bubbles v1.0 (beta 3) sourcecode.

Download

Before you download one of the packages, listed below, you must make sure that you've read the legal statement.

Download Tetris setupTetris.zip Tetris executable package compiled for use on a Pocket PC 2002.
Download Tetris source-codeTetris_src.zip Tetris source package containing the source code and project files. You need at least Embedded Visual C++ v3.0 with the Pocket PC 2002 SDK to compile and link the code.
Download Tetris setup (old version)Tetris (old).zip Tetris executable package compiled for use on a Pocket PC running Windows CE v3.0 with an ARM/MIPS/SH3 processor. This is an old version (v1.0 beta 6) and is not maintained anymore.
Download Tetris source-code (old version)Tetris_src (old).zip Tetris source package containing the source code and project files for all supported Tetris platforms. You need at least Embedded Visual C++ v3.0 with the Pocket PC SDK to compile and link the code. This is an old version (v1.0 beta 6) and is not maintained anymore.
Valid XHTML 1.0! Valid CSS!

Page last updated at Apr 23, 2009