Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - SG-1000 to ColecoVision ports

Reply to topic
Author Message
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8214
  • Location: Paris, France
Reply with quote
SG-1000 to ColecoVision ports
Post Posted: Wed Apr 04, 2007 7:48 pm
Some people are porting SG-1000 games to ColecoVision. Some interesting technical infos posted along the way.
See:
http://www.atariage.com/forums/index.php?showtopic=104734
http://www.atariage.com/forums/index.php?showtopic=104706

Maybe it could give ideas and motivation to do porting in the other way :)
  View user's profile Send private message Visit poster's website
  • Joined: 21 Nov 2005
  • Posts: 150
  • Location: Sydney, NSW, Australia
Reply with quote
Post Posted: Wed Aug 01, 2007 4:56 pm
Porting the other way is a bitch. I tried this. Colecovision games use BIOS routines quite often, so you need to port the BIOS as well...and the memory map is slightly different. Its a challenge.

I got the BIOS to boot on the SMS though :D
  View user's profile Send private message Visit poster's website
PkK
  • Guest
Reply with quote
Post Posted: Sun Aug 05, 2007 9:18 pm
Bock wrote
Some people are porting SG-1000 games to ColecoVision. Some interesting technical infos posted along the way.
See:

[links removed so I can post]

Maybe it could give ideas and motivation to do porting in the other way :)


Do you suggest porting CV games to the SG-1000 or to the SMS?
How many SC-1000 or SMS gamers are still out there waiting for new games?

Philipp
 
  • Joined: 25 Feb 2006
  • Posts: 566
  • Location: Belo Horizonte, MG, Brazil
Reply with quote
Post Posted: Mon Aug 06, 2007 12:55 pm
Well, porting to the SG-1000 would actually be the easier way, but porting to the SMS would allow you to enhance the graphics later. ;)
BTW, it seems that Bruce Tomlim (the one who's porting Black Onyx to the SG-1000) made available the commented ASM code for his port. Maybe it could be used for making an SMS-enhanced version of Black Onyx.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8214
  • Location: Paris, France
Reply with quote
Post Posted: Mon Aug 06, 2007 1:23 pm
"Porting to the SMS" at first can mean taking advantage of SMS additional RAM. This could be helpful to store a hacked copy of ColecoVision BIOS functions, making a straight port easier. Rewiring the game to take advantage of SMS graphics is another thing.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 13290
  • Location: London
Reply with quote
Post Posted: Mon Aug 06, 2007 1:53 pm
Hacking an SG-1000 game to have SMS graphics is one of my many "what-if" ideas. However, the major differences between the video modes would be quite a challenge, although probably easier on certain games.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Oct 1999
  • Posts: 211
  • Location: Lebanon, New Hampshire, USA
Reply with quote
My abandoned Gyruss port
Post Posted: Mon Aug 06, 2007 3:44 pm
Much to sniff at here. I'm proud of the BIOS portion, but the game rom disassembly just got way too difficult, at least with SMSExamine and DasmX.

Hopefully there are some good ideas in there for others to build on.
041505 halt2ei.zip (69.78 KB)
Aborted Gyruss port

  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8214
  • Location: Paris, France
Reply with quote
Post Posted: Wed Aug 22, 2007 7:04 pm
Mike,
Does this code assemble into something that does.. something?

Did you do the BIOS disassembly? Seems very well commented.
Where are those comments from?
; Author: Coleco Industries Inc.
; Advanced Research & Development - Software Engineering
;
; UserID: OS
;
; Starting date: A long long time ago in a galaxy far far away . . .
;
; Prom release date: 24 Nov 1982. For internal use only
; Prom release rev: 7B
;
; Prom release date: December 28, 1982
; Prom release rev: 7PRIME
;
; Header Rev: 2
;
; ****************************************************************************
; * *
; * ColecoVision Operating System *
; * Absolute Listing ( REV 7PRIME ) *
; * ® Coleco Industries 1982 *
; * *
; * *** Confidential *** *
; * *
; ****************************************************************************
  View user's profile Send private message Visit poster's website
  • Joined: 10 Oct 1999
  • Posts: 211
  • Location: Lebanon, New Hampshire, USA
Reply with quote
Good question!
Post Posted: Wed Aug 22, 2007 8:40 pm
First off, I should note that I obtained a complete BIOS listing from... somewhere. I forgot. It certainly looked like it was the original sourcecode and not a disassembly. I will post it if there's interest; I just assumed that it was common. If you're looking for a task that will completely fail to challenge you, try telling which comments come from me and which come from the original author.

As for Bock's point about what, if anything, this does: well, it does display the intro screen of Gyruss, with bonus glitchiness. In Meka. If you squint real hard. If you cut all of the Gyruss bits out and just assemble the BIOS, you'll get the BIOS screen. So I've got that going for me.

Anyway, I just thought I'd share what I had to show one way of converting Colecovision games, specifically with respect to remapping ROM and RAM.
  View user's profile Send private message Visit poster's website
  • Joined: 17 Jan 2020
  • Posts: 13
  • Location: Brisbane
Reply with quote
Post Posted: Fri Jan 17, 2020 5:32 am
Here's my attempt at porting Gyruss to SG-1000
Gyruss.zip (17.96 KB)

  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 209
Reply with quote
Post Posted: Tue Mar 17, 2020 8:27 pm
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


That's awesome! FWIW I included a patch in my latest SG2GG package to get this running on the Game Gear using an EverDrive:

https://www.smspower.org/forums/16912#103058

P.S. For best results, leave the file extension as .sms rather than .gg, so it runs in the Game Gear's GG-SMS mode with an uncropped viewing area
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Taylor Stokes' MSX2SMS Ports
Post Posted: Fri Mar 27, 2020 10:38 pm
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


Hello there under4mhz. This is a really good conversion for the SG-1000, I'm going to compare it to the original file if that's okay with you.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Fri Mar 27, 2020 10:42 pm
Last edited by Stokes on Fri Mar 27, 2020 10:55 pm; edited 1 time in total
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


ColecoVision BIOS works well. Thanks for your hard work. :-)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Fri Mar 27, 2020 10:52 pm
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


