I have hit a wall in debugging an issue. I hope typing up the issue and/or getting in front of other sets of eyes may help me move forward. Suggestions for what is going on here or what I might try next are welcome!
First, here is a snippet of a file which contains an encoded level:
I recently added metasprite_args which points at a list of bytes which are arguments for metasprites. The weird thing is that this label evaluates to $00 when assembled with ca65. The previous label metasprite_rows points at a non-zero address, but not metasprite_args.
Why is this label $00 rather than address(metasprite_rows) + 2?
First, here is a snippet of a file which contains an encoded level:
Code:
.pushseg
.segment "LEVELS"
.proc playground
...
; metasprite count
.byte 2
; metasprite IDs
.word metasprite_ids
; metasprite column positions
.word metasprite_cols
; metasprite row and length bytes
.word metasprite_rows
; metasprite_args
.word metasprite_args
...
metasprite_ids:
.byte metasprite_names::door, metasprite_names::z75
metasprite_cols:
.byte 17, 22
metasprite_rows:
.byte 4, 7
metasprite_args:
.byte 7
.segment "LEVELS"
.proc playground
...
; metasprite count
.byte 2
; metasprite IDs
.word metasprite_ids
; metasprite column positions
.word metasprite_cols
; metasprite row and length bytes
.word metasprite_rows
; metasprite_args
.word metasprite_args
...
metasprite_ids:
.byte metasprite_names::door, metasprite_names::z75
metasprite_cols:
.byte 17, 22
metasprite_rows:
.byte 4, 7
metasprite_args:
.byte 7
I recently added metasprite_args which points at a list of bytes which are arguments for metasprites. The weird thing is that this label evaluates to $00 when assembled with ca65. The previous label metasprite_rows points at a non-zero address, but not metasprite_args.
Why is this label $00 rather than address(metasprite_rows) + 2?