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/from ColecoVision ports

Reply to topic Goto page Previous  1, 2, 3, 4, 5
Author Message
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Fri Jul 28, 2023 4:14 pm
siriokds wrote
Dropping new release: Donkey Kong Jr. converted from CV with my custom BIOS modified to let this game runs. Patched Palette for SMS. Stack routines handled.
Reverse engineered the graphics encoding routines.

This time was more difficult.

Tested on: Emulicious, Master Everdrive

Enjoy.


OOH! I must try this out.
  View user's profile Send private message
  • Joined: 23 Jan 2010
  • Posts: 439
Reply with quote
Post Posted: Fri Jul 28, 2023 5:51 pm
siriokds wrote
Dropping new release: Donkey Kong Jr. converted from CV with my custom BIOS modified to let this game runs. Patched Palette for SMS. Stack routines handled.
Reverse engineered the graphics encoding routines.

This time was more difficult.

Tested on: Emulicious, Master Everdrive

Enjoy.

WOW> Fantastic. You can convert Matt Patrol, not released, a moon patrol port?
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Fri Jul 28, 2023 7:50 pm
segarule wrote
siriokds wrote
Dropping new release: Donkey Kong Jr. converted from CV with my custom BIOS modified to let this game runs. Patched Palette for SMS. Stack routines handled.
Reverse engineered the graphics encoding routines.

This time was more difficult.

Tested on: Emulicious, Master Everdrive

Enjoy.

WOW> Fantastic. You can convert Matt Patrol, not released, a moon patrol port?


That would take some time to change every call and jump in that game. I might do that in the future.
  View user's profile Send private message
  • Joined: 23 Jan 2010
  • Posts: 439
Reply with quote
Post Posted: Sat Jul 29, 2023 10:04 am
Stokes wrote
segarule wrote
siriokds wrote
Dropping new release: Donkey Kong Jr. converted from CV with my custom BIOS modified to let this game runs. Patched Palette for SMS. Stack routines handled.
Reverse engineered the graphics encoding routines.

This time was more difficult.

Tested on: Emulicious, Master Everdrive

Enjoy.

WOW> Fantastic. You can convert Matt Patrol, not released, a moon patrol port?


That would take some time to change every call and jump in that game. I might do that in the future.

Great!
  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Sat Jul 29, 2023 3:17 pm
Should we do Coleco Super Game Module games in the future for the SG / SMS?
  View user's profile Send private message
  • Joined: 02 Aug 2015
  • Posts: 19
Reply with quote
Post Posted: Sun Jul 30, 2023 7:35 am
Stokes wrote
Should we do Coleco Super Game Module games in the future for the SG / SMS?


From a technical perspective, this idea presents a fascinating challenge!

To start, let's take a look at the list of Super Game Module titles [link: https://cvaddict.com/profile.php?gameid=142]. These games offer an incredible gaming experience that would be fantastic to bring to the SG / SMS community.

However, before diving into the Super Game Module games, I propose you take a thoughtful step forward by supporting Coleco roms with a size of 32kb or larger. This initial endeavor would provide valuable insights and lay a strong foundation for successfully handling the additional complexities of the Super Game Module.

I'd like to suggest two games as initial undertaking:

Super DK! Junior (USA) (Proto) (Unl) - This gem holds a 32kb rom size and boasts extra animations, elevating the gameplay beyond the standard Donkey Kong Jr. experience.