I got Donkey Kong's intro working.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Fri Mar 27, 2020 11:25 pm
Does anybody else have any ideas for putting Coleco on the SG-1000 or the Master System or even the Game Gear? Maybe an emulator supposing?
  View user's profile Send private message
  • Joined: 22 Apr 2018
  • Posts: 209
Reply with quote
Post Posted: Sat Mar 28, 2020 12:28 am
Stokes wrote
Does anybody else have any ideas for putting Coleco on the SG-1000 or the Master System or even the Game Gear? Maybe an emulator supposing?


Possibly heuristics to rewrite the machine code & allow per-game manual overrides for when the heuristics fail + a tiny porting library to deal with the "more different" parts, mainly input handling? This is a super ignorant guess on my part though
  View user's profile Send private message
  • Joined: 22 Sep 2019
  • Posts: 76
Reply with quote
Post Posted: Sat Mar 28, 2020 11:21 am
Stokes wrote
Does anybody else have any ideas for putting Coleco on the SG-1000 or the Master System or even the Game Gear? Maybe an emulator supposing?

If you're hoping for some magical code that you can just paste onto the ROM and have it run (like the MSX ports) then the answer is no. Even though the hardware is very similar, the way it's setup is too different.

Now, the closest analog for porting Colecovision games to me seems to be the GG2SMS process. So, if you're patient and lucky, you *might* be able to get passable results with find-and-replace hex editing (that's a very big "might", because the memory map is basically completely different, which makes this harder than GG2SMS). But if you want to actually do a decent job of it, you'd want to disassemble the game.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Sun Mar 29, 2020 10:03 pm
Basically, I have failed attempts at creating ColecoVision games for the SG-1000. They're both Super Cobra and Frogger. I'm going to create Q-Bert's Qubes and Star Wars.
  View user's profile Send private message
  • Joined: 05 Dec 2019
  • Posts: 22
