mirror of
https://github.com/pret/pokeruby.git
synced 2025-02-17 11:49:18 +00:00
pokemon graphics data and makefile
This commit is contained in:
parent
aa3cafe9ba
commit
64814e1324
85
Makefile
Normal file
85
Makefile
Normal file
@ -0,0 +1,85 @@
|
||||
AS := pokeas
|
||||
ASFLAGS := -mcpu=arm7tdmi
|
||||
|
||||
CC := gbacc
|
||||
CFLAGS := -mthumb-interwork -O2 -Iinclude
|
||||
|
||||
SHA1 := sha1sum -c
|
||||
|
||||
GFX := @tools/gbagfx/gbagfx
|
||||
|
||||
SCANINC := tools/scaninc/scaninc
|
||||
|
||||
# Clear the default suffixes.
|
||||
.SUFFIXES:
|
||||
|
||||
# Secondary expansion is required for dependency variables in object rules.
|
||||
.SECONDEXPANSION:
|
||||
|
||||
.PRECIOUS: %.1bpp %.4bpp %.8bpp %.gbapal %.lz
|
||||
|
||||
.PHONY: rom tools gbagfx scaninc clean compare deps
|
||||
|
||||
CSRCS := $(wildcard src/*.c)
|
||||
OBJS := asm/rom.o
|
||||
|
||||
$(foreach obj, $(OBJS), \
|
||||
$(eval $(obj)_deps := $(shell $(SCANINC) $(obj:.o=.s))) \
|
||||
)
|
||||
|
||||
ROM := pokeruby.gba
|
||||
ELF := $(ROM:.gba=.elf)
|
||||
|
||||
rom: $(ROM)
|
||||
|
||||
tools: gbagfx scaninc
|
||||
|
||||
gbagfx:
|
||||
cd tools/gbagfx && make
|
||||
|
||||
scaninc:
|
||||
cd tools/scaninc && make
|
||||
|
||||
# For contributors to make sure a change didn't affect the contents of the ROM.
|
||||
compare: $(ROM)
|
||||
@$(SHA1) rom.sha1
|
||||
|
||||
clean:
|
||||
$(RM) $(ROM) $(ELF) $(OBJS)
|
||||
$(RM) genasm/*
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
|
||||
include graphics_file_rules.mk
|
||||
|
||||
%.png: ;
|
||||
%.pal: ;
|
||||
%.1bpp: %.png ; $(GFX) $< $@
|
||||
%.4bpp: %.png ; $(GFX) $< $@
|
||||
%.8bpp: %.png ; $(GFX) $< $@
|
||||
%.gbapal: %.pal ; $(GFX) $< $@
|
||||
%.lz: % ; $(GFX) $< $@
|
||||
|
||||
$(OBJS): $(CSRCS:src/%.c=genasm/%.s)
|
||||
|
||||
# TODO: fix this .syntax hack
|
||||
|
||||
genasm/prefix.tmp:
|
||||
echo -e "\t.syntax divided" >$@
|
||||
|
||||
genasm/suffix.tmp:
|
||||
echo -e "\t.syntax unified" >$@
|
||||
|
||||
genasm/%.s: src/%.c genasm/prefix.tmp genasm/suffix.tmp
|
||||
mkdir -p genasm
|
||||
$(CC) $(CFLAGS) -o $@.tmp $< -S
|
||||
cat genasm/prefix.tmp $@.tmp genasm/suffix.tmp >$@.tmp2
|
||||
perl fix_local_labels.pl $@.tmp2 $@
|
||||
$(RM) $@.tmp $@.tmp2
|
||||
|
||||
%.o: %.s $$($$@_deps)
|
||||
$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
# Link objects to produce the ROM.
|
||||
$(ROM): $(OBJS)
|
||||
./pokeld -T ld_script.txt -T wram_syms.txt -o $(ELF) $(OBJS)
|
||||
./pokeobjcopy -O binary $(ELF) $(ROM)
|
138
asm/rom.s
138
asm/rom.s
@ -23655,10 +23655,10 @@ sub_800B25C: ; 800B25C
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_0800B2B8: .4byte gUnknown_081E8E44
|
||||
_0800B2B8: .4byte gMonFrontPicTable + 0xAF0
|
||||
_0800B2BC: .4byte gUnknown_081E7C74
|
||||
_0800B2C0: .4byte gUnknown_081FAF4C
|
||||
_0800B2C4: .4byte gUnknown_081EB0A4
|
||||
_0800B2C4: .4byte gMonPaletteTable + 0xAF0
|
||||
_0800B2C8: .4byte 0x02024e8c
|
||||
thumb_func_end sub_800B25C
|
||||
|
||||
@ -27933,7 +27933,7 @@ DecompressPicFromTable_2: ; 800D308
|
||||
bl LZ77UnCompWram
|
||||
b _0800D330
|
||||
.align 2
|
||||
_0800D324: .4byte gUnknown_081E8354
|
||||
_0800D324: .4byte gMonFrontPicTable
|
||||
_0800D328:
|
||||
ldr r0, [r2]
|
||||
adds r1, r3, 0
|
||||
@ -28034,7 +28034,7 @@ _0800D3CA:
|
||||
ldr r0, [r1]
|
||||
b _0800D3F8
|
||||
.align 2
|
||||
_0800D3D8: .4byte gUnknown_081E97F4
|
||||
_0800D3D8: .4byte gMonBackPicTable
|
||||
_0800D3DC:
|
||||
ldr r0, _0800D3E8
|
||||
lsls r1, 3
|
||||
@ -28042,7 +28042,7 @@ _0800D3DC:
|
||||
ldr r0, [r1]
|
||||
b _0800D3F8
|
||||
.align 2
|
||||
_0800D3E8: .4byte gUnknown_081E8354
|
||||
_0800D3E8: .4byte gMonFrontPicTable
|
||||
_0800D3EC:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
@ -28055,7 +28055,7 @@ _0800D3F8:
|
||||
bl LZ77UnCompWram
|
||||
b _0800D40C
|
||||
.align 2
|
||||
_0800D400: .4byte gUnknown_081E8354
|
||||
_0800D400: .4byte gMonFrontPicTable
|
||||
_0800D404:
|
||||
ldr r0, [r1]
|
||||
adds r1, r5, 0
|
||||
@ -99463,7 +99463,7 @@ _080317DC:
|
||||
b _08031856
|
||||
.align 2
|
||||
_08031838: .4byte 0x02024e70
|
||||
_0803183C: .4byte gUnknown_081E8354
|
||||
_0803183C: .4byte gMonFrontPicTable
|
||||
_08031840: .4byte gUnknown_081E7C74
|
||||
_08031844: .4byte gUnknown_081FAF4C
|
||||
_08031848: .4byte 0x02017800
|
||||
@ -99627,7 +99627,7 @@ _08031944:
|
||||
b _080319BE
|
||||
.align 2
|
||||
_080319A0: .4byte 0x02024e70
|
||||
_080319A4: .4byte gUnknown_081E97F4
|
||||
_080319A4: .4byte gMonBackPicTable
|
||||
_080319A8: .4byte gUnknown_081E9114
|
||||
_080319AC: .4byte gUnknown_081FAF4C
|
||||
_080319B0: .4byte 0x02017800
|
||||
@ -100516,7 +100516,7 @@ _08032088:
|
||||
b _08032184
|
||||
.align 2
|
||||
_080320C0: .4byte 0x02019348
|
||||
_080320C4: .4byte gUnknown_081E97F4
|
||||
_080320C4: .4byte gMonBackPicTable
|
||||
_080320C8: .4byte gUnknown_081E9114
|
||||
_080320CC: .4byte gUnknown_081FAF4C
|
||||
_080320D0:
|
||||
@ -100612,7 +100612,7 @@ _08032184:
|
||||
.align 2
|
||||
_0803218C: .4byte 0x02024a6a
|
||||
_08032190: .4byte 0x03004360
|
||||
_08032194: .4byte gUnknown_081E97F4
|
||||
_08032194: .4byte gMonBackPicTable
|
||||
_08032198: .4byte gUnknown_081E9114
|
||||
_0803219C: .4byte gUnknown_081FAF4C
|
||||
_080321A0: .4byte 0x02024e70
|
||||
@ -100788,7 +100788,7 @@ _080322F6:
|
||||
.align 2
|
||||
_08032308: .4byte 0x02024a6a
|
||||
_0803230C: .4byte 0x030045c0
|
||||
_08032310: .4byte gUnknown_081E8354
|
||||
_08032310: .4byte gMonFrontPicTable
|
||||
_08032314: .4byte gUnknown_081E7C74
|
||||
_08032318: .4byte gUnknown_081FAF4C
|
||||
_0803231C: .4byte 0x02024e70
|
||||
@ -129766,7 +129766,7 @@ species_and_otid_get_pal: ; 804093C
|
||||
ldr r0, [r0]
|
||||
b _08040984
|
||||
.align 2
|
||||
_08040954: .4byte gUnknown_081EA5B4
|
||||
_08040954: .4byte gMonPaletteTable
|
||||
_08040958:
|
||||
lsrs r0, r1, 16
|
||||
ldr r2, _08040974
|
||||
@ -129783,7 +129783,7 @@ _08040958:
|
||||
b _08040980
|
||||
.align 2
|
||||
_08040974: .4byte 0x0000ffff
|
||||
_08040978: .4byte gUnknown_081EA5B4
|
||||
_08040978: .4byte gMonPaletteTable
|
||||
_0804097C:
|
||||
ldr r0, _0804098C
|
||||
lsls r1, r5, 3
|
||||
@ -129795,7 +129795,7 @@ _08040984:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_0804098C: .4byte gUnknown_081EB374
|
||||
_0804098C: .4byte gMonShinyPaletteTable
|
||||
thumb_func_end species_and_otid_get_pal
|
||||
|
||||
thumb_func_start sub_8040990
|
||||
@ -129846,7 +129846,7 @@ sub_80409C8: ; 80409C8
|
||||
b _080409F4
|
||||
.align 2
|
||||
_080409E8: .4byte 0x0000ffff
|
||||
_080409EC: .4byte gUnknown_081EA5B4
|
||||
_080409EC: .4byte gMonPaletteTable
|
||||
_080409F0:
|
||||
lsls r0, r4, 3
|
||||
ldr r1, _080409FC
|
||||
@ -129856,7 +129856,7 @@ _080409F4:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_080409FC: .4byte gUnknown_081EB374
|
||||
_080409FC: .4byte gMonShinyPaletteTable
|
||||
thumb_func_end sub_80409C8
|
||||
|
||||
thumb_func_start sub_8040A00
|
||||
@ -134363,7 +134363,7 @@ _08042BB4:
|
||||
bl LoadCompressedObjectPalette
|
||||
b _08042C50
|
||||
.align 2
|
||||
_08042C04: .4byte gUnknown_081E8354
|
||||
_08042C04: .4byte gMonFrontPicTable
|
||||
_08042C08: .4byte gUnknown_081E7C74
|
||||
_08042C0C: .4byte 0x02000000
|
||||
_08042C10: .4byte gUnknown_081FAF4C
|
||||
@ -151464,7 +151464,7 @@ _0804B330:
|
||||
strh r5, [r0]
|
||||
b _0804B3FA
|
||||
.align 2
|
||||
_0804B390: .4byte gUnknown_081E8354
|
||||
_0804B390: .4byte gMonFrontPicTable
|
||||
_0804B394: .4byte gUnknown_081E7C74
|
||||
_0804B398: .4byte 0x02000000
|
||||
_0804B39C: .4byte gUnknown_081FAF4C
|
||||
@ -250864,7 +250864,7 @@ sub_8079F44: ; 8079F44
|
||||
.align 2
|
||||
_08079FE0: .4byte gUnknown_0837F5E0
|
||||
_08079FE4: .4byte gUnknown_0837F5B0
|
||||
_08079FE8: .4byte gUnknown_081E8354
|
||||
_08079FE8: .4byte gMonFrontPicTable
|
||||
_08079FEC: .4byte gUnknown_081E7C74
|
||||
_08079FF0:
|
||||
adds r0, r6, 0
|
||||
@ -250926,7 +250926,7 @@ _0807A02E:
|
||||
adds r2, r4
|
||||
b _0807A09E
|
||||
.align 2
|
||||
_0807A068: .4byte gUnknown_081E97F4
|
||||
_0807A068: .4byte gMonBackPicTable
|
||||
_0807A06C: .4byte gUnknown_081E9114
|
||||
_0807A070: .4byte 0x06010000
|
||||
_0807A074: .4byte 0x040000d4
|
||||
@ -275246,10 +275246,10 @@ sub_8085AD4: ; 8085AD4
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_08085B74: .4byte gUnknown_081E8354
|
||||
_08085B74: .4byte gMonFrontPicTable
|
||||
_08085B78: .4byte gUnknown_081E7C74
|
||||
_08085B7C: .4byte gUnknown_081FAF4C
|
||||
_08085B80: .4byte gUnknown_081EA5B4
|
||||
_08085B80: .4byte gMonPaletteTable
|
||||
_08085B84: .4byte 0x02024e8c
|
||||
thumb_func_end sub_8085AD4
|
||||
|
||||
@ -275335,7 +275335,7 @@ sub_8085B88: ; 8085B88
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_08085C34: .4byte gUnknown_081E8354
|
||||
_08085C34: .4byte gMonFrontPicTable
|
||||
_08085C38: .4byte gUnknown_081E7C74
|
||||
_08085C3C: .4byte gUnknown_081FAF4C
|
||||
_08085C40: .4byte 0x02024e8c
|
||||
@ -298870,7 +298870,7 @@ _0809178C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_080917C8: .4byte gUnknown_083B4EE4
|
||||
_080917C8: .4byte gMonFootprintTable
|
||||
thumb_func_end sub_8091738
|
||||
|
||||
thumb_func_start sub_80917CC
|
||||
@ -299083,7 +299083,7 @@ sub_80918EC: ; 80918EC
|
||||
bl DecompressPicFromTable_2
|
||||
b _080919CE
|
||||
.align 2
|
||||
_0809194C: .4byte gUnknown_081E8354
|
||||
_0809194C: .4byte gMonFrontPicTable
|
||||
_08091950: .4byte gUnknown_081E7C74
|
||||
_08091954: .4byte gUnknown_083B5584
|
||||
_08091958:
|
||||
@ -299113,7 +299113,7 @@ _08091958:
|
||||
bl sub_800D378
|
||||
b _080919CE
|
||||
.align 2
|
||||
_0809198C: .4byte gUnknown_081E8354
|
||||
_0809198C: .4byte gMonFrontPicTable
|
||||
_08091990: .4byte gUnknown_081E7C74
|
||||
_08091994: .4byte gUnknown_083B5584
|
||||
_08091998: .4byte 0x02024ea4
|
||||
@ -299190,11 +299190,11 @@ _080919CE:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_08091A30: .4byte gUnknown_081E8354
|
||||
_08091A30: .4byte gMonFrontPicTable
|
||||
_08091A34: .4byte gUnknown_081E7C74
|
||||
_08091A38: .4byte gUnknown_083B5584
|
||||
_08091A3C: .4byte 0x02024ea4
|
||||
_08091A40: .4byte gUnknown_081EA5B4
|
||||
_08091A40: .4byte gMonPaletteTable
|
||||
_08091A44: .4byte 0x02024e8c
|
||||
_08091A48: .4byte 0x02020004
|
||||
thumb_func_end sub_80918EC
|
||||
@ -312344,7 +312344,7 @@ sub_80981F0: ; 80981F0
|
||||
b _080982A6
|
||||
.align 2
|
||||
_08098274: .4byte 0x02000000
|
||||
_08098278: .4byte gUnknown_081E8354
|
||||
_08098278: .4byte gMonFrontPicTable
|
||||
_0809827C: .4byte gUnknown_081E7C74
|
||||
_08098280: .4byte 0x00004784
|
||||
_08098284: .4byte 0x00002784
|
||||
@ -315463,7 +315463,7 @@ _08099A94:
|
||||
bx r1
|
||||
.align 2
|
||||
_08099A9C: .4byte 0x000010d0
|
||||
_08099AA0: .4byte gUnknown_083BBD20
|
||||
_08099AA0: .4byte gMonIconTable
|
||||
_08099AA4: .4byte 0x06010000
|
||||
_08099AA8: .4byte 0x04000080
|
||||
thumb_func_end sub_80999E8
|
||||
@ -315601,7 +315601,7 @@ sub_8099AFC: ; 8099AFC
|
||||
b _08099BD0
|
||||
.align 2
|
||||
_08099BAC: .4byte gUnknown_083B6F14
|
||||
_08099BB0: .4byte gUnknown_083BC400
|
||||
_08099BB0: .4byte gMonIconPaletteIndices
|
||||
_08099BB4: .4byte 0x0000dac0
|
||||
_08099BB8: .4byte 0x0000ffff
|
||||
_08099BBC: .4byte 0x02020004
|
||||
@ -322696,10 +322696,10 @@ sub_809D26C: ; 809D26C
|
||||
bx r1
|
||||
.align 2
|
||||
_0809D2E0: .4byte gUnknown_083BC5E8
|
||||
_0809D2E4: .4byte gUnknown_083BBD20
|
||||
_0809D2E4: .4byte gMonIconTable
|
||||
_0809D2E8: .4byte gUnknown_083BC62C
|
||||
_0809D2EC: .4byte gUnknown_083BC660
|
||||
_0809D2F0: .4byte gUnknown_083BC400
|
||||
_0809D2F0: .4byte gMonIconPaletteIndices
|
||||
_0809D2F4: .4byte 0x0000dac0
|
||||
_0809D2F8: .4byte 0x02020004
|
||||
thumb_func_end sub_809D26C
|
||||
@ -322779,7 +322779,7 @@ _0809D35A:
|
||||
_0809D38C: .4byte gUnknown_083BC5E8
|
||||
_0809D390: .4byte gUnknown_083BC62C
|
||||
_0809D394: .4byte gUnknown_083BC660
|
||||
_0809D398: .4byte gUnknown_083BC400
|
||||
_0809D398: .4byte gMonIconPaletteIndices
|
||||
_0809D39C: .4byte 0x0000dac0
|
||||
_0809D3A0: .4byte 0x02020004
|
||||
thumb_func_end sub_809D2FC
|
||||
@ -322843,10 +322843,10 @@ sub_809D3A4: ; 809D3A4
|
||||
bx r1
|
||||
.align 2
|
||||
_0809D418: .4byte gUnknown_083BC5E8
|
||||
_0809D41C: .4byte gUnknown_083BBD20
|
||||
_0809D41C: .4byte gMonIconTable
|
||||
_0809D420: .4byte gUnknown_083BC62C
|
||||
_0809D424: .4byte gUnknown_083BC660
|
||||
_0809D428: .4byte gUnknown_083BC400
|
||||
_0809D428: .4byte gMonIconPaletteIndices
|
||||
_0809D42C: .4byte 0x0000dac0
|
||||
_0809D430: .4byte 0x02020004
|
||||
thumb_func_end sub_809D3A4
|
||||
@ -322975,7 +322975,7 @@ sub_809D4F4: ; 809D4F4
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_0809D50C: .4byte gUnknown_083BBD20
|
||||
_0809D50C: .4byte gMonIconTable
|
||||
thumb_func_end sub_809D4F4
|
||||
|
||||
thumb_func_start sub_809D510
|
||||
@ -323004,7 +323004,7 @@ _0809D522:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_0809D53C: .4byte gUnknown_083BC5B8
|
||||
_0809D53C: .4byte gMonIconPaletteTable
|
||||
thumb_func_end sub_809D51C
|
||||
|
||||
thumb_func_start sub_809D540
|
||||
@ -323038,8 +323038,8 @@ _0809D572:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_0809D578: .4byte gUnknown_083BC400
|
||||
_0809D57C: .4byte gUnknown_083BC5B8
|
||||
_0809D578: .4byte gMonIconPaletteIndices
|
||||
_0809D57C: .4byte gMonIconPaletteTable
|
||||
thumb_func_end sub_809D540
|
||||
|
||||
thumb_func_start sub_809D580
|
||||
@ -323066,8 +323066,8 @@ _0809D5A6:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_0809D5AC: .4byte gUnknown_083BC400
|
||||
_0809D5B0: .4byte gUnknown_083BC5B8
|
||||
_0809D5AC: .4byte gMonIconPaletteIndices
|
||||
_0809D5B0: .4byte gMonIconPaletteTable
|
||||
thumb_func_end sub_809D580
|
||||
|
||||
thumb_func_start sub_809D5B4
|
||||
@ -323089,7 +323089,7 @@ _0809D5BA:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_0809D5D4: .4byte gUnknown_083BC5B8
|
||||
_0809D5D4: .4byte gMonIconPaletteTable
|
||||
thumb_func_end sub_809D5B4
|
||||
|
||||
thumb_func_start sub_809D5D8
|
||||
@ -323115,8 +323115,8 @@ _0809D5EA:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_0809D600: .4byte gUnknown_083BC400
|
||||
_0809D604: .4byte gUnknown_083BC5B8
|
||||
_0809D600: .4byte gMonIconPaletteIndices
|
||||
_0809D604: .4byte gMonIconPaletteTable
|
||||
thumb_func_end sub_809D5D8
|
||||
|
||||
thumb_func_start sub_809D608
|
||||
@ -323135,8 +323135,8 @@ sub_809D608: ; 809D608
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_0809D624: .4byte gUnknown_083BC400
|
||||
_0809D628: .4byte gUnknown_083BC5B8
|
||||
_0809D624: .4byte gMonIconPaletteIndices
|
||||
_0809D628: .4byte gMonIconPaletteTable
|
||||
thumb_func_end sub_809D608
|
||||
|
||||
thumb_func_start sub_809D62C
|
||||
@ -327250,7 +327250,7 @@ _0809F6D2:
|
||||
bl sub_800D334
|
||||
b _0809F74E
|
||||
.align 2
|
||||
_0809F70C: .4byte gUnknown_081E8354
|
||||
_0809F70C: .4byte gMonFrontPicTable
|
||||
_0809F710: .4byte gUnknown_081E7C74
|
||||
_0809F714: .4byte gUnknown_081FAF4C
|
||||
_0809F718:
|
||||
@ -358171,10 +358171,10 @@ sub_80AE908: ; 80AE908
|
||||
.align 2
|
||||
_080AE9D4: .4byte 0x02038570
|
||||
_080AE9D8: .4byte 0x02038695
|
||||
_080AE9DC: .4byte gUnknown_081E8354
|
||||
_080AE9DC: .4byte gMonFrontPicTable
|
||||
_080AE9E0: .4byte gUnknown_081E7C74
|
||||
_080AE9E4: .4byte gUnknown_081FAF4C
|
||||
_080AE9E8: .4byte gUnknown_081EA5B4
|
||||
_080AE9E8: .4byte gMonPaletteTable
|
||||
_080AE9EC: .4byte 0x02024e8c
|
||||
_080AE9F0: .4byte 0x02020004
|
||||
_080AE9F4: .4byte nullsub_2
|
||||
@ -358279,7 +358279,7 @@ sub_80AE9FC: ; 80AE9FC
|
||||
ldr r1, _080AEAE4
|
||||
b _080AEAF0
|
||||
.align 2
|
||||
_080AEACC: .4byte gUnknown_081E97F4
|
||||
_080AEACC: .4byte gMonBackPicTable
|
||||
_080AEAD0: .4byte gUnknown_081E9114
|
||||
_080AEAD4: .4byte gUnknown_081FAF4C
|
||||
_080AEAD8: .4byte 0x02024e8c
|
||||
@ -399653,7 +399653,7 @@ _080C2BC8: .4byte 0x03004240
|
||||
_080C2BCC: .4byte 0x00005050
|
||||
_080C2BD0: .4byte 0x02038690
|
||||
_080C2BD4: .4byte 0x02038570
|
||||
_080C2BD8: .4byte gUnknown_081E8354
|
||||
_080C2BD8: .4byte gMonFrontPicTable
|
||||
_080C2BDC: .4byte gUnknown_081E7C74
|
||||
_080C2BE0: .4byte gUnknown_081FAF4C
|
||||
_080C2BE4: .4byte 0x02000000
|
||||
@ -400348,9 +400348,9 @@ _080C3116:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_080C314C: .4byte gUnknown_083BC400
|
||||
_080C314C: .4byte gMonIconPaletteIndices
|
||||
_080C3150: .4byte 0x02038570
|
||||
_080C3154: .4byte gUnknown_08E966D8
|
||||
_080C3154: .4byte gMonIconPalettes
|
||||
thumb_func_end sub_80C310C
|
||||
|
||||
thumb_func_start sub_80C3158
|
||||
@ -404511,7 +404511,7 @@ _080C513C: .4byte sub_80C5190
|
||||
_080C5140: .4byte 0x02038570
|
||||
_080C5144: .4byte 0x0202e8d0
|
||||
_080C5148: .4byte 0x03004b20
|
||||
_080C514C: .4byte gUnknown_081E8354
|
||||
_080C514C: .4byte gMonFrontPicTable
|
||||
_080C5150: .4byte gUnknown_081E7C74
|
||||
_080C5154: .4byte gUnknown_081FAF4C
|
||||
_080C5158: .4byte 0x02024e8c
|
||||
@ -502283,7 +502283,7 @@ _080F48D0:
|
||||
_080F48E0: .4byte gUnknown_083DFEC4
|
||||
_080F48E4: .4byte 0x0000893f
|
||||
_080F48E8: .4byte 0x0000893d
|
||||
_080F48EC: .4byte gUnknown_081E8354
|
||||
_080F48EC: .4byte gMonFrontPicTable
|
||||
_080F48F0: .4byte gUnknown_081E7C74
|
||||
_080F48F4: .4byte 0x000131e4
|
||||
_080F48F8: .4byte 0x0000d1e4
|
||||
@ -540409,7 +540409,7 @@ sub_8106AC4: ; 8106AC4
|
||||
.align 2
|
||||
_08106B28: .4byte 0x03005e8c
|
||||
_08106B2C: .4byte 0x03005e90
|
||||
_08106B30: .4byte gUnknown_081E8354
|
||||
_08106B30: .4byte gMonFrontPicTable
|
||||
_08106B34: .4byte gUnknown_081E7C74
|
||||
_08106B38: .4byte gUnknown_081FAF4C
|
||||
_08106B3C: .4byte 0x03005e10
|
||||
@ -540446,7 +540446,7 @@ _08106B74:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2
|
||||
_08106B80: .4byte gUnknown_081E97F4
|
||||
_08106B80: .4byte gMonBackPicTable
|
||||
_08106B84: .4byte gUnknown_081E9114
|
||||
_08106B88: .4byte gUnknown_081FAF4C
|
||||
_08106B8C: .4byte 0x03005e10
|
||||
@ -548148,10 +548148,10 @@ sub_810A580: ; 810A580
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_0810A610: .4byte gUnknown_081E8354
|
||||
_0810A610: .4byte gMonFrontPicTable
|
||||
_0810A614: .4byte gUnknown_081E7C74
|
||||
_0810A618: .4byte gUnknown_081FAF4C
|
||||
_0810A61C: .4byte gUnknown_081EA5B4
|
||||
_0810A61C: .4byte gMonPaletteTable
|
||||
_0810A620: .4byte 0x02024e8c
|
||||
_0810A624: .4byte 0x02020004
|
||||
_0810A628: .4byte nullsub_72
|
||||
@ -563350,7 +563350,7 @@ _08111C44: .4byte 0x030028f8
|
||||
_08111C48: .4byte 0x020231cc
|
||||
_08111C4C: .4byte 0x020232cc
|
||||
_08111C50: .4byte gSpeciesNames
|
||||
_08111C54: .4byte gUnknown_081E8354
|
||||
_08111C54: .4byte gMonFrontPicTable
|
||||
_08111C58: .4byte gUnknown_081E7C74
|
||||
_08111C5C: .4byte gUnknown_081FAF4C
|
||||
_08111C60: .4byte 0x02024e8c
|
||||
@ -563559,7 +563559,7 @@ _08111E48: .4byte 0x030041b8
|
||||
_08111E4C: .4byte 0x03004210
|
||||
_08111E50: .4byte 0x0300428c
|
||||
_08111E54: .4byte 0x030028f8
|
||||
_08111E58: .4byte gUnknown_081E8354
|
||||
_08111E58: .4byte gMonFrontPicTable
|
||||
_08111E5C: .4byte gUnknown_081E7C74
|
||||
_08111E60: .4byte gUnknown_081FAF4C
|
||||
_08111E64: .4byte 0x02024e8c
|
||||
@ -563753,7 +563753,7 @@ _08111FE2:
|
||||
adds r1, r0
|
||||
b _0811208E
|
||||
.align 2
|
||||
_08112034: .4byte gUnknown_081E8354
|
||||
_08112034: .4byte gMonFrontPicTable
|
||||
_08112038: .4byte gUnknown_081E7C74
|
||||
_0811203C: .4byte gUnknown_081FAF4C
|
||||
_08112040: .4byte 0x03001770
|
||||
@ -563992,7 +563992,7 @@ _08112238: .4byte 0x020232cc
|
||||
_0811223C: .4byte gSpeciesNames
|
||||
_08112240: .4byte 0x020211c8
|
||||
_08112244: .4byte 0x02014800
|
||||
_08112248: .4byte gUnknown_081E8354
|
||||
_08112248: .4byte gMonFrontPicTable
|
||||
_0811224C: .4byte gUnknown_081E7C74
|
||||
_08112250: .4byte gUnknown_081FAF4C
|
||||
_08112254: .4byte 0x02024e8c
|
||||
@ -651072,7 +651072,7 @@ sub_813CE88: ; 813CE88
|
||||
bl sub_800D378
|
||||
b _0813CF1C
|
||||
.align 2
|
||||
_0813CEE4: .4byte gUnknown_081E8354
|
||||
_0813CEE4: .4byte gMonFrontPicTable
|
||||
_0813CEE8: .4byte gUnknown_081E7C74
|
||||
_0813CEEC: .4byte gUnknown_0840B5A0
|
||||
_0813CEF0:
|
||||
@ -651153,7 +651153,7 @@ _0813CF1C:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_0813CF90: .4byte gUnknown_081E97F4
|
||||
_0813CF90: .4byte gMonBackPicTable
|
||||
_0813CF94: .4byte gUnknown_081E9114
|
||||
_0813CF98: .4byte gUnknown_0840B5A0
|
||||
_0813CF9C: .4byte 0x0000ffff
|
||||
@ -664434,7 +664434,7 @@ sub_81436BC: ; 81436BC
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2
|
||||
_08143790: .4byte gUnknown_081E8354
|
||||
_08143790: .4byte gMonFrontPicTable
|
||||
_08143794: .4byte gUnknown_081E7C74
|
||||
_08143798: .4byte gUnknown_0840B5A0
|
||||
_0814379C: .4byte 0x02024e8c
|
||||
@ -668485,7 +668485,7 @@ _081456FC:
|
||||
bx r1
|
||||
.align 2
|
||||
_081457E8: .4byte 0x02024ea4
|
||||
_081457EC: .4byte gUnknown_081E8354
|
||||
_081457EC: .4byte gMonFrontPicTable
|
||||
_081457F0: .4byte gUnknown_081E7C74
|
||||
_081457F4: .4byte gUnknown_0840B5A0
|
||||
_081457F8: .4byte 0x0000ffff
|
||||
@ -672819,7 +672819,7 @@ _08147B70:
|
||||
bl sub_800D334
|
||||
b _08147C40
|
||||
.align 2
|
||||
_08147BAC: .4byte gUnknown_081E8354
|
||||
_08147BAC: .4byte gMonFrontPicTable
|
||||
_08147BB0: .4byte gUnknown_081E7C74
|
||||
_08147BB4: .4byte gUnknown_081FAF4C
|
||||
_08147BB8:
|
||||
|
78
data/data2.s
78
data/data2.s
@ -374,26 +374,23 @@ gUnknown_081E7C64: ; 81E7C64
|
||||
gUnknown_081E7C74: ; 81E7C74
|
||||
.incbin "baserom.gba", 0x001e7c74, 0x6e0
|
||||
|
||||
gUnknown_081E8354: ; 81E8354
|
||||
.incbin "baserom.gba", 0x001e8354, 0xaf0
|
||||
|
||||
gUnknown_081E8E44: ; 81E8E44
|
||||
.incbin "baserom.gba", 0x001e8e44, 0x2d0
|
||||
; 81E8354
|
||||
.include "data/graphics/pokemon/front_pic_table.s"
|
||||
|
||||
gUnknown_081E9114: ; 81E9114
|
||||
.incbin "baserom.gba", 0x001e9114, 0x6e0
|
||||
|
||||
gUnknown_081E97F4: ; 81E97F4
|
||||
.incbin "baserom.gba", 0x001e97f4, 0xdc0
|
||||
; 81E97F4
|
||||
.include "data/graphics/pokemon/back_pic_table.s"
|
||||
|
||||
gUnknown_081EA5B4: ; 81EA5B4
|
||||
.incbin "baserom.gba", 0x001ea5b4, 0xaf0
|
||||
; 81EA5B4
|
||||
.include "data/graphics/pokemon/palette_table.s"
|
||||
|
||||
gUnknown_081EB0A4: ; 81EB0A4
|
||||
.incbin "baserom.gba", 0x001eb0a4, 0x2d0
|
||||
; 81EB374
|
||||
.include "data/graphics/pokemon/shiny_palette_table.s"
|
||||
|
||||
gUnknown_081EB374: ; 81EB374
|
||||
.incbin "baserom.gba", 0x001eb374, 0xf30
|
||||
; 81EC134
|
||||
.incbin "baserom.gba", 0x001EC134, 0x170
|
||||
|
||||
gUnknown_081EC2A4: ; 81EC2A4
|
||||
.incbin "baserom.gba", 0x001ec2a4, 0x14c
|
||||
@ -2490,8 +2487,8 @@ gUnknown_083B1858: ; 83B1858
|
||||
gUnknown_083B4EC4: ; 83B4EC4
|
||||
.incbin "baserom.gba", 0x003b4ec4, 0x20
|
||||
|
||||
gUnknown_083B4EE4: ; 83B4EE4
|
||||
.incbin "baserom.gba", 0x003b4ee4, 0x674
|
||||
; 83B4EE4
|
||||
.include "data/graphics/pokemon/footprint_table.s"
|
||||
|
||||
gUnknown_083B5558: ; 83B5558
|
||||
.incbin "baserom.gba", 0x003b5558, 0x2c
|
||||
@ -2700,14 +2697,14 @@ gUnknown_083BBC88: ; 83BBC88
|
||||
gUnknown_083BBCA0: ; 83BBCA0
|
||||
.incbin "baserom.gba", 0x003bbca0, 0x80
|
||||
|
||||
gUnknown_083BBD20: ; 83BBD20
|
||||
.incbin "baserom.gba", 0x003bbd20, 0x6e0
|
||||
; 83BBD20
|
||||
.include "data/graphics/pokemon/icon_table.s"
|
||||
|
||||
gUnknown_083BC400: ; 83BC400
|
||||
.incbin "baserom.gba", 0x003bc400, 0x1b8
|
||||
; 83BC400
|
||||
.include "data/graphics/pokemon/icon_palette_indices.s"
|
||||
|
||||
gUnknown_083BC5B8: ; 83BC5B8
|
||||
.incbin "baserom.gba", 0x003bc5b8, 0x30
|
||||
; 83BC5B8
|
||||
.include "data/graphics/pokemon/icon_palette_table.s"
|
||||
|
||||
gUnknown_083BC5E8: ; 83BC5E8
|
||||
.incbin "baserom.gba", 0x003bc5e8, 0x44
|
||||
@ -7858,7 +7855,13 @@ gUnknown_08D004E0: ; 8D004E0
|
||||
.incbin "baserom.gba", 0x00d004e0, 0x44
|
||||
|
||||
gUnknown_08D00524: ; 8D00524
|
||||
.incbin "baserom.gba", 0x00d00524, 0x2bac
|
||||
.incbin "baserom.gba", 0x00d00524, 0x1000
|
||||
|
||||
; 8D01524
|
||||
.include "data/graphics/pokemon/circled_question_mark_graphics.s"
|
||||
|
||||
; 8D019E4
|
||||
.incbin "baserom.gba", 0xd019e4, 0x16EC
|
||||
|
||||
gUnknown_08D030D0: ; 8D030D0
|
||||
.incbin "baserom.gba", 0x00d030d0, 0x6b78
|
||||
@ -8002,7 +8005,22 @@ gUnknown_08D2EDFC: ; 8D2EDFC
|
||||
.incbin "baserom.gba", 0x00d2edfc, 0x4c
|
||||
|
||||
gUnknown_08D2EE48: ; 8D2EE48
|
||||
.incbin "baserom.gba", 0x00d2ee48, 0x12ebc8
|
||||
.incbin "baserom.gba", 0x00d2ee48, 0xF44
|
||||
|
||||
; 8D2FD8C
|
||||
.include "data/graphics/pokemon/graphics.s"
|
||||
|
||||
.incbin "baserom.gba", 0xe48d38, 0x148b8
|
||||
|
||||
.align 2
|
||||
|
||||
gMonIcon_QuestionMark: ; 8E5D5F0
|
||||
.incbin "graphics/pokemon/question_mark/icon.4bpp"
|
||||
|
||||
.align 2
|
||||
|
||||
gMonFootprint_QuestionMark: ; 8E5D9F0
|
||||
.incbin "graphics/pokemon/question_mark/footprint.1bpp"
|
||||
|
||||
gUnknown_08E5DA10: ; 8E5DA10
|
||||
.incbin "baserom.gba", 0x00e5da10, 0xe8
|
||||
@ -8113,7 +8131,13 @@ gUnknown_08E6978C: ; 8E6978C
|
||||
.incbin "baserom.gba", 0x00e6978c, 0xf78
|
||||
|
||||
gUnknown_08E6A704: ; 8E6A704
|
||||
.incbin "baserom.gba", 0x00e6a704, 0x19fc
|
||||
.incbin "baserom.gba", 0x00e6a704, 0xD8
|
||||
|
||||
gMonIcon_Egg: ; 8E6A7DC
|
||||
.incbin "graphics/pokemon/egg/icon.4bpp"
|
||||
|
||||
; 8E6ABDC
|
||||
.incbin "baserom.gba", 0x00E6ABDC, 0x1524
|
||||
|
||||
gUnknown_08E6C100: ; 8E6C100
|
||||
.incbin "baserom.gba", 0x00e6c100, 0x820
|
||||
@ -8451,8 +8475,10 @@ gUnknown_08E964B8: ; 8E964B8
|
||||
gUnknown_08E966B8: ; 8E966B8
|
||||
.incbin "baserom.gba", 0x00e966b8, 0x20
|
||||
|
||||
gUnknown_08E966D8: ; 8E966D8
|
||||
.incbin "baserom.gba", 0x00e966d8, 0x60
|
||||
gMonIconPalettes: ; 8E966D8
|
||||
.incbin "graphics/pokemon_icon_palettes/0.gbapal"
|
||||
.incbin "graphics/pokemon_icon_palettes/1.gbapal"
|
||||
.incbin "graphics/pokemon_icon_palettes/2.gbapal"
|
||||
|
||||
gUnknown_08E96738: ; 8E96738
|
||||
.incbin "baserom.gba", 0x00e96738, 0x150
|
||||
|
443
data/graphics/pokemon/back_pic_table.s
Normal file
443
data/graphics/pokemon/back_pic_table.s
Normal file
@ -0,0 +1,443 @@
|
||||
.align 2
|
||||
|
||||
gMonBackPicTable: ; 81E97F4
|
||||
obj_tiles gMonBackPic_CircledQuestionMark, 0x800, 0
|
||||
obj_tiles gMonBackPic_Bulbasaur, 0x800, 1
|
||||
obj_tiles gMonBackPic_Ivysaur, 0x800, 2
|
||||
obj_tiles gMonBackPic_Venusaur, 0x800, 3
|
||||
obj_tiles gMonBackPic_Charmander, 0x800, 4
|
||||
obj_tiles gMonBackPic_Charmeleon, 0x800, 5
|
||||
obj_tiles gMonBackPic_Charizard, 0x800, 6
|
||||
obj_tiles gMonBackPic_Squirtle, 0x800, 7
|
||||
obj_tiles gMonBackPic_Wartortle, 0x800, 8
|
||||
obj_tiles gMonBackPic_Blastoise, 0x800, 9
|
||||
obj_tiles gMonBackPic_Caterpie, 0x800, 10
|
||||
obj_tiles gMonBackPic_Metapod, 0x800, 11
|
||||
obj_tiles gMonBackPic_Butterfree, 0x800, 12
|
||||
obj_tiles gMonBackPic_Weedle, 0x800, 13
|
||||
obj_tiles gMonBackPic_Kakuna, 0x800, 14
|
||||
obj_tiles gMonBackPic_Beedrill, 0x800, 15
|
||||
obj_tiles gMonBackPic_Pidgey, 0x800, 16
|
||||
obj_tiles gMonBackPic_Pidgeotto, 0x800, 17
|
||||
obj_tiles gMonBackPic_Pidgeot, 0x800, 18
|
||||
obj_tiles gMonBackPic_Rattata, 0x800, 19
|
||||
obj_tiles gMonBackPic_Raticate, 0x800, 20
|
||||
obj_tiles gMonBackPic_Spearow, 0x800, 21
|
||||
obj_tiles gMonBackPic_Fearow, 0x800, 22
|
||||
obj_tiles gMonBackPic_Ekans, 0x800, 23
|
||||
obj_tiles gMonBackPic_Arbok, 0x800, 24
|
||||
obj_tiles gMonBackPic_Pikachu, 0x800, 25
|
||||
obj_tiles gMonBackPic_Raichu, 0x800, 26
|
||||
obj_tiles gMonBackPic_Sandshrew, 0x800, 27
|
||||
obj_tiles gMonBackPic_Sandslash, 0x800, 28
|
||||
obj_tiles gMonBackPic_NidoranF, 0x800, 29
|
||||
obj_tiles gMonBackPic_Nidorina, 0x800, 30
|
||||
obj_tiles gMonBackPic_Nidoqueen, 0x800, 31
|
||||
obj_tiles gMonBackPic_NidoranM, 0x800, 32
|
||||
obj_tiles gMonBackPic_Nidorino, 0x800, 33
|
||||
obj_tiles gMonBackPic_Nidoking, 0x800, 34
|
||||
obj_tiles gMonBackPic_Clefairy, 0x800, 35
|
||||
obj_tiles gMonBackPic_Clefable, 0x800, 36
|
||||
obj_tiles gMonBackPic_Vulpix, 0x800, 37
|
||||
obj_tiles gMonBackPic_Ninetales, 0x800, 38
|
||||
obj_tiles gMonBackPic_Jigglypuff, 0x800, 39
|
||||
obj_tiles gMonBackPic_Wigglytuff, 0x800, 40
|
||||
obj_tiles gMonBackPic_Zubat, 0x800, 41
|
||||
obj_tiles gMonBackPic_Golbat, 0x800, 42
|
||||
obj_tiles gMonBackPic_Oddish, 0x800, 43
|
||||
obj_tiles gMonBackPic_Gloom, 0x800, 44
|
||||
obj_tiles gMonBackPic_Vileplume, 0x800, 45
|
||||
obj_tiles gMonBackPic_Paras, 0x800, 46
|
||||
obj_tiles gMonBackPic_Parasect, 0x800, 47
|
||||
obj_tiles gMonBackPic_Venonat, 0x800, 48
|
||||
obj_tiles gMonBackPic_Venomoth, 0x800, 49
|
||||
obj_tiles gMonBackPic_Diglett, 0x800, 50
|
||||
obj_tiles gMonBackPic_Dugtrio, 0x800, 51
|
||||
obj_tiles gMonBackPic_Meowth, 0x800, 52
|
||||
obj_tiles gMonBackPic_Persian, 0x800, 53
|
||||
obj_tiles gMonBackPic_Psyduck, 0x800, 54
|
||||
obj_tiles gMonBackPic_Golduck, 0x800, 55
|
||||
obj_tiles gMonBackPic_Mankey, 0x800, 56
|
||||
obj_tiles gMonBackPic_Primeape, 0x800, 57
|
||||
obj_tiles gMonBackPic_Growlithe, 0x800, 58
|
||||
obj_tiles gMonBackPic_Arcanine, 0x800, 59
|
||||
obj_tiles gMonBackPic_Poliwag, 0x800, 60
|
||||
obj_tiles gMonBackPic_Poliwhirl, 0x800, 61
|
||||
obj_tiles gMonBackPic_Poliwrath, 0x800, 62
|
||||
obj_tiles gMonBackPic_Abra, 0x800, 63
|
||||
obj_tiles gMonBackPic_Kadabra, 0x800, 64
|
||||
obj_tiles gMonBackPic_Alakazam, 0x800, 65
|
||||
obj_tiles gMonBackPic_Machop, 0x800, 66
|
||||
obj_tiles gMonBackPic_Machoke, 0x800, 67
|
||||
obj_tiles gMonBackPic_Machamp, 0x800, 68
|
||||
obj_tiles gMonBackPic_Bellsprout, 0x800, 69
|
||||
obj_tiles gMonBackPic_Weepinbell, 0x800, 70
|
||||
obj_tiles gMonBackPic_Victreebel, 0x800, 71
|
||||
obj_tiles gMonBackPic_Tentacool, 0x800, 72
|
||||
obj_tiles gMonBackPic_Tentacruel, 0x800, 73
|
||||
obj_tiles gMonBackPic_Geodude, 0x800, 74
|
||||
obj_tiles gMonBackPic_Graveler, 0x800, 75
|
||||
obj_tiles gMonBackPic_Golem, 0x800, 76
|
||||
obj_tiles gMonBackPic_Ponyta, 0x800, 77
|
||||
obj_tiles gMonBackPic_Rapidash, 0x800, 78
|
||||
obj_tiles gMonBackPic_Slowpoke, 0x800, 79
|
||||
obj_tiles gMonBackPic_Slowbro, 0x800, 80
|
||||
obj_tiles gMonBackPic_Magnemite, 0x800, 81
|
||||
obj_tiles gMonBackPic_Magneton, 0x800, 82
|
||||
obj_tiles gMonBackPic_Farfetchd, 0x800, 83
|
||||
obj_tiles gMonBackPic_Doduo, 0x800, 84
|
||||
obj_tiles gMonBackPic_Dodrio, 0x800, 85
|
||||
obj_tiles gMonBackPic_Seel, 0x800, 86
|
||||
obj_tiles gMonBackPic_Dewgong, 0x800, 87
|
||||
obj_tiles gMonBackPic_Grimer, 0x800, 88
|
||||
obj_tiles gMonBackPic_Muk, 0x800, 89
|
||||
obj_tiles gMonBackPic_Shellder, 0x800, 90
|
||||
obj_tiles gMonBackPic_Cloyster, 0x800, 91
|
||||
obj_tiles gMonBackPic_Gastly, 0x800, 92
|
||||
obj_tiles gMonBackPic_Haunter, 0x800, 93
|
||||
obj_tiles gMonBackPic_Gengar, 0x800, 94
|
||||
obj_tiles gMonBackPic_Onix, 0x800, 95
|
||||
obj_tiles gMonBackPic_Drowzee, 0x800, 96
|
||||
obj_tiles gMonBackPic_Hypno, 0x800, 97
|
||||
obj_tiles gMonBackPic_Krabby, 0x800, 98
|
||||
obj_tiles gMonBackPic_Kingler, 0x800, 99
|
||||
obj_tiles gMonBackPic_Voltorb, 0x800, 100
|
||||
obj_tiles gMonBackPic_Electrode, 0x800, 101
|
||||
obj_tiles gMonBackPic_Exeggcute, 0x800, 102
|
||||
obj_tiles gMonBackPic_Exeggutor, 0x800, 103
|
||||
obj_tiles gMonBackPic_Cubone, 0x800, 104
|
||||
obj_tiles gMonBackPic_Marowak, 0x800, 105
|
||||
obj_tiles gMonBackPic_Hitmonlee, 0x800, 106
|
||||
obj_tiles gMonBackPic_Hitmonchan, 0x800, 107
|
||||
obj_tiles gMonBackPic_Lickitung, 0x800, 108
|
||||
obj_tiles gMonBackPic_Koffing, 0x800, 109
|
||||
obj_tiles gMonBackPic_Weezing, 0x800, 110
|
||||
obj_tiles gMonBackPic_Rhyhorn, 0x800, 111
|
||||
obj_tiles gMonBackPic_Rhydon, 0x800, 112
|
||||
obj_tiles gMonBackPic_Chansey, 0x800, 113
|
||||
obj_tiles gMonBackPic_Tangela, 0x800, 114
|
||||
obj_tiles gMonBackPic_Kangaskhan, 0x800, 115
|
||||
obj_tiles gMonBackPic_Horsea, 0x800, 116
|
||||
obj_tiles gMonBackPic_Seadra, 0x800, 117
|
||||
obj_tiles gMonBackPic_Goldeen, 0x800, 118
|
||||
obj_tiles gMonBackPic_Seaking, 0x800, 119
|
||||
obj_tiles gMonBackPic_Staryu, 0x800, 120
|
||||
obj_tiles gMonBackPic_Starmie, 0x800, 121
|
||||
obj_tiles gMonBackPic_Mrmime, 0x800, 122
|
||||
obj_tiles gMonBackPic_Scyther, 0x800, 123
|
||||
obj_tiles gMonBackPic_Jynx, 0x800, 124
|
||||
obj_tiles gMonBackPic_Electabuzz, 0x800, 125
|
||||
obj_tiles gMonBackPic_Magmar, 0x800, 126
|
||||
obj_tiles gMonBackPic_Pinsir, 0x800, 127
|
||||
obj_tiles gMonBackPic_Tauros, 0x800, 128
|
||||
obj_tiles gMonBackPic_Magikarp, 0x800, 129
|
||||
obj_tiles gMonBackPic_Gyarados, 0x800, 130
|
||||
obj_tiles gMonBackPic_Lapras, 0x800, 131
|
||||
obj_tiles gMonBackPic_Ditto, 0x800, 132
|
||||
obj_tiles gMonBackPic_Eevee, 0x800, 133
|
||||
obj_tiles gMonBackPic_Vaporeon, 0x800, 134
|
||||
obj_tiles gMonBackPic_Jolteon, 0x800, 135
|
||||
obj_tiles gMonBackPic_Flareon, 0x800, 136
|
||||
obj_tiles gMonBackPic_Porygon, 0x800, 137
|
||||
obj_tiles gMonBackPic_Omanyte, 0x800, 138
|
||||
obj_tiles gMonBackPic_Omastar, 0x800, 139
|
||||
obj_tiles gMonBackPic_Kabuto, 0x800, 140
|
||||
obj_tiles gMonBackPic_Kabutops, 0x800, 141
|
||||
obj_tiles gMonBackPic_Aerodactyl, 0x800, 142
|
||||
obj_tiles gMonBackPic_Snorlax, 0x800, 143
|
||||
obj_tiles gMonBackPic_Articuno, 0x800, 144
|
||||
obj_tiles gMonBackPic_Zapdos, 0x800, 145
|
||||
obj_tiles gMonBackPic_Moltres, 0x800, 146
|
||||
obj_tiles gMonBackPic_Dratini, 0x800, 147
|
||||
obj_tiles gMonBackPic_Dragonair, 0x800, 148
|
||||
obj_tiles gMonBackPic_Dragonite, 0x800, 149
|
||||
obj_tiles gMonBackPic_Mewtwo, 0x800, 150
|
||||
obj_tiles gMonBackPic_Mew, 0x800, 151
|
||||
obj_tiles gMonBackPic_Chikorita, 0x800, 152
|
||||
obj_tiles gMonBackPic_Bayleef, 0x800, 153
|
||||
obj_tiles gMonBackPic_Meganium, 0x800, 154
|
||||
obj_tiles gMonBackPic_Cyndaquil, 0x800, 155
|
||||
obj_tiles gMonBackPic_Quilava, 0x800, 156
|
||||
obj_tiles gMonBackPic_Typhlosion, 0x800, 157
|
||||
obj_tiles gMonBackPic_Totodile, 0x800, 158
|
||||
obj_tiles gMonBackPic_Croconaw, 0x800, 159
|
||||
obj_tiles gMonBackPic_Feraligatr, 0x800, 160
|
||||
obj_tiles gMonBackPic_Sentret, 0x800, 161
|
||||
obj_tiles gMonBackPic_Furret, 0x800, 162
|
||||
obj_tiles gMonBackPic_Hoothoot, 0x800, 163
|
||||
obj_tiles gMonBackPic_Noctowl, 0x800, 164
|
||||
obj_tiles gMonBackPic_Ledyba, 0x800, 165
|
||||
obj_tiles gMonBackPic_Ledian, 0x800, 166
|
||||
obj_tiles gMonBackPic_Spinarak, 0x800, 167
|
||||
obj_tiles gMonBackPic_Ariados, 0x800, 168
|
||||
obj_tiles gMonBackPic_Crobat, 0x800, 169
|
||||
obj_tiles gMonBackPic_Chinchou, 0x800, 170
|
||||
obj_tiles gMonBackPic_Lanturn, 0x800, 171
|
||||
obj_tiles gMonBackPic_Pichu, 0x800, 172
|
||||
obj_tiles gMonBackPic_Cleffa, 0x800, 173
|
||||
obj_tiles gMonBackPic_Igglybuff, 0x800, 174
|
||||
obj_tiles gMonBackPic_Togepi, 0x800, 175
|
||||
obj_tiles gMonBackPic_Togetic, 0x800, 176
|
||||
obj_tiles gMonBackPic_Natu, 0x800, 177
|
||||
obj_tiles gMonBackPic_Xatu, 0x800, 178
|
||||
obj_tiles gMonBackPic_Mareep, 0x800, 179
|
||||
obj_tiles gMonBackPic_Flaaffy, 0x800, 180
|
||||
obj_tiles gMonBackPic_Ampharos, 0x800, 181
|
||||
obj_tiles gMonBackPic_Bellossom, 0x800, 182
|
||||
obj_tiles gMonBackPic_Marill, 0x800, 183
|
||||
obj_tiles gMonBackPic_Azumarill, 0x800, 184
|
||||
obj_tiles gMonBackPic_Sudowoodo, 0x800, 185
|
||||
obj_tiles gMonBackPic_Politoed, 0x800, 186
|
||||
obj_tiles gMonBackPic_Hoppip, 0x800, 187
|
||||
obj_tiles gMonBackPic_Skiploom, 0x800, 188
|
||||
obj_tiles gMonBackPic_Jumpluff, 0x800, 189
|
||||
obj_tiles gMonBackPic_Aipom, 0x800, 190
|
||||
obj_tiles gMonBackPic_Sunkern, 0x800, 191
|
||||
obj_tiles gMonBackPic_Sunflora, 0x800, 192
|
||||
obj_tiles gMonBackPic_Yanma, 0x800, 193
|
||||
obj_tiles gMonBackPic_Wooper, 0x800, 194
|
||||
obj_tiles gMonBackPic_Quagsire, 0x800, 195
|
||||
obj_tiles gMonBackPic_Espeon, 0x800, 196
|
||||
obj_tiles gMonBackPic_Umbreon, 0x800, 197
|
||||
obj_tiles gMonBackPic_Murkrow, 0x800, 198
|
||||
obj_tiles gMonBackPic_Slowking, 0x800, 199
|
||||
obj_tiles gMonBackPic_Misdreavus, 0x800, 200
|
||||
obj_tiles gMonBackPic_UnownA, 0x800, 201
|
||||
obj_tiles gMonBackPic_Wobbuffet, 0x800, 202
|
||||
obj_tiles gMonBackPic_Girafarig, 0x800, 203
|
||||
obj_tiles gMonBackPic_Pineco, 0x800, 204
|
||||
obj_tiles gMonBackPic_Forretress, 0x800, 205
|
||||
obj_tiles gMonBackPic_Dunsparce, 0x800, 206
|
||||
obj_tiles gMonBackPic_Gligar, 0x800, 207
|
||||
obj_tiles gMonBackPic_Steelix, 0x800, 208
|
||||
obj_tiles gMonBackPic_Snubbull, 0x800, 209
|
||||
obj_tiles gMonBackPic_Granbull, 0x800, 210
|
||||
obj_tiles gMonBackPic_Qwilfish, 0x800, 211
|
||||
obj_tiles gMonBackPic_Scizor, 0x800, 212
|
||||
obj_tiles gMonBackPic_Shuckle, 0x800, 213
|
||||
obj_tiles gMonBackPic_Heracross, 0x800, 214
|
||||
obj_tiles gMonBackPic_Sneasel, 0x800, 215
|
||||
obj_tiles gMonBackPic_Teddiursa, 0x800, 216
|
||||
obj_tiles gMonBackPic_Ursaring, 0x800, 217
|
||||
obj_tiles gMonBackPic_Slugma, 0x800, 218
|
||||
obj_tiles gMonBackPic_Magcargo, 0x800, 219
|
||||
obj_tiles gMonBackPic_Swinub, 0x800, 220
|
||||
obj_tiles gMonBackPic_Piloswine, 0x800, 221
|
||||
obj_tiles gMonBackPic_Corsola, 0x800, 222
|
||||
obj_tiles gMonBackPic_Remoraid, 0x800, 223
|
||||
obj_tiles gMonBackPic_Octillery, 0x800, 224
|
||||
obj_tiles gMonBackPic_Delibird, 0x800, 225
|
||||
obj_tiles gMonBackPic_Mantine, 0x800, 226
|
||||
obj_tiles gMonBackPic_Skarmory, 0x800, 227
|
||||
obj_tiles gMonBackPic_Houndour, 0x800, 228
|
||||
obj_tiles gMonBackPic_Houndoom, 0x800, 229
|
||||
obj_tiles gMonBackPic_Kingdra, 0x800, 230
|
||||
obj_tiles gMonBackPic_Phanpy, 0x800, 231
|
||||
obj_tiles gMonBackPic_Donphan, 0x800, 232
|
||||
obj_tiles gMonBackPic_Porygon2, 0x800, 233
|
||||
obj_tiles gMonBackPic_Stantler, 0x800, 234
|
||||
obj_tiles gMonBackPic_Smeargle, 0x800, 235
|
||||
obj_tiles gMonBackPic_Tyrogue, 0x800, 236
|
||||
obj_tiles gMonBackPic_Hitmontop, 0x800, 237
|
||||
obj_tiles gMonBackPic_Smoochum, 0x800, 238
|
||||
obj_tiles gMonBackPic_Elekid, 0x800, 239
|
||||
obj_tiles gMonBackPic_Magby, 0x800, 240
|
||||
obj_tiles gMonBackPic_Miltank, 0x800, 241
|
||||
obj_tiles gMonBackPic_Blissey, 0x800, 242
|
||||
obj_tiles gMonBackPic_Raikou, 0x800, 243
|
||||
obj_tiles gMonBackPic_Entei, 0x800, 244
|
||||
obj_tiles gMonBackPic_Suicune, 0x800, 245
|
||||
obj_tiles gMonBackPic_Larvitar, 0x800, 246
|
||||
obj_tiles gMonBackPic_Pupitar, 0x800, 247
|
||||
obj_tiles gMonBackPic_Tyranitar, 0x800, 248
|
||||
obj_tiles gMonBackPic_Lugia, 0x800, 249
|
||||
obj_tiles gMonBackPic_HoOh, 0x800, 250
|
||||
obj_tiles gMonBackPic_Celebi, 0x800, 251
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 252
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 253
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 254
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 255
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 256
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 257
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 258
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 259
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 260
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 261
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 262
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 263
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 264
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 265
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 266
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 267
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 268
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 269
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 270
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 271
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 272
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 273
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 274
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 275
|
||||
obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 276
|
||||
obj_tiles gMonBackPic_Treecko, 0x800, 277
|
||||
obj_tiles gMonBackPic_Grovyle, 0x800, 278
|
||||
obj_tiles gMonBackPic_Sceptile, 0x800, 279
|
||||
obj_tiles gMonBackPic_Torchic, 0x800, 280
|
||||
obj_tiles gMonBackPic_Combusken, 0x800, 281
|
||||
obj_tiles gMonBackPic_Blaziken, 0x800, 282
|
||||
obj_tiles gMonBackPic_Mudkip, 0x800, 283
|
||||
obj_tiles gMonBackPic_Marshtomp, 0x800, 284
|
||||
obj_tiles gMonBackPic_Swampert, 0x800, 285
|
||||
obj_tiles gMonBackPic_Poochyena, 0x800, 286
|
||||
obj_tiles gMonBackPic_Mightyena, 0x800, 287
|
||||
obj_tiles gMonBackPic_Zigzagoon, 0x800, 288
|
||||
obj_tiles gMonBackPic_Linoone, 0x800, 289
|
||||
obj_tiles gMonBackPic_Wurmple, 0x800, 290
|
||||
obj_tiles gMonBackPic_Silcoon, 0x800, 291
|
||||
obj_tiles gMonBackPic_Beautifly, 0x800, 292
|
||||
obj_tiles gMonBackPic_Cascoon, 0x800, 293
|
||||
obj_tiles gMonBackPic_Dustox, 0x800, 294
|
||||
obj_tiles gMonBackPic_Lotad, 0x800, 295
|
||||
obj_tiles gMonBackPic_Lombre, 0x800, 296
|
||||
obj_tiles gMonBackPic_Ludicolo, 0x800, 297
|
||||
obj_tiles gMonBackPic_Seedot, 0x800, 298
|
||||
obj_tiles gMonBackPic_Nuzleaf, 0x800, 299
|
||||
obj_tiles gMonBackPic_Shiftry, 0x800, 300
|
||||
obj_tiles gMonBackPic_Nincada, 0x800, 301
|
||||
obj_tiles gMonBackPic_Ninjask, 0x800, 302
|
||||
obj_tiles gMonBackPic_Shedinja, 0x800, 303
|
||||
obj_tiles gMonBackPic_Taillow, 0x800, 304
|
||||
obj_tiles gMonBackPic_Swellow, 0x800, 305
|
||||
obj_tiles gMonBackPic_Shroomish, 0x800, 306
|
||||
obj_tiles gMonBackPic_Breloom, 0x800, 307
|
||||
obj_tiles gMonBackPic_Spinda, 0x800, 308
|
||||
obj_tiles gMonBackPic_Wingull, 0x800, 309
|
||||
obj_tiles gMonBackPic_Pelipper, 0x800, 310
|
||||
obj_tiles gMonBackPic_Surskit, 0x800, 311
|
||||
obj_tiles gMonBackPic_Masquerain, 0x800, 312
|
||||
obj_tiles gMonBackPic_Wailmer, 0x800, 313
|
||||
obj_tiles gMonBackPic_Wailord, 0x800, 314
|
||||
obj_tiles gMonBackPic_Skitty, 0x800, 315
|
||||
obj_tiles gMonBackPic_Delcatty, 0x800, 316
|
||||
obj_tiles gMonBackPic_Kecleon, 0x800, 317
|
||||
obj_tiles gMonBackPic_Baltoy, 0x800, 318
|
||||
obj_tiles gMonBackPic_Claydol, 0x800, 319
|
||||
obj_tiles gMonBackPic_Nosepass, 0x800, 320
|
||||
obj_tiles gMonBackPic_Torkoal, 0x800, 321
|
||||
obj_tiles gMonBackPic_Sableye, 0x800, 322
|
||||
obj_tiles gMonBackPic_Barboach, 0x800, 323
|
||||
obj_tiles gMonBackPic_Whiscash, 0x800, 324
|
||||
obj_tiles gMonBackPic_Luvdisc, 0x800, 325
|
||||
obj_tiles gMonBackPic_Corphish, 0x800, 326
|
||||
obj_tiles gMonBackPic_Crawdaunt, 0x800, 327
|
||||
obj_tiles gMonBackPic_Feebas, 0x800, 328
|
||||
obj_tiles gMonBackPic_Milotic, 0x800, 329
|
||||
obj_tiles gMonBackPic_Carvanha, 0x800, 330
|
||||
obj_tiles gMonBackPic_Sharpedo, 0x800, 331
|
||||
obj_tiles gMonBackPic_Trapinch, 0x800, 332
|
||||
obj_tiles gMonBackPic_Vibrava, 0x800, 333
|
||||
obj_tiles gMonBackPic_Flygon, 0x800, 334
|
||||
obj_tiles gMonBackPic_Makuhita, 0x800, 335
|
||||
obj_tiles gMonBackPic_Hariyama, 0x800, 336
|
||||
obj_tiles gMonBackPic_Electrike, 0x800, 337
|
||||
obj_tiles gMonBackPic_Manectric, 0x800, 338
|
||||
obj_tiles gMonBackPic_Numel, 0x800, 339
|
||||
obj_tiles gMonBackPic_Camerupt, 0x800, 340
|
||||
obj_tiles gMonBackPic_Spheal, 0x800, 341
|
||||
obj_tiles gMonBackPic_Sealeo, 0x800, 342
|
||||
obj_tiles gMonBackPic_Walrein, 0x800, 343
|
||||
obj_tiles gMonBackPic_Cacnea, 0x800, 344
|
||||
obj_tiles gMonBackPic_Cacturne, 0x800, 345
|
||||
obj_tiles gMonBackPic_Snorunt, 0x800, 346
|
||||
obj_tiles gMonBackPic_Glalie, 0x800, 347
|
||||
obj_tiles gMonBackPic_Lunatone, 0x800, 348
|
||||
obj_tiles gMonBackPic_Solrock, 0x800, 349
|
||||
obj_tiles gMonBackPic_Azurill, 0x800, 350
|
||||
obj_tiles gMonBackPic_Spoink, 0x800, 351
|
||||
obj_tiles gMonBackPic_Grumpig, 0x800, 352
|
||||
obj_tiles gMonBackPic_Plusle, 0x800, 353
|
||||
obj_tiles gMonBackPic_Minun, 0x800, 354
|
||||
obj_tiles gMonBackPic_Mawile, 0x800, 355
|
||||
obj_tiles gMonBackPic_Meditite, 0x800, 356
|
||||
obj_tiles gMonBackPic_Medicham, 0x800, 357
|
||||
obj_tiles gMonBackPic_Swablu, 0x800, 358
|
||||
obj_tiles gMonBackPic_Altaria, 0x800, 359
|
||||
obj_tiles gMonBackPic_Wynaut, 0x800, 360
|
||||
obj_tiles gMonBackPic_Duskull, 0x800, 361
|
||||
obj_tiles gMonBackPic_Dusclops, 0x800, 362
|
||||
obj_tiles gMonBackPic_Roselia, 0x800, 363
|
||||
obj_tiles gMonBackPic_Slakoth, 0x800, 364
|
||||
obj_tiles gMonBackPic_Vigoroth, 0x800, 365
|
||||
obj_tiles gMonBackPic_Slaking, 0x800, 366
|
||||
obj_tiles gMonBackPic_Gulpin, 0x800, 367
|
||||
obj_tiles gMonBackPic_Swalot, 0x800, 368
|
||||
obj_tiles gMonBackPic_Tropius, 0x800, 369
|
||||
obj_tiles gMonBackPic_Whismur, 0x800, 370
|
||||
obj_tiles gMonBackPic_Loudred, 0x800, 371
|
||||
obj_tiles gMonBackPic_Exploud, 0x800, 372
|
||||
obj_tiles gMonBackPic_Clamperl, 0x800, 373
|
||||
obj_tiles gMonBackPic_Huntail, 0x800, 374
|
||||
obj_tiles gMonBackPic_Gorebyss, 0x800, 375
|
||||
obj_tiles gMonBackPic_Absol, 0x800, 376
|
||||
obj_tiles gMonBackPic_Shuppet, 0x800, 377
|
||||
obj_tiles gMonBackPic_Banette, 0x800, 378
|
||||
obj_tiles gMonBackPic_Seviper, 0x800, 379
|
||||
obj_tiles gMonBackPic_Zangoose, 0x800, 380
|
||||
obj_tiles gMonBackPic_Relicanth, 0x800, 381
|
||||
obj_tiles gMonBackPic_Aron, 0x800, 382
|
||||
obj_tiles gMonBackPic_Lairon, 0x800, 383
|
||||
obj_tiles gMonBackPic_Aggron, 0x800, 384
|
||||
obj_tiles gMonBackPic_Castform, 0x800, 385
|
||||
obj_tiles gMonBackPic_Volbeat, 0x800, 386
|
||||
obj_tiles gMonBackPic_Illumise, 0x800, 387
|
||||
obj_tiles gMonBackPic_Lileep, 0x800, 388
|
||||
obj_tiles gMonBackPic_Cradily, 0x800, 389
|
||||
obj_tiles gMonBackPic_Anorith, 0x800, 390
|
||||
obj_tiles gMonBackPic_Armaldo, 0x800, 391
|
||||
obj_tiles gMonBackPic_Ralts, 0x800, 392
|
||||
obj_tiles gMonBackPic_Kirlia, 0x800, 393
|
||||
obj_tiles gMonBackPic_Gardevoir, 0x800, 394
|
||||
obj_tiles gMonBackPic_Bagon, 0x800, 395
|
||||
obj_tiles gMonBackPic_Shelgon, 0x800, 396
|
||||
obj_tiles gMonBackPic_Salamence, 0x800, 397
|
||||
obj_tiles gMonBackPic_Beldum, 0x800, 398
|
||||
obj_tiles gMonBackPic_Metang, 0x800, 399
|
||||
obj_tiles gMonBackPic_Metagross, 0x800, 400
|
||||
obj_tiles gMonBackPic_Regirock, 0x800, 401
|
||||
obj_tiles gMonBackPic_Regice, 0x800, 402
|
||||
obj_tiles gMonBackPic_Registeel, 0x800, 403
|
||||
obj_tiles gMonBackPic_Kyogre, 0x800, 404
|
||||
obj_tiles gMonBackPic_Groudon, 0x800, 405
|
||||
obj_tiles gMonBackPic_Rayquaza, 0x800, 406
|
||||
obj_tiles gMonBackPic_Latias, 0x800, 407
|
||||
obj_tiles gMonBackPic_Latios, 0x800, 408
|
||||
obj_tiles gMonBackPic_Jirachi, 0x800, 409
|
||||
obj_tiles gMonBackPic_Deoxys, 0x800, 410
|
||||
obj_tiles gMonBackPic_Chimecho, 0x800, 411
|
||||
obj_tiles gMonPic_Egg, 0x800, 412
|
||||
obj_tiles gMonBackPic_UnownB, 0x800, 413
|
||||
obj_tiles gMonBackPic_UnownC, 0x800, 414
|
||||
obj_tiles gMonBackPic_UnownD, 0x800, 415
|
||||
obj_tiles gMonBackPic_UnownE, 0x800, 416
|
||||
obj_tiles gMonBackPic_UnownF, 0x800, 417
|
||||
obj_tiles gMonBackPic_UnownG, 0x800, 418
|
||||
obj_tiles gMonBackPic_UnownH, 0x800, 419
|
||||
obj_tiles gMonBackPic_UnownI, 0x800, 420
|
||||
obj_tiles gMonBackPic_UnownJ, 0x800, 421
|
||||
obj_tiles gMonBackPic_UnownK, 0x800, 422
|
||||
obj_tiles gMonBackPic_UnownL, 0x800, 423
|
||||
obj_tiles gMonBackPic_UnownM, 0x800, 424
|
||||
obj_tiles gMonBackPic_UnownN, 0x800, 425
|
||||
obj_tiles gMonBackPic_UnownO, 0x800, 426
|
||||
obj_tiles gMonBackPic_UnownP, 0x800, 427
|
||||
obj_tiles gMonBackPic_UnownQ, 0x800, 428
|
||||
obj_tiles gMonBackPic_UnownR, 0x800, 429
|
||||
obj_tiles gMonBackPic_UnownS, 0x800, 430
|
||||
obj_tiles gMonBackPic_UnownT, 0x800, 431
|
||||
obj_tiles gMonBackPic_UnownU, 0x800, 432
|
||||
obj_tiles gMonBackPic_UnownV, 0x800, 433
|
||||
obj_tiles gMonBackPic_UnownW, 0x800, 434
|
||||
obj_tiles gMonBackPic_UnownX, 0x800, 435
|
||||
obj_tiles gMonBackPic_UnownY, 0x800, 436
|
||||
obj_tiles gMonBackPic_UnownZ, 0x800, 437
|
||||
obj_tiles gMonBackPic_UnownExclamationMark, 0x800, 438
|
||||
obj_tiles gMonBackPic_UnownQuestionMark, 0x800, 439
|
19
data/graphics/pokemon/circled_question_mark_graphics.s
Normal file
19
data/graphics/pokemon/circled_question_mark_graphics.s
Normal file
@ -0,0 +1,19 @@
|
||||
.align 2
|
||||
|
||||
gMonFrontPic_CircledQuestionMark: ; 8D01524
|
||||
.incbin "graphics/pokemon/circled_question_mark/front.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
|
||||
gMonBackPic_CircledQuestionMark: ; 8D0176C
|
||||
.incbin "graphics/pokemon/circled_question_mark/back.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
|
||||
gMonPalette_CircledQuestionMark: ; 8D019B4
|
||||
.incbin "graphics/pokemon/circled_question_mark/normal.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
|
||||
gMonShinyPalette_CircledQuestionMark: ; 8D019CC
|
||||
.incbin "graphics/pokemon/circled_question_mark/shiny.gbapal.lz"
|
416
data/graphics/pokemon/footprint_table.s
Normal file
416
data/graphics/pokemon/footprint_table.s
Normal file
@ -0,0 +1,416 @@
|
||||
.align 2
|
||||
|
||||
gMonFootprintTable: ; 83B4EE4
|
||||
.4byte gMonFootprint_Bulbasaur
|
||||
.4byte gMonFootprint_Bulbasaur
|
||||
.4byte gMonFootprint_Ivysaur
|
||||
.4byte gMonFootprint_Venusaur
|
||||
.4byte gMonFootprint_Charmander
|
||||
.4byte gMonFootprint_Charmeleon
|
||||
.4byte gMonFootprint_Charizard
|
||||
.4byte gMonFootprint_Squirtle
|
||||
.4byte gMonFootprint_Wartortle
|
||||
.4byte gMonFootprint_Blastoise
|
||||
.4byte gMonFootprint_Caterpie
|
||||
.4byte gMonFootprint_Metapod
|
||||
.4byte gMonFootprint_Butterfree
|
||||
.4byte gMonFootprint_Weedle
|
||||
.4byte gMonFootprint_Kakuna
|
||||
.4byte gMonFootprint_Beedrill
|
||||
.4byte gMonFootprint_Pidgey
|
||||
.4byte gMonFootprint_Pidgeotto
|
||||
.4byte gMonFootprint_Pidgeot
|
||||
.4byte gMonFootprint_Rattata
|
||||
.4byte gMonFootprint_Raticate
|
||||
.4byte gMonFootprint_Spearow
|
||||
.4byte gMonFootprint_Fearow
|
||||
.4byte gMonFootprint_Ekans
|
||||
.4byte gMonFootprint_Arbok
|
||||
.4byte gMonFootprint_Pikachu
|
||||
.4byte gMonFootprint_Raichu
|
||||
.4byte gMonFootprint_Sandshrew
|
||||
.4byte gMonFootprint_Sandslash
|
||||
.4byte gMonFootprint_NidoranF
|
||||
.4byte gMonFootprint_Nidorina
|
||||
.4byte gMonFootprint_Nidoqueen
|
||||
.4byte gMonFootprint_NidoranM
|
||||
.4byte gMonFootprint_Nidorino
|
||||
.4byte gMonFootprint_Nidoking
|
||||
.4byte gMonFootprint_Clefairy
|
||||
.4byte gMonFootprint_Clefable
|
||||
.4byte gMonFootprint_Vulpix
|
||||
.4byte gMonFootprint_Ninetales
|
||||
.4byte gMonFootprint_Jigglypuff
|
||||
.4byte gMonFootprint_Wigglytuff
|
||||
.4byte gMonFootprint_Zubat
|
||||
.4byte gMonFootprint_Golbat
|
||||
.4byte gMonFootprint_Oddish
|
||||
.4byte gMonFootprint_Gloom
|
||||
.4byte gMonFootprint_Vileplume
|
||||
.4byte gMonFootprint_Paras
|
||||
.4byte gMonFootprint_Parasect
|
||||
.4byte gMonFootprint_Venonat
|
||||
.4byte gMonFootprint_Venomoth
|
||||
.4byte gMonFootprint_Diglett
|
||||
.4byte gMonFootprint_Dugtrio
|
||||
.4byte gMonFootprint_Meowth
|
||||
.4byte gMonFootprint_Persian
|
||||
.4byte gMonFootprint_Psyduck
|
||||
.4byte gMonFootprint_Golduck
|
||||
.4byte gMonFootprint_Mankey
|
||||
.4byte gMonFootprint_Primeape
|
||||
.4byte gMonFootprint_Growlithe
|
||||
.4byte gMonFootprint_Arcanine
|
||||
.4byte gMonFootprint_Poliwag
|
||||
.4byte gMonFootprint_Poliwhirl
|
||||
.4byte gMonFootprint_Poliwrath
|
||||
.4byte gMonFootprint_Abra
|
||||
.4byte gMonFootprint_Kadabra
|
||||
.4byte gMonFootprint_Alakazam
|
||||
.4byte gMonFootprint_Machop
|
||||
.4byte gMonFootprint_Machoke
|
||||
.4byte gMonFootprint_Machamp
|
||||
.4byte gMonFootprint_Bellsprout
|
||||
.4byte gMonFootprint_Weepinbell
|
||||
.4byte gMonFootprint_Victreebel
|
||||
.4byte gMonFootprint_Tentacool
|
||||
.4byte gMonFootprint_Tentacruel
|
||||
.4byte gMonFootprint_Geodude
|
||||
.4byte gMonFootprint_Graveler
|
||||
.4byte gMonFootprint_Golem
|
||||
.4byte gMonFootprint_Ponyta
|
||||
.4byte gMonFootprint_Rapidash
|
||||
.4byte gMonFootprint_Slowpoke
|
||||
.4byte gMonFootprint_Slowbro
|
||||
.4byte gMonFootprint_Magnemite
|
||||
.4byte gMonFootprint_Magneton
|
||||
.4byte gMonFootprint_Farfetchd
|
||||
.4byte gMonFootprint_Doduo
|
||||
.4byte gMonFootprint_Dodrio
|
||||
.4byte gMonFootprint_Seel
|
||||
.4byte gMonFootprint_Dewgong
|
||||
.4byte gMonFootprint_Grimer
|
||||
.4byte gMonFootprint_Muk
|
||||
.4byte gMonFootprint_Shellder
|
||||
.4byte gMonFootprint_Cloyster
|
||||
.4byte gMonFootprint_Gastly
|
||||
.4byte gMonFootprint_Haunter
|
||||
.4byte gMonFootprint_Gengar
|
||||
.4byte gMonFootprint_Onix
|
||||
.4byte gMonFootprint_Drowzee
|
||||
.4byte gMonFootprint_Hypno
|
||||
.4byte gMonFootprint_Krabby
|
||||
.4byte gMonFootprint_Kingler
|
||||
.4byte gMonFootprint_Voltorb
|
||||
.4byte gMonFootprint_Electrode
|
||||
.4byte gMonFootprint_Exeggcute
|
||||
.4byte gMonFootprint_Exeggutor
|
||||
.4byte gMonFootprint_Cubone
|
||||
.4byte gMonFootprint_Marowak
|
||||
.4byte gMonFootprint_Hitmonlee
|
||||
.4byte gMonFootprint_Hitmonchan
|
||||
.4byte gMonFootprint_Lickitung
|
||||
.4byte gMonFootprint_Koffing
|
||||
.4byte gMonFootprint_Weezing
|
||||
.4byte gMonFootprint_Rhyhorn
|
||||
.4byte gMonFootprint_Rhydon
|
||||
.4byte gMonFootprint_Chansey
|
||||
.4byte gMonFootprint_Tangela
|
||||
.4byte gMonFootprint_Kangaskhan
|
||||
.4byte gMonFootprint_Horsea
|
||||
.4byte gMonFootprint_Seadra
|
||||
.4byte gMonFootprint_Goldeen
|
||||
.4byte gMonFootprint_Seaking
|
||||
.4byte gMonFootprint_Staryu
|
||||
.4byte gMonFootprint_Starmie
|
||||
.4byte gMonFootprint_Mrmime
|
||||
.4byte gMonFootprint_Scyther
|
||||
.4byte gMonFootprint_Jynx
|
||||
.4byte gMonFootprint_Electabuzz
|
||||
.4byte gMonFootprint_Magmar
|
||||
.4byte gMonFootprint_Pinsir
|
||||
.4byte gMonFootprint_Tauros
|
||||
.4byte gMonFootprint_Magikarp
|
||||
.4byte gMonFootprint_Gyarados
|
||||
.4byte gMonFootprint_Lapras
|
||||
.4byte gMonFootprint_Ditto
|
||||
.4byte gMonFootprint_Eevee
|
||||
.4byte gMonFootprint_Vaporeon
|
||||
.4byte gMonFootprint_Jolteon
|
||||
.4byte gMonFootprint_Flareon
|
||||
.4byte gMonFootprint_Porygon
|
||||
.4byte gMonFootprint_Omanyte
|
||||
.4byte gMonFootprint_Omastar
|
||||
.4byte gMonFootprint_Kabuto
|
||||
.4byte gMonFootprint_Kabutops
|
||||
.4byte gMonFootprint_Aerodactyl
|
||||
.4byte gMonFootprint_Snorlax
|
||||
.4byte gMonFootprint_Articuno
|
||||
.4byte gMonFootprint_Zapdos
|
||||
.4byte gMonFootprint_Moltres
|
||||
.4byte gMonFootprint_Dratini
|
||||
.4byte gMonFootprint_Dragonair
|
||||
.4byte gMonFootprint_Dragonite
|
||||
.4byte gMonFootprint_Mewtwo
|
||||
.4byte gMonFootprint_Mew
|
||||
.4byte gMonFootprint_Chikorita
|
||||
.4byte gMonFootprint_Bayleef
|
||||
.4byte gMonFootprint_Meganium
|
||||
.4byte gMonFootprint_Cyndaquil
|
||||
.4byte gMonFootprint_Quilava
|
||||
.4byte gMonFootprint_Typhlosion
|
||||
.4byte gMonFootprint_Totodile
|
||||
.4byte gMonFootprint_Croconaw
|
||||
.4byte gMonFootprint_Feraligatr
|
||||
.4byte gMonFootprint_Sentret
|
||||
.4byte gMonFootprint_Furret
|
||||
.4byte gMonFootprint_Hoothoot
|
||||
.4byte gMonFootprint_Noctowl
|
||||
.4byte gMonFootprint_Ledyba
|
||||
.4byte gMonFootprint_Ledian
|
||||
.4byte gMonFootprint_Spinarak
|
||||
.4byte gMonFootprint_Ariados
|
||||
.4byte gMonFootprint_Crobat
|
||||
.4byte gMonFootprint_Chinchou
|
||||
.4byte gMonFootprint_Lanturn
|
||||
.4byte gMonFootprint_Pichu
|
||||
.4byte gMonFootprint_Cleffa
|
||||
.4byte gMonFootprint_Igglybuff
|
||||
.4byte gMonFootprint_Togepi
|
||||
.4byte gMonFootprint_Togetic
|
||||
.4byte gMonFootprint_Natu
|
||||
.4byte gMonFootprint_Xatu
|
||||
.4byte gMonFootprint_Mareep
|
||||
.4byte gMonFootprint_Flaaffy
|
||||
.4byte gMonFootprint_Ampharos
|
||||
.4byte gMonFootprint_Bellossom
|
||||
.4byte gMonFootprint_Marill
|
||||
.4byte gMonFootprint_Azumarill
|
||||
.4byte gMonFootprint_Sudowoodo
|
||||
.4byte gMonFootprint_Politoed
|
||||
.4byte gMonFootprint_Hoppip
|
||||
.4byte gMonFootprint_Skiploom
|
||||
.4byte gMonFootprint_Jumpluff
|
||||
.4byte gMonFootprint_Aipom
|
||||
.4byte gMonFootprint_Sunkern
|
||||
.4byte gMonFootprint_Sunflora
|
||||
.4byte gMonFootprint_Yanma
|
||||
.4byte gMonFootprint_Wooper
|
||||
.4byte gMonFootprint_Quagsire
|
||||
.4byte gMonFootprint_Espeon
|
||||
.4byte gMonFootprint_Umbreon
|
||||
.4byte gMonFootprint_Murkrow
|
||||
.4byte gMonFootprint_Slowking
|
||||
.4byte gMonFootprint_Misdreavus
|
||||
.4byte gMonFootprint_Unown
|
||||
.4byte gMonFootprint_Wobbuffet
|
||||
.4byte gMonFootprint_Girafarig
|
||||
.4byte gMonFootprint_Pineco
|
||||
.4byte gMonFootprint_Forretress
|
||||
.4byte gMonFootprint_Dunsparce
|
||||
.4byte gMonFootprint_Gligar
|
||||
.4byte gMonFootprint_Steelix
|
||||
.4byte gMonFootprint_Snubbull
|
||||
.4byte gMonFootprint_Granbull
|
||||
.4byte gMonFootprint_Qwilfish
|
||||
.4byte gMonFootprint_Scizor
|
||||
.4byte gMonFootprint_Shuckle
|
||||
.4byte gMonFootprint_Heracross
|
||||
.4byte gMonFootprint_Sneasel
|
||||
.4byte gMonFootprint_Teddiursa
|
||||
.4byte gMonFootprint_Ursaring
|
||||
.4byte gMonFootprint_Slugma
|
||||
.4byte gMonFootprint_Magcargo
|
||||
.4byte gMonFootprint_Swinub
|
||||
.4byte gMonFootprint_Piloswine
|
||||
.4byte gMonFootprint_Corsola
|
||||
.4byte gMonFootprint_Remoraid
|
||||
.4byte gMonFootprint_Octillery
|
||||
.4byte gMonFootprint_Delibird
|
||||
.4byte gMonFootprint_Mantine
|
||||
.4byte gMonFootprint_Skarmory
|
||||
.4byte gMonFootprint_Houndour
|
||||
.4byte gMonFootprint_Houndoom
|
||||
.4byte gMonFootprint_Kingdra
|
||||
.4byte gMonFootprint_Phanpy
|
||||
.4byte gMonFootprint_Donphan
|
||||
.4byte gMonFootprint_Porygon2
|
||||
.4byte gMonFootprint_Stantler
|
||||
.4byte gMonFootprint_Smeargle
|
||||
.4byte gMonFootprint_Tyrogue
|
||||
.4byte gMonFootprint_Hitmontop
|
||||
.4byte gMonFootprint_Smoochum
|
||||
.4byte gMonFootprint_Elekid
|
||||
.4byte gMonFootprint_Magby
|
||||
.4byte gMonFootprint_Miltank
|
||||
.4byte gMonFootprint_Blissey
|
||||
.4byte gMonFootprint_Raikou
|
||||
.4byte gMonFootprint_Entei
|
||||
.4byte gMonFootprint_Suicune
|
||||
.4byte gMonFootprint_Larvitar
|
||||
.4byte gMonFootprint_Pupitar
|
||||
.4byte gMonFootprint_Tyranitar
|
||||
.4byte gMonFootprint_Lugia
|
||||
.4byte gMonFootprint_HoOh
|
||||
.4byte gMonFootprint_Celebi
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_QuestionMark
|
||||
.4byte gMonFootprint_Treecko
|
||||
.4byte gMonFootprint_Grovyle
|
||||
.4byte gMonFootprint_Sceptile
|
||||
.4byte gMonFootprint_Torchic
|
||||
.4byte gMonFootprint_Combusken
|
||||
.4byte gMonFootprint_Blaziken
|
||||
.4byte gMonFootprint_Mudkip
|
||||
.4byte gMonFootprint_Marshtomp
|
||||
.4byte gMonFootprint_Swampert
|
||||
.4byte gMonFootprint_Poochyena
|
||||
.4byte gMonFootprint_Mightyena
|
||||
.4byte gMonFootprint_Zigzagoon
|
||||
.4byte gMonFootprint_Linoone
|
||||
.4byte gMonFootprint_Wurmple
|
||||
.4byte gMonFootprint_Silcoon
|
||||
.4byte gMonFootprint_Beautifly
|
||||
.4byte gMonFootprint_Cascoon
|
||||
.4byte gMonFootprint_Dustox
|
||||
.4byte gMonFootprint_Lotad
|
||||
.4byte gMonFootprint_Lombre
|
||||
.4byte gMonFootprint_Ludicolo
|
||||
.4byte gMonFootprint_Seedot
|
||||
.4byte gMonFootprint_Nuzleaf
|
||||
.4byte gMonFootprint_Shiftry
|
||||
.4byte gMonFootprint_Nincada
|
||||
.4byte gMonFootprint_Ninjask
|
||||
.4byte gMonFootprint_Shedinja
|
||||
.4byte gMonFootprint_Taillow
|
||||
.4byte gMonFootprint_Swellow
|
||||
.4byte gMonFootprint_Shroomish
|
||||
.4byte gMonFootprint_Breloom
|
||||
.4byte gMonFootprint_Spinda
|
||||
.4byte gMonFootprint_Wingull
|
||||
.4byte gMonFootprint_Pelipper
|
||||
.4byte gMonFootprint_Surskit
|
||||
.4byte gMonFootprint_Masquerain
|
||||
.4byte gMonFootprint_Wailmer
|
||||
.4byte gMonFootprint_Wailord
|
||||
.4byte gMonFootprint_Skitty
|
||||
.4byte gMonFootprint_Delcatty
|
||||
.4byte gMonFootprint_Kecleon
|
||||
.4byte gMonFootprint_Baltoy
|
||||
.4byte gMonFootprint_Claydol
|
||||
.4byte gMonFootprint_Nosepass
|
||||
.4byte gMonFootprint_Torkoal
|
||||
.4byte gMonFootprint_Sableye
|
||||
.4byte gMonFootprint_Barboach
|
||||
.4byte gMonFootprint_Whiscash
|
||||
.4byte gMonFootprint_Luvdisc
|
||||
.4byte gMonFootprint_Corphish
|
||||
.4byte gMonFootprint_Crawdaunt
|
||||
.4byte gMonFootprint_Feebas
|
||||
.4byte gMonFootprint_Milotic
|
||||
.4byte gMonFootprint_Carvanha
|
||||
.4byte gMonFootprint_Sharpedo
|
||||
.4byte gMonFootprint_Trapinch
|
||||
.4byte gMonFootprint_Vibrava
|
||||
.4byte gMonFootprint_Flygon
|
||||
.4byte gMonFootprint_Makuhita
|
||||
.4byte gMonFootprint_Hariyama
|
||||
.4byte gMonFootprint_Electrike
|
||||
.4byte gMonFootprint_Manectric
|
||||
.4byte gMonFootprint_Numel
|
||||
.4byte gMonFootprint_Camerupt
|
||||
.4byte gMonFootprint_Spheal
|
||||
.4byte gMonFootprint_Sealeo
|
||||
.4byte gMonFootprint_Walrein
|
||||
.4byte gMonFootprint_Cacnea
|
||||
.4byte gMonFootprint_Cacturne
|
||||
.4byte gMonFootprint_Snorunt
|
||||
.4byte gMonFootprint_Glalie
|
||||
.4byte gMonFootprint_Lunatone
|
||||
.4byte gMonFootprint_Solrock
|
||||
.4byte gMonFootprint_Azurill
|
||||
.4byte gMonFootprint_Spoink
|
||||
.4byte gMonFootprint_Grumpig
|
||||
.4byte gMonFootprint_Plusle
|
||||
.4byte gMonFootprint_Minun
|
||||
.4byte gMonFootprint_Mawile
|
||||
.4byte gMonFootprint_Meditite
|
||||
.4byte gMonFootprint_Medicham
|
||||
.4byte gMonFootprint_Swablu
|
||||
.4byte gMonFootprint_Altaria
|
||||
.4byte gMonFootprint_Wynaut
|
||||
.4byte gMonFootprint_Duskull
|
||||
.4byte gMonFootprint_Dusclops
|
||||
.4byte gMonFootprint_Roselia
|
||||
.4byte gMonFootprint_Slakoth
|
||||
.4byte gMonFootprint_Vigoroth
|
||||
.4byte gMonFootprint_Slaking
|
||||
.4byte gMonFootprint_Gulpin
|
||||
.4byte gMonFootprint_Swalot
|
||||
.4byte gMonFootprint_Tropius
|
||||
.4byte gMonFootprint_Whismur
|
||||
.4byte gMonFootprint_Loudred
|
||||
.4byte gMonFootprint_Exploud
|
||||
.4byte gMonFootprint_Clamperl
|
||||
.4byte gMonFootprint_Huntail
|
||||
.4byte gMonFootprint_Gorebyss
|
||||
.4byte gMonFootprint_Absol
|
||||
.4byte gMonFootprint_Shuppet
|
||||
.4byte gMonFootprint_Banette
|
||||
.4byte gMonFootprint_Seviper
|
||||
.4byte gMonFootprint_Zangoose
|
||||
.4byte gMonFootprint_Relicanth
|
||||
.4byte gMonFootprint_Aron
|
||||
.4byte gMonFootprint_Lairon
|
||||
.4byte gMonFootprint_Aggron
|
||||
.4byte gMonFootprint_Castform
|
||||
.4byte gMonFootprint_Volbeat
|
||||
.4byte gMonFootprint_Illumise
|
||||
.4byte gMonFootprint_Lileep
|
||||
.4byte gMonFootprint_Cradily
|
||||
.4byte gMonFootprint_Anorith
|
||||
.4byte gMonFootprint_Armaldo
|
||||
.4byte gMonFootprint_Ralts
|
||||
.4byte gMonFootprint_Kirlia
|
||||
.4byte gMonFootprint_Gardevoir
|
||||
.4byte gMonFootprint_Bagon
|
||||
.4byte gMonFootprint_Shelgon
|
||||
.4byte gMonFootprint_Salamence
|
||||
.4byte gMonFootprint_Beldum
|
||||
.4byte gMonFootprint_Metang
|
||||
.4byte gMonFootprint_Metagross
|
||||
.4byte gMonFootprint_Regirock
|
||||
.4byte gMonFootprint_Regice
|
||||
.4byte gMonFootprint_Registeel
|
||||
.4byte gMonFootprint_Kyogre
|
||||
.4byte gMonFootprint_Groudon
|
||||
.4byte gMonFootprint_Rayquaza
|
||||
.4byte gMonFootprint_Latias
|
||||
.4byte gMonFootprint_Latios
|
||||
.4byte gMonFootprint_Jirachi
|
||||
.4byte gMonFootprint_Deoxys
|
||||
.4byte gMonFootprint_Chimecho
|
||||
.4byte gMonFootprint_Bulbasaur
|
443
data/graphics/pokemon/front_pic_table.s
Normal file
443
data/graphics/pokemon/front_pic_table.s
Normal file
@ -0,0 +1,443 @@
|
||||
.align 2
|
||||
|
||||
gMonFrontPicTable: ; 81E8354
|
||||
obj_tiles gMonFrontPic_CircledQuestionMark, 0x800, 0
|
||||
obj_tiles gMonFrontPic_Bulbasaur, 0x800, 1
|
||||
obj_tiles gMonFrontPic_Ivysaur, 0x800, 2
|
||||
obj_tiles gMonFrontPic_Venusaur, 0x800, 3
|
||||
obj_tiles gMonFrontPic_Charmander, 0x800, 4
|
||||
obj_tiles gMonFrontPic_Charmeleon, 0x800, 5
|
||||
obj_tiles gMonFrontPic_Charizard, 0x800, 6
|
||||
obj_tiles gMonFrontPic_Squirtle, 0x800, 7
|
||||
obj_tiles gMonFrontPic_Wartortle, 0x800, 8
|
||||
obj_tiles gMonFrontPic_Blastoise, 0x800, 9
|
||||
obj_tiles gMonFrontPic_Caterpie, 0x800, 10
|
||||
obj_tiles gMonFrontPic_Metapod, 0x800, 11
|
||||
obj_tiles gMonFrontPic_Butterfree, 0x800, 12
|
||||
obj_tiles gMonFrontPic_Weedle, 0x800, 13
|
||||
obj_tiles gMonFrontPic_Kakuna, 0x800, 14
|
||||
obj_tiles gMonFrontPic_Beedrill, 0x800, 15
|
||||
obj_tiles gMonFrontPic_Pidgey, 0x800, 16
|
||||
obj_tiles gMonFrontPic_Pidgeotto, 0x800, 17
|
||||
obj_tiles gMonFrontPic_Pidgeot, 0x800, 18
|
||||
obj_tiles gMonFrontPic_Rattata, 0x800, 19
|
||||
obj_tiles gMonFrontPic_Raticate, 0x800, 20
|
||||
obj_tiles gMonFrontPic_Spearow, 0x800, 21
|
||||
obj_tiles gMonFrontPic_Fearow, 0x800, 22
|
||||
obj_tiles gMonFrontPic_Ekans, 0x800, 23
|
||||
obj_tiles gMonFrontPic_Arbok, 0x800, 24
|
||||
obj_tiles gMonFrontPic_Pikachu, 0x800, 25
|
||||
obj_tiles gMonFrontPic_Raichu, 0x800, 26
|
||||
obj_tiles gMonFrontPic_Sandshrew, 0x800, 27
|
||||
obj_tiles gMonFrontPic_Sandslash, 0x800, 28
|
||||
obj_tiles gMonFrontPic_NidoranF, 0x800, 29
|
||||
obj_tiles gMonFrontPic_Nidorina, 0x800, 30
|
||||
obj_tiles gMonFrontPic_Nidoqueen, 0x800, 31
|
||||
obj_tiles gMonFrontPic_NidoranM, 0x800, 32
|
||||
obj_tiles gMonFrontPic_Nidorino, 0x800, 33
|
||||
obj_tiles gMonFrontPic_Nidoking, 0x800, 34
|
||||
obj_tiles gMonFrontPic_Clefairy, 0x800, 35
|
||||
obj_tiles gMonFrontPic_Clefable, 0x800, 36
|
||||
obj_tiles gMonFrontPic_Vulpix, 0x800, 37
|
||||
obj_tiles gMonFrontPic_Ninetales, 0x800, 38
|
||||
obj_tiles gMonFrontPic_Jigglypuff, 0x800, 39
|
||||
obj_tiles gMonFrontPic_Wigglytuff, 0x800, 40
|
||||
obj_tiles gMonFrontPic_Zubat, 0x800, 41
|
||||
obj_tiles gMonFrontPic_Golbat, 0x800, 42
|
||||
obj_tiles gMonFrontPic_Oddish, 0x800, 43
|
||||
obj_tiles gMonFrontPic_Gloom, 0x800, 44
|
||||
obj_tiles gMonFrontPic_Vileplume, 0x800, 45
|
||||
obj_tiles gMonFrontPic_Paras, 0x800, 46
|
||||
obj_tiles gMonFrontPic_Parasect, 0x800, 47
|
||||
obj_tiles gMonFrontPic_Venonat, 0x800, 48
|
||||
obj_tiles gMonFrontPic_Venomoth, 0x800, 49
|
||||
obj_tiles gMonFrontPic_Diglett, 0x800, 50
|
||||
obj_tiles gMonFrontPic_Dugtrio, 0x800, 51
|
||||
obj_tiles gMonFrontPic_Meowth, 0x800, 52
|
||||
obj_tiles gMonFrontPic_Persian, 0x800, 53
|
||||
obj_tiles gMonFrontPic_Psyduck, 0x800, 54
|
||||
obj_tiles gMonFrontPic_Golduck, 0x800, 55
|
||||
obj_tiles gMonFrontPic_Mankey, 0x800, 56
|
||||
obj_tiles gMonFrontPic_Primeape, 0x800, 57
|
||||
obj_tiles gMonFrontPic_Growlithe, 0x800, 58
|
||||
obj_tiles gMonFrontPic_Arcanine, 0x800, 59
|
||||
obj_tiles gMonFrontPic_Poliwag, 0x800, 60
|
||||
obj_tiles gMonFrontPic_Poliwhirl, 0x800, 61
|
||||
obj_tiles gMonFrontPic_Poliwrath, 0x800, 62
|
||||
obj_tiles gMonFrontPic_Abra, 0x800, 63
|
||||
obj_tiles gMonFrontPic_Kadabra, 0x800, 64
|
||||
obj_tiles gMonFrontPic_Alakazam, 0x800, 65
|
||||
obj_tiles gMonFrontPic_Machop, 0x800, 66
|
||||
obj_tiles gMonFrontPic_Machoke, 0x800, 67
|
||||
obj_tiles gMonFrontPic_Machamp, 0x800, 68
|
||||
obj_tiles gMonFrontPic_Bellsprout, 0x800, 69
|
||||
obj_tiles gMonFrontPic_Weepinbell, 0x800, 70
|
||||
obj_tiles gMonFrontPic_Victreebel, 0x800, 71
|
||||
obj_tiles gMonFrontPic_Tentacool, 0x800, 72
|
||||
obj_tiles gMonFrontPic_Tentacruel, 0x800, 73
|
||||
obj_tiles gMonFrontPic_Geodude, 0x800, 74
|
||||
obj_tiles gMonFrontPic_Graveler, 0x800, 75
|
||||
obj_tiles gMonFrontPic_Golem, 0x800, 76
|
||||
obj_tiles gMonFrontPic_Ponyta, 0x800, 77
|
||||
obj_tiles gMonFrontPic_Rapidash, 0x800, 78
|
||||
obj_tiles gMonFrontPic_Slowpoke, 0x800, 79
|
||||
obj_tiles gMonFrontPic_Slowbro, 0x800, 80
|
||||
obj_tiles gMonFrontPic_Magnemite, 0x800, 81
|
||||
obj_tiles gMonFrontPic_Magneton, 0x800, 82
|
||||
obj_tiles gMonFrontPic_Farfetchd, 0x800, 83
|
||||
obj_tiles gMonFrontPic_Doduo, 0x800, 84
|
||||
obj_tiles gMonFrontPic_Dodrio, 0x800, 85
|
||||
obj_tiles gMonFrontPic_Seel, 0x800, 86
|
||||
obj_tiles gMonFrontPic_Dewgong, 0x800, 87
|
||||
obj_tiles gMonFrontPic_Grimer, 0x800, 88
|
||||
obj_tiles gMonFrontPic_Muk, 0x800, 89
|
||||
obj_tiles gMonFrontPic_Shellder, 0x800, 90
|
||||
obj_tiles gMonFrontPic_Cloyster, 0x800, 91
|
||||
obj_tiles gMonFrontPic_Gastly, 0x800, 92
|
||||
obj_tiles gMonFrontPic_Haunter, 0x800, 93
|
||||
obj_tiles gMonFrontPic_Gengar, 0x800, 94
|
||||
obj_tiles gMonFrontPic_Onix, 0x800, 95
|
||||
obj_tiles gMonFrontPic_Drowzee, 0x800, 96
|
||||
obj_tiles gMonFrontPic_Hypno, 0x800, 97
|
||||
obj_tiles gMonFrontPic_Krabby, 0x800, 98
|
||||
obj_tiles gMonFrontPic_Kingler, 0x800, 99
|
||||
obj_tiles gMonFrontPic_Voltorb, 0x800, 100
|
||||
obj_tiles gMonFrontPic_Electrode, 0x800, 101
|
||||
obj_tiles gMonFrontPic_Exeggcute, 0x800, 102
|
||||
obj_tiles gMonFrontPic_Exeggutor, 0x800, 103
|
||||
obj_tiles gMonFrontPic_Cubone, 0x800, 104
|
||||
obj_tiles gMonFrontPic_Marowak, 0x800, 105
|
||||
obj_tiles gMonFrontPic_Hitmonlee, 0x800, 106
|
||||
obj_tiles gMonFrontPic_Hitmonchan, 0x800, 107
|
||||
obj_tiles gMonFrontPic_Lickitung, 0x800, 108
|
||||
obj_tiles gMonFrontPic_Koffing, 0x800, 109
|
||||
obj_tiles gMonFrontPic_Weezing, 0x800, 110
|
||||
obj_tiles gMonFrontPic_Rhyhorn, 0x800, 111
|
||||
obj_tiles gMonFrontPic_Rhydon, 0x800, 112
|
||||
obj_tiles gMonFrontPic_Chansey, 0x800, 113
|
||||
obj_tiles gMonFrontPic_Tangela, 0x800, 114
|
||||
obj_tiles gMonFrontPic_Kangaskhan, 0x800, 115
|
||||
obj_tiles gMonFrontPic_Horsea, 0x800, 116
|
||||
obj_tiles gMonFrontPic_Seadra, 0x800, 117
|
||||
obj_tiles gMonFrontPic_Goldeen, 0x800, 118
|
||||
obj_tiles gMonFrontPic_Seaking, 0x800, 119
|
||||
obj_tiles gMonFrontPic_Staryu, 0x800, 120
|
||||
obj_tiles gMonFrontPic_Starmie, 0x800, 121
|
||||
obj_tiles gMonFrontPic_Mrmime, 0x800, 122
|
||||
obj_tiles gMonFrontPic_Scyther, 0x800, 123
|
||||
obj_tiles gMonFrontPic_Jynx, 0x800, 124
|
||||
obj_tiles gMonFrontPic_Electabuzz, 0x800, 125
|
||||
obj_tiles gMonFrontPic_Magmar, 0x800, 126
|
||||
obj_tiles gMonFrontPic_Pinsir, 0x800, 127
|
||||
obj_tiles gMonFrontPic_Tauros, 0x800, 128
|
||||
obj_tiles gMonFrontPic_Magikarp, 0x800, 129
|
||||
obj_tiles gMonFrontPic_Gyarados, 0x800, 130
|
||||
obj_tiles gMonFrontPic_Lapras, 0x800, 131
|
||||
obj_tiles gMonFrontPic_Ditto, 0x800, 132
|
||||
obj_tiles gMonFrontPic_Eevee, 0x800, 133
|
||||
obj_tiles gMonFrontPic_Vaporeon, 0x800, 134
|
||||
obj_tiles gMonFrontPic_Jolteon, 0x800, 135
|
||||
obj_tiles gMonFrontPic_Flareon, 0x800, 136
|
||||
obj_tiles gMonFrontPic_Porygon, 0x800, 137
|
||||
obj_tiles gMonFrontPic_Omanyte, 0x800, 138
|
||||
obj_tiles gMonFrontPic_Omastar, 0x800, 139
|
||||
obj_tiles gMonFrontPic_Kabuto, 0x800, 140
|
||||
obj_tiles gMonFrontPic_Kabutops, 0x800, 141
|
||||
obj_tiles gMonFrontPic_Aerodactyl, 0x800, 142
|
||||
obj_tiles gMonFrontPic_Snorlax, 0x800, 143
|
||||
obj_tiles gMonFrontPic_Articuno, 0x800, 144
|
||||
obj_tiles gMonFrontPic_Zapdos, 0x800, 145
|
||||
obj_tiles gMonFrontPic_Moltres, 0x800, 146
|
||||
obj_tiles gMonFrontPic_Dratini, 0x800, 147
|
||||
obj_tiles gMonFrontPic_Dragonair, 0x800, 148
|
||||
obj_tiles gMonFrontPic_Dragonite, 0x800, 149
|
||||
obj_tiles gMonFrontPic_Mewtwo, 0x800, 150
|
||||
obj_tiles gMonFrontPic_Mew, 0x800, 151
|
||||
obj_tiles gMonFrontPic_Chikorita, 0x800, 152
|
||||
obj_tiles gMonFrontPic_Bayleef, 0x800, 153
|
||||
obj_tiles gMonFrontPic_Meganium, 0x800, 154
|
||||
obj_tiles gMonFrontPic_Cyndaquil, 0x800, 155
|
||||
obj_tiles gMonFrontPic_Quilava, 0x800, 156
|
||||
obj_tiles gMonFrontPic_Typhlosion, 0x800, 157
|
||||
obj_tiles gMonFrontPic_Totodile, 0x800, 158
|
||||
obj_tiles gMonFrontPic_Croconaw, 0x800, 159
|
||||
obj_tiles gMonFrontPic_Feraligatr, 0x800, 160
|
||||
obj_tiles gMonFrontPic_Sentret, 0x800, 161
|
||||
obj_tiles gMonFrontPic_Furret, 0x800, 162
|
||||
obj_tiles gMonFrontPic_Hoothoot, 0x800, 163
|
||||
obj_tiles gMonFrontPic_Noctowl, 0x800, 164
|
||||
obj_tiles gMonFrontPic_Ledyba, 0x800, 165
|
||||
obj_tiles gMonFrontPic_Ledian, 0x800, 166
|
||||
obj_tiles gMonFrontPic_Spinarak, 0x800, 167
|
||||
obj_tiles gMonFrontPic_Ariados, 0x800, 168
|
||||
obj_tiles gMonFrontPic_Crobat, 0x800, 169
|
||||
obj_tiles gMonFrontPic_Chinchou, 0x800, 170
|
||||
obj_tiles gMonFrontPic_Lanturn, 0x800, 171
|
||||
obj_tiles gMonFrontPic_Pichu, 0x800, 172
|
||||
obj_tiles gMonFrontPic_Cleffa, 0x800, 173
|
||||
obj_tiles gMonFrontPic_Igglybuff, 0x800, 174
|
||||
obj_tiles gMonFrontPic_Togepi, 0x800, 175
|
||||
obj_tiles gMonFrontPic_Togetic, 0x800, 176
|
||||
obj_tiles gMonFrontPic_Natu, 0x800, 177
|
||||
obj_tiles gMonFrontPic_Xatu, 0x800, 178
|
||||
obj_tiles gMonFrontPic_Mareep, 0x800, 179
|
||||
obj_tiles gMonFrontPic_Flaaffy, 0x800, 180
|
||||
obj_tiles gMonFrontPic_Ampharos, 0x800, 181
|
||||
obj_tiles gMonFrontPic_Bellossom, 0x800, 182
|
||||
obj_tiles gMonFrontPic_Marill, 0x800, 183
|
||||
obj_tiles gMonFrontPic_Azumarill, 0x800, 184
|
||||
obj_tiles gMonFrontPic_Sudowoodo, 0x800, 185
|
||||
obj_tiles gMonFrontPic_Politoed, 0x800, 186
|
||||
obj_tiles gMonFrontPic_Hoppip, 0x800, 187
|
||||
obj_tiles gMonFrontPic_Skiploom, 0x800, 188
|
||||
obj_tiles gMonFrontPic_Jumpluff, 0x800, 189
|
||||
obj_tiles gMonFrontPic_Aipom, 0x800, 190
|
||||
obj_tiles gMonFrontPic_Sunkern, 0x800, 191
|
||||
obj_tiles gMonFrontPic_Sunflora, 0x800, 192
|
||||
obj_tiles gMonFrontPic_Yanma, 0x800, 193
|
||||
obj_tiles gMonFrontPic_Wooper, 0x800, 194
|
||||
obj_tiles gMonFrontPic_Quagsire, 0x800, 195
|
||||
obj_tiles gMonFrontPic_Espeon, 0x800, 196
|
||||
obj_tiles gMonFrontPic_Umbreon, 0x800, 197
|
||||
obj_tiles gMonFrontPic_Murkrow, 0x800, 198
|
||||
obj_tiles gMonFrontPic_Slowking, 0x800, 199
|
||||
obj_tiles gMonFrontPic_Misdreavus, 0x800, 200
|
||||
obj_tiles gMonFrontPic_UnownA, 0x800, 201
|
||||
obj_tiles gMonFrontPic_Wobbuffet, 0x800, 202
|
||||
obj_tiles gMonFrontPic_Girafarig, 0x800, 203
|
||||
obj_tiles gMonFrontPic_Pineco, 0x800, 204
|
||||
obj_tiles gMonFrontPic_Forretress, 0x800, 205
|
||||
obj_tiles gMonFrontPic_Dunsparce, 0x800, 206
|
||||
obj_tiles gMonFrontPic_Gligar, 0x800, 207
|
||||
obj_tiles gMonFrontPic_Steelix, 0x800, 208
|
||||
obj_tiles gMonFrontPic_Snubbull, 0x800, 209
|
||||
obj_tiles gMonFrontPic_Granbull, 0x800, 210
|
||||
obj_tiles gMonFrontPic_Qwilfish, 0x800, 211
|
||||
obj_tiles gMonFrontPic_Scizor, 0x800, 212
|
||||
obj_tiles gMonFrontPic_Shuckle, 0x800, 213
|
||||
obj_tiles gMonFrontPic_Heracross, 0x800, 214
|
||||
obj_tiles gMonFrontPic_Sneasel, 0x800, 215
|
||||
obj_tiles gMonFrontPic_Teddiursa, 0x800, 216
|
||||
obj_tiles gMonFrontPic_Ursaring, 0x800, 217
|
||||
obj_tiles gMonFrontPic_Slugma, 0x800, 218
|
||||
obj_tiles gMonFrontPic_Magcargo, 0x800, 219
|
||||
obj_tiles gMonFrontPic_Swinub, 0x800, 220
|
||||
obj_tiles gMonFrontPic_Piloswine, 0x800, 221
|
||||
obj_tiles gMonFrontPic_Corsola, 0x800, 222
|
||||
obj_tiles gMonFrontPic_Remoraid, 0x800, 223
|
||||
obj_tiles gMonFrontPic_Octillery, 0x800, 224
|
||||
obj_tiles gMonFrontPic_Delibird, 0x800, 225
|
||||
obj_tiles gMonFrontPic_Mantine, 0x800, 226
|
||||
obj_tiles gMonFrontPic_Skarmory, 0x800, 227
|
||||
obj_tiles gMonFrontPic_Houndour, 0x800, 228
|
||||
obj_tiles gMonFrontPic_Houndoom, 0x800, 229
|
||||
obj_tiles gMonFrontPic_Kingdra, 0x800, 230
|
||||
obj_tiles gMonFrontPic_Phanpy, 0x800, 231
|
||||
obj_tiles gMonFrontPic_Donphan, 0x800, 232
|
||||
obj_tiles gMonFrontPic_Porygon2, 0x800, 233
|
||||
obj_tiles gMonFrontPic_Stantler, 0x800, 234
|
||||
obj_tiles gMonFrontPic_Smeargle, 0x800, 235
|
||||
obj_tiles gMonFrontPic_Tyrogue, 0x800, 236
|
||||
obj_tiles gMonFrontPic_Hitmontop, 0x800, 237
|
||||
obj_tiles gMonFrontPic_Smoochum, 0x800, 238
|
||||
obj_tiles gMonFrontPic_Elekid, 0x800, 239
|
||||
obj_tiles gMonFrontPic_Magby, 0x800, 240
|
||||
obj_tiles gMonFrontPic_Miltank, 0x800, 241
|
||||
obj_tiles gMonFrontPic_Blissey, 0x800, 242
|
||||
obj_tiles gMonFrontPic_Raikou, 0x800, 243
|
||||
obj_tiles gMonFrontPic_Entei, 0x800, 244
|
||||
obj_tiles gMonFrontPic_Suicune, 0x800, 245
|
||||
obj_tiles gMonFrontPic_Larvitar, 0x800, 246
|
||||
obj_tiles gMonFrontPic_Pupitar, 0x800, 247
|
||||
obj_tiles gMonFrontPic_Tyranitar, 0x800, 248
|
||||
obj_tiles gMonFrontPic_Lugia, 0x800, 249
|
||||
obj_tiles gMonFrontPic_HoOh, 0x800, 250
|
||||
obj_tiles gMonFrontPic_Celebi, 0x800, 251
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 252
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 253
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 254
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 255
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 256
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 257
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 258
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 259
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 260
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 261
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 262
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 263
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 264
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 265
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 266
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 267
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 268
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 269
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 270
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 271
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 272
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 273
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 274
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 275
|
||||
obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 276
|
||||
obj_tiles gMonFrontPic_Treecko, 0x800, 277
|
||||
obj_tiles gMonFrontPic_Grovyle, 0x800, 278
|
||||
obj_tiles gMonFrontPic_Sceptile, 0x800, 279
|
||||
obj_tiles gMonFrontPic_Torchic, 0x800, 280
|
||||
obj_tiles gMonFrontPic_Combusken, 0x800, 281
|
||||
obj_tiles gMonFrontPic_Blaziken, 0x800, 282
|
||||
obj_tiles gMonFrontPic_Mudkip, 0x800, 283
|
||||
obj_tiles gMonFrontPic_Marshtomp, 0x800, 284
|
||||
obj_tiles gMonFrontPic_Swampert, 0x800, 285
|
||||
obj_tiles gMonFrontPic_Poochyena, 0x800, 286
|
||||
obj_tiles gMonFrontPic_Mightyena, 0x800, 287
|
||||
obj_tiles gMonFrontPic_Zigzagoon, 0x800, 288
|
||||
obj_tiles gMonFrontPic_Linoone, 0x800, 289
|
||||
obj_tiles gMonFrontPic_Wurmple, 0x800, 290
|
||||
obj_tiles gMonFrontPic_Silcoon, 0x800, 291
|
||||
obj_tiles gMonFrontPic_Beautifly, 0x800, 292
|
||||
obj_tiles gMonFrontPic_Cascoon, 0x800, 293
|
||||
obj_tiles gMonFrontPic_Dustox, 0x800, 294
|
||||
obj_tiles gMonFrontPic_Lotad, 0x800, 295
|
||||
obj_tiles gMonFrontPic_Lombre, 0x800, 296
|
||||
obj_tiles gMonFrontPic_Ludicolo, 0x800, 297
|
||||
obj_tiles gMonFrontPic_Seedot, 0x800, 298
|
||||
obj_tiles gMonFrontPic_Nuzleaf, 0x800, 299
|
||||
obj_tiles gMonFrontPic_Shiftry, 0x800, 300
|
||||
obj_tiles gMonFrontPic_Nincada, 0x800, 301
|
||||
obj_tiles gMonFrontPic_Ninjask, 0x800, 302
|
||||
obj_tiles gMonFrontPic_Shedinja, 0x800, 303
|
||||
obj_tiles gMonFrontPic_Taillow, 0x800, 304
|
||||
obj_tiles gMonFrontPic_Swellow, 0x800, 305
|
||||
obj_tiles gMonFrontPic_Shroomish, 0x800, 306
|
||||
obj_tiles gMonFrontPic_Breloom, 0x800, 307
|
||||
obj_tiles gMonFrontPic_Spinda, 0x800, 308
|
||||
obj_tiles gMonFrontPic_Wingull, 0x800, 309
|
||||
obj_tiles gMonFrontPic_Pelipper, 0x800, 310
|
||||
obj_tiles gMonFrontPic_Surskit, 0x800, 311
|
||||
obj_tiles gMonFrontPic_Masquerain, 0x800, 312
|
||||
obj_tiles gMonFrontPic_Wailmer, 0x800, 313
|
||||
obj_tiles gMonFrontPic_Wailord, 0x800, 314
|
||||
obj_tiles gMonFrontPic_Skitty, 0x800, 315
|
||||
obj_tiles gMonFrontPic_Delcatty, 0x800, 316
|
||||
obj_tiles gMonFrontPic_Kecleon, 0x800, 317
|
||||
obj_tiles gMonFrontPic_Baltoy, 0x800, 318
|
||||
obj_tiles gMonFrontPic_Claydol, 0x800, 319
|
||||
obj_tiles gMonFrontPic_Nosepass, 0x800, 320
|
||||
obj_tiles gMonFrontPic_Torkoal, 0x800, 321
|
||||
obj_tiles gMonFrontPic_Sableye, 0x800, 322
|
||||
obj_tiles gMonFrontPic_Barboach, 0x800, 323
|
||||
obj_tiles gMonFrontPic_Whiscash, 0x800, 324
|
||||
obj_tiles gMonFrontPic_Luvdisc, 0x800, 325
|
||||
obj_tiles gMonFrontPic_Corphish, 0x800, 326
|
||||
obj_tiles gMonFrontPic_Crawdaunt, 0x800, 327
|
||||
obj_tiles gMonFrontPic_Feebas, 0x800, 328
|
||||
obj_tiles gMonFrontPic_Milotic, 0x800, 329
|
||||
obj_tiles gMonFrontPic_Carvanha, 0x800, 330
|
||||
obj_tiles gMonFrontPic_Sharpedo, 0x800, 331
|
||||
obj_tiles gMonFrontPic_Trapinch, 0x800, 332
|
||||
obj_tiles gMonFrontPic_Vibrava, 0x800, 333
|
||||
obj_tiles gMonFrontPic_Flygon, 0x800, 334
|
||||
obj_tiles gMonFrontPic_Makuhita, 0x800, 335
|
||||
obj_tiles gMonFrontPic_Hariyama, 0x800, 336
|
||||
obj_tiles gMonFrontPic_Electrike, 0x800, 337
|
||||
obj_tiles gMonFrontPic_Manectric, 0x800, 338
|
||||
obj_tiles gMonFrontPic_Numel, 0x800, 339
|
||||
obj_tiles gMonFrontPic_Camerupt, 0x800, 340
|
||||
obj_tiles gMonFrontPic_Spheal, 0x800, 341
|
||||
obj_tiles gMonFrontPic_Sealeo, 0x800, 342
|
||||
obj_tiles gMonFrontPic_Walrein, 0x800, 343
|
||||
obj_tiles gMonFrontPic_Cacnea, 0x800, 344
|
||||
obj_tiles gMonFrontPic_Cacturne, 0x800, 345
|
||||
obj_tiles gMonFrontPic_Snorunt, 0x800, 346
|
||||
obj_tiles gMonFrontPic_Glalie, 0x800, 347
|
||||
obj_tiles gMonFrontPic_Lunatone, 0x800, 348
|
||||
obj_tiles gMonFrontPic_Solrock, 0x800, 349
|
||||
obj_tiles gMonFrontPic_Azurill, 0x800, 350
|
||||
obj_tiles gMonFrontPic_Spoink, 0x800, 351
|
||||
obj_tiles gMonFrontPic_Grumpig, 0x800, 352
|
||||
obj_tiles gMonFrontPic_Plusle, 0x800, 353
|
||||
obj_tiles gMonFrontPic_Minun, 0x800, 354
|
||||
obj_tiles gMonFrontPic_Mawile, 0x800, 355
|
||||
obj_tiles gMonFrontPic_Meditite, 0x800, 356
|
||||
obj_tiles gMonFrontPic_Medicham, 0x800, 357
|
||||
obj_tiles gMonFrontPic_Swablu, 0x800, 358
|
||||
obj_tiles gMonFrontPic_Altaria, 0x800, 359
|
||||
obj_tiles gMonFrontPic_Wynaut, 0x800, 360
|
||||
obj_tiles gMonFrontPic_Duskull, 0x800, 361
|
||||
obj_tiles gMonFrontPic_Dusclops, 0x800, 362
|
||||
obj_tiles gMonFrontPic_Roselia, 0x800, 363
|
||||
obj_tiles gMonFrontPic_Slakoth, 0x800, 364
|
||||
obj_tiles gMonFrontPic_Vigoroth, 0x800, 365
|
||||
obj_tiles gMonFrontPic_Slaking, 0x800, 366
|
||||
obj_tiles gMonFrontPic_Gulpin, 0x800, 367
|
||||
obj_tiles gMonFrontPic_Swalot, 0x800, 368
|
||||
obj_tiles gMonFrontPic_Tropius, 0x800, 369
|
||||
obj_tiles gMonFrontPic_Whismur, 0x800, 370
|
||||
obj_tiles gMonFrontPic_Loudred, 0x800, 371
|
||||
obj_tiles gMonFrontPic_Exploud, 0x800, 372
|
||||
obj_tiles gMonFrontPic_Clamperl, 0x800, 373
|
||||
obj_tiles gMonFrontPic_Huntail, 0x800, 374
|
||||
obj_tiles gMonFrontPic_Gorebyss, 0x800, 375
|
||||
obj_tiles gMonFrontPic_Absol, 0x800, 376
|
||||
obj_tiles gMonFrontPic_Shuppet, 0x800, 377
|
||||
obj_tiles gMonFrontPic_Banette, 0x800, 378
|
||||
obj_tiles gMonFrontPic_Seviper, 0x800, 379
|
||||
obj_tiles gMonFrontPic_Zangoose, 0x800, 380
|
||||
obj_tiles gMonFrontPic_Relicanth, 0x800, 381
|
||||
obj_tiles gMonFrontPic_Aron, 0x800, 382
|
||||
obj_tiles gMonFrontPic_Lairon, 0x800, 383
|
||||
obj_tiles gMonFrontPic_Aggron, 0x800, 384
|
||||
obj_tiles gMonFrontPic_Castform, 0x800, 385
|
||||
obj_tiles gMonFrontPic_Volbeat, 0x800, 386
|
||||
obj_tiles gMonFrontPic_Illumise, 0x800, 387
|
||||
obj_tiles gMonFrontPic_Lileep, 0x800, 388
|
||||
obj_tiles gMonFrontPic_Cradily, 0x800, 389
|
||||
obj_tiles gMonFrontPic_Anorith, 0x800, 390
|
||||
obj_tiles gMonFrontPic_Armaldo, 0x800, 391
|
||||
obj_tiles gMonFrontPic_Ralts, 0x800, 392
|
||||
obj_tiles gMonFrontPic_Kirlia, 0x800, 393
|
||||
obj_tiles gMonFrontPic_Gardevoir, 0x800, 394
|
||||
obj_tiles gMonFrontPic_Bagon, 0x800, 395
|
||||
obj_tiles gMonFrontPic_Shelgon, 0x800, 396
|
||||
obj_tiles gMonFrontPic_Salamence, 0x800, 397
|
||||
obj_tiles gMonFrontPic_Beldum, 0x800, 398
|
||||
obj_tiles gMonFrontPic_Metang, 0x800, 399
|
||||
obj_tiles gMonFrontPic_Metagross, 0x800, 400
|
||||
obj_tiles gMonFrontPic_Regirock, 0x800, 401
|
||||
obj_tiles gMonFrontPic_Regice, 0x800, 402
|
||||
obj_tiles gMonFrontPic_Registeel, 0x800, 403
|
||||
obj_tiles gMonFrontPic_Kyogre, 0x800, 404
|
||||
obj_tiles gMonFrontPic_Groudon, 0x800, 405
|
||||
obj_tiles gMonFrontPic_Rayquaza, 0x800, 406
|
||||
obj_tiles gMonFrontPic_Latias, 0x800, 407
|
||||
obj_tiles gMonFrontPic_Latios, 0x800, 408
|
||||
obj_tiles gMonFrontPic_Jirachi, 0x800, 409
|
||||
obj_tiles gMonFrontPic_Deoxys, 0x800, 410
|
||||
obj_tiles gMonFrontPic_Chimecho, 0x800, 411
|
||||
obj_tiles gMonPic_Egg, 0x800, 412
|
||||
obj_tiles gMonFrontPic_UnownB, 0x800, 413
|
||||
obj_tiles gMonFrontPic_UnownC, 0x800, 414
|
||||
obj_tiles gMonFrontPic_UnownD, 0x800, 415
|
||||
obj_tiles gMonFrontPic_UnownE, 0x800, 416
|
||||
obj_tiles gMonFrontPic_UnownF, 0x800, 417
|
||||
obj_tiles gMonFrontPic_UnownG, 0x800, 418
|
||||
obj_tiles gMonFrontPic_UnownH, 0x800, 419
|
||||
obj_tiles gMonFrontPic_UnownI, 0x800, 420
|
||||
obj_tiles gMonFrontPic_UnownJ, 0x800, 421
|
||||
obj_tiles gMonFrontPic_UnownK, 0x800, 422
|
||||
obj_tiles gMonFrontPic_UnownL, 0x800, 423
|
||||
obj_tiles gMonFrontPic_UnownM, 0x800, 424
|
||||
obj_tiles gMonFrontPic_UnownN, 0x800, 425
|
||||
obj_tiles gMonFrontPic_UnownO, 0x800, 426
|
||||
obj_tiles gMonFrontPic_UnownP, 0x800, 427
|
||||
obj_tiles gMonFrontPic_UnownQ, 0x800, 428
|
||||
obj_tiles gMonFrontPic_UnownR, 0x800, 429
|
||||
obj_tiles gMonFrontPic_UnownS, 0x800, 430
|
||||
obj_tiles gMonFrontPic_UnownT, 0x800, 431
|
||||
obj_tiles gMonFrontPic_UnownU, 0x800, 432
|
||||
obj_tiles gMonFrontPic_UnownV, 0x800, 433
|
||||
obj_tiles gMonFrontPic_UnownW, 0x800, 434
|
||||
obj_tiles gMonFrontPic_UnownX, 0x800, 435
|
||||
obj_tiles gMonFrontPic_UnownY, 0x800, 436
|
||||
obj_tiles gMonFrontPic_UnownZ, 0x800, 437
|
||||
obj_tiles gMonFrontPic_UnownExclamationMark, 0x800, 438
|
||||
obj_tiles gMonFrontPic_UnownQuestionMark, 0x800, 439
|
12014
data/graphics/pokemon/graphics.s
Normal file
12014
data/graphics/pokemon/graphics.s
Normal file
File diff suppressed because it is too large
Load Diff
443
data/graphics/pokemon/icon_palette_indices.s
Normal file
443
data/graphics/pokemon/icon_palette_indices.s
Normal file
@ -0,0 +1,443 @@
|
||||
.align 2
|
||||
|
||||
gMonIconPaletteIndices: ; 83BC400
|
||||
.byte 0 ; ??????????
|
||||
.byte 1 ; Bulbasaur
|
||||
.byte 1 ; Ivysaur
|
||||
.byte 1 ; Venusaur
|
||||
.byte 0 ; Charmander
|
||||
.byte 0 ; Charmeleon
|
||||
.byte 0 ; Charizard
|
||||
.byte 0 ; Squirtle
|
||||
.byte 2 ; Wartortle
|
||||
.byte 2 ; Blastoise
|
||||
.byte 1 ; Caterpie
|
||||
.byte 1 ; Metapod
|
||||
.byte 0 ; Butterfree
|
||||
.byte 1 ; Weedle
|
||||
.byte 2 ; Kakuna
|
||||
.byte 2 ; Beedrill
|
||||
.byte 0 ; Pidgey
|
||||
.byte 0 ; Pidgeotto
|
||||
.byte 0 ; Pidgeot
|
||||
.byte 2 ; Rattata
|
||||
.byte 1 ; Raticate
|
||||
.byte 0 ; Spearow
|
||||
.byte 0 ; Fearow
|
||||
.byte 2 ; Ekans
|
||||
.byte 2 ; Arbok
|
||||
.byte 2 ; Pikachu
|
||||
.byte 0 ; Raichu
|
||||
.byte 2 ; Sandshrew
|
||||
.byte 2 ; Sandslash
|
||||
.byte 2 ; Nidoran♀
|
||||
.byte 2 ; Nidorina
|
||||
.byte 2 ; Nidoqueen
|
||||
.byte 2 ; Nidoran♂
|
||||
.byte 2 ; Nidorino
|
||||
.byte 2 ; Nidoking
|
||||
.byte 0 ; Clefairy
|
||||
.byte 0 ; Clefable
|
||||
.byte 2 ; Vulpix
|
||||
.byte 1 ; Ninetales
|
||||
.byte 0 ; Jigglypuff
|
||||
.byte 0 ; Wigglytuff
|
||||
.byte 2 ; Zubat
|
||||
.byte 2 ; Golbat
|
||||
.byte 1 ; Oddish
|
||||
.byte 0 ; Gloom
|
||||
.byte 0 ; Vileplume
|
||||
.byte 0 ; Paras
|
||||
.byte 0 ; Parasect
|
||||
.byte 0 ; Venonat
|
||||
.byte 2 ; Venomoth
|
||||
.byte 2 ; Diglett
|
||||
.byte 2 ; Dugtrio
|
||||
.byte 1 ; Meowth
|
||||
.byte 1 ; Persian
|
||||
.byte 1 ; Psyduck
|
||||
.byte 2 ; Golduck
|
||||
.byte 1 ; Mankey
|
||||
.byte 2 ; Primeape
|
||||
.byte 0 ; Growlithe
|
||||
.byte 0 ; Arcanine
|
||||
.byte 0 ; Poliwag
|
||||
.byte 0 ; Poliwhirl
|
||||
.byte 0 ; Poliwrath
|
||||
.byte 2 ; Abra
|
||||
.byte 2 ; Kadabra
|
||||
.byte 2 ; Alakazam
|
||||
.byte 0 ; Machop
|
||||
.byte 2 ; Machoke
|
||||
.byte 0 ; Machamp
|
||||
.byte 1 ; Bellsprout
|
||||
.byte 1 ; Weepinbell
|
||||
.byte 1 ; Victreebel
|
||||
.byte 2 ; Tentacool
|
||||
.byte 2 ; Tentacruel
|
||||
.byte 1 ; Geodude
|
||||
.byte 1 ; Graveler
|
||||
.byte 1 ; Golem
|
||||
.byte 0 ; Ponyta
|
||||
.byte 0 ; Rapidash
|
||||
.byte 0 ; Slowpoke
|
||||
.byte 0 ; Slowbro
|
||||
.byte 0 ; Magnemite
|
||||
.byte 0 ; Magneton
|
||||
.byte 1 ; Farfetch'd
|
||||
.byte 2 ; Doduo
|
||||
.byte 2 ; Dodrio
|
||||
.byte 2 ; Seel
|
||||
.byte 2 ; Dewgong
|
||||
.byte 2 ; Grimer
|
||||
.byte 2 ; Muk
|
||||
.byte 2 ; Shellder
|
||||
.byte 2 ; Cloyster
|
||||
.byte 2 ; Gastly
|
||||
.byte 2 ; Haunter
|
||||
.byte 2 ; Gengar
|
||||
.byte 2 ; Onix
|
||||
.byte 2 ; Drowzee
|
||||
.byte 1 ; Hypno
|
||||
.byte 2 ; Krabby
|
||||
.byte 2 ; Kingler
|
||||
.byte 0 ; Voltorb
|
||||
.byte 0 ; Electrode
|
||||
.byte 0 ; Exeggcute
|
||||
.byte 1 ; Exeggutor
|
||||
.byte 1 ; Cubone
|
||||
.byte 1 ; Marowak
|
||||
.byte 2 ; Hitmonlee
|
||||
.byte 2 ; Hitmonchan
|
||||
.byte 1 ; Lickitung
|
||||
.byte 2 ; Koffing
|
||||
.byte 2 ; Weezing
|
||||
.byte 1 ; Rhyhorn
|
||||
.byte 1 ; Rhydon
|
||||
.byte 0 ; Chansey
|
||||
.byte 0 ; Tangela
|
||||
.byte 1 ; Kangaskhan
|
||||
.byte 0 ; Horsea
|
||||
.byte 0 ; Seadra
|
||||
.byte 0 ; Goldeen
|
||||
.byte 0 ; Seaking
|
||||
.byte 2 ; Staryu
|
||||
.byte 2 ; Starmie
|
||||
.byte 0 ; Mr. mime
|
||||
.byte 1 ; Scyther
|
||||
.byte 2 ; Jynx
|
||||
.byte 1 ; Electabuzz
|
||||
.byte 0 ; Magmar
|
||||
.byte 2 ; Pinsir
|
||||
.byte 2 ; Tauros
|
||||
.byte 0 ; Magikarp
|
||||
.byte 0 ; Gyarados
|
||||
.byte 2 ; Lapras
|
||||
.byte 2 ; Ditto
|
||||
.byte 2 ; Eevee
|
||||
.byte 0 ; Vaporeon
|
||||
.byte 0 ; Jolteon
|
||||
.byte 0 ; Flareon
|
||||
.byte 0 ; Porygon
|
||||
.byte 0 ; Omanyte
|
||||
.byte 0 ; Omastar
|
||||
.byte 2 ; Kabuto
|
||||
.byte 2 ; Kabutops
|
||||
.byte 0 ; Aerodactyl
|
||||
.byte 1 ; Snorlax
|
||||
.byte 0 ; Articuno
|
||||
.byte 0 ; Zapdos
|
||||
.byte 0 ; Moltres
|
||||
.byte 0 ; Dratini
|
||||
.byte 0 ; Dragonair
|
||||
.byte 2 ; Dragonite
|
||||
.byte 2 ; Mewtwo
|
||||
.byte 0 ; Mew
|
||||
.byte 1 ; Chikorita
|
||||
.byte 1 ; Bayleef
|
||||
.byte 1 ; Meganium
|
||||
.byte 1 ; Cyndaquil
|
||||
.byte 1 ; Quilava
|
||||
.byte 1 ; Typhlosion
|
||||
.byte 2 ; Totodile
|
||||
.byte 2 ; Croconaw
|
||||
.byte 2 ; Feraligatr
|
||||
.byte 2 ; Sentret
|
||||
.byte 2 ; Furret
|
||||
.byte 2 ; Hoothoot
|
||||
.byte 2 ; Noctowl
|
||||
.byte 0 ; Ledyba
|
||||
.byte 0 ; Ledian
|
||||
.byte 1 ; Spinarak
|
||||
.byte 0 ; Ariados
|
||||
.byte 2 ; Crobat
|
||||
.byte 2 ; Chinchou
|
||||
.byte 0 ; Lanturn
|
||||
.byte 0 ; Pichu
|
||||
.byte 0 ; Cleffa
|
||||
.byte 1 ; Igglybuff
|
||||
.byte 2 ; Togepi
|
||||
.byte 2 ; Togetic
|
||||
.byte 0 ; Natu
|
||||
.byte 0 ; Xatu
|
||||
.byte 2 ; Mareep
|
||||
.byte 0 ; Flaaffy
|
||||
.byte 0 ; Ampharos
|
||||
.byte 1 ; Bellossom
|
||||
.byte 2 ; Marill
|
||||
.byte 2 ; Azumarill
|
||||
.byte 1 ; Sudowoodo
|
||||
.byte 1 ; Politoed
|
||||
.byte 1 ; Hoppip
|
||||
.byte 1 ; Skiploom
|
||||
.byte 2 ; Jumpluff
|
||||
.byte 2 ; Aipom
|
||||
.byte 1 ; Sunkern
|
||||
.byte 1 ; Sunflora
|
||||
.byte 1 ; Yanma
|
||||
.byte 0 ; Wooper
|
||||
.byte 0 ; Quagsire
|
||||
.byte 2 ; Espeon
|
||||
.byte 2 ; Umbreon
|
||||
.byte 2 ; Murkrow
|
||||
.byte 0 ; Slowking
|
||||
.byte 0 ; Misdreavus
|
||||
.byte 0 ; Unown A
|
||||
.byte 0 ; Wobbuffet
|
||||
.byte 1 ; Girafarig
|
||||
.byte 0 ; Pineco
|
||||
.byte 2 ; Forretress
|
||||
.byte 2 ; Dunsparce
|
||||
.byte 2 ; Gligar
|
||||
.byte 0 ; Steelix
|
||||
.byte 0 ; Snubbull
|
||||
.byte 2 ; Granbull
|
||||
.byte 0 ; Qwilfish
|
||||
.byte 0 ; Scizor
|
||||
.byte 1 ; Shuckle
|
||||
.byte 2 ; Heracross
|
||||
.byte 0 ; Sneasel
|
||||
.byte 0 ; Teddiursa
|
||||
.byte 2 ; Ursaring
|
||||
.byte 0 ; Slugma
|
||||
.byte 0 ; Magcargo
|
||||
.byte 2 ; Swinub
|
||||
.byte 2 ; Piloswine
|
||||
.byte 0 ; Corsola
|
||||
.byte 0 ; Remoraid
|
||||
.byte 0 ; Octillery
|
||||
.byte 0 ; Delibird
|
||||
.byte 2 ; Mantine
|
||||
.byte 0 ; Skarmory
|
||||
.byte 0 ; Houndour
|
||||
.byte 0 ; Houndoom
|
||||
.byte 0 ; Kingdra
|
||||
.byte 0 ; Phanpy
|
||||
.byte 0 ; Donphan
|
||||
.byte 0 ; Porygon2
|
||||
.byte 2 ; Stantler
|
||||
.byte 1 ; Smeargle
|
||||
.byte 2 ; Tyrogue
|
||||
.byte 2 ; Hitmontop
|
||||
.byte 1 ; Smoochum
|
||||
.byte 1 ; Elekid
|
||||
.byte 1 ; Magby
|
||||
.byte 1 ; Miltank
|
||||
.byte 1 ; Blissey
|
||||
.byte 0 ; Raikou
|
||||
.byte 2 ; Entei
|
||||
.byte 0 ; Suicune
|
||||
.byte 1 ; Larvitar
|
||||
.byte 0 ; Pupitar
|
||||
.byte 1 ; Tyranitar
|
||||
.byte 0 ; Lugia
|
||||
.byte 1 ; Ho-Oh
|
||||
.byte 1 ; Celebi
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 0 ; ?
|
||||
.byte 1 ; Treecko
|
||||
.byte 0 ; Grovyle
|
||||
.byte 1 ; Sceptile
|
||||
.byte 0 ; Torchic
|
||||
.byte 0 ; Combusken
|
||||
.byte 0 ; Blaziken
|
||||
.byte 0 ; Mudkip
|
||||
.byte 0 ; Marshtomp
|
||||
.byte 0 ; Swampert
|
||||
.byte 2 ; Poochyena
|
||||
.byte 2 ; Mightyena
|
||||
.byte 2 ; Zigzagoon
|
||||
.byte 2 ; Linoone
|
||||
.byte 0 ; Wurmple
|
||||
.byte 2 ; Silcoon
|
||||
.byte 0 ; Beautifly
|
||||
.byte 2 ; Cascoon
|
||||
.byte 1 ; Dustox
|
||||
.byte 1 ; Lotad
|
||||
.byte 1 ; Lombre
|
||||
.byte 1 ; Ludicolo
|
||||
.byte 1 ; Seedot
|
||||
.byte 1 ; Nuzleaf
|
||||
.byte 0 ; Shiftry
|
||||
.byte 1 ; Nincada
|
||||
.byte 1 ; Ninjask
|
||||
.byte 1 ; Shedinja
|
||||
.byte 2 ; Taillow
|
||||
.byte 2 ; Swellow
|
||||
.byte 1 ; Shroomish
|
||||
.byte 1 ; Breloom
|
||||
.byte 1 ; Spinda
|
||||
.byte 0 ; Wingull
|
||||
.byte 0 ; Pelipper
|
||||
.byte 2 ; Surskit
|
||||
.byte 0 ; Masquerain
|
||||
.byte 2 ; Wailmer
|
||||
.byte 0 ; Wailord
|
||||
.byte 0 ; Skitty
|
||||
.byte 2 ; Delcatty
|
||||
.byte 1 ; Kecleon
|
||||
.byte 1 ; Baltoy
|
||||
.byte 0 ; Claydol
|
||||
.byte 0 ; Nosepass
|
||||
.byte 1 ; Torkoal
|
||||
.byte 2 ; Sableye
|
||||
.byte 0 ; Barboach
|
||||
.byte 0 ; Whiscash
|
||||
.byte 0 ; Luvdisc
|
||||
.byte 0 ; Corphish
|
||||
.byte 0 ; Crawdaunt
|
||||
.byte 2 ; Feebas
|
||||
.byte 0 ; Milotic
|
||||
.byte 0 ; Carvanha
|
||||
.byte 0 ; Sharpedo
|
||||
.byte 1 ; Trapinch
|
||||
.byte 1 ; Vibrava
|
||||
.byte 1 ; Flygon
|
||||
.byte 2 ; Makuhita
|
||||
.byte 1 ; Hariyama
|
||||
.byte 1 ; Electrike
|
||||
.byte 0 ; Manectric
|
||||
.byte 1 ; Numel
|
||||
.byte 0 ; Camerupt
|
||||
.byte 2 ; Spheal
|
||||
.byte 2 ; Sealeo
|
||||
.byte 0 ; Walrein
|
||||
.byte 1 ; Cacnea
|
||||
.byte 1 ; Cacturne
|
||||
.byte 2 ; Snorunt
|
||||
.byte 0 ; Glalie
|
||||
.byte 1 ; Lunatone
|
||||
.byte 0 ; Solrock
|
||||
.byte 2 ; Azurill
|
||||
.byte 0 ; Spoink
|
||||
.byte 2 ; Grumpig
|
||||
.byte 0 ; Plusle
|
||||
.byte 0 ; Minun
|
||||
.byte 2 ; Mawile
|
||||
.byte 0 ; Meditite
|
||||
.byte 0 ; Medicham
|
||||
.byte 0 ; Swablu
|
||||
.byte 0 ; Altaria
|
||||
.byte 0 ; Wynaut
|
||||
.byte 0 ; Duskull
|
||||
.byte 0 ; Dusclops
|
||||
.byte 0 ; Roselia
|
||||
.byte 2 ; Slakoth
|
||||
.byte 2 ; Vigoroth
|
||||
.byte 1 ; Slaking
|
||||
.byte 1 ; Gulpin
|
||||
.byte 2 ; Swalot
|
||||
.byte 1 ; Tropius
|
||||
.byte 0 ; Whismur
|
||||
.byte 2 ; Loudred
|
||||
.byte 2 ; Exploud
|
||||
.byte 0 ; Clamperl
|
||||
.byte 0 ; Huntail
|
||||
.byte 0 ; Gorebyss
|
||||
.byte 0 ; Absol
|
||||
.byte 0 ; Shuppet
|
||||
.byte 0 ; Banette
|
||||
.byte 2 ; Seviper
|
||||
.byte 0 ; Zangoose
|
||||
.byte 1 ; Relicanth
|
||||
.byte 2 ; Aron
|
||||
.byte 2 ; Lairon
|
||||
.byte 2 ; Aggron
|
||||
.byte 0 ; Castform
|
||||
.byte 0 ; Volbeat
|
||||
.byte 2 ; Illumise
|
||||
.byte 2 ; Lileep
|
||||
.byte 0 ; Cradily
|
||||
.byte 0 ; Anorith
|
||||
.byte 0 ; Armaldo
|
||||
.byte 1 ; Ralts
|
||||
.byte 1 ; Kirlia
|
||||
.byte 1 ; Gardevoir
|
||||
.byte 2 ; Bagon
|
||||
.byte 2 ; Shelgon
|
||||
.byte 0 ; Salamence
|
||||
.byte 0 ; Beldum
|
||||
.byte 0 ; Metang
|
||||
.byte 0 ; Metagross
|
||||
.byte 2 ; Regirock
|
||||
.byte 2 ; Regice
|
||||
.byte 2 ; Registeel
|
||||
.byte 2 ; Kyogre
|
||||
.byte 0 ; Groudon
|
||||
.byte 1 ; Rayquaza
|
||||
.byte 0 ; Latias
|
||||
.byte 2 ; Latios
|
||||
.byte 0 ; Jirachi
|
||||
.byte 0 ; Deoxys
|
||||
.byte 0 ; Chimecho
|
||||
.byte 1 ; Egg
|
||||
.byte 0 ; Unown B
|
||||
.byte 0 ; Unown C
|
||||
.byte 0 ; Unown D
|
||||
.byte 0 ; Unown E
|
||||
.byte 0 ; Unown F
|
||||
.byte 0 ; Unown G
|
||||
.byte 0 ; Unown H
|
||||
.byte 0 ; Unown I
|
||||
.byte 0 ; Unown J
|
||||
.byte 0 ; Unown K
|
||||
.byte 0 ; Unown L
|
||||
.byte 0 ; Unown M
|
||||
.byte 0 ; Unown N
|
||||
.byte 0 ; Unown O
|
||||
.byte 0 ; Unown P
|
||||
.byte 0 ; Unown Q
|
||||
.byte 0 ; Unown R
|
||||
.byte 0 ; Unown S
|
||||
.byte 0 ; Unown T
|
||||
.byte 0 ; Unown U
|
||||
.byte 0 ; Unown V
|
||||
.byte 0 ; Unown W
|
||||
.byte 0 ; Unown X
|
||||
.byte 0 ; Unown Y
|
||||
.byte 0 ; Unown Z
|
||||
.byte 0 ; Unown Exclamation Mark
|
||||
.byte 0 ; Unown Question Mark
|
12
data/graphics/pokemon/icon_palette_table.s
Normal file
12
data/graphics/pokemon/icon_palette_table.s
Normal file
@ -0,0 +1,12 @@
|
||||
.align 2
|
||||
|
||||
gMonIconPaletteTable: ; 83BC5B8
|
||||
obj_pal gMonIconPalettes + 0 * 32, 56000
|
||||
obj_pal gMonIconPalettes + 1 * 32, 56001
|
||||
obj_pal gMonIconPalettes + 2 * 32, 56002
|
||||
|
||||
; These palettes are actually part of the title screen BG palette and are not
|
||||
; used for Pokémon icons.
|
||||
obj_pal gMonIconPalettes + 3 * 32, 56003
|
||||
obj_pal gMonIconPalettes + 4 * 32, 56004
|
||||
obj_pal gMonIconPalettes + 5 * 32, 56005
|
443
data/graphics/pokemon/icon_table.s
Normal file
443
data/graphics/pokemon/icon_table.s
Normal file
@ -0,0 +1,443 @@
|
||||
.align 2
|
||||
|
||||
gMonIconTable: ; 83BBD20
|
||||
.4byte gMonIcon_Bulbasaur
|
||||
.4byte gMonIcon_Bulbasaur
|
||||
.4byte gMonIcon_Ivysaur
|
||||
.4byte gMonIcon_Venusaur
|
||||
.4byte gMonIcon_Charmander
|
||||
.4byte gMonIcon_Charmeleon
|
||||
.4byte gMonIcon_Charizard
|
||||
.4byte gMonIcon_Squirtle
|
||||
.4byte gMonIcon_Wartortle
|
||||
.4byte gMonIcon_Blastoise
|
||||
.4byte gMonIcon_Caterpie
|
||||
.4byte gMonIcon_Metapod
|
||||
.4byte gMonIcon_Butterfree
|
||||
.4byte gMonIcon_Weedle
|
||||
.4byte gMonIcon_Kakuna
|
||||
.4byte gMonIcon_Beedrill
|
||||
.4byte gMonIcon_Pidgey
|
||||
.4byte gMonIcon_Pidgeotto
|
||||
.4byte gMonIcon_Pidgeot
|
||||
.4byte gMonIcon_Rattata
|
||||
.4byte gMonIcon_Raticate
|
||||
.4byte gMonIcon_Spearow
|
||||
.4byte gMonIcon_Fearow
|
||||
.4byte gMonIcon_Ekans
|
||||
.4byte gMonIcon_Arbok
|
||||
.4byte gMonIcon_Pikachu
|
||||
.4byte gMonIcon_Raichu
|
||||
.4byte gMonIcon_Sandshrew
|
||||
.4byte gMonIcon_Sandslash
|
||||
.4byte gMonIcon_NidoranF
|
||||
.4byte gMonIcon_Nidorina
|
||||
.4byte gMonIcon_Nidoqueen
|
||||
.4byte gMonIcon_NidoranM
|
||||
.4byte gMonIcon_Nidorino
|
||||
.4byte gMonIcon_Nidoking
|
||||
.4byte gMonIcon_Clefairy
|
||||
.4byte gMonIcon_Clefable
|
||||
.4byte gMonIcon_Vulpix
|
||||
.4byte gMonIcon_Ninetales
|
||||
.4byte gMonIcon_Jigglypuff
|
||||
.4byte gMonIcon_Wigglytuff
|
||||
.4byte gMonIcon_Zubat
|
||||
.4byte gMonIcon_Golbat
|
||||
.4byte gMonIcon_Oddish
|
||||
.4byte gMonIcon_Gloom
|
||||
.4byte gMonIcon_Vileplume
|
||||
.4byte gMonIcon_Paras
|
||||
.4byte gMonIcon_Parasect
|
||||
.4byte gMonIcon_Venonat
|
||||
.4byte gMonIcon_Venomoth
|
||||
.4byte gMonIcon_Diglett
|
||||
.4byte gMonIcon_Dugtrio
|
||||
.4byte gMonIcon_Meowth
|
||||
.4byte gMonIcon_Persian
|
||||
.4byte gMonIcon_Psyduck
|
||||
.4byte gMonIcon_Golduck
|
||||
.4byte gMonIcon_Mankey
|
||||
.4byte gMonIcon_Primeape
|
||||
.4byte gMonIcon_Growlithe
|
||||
.4byte gMonIcon_Arcanine
|
||||
.4byte gMonIcon_Poliwag
|
||||
.4byte gMonIcon_Poliwhirl
|
||||
.4byte gMonIcon_Poliwrath
|
||||
.4byte gMonIcon_Abra
|
||||
.4byte gMonIcon_Kadabra
|
||||
.4byte gMonIcon_Alakazam
|
||||
.4byte gMonIcon_Machop
|
||||
.4byte gMonIcon_Machoke
|
||||
.4byte gMonIcon_Machamp
|
||||
.4byte gMonIcon_Bellsprout
|
||||
.4byte gMonIcon_Weepinbell
|
||||
.4byte gMonIcon_Victreebel
|
||||
.4byte gMonIcon_Tentacool
|
||||
.4byte gMonIcon_Tentacruel
|
||||
.4byte gMonIcon_Geodude
|
||||
.4byte gMonIcon_Graveler
|
||||
.4byte gMonIcon_Golem
|
||||
.4byte gMonIcon_Ponyta
|
||||
.4byte gMonIcon_Rapidash
|
||||
.4byte gMonIcon_Slowpoke
|
||||
.4byte gMonIcon_Slowbro
|
||||
.4byte gMonIcon_Magnemite
|
||||
.4byte gMonIcon_Magneton
|
||||
.4byte gMonIcon_Farfetchd
|
||||
.4byte gMonIcon_Doduo
|
||||
.4byte gMonIcon_Dodrio
|
||||
.4byte gMonIcon_Seel
|
||||
.4byte gMonIcon_Dewgong
|
||||
.4byte gMonIcon_Grimer
|
||||
.4byte gMonIcon_Muk
|
||||
.4byte gMonIcon_Shellder
|
||||
.4byte gMonIcon_Cloyster
|
||||
.4byte gMonIcon_Gastly
|
||||
.4byte gMonIcon_Haunter
|
||||
.4byte gMonIcon_Gengar
|
||||
.4byte gMonIcon_Onix
|
||||
.4byte gMonIcon_Drowzee
|
||||
.4byte gMonIcon_Hypno
|
||||
.4byte gMonIcon_Krabby
|
||||
.4byte gMonIcon_Kingler
|
||||
.4byte gMonIcon_Voltorb
|
||||
.4byte gMonIcon_Electrode
|
||||
.4byte gMonIcon_Exeggcute
|
||||
.4byte gMonIcon_Exeggutor
|
||||
.4byte gMonIcon_Cubone
|
||||
.4byte gMonIcon_Marowak
|
||||
.4byte gMonIcon_Hitmonlee
|
||||
.4byte gMonIcon_Hitmonchan
|
||||
.4byte gMonIcon_Lickitung
|
||||
.4byte gMonIcon_Koffing
|
||||
.4byte gMonIcon_Weezing
|
||||
.4byte gMonIcon_Rhyhorn
|
||||
.4byte gMonIcon_Rhydon
|
||||
.4byte gMonIcon_Chansey
|
||||
.4byte gMonIcon_Tangela
|
||||
.4byte gMonIcon_Kangaskhan
|
||||
.4byte gMonIcon_Horsea
|
||||
.4byte gMonIcon_Seadra
|
||||
.4byte gMonIcon_Goldeen
|
||||
.4byte gMonIcon_Seaking
|
||||
.4byte gMonIcon_Staryu
|
||||
.4byte gMonIcon_Starmie
|
||||
.4byte gMonIcon_Mrmime
|
||||
.4byte gMonIcon_Scyther
|
||||
.4byte gMonIcon_Jynx
|
||||
.4byte gMonIcon_Electabuzz
|
||||
.4byte gMonIcon_Magmar
|
||||
.4byte gMonIcon_Pinsir
|
||||
.4byte gMonIcon_Tauros
|
||||
.4byte gMonIcon_Magikarp
|
||||
.4byte gMonIcon_Gyarados
|
||||
.4byte gMonIcon_Lapras
|
||||
.4byte gMonIcon_Ditto
|
||||
.4byte gMonIcon_Eevee
|
||||
.4byte gMonIcon_Vaporeon
|
||||
.4byte gMonIcon_Jolteon
|
||||
.4byte gMonIcon_Flareon
|
||||
.4byte gMonIcon_Porygon
|
||||
.4byte gMonIcon_Omanyte
|
||||
.4byte gMonIcon_Omastar
|
||||
.4byte gMonIcon_Kabuto
|
||||
.4byte gMonIcon_Kabutops
|
||||
.4byte gMonIcon_Aerodactyl
|
||||
.4byte gMonIcon_Snorlax
|
||||
.4byte gMonIcon_Articuno
|
||||
.4byte gMonIcon_Zapdos
|
||||
.4byte gMonIcon_Moltres
|
||||
.4byte gMonIcon_Dratini
|
||||
.4byte gMonIcon_Dragonair
|
||||
.4byte gMonIcon_Dragonite
|
||||
.4byte gMonIcon_Mewtwo
|
||||
.4byte gMonIcon_Mew
|
||||
.4byte gMonIcon_Chikorita
|
||||
.4byte gMonIcon_Bayleef
|
||||
.4byte gMonIcon_Meganium
|
||||
.4byte gMonIcon_Cyndaquil
|
||||
.4byte gMonIcon_Quilava
|
||||
.4byte gMonIcon_Typhlosion
|
||||
.4byte gMonIcon_Totodile
|
||||
.4byte gMonIcon_Croconaw
|
||||
.4byte gMonIcon_Feraligatr
|
||||
.4byte gMonIcon_Sentret
|
||||
.4byte gMonIcon_Furret
|
||||
.4byte gMonIcon_Hoothoot
|
||||
.4byte gMonIcon_Noctowl
|
||||
.4byte gMonIcon_Ledyba
|
||||
.4byte gMonIcon_Ledian
|
||||
.4byte gMonIcon_Spinarak
|
||||
.4byte gMonIcon_Ariados
|
||||
.4byte gMonIcon_Crobat
|
||||
.4byte gMonIcon_Chinchou
|
||||
.4byte gMonIcon_Lanturn
|
||||
.4byte gMonIcon_Pichu
|
||||
.4byte gMonIcon_Cleffa
|
||||
.4byte gMonIcon_Igglybuff
|
||||
.4byte gMonIcon_Togepi
|
||||
.4byte gMonIcon_Togetic
|
||||
.4byte gMonIcon_Natu
|
||||
.4byte gMonIcon_Xatu
|
||||
.4byte gMonIcon_Mareep
|
||||
.4byte gMonIcon_Flaaffy
|
||||
.4byte gMonIcon_Ampharos
|
||||
.4byte gMonIcon_Bellossom
|
||||
.4byte gMonIcon_Marill
|
||||
.4byte gMonIcon_Azumarill
|
||||
.4byte gMonIcon_Sudowoodo
|
||||
.4byte gMonIcon_Politoed
|
||||
.4byte gMonIcon_Hoppip
|
||||
.4byte gMonIcon_Skiploom
|
||||
.4byte gMonIcon_Jumpluff
|
||||
.4byte gMonIcon_Aipom
|
||||
.4byte gMonIcon_Sunkern
|
||||
.4byte gMonIcon_Sunflora
|
||||
.4byte gMonIcon_Yanma
|
||||
.4byte gMonIcon_Wooper
|
||||
.4byte gMonIcon_Quagsire
|
||||
.4byte gMonIcon_Espeon
|
||||
.4byte gMonIcon_Umbreon
|
||||
.4byte gMonIcon_Murkrow
|
||||
.4byte gMonIcon_Slowking
|
||||
.4byte gMonIcon_Misdreavus
|
||||
.4byte gMonIcon_UnownA
|
||||
.4byte gMonIcon_Wobbuffet
|
||||
.4byte gMonIcon_Girafarig
|
||||
.4byte gMonIcon_Pineco
|
||||
.4byte gMonIcon_Forretress
|
||||
.4byte gMonIcon_Dunsparce
|
||||
.4byte gMonIcon_Gligar
|
||||
.4byte gMonIcon_Steelix
|
||||
.4byte gMonIcon_Snubbull
|
||||
.4byte gMonIcon_Granbull
|
||||
.4byte gMonIcon_Qwilfish
|
||||
.4byte gMonIcon_Scizor
|
||||
.4byte gMonIcon_Shuckle
|
||||
.4byte gMonIcon_Heracross
|
||||
.4byte gMonIcon_Sneasel
|
||||
.4byte gMonIcon_Teddiursa
|
||||
.4byte gMonIcon_Ursaring
|
||||
.4byte gMonIcon_Slugma
|
||||
.4byte gMonIcon_Magcargo
|
||||
.4byte gMonIcon_Swinub
|
||||
.4byte gMonIcon_Piloswine
|
||||
.4byte gMonIcon_Corsola
|
||||
.4byte gMonIcon_Remoraid
|
||||
.4byte gMonIcon_Octillery
|
||||
.4byte gMonIcon_Delibird
|
||||
.4byte gMonIcon_Mantine
|
||||
.4byte gMonIcon_Skarmory
|
||||
.4byte gMonIcon_Houndour
|
||||
.4byte gMonIcon_Houndoom
|
||||
.4byte gMonIcon_Kingdra
|
||||
.4byte gMonIcon_Phanpy
|
||||
.4byte gMonIcon_Donphan
|
||||
.4byte gMonIcon_Porygon2
|
||||
.4byte gMonIcon_Stantler
|
||||
.4byte gMonIcon_Smeargle
|
||||
.4byte gMonIcon_Tyrogue
|
||||
.4byte gMonIcon_Hitmontop
|
||||
.4byte gMonIcon_Smoochum
|
||||
.4byte gMonIcon_Elekid
|
||||
.4byte gMonIcon_Magby
|
||||
.4byte gMonIcon_Miltank
|
||||
.4byte gMonIcon_Blissey
|
||||
.4byte gMonIcon_Raikou
|
||||
.4byte gMonIcon_Entei
|
||||
.4byte gMonIcon_Suicune
|
||||
.4byte gMonIcon_Larvitar
|
||||
.4byte gMonIcon_Pupitar
|
||||
.4byte gMonIcon_Tyranitar
|
||||
.4byte gMonIcon_Lugia
|
||||
.4byte gMonIcon_HoOh
|
||||
.4byte gMonIcon_Celebi
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_QuestionMark
|
||||
.4byte gMonIcon_Treecko
|
||||
.4byte gMonIcon_Grovyle
|
||||
.4byte gMonIcon_Sceptile
|
||||
.4byte gMonIcon_Torchic
|
||||
.4byte gMonIcon_Combusken
|
||||
.4byte gMonIcon_Blaziken
|
||||
.4byte gMonIcon_Mudkip
|
||||
.4byte gMonIcon_Marshtomp
|
||||
.4byte gMonIcon_Swampert
|
||||
.4byte gMonIcon_Poochyena
|
||||
.4byte gMonIcon_Mightyena
|
||||
.4byte gMonIcon_Zigzagoon
|
||||
.4byte gMonIcon_Linoone
|
||||
.4byte gMonIcon_Wurmple
|
||||
.4byte gMonIcon_Silcoon
|
||||
.4byte gMonIcon_Beautifly
|
||||
.4byte gMonIcon_Cascoon
|
||||
.4byte gMonIcon_Dustox
|
||||
.4byte gMonIcon_Lotad
|
||||
.4byte gMonIcon_Lombre
|
||||
.4byte gMonIcon_Ludicolo
|
||||
.4byte gMonIcon_Seedot
|
||||
.4byte gMonIcon_Nuzleaf
|
||||
.4byte gMonIcon_Shiftry
|
||||
.4byte gMonIcon_Nincada
|
||||
.4byte gMonIcon_Ninjask
|
||||
.4byte gMonIcon_Shedinja
|
||||
.4byte gMonIcon_Taillow
|
||||
.4byte gMonIcon_Swellow
|
||||
.4byte gMonIcon_Shroomish
|
||||
.4byte gMonIcon_Breloom
|
||||
.4byte gMonIcon_Spinda
|
||||
.4byte gMonIcon_Wingull
|
||||
.4byte gMonIcon_Pelipper
|
||||
.4byte gMonIcon_Surskit
|
||||
.4byte gMonIcon_Masquerain
|
||||
.4byte gMonIcon_Wailmer
|
||||
.4byte gMonIcon_Wailord
|
||||
.4byte gMonIcon_Skitty
|
||||
.4byte gMonIcon_Delcatty
|
||||
.4byte gMonIcon_Kecleon
|
||||
.4byte gMonIcon_Baltoy
|
||||
.4byte gMonIcon_Claydol
|
||||
.4byte gMonIcon_Nosepass
|
||||
.4byte gMonIcon_Torkoal
|
||||
.4byte gMonIcon_Sableye
|
||||
.4byte gMonIcon_Barboach
|
||||
.4byte gMonIcon_Whiscash
|
||||
.4byte gMonIcon_Luvdisc
|
||||
.4byte gMonIcon_Corphish
|
||||
.4byte gMonIcon_Crawdaunt
|
||||
.4byte gMonIcon_Feebas
|
||||
.4byte gMonIcon_Milotic
|
||||
.4byte gMonIcon_Carvanha
|
||||
.4byte gMonIcon_Sharpedo
|
||||
.4byte gMonIcon_Trapinch
|
||||
.4byte gMonIcon_Vibrava
|
||||
.4byte gMonIcon_Flygon
|
||||
.4byte gMonIcon_Makuhita
|
||||
.4byte gMonIcon_Hariyama
|
||||
.4byte gMonIcon_Electrike
|
||||
.4byte gMonIcon_Manectric
|
||||
.4byte gMonIcon_Numel
|
||||
.4byte gMonIcon_Camerupt
|
||||
.4byte gMonIcon_Spheal
|
||||
.4byte gMonIcon_Sealeo
|
||||
.4byte gMonIcon_Walrein
|
||||
.4byte gMonIcon_Cacnea
|
||||
.4byte gMonIcon_Cacturne
|
||||
.4byte gMonIcon_Snorunt
|
||||
.4byte gMonIcon_Glalie
|
||||
.4byte gMonIcon_Lunatone
|
||||
.4byte gMonIcon_Solrock
|
||||
.4byte gMonIcon_Azurill
|
||||
.4byte gMonIcon_Spoink
|
||||
.4byte gMonIcon_Grumpig
|
||||
.4byte gMonIcon_Plusle
|
||||
.4byte gMonIcon_Minun
|
||||
.4byte gMonIcon_Mawile
|
||||
.4byte gMonIcon_Meditite
|
||||
.4byte gMonIcon_Medicham
|
||||
.4byte gMonIcon_Swablu
|
||||
.4byte gMonIcon_Altaria
|
||||
.4byte gMonIcon_Wynaut
|
||||
.4byte gMonIcon_Duskull
|
||||
.4byte gMonIcon_Dusclops
|
||||
.4byte gMonIcon_Roselia
|
||||
.4byte gMonIcon_Slakoth
|
||||
.4byte gMonIcon_Vigoroth
|
||||
.4byte gMonIcon_Slaking
|
||||
.4byte gMonIcon_Gulpin
|
||||
.4byte gMonIcon_Swalot
|
||||
.4byte gMonIcon_Tropius
|
||||
.4byte gMonIcon_Whismur
|
||||
.4byte gMonIcon_Loudred
|
||||
.4byte gMonIcon_Exploud
|
||||
.4byte gMonIcon_Clamperl
|
||||
.4byte gMonIcon_Huntail
|
||||
.4byte gMonIcon_Gorebyss
|
||||
.4byte gMonIcon_Absol
|
||||
.4byte gMonIcon_Shuppet
|
||||
.4byte gMonIcon_Banette
|
||||
.4byte gMonIcon_Seviper
|
||||
.4byte gMonIcon_Zangoose
|
||||
.4byte gMonIcon_Relicanth
|
||||
.4byte gMonIcon_Aron
|
||||
.4byte gMonIcon_Lairon
|
||||
.4byte gMonIcon_Aggron
|
||||
.4byte gMonIcon_Castform
|
||||
.4byte gMonIcon_Volbeat
|
||||
.4byte gMonIcon_Illumise
|
||||
.4byte gMonIcon_Lileep
|
||||
.4byte gMonIcon_Cradily
|
||||
.4byte gMonIcon_Anorith
|
||||
.4byte gMonIcon_Armaldo
|
||||
.4byte gMonIcon_Ralts
|
||||
.4byte gMonIcon_Kirlia
|
||||
.4byte gMonIcon_Gardevoir
|
||||
.4byte gMonIcon_Bagon
|
||||
.4byte gMonIcon_Shelgon
|
||||
.4byte gMonIcon_Salamence
|
||||
.4byte gMonIcon_Beldum
|
||||
.4byte gMonIcon_Metang
|
||||
.4byte gMonIcon_Metagross
|
||||
.4byte gMonIcon_Regirock
|
||||
.4byte gMonIcon_Regice
|
||||
.4byte gMonIcon_Registeel
|
||||
.4byte gMonIcon_Kyogre
|
||||
.4byte gMonIcon_Groudon
|
||||
.4byte gMonIcon_Rayquaza
|
||||
.4byte gMonIcon_Latias
|
||||
.4byte gMonIcon_Latios
|
||||
.4byte gMonIcon_Jirachi
|
||||
.4byte gMonIcon_Deoxys
|
||||
.4byte gMonIcon_Chimecho
|
||||
.4byte gMonIcon_Egg
|
||||
.4byte gMonIcon_UnownB
|
||||
.4byte gMonIcon_UnownC
|
||||
.4byte gMonIcon_UnownD
|
||||
.4byte gMonIcon_UnownE
|
||||
.4byte gMonIcon_UnownF
|
||||
.4byte gMonIcon_UnownG
|
||||
.4byte gMonIcon_UnownH
|
||||
.4byte gMonIcon_UnownI
|
||||
.4byte gMonIcon_UnownJ
|
||||
.4byte gMonIcon_UnownK
|
||||
.4byte gMonIcon_UnownL
|
||||
.4byte gMonIcon_UnownM
|
||||
.4byte gMonIcon_UnownN
|
||||
.4byte gMonIcon_UnownO
|
||||
.4byte gMonIcon_UnownP
|
||||
.4byte gMonIcon_UnownQ
|
||||
.4byte gMonIcon_UnownR
|
||||
.4byte gMonIcon_UnownS
|
||||
.4byte gMonIcon_UnownT
|
||||
.4byte gMonIcon_UnownU
|
||||
.4byte gMonIcon_UnownV
|
||||
.4byte gMonIcon_UnownW
|
||||
.4byte gMonIcon_UnownX
|
||||
.4byte gMonIcon_UnownY
|
||||
.4byte gMonIcon_UnownZ
|
||||
.4byte gMonIcon_UnownExclamationMark
|
||||
.4byte gMonIcon_UnownQuestionMark
|
443
data/graphics/pokemon/palette_table.s
Normal file
443
data/graphics/pokemon/palette_table.s
Normal file
@ -0,0 +1,443 @@
|
||||
.align 2
|
||||
|
||||
gMonPaletteTable: ; 81EA5B4
|
||||
obj_pal gMonPalette_CircledQuestionMark, 0
|
||||
obj_pal gMonPalette_Bulbasaur, 1
|
||||
obj_pal gMonPalette_Ivysaur, 2
|
||||
obj_pal gMonPalette_Venusaur, 3
|
||||
obj_pal gMonPalette_Charmander, 4
|
||||
obj_pal gMonPalette_Charmeleon, 5
|
||||
obj_pal gMonPalette_Charizard, 6
|
||||
obj_pal gMonPalette_Squirtle, 7
|
||||
obj_pal gMonPalette_Wartortle, 8
|
||||
obj_pal gMonPalette_Blastoise, 9
|
||||
obj_pal gMonPalette_Caterpie, 10
|
||||
obj_pal gMonPalette_Metapod, 11
|
||||
obj_pal gMonPalette_Butterfree, 12
|
||||
obj_pal gMonPalette_Weedle, 13
|
||||
obj_pal gMonPalette_Kakuna, 14
|
||||
obj_pal gMonPalette_Beedrill, 15
|
||||
obj_pal gMonPalette_Pidgey, 16
|
||||
obj_pal gMonPalette_Pidgeotto, 17
|
||||
obj_pal gMonPalette_Pidgeot, 18
|
||||
obj_pal gMonPalette_Rattata, 19
|
||||
obj_pal gMonPalette_Raticate, 20
|
||||
obj_pal gMonPalette_Spearow, 21
|
||||
obj_pal gMonPalette_Fearow, 22
|
||||
obj_pal gMonPalette_Ekans, 23
|
||||
obj_pal gMonPalette_Arbok, 24
|
||||
obj_pal gMonPalette_Pikachu, 25
|
||||
obj_pal gMonPalette_Raichu, 26
|
||||
obj_pal gMonPalette_Sandshrew, 27
|
||||
obj_pal gMonPalette_Sandslash, 28
|
||||
obj_pal gMonPalette_NidoranF, 29
|
||||
obj_pal gMonPalette_Nidorina, 30
|
||||
obj_pal gMonPalette_Nidoqueen, 31
|
||||
obj_pal gMonPalette_NidoranM, 32
|
||||
obj_pal gMonPalette_Nidorino, 33
|
||||
obj_pal gMonPalette_Nidoking, 34
|
||||
obj_pal gMonPalette_Clefairy, 35
|
||||
obj_pal gMonPalette_Clefable, 36
|
||||
obj_pal gMonPalette_Vulpix, 37
|
||||
obj_pal gMonPalette_Ninetales, 38
|
||||
obj_pal gMonPalette_Jigglypuff, 39
|
||||
obj_pal gMonPalette_Wigglytuff, 40
|
||||
obj_pal gMonPalette_Zubat, 41
|
||||
obj_pal gMonPalette_Golbat, 42
|
||||
obj_pal gMonPalette_Oddish, 43
|
||||
obj_pal gMonPalette_Gloom, 44
|
||||
obj_pal gMonPalette_Vileplume, 45
|
||||
obj_pal gMonPalette_Paras, 46
|
||||
obj_pal gMonPalette_Parasect, 47
|
||||
obj_pal gMonPalette_Venonat, 48
|
||||
obj_pal gMonPalette_Venomoth, 49
|
||||
obj_pal gMonPalette_Diglett, 50
|
||||
obj_pal gMonPalette_Dugtrio, 51
|
||||
obj_pal gMonPalette_Meowth, 52
|
||||
obj_pal gMonPalette_Persian, 53
|
||||
obj_pal gMonPalette_Psyduck, 54
|
||||
obj_pal gMonPalette_Golduck, 55
|
||||
obj_pal gMonPalette_Mankey, 56
|
||||
obj_pal gMonPalette_Primeape, 57
|
||||
obj_pal gMonPalette_Growlithe, 58
|
||||
obj_pal gMonPalette_Arcanine, 59
|
||||
obj_pal gMonPalette_Poliwag, 60
|
||||
obj_pal gMonPalette_Poliwhirl, 61
|
||||
obj_pal gMonPalette_Poliwrath, 62
|
||||
obj_pal gMonPalette_Abra, 63
|
||||
obj_pal gMonPalette_Kadabra, 64
|
||||
obj_pal gMonPalette_Alakazam, 65
|
||||
obj_pal gMonPalette_Machop, 66
|
||||
obj_pal gMonPalette_Machoke, 67
|
||||
obj_pal gMonPalette_Machamp, 68
|
||||
obj_pal gMonPalette_Bellsprout, 69
|
||||
obj_pal gMonPalette_Weepinbell, 70
|
||||
obj_pal gMonPalette_Victreebel, 71
|
||||
obj_pal gMonPalette_Tentacool, 72
|
||||
obj_pal gMonPalette_Tentacruel, 73
|
||||
obj_pal gMonPalette_Geodude, 74
|
||||
obj_pal gMonPalette_Graveler, 75
|
||||
obj_pal gMonPalette_Golem, 76
|
||||
obj_pal gMonPalette_Ponyta, 77
|
||||
obj_pal gMonPalette_Rapidash, 78
|
||||
obj_pal gMonPalette_Slowpoke, 79
|
||||
obj_pal gMonPalette_Slowbro, 80
|
||||
obj_pal gMonPalette_Magnemite, 81
|
||||
obj_pal gMonPalette_Magneton, 82
|
||||
obj_pal gMonPalette_Farfetchd, 83
|
||||
obj_pal gMonPalette_Doduo, 84
|
||||
obj_pal gMonPalette_Dodrio, 85
|
||||
obj_pal gMonPalette_Seel, 86
|
||||
obj_pal gMonPalette_Dewgong, 87
|
||||
obj_pal gMonPalette_Grimer, 88
|
||||
obj_pal gMonPalette_Muk, 89
|
||||
obj_pal gMonPalette_Shellder, 90
|
||||
obj_pal gMonPalette_Cloyster, 91
|
||||
obj_pal gMonPalette_Gastly, 92
|
||||
obj_pal gMonPalette_Haunter, 93
|
||||
obj_pal gMonPalette_Gengar, 94
|
||||
obj_pal gMonPalette_Onix, 95
|
||||
obj_pal gMonPalette_Drowzee, 96
|
||||
obj_pal gMonPalette_Hypno, 97
|
||||
obj_pal gMonPalette_Krabby, 98
|
||||
obj_pal gMonPalette_Kingler, 99
|
||||
obj_pal gMonPalette_Voltorb, 100
|
||||
obj_pal gMonPalette_Electrode, 101
|
||||
obj_pal gMonPalette_Exeggcute, 102
|
||||
obj_pal gMonPalette_Exeggutor, 103
|
||||
obj_pal gMonPalette_Cubone, 104
|
||||
obj_pal gMonPalette_Marowak, 105
|
||||
obj_pal gMonPalette_Hitmonlee, 106
|
||||
obj_pal gMonPalette_Hitmonchan, 107
|
||||
obj_pal gMonPalette_Lickitung, 108
|
||||
obj_pal gMonPalette_Koffing, 109
|
||||
obj_pal gMonPalette_Weezing, 110
|
||||
obj_pal gMonPalette_Rhyhorn, 111
|
||||
obj_pal gMonPalette_Rhydon, 112
|
||||
obj_pal gMonPalette_Chansey, 113
|
||||
obj_pal gMonPalette_Tangela, 114
|
||||
obj_pal gMonPalette_Kangaskhan, 115
|
||||
obj_pal gMonPalette_Horsea, 116
|
||||
obj_pal gMonPalette_Seadra, 117
|
||||
obj_pal gMonPalette_Goldeen, 118
|
||||
obj_pal gMonPalette_Seaking, 119
|
||||
obj_pal gMonPalette_Staryu, 120
|
||||
obj_pal gMonPalette_Starmie, 121
|
||||
obj_pal gMonPalette_Mrmime, 122
|
||||
obj_pal gMonPalette_Scyther, 123
|
||||
obj_pal gMonPalette_Jynx, 124
|
||||
obj_pal gMonPalette_Electabuzz, 125
|
||||
obj_pal gMonPalette_Magmar, 126
|
||||
obj_pal gMonPalette_Pinsir, 127
|
||||
obj_pal gMonPalette_Tauros, 128
|
||||
obj_pal gMonPalette_Magikarp, 129
|
||||
obj_pal gMonPalette_Gyarados, 130
|
||||
obj_pal gMonPalette_Lapras, 131
|
||||
obj_pal gMonPalette_Ditto, 132
|
||||
obj_pal gMonPalette_Eevee, 133
|
||||
obj_pal gMonPalette_Vaporeon, 134
|
||||
obj_pal gMonPalette_Jolteon, 135
|
||||
obj_pal gMonPalette_Flareon, 136
|
||||
obj_pal gMonPalette_Porygon, 137
|
||||
obj_pal gMonPalette_Omanyte, 138
|
||||
obj_pal gMonPalette_Omastar, 139
|
||||
obj_pal gMonPalette_Kabuto, 140
|
||||
obj_pal gMonPalette_Kabutops, 141
|
||||
obj_pal gMonPalette_Aerodactyl, 142
|
||||
obj_pal gMonPalette_Snorlax, 143
|
||||
obj_pal gMonPalette_Articuno, 144
|
||||
obj_pal gMonPalette_Zapdos, 145
|
||||
obj_pal gMonPalette_Moltres, 146
|
||||
obj_pal gMonPalette_Dratini, 147
|
||||
obj_pal gMonPalette_Dragonair, 148
|
||||
obj_pal gMonPalette_Dragonite, 149
|
||||
obj_pal gMonPalette_Mewtwo, 150
|
||||
obj_pal gMonPalette_Mew, 151
|
||||
obj_pal gMonPalette_Chikorita, 152
|
||||
obj_pal gMonPalette_Bayleef, 153
|
||||
obj_pal gMonPalette_Meganium, 154
|
||||
obj_pal gMonPalette_Cyndaquil, 155
|
||||
obj_pal gMonPalette_Quilava, 156
|
||||
obj_pal gMonPalette_Typhlosion, 157
|
||||
obj_pal gMonPalette_Totodile, 158
|
||||
obj_pal gMonPalette_Croconaw, 159
|
||||
obj_pal gMonPalette_Feraligatr, 160
|
||||
obj_pal gMonPalette_Sentret, 161
|
||||
obj_pal gMonPalette_Furret, 162
|
||||
obj_pal gMonPalette_Hoothoot, 163
|
||||
obj_pal gMonPalette_Noctowl, 164
|
||||
obj_pal gMonPalette_Ledyba, 165
|
||||
obj_pal gMonPalette_Ledian, 166
|
||||
obj_pal gMonPalette_Spinarak, 167
|
||||
obj_pal gMonPalette_Ariados, 168
|
||||
obj_pal gMonPalette_Crobat, 169
|
||||
obj_pal gMonPalette_Chinchou, 170
|
||||
obj_pal gMonPalette_Lanturn, 171
|
||||
obj_pal gMonPalette_Pichu, 172
|
||||
obj_pal gMonPalette_Cleffa, 173
|
||||
obj_pal gMonPalette_Igglybuff, 174
|
||||
obj_pal gMonPalette_Togepi, 175
|
||||
obj_pal gMonPalette_Togetic, 176
|
||||
obj_pal gMonPalette_Natu, 177
|
||||
obj_pal gMonPalette_Xatu, 178
|
||||
obj_pal gMonPalette_Mareep, 179
|
||||
obj_pal gMonPalette_Flaaffy, 180
|
||||
obj_pal gMonPalette_Ampharos, 181
|
||||
obj_pal gMonPalette_Bellossom, 182
|
||||
obj_pal gMonPalette_Marill, 183
|
||||
obj_pal gMonPalette_Azumarill, 184
|
||||
obj_pal gMonPalette_Sudowoodo, 185
|
||||
obj_pal gMonPalette_Politoed, 186
|
||||
obj_pal gMonPalette_Hoppip, 187
|
||||
obj_pal gMonPalette_Skiploom, 188
|
||||
obj_pal gMonPalette_Jumpluff, 189
|
||||
obj_pal gMonPalette_Aipom, 190
|
||||
obj_pal gMonPalette_Sunkern, 191
|
||||
obj_pal gMonPalette_Sunflora, 192
|
||||
obj_pal gMonPalette_Yanma, 193
|
||||
obj_pal gMonPalette_Wooper, 194
|
||||
obj_pal gMonPalette_Quagsire, 195
|
||||
obj_pal gMonPalette_Espeon, 196
|
||||
obj_pal gMonPalette_Umbreon, 197
|
||||
obj_pal gMonPalette_Murkrow, 198
|
||||
obj_pal gMonPalette_Slowking, 199
|
||||
obj_pal gMonPalette_Misdreavus, 200
|
||||
obj_pal gMonPalette_Unown, 201
|
||||
obj_pal gMonPalette_Wobbuffet, 202
|
||||
obj_pal gMonPalette_Girafarig, 203
|
||||
obj_pal gMonPalette_Pineco, 204
|
||||
obj_pal gMonPalette_Forretress, 205
|
||||
obj_pal gMonPalette_Dunsparce, 206
|
||||
obj_pal gMonPalette_Gligar, 207
|
||||
obj_pal gMonPalette_Steelix, 208
|
||||
obj_pal gMonPalette_Snubbull, 209
|
||||
obj_pal gMonPalette_Granbull, 210
|
||||
obj_pal gMonPalette_Qwilfish, 211
|
||||
obj_pal gMonPalette_Scizor, 212
|
||||
obj_pal gMonPalette_Shuckle, 213
|
||||
obj_pal gMonPalette_Heracross, 214
|
||||
obj_pal gMonPalette_Sneasel, 215
|
||||
obj_pal gMonPalette_Teddiursa, 216
|
||||
obj_pal gMonPalette_Ursaring, 217
|
||||
obj_pal gMonPalette_Slugma, 218
|
||||
obj_pal gMonPalette_Magcargo, 219
|
||||
obj_pal gMonPalette_Swinub, 220
|
||||
obj_pal gMonPalette_Piloswine, 221
|
||||
obj_pal gMonPalette_Corsola, 222
|
||||
obj_pal gMonPalette_Remoraid, 223
|
||||
obj_pal gMonPalette_Octillery, 224
|
||||
obj_pal gMonPalette_Delibird, 225
|
||||
obj_pal gMonPalette_Mantine, 226
|
||||
obj_pal gMonPalette_Skarmory, 227
|
||||
obj_pal gMonPalette_Houndour, 228
|
||||
obj_pal gMonPalette_Houndoom, 229
|
||||
obj_pal gMonPalette_Kingdra, 230
|
||||
obj_pal gMonPalette_Phanpy, 231
|
||||
obj_pal gMonPalette_Donphan, 232
|
||||
obj_pal gMonPalette_Porygon2, 233
|
||||
obj_pal gMonPalette_Stantler, 234
|
||||
obj_pal gMonPalette_Smeargle, 235
|
||||
obj_pal gMonPalette_Tyrogue, 236
|
||||
obj_pal gMonPalette_Hitmontop, 237
|
||||
obj_pal gMonPalette_Smoochum, 238
|
||||
obj_pal gMonPalette_Elekid, 239
|
||||
obj_pal gMonPalette_Magby, 240
|
||||
obj_pal gMonPalette_Miltank, 241
|
||||
obj_pal gMonPalette_Blissey, 242
|
||||
obj_pal gMonPalette_Raikou, 243
|
||||
obj_pal gMonPalette_Entei, 244
|
||||
obj_pal gMonPalette_Suicune, 245
|
||||
obj_pal gMonPalette_Larvitar, 246
|
||||
obj_pal gMonPalette_Pupitar, 247
|
||||
obj_pal gMonPalette_Tyranitar, 248
|
||||
obj_pal gMonPalette_Lugia, 249
|
||||
obj_pal gMonPalette_HoOh, 250
|
||||
obj_pal gMonPalette_Celebi, 251
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 252
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 253
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 254
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 255
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 256
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 257
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 258
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 259
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 260
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 261
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 262
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 263
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 264
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 265
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 266
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 267
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 268
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 269
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 270
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 271
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 272
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 273
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 274
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 275
|
||||
obj_pal gMonPalette_DoubleQuestionMark, 276
|
||||
obj_pal gMonPalette_Treecko, 277
|
||||
obj_pal gMonPalette_Grovyle, 278
|
||||
obj_pal gMonPalette_Sceptile, 279
|
||||
obj_pal gMonPalette_Torchic, 280
|
||||
obj_pal gMonPalette_Combusken, 281
|
||||
obj_pal gMonPalette_Blaziken, 282
|
||||
obj_pal gMonPalette_Mudkip, 283
|
||||
obj_pal gMonPalette_Marshtomp, 284
|
||||
obj_pal gMonPalette_Swampert, 285
|
||||
obj_pal gMonPalette_Poochyena, 286
|
||||
obj_pal gMonPalette_Mightyena, 287
|
||||
obj_pal gMonPalette_Zigzagoon, 288
|
||||
obj_pal gMonPalette_Linoone, 289
|
||||
obj_pal gMonPalette_Wurmple, 290
|
||||
obj_pal gMonPalette_Silcoon, 291
|
||||
obj_pal gMonPalette_Beautifly, 292
|
||||
obj_pal gMonPalette_Cascoon, 293
|
||||
obj_pal gMonPalette_Dustox, 294
|
||||
obj_pal gMonPalette_Lotad, 295
|
||||
obj_pal gMonPalette_Lombre, 296
|
||||
obj_pal gMonPalette_Ludicolo, 297
|
||||
obj_pal gMonPalette_Seedot, 298
|
||||
obj_pal gMonPalette_Nuzleaf, 299
|
||||
obj_pal gMonPalette_Shiftry, 300
|
||||
obj_pal gMonPalette_Nincada, 301
|
||||
obj_pal gMonPalette_Ninjask, 302
|
||||
obj_pal gMonPalette_Shedinja, 303
|
||||
obj_pal gMonPalette_Taillow, 304
|
||||
obj_pal gMonPalette_Swellow, 305
|
||||
obj_pal gMonPalette_Shroomish, 306
|
||||
obj_pal gMonPalette_Breloom, 307
|
||||
obj_pal gMonPalette_Spinda, 308
|
||||
obj_pal gMonPalette_Wingull, 309
|
||||
obj_pal gMonPalette_Pelipper, 310
|
||||
obj_pal gMonPalette_Surskit, 311
|
||||
obj_pal gMonPalette_Masquerain, 312
|
||||
obj_pal gMonPalette_Wailmer, 313
|
||||
obj_pal gMonPalette_Wailord, 314
|
||||
obj_pal gMonPalette_Skitty, 315
|
||||
obj_pal gMonPalette_Delcatty, 316
|
||||
obj_pal gMonPalette_Kecleon, 317
|
||||
obj_pal gMonPalette_Baltoy, 318
|
||||
obj_pal gMonPalette_Claydol, 319
|
||||
obj_pal gMonPalette_Nosepass, 320
|
||||
obj_pal gMonPalette_Torkoal, 321
|
||||
obj_pal gMonPalette_Sableye, 322
|
||||
obj_pal gMonPalette_Barboach, 323
|
||||
obj_pal gMonPalette_Whiscash, 324
|
||||
obj_pal gMonPalette_Luvdisc, 325
|
||||
obj_pal gMonPalette_Corphish, 326
|
||||
obj_pal gMonPalette_Crawdaunt, 327
|
||||
obj_pal gMonPalette_Feebas, 328
|
||||
obj_pal gMonPalette_Milotic, 329
|
||||
obj_pal gMonPalette_Carvanha, 330
|
||||
obj_pal gMonPalette_Sharpedo, 331
|
||||
obj_pal gMonPalette_Trapinch, 332
|
||||
obj_pal gMonPalette_Vibrava, 333
|
||||
obj_pal gMonPalette_Flygon, 334
|
||||
obj_pal gMonPalette_Makuhita, 335
|
||||
obj_pal gMonPalette_Hariyama, 336
|
||||
obj_pal gMonPalette_Electrike, 337
|
||||
obj_pal gMonPalette_Manectric, 338
|
||||
obj_pal gMonPalette_Numel, 339
|
||||
obj_pal gMonPalette_Camerupt, 340
|
||||
obj_pal gMonPalette_Spheal, 341
|
||||
obj_pal gMonPalette_Sealeo, 342
|
||||
obj_pal gMonPalette_Walrein, 343
|
||||
obj_pal gMonPalette_Cacnea, 344
|
||||
obj_pal gMonPalette_Cacturne, 345
|
||||
obj_pal gMonPalette_Snorunt, 346
|
||||
obj_pal gMonPalette_Glalie, 347
|
||||
obj_pal gMonPalette_Lunatone, 348
|
||||
obj_pal gMonPalette_Solrock, 349
|
||||
obj_pal gMonPalette_Azurill, 350
|
||||
obj_pal gMonPalette_Spoink, 351
|
||||
obj_pal gMonPalette_Grumpig, 352
|
||||
obj_pal gMonPalette_Plusle, 353
|
||||
obj_pal gMonPalette_Minun, 354
|
||||
obj_pal gMonPalette_Mawile, 355
|
||||
obj_pal gMonPalette_Meditite, 356
|
||||
obj_pal gMonPalette_Medicham, 357
|
||||
obj_pal gMonPalette_Swablu, 358
|
||||
obj_pal gMonPalette_Altaria, 359
|
||||
obj_pal gMonPalette_Wynaut, 360
|
||||
obj_pal gMonPalette_Duskull, 361
|
||||
obj_pal gMonPalette_Dusclops, 362
|
||||
obj_pal gMonPalette_Roselia, 363
|
||||
obj_pal gMonPalette_Slakoth, 364
|
||||
obj_pal gMonPalette_Vigoroth, 365
|
||||
obj_pal gMonPalette_Slaking, 366
|
||||
obj_pal gMonPalette_Gulpin, 367
|
||||
obj_pal gMonPalette_Swalot, 368
|
||||
obj_pal gMonPalette_Tropius, 369
|
||||
obj_pal gMonPalette_Whismur, 370
|
||||
obj_pal gMonPalette_Loudred, 371
|
||||
obj_pal gMonPalette_Exploud, 372
|
||||
obj_pal gMonPalette_Clamperl, 373
|
||||
obj_pal gMonPalette_Huntail, 374
|
||||
obj_pal gMonPalette_Gorebyss, 375
|
||||
obj_pal gMonPalette_Absol, 376
|
||||
obj_pal gMonPalette_Shuppet, 377
|
||||
obj_pal gMonPalette_Banette, 378
|
||||
obj_pal gMonPalette_Seviper, 379
|
||||
obj_pal gMonPalette_Zangoose, 380
|
||||
obj_pal gMonPalette_Relicanth, 381
|
||||
obj_pal gMonPalette_Aron, 382
|
||||
obj_pal gMonPalette_Lairon, 383
|
||||
obj_pal gMonPalette_Aggron, 384
|
||||
obj_pal gMonPalette_Castform, 385
|
||||
obj_pal gMonPalette_Volbeat, 386
|
||||
obj_pal gMonPalette_Illumise, 387
|
||||
obj_pal gMonPalette_Lileep, 388
|
||||
obj_pal gMonPalette_Cradily, 389
|
||||
obj_pal gMonPalette_Anorith, 390
|
||||
obj_pal gMonPalette_Armaldo, 391
|
||||
obj_pal gMonPalette_Ralts, 392
|
||||
obj_pal gMonPalette_Kirlia, 393
|
||||
obj_pal gMonPalette_Gardevoir, 394
|
||||
obj_pal gMonPalette_Bagon, 395
|
||||
obj_pal gMonPalette_Shelgon, 396
|
||||
obj_pal gMonPalette_Salamence, 397
|
||||
obj_pal gMonPalette_Beldum, 398
|
||||
obj_pal gMonPalette_Metang, 399
|
||||
obj_pal gMonPalette_Metagross, 400
|
||||
obj_pal gMonPalette_Regirock, 401
|
||||
obj_pal gMonPalette_Regice, 402
|
||||
obj_pal gMonPalette_Registeel, 403
|
||||
obj_pal gMonPalette_Kyogre, 404
|
||||
obj_pal gMonPalette_Groudon, 405
|
||||
obj_pal gMonPalette_Rayquaza, 406
|
||||
obj_pal gMonPalette_Latias, 407
|
||||
obj_pal gMonPalette_Latios, 408
|
||||
obj_pal gMonPalette_Jirachi, 409
|
||||
obj_pal gMonPalette_Deoxys, 410
|
||||
obj_pal gMonPalette_Chimecho, 411
|
||||
obj_pal gMonPalette_Egg, 412
|
||||
obj_pal gMonPalette_Unown, 413
|
||||
obj_pal gMonPalette_Unown, 414
|
||||
obj_pal gMonPalette_Unown, 415
|
||||
obj_pal gMonPalette_Unown, 416
|
||||
obj_pal gMonPalette_Unown, 417
|
||||
obj_pal gMonPalette_Unown, 418
|
||||
obj_pal gMonPalette_Unown, 419
|
||||
obj_pal gMonPalette_Unown, 420
|
||||
obj_pal gMonPalette_Unown, 421
|
||||
obj_pal gMonPalette_Unown, 422
|
||||
obj_pal gMonPalette_Unown, 423
|
||||
obj_pal gMonPalette_Unown, 424
|
||||
obj_pal gMonPalette_Unown, 425
|
||||
obj_pal gMonPalette_Unown, 426
|
||||
obj_pal gMonPalette_Unown, 427
|
||||
obj_pal gMonPalette_Unown, 428
|
||||
obj_pal gMonPalette_Unown, 429
|
||||
obj_pal gMonPalette_Unown, 430
|
||||
obj_pal gMonPalette_Unown, 431
|
||||
obj_pal gMonPalette_Unown, 432
|
||||
obj_pal gMonPalette_Unown, 433
|
||||
obj_pal gMonPalette_Unown, 434
|
||||
obj_pal gMonPalette_Unown, 435
|
||||
obj_pal gMonPalette_Unown, 436
|
||||
obj_pal gMonPalette_Unown, 437
|
||||
obj_pal gMonPalette_Unown, 438
|
||||
obj_pal gMonPalette_Unown, 439
|
443
data/graphics/pokemon/shiny_palette_table.s
Normal file
443
data/graphics/pokemon/shiny_palette_table.s
Normal file
@ -0,0 +1,443 @@
|
||||
.align 2
|
||||
|
||||
gMonShinyPaletteTable: ; 81EB374
|
||||
obj_pal gMonShinyPalette_CircledQuestionMark, 500
|
||||
obj_pal gMonShinyPalette_Bulbasaur, 501
|
||||
obj_pal gMonShinyPalette_Ivysaur, 502
|
||||
obj_pal gMonShinyPalette_Venusaur, 503
|
||||
obj_pal gMonShinyPalette_Charmander, 504
|
||||
obj_pal gMonShinyPalette_Charmeleon, 505
|
||||
obj_pal gMonShinyPalette_Charizard, 506
|
||||
obj_pal gMonShinyPalette_Squirtle, 507
|
||||
obj_pal gMonShinyPalette_Wartortle, 508
|
||||
obj_pal gMonShinyPalette_Blastoise, 509
|
||||
obj_pal gMonShinyPalette_Caterpie, 510
|
||||
obj_pal gMonShinyPalette_Metapod, 511
|
||||
obj_pal gMonShinyPalette_Butterfree, 512
|
||||
obj_pal gMonShinyPalette_Weedle, 513
|
||||
obj_pal gMonShinyPalette_Kakuna, 514
|
||||
obj_pal gMonShinyPalette_Beedrill, 515
|
||||
obj_pal gMonShinyPalette_Pidgey, 516
|
||||
obj_pal gMonShinyPalette_Pidgeotto, 517
|
||||
obj_pal gMonShinyPalette_Pidgeot, 518
|
||||
obj_pal gMonShinyPalette_Rattata, 519
|
||||
obj_pal gMonShinyPalette_Raticate, 520
|
||||
obj_pal gMonShinyPalette_Spearow, 521
|
||||
obj_pal gMonShinyPalette_Fearow, 522
|
||||
obj_pal gMonShinyPalette_Ekans, 523
|
||||
obj_pal gMonShinyPalette_Arbok, 524
|
||||
obj_pal gMonShinyPalette_Pikachu, 525
|
||||
obj_pal gMonShinyPalette_Raichu, 526
|
||||
obj_pal gMonShinyPalette_Sandshrew, 527
|
||||
obj_pal gMonShinyPalette_Sandslash, 528
|
||||
obj_pal gMonShinyPalette_NidoranF, 529
|
||||
obj_pal gMonShinyPalette_Nidorina, 530
|
||||
obj_pal gMonShinyPalette_Nidoqueen, 531
|
||||
obj_pal gMonShinyPalette_NidoranM, 532
|
||||
obj_pal gMonShinyPalette_Nidorino, 533
|
||||
obj_pal gMonShinyPalette_Nidoking, 534
|
||||
obj_pal gMonShinyPalette_Clefairy, 535
|
||||
obj_pal gMonShinyPalette_Clefable, 536
|
||||
obj_pal gMonShinyPalette_Vulpix, 537
|
||||
obj_pal gMonShinyPalette_Ninetales, 538
|
||||
obj_pal gMonShinyPalette_Jigglypuff, 539
|
||||
obj_pal gMonShinyPalette_Wigglytuff, 540
|
||||
obj_pal gMonShinyPalette_Zubat, 541
|
||||
obj_pal gMonShinyPalette_Golbat, 542
|
||||
obj_pal gMonShinyPalette_Oddish, 543
|
||||
obj_pal gMonShinyPalette_Gloom, 544
|
||||
obj_pal gMonShinyPalette_Vileplume, 545
|
||||
obj_pal gMonShinyPalette_Paras, 546
|
||||
obj_pal gMonShinyPalette_Parasect, 547
|
||||
obj_pal gMonShinyPalette_Venonat, 548
|
||||
obj_pal gMonShinyPalette_Venomoth, 549
|
||||
obj_pal gMonShinyPalette_Diglett, 550
|
||||
obj_pal gMonShinyPalette_Dugtrio, 551
|
||||
obj_pal gMonShinyPalette_Meowth, 552
|
||||
obj_pal gMonShinyPalette_Persian, 553
|
||||
obj_pal gMonShinyPalette_Psyduck, 554
|
||||
obj_pal gMonShinyPalette_Golduck, 555
|
||||
obj_pal gMonShinyPalette_Mankey, 556
|
||||
obj_pal gMonShinyPalette_Primeape, 557
|
||||
obj_pal gMonShinyPalette_Growlithe, 558
|
||||
obj_pal gMonShinyPalette_Arcanine, 559
|
||||
obj_pal gMonShinyPalette_Poliwag, 560
|
||||
obj_pal gMonShinyPalette_Poliwhirl, 561
|
||||
obj_pal gMonShinyPalette_Poliwrath, 562
|
||||
obj_pal gMonShinyPalette_Abra, 563
|
||||
obj_pal gMonShinyPalette_Kadabra, 564
|
||||
obj_pal gMonShinyPalette_Alakazam, 565
|
||||
obj_pal gMonShinyPalette_Machop, 566
|
||||
obj_pal gMonShinyPalette_Machoke, 567
|
||||
obj_pal gMonShinyPalette_Machamp, 568
|
||||
obj_pal gMonShinyPalette_Bellsprout, 569
|
||||
obj_pal gMonShinyPalette_Weepinbell, 570
|
||||
obj_pal gMonShinyPalette_Victreebel, 571
|
||||
obj_pal gMonShinyPalette_Tentacool, 572
|
||||
obj_pal gMonShinyPalette_Tentacruel, 573
|
||||
obj_pal gMonShinyPalette_Geodude, 574
|
||||
obj_pal gMonShinyPalette_Graveler, 575
|
||||
obj_pal gMonShinyPalette_Golem, 576
|
||||
obj_pal gMonShinyPalette_Ponyta, 577
|
||||
obj_pal gMonShinyPalette_Rapidash, 578
|
||||
obj_pal gMonShinyPalette_Slowpoke, 579
|
||||
obj_pal gMonShinyPalette_Slowbro, 580
|
||||
obj_pal gMonShinyPalette_Magnemite, 581
|
||||
obj_pal gMonShinyPalette_Magneton, 582
|
||||
obj_pal gMonShinyPalette_Farfetchd, 583
|
||||
obj_pal gMonShinyPalette_Doduo, 584
|
||||
obj_pal gMonShinyPalette_Dodrio, 585
|
||||
obj_pal gMonShinyPalette_Seel, 586
|
||||
obj_pal gMonShinyPalette_Dewgong, 587
|
||||
obj_pal gMonShinyPalette_Grimer, 588
|
||||
obj_pal gMonShinyPalette_Muk, 589
|
||||
obj_pal gMonShinyPalette_Shellder, 590
|
||||
obj_pal gMonShinyPalette_Cloyster, 591
|
||||
obj_pal gMonShinyPalette_Gastly, 592
|
||||
obj_pal gMonShinyPalette_Haunter, 593
|
||||
obj_pal gMonShinyPalette_Gengar, 594
|
||||
obj_pal gMonShinyPalette_Onix, 595
|
||||
obj_pal gMonShinyPalette_Drowzee, 596
|
||||
obj_pal gMonShinyPalette_Hypno, 597
|
||||
obj_pal gMonShinyPalette_Krabby, 598
|
||||
obj_pal gMonShinyPalette_Kingler, 599
|
||||
obj_pal gMonShinyPalette_Voltorb, 600
|
||||
obj_pal gMonShinyPalette_Electrode, 601
|
||||
obj_pal gMonShinyPalette_Exeggcute, 602
|
||||
obj_pal gMonShinyPalette_Exeggutor, 603
|
||||
obj_pal gMonShinyPalette_Cubone, 604
|
||||
obj_pal gMonShinyPalette_Marowak, 605
|
||||
obj_pal gMonShinyPalette_Hitmonlee, 606
|
||||
obj_pal gMonShinyPalette_Hitmonchan, 607
|
||||
obj_pal gMonShinyPalette_Lickitung, 608
|
||||
obj_pal gMonShinyPalette_Koffing, 609
|
||||
obj_pal gMonShinyPalette_Weezing, 610
|
||||
obj_pal gMonShinyPalette_Rhyhorn, 611
|
||||
obj_pal gMonShinyPalette_Rhydon, 612
|
||||
obj_pal gMonShinyPalette_Chansey, 613
|
||||
obj_pal gMonShinyPalette_Tangela, 614
|
||||
obj_pal gMonShinyPalette_Kangaskhan, 615
|
||||
obj_pal gMonShinyPalette_Horsea, 616
|
||||
obj_pal gMonShinyPalette_Seadra, 617
|
||||
obj_pal gMonShinyPalette_Goldeen, 618
|
||||
obj_pal gMonShinyPalette_Seaking, 619
|
||||
obj_pal gMonShinyPalette_Staryu, 620
|
||||
obj_pal gMonShinyPalette_Starmie, 621
|
||||
obj_pal gMonShinyPalette_Mrmime, 622
|
||||
obj_pal gMonShinyPalette_Scyther, 623
|
||||
obj_pal gMonShinyPalette_Jynx, 624
|
||||
obj_pal gMonShinyPalette_Electabuzz, 625
|
||||
obj_pal gMonShinyPalette_Magmar, 626
|
||||
obj_pal gMonShinyPalette_Pinsir, 627
|
||||
obj_pal gMonShinyPalette_Tauros, 628
|
||||
obj_pal gMonShinyPalette_Magikarp, 629
|
||||
obj_pal gMonShinyPalette_Gyarados, 630
|
||||
obj_pal gMonShinyPalette_Lapras, 631
|
||||
obj_pal gMonShinyPalette_Ditto, 632
|
||||
obj_pal gMonShinyPalette_Eevee, 633
|
||||
obj_pal gMonShinyPalette_Vaporeon, 634
|
||||
obj_pal gMonShinyPalette_Jolteon, 635
|
||||
obj_pal gMonShinyPalette_Flareon, 636
|
||||
obj_pal gMonShinyPalette_Porygon, 637
|
||||
obj_pal gMonShinyPalette_Omanyte, 638
|
||||
obj_pal gMonShinyPalette_Omastar, 639
|
||||
obj_pal gMonShinyPalette_Kabuto, 640
|
||||
obj_pal gMonShinyPalette_Kabutops, 641
|
||||
obj_pal gMonShinyPalette_Aerodactyl, 642
|
||||
obj_pal gMonShinyPalette_Snorlax, 643
|
||||
obj_pal gMonShinyPalette_Articuno, 644
|
||||
obj_pal gMonShinyPalette_Zapdos, 645
|
||||
obj_pal gMonShinyPalette_Moltres, 646
|
||||
obj_pal gMonShinyPalette_Dratini, 647
|
||||
obj_pal gMonShinyPalette_Dragonair, 648
|
||||
obj_pal gMonShinyPalette_Dragonite, 649
|
||||
obj_pal gMonShinyPalette_Mewtwo, 650
|
||||
obj_pal gMonShinyPalette_Mew, 651
|
||||
obj_pal gMonShinyPalette_Chikorita, 652
|
||||
obj_pal gMonShinyPalette_Bayleef, 653
|
||||
obj_pal gMonShinyPalette_Meganium, 654
|
||||
obj_pal gMonShinyPalette_Cyndaquil, 655
|
||||
obj_pal gMonShinyPalette_Quilava, 656
|
||||
obj_pal gMonShinyPalette_Typhlosion, 657
|
||||
obj_pal gMonShinyPalette_Totodile, 658
|
||||
obj_pal gMonShinyPalette_Croconaw, 659
|
||||
obj_pal gMonShinyPalette_Feraligatr, 660
|
||||
obj_pal gMonShinyPalette_Sentret, 661
|
||||
obj_pal gMonShinyPalette_Furret, 662
|
||||
obj_pal gMonShinyPalette_Hoothoot, 663
|
||||
obj_pal gMonShinyPalette_Noctowl, 664
|
||||
obj_pal gMonShinyPalette_Ledyba, 665
|
||||
obj_pal gMonShinyPalette_Ledian, 666
|
||||
obj_pal gMonShinyPalette_Spinarak, 667
|
||||
obj_pal gMonShinyPalette_Ariados, 668
|
||||
obj_pal gMonShinyPalette_Crobat, 669
|
||||
obj_pal gMonShinyPalette_Chinchou, 670
|
||||
obj_pal gMonShinyPalette_Lanturn, 671
|
||||
obj_pal gMonShinyPalette_Pichu, 672
|
||||
obj_pal gMonShinyPalette_Cleffa, 673
|
||||
obj_pal gMonShinyPalette_Igglybuff, 674
|
||||
obj_pal gMonShinyPalette_Togepi, 675
|
||||
obj_pal gMonShinyPalette_Togetic, 676
|
||||
obj_pal gMonShinyPalette_Natu, 677
|
||||
obj_pal gMonShinyPalette_Xatu, 678
|
||||
obj_pal gMonShinyPalette_Mareep, 679
|
||||
obj_pal gMonShinyPalette_Flaaffy, 680
|
||||
obj_pal gMonShinyPalette_Ampharos, 681
|
||||
obj_pal gMonShinyPalette_Bellossom, 682
|
||||
obj_pal gMonShinyPalette_Marill, 683
|
||||
obj_pal gMonShinyPalette_Azumarill, 684
|
||||
obj_pal gMonShinyPalette_Sudowoodo, 685
|
||||
obj_pal gMonShinyPalette_Politoed, 686
|
||||
obj_pal gMonShinyPalette_Hoppip, 687
|
||||
obj_pal gMonShinyPalette_Skiploom, 688
|
||||
obj_pal gMonShinyPalette_Jumpluff, 689
|
||||
obj_pal gMonShinyPalette_Aipom, 690
|
||||
obj_pal gMonShinyPalette_Sunkern, 691
|
||||
obj_pal gMonShinyPalette_Sunflora, 692
|
||||
obj_pal gMonShinyPalette_Yanma, 693
|
||||
obj_pal gMonShinyPalette_Wooper, 694
|
||||
obj_pal gMonShinyPalette_Quagsire, 695
|
||||
obj_pal gMonShinyPalette_Espeon, 696
|
||||
obj_pal gMonShinyPalette_Umbreon, 697
|
||||
obj_pal gMonShinyPalette_Murkrow, 698
|
||||
obj_pal gMonShinyPalette_Slowking, 699
|
||||
obj_pal gMonShinyPalette_Misdreavus, 700
|
||||
obj_pal gMonShinyPalette_Unown, 701
|
||||
obj_pal gMonShinyPalette_Wobbuffet, 702
|
||||
obj_pal gMonShinyPalette_Girafarig, 703
|
||||
obj_pal gMonShinyPalette_Pineco, 704
|
||||
obj_pal gMonShinyPalette_Forretress, 705
|
||||
obj_pal gMonShinyPalette_Dunsparce, 706
|
||||
obj_pal gMonShinyPalette_Gligar, 707
|
||||
obj_pal gMonShinyPalette_Steelix, 708
|
||||
obj_pal gMonShinyPalette_Snubbull, 709
|
||||
obj_pal gMonShinyPalette_Granbull, 710
|
||||
obj_pal gMonShinyPalette_Qwilfish, 711
|
||||
obj_pal gMonShinyPalette_Scizor, 712
|
||||
obj_pal gMonShinyPalette_Shuckle, 713
|
||||
obj_pal gMonShinyPalette_Heracross, 714
|
||||
obj_pal gMonShinyPalette_Sneasel, 715
|
||||
obj_pal gMonShinyPalette_Teddiursa, 716
|
||||
obj_pal gMonShinyPalette_Ursaring, 717
|
||||
obj_pal gMonShinyPalette_Slugma, 718
|
||||
obj_pal gMonShinyPalette_Magcargo, 719
|
||||
obj_pal gMonShinyPalette_Swinub, 720
|
||||
obj_pal gMonShinyPalette_Piloswine, 721
|
||||
obj_pal gMonShinyPalette_Corsola, 722
|
||||
obj_pal gMonShinyPalette_Remoraid, 723
|
||||
obj_pal gMonShinyPalette_Octillery, 724
|
||||
obj_pal gMonShinyPalette_Delibird, 725
|
||||
obj_pal gMonShinyPalette_Mantine, 726
|
||||
obj_pal gMonShinyPalette_Skarmory, 727
|
||||
obj_pal gMonShinyPalette_Houndour, 728
|
||||
obj_pal gMonShinyPalette_Houndoom, 729
|
||||
obj_pal gMonShinyPalette_Kingdra, 730
|
||||
obj_pal gMonShinyPalette_Phanpy, 731
|
||||
obj_pal gMonShinyPalette_Donphan, 732
|
||||
obj_pal gMonShinyPalette_Porygon2, 733
|
||||
obj_pal gMonShinyPalette_Stantler, 734
|
||||
obj_pal gMonShinyPalette_Smeargle, 735
|
||||
obj_pal gMonShinyPalette_Tyrogue, 736
|
||||
obj_pal gMonShinyPalette_Hitmontop, 737
|
||||
obj_pal gMonShinyPalette_Smoochum, 738
|
||||
obj_pal gMonShinyPalette_Elekid, 739
|
||||
obj_pal gMonShinyPalette_Magby, 740
|
||||
obj_pal gMonShinyPalette_Miltank, 741
|
||||
obj_pal gMonShinyPalette_Blissey, 742
|
||||
obj_pal gMonShinyPalette_Raikou, 743
|
||||
obj_pal gMonShinyPalette_Entei, 744
|
||||
obj_pal gMonShinyPalette_Suicune, 745
|
||||
obj_pal gMonShinyPalette_Larvitar, 746
|
||||
obj_pal gMonShinyPalette_Pupitar, 747
|
||||
obj_pal gMonShinyPalette_Tyranitar, 748
|
||||
obj_pal gMonShinyPalette_Lugia, 749
|
||||
obj_pal gMonShinyPalette_HoOh, 750
|
||||
obj_pal gMonShinyPalette_Celebi, 751
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 752
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 753
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 754
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 755
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 756
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 757
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 758
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 759
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 760
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 761
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 762
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 763
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 764
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 765
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 766
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 767
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 768
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 769
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 770
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 771
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 772
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 773
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 774
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 775
|
||||
obj_pal gMonShinyPalette_DoubleQuestionMark, 776
|
||||
obj_pal gMonShinyPalette_Treecko, 777
|
||||
obj_pal gMonShinyPalette_Grovyle, 778
|
||||
obj_pal gMonShinyPalette_Sceptile, 779
|
||||
obj_pal gMonShinyPalette_Torchic, 780
|
||||
obj_pal gMonShinyPalette_Combusken, 781
|
||||
obj_pal gMonShinyPalette_Blaziken, 782
|
||||
obj_pal gMonShinyPalette_Mudkip, 783
|
||||
obj_pal gMonShinyPalette_Marshtomp, 784
|
||||
obj_pal gMonShinyPalette_Swampert, 785
|
||||
obj_pal gMonShinyPalette_Poochyena, 786
|
||||
obj_pal gMonShinyPalette_Mightyena, 787
|
||||
obj_pal gMonShinyPalette_Zigzagoon, 788
|
||||
obj_pal gMonShinyPalette_Linoone, 789
|
||||
obj_pal gMonShinyPalette_Wurmple, 790
|
||||
obj_pal gMonShinyPalette_Silcoon, 791
|
||||
obj_pal gMonShinyPalette_Beautifly, 792
|
||||
obj_pal gMonShinyPalette_Cascoon, 793
|
||||
obj_pal gMonShinyPalette_Dustox, 794
|
||||
obj_pal gMonShinyPalette_Lotad, 795
|
||||
obj_pal gMonShinyPalette_Lombre, 796
|
||||
obj_pal gMonShinyPalette_Ludicolo, 797
|
||||
obj_pal gMonShinyPalette_Seedot, 798
|
||||
obj_pal gMonShinyPalette_Nuzleaf, 799
|
||||
obj_pal gMonShinyPalette_Shiftry, 800
|
||||
obj_pal gMonShinyPalette_Nincada, 801
|
||||
obj_pal gMonShinyPalette_Ninjask, 802
|
||||
obj_pal gMonShinyPalette_Shedinja, 803
|
||||
obj_pal gMonShinyPalette_Taillow, 804
|
||||
obj_pal gMonShinyPalette_Swellow, 805
|
||||
obj_pal gMonShinyPalette_Shroomish, 806
|
||||
obj_pal gMonShinyPalette_Breloom, 807
|
||||
obj_pal gMonShinyPalette_Spinda, 808
|
||||
obj_pal gMonShinyPalette_Wingull, 809
|
||||
obj_pal gMonShinyPalette_Pelipper, 810
|
||||
obj_pal gMonShinyPalette_Surskit, 811
|
||||
obj_pal gMonShinyPalette_Masquerain, 812
|
||||
obj_pal gMonShinyPalette_Wailmer, 813
|
||||
obj_pal gMonShinyPalette_Wailord, 814
|
||||
obj_pal gMonShinyPalette_Skitty, 815
|
||||
obj_pal gMonShinyPalette_Delcatty, 816
|
||||
obj_pal gMonShinyPalette_Kecleon, 817
|
||||
obj_pal gMonShinyPalette_Baltoy, 818
|
||||
obj_pal gMonShinyPalette_Claydol, 819
|
||||
obj_pal gMonShinyPalette_Nosepass, 820
|
||||
obj_pal gMonShinyPalette_Torkoal, 821
|
||||
obj_pal gMonShinyPalette_Sableye, 822
|
||||
obj_pal gMonShinyPalette_Barboach, 823
|
||||
obj_pal gMonShinyPalette_Whiscash, 824
|
||||
obj_pal gMonShinyPalette_Luvdisc, 825
|
||||
obj_pal gMonShinyPalette_Corphish, 826
|
||||
obj_pal gMonShinyPalette_Crawdaunt, 827
|
||||
obj_pal gMonShinyPalette_Feebas, 828
|
||||
obj_pal gMonShinyPalette_Milotic, 829
|
||||
obj_pal gMonShinyPalette_Carvanha, 830
|
||||
obj_pal gMonShinyPalette_Sharpedo, 831
|
||||
obj_pal gMonShinyPalette_Trapinch, 832
|
||||
obj_pal gMonShinyPalette_Vibrava, 833
|
||||
obj_pal gMonShinyPalette_Flygon, 834
|
||||
obj_pal gMonShinyPalette_Makuhita, 835
|
||||
obj_pal gMonShinyPalette_Hariyama, 836
|
||||
obj_pal gMonShinyPalette_Electrike, 837
|
||||
obj_pal gMonShinyPalette_Manectric, 838
|
||||
obj_pal gMonShinyPalette_Numel, 839
|
||||
obj_pal gMonShinyPalette_Camerupt, 840
|
||||
obj_pal gMonShinyPalette_Spheal, 841
|
||||
obj_pal gMonShinyPalette_Sealeo, 842
|
||||
obj_pal gMonShinyPalette_Walrein, 843
|
||||
obj_pal gMonShinyPalette_Cacnea, 844
|
||||
obj_pal gMonShinyPalette_Cacturne, 845
|
||||
obj_pal gMonShinyPalette_Snorunt, 846
|
||||
obj_pal gMonShinyPalette_Glalie, 847
|
||||
obj_pal gMonShinyPalette_Lunatone, 848
|
||||
obj_pal gMonShinyPalette_Solrock, 849
|
||||
obj_pal gMonShinyPalette_Azurill, 850
|
||||
obj_pal gMonShinyPalette_Spoink, 851
|
||||
obj_pal gMonShinyPalette_Grumpig, 852
|
||||
obj_pal gMonShinyPalette_Plusle, 853
|
||||
obj_pal gMonShinyPalette_Minun, 854
|
||||
obj_pal gMonShinyPalette_Mawile, 855
|
||||
obj_pal gMonShinyPalette_Meditite, 856
|
||||
obj_pal gMonShinyPalette_Medicham, 857
|
||||
obj_pal gMonShinyPalette_Swablu, 858
|
||||
obj_pal gMonShinyPalette_Altaria, 859
|
||||
obj_pal gMonShinyPalette_Wynaut, 860
|
||||
obj_pal gMonShinyPalette_Duskull, 861
|
||||
obj_pal gMonShinyPalette_Dusclops, 862
|
||||
obj_pal gMonShinyPalette_Roselia, 863
|
||||
obj_pal gMonShinyPalette_Slakoth, 864
|
||||
obj_pal gMonShinyPalette_Vigoroth, 865
|
||||
obj_pal gMonShinyPalette_Slaking, 866
|
||||
obj_pal gMonShinyPalette_Gulpin, 867
|
||||
obj_pal gMonShinyPalette_Swalot, 868
|
||||
obj_pal gMonShinyPalette_Tropius, 869
|
||||
obj_pal gMonShinyPalette_Whismur, 870
|
||||
obj_pal gMonShinyPalette_Loudred, 871
|
||||
obj_pal gMonShinyPalette_Exploud, 872
|
||||
obj_pal gMonShinyPalette_Clamperl, 873
|
||||
obj_pal gMonShinyPalette_Huntail, 874
|
||||
obj_pal gMonShinyPalette_Gorebyss, 875
|
||||
obj_pal gMonShinyPalette_Absol, 876
|
||||
obj_pal gMonShinyPalette_Shuppet, 877
|
||||
obj_pal gMonShinyPalette_Banette, 878
|
||||
obj_pal gMonShinyPalette_Seviper, 879
|
||||
obj_pal gMonShinyPalette_Zangoose, 880
|
||||
obj_pal gMonShinyPalette_Relicanth, 881
|
||||
obj_pal gMonShinyPalette_Aron, 882
|
||||
obj_pal gMonShinyPalette_Lairon, 883
|
||||
obj_pal gMonShinyPalette_Aggron, 884
|
||||
obj_pal gMonShinyPalette_Castform, 885
|
||||
obj_pal gMonShinyPalette_Volbeat, 886
|
||||
obj_pal gMonShinyPalette_Illumise, 887
|
||||
obj_pal gMonShinyPalette_Lileep, 888
|
||||
obj_pal gMonShinyPalette_Cradily, 889
|
||||
obj_pal gMonShinyPalette_Anorith, 890
|
||||
obj_pal gMonShinyPalette_Armaldo, 891
|
||||
obj_pal gMonShinyPalette_Ralts, 892
|
||||
obj_pal gMonShinyPalette_Kirlia, 893
|
||||
obj_pal gMonShinyPalette_Gardevoir, 894
|
||||
obj_pal gMonShinyPalette_Bagon, 895
|
||||
obj_pal gMonShinyPalette_Shelgon, 896
|
||||
obj_pal gMonShinyPalette_Salamence, 897
|
||||
obj_pal gMonShinyPalette_Beldum, 898
|
||||
obj_pal gMonShinyPalette_Metang, 899
|
||||
obj_pal gMonShinyPalette_Metagross, 900
|
||||
obj_pal gMonShinyPalette_Regirock, 901
|
||||
obj_pal gMonShinyPalette_Regice, 902
|
||||
obj_pal gMonShinyPalette_Registeel, 903
|
||||
obj_pal gMonShinyPalette_Kyogre, 904
|
||||
obj_pal gMonShinyPalette_Groudon, 905
|
||||
obj_pal gMonShinyPalette_Rayquaza, 906
|
||||
obj_pal gMonShinyPalette_Latias, 907
|
||||
obj_pal gMonShinyPalette_Latios, 908
|
||||
obj_pal gMonShinyPalette_Jirachi, 909
|
||||
obj_pal gMonShinyPalette_Deoxys, 910
|
||||
obj_pal gMonShinyPalette_Chimecho, 911
|
||||
obj_pal gMonPalette_Egg, 912
|
||||
obj_pal gMonShinyPalette_Unown, 913
|
||||
obj_pal gMonShinyPalette_Unown, 914
|
||||
obj_pal gMonShinyPalette_Unown, 915
|
||||
obj_pal gMonShinyPalette_Unown, 916
|
||||
obj_pal gMonShinyPalette_Unown, 917
|
||||
obj_pal gMonShinyPalette_Unown, 918
|
||||
obj_pal gMonShinyPalette_Unown, 919
|
||||
obj_pal gMonShinyPalette_Unown, 920
|
||||
obj_pal gMonShinyPalette_Unown, 921
|
||||
obj_pal gMonShinyPalette_Unown, 922
|
||||
obj_pal gMonShinyPalette_Unown, 923
|
||||
obj_pal gMonShinyPalette_Unown, 924
|
||||
obj_pal gMonShinyPalette_Unown, 925
|
||||
obj_pal gMonShinyPalette_Unown, 926
|
||||
obj_pal gMonShinyPalette_Unown, 927
|
||||
obj_pal gMonShinyPalette_Unown, 928
|
||||
obj_pal gMonShinyPalette_Unown, 929
|
||||
obj_pal gMonShinyPalette_Unown, 930
|
||||
obj_pal gMonShinyPalette_Unown, 931
|
||||
obj_pal gMonShinyPalette_Unown, 932
|
||||
obj_pal gMonShinyPalette_Unown, 933
|
||||
obj_pal gMonShinyPalette_Unown, 934
|
||||
obj_pal gMonShinyPalette_Unown, 935
|
||||
obj_pal gMonShinyPalette_Unown, 936
|
||||
obj_pal gMonShinyPalette_Unown, 937
|
||||
obj_pal gMonShinyPalette_Unown, 938
|
||||
obj_pal gMonShinyPalette_Unown, 939
|
28
fix_local_labels.pl
Normal file
28
fix_local_labels.pl
Normal file
@ -0,0 +1,28 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
open(IN_FILE, $ARGV[0]);
|
||||
open(OUT_FILE, ">", $ARGV[1]);
|
||||
|
||||
my @labels = ();
|
||||
|
||||
while (<IN_FILE>) {
|
||||
if ($_ =~ /^\.(.+):/) {
|
||||
push(@labels, $1);
|
||||
}
|
||||
}
|
||||
|
||||
seek IN_FILE, 0, 0;
|
||||
|
||||
while (<IN_FILE>) {
|
||||
for (my $i = 0; $i < scalar(@labels); $i++) {
|
||||
my $find = quotemeta '.' . $labels[$i];
|
||||
my $replace = '$' . $labels[$i];
|
||||
$_ =~ s/$find/$replace/;
|
||||
}
|
||||
|
||||
print OUT_FILE $_;
|
||||
}
|
||||
|
||||
close(IN_FILE);
|
||||
close(OUT_FILE);
|
25
graphics_file_rules.mk
Normal file
25
graphics_file_rules.mk
Normal file
@ -0,0 +1,25 @@
|
||||
CASTFORMGFXDIR := graphics/pokemon/castform
|
||||
|
||||
$(CASTFORMGFXDIR)/back.4bpp: $(CASTFORMGFXDIR)/back_normal_form.4bpp \
|
||||
$(CASTFORMGFXDIR)/back_sunny_form.4bpp \
|
||||
$(CASTFORMGFXDIR)/back_rainy_form.4bpp \
|
||||
$(CASTFORMGFXDIR)/back_snowy_form.4bpp
|
||||
@cat $(CASTFORMGFXDIR)/back_normal_form.4bpp $(CASTFORMGFXDIR)/back_sunny_form.4bpp $(CASTFORMGFXDIR)/back_rainy_form.4bpp $(CASTFORMGFXDIR)/back_snowy_form.4bpp >$@
|
||||
|
||||
$(CASTFORMGFXDIR)/front.4bpp: $(CASTFORMGFXDIR)/front_normal_form.4bpp \
|
||||
$(CASTFORMGFXDIR)/front_sunny_form.4bpp \
|
||||
$(CASTFORMGFXDIR)/front_rainy_form.4bpp \
|
||||
$(CASTFORMGFXDIR)/front_snowy_form.4bpp
|
||||
@cat $(CASTFORMGFXDIR)/front_normal_form.4bpp $(CASTFORMGFXDIR)/front_sunny_form.4bpp $(CASTFORMGFXDIR)/front_rainy_form.4bpp $(CASTFORMGFXDIR)/front_snowy_form.4bpp >$@
|
||||
|
||||
$(CASTFORMGFXDIR)/normal.gbapal: $(CASTFORMGFXDIR)/normal_form.gbapal \
|
||||
$(CASTFORMGFXDIR)/sunny_form.gbapal \
|
||||
$(CASTFORMGFXDIR)/rainy_form.gbapal \
|
||||
$(CASTFORMGFXDIR)/snowy_form.gbapal
|
||||
@cat $(CASTFORMGFXDIR)/normal_form.gbapal $(CASTFORMGFXDIR)/sunny_form.gbapal $(CASTFORMGFXDIR)/rainy_form.gbapal $(CASTFORMGFXDIR)/snowy_form.gbapal >$@
|
||||
|
||||
$(CASTFORMGFXDIR)/shiny.gbapal: $(CASTFORMGFXDIR)/normal_form_shiny.gbapal \
|
||||
$(CASTFORMGFXDIR)/sunny_form_shiny.gbapal \
|
||||
$(CASTFORMGFXDIR)/rainy_form_shiny.gbapal \
|
||||
$(CASTFORMGFXDIR)/snowy_form_shiny.gbapal
|
||||
@cat $(CASTFORMGFXDIR)/normal_form_shiny.gbapal $(CASTFORMGFXDIR)/sunny_form_shiny.gbapal $(CASTFORMGFXDIR)/rainy_form_shiny.gbapal $(CASTFORMGFXDIR)/snowy_form_shiny.gbapal >$@
|
1
tools/gbagfx/.gitignore
vendored
Normal file
1
tools/gbagfx/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
gbagfx
|
19
tools/gbagfx/LICENSE
Normal file
19
tools/gbagfx/LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2015 YamaArashi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
15
tools/gbagfx/Makefile
Normal file
15
tools/gbagfx/Makefile
Normal file
@ -0,0 +1,15 @@
|
||||
CC = gcc
|
||||
|
||||
CFLAGS = -Wall -Wextra -std=c11 -O2
|
||||
|
||||
LIBS = -lz -lpng
|
||||
|
||||
SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c util.c font.c
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h util.h font.h
|
||||
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LIBS)
|
||||
|
||||
clean:
|
||||
$(RM) gbagfx gbagfx.exe
|
169
tools/gbagfx/convert_png.c
Normal file
169
tools/gbagfx/convert_png.c
Normal file
@ -0,0 +1,169 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdio.h>
|
||||
#include <setjmp.h>
|
||||
#include <png.h>
|
||||
#include "global.h"
|
||||
#include "convert_png.h"
|
||||
#include "gfx.h"
|
||||
|
||||
void ReadPng(char *path, struct Image *image)
|
||||
{
|
||||
FILE *fp = fopen(path, "rb");
|
||||
|
||||
if (fp == NULL)
|
||||
FATAL_ERROR("Failed to open \"%s\" for reading.\n", path);
|
||||
|
||||
unsigned char sig[8];
|
||||
|
||||
if (fread(sig, 8, 1, fp) != 1)
|
||||
FATAL_ERROR("Failed to read PNG signature from \"%s\".\n", path);
|
||||
|
||||
if (png_sig_cmp(sig, 0, 8))
|
||||
FATAL_ERROR("\"%s\" does not have a valid PNG signature.\n", path);
|
||||
|
||||
png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||
|
||||
if (!png_ptr)
|
||||
FATAL_ERROR("Failed to create PNG read struct.\n");
|
||||
|
||||
png_infop info_ptr = png_create_info_struct(png_ptr);
|
||||
|
||||
if (!info_ptr)
|
||||
FATAL_ERROR("Failed to create PNG info struct.\n");
|
||||
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
FATAL_ERROR("Failed to init I/O for reading \"%s\".\n", path);
|
||||
|
||||
png_init_io(png_ptr, fp);
|
||||
png_set_sig_bytes(png_ptr, 8);
|
||||
png_read_info(png_ptr, info_ptr);
|
||||
|
||||
int bit_depth = png_get_bit_depth(png_ptr, info_ptr);
|
||||
|
||||
if (bit_depth != image->bitDepth)
|
||||
FATAL_ERROR("\"%s\" has a bit depth of %d, but the expected bit depth is %d.\n", path, bit_depth, image->bitDepth);
|
||||
|
||||
int color_type = png_get_color_type(png_ptr, info_ptr);
|
||||
|
||||
if (color_type != PNG_COLOR_TYPE_GRAY && color_type != PNG_COLOR_TYPE_PALETTE)
|
||||
FATAL_ERROR("\"%s\" has an unsupported color type.\n", path);
|
||||
|
||||
// Check if the image has a palette so that we can tell if the colors need to be inverted later.
|
||||
// Don't read the palette because it's not needed for now.
|
||||
image->hasPalette = (color_type == PNG_COLOR_TYPE_PALETTE);
|
||||
|
||||
image->width = png_get_image_width(png_ptr, info_ptr);
|
||||
image->height = png_get_image_height(png_ptr, info_ptr);
|
||||
|
||||
int rowbytes = png_get_rowbytes(png_ptr, info_ptr);
|
||||
|
||||
image->pixels = malloc(image->height * rowbytes);
|
||||
|
||||
if (image->pixels == NULL)
|
||||
FATAL_ERROR("Failed to allocate pixel buffer.\n");
|
||||
|
||||
png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep));
|
||||
|
||||
if (row_pointers == NULL)
|
||||
FATAL_ERROR("Failed to allocate row pointers.\n");
|
||||
|
||||
for (int i = 0; i < image->height; i++)
|
||||
row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes));
|
||||
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
FATAL_ERROR("Error reading from \"%s\".\n", path);
|
||||
|
||||
png_read_image(png_ptr, row_pointers);
|
||||
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||
|
||||
free(row_pointers);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
void SetPngPalette(png_structp png_ptr, png_infop info_ptr, struct Palette *palette)
|
||||
{
|
||||
png_colorp colors = malloc(palette->numColors * sizeof(png_color));
|
||||
|
||||
if (colors == NULL)
|
||||
FATAL_ERROR("Failed to allocate PNG palette.\n");
|
||||
|
||||
for (int i = 0; i < palette->numColors; i++) {
|
||||
colors[i].red = palette->colors[i].red;
|
||||
colors[i].green = palette->colors[i].green;
|
||||
colors[i].blue = palette->colors[i].blue;
|
||||
}
|
||||
|
||||
png_set_PLTE(png_ptr, info_ptr, colors, palette->numColors);
|
||||
|
||||
free(colors);
|
||||
}
|
||||
|
||||
void WritePng(char *path, struct Image *image)
|
||||
{
|
||||
FILE *fp = fopen(path, "wb");
|
||||
|
||||
if (fp == NULL)
|
||||
FATAL_ERROR("Failed to open \"%s\" for writing.\n", path);
|
||||
|
||||
png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||
|
||||
if (!png_ptr)
|
||||
FATAL_ERROR("Failed to create PNG write struct.\n");
|
||||
|
||||
png_infop info_ptr = png_create_info_struct(png_ptr);
|
||||
|
||||
if (!info_ptr)
|
||||
FATAL_ERROR("Failed to create PNG info struct.\n");
|
||||
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
FATAL_ERROR("Failed to init I/O for writing \"%s\".\n", path);
|
||||
|
||||
png_init_io(png_ptr, fp);
|
||||
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
FATAL_ERROR("Error writing header for \"%s\".\n", path);
|
||||
|
||||
int color_type = image->hasPalette ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY;
|
||||
|
||||
png_set_IHDR(png_ptr, info_ptr, image->width, image->height,
|
||||
image->bitDepth, color_type, PNG_INTERLACE_NONE,
|
||||
PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
|
||||
|
||||
if (image->hasPalette) {
|
||||
SetPngPalette(png_ptr, info_ptr, &image->palette);
|
||||
|
||||
if (image->hasTransparency) {
|
||||
png_byte trans = 0;
|
||||
png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
png_write_info(png_ptr, info_ptr);
|
||||
|
||||
png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep));
|
||||
|
||||
if (row_pointers == NULL)
|
||||
FATAL_ERROR("Failed to allocate row pointers.\n");
|
||||
|
||||
int rowbytes = png_get_rowbytes(png_ptr, info_ptr);
|
||||
|
||||
for (int i = 0; i < image->height; i++)
|
||||
row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes));
|
||||
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
FATAL_ERROR("Error writing \"%s\".\n", path);
|
||||
|
||||
png_write_image(png_ptr, row_pointers);
|
||||
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
FATAL_ERROR("Error ending write of \"%s\".\n", path);
|
||||
|
||||
png_write_end(png_ptr, NULL);
|
||||
|
||||
fclose(fp);
|
||||
|
||||
png_destroy_write_struct(&png_ptr, &info_ptr);
|
||||
free(row_pointers);
|
||||
}
|
11
tools/gbagfx/convert_png.h
Normal file
11
tools/gbagfx/convert_png.h
Normal file
@ -0,0 +1,11 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef CONVERT_PNG_H
|
||||
#define CONVERT_PNG_H
|
||||
|
||||
#include "gfx.h"
|
||||
|
||||
void ReadPng(char *path, struct Image *image);
|
||||
void WritePng(char *path, struct Image *image);
|
||||
|
||||
#endif // CONVERT_PNG_H
|
326
tools/gbagfx/font.c
Normal file
326
tools/gbagfx/font.c
Normal file
@ -0,0 +1,326 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "global.h"
|
||||
#include "font.h"
|
||||
#include "gfx.h"
|
||||
#include "util.h"
|
||||
|
||||
unsigned char gFontPalette[][3] = {
|
||||
{0x90, 0xC8, 0xFF}, // bg (saturated blue that contrasts well with the shadow color)
|
||||
{0x38, 0x38, 0x38}, // fg (dark grey)
|
||||
{0xD8, 0xD8, 0xD8}, // shadow (light grey)
|
||||
{0xFF, 0xFF, 0xFF} // box (white)
|
||||
};
|
||||
|
||||
static void ConvertFromLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||
{
|
||||
unsigned int srcPixelsOffset = 0;
|
||||
|
||||
for (unsigned int row = 0; row < numRows; row++) {
|
||||
for (unsigned int column = 0; column < 16; column++) {
|
||||
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||
|
||||
for (unsigned int i = 0; i < 8; i++) {
|
||||
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||
unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||
|
||||
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||
|
||||
srcPixelsOffset += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertToLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||
{
|
||||
unsigned int destPixelsOffset = 0;
|
||||
|
||||
for (unsigned int row = 0; row < numRows; row++) {
|
||||
for (unsigned int column = 0; column < 16; column++) {
|
||||
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||
|
||||
for (unsigned int i = 0; i < 8; i++) {
|
||||
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||
unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||
|
||||
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||
|
||||
destPixelsOffset += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertFromHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||
{
|
||||
for (unsigned int row = 0; row < numRows; row++) {
|
||||
for (unsigned int column = 0; column < 16; column++) {
|
||||
unsigned int glyphIndex = (row * 16) + column;
|
||||
|
||||
for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) {
|
||||
unsigned int pixelsX = column * 8;
|
||||
unsigned int srcPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile;
|
||||
|
||||
for (unsigned int i = 0; i < 8; i++) {
|
||||
unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i;
|
||||
unsigned int destPixelsOffset = (pixelsY * 32) + (pixelsX / 4);
|
||||
|
||||
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||
|
||||
srcPixelsOffset += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertToHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||
{
|
||||
for (unsigned int row = 0; row < numRows; row++) {
|
||||
for (unsigned int column = 0; column < 16; column++) {
|
||||
unsigned int glyphIndex = (row * 16) + column;
|
||||
|
||||
for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) {
|
||||
unsigned int pixelsX = column * 8;
|
||||
unsigned int destPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile;
|
||||
|
||||
for (unsigned int i = 0; i < 8; i++) {
|
||||
unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i;
|
||||
unsigned int srcPixelsOffset = (pixelsY * 32) + (pixelsX / 4);
|
||||
|
||||
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||
|
||||
destPixelsOffset += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertFromFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||
{
|
||||
for (unsigned int row = 0; row < numRows; row++) {
|
||||
for (unsigned int column = 0; column < 16; column++) {
|
||||
unsigned int glyphIndex = (row * 16) + column;
|
||||
|
||||
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||
unsigned int srcPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1);
|
||||
|
||||
for (unsigned int i = 0; i < 8; i++) {
|
||||
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||
unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||
|
||||
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||
|
||||
srcPixelsOffset += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertToFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||
{
|
||||
for (unsigned int row = 0; row < numRows; row++) {
|
||||
for (unsigned int column = 0; column < 16; column++) {
|
||||
unsigned int glyphIndex = (row * 16) + column;
|
||||
|
||||
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||
unsigned int destPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1);
|
||||
|
||||
for (unsigned int i = 0; i < 8; i++) {
|
||||
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||
unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||
|
||||
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||
|
||||
destPixelsOffset += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void SetFontPalette(struct Image *image)
|
||||
{
|
||||
image->hasPalette = true;
|
||||
|
||||
image->palette.numColors = 4;
|
||||
|
||||
for (int i = 0; i < image->palette.numColors; i++) {
|
||||
image->palette.colors[i].red = gFontPalette[i][0];
|
||||
image->palette.colors[i].green = gFontPalette[i][1];
|
||||
image->palette.colors[i].blue = gFontPalette[i][2];
|
||||
}
|
||||
|
||||
image->hasTransparency = false;
|
||||
}
|
||||
|
||||
void ReadLatinFont(char *path, struct Image *image)
|
||||
{
|
||||
int fileSize;
|
||||
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||
|
||||
int numGlyphs = fileSize / 64;
|
||||
|
||||
if (numGlyphs % 16 != 0)
|
||||
FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs);
|
||||
|
||||
int numRows = numGlyphs / 16;
|
||||
|
||||
image->width = 256;
|
||||
image->height = numRows * 16;
|
||||
image->bitDepth = 2;
|
||||
image->pixels = malloc(fileSize);
|
||||
|
||||
if (image->pixels == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||
|
||||
ConvertFromLatinFont(buffer, image->pixels, numRows);
|
||||
|
||||
free(buffer);
|
||||
|
||||
SetFontPalette(image);
|
||||
}
|
||||
|
||||
void WriteLatinFont(char *path, struct Image *image)
|
||||
{
|
||||
if (image->width != 256)
|
||||
FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width);
|
||||
|
||||
if (image->height % 16 != 0)
|
||||
FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height);
|
||||
|
||||
int numRows = image->height / 16;
|
||||
int bufferSize = numRows * 16 * 64;
|
||||
unsigned char *buffer = malloc(bufferSize);
|
||||
|
||||
if (buffer == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||
|
||||
ConvertToLatinFont(image->pixels, buffer, numRows);
|
||||
|
||||
WriteWholeFile(path, buffer, bufferSize);
|
||||
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
void ReadHalfwidthJapaneseFont(char *path, struct Image *image)
|
||||
{
|
||||
int fileSize;
|
||||
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||
|
||||
int glyphSize = 32;
|
||||
|
||||
if (fileSize % glyphSize != 0)
|
||||
FATAL_ERROR("The file size (%d) is not a multiple of %d.\n", fileSize, glyphSize);
|
||||
|
||||
int numGlyphs = fileSize / glyphSize;
|
||||
|
||||
if (numGlyphs % 16 != 0)
|
||||
FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs);
|
||||
|
||||
int numRows = numGlyphs / 16;
|
||||
|
||||
image->width = 128;
|
||||
image->height = numRows * 16;
|
||||
image->bitDepth = 2;
|
||||
image->pixels = malloc(fileSize);
|
||||
|
||||
if (image->pixels == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||
|
||||
ConvertFromHalfwidthJapaneseFont(buffer, image->pixels, numRows);
|
||||
|
||||
free(buffer);
|
||||
|
||||
SetFontPalette(image);
|
||||
}
|
||||
|
||||
void WriteHalfwidthJapaneseFont(char *path, struct Image *image)
|
||||
{
|
||||
if (image->width != 128)
|
||||
FATAL_ERROR("The width of the font image (%d) is not 128.\n", image->width);
|
||||
|
||||
if (image->height % 16 != 0)
|
||||
FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height);
|
||||
|
||||
int numRows = image->height / 16;
|
||||
int bufferSize = numRows * 16 * 32;
|
||||
unsigned char *buffer = malloc(bufferSize);
|
||||
|
||||
if (buffer == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||
|
||||
ConvertToHalfwidthJapaneseFont(image->pixels, buffer, numRows);
|
||||
|
||||
WriteWholeFile(path, buffer, bufferSize);
|
||||
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
void ReadFullwidthJapaneseFont(char *path, struct Image *image)
|
||||
{
|
||||
int fileSize;
|
||||
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||
|
||||
int numGlyphs = fileSize / 64;
|
||||
|
||||
if (numGlyphs % 16 != 0)
|
||||
FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs);
|
||||
|
||||
int numRows = numGlyphs / 16;
|
||||
|
||||
image->width = 256;
|
||||
image->height = numRows * 16;
|
||||
image->bitDepth = 2;
|
||||
image->pixels = malloc(fileSize);
|
||||
|
||||
if (image->pixels == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||
|
||||
ConvertFromFullwidthJapaneseFont(buffer, image->pixels, numRows);
|
||||
|
||||
free(buffer);
|
||||
|
||||
SetFontPalette(image);
|
||||
}
|
||||
|
||||
void WriteFullwidthJapaneseFont(char *path, struct Image *image)
|
||||
{
|
||||
if (image->width != 256)
|
||||
FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width);
|
||||
|
||||
if (image->height % 16 != 0)
|
||||
FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height);
|
||||
|
||||
int numRows = image->height / 16;
|
||||
int bufferSize = numRows * 16 * 64;
|
||||
unsigned char *buffer = malloc(bufferSize);
|
||||
|
||||
if (buffer == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||
|
||||
ConvertToFullwidthJapaneseFont(image->pixels, buffer, numRows);
|
||||
|
||||
WriteWholeFile(path, buffer, bufferSize);
|
||||
|
||||
free(buffer);
|
||||
}
|
16
tools/gbagfx/font.h
Normal file
16
tools/gbagfx/font.h
Normal file
@ -0,0 +1,16 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef FONT_H
|
||||
#define FONT_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "gfx.h"
|
||||
|
||||
void ReadLatinFont(char *path, struct Image *image);
|
||||
void WriteLatinFont(char *path, struct Image *image);
|
||||
void ReadHalfwidthJapaneseFont(char *path, struct Image *image);
|
||||
void WriteHalfwidthJapaneseFont(char *path, struct Image *image);
|
||||
void ReadFullwidthJapaneseFont(char *path, struct Image *image);
|
||||
void WriteFullwidthJapaneseFont(char *path, struct Image *image);
|
||||
|
||||
#endif // FONT_H
|
329
tools/gbagfx/gfx.c
Normal file
329
tools/gbagfx/gfx.c
Normal file
@ -0,0 +1,329 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "global.h"
|
||||
#include "gfx.h"
|
||||
#include "util.h"
|
||||
|
||||
#define GET_GBA_PAL_RED(x) (((x) >> 0) & 0x1F)
|
||||
#define GET_GBA_PAL_GREEN(x) (((x) >> 5) & 0x1F)
|
||||
#define GET_GBA_PAL_BLUE(x) (((x) >> 10) & 0x1F)
|
||||
|
||||
#define SET_GBA_PAL(r, g, b) (((b) << 10) | ((g) << 5) | (r))
|
||||
|
||||
#define UPCONVERT_BIT_DEPTH(x) (((x) * 255) / 31)
|
||||
|
||||
#define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8)
|
||||
|
||||
static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors)
|
||||
{
|
||||
int tilesX = 0;
|
||||
int tilesY = 0;
|
||||
int pitch = tilesWidth;
|
||||
|
||||
for (int i = 0; i < numTiles; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
int destY = tilesY * 8 + j;
|
||||
int destX = tilesX;
|
||||
unsigned char srcPixelOctet = *src++;
|
||||
unsigned char *destPixelOctet = &dest[destY * pitch + destX];
|
||||
|
||||
for (int k = 0; k < 8; k++) {
|
||||
*destPixelOctet <<= 1;
|
||||
*destPixelOctet |= (srcPixelOctet & 1) ^ invertColors;
|
||||
srcPixelOctet >>= 1;
|
||||
}
|
||||
}
|
||||
|
||||
tilesX++;
|
||||
|
||||
if (tilesX == tilesWidth) {
|
||||
tilesX = 0;
|
||||
tilesY++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors)
|
||||
{
|
||||
int tilesX = 0;
|
||||
int tilesY = 0;
|
||||
int pitch = tilesWidth * 4;
|
||||
|
||||
for (int i = 0; i < numTiles; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
int destY = tilesY * 8 + j;
|
||||
|
||||
for (int k = 0; k < 4; k++) {
|
||||
int destX = tilesX * 4 + k;
|
||||
unsigned char srcPixelPair = *src++;
|
||||
unsigned char leftPixel = srcPixelPair & 0xF;
|
||||
unsigned char rightPixel = srcPixelPair >> 4;
|
||||
|
||||
if (invertColors) {
|
||||
leftPixel = 15 - leftPixel;
|
||||
rightPixel = 15 - rightPixel;
|
||||
}
|
||||
|
||||
dest[destY * pitch + destX] = (leftPixel << 4) | rightPixel;
|
||||
}
|
||||
}
|
||||
|
||||
tilesX++;
|
||||
|
||||
if (tilesX == tilesWidth) {
|
||||
tilesX = 0;
|
||||
tilesY++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors)
|
||||
{
|
||||
int tilesX = 0;
|
||||
int tilesY = 0;
|
||||
int pitch = tilesWidth * 8;
|
||||
|
||||
for (int i = 0; i < numTiles; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
int destY = tilesY * 8 + j;
|
||||
|
||||
for (int k = 0; k < 8; k++) {
|
||||
int destX = tilesX * 8 + k;
|
||||
unsigned char srcPixel = *src++;
|
||||
|
||||
if (invertColors)
|
||||
srcPixel = 255 - srcPixel;
|
||||
|
||||
dest[destY * pitch + destX] = srcPixel;
|
||||
}
|
||||
}
|
||||
|
||||
tilesX++;
|
||||
|
||||
if (tilesX == tilesWidth) {
|
||||
tilesX = 0;
|
||||
tilesY++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors)
|
||||
{
|
||||
int tilesX = 0;
|
||||
int tilesY = 0;
|
||||
int pitch = tilesWidth;
|
||||
|
||||
for (int i = 0; i < numTiles; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
int srcY = tilesY * 8 + j;
|
||||
int srcX = tilesX;
|
||||
unsigned char srcPixelOctet = src[srcY * pitch + srcX];
|
||||
unsigned char *destPixelOctet = dest++;
|
||||
|
||||
for (int k = 0; k < 8; k++) {
|
||||
*destPixelOctet <<= 1;
|
||||
*destPixelOctet |= (srcPixelOctet & 1) ^ invertColors;
|
||||
srcPixelOctet >>= 1;
|
||||
}
|
||||
}
|
||||
|
||||
tilesX++;
|
||||
|
||||
if (tilesX == tilesWidth) {
|
||||
tilesX = 0;
|
||||
tilesY++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors)
|
||||
{
|
||||
int tilesX = 0;
|
||||
int tilesY = 0;
|
||||
int pitch = tilesWidth * 4;
|
||||
|
||||
for (int i = 0; i < numTiles; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
int srcY = tilesY * 8 + j;
|
||||
|
||||
for (int k = 0; k < 4; k++) {
|
||||
int srcX = tilesX * 4 + k;
|
||||
unsigned char srcPixelPair = src[srcY * pitch + srcX];
|
||||
unsigned char leftPixel = srcPixelPair >> 4;
|
||||
unsigned char rightPixel = srcPixelPair & 0xF;
|
||||
|
||||
if (invertColors) {
|
||||
leftPixel = 15 - leftPixel;
|
||||
rightPixel = 15 - rightPixel;
|
||||
}
|
||||
|
||||
*dest++ = (rightPixel << 4) | leftPixel;
|
||||
}
|
||||
}
|
||||
|
||||
tilesX++;
|
||||
|
||||
if (tilesX == tilesWidth) {
|
||||
tilesX = 0;
|
||||
tilesY++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors)
|
||||
{
|
||||
int tilesX = 0;
|
||||
int tilesY = 0;
|
||||
int pitch = tilesWidth * 8;
|
||||
|
||||
for (int i = 0; i < numTiles; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
int srcY = tilesY * 8 + j;
|
||||
|
||||
for (int k = 0; k < 8; k++) {
|
||||
int srcX = tilesX * 8 + k;
|
||||
unsigned char srcPixel = src[srcY * pitch + srcX];
|
||||
|
||||
if (invertColors)
|
||||
srcPixel = 255 - srcPixel;
|
||||
|
||||
*dest++ = srcPixel;
|
||||
}
|
||||
}
|
||||
|
||||
tilesX++;
|
||||
|
||||
if (tilesX == tilesWidth) {
|
||||
tilesX = 0;
|
||||
tilesY++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors)
|
||||
{
|
||||
int tileSize = bitDepth * 8;
|
||||
|
||||
int fileSize;
|
||||
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||
|
||||
int numTiles = fileSize / tileSize;
|
||||
|
||||
int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth;
|
||||
|
||||
image->width = tilesWidth * 8;
|
||||
image->height = tilesHeight * 8;
|
||||
image->bitDepth = bitDepth;
|
||||
image->pixels = calloc(tilesWidth * tilesHeight, tileSize);
|
||||
|
||||
if (image->pixels == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for pixels.\n");
|
||||
|
||||
switch (bitDepth) {
|
||||
case 1:
|
||||
ConvertFromTiles1Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors);
|
||||
break;
|
||||
case 4:
|
||||
ConvertFromTiles4Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors);
|
||||
break;
|
||||
case 8:
|
||||
ConvertFromTiles8Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors);
|
||||
break;
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, bool invertColors)
|
||||
{
|
||||
int tileSize = bitDepth * 8;
|
||||
|
||||
if (image->width % 8 != 0)
|
||||
FATAL_ERROR("The width in pixels (%d) isn't a multiple of 8.\n", image->width);
|
||||
|
||||
if (image->height % 8 != 0)
|
||||
FATAL_ERROR("The height in pixels (%d) isn't a multiple of 8.\n", image->height);
|
||||
|
||||
int tilesWidth = image->width / 8;
|
||||
int tilesHeight = image->height / 8;
|
||||
|
||||
int maxNumTiles = tilesWidth * tilesHeight;
|
||||
|
||||
if (numTiles == 0)
|
||||
numTiles = maxNumTiles;
|
||||
else if (numTiles > maxNumTiles)
|
||||
FATAL_ERROR("The specified number of tiles (%d) is greater than the maximum possible value (%d).\n", numTiles, maxNumTiles);
|
||||
|
||||
int bufferSize = numTiles * tileSize;
|
||||
unsigned char *buffer = malloc(bufferSize);
|
||||
|
||||
if (buffer == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for pixels.\n");
|
||||
|
||||
switch (bitDepth) {
|
||||
case 1:
|
||||
ConvertToTiles1Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors);
|
||||
break;
|
||||
case 4:
|
||||
ConvertToTiles4Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors);
|
||||
break;
|
||||
case 8:
|
||||
ConvertToTiles8Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors);
|
||||
break;
|
||||
}
|
||||
|
||||
WriteWholeFile(path, buffer, bufferSize);
|
||||
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
void FreeImage(struct Image *image)
|
||||
{
|
||||
free(image->pixels);
|
||||
image->pixels = NULL;
|
||||
}
|
||||
|
||||
void ReadGbaPalette(char *path, struct Palette *palette)
|
||||
{
|
||||
int fileSize;
|
||||
unsigned char *data = ReadWholeFile(path, &fileSize);
|
||||
|
||||
if (fileSize % 2 != 0)
|
||||
FATAL_ERROR("The file size (%d) is not a multiple of 2.\n", fileSize);
|
||||
|
||||
palette->numColors = fileSize / 2;
|
||||
|
||||
for (int i = 0; i < palette->numColors; i++) {
|
||||
uint16_t paletteEntry = (data[i * 2 + 1] << 8) | data[i * 2];
|
||||
palette->colors[i].red = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_RED(paletteEntry));
|
||||
palette->colors[i].green = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_GREEN(paletteEntry));
|
||||
palette->colors[i].blue = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_BLUE(paletteEntry));
|
||||
}
|
||||
|
||||
free(data);
|
||||
}
|
||||
|
||||
void WriteGbaPalette(char *path, struct Palette *palette)
|
||||
{
|
||||
FILE *fp = fopen(path, "wb");
|
||||
|
||||
if (fp == NULL)
|
||||
FATAL_ERROR("Failed to open \"%s\" for writing.\n", path);
|
||||
|
||||
for (int i = 0; i < palette->numColors; i++) {
|
||||
unsigned char red = DOWNCONVERT_BIT_DEPTH(palette->colors[i].red);
|
||||
unsigned char green = DOWNCONVERT_BIT_DEPTH(palette->colors[i].green);
|
||||
unsigned char blue = DOWNCONVERT_BIT_DEPTH(palette->colors[i].blue);
|
||||
|
||||
uint16_t paletteEntry = SET_GBA_PAL(red, green, blue);
|
||||
|
||||
fputc(paletteEntry & 0xFF, fp);
|
||||
fputc(paletteEntry >> 8, fp);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
}
|
36
tools/gbagfx/gfx.h
Normal file
36
tools/gbagfx/gfx.h
Normal file
@ -0,0 +1,36 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef GFX_H
|
||||
#define GFX_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
struct Color {
|
||||
unsigned char red;
|
||||
unsigned char green;
|
||||
unsigned char blue;
|
||||
};
|
||||
|
||||
struct Palette {
|
||||
struct Color colors[256];
|
||||
int numColors;
|
||||
};
|
||||
|
||||
struct Image {
|
||||
int width;
|
||||
int height;
|
||||
int bitDepth;
|
||||
unsigned char *pixels;
|
||||
bool hasPalette;
|
||||
struct Palette palette;
|
||||
bool hasTransparency;
|
||||
};
|
||||
|
||||
void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors);
|
||||
void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, bool invertColors);
|
||||
void FreeImage(struct Image *image);
|
||||
void ReadGbaPalette(char *path, struct Palette *palette);
|
||||
void WriteGbaPalette(char *path, struct Palette *palette);
|
||||
|
||||
#endif // GFX_H
|
31
tools/gbagfx/global.h
Normal file
31
tools/gbagfx/global.h
Normal file
@ -0,0 +1,31 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef GLOBAL_H
|
||||
#define GLOBAL_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
#define FATAL_ERROR(format, ...) \
|
||||
do { \
|
||||
fprintf(stderr, format, __VA_ARGS__); \
|
||||
exit(1); \
|
||||
} while (0)
|
||||
|
||||
#define UNUSED
|
||||
|
||||
#else
|
||||
|
||||
#define FATAL_ERROR(format, ...) \
|
||||
do { \
|
||||
fprintf(stderr, format, ##__VA_ARGS__); \
|
||||
exit(1); \
|
||||
} while (0)
|
||||
|
||||
#define UNUSED __attribute__((__unused__))
|
||||
|
||||
#endif // _MSC_VER
|
||||
|
||||
#endif // GLOBAL_H
|
164
tools/gbagfx/jasc_pal.c
Normal file
164
tools/gbagfx/jasc_pal.c
Normal file
@ -0,0 +1,164 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "global.h"
|
||||
#include "gfx.h"
|
||||
#include "util.h"
|
||||
|
||||
// Read/write Paint Shop Pro palette files.
|
||||
|
||||
// Format of a Paint Shop Pro palette file, line by line:
|
||||
// "JASC-PAL\r\n" (signature)
|
||||
// "0100\r\n" (version; seems to always be "0100")
|
||||
// "<NUMBER_OF_COLORS>\r\n" (number of colors in decimal)
|
||||
//
|
||||
// 16 or 256 times (depending on above line):
|
||||
// "<RED> <GREEN> <BLUE>\r\n" (color entry)
|
||||
//
|
||||
// Each color component is a decimal number from 0 to 255.
|
||||
// Examples:
|
||||
// Black - "0 0 0\r\n"
|
||||
// Blue - "0 0 255\r\n"
|
||||
// Brown - "150 75 0\r\n"
|
||||
|
||||
#define MAX_LINE_LENGTH 11
|
||||
|
||||
void ReadJascPaletteLine(FILE *fp, char *line)
|
||||
{
|
||||
int c;
|
||||
int length = 0;
|
||||
|
||||
for (;;) {
|
||||
c = fgetc(fp);
|
||||
|
||||
if (c == '\r') {
|
||||
c = fgetc(fp);
|
||||
|
||||
if (c != '\n')
|
||||
FATAL_ERROR("CR line endings aren't supported.\n");
|
||||
|
||||
line[length] = 0;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (c == '\n')
|
||||
FATAL_ERROR("LF line endings aren't supported.\n");
|
||||
|
||||
if (c == EOF)
|
||||
FATAL_ERROR("Unexpected EOF. No CRLF at end of file.\n");
|
||||
|
||||
if (c == 0)
|
||||
FATAL_ERROR("NUL character in file.\n");
|
||||
|
||||
if (length == MAX_LINE_LENGTH) {
|
||||
line[length] = 0;
|
||||
FATAL_ERROR("The line \"%s\" is too long.\n", line);
|
||||
}
|
||||
|
||||
line[length++] = c;
|
||||
}
|
||||
}
|
||||
|
||||
void ReadJascPalette(char *path, struct Palette *palette)
|
||||
{
|
||||
char line[MAX_LINE_LENGTH + 1];
|
||||
|
||||
FILE *fp = fopen(path, "rb");
|
||||
|
||||
ReadJascPaletteLine(fp, line);
|
||||
|
||||
if (strcmp(line, "JASC-PAL") != 0)
|
||||
FATAL_ERROR("Invalid JASC-PAL signature.\n");
|
||||
|
||||
ReadJascPaletteLine(fp, line);
|
||||
|
||||
if (strcmp(line, "0100") != 0)
|
||||
FATAL_ERROR("Unsuported JASC-PAL version.\n");
|
||||
|
||||
ReadJascPaletteLine(fp, line);
|
||||
|
||||
if (!ParseNumber(line, NULL, 10, &palette->numColors))
|
||||
FATAL_ERROR("Failed to parse number of colors.\n");
|
||||
|
||||
if (palette->numColors != 16 && palette->numColors != 256)
|
||||
FATAL_ERROR("%d is an invalid number of colors. The number of colors must be 16 or 256.\n", palette->numColors);
|
||||
|
||||
for (int i = 0; i < palette->numColors; i++) {
|
||||
ReadJascPaletteLine(fp, line);
|
||||
|
||||
char *s = line;
|
||||
char *end;
|
||||
|
||||
int red;
|
||||
int green;
|
||||
int blue;
|
||||
|
||||
if (!ParseNumber(s, &end, 10, &red))
|
||||
FATAL_ERROR("Failed to parse red color component.\n");
|
||||
|
||||
s = end;
|
||||
|
||||
if (*s != ' ')
|
||||
FATAL_ERROR("Expected a space after red color component.\n");
|
||||
|
||||
s++;
|
||||
|
||||
if (*s < '0' || *s > '9')
|
||||
FATAL_ERROR("Expected only a space between red and green color components.\n");
|
||||
|
||||
if (!ParseNumber(s, &end, 10, &green))
|
||||
FATAL_ERROR("Failed to parse green color component.\n");
|
||||
|
||||
s = end;
|
||||
|
||||
if (*s != ' ')
|
||||
FATAL_ERROR("Expected a space after green color component.\n");
|
||||
|
||||
s++;
|
||||
|
||||
if (*s < '0' || *s > '9')
|
||||
FATAL_ERROR("Expected only a space between green and blue color components.\n");
|
||||
|
||||
if (!ParseNumber(s, &end, 10, &blue))
|
||||
FATAL_ERROR("Failed to parse blue color component.\n");
|
||||
|
||||
if (*end != 0)
|
||||
FATAL_ERROR("Garbage after blue color component.\n");
|
||||
|
||||
if (red < 0 || red > 255)
|
||||
FATAL_ERROR("Red color component (%d) is outside the range [0, 255].\n", red);
|
||||
|
||||
if (green < 0 || green > 255)
|
||||
FATAL_ERROR("Green color component (%d) is outside the range [0, 255].\n", green);
|
||||
|
||||
if (blue < 0 || blue > 255)
|
||||
FATAL_ERROR("Blue color component (%d) is outside the range [0, 255].\n", blue);
|
||||
|
||||
palette->colors[i].red = red;
|
||||
palette->colors[i].green = green;
|
||||
palette->colors[i].blue = blue;
|
||||
}
|
||||
|
||||
if (fgetc(fp) != EOF)
|
||||
FATAL_ERROR("Garbage after color data.\n");
|
||||
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
void WriteJascPalette(char *path, struct Palette *palette)
|
||||
{
|
||||
FILE *fp = fopen(path, "wb");
|
||||
|
||||
fputs("JASC-PAL\r\n", fp);
|
||||
fputs("0100\r\n", fp);
|
||||
fprintf(fp, "%d\r\n", palette->numColors);
|
||||
|
||||
for (int i = 0; i < palette->numColors; i++) {
|
||||
struct Color *color = &palette->colors[i];
|
||||
fprintf(fp, "%d %d %d\r\n", color->red, color->green, color->blue);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
}
|
9
tools/gbagfx/jasc_pal.h
Normal file
9
tools/gbagfx/jasc_pal.h
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef JASC_PAL_H
|
||||
#define JASC_PAL_H
|
||||
|
||||
void ReadJascPalette(char *path, struct Palette *palette);
|
||||
void WriteJascPalette(char *path, struct Palette *palette);
|
||||
|
||||
#endif // JASC_PAL_H
|
143
tools/gbagfx/lz.c
Normal file
143
tools/gbagfx/lz.c
Normal file
@ -0,0 +1,143 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include "global.h"
|
||||
#include "lz.h"
|
||||
|
||||
unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize)
|
||||
{
|
||||
if (srcSize < 4)
|
||||
return NULL;
|
||||
|
||||
int destSize = (src[3] << 16) | (src[2] << 8) | src[1];
|
||||
|
||||
unsigned char *dest = malloc(destSize);
|
||||
|
||||
if (dest == NULL)
|
||||
return NULL;
|
||||
|
||||
int srcPos = 4;
|
||||
int destPos = 0;
|
||||
|
||||
for (;;) {
|
||||
if (srcPos >= srcSize)
|
||||
return NULL;
|
||||
|
||||
unsigned char flags = src[srcPos++];
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (flags & 0x80) {
|
||||
if (srcPos + 1 >= srcSize)
|
||||
return NULL;
|
||||
|
||||
int blockSize = (src[srcPos] >> 4) + 3;
|
||||
int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1;
|
||||
|
||||
srcPos += 2;
|
||||
|
||||
int blockPos = destPos - blockDistance;
|
||||
|
||||
if (destPos + blockSize > destSize || blockPos < 0)
|
||||
return NULL;
|
||||
|
||||
for (int j = 0; j < blockSize; j++)
|
||||
dest[destPos++] = dest[blockPos + j];
|
||||
} else {
|
||||
if (srcPos >= srcSize || destPos >= destSize)
|
||||
return NULL;
|
||||
|
||||
dest[destPos++] = src[srcPos++];
|
||||
}
|
||||
|
||||
if (destPos == destSize) {
|
||||
*uncompressedSize = destSize;
|
||||
return dest;
|
||||
}
|
||||
|
||||
flags <<= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize)
|
||||
{
|
||||
const int minDistance = 2; // for compatibility with LZ77UnCompVram()
|
||||
|
||||
if (srcSize <= 0)
|
||||
return NULL;
|
||||
|
||||
int worstCaseDestSize = 4 + srcSize + ((srcSize + 7) / 8);
|
||||
|
||||
// Round up to the next multiple of four.
|
||||
worstCaseDestSize = (worstCaseDestSize + 3) & ~3;
|
||||
|
||||
unsigned char *dest = malloc(worstCaseDestSize);
|
||||
|
||||
if (dest == NULL)
|
||||
return NULL;
|
||||
|
||||
// header
|
||||
dest[0] = 0x10; // LZ compression type
|
||||
dest[1] = (unsigned char)srcSize;
|
||||
dest[2] = (unsigned char)(srcSize >> 8);
|
||||
dest[3] = (unsigned char)(srcSize >> 16);
|
||||
|
||||
int srcPos = 0;
|
||||
int destPos = 4;
|
||||
|
||||
for (;;) {
|
||||
unsigned char *flags = &dest[destPos++];
|
||||
*flags = 0;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
int bestBlockDistance = 0;
|
||||
int bestBlockSize = 0;
|
||||
int blockDistance = minDistance;
|
||||
|
||||
while (blockDistance <= srcPos && blockDistance <= 0x1000) {
|
||||
int blockStart = srcPos - blockDistance;
|
||||
int blockSize = 0;
|
||||
|
||||
while (blockSize < 18
|
||||
&& srcPos + blockSize < srcSize
|
||||
&& src[blockStart + blockSize] == src[srcPos + blockSize])
|
||||
blockSize++;
|
||||
|
||||
if (blockSize > bestBlockSize) {
|
||||
bestBlockDistance = blockDistance;
|
||||
bestBlockSize = blockSize;
|
||||
|
||||
if (blockSize == 18)
|
||||
break;
|
||||
}
|
||||
|
||||
blockDistance++;
|
||||
}
|
||||
|
||||
if (bestBlockSize >= 3) {
|
||||
*flags |= (0x80 >> i);
|
||||
srcPos += bestBlockSize;
|
||||
bestBlockSize -= 3;
|
||||
bestBlockDistance--;
|
||||
dest[destPos++] = (bestBlockSize << 4) | ((unsigned int)bestBlockDistance >> 8);
|
||||
dest[destPos++] = (unsigned char)bestBlockDistance;
|
||||
} else {
|
||||
dest[destPos++] = src[srcPos++];
|
||||
}
|
||||
|
||||
if (srcPos == srcSize) {
|
||||
// Pad to multiple of 4 bytes.
|
||||
int remainder = destPos % 4;
|
||||
|
||||
if (remainder != 0) {
|
||||
for (int i = 0; i < 4 - remainder; i++)
|
||||
dest[destPos++] = 0;
|
||||
}
|
||||
|
||||
*compressedSize = destPos;
|
||||
return dest;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
tools/gbagfx/lz.h
Normal file
9
tools/gbagfx/lz.h
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef LZ_H
|
||||
#define LZ_H
|
||||
|
||||
unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize);
|
||||
unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize);
|
||||
|
||||
#endif // LZ_H
|
307
tools/gbagfx/main.c
Normal file
307
tools/gbagfx/main.c
Normal file
@ -0,0 +1,307 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include "global.h"
|
||||
#include "util.h"
|
||||
#include "gfx.h"
|
||||
#include "convert_png.h"
|
||||
#include "jasc_pal.h"
|
||||
#include "lz.h"
|
||||
#include "font.h"
|
||||
|
||||
struct CommandHandler
|
||||
{
|
||||
const char *inputFileExtension;
|
||||
const char *outputFileExtension;
|
||||
void(*function)(char *inputPath, char *outputPath, int argc, char **argv);
|
||||
};
|
||||
|
||||
void ConvertGbaToPng(char *inputPath, char *outputPath, int width, int bitDepth, char *paletteFilePath, bool hasTransparency)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
if (paletteFilePath != NULL) {
|
||||
ReadGbaPalette(paletteFilePath, &image.palette);
|
||||
image.hasPalette = true;
|
||||
} else {
|
||||
image.hasPalette = false;
|
||||
}
|
||||
|
||||
ReadImage(inputPath, width, bitDepth, &image, !image.hasPalette);
|
||||
|
||||
image.hasTransparency = hasTransparency;
|
||||
|
||||
WritePng(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void ConvertPngToGba(char *inputPath, char *outputPath, int numTiles, int bitDepth)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
image.bitDepth = bitDepth;
|
||||
|
||||
ReadPng(inputPath, &image);
|
||||
|
||||
WriteImage(outputPath, numTiles, bitDepth, &image, !image.hasPalette);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv)
|
||||
{
|
||||
char *inputFileExtension = GetFileExtension(inputPath);
|
||||
int bitDepth = inputFileExtension[0] - '0';
|
||||
char *paletteFilePath;
|
||||
bool hasPalette = false;
|
||||
bool hasTransparency = false;
|
||||
int width = 1;
|
||||
|
||||
for (int i = 3; i < argc; i++) {
|
||||
char *option = argv[i];
|
||||
|
||||
if (strcmp(option, "-palette") == 0) {
|
||||
if (i + 1 >= argc)
|
||||
FATAL_ERROR("No palette file path following \"-palette\".\n");
|
||||
|
||||
i++;
|
||||
|
||||
paletteFilePath = argv[i];
|
||||
|
||||
hasPalette = true;
|
||||
} else if (strcmp(option, "-object") == 0) {
|
||||
hasTransparency = true;
|
||||
} else if (strcmp(option, "-width") == 0) {
|
||||
if (i + 1 >= argc)
|
||||
FATAL_ERROR("No width following \"-width\".\n");
|
||||
|
||||
i++;
|
||||
|
||||
if (!ParseNumber(argv[i], NULL, 10, &width))
|
||||
FATAL_ERROR("Failed to parse width.\n");
|
||||
|
||||
if (width < 1)
|
||||
FATAL_ERROR("Width must be positive.\n");
|
||||
} else {
|
||||
FATAL_ERROR("Unrecognized option \"%s\".\n", option);
|
||||
}
|
||||
}
|
||||
|
||||
ConvertGbaToPng(inputPath, outputPath, width, bitDepth, hasPalette ? paletteFilePath : NULL, hasTransparency);
|
||||
}
|
||||
|
||||
void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv)
|
||||
{
|
||||
char *outputFileExtension = GetFileExtension(outputPath);
|
||||
int bitDepth = outputFileExtension[0] - '0';
|
||||
int numTiles = 0;
|
||||
|
||||
for (int i = 3; i < argc; i++) {
|
||||
char *option = argv[i];
|
||||
|
||||
if (strcmp(option, "-num_tiles") == 0) {
|
||||
if (i + 1 >= argc)
|
||||
FATAL_ERROR("No number of tiles following \"-num_tiles\".\n");
|
||||
|
||||
i++;
|
||||
|
||||
if (!ParseNumber(argv[i], NULL, 10, &numTiles))
|
||||
FATAL_ERROR("Failed to parse number of tiles.\n");
|
||||
|
||||
if (numTiles < 1)
|
||||
FATAL_ERROR("Number of tiles must be positive.\n");
|
||||
} else {
|
||||
FATAL_ERROR("Unrecognized option \"%s\".\n", option);
|
||||
}
|
||||
}
|
||||
|
||||
ConvertPngToGba(inputPath, outputPath, numTiles, bitDepth);
|
||||
}
|
||||
|
||||
void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Palette palette;
|
||||
|
||||
ReadGbaPalette(inputPath, &palette);
|
||||
WriteJascPalette(outputPath, &palette);
|
||||
}
|
||||
|
||||
void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv)
|
||||
{
|
||||
int numColors = 0;
|
||||
|
||||
for (int i = 3; i < argc; i++) {
|
||||
char *option = argv[i];
|
||||
|
||||
if (strcmp(option, "-num_colors") == 0) {
|
||||
if (i + 1 >= argc)
|
||||
FATAL_ERROR("No number of colors following \"-num_colors\".\n");
|
||||
|
||||
i++;
|
||||
|
||||
if (!ParseNumber(argv[i], NULL, 10, &numColors))
|
||||
FATAL_ERROR("Failed to parse number of colors.\n");
|
||||
|
||||
if (numColors < 1)
|
||||
FATAL_ERROR("Number of colors must be positive.\n");
|
||||
} else {
|
||||
FATAL_ERROR("Unrecognized option \"%s\".\n", option);
|
||||
}
|
||||
}
|
||||
|
||||
struct Palette palette;
|
||||
|
||||
ReadJascPalette(inputPath, &palette);
|
||||
|
||||
if (numColors != 0)
|
||||
palette.numColors = numColors;
|
||||
|
||||
WriteGbaPalette(outputPath, &palette);
|
||||
}
|
||||
|
||||
void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
ReadLatinFont(inputPath, &image);
|
||||
WritePng(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
image.bitDepth = 2;
|
||||
|
||||
ReadPng(inputPath, &image);
|
||||
WriteLatinFont(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
ReadHalfwidthJapaneseFont(inputPath, &image);
|
||||
WritePng(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
image.bitDepth = 2;
|
||||
|
||||
ReadPng(inputPath, &image);
|
||||
WriteHalfwidthJapaneseFont(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
ReadFullwidthJapaneseFont(inputPath, &image);
|
||||
WritePng(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
struct Image image;
|
||||
|
||||
image.bitDepth = 2;
|
||||
|
||||
ReadPng(inputPath, &image);
|
||||
WriteFullwidthJapaneseFont(outputPath, &image);
|
||||
|
||||
FreeImage(&image);
|
||||
}
|
||||
|
||||
void HandleLZCompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
int fileSize;
|
||||
unsigned char *buffer = ReadWholeFile(inputPath, &fileSize);
|
||||
|
||||
int compressedSize;
|
||||
unsigned char *compressedData = LZCompress(buffer, fileSize, &compressedSize);
|
||||
|
||||
free(buffer);
|
||||
|
||||
WriteWholeFile(outputPath, compressedData, compressedSize);
|
||||
|
||||
free(compressedData);
|
||||
}
|
||||
|
||||
void HandleLZDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||
{
|
||||
int fileSize;
|
||||
unsigned char *buffer = ReadWholeFile(inputPath, &fileSize);
|
||||
|
||||
int uncompressedSize;
|
||||
unsigned char *uncompressedData = LZDecompress(buffer, fileSize, &uncompressedSize);
|
||||
|
||||
free(buffer);
|
||||
|
||||
WriteWholeFile(outputPath, uncompressedData, uncompressedSize);
|
||||
|
||||
free(uncompressedData);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc < 3)
|
||||
FATAL_ERROR("Usage: gbagfx INPUT_PATH OUTPUT_PATH [options...]\n");
|
||||
|
||||
struct CommandHandler handlers[] =
|
||||
{
|
||||
{ "1bpp", "png", HandleGbaToPngCommand },
|
||||
{ "4bpp", "png", HandleGbaToPngCommand },
|
||||
{ "8bpp", "png", HandleGbaToPngCommand },
|
||||
{ "png", "1bpp", HandlePngToGbaCommand },
|
||||
{ "png", "4bpp", HandlePngToGbaCommand },
|
||||
{ "png", "8bpp", HandlePngToGbaCommand },
|
||||
{ "gbapal", "pal", HandleGbaToJascPaletteCommand },
|
||||
{ "pal", "gbapal", HandleJascToGbaPaletteCommand },
|
||||
{ "latfont", "png", HandleLatinFontToPngCommand },
|
||||
{ "png", "latfont", HandlePngToLatinFontCommand },
|
||||
{ "hwjpnfont", "png", HandleHalfwidthJapaneseFontToPngCommand },
|
||||
{ "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand },
|
||||
{ "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand },
|
||||
{ "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand },
|
||||
{ NULL, "lz", HandleLZCompressCommand },
|
||||
{ "lz", NULL, HandleLZDecompressCommand },
|
||||
{ NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
char *inputPath = argv[1];
|
||||
char *outputPath = argv[2];
|
||||
char *inputFileExtension = GetFileExtension(inputPath);
|
||||
char *outputFileExtension = GetFileExtension(outputPath);
|
||||
|
||||
if (inputFileExtension == NULL)
|
||||
FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath);
|
||||
|
||||
if (outputFileExtension == NULL)
|
||||
FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath);
|
||||
|
||||
for (int i = 0; handlers[i].function != NULL; i++) {
|
||||
if ((handlers[i].inputFileExtension == NULL || strcmp(handlers[i].inputFileExtension, inputFileExtension) == 0)
|
||||
&& (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0)) {
|
||||
handlers[i].function(inputPath, outputPath, argc, argv);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath);
|
||||
}
|
98
tools/gbagfx/util.c
Normal file
98
tools/gbagfx/util.c
Normal file
@ -0,0 +1,98 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include "global.h"
|
||||
#include "util.h"
|
||||
|
||||
bool ParseNumber(char *s, char **end, int radix, int *intValue)
|
||||
{
|
||||
char *localEnd;
|
||||
|
||||
if (end == NULL)
|
||||
end = &localEnd;
|
||||
|
||||
errno = 0;
|
||||
|
||||
const long longValue = strtol(s, end, radix);
|
||||
|
||||
if (*end == s)
|
||||
return false; // not a number
|
||||
|
||||
if ((longValue == LONG_MIN || longValue == LONG_MAX) && errno == ERANGE)
|
||||
return false;
|
||||
|
||||
if (longValue > INT_MAX)
|
||||
return false;
|
||||
|
||||
if (longValue < INT_MIN)
|
||||
return false;
|
||||
|
||||
*intValue = (int)longValue;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
char *GetFileExtension(char *path)
|
||||
{
|
||||
char *extension = path;
|
||||
|
||||
while (*extension != 0)
|
||||
extension++;
|
||||
|
||||
while (extension > path && *extension != '.')
|
||||
extension--;
|
||||
|
||||
if (extension == path)
|
||||
return NULL;
|
||||
|
||||
extension++;
|
||||
|
||||
if (*extension == 0)
|
||||
return NULL;
|
||||
|
||||
return extension;
|
||||
}
|
||||
|
||||
unsigned char *ReadWholeFile(char *path, int *size)
|
||||
{
|
||||
FILE *fp = fopen(path, "rb");
|
||||
|
||||
if (fp == NULL)
|
||||
FATAL_ERROR("Failed to open \"%s\" for reading.\n", path);
|
||||
|
||||
fseek(fp, 0, SEEK_END);
|
||||
|
||||
*size = ftell(fp);
|
||||
|
||||
unsigned char *buffer = malloc(*size);
|
||||
|
||||
if (buffer == NULL)
|
||||
FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path);
|
||||
|
||||
rewind(fp);
|
||||
|
||||
if (fread(buffer, *size, 1, fp) != 1)
|
||||
FATAL_ERROR("Failed to read \"%s\".\n", path);
|
||||
|
||||
fclose(fp);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
void WriteWholeFile(char *path, void *buffer, int bufferSize)
|
||||
{
|
||||
FILE *fp = fopen(path, "wb");
|
||||
|
||||
if (fp == NULL)
|
||||
FATAL_ERROR("Failed to open \"%s\" for writing.\n", path);
|
||||
|
||||
if (fwrite(buffer, bufferSize, 1, fp) != 1)
|
||||
FATAL_ERROR("Failed to write to \"%s\".\n", path);
|
||||
|
||||
fclose(fp);
|
||||
}
|
13
tools/gbagfx/util.h
Normal file
13
tools/gbagfx/util.h
Normal file
@ -0,0 +1,13 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#ifndef UTIL_H
|
||||
#define UTIL_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
bool ParseNumber(char *s, char **end, int radix, int *intValue);
|
||||
char *GetFileExtension(char *path);
|
||||
unsigned char *ReadWholeFile(char *path, int *size);
|
||||
void WriteWholeFile(char *path, void *buffer, int bufferSize);
|
||||
|
||||
#endif // UTIL_H
|
1
tools/scaninc/.gitignore
vendored
Normal file
1
tools/scaninc/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
scaninc
|
19
tools/scaninc/LICENSE
Normal file
19
tools/scaninc/LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2015 YamaArashi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
13
tools/scaninc/Makefile
Normal file
13
tools/scaninc/Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
CXX = g++
|
||||
|
||||
CXXFLAGS = -Wall -std=c++11 -O2
|
||||
|
||||
SRCS = scaninc.cpp
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
scaninc: $(SRCS)
|
||||
$(CXX) $(CXXFLAGS) $(SRCS) -o $@
|
||||
|
||||
clean:
|
||||
$(RM) scaninc scaninc.exe
|
320
tools/scaninc/scaninc.cpp
Normal file
320
tools/scaninc/scaninc.cpp
Normal file
@ -0,0 +1,320 @@
|
||||
// Copyright (c) 2015 YamaArashi
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <stack>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
#define FATAL_INPUT_ERROR(format, ...) \
|
||||
do { \
|
||||
fprintf(stderr, "%s:%d " format, m_path.c_str(), m_lineNum, __VA_ARGS__); \
|
||||
exit(1); \
|
||||
} while (0)
|
||||
|
||||
#define FATAL_ERROR(format, ...) \
|
||||
do { \
|
||||
fprintf(stderr, format, __VA_ARGS__); \
|
||||
exit(1); \
|
||||
} while (0)
|
||||
|
||||
#else
|
||||
|
||||
#define FATAL_INPUT_ERROR(format, ...) \
|
||||
do { \
|
||||
fprintf(stderr, "%s:%d " format, m_path.c_str(), m_lineNum, ##__VA_ARGS__); \
|
||||
exit(1); \
|
||||
} while (0)
|
||||
|
||||
#define FATAL_ERROR(format, ...) \
|
||||
do { \
|
||||
fprintf(stderr, format, ##__VA_ARGS__); \
|
||||
exit(1); \
|
||||
} while (0)
|
||||
|
||||
#endif // _MSC_VER
|
||||
|
||||
#define SCANINC_MAX_PATH 255
|
||||
|
||||
enum class IncDirectiveType {
|
||||
None,
|
||||
Include,
|
||||
Incbin
|
||||
};
|
||||
|
||||
class AsmFile
|
||||
{
|
||||
public:
|
||||
AsmFile(std::string path);
|
||||
~AsmFile();
|
||||
IncDirectiveType ReadUntilIncDirective(std::string &path);
|
||||
|
||||
private:
|
||||
char *m_buffer;
|
||||
int m_pos;
|
||||
int m_size;
|
||||
int m_lineNum;
|
||||
std::string m_path;
|
||||
|
||||
int GetChar()
|
||||
{
|
||||
if (m_pos >= m_size)
|
||||
return -1;
|
||||
|
||||
int c = m_buffer[m_pos++];
|
||||
|
||||
if (c == '\r') {
|
||||
if (m_pos < m_size && m_buffer[m_pos++] == '\n') {
|
||||
m_lineNum++;
|
||||
return '\n';
|
||||
} else {
|
||||
FATAL_INPUT_ERROR("CR line endings are not supported\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (c == '\n')
|
||||
m_lineNum++;
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
// No newline translation because it's not needed for any use of this function.
|
||||
int PeekChar()
|
||||
{
|
||||
if (m_pos >= m_size)
|
||||
return -1;
|
||||
|
||||
return m_buffer[m_pos];
|
||||
}
|
||||
|
||||
void SkipTabsAndSpaces()
|
||||
{
|
||||
while (m_pos < m_size && (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' '))
|
||||
m_pos++;
|
||||
}
|
||||
|
||||
bool MatchIncDirective(std::string directiveName, std::string &path)
|
||||
{
|
||||
int length = directiveName.length();
|
||||
int i;
|
||||
|
||||
for (i = 0; i < length && m_pos + i < m_size; i++)
|
||||
if (directiveName[i] != m_buffer[m_pos + i])
|
||||
return false;
|
||||
|
||||
if (i < length)
|
||||
return false;
|
||||
|
||||
m_pos += length;
|
||||
|
||||
SkipTabsAndSpaces();
|
||||
|
||||
if (GetChar() != '"')
|
||||
FATAL_INPUT_ERROR("no path after \".%s\" directive\n", directiveName.c_str());
|
||||
|
||||
path = ReadPath();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string ReadPath();
|
||||
void SkipEndOfLineComment();
|
||||
void SkipMultiLineComment();
|
||||
void SkipString();
|
||||
};
|
||||
|
||||
AsmFile::AsmFile(std::string path)
|
||||
{
|
||||
m_path = path;
|
||||
|
||||
FILE *fp = fopen(path.c_str(), "rb");
|
||||
|
||||
if (fp == NULL)
|
||||
FATAL_ERROR("Failed to open \"%s\" for reading.\n", path.c_str());
|
||||
|
||||
fseek(fp, 0, SEEK_END);
|
||||
|
||||
m_size = ftell(fp);
|
||||
|
||||
m_buffer = new char[m_size];
|
||||
|
||||
rewind(fp);
|
||||
|
||||
if (fread(m_buffer, m_size, 1, fp) != 1)
|
||||
FATAL_ERROR("Failed to read \"%s\".\n", path.c_str());
|
||||
|
||||
fclose(fp);
|
||||
|
||||
m_pos = 0;
|
||||
m_lineNum = 1;
|
||||
}
|
||||
|
||||
AsmFile::~AsmFile()
|
||||
{
|
||||
delete[] m_buffer;
|
||||
}
|
||||
|
||||
IncDirectiveType AsmFile::ReadUntilIncDirective(std::string &path)
|
||||
{
|
||||
// At the beginning of each loop iteration, the current file position
|
||||
// should be at the start of a line or at the end of the file.
|
||||
for (;;) {
|
||||
SkipTabsAndSpaces();
|
||||
|
||||
IncDirectiveType incDirectiveType = IncDirectiveType::None;
|
||||
|
||||
if (PeekChar() == '.') {
|
||||
m_pos++;
|
||||
|
||||
if (MatchIncDirective("incbin", path))
|
||||
incDirectiveType = IncDirectiveType::Incbin;
|
||||
else if (MatchIncDirective("include", path))
|
||||
incDirectiveType = IncDirectiveType::Include;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
int c = GetChar();
|
||||
|
||||
if (c == -1)
|
||||
return incDirectiveType;
|
||||
|
||||
if (c == ';') {
|
||||
SkipEndOfLineComment();
|
||||
break;
|
||||
} else if (c == '/' && PeekChar() == '*') {
|
||||
m_pos++;
|
||||
SkipMultiLineComment();
|
||||
} else if (c == '"') {
|
||||
SkipString();
|
||||
} else if (c == '\n') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (incDirectiveType != IncDirectiveType::None)
|
||||
return incDirectiveType;
|
||||
}
|
||||
}
|
||||
|
||||
std::string AsmFile::ReadPath()
|
||||
{
|
||||
int length = 0;
|
||||
int startPos = m_pos;
|
||||
|
||||
for (;;) {
|
||||
int c = GetChar();
|
||||
|
||||
if (c == '"')
|
||||
break;
|
||||
|
||||
if (c == -1)
|
||||
FATAL_INPUT_ERROR("unexpected EOF in include string\n");
|
||||
|
||||
if (c == 0)
|
||||
FATAL_INPUT_ERROR("unexpected NUL character in include string\n");
|
||||
|
||||
if (c == '\n')
|
||||
FATAL_INPUT_ERROR("unexpected end of line character in include string\n");
|
||||
|
||||
if (c == '\\') {
|
||||
c = GetChar();
|
||||
|
||||
if (c != '"')
|
||||
FATAL_INPUT_ERROR("unknown escape \"\\%c\" in include string\n", c);
|
||||
}
|
||||
|
||||
length++;
|
||||
|
||||
if (length > SCANINC_MAX_PATH)
|
||||
FATAL_INPUT_ERROR("path is too long");
|
||||
}
|
||||
|
||||
return std::string(m_buffer, startPos, length);
|
||||
}
|
||||
|
||||
void AsmFile::SkipEndOfLineComment()
|
||||
{
|
||||
int c;
|
||||
|
||||
do {
|
||||
c = GetChar();
|
||||
} while (c != -1 && c != '\n');
|
||||
}
|
||||
|
||||
void AsmFile::SkipMultiLineComment()
|
||||
{
|
||||
for (;;) {
|
||||
int c = GetChar();
|
||||
|
||||
if (c == '*') {
|
||||
if (PeekChar() == '/') {
|
||||
m_pos++;
|
||||
return;
|
||||
}
|
||||
} else if (c == -1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AsmFile::SkipString()
|
||||
{
|
||||
for (;;) {
|
||||
int c = GetChar();
|
||||
|
||||
if (c == '"')
|
||||
break;
|
||||
|
||||
if (c == -1)
|
||||
FATAL_INPUT_ERROR("unexpected EOF in string\n");
|
||||
|
||||
if (c == '\\') {
|
||||
c = GetChar();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CanOpenFile(std::string path)
|
||||
{
|
||||
FILE *fp = fopen(path.c_str(), "rb");
|
||||
|
||||
if (fp == NULL)
|
||||
return false;
|
||||
|
||||
fclose(fp);
|
||||
return true;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc < 2)
|
||||
FATAL_ERROR("Usage: scaninc ASM_FILE_PATH\n");
|
||||
|
||||
std::stack<std::string> filesToProcess;
|
||||
std::set<std::string> dependencies;
|
||||
|
||||
filesToProcess.push(std::string(argv[1]));
|
||||
|
||||
while (!filesToProcess.empty()) {
|
||||
AsmFile file(filesToProcess.top());
|
||||
|
||||
filesToProcess.pop();
|
||||
|
||||
IncDirectiveType incDirectiveType;
|
||||
std::string path;
|
||||
|
||||
while ((incDirectiveType = file.ReadUntilIncDirective(path)) != IncDirectiveType::None) {
|
||||
bool inserted = dependencies.insert(path).second;
|
||||
if (inserted
|
||||
&& incDirectiveType == IncDirectiveType::Include
|
||||
&& CanOpenFile(path))
|
||||
filesToProcess.push(path);
|
||||
}
|
||||
}
|
||||
|
||||
for (const std::string &path : dependencies) {
|
||||
printf("%s\n", path.c_str());
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user