For this change I had to split up bank 8800 into 8800 and 8C00.
Updated the png converter script to convert 8800-8C00 into 8x16 object
compatible tiles.
Updated map loader to contain an additional pointer gfx.
Updated map generator to write the additional pointer to gfx.
Updated sprite index for player and demo actors.
.PHONY: tiles
tiles:
./tools/png2chr.py assets/tiles/bank8000.png > tiles/bank8000.inc
- ./tools/png2chr.py assets/tiles/bank8800.png > tiles/bank8800.inc
+ ./tools/png2chr.py assets/tiles/bank8800.png 16 > tiles/bank8800.inc
+ ./tools/png2chr.py assets/tiles/bank8C00.png > tiles/bank8C00.inc
./tools/png2chr.py assets/tiles/bank9000.png > tiles/bank9000.inc
.PHONY: maps
dw default_map_actor_table
dw bank8000
dw bank8800
+dw bank8C00
dw bank9000
default_map_bg:
; maps to map property actor_table_ptr
.de map_actor_table_ptr, 2
; pointers to tile banks to be loaded
- ; maps to map property tile_bank0, tile_bank1, tile_bank2
+ ; maps to map property tile_bank0, tile_bank1, tile_bank2, tile_bank3
+ ; note that tile_bank1 and tile_bank2 are 128 bytes each
+ ; whereas bank0 and bank3 are 256 bytes
.de map_tile_bank0_ptr, 2
.de map_tile_bank1_ptr, 2
.de map_tile_bank2_ptr, 2
+.de map_tile_bank3_ptr, 2
; map actor table struct
push hl
call tiles_load_bank8800
+ pop hl
+ ld a, [hl+]
+ ld e, a
+ ld a, [hl+]
+ ld d, a
+ push hl
+ call tiles_load_bank8C00
+
pop hl
ld a, [hl+]
ld e, a
act_equipment_empty
act_effects_empty
act_st_def NULL, NULL, st_unit_player_update, st_unit_idle
- act_def_meta unit_draw, 0x84, 0, NULL
+ act_def_meta unit_draw, 0x88, 0, NULL
st_unit_player_update:
st_def 0x00, unit_player_update, st_unit_player_update
#include "bank8800.inc"
bank8800_end:
+bank8C00:
+#include "bank8C00.inc"
+bank8C00_end:
+
bank9000:
#include "bank9000.inc"
bank9000_end:
call_hl
ret
+ ; gets the left tile offset
+ ; for object 1
+ ; based on the y flip of oam
+ ; inputs:
+ ; a: oam flags
+ ; returns:
+ ; a: x-offset
+get_left_tile_offset1:
+ and a, OAM_FXFLIP
+ jr z, @not_set REL
+ ld a, 8
+ ret
+@not_set:
+ xor a, a
+ ret
+
+ ; gets the left tile offset
+ ; for object 2
+ ; based on the y flip of oam
+ ; inputs:
+ ; a: oam flags
+ ; returns:
+ ; a: x-offset
+get_left_tile_offset2:
+ and a, OAM_FXFLIP
+ jr z, @not_set REL
+ xor a, a
+ ret
+@not_set:
+ ld a, 8
+ ret
; inputs
; de: actor
ld b, a ; tile
ld a, [hl]
ld c, a ; flags
- ld a, 0 ; no x-offset
+ call get_left_tile_offset1
push bc
call unit_generic_draw
pop bc
pop de
push de
- inc b ; b++
- ld a, 8 ; 8 x-offset
+ inc b
+ inc b ; b+=2
+ ld a, c ; a = flags
+ call get_left_tile_offset2
call unit_generic_draw
pop de
act_equipment_empty
act_effects_empty
act_st_def NULL, NULL, st_unit_demo_1_cpu_update_idle, st_unit_idle
- act_def_meta unit_draw, 0x84, 0, NULL
+ act_def_meta unit_draw, 0x88, 0, NULL
unit_demo_3:
st_def 0x00, unit_demo_1_init, st_unit_demo_1_cpu_update
act_equipment_empty
act_effects_empty
act_st_def NULL, NULL, st_unit_demo_1_cpu_update, st_unit_idle
- act_def_meta unit_draw, 0x84, 0, NULL
+ act_def_meta unit_draw, 0x88, 0, NULL
st_unit_demo_1_cpu_update:
; turns on the lcd
lcd_on:
- ld a, LCDCF_ON | LCDCF_BGON | LCDCF_OBJON | LCDF_WINDOWON | LCDF_WINBANKSELECT
+ ld a, LCDCF_ON | LCDCF_BGON | LCDCF_OBJON | LCDF_WINDOWON | LCDF_WINBANKSELECT | LCDF_OBJ_SIZE
ld [RLCD], a
ret
ld bc, bank8800_end - bank8800
jp memcpy
+tiles_load_bank8C00:
+ ld hl, VRAM8800+0x400
+ ld bc, bank8C00_end - bank8C00
+ jp memcpy
+
tiles_load_bank9000:
ld hl, VRAM9000
ld bc, bank9000_end - bank9000
.chr 13333310
.chr 10333000
.chr 00333000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
; tile 1
.chr 00333000
.chr 00221000
.chr 03333300
.chr 03303300
.chr 03000300
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
; tile 2
.chr 01000100
.chr 01333100
.chr 13333310
.chr 10333000
.chr 00333000
-; tile 3
-.chr 00000000
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 00000000
-.chr 00033000
-.chr 00000000
-.chr 00000000
-; tile 4
-.chr 00000033
-.chr 00000033
-.chr 00003333
-.chr 00003333
-.chr 00333333
-.chr 00333333
-.chr 00002222
-.chr 00002222
-; tile 5
-.chr 00000000
-.chr 00000000
-.chr 33001100
-.chr 33001100
-.chr 33331100
-.chr 33331100
-.chr 11001100
-.chr 11001100
-; tile 6
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 7
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 8
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 9
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 10
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 11
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 12
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 13
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 14
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 15
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 16
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 17
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 18
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+; tile 3
.chr 00000000
+.chr 00033000
+.chr 00033000
+.chr 00033000
.chr 00000000
+.chr 00033000
.chr 00000000
.chr 00000000
-; tile 19
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 20
+; tile 4
+.chr 00000033
+.chr 00000033
+.chr 00003333
+.chr 00003333
+.chr 00333333
+.chr 00333333
+.chr 00002222
+.chr 00002222
.chr 00003333
.chr 00003333
.chr 00333333
.chr 00333333
.chr 00003333
.chr 00003333
-; tile 21
+; tile 5
+.chr 00000000
+.chr 00000000
+.chr 33001100
+.chr 33001100
+.chr 33331100
+.chr 33331100
+.chr 11001100
+.chr 11001100
.chr 33001100
.chr 33001100
.chr 33331100
.chr 33331100
.chr 33001100
.chr 33001100
-; tile 22
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 23
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 24
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 25
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 26
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 27
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 28
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 29
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 30
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 31
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 32
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 33
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 34
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 35
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 36
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 37
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 38
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 39
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 40
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 41
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 42
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 43
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+; tile 6
.chr 00000000
-; tile 44
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 45
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 7
.chr 00000000
-; tile 46
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 47
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 8
.chr 00000000
-; tile 48
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 49
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 9
.chr 00000000
-; tile 50
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 51
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 10
.chr 00000000
-; tile 52
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 53
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 11
.chr 00000000
-; tile 54
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 55
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 12
.chr 00000000
-; tile 56
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 57
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 13
.chr 00000000
-; tile 58
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 59
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 14
.chr 00000000
-; tile 60
+.chr 00033333
+.chr 00322222
+.chr 03222222
+.chr 03222222
+.chr 03221222
+.chr 03221222
+.chr 03221222
+.chr 03221222
+.chr 03221222
+.chr 03222222
+.chr 03222222
+.chr 03222222
+.chr 00322222
+.chr 00033333
.chr 00000000
+; tile 15
.chr 00000000
+.chr 33333000
+.chr 22222300
+.chr 22222230
+.chr 22222230
+.chr 21222230
+.chr 21222230
+.chr 21222230
+.chr 21222230
+.chr 21222230
+.chr 22222230
+.chr 22222230
+.chr 22222230
+.chr 22222300
+.chr 33333000
.chr 00000000
+; tile 16
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 61
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 62
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 17
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 63
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 64
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 18
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 65
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 66
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-.chr 22222222
-; tile 67
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 19
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 68
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 69
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 20
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 70
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 71
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 21
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 72
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 73
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 22
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 74
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 75
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 23
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 76
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 77
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 24
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 78
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 79
.chr 00000000
.chr 00000000
.chr 00000000
+; tile 25
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 80
.chr 00000000
-.chr 00333330
-.chr 03333333
-.chr 03300333
-.chr 03303033
-.chr 03330033
-.chr 03333333
-.chr 00333330
-; tile 81
.chr 00000000
-.chr 00003330
-.chr 00033330
-.chr 00030330
-.chr 00000330
-.chr 00000330
-.chr 00000330
-.chr 00000330
-; tile 82
.chr 00000000
-.chr 03333333
-.chr 03333333
-.chr 00000033
-.chr 03333333
-.chr 03300000
-.chr 03333333
-.chr 03333333
-; tile 83
.chr 00000000
-.chr 00333330
-.chr 00333333
-.chr 00000033
-.chr 00033333
-.chr 00000033
-.chr 00333333
-.chr 00333330
-; tile 84
.chr 00000000
-.chr 00330033
-.chr 00330033
-.chr 00330033
-.chr 00333333
-.chr 00000033
-.chr 00000033
-.chr 00000033
-; tile 85
.chr 00000000
-.chr 03333333
-.chr 03333333
-.chr 03300000
-.chr 03333333
-.chr 00000033
-.chr 03333333
-.chr 03333333
-; tile 86
-.chr 00000000
-.chr 03333333
-.chr 03333333
-.chr 03300000
-.chr 03333333
-.chr 03333333
-.chr 03300033
-.chr 03333333
-; tile 87
-.chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 00000330
-.chr 00000330
-.chr 00000330
-.chr 00000330
-.chr 00000330
-; tile 88
-.chr 00000000
-.chr 00333330
-.chr 03333333
-.chr 03300033
-.chr 00333330
-.chr 03300033
-.chr 03333333
-.chr 00333330
-; tile 89
-.chr 00000000
-.chr 00333330
-.chr 03333333
-.chr 03000033
-.chr 03333333
-.chr 00000033
-.chr 03333333
-.chr 03333330
-; tile 90
-.chr 00000000
-.chr 00333330
-.chr 03333333
-.chr 03300033
-.chr 03333333
-.chr 03300033
-.chr 03300033
-.chr 03300033
-; tile 91
.chr 00000000
-.chr 03333300
-.chr 03333330
-.chr 03300330
-.chr 03333300
-.chr 03333330
-.chr 03300330
-.chr 03333300
-; tile 92
-.chr 00000000
-.chr 00333330
-.chr 03333330
-.chr 03330000
-.chr 03300000
-.chr 03330000
-.chr 03333330
-.chr 00333330
-; tile 93
-.chr 00000000
-.chr 03333330
-.chr 03333333
-.chr 03300033
-.chr 03300033
-.chr 03300033
-.chr 03333333
-.chr 03333330
-; tile 94
-.chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 03300000
-.chr 03333300
-.chr 03300000
-.chr 03333330
-.chr 03333330
-; tile 95
-.chr 00000000
-.chr 03333330
-.chr 03333330
-.chr 03300000
-.chr 03333300
-.chr 03333300
-.chr 03300000
-.chr 03300000
-; tile 96
-.chr 00000000
-.chr 00333330
-.chr 03333330
-.chr 03300000
-.chr 03300333
-.chr 03300033
-.chr 03333333
-.chr 00333330
-; tile 97
-.chr 00000000
-.chr 03300330
-.chr 03300330
-.chr 03300330
-.chr 03333330
-.chr 03300330
-.chr 03300330
-.chr 03300330
-; tile 98
-.chr 00000000
-.chr 03333330
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 03333330
-; tile 99
-.chr 00000000
-.chr 00033330
-.chr 00033330
-.chr 00000330
-.chr 00000330
-.chr 00003330
-.chr 00333330
-.chr 00333300
-; tile 100
.chr 00000000
-.chr 03303300
-.chr 03333000
-.chr 03330000
-.chr 03300000
-.chr 03330000
-.chr 03333000
-.chr 03303300
-; tile 101
-.chr 00000000
-.chr 03330000
-.chr 03330000
-.chr 03330000
-.chr 03330000
-.chr 03330000
-.chr 03333330
-.chr 03333330
-; tile 102
-.chr 00000000
-.chr 03300033
-.chr 03330333
-.chr 03333333
-.chr 03333333
-.chr 03300033
-.chr 03300033
-.chr 03300033
-; tile 103
-.chr 00000000
-.chr 03300330
-.chr 03330330
-.chr 03333330
-.chr 03333330
-.chr 03303330
-.chr 03300330
-.chr 03300330
-; tile 104
-.chr 00000000
-.chr 00333330
-.chr 03333333
-.chr 03300033
-.chr 03300033
-.chr 03300033
-.chr 03333333
-.chr 00333330
-; tile 105
-.chr 00000000
-.chr 03333330
-.chr 03300330
-.chr 03300330
-.chr 03333330
-.chr 03300000
-.chr 03300000
-.chr 03300000
-; tile 106
-.chr 00000000
-.chr 00333300
-.chr 03333330
-.chr 03300330
-.chr 03300330
-.chr 03300330
-.chr 03333300
-.chr 00333030
-; tile 107
.chr 00000000
-.chr 03333300
-.chr 03300330
-.chr 03300330
-.chr 03333300
-.chr 03333300
-.chr 03300330
-.chr 03300330
-; tile 108
-.chr 00000000
-.chr 00333330
-.chr 03333330
-.chr 03300000
-.chr 00333300
-.chr 00000330
-.chr 03333330
-.chr 03333300
-; tile 109
.chr 00000000
-.chr 03333330
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 00033000
-.chr 00033000
-; tile 110
-.chr 00000000
-.chr 03300330
-.chr 03300330
-.chr 03300330
-.chr 03300330
-.chr 03333330
-.chr 03333330
-.chr 00333300
-; tile 111
-.chr 00000000
-.chr 03300033
-.chr 03300033
-.chr 03300033
-.chr 03330333
-.chr 03333333
-.chr 00333330
-.chr 00033300
-; tile 112
-.chr 00000000
-.chr 03300033
-.chr 03300033
-.chr 03303033
-.chr 03303033
-.chr 03333333
-.chr 00333330
-.chr 00030300
-; tile 113
-.chr 00000000
-.chr 03300033
-.chr 03330333
-.chr 00333330
-.chr 00033300
-.chr 00333330
-.chr 03330333
-.chr 03300033
-; tile 114
-.chr 00000000
-.chr 03000030
-.chr 03300330
-.chr 03333330
-.chr 00333300
-.chr 00033000
-.chr 00033000
-.chr 00033000
-; tile 115
.chr 00000000
-.chr 03333333
-.chr 03333333
-.chr 00000330
-.chr 00003330
-.chr 00033300
-.chr 03333333
-.chr 03333333
-; tile 116
+; tile 26
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 117
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 118
+; tile 27
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 119
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 120
+; tile 28
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 121
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 122
+; tile 29
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 123
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 124
+; tile 30
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 125
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 126
+; tile 31
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
.chr 00000000
-; tile 127
.chr 00000000
.chr 00000000
.chr 00000000
--- /dev/null
+; tile 0
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 1
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 2
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+.chr 22222222
+; tile 3
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 4
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 5
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 6
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 7
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 8
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 9
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 10
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 11
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 12
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 13
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 14
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 15
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 16
+.chr 00000000
+.chr 00333330
+.chr 03333333
+.chr 03300333
+.chr 03303033
+.chr 03330033
+.chr 03333333
+.chr 00333330
+; tile 17
+.chr 00000000
+.chr 00003330
+.chr 00033330
+.chr 00030330
+.chr 00000330
+.chr 00000330
+.chr 00000330
+.chr 00000330
+; tile 18
+.chr 00000000
+.chr 03333333
+.chr 03333333
+.chr 00000033
+.chr 03333333
+.chr 03300000
+.chr 03333333
+.chr 03333333
+; tile 19
+.chr 00000000
+.chr 00333330
+.chr 00333333
+.chr 00000033
+.chr 00033333
+.chr 00000033
+.chr 00333333
+.chr 00333330
+; tile 20
+.chr 00000000
+.chr 00330033
+.chr 00330033
+.chr 00330033
+.chr 00333333
+.chr 00000033
+.chr 00000033
+.chr 00000033
+; tile 21
+.chr 00000000
+.chr 03333333
+.chr 03333333
+.chr 03300000
+.chr 03333333
+.chr 00000033
+.chr 03333333
+.chr 03333333
+; tile 22
+.chr 00000000
+.chr 03333333
+.chr 03333333
+.chr 03300000
+.chr 03333333
+.chr 03333333
+.chr 03300033
+.chr 03333333
+; tile 23
+.chr 00000000
+.chr 03333330
+.chr 03333330
+.chr 00000330
+.chr 00000330
+.chr 00000330
+.chr 00000330
+.chr 00000330
+; tile 24
+.chr 00000000
+.chr 00333330
+.chr 03333333
+.chr 03300033
+.chr 00333330
+.chr 03300033
+.chr 03333333
+.chr 00333330
+; tile 25
+.chr 00000000
+.chr 00333330
+.chr 03333333
+.chr 03000033
+.chr 03333333
+.chr 00000033
+.chr 03333333
+.chr 03333330
+; tile 26
+.chr 00000000
+.chr 00333330
+.chr 03333333
+.chr 03300033
+.chr 03333333
+.chr 03300033
+.chr 03300033
+.chr 03300033
+; tile 27
+.chr 00000000
+.chr 03333300
+.chr 03333330
+.chr 03300330
+.chr 03333300
+.chr 03333330
+.chr 03300330
+.chr 03333300
+; tile 28
+.chr 00000000
+.chr 00333330
+.chr 03333330
+.chr 03330000
+.chr 03300000
+.chr 03330000
+.chr 03333330
+.chr 00333330
+; tile 29
+.chr 00000000
+.chr 03333330
+.chr 03333333
+.chr 03300033
+.chr 03300033
+.chr 03300033
+.chr 03333333
+.chr 03333330
+; tile 30
+.chr 00000000
+.chr 03333330
+.chr 03333330
+.chr 03300000
+.chr 03333300
+.chr 03300000
+.chr 03333330
+.chr 03333330
+; tile 31
+.chr 00000000
+.chr 03333330
+.chr 03333330
+.chr 03300000
+.chr 03333300
+.chr 03333300
+.chr 03300000
+.chr 03300000
+; tile 32
+.chr 00000000
+.chr 00333330
+.chr 03333330
+.chr 03300000
+.chr 03300333
+.chr 03300033
+.chr 03333333
+.chr 00333330
+; tile 33
+.chr 00000000
+.chr 03300330
+.chr 03300330
+.chr 03300330
+.chr 03333330
+.chr 03300330
+.chr 03300330
+.chr 03300330
+; tile 34
+.chr 00000000
+.chr 03333330
+.chr 00033000
+.chr 00033000
+.chr 00033000
+.chr 00033000
+.chr 00033000
+.chr 03333330
+; tile 35
+.chr 00000000
+.chr 00033330
+.chr 00033330
+.chr 00000330
+.chr 00000330
+.chr 00003330
+.chr 00333330
+.chr 00333300
+; tile 36
+.chr 00000000
+.chr 03303300
+.chr 03333000
+.chr 03330000
+.chr 03300000
+.chr 03330000
+.chr 03333000
+.chr 03303300
+; tile 37
+.chr 00000000
+.chr 03330000
+.chr 03330000
+.chr 03330000
+.chr 03330000
+.chr 03330000
+.chr 03333330
+.chr 03333330
+; tile 38
+.chr 00000000
+.chr 03300033
+.chr 03330333
+.chr 03333333
+.chr 03333333
+.chr 03300033
+.chr 03300033
+.chr 03300033
+; tile 39
+.chr 00000000
+.chr 03300330
+.chr 03330330
+.chr 03333330
+.chr 03333330
+.chr 03303330
+.chr 03300330
+.chr 03300330
+; tile 40
+.chr 00000000
+.chr 00333330
+.chr 03333333
+.chr 03300033
+.chr 03300033
+.chr 03300033
+.chr 03333333
+.chr 00333330
+; tile 41
+.chr 00000000
+.chr 03333330
+.chr 03300330
+.chr 03300330
+.chr 03333330
+.chr 03300000
+.chr 03300000
+.chr 03300000
+; tile 42
+.chr 00000000
+.chr 00333300
+.chr 03333330
+.chr 03300330
+.chr 03300330
+.chr 03300330
+.chr 03333300
+.chr 00333030
+; tile 43
+.chr 00000000
+.chr 03333300
+.chr 03300330
+.chr 03300330
+.chr 03333300
+.chr 03333300
+.chr 03300330
+.chr 03300330
+; tile 44
+.chr 00000000
+.chr 00333330
+.chr 03333330
+.chr 03300000
+.chr 00333300
+.chr 00000330
+.chr 03333330
+.chr 03333300
+; tile 45
+.chr 00000000
+.chr 03333330
+.chr 00033000
+.chr 00033000
+.chr 00033000
+.chr 00033000
+.chr 00033000
+.chr 00033000
+; tile 46
+.chr 00000000
+.chr 03300330
+.chr 03300330
+.chr 03300330
+.chr 03300330
+.chr 03333330
+.chr 03333330
+.chr 00333300
+; tile 47
+.chr 00000000
+.chr 03300033
+.chr 03300033
+.chr 03300033
+.chr 03330333
+.chr 03333333
+.chr 00333330
+.chr 00033300
+; tile 48
+.chr 00000000
+.chr 03300033
+.chr 03300033
+.chr 03303033
+.chr 03303033
+.chr 03333333
+.chr 00333330
+.chr 00030300
+; tile 49
+.chr 00000000
+.chr 03300033
+.chr 03330333
+.chr 00333330
+.chr 00033300
+.chr 00333330
+.chr 03330333
+.chr 03300033
+; tile 50
+.chr 00000000
+.chr 03000030
+.chr 03300330
+.chr 03333330
+.chr 00333300
+.chr 00033000
+.chr 00033000
+.chr 00033000
+; tile 51
+.chr 00000000
+.chr 03333333
+.chr 03333333
+.chr 00000330
+.chr 00003330
+.chr 00033300
+.chr 03333333
+.chr 03333333
+; tile 52
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 53
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 54
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 55
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 56
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 57
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 58
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 59
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 60
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 61
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 62
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+; tile 63
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
from PIL import Image
from itertools import product
+DW = 8
+
if len(sys.argv) < 2:
- print("Usage: png2chr.py <source>")
+ print("Usage: png2chr.py <source> [8/16]")
sys.exit(-1)
+if len(sys.argv) == 3:
+ DW = int(sys.argv[2])
+
+
# these colors are mapped
# maps color tuple to .chr string
COLORS = {(0, 0, 0, 255): '3', (0, 0, 0, 0): '0', (107, 107, 107, 255): '1', (181, 181, 181, 255): '2', (255, 255, 255, 255): '0'}
sys.exit(-1)
print("")
-tile(src, 8)
+def tile16(src, d):
+ img = Image.open(src)
+ w, h = img.size
+ tile_index = 0
+
+ # split the image into even tiles
+ grid = product(range(0, h-h%d*2, d*2), range(0, w-w%d, d))
+ for i, j in grid:
+ box = (j, i, j+d, i+d*2)
+ cropped = img.crop(box)
+ cw, ch = cropped.size
+ cropped = cropped.load()
+
+ print('; tile ' + str(tile_index))
+ tile_index += 1
+ for y in range(0, ch):
+ print(".chr ", end='')
+ for x in range(0, cw):
+ color = cropped[x, y]
+ if color in COLORS:
+ print(COLORS[color], end='')
+ else:
+ print('Unknown color: ' + str(cropped[x,y]))
+ sys.exit(-1)
+ print("")
+
+if DW == 8:
+ tile(src, 8)
+else:
+ tile16(src, 8)
state_ptr = "st_map_null"
tile_bank0 = "bank8000"
tile_bank1 = "bank8800"
-tile_bank2 = "bank9000"
+tile_bank2 = "bank8C00"
+tile_bank3 = "bank9000"
actor_table_ptr = "map_actor_table_null"
FLAGS = {
print("dw " + tile_bank0)
print("dw " + tile_bank1)
print("dw " + tile_bank2)
+ print("dw " + tile_bank3)
print("")
def get_flag(tile):
global tile_bank0
global tile_bank1
global tile_bank2
+ global tile_bank3
for child in root:
if child.tag == "properties":
tile_bank1 = value
elif name == 'tile_bank2':
tile_bank2 = value
+ elif name == 'tile_bank3':
+ tile_bank3 = value
return