MSX Video access method

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 jut 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 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.

This method of accessing the video RAM was slower than direct access because accessing video memory involved first outputting the low then the hi bytes of the 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. [ [http://emu-docs.org/VDP%20TMS9918/Datasheets/TMS9918.pdf Online datasheet of the TMS9918A] ] . 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 the 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-8bit systems, Because in their highest resolution they were only 16x16 pixels, and 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, and attempting to place a scan line segment of a 5th sprite 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. Only the Spectrum did not have sprites, and in 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 when British programmers were porting Spectrum software. [ [http://www.crashonline.org.uk/08/rebirth.htm Old Spectrum magazine "Crash" page gives an example of programmers bad attitude toward MSX in Britain] ]

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 (extended) capabilities of MSX-1's video chip. Also notable is that most of these 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.

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • MSX — This article is about the home computer family. For other uses, see MSX (disambiguation) and MSX2 (disambiguation). MSX Sony MSX, Model HitBit 10 P …   Wikipedia

  • History of video games — Part of a series on …   Wikipedia

  • Metal Gear (video game) — This article is about the 1987 video game,. For the entire video game series, see Metal Gear. For other uses, see Metal Gear (disambiguation). Metal Gear The cover illustration depicts the protagonist Solid Snake prominently, with the …   Wikipedia

  • Zilog Z80 — One of the first Z80 microprocessors manufactured; the date stamp is from June 1976. Produced 1976 Common manufacturer(s) Zilog …   Wikipedia

  • Sound card — A Sound Blaster Live! Value card, a typical (circa 2000) PCI sound card. Connects to Motherboard via one of: PCI ISA USB IEEE 139 …   Wikipedia

  • File Allocation Table — For other uses, see Fat (disambiguation). FAT Developer Microsoft Full Name File Allocation Table FAT12 (12‑bit version) FAT16/FAT16B (16‑bit versions) FAT32 (32‑bit version with 28 bits used) Introduced …   Wikipedia

  • Virtual Console — This article is about the Virtual Console component of Nintendo s game download services. For the computer user interface concept, see virtual console. Virtual Console Publisher(s) …   Wikipedia

  • Indexed color — A 2 bit indexed color image. The color of each pixel is represented by a number; each number (the index) corresponds to a color in the color table (the palette). In computing, indexed color is a technique to manage digital images colors in a… …   Wikipedia

  • Drum and bass — DnB redirects here. For the Norwegian bank, see DnB NOR. Drum and bass Stylistic origins Jungle, Breakbeat Hardcore, Hip Hop, Funk Cultural origins early/mid 1990s; Bristol and London, United Kingdom Typical instrume …   Wikipedia

  • Xbox — This article is about sixth generation games console, released in 2001. For its successor, see Xbox 360. For other uses, see Xbox (disambiguation). Xbox …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”