Fractal Zoomer GBA

From GameBrew

Fractal Zoomer
AuthorJimmy Mårdell (Yarin)
Last Updated2002/02/23

Mandelbrot fractal zoomer for the Game Boy Advance. It is written in optimized ARM assembly and uses 64 bit multiplication for high precision.

It can zoom up to 10,000 times without losing precision. You can zoom the famous Mandelbrot fractal or a Julia fractal of your choice! Select between several different palettes, or create your own. A simple file system is built in which lets you save your favorite fractal images and/or palettes on the cartridge (SRAM).


  • Explore three different kinds of fractals:
    • Mandelbrot set
    • Julia set (c=z^2)
    • Julia set (c=z^4)
  • Change fractal settings (Julia sets) and watch the fractal "morph".
  • Zooming with history, up to 160,000:1 scale without losing precision.
  • Create your own palettes.
  • Load and save your favourite fractals and palettes to SRAM.

User guide

When turning on the GBA, the most famous of all fractals, the Mandelbrot Set, will be loaded with a burning red-yellow palette.

The blue, bottom part of the screen is the status bar.

  • Here you can see what kind of fractal is being shown, the zoom factor as well as in what mode you are in.
  • Notice it reads "MANDELBROT SET", the current fractal.
  • And also "Z 1:1" which is the zoom factor - no zoom at all that is.


To change the palette, bring up the menu:

  • Select PALETTE - LOAD. A list of palettes will be shown.
  • Select the (RED-GREEN) palette.
  • You will immediately leave the menu system and return to the main screen with the fractal redrawn with the new palette.

To zoom:

  • Decrease the size of the white box/selector so the scale is 4:1 (shown in statusbar).
  • And choose an area you want to zoom (it's most interesting to explore the Mandelbrot Set near the "edge").
  • Note that the time it takes to update the fractal depends on the zooming factor, but more importantly, where in the fractal you zoom.
  • The maximum zoom factor is 160000:1.

To save/load a close-up of the fractal, bring up the menu:

  • Select FILE - SAVE AS and then select any empty slot (the first one will do).
  • Entering a file name is a bit cumbersome due to the lack of a keyboard.
  • Note that an empty file name is not allowed.
  • To load the file, select FILE - LOAD, press down two times and you should find your saved entry.
  • All entries starting in paranthesis are presaved entries and cannot be overwritten.

To see what other fractals there are:

  • Open FILE - LOAD the fractal "(DEF JULIA3)".
  • Note that the top row of the status bar now reads "JULIA SET z^2+c".
  • This is another type of fractal, a Julia Set, which is very similiar to the Mandelbrot Set in the construction (and yet so different).

Julia Set

A Julia Set is made up of a single constant (the c in the equation) which can be changed:

  • In the loaded fractal it's 0.300+0.600i (a complex number).
  • When you switch to change c mode, you can play around with it and watch the fractal change.
  • If you managed to "destroy" the fractal by choosing a bad constant (most constants will not produce a nice looking fractal), reload the fractal (FILE - LOAD again), before continuing.

If you want to explore the edges, it might be interesting to check out the BLACK&WHITE palette (PALETTE - LOAD - (BLACK&WHITE)).

About custom palette:

  • Choose PALETTE - CHANGE and you'll see a list of colors. The list contains at most 128 colors (not all of them visible at the same time).
  • Notice the non-colored squares. These are the unused colors, which means that if some pixel in the fractal ought to have color 40 (which is uncolored in the black&white palette).
  • Important: the less colors you use, the faster the fractal will be generated!! The more you zoom, the more colors will be used (if enough colors are defined that is).

Change palette:

  • Pick a color on the scale, switch to RGB value and choose the color by adjusting those values.
  • The colors between the colors you selected will be filled, fading from the leftmost color to the rightmost.
  • If you had selected more than two colors, this will work as well, filling all the unused colors with the appropriate color.

If you created a palette that you like, you can save it the same way you saved the fractal (PALETTE - SAVE).


The REFRESH option controls how the screen is updated. The default is interlaced, which creates the pretty cool "morphing" effect when changing the c constant in a Julia Set. If you don't like this, you can change it to "TOP-DOWN" which, of course, updates the screen in a more regular fashion. Note: this option is a global option.

FRACTAL controls which type of fractal to show. There are three different types, as explained in the features section above. We haven't yet checked out the Julia Set z^4=c fractal. There are less nice-looking fractals of this type than z^2=c, and they also take slightly more time to generate. Check out the presaved fractal (DEF JULIA2) to see how they can look like.



Start - Menu

D-Pad - Change menu option

A - Select option, Zoom, Save

B - Back to previous menu, Cancel, Return to previous zooming

L - Decrease the size of the white box

D-Pad - Move white box

A+B - Zoom out to the original view

Up/Down - Change letter (when saving)

Left-Right - Move the cursor (when saving)

Julia Set:

Select - Switch from zoom mode to change c mode, Color scale/RGB (palette)

D-Pad - Change constant (change c mode)

B+D-Pad - Speed up change

L - Clear palette

Left/Down/L - Change RGB value

A - Confirm

R - Load custom palette (preview)


Up/Down - Switch between options

Left/Right - Change an option


fractalgba3.png fractalgba2.png

External links