Donkey Kong Jr

1.0

By Steph, 7 months ago

Controls: D-Pad: [Arrows / WASD] - A: [J] - B: [K] - Menu: [U] - Home: [I]
Enjoy games at full speed with sound and lights on the Gamebuino META!
Emulator by aoneill

Donkey Kong Jr

This is an adaptation for the Gamebuino META of the famous eponymous game, released in 1982 by Nintendo on his Game & Watch system.

I tried to stay consistent with the original version by scrupulously examining some demonstration videos on YouTube, but this task proved to be laborious and imprecise... I think I have managed to make a fairly faithful adaptation despite everything. You'll tell me what you think :-)

Original Game & Watch Demo

This project was born out of a request from Jicehel in the beginning, who wanted a programming model on which to base itself to make another game, also released on Nintendo Game & Watch system: Parachute. I then provided him with a demo code implementing a methodology for making this type of game with the Gamebuino META. And I chose to apply it to a draft of Donkey Kong Jr. After a few days, I finally decided to make the game in its entirety.

The game uses the full resolution of the META: 160x128 pixels with a 16-bit color depth. Graphics rendering is done with low-level techniques based on the gb.tft API, and does not use the standard gb.display API.

The story of the game

Mario has locked Donkey Kong in a cage, and you play the role of his son, Junior, who is trying by all means to save him. To open the cage, you will have to collect successively the four necessary keys, while avoiding the dangers that will arise in your path.

Instructions for use

How to play

Button A starts Game A.
Button B starts Game B.
The pace of Game B is much faster than that of Game A.

Move Junior using the D-PAD, and press the A button to jump.
But beware, the pace of the game is accelerating over time...

Use button B to turn off the sound effects.

You can also use the MENU button to alternate the display of the score, CPU load and available memory space. I had added this feature for debugging, and finally kept it. It may help you to see that the optimization of the graphic rendering is quite successful ????

Source code

The source code is fully documented to help you better understand the implementation and create your own adaptations of Game & Watch on Gamebuino META.

Acknowledgements

I would like to thank Andy, who explained us how to use the DMA controller to optimize framebuffer transfers to the display device and, at the same time, exploit the full resolution of the META (160x128 pixels in 16-bit color depth).

I would also like to thank Valden who released a small utility very useful to easily set up and integrate procedural sounds into our Gamebuino applications. I had initially chosen to integrate sound effects in the WAV format, but reading this format at runtime consumes far too much CPU, and I finally gave up the idea.

Last comments

avatar
Steph
1 month ago

Yes, I tried… but it was necessarily imprecise without having the game on hand and the feeling of the gameplay. So I had to make implementation choices based on the impressions I had from the videos I found on YouTube.

But I feel that my choices are well thought out and that my decisions are in line with the idea I’ve been telling you about throughout this discussion…

avatar
gibs
1 month ago

Of course ! you said : “*I tried to stay consistent with the original version by scrupulously examining some demonstration videos on YouTube, but this task proved to be laborious and imprecise… I think I have managed to make a fairly faithful adaptation despite everything. You’ll tell me what you think :slight_smile:

avatar
Steph
1 month ago

It’s not a problem for me… it’s a feature!.. you understood it during this discussion :wink:

I didn’t have the Game & Watch system at my disposal to look into it closely… But according to my idea of this kind of game, where synchronicity is paramount, I implemented things according to my personal vision. And even if the original system wasn’t implemented that way, well, it will be my personal touch…

Thank you for your point anyway, it deserved to be discussed.