MSX Audio BIOS v1.2 - Beta testers wanted (Development MSX Forum)MSX Resource Center               
              
English Nederlands Espa�ol Portugu�s Russian         
 News
   Frontpage
  News archive
  News topics

 Resources
   MSX Forum
  Articles
  Reviews
  Fair reports
  Photo shoots
  Fairs and meetings
  Polls
  Links
  Search

 Software
   Downloads
  Webshop

 MRC
   Who we are
  Join our team
  Donate
  Policies
  Contact us
  Link to Us
  Statistics

 Search
 
  

  

 Login
 

Username

Password




Don't you have an account yet? Become an MSX-friend and register an account now!.


 Statistics
 

There are 47 guests and 1 MSX friend online

You are an anonymous user.
 

MSX Forum


MSX Forum

Development - MSX Audio BIOS v1.2 - Beta testers wanted

Author

MSX Audio BIOS v1.2 - Beta testers wanted

sd_snatcher
msx user
Posts: 50
Posted: October 18 2007, 03:14   
Hi all!

I have some news I hope you like. I'm working on a new version of the MSX-Audio BIOS and I now need some beta testers.

What's new:
1) Support for the E6h system-timer (aka Turbo-R timer). Now you'll be able to use the MSX-Audio in R800 mode, just like the MSX-Music;
2) Separate BIOS versions for the FS-CA1, NMS-1205 and HX-MU900. The HX-MU900 is the generic and most standard one. The other versions have specific portions of code to work-around their out-of-standard maker choices:
2.1) NMS-1205 proprietary mute-switch;
2.2) FS-CA1 proprietary mute-switch;
2.3) More elegant work-around than Panasonic did to "fix" their mistake on the MK-port pinout of the FS-CA1;

Note: The HX-MU900 has a standard mute-switch (SP-OFF based);

3) NMS-1160 Music Keyboard support;
4) Music Keyboard auto-detection between the HX-MU901 (49 keys) and NMS-1160 (61 keys);

The auto-detection routine will discover the Music Keyboard type and change the keymap accordingly. To use it:

  • On a 49 keys keyboard: just press the last key.
  • On a 61 keys keyboard: just slide your finger on at least 5 consecutive white keys in any direction.


I myself don't have any of those two music keyboards, so I'm pretty much coding in the dark, based on the NMS-1205 and HX-MU901 service manuals (tks, HansO!).

I believe this BIOS should also work fine on a FS-A1WSX/WX on 5MHz mode even without the system-timer. I'm not sure if it will work on any MSX with a 7MHz Z80 without a system-timer. Please note that the system-timer is detected without requiring a MSX Turbo-R. This means anyone can fit a homemade system-timer on a Z80 turbo MSX to get its benefits.

I tested my BIOS on a expanded HX-MU900 (256KB SampleRAM) connected to two *real hardware* configurations:

1) Panasonic FS-A1ST (512KB RAM)
2) Gradiente Expert 1.1 (64KB RAM) + floppy interface (with Adriano's excellent Fast!ROM)

What needs to be tested:

1) Music keyboards HX-MU900 and NMS-1160 (*1)
1.2) Hot swapping between music-keyboards. Auto-detection must work (just follow the procedures described above)
2) Extensive tests on BASIC musics with as many configurations as possible
3) Turbo Z80 MSXzes (either 5MHz or 7MHz)

*1: The HX-MU901 cannot be directly connected to a NMS-1205 without an adapter. The same applies to the NMS-1160 to be connected to either the HX-M900 or the FS-CA1. Those adapters are simple to build and I can publish its schematics if anybody wants.

Now, the files:


http://frs.badcoffee.info/files/MSXAUDIO12_NMS-1205.ROM.zip


http://frs.badcoffee.info/files/MSXAUDIO12_HX-MU900.ROM.zip


The FS-CA1 version still have some bugs I'll need to iron out before releasing it.

Best regards,
FRS

msd
msx professional
Posts: 621
Posted: October 18 2007, 09:49   
I think you still have another problem with z80 running on other freq's than 3.54Mhz. The 7.16Mhz kits also put 7.16Mhz on the bus. This freq is than used by the msx-audio chip te generate sound. The opl4 is the only sound chip used on msx which has his own osc and doesn't suffer from distorted sound if the bus freq changes. Or did I mis something?
sd_snatcher
msx user
Posts: 50
Posted: October 18 2007, 16:09   
I was thinking about native turbo machines, like the FS-A1WSX/WX or the Expert3. In those machines there's no such problem. For the 7.16MHz kits, there's nothing I can do. It's a hardware problem. PSG and YM2413 probably will also be distorted on those machines.

Yukio
msx professional
Posts: 824
Posted: October 18 2007, 18:16   
What's this?
Is this some software upgrade that you could load into a SCC cartridge (Snatcher or SD Snatcher) to play MSX-Audio BASIC musics using a external Philips Music Module?

