Jump to content
msmeenk

MSX -> CV sound conversion

Recommended Posts

Hello all!

I've recently been working on a port of Eggerland Mystery from MSX to CV, and have it mostly finished. However, I've run into a problem with the sound conversion and wanted to get some opinions. Basically, the MSX sound chip has a larger range than the SN76489 the CV uses, so a direct note-to-note conversion means about half the bass notes are missing. I know there are a few options, but I thought I'd see what you guys thought.

 

1. Leave the sound as-is, and have it run only with the super game module. Since it currently uses about 16K RAM, it will only run on an ADAM or with the SGM anyway. Are there really that many people that would want to use this on an ADAM, and not have a SGM?

 

2. Do some kind of editing to the music: either remove the bass channel, or raise the whole channel an octave.

 

3. Rewrite the music completely, change it to something else, maybe from another version of Eggerland/Lolo.

 

4. Something else????

 

Anyone else doing ports had this issue? What did you do?

  • Like 3

Share this post


Link to post
Share on other sites

4) If things are not too far out of range, use a pitch other than A=440Hz. Only people with absolute pitch will notice. And many musicians/orchestras, contemporary and past are doing it anyway for one or another reason.

 

Philipp

  • Like 1

Share this post


Link to post
Share on other sites

The number of people that would play this on an ADAM are probably pretty small compared to the number that would play on a ColecoVision. Seeing as the game will require the SGM to work anyway, you should just go ahead and make it a SGM required game (when used on the ADAM as well as CV). As far as the sound issue, I can't recall off hand what "extra" sound chip will be included with the SGM, but I do recall Opcode stating that it will make porting MSX games to the CV/ADAM much easier for him as well as having the additional 32K RAM. This, as well as making it a SGM required game, may solve all your problems.

Share this post


Link to post
Share on other sites

What NIAD said. :)

 

The sound chip inside the SGM is an MSX sound chip. It is used by such games as the MSX ports of King's Valley and Thexder (and will likely be used by other upcoming MSX ports such as Goonies and Knightmare) so the SGM is required to play those games on the Adam as well as the CV.

 

Most of the ColecoVision fans have pre-ordered an SGM, so feel free to make your life easier and just use all the SGM's available features. :)

 

 

Oh, and :thumbsup: :thumbsup: for porting Eggerland Mystery, I loved Adventures of Lolo on NES. :D

Share this post


Link to post
Share on other sites

I've used a trick in Princess Quest, as originally it was developed for MSX it used the powerful basses from AY-3-8910.

 

As I've complete control over the game, the music was developed with bass using channel B. On porting to SN76489, I used a trick first discovered by Daniel Bienvenu, the noise channel can be programmed to a fixed envelope instead of noise, it divides the frequency by 15.

 

You program the channel 3 (noise) for fixed envelope and variable frequency (uses channel 2 that you should mute) and you put in channel 2 frequency the original data value divided by 15.

 

It sounds like a harmonic but does the trick and Princess Quest have its basses :), I've done same for upcoming Mecha-8.

  • Like 2

Share this post


Link to post
Share on other sites

So many replies already! :-o

I've used a trick in Princess Quest,...

...You program the channel 3 (noise) for fixed envelope and variable frequency (uses channel 2 that you should mute) and you put in channel 2 frequency the original data value divided by 15...

 

Ah, that's a cool trick! I knew you could set up the noise channel that way, but I didn't realize you could do that with the frequency. I'll have to play around with that sometime, either with this or some future project.

 

The number of people that would play this on an ADAM are probably pretty small compared to the number that would play on a ColecoVision. Seeing as the game will require the SGM to work anyway, you should just go ahead and make it a SGM required game...

 

Alright, I figured that, but I thought I'd ask anyway. Even if I use the SGM for sound, it should still work on an ADAM without the SGM, just with no sound.

 

What NIAD said. :)

 

The sound chip inside the SGM is an MSX sound chip. It is used by such games as the MSX ports of King's Valley and Thexder (and will likely be used by other upcoming MSX ports such as Goonies and Knightmare) so the SGM is required to play those games on the Adam as well as the CV.

 

Yeah, the SGM having the same chip as the MSX means it's very simple to port, just change the output port number, and add a couple small routines to replace the MSX BIOS sound routines.

Now to find an emulator with SGM support, if they exist yet... Maybe it's time to add sound emulation to mine. :skull:

 

