D-Pad           : Move piece around continuously
A+Left/Right    : Rotate piece continuously
A+Up/Down       : Rotate piece steppingly
B+Right/Left    : Switch to next/previous piece
B+Up            : Reflect piece in Y (this is not really needed, just design all the tangrams to leave the parallelogram the right way around!)
Select          : Switch piece movement speed (2 or 3 speeds, current speed indicated in HUD)
Start           : Pause and bring up in-game menu


Title screen / Main menu:
    * Press start to go to the selection menu

In-game menu:
    Permanently present in VRAM at center of screen, revealed by switching BG tilemap base address to $9C00 and tile data base to $8000
    Note that only 64 tiles are available for text, used as "mini-framebuffer" for varying-width font
    Since these text strings are fixed, tiles can be re-used in a way that can be determined statically
    Idea: Pack two lines of 1bpp text graphics into the same tiles using palette trick.
          This allows 64 tiles for puzzle name, timer, and piece movement speed indicator
          and 64 tiles for menu text which means 10 tiles or 80 pixels per menu row. 80 pixels is 62.5% of the BG framebuffer width
    * Resume                : Resumes game
    * Check                 : Performs check to see if puzzle has been solved
    * Solve current         : Places currently-held piece in its correct location
    * Solve all             : Places all pieces in their correct location
    * Restart               : Restarts the puzzle and resets the timer
    * Quit                  : Returns player to selection menu


might also need a help screen listing the controls and viewable during gameplay


Selection menu:
    Shows a preview of the currently-highlighted puzzle, and displays best completion time and whether the puzzle has been tried or completed without auto-solve
    Press A or Start to enter game with puzzle
    Press B to go back to the title screen



