100% of donations go to support the itch.io platform. (details)

Canyon Racer

A playable vertical parallax tech demo for the GameBoy (and MegaDuck).

This project started by experimenting with a vertical parallax effect on the original Game Boy, similar to the kind in the "Demotronic" Game Boy Color demo by 1.000.000 Boys. It was inspired by a tweet about a canyon effect in the game Étoile Princess. Could it be done on the Game Boy?

Sound Track

OST by BeatScribe available at Bandcamp

Pixel Fonts:

Fonts from the game are available at https://bbbbbr.itch.io/canyon-racer-fonts


There is a Retro Achievements page for the MegaDuck build here:

Game Play

A very simple, kinda hard mini game with cool FX and music. To set expectations properly- this is intended more as a tech demo than a fully realized game.

  • Guide the racer through canyon walls and over rocks without crashing.
  • Create Save States and Rewind to them after crashing (both actions use up a Life).
  • Collect +1 items to gain more Lives.

Give your eyes frequent rests. There can be some temporary sensation of visual movement after playing due to the vertical parallax.


  • Jumping and Movement
    • Jump: A button  (Z Keyboard key)
      •  (tap for short or hold for longer)
    • Extra Long Jump: A ( Z + Up Arrow Keyboard keys)
      •   (required for some long jumps)
    • Move Ship: D-PAD  (Arrow Keyboard keys)
  • Save & Rewind / Lives
    • Add Save State: B ( X Keybaord Key)
      • (any time during gameplay, but uses 1 Life)
    • Rewind to Save State: Automatic once crashed (uses 1 Life, also rewinds Score)
    • Lives: There is a limited supply of Lives (top readout in lower-right)
  • Pause: Start (Enter Keyboard Key)
  • Reset High Score: Hold **Select** + press **Start** on the title screen

USB/Bluetooth/etc Gamepad: The web Game Boy emulator has gamepad support.

  • Chrome / Firefox Mapping ( when "standard" gamepad available)
  • Default mapping otherwise :
    • A / B (First two buttons)
    • Start and Select (Second two buttons)
    • D-Pad (usually the D-Pad)


  • Save & Rewind: Creating Save States uses 1 life each time, so add them carefully.
  • Short hops: Make a series of short, fast taps with Jump to hop over several close obstacles in a row.
  • Longer Jump: Press and hold Jump.
  • Extra Long Jump: Press and hold Jump + Up to make extra long jumps. The ship will land farther up on the screen if possible.
  • Shortened Jump: While jumping, use Down to reduce jump distance. The ship will land farther down on the screen if possible.
  • If the D-Pad is not used during jumps the ship will land in the same location it started in.

Credits, Contributors and Thanks

Code & Gameplay: bbbbbr

Source code: https://github.com/bbbbbr/canyon-racer

Music & SFX: BeatScribe / https://beatscribe.itch.io/

Additional code from:


  • Some canyon tiles are variations on this tileset: sondanielson. CCA License
  • Ship tiles are variations on this tileset: Jerom. CC-BY-3 License.
  • Title Logo letter shapes are stylized versions of the Vermin Vibes 1989 font. Purchased Business Lite license. Non-transferable to other parties.

Cartridge Compatibility

FX on MegaDuck

On the MegaDuck the full vertical parallax effect is turned off in one of the builds since it may damage some generations of OEM Mega Duck screens (leaving a permanent vertical band) due to the rapid on/off cycling of pixels. Most likely the effect could be enabled safely for aftermarket screens for the few people who have modded devices.

100% of donations go to support the itch.io platform. (details)

StatusIn development
Rated 5.0 out of 5 stars
(6 total ratings)
Tags8-Bit, analogue-pocket, Game Boy, gameboy-color, Game Boy ROM, mega-duck, megaduck, Retro


Download NowName your own price

Click download now to get access to the following files:

canyon_racer_ROMs_0.7.6.zip (OLD version, for Retro Achievements) 160 kB
canyon_racer_ROMs_0.7.7.zip 166 kB

Development log


Log in with itch.io to leave a comment.


pretty challenging

It is tough! I made it hard so games would be short and give people's eyes a break and keep them from getting too much of the after-image motion effect.

Despite that, these people at RetroAchievements are impressive with how well they play the game. Better than I can for some of the challenges. https://retroachievements.org/game/24082

This looks amazing

I've put the game in my round-up of retro indie games for April 2023

Thanks! There are some cool games in your video, I like the platform variety. :)

I tried to cover as many platforms as possible!


1700 was my best after two attempts !

Nice but I'm not sure the game uses this effect to its best. I feel like the sprites are too distorted to be clear and attractive to the eye sometimes. It still gives a very nice "psychedelic" feeling. Maybe not using water on the bottom might help having less messy sprites, because it's the part that tends to get the weirdest appearance with this effect. 

Somehow I feel like this concept could go further with other gameplay mechanics than run and jump. What if the player controlled directly the path ?

Otherwise, to stay in the same kind of gameplay, I think it'd be better to have a larger path and a gameplay more axed toward avoiding than jumping. I find it more satisfying here to avoid the small rock by strafing left and right than jumping. 

It's not a negative critic tho, I enjoyed it and find impressive that this can work on actual hardware.


This looks amazing. I had a lot of trouble with the controls and figuring out the hitboxes and stuff


Thanks for the feedback, it's hard to have new-user perspective since I've been using it off/on for so long.

Any specific things about the controls that could be made more clear?

The intent is for hit boxes is to be on the forgiving side (more-so horizontally than vertically, iirc), so it would be useful to hear how that played out in your experience.


I was confused which buttons on my keyboard corresponded to A and B in the game

I had trouble with the hit boxes vertically if I'm not mistaken


Thanks! Made a couple changes:

- Improved the keyboard info on this page a bit

- Relaxed the ship's vertical hitbox a bit (~4 pixels on top, ~3 on the bottom). New ROM is in the JS Emu and new download package


Awesome I'll check it out