• Chris Wraight's avatar
    Memory Changes · 09cae55f
    Chris Wraight authored
      Each Maestro file is held in memory as nine blocks of bytes: one for 'Gate' data,
      and eight for Note information for each audio channel. Maestro reserved a very big
      WimpSlot of 720K, and merely divided the space between the end of the program and
      the end of the Wimpslot by 9 to get equally spaced pointers for each byte block.
      This was very wasteful (Maestro files are typically only 1-2K in size), and there's
      no checking to prevent writes from running off the end of the Wimpslot.
      These changes
      - Add new memory management routines
      - Place all program data in resizable heap blocks
      - Remove EnsureRMA check
      Tested on a variety of Maestro files. There's still plenty of inefficiency in
      the way Maestro handles its data but typically, even with Sprites11 loaded, the
      Wimpslot goes down to 380K.
    Version 2.16. Tagged as 'Maestro-2_16'
!RunImage 150 KB