Oh, and :thumbsup: :thumbsup: for porting Eggerland Mystery, I loved Adventures of Lolo on NES. :D

 

Me too! Also, my apologies if I've intruded on your plans.. I think I remember seeing Eggerland Mystery on at least one of your lists of future ports.

Edited by msmeenk

Share this post


Link to post
Share on other sites

So many replies already! :-o

 

What can I say, you announce a new port for ColecoVision, people take notice! We're a lively bunch! :D

 

 

Alright, I figured that, but I thought I'd ask anyway. Even if I use the SGM for sound, it should still work on an ADAM without the SGM, just with no sound.

 

Opcode Games highly recommends including some SGM detection routines to be used at boot time. Eduardo can probably supply you with what you need.

 

 

Yeah, the SGM having the same chip as the MSX means it's very simple to port, just change the output port number, and add a couple small routines to replace the MSX BIOS sound routines.

Now to find an emulator with SGM support, if they exist yet... Maybe it's time to add sound emulation to mine. :skull:

 

There's no emulator that supports the SGM in its final incarnation.

 

 

Me too! Also, my apologies if I've intruded on your plans.. I think I remember seeing Eggerland Mystery on at least one of your lists of future ports.

 

Really? I don't recall that. Must have been a long time ago... Or perhaps it was on someone else's to-do list. Anyway, I never had any plans to publish Eggerland Mystery on the ColecoVision. But I am 100% sure I will buy a copy if it eventually gets released on cartridge! :)

 

Also, adding the replacements for the MSX BIOS routines may make your game go over the 32K limit. It wouldn't surprise me, since Eggerland Mystery has over 100 levels, so the original MSX game must run up very close to the 32K line. You may need to resort to using an Opcode MegaCart, but if you do, you'll have a minimum of 128K to work with, which means you could theoretically add a bunch of new levels not found in the original MSX game. This would be easy too: Just import all the levels from the three NES Lolo games, with some slight modifications. Or you could run a contest for people to submit new levels! :D

Share this post


Link to post
Share on other sites

Opcode Games highly recommends including some SGM detection routines to be used at boot time. Eduardo can probably supply you with what you need.

Yeah, I'll have to read through the SGM technical thread(s?) again and see what I can find, but I'll message him as well and see what happens.

 

There's no emulator that supports the SGM in its final incarnation.

 

Well, then I'll probably end up adding whatever info I can find to the random mess of an emulator I wrote ~10 years ago, which is also what I've (mostly) been using for debugging. There's no sound support atm, since I'm terrible at sound programming, which is mostly why I started this thread in the first place. Again, I'll have to look over specs/talk to Eduardo for the info.

 

Really? I don't recall that. Must have been a long time ago... Or perhaps it was on someone else's to-do list. Anyway, I never had any plans to publish Eggerland Mystery on the ColecoVision. But I am 100% sure I will buy a copy if it eventually gets released on cartridge! :)

 

I thought I remembered it mentioned somewhere.. maybe in a poll to see what people were interested in seeing ported next? Eh, doesn't matter.

Also, no plans atm for any specific release, either ROM or cart.. I need to figure out who and what to ask about it; I definitely don't want to get sued by someone for copyright or any other issues. >.<

 

Also, adding the replacements for the MSX BIOS routines may make your game go over the 32K limit. It wouldn't surprise me, since Eggerland Mystery has over 100 levels, so the original MSX game must run up very close to the 32K line. You may need to resort to using an Opcode MegaCart, but if you do, you'll have a minimum of 128K to work with, which means you could theoretically add a bunch of new levels not found in the original MSX game. This would be easy too: Just import all the levels from the three NES Lolo games, with some slight modifications. Or you could run a contest for people to submit new levels! :D

 

Actually, the MSX Eggerland ROM has some rather large areas used only for disk access, saving and loading levels, and various other features in the mini level editor that aren't needed on the CV. (editor still works, btw, just can't save anything permanently, but what would you save to anyway? I suppose there are data packs/disks on the ADAM, but, I doubt I want to go there. Feature creep is an evil thing.) I have 200+ bytes free even after converting the graphics and other random BIOS routines necessary to run, which should be more than enough to add the sound BIOS routines and also any initialization/SGM test routines needed. That said, the level and graphics data takes up about 12-15k, though it's not always easy to tell what's what in the data sections, there are some compression routines that I'm not completely sure about yet. That's also why it uses so much RAM, it unpacks the levels into RAM a few at a time.

 