Mario Brothers (homebrew) - With a rom size of 64kb, this beloved homebrew game brings the iconic Mario universe to life, and its conversion would be a delight for SEGA enthusiasts [link: https://cvaddict.com/profile.php?gameid=142].

By converting these titles, you will gain valuable insights into supporting larger Coleco roms and prepare yourself for the exciting challenges that Super Game Module games offer.
  View user's profile Send private message
  • Joined: 25 Feb 2006
  • Posts: 874
  • Location: Belo Horizonte, MG, Brazil
Reply with quote
Post Posted: Sun Jul 30, 2023 10:16 am
pcfreak324 wrote
Stokes wrote
Should we do Coleco Super Game Module games in the future for the SG / SMS?


From a technical perspective, this idea presents a fascinating challenge!

To start, let's take a look at the list of Super Game Module titles [link: https://cvaddict.com/profile.php?gameid=142]. These games offer an incredible gaming experience that would be fantastic to bring to the SG / SMS community.

However, before diving into the Super Game Module games, I propose you take a thoughtful step forward by supporting Coleco roms with a size of 32kb or larger. This initial endeavor would provide valuable insights and lay a strong foundation for successfully handling the additional complexities of the Super Game Module.

I'd like to suggest two games as initial undertaking:

Super DK! Junior (USA) (Proto) (Unl) - This gem holds a 32kb rom size and boasts extra animations, elevating the gameplay beyond the standard Donkey Kong Jr. experience.

Mario Brothers (homebrew) - With a rom size of 64kb, this beloved homebrew game brings the iconic Mario universe to life, and its conversion would be a delight for SEGA enthusiasts [link: https://cvaddict.com/profile.php?gameid=142].

By converting these titles, you will gain valuable insights into supporting larger Coleco roms and prepare yourself for the exciting challenges that Super Game Module games offer.


64kb? They will probably need bankswitching.

As for Super Game Module games... it seems to have extra RAM and an MSX AY sound chip:
http://www.colecovision.dk/sem.htm?refreshed

It seems like running Super Game Module games would require extra hardware for running on a real cartridge, or a modified emulator to run on an emulator; it does not look like a ROMhack-only solution would work.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Dec 2009
  • Posts: 115
Reply with quote
Post Posted: Sun Jul 30, 2023 1:21 pm
Stokes wrote
Should we do Coleco Super Game Module games in the future for the SG / SMS?


On real hardware maybe. With an add-on.
The audio chip is different, memory mapper is required. SGM games are new games, usually doesn't use any bios routines so the game should be analyzed to inject translated pieces of code.

When I'll finish my game, I will try.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Dec 2009
  • Posts: 115
Reply with quote
Post Posted: Fri Aug 04, 2023 8:47 am
Stokes wrote
siriokds wrote
Stokes wrote
Hi. I did Mouse Trap, and it works well. Only problem is the sprites for the in-game. The characters seem to be all bunched up in the top left of the screen. If anyone would like to volunteer to fix it, go ahead.


Hi mate,
I have this game on Colecovision and it requires some keys of the keypad. How did you handle it?


Yeah, the keypad is mapped on the D-pad and it's pretty hard to control sometimes. The character on the other hand seems like he's moving perfectly fine. To be honest, I might have to use your BIOS since it actually requires a keyboard and such.



Mate, I extracted the input routines from my bios.
Very soon I will release it so you can use it (if you need) in your porting.

Stay tuned.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Dec 2009
  • Posts: 115
Reply with quote
Up'N Down COL2SG - SiRioKD 2023 BIOS
Post Posted: Tue Aug 08, 2023 12:45 pm
After a very hard reverse engineering work, I'm dropping you...

Up'N Down (Sega 1983) converted from CV with my custom BIOS routines. (thanks to Révo for the ram remapping).

Tested on: Emulicious, Master Everdrive

SiRioKD 2023
Enjoy.
UpNDown_Title.png (1.7 KB)
UpNDown_Title.png
UpNDown_Game.png (3.82 KB)
UpNDown_Game.png

  View user's profile Send private message Visit poster's website
  • Joined: 01 May 2011
  • Posts: 469
Reply with quote
Post Posted: Tue Aug 08, 2023 1:41 pm
Wow, 40 years since it was first advertised for SG-1000, great job!
  View user's profile Send private message
  • Joined: 14 Feb 2021
  • Posts: 13
  • Location: Canton, Missouri
Reply with quote
Post Posted: Sun Aug 13, 2023 6:05 pm
pcfreak324 wrote
Stokes wrote
Should we do Coleco Super Game Module games in the future for the SG / SMS?


From a technical perspective, this idea presents a fascinating challenge!

To start, let's take a look at the list of Super Game Module titles [link: https://cvaddict.com/profile.php?gameid=142]. These games offer an incredible gaming experience that would be fantastic to bring to the SG / SMS community.

However, before diving into the Super Game Module games, I propose you take a thoughtful step forward by supporting Coleco roms with a size of 32kb or larger. This initial endeavor would provide valuable insights and lay a strong foundation for successfully handling the additional complexities of the Super Game Module.

I'd like to suggest two games as initial undertaking:

Super DK! Junior (USA) (Proto) (Unl) - This gem holds a 32kb rom size and boasts extra animations, elevating the gameplay beyond the standard Donkey Kong Jr. experience.

Mario Brothers (homebrew) - With a rom size of 64kb, this beloved homebrew game brings the iconic Mario universe to life, and its conversion would be a delight for SEGA enthusiasts [link: https://cvaddict.com/profile.php?gameid=142].

By converting these titles, you will gain valuable insights into supporting larger Coleco roms and prepare yourself for the exciting challenges that Super Game Module games offer.


It sounds like a good idea, though porting games with the size of 32kb to the SG-1000 is possible I suppose, I think The Castle on SG-1000 is 32kb, so it is technically doable.
Though in the case of SGM/Super Game Module games, you may have to port those to the SMS instead.

Though a separate form for Sega Master System ports of Colecovision SGM/Coleco Adam games wouldn't hurt
(Maybe it could be called "ColSGM/Adam2SMS")
  View user's profile Send private message
  • Joined: 14 Feb 2021
  • Posts: 13
  • Location: Canton, Missouri
Reply with quote
Post Posted: Sun Aug 13, 2023 6:20 pm
Now that I think about, since we are porting Colecovision games to the SG-1000, we could port the Colecovision version of Congo Bongo to the SG-1000, as the colecovision version is basically a full-on port of the original arcade and is a significant step-up from the version of Congo Bongo SG-1000 owners got back in 1983. We are porting Colecovision games to a SEGA system, so it would make sense to port the Colecovision version of Congo Bongo to the SG-1000, as Congo Bongo is a SEGA game.
  View user's profile Send private message
  • Joined: 10 Dec 2009
  • Posts: 115
Reply with quote
Sega Turbo - SiRioKD 2003 Custom Bios
Post Posted: Mon Aug 14, 2023 7:54 am
Another release with my custom bios. This time for you:

Sega Turbo

converted from CV with my custom BIOS.

Tested on: Emulicious, Master Everdrive

Enjoy.
Turbo_Title.png (2.87 KB)
Title Screen
Turbo_Title.png
Turbo_Game.png (3.69 KB)
Turbo_Game.png

  View user's profile Send private message Visit poster's website
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Mon Aug 14, 2023 7:43 pm
Last edited by Stokes on Wed Aug 16, 2023 6:04 am; edited 1 time in total
Nova Blast. Works well, just use Right + Down to start.

EDIT: There was a mistake at $93F2, so I changed it, and now... The aliens go apeshit as intended.
Nova Blast.png (2.14 KB)
Nova Blast.png
Nova Blast-1.png (2.22 KB)
Nova Blast-1.png
Nova Blast.zip (13.37 KB)

  View user's profile Send private message
  • Joined: 14 Feb 2021
  • Posts: 13
  • Location: Canton, Missouri
Reply with quote
Post Posted: Mon Aug 14, 2023 8:35 pm
So I did some looking around in terms of how big in rom size SG-1000 games can get, and the biggest SG-1000 game is Loretta no Shouzou, at a whopping 128 KB, or 1 Mbit. So in conclusion, porting Colecovision games that are 64kb to the SG-1000 is possible, though I have no idea if its doable or not. Though SEGA packaged Loretta no Shouzou as a Master System game but it plays on the SG-1000.
For information on the game, I put a link to the SMS Power page of the game here: https://www.smspower.org/Games/LorettaNoShouzou-SMS
  View user's profile Send private message
  • Joined: 10 Dec 2009
  • Posts: 115
Reply with quote
Post Posted: Tue Aug 15, 2023 6:28 am
Stokes wrote
Nova Blast. Works well, just use Right + Down to start.


Nice!
  View user's profile Send private message Visit poster's website
  • Joined: 25 Feb 2006
  • Posts: 874
  • Location: Belo Horizonte, MG, Brazil
Reply with quote
Post Posted: Tue Aug 15, 2023 1:58 pm
Master Tom Cat wrote
So I did some looking around in terms of how big in rom size SG-1000 games can get, and the biggest SG-1000 game is Loretta no Shouzou, at a whopping 128 KB, or 1 Mbit. So in conclusion, porting Colecovision games that are 64kb to the SG-1000 is possible, though I have no idea if its doable or not. Though SEGA packaged Loretta no Shouzou as a Master System game but it plays on the SG-1000.
For information on the game, I put a link to the SMS Power page of the game here: https://www.smspower.org/Games/LorettaNoShouzou-SMS


The main difficulty would be that large games will require bankswitching, and Colecovision bankswitching schemes will probably be very different to the SG-1000 ones, and as a result, a considerable part of the game's code would have to be modified. Not impossible, but definitely work intensive.
  View user's profile Send private message Visit poster's website
  • Joined: 08 Jun 2021
  • Posts: 4
Reply with quote
Post Posted: Tue Aug 15, 2023 6:59 pm
very good these conversions of yours, is it possible to make smurfs, popeye, mouse trap and mario bros?
  View user's profile Send private message
  • Joined: 02 Aug 2015
  • Posts: 19
Reply with quote
Post Posted: Wed Aug 16, 2023 8:48 am
Thank you for the new conversions. SiRioKD's title screens are a nice addition. They look great, like an official port and make it easier to choose the settings at the start of the game. I hope we can see conversions of larger games one day.
  View user's profile Send private message
  • Joined: 08 Apr 2011
  • Posts: 29
Reply with quote
Post Posted: Fri Aug 25, 2023 3:06 am
Very neat to see all these ports!
  View user's profile Send private message
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Updated Star Wars with bugfixes
Post Posted: Tue Sep 19, 2023 10:35 am
Last edited by honestbob on Tue Sep 19, 2023 11:47 pm; edited 3 times in total
Updated Star Wars. Based on Revo's release from 21 June 2021 (scroll back a couple of pages for that). Awesome work, thanks Revo.

******************************
EDIT - Revo pointed out they did a more recent release on 16 Sept 2022 that fixed the towers on level 2, added PPI init, and improved inverted joystick handling on the Wave selection screen. I don't think that was posted in this thread though. I couldn't see it when I searched for "star" and "wars" anyway.

Man... I wish I'd seen that earlier. Took me ages to find the bad byte that broke the towers on level two :)



ROM download link is in the YouTube comments.

However that still has the broken tie fighters (need to change byte at $A4CB from $72 to $C2 to fix tie fighters) and it needs the Coleco BIOS write to the strobe port removed at $11AA for for joysticks to work on a Sega SC-3000. Change $11AA-AB to $00 $00

I'll update the patch once I've re-tested it on real hardware. See screenshot for how the Tie Fighters are supposed to look.
******************************


If you liked the arcade game (and I loved it), then this is actually a pretty good version, especially as the original Coleco ROM was only 16KB and used Graphics Mode 1 (not 2). It gives a really good impression of vector graphics just by shuffling tiles around.

Tested on Sega SC-3000 and Mark III. Damn, those legacy mode Mark III colors look awful. Looks awesome on a Yeno SC-3000 with RGB though.

1. Bugfix - Tie Fighters look like Tie Fighters instead of the crosshair target and they explode nicely when hit. Darth Vader's ship spins out of control across the screen when you hit it too. One conversion byte missed $72 => $C2

2. Bugfix - Level 2 Towers display now (bad conversion byte fixed - should have stayed as $73, not changed to $C3)
That caused jp $2304 instruction to be inserted which stopped the towers from loading.

3. Bugfix - joystick works on SC-3000 now.
had to nop a write to port DE (PPI port C)
That broke joysticks on Sega SC-3000 as it changed the column on the keyboard matrix

4. Added PPI init routine for SC-3000 to get joysticks to work
This will be ignored by SG-1000 / II / Mark III

5. Updated SMS ROM Header
I think this is correct. I used Maxim's Header Reader utility.

I've played it through to the point where you get all the towers and the catwalks appear in the trench run. So I think everything is working.


EDIT - Revo fixed the following in 16 Sept 2022 release. Ignore.

There are still two bugs / quirks that someone else can fix if they can be bothered.

1. Once the game is over, you have to restart your computer.
The code doesn't seem to scan the joystick ports any more at that point. Even the original Colecovision ROM
running under Meka seems to freeze then. I don't know if the Colecovision expects you to press a restart button or what.

2. On the Wave selection screen, the joystick inversion kicks in every time you move the joystick.
That is because the original Colecovision game was designed to invert the up / down controls when you press the keypad on the controller.
That overlaps with the revised left / right / up / down joystick handler in Revo's BIOS.
You just have to keep moving the joystick until you get what you want.
By default, down is up and up is down, just like piloting a ship.
But if you invert the controls then up is up and down is down.

Having the Joystick Inversion option is useful if you don't like the original down is up approach. But it makes that first selection screen painful to use as the inversion keeps toggling on / off as you move the joystick.

  View user's profile Send private message Visit poster's website
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Time Pilot kludge to avoid pause mode + SC-3000 support
Post Posted: Tue Sep 19, 2023 12:08 pm
Blank wrote

But, Time Pilot (Colecovision 2 Sg) when I press lower diagonal + button 1 it goes into pause mode playing music and black screen, having to press a few times again lower diagonal + button 1 on the joystick to go back. Similar to the intellivision pause mode, which is done by pressing the intellivision joystick buttons 1 and 9, or 3 and 7 simultaneously.


This is based on Revo's Time Pilot release from 13 June 2021.

The original Coleco Time Pilot game has a pause mode that kicks in when you press the * key on keypad. This blanks the screen and starts some music playing.

Unfortunately due to how the SG-1000 joystick is remapped, this means pause mode kicks in every time you point the joystick to the bottom right. That makes the game unplayable.

I couldn't find the place to disable pause mode. So I kludged the joystick read so that if you point it to the bottom right, then it remaps it like the joystick was just pointing down. Not ideal, but at least the game is playable now. I kept accidentally turning the pause mode on with the original code which was really frustrating.

I also added the PPI_Init routine to get joysticks working on SC-3000 and a SMS ROM header in case anyone wants to try it on an export SMS. I *think* that is required, but not sure as I normally just work with SC-3000 / SG-1000 / Mark III.

Cheers

  View user's profile Send private message Visit poster's website
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Colecovision Coding Manual by Daniel Bienvenu
Post Posted: Tue Sep 19, 2023 11:43 pm
Hi All

I found this very useful for conversions. The Colecovision Coding Manual by Daniel Bienvenu.

200 page manual on coding for the Colecovision plus Coleco BIOS listing. It mostly explains what the ports are and what the BIOS code is supposed to do.

Cheers

  View user's profile Send private message Visit poster's website
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Wed Sep 20, 2023 1:20 am
honestbob wrote
Hi All

I found this very useful for conversions. The Colecovision Coding Manual by Daniel Bienvenu.

200 page manual on coding for the Colecovision plus Coleco BIOS listing. It mostly explains what the ports are and what the BIOS code is supposed to do.

Cheers


Nice job on fixing some ports. I'ma go ahead and look at this manual.
  View user's profile Send private message
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Revo updated Star Wars Arcade for SG-1000
Post Posted: Thu Sep 21, 2023 6:52 pm
Revo updated the Star Wars Arcade release for SG-1000 to fix the Tie Fighters and joysticks on SC-3000.

Download is in the YouTube comments on the video below. Revo's channel is worth a look. Lots of cool stuff there.

https://www.dropbox.com/scl/fi/ip9ojz9fsegsjbjh1fof7/Star-Wars-The-Arcade-Game-C...

https://www.youtube.com/@MmmRevolution/videos

This release fixes:
1. Tie Fighters look like Tie Fighters (change byte at $A4CB from $72 to $C2)

2. nop out the write to port DE at $11AA. That breaks joysticks on the SC-3000 by changing the column of the keyboard matrix from column 7 to column 1. It looks like that is from the original Coleco BIOS for writing to the controller strobe set port which had been changed from $80 to $DF. But that isn't required on SC-3000 / SG-1000 / Mark III, and it breaks the SC-3000.

3. "boot update with VRAM clean and better colors for Game Gear (SMS mode)."


It also includes fixes from Revo's 16 Sept 2022 release which were:

1. Level 2 towers display now

2. Joystick inversion on Wave selection screen (ie. easy / medium / hard) is now triggered by joystick 2 left / right

3. The pause / reset button now restarts the game (jp $0000)
That is important because otherwise the game just stops when you reach the game over screen.

4. The Sega SC-3000 PPI is initialized with control word $92 on startup and the joystick column of the keyboard matrix is selected


Cheers

  View user's profile Send private message Visit poster's website
  • Joined: 26 Feb 2021
  • Posts: 159
Reply with quote
Post Posted: Tue Oct 10, 2023 7:30 am
pcfreak324 wrote
Stokes wrote
Should we do Coleco Super Game Module games in the future for the SG / SMS?


From a technical perspective, this idea presents a fascinating challenge!

To start, let's take a look at the list of Super Game Module titles [link: https://cvaddict.com/profile.php?gameid=142]. These games offer an incredible gaming experience that would be fantastic to bring to the SG / SMS community.

However, before diving into the Super Game Module games, I propose you take a thoughtful step forward by supporting Coleco roms with a size of 32kb or larger. This initial endeavor would provide valuable insights and lay a strong foundation for successfully handling the additional complexities of the Super Game Module.

I'd like to suggest two games as initial undertaking:

Super DK! Junior (USA) (Proto) (Unl) - This gem holds a 32kb rom size and boasts extra animations, elevating the gameplay beyond the standard Donkey Kong Jr. experience.

Mario Brothers (homebrew) - With a rom size of 64kb, this beloved homebrew game brings the iconic Mario universe to life, and its conversion would be a delight for SEGA enthusiasts [link: https://cvaddict.com/profile.php?gameid=142].

By converting these titles, you will gain valuable insights into supporting larger Coleco roms and prepare yourself for the exciting challenges that Super Game Module games offer.

It's not a problem at all to design an adapter that would embed some RAM and the AY-8910-3 sound chip for SGM compatibility on the MS.
The real issue is the CV has analog audio pins on its extension port for mixing, which the SG-1000/MS lacks. The only option would be to have also an audio jack on the adapter to tap audio but it wouldn't be mixed with the RF or composite signal of the console without modification of the latter. For RGB models we can use a Y cable to mix signals.
  View user's profile Send private message Visit poster's website
  • Joined: 11 Nov 2023
  • Posts: 1
  • Location: Pennsylvania
Reply with quote
Coleco II
Post Posted: Sat Nov 11, 2023 5:42 am
Shout out to Jeremy Parish to stoking my interest in Coleco/SG-1000 stuff.
One thing I have been considering is Colecovision II/Master Colecovision 'fantasy console' within the Master System, with custom labels and compatible with Colecovision controllers+peripherals(like SGM), kind of a what-if recontextualization. The original CV already had a lot of Sega games any way, and there were a number of Master System Atari games for that angle.
  View user's profile Send private message
  • Joined: 14 Oct 2008
  • Posts: 513
Reply with quote
Post Posted: Sat Nov 11, 2023 5:46 pm
It's pretty off topic but what an odd thing to have recently read about how Coleco wanted to license the CV to Ni****do for Japanese distribution. What kind of strange world it would have been if both companies launched not just on the same day but with nearly-identical hardware as well?
  View user's profile Send private message
  • Joined: 14 Feb 2021
  • Posts: 13
  • Location: Canton, Missouri
Reply with quote
Post Posted: Fri Nov 17, 2023 12:17 am
honestbob wrote
Hi All

I found this very useful for conversions. The Colecovision Coding Manual by Daniel Bienvenu.

200 page manual on coding for the Colecovision plus Coleco BIOS listing. It mostly explains what the ports are and what the BIOS code is supposed to do.

Cheers

This actually could be useful for ports. If it explains the BIOS code then that would help further/speed up development on a lot of ports. Though if the manual explains bankswitching, then it could be a pretty big breakthrough when it comes to ports, and probably boost efforts for CV2SG ports of megacart games, such as the aforementioned Mario Bros., or Pac-Man Collection.
  View user's profile Send private message
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Bugfixes for Gyruss conversion by Revo / under4mhz
Post Posted: Fri Feb 16, 2024 4:16 am
Hi All

I have fixed a couple of big playability issues in the last release of Gyruss for SG-1000. Many thanks to Revo and under4mhz for their earlier work. They did the hard stuff. I just polished it up :)


I left extended comments about the changes in the .asm inside the zip file. That's just leaving some hints for anyone who looks at it in future about what I changed and why.

Basically it fixes the broken enemy flight patterns that make the game unplayable from level 4 onward, and it fixes the junk data that intermittently gets written to the screen which is mostly annoying but sometimes completely destroys the display.

It works great on my Sega SC-3000 and Sega Mark III using a Megacart. Very cool game.

Cheers



readme.txt follows below.

16 Feb 2024 - SC-3000 Survivors Patch for Revo's 21 June 2021 Colecovision conversion of Gyruss to the SG-1000
(which was based on under4mhz conversion of Gyruss from 6 June 2020)

TL;DR

Just run the "Gyruss COL2SG Hack_patched.sg" file in your emulator :)

It fixes several glitches in the file that Revo released on 21 June 2021 in the SMS Power forums that make the game difficult to play.

Many thanks to Revo and under4mhz for their earlier work. They did the hard stuff. I just polished it up :)

===================================================

Changes (see extended comments inside 'Gyruss COL2SG Hack.asm'):

1. Bugfix - enemy sprites now follow correct flight patterns.
Gyruss was unplayable from level 4 onwards, and there were errors in first 3 levels too.
One byte at $8977 was incorrectly converted by under4mhz from $70 => $C0

2. Bugfix - intermittent screen junk
This ranged from minor inconvenience with bad tiles to the screen going completely nuts
di / ei protection added to rst $10 handler (write the byte in a to the VRAM address in bc)

3. Bugfix - intermittent missing VRAM writes
Split the manual VDP write routine away from the VDP interrupt handling code
See extended notes inside Gyruss COL2SG Hack.asm as under4mhz original solution was very elegant,
but it had a couple of edge cases where VDP writes were missed.
My solution was more brute force.

4. Bugfix - joystick works on SC-3000 now.
had to nop a write to port DE (PPI port C)
That broke joysticks on Sega SC-3000 as it changed the column on the keyboard matrix

5. Added PPI init routine for SC-3000 to get joystick to work
This will be ignored by SG-1000 / II / Mark III

6. Added GYRUSSCOLECO signature at $7FE0 for Megacart autodetect routines plus a comment at $7F00 to help identify changes in future

7. Updated SMS ROM Header checksum


Play tested on Yeno TMS9928A Sega SC-3000 (50Hz) up to level 12, Sega Mark III (60Hz) up to level 10,
and Meka up to level 22 (Earth reached, returned to warping to Neptune - damn things get fast once you reach the Earth level)
using a Sega SC-3000 Megacart.

Side note - this is actually a Graphics Mode 1 game, not Graphics Mode 2.


===========================================================================================================

INCLUDED FILES:

1. "Gyruss COL2SG Hack.sg"
This is Revo's 21 June 2021 release which was based on under4mhz 6 June 2020 release
File was downloaded from https://www.smspower.org/forums/9867-SG1000ToColecoVisionPorts?start=100

2. "Gyruss COL2SG Hack.asm"
This is a WLA-DX .asm file that shows the changes and has comments as to why.

3. "Gyruss COL2SG Hack_patched.sg"
This is the patched file including the above fixes. This is what you should use to play the game

  View user's profile Send private message Visit poster's website
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Fixes for Tutankham so you can use buttons to fire laser
Post Posted: Thu Feb 29, 2024 8:36 pm
Hi All

I have an updated version of Tutankham. See Tutankham COL2SG Hack_patched.sg in the attached zip file.

This improves Revo's release from 21 June 2021 (thanks for doing the hard work) by:

1. Fixed the buttons so you can fire lasers left with left button and right with right button
The flash bomb requires both buttons to be pressed

2. Both Player 1 and Player 2 use Joystick 1 now

3. On the Skill screen
LEFT starts 1 Player game with 8 lives (equivalent to #1 on the Coleco keypad)
RIGHT starts 2 Player game with 8 lives (equivalent to #4 on the Coleco keypad)

4. DOWN returns you to the Skill Select Screen from Game Over
This is # on Coleco keypad

All other Coleco keypad mappings have been disabled as they aren't required and I prefer fewer choices as it is less confusing.
The higher skill levels just give you less lives (5 lives and 3 lives)

5. Added PPI init routine for Sega SC-3000 (this is ignored by SG-1000 / II / Mark III)

6. Added SMS ROM Header. Might be useful if you try to run on export SMS

As usual the attached zip contains Revo's original hacked file and a WLA-DX asm file which shows the changes along with some comments. I think those are useful for anyone else playing with these conversions and also because I will forget all of this in a few months unless I write it down :)

In particular there are notes about how the Coleco bios uses the Strobe set / reset to handle the controller joystick, left button, keypad, and right button.

Play tested on Yeno TMS9928A Sega SC-3000 (50Hz) and Sega Mark III (60Hz) using a Sega SC-3000 Megacart, and Meka up to level 5 (there are 4 screens and you return to the first screen in level 5 with higher difficulty)


Side note - my brain keeps calling this Tutankhamen. Apologies for any typos I may have missed.

You can find Revo's original post at https://www.smspower.org/forums/9867-SG1000ToColecoVisionPorts?start=100 then scroll down to 19 June 2021

Cheers

  View user's profile Send private message Visit poster's website
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Fri Mar 29, 2024 7:37 am
Teaser. 👀

  View user's profile Send private message
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Debugging hints for SG-1000 Coleco conversions
Post Posted: Fri Mar 29, 2024 10:26 pm
Hi All

Someone asked me about debugging these Coleco ports. I assume if you're reading this, you already have a reasonable idea of the technical differences between SG-1000 and Coleco.

So the following are just some of the techniques I used to track down the remaining bugs in the conversions that have already been done and are mostly working (ie. the RAM read writes have mostly been changed from $7000..$73FF to $C000..$C3FF, the port writes have mostly been updated, and you have a converted BIOS at $0000 which handles the SG-1000 joystick controls and remaps common sound / video writes etc).

If you don't already understand that, then the following hints probably won't be helpful.

So my start point was generally a mostly working game with some odd behavior that has hard to track down. But the debugging techniques are still useful whatever stage of the process you are at.


I don't know what other people's favorite emulator for development / debugging is, but Meka is helpful in this case because it emulates both the Coleco and SG-1000. So if all else fails, you can always step through a block of code in the original Coleco emulation to see what that does vs what your own converted code does.


The Meka save states work well if you need to test something a bit further into the game. Just play until you are nearly at the point things break, then save the state into another slot (see the Main menu and F5 to F8).


The other classic things to check are out of range memory and port writes. The Meka debugger is good for those.
b w $0000..$bfff
b w $c400..$ffff
b rw $7000..$73ff

ie. look for attempts to write to ram outside the SG-1000 range or any attempts to read / write in the Coleco RAM range.

You can also check for unexpected port read / writes in case you missed any of those.

b rw io $ff


Some of the really nasty bugs I fixed in Star Wars and Gyruss were when instructions were incorrectly changed.

Try doing a binary search in a hex editor like HxD for $DD $70, $DD, $71, $DD $72, and $DD $73 and make sure that you haven't accidentally changed something like ld (ix+4), e to a jp instruction or ld (ix+0), b to a ret nz instruction, or something like that by incorrectly shifting $70 to $C0 etc.

eg. $DD $70 $00 is ld (ix+0), b

But if you change that $70 to $C0 then you get

$DD (illegal instruction)
$C0 ret nz

Something like that, anyway. It will break your conversion.


If you get to the point that you can't remember exactly what you have changed over time, you can use a hex editor like HxD to do a binary compare between your binary and the Coleco original. Just remember to get your offsets correct because the Coleco binaries are designed to be offset to $8000 with the Coleco BIOS and RAM underneath that, whereas your SG-1000 binary will probably have a converted BIOS from $0000..$7FFF.


On that note, as you are developing, make sure you keep taking regular backup copies of what you are converting (just append 01, 02, 03 etc. to the end of the file). That way when you break something you always have an earlier version of the file you can do a binary compare against to see what you broke.


It helps if you read the Coleco docs so you know what some of the standard RAM addresses are used for in Coleco games because a lot of the Coleco games use the Coleco BIOS and so they write things into memory in predictable locations. It just helps with understanding the code. Look earlier in the thread for where I posted some developer docs for the Coleco (19 Sept 2023)


One simple little trick I found helpful was visually comparing what the RAM in the Coleco version looks like vs the RAM in the SG1000 version. To do that, just play the Coleco version in one Meka window and the SG-1000 version in another Meka window. Then use the Memory editor to look at the RAM area. This is $6000..$63FF for Coleco in Meka, and $C000..$C3FF in SG-1000.

When you play the game, you will see a pile of hex characters constantly changing in RAM. That may give you a clue as to where you want to put breakpoints for when those locations are updated as different areas are often updated for different screen operations or animations. It is just a quick visual check to help you narrow down things. And sometimes you will notice that the Coleco version is using a block of RAM which the SG-1000 version isn't using, or vice versa. So then you have probably missed something and you can hunt around that area to see what code manipulates that block of RAM.


Important - the Coleco code usually writes to $7000..$73FF, and that is where you need to place read / write break points for them to work in Meka. But Meka treats this as a mirrored block from $6000 onwards, so the Meka Memory editor only shows $6000..$63FF. That will probably confuse you if you aren't aware of it :)


Read debugger.txt in the Meka executable folder as that covers some things the on screen help doesn't.

eg. the ST (stack dump) and TR (trace) commands are very helpful.

Important - learn to look in the Debug folder under the Meka folder and find debuglog.txt. This is where everything in the Meka debug window gets written to. I didn't know that until recently. That is how you can see more than about the last 20 lines of information as the Meka window on screen doesn't scroll.

It makes commands like TR 100000 useful for dumping the last 100,000 instructions to debuglog.txt

And you can also use D to disassemble or M to dump memory to get large blocks of data written to debuglog.txt

I could have saved myself a lot of hassle over the years if I'd known that I could get an external copy of that stuff through debuglog.txt.

RTFM, I guess :)


A number of the Coleco video games use Screen Mode 1 instead of Screen Mode 2. Unfortunately that breaks the Meka tile viewer so it is harder to compare VRAM easily - you have to use the memory editor rather than being able to look at tiles. But you can still do it. Read the TMS99XX docs and figure out where the sprites and patterns and name table are etc. and Meka lets you put breakpoints in VRAM, and it also has some limited conditional breakpoints something like this:

b w vram $1807 =$34

I forget the exact syntax. But that was helpful for the times I would get some random character written to a specific position on screen. Once I did the maths to figure out the location in VRAM I could then put a conditional breakpoint on it.


Emulicious is good at showing you what blocks of code have been executed and what blocks it thinks are data after you have played through for a while. That is helpful for narrowing down areas where you have incorrectly changed some $70..$73 values to $C0..$C3 where these are actually data that should not be changed. And sometimes data does need to be changed as sometimes the data does actually have RAM addresses embedded in it. But it is a useful additional check anyway.


But unfortunately it doesn't emulate the Colecovision so that limits its usefulness for comparison purposes to see what you have broken compared to how the original code worked. It does however handle the TMS99XXA screen mode 1 correctly for the SG-1000 so you can use the tile viewer.


Hopefully someone finds those thoughts useful in future :)

Cheers
  View user's profile Send private message Visit poster's website
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Sun Mar 31, 2024 11:25 pm
Thanks, Bob. In other news, I just went to Google Chat to retrieve this. I thank Arturo and Muffie for helping me out with this manual. This was posted over a year ago in our group chat, so now we know what to do for this.
MegaCart FAQ V1-2.pdf (118.19 KB)

  View user's profile Send private message
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Sat Apr 06, 2024 4:25 pm
So, I managed to get the CV version of Congo Bongo working as a rom for the Sega SF-7000 (blueMSX) and the SC3K emulator with the 16kB / 64kB RAM extension.

Hopefully I'll get this game running for the SG, SMS, and GG soon, but for now, enjoy this.

  View user's profile Send private message
  • Joined: 03 Oct 2011
  • Posts: 188
  • Location: New Zealand
Reply with quote
Post Posted: Mon Apr 08, 2024 10:42 am
Stokes wrote
So, I managed to get the CV version of Congo Bongo working as a rom for the Sega SF-7000 (blueMSX) and the SC3K emulator with the 16kB / 64kB RAM extension.

Hopefully I'll get this game running for the SG, SMS, and GG soon, but for now, enjoy this.


Great job. That looks awesome.

Damn - that arcade style isometric version is so much harder to play than the 2D SG-1000 version :)

