The lcdgame.js library will be updated regularly bug fixes and possibly additional game devices, so in that sense it remains work in progress.
What are LCD games
LCD games are electronic toys introduced in the 1980s. Nintendo first released its Game & Watch series in 1980, which were electronic handheld toys that used LCD crystals to display flickering shapes. The shapes could only be turned on or off, creating a crude form of interactive animation to form games. These were some of the earliest handheld gaming devices, years before the release of the GameBoy.
Followed the success of Game & Watch, many other companies incl. Gakken, Tandy, Radio Shack, Sunwing, Tiger, Tomy started creating their own lcd games (sometimes called "card games"). Over the years hundreds, maybe thousands, of different games were created.
What is lcdgame.js
Direct inspiration is a very cool site called pica-pic by Hipopotam. On the site there are 26 playable simulations of lcd games. The simulators on pica-pic work great but it is based on Flash, making the games unplayable on tablets and some browsers.
The lcdgame.js is work-in-progress, here is a goals checklist/roadmap of
still missing features (
- filter options for high score list
- sound mp3/wav based on browsertype
- Shapes editor, allow shapes change position, mouse drag/move
- Shapes editor, support/preview/edit types (normal shape, digit, digit position, button)
- Shapes editor, copy shape (for digit positions)
- add key hints (separate dom-elements?)
- allow button/keys re-mapping
- and of course, add more games ;)
Simulation vs emulation
Why create simulations when you could also create emulators? Handheld LCD games typically use a wide range of 4-bit microprocessors (MCU) of which there isn't much information. Also, the ROMs in these devices are usually embedded in the MCU, meaning they need to be "decapped" to extract the data. This involves taking a microscope image and visually decoding the zeros and ones. Although feasible, this process is very expensive, especially considering the sheer amount and variety of different LCD games. Therefor it is more practical to create simulations instead of emulators. Also, a simulator can recreate the entire device, including buttons and artwork, and not just the screen.
08-oct-2018 v0.3.2 more games and better browser compatibility
01-jul-2018 v0.3.1 menu, infobox, online highscores
23-jun-2018 v0.3 added statemanager, preliminary touch and scale
27-apr-2017 v0.2 Mario bros and Sea Ranger playable, better compatibility, utilities and tools
10-nov-2015 v0.1 first release of lcdgame.js and shape editor on github