VecFever documentation

< All Topics
Print

Jukebox

History

For my very first game – Robot Arena – I’ve developed a ym player function which uses the least amount of cycles and RAM memory I could come up with (just 6 bytes of RAM). ROM size however is a bit larger than the original, compressed ym files which are unusable by a 6809: they need hundreds of kilobytes of RAM for decompression. So the ym file was converted into something a 6809 is able to handle (w/o loss of information) – which takes quite a bit of time even for today’s multi-ghz cpus since this is a brute-force search of a parameter space. On the plus side for a Vectrex the original data has to be adapted anyways: original ym data is meant to be played on a 1.0 or 2.0 MHz audio chip, depending where it originated. The Vectrex however runs at 1.5 MHz.

This converted ym data could also just reside in another bank – even if that bank was also used to communicate to a 1-wire chip – so that the slightly larger size was less of a concern. This made programming a ‘jukebox’ straightforward: add a capability to load data to the vf via some type of file extension and create a nice cart. based on the ym player function to just load another tune into the alternate bank whenever wanted.

Two things resulted from this project over time: the ‘v4e’ container file format initially developed for this data loading was expanded for everything else used since some basic decisions – it is compressed, checksummed, split up into building blocks at heart and even optionally secured – turned out extremely useful. And the ym player functionality even moved into the file browser itself starting with the v2 firmware, making the original jukebox cart. obsolete.

Still, here it is:

Input

  • Joystick: select tune
  • 1: exit to menu
  • 2: changes play mode — continuous / once / repeat
  • 3: display normal / dimmed
  • 4: start/stop music

Scroltext

scrolltxtdata   fcb     "                       "
                fcb     "WELCOME TO THIS LITTLE CHIPMUSIC PLAYER. "
                fcb     "JUST SELECT A SONG AND PRESS 4: TO START/STOP, "
                fcb     "3: TO TOGGLE THE DISPLAY, "
                fcb     "2: TO CHANGE THE PLAY MODE AND "
                fcb     "1: TO EXIT BACK TO THE MENU. "
                fcb     "                              "
                fcb     "                              "
                fcb     "                              "
                fcb     "203 MINUTES OF MUSIC IN TOTAL.. "
                fcb     "                              "
                fcb     "                              "
                fcb     "                              "                
                fcb     "THIS IS THE VERY FIRST APPLICATION FOR THE VECFEVER "
                fcb     "MULTI-BANK EXTENSION, ALLOWING A LOT OF MUSIC TUNES IN ONE CARTRIDGE, "
                fcb     "IN PRINCIPLE ONLY LIMITED BY THE DISK VOLUME SIZE NOW.. "
                fcb     "                              "
                fcb     "                              "
                fcb     "                              "
                fcb     "IT REALLY DOES HELP A LOT IF YOU HAVE FIXED THE AUDIO PART ON A BUZZING VECTREX, SO "
                fcb     "IF YOU STILL HAVE A NOISY VECTREX THIS WILL NOT SOUND "
                fcb     "NEARLY AS GOOD AS IT COULD.."
                fcb     "                              "
                fcb     " "

                fcb     "                              "
                fcb     "                              "
                fcb     "                      "
                fcb     "          ...         "
                fcb     "                              "
                fcb     "                      "
                fcb     "BROUGHT TO YOU BY: THOMAS G. SONTOWSKI, "
                fcb     "COLOGNE, GERMANY, 2017.   "
                fcb     "                              "
                fcb     "                              "
                fcb     "                      "
                fcb     "                      "
scrolltxtdataend
Table of Contents