|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> Warp wrote:
> > which I could instantly recognize even today.
> That's hardcore. :-)
Well, not really. Images are far from being as random as eg. machine
code or other game data. After all, images are not just noise, but have
tons of patterns in them.
As someone commented, Spectrum used a rather weird ordering for the screen
pixels (for some reason I never understood; maybe they thought they were being
smart or something, but it really backfired; after all, I'm sure that when
they first designed the architecture they didn't even think that it would
actually be used to play full-fledged full-screen games):
The first 32 bytes in the screen memory represented the first line of
pixels (256 of them). The next 32 bytes represented the *eigth* line of
pixels. The next 32 bytes represented the *sixteenth* line of pixels,
and so on, until you get to one third of the screen, ie. 8 such groups
of 32 bytes, after which the next 32 bytes represented the second line
of pixels, the next 32 bytes the ninth line, and so on. Then it went to
the second third of the screen, and then the third third, in the same way.
(Besides those being nice "round" numbers, otherwise that ordering makes
absolutely no sense, and I don't think there's a single person in existence
who understands why they chose such a weird ordering. It only made coding
games a lot harder than it had to be. Well, programmers learned to cope.)
After those, the next 32x24 bytes had the color data.
Anyways, both the fact that images contain regular patterns instead of
random pixels *and* that weird ordering made an image saved on casette to
have a rather distinctive sound which any Spectrum user would recognize
immediately. The color data itself also made a relatively distinctive
sound, especially coming immediately after the pixel data, which made it
immediately recognizable when the color data begun.
(One nice thing about all that data being mapped to RAM into consecutive
memory locations is that you could load an image directly from a casette
to the screen, and watch it form while loading, in real-time.)
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |