From b62a8b29a661798327ef82261ad02c8865aa1e13 Mon Sep 17 00:00:00 2001 From: nmlgc Date: Tue, 18 Dec 2018 19:52:41 +0100 Subject: [PATCH] [Reverse-engineering] [th02/th04/th05] Boss-related function pointers No idea what these other ones in TH02 are. Funded by zorg. --- th02/boss_funcs[bss].asm | 11 ++++ th02_main.asm | 76 +++++++++++++------------- th04/boss_funcs[bss].asm | 14 +++++ th04_main.asm | 88 +++++++++++++++--------------- th05_main.asm | 113 +++++++++++++++++++-------------------- 5 files changed, 157 insertions(+), 145 deletions(-) create mode 100644 th02/boss_funcs[bss].asm create mode 100644 th04/boss_funcs[bss].asm diff --git a/th02/boss_funcs[bss].asm b/th02/boss_funcs[bss].asm new file mode 100644 index 00000000..17498f78 --- /dev/null +++ b/th02/boss_funcs[bss].asm @@ -0,0 +1,11 @@ +; *_func() functions are "activated" by setting the regular function once the +; boss battle starts. +public _boss_bg_render +public _boss_update, _boss_update_func +public _boss_init, _boss_end + +_boss_bg_render dd ? +_boss_update dd ? +_boss_update_func dd ? +_boss_init dd ? +_boss_end dd ? diff --git a/th02_main.asm b/th02_main.asm index b9e758ea..5ed2650d 100644 --- a/th02_main.asm +++ b/th02_main.asm @@ -2352,8 +2352,8 @@ loc_B4D7: call sub_1C608 call sub_1C3DF call sub_12C72 - setfarfp farfp_1F478, sub_BF90 - setfarfp farfp_1F47C, sub_BF95 + setfarfp _boss_bg_render, sub_BF90 + setfarfp _boss_update, sub_BF95 setfarfp farfp_1F490, sub_BF90 setfarfp farfp_1F4A0, sub_BF90 setfarfp farfp_23A72, sub_BF90 @@ -2378,10 +2378,10 @@ loc_B63C: mov word_20616, 74h ; 't' setfarfp farfp_1F474, sub_13786 setfarfp farfp_1F470, sub_13909 - setfarfp farfp_1F484, sub_13ADE - setfarfp farfp_1F488, sub_13B8B - setfarfp farfp_1F49C, sub_13BB5 - setfarfp farfp_1F480, sub_13FE5 + setfarfp _boss_init, sub_13ADE + setfarfp _boss_end, sub_13B8B + setfarfp _boss_bg_render_func, sub_13BB5 + setfarfp _boss_update_func, sub_13FE5 setfarfp farfp_1F490, sub_13671 jmp short loc_B6F2 ; --------------------------------------------------------------------------- @@ -2390,10 +2390,10 @@ loc_B698: mov word_20616, 50h ; 'P' setfarfp farfp_1F474, sub_1410A setfarfp farfp_1F470, sub_1424A - setfarfp farfp_1F484, sub_1523C - setfarfp farfp_1F488, sub_15218 - setfarfp farfp_1F49C, sub_143E5 - setfarfp farfp_1F480, sub_150F4 + setfarfp _boss_init, sub_1523C + setfarfp _boss_end, sub_15218 + setfarfp _boss_bg_render_func, sub_143E5 + setfarfp _boss_update_func, sub_150F4 setfarfp farfp_1F490, sub_140AE loc_B6F2: @@ -2405,10 +2405,10 @@ loc_B701: mov word_20616, 67h ; 'g' setfarfp farfp_1F474, sub_110B7 setfarfp farfp_1F470, sub_114D6 - setfarfp farfp_1F484, sub_12754 - setfarfp farfp_1F488, sub_1273B - setfarfp farfp_1F49C, sub_116AD - setfarfp farfp_1F480, sub_123A9 + setfarfp _boss_init, sub_12754 + setfarfp _boss_end, sub_1273B + setfarfp _boss_bg_render_func, sub_116AD + setfarfp _boss_update_func, sub_123A9 setfarfp farfp_1F490, sub_10E95 setfarfp farfp_1F4A0, sub_10E4F jmp loc_B88A @@ -2418,10 +2418,10 @@ loc_B76A: mov word_20616, 3B0h setfarfp farfp_1F474, sub_19EF3 setfarfp farfp_1F470, sub_1A1FF - setfarfp farfp_1F484, sub_1A7D5 - setfarfp farfp_1F488, sub_1C270 - setfarfp farfp_1F49C, sub_1C16A - setfarfp farfp_1F480, sub_1BEF2 + setfarfp _boss_init, sub_1A7D5 + setfarfp _boss_end, sub_1C270 + setfarfp _boss_bg_render_func, sub_1C16A + setfarfp _boss_update_func, sub_1BEF2 cmp byte_2066C, 0 jnz short loc_B7CB setfarfp farfp_1F490, sub_19E2F @@ -2437,10 +2437,10 @@ loc_B7DD: mov word_20616, 0FFFFh setfarfp farfp_1F474, sub_BF95 setfarfp farfp_1F470, sub_BF90 - setfarfp farfp_1F484, sub_199B3 - setfarfp farfp_1F488, sub_19D96 - setfarfp farfp_1F49C, sub_17B75 - setfarfp farfp_1F480, sub_19456 + setfarfp _boss_init, sub_199B3 + setfarfp _boss_end, sub_19D96 + setfarfp _boss_bg_render_func, sub_17B75 + setfarfp _boss_update_func, sub_19456 mov byte_1E500, 1 jmp short loc_B88A ; --------------------------------------------------------------------------- @@ -2449,10 +2449,10 @@ loc_B832: mov word_20616, 0C8h setfarfp farfp_1F474, sub_15402 setfarfp farfp_1F470, sub_1540C - setfarfp farfp_1F484, sub_1696B - setfarfp farfp_1F488, sub_16A21 - setfarfp farfp_1F49C, sub_159AF - setfarfp farfp_1F480, sub_16744 + setfarfp _boss_init, sub_1696B + setfarfp _boss_end, sub_16A21 + setfarfp _boss_bg_render_func, sub_159AF + setfarfp _boss_update_func, sub_16744 call sub_129FC mov byte_1E500, 2 @@ -2824,7 +2824,7 @@ loc_BCC3: mov bx, ax mov ax, ss:[bx] mov word_20344, ax - call farfp_1F478 + call _boss_bg_render cmp byte_2061A, 0 jz short loc_BCF9 call farfp_1F474 @@ -2914,7 +2914,7 @@ loc_BDCC: call sub_F1D8 call sub_ECAC call farfp_26C40 - call farfp_1F47C + call _boss_update mov byte_1F466, al cmp byte_2061A, 0 jz short loc_BDE8 @@ -3145,7 +3145,7 @@ sub_BF9C proc far call far ptr palette_show loc_BFC3: - call farfp_1F488 + call _boss_end mov ax, 1 pop bp retf @@ -3187,14 +3187,14 @@ loc_BFF8: call far ptr palette_show loc_C015: - call farfp_1F484 + call _boss_init call sub_17A55 call sub_16A8A setfarfp farfp_1F494, sub_BF90 - mov eax, farfp_1F49C - mov farfp_1F478, eax - mov eax, farfp_1F480 - mov farfp_1F47C, eax + mov eax, _boss_bg_render_func + mov _boss_bg_render, eax + mov eax, _boss_update_func + mov _boss_update, eax setfarfp farfp_1F48C, sub_BF9C mov byte_20343, 0FFh mov bgm_show_timer, 1 @@ -36669,16 +36669,12 @@ byte_1F46E db ? db ? farfp_1F470 dd ? farfp_1F474 dd ? -farfp_1F478 dd ? -farfp_1F47C dd ? -farfp_1F480 dd ? -farfp_1F484 dd ? -farfp_1F488 dd ? +include th02/boss_funcs[bss].asm farfp_1F48C dd ? farfp_1F490 dd ? farfp_1F494 dd ? farfp_1F498 dd ? -farfp_1F49C dd ? +_boss_bg_render_func dd ? farfp_1F4A0 dd ? farfp_1F4A4 dd ? dword_1F4A8 dd ? diff --git a/th04/boss_funcs[bss].asm b/th04/boss_funcs[bss].asm new file mode 100644 index 00000000..afec5724 --- /dev/null +++ b/th04/boss_funcs[bss].asm @@ -0,0 +1,14 @@ +; *_func() functions are "activated" by setting the regular function once the +; boss battle starts. +public _boss_update, _boss_update_func +public _boss_bg_render_func, _boss_fg_render, _boss_fg_render_func + +_boss_update dd ? +_boss_fg_render dw ? +if GAME eq 5 + public _boss_custombullets_render + _boss_custombullets_render dw ? +endif +_boss_bg_render_func dw ? +_boss_update_func dd ? +_boss_fg_render_func dw ? diff --git a/th04_main.asm b/th04_main.asm index 877d63da..79634ed1 100644 --- a/th04_main.asm +++ b/th04_main.asm @@ -360,7 +360,7 @@ loc_ABBA: call farfp_25986 cmp byte_256A8, 0 jnz short loc_ABD4 - call fp_255A8 + call _boss_bg_render jmp short loc_ABD8 ; --------------------------------------------------------------------------- @@ -376,12 +376,12 @@ loc_ABD8: call sub_1C8C8 call sub_17E59 call farfp_259F6 - call farfp_2D010 + call _boss_update call sub_1DE5D call sub_13BCE call fp_2566C call sub_1020A - call fp_2D014 + call _boss_fg_render call fp_259FA call sub_10713 call sub_10552 @@ -4263,7 +4263,7 @@ sub_CB80 proc near dec byte_255B0 cmp byte_255B0, 0 jnz short loc_CB97 - mov fp_255A8, offset sub_CB58 + mov _boss_bg_render, offset sub_CB58 loc_CB97: pop bp @@ -4278,7 +4278,7 @@ sub_CB80 endp sub_CB99 proc far push bp mov bp, sp - mov fp_255A8, offset sub_CB58 + mov _boss_bg_render, offset sub_CB58 pop bp retf sub_CB99 endp @@ -4296,7 +4296,7 @@ arg_0 = byte ptr 6 mov bp, sp mov al, [bp+arg_0] mov byte_255B0, al - mov fp_255A8, offset sub_CB80 + mov _boss_bg_render, offset sub_CB80 pop bp retf 2 sub_CBA4 endp @@ -4809,12 +4809,12 @@ loc_CF63: loc_CF70: nopcall sub_D6EB mov fp_255CA, offset sub_CF3D - mov ax, fp_2D016 - mov fp_255A8, ax - mov eax, farfp_2D018 - mov farfp_2D010, eax - mov ax, fp_2D01C - mov fp_2D014, ax + mov ax, _boss_bg_render_func + mov _boss_bg_render, ax + mov eax, _boss_update_func + mov _boss_update, eax + mov ax, _boss_fg_render_func + mov _boss_fg_render, ax mov al, stage_id add al, al add al, 2 @@ -37598,8 +37598,8 @@ sub_1DE5D endp sub_1DF61 proc near push bp mov bp, sp - setfarfp farfp_2D010, nullsub_2 - mov fp_2D014, offset nullsub_1 + setfarfp _boss_update, nullsub_2 + mov _boss_fg_render, offset nullsub_1 mov byte_26719, 0 mov byte_2671D, 0 mov byte_2671F, 0 @@ -37679,9 +37679,9 @@ sub_1DFEF proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (40 shl 4) mov _boss_pos.prev.y, (40 shl 4) - mov fp_2D016, offset sub_1217E - setfarfp farfp_2D018, sub_19AA3 - mov fp_2D01C, offset sub_1196B + mov _boss_bg_render_func, offset sub_1217E + setfarfp _boss_update_func, sub_19AA3 + mov _boss_fg_render_func, offset sub_1196B mov _boss_sprite_cur, 128 mov word_2D030, 180h mov word_2D032, 100h @@ -37725,9 +37725,9 @@ sub_1E0B3 proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (81 shl 4) mov _boss_pos.prev.y, (81 shl 4) - mov fp_2D016, offset sub_121EB - setfarfp farfp_2D018, sub_1915D - mov fp_2D01C, offset sub_11793 + mov _boss_bg_render_func, offset sub_121EB + setfarfp _boss_update_func, sub_1915D + mov _boss_fg_render_func, offset sub_11793 mov _boss_sprite_cur, 0 mov word_2D030, 180h mov word_2D032, 180h @@ -37773,9 +37773,9 @@ sub_1E186 proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D016, offset sub_1226F - setfarfp farfp_2D018, sub_1C2E5 - mov fp_2D01C, offset sub_11E12 + mov _boss_bg_render_func, offset sub_1226F + setfarfp _boss_update_func, sub_1C2E5 + mov _boss_fg_render_func, offset sub_11E12 mov _boss_sprite_cur, 134 mov word_2D030, 180h mov word_2D032, 180h @@ -37817,11 +37817,11 @@ sub_1E245 proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D016, offset sub_122D7 + mov _boss_bg_render_func, offset sub_122D7 cmp playchar, 1 jnz loc_1E359 - setfarfp farfp_2D018, sub_1F3AB - mov fp_2D01C, offset sub_12E93 + setfarfp _boss_update_func, sub_1F3AB + mov _boss_fg_render_func, offset sub_12E93 push 40006h push 8000Ch call sub_C396 @@ -37854,8 +37854,8 @@ sub_1E245 proc far ; --------------------------------------------------------------------------- loc_1E359: - setfarfp farfp_2D018, sub_179F4 - mov fp_2D01C, offset sub_ED71 + setfarfp _boss_update_func, sub_179F4 + mov _boss_fg_render_func, offset sub_ED71 mov _boss_hp, 6000 loc_1E371: @@ -37907,9 +37907,9 @@ sub_1E3C2 proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D016, offset sub_12364 - setfarfp farfp_2D018, sub_16610 - mov fp_2D01C, offset sub_E8A3 + mov _boss_bg_render_func, offset sub_12364 + setfarfp _boss_update_func, sub_16610 + mov _boss_fg_render_func, offset sub_E8A3 mov _boss_sprite_cur, 128 mov word_2D030, 1A0h mov word_2D032, 1A0h @@ -37948,9 +37948,9 @@ sub_1E47C proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (80 shl 4) mov _boss_pos.prev.y, (80 shl 4) - mov fp_2D016, offset sub_128B9 - setfarfp farfp_2D018, sub_1B47E - mov fp_2D01C, offset sub_11C1A + mov _boss_bg_render_func, offset sub_128B9 + setfarfp _boss_update_func, sub_1B47E + mov _boss_fg_render_func, offset sub_11C1A mov _boss_sprite_cur, 128 mov word_2D030, 180h mov word_2D032, 300h @@ -37996,9 +37996,9 @@ sub_1E518 proc far mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (80 shl 4) mov _boss_pos.prev.y, (80 shl 4) - mov fp_2D016, offset sub_12979 - setfarfp farfp_2D018, sub_186EB - mov fp_2D01C, offset sub_115B6 + mov _boss_bg_render_func, offset sub_12979 + setfarfp _boss_update_func, sub_186EB + mov _boss_fg_render_func, offset sub_115B6 mov _boss_sprite_cur, 128 mov word_2D030, 180h mov word_2D032, 300h @@ -38331,9 +38331,9 @@ loc_1E801: mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (96 shl 4) mov _boss_pos.prev.y, (96 shl 4) - mov fp_255A8, offset sub_12979 - setfarfp farfp_2D010, sub_2026A - mov fp_2D014, offset sub_12F5F + mov _boss_bg_render, offset sub_12979 + setfarfp _boss_update, sub_2026A + mov _boss_fg_render, offset sub_12F5F mov _boss_sprite_cur, 128 mov word_2D030, 180h mov word_2D032, 300h @@ -45599,7 +45599,7 @@ byte_2559A db ? word_255A0 dw ? word_255A2 dw ? dword_255A4 dd ? -fp_255A8 dw ? +_boss_bg_render dw ? fp_255AA dw ? fp_255AC dw ? dw ? @@ -53580,11 +53580,7 @@ byte_2D00A db ? dream_score dw ? byte_2D00E db ? db ? -farfp_2D010 dd ? -fp_2D014 dw ? -fp_2D016 dw ? -farfp_2D018 dd ? -fp_2D01C dw ? +include th04/boss_funcs[bss].asm byte_2D01E db ? byte_2D01F db ? byte_2D020 db ? diff --git a/th05_main.asm b/th05_main.asm index db353988..46ba8792 100644 --- a/th05_main.asm +++ b/th05_main.asm @@ -403,7 +403,7 @@ loc_AED7: call farfp_2C926 cmp byte_2429A, 0 jnz short loc_AEEC - call fp_23F56 + call _boss_bg_render jmp short loc_AEF0 ; --------------------------------------------------------------------------- @@ -420,7 +420,7 @@ loc_AEF0: call sub_17C04 call sub_1607D call farfp_2C990 - call farfp_2D066 + call _boss_update call sub_1720E call sub_16AB0 call fp_2CE50 @@ -429,13 +429,13 @@ loc_AEF0: call fp_2429C loc_AF2D: - call fp_2D06A + call _boss_fg_render call fp_2C994 call sub_EBB7 call sub_125A3 call sub_12263 call _grcg_setmode_rmw_1 - call fp_2D06C + call _boss_custombullets_render call lasers_render call sub_16B4E call sub_C202 @@ -998,7 +998,7 @@ loc_B469: push offset aSt04_bft_0 ; "st04.bft" call super_entry_bfnt call sub_14976 - mov fp_23F56, offset sub_DA86 + mov _boss_bg_render, offset sub_DA86 mov fp_23F5A, offset sub_DA86 jmp short loc_B4A9 ; --------------------------------------------------------------------------- @@ -2274,7 +2274,7 @@ sub_BF0E proc near dec byte_23F5E cmp byte_23F5E, 0 jnz short loc_BF25 - mov fp_23F56, offset sub_BEE6 + mov _boss_bg_render, offset sub_BEE6 loc_BF25: pop bp @@ -2289,7 +2289,7 @@ sub_BF0E endp sub_BF27 proc far push bp mov bp, sp - mov fp_23F56, offset sub_BEE6 + mov _boss_bg_render, offset sub_BEE6 pop bp retf sub_BF27 endp @@ -2307,7 +2307,7 @@ arg_0 = byte ptr 6 mov bp, sp mov al, [bp+arg_0] mov byte_23F5E, al - mov fp_23F56, offset sub_BF0E + mov _boss_bg_render, offset sub_BF0E pop bp retf 2 sub_BF32 endp @@ -8538,12 +8538,12 @@ sub_EE58 proc near jnz short loc_EE92 nopcall sub_F2B4 mov fp_2C92E, offset sub_EE51 - mov ax, fp_2D06E - mov fp_23F56, ax - mov eax, farfp_2D070 - mov farfp_2D066, eax - mov ax, fp_2D074 - mov fp_2D06A, ax + mov ax, _boss_bg_render_func + mov _boss_bg_render, ax + mov eax, _boss_update_func + mov _boss_update, eax + mov ax, _boss_fg_render_func + mov _boss_fg_render, ax mov fp_2CE88, offset sub_11CBB mov al, 1 pop bp @@ -19467,9 +19467,9 @@ stage_step_score_function endp sub_144CB proc near push bp mov bp, sp - setfarfp farfp_2D066, nullsub_1 - mov fp_2D06A, offset nullsub_2 - mov fp_2D06C, offset nullsub_2 + setfarfp _boss_update, nullsub_1 + mov _boss_fg_render, offset nullsub_2 + mov _boss_custombullets_render, offset nullsub_2 mov boss_phase, 0 mov byte_26349, 0 mov byte ptr word_2634A+1, 0 @@ -19544,9 +19544,9 @@ sub_14544 proc near mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D06E, offset sub_D08C - setfarfp farfp_2D070, sub_186B6 - mov fp_2D074, offset sub_10904 + mov _boss_bg_render_func, offset sub_D08C + setfarfp _boss_update_func, sub_186B6 + mov _boss_fg_render_func, offset sub_10904 mov _boss_sprite_cur, 180 mov word_2D088, 180h mov word_2D08A, 180h @@ -19591,9 +19591,9 @@ sub_14613 proc near mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D06E, offset sub_D0F4 - setfarfp farfp_2D070, sub_1903A - mov fp_2D074, offset sub_10A2A + mov _boss_bg_render_func, offset sub_D0F4 + setfarfp _boss_update_func, sub_1903A + mov _boss_fg_render_func, offset sub_10A2A mov _boss_sprite_cur, 180 mov word_2D088, 180h mov word_2D08A, 180h @@ -19635,9 +19635,9 @@ sub_146D0 proc near mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D06E, offset sub_D180 - setfarfp farfp_2D070, sub_1A044 - mov fp_2D074, offset sub_10C9A + mov _boss_bg_render_func, offset sub_D180 + setfarfp _boss_update_func, sub_1A044 + mov _boss_fg_render_func, offset sub_10C9A mov _boss_sprite_cur, 180 mov word_2D088, 180h mov word_2D08A, 180h @@ -19686,9 +19686,9 @@ sub_1479F proc near mov word_26352, 1200h mov word ptr dword_2634E+2, 400h mov word_26354, 400h - mov fp_2D06E, offset sub_D20C - setfarfp farfp_2D070, sub_1ABDA - mov fp_2D074, offset sub_10D71 + mov _boss_bg_render_func, offset sub_D20C + setfarfp _boss_update_func, sub_1ABDA + mov _boss_fg_render_func, offset sub_10D71 mov _boss_sprite_cur, 180 mov byte_2635C, 0B4h mov word_2D088, 180h @@ -19735,9 +19735,9 @@ sub_14879 proc near mov word_26352, 0C00h mov word ptr dword_2634E+2, 400h mov word_26354, 400h - mov fp_2D06E, offset sub_D29E - setfarfp farfp_2D070, sub_1D26B - mov fp_2D074, offset sub_10FD2 + mov _boss_bg_render_func, offset sub_D29E + setfarfp _boss_update_func, sub_1D26B + mov _boss_fg_render_func, offset sub_10FD2 mov _boss_sprite_cur, 180 mov word_2D088, 180h mov word_2D08A, 180h @@ -19779,9 +19779,9 @@ sub_14976 proc near mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D06E, offset sub_DA86 - setfarfp farfp_2D070, sub_1E197 - mov fp_2D074, offset sub_110E4 + mov _boss_bg_render_func, offset sub_DA86 + setfarfp _boss_update_func, sub_1E197 + mov _boss_fg_render_func, offset sub_110E4 mov _boss_sprite_cur, 180 mov word_2D088, 180h mov word_2D08A, 180h @@ -19820,9 +19820,9 @@ sub_14A06 proc near mov _boss_pos.prev.x, (192 shl 4) mov _boss_pos.cur.y, (64 shl 4) mov _boss_pos.prev.y, (64 shl 4) - mov fp_2D06E, offset sub_DCDB - setfarfp farfp_2D070, sub_1F289 - mov fp_2D074, offset sub_117C9 + mov _boss_bg_render_func, offset sub_DCDB + setfarfp _boss_update_func, sub_1F289 + mov _boss_fg_render_func, offset sub_117C9 mov _boss_sprite_cur, 180 mov word_2D088, 180h mov word_2D08A, 180h @@ -30827,7 +30827,7 @@ loc_1ACAB: mov byte ptr word_2634A+1, 0 mov fp_2CE36, offset sub_1A5EB mov fp_2CE38, offset sub_1A8C9 - mov fp_2D06C, offset sub_FF79 + mov _boss_custombullets_render, offset sub_FF79 jmp loc_1AFA7 ; default ; --------------------------------------------------------------------------- @@ -31096,7 +31096,7 @@ loc_1AF24: mov word ptr dword_2CE9A, offset aTH05_10 mov eax, dword_2634E mov _boss_pos.cur, eax - setfarfp farfp_2D066, sub_1B9F2 + setfarfp _boss_update, sub_1B9F2 jmp short loc_1AF85 ; --------------------------------------------------------------------------- @@ -31106,14 +31106,14 @@ loc_1AF66: call sub_ED87 mov word ptr dword_2CE9A+2, ds mov word ptr dword_2CE9A, offset aTH05_11 - setfarfp farfp_2D066, sub_1C518 + setfarfp _boss_update, sub_1C518 loc_1AF85: call sub_F2B4 mov fp_2CE88, offset sub_11CBB mov boss_phase, 0 mov boss_phase_frame, 0 - mov fp_2D06A, offset sub_10F12 + mov _boss_fg_render, offset sub_10F12 mov _boss_hp, 7900 loc_1AFA7: @@ -32381,7 +32381,7 @@ loc_1BA89: mov _boss_sprite_cur, 204 inc boss_phase mov boss_phase_frame, 0 - mov fp_2D06C, offset sub_10EB2 + mov _boss_custombullets_render, offset sub_10EB2 jmp loc_1BD09 ; --------------------------------------------------------------------------- @@ -32616,7 +32616,7 @@ loc_1BCE7: mov boss_phase_frame, 0 mov boss_phase, 0FDh call sub_1B3C2 - mov fp_2D06C, offset nullsub_2 + mov _boss_custombullets_render, offset nullsub_2 jmp short loc_1BD09 ; --------------------------------------------------------------------------- @@ -33588,7 +33588,7 @@ loc_1C5B4: mov _boss_sprite_cur, 204 inc boss_phase mov boss_phase_frame, 0 - mov fp_2D06C, offset sub_10EB2 + mov _boss_custombullets_render, offset sub_10EB2 jmp loc_1C805 ; --------------------------------------------------------------------------- @@ -33825,7 +33825,7 @@ loc_1C7E3: mov boss_phase_frame, 0 mov boss_phase, 0FDh call sub_1B3C2 - mov fp_2D06C, offset nullsub_2 + mov _boss_custombullets_render, offset nullsub_2 jmp short loc_1C805 ; --------------------------------------------------------------------------- @@ -35006,7 +35006,7 @@ loc_1D360: mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov fp_2CE46, offset sub_1CA42 - mov fp_2D06C, offset sub_10F90 + mov _boss_custombullets_render, offset sub_10F90 jmp loc_1D513 ; --------------------------------------------------------------------------- @@ -35169,7 +35169,7 @@ loc_1D4F4: call add_explode_effect_function mov boss_phase_frame, 0 mov boss_phase, 0FDh - mov fp_2D06C, offset nullsub_2 + mov _boss_custombullets_render, offset nullsub_2 jmp short loc_1D513 ; --------------------------------------------------------------------------- @@ -36679,7 +36679,7 @@ loc_1E333: inc boss_phase mov boss_phase_frame, 0 mov _boss_pos.velocity.y, 0 - mov fp_2D06C, offset sub_11073 + mov _boss_custombullets_render, offset sub_11073 push 3200230h push 2D00320h call sub_E752 @@ -38558,7 +38558,7 @@ loc_1F374: mov byte_26349, 1 mov byte ptr word_2634A+1, 0 mov boss_phase_frame, 0 - mov fp_2D06C, offset sub_11695 + mov _boss_custombullets_render, offset sub_11695 mov byte_2D085, 0 mov fp_2CE66, offset sub_1E922 mov byte_2D07F, 0 @@ -38847,7 +38847,7 @@ loc_1F643: call add_explode_effect_function mov boss_phase_frame, 0 mov boss_phase, 0FDh - mov fp_2D06C, offset nullsub_2 + mov _boss_custombullets_render, offset nullsub_2 mov byte_226C0, 0 jmp short loc_1F666 ; --------------------------------------------------------------------------- @@ -39691,7 +39691,7 @@ loc_1FC55: inc boss_phase mov boss_phase_frame, 0 mov byte_2C96C, 1 - mov fp_2D06A, offset nullsub_2 + mov _boss_fg_render, offset nullsub_2 jmp loc_1FD5D ; --------------------------------------------------------------------------- @@ -42915,7 +42915,7 @@ dword_23F4A dd ? word_23F4E dw ? word_23F50 dw ? dword_23F52 dd ? -fp_23F56 dw ? +_boss_bg_render dw ? fp_23F58 dw ? fp_23F5A dw ? db ? ; @@ -52086,12 +52086,7 @@ byte_2D060 db ? word_2D062 dw ? byte_2D064 db ? db ? -farfp_2D066 dd ? -fp_2D06A dw ? -fp_2D06C dw ? -fp_2D06E dw ? -farfp_2D070 dd ? -fp_2D074 dw ? +include th04/boss_funcs[bss].asm byte_2D076 db ? byte_2D077 db ? dd ? ;