Using a MegaCart is an interesting idea, though that's a huge amount of space. Even if the compression is terrible, that's still room for over 500 more levels, and more likely 2-3 times that.

 

So many things to think about.. And here I thought I was almost done with the port. :-D

Share this post


Link to post
Share on other sites

Actually, the MSX Eggerland ROM has some rather large areas used only for disk access, saving and loading levels, and various other features in the mini level editor that aren't needed on the CV. (editor still works, btw, just can't save anything permanently, but what would you save to anyway? I suppose there are data packs/disks on the ADAM, but, I doubt I want to go there. Feature creep is an evil thing.) I have 200+ bytes free even after converting the graphics and other random BIOS routines necessary to run, which should be more than enough to add the sound BIOS routines and also any initialization/SGM test routines needed. That said, the level and graphics data takes up about 12-15k, though it's not always easy to tell what's what in the data sections, there are some compression routines that I'm not completely sure about yet. That's also why it uses so much RAM, it unpacks the levels into RAM a few at a time.

 

Using a MegaCart is an interesting idea, though that's a huge amount of space. Even if the compression is terrible, that's still room for over 500 more levels, and more likely 2-3 times that.

 

So many things to think about.. And here I thought I was almost done with the port. :-D

 

If you can make it fit in 32K, you could also use my Activision PCB, which supports an auxiliary savegame EEPROM. The EEPROM I/O works in test situations, but I have yet to release a game that uses it. The first game to do so will probably be The Black Onyx next year.

 

But it's all theoretical talk now, since you don't intend to put the game on carts.

Share this post


Link to post
Share on other sites

If you can make it fit in 32K, you could also use my Activision PCB, which supports an auxiliary savegame EEPROM. The EEPROM I/O works in test situations, but I have yet to release a game that uses it. The first game to do so will probably be The Black Onyx next year.

 

But it's all theoretical talk now, since you don't intend to put the game on carts.

 

Sorry, I knew I should have phrased that differently, I have trouble putting thoughts into words sometimes.. I'd like to eventually release in cart form, just need to figure out who to talk to about it, and what permissions I'd need to get for it. I just meant there weren't any immediate plans for it, since I haven't talked to anyone about it yet. I certainly didn't want to state release dates, then end up running into copyright issues or something. :P

If all else fails I'll probably just release the ROM, or a ROM patch, and let people do whatever with it.

 

Do you have a datasheet or some tech info for your PCB somewhere, just to see if I could make that work? I'm guessing it uses either an I/O port or a small section of memory, or maybe swaps it in and out, like a megacart?

Share this post


Link to post
Share on other sites

Sorry, I knew I should have phrased that differently, I have trouble putting thoughts into words sometimes.. I'd like to eventually release in cart form, just need to figure out who to talk to about it, and what permissions I'd need to get for it. I just meant there weren't any immediate plans for it, since I haven't talked to anyone about it yet. I certainly didn't want to state release dates, then end up running into copyright issues or something. :P

If all else fails I'll probably just release the ROM, or a ROM patch, and let people do whatever with it.

 

Do you have a datasheet or some tech info for your PCB somewhere, just to see if I could make that work? I'm guessing it uses either an I/O port or a small section of memory, or maybe swaps it in and out, like a megacart?

 

The Activision PCB was developed just a couple of years ago, and there's very little documentation I can give you. I have some source code in C language that you could look over, which was used in creating a test program for the EEPROM I/O. That alone should answer most of your question about how the EEPROM I/O works. The Activision PCB also supports bankswitching for 64K carts (lower 16K fixed, higher 16K switchable between three banks), and the test program also tests this feature.

Share this post


Link to post
Share on other sites

I know this is a little off-topic, but I didn't know if this warranted it's own thread.

 

I emailed the company and this is what I get:

 

Hello, this is HAL Laboratory, Inc.

 

Thank you for your email.

 

We considered your offer to port the MSX version of

Eggerland Mystery to Colecovision, but a conclusion has

been reached to not accept your offer as our company.

 

We apologize that we couldn’t come up with your expected

answers, but we'd like to ask you to understand our decision.

 

Sincerely yours,

HAL Laboratory, Inc.