sd_snatcher
msx user
Posts: 50
Posted: October 18 2007, 23:40   
Quote:

What's this?
Is this some software upgrade that you could load into a SCC cartridge (Snatcher or SD Snatcher) to play MSX-Audio BASIC musics using a external Philips Music Module?



Nope. Much better.

It's new BIOS to be used on a Music Module (NMS-1250), Panasonic MSX-Audio (FS-CA1) or Toshiba MSX-Audio (HX-MU900).
On a Panasonic one, it's a drop-in replacement. Remove the old EPROM, put the new one.

For the Music Module and the Toshiba MSX-Audio, the following upgrades are required:


http://www.msx.org/MSX-AUDIO-BIOS-for-Philips-Music-Module.newspost2931.html


http://www.msx.org/256KB-SampleRAM-and-MSX-Audio-BIOS-on-Toshiba-HX-MU900.newspost4458.html


sd_snatcher
msx user
Posts: 50
Posted: October 19 2007, 03:56   
Here's the FS-CA1 version, now working fine:


http://frs.badcoffee.info/files/MSXAUDIO12_FS-CA1.ROM.zip


Pentarou
msx user
Posts: 34
Posted: October 19 2007, 23:05   
I can't download the files
sd_snatcher
msx user
Posts: 50
Posted: October 19 2007, 23:36   
Quote:

I can't download the files



Oops. Mistake corrected. You can now download the files. Sorry.

NYYRIKKI
msx master
Posts: 1528
Posted: October 19 2007, 23:40   
So... Do I understand correctly, that this BIOS does not work if you don't have 256KB sample RAM?

I saw that many have requested CALL MUSIC command support. Maybe you could add something like CALL FAKEMUS to enable full MSX-Music emulation... Or maybe you could add MSX-Music detection that would enable CALL MUSIC in case MSX-Music is not present.

BTW does this BIOS support following CALL-commands?
APPEND MK
APEEK
APOKE
CONT MK
COPY PCM
CONVP
CONVA
INMK
KEY ON
KEY OFF
LOAD PCM
MK VOICE
MK VEL
MK VOL
MK TEMPO
MK STAT
MK PCM
REC PCM
SET PCM
SAVE PCM
SYNTHE
PLAY PCM
PCM FREQ
PCM VOL
PLAY MK

sd_snatcher
msx user
Posts: 50
Posted: October 20 2007, 05:13   
Hi, NYYRIKKI!

Quote:

So... Do I understand correctly, that this BIOS does not work if you don't have 256KB sample RAM?



Weird. I never heard of that. My tests are being done on my HX-MU900 with 256Kb SampleRAM and it works perfectly fine. I also once (about 2 years ago) tested the MSX-Audio BIOS 1.0 on a Music Module expanded to 128KB SampleRAM and it also worked fine.

Do you have more details on this problem?

Quote:


I saw that many have requested CALL MUSIC command support. Maybe you could add something like CALL FAKEMUS to enable full MSX-Music emulation... Or maybe you could add MSX-Music detection that would enable CALL MUSIC in case MSX-Music is not present.



Hummm. I left this topic behind once BiFi published his _MUS2AUD tool.
It is theoretically possible to implement it. But I'll only spend time coding this if the MSX community shows interest in the project. Otherwise I feel compelled to follow my own route.
Please note that it will not be an emulation, but just it could answer the CALL MUSIC command after, as you suggested, the CALL FAKEMUS command.

Full MSX-Music support would be possible with an OPL3 onboard.

Quote:


BTW does this BIOS support following CALL-commands?
<snip>



All of them are fully supported, after all this BIOS is the real thing. On the MSX-Music BIOS many of those commands are explicitly blocked.

There are only two difference an user will notice from the original Panasonic FS-CA1:

1) The lack of the AudioROM (*1). The BIOS automatically detects this, so the "#" parameter to the CALL COPY PCM command will return an "illegal function call".

2) There's no CALL SYNTHE. This is the built-in editor Panasonic bought from Toshiba to fit in the ROM. It's not part of the MSX-Audio specification. The CALL SYNTHE is to the MSX-Audio BIOS an proprietary extension just like the CALL FMPAC is to the MSX-Music. Both are not even commands in a strict sense, but just a way to invoke a program.

*1: Please note that the AudioROM is not the same as a SampleROM. Both are detected and supported by the MSX-Audio BIOS and have different characteristics. The Panasonic FS-CA1 only has the AudioROM.


  • AudioROM: MegaROM connected to the Z80 bus. Can contain PCM or ADPCM samples, but it cannot be directly accessed by the Y8950. I believe it can hold up to 7MB of samples.
  • SampleROM: ROM connected to the Y8950 memory bus. Can only contain ADPCM samples, but the Y8950 can play its samples directly with hardware acceleration. It can contain up to 256KB of Samples.