It works on my SC-3000 using my SC-3000 / SG-1000 Megacart (that has 32KB of RAM from $8000..$FFFF). I cleared the first two levels, but died on the 3rd level. Gameplay looks pretty good though.

The original Coleco Congo Bongo is a 24KB ROM, right? So, are you embedding 8KB of ROM data into the unused portion of the replacement Coleco BIOS then copying it into RAM at $C000, and shifting the RAM locations to $E000 instead of $C000?


For anyone trying to play this, here is a link to the Player's Manual

https://www.gamesdatabase.org/Media/SYSTEM/Coleco_Vision/manual/Formated/Congo_B...

For the skill screen, it looks like the standard mapping of:

1 = joystick right
2 = left
3 = up + right
6 = up
* = down + right
# = up + left

* (ie. down + right) pauses the game during game play

When game finishes, press * to replay with the same skill level or # to return to the game option screen.

Very, very cool :) Keep up the good work.
  View user's profile Send private message Visit poster's website
  • Joined: 17 Feb 2020
  • Posts: 677
  • Location: United States
Reply with quote
Post Posted: Wed Apr 10, 2024 5:19 pm
honestbob wrote
Stokes wrote
So, I managed to get the CV version of Congo Bongo working as a rom for the Sega SF-7000 (blueMSX) and the SC3K emulator with the 16kB / 64kB RAM extension.

