VGMPlay for MSX

Page 7/47
1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | 11 | 12

By igal

Master (211)

igal's picture

13-03-2015, 11:08

@l_oliveira:Bravo for the OPN success Smile

I built your OPL3 scheme successfully. (Just a Bug on IORQ Pin 8 and 9 reversed). Thank you for sharing Smile
Here is a drawing with another RAM Sony CXK58256 than you suggest. (If it helps someone)

Can you publish your OPN diagram please? :face:

By sd_snatcher

Prophet (3092)

sd_snatcher's picture

13-03-2015, 13:37

Is it possible to simplify the circuit to have a single SRAM for both the register-cache and the MSX-Audio BIOS WorkRAM?

By l_oliveira

Hero (529)

l_oliveira's picture

13-03-2015, 13:45

sd_snatcher wrote:

Is it possible to simplify the circuit to have a single SRAM for both the register-cache and the MSX-Audio BIOS WorkRAM?

Not at all, because the RAM has to have two different addressing mechanisms. It would require very complex logic to achieve that. Way beyond the scope of the OPL3 project at the time. Also I am now very against this OPL3 schematic (you might see why if you look the OPL detection algorithm I sent you in MSX basic) because it causes issues with detecting what the cartridge actually is.

The real culprit is the Moonblaster software being extremely poorly written. Tongue

Igal: That was not a bug, it was intentional for making wiring easier. The order of the address lines for the RAM chip does not matter at all because what will be written will be read through the same hardware. Also, I/O addressing uses only A0-A7.

I was using only 512 bytes of the RAM. What a waste is use a 32KB RAM just for 512 bytes from it.

If you notice, the circuit which make the RAM behave like FM registers are copy of the MSX2 RTC circuitry. Wink

By igal

Master (211)

igal's picture

13-03-2015, 14:44

One year ago thewhipmaster send me this schéma.
i think It's an addon for insert thé bios.
You know what is it?
It's you work?

Thank for helppane Smile
(The IRQ connection It's inverted here ^^)

Merci pour le lien. J'efface un 27C512 et j'essais ça dans la foulée.

Concernant l'[OPL3 AddOn] de MsxPro, en voici ce que j'ai relevé de mon expérience avec l'ancien schéma:

Légende:
Bleu: Resté inchangé.
Orange: Modification/Correction de l'ancien schéma.
Vert: L'Addon constitué d'un AT49F002, une 6264 Sram et d'un 74HC139.

Nb: De ma propre expérience, il faut réduire R4 et R6 de 15Kohms à 6.8 Kohms. R8 et R10 doivent être réduits de 22Kohms à 1Kohms.
Plus la valeur de ces 4 résistances est haute et plus le volume est augmenté.

On peut voir que:
1) IORQ à été corrigé.
2) Un bug s'est glissé sur YMF262. Inversion de RD et WR.
3) Un bug corrigé sur YAC512. Les +5V sont maintenant filtrés.
4) L'ensemble C2, C3, C4, C5 et R2 on été divisés par 10!
5) L'ensemble U10A et U10B me sont inconnus. (Savez vous quel est ce composant ???)
6) /CS12, A8, A9, A10, A11, A12, A13, A14 et A15 sont nécessaire seulement pour la partie [Addon On].

By l_oliveira

Hero (529)

l_oliveira's picture

13-03-2015, 15:42

That schematic is not my original, it was likely redrawn by Luciano Sturaro of MSX PRO website.

The MSX-Audio function is not my idea either. It's FRS' (sd_snatcher on this site) idea so someone added the circuit there.

So let's see:

- IRQ is not connected: On my cartridge it is indeed connected. Moonblaster requires it as it uses the timer to synchronize the music.

- Bug on YMF262. Inverted RD and WR. -> It won't work at all like that, that's correct.

- Bug on YAC512. The 5v on YAC512 has to be filtered. -> In my original cartridge design I use +12V and -12v from slot with soft filtering through 100ohm resistor and electrolytic cap to power OP AMPs. And to power YAC512 I use a 78L05 IC.
I also used high quality Japanese ROHM OP amps instead of that garbage LM324 op amp. Too little throughput on that one... Makes very poor audio quality.

- C2, C3, and R2 are there to keep the OP amp from oscillating. C4 and C5 are supposed to filter high frequency aliasing that could be generated by the D/A conversion process. These DACs used on theYamaha chips are AWFUL but they do their job properly if circuit is designed correctly.

