MahJongg Wii

From WiiBrew
Jump to navigation Jump to search

Template:Infobox homebrewapp

MahJongg solitaire game for the Wii.


MahJongg Wii is a Mahjongg solitaire tiles game written specifically for the Wii, developed with devkitpro and using the GRRLib for rendering, sndlib for music and sound, and wiiuse for wiimote.


(05Aug2008) A screen shot of the play game menu screen thats included in v0.3

MahjongWii playmenu.jpg

(26July2008) Here is a screen shot from v0.2 showing matched tiles being removed (note the new font too):


Here's an in game screen shot from v0.1beta:

Mahjongg wii.JPG

How to play

The goal is to clear the board by removing all the tiles. Tiles must remove in pairs. A pair consists of two tiles which both are a) "free" and b) identical (or of the same type).

A tile is "free" when:

  • no other tile is lying above or is partially covering it
  • and no other tile is lying to the left or to the right of it (it can "slide" in one or both these directions..)

Two tiles are identical if they look exactly the same. The exception to this are the Flowers and Seasons tiles. They are non-identical numbered matching tiles and belong to the same type. All the Flowers tiles match one another and all the Season tiles match one another.

There are four of each tile in the game except for the Flowers and Seasons tiles which appear only once.

It's not as easy as it sounds; you can end up with having matched the "wrong" pairs and you may find yourself stuck, with unmatchable tiles blocking other key tiles so you can't clear the layout. You must be careful before removing a pair, you should look for where the remaining pair is in the layout and plan ahead. If all four of an identical tile are free, remove them to 'unclutter' the field. It's not only a game of pure luck, you have to play strategically.

Single player and co-op mode

Player(s) try to remove all tiles in the shortest possible time.

Versus mode

Two players compete to get the most points. Points are awarded for each matching tile pair selected, with different tile types being worth different amounts.

If one player gets multiple pairs in a row without the other player getting any pairs points are multiplied by the number of pairs in a row (e.g. x2 x3 x4 etc.)



The menu is controlled using Wiimote 1

Button Action
IR Pointer Move pointer
ButtonA.svg Select item


The game is controlled using Wiimote number 1 and 2 depending on game type chosen

Button Action
IR Pointer Move pointer
ButtonA.svg Select tile
32px Clear selected tile
32px Return to loader


v0.2 26/07/08

  • Added selected pair fading routine
  • Added better font (by making new versions of GRRLib functions) and aligned the text better
  • Added music
  • Added sounds effects
  • Fixed accidental selection of piece below ones just removed
  • Was having problems with using modplay and mp3player at the same time so changed to use sndlib and now both music and sound fx working correctly
  • cleaned up resources properly when existing back to loader

v0.1beta 30/06/08

  • Initial release - Game is playable



  • I've been re-writing the way the game board works to support multiple tile layouts, as part of this I have also been developing a tile layout editor which I will also release once in a reasonable state. All this should mean that adding some of the new functionality that I want to put in will be a lot easier than before.


  • Programmed the menu as per new graphics courtesy of DayDreamOz
  • Cleaned up resources better
  • Fixed graphical glitch on startup


  • Programmed most of the menu processing


  • Was having problems with using modplay and mp3player at the same time so changed to use sndlib and now have both music and sound fx completed


  • Added music
  • Fixed accidental selection of piece below ones just removed


  • Added selected pair fading routine
  • Added better font and aligned the text better


  • Matching tiles logic
  • no more moves logic
  • game complete logic
  • Tile selection
  • Removal of matching selected tiles + all processing
  • Game timer added


  • Tileset created
  • New game processing done
  • Board rendering added
  • Wiimote pointer support added


  • Tileset created
  • background rendered
  • test tiles rendered

Still to do

  • selectable characters in 2 player modes
  • multiple tile sets
  • multiple tile layouts
  • 2 player cooperative mode
  • 2 player versus mode
  • Hover highlight selectable tiles
  • Display a count of number of selectable pairs left
  • Hint feature with 30 second penalty
  • Shuffle feature for when no available tiles are left
  • Menus / title
  • High score table


I'm mostly into programming, so would welcome any help with graphics and sounds, particularly as requested below:


Any sound effects (the likes of picking tile noise, completing the game, lost the game, etc.) and / or music would be appreciated.

If anyone could donate some Chinese/Japanese style MODs I would really appreciate it.


A logo for the in game menu.

A homebrew channel logo. A better homebrew channel logo.

A graphic for the on screen wiimote pointer

A graphical font

Some extra tilesets (see discussion tab for more details about the format etc)


Development Libraries

The project uses devkitpro, GRRLib, sndlib, libpng, wiiuse, etc.

(Thanks to all the devs on these projects for their excellent tools/libraries)


  • All graphics by DayDreamOz


  • Sushi by Dr Awesome


  • Tile click SFX by Partners in Rhyme,
  • Tile pair selected SFX by Chris,
  • Tile pair mismatch SFX by Public Domain