MDCMC – Mono Double Chaos Music Composer

Some of my games contain music composed by Poison in SDCMC (Stereo Double Chaos Music Composer) created by Datri. These are Quarrion and Nemezyro.

Poison composes only in CMC and SDCMC is his long time favorite CMC mod. I do not own Atari with stereo pokey and my goal is to create games for as wide Atari audience as possible… so I tend to not utilize any HW extension.

Yes, Quarrion and Nemezyro use Stereo Pokey, but those tunes are really great. This is due to Double modification which Poison’s favorite and it is exclusively used only in SDCMC. I realized there is no CMC modification that can play Double sound in classic mono CMC… so I decided to do it on my own.

I took CMC player source from ASAP:

https://sourceforge.net/p/asap/code/ci/master/tree/6502/cmc.asx

Compared it to SDCMC player source that I got from Xuel (this has some adjustments for mono playback, but not what I was looking for)… and after couple hours, I was able to find the main difference that caused the Double sound mod and updated the original CMC player with my own extension:

https://sourceforge.net/p/asap/code/ci/master/tree/6502/cmc.asx

What is special about this double mode is that the replay routine is executed only once per frame (in VBI) and there is no requirement to run the replay routine again in DLI (compared to DoublePlay CMC – DMC) to get richer drum sounds. Even the double replay routine takes more cycles than the regular one, it is quite convenient to integrate it into game without limitations in graphics area due to fact that DLI is not used to play the music.

I have also taken classic CMC 2.0 editor and modified its replay routine to double mode so it is not only possible to play final music in double mode using my modified cmc player, but it is also possible to actually compose the cmc module in editor that plays double mode.

Release notes:

  • do not use player generated within MDCMC editor, use the source in the repository instead
  • this CMC player can load and play regular CMC files, but requires instrument adjustments to leverage the Double mode

Cmc player routine already had two parameters for two existing mods, so I added third parameter for Double.

These parameters are required to be present to compile the player, they are:

MDCMCenable Mono Double cmc replay routine
CMRenable Rzog modified bass table
CM3switch 3/4 pattern size

See example code to understand the parameters usage (from line 58 to 64).

Monex with modified instruments for Double mode (p6mondbl.cmc)
Monex in single mode (p6mon.cmc)

Detonationix – ABBUC SWC 2020 entry

Hello, I have been working on a game for Abbuc SWC 2020, but as deadline was getting closer I decided […]

ABBUC LOGO

Fallen Kingdom – 2nd place at ABBUC SWC 2021

I am happy to say that my Fallen Kindom received silver medal at ABBUC software contest 2021. Thanks to all […]

2 thoughts on “MDCMC – Mono Double Chaos Music Composer

  1. This will be akward, but i’m stuck. I already have VBI set and running some scrolling and animations.
    i move the rep file at $1000 (i already used this address on saving in mdcmc)
    i initialize mdcmc:
    ldx #track
    lda #$70
    jsr $1003 ;Initialize
    ldx #$00
    txa
    jsr $1003 ;Play the first song
    this crashes. at the first vbi. no matter if i have jsr $1006 or not in the VBI program. PC jumping arround the VBI return address and then jumps at nonsense addresses where is no code.
    had the track in ram no any luck either. now is smowehre in rom (using 8bitworkshop IDE cartridge environment).
    my VBI init:
    ; set VBI to the deffered mode
    ; $E45C jsr to let the OS to set the VBI
    ; $E462 jmp to exit the deferred VBI
    ldy #VBIstuff ; the upper one
    lda #7 ; 7 = deferred VBI (Stage 2)
    jsr $e45c ; OS routine to setup the VBI by the AXY stored values
    ldy #$00
    ldx #$00
    (also using DLI for smoothscroll and palette swaps)
    i got something wrong and i’m unable to see it anymore.
    how is the minimal init procedure if VBI is already set? let’s say the player is at the $1000 and the song is at $1a00.
    i started this project month ago with vibe method, but i was more successfull without claude so far.
    and i’m doing this for the first time at age 53 🙂 catching up my teenage dreams.

    thanx Cracknel.

Leave a Reply

Your email address will not be published. Required fields are marked *