Eric Lafortune Posted January 4, 2022 Share Posted January 4, 2022 (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! Update: Added a direct link to the binary images, which now include the TI BASIC program file alongside the Mame disk image file. Edited January 5, 2022 by Eric Lafortune Clarified references to downloads 19 8 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 4, 2022 Share Posted January 4, 2022 Not for C99? Quote Link to comment Share on other sites More sharing options...
Eric Lafortune Posted January 4, 2022 Author Share Posted January 4, 2022 I develop and test on Linux with xdt99 and Mame myself, but actual hardware and other emulators should work fine. 1 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted January 4, 2022 Share Posted January 4, 2022 That's a really nice use of the Sandbox breakout method! 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 4, 2022 Share Posted January 4, 2022 Have no idea how to run this. Can you just post the file so I can OLD DSK1.BREAKOUT Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted January 4, 2022 Share Posted January 4, 2022 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 3 2 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted January 4, 2022 Share Posted January 4, 2022 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! 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. 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 4, 2022 Share Posted January 4, 2022 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". 4 1 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted January 4, 2022 Share Posted January 4, 2022 (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 January 4, 2022 by jrhodes 3 Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted January 4, 2022 Share Posted January 4, 2022 (edited) 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 January 4, 2022 by ti99iuc 3 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 5, 2022 Share Posted January 5, 2022 For fun I saved the program to a wav file and loaded it via CS1 on a real console. Soooooo cool! 5 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 5, 2022 Share Posted January 5, 2022 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 2 Quote Link to comment Share on other sites More sharing options...
Eric Lafortune Posted January 5, 2022 Author Share Posted January 5, 2022 @jrhodes and @OLD CS1, thanks! You're right about the keyboard layout -- I hadn't checked my hardware. I'll fix it. 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 5, 2022 Share Posted January 5, 2022 (edited) STRING NUMBER MISMATCH IN 0 ? Edited January 5, 2022 by senior_falcon Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted January 5, 2022 Share Posted January 5, 2022 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 1 1 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted January 5, 2022 Share Posted January 5, 2022 hey this is fantastic! Quote Link to comment Share on other sites More sharing options...
Retrospect Posted January 5, 2022 Share Posted January 5, 2022 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 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted January 5, 2022 Share Posted January 5, 2022 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) 2 Quote Link to comment Share on other sites More sharing options...
tmop69 Posted January 5, 2022 Share Posted January 5, 2022 Nice game (... it definitely deserves to have joystick support)! I've converted in SSS format for FinalGROM, MiSTer TI99 core, etc. Breakout (2022)(Eric LaFortune)_[Converted by TMOP].zip 4 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 5, 2022 Share Posted January 5, 2022 Very nice. ? Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 5, 2022 Share Posted January 5, 2022 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? Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 5, 2022 Share Posted January 5, 2022 17 hours ago, oddemann said: Not for C99? I always think of the programming toolkit "c99" first when I read that. ? What about "cl99"? 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 5, 2022 Share Posted January 5, 2022 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! Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 5, 2022 Share Posted January 5, 2022 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. 4 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 5, 2022 Share Posted January 5, 2022 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 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.