Jump to content
Eric Lafortune

New game Breakout, assembly breaking out of the basic sandbox

Recommended Posts

Posted (edited)

Hi all,

 

I've just released Breakout, a simple but smooth implementation of the classic game. Following in the footsteps of @Vorticon, @senior_falcon and others, I've developed it in assembly for an unexpanded console, by breaking out of the TI BASIC sandbox. It's a complete game this time. It's meant to satisfy and spark nostalgic thoughts about the great things that could have been if we had known these techniques in the 80s.

 

You can find the source code and binary images on the Breakout project page on Github. The source code is documented and reusable. The jailbreak code assembles to a BASIC program file with the actual assembly code embedded. The assembly code consists of snippets of up to 196 bytes that get swapped into scratchpad RAM from VDP RAM. The code takes over complete control of the computer and doesn't use any built-in subroutines. There are source files with generally useful definitions and macros for accessing VDP, GROM, CRU, sound, etc.

 

Enjoy! Thoughts and questions are welcomed!

 

titlescreen.png

 

Update: Added a direct link to the binary images, which now include the TI BASIC program file alongside the Mame disk image file.

Edited by Eric Lafortune
Clarified references to downloads
  • Like 18
  • Thanks 7

Share this post


Link to post
Share on other sites
6 minutes ago, senior_falcon said:

Have no idea how to run this. Can you just post the file so I can OLD DSK1.BREAKOUT

 

On Eric’s project page, hit the “latest” button and click “breakout.dsk”.

 

...lee

  • Like 3
  • Thanks 2

Share this post


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

Hi all,

 

I've just released Breakout, a simple but smooth implementation of the classic game. Following in the footsteps of @Vorticon, @senior_falcon and others, I've developed it in assembly for an unexpanded console, by breaking out of the TI BASIC sandbox. It's a complete game this time. It's meant to satisfy and spark nostalgic thoughts about the great things that could have been if we had known these techniques in the 80s.

 

You can find the source code and the disk image on the Breakout project page on Github. The source code is documented and reusable. The jailbreak code assembles to a BASIC program file with the actual assembly code embedded. The assembly code consists of snippets of up to 196 bytes that get swapped into scratchpad RAM from VDP RAM. The code takes over complete control of the computer and doesn't use any built-in subroutines. There are source files with generally useful definitions and macros for accessing VDP, GROM, CRU, sound, etc.

 

Enjoy! Thoughts and questions are welcomed!

 

titlescreen.png

Nice. I was impressed when Same Colors used this technique. Then there was that little UFO Shooter. Neat to see something else using this technique.

  • Like 2

Share this post


Link to post
Share on other sites
48 minutes ago, Lee Stewart said:

 

On Eric’s project page, hit the “latest” button and click “breakout.dsk”.

 

...lee

Thank you! That was well hidden, or maybe it's just a case of "male vision".

  • Like 4
  • Haha 1

Share this post


Link to post
Share on other sites
Posted (edited)

@Eric Lafortune, I just tried it in JS99er.

Its worth noting that . and / on a real TI keyboard are not side by side. A better control scheme would have been Z X for left/faster left, and , . for right/faster right.

Other then that, love it!

Edited by jrhodes
  • Like 3

Share this post


Link to post
Share on other sites
43 minutes ago, jrhodes said:

@Eric Lafortune, I just tried it in JS99er.

Its worth noting that . and / on a real TI keyboard are not side by side. A better control scheme would have been Z X for left/faster left, and , . for right/faster right.

Other then that, love it!

Still better could be joystick for me please 😛 directions plus the faster when fire button is pressed. 

I really like the idea that you still developing nice games, Eric! :)

Edited by ti99iuc
  • Like 3

Share this post


Link to post
Share on other sites

For fun I saved the program to a wav file and loaded it via CS1 on a real console.  Soooooo cool!

  • Like 4

Share this post


Link to post
Share on other sites

One recommendation I would make is to change the right movement keys from "." and "/" to "," and "." as the slash key is not next to the period on a real TI keyboard.

 

EDIT: HA!  I was working from a un-refreshed page and had no idea @jrhodes has posted the same thing :)

  • Like 2

Share this post


Link to post
Share on other sites

Here is the disk image if needed. Nicely done. For the record however, I have never done any work with assembly in TI BASIC, only Extended Basic.

breakout.dsk

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
11 hours ago, oddemann said:

Not for C99?

no, download the .dsk that vorticon provided on post 15 ... go to TI Basic from the TI menu (on JS99er or Classic99 ) and with the disk loaded to the drive type OLD DSK1.BREAKOUT press enter and the miracle happens.  This is pretty awesome stuff 

  • Like 1

Share this post


Link to post
Share on other sites
37 minutes ago, Retrospect said:

no, download the .dsk that vorticon provided on post 15 ... go to TI Basic from the TI menu (on JS99er or Classic99 ) and with the disk loaded to the drive type OLD DSK1.BREAKOUT press enter and the miracle happens.  This is pretty awesome stuff 

Impressive what can be done on the TI and... very nice program! Back in the day... this would have been a huge hit!

The hole program is nicely done!

(Thx Retro)

  • Like 2

Share this post


Link to post
Share on other sites
12 hours ago, OLD CS1 said:

For fun I saved the program to a wav file and loaded it via CS1 on a real console.  Soooooo cool!

Never done that ... which emulator offers a good way to do so?

Share this post


Link to post
Share on other sites
17 hours ago, oddemann said:

Not for C99?

I always think of the programming toolkit "c99" first when I read that. 🙂 What about "cl99"?

  • Like 1

Share this post


Link to post
Share on other sites

All I get is STRING NUMBER MISMATCH IN 0

For what it's worth, my SAMECOLORS program works fine using the same trick

Can someone for whom this works please post it as a TI BASIC program? Thanks!

Share this post


Link to post
Share on other sites
34 minutes ago, SteveB said:

Never done that ... which emulator offers a good way to do so?

I saved the program to a FIAD disk in Classic99, then used CS1er to convert it to a wav file.  From there you can use your computer or phone to play into the cassette port (takes some jiggering as most audio outputs have a maximum volume to prevent ear damage.)  You can also load the resulting wav into Classic99.

 

19 minutes ago, senior_falcon said:

All I get is STRING NUMBER MISMATCH IN 0

For what it's worth, my SAMECOLORS program works fine using the same trick

Can someone for whom this works please post it as a TI BASIC program? Thanks!

Here is the TIFILES extract from the disk, as well as my converted wav file. BREAKOUT.zip

This works for me in Classic99 as well as on my real console.

  • Like 4

Share this post


Link to post
Share on other sites
38 minutes ago, mizapf said:

I always think of the programming toolkit "c99" first when I read that. 🙂 What about "cl99"?

Or just don't abbreviate it. It throws me too ;)

 

  • Like 1

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.
Note: Your post will require moderator approval before it will be visible.

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...