http://www.hallab.co.jp/

[email protected]

 

I'm not completely sure they understood what I was asking, since all I asked for was an email address, someone I could contact for permission to do a port. I know as a company they wouldn't want to publish anything themselves, since they wouldn't make anything from the few copies they'd sell. I'll probably reply and ask for clarification, but I'm not really sure what to ask. Anyone else done this before? Any tips? I hate to give up now, but they did make the original game, and I don't want to cause any trouble.

Share this post


Link to post
Share on other sites

They said no, msmeenk. And no means no, any way you look at it.

 

I agree, their letter back to you is poorly worded.

 

At first I thought they were saying they didn't want to port it but after looking at it more, I believe they are saying they are refusing your idea to port it for them.

Share this post


Link to post
Share on other sites

I came to the same conclusion as ColecoDan. They seem to be saying that they are refusing your proposal to port the game to the ColecoVision for them to distribute.

 

I compliment you on trying to do things the "RIGHT" way, but I think that you will find that 99.99% of the companies that are still in business or somehow reachable via current rights holders will say "No thanks" to any type of questions concerning letting you or others port their games to the ColecoVision.

 

So in the end, I would suggest finishing the game since you have so much time and effort involved in it already. If you want to share it with the rest of the CV community, then do so with either a rom image release or a CIB release through CollectorVision or Team PixelBoy.. but don't use your real name anywhere in the game or if a CIB is made, anywhere in the game, label, manual and box.

 

It's not like Hal Labs will be monitoring the CV Scene waiting for the possibility that you do finish and release the game. For example, Mario Bros. was released on the CV about 4 years ago and I don't think Nintendo has made any threats to anyone involved in it's release.

Share this post


Link to post
Share on other sites

I wouldn't go through their web page...find an appropriate contact and write them a letter directly. The person who answered you doesn't detail anything in his response or even put his name on the answer...not sure I would completely trust that. you may have just gotten somebody with no actual authority who doesn't know what they are talking about.

 

I know this is a little off-topic, but I didn't know if this warranted it's own thread.

 

I emailed the company and this is what I get:

 

 

 

I'm not completely sure they understood what I was asking, since all I asked for was an email address, someone I could contact for permission to do a port. I know as a company they wouldn't want to publish anything themselves, since they wouldn't make anything from the few copies they'd sell. I'll probably reply and ask for clarification, but I'm not really sure what to ask. Anyone else done this before? Any tips? I hate to give up now, but they did make the original game, and I don't want to cause any trouble.

Share this post


Link to post
Share on other sites

By the wording in the letter, as Hal is Japanese, it looks more like they thought you offered they a port for publishing.

Share this post


Link to post
Share on other sites

Hi msmeenk, I did some conversions the other way around. I can tell you that (AFAIK) my job is way easier than yours! :) With 64k RAM I can place the entire ColecoBIOS (patched of course) in MSX RAM.

- Anyway, I created, in asm, an "emulator" of the SN chip. If I remember correctly I had problems with noise, as, the SN chip has an extra bit for frequencies. In the end, instead of mapping the frequencies to a lower range, I decided to just transform coleco noises to tones.

Here's how Tutankham sounds with that emulator:

 

 

Check the dying sound ~30s.

 

Now, I'm working on a conversion of time pilot. I decided to change completely the sounds using original AY sounds made by Toni Galvez.

 

But something that we're planning to the future is to rewrite the sounds directly on the coleco format without using noise. That would make the conversions way faster.

I see that most games use the BIOS routines @ $1ff1 or $1ff4 (don't remember exactly)

Is there an editor that I could use to edit and/or create sounds directly on that format? Something like the Spectrum tools for the AY's chip?

-> AYFX Editor (http://shiru.untergrund.net/software.shtml)

 

Thanks in Advance,

Muffie.

  • Like 3

Share this post


Link to post
Share on other sites

I hope to get into programming eventually and I think Sound would be a cool place to start.

Daniel's music is always top notch and he has always been someone I've always looked up to. Being a musician myself, I'd love to try to do something with programming some sounds and perhaps songs.

If I could just find the time to sit down and read everything here in this section and do my homework first.. maybe i'll have a fighting chance. I'll be following the section more closely so I can learn as much as possible. Who knows.. maybe by this time next year, I'll have something. ;)

Share this post


Link to post
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.

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