68k asm tilemap data to Z80
Posted: Thu Oct 24, 2019 3:58 pm
Don't want to spam the forum with a wave of questions every day, but I'm about to tackle what I've been putting off for ages and that is getting some sort of background onto my game in the form of tiles and tilemaps.
I'm just starting with a one screen area, and I'll figure out scrolling and hidden off screen draw buffers later (no idea what to do for any of that though) :? .
Codetapper from the EAB forum very kindly sent me a program he had written which takes a whole image and chops it into tiles, removes the duplicates, and then exports a tileset (PNG and RAW) plus an .asm map (as well as a few other things I don't quite understand). Very handy for building levels in a paint program then just exporting the image as a PNG, and then toss them into the chopper.
The only thing is that it exports the .asm data map in 68k. Now, I don't think it's too much of a problem as I assume it'll just be fine with changing the directives from 68k "dc.w" to Z80 "dw" and just put the data after it.
Of course I could be horribly wrong, so I've done a sample of what the chopper exports, and any advice on how to convert it to an Amstrad friendly format, or a link to a handy 68k to Z80 converter would be lovely!
I'm just starting with a one screen area, and I'll figure out scrolling and hidden off screen draw buffers later (no idea what to do for any of that though) :? .
Codetapper from the EAB forum very kindly sent me a program he had written which takes a whole image and chops it into tiles, removes the duplicates, and then exports a tileset (PNG and RAW) plus an .asm map (as well as a few other things I don't quite understand). Very handy for building levels in a paint program then just exporting the image as a PNG, and then toss them into the chopper.
The only thing is that it exports the .asm data map in 68k. Now, I don't think it's too much of a problem as I assume it'll just be fine with changing the directives from 68k "dc.w" to Z80 "dw" and just put the data after it.
Of course I could be horribly wrong, so I've done a sample of what the chopper exports, and any advice on how to convert it to an Amstrad friendly format, or a link to a handy 68k to Z80 converter would be lovely!

Code: Select all
; Map Level 1
;------------
_Level_1Map
dc.l "FORM"
dc.l $2e+(16*12*2)
dc.l "PCLV"
dc.l "LDAT"
dc.l $1a
dc.b 2 ;Map memory type = WORD
dc.b 1 ;Layers
dc.b 16 ;Block width (pixels)
dc.b 16 ;Block height (pixels)
dc.l 16 ;Map width (blocks)
dc.l 12 ;Map height (blocks)
dc.b 0 ;Transparent block = 0
dc.b 0 ;Map compression = None
dc.l 0 ;Reserved
dc.l 0 ;Reserved
dc.l 0 ;Reserved
dc.l "BODY"
dc.l (16*12*2)
dc.w $0,$1,$2,$3,$4,$5,$6,$7
dc.w $8,$9,$A,$B,$C,$C,$C,$C
dc.w $0,$1,$D,$E,$F,$10,$11,$7
dc.w $8,$9,$A,$B,$C,$C,$C,$C
dc.w $0,$12,$13,$14,$15,$16,$17,$7
dc.w $8,$9,$A,$B,$C,$18,$19,$C
dc.w $1A,$1B,$1C,$1D,$15,$16,$1E,$7
dc.w $8,$9,$1F,$20,$C,$21,$22,$C
dc.w $23,$24,$25,$1D,$26,$16,$27,$28
dc.w $8,$9,$29,$2A,$C,$2B,$2C,$C
dc.w $2D,$2E,$25,$1D,$26,$2F,$30,$28
dc.w $8,$31,$32,$32,$C,$C,$C,$C
dc.w $33,$34,$35,$32,$36,$36,$36,$36
dc.w $36,$36,$36,$36,$C,$C,$C,$C
dc.w $37,$38,$39,$3A,$3B,$3C,$3D,$36
dc.w $36,$36,$36,$36,$C,$C,$C,$C
dc.w $3E,$3F,$40,$41,$3E,$3F,$40,$41
dc.w $3E,$3F,$40,$41,$3E,$3F,$40,$41
dc.w $42,$43,$44,$45,$42,$43,$44,$45
dc.w $42,$43,$44,$45,$46,$47,$44,$45
dc.w $48,$49,$4A,$4B,$48,$49,$4A,$4B
dc.w $48,$49,$4A,$4B,$4C,$4D,$4A,$4B
dc.w $4E,$4F,$4F,$50,$4E,$4F,$4F,$50
dc.w $4E,$4F,$4F,$50,$4E,$51,$4F,$50
PRE:
POST:
0=FFFFFF
1=FF8000
2=808080
3=FFFF00
4=770000
5=000000
6=00007D
7=7B7BFF
8=007D7D
9=80FFFF
10=8080FF
11=007F7F
12=101010
13=00319C
14=00007F
15=7BFFFF
16=F87D00
17=790000
18=F8F800
19=F8F8F8
20=FF00FF