.. _migrating: Migrating from SkoolKit 9 ========================= SkoolKit 10 includes some changes that make it incompatible with SkoolKit 9. If you have developed a disassembly using SkoolKit 9 and find that the SkoolKit commands no longer work with your source files, or produce broken output, look through the following sections for tips on how to migrate your disassembly to SkoolKit 10. #AUDIO ------ In SkoolKit 9, the :ref:`AUDIO` macro could written in one of two ways, depending on whether code execution in a simulator is enabled (bit 2 of ``flags`` set):: #AUDIO[flags,offset](fname)[(delays)] #AUDIO[flags,offset](fname)(start,stop[,execint,cmio]) This is not supported in SkoolKit 10. Instead, use the following unified syntax:: #AUDIOsim[,start,stop,execint,cmio,offset,...](fname)[(delays)] Also in SkoolKit 9, ``#AUDIO`` would pass beeper delays through a moving average filter only when bit 3 of ``flags`` was set. In SkoolKit 10, beeper delays are always passed through a moving average filter. #CALL ----- In SkoolKit 9, the :ref:`CALL` macro could be written thus:: #CALL:method(args) This is not supported in SkoolKit 10. Instead, use the following syntax:: #CALL(method(args)) #FONT ----- In SkoolKit 9, the :ref:`FONT` macro could be written thus:: #FONT:(text)params[{CROP}][(fname)] This is not supported in SkoolKit 10. Instead, use the following syntax:: #FONTparams[(text)][{CROP}][(fname)] #LINK ----- In SkoolKit 9, the :ref:`LINK` macro could be written thus:: #LINK:PageId[#name](link text) This is not supported in SkoolKit 10. Instead, use the following syntax:: #LINK(PageId[#name])(link text) #UDGARRAY --------- In SkoolKit 9, the UDG specifications of a :ref:`UDGARRAY` macro could be separated from the main parameters by a semicolon:: #UDGARRAYparams;SPEC1;SPEC2... This is not supported in SkoolKit 10. Instead, the UDG specifications must be enclosed in parentheses:: #UDGARRAYparams(SPEC1;SPEC2...)... In SkoolKit 9, the attribute address range specifications of a :ref:`UDGARRAY` macro could be separated from the preceding UDG specifications by an ``@`` symbol:: #UDGARRAYparams(SPEC1;SPEC2...)@ATTRS1;ATTRS2... This is not supported in SkoolKit 10. Instead, the attribute address range specifications must be enclosed in square brackets:: #UDGARRAYparams(SPEC1;SPEC2...)[ATTRS1;ATTRS2...]... #UDGARRAY* ---------- The ``#UDGARRAY*`` macro is not supported in SkoolKit 10. Use the :ref:`FRAMES` macro instead. skoolkit9to10.py ---------------- The `skoolkit9to10.py`_ script may be used to convert a skool file, control file or ref file that is compatible with SkoolKit 9 into a file that will work with SkoolKit 10. For example, to convert `game.skool`:: $ skoolkit9to10.py game.skool > game10.skool .. _skoolkit9to10.py: https://github.com/skoolkid/skoolkit/raw/master/utils/skoolkit9to10.py