Reply with quote
Post Posted: Mon Mar 30, 2020 1:51 am
Who owns copyright in the ColecoVision BIOS nowadays?
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Mon Mar 30, 2020 3:21 am
PinoBatch wrote
Who owns copyright in the ColecoVision BIOS nowadays?


I basically don't know the answer to that question. I might look it up.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Mon Mar 30, 2020 3:39 am
I managed to get Q-Bert's Qubes on the SG-1000. It's glitched a little, but here's the file, use down to trigger the numberpad. Enjoy! :-)
Q-Bert's Qubes.zip (16.46 KB)

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Fri May 01, 2020 12:36 pm
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


I have a question. If the Master System (or SG-1000) has the Texas Instruments SN76489, and the ColecoVision itself uses it too, then shouldn't the sound be playing at the same time the game is?
  View user's profile Send private message
  • Joined: 22 Sep 2019
  • Posts: 76
Reply with quote
Post Posted: Fri May 01, 2020 12:45 pm
Stokes wrote
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


I have a question. If the Master System (or SG-1000) has the Texas Instruments SN76489, and the ColecoVision itself uses it too, then shouldn't the sound be playing at the same time the game is?


They're not configured in the same fashion. ColecoVision =/= SG-1000 =/= MSX. It's like the difference between a front-engined car and a rear-engined car, they might use the same engine and battery but they're in different places.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Fri May 01, 2020 2:19 pm
Wafer wrote
Stokes wrote
under4mhz wrote
Here's my attempt at porting Gyruss to SG-1000


I have a question. If the Master System (or SG-1000) has the Texas Instruments SN76489, and the ColecoVision itself uses it too, then shouldn't the sound be playing at the same time the game is?


They're not configured in the same fashion. ColecoVision =/= SG-1000 =/= MSX. It's like the difference between a front-engined car and a rear-engined car, they might use the same engine and battery but they're in different places.


Okay, I get what you mean right here.
  View user's profile Send private message
  • Joined: 22 Sep 2019
  • Posts: 76
Reply with quote
Post Posted: Fri May 01, 2020 6:55 pm
Just to elaborate on this, since I know you're familiar with the MSX -> SMS ports, the ports that work do so only because of a happy accident. As I understand it, MSX devs were encouraged to use the BIOS to access hardware, instead of directly. The MSX -> SMS loaders are basically versions of the MSX BIOS that have been modified for an SG-1000 configuration, instead of MSX. MSX games that do access the hardware directly would need to have assembly-level changes to even stand a chance of working properly on Sega hardware.

By comparison, the ColecoVision was initially advertised as being MSX-compliant, but in the end it was sufficiently different that they had to walk back that claim.
  View user's profile Send private message
  • Joined: 14 Oct 2008
  • Posts: 344
Reply with quote
Post Posted: Sat May 02, 2020 7:28 pm
I would assume that MSX developers were encouraged to use the BIOS due to that MSX was a hardware platform meant to be built by different companies, who would presumably each write their own BIOS. So there needed to be some compatibility for the same software to run on hardware from different manufacturers. (that is, the BIOS is formatted such that the beginning is a series of Jump commands forming a table of contents to where each of the functions are stored in the BIOS. So compliant software would have to call functions from that table rather than directly.)

