Jump to content
IGNORED

ColecoVision MegaCart FAQ


retroillucid

Recommended Posts

I wanted to let you all know that I'm no longer bankswitch-impaired. I figured it out with the help with AlekMaul and also figured out how to use Cygwin instead of cci3 to compile my source code. Also used PkK tutorial on getting the cygwin and the stuff comes with it.

 

I can plan my next project around bankswitching. Expect more animation, more levels, more FMV, and more of everything.

I think BIOS os7 sound/music engine data might be the only thing that can't be bankswitched.

  • Like 1
Link to comment
Share on other sites

Not completely accurate. You can't switch the bank while os7 sounds are playing but you can put all music & soundfx for any 1 level in the second bank that you switch in. Then assign that sound table to be current and play from it.

 

You have to stop all sounds before bank switching os7 sounds.

 

If you are constantly bank switching for routines no it definately won't work.

 

what I've tried is putting all sound effects & music into the the permanent bank for the initial levels.

 

For special levels which can run completly from 1 16kb bank including the os7 music or sound you can bank switch and play from the other bank.

 

It works well enough for title screen & end game music where you can make a complete stop to sounds before the bank switch.

I wanted to let you all know that I'm no longer bankswitch-impaired. I figured it out with the help with AlekMaul and also figured out how to use Cygwin instead of cci3 to compile my source code. Also used PkK tutorial on getting the cygwin and the stuff comes with it.

 

I can plan my next project around bankswitching. Expect more animation, more levels, more FMV, and more of everything.

I think BIOS os7 sound/music engine data might be the only thing that can't be bankswitched.

  • Like 1
Link to comment
Share on other sites

I'm running into an issue where the cvmkcart.exe haven't place the data into the right bank. I looked in hexedit to see where the data. Most of the data/function is in address 1C000 and up. The other banks had the word, "BANK1" "END OF BANK1" that I have placed into each other 7 source file to be filled later. I started at bank 7, made the title screen, story screen and etc. Then it exit that bank and the non switchable bank is intended to be more like a trampoline. So I can keep the sound, music and stuff in the first non swapable bank16KB and not have the main game in that bank. And the switch bank to run routine and pulling data from. Also, do multi directional level scroll because 16 KB bank is a good amount of memory and have the handler to handle levels that does wraparound.

 

I can attach an image of what command I typed into Cygwin console and I run cvmkcart in window's run command. C:\sdcctest\BlackTiger\cvmkcart.exe -icrtcv.ihx -b6 BlackTiger.rom

post-24767-0-95333300-1456550804_thumb.jpg

 

Yea... I am attempting making Black Tiger on the Colecovision...

 

I wasn't sure if I type anything wrong or you're not allow to have functions in other banks, just data. I was able to build a 128KB banksw example with 4 added picture

Link to comment
Share on other sites

I'm using tursi's method and make system so I guess alekmaul will know.

 

I'm running into an issue where the cvmkcart.exe haven't place the data into the right bank. I looked in hexedit to see where the data. Most of the data/function is in address 1C000 and up. The other banks had the word, "BANK1" "END OF BANK1" that I have placed into each other 7 source file to be filled later. I started at bank 7, made the title screen, story screen and etc. Then it exit that bank and the non switchable bank is intended to be more like a trampoline. So I can keep the sound, music and stuff in the first non swapable bank16KB and not have the main game in that bank. And the switch bank to run routine and pulling data from. Also, do multi directional level scroll because 16 KB bank is a good amount of memory and have the handler to handle levels that does wraparound.

 

I can attach an image of what command I typed into Cygwin console and I run cvmkcart in window's run command. C:\sdcctest\BlackTiger\cvmkcart.exe -icrtcv.ihx -b6 BlackTiger.rom

attachicon.gifabank.jpg

 

Yea... I am attempting making Black Tiger on the Colecovision...

 

I wasn't sure if I type anything wrong or you're not allow to have functions in other banks, just data. I was able to build a 128KB banksw example with 4 added picture

Link to comment
Share on other sites

I should give an update. I made sure all the bank don't void function in it. The data, mostly graphic and text are in different banks. Bankswitch is working right with cvmkcart.exe. Kinda a trial and error for me to guess which banks is which. I have around 11KB left in the main bank and now working on controls and tile collusion. I think that should be enough for the game logic. I will have to read Tursi stuff and see his method in order to use functions in other banks.

