ULAplus: Difference between revisions

Jump to navigation Jump to search
360 bytes removed ,  11 March 2015
no edit summary
No edit summary
No edit summary
Line 2: Line 2:
[[Category:Spectrum]]
[[Category:Spectrum]]
[[Category:Video]]
[[Category:Video]]
The ULAplus specification describes an enhanced ULA for the ZX Spectrum designed by Cheveron, Nikki, CSmith and KLP2. It can be implemented as a plug-in replacement for the ULA, in emulators, or in clones. It is designed for maximum compatibility with existing software.
The ULAplus specification describes an enhanced ULA for the ZX Spectrum. It can be implemented as a plug-in replacement for the ULA, in emulators, or in modern hardware such as the ZX Spectrum Vega. It is designed for maximum compatibility with existing software. This information supersedes all existing versions of the specification, including those with later version numbers.


The current version of the specification is '''1.2'''.
The final official version of the specification is version 1.1.  


==Revision History==
==Revision History==
'''Version 1.2'''
* Port mirroring for Timex video resolution. (optional)
* Planar modes. (optional)


'''Version 1.1'''
'''Version 1.1'''
Line 19: Line 14:
* Includes the Timex video modes (optional)
* Includes the Timex video modes (optional)
* Changes the preferred way of multiplexing the 2-bit blue value to obtain a 3-bit blue value.
* Changes the preferred way of multiplexing the 2-bit blue value to obtain a 3-bit blue value.
* Adds 256 greyscale support (optional)
* Adds 256 grayscale support (optional)
* Deprecates HSL and CMYK support
* Deprecates HSL and CMYK support


Line 60: Line 55:


<pre>Bit 0: ULAplus palette on (1) / off (0)
<pre>Bit 0: ULAplus palette on (1) / off (0)
     1: (optional) greyscale: on (1) / off (0) (same as turing the color off on the television)
     1: (optional) grayscale: on (1) / off (0) (same as turing the color off on the television)</pre>
    2: (optional) planar mode: on (1) / off (0)
    3: (optional) planar mode: 3 planes (0) / 4 planes (1).</pre>


Implementations that support the Timex video modes use the #FF register as the primary means to set the video mode, as per the Timex machines. It is left to the individual implementations to determine if reading the port returns the previous write or the floating bus.
Implementations that support the Timex video modes use the #FF register as the primary means to set the video mode, as per the Timex machines. It is left to the individual implementations to determine if reading the port returns the previous write or the floating bus.


Planar modes use the bitmap areas at #4000 and #6000 in bank 5 and 7 to create a per-pixel display of 8 or 16 colors (taken from the first 16 palette entries).
===GRB palette entries===
Thee plane mode has three bits per pixel with bit 0 from #4000 in bank 5, bit 1 from #4000 in bank 7, and bit 2 from #6000 in bank 7.
Four plane mode has four bits per pixel with bit 3 from #6000 in bank 5.
 
===RGB palette entries===
[[File:ULAplus_rgb.png|frame|G3R3B2 encoding]]
[[File:ULAplus_rgb.png|frame|G3R3B2 encoding]]
For a device using the RGB colour space the palette entry is interpreted as follows
For a device using the RGB colour space the palette entry is interpreted as follows
Line 77: Line 66:
Bits 5-7: Green intensity.</pre>
Bits 5-7: Green intensity.</pre>


This colour space uses a sub-set of 9-bit RGB. The missing lowest blue bit is set to OR of the other two blue bits (Bb becomes 000 for 00, and Bb1 for anything else). This gives access to a fixed half the potential 512 colour palette. The reduces the jump in intensity in the lower range in the earlier version of the specification. It also means the standard palette can now be represented by the ULAplus palette.
This colour space uses a sub-set of 9-bit GRB. The missing lowest blue bit is set to OR of the other two blue bits (Bb becomes 000 for 00, and Bb1 for anything else). This gives access to a fixed half the potential 512 colour palette. The reduces the jump in intensity in the lower range in the earlier version of the specification. It also means the standard palette can now be represented by the ULAplus palette.
 
===Greyscale palette entries===
In greyscale mode, each palette entry describes an intensity from zero to 255. This can be achieved by simply removing the colour from the output signal.
 
==Software==


A rapidly growing collection of software is available including a palette editor, palette files to re-colour existing games, a 6-bit RGB colour extension to CP/M plus, a slideshow of converted Commodore 64 hi-res pictures, and brand new games, all of which can be found at [http://sites.google.com/site/ulaplus/home].
===Grayscale palette entries===
 
In grayscale mode, each palette entry describes an intensity from zero to 255. This can be achieved by simply removing the colour from the output signal.
The palette editor enables you to create a palette for use with existing software without needing to rewrite the software. You can save the palette and load it before loading the original software as normal. In this way all existing software can be re-coloured without any programming knowledge required.
 
An introduction to using the ULAplus palette from BASIC is also available [http://sites.google.com/site/ulaplus/documentation/guide-to-using-ulaplus/UsingtheULAplus64colourmodefromSinclairBasic.pdf]


===Limitations===
===Limitations===


Although in theory 64 colours can be displayed at once, in practice this is usually not possible except when displaying colour bars, because the four CLUTs are mutually exclusive; it is not possible to mix colours from two CLUTs in the same cell.
Although in theory 64 colours can be displayed at once, in practice this is usually not possible except when displaying colour bars, because the four CLUTs are mutually exclusive; it is not possible to mix colours from two CLUTs in the same cell. However, with software palette cycling it is possible to display all 256 colours on screen at once.


== Emulation ==
== Emulation ==
Line 233: Line 214:
db 0x0d  
db 0x0d  
</pre>
</pre>
==Software==
A rapidly growing collection of software is available including a palette editor, palette files to re-colour existing games, a 6-bit RGB colour extension to CP/M plus, a slideshow of converted Commodore 64 hi-res pictures, and brand new games, all of which can be found at [http://sites.google.com/site/ulaplus/home].
The palette editor enables you to create a palette for use with existing software without needing to rewrite the software. You can save the palette and load it before loading the original software as normal. In this way all existing software can be re-coloured without any programming knowledge required.
An introduction to using the ULAplus palette from BASIC is also available [http://sites.google.com/site/ulaplus/documentation/guide-to-using-ulaplus/UsingtheULAplus64colourmodefromSinclairBasic.pdf]


{{CC-BY-SA-techwiki|ZX Spectrum 64 Colour Mode|ZX_Spectrum_64_Colour_Mode}}
{{CC-BY-SA-techwiki|ZX Spectrum 64 Colour Mode|ZX_Spectrum_64_Colour_Mode}}
87

edits

Navigation menu