(as opposed to say, the Famicom Disk System where games accessed its BIOS by jumping to direct memory locations in the BIOS. So when Sharp made a licensed clone on it, they really couldn't change anything in the code except the startup logo without affecting compatibility)
  View user's profile Send private message
  • Joined: 17 Jan 2020
  • Posts: 13
  • Location: Brisbane
Reply with quote
Post Posted: Thu Jun 11, 2020 5:55 pm
Stokes wrote
I have a question. If the Master System (or SG-1000) has the Texas Instruments SN76489, and the ColecoVision itself uses it too, then shouldn't the sound be playing at the same time the game is?


Yes, you're right. I had the wrong port number for the Colecovision. I forget about the sound, because I usually have it off.
Gyruss.zip (17.96 KB)

  View user's profile Send private message
  • Joined: 17 Jan 2020
  • Posts: 13
  • Location: Brisbane
Reply with quote
Post Posted: Tue Jun 16, 2020 2:59 pm
Some more ports in various states of repair.
Colecovision.zip (585.22 KB)

  View user's profile Send private message
  • Joined: 08 Apr 2011
  • Posts: 26
Reply with quote
Post Posted: Fri Jun 26, 2020 2:05 am
under4mhz wrote
Some more ports in various states of repair.


Thanks for those. What did you test them on?
  View user's profile Send private message
  • Joined: 17 Jan 2020
  • Posts: 13
  • Location: Brisbane
Reply with quote
Post Posted: Mon Jun 29, 2020 11:36 pm
Greg2600 wrote
Thanks for those. What did you test them on?


I tested them on Emulicious.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Thu Jul 09, 2020 11:33 pm
I was never aware of this, thanks to The New Retro Show for directing me here. under4mhz, you're a legend, Coleco games now with sound, heck yeah. Thank you. Beats my emulator.
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Wed Jul 15, 2020 2:32 pm
under4mhz wrote
Some more ports in various states of repair.


Also, if there is any way if it's possible, I was wondering if you can extend the loader for 24 or 32 kilobyte games.
  View user's profile Send private message
  • Joined: 17 Jan 2020
  • Posts: 13
  • Location: Brisbane
Reply with quote
Post Posted: Tue Jul 21, 2020 11:27 pm
It would be a much bigger job. I take advantage of the overlap in the ROM space between SG and Coleco, so I don’t have to change any ROM addresses, which include: data, jumps and calls. Right now with 16K ROMS, I change only the RAM addresses.

The table below shows the ROM areas in both systems. I put the Coleco ROM at the 32K boundary which gives me 16K of ROM space.

Otherwise for 32K ROMs, I have to move the ROM and all the calls backward, or alternatively move the last 16K of the ROM to the 8K boundary and adjust any calls to that segment. The jumps and calls would probably be doable, I can search for JP and CALL instructions, but the data locations are arbitrary and not easily detectable.


Addr    Colecovision              SG-1000/SMS
----------------------------------------------------------------------
0K    8K  BIOS                    8K  ROM
8K    8K  Expansion               8K  ROM
16K   8K  Expansion               8K  ROM
24K   8K  RAM (1K mirrored)       8K  ROM
32K   16K ROM                     16K ROM <-- Overlap
48K   16K ROM                     16K RAM (1K mirrored)
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 185
  • Location: United States
Reply with quote
Post Posted: Fri Jul 24, 2020 10:51 pm
under4mhz wrote
It would be a much bigger job. I take advantage of the overlap in the ROM space between SG and Coleco, so I don’t have to change any ROM addresses, which include: data, jumps and calls. Right now with 16K ROMS, I change only the RAM addresses.

The table below shows the ROM areas in both systems. I put the Coleco ROM at the 32K boundary which gives me 16K of ROM space.

Otherwise for 32K ROMs, I have to move the ROM and all the calls backward, or alternatively move the last 16K of the ROM to the 8K boundary and adjust any calls to that segment. The jumps and calls would probably be doable, I can search for JP and CALL instructions, but the data locations are arbitrary and not easily detectable.


Addr    Colecovision              SG-1000/SMS
----------------------------------------------------------------------
0K    8K  BIOS                    8K  ROM
8K    8K  Expansion               8K  ROM
16K   8K  Expansion               8K  ROM
24K   8K  RAM (1K mirrored)       8K  ROM
32K   16K ROM                     16K ROM <-- Overlap
48K   16K ROM                     16K RAM (1K mirrored)


Okay. But while we're just still here about this, I was able to add extra code to the loader and doing some demos and game titles for the SG-1000, some partially work.
Edit: Pac-Man is going to be a heck of a game I've converted, if there is a turbo start mode, then lucky for you, but, you have to keep pushing start all the way to every screen.

  View user's profile Send private message
Reply to topic



Back to the top of this page

Back to SMS Power!