- U10 A and B are output buffers applied after the low pass filter from C4 and C5. They serve the purpose of isolating the output so load on the output of the low pass filter don't affect it's characteristics. If you look the datasheet for YAC512 these OP amps are there anyway.
I had never thought of that until you mentioned. I checked and the only logical explanation seem to be what I just mentioned.

And you can't use /CS12 for the MSX AUDIO BIOS circuit because it has a odd memory mapping. But about the other signals you are right.

Anyway it was not me who drew that circuit.

How about this one:

Sorry about this slight hijack of your thread, grauw ! B-)

Edit: looking at the schematic again, it is feeding regulated +5v on the YAC512... LOL!

By Grauw

Ascended (8515)

Grauw's picture

13-03-2015, 20:04

Grauw wrote:

currently I’m waiting for an MMM cartridge with SN76489 sound chip thanks to popolony2k

Aah, I made a mistake. There are two popolons, Popolon (fr) is the person who made the Musical Memory Mapper cartridge, together with gdx, a very nice product :). He also made the msxDS emulator for Nintendo DS. I received the MMM yesterday and the SN76489 playback is working now, I’ll post a new video soon.

By gamemastermaarten

Master (164)

gamemastermaarten's picture

15-03-2015, 12:32

Nice Job. And also a Roland synthesizer. Which are also used for piano pieces. Wink

By Grauw

Ascended (8515)

Grauw's picture

19-03-2015, 23:37

New video: VGMPlay for MSX, Sega music (SN76489 + YM2413)

This video features the new SN76489 DCSG support, as well as the YM2413 OPLL. I picked a couple of songs from games for Sega consoles:

  1. Sega jingle (Sega MkIII, SN76489)
  2. Pókemon (Sega Pico, SN76489)
  3. Space Harrier (Sega MkIII, SN76489 + YM2413)
  4. Out Run 3D (Sega MkIII, YM2413)

The music is playing on my MSX turbo R, using the built-in OPLL and the Musical Memory Mapper sound cartridge for the DCSG. The Franky and PlaySoniq cartridges are also supported for DCSG playback.

The observant viewer may notice that the Space Harrier theme also lists the YM2151 OPM; this sound chip is not actually playing, but it’s listed because the 1.01 VGM file format did not contain separate information block for OPLL and OPM.

The SN76489 DCSG was used in amongst others the Sega Master System, Mega Drive, the Colecovision, the BBC Micro, the TI-99/4A and several more home computer as well as arcade systems. VGM music for the DCSG can be found here and here.

By Grauw

Ascended (8515)

Grauw's picture

21-03-2015, 21:13

After a month of hard work, VGMPlay for MSX 1.0 is released!

You can get it from the downloads page on the project site. Also check the videos on Youtube.

Supported sound chips

  • AY-3-8910 PSG / YM2149 SSG
  • YM2151 OPM (SFG-01/05)
  • YM2413 OPLL (MSX-MUSIC, FM-PAC)
  • YM3526 OPL (MSX-AUDIO, Music Module, MoonSound)
  • YM3812 OPL2 (MoonSound)
  • YMF262 OPL3 (MoonSound)
  • YMF278B OPL4 (MoonSound)
  • Y8950 MSX-AUDIO (Music Module, 256K sample RAM recommended)
  • K051649 Konami SCC
  • SN76489 DCSG (Franky, Playsoniq, Musical Memory Mapper)

Usage instructions

Run VGMPlay from MSX-DOS 2, specifying the VGM file to play on the command line:

vgmplay [options] 

Note that the compressed VGZ format is not supported, rename the file to .vgm.gz and extract it using gzip or your favourite decompression software to retrieve the uncompressed VGM file.

For more information, check the manual.

By Grauw

Ascended (8515)

Grauw's picture

21-03-2015, 23:23

So, currently only uncompressed VGM files can be played. However as most VGM files are nowadays distributed as gzip-compressed VGZ files, to decompress them you need to rename the file to .vgm.gz and extract it using gzip or your favourite decompression software to retrieve the uncompressed VGM file. I use the following shell script on OS X:

for f in *.vgz; do mv "$f" "${f/.vgz/.vgm.gz}"; done
gunzip *.gz
chmod -x *.vgm

Additionally, to configure Multi Mente to play VGM files (with multi-selection), add the following line to MMRET.DAT:

.VGM    VGMPLAY $T
Page 7/47
1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | 11 | 12