[stella] Studying River Raid Source.
Thom Cherryhomes
thom.cherryhomes at gmail.com
Thu Mar 15 22:41:01 CDT 2007
why is it done this way?
-Thom
On 3/16/07, SeaGtGruff at aol.com <SeaGtGruff at aol.com> wrote:
>
> 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 *AOL.com* <http://www.aol.com?ncid=AOLAOF00020000000339>.
>
> _______________________________________________
> Stella mailing list
> Stella at atari2600.org
> http://atari2600.org/mailman/listinfo/stella
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.atariage.com/pipermail/stella/attachments/20070315/2350e44d/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: RiverRaidFuel.gif
Type: image/gif
Size: 1476 bytes
Desc: not available
Url : http://www.atariage.com/pipermail/stella/attachments/20070315/2350e44d/attachment.gif
More information about the Stella
mailing list