Jump to content
Eric Lafortune

Rock Runner now on github

Recommended Posts

You can now find the source code of my game Rock Runner on github.

 

Rock Runner is a 4-way scrolling action/exploration/puzzle game written entirely in assembly. I wrote it in the 80s with the Mini Memory module, the line-by-line assembler, and a tape recorder. That means that I didn't have the resulting source code -- a lot of the original development consisted of editing hexadecimal opcodes. Now, decades later, RalphB's excellent xdt99 tools allowed me to disassemble the binaries and recover the source code. I've documented the code and refactored it to create a cartridge image. The game introduced the colorful half-bitmap display mode. The code is holding up pretty nicely. Feel free to explore it or just play the game; maybe create new objects, new creatures, and new worlds. Enjoy!

  • Like 16
  • Thanks 8

Share this post


Link to post
Share on other sites

Thank you so much for creating and releasing the source code of Rock Runner! 

The quality of the game is amazing and having developed all that with just the line-by-line assembler is incredible.

  • Thanks 1

Share this post


Link to post
Share on other sites

Wow, this was one of those days back in the day that convinced me the TI was a capable competitor to its more commercially successful brethren here in Europe in terms of games. Absolutely awesome to see the code released!

  • Thanks 1

Share this post


Link to post
Share on other sites

When I am hit by a rock or a diamond, I just see a field of 3 by 3 diamonds, hear "try again" or similar from the speech synthesizer, and the time keeps counting down. Do I have to press the space bar to continue?

Share this post


Link to post
Share on other sites

Mini Memory, LBLA and a tape recorder??? Just wow... We are so spoiled today with all the modern tools we have available.

  • Like 3

Share this post


Link to post
Share on other sites
27 minutes ago, Vorticon said:

Mini Memory, LBLA and a tape recorder??? Just wow... We are so spoiled today with all the modern tools we have available.

For a short moment, I saw a half-naked Tom Hanks shouting "I HAVE MADE FIRE!"

  • Haha 3

Share this post


Link to post
Share on other sites
1 hour ago, mizapf said:

When I am hit by a rock or a diamond, I just see a field of 3 by 3 diamonds, hear "try again" or similar from the speech synthesizer, and the time keeps counting down. Do I have to press the space bar to continue?

Yes. It gives you the opportunity to see how life in the world goes on. The speech is sarcastic at times, but I absolutely wanted to use the speech synthesizer that I had, with its limited vocabulary. You can press the space bar to move on. Depending on whether you still have lives, the game restarts in the same world or it returns to the title screen.

  • Like 2

Share this post


Link to post
Share on other sites

Wow awesome! And that is a technical accomplishment, building it in the line by line assembler.

 

