Intelligent Frac (iFRAC)
Prepared by Michael Glickman
14 December, 2002
Revised: 20 February, 2003
Frac is a 3D packing (TETRIS-like) game where you just pack rectangular prisms having at least two reebs of same size. A complete board layer (i.e. no spaces) is discarded, adding points to the score with a chance to see obscured board pieces. The faster you drop the block, the more bonus you get to the score.
The following table shows the list of compatible devices J2ME devices.
Name Device \ Feature Background
JiFrac_S30 Nokia Series 30
(screen size 96x65)
with 50K suite size
- Tone Attempted - Attempted - JiFrac_S40 Nokia Series 40
1 Tone Attempted - Attempted Yes JiFrac_Sms64T Siemens 101x64
- Tone - - Attempted - JiFrac_Sms80T Siemens 101x80
( SL45i )
- Tone - - Attempted Yes JiFrac_Sms80M Siemens 101x80 MMAPI
( S55, SL55, M55 )
- MIDI Yes Alone Attempted Yes JiFrac_T720 Motorola T720, or any 120x140+ device 1 - - - - Yes JiFrac_A830 Motorola A830 2 WAV Yes Mixed - Yes JiFrac_A95cl Motorola i95cl 1 MIDI - Alone - Yes JiFrac_MM128T A MMAPI-compatible 128x128+ device 1 Tone Attempted Mixed - Yes JiFrac_MM128A A MMAPI-compatible 128x128+ device,
wave (AMR) sound
(Sony Ericsson T610 ?)
1 AMR Attempted Mixed - Yes JiFrac_MM128W
A MMAPI-compatible 128x128+ device
wave (WAV) sound
1 WAV Attempted Mixed - Yes JiFac_P800N Sony Ericsson P800
2 - - - - Yes JiFac_P800A Sony Ericsson P800
wave (AMR) sound background music
2 AMR Yes Alone - Yes JiFrac_MM176T A MMAPI-compatible 176x203+ device 2 Tone Attempted Mixed - Yes JiFrac_MM176A A MMAPI-compatible 176x203+ device,
wave (AMR) sound
(Sony Ericsson P800 ?)
2 AMR Attempted Mixed - Yes JiFrac_MM176W A MMAPI-compatible 176x203+ device,
wave (WAV) sound
2 WAV Attempted Mixed - Yes JiFrac_STD176 A Generic 176x203 device 2 - - - - Yes
1. Screen size (if applicable) is given as width x height in pixels
2. An application can use up to 2 background images inside and outside game, a single image is used while playing game.
3 Attempted means that the application will use a particular feature if available.
4. Full screen mode is used with all Nokia and Siemens models: command line does not appear, so that full screen is used by the application, while command buttons are still operational.
5. Background music: Alone - you can have either sound effects, or background music; Mixed - background music can be used simultaneously with sound effects, in case the device supports it.
6. MMAPI (Mobile Media Application Programming Interface) - a J2ME multimedia standard introduced in 2002 and already implemented with a number of recent mobile devices.
7. Nokia Series 60 (7650 / 3650) and Series 80 (Communicator 92x0) support is implemented with natural Symbian OS applications discussed in a separate manual.
8. WAV format is space consuming; in case your device supports both AMR and WAV formats, AMR is preferred.
FRAC was invented by Max Tegmark and Per Bergland, two young and talented Sweeds who also called themselves Simsalabim Software . The game was apparently named after Mandelbrot fractal, used as the background for the original release for Mac in 1990, and later MS DOS (EGA 640x350x16).
I was very frustrated when my new computer happened to be too fast for FRAC, and felt a need to do something about that ... which could also be a nice present for Linux community. The 'new generation' of FRAC (named ifrac, or Intelligent FRAC) was released in 2000 for Linux svgalib and X11. It supported a range of screen resolutions and colour modes (4 to 32 bpp).
Though it was not planned originally, after numerous emails (including ones from Max and Per), I released a Windows 95+ port of the game (2001), which happened to become a kind of Linux rep in Windows world.
The current version is based on the Palm port of the game v 1.0.1 released earlier this month (August 2002). As compared to Linux/Windows release, the conditions more relaxed, and the scoring system encourages skipping levels, or starting with a non-empty board. This modifications were inherited by the current version.
This edition is released with the permission from the original authors .
Previous versions of iFrac J2ME edition:
1.0 October 2002 Original release (Nokia series 40, Motorola T720, and Siemens models) 1.1 December 2003 Added support for Motorola A830 1.2 February 2003 Added support for Motorola i95cl, and background music for Motorola A830 2.0 June 2003 Remade the code to get all releases behave in same way. Added pause with changing settings. Added support for new Siemens models (S55, M55, SL55) including midi sound and background music. Added support for MMAPI compatible devices.
The application web page is: http://ifrac.tripod.com/j2me
Send your feedback (comments, bug reports) to Michael Glickman <firstname.lastname@example.org>
Other links relevant to iFRAC:
For SymbianTM OS: http://ifrac.palmcrust.com/symb
For PalmTM and compatibles: http://ifrac.palmcrust.com/palm
For Linux, X11 and Windows: http://ifrac.palmcrust.com/pc
More software products from us: http://www.palmcrust.com
While a block is "in the air", it drifts down according to current speed level. Speed level is a number from 1 to 9 shown in the top corner of the screen opposite to score board. The time-out between two consecutive drifts varies from 2.5 sec on level 1 to 0.2 sec on level 9. The speed level increments after a designated number of levels is completed, which for score below 10000 is:
Level 1 2 3 4 5 6 7 8 9 Layers 2 3 4 5 6 5 4 3 2
while number of layers is incremented by 1 with each 10000 of the score.
A registered copy rolls over speed level from 9 back to starting level, while an unregistered copy never leaves level 9, once it is reached.
You can increase level before completing required number of layers, by entering LEVEL command. Though this does not affect your score immediately, you will pick up score faster, because the remaining layers are completed at a higher speed level thus contributing more to the score. .
Maximum Score.The maximum score is 999999 . Game terminates if your score is over it. Hopefully this will never happen :=)
Score for a landed block.Every landed (dropped or rested) block adds to score a value shown as Bonus on the score board. The bonus starts from 20, and decrements with any down drift, while being unaffected by a move down as a result of 'Move block down' command.
Score for completed layers.At speed level 1:
Layers: 1 2 3 4 Points: 100 300 600 1000
For higher speed levels the above numbers are multiplied by a factor:
Level 2 3 4 5 6 7 8 9 Factor 1.125 1.25 1.375 1.5 1.625 1.75 1.875 2
100 points are added to score with each rollover.
Bonus for a non-empty board.If a game starts with a non-empty board, you get an initial bonus depending on the number of "dirty" layers:
Layers: 1 2 3 4 5 Bonus: 500 1000 1750 3500 4500
Key names used in the manual
( Soft keys)
Two keys located just below the screen. Standard applications typically mark left command button as Select or Options, right command button as Back. Motorola devices also have middle command button marked as Menu. Here the buttons are used in a slightly different context.
Command button functionality might be swapped for a particular device.
Joystick Keys Left, Right, Up and Down located in the form of joystick. Send key A key with a green handset on it. Sometimes referred as Yes key. Clear key A key mark as Clear or C and normally used for deleting last entered character on a Nokia device. Motorola, Siemens and other models don't have it. Phone keys Keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , * and #. FIRE This action is often associated with SEND key (with a green picture of handet), hoever some devices might have a different assignment. [A], [B], [C], [D] Four Ericsson P800 bottom keys.
Main MenuUse Up and Down arrows to change highlighted item, FIRE or left command button to select highlighted item, right command button to quit.
Alternatively press a numeric key according to menu item number (the item might not be highlighted).
SettingsSettings are explained further
To operate settings use Up and Down keys to highlight an item, a then Left and Right keys for changing value of the hightlighted item. Press Accept (Left command button) to activate new changes, or Cancel (Right command button) to discard all changes.
Other pagesTo operate high scores, submission codes, etc use command buttons according to the labels.
During a game
Key / button Action / Default Action Left command button (Options) Next Level Right command button (Back) Pause (see Pause) Middle command button
(Menu - Motorola only)
Turn in opposite direction Joystick Move current block horizontally (left, right, back, upfront) 
Move current block horizontally. Corner keys move a block diagonally, e.g
1 - move back-left.
FIRE, , or [A] Turn in 'forward' direction Send Is different from FIRE, acts as Down/Drop (see # key description). otherwise turn forward [*] or [B] Turn in opposite direction  or [C] Move current block down (without reducing the bonus) [#] or [D] Down/Drop: move current block down, if pressed for longer (causing auto-repeat) then drop it.
For a device that doesn't support auto-repeat, or if 'Delayed Drop' is set to 'no' the block just drops.
You can enable/disable sound or background music without leaving the game in pause mode.
Preview and statusThe right size of the board shows the next coming block and the game status:
Score Current score (excluding bonus) Bonus Value that will be added to the score if current block lands right now (see Score for a landed block) Remain Number of layers that need to be completed before automatic advance to next speed level. Place Place of current score in local top score table, or == if current result is unsufficient as a top score.
Board scanYou can stop scanning the board after completing layer(-s) by pressing either Send, FIRE, or one of command buttons.
You can pause at any time by pressing right command button. You are no longer pemalized for pausing. Apart from relaxation, you can pause to suspend background music, and/or change settings, such as sound mode, sound volume, background music and delayed drop. The terms are explained in Settings section. Select Continue (Right command button) for returning to game with new settings, or Quit (Left command button) to terminate the game. While returning to game the background music is resumed, unless disabled. On a Motorola A830 device the music file is restarted, because the API does not support resume from the middle.
Use Settings page to customize the following features:
Start level - starting speed level (default - 1)
'Dirty' layers - number of non-empty layers when game starts (default - 0)
Sound mode - Off / Normal / Annoying / Music(i95cl)
Different sound signals are produced for the following cases
- Block drifts down
- Block is dropped
- Block stops
- Full layers are released
- Level advance
- End of game
- New top score / submission entry.In Annoying mode all sounds are produced. If this annoys you, switch to Normal mode, where first three (most often) sounds are not generated. And if you are still annoyed, select Off for a complete silence.
Sound mode Music apears in case background music can't be mixed with sound effects (Motorola i95cl, Siemens MMAPI), and allow selecting background music istead of sound effects. To play background music you also need to set music files .Sound volume - Low / Average / HighLow: 1/4 of full (maximum) volumeBackground music (Motorola A830) - No/Yes
Average: 1/2 of full volume
High: "just" full volume
Whether or not background music is played.
This item appears in case background music can be used along with sound effects, otherwise backgound music is one of Sound mode options. To play background music, you also need to set background music files.
Delayed drop - Yes / No
HASH [#] key can work in one of the following ways:Delayed drop is No: drop current block immediately
Delayed drop is Yes: moves current block down, and drops when the key is kept pressed for longer
Though Yes is more convenient (and is the default option), you might find No option more efficient for picking up score. For a device that does not support auto-repeat, this parameter is not shown, and [#] always drops a block immediately.
Just a hint: you can always move a block down (and avoid drop) with  key.
If your score is at least 5000 (this value may change in future), and among top 3 of your personal top scores (i.e. top scores stored on the current device), you are given a code for submitting your result to the World-Wide Score Table. In order to succeed, the result should be among 30 world top scores. You don't need to be a registered user for score submission.
The submission details (date, score and code) are stored in the local data base. To overview the details, select Top Scores from the Main Menu, and then press Codes(Left command button)
Where the device allows, you just need to replace the following files, located in com/palmcrust/jifrac/beeps subdirectory of the application installation path ( the extension xxx is amr, wav, mid or rng, depending of sound type being used).
Effect File Name
Block drifts down down.xxx Block is dropped drop.xxx Block stops fall.xxx Complete layer(-s) flash.xxx Next speed level level.xxx Game ended/terminated ended.xxx New top score / submission code newScore.xxx
Some releases handle tone sound in the code, in which case you can't change sound effects.
To enable background music, set Background music to yes, or Sound mode to music , depending on whether or not the device support mixing sound effects. In case of using an MMAPI release, the actual device might be unable to mix music with sound effects in which case you just need to set Sound mode to off, before enabling background music.
To specify music files for a Motorola or Generic MMAPI device, select Music Files from the main menu.
In case of a Siemens phone due to a small screen height getting to Music Files page is a bit trickier. Select Settings from the main menu. While in settings, make sure that Sound mode is set to music. Highlight Sound mode line and press Accept: to bring up Music Files page.
MIDI files are probably the most convenient for background music due to low memory and CPU resources. You can specify a music file for each speed level, main menu, score table, and new top score.
The top line specifies default directory for a file. The format depends on the device, but it probably would be always safe to use slash (/) (as apposed to backslash) as a directory separator. For Siemens M55, you might with to include drive letter, e.g. /a:/Sounds
Other lines contain file name for each game level, or intergame page. mid> extension is taken by default, and it is not necessary to type it. You can specify a sub-directory of the default directory, or a full path.
Examples:yesterday - a file in default directory (.mid is assumed)Instead of a file name, you can specify one on the following tokens, started with %:
beatles/yesterday.mid - a file in a subdirectory of default directory
/midi/beatles/yesterday - full path (starts with /)%none - no music (stop current music, if played)
%continue - do nothing (continue currently played music)
%restart - restart current music file
Actually only one characted after % is processed, therefor you can just use %n, %c and %r for brevity.
Advantage of registration
There is only one significant advantage, you get after the registration: with an unregistered copy you find yourself trapped at level 9: once you reached this level, you can't leave it! As opposed to that, with a registered copy you only need to complete few layers on level 9 to rollover back to starting level and relax ! As a matter of fact, the rollover feature was introduced with PiFrac, while some players feel quite comfortable with previous FRAC releases, where there is not way relax at all!
The registered doesn't display registration notice - it goes straight to the Main Menu where it shows Licensed to <user name>. Also a registered copy does not show UNREGISTERED during the game.
If you are comfortable with a unregistered copy, you may also consider registration, to support our effort in creating first class software for PDA and mobile phones running on alternative patforms, which, as we believe, is the only way to ensure a healthy competition between different systems and methodologies. In particular, registration encourages further iFrac development.
Where and how
Where to register.To register the product go to one of the following sites:http://www.handango.com
http://www.softwaremarket.nokia.com (Nokia releases only)
While registering the product, you will have to quote the user name. This name will appear as Licenced to name. You will be given a registration code, that you will have to enter along with the user name.
Entering and activating registration details
An unregistered copy starts with the Registration Notice. Press Register button to get the registration form. Enter user name and corresponding registration code using your phone keys.
Once the registration details are entered, press Accept button to confirm. If the entered code is correct, you will get a confirmation notice. Quit and restart the application to activate your registration details.