MSX Video Access Method

The first MSX computers used the TMS9918A Video Display processor (VDP), which had its own 16K of video memory that was not shared with main memory. This has the advantage that the limited memory range of a 8-bit processor, (the Z80) which had a 16-bit address bus, and was thus limited to just 64K, could be used more effectively. The disadvantage was that the CPU could not have direct access to the Video RAM, but had to command the VDP to manipulate the contents of the video RAM, through I/O instructions. This not only slowed down video access, but was also incompatible with the way most other home computers of the time operated, thereby making the porting of software (especially games) more difficult. Also, programmers had to learn to optimally use the more advanced capabilities of the MSX-1 video hardware.

The TSM9918A's method of accessing the video RAM was slower than direct access, as used in for example the Sinclair spectrum, because accessing video memory involved first outputting the low- then the hi-byte of the (14-bit) video memory address to I/O port $99, then the 8-bit data to port $98. MSX-1's video chip did have a "memory pointer auto-advance", so consecutive addresses could be written to with repeated OUT instructions to $98. This also meant that the fast Z80 blockmove and blockfill instructions could not be used on the video memory.

However because of the screen layout, (which was top-down for each character of 8 lines then advancing to the next character) this was difficult to use for programmers who tried to convert existing software originally written for another system (such as the Sinclair Spectrum) that had another arrangement of the screen layout. So when trying to use the MSX-1 high resolution mode video memory in the conventional way this method of indirect-access could be far slower than in other 8-bit computers whose CPUs could usually access their screen memory directly, like any other piece of RAM. Consequently MSX-1 machines could be inefficient at certain graphical tasks, such as scrolling games, which entailed moving the entire background memory. Instead of being able to use the Z80s efficient and fast block move instructions they had to write elaborate routines that first read bytes from video memory into system memory, and then back to another location in video memory, all one byte at a time.

To increase the speed to an acceptable level the programmers then often limited the scrolling to 8-pixel steps, which looked primitive in comparison to the 1 or 2 pixel scrolling steps available to the ZX Spectrum or Commodore 64 machines (although the Commodore 64 also used 8-pixel steps it had a fine-scroll register which could compensate for this, the MSX-1 did not).

The MSX-1 video chip did have several features to make up for this shortfall, for example a programmable character set which allowed indirection, (to greatly increase scrolling because only the character table had to be moved, instead of the pixel data) and by having 32 hardware sprites. These sprites however were more limited than those in (for example) the Atari-8-bit systems. Because in their highest resolution they were only 16x16 pixels in a single-color (with transparency). A bigger drawback though was that in reality only scan line segments from a maximum of 4 sprites could simultaneously be displayed on any one picture scan line. Attempting to place a 5-th sprites scan line segment on the same scan line as the four others would result in flickering or missing scan line segments. see MSX-1 sprites. Still, with care multiple multi-color sprites could be created this way, as many Japanese games prove. The Sinclair Spectrum did not have sprites, but when porting games it was often too much trouble to re-write the game structure to take advantage of the sprites. So most often they were simply ignored when porting games.

There were tricks available to circumvent the scrolling and other speed related problems by using clever programming techniques and video chip capabilities that were not available in the Sinclair Spectrum (the UK system most resembling MSX-1, and the source of most games that were ported to MSX), by using an undocumented text mode that supported multiple colors, and by using the built in re-programmable fonts, it was possible to combine high resolution graphics with faster scrolling while also being able to use sprites. This method was widely used by Japanese software producers, but rarely by British programmers who were porting Spectrum software.

They tried to use the MSX-1 as if it was a Spectrum. So it is notable that games that were written from scratch, (mostly by Japanese programmers) made much better use of the capabilities of MSX-1's video chip. Also notable is that most of the video problems described above were fixed with the newer MSX-2 video chips, especially the limitations for the sprites were removed. However, By that time 16 bit systems like the Amiga and Atari ST had started to dominate the market.

Famous quotes containing the words video, access and/or method:

    It is among the ranks of school-age children, those six- to twelve-year-olds who once avidly filled their free moments with childhood play, that the greatest change is evident. In the place of traditional, sometimes ancient childhood games that were still popular a generation ago, in the place of fantasy and make- believe play . . . today’s children have substituted television viewing and, most recently, video games.
    Marie Winn (20th century)

    Power, in Case’s world, meant corporate power. The zaibatsus, the multinationals ..., had ... attained a kind of immortality. You couldn’t kill a zaibatsu by assassinating a dozen key executives; there were others waiting to step up the ladder; assume the vacated position, access the vast banks of corporate memory.
    William Gibson (b. 1948)

    The most passionate, consistent, extreme and implacable enemy of the Enlightenment and ... all forms of rationalism ... was Johann Georg Hamann. His influence, direct and indirect, upon the romantic revolt against universalism and scientific method ... was considerable and perhaps crucial.
    Isaiah Berlin (b. 1909)