I bought this back in the day from Asgard, and was just blown away by the bitmap graphics. I'd heard of a "half bitmap mode" but none of the few assembly books mentioned it. It wasn't until the TI Tech Pages that I got the technical rundown on it. (And even that's incomplete; apparently in half-bitmap you only have eight sprites due to the address masking mucking about with sprite usage.)

 

One thing I especially liked about the game was you could just choose to play any level you wanted, rather than force the player to play them through sequentially. A very good game design decision!

  • Thanks 1

Share this post


Link to post
Share on other sites

I think I missed out of this game back in the day (have to take a look at the games I bought from Asgard), what I see on the screenshots it looks great.

Please, is there a FG99 .bin to download?

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
Quote

"With all-new documentation, the code is holding up pretty nicely. It can be a fun example of hand-written assembly code for the TI-99/4A."

Yes. Thank you! Much to learn while examining such well written AND clearly documented code.

  • Thanks 1

Share this post


Link to post
Share on other sites
5 hours ago, Nick99 said:

I think I missed out of this game back in the day (have to take a look at the games I bought from Asgard), what I see on the screenshots it looks great.

Please, is there a FG99 .bin to download?

I've been using this .bin file on my FG99 without issue:

On 8/1/2016 at 4:10 AM, Asmusr said:
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks Eric!!

 

 I am just beginning the enterprise of studying ASM on the TI (with a 40- years delay!), my dream would be to become a real developer for the machine and to create some nice game. The existence of this community, consisting of extremely competent and very generous people in making their knowledge available to everyone, gives me great confidence and encourages me to be successful!

 

  • Like 6
  • Thanks 1

Share this post


Link to post
Share on other sites

Excellent! I'm impressed by what you made in years 80 with just a Minimem cartridge, a tape recorder and a documentation that was not as abundant as now.

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
36 minutes ago, Asmusr said:

Tried RockRunnerC.bin on my TI with FG99, it starts but the graphics don't show, just the time counter and score on top of the screen, rest is just black. The version Rhodes shared works.

Edited by Nick99

Share this post


Link to post
Share on other sites
9 minutes ago, Nick99 said:

Tried RockRunnerC.bin on my TI with FG99, it starts but the graphics don't show, just the time counter and score on top of the screen, rest is just black. The version Rhodes shared works.

You need both RockRunnerC.bin and RockRunnerG.bin.

  • Like 1

Share this post


Link to post
Share on other sites
18 minutes ago, Asmusr said:

You need both RockRunnerC.bin and RockRunnerG.bin.

Tried that too, but no difference. 

Share this post


Link to post
Share on other sites

I've now added the binaries as releases on github:

* The cartridge image RockRunner.rpk, for Mame (the ROM files inside this zip now follow the naming convention of FinalGROM 99).

* The floppy disk image rock.dsk, for the Editor/Assembler cartridge, option 5.

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
2 hours ago, Nick99 said:

Tried that too, but no difference. 

The FinalGROM 99 documentation warns that file names are truncated on the flash file system. That may be why the GROM file is not recognized. Can you try renaming the files to something like romc.bin and romg.bin? The code on github now uses this naming convention.

  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks for sharing the source code.  I learned a few things from it that I didn't previously know about xas99.py:

 

Quote

The TEXT directive also supports hex strings, e.g.,

pattern text >8040201008040201

binary literals introduced by :.

binval  equ :01011010

 

 

By the way, you could use the 'stri' directive to automatically prepend the length byte in the cartridge header:

Quote

The STRI directive is similar to TEXT, but prepends a length byte. In other words,

stri 'HELLO WORLD'

is equivalent to

text >0b, 'HELLO WORLD'

 

 

The quotes are taken from the XDT99 documentation.

  • Like 5

Share this post


Link to post
Share on other sites
On 2/11/2021 at 1:34 AM, Eric Lafortune said:

The FinalGROM 99 documentation warns that file names are truncated on the flash file system. That may be why the GROM file is not recognized. Can you try renaming the files to something like romc.bin and romg.bin? The code on github now uses this naming convention.

renamed to romc.bin and romg.bin, still the same result with a black screen text on top of the screen (the four hearts is visible) and I can hear the sound that is played while the graphics should appear.

My TI is a PAL maschine and I use SAMS memory, if that can be information that helps solve this mystery.

 

Still, the old version works great!

Thanks Eric!

Share this post


Link to post
Share on other sites
5 hours ago, Nick99 said:

renamed to romc.bin and romg.bin, still the same result with a black screen text on top of the screen (the four hearts is visible) and I can hear the sound that is played while the graphics should appear.

My TI is a PAL maschine and I use SAMS memory, if that can be information that helps solve this mystery.

 

Still, the old version works great!

Thanks Eric!

Hmm, it doesn't work on my FG either, with the same symptoms. And not with the version @Eric Lafortune posted either. They work fine under emulation.

  • Like 2

Share this post


Link to post
Share on other sites

The same thing happens if you try to play it without 32K RAM, but I do have 32K. Is it working on the FinalGROM for anyone else?

rockc.bin rockg.bin

Edited by Asmusr

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...