1. 08 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Avoid unnecessary remainder calculations · 35110c85
      Jeffrey Lee authored
      Detail:
        s/Commons, s/DevicePal, s/Dither, s/FontColour - Avoid unnecessary remainder calculations in DivRem macro
        s/Header - Remove unused Divide macro
      Admin:
        Tested on Cortex-A15
      
      
      Version 1.94. Tagged as 'Colours-1_94'
      35110c85
  2. 02 Nov, 2015 1 commit
    • Robert Sprowson's avatar
      Correction to help lookup · e88365d1
      Robert Sprowson authored
      Broken since version 1.75, ColourTrans' internal commands were trying to use the non internationalised text as the token name to lookup due to a bit of conditional assembly that got reversed.
      Spotted by Andrew Conroy.
      
      Version 1.92. Tagged as 'Colours-1_92'
      e88365d1
  3. 16 Jan, 2015 1 commit
  4. 09 Mar, 2014 1 commit
    • Jeffrey Lee's avatar
      Use a greyscale palette when screen output is redirected to an alpha mask · 60e24589
      Jeffrey Lee authored
      Detail:
        s/Header - Update ResourceFS scanning to identify the deafult 8bpp greyscale palette and remember its location
        s/Palettes - When screen output is switching to an alpha mask, instead of trying to use the sprite's palette use the 8bpp greyscale palette instead.
      Admin:
        Tested on Iyonix, BB-xM
      
      
      Version 1.90. Tagged as 'Colours-1_90'
      60e24589
  5. 04 Mar, 2014 1 commit
    • Jeffrey Lee's avatar
      Add new "32K+" translation table format. Fix a couple of bugs. · d60584e6
      Jeffrey Lee authored
      Detail:
        Since ColourTrans 1.86, the "32K." tables returned by ColourTrans_SelectTable/ColourTrans_GenerateTable can actually be in several different formats, depending on the pixel format of the source mode. However there was no way for a user of that table to determine what format the table was.
        This change rectifies that, by adding a "32K+" table format which is used whenever a 32K-style table isn't compatible with the RISC OS 3.5 "32K." format.
        This new format has "32K+" in the two guard words instead of "32K.". To increase compatibility with existing code the middle word is still used to point to the start of the lookup table. But in the bytes preceeding the table a header can be found which describes the structure of the table.
        File changes:
        hdr/ColourTran - Describe format of the 32K+ table header
        s/Header, s/Tables32K - Update code to generate and store the new format tables. Strip out nomessagetransfortables option (assume TRUE). Fix reading of tables from ResourceFS to correctly determine whether files are squashed or not (previously always treated as squashed and copied them to RAM). Add simple caching for addresses of ROM tables so we don't have to pester the filesystem all the time. Fix immortality code to set the immortal flag correctly when generating 32K tables (would previously overwrite a random word in a temp array)
      Admin:
        Tested on BB-xM
      
      
      Version 1.89. Tagged as 'Colours-1_89'
      d60584e6
  6. 27 Feb, 2014 1 commit
    • Jeffrey Lee's avatar
      Performance improvements · 296d1419
      Jeffrey Lee authored
      Detail:
        A selection of performance improvements, mainly focusing around fixing the terrible ColourTrans_SelectTable performance when using the default 256 colour palette in a full 256 colour mode (i.e. not VIDC1 style)
        s/Header:
        - Add flag for whether MUL of large or negative numbers is slow
        s/Commons:
        - Update palette analysis code so that C256 modes with the default palette can use the same optimised routines as C64 modes with default palette.
        - Also detect G256 modes with the default palette and add a new set of best/worst colour routines for them
        - Remove unused ColErr macro and (now inaccurate) ARM2/ARM3 timing calculations
        - Optimised CompErr macro (used with slow best/worst colour functions). Three different variants depending on CPU, with the Cortex-A8 version being about twice as fast as the original.
        - Rewrote Find256 macro (used with default 256 colour palette), producing four different versions depending on CPU. Even the ARM2 compatible version should be about twice as fast as the original.
        - Strip out a few pointless best/worst wrapper functions
        s/NewModels:
        - Update ColourTrans_ConvertHSVToRGB to make use of SMULL where supported
      Admin:
        Tested on Iyonix, BB-xM, StrongARM RiscPC
        Palette analysis fix means 256 colour modes using default RO 5 icon sprites (i.e. custom 256 colour palettes) are no longer as slow as treacle.
        256 grey modes are also nice and snappy too.
      
      
      Version 1.88. Tagged as 'Colours-1_88'
      296d1419
  7. 06 Aug, 2013 1 commit
    • Jeffrey Lee's avatar
      Update to cope with new pixel formats · 14705990
      Jeffrey Lee authored
      Detail:
        s/Commons - Update best/worst colour code to add support for all the new RGB pixel format variations
        s/Dither - Rework code to remove reliance on now removed get_physical16bpp routine
        s/Enhanced - Drop support for VIDC enhancer. "VIDC20" code enhanced to add support for all the new RGB pixel formats, mainly reliant on new ColourConv macro. Drop get_physical16bpp routine as it wasn't really needed and would have been a pain to update.
        s/FontColours - Remove reference to obsolete PseudoPaletteEntry variable
        s/Header - Update workspace to clarify how certain variables are overlaid over the colour cache entries. Rename temp_guardtable to temp_errortable as the name makes more sense to me. Cache current modeflags & log2 NColour in InitCache.
        s/MainSWIs - Flag_* -> ModeFlag_* renaming. Pass through source mode to make32Ktable
        s/Palettes - Strip out some old Module_Version switches to make code more readable. Cache current modeflags and log2 NColour values when dealing with sprite output.
        s/Tables32K - Table generation code rewritten to add support for new 16bpp pixel formats, be faster, and (hopefully) more readable. Core generation code has been split off into seperate file, s/TablesAlgo, as it's needed multiple times but is too big for a macro.
        s/TablesAlgo - New file containing core code for the "32K" table generation. Disregarding pixel format differences, it can be assembled in two forms, optimised either for large or small data caches. New code is 85% faster on BB-xM (large cache version), 43% faster on Iyonix and 80% faster on StrongARM (both small cache version).
      Admin:
        Tested on BB-xM
        Part of an implementation of the Extended Framebuffer Format spec:
        http://www.riscosopen.org/wiki/documentation/show/Extended%20Framebuffer%20Format%20Specification
        Code is in need of updating to allow caller to identify which type of 32K table has been returned (i.e. old-style 32K table or some new kind of 4K/32K/64K one)
      
      
      Version 1.86. Tagged as 'Colours-1_86'
      14705990
  8. 11 Feb, 2013 1 commit
    • Robert Sprowson's avatar
      Rework maketables to not need ColourTrans loaded at build time · 2f1f386f
      Robert Sprowson authored
      During generation of the 32k colour lookup tables, the tool already has to hand the 5:5:5 RGB value and 8:8:8 RGB palette, so can do the colour lookup itself. This removes the need to build a platform agnostic ColourTrans module, it's just C code.
      * Replace make_32k_table() with brute force colour matcher
      * Use <stdio.h> functions to write out the output, change to use <stdint.h>
      * Simplify top level makefile
      * Header.s: minor warning squashed
      Binary output compared with Colours-1_83.
      
      Version 1.85. Tagged as 'Colours-1_85'
      2f1f386f
  9. 26 Nov, 2011 1 commit
  10. 16 Jun, 2009 1 commit
    • Ben Avison's avatar
      Fix bugs and inefficiencies revealed by unaligned data audit · 2f46a22b
      Ben Avison authored
      Detail:
        s.Dither: It looks like CachedPatternValid was once a 4-byte value but
          subsequently three of the bytes in the first cache entry were re-used for
          other purposes. However in getpattern it is still accessed using LDR and
          STR.  This means (a) that it mistakenly thinks that the pattern block is
          never valid and so has to recalculate it every time, and (b) corrupts
          other variables if either this was the first entry, or we're on ARMv6 or
          later and this was the last entry.
        s.MainSWIs: LDR of a 1-byte variable: harmless since only bit 7 tested, but
          faster as an LDRB on ARMv6.
        Added ENTRY directive to permit building of GPA debug listing.
      Admin:
        Builds but not tested.
      
      Version 1.77. Tagged as 'Colours-1_77'
      2f46a22b
  11. 11 Jun, 2009 1 commit
    • Ben Avison's avatar
      GET file pathnames changed · 987b87ce
      Ben Avison authored
      Detail:
        Uses suffixed file extensions for compatiblity with both objasm and asasm.
      Admin:
        Supplied by Peter Naulls, tested at ROOL
      
      Version 1.76. Not tagged
      987b87ce
  12. 14 May, 2001 1 commit
  13. 04 Aug, 2000 1 commit
    • Justin Fletcher's avatar
      32k sprites plotted in 256 colour modes crashes. · 916981ba
      Justin Fletcher authored
      Detail:
        * MessageTrans now does hashing when files are opened. ColourTrans does
          OpenFile then CloseFile to access the files. This is evil. Changed to
          make ColourTrans unsquash files and load them itself.
      Admin:
        Fixes Bugzilla 17.
      
      Version 1.70. Tagged as 'Colours-1_70'
      916981ba
  14. 12 May, 2000 1 commit
  15. 05 Aug, 1999 1 commit
  16. 21 Jan, 1997 1 commit
  17. 05 Nov, 1996 1 commit