Jump to content

Mario Bros.


Recommended Posts

Ha!  I seent you playing that the other night on Twitch.  Very, cool.  Yet another on the wish list of games which should have been ported to the TI-99/4A knocked out of the park.


Gonna have to whip up a label and create a cartridge for next year's VCF.  Thank you, man, and Merry Christmas!

  • Like 3
Link to comment
Share on other sites

hehe, I saw your post when I checked the video after I was done, but I didn't open Twitch while I was working on it. Sorry for missing your post! ;)


Most of the challenge was bugs caused by changing variables from char to int or moving the pages around (the Coleco has 16k pages). Only one bug turned out to be compiler based, and I passed that into the thread then worked around it. That's actually not too bad, the compiler is so close now.


  • Like 4
Link to comment
Share on other sites

11 hours ago, Tursi said:

With the permission of CollectorVision, I have ported my version of Mario Bros over to the TI. It seems to run fine, though be aware it may not be a perfect port! ;)


The only issue I know about is that you may occasionally see some glitchiness in the sprites when the load is high. My code used a really aggressive animation engine and sometimes the TI misses the end of frame and the updates happen on screen. It's worse in Classic99 than on real hardware, but shouldn't impact gameplay in either case. I rewrote the copy loops in assembly but there's lots more that could be optimized.


It's a 64KB cart that requires the 32KB expansion to run (on the technical side it loads most of the code into RAM and then uses the cart to access graphics and sounds.) I figured since I had the linker system working for Super Space Acer that I'd come back and try this one again.


I had to hack in a quick and dirty keyboard mode in case someone wants to play without joysticks. Since there were conflicts with the joystick I made an actual switch - press 'J' or 'K' to change between Keyboard or Joystick mode. You can only play 1 player on keyboard.


Anyway, Christmas gift for you all! It's okay to put it up on Gamebase just like Mr Chin. Hope you enjoy!



MarioBrosTI.zip 31.81 kB · 36 downloads

Wow, this is really impressive. Very well done!

Link to comment
Share on other sites

16 minutes ago, dhe said:



Where can I find information on how a 64K cart banks?

Since this file ends with the "8" identifier, that means it would be used with one of the non-inverted cartridge boards (Red boards) if burning a 64K EPROM. The file could be run through a file inverter tool to make it compatible with an inverted cartridge board (64K Guidry board or 128K Black board). The file should work as is with the FinalGROM board or even with the FlashROM99 board, as both of those are compatible with the "8" format.


On bank switching in general, there is a really nice tutorial on Stuart's website. Note, the example is for inverted cartridges, but the general principles remain the same for either bank-switched cartridge type.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Amazing!  Really top notch job thanks for posting this.


I would love to learn more about the history behind this version of the game. It appears that you originally created it in 2009 for Colecovision?  How did you (or CollectorVision) get the license?  Or is this flying under the Nintendo radar? ;)





Link to comment
Share on other sites

5 hours ago, retrodroid said:

I would love to learn more about the history behind this version of the game. It appears that you originally created it in 2009 for Colecovision?  How did you (or CollectorVision) get the license?  Or is this flying under the Nintendo radar? ;)

I can't tell you a lot. CollectorVision was looking for someone to do the game for them and had already done all the graphics. I always wanted to do Mario Bros, and I had done Mr Chin for them, so it seemed like a good deal. I don't know the state of the license but I think they were asked to stop selling it. (Not completely sure. I'm not a part of Collectorvision.) Anyway that's why this does NOT say Collectorvision, leave them out of it. ;)


4 hours ago, hloberg said:

@Tursi do you have a program that translates Coleco to TI99 or do you convert by hand (or maybe a little of both)?

libti99 ;)


I have a ColecoVision port of libti99 which all my Coleco work has used. This makes the titles (mostly) source compatible between the two machines. The interrupt system on the Coleco is non-maskable, so that made things a little more complicated, but I have it sorted now so I can treat it just like the TI.


The main challenge has been the word size (the Coleco prefers 8-bit variables and SDCC code for 16-bit is pretty poor, so if I start there I tend to make everything 8 bit. Then we come to the TI, and the GCC code for 8-bit values is pretty inefficient and more likely to have bugs than 16-bit, so I end up tweaking a lot back. Or vice versa.)


Banking is the second challenge, and until a couple of months ago I didn't have a solution for GCC and banked code on the TI. But the Coleco pages are 16k and have a fixed 16k ROM space. The TI is 8k with no fixed space. So I have to re-layout all the pages and then fix all the banking code. (Going the other way is trivial if I don't mind wasting 8k per page, I did that when I ported the Thunder Force III tribute to Coleco. I'm not entirely sure why I did that since nobody looked at it. ;) ). There's also the issue that inevitably some of the code is larger, so that also forces things to move.


Mario only has 3 banked pages on the Coleco, so I didn't work too hard on it. Super Space Acer has 15 banked pages, though, so that was a bigger job. For that I numbered the TI pages as "a and b" (ie: 1a, 1b, 2a, 2b, 3a, 3b, etc). I put all the Coleco code into the 'a' pages and then built it. Then I started migrating data from the 'a' to 'b' pages and updating the bank commands. That covered nearly all of it, I only had to move a couple things outside of that system (and split one very large array ;) ).


  • Like 7
  • Thanks 3
Link to comment
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.

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...