manuel
msx guru
Posts: 3548
Posted: October 20 2007, 12:07   
FRS, I think you misunderstood NYYRIKKI's remark about 256kB sampleRAM. He asked if the BIOS *needs* 256kB sampleRAM, or if it also works with unexpanded MSX-AUDIO carts.
sd_snatcher
msx user
Posts: 50
Posted: October 20 2007, 17:29   

You're right Manuel. Sorry, NYYRIKKI. Here it goes again:

Quote:


So... Do I understand correctly, that this BIOS does not work if you don't have 256KB sample RAM?



Short answer: 256KB of SampleRAM is not required. It works fine with less than that.

Detailed answer:

The MSX-Audio BIOS was designed in a incredible flexible way. It is much more flexible to detect its supported storage sizes than, say, the ExtBIOS of the MSX2 (this one only support fixed sizes of VRAM: 16KB, 64KB or 128KB and never supported the 64KB extRAM to sum up to 192KB). The extROM is also not flexible on its devices support: only one V99x8 connected to the same MSX and only on a hardcoded set of I/O ports (normally 98H).

The MSX-Audio BIOS, in other way, natively detects and support any the following configurations:

- One or two Y8950 at the same time, either on the primary set of ports (C0h/C1h) or secondary (C2h/C3h)
- Any size of SampleRAM (0KB to 256KB) on the 1st Y8950;
- Any size of SampleRAM (0KB to 256KB) on the 2st Y8950;
- Any size of SampleROM (0KB to 256KB) on the 1st Y8950;
- Any size of SampleROM (0KB to 256KB) on the 2st Y8950;
- Any size of AudioROM (0KB to, I believe, 7MB) on the same slot the BIOS is.
- 16KB, 64KB or 128KB of VRAM (yes, it can store samples on the VRAM!)

Obs: Only the main RAM seems not to be detected. Memory mapper is not supported.

It also natively supports MIDI, although this is not available on the Panasonic FS-CA1. In this case only the MIDI hooks are called. I believe it would be possible to add support for the Music Module MIDI ports using this, but, again, this would depend on the MSX community interest. It will require a lot of effort since I know very little about the MIDI standard implementation and also I know nothing about the Music Module MIDI interface. It' s a lot of knowledge to learn (IOW: time to invest) and I certainly will not waste time going this way if there' s no interest.

The BIOS is also very flexible for adding support for new devices. Currently it supports:

PLAY#0: PSG
PLAY#1: MIDI
PLAY#2: Y8950+PSG
PLAY#3: Y8950+PSG (I don't know the difference from the #2)

I believe it's possible to extend it to support to, say, the OPL4-wavetable of moonsound and even the SCC. Something like:

PLAY#4: OPL4-wavetable
PLAY#5: SCC

- - - - -

To finish this post, I have a good new feature to announce: The long expected CALL MUSIC support. After the _FAKEMUS idea from NYYRIKKI I got some time to think about an elegant solution for this problem. I came up with this one and hope you like it:

The BIOS now support the CALL MUSIC statement. But instead of enabling the CALL MUSIC after the CALL FAKEMUS, I opted to start recognizing the CALL MUSIC statement after the 1st CALL AUDIO is issued and initializes the MSX-Audio, like any other MSX-Audio BIOS command. This allowed me to solve two problems at the same time:

1) Make things easy for the user, so one will not need to change the CALL MUSIC commands by CALL AUDIO anymore. I wanted to be sure the solution would not result in blocking the MSX-Music from receive its activation command.

2) The MSX-Music BIOS was quick-and-dirty done, and when there' s both MSX-Audio and MSX-Music BIOSes on the same MSX, there where a situation where the MSX would freeze: Without this feature, after the 1st CALL AUDIO is issued, any subsequent CALL MUSIC would be caught by the MSX-Music BIOS and the MSX would lock on the next PLAY#2 command. This is now fixed.

There's only one situation of this CALL MUSIC matter I can't solve: The MSX-Audio BIOS must be installed on a lower slot than the MSX-Music BIOS, otherwise the MSX-Music BIOS will caught the CALL MUSIC statement before I can do anything. This is particularly the case of the Turbo-Rs, since the internal MSX-Music is placed at slot 0.3.

Here are the files. Those are the 1.2pre4 version, which I believe its very close to what will be the final 1.2. I just need to be sure that the Music Keyboard routines are working as expected. I forgot to number that previous release on this forum thread, but it was 1.2pre3.


http://frs.badcoffee.info/files/MSXAUDIO12_FS-CA1.pre4.ROM.zip


http://frs.badcoffee.info/files/MSXAUDIO12_HX-MU900.pre4.ROM.zip


http://frs.badcoffee.info/files/MSXAUDIO12_NMS-1205.pre4.ROM.zip


 
 







(c) 1994 - 2008 MSX Resource Center Foundation. MSX is a trademark of MSX Licensing Corporation.