Link to comment
Share on other sites

I fixed my issue.
I used

sdcc -c -mz80 --vs --no-std-crt0 --constseg bank7 --codeseg bank7 btbank7.c

to compile the data and the code into 1 bank. I added --codeseg bank7 to the compile line and now the bank if flagged with seg for data and code. I linked and used cvmkcart to make a megacart ROM. I am able to use function while having data in a bank.

  • Like 1
Link to comment
Share on other sites

  • 5 years later...
On 11/10/2021 at 8:30 AM, Milli Vee said:

I didn't see it mentioned in the FAQ anywhere but does the MegaCart need any delay after setting the bank before actually accessing the bank?

I never though of using delay.  As soon as I use SWITCH_IN_BANK2 command in C, the following command immediately accessed the correct data.  This is in C.  If you're worried, after strobing(reading) the address, couple NOP's won't hurt.

Link to comment
Share on other sites

  • 1 month later...
13 minutes ago, Under4MHZ said:

Am I able to buy megacarts? Who sells them, and how much do they cost?

I've got what I call "HalfMega" boards. The original Megacart went up to 1024 KB. Mine go up to 512 KB (half), so it works with 128 KB, 256 KB, and 512 KB.

The price is $7 US each for the 128 KB, and probably $8 US each for 512 KB. These used to be about a dollar cheaper, but that was before the recent electronic supply and shipping issues.

I don't have any 128 KB available at the moment, but should have some prepared toward the end of January.

Link to comment
Share on other sites

15 hours ago, Under4MHZ said:

How do I order them? Do you have a website with the details? Do you supply just the PCBs or do they come complete with the components and casings? Do you ship internationally?

 

For now, send me a PM if you need any. These are fully assembled, without shells. They're easily programmable and reprogrammable with an EPROM programmer. International shipping is fine.

Link to comment
Share on other sites

On 12/26/2021 at 4:45 AM, 5-11under said:

For now, send me a PM if you need any. These are fully assembled, without shells. They're easily programmable and reprogrammable with an EPROM programmer. International shipping is fine.

Are the shells the standard ColecoVision cartridge size? Is there a 3d model for them? Getting the shells 3d printed appears to be fairly expensive.

Link to comment
Share on other sites

15 hours ago, Under4MHZ said:

Are the shells the standard ColecoVision cartridge size? Is there a 3d model for them? Getting the shells 3d printed appears to be fairly expensive.

Compared to a Coleco board, my boards have the same cut-outs on the side, and the same keep-out zones. If you open a Coleco game, you'll see what I mean.

Here's my 32K and Halfmega boards:

cv.thumb.jpg.49a75dcba0959160d2ec4de80a0d829a.jpg

Link to comment
Share on other sites

Sorry for asking here. 

I'm starting just now with SDCC on msx and I am trying to build a mega rom.

Due to similarities between coleco megacart and msx megarom I am looking for a tutorial with examples for mega cart to adapt to the different memory map and page switching.

 

My problem is SDCC and its linking system. I am used to Hitech-C for msdos that supports a large memory model up with addresses up to 24bits even for z80. The user has to provide the code for inter page jumps and for page swapping  but everything is supported by the compiler and its libraries.

Passing at SDCC, it seems to not support memory configurations larger than 64KB.

I deduce that code and data have to be compiled separately in their rom pages and then the linker had to be configured to build the rom resolving addresses and (hopefully) page numbers.

 

Is there any simple script with comments explaining what to do to build a megacart on colecovision?

 

Link to comment
Share on other sites

  • 1 year later...

Old thread but when I study this more it seems like this is exactly how the MSX runs large games by banking in 16k roms.

 

I am curious because I may use something similar and an eyebrow was raised when I read that Opcode Games owns the property created by Bryan Edewaard.
I have an objection when it is implied that bank switching is copyrighted whether it is 16K, which is clearly MSX, or 32k which is the norm in a Z80 environment.

Is OPCODE saying that this only applies to their PCB or any cartridge that uses bank switching?
 

Edited by Captain Cozmos
Link to comment
Share on other sites

  • 1 year later...

Will ColEm work with this mapper? I made a test MegaCart code (using WLA-DX) and unfortunately something doesn't work.

 

And will this Mapper work with e.g. SG-1000?

Edited by sdm
edit
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.

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