In a message dated 3/15/2007 9:13:48 PM Eastern Daylight Time,
thom.cherryhomes at gmail.com writes:
I am in the middle of studying the River Raid source code, and I am
wondering on something maybe relatively simple, but I do have to
ask....
I see the following in the graphic segment data:
...
; the data is stored for interlaced display:
FuelA:
.byte $FE ; |XXXXXXX |
.byte $DE ; |XX XXXX |
.byte $DE ; |XX XXXX |
...
what is meant by "interlaced display" in this case? I know what an
interlaced picture is, but i'm not sure of the details for what is
being done in this context?
-Thom
I've never looked at this disassembly before. Wow! :)
If you look carefully at the data for FuelA and FuelB, you'll notice that
they must be combined in order to get the complete image (I added the commented
numbers to the side):
; the data is stored for interlaced display:
FuelA:
.byte $FE ; |XXXXXXX | ; A01
.byte $DE ; |XX XXXX | ; A02
.byte $DE ; |XX XXXX | ; A03
.byte $FE ; |XXXXXXX | ; A04
.byte $DE ; |XX XXXX | ; A05
.byte $DE ; |XX XXXX | ; A06
.byte $FE ; |XXXXXXX | ; A07
.byte $D6 ; |XX X XX | ; A08
.byte $D6 ; |XX X XX | ; A09
.byte $DE ; |XX XXXX | ; A10
.byte $CE ; |XX XXX | ; A11
FuelB:
.byte $C6 ; |XX XX | ; B01
.byte $DE ; |XX XXXX | ; B02
.byte $DE ; |XX XXXX | ; B03
.byte $C6 ; |XX XX | ; B04
.byte $CE ; |XX XXX | ; B05
.byte $C6 ; |XX XX | ; B06
.byte $C6 ; |XX XX | ; B07
.byte $D6 ; |XX X XX | ; B08
.byte $FE ; |XXXXXXX | ; B09
.byte $DE ; |XX XXXX | ; B10
.byte $DE ; |XX XXXX | ; B11
.byte $7C ; | XXXXX | ; B12
And here's a blowup of the actual image to help us understand:
By examining the image and the data-- and noticing that FuelB has one more
line of data than FuelA does-- we see that the image is drawn as follows:
.byte $7C ; | XXXXX | ; B12
.byte $C6 ; |XX XX | ; B01 <-- Think of this as A12 :)
.byte $DE ; |XX XXXX | ; B11
.byte $CE ; |XX XXX | ; A11
.byte $DE ; |XX XXXX | ; B10
.byte $DE ; |XX XXXX | ; A10
.byte $FE ; |XXXXXXX | ; B09
.byte $D6 ; |XX X XX | ; A09
.byte $D6 ; |XX X XX | ; B08
.byte $D6 ; |XX X XX | ; A08
.byte $C6 ; |XX XX | ; B07
.byte $FE ; |XXXXXXX | ; A07
.byte $C6 ; |XX XX | ; B06
.byte $DE ; |XX XXXX | ; A06
.byte $CE ; |XX XXX | ; B05
.byte $DE ; |XX XXXX | ; A05
.byte $C6 ; |XX XX | ; B04
.byte $FE ; |XXXXXXX | ; A04
.byte $DE ; |XX XXXX | ; B03
.byte $DE ; |XX XXXX | ; A03
.byte $DE ; |XX XXXX | ; B02
.byte $DE ; |XX XXXX | ; A02
.byte $C6 ; |XX XX | ; B01
.byte $FE ; |XXXXXXX | ; A01
So in this case, "interlaced" means the data in table FuelA is interleaved
with the data in table FuelB to get the complete image. It has nothing to do
with interlacing (or interleaving) two fields to get a complete frame.
Michael
************************************** AOL now offers free email to everyone.
Find out more about what's free from AOL at http://www.aol.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.atariage.com/pipermail/stella/attachments/20070315/e02a372b/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 1476 bytes
Desc: not available
Url : http://www.atariage.com/pipermail/stella/attachments/20070315/e02a372b/attachment.gif