There is an annual Nokia Jam which challenges participants to make a game with the limitations of the Nokia 3310 phone. These limitations are severe and fun — only 1-bit color, and only 84x48 (or 48x84) pixels!
Mini Micro would be a great environment to make a game for this jam. To help you get started, here is some code that sets up the display in either portrait or landscape mode. The
gfx display is scaled and positioned appropriately, and display 1 is used as an overlay to mask out everything outside the display area. So, if you want, you could make
gfx much bigger and scroll it around (just be sure to scroll in increments of
scale; no sub-pixel scrolling is allowed!)
// Nokia display can only use two colors:
// "#C7F0D8" (light) and "#43523d" (dark).
// And the display must be either 84x48 or 48x84.
// We'll set up display 5 (gfx) scaled appropriately,
// and also set up an overlay in display 1 to mask
// off everything outside the allowed area. If
// debug == true, this mask will be translucent so
// you can see any error text, etc. For submission,
// you should set debug = false so it is opaque.
debug = true
color.dark = "#43523D"
color.light = "#C7F0D8"
setupNokia = function(portraitMode=false)
if portraitMode then // 48 pixels wide, 84 pixels high
globals.scale = floor(640 / 84)
globals.width = 48
globals.height = 84
globals.scale = floor(960 / 84)
globals.width = 84
globals.height = 48
gfx.clear color.black, width, height
gfx.color = color.light
gfx.fillRect 0, 0, width, height, color.dark
gfx.scale = scale
gfx.scrollX = -(480 - width*scale/2)
gfx.scrollY = -(320 - height*scale/2)
display(1).mode = displayMode.pixel
outer.overlay = display(1)
overlay.clear color.black * (not debug) + "#00000088" * debug
overlay.fillRect 480-width*scale/2, 320-height*scale/2,
width*scale, height*scale, color.clear
printCentered = function(s, y)
gfx.print s, width/2 - s.len*4, y, gfx.color, "small"
if locals == globals then
y = height - 15
for word in "Nokia Display Ready!".split
printCentered word, y
y = y - 15
You could also use the sprite display if you like, but you must be careful that your sprites have only the allowed two colors, are scaled by
scale, and are positioned in even multiples of
scale and rotated in even multiples of 90.
Here's what the result of this setup looks like in portrait mode:
and in landscape mode:
I hope this gets you started. Be sure to let us know, here or on Discord, if you decide to enter, so we can all cheer you on!