Hopefully I'll get this game running for the SG, SMS, and GG soon, but for now, enjoy this.


Great job. That looks awesome.

Damn - that arcade style isometric version is so much harder to play than the 2D SG-1000 version :)

It works on my SC-3000 using my SC-3000 / SG-1000 Megacart (that has 32KB of RAM from $8000..$FFFF). I cleared the first two levels, but died on the 3rd level. Gameplay looks pretty good though.

The original Coleco Congo Bongo is a 24KB ROM, right? So, are you embedding 8KB of ROM data into the unused portion of the replacement Coleco BIOS then copying it into RAM at $C000, and shifting the RAM locations to $E000 instead of $C000?


For anyone trying to play this, here is a link to the Player's Manual

https://www.gamesdatabase.org/Media/SYSTEM/Coleco_Vision/manual/Formated/Congo_B...

For the skill screen, it looks like the standard mapping of:

1 = joystick right
2 = left
3 = up + right
6 = up
* = down + right
# = up + left

* (ie. down + right) pauses the game during game play

When game finishes, press * to replay with the same skill level or # to return to the game option screen.

Very, very cool :) Keep up the good work.


Thanks for giving it a go. Also, to answer your question, YES!

Now since that's done, I'm in the middle of trying to get Space Invaders Collection to work on the Master System. So far I fixed a few things, and the result I get from the tile viewer met my expectations. The sprites show on there, but in the debug, we're having some little problems. I'm trying my best to get this game working so you guys can be able to play this.
  View user's profile Send private message
Reply to topic Goto page Previous  1, 2, 3, 4, 5



Back to the top of this page

Back to SMS Power!