diff options
Diffstat (limited to 'src/engine/gfx')
-rw-r--r-- | src/engine/gfx/gfx_table_pointers.asm | 6 | ||||
-rw-r--r-- | src/engine/gfx/palettes.asm | 170 | ||||
-rw-r--r-- | src/engine/gfx/sprite_animations.asm | 224 | ||||
-rw-r--r-- | src/engine/gfx/sprite_vblank.asm | 39 | ||||
-rw-r--r-- | src/engine/gfx/sprites.asm | 122 | ||||
-rw-r--r-- | src/engine/gfx/tilemaps.asm | 114 | ||||
-rw-r--r-- | src/engine/gfx/tilesets.asm | 95 |
7 files changed, 770 insertions, 0 deletions
diff --git a/src/engine/gfx/gfx_table_pointers.asm b/src/engine/gfx/gfx_table_pointers.asm new file mode 100644 index 0000000..370ed15 --- /dev/null +++ b/src/engine/gfx/gfx_table_pointers.asm @@ -0,0 +1,6 @@ +GfxTablePointers: + dw Tilemaps + dw Tilesets + dw Sprites + dw SpriteAnimations + dw Palettes diff --git a/src/engine/gfx/palettes.asm b/src/engine/gfx/palettes.asm new file mode 100644 index 0000000..8a0d71a --- /dev/null +++ b/src/engine/gfx/palettes.asm @@ -0,0 +1,170 @@ +; \1 = palette pointer +; \2 = number of palettes +; \3 = number of OBJ colors +palette_pointer: MACRO + dwb \1, BANK(\1) - BANK(Palettes) + db (\2 << 4) + \3 +ENDM + +Palettes: + palette_pointer Palette0, 8, 1 ; PALETTE_0 + palette_pointer Palette1, 8, 0 ; PALETTE_1 + palette_pointer Palette2, 8, 0 ; PALETTE_2 + palette_pointer Palette3, 8, 0 ; PALETTE_3 + palette_pointer Palette4, 8, 0 ; PALETTE_4 + palette_pointer Palette5, 8, 0 ; PALETTE_5 + palette_pointer Palette6, 8, 0 ; PALETTE_6 + palette_pointer Palette7, 8, 0 ; PALETTE_7 + palette_pointer Palette8, 8, 0 ; PALETTE_8 + palette_pointer Palette9, 8, 0 ; PALETTE_9 + palette_pointer Palette10, 8, 0 ; PALETTE_10 + palette_pointer Palette11, 8, 0 ; PALETTE_11 + palette_pointer Palette12, 8, 0 ; PALETTE_12 + palette_pointer Palette13, 8, 0 ; PALETTE_13 + palette_pointer Palette14, 8, 0 ; PALETTE_14 + palette_pointer Palette15, 8, 0 ; PALETTE_15 + palette_pointer Palette16, 8, 0 ; PALETTE_16 + palette_pointer Palette17, 8, 0 ; PALETTE_17 + palette_pointer Palette18, 8, 0 ; PALETTE_18 + palette_pointer Palette19, 8, 0 ; PALETTE_19 + palette_pointer Palette20, 8, 0 ; PALETTE_20 + palette_pointer Palette21, 8, 0 ; PALETTE_21 + palette_pointer Palette22, 8, 0 ; PALETTE_22 + palette_pointer Palette23, 8, 0 ; PALETTE_23 + palette_pointer Palette24, 8, 0 ; PALETTE_24 + palette_pointer Palette25, 8, 0 ; PALETTE_25 + palette_pointer Palette26, 8, 0 ; PALETTE_26 + palette_pointer Palette27, 8, 0 ; PALETTE_27 + palette_pointer Palette28, 8, 0 ; PALETTE_28 + palette_pointer Palette29, 8, 2 ; PALETTE_29 + palette_pointer Palette30, 8, 2 ; PALETTE_30 + palette_pointer Palette31, 1, 1 ; PALETTE_31 + palette_pointer Palette32, 1, 1 ; PALETTE_32 + palette_pointer Palette33, 1, 1 ; PALETTE_33 + palette_pointer Palette34, 1, 1 ; PALETTE_34 + palette_pointer Palette35, 1, 1 ; PALETTE_35 + palette_pointer Palette36, 1, 1 ; PALETTE_36 + palette_pointer Palette37, 1, 1 ; PALETTE_37 + palette_pointer Palette38, 1, 1 ; PALETTE_38 + palette_pointer Palette39, 1, 1 ; PALETTE_39 + palette_pointer Palette40, 1, 1 ; PALETTE_40 + palette_pointer Palette41, 1, 1 ; PALETTE_41 + palette_pointer Palette42, 1, 1 ; PALETTE_42 + palette_pointer Palette43, 1, 1 ; PALETTE_43 + palette_pointer Palette44, 1, 1 ; PALETTE_44 + palette_pointer Palette45, 1, 1 ; PALETTE_45 + palette_pointer Palette46, 1, 1 ; PALETTE_46 + palette_pointer Palette47, 1, 1 ; PALETTE_47 + palette_pointer Palette48, 1, 1 ; PALETTE_48 + palette_pointer Palette49, 1, 1 ; PALETTE_49 + palette_pointer Palette50, 1, 1 ; PALETTE_50 + palette_pointer Palette51, 1, 1 ; PALETTE_51 + palette_pointer Palette52, 1, 1 ; PALETTE_52 + palette_pointer Palette53, 1, 1 ; PALETTE_53 + palette_pointer Palette54, 1, 1 ; PALETTE_54 + palette_pointer Palette55, 1, 1 ; PALETTE_55 + palette_pointer Palette56, 1, 1 ; PALETTE_56 + palette_pointer Palette57, 1, 1 ; PALETTE_57 + palette_pointer Palette58, 1, 1 ; PALETTE_58 + palette_pointer Palette59, 1, 1 ; PALETTE_59 + palette_pointer Palette60, 1, 1 ; PALETTE_60 + palette_pointer Palette61, 1, 1 ; PALETTE_61 + palette_pointer Palette62, 1, 1 ; PALETTE_62 + palette_pointer Palette63, 1, 1 ; PALETTE_63 + palette_pointer Palette64, 1, 1 ; PALETTE_64 + palette_pointer Palette65, 1, 1 ; PALETTE_65 + palette_pointer Palette66, 1, 1 ; PALETTE_66 + palette_pointer Palette67, 1, 1 ; PALETTE_67 + palette_pointer Palette68, 1, 1 ; PALETTE_68 + palette_pointer Palette69, 1, 1 ; PALETTE_69 + palette_pointer Palette70, 1, 1 ; PALETTE_70 + palette_pointer Palette71, 1, 1 ; PALETTE_71 + palette_pointer Palette72, 1, 1 ; PALETTE_72 + palette_pointer Palette73, 1, 1 ; PALETTE_73 + palette_pointer Palette74, 1, 1 ; PALETTE_74 + palette_pointer Palette75, 1, 1 ; PALETTE_75 + palette_pointer Palette76, 1, 1 ; PALETTE_76 + palette_pointer Palette77, 1, 1 ; PALETTE_77 + palette_pointer Palette78, 1, 1 ; PALETTE_78 + palette_pointer Palette79, 1, 1 ; PALETTE_79 + palette_pointer Palette80, 1, 1 ; PALETTE_80 + palette_pointer Palette81, 1, 1 ; PALETTE_81 + palette_pointer Palette82, 1, 1 ; PALETTE_82 + palette_pointer Palette83, 1, 1 ; PALETTE_83 + palette_pointer Palette84, 1, 1 ; PALETTE_84 + palette_pointer Palette85, 1, 1 ; PALETTE_85 + palette_pointer Palette86, 1, 1 ; PALETTE_86 + palette_pointer Palette87, 1, 1 ; PALETTE_87 + palette_pointer Palette88, 1, 1 ; PALETTE_88 + palette_pointer Palette89, 1, 1 ; PALETTE_89 + palette_pointer Palette90, 1, 1 ; PALETTE_90 + palette_pointer Palette91, 1, 1 ; PALETTE_91 + palette_pointer Palette92, 1, 1 ; PALETTE_92 + palette_pointer Palette93, 1, 1 ; PALETTE_93 + palette_pointer Palette94, 8, 0 ; PALETTE_94 + palette_pointer Palette95, 8, 0 ; PALETTE_95 + palette_pointer Palette96, 8, 0 ; PALETTE_96 + palette_pointer Palette97, 8, 0 ; PALETTE_97 + palette_pointer Palette98, 8, 0 ; PALETTE_98 + palette_pointer Palette99, 8, 0 ; PALETTE_99 + palette_pointer Palette100, 8, 0 ; PALETTE_100 + palette_pointer Palette101, 7, 0 ; PALETTE_101 + palette_pointer Palette102, 7, 0 ; PALETTE_102 + palette_pointer Palette103, 7, 0 ; PALETTE_103 + palette_pointer Palette104, 7, 0 ; PALETTE_104 + palette_pointer Palette105, 7, 0 ; PALETTE_105 + palette_pointer Palette106, 7, 0 ; PALETTE_106 + palette_pointer Palette107, 7, 0 ; PALETTE_107 + palette_pointer Palette108, 0, 1 ; PALETTE_108 + palette_pointer Palette109, 0, 1 ; PALETTE_109 + palette_pointer Palette110, 0, 0 ; PALETTE_110 + palette_pointer Palette111, 8, 1 ; PALETTE_111 + palette_pointer Palette112, 8, 1 ; PALETTE_112 + palette_pointer Palette113, 8, 1 ; PALETTE_113 + palette_pointer Palette114, 4, 2 ; PALETTE_114 + palette_pointer Palette115, 4, 2 ; PALETTE_115 + palette_pointer Palette116, 4, 2 ; PALETTE_116 + palette_pointer Palette117, 1, 0 ; PALETTE_117 + palette_pointer Palette118, 6, 0 ; PALETTE_118 + palette_pointer Palette119, 1, 0 ; PALETTE_119 + palette_pointer Palette120, 1, 0 ; PALETTE_120 + palette_pointer Palette121, 1, 0 ; PALETTE_121 + palette_pointer Palette122, 1, 0 ; PALETTE_122 + palette_pointer Palette123, 1, 0 ; PALETTE_123 + palette_pointer Palette124, 1, 0 ; PALETTE_124 + palette_pointer Palette125, 1, 0 ; PALETTE_125 + palette_pointer Palette126, 1, 0 ; PALETTE_126 + palette_pointer Palette127, 1, 0 ; PALETTE_127 + palette_pointer Palette128, 1, 0 ; PALETTE_128 + palette_pointer Palette129, 1, 0 ; PALETTE_129 + palette_pointer Palette130, 1, 0 ; PALETTE_130 + palette_pointer Palette131, 1, 0 ; PALETTE_131 + palette_pointer Palette132, 1, 0 ; PALETTE_132 + palette_pointer Palette133, 1, 0 ; PALETTE_133 + palette_pointer Palette134, 1, 0 ; PALETTE_134 + palette_pointer Palette135, 1, 0 ; PALETTE_135 + palette_pointer Palette136, 1, 0 ; PALETTE_136 + palette_pointer Palette137, 1, 0 ; PALETTE_137 + palette_pointer Palette138, 1, 0 ; PALETTE_138 + palette_pointer Palette139, 1, 0 ; PALETTE_139 + palette_pointer Palette140, 1, 0 ; PALETTE_140 + palette_pointer Palette141, 1, 0 ; PALETTE_141 + palette_pointer Palette142, 1, 0 ; PALETTE_142 + palette_pointer Palette143, 1, 0 ; PALETTE_143 + palette_pointer Palette144, 1, 0 ; PALETTE_144 + palette_pointer Palette145, 1, 0 ; PALETTE_145 + palette_pointer Palette146, 1, 0 ; PALETTE_146 + palette_pointer Palette147, 1, 0 ; PALETTE_147 + palette_pointer Palette148, 1, 0 ; PALETTE_148 + palette_pointer Palette149, 1, 0 ; PALETTE_149 + palette_pointer Palette150, 1, 0 ; PALETTE_150 + palette_pointer Palette151, 1, 0 ; PALETTE_151 + palette_pointer Palette152, 1, 0 ; PALETTE_152 + palette_pointer Palette153, 1, 0 ; PALETTE_153 + palette_pointer Palette154, 1, 0 ; PALETTE_154 + palette_pointer Palette155, 1, 0 ; PALETTE_155 + palette_pointer Palette156, 1, 0 ; PALETTE_156 + palette_pointer Palette157, 1, 0 ; PALETTE_157 + palette_pointer Palette158, 1, 0 ; PALETTE_158 + palette_pointer Palette159, 1, 0 ; PALETTE_159 + palette_pointer Palette160, 1, 0 ; PALETTE_160 diff --git a/src/engine/gfx/sprite_animations.asm b/src/engine/gfx/sprite_animations.asm new file mode 100644 index 0000000..7c432c6 --- /dev/null +++ b/src/engine/gfx/sprite_animations.asm @@ -0,0 +1,224 @@ +; \1 = anim data pointer +anim_data_pointer: MACRO + dwb \1, BANK(\1) - BANK(SpriteAnimations) + db $00 ; unused (padding?) +ENDM + +SpriteAnimations: + anim_data_pointer AnimData0 ; SPRITE_ANIM_LIGHT_NPC_UP + anim_data_pointer AnimData1 ; SPRITE_ANIM_LIGHT_NPC_RIGHT + anim_data_pointer AnimData2 ; SPRITE_ANIM_LIGHT_NPC_DOWN + anim_data_pointer AnimData3 ; SPRITE_ANIM_LIGHT_NPC_LEFT + anim_data_pointer AnimData4 ; SPRITE_ANIM_DARK_NPC_UP + anim_data_pointer AnimData5 ; SPRITE_ANIM_DARK_NPC_RIGHT + anim_data_pointer AnimData6 ; SPRITE_ANIM_DARK_NPC_DOWN + anim_data_pointer AnimData7 ; SPRITE_ANIM_DARK_NPC_LEFT + anim_data_pointer AnimData8 ; SPRITE_ANIM_SGB_AMY_LAYING + anim_data_pointer AnimData9 ; SPRITE_ANIM_SGB_AMY_STAND + anim_data_pointer AnimData10 ; SPRITE_ANIM_SGB_CLERK_NPC_UP + anim_data_pointer AnimData11 ; SPRITE_ANIM_SGB_CLERK_NPC_RIGHT + anim_data_pointer AnimData12 ; SPRITE_ANIM_SGB_CLERK_NPC_DOWN + anim_data_pointer AnimData13 ; SPRITE_ANIM_SGB_CLERK_NPC_LEFT + anim_data_pointer AnimData14 ; SPRITE_ANIM_BLUE_NPC_UP + anim_data_pointer AnimData15 ; SPRITE_ANIM_BLUE_NPC_RIGHT + anim_data_pointer AnimData16 ; SPRITE_ANIM_BLUE_NPC_DOWN + anim_data_pointer AnimData17 ; SPRITE_ANIM_BLUE_NPC_LEFT + anim_data_pointer AnimData18 ; SPRITE_ANIM_PINK_NPC_UP + anim_data_pointer AnimData19 ; SPRITE_ANIM_PINK_NPC_RIGHT + anim_data_pointer AnimData20 ; SPRITE_ANIM_PINK_NPC_DOWN + anim_data_pointer AnimData21 ; SPRITE_ANIM_PINK_NPC_LEFT + anim_data_pointer AnimData22 ; SPRITE_ANIM_YELLOW_NPC_UP + anim_data_pointer AnimData23 ; SPRITE_ANIM_YELLOW_NPC_RIGHT + anim_data_pointer AnimData24 ; SPRITE_ANIM_YELLOW_NPC_DOWN + anim_data_pointer AnimData25 ; SPRITE_ANIM_YELLOW_NPC_LEFT + anim_data_pointer AnimData26 ; SPRITE_ANIM_GREEN_NPC_UP + anim_data_pointer AnimData27 ; SPRITE_ANIM_GREEN_NPC_RIGHT + anim_data_pointer AnimData28 ; SPRITE_ANIM_GREEN_NPC_DOWN + anim_data_pointer AnimData29 ; SPRITE_ANIM_GREEN_NPC_LEFT + anim_data_pointer AnimData30 ; SPRITE_ANIM_RED_NPC_UP + anim_data_pointer AnimData31 ; SPRITE_ANIM_RED_NPC_RIGHT + anim_data_pointer AnimData32 ; SPRITE_ANIM_RED_NPC_DOWN + anim_data_pointer AnimData33 ; SPRITE_ANIM_RED_NPC_LEFT + anim_data_pointer AnimData34 ; SPRITE_ANIM_PURPLE_NPC_UP + anim_data_pointer AnimData35 ; SPRITE_ANIM_PURPLE_NPC_RIGHT + anim_data_pointer AnimData36 ; SPRITE_ANIM_PURPLE_NPC_DOWN + anim_data_pointer AnimData37 ; SPRITE_ANIM_PURPLE_NPC_LEFT + anim_data_pointer AnimData38 ; SPRITE_ANIM_WHITE_NPC_UP + anim_data_pointer AnimData39 ; SPRITE_ANIM_WHITE_NPC_RIGHT + anim_data_pointer AnimData40 ; SPRITE_ANIM_WHITE_NPC_DOWN + anim_data_pointer AnimData41 ; SPRITE_ANIM_WHITE_NPC_LEFT + anim_data_pointer AnimData42 ; SPRITE_ANIM_INDIGO_NPC_UP + anim_data_pointer AnimData43 ; SPRITE_ANIM_INDIGO_NPC_RIGHT + anim_data_pointer AnimData44 ; SPRITE_ANIM_INDIGO_NPC_DOWN + anim_data_pointer AnimData45 ; SPRITE_ANIM_INDIGO_NPC_LEFT + anim_data_pointer AnimData46 ; SPRITE_ANIM_CGB_AMY_LAYING + anim_data_pointer AnimData47 ; SPRITE_ANIM_CGB_AMY_STAND + anim_data_pointer AnimData48 ; SPRITE_ANIM_CGB_CLERK_NPC_UP + anim_data_pointer AnimData49 ; SPRITE_ANIM_CGB_CLERK_NPC_RIGHT + anim_data_pointer AnimData50 ; SPRITE_ANIM_CGB_CLERK_NPC_DOWN + anim_data_pointer AnimData51 ; SPRITE_ANIM_CGB_CLERK_NPC_LEFT + anim_data_pointer AnimData52 ; SPRITE_ANIM_SGB_VOLCANO_SMOKE + anim_data_pointer AnimData53 ; SPRITE_ANIM_SGB_OWMAP_CURSOR + anim_data_pointer AnimData54 ; SPRITE_ANIM_SGB_OWMAP_CURSOR_FAST + anim_data_pointer AnimData55 ; SPRITE_ANIM_CGB_VOLCANO_SMOKE + anim_data_pointer AnimData56 ; SPRITE_ANIM_CGB_OWMAP_CURSOR + anim_data_pointer AnimData57 ; SPRITE_ANIM_CGB_OWMAP_CURSOR_FAST + anim_data_pointer AnimData58 ; SPRITE_ANIM_TORCH + anim_data_pointer AnimData59 ; SPRITE_ANIM_SGB_CARD_TOP_LEFT + anim_data_pointer AnimData60 ; SPRITE_ANIM_SGB_CARD_TOP_RIGHT + anim_data_pointer AnimData61 ; SPRITE_ANIM_SGB_CARD_LEFT_SPARK + anim_data_pointer AnimData62 ; SPRITE_ANIM_SGB_CARD_BOTTOM_LEFT + anim_data_pointer AnimData63 ; SPRITE_ANIM_SGB_CARD_BOTTOM_RIGHT + anim_data_pointer AnimData64 ; SPRITE_ANIM_SGB_CARD_RIGHT_SPARK + anim_data_pointer AnimData65 ; SPRITE_ANIM_CGB_CARD_TOP_LEFT + anim_data_pointer AnimData66 ; SPRITE_ANIM_CGB_CARD_TOP_RIGHT + anim_data_pointer AnimData67 ; SPRITE_ANIM_CGB_CARD_LEFT_SPARK + anim_data_pointer AnimData68 ; SPRITE_ANIM_CGB_CARD_BOTTOM_LEFT + anim_data_pointer AnimData69 ; SPRITE_ANIM_CGB_CARD_BOTTOM_RIGHT + anim_data_pointer AnimData70 ; SPRITE_ANIM_CGB_CARD_RIGHT_SPARK + anim_data_pointer AnimData71 ; SPRITE_ANIM_71 + anim_data_pointer AnimData72 ; SPRITE_ANIM_72 + anim_data_pointer AnimData73 ; SPRITE_ANIM_73 + anim_data_pointer AnimData74 ; SPRITE_ANIM_74 + anim_data_pointer AnimData75 ; SPRITE_ANIM_75 + anim_data_pointer AnimData76 ; SPRITE_ANIM_76 + anim_data_pointer AnimData77 ; SPRITE_ANIM_77 + anim_data_pointer AnimData78 ; SPRITE_ANIM_78 + anim_data_pointer AnimData79 ; SPRITE_ANIM_79 + anim_data_pointer AnimData80 ; SPRITE_ANIM_80 + anim_data_pointer AnimData81 ; SPRITE_ANIM_81 + anim_data_pointer AnimData82 ; SPRITE_ANIM_82 + anim_data_pointer AnimData83 ; SPRITE_ANIM_83 + anim_data_pointer AnimData84 ; SPRITE_ANIM_84 + anim_data_pointer AnimData85 ; SPRITE_ANIM_85 + anim_data_pointer AnimData86 ; SPRITE_ANIM_86 + anim_data_pointer AnimData87 ; SPRITE_ANIM_87 + anim_data_pointer AnimData88 ; SPRITE_ANIM_88 + anim_data_pointer AnimData89 ; SPRITE_ANIM_89 + anim_data_pointer AnimData90 ; SPRITE_ANIM_90 + anim_data_pointer AnimData91 ; SPRITE_ANIM_91 + anim_data_pointer AnimData92 ; SPRITE_ANIM_92 + anim_data_pointer AnimData93 ; SPRITE_ANIM_93 + anim_data_pointer AnimData94 ; SPRITE_ANIM_94 + anim_data_pointer AnimData95 ; SPRITE_ANIM_95 + anim_data_pointer AnimData96 ; SPRITE_ANIM_96 + anim_data_pointer AnimData97 ; SPRITE_ANIM_97 + anim_data_pointer AnimData98 ; SPRITE_ANIM_98 + anim_data_pointer AnimData99 ; SPRITE_ANIM_99 + anim_data_pointer AnimData100 ; SPRITE_ANIM_100 + anim_data_pointer AnimData101 ; SPRITE_ANIM_101 + anim_data_pointer AnimData102 ; SPRITE_ANIM_102 + anim_data_pointer AnimData103 ; SPRITE_ANIM_103 + anim_data_pointer AnimData104 ; SPRITE_ANIM_104 + anim_data_pointer AnimData105 ; SPRITE_ANIM_105 + anim_data_pointer AnimData106 ; SPRITE_ANIM_106 + anim_data_pointer AnimData107 ; SPRITE_ANIM_107 + anim_data_pointer AnimData108 ; SPRITE_ANIM_108 + anim_data_pointer AnimData109 ; SPRITE_ANIM_109 + anim_data_pointer AnimData110 ; SPRITE_ANIM_110 + anim_data_pointer AnimData111 ; SPRITE_ANIM_111 + anim_data_pointer AnimData112 ; SPRITE_ANIM_112 + anim_data_pointer AnimData113 ; SPRITE_ANIM_113 + anim_data_pointer AnimData114 ; SPRITE_ANIM_114 + anim_data_pointer AnimData115 ; SPRITE_ANIM_115 + anim_data_pointer AnimData116 ; SPRITE_ANIM_116 + anim_data_pointer AnimData117 ; SPRITE_ANIM_117 + anim_data_pointer AnimData118 ; SPRITE_ANIM_118 + anim_data_pointer AnimData119 ; SPRITE_ANIM_119 + anim_data_pointer AnimData120 ; SPRITE_ANIM_120 + anim_data_pointer AnimData121 ; SPRITE_ANIM_121 + anim_data_pointer AnimData122 ; SPRITE_ANIM_122 + anim_data_pointer AnimData123 ; SPRITE_ANIM_123 + anim_data_pointer AnimData124 ; SPRITE_ANIM_124 + anim_data_pointer AnimData125 ; SPRITE_ANIM_125 + anim_data_pointer AnimData126 ; SPRITE_ANIM_126 + anim_data_pointer AnimData127 ; SPRITE_ANIM_127 + anim_data_pointer AnimData128 ; SPRITE_ANIM_128 + anim_data_pointer AnimData129 ; SPRITE_ANIM_129 + anim_data_pointer AnimData130 ; SPRITE_ANIM_130 + anim_data_pointer AnimData131 ; SPRITE_ANIM_131 + anim_data_pointer AnimData132 ; SPRITE_ANIM_132 + anim_data_pointer AnimData133 ; SPRITE_ANIM_133 + anim_data_pointer AnimData134 ; SPRITE_ANIM_134 + anim_data_pointer AnimData135 ; SPRITE_ANIM_135 + anim_data_pointer AnimData136 ; SPRITE_ANIM_136 + anim_data_pointer AnimData137 ; SPRITE_ANIM_137 + anim_data_pointer AnimData138 ; SPRITE_ANIM_138 + anim_data_pointer AnimData139 ; SPRITE_ANIM_139 + anim_data_pointer AnimData140 ; SPRITE_ANIM_140 + anim_data_pointer AnimData141 ; SPRITE_ANIM_141 + anim_data_pointer AnimData142 ; SPRITE_ANIM_142 + anim_data_pointer AnimData143 ; SPRITE_ANIM_143 + anim_data_pointer AnimData144 ; SPRITE_ANIM_144 + anim_data_pointer AnimData145 ; SPRITE_ANIM_145 + anim_data_pointer AnimData146 ; SPRITE_ANIM_146 + anim_data_pointer AnimData147 ; SPRITE_ANIM_147 + anim_data_pointer AnimData148 ; SPRITE_ANIM_148 + anim_data_pointer AnimData149 ; SPRITE_ANIM_149 + anim_data_pointer AnimData150 ; SPRITE_ANIM_150 + anim_data_pointer AnimData151 ; SPRITE_ANIM_151 + anim_data_pointer AnimData152 ; SPRITE_ANIM_152 + anim_data_pointer AnimData153 ; SPRITE_ANIM_153 + anim_data_pointer AnimData154 ; SPRITE_ANIM_154 + anim_data_pointer AnimData155 ; SPRITE_ANIM_155 + anim_data_pointer AnimData156 ; SPRITE_ANIM_156 + anim_data_pointer AnimData157 ; SPRITE_ANIM_157 + anim_data_pointer AnimData158 ; SPRITE_ANIM_158 + anim_data_pointer AnimData159 ; SPRITE_ANIM_159 + anim_data_pointer AnimData160 ; SPRITE_ANIM_160 + anim_data_pointer AnimData161 ; SPRITE_ANIM_161 + anim_data_pointer AnimData162 ; SPRITE_ANIM_162 + anim_data_pointer AnimData163 ; SPRITE_ANIM_163 + anim_data_pointer AnimData164 ; SPRITE_ANIM_164 + anim_data_pointer AnimData165 ; SPRITE_ANIM_165 + anim_data_pointer AnimData166 ; SPRITE_ANIM_166 + anim_data_pointer AnimData167 ; SPRITE_ANIM_167 + anim_data_pointer AnimData168 ; SPRITE_ANIM_168 + anim_data_pointer AnimData169 ; SPRITE_ANIM_169 + anim_data_pointer AnimData170 ; SPRITE_ANIM_170 + anim_data_pointer AnimData171 ; SPRITE_ANIM_171 + anim_data_pointer AnimData172 ; SPRITE_ANIM_172 + anim_data_pointer AnimData173 ; SPRITE_ANIM_173 + anim_data_pointer AnimData174 ; SPRITE_ANIM_174 + anim_data_pointer AnimData175 ; SPRITE_ANIM_175 + anim_data_pointer AnimData176 ; SPRITE_ANIM_176 + anim_data_pointer AnimData177 ; SPRITE_ANIM_177 + anim_data_pointer AnimData178 ; SPRITE_ANIM_178 + anim_data_pointer AnimData179 ; SPRITE_ANIM_179 + anim_data_pointer AnimData180 ; SPRITE_ANIM_180 + anim_data_pointer AnimData181 ; SPRITE_ANIM_181 + anim_data_pointer AnimData182 ; SPRITE_ANIM_182 + anim_data_pointer AnimData183 ; SPRITE_ANIM_183 + anim_data_pointer AnimData184 ; SPRITE_ANIM_184 + anim_data_pointer AnimData185 ; SPRITE_ANIM_185 + anim_data_pointer AnimData186 ; SPRITE_ANIM_186 + anim_data_pointer AnimData187 ; SPRITE_ANIM_187 + anim_data_pointer AnimData188 ; SPRITE_ANIM_188 + anim_data_pointer AnimData189 ; SPRITE_ANIM_189 + anim_data_pointer AnimData190 ; SPRITE_ANIM_190 + anim_data_pointer AnimData191 ; SPRITE_ANIM_191 + anim_data_pointer AnimData192 ; SPRITE_ANIM_192 + anim_data_pointer AnimData193 ; SPRITE_ANIM_193 + anim_data_pointer AnimData194 ; SPRITE_ANIM_194 + anim_data_pointer AnimData195 ; SPRITE_ANIM_195 + anim_data_pointer AnimData196 ; SPRITE_ANIM_196 + anim_data_pointer AnimData197 ; SPRITE_ANIM_197 + anim_data_pointer AnimData198 ; SPRITE_ANIM_198 + anim_data_pointer AnimData199 ; SPRITE_ANIM_199 + anim_data_pointer AnimData200 ; SPRITE_ANIM_200 + anim_data_pointer AnimData201 ; SPRITE_ANIM_201 + anim_data_pointer AnimData202 ; SPRITE_ANIM_202 + anim_data_pointer AnimData203 ; SPRITE_ANIM_203 + anim_data_pointer AnimData204 ; SPRITE_ANIM_204 + anim_data_pointer AnimData205 ; SPRITE_ANIM_205 + anim_data_pointer AnimData206 ; SPRITE_ANIM_206 + anim_data_pointer AnimData207 ; SPRITE_ANIM_207 + anim_data_pointer AnimData208 ; SPRITE_ANIM_208 + anim_data_pointer AnimData209 ; SPRITE_ANIM_209 + anim_data_pointer AnimData210 ; SPRITE_ANIM_210 + anim_data_pointer AnimData211 ; SPRITE_ANIM_211 + anim_data_pointer AnimData212 ; SPRITE_ANIM_212 + anim_data_pointer AnimData213 ; SPRITE_ANIM_213 + anim_data_pointer AnimData214 ; SPRITE_ANIM_214 + anim_data_pointer AnimData215 ; SPRITE_ANIM_215 + anim_data_pointer AnimData216 ; SPRITE_ANIM_216 diff --git a/src/engine/gfx/sprite_vblank.asm b/src/engine/gfx/sprite_vblank.asm new file mode 100644 index 0000000..5f099a1 --- /dev/null +++ b/src/engine/gfx/sprite_vblank.asm @@ -0,0 +1,39 @@ +; empties screen and replaces +; wVBlankFunctionTrampoline with HandleAllSpriteAnimations +SetSpriteAnimationsAsVBlankFunction: + call EmptyScreen + call Set_OBJ_8x8 + call Func_3ca4 + lb de, $38, $7f + call SetupText + ld hl, wVBlankFunctionTrampoline + 1 + ld de, wVBlankFunctionTrampolineBackup + call BackupVBlankFunctionTrampoline + di + ld [hl], LOW(HandleAllSpriteAnimations) + inc hl + ld [hl], HIGH(HandleAllSpriteAnimations) + ei + ret + +; sets backup VBlank function as wVBlankFunctionTrampoline +RestoreVBlankFunction: + ld hl, wVBlankFunctionTrampolineBackup + ld de, wVBlankFunctionTrampoline + 1 + call BackupVBlankFunctionTrampoline + call Func_3ca4 + bank1call ZeroObjectPositionsAndToggleOAMCopy + ret + +; copies 2 bytes from hl to de while interrupts are disabled +; used to load or store wVBlankFunctionTrampoline +; to wVBlankFunctionTrampolineBackup +BackupVBlankFunctionTrampoline: + di + ld a, [hli] + ld [de], a + inc de + ld a, [hld] + ld [de], a + ei + ret diff --git a/src/engine/gfx/sprites.asm b/src/engine/gfx/sprites.asm new file mode 100644 index 0000000..c2aa277 --- /dev/null +++ b/src/engine/gfx/sprites.asm @@ -0,0 +1,122 @@ +; \1 = gfx pointer +; \2 = number of tiles +gfx_pointer: MACRO + dwb \1, BANK(\1) - BANK(Sprites) + db \2 +ENDM + +Sprites: + gfx_pointer OWPlayerGfx, $14 ; SPRITE_OW_PLAYER + gfx_pointer OWRonaldGfx, $14 ; SPRITE_OW_RONALD + gfx_pointer OWDrMasonGfx, $14 ; SPRITE_OW_DRMASON + gfx_pointer OWIshiharaGfx, $14 ; SPRITE_OW_ISHIHARA + gfx_pointer OWImakuniGfx, $14 ; SPRITE_OW_IMAKUNI + gfx_pointer OWNikkiGfx, $14 ; SPRITE_OW_NIKKI + gfx_pointer OWRickGfx, $14 ; SPRITE_OW_RICK + gfx_pointer OWKenGfx, $14 ; SPRITE_OW_KEN + gfx_pointer OWAmyGfx, $1b ; SPRITE_OW_AMY + gfx_pointer OWIsaacGfx, $14 ; SPRITE_OW_ISAAC + gfx_pointer OWMitchGfx, $14 ; SPRITE_OW_MITCH + gfx_pointer OWGeneGfx, $14 ; SPRITE_OW_GENE + gfx_pointer OWMurrayGfx, $14 ; SPRITE_OW_MURRAY + gfx_pointer OWCourtneyGfx, $14 ; SPRITE_OW_COURTNEY + gfx_pointer OWSteveGfx, $14 ; SPRITE_OW_STEVE + gfx_pointer OWJackGfx, $14 ; SPRITE_OW_JACK + gfx_pointer OWRodGfx, $14 ; SPRITE_OW_ROD + gfx_pointer OWBoyGfx, $14 ; SPRITE_OW_BOY + gfx_pointer OWLadGfx, $14 ; SPRITE_OW_LAD + gfx_pointer OWSpecsGfx, $14 ; SPRITE_OW_SPECS + gfx_pointer OWButchGfx, $14 ; SPRITE_OW_BUTCH + gfx_pointer OWManiaGfx, $14 ; SPRITE_OW_MANIA + gfx_pointer OWJoshuaGfx, $14 ; SPRITE_OW_JOSHUA + gfx_pointer OWHoodGfx, $14 ; SPRITE_OW_HOOD + gfx_pointer OWTechGfx, $14 ; SPRITE_OW_TECH + gfx_pointer OWChapGfx, $14 ; SPRITE_OW_CHAP + gfx_pointer OWManGfx, $14 ; SPRITE_OW_MAN + gfx_pointer OWPappyGfx, $14 ; SPRITE_OW_PAPPY + gfx_pointer OWGirlGfx, $14 ; SPRITE_OW_GIRL + gfx_pointer OWLass1Gfx, $14 ; SPRITE_OW_LASS1 + gfx_pointer OWLass2Gfx, $14 ; SPRITE_OW_LASS2 + gfx_pointer OWLass3Gfx, $14 ; SPRITE_OW_LASS3 + gfx_pointer OWSwimmerGfx, $14 ; SPRITE_OW_SWIMMER + gfx_pointer OWClerkGfx, $08 ; SPRITE_OW_CLERK + gfx_pointer OWGalGfx, $14 ; SPRITE_OW_GAL + gfx_pointer OWWomanGfx, $14 ; SPRITE_OW_WOMAN + gfx_pointer OWGrannyGfx, $14 ; SPRITE_OW_GRANNY + gfx_pointer OverworldMapOAMGfx, $08 ; SPRITE_OW_MAP_OAM + gfx_pointer Duel0Gfx, $16 ; SPRITE_DUEL_0 + gfx_pointer Duel63Gfx, $0a ; SPRITE_DUEL_63 + gfx_pointer DuelGlowGfx, $0b ; SPRITE_DUEL_GLOW + gfx_pointer Duel1Gfx, $06 ; SPRITE_DUEL_1 + gfx_pointer Duel2Gfx, $08 ; SPRITE_DUEL_2 + gfx_pointer Duel55Gfx, $02 ; SPRITE_DUEL_55 + gfx_pointer Duel58Gfx, $04 ; SPRITE_DUEL_58 + gfx_pointer Duel3Gfx, $09 ; SPRITE_DUEL_3 + gfx_pointer Duel4Gfx, $12 ; SPRITE_DUEL_4 + gfx_pointer Duel5Gfx, $09 ; SPRITE_DUEL_5 + gfx_pointer Duel6Gfx, $11 ; SPRITE_DUEL_6 + gfx_pointer Duel59Gfx, $03 ; SPRITE_DUEL_59 + gfx_pointer Duel7Gfx, $2d ; SPRITE_DUEL_7 + gfx_pointer Duel8Gfx, $0d ; SPRITE_DUEL_8 + gfx_pointer Duel9Gfx, $1c ; SPRITE_DUEL_9 + gfx_pointer Duel10Gfx, $4c ; SPRITE_DUEL_10 + gfx_pointer Duel61Gfx, $03 ; SPRITE_DUEL_61 + gfx_pointer Duel11Gfx, $1b ; SPRITE_DUEL_11 + gfx_pointer Duel12Gfx, $07 ; SPRITE_DUEL_12 + gfx_pointer Duel13Gfx, $0c ; SPRITE_DUEL_13 + gfx_pointer Duel62Gfx, $01 ; SPRITE_DUEL_62 + gfx_pointer Duel14Gfx, $22 ; SPRITE_DUEL_14 + gfx_pointer Duel15Gfx, $20 ; SPRITE_DUEL_15 + gfx_pointer Duel16Gfx, $0a ; SPRITE_DUEL_16 + gfx_pointer Duel17Gfx, $25 ; SPRITE_DUEL_17 + gfx_pointer Duel18Gfx, $18 ; SPRITE_DUEL_18 + gfx_pointer Duel19Gfx, $1b ; SPRITE_DUEL_19 + gfx_pointer Duel20Gfx, $08 ; SPRITE_DUEL_20 + gfx_pointer Duel21Gfx, $0d ; SPRITE_DUEL_21 + gfx_pointer Duel22Gfx, $22 ; SPRITE_DUEL_22 + gfx_pointer Duel23Gfx, $0c ; SPRITE_DUEL_23 + gfx_pointer Duel24Gfx, $25 ; SPRITE_DUEL_24 + gfx_pointer Duel25Gfx, $22 ; SPRITE_DUEL_25 + gfx_pointer Duel26Gfx, $0c ; SPRITE_DUEL_26 + gfx_pointer Duel27Gfx, $4c ; SPRITE_DUEL_27 + gfx_pointer Duel28Gfx, $08 ; SPRITE_DUEL_28 + gfx_pointer Duel29Gfx, $07 ; SPRITE_DUEL_29 + gfx_pointer Duel56Gfx, $01 ; SPRITE_DUEL_56 + gfx_pointer Duel30Gfx, $1a ; SPRITE_DUEL_30 + gfx_pointer Duel31Gfx, $0a ; SPRITE_DUEL_31 + gfx_pointer Duel32Gfx, $2e ; SPRITE_DUEL_32 + gfx_pointer Duel33Gfx, $08 ; SPRITE_DUEL_33 + gfx_pointer Duel34Gfx, $07 ; SPRITE_DUEL_34 + gfx_pointer Duel35Gfx, $1c ; SPRITE_DUEL_35 + gfx_pointer Duel66Gfx, $04 ; SPRITE_DUEL_66 + gfx_pointer Duel36Gfx, $08 ; SPRITE_DUEL_36 + gfx_pointer Duel37Gfx, $0b ; SPRITE_DUEL_37 + gfx_pointer Duel57Gfx, $01 ; SPRITE_DUEL_57 + gfx_pointer Duel38Gfx, $1c ; SPRITE_DUEL_38 + gfx_pointer Duel39Gfx, $16 ; SPRITE_DUEL_39 + gfx_pointer Duel40Gfx, $10 ; SPRITE_DUEL_40 + gfx_pointer Duel41Gfx, $0f ; SPRITE_DUEL_41 + gfx_pointer Duel42Gfx, $07 ; SPRITE_DUEL_42 + gfx_pointer Duel43Gfx, $0a ; SPRITE_DUEL_43 + gfx_pointer Duel44Gfx, $09 ; SPRITE_DUEL_44 + gfx_pointer Duel60Gfx, $02 ; SPRITE_DUEL_60 + gfx_pointer Duel64Gfx, $02 ; SPRITE_DUEL_64 + gfx_pointer Duel45Gfx, $03 ; SPRITE_DUEL_45 + gfx_pointer Duel46Gfx, $08 ; SPRITE_DUEL_46 + gfx_pointer Duel47Gfx, $0f ; SPRITE_DUEL_47 + gfx_pointer Duel48Gfx, $03 ; SPRITE_DUEL_48 + gfx_pointer Duel49Gfx, $05 ; SPRITE_DUEL_49 + gfx_pointer Duel50Gfx, $17 ; SPRITE_DUEL_50 + gfx_pointer Duel51Gfx, $36 ; SPRITE_DUEL_WON_LOST_DRAW + gfx_pointer Duel52Gfx, $0b ; SPRITE_DUEL_52 + gfx_pointer Duel53Gfx, $06 ; SPRITE_DUEL_53 + gfx_pointer Duel54Gfx, $16 ; SPRITE_DUEL_54 + gfx_pointer BoosterPackOAMGfx, $20 ; SPRITE_BOOSTER_PACK_OAM + gfx_pointer PressStartGfx, $14 ; SPRITE_PRESS_START + gfx_pointer GrassGfx, $04 ; SPRITE_GRASS + gfx_pointer FireGfx, $04 ; SPRITE_FIRE + gfx_pointer WaterGfx, $04 ; SPRITE_WATER + gfx_pointer ColorlessGfx, $04 ; SPRITE_COLORLESS + gfx_pointer LightningGfx, $04 ; SPRITE_LIGHTNING + gfx_pointer PsychicGfx, $04 ; SPRITE_PSYCHIC + gfx_pointer FightingGfx, $04 ; SPRITE_FIGHTING diff --git a/src/engine/gfx/tilemaps.asm b/src/engine/gfx/tilemaps.asm new file mode 100644 index 0000000..216cca1 --- /dev/null +++ b/src/engine/gfx/tilemaps.asm @@ -0,0 +1,114 @@ +; \1 = pointer +; \2 = tileset +tilemap: MACRO + dwb \1, BANK(\1) - BANK(Tilemaps) + db \2 +ENDM + +Tilemaps: + tilemap OverworldMapTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP + tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB + tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY + tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB + tilemap ChallengeMachineMapEventTilemap, TILESET_MASON_LABORATORY ; TILEMAP_CHALLENGE_MACHINE_MAP_EVENT + tilemap ChallengeMachineMapEventCGBTilemap,TILESET_MASON_LABORATORY ; TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB + tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM + tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB + tilemap DeckMachineMapEventTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_MAP_EVENT + tilemap DeckMachineMapEventCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_MAP_EVENT_CGB + tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA + tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB + tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE + tilemap FightingClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB + tilemap RockClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE + tilemap RockClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE_CGB + tilemap WaterClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE + tilemap WaterClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE_CGB + tilemap LightningClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE + tilemap LightningClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB + tilemap GrassClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE + tilemap GrassClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE_CGB + tilemap PsychicClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE + tilemap PsychicClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB + tilemap ScienceClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE + tilemap ScienceClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB + tilemap FireClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE + tilemap FireClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE_CGB + tilemap ChallengeHallEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE + tilemap ChallengeHallEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB + tilemap ClubLobbyTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY + tilemap ClubLobbyCGBTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY_CGB + tilemap FightingClubTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB + tilemap FightingClubCGBTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB_CGB + tilemap RockClubTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB + tilemap RockClubCGBTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB_CGB + tilemap WaterClubTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB + tilemap WaterClubCGBTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB_CGB + tilemap LightningClubTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB + tilemap LightningClubCGBTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB_CGB + tilemap GrassClubTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB + tilemap GrassClubCGBTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB_CGB + tilemap PsychicClubTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB + tilemap PsychicClubCGBTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB_CGB + tilemap ScienceClubTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB + tilemap ScienceClubCGBTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB_CGB + tilemap FireClubTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB + tilemap FireClubCGBTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB_CGB + tilemap ChallengeHallTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL + tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB + tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE + tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB + tilemap PokemonDomeDoorMapEventTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT + tilemap PokemonDomeDoorMapEventCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB + tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME + tilemap PokemonDomeCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB + tilemap HallOfHonorDoorMapEventTilemap, TILESET_POKEMON_DOME ; TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT + tilemap HallOfHonorDoorMapEventCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB + tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR + tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB + tilemap CardPopCGBTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP_CGB + tilemap CardPopTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP + tilemap GrassMedalTilemap, TILESET_MEDAL ; TILEMAP_GRASS_MEDAL + tilemap ScienceMedalTilemap, TILESET_MEDAL ; TILEMAP_SCIENCE_MEDAL + tilemap FireMedalTilemap, TILESET_MEDAL ; TILEMAP_FIRE_MEDAL + tilemap WaterMedalTilemap, TILESET_MEDAL ; TILEMAP_WATER_MEDAL + tilemap LightningMedalTilemap, TILESET_MEDAL ; TILEMAP_LIGHTNING_MEDAL + tilemap FightingMedalTilemap, TILESET_MEDAL ; TILEMAP_FIGHTING_MEDAL + tilemap RockMedalTilemap, TILESET_MEDAL ; TILEMAP_ROCK_MEDAL + tilemap PsychicMedalTilemap, TILESET_MEDAL ; TILEMAP_PSYCHIC_MEDAL + tilemap GameBoyLinkCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CGB + tilemap GameBoyLinkTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK + tilemap GameBoyLinkConnectingCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING_CGB + tilemap GameBoyLinkConnectingTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING + tilemap GameBoyPrinterCGBTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER_CGB + tilemap GameBoyPrinterTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER + tilemap ColosseumTilemap, TILESET_COLOSSEUM_1 ; TILEMAP_COLOSSEUM + tilemap ColosseumCGBTilemap, TILESET_COLOSSEUM_2 ; TILEMAP_COLOSSEUM_CGB + tilemap EvolutionTilemap, TILESET_EVOLUTION_1 ; TILEMAP_EVOLUTION + tilemap EvolutionCGBTilemap, TILESET_EVOLUTION_2 ; TILEMAP_EVOLUTION_CGB + tilemap MysteryTilemap, TILESET_MYSTERY_1 ; TILEMAP_MYSTERY + tilemap MysteryCGBTilemap, TILESET_MYSTERY_2 ; TILEMAP_MYSTERY_CGB + tilemap LaboratoryTilemap, TILESET_LABORATORY_1 ; TILEMAP_LABORATORY + tilemap LaboratoryCGBTilemap, TILESET_LABORATORY_2 ; TILEMAP_LABORATORY_CGB + tilemap CharizardIntroTilemap, TILESET_CHARIZARD_INTRO_1 ; TILEMAP_CHARIZARD_INTRO + tilemap CharizardIntroCGBTilemap, TILESET_CHARIZARD_INTRO_2 ; TILEMAP_CHARIZARD_INTRO_CGB + tilemap ScytherIntroTilemap, TILESET_SCYTHER_INTRO_1 ; TILEMAP_SCYTHER_INTRO + tilemap ScytherIntroCGBTilemap, TILESET_SCYTHER_INTRO_2 ; TILEMAP_SCYTHER_INTRO_CGB + tilemap AerodactylIntroTilemap, TILESET_AERODACTYL_INTRO_1 ; TILEMAP_AERODACTYL_INTRO + tilemap AerodactylIntroCGBTilemap, TILESET_AERODACTYL_INTRO_2 ; TILEMAP_AERODACTYL_INTRO_CGB + tilemap JapaneseTitleScreenTilemap, TILESET_JAPANESE_TITLE_SCREEN ; TILEMAP_JAPANESE_TITLE_SCREEN + tilemap JapaneseTitleScreenCGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_CGB + tilemap SolidTiles1Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_1 + tilemap SolidTiles2Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_2 + tilemap SolidTiles3Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_3 + tilemap JapaneseTitleScreen2Tilemap, TILESET_JAPANESE_TITLE_SCREEN_2 ; TILEMAP_JAPANESE_TITLE_SCREEN_2 + tilemap JapaneseTitleScreen2CGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_2_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB + tilemap SolidTiles4Tilemap, TILESET_SOLID_TILES_2 ; TILEMAP_SOLID_TILES_4 + tilemap PlayerTilemap, TILESET_PLAYER ; TILEMAP_PLAYER + tilemap OpponentTilemap, TILESET_RONALD ; TILEMAP_OPPONENT + tilemap TitleScreenTilemap, TILESET_TITLE_SCREEN ; TILEMAP_TITLE_SCREEN + tilemap TitleScreenCGBTilemap, TILESET_TITLE_SCREEN_CGB ; TILEMAP_TITLE_SCREEN_CGB + tilemap CopyrightTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT + tilemap CopyrightCGBTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT_CGB + tilemap NintendoTilemap, TILESET_NINTENDO ; TILEMAP_NINTENDO + tilemap CompaniesTilemap, TILESET_COMPANIES ; TILEMAP_COMPANIES diff --git a/src/engine/gfx/tilesets.asm b/src/engine/gfx/tilesets.asm new file mode 100644 index 0000000..0b4f0af --- /dev/null +++ b/src/engine/gfx/tilesets.asm @@ -0,0 +1,95 @@ +; \1 = pointer +; \2 = number of tiles +tileset: MACRO + dwb \1, BANK(\1) - BANK(Tilesets) + db \2 +ENDM + +Tilesets: + tileset OverworldMapTiles, 193 ; TILESET_OVERWORLD_MAP + tileset MasonLaboratoryTilesetGfx, 151 ; TILESET_MASON_LABORATORY + tileset IshiharaTilesetGfx, 77 ; TILESET_ISHIHARA + tileset ClubEntranceTilesetGfx, 129 ; TILESET_CLUB_ENTRANCE + tileset ClubLobbyTilesetGfx, 120 ; TILESET_CLUB_LOBBY + tileset FightingClubTilesetGfx, 99 ; TILESET_FIGHTING_CLUB + tileset RockClubTilesetGfx, 60 ; TILESET_ROCK_CLUB + tileset WaterClubTilesetGfx, 161 ; TILESET_WATER_CLUB + tileset LightningClubTilesetGfx, 131 ; TILESET_LIGHTNING_CLUB + tileset GrassClubTilesetGfx, 87 ; TILESET_GRASS_CLUB + tileset PsychicClubTilesetGfx, 58 ; TILESET_PSYCHIC_CLUB + tileset ScienceClubTilesetGfx, 82 ; TILESET_SCIENCE_CLUB + tileset FireClubTilesetGfx, 87 ; TILESET_FIRE_CLUB + tileset ChallengeHallTilesetGfx, 157 ; TILESET_CHALLENGE_HALL + tileset PokemonDomeEntranceTilesetGfx, 78 ; TILESET_POKEMON_DOME_ENTRANCE + tileset PokemonDomeTilesetGfx, 207 ; TILESET_POKEMON_DOME + tileset HallOfHonorTilesetGfx, 121 ; TILESET_HALL_OF_HONOR + tileset CardPopGfx, 189 ; TILESET_CARD_POP + tileset MedalGfx, 72 ; TILESET_MEDAL + tileset GameBoyLinkGfx, 109 ; TILESET_GAMEBOY_LINK + tileset GameBoyPrinterGfx, 93 ; TILESET_GAMEBOY_PRINTER + tileset Colosseum1Gfx, 96 ; TILESET_COLOSSEUM_1 + tileset Colosseum2Gfx, 86 ; TILESET_COLOSSEUM_2 + tileset Evolution1Gfx, 96 ; TILESET_EVOLUTION_1 + tileset Evolution2Gfx, 86 ; TILESET_EVOLUTION_2 + tileset Mystery1Gfx, 96 ; TILESET_MYSTERY_1 + tileset Mystery2Gfx, 86 ; TILESET_MYSTERY_2 + tileset Laboratory1Gfx, 96 ; TILESET_LABORATORY_1 + tileset Laboratory2Gfx, 86 ; TILESET_LABORATORY_2 + tileset CharizardIntro1Gfx, 96 ; TILESET_CHARIZARD_INTRO_1 + tileset CharizardIntro2Gfx, 96 ; TILESET_CHARIZARD_INTRO_2 + tileset ScytherIntro1Gfx, 96 ; TILESET_SCYTHER_INTRO_1 + tileset ScytherIntro2Gfx, 96 ; TILESET_SCYTHER_INTRO_2 + tileset AerodactylIntro1Gfx, 96 ; TILESET_AERODACTYL_INTRO_1 + tileset AerodactylIntro2Gfx, 96 ; TILESET_AERODACTYL_INTRO_2 + tileset JapaneseTitleScreenGfx, 97 ; TILESET_JAPANESE_TITLE_SCREEN + tileset JapaneseTitleScreenCGBGfx, 97 ; TILESET_JAPANESE_TITLE_SCREEN_CGB + tileset SolidTiles1, 4 ; TILESET_SOLID_TILES_1 + tileset JapaneseTitleScreen2Gfx, 244 ; TILESET_JAPANESE_TITLE_SCREEN_2 + tileset JapaneseTitleScreen2CGBGfx, 59 ; TILESET_JAPANESE_TITLE_SCREEN_2_CGB + tileset SolidTiles2, 4 ; TILESET_SOLID_TILES_2 + tileset PlayerGfx, 36 ; TILESET_PLAYER + tileset RonaldGfx, 36 ; TILESET_RONALD + tileset TitleScreenGfx, 220 ; TILESET_TITLE_SCREEN + tileset TitleScreenCGBGfx, 212 ; TILESET_TITLE_SCREEN_CGB + tileset CopyrightGfx, 36 ; TILESET_COPYRIGHT + tileset NintendoGfx, 24 ; TILESET_NINTENDO + tileset CompaniesGfx, 49 ; TILESET_COMPANIES + tileset SamGfx, 36 ; TILESET_SAM + tileset ImakuniGfx, 36 ; TILESET_IMAKUNI + tileset NikkiGfx, 36 ; TILESET_NIKKI + tileset RickGfx, 36 ; TILESET_RICK + tileset KenGfx, 36 ; TILESET_KEN + tileset AmyGfx, 36 ; TILESET_AMY + tileset IsaacGfx, 36 ; TILESET_ISAAC + tileset MitchGfx, 36 ; TILESET_MITCH + tileset GeneGfx, 36 ; TILESET_GENE + tileset MurrayGfx, 36 ; TILESET_MURRAY + tileset CourtneyGfx, 36 ; TILESET_COURTNEY + tileset SteveGfx, 36 ; TILESET_STEVE + tileset JackGfx, 36 ; TILESET_JACK + tileset RodGfx, 36 ; TILESET_ROD + tileset JosephGfx, 36 ; TILESET_JOSEPH + tileset DavidGfx, 36 ; TILESET_DAVID + tileset ErikGfx, 36 ; TILESET_ERIK + tileset JohnGfx, 36 ; TILESET_JOHN + tileset AdamGfx, 36 ; TILESET_ADAM + tileset JonathanGfx, 36 ; TILESET_JONATHAN + tileset JoshuaGfx, 36 ; TILESET_JOSHUA + tileset NicholasGfx, 36 ; TILESET_NICHOLAS + tileset BrandonGfx, 36 ; TILESET_BRANDON + tileset MatthewGfx, 36 ; TILESET_MATTHEW + tileset RyanGfx, 36 ; TILESET_RYAN + tileset AndrewGfx, 36 ; TILESET_ANDREW + tileset ChrisGfx, 36 ; TILESET_CHRIS + tileset MichaelGfx, 36 ; TILESET_MICHAEL + tileset DanielGfx, 36 ; TILESET_DANIEL + tileset RobertGfx, 36 ; TILESET_ROBERT + tileset BrittanyGfx, 36 ; TILESET_BRITTANY + tileset KristinGfx, 36 ; TILESET_KRISTIN + tileset HeatherGfx, 36 ; TILESET_HEATHER + tileset SaraGfx, 36 ; TILESET_SARA + tileset AmandaGfx, 36 ; TILESET_AMANDA + tileset JenniferGfx, 36 ; TILESET_JENNIFER + tileset JessicaGfx, 36 ; TILESET_JESSICA + tileset StephanieGfx, 36 ; TILESET_STEPHANIE + tileset AaronGfx, 36 ; TILESET_AARON |