Lode Runner - a trilogy in four parts

LodeRunner.01.V100.hex

Lode Runner

This version of Lode Runner is spread over four HEX files and contains the original 150 levels plus four bonus, vanity levels. You must play the games in order starting with game 1.

For those unfamiliar with the game, your mission is to collect all of the gold pieces without being touched by a guard. Once all pieces are collected, make your way to the top of the screen and to the next level. To stop the guards, you can burn a hole in normal bricks to your left or right (with the A or B button) and they will fall in, revealing any gold they might have picked up along the way.


ArduboyRecording(1)



Special Thanks

This game has undergone a lot of testing and code re-thinks and I thank @pharap, @Vampirics, @ThaddeusSM, @Dreamer2345 and even @eried for his insight into my font choices.

Despite all of the testing, I cannot guarantee all of the levels have been transcribed correctly from the original. If you discover any unbeatable levels, please contact me and I will fix them immediately.


Downloads

Download the code or HEX file here>




Levels

The game features the original 150 levels plus four vanity levels. Due to the size of the Arduboy screen, it is often beneficial to review the levels before playing.

Game 1 Levels
Game 2 Levels
Game 3 Levels
Game 4 Levels

15 Likes

“a trilogy in four parts” A.k.a. a tetrology.
(Not to be confused with tetration.)

1 Like

As you know, I wanted to squeeze the levels into three games of 50 levels each but, alas, I ran out of memory.

1 Like

Perhaps there will be time to try to dig more progmem out at a later date.

Good job! Finally released!

1 Like

Thank you for your testing … you are level 153!

4 Likes

Do you use a shared EEPROM save across the 4 games to save your level?

1 Like

Yes … with a secret encrypted flag to tell which game and level you are up to.

3 Likes

Translation: an open source obsfuscated flag :P

3 Likes

Its really a complex algorithm … I populate the EEPROM byte at position EEPROM_GAME_NO with a 1 for game 1, 2 for game two, 3 for game three and 4 for game 4. No obfuscation going on here …

2 Likes

Then technically it’s not really a flag either, it’s just a stored number.

Yep … just a boring old number. You could easily edit it with your own program or with @crait’s Arduboy Assistant app.

I’ve been wondering if sharing EEPROM like that was something possible. That’s cool that you implemented that instead of each game having it’s own save.

Nice job on getting the game out! Almost done with the first hex. Excited to play my level :stuck_out_tongue:

1 Like

Thanks. I wanted to make sure that people played the games in order so each game checks the EEPROM on startup to make sure the correct one is loaded.

Mmmm … but your level is 153. You could simply go into the Levels.h and move them around if you want to play it now.

I am going to try to finish the whole game :stuck_out_tongue: it’s so fun and really challenging! It is the only game on the site which has held my interest for longer than a few days. Keep up the great work!

EDIT: Few days later. I love this game so much!!! I wanted to ask if you intended to have levels 41 and 42 to be the same, so the last level on the first file and the first level on the second file are the same. Thanks!

5 Likes

Err … no. That has got to be an error. I might have duplicated the level by mistake or I have the offsets in the levels wrong.

2 Likes

A quick look in GitHub shows that I have not checked in the latest Enums.h or got it confused somehow as I did a lot of work to make sure I could fit 40 levels per game. I have removed the splash screen on games 2 - 4.

#if GAME_NUMBER == 1
  #define LEVEL_COUNT                 40
  #define LEVEL_OFFSET                0
#endif
#if GAME_NUMBER == 2
  #define LEVEL_COUNT                 38
  #define LEVEL_OFFSET                41
#endif
#if GAME_NUMBER == 3
  #define LEVEL_COUNT                 36
  #define LEVEL_OFFSET                79
#endif
#if GAME_NUMBER == 4
  #define LEVEL_COUNT                 38
  #define LEVEL_OFFSET                115
#endif
1 Like

Right … so I have fixed that issue.

@ThaddeusSM you might want to select ‘Restart Game’ to return to level 41.

3 Likes

I have fixed a couple of small issues with levels 36, 41 and 42. Thanks @n602 for highlighting it to me.

4 Likes