[hatari-devel] It seems I encounter a bug into hatari |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Hi,
While testing racer on my real hardware, I encounter something that
works under hatari but not under the falcon (with both old and new cpu)
The piece of code given above displays the sky (one color per line).
Under hatari, the sky displays correctly, but under the Falcon, it seems
the color palette pointer is wrong and the sky is displayed with bad colors.
Is it related to the fact I use the ffff8040 + memory address in long mode ?
At least, Hatari and the real hardware differs here.
Regards
Laurent
sky_palette: dc.l
$5c3a5c3a,$5c3a5c3a,$5c3a5c3a,$5c3a5c3a,$5c3a5c3a,$5c3a5c3a,$5c5a5c5a,$5c5a5c5a
dc.l
$5c5a5c5a,$5c5a5c5a,$5c5a5c5a,$5c5a5c5a,$5c5a5c5a,$645a645a,$645a645a,$645a645a
dc.l
$645a645a,$645a645a,$647a647a,$647a647a,$647a647a,$647a647a,$647a647a,$647a647a
dc.l
$647a647a,$647a647a,$647a647a,$647a647a,$647a647a,$647a647a,$6c7b6c7b,$6c9b6c9b
dc.l
$6c9a6c9a,$6c9b6c9b,$6c9a6c9a,$6c9b6c9b,$6c9b6c9b,$6c9b6c9b,$6cbb6cbb,$6cbb6cbb
dc.l
$6cbb6cbb,$6cbb6cbb,$6cbb6cbb,$6cbb6cbb,$74bb74bb,$74db74db,$74db74db,$74db74db
dc.l
$74db74db,$74db74db,$74db74db,$74db74db,$74db74db,$74fb74fb,$74fb74fb,$74fb74fb
dc.l
$7cfb7cfb,$7cfb7cfb,$7cfb7cfb,$7cfb7cfb,$7cfb7cfb,$7cfb7cfb,$7d1b7d1b,$7d1b7d1b
dc.l
$7d1b7d1b,$7d1b7d1b,$7d3c7d3c,$853c853c,$853c853c,$853c853c,$853c853c,$853c853c
dc.l
$853c853c,$855c855c,$855c855c,$855c855c,$855c855c,$8d5c8d5c,$8d5c8d5c,$8d5c8d5c
dc.l
$8d5c8d5c,$8d7c8d7c,$8d7c8d7c,$8d7c8d7c,$8d7c8d7c,$8d7c8d7c,$8d7c8d7c,$959c959c
dc.l
$959c959c,$959c959c,$959c959c,$95bc95bc,$95bc95bc,$95bc95bc,$9dbc9dbc,$9dbc9dbc
dc.l
$9dbc9dbc,$9ddc9ddc,$9ddc9ddc,$9ddc9ddc,$9ddc9ddc,$9ddc9ddc,$a5fca5fc,$a5fca5fc
dc.l
$a5fca5fc,$a5fda5fd,$a5fda5fd,$a5fda5fd,$a5fda5fd,$ae1dae1d,$ae1dae1d,$ae1dae1d
dc.l
$ae1dae1d,$ae3dae3d,$ae3dae3d,$ae3dae3d,$ae3dae3d,$ae3dae3d,$b65db65d,$b65db65d
dc.l
$b65db65d,$b65db65d,$b65db65d,$b67db67d,$b67db67d,$b67db67d,$b67db67d,$b67db67d
dc.l
$b67db67d,$b69db69d,$b69db69d,$b69db69d,$b6bdb6bd,$b6bdb6bd,$b6bdb6bd,$b6bdb6bd
dc.l
$b6bdb6bd,$b6bdb6bd,$b6bdb6bd,$b6bdb6bd,$b6ddb6dd,$b6ddb6dd,$b6ddb6dd,$b6fdb6fd
dc.l $b6fdb6fd,$b6fdb6fd
sky_palette_end:
display_background: ; Code specific to the level 1 : display the
background
; input : a6 = screen address
; d0 = number of lines of the picture to display
; d1 = number of sky lines to display
; d2 = background picture X position
; Save the input datas
move.w d0,$ffff8240.w
move.w d1,$ffff8242.w
move.l d2,$ffff8244.w
; Write the sky from the right to the left
lea.l 320*2(a6),a6
; Display the sky part
lea.l sky_palette_end-8(pc),a0
move.w $ffff8242.w,d0
add.w d0,d0
add.w d0,d0
sub.w d0,a0
move.l a0,$ffff8248.w
..do_display_sky: addq.l #4,$ffff8248.w
move.l $ffff8248.w,a0
; Load the color of this line in the registers
move.l (a0),d0
move.l d0,d1
move.l d0,d2
move.l d0,d3
move.l d0,d4
move.l d0,d5
move.l d0,d6
move.l d0,d7
move.l d0,a0
move.l d0,a1
move.l d0,a2
move.l d0,a3
move.l d0,a4
move.l d0,a5
..loop_sky: movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d7/a0-a5,-(a6) ; 28 pixels
movem.l d0-d5,-(a6) ; 12 pixels
lea.l _SCREEN_WIDTH+320*2(a6),a6
subq.w #1,$ffff8242.w
bpl.s .do_display_sky