Link enter tourian and samus in blue ship code

This commit is contained in:
y.demaisonregne 2023-04-03 22:12:26 +02:00
parent 55bc36d5f0
commit 3fd940d0a5
13 changed files with 625 additions and 2164 deletions

View File

@ -7600,8 +7600,8 @@ lbl_0805b752:
bx r0
.align 2, 0
thumb_func_start sub_0805b764
sub_0805b764: @ 0x0805b764
thumb_func_start ApplySmoothPaletteTransition
ApplySmoothPaletteTransition: @ 0x0805b764
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb

File diff suppressed because it is too large Load Diff

View File

@ -903,6 +903,13 @@ cutscenes/EnterTourian/DeadSpacePirate_3.gfx.lz;32;0x3f5f84;4
cutscenes/EnterTourian/Background.tt;385;0x3f6004;4
cutscenes/EnterTourian/Foreground.tt;385;0x3f6608;4
# Samus in blue ship
cutscenes/SamusInBlueShip/Ship.pal;144;0x3f7584;2
cutscenes/SamusInBlueShip/Samus.gfx.lz;3641;0x3f76a4;4
cutscenes/SamusInBlueShip/Controls.gfx.lz;1642;0x3faf88;4
cutscenes/SamusInBlueShip/Ship.tt;368;0x3fc930;4
## Menus
# Title screen
@ -2351,13 +2358,13 @@ Blob_2ceaa8_2cfd9f.bin;4856;0x2ceaa8;1
Blob_2d5ba0_2d7ae7.bin;7988;0x2d5ba0;1
Blob_34099c_345868.bin;20172;0x34099c;1
Blob_375cc4_386f60.bin;70300;0x375cc4;1
Blob_3f6c0c_411400.bin;108532;0x3f6c0c;1
Blob_3fcef0_411400.bin;83216;0x3fcef0;1
Blob_415460_446d68.bin;203016;0x415460;1
Blob_44f11c_45f45c.bin;66368;0x44f11c;1
Blob_479400_4bfee4.bin;289508;0x479400;1
Blob_549b44_74f8b4.bin;2121072;0x549b44;1
Blob_754bd0_75e6a8.bin;39640;0x754bd0;1
Blob_75fae4_75fd78.bin;660;0x75fae4;1
Blob_760090_760420.bin;912;0x760090;1
Blob_7600f8_760420.bin;808;0x7600f8;1
Blob_760458_760aa0.bin;1608;0x760458;1
Blob_760aef_7f7734.bin;617541;0x760aef;1

View File

@ -10,7 +10,7 @@ extern const struct CutscenePageData sSamusInBlueShipPageData[1];
extern const struct OamArray sSamusInBlueShipOam[3];
extern const u16 sSamusInBlueShipPAL[9 * 16];
extern const u32 sSamusInBlueShipSamusGFX[3636];
extern const u32 sSamusInBlueShipSamusGFX[3641];
extern const u32 sSamusInBlueShipControlsGFX[1642];
extern const u32 sSamusInBlueShipSamusTileTable[368];

View File

@ -522,7 +522,10 @@ SECTIONS {
src/cutscenes/getting_fully_powered_suit.o(.text);
src/cutscenes/before_charlie.o(.text);
src/cutscenes/statue_opening.o(.text);
asm/disasm_0x08067080.o(.text);
src/cutscenes/enter_tourian.o(.text);
src/cutscenes/samus_in_blue_ship.o(.text);
src/oam_id.o(.text);
asm/disasm_0x08068168.o(.text);
src/menus/erase_sram.o(.text);
src/menus/title_screen.o(.text);
asm/disasm_0x080778c4.o(.text);
@ -664,7 +667,8 @@ SECTIONS {
src/data/cutscenes/before_charlie_data.o(.rodata);
src/data/cutscenes/statue_opening_data.o(.rodata);
src/data/cutscenes/enter_tourian_data.o(.rodata);
/* 3f6c0c-411400 */
src/data/cutscenes/samus_in_blue_ship_data.o(.rodata);
/* 3fcef0-411400 */
src/data/save_file_data.o(.rodata);
src/data/menus/erase_sram_data.o(.rodata);
/* 415460-446d68 */
@ -691,6 +695,8 @@ SECTIONS {
src/data/cutscenes/internal_getting_fully_powered_suit_data.o(.rodata);
src/data/cutscenes/internal_before_charlie_data.o(.rodata);
src/data/cutscenes/internal_statue_opening_data.o(.rodata);
src/data/cutscenes/internal_enter_tourian_data.o(.rodata);
src/data/cutscenes/internal_samus_in_blue_ship_data.o(.rodata);
/* 760090-760420 */
src/data/menus/internal_erase_sram_data.o(.rodata)
/* 760458-760aa0 */

View File

@ -79,32 +79,22 @@ u8 ProcessComplexOam(u32 oamSlot, i16 xPosition, i16 yPosition, u16 rotation, i1
void CalculateOamPart4(u16 rotation, i16 scaling, u8 oamSlot)
{
// https://decomp.me/scratch/jijJJ
i32 c;
i32 s;
i32 minusS;
i32 dy1;
i32 dmy1;
i32 dx1;
i32 dmx1;
i32 dy2;
i32 dmy2;
dy1 = FixedMultiplication(cos(rotation), FixedInverse(scaling));
dmy1 = FixedMultiplication(sin(rotation), FixedInverse(scaling));
dx1 = FixedMultiplication(-sin(rotation), FixedInverse(scaling));
c = cos(rotation);
dy1 = FixedMultiplication(c, FixedInverse(scaling));
dmx1 = FixedMultiplication(cos(rotation), FixedInverse(-scaling));
s = sin(rotation);
dmy1 = FixedMultiplication(s, FixedInverse(scaling));
minusS = -sin(rotation);
dx1 = FixedMultiplication(minusS, FixedInverse(scaling));
scaling = -scaling;
dmx1 = FixedMultiplication(c, FixedInverse(scaling));
dy2 = FixedMultiplication(s, FixedInverse(scaling));
dmy2 = FixedMultiplication(minusS, FixedInverse(scaling));
dy2 = FixedMultiplication(sin(rotation), FixedInverse(-scaling));
dmy2 = FixedMultiplication(-sin(rotation), FixedInverse(-scaling));
gOamData[oamSlot].all.affineParam = dy1;
gOamData[oamSlot + 1].all.affineParam = dmy1;

View File

@ -1,5 +1,6 @@
#include "cutscenes/enter_tourian.h"
#include "cutscenes/cutscene_utils.h"
#include "color_effects.h"
#include "macros.h"
#include "data/shortcut_pointers.h"
@ -466,7 +467,7 @@ void EnterTourianUpdatePirate(struct CutsceneOamData* pOam)
pOam->unk_1A = 0;
pOam->unk_12++;
ApplySmoothPaletteTransition(sEwramPointer + 0x280, sEwramPointer + 0x3AA0, PALRAM_BASE + 0x280, pOam->unk_12);
ApplySmoothPaletteTransition((void*)sEwramPointer + 0x280, (void*)sEwramPointer + 0x3AA0, PALRAM_BASE + 0x280, pOam->unk_12);
if (pOam->unk_12 > 30)
pOam->actions ^= 2;
}
@ -501,16 +502,16 @@ u8 EnterTourianInit(void)
DMATransfer(3, sEnterTourianMetroidPAL, PALRAM_OBJ, sizeof(sEnterTourianMetroidPAL), 0x10);
DMATransfer(3, sMetroidPAL, PALRAM_BASE + 0x300, sizeof(sMetroidPAL), 0x10);
CallLZ77UncompWRAM(sEnterTourianDeadSpacePirateGFX_1, VRAM_BASE + 0x10000);
CallLZ77UncompWRAM(sEnterTourianDeadSpacePirateGFX_2, VRAM_BASE + 0x10400);
CallLZ77UncompWRAM(sEnterTourianDeadSpacePirateGFX_3, VRAM_BASE + 0x10800);
CallLZ77UncompWRAM(sMetroidGFX, VRAM_BASE + 0x14000);
CallLZ77UncompVRAM(sEnterTourianDeadSpacePirateGFX_1, VRAM_BASE + 0x10000);
CallLZ77UncompVRAM(sEnterTourianDeadSpacePirateGFX_2, VRAM_BASE + 0x10400);
CallLZ77UncompVRAM(sEnterTourianDeadSpacePirateGFX_3, VRAM_BASE + 0x10800);
CallLZ77UncompVRAM(sMetroidGFX, VRAM_BASE + 0x14000);
CallLZ77UncompWRAM(sEnterTourianBackgroundGFX, VRAM_BASE + sEnterTourianPageData[0].graphicsPage * 0x4000);
CallLZ77UncompWRAM(sEnterTourianForegroundGFX, VRAM_BASE + sEnterTourianPageData[1].graphicsPage * 0x4000);
CallLZ77UncompVRAM(sEnterTourianBackgroundGFX, VRAM_BASE + sEnterTourianPageData[0].graphicsPage * 0x4000);
CallLZ77UncompVRAM(sEnterTourianForegroundGFX, VRAM_BASE + sEnterTourianPageData[1].graphicsPage * 0x4000);
CallLZ77UncompWRAM(sEnterTourianBackgroundTileTable, VRAM_BASE + sEnterTourianPageData[0].tiletablePage * 0x800);
CallLZ77UncompWRAM(sEnterTourianForegroundTileTable, VRAM_BASE + sEnterTourianPageData[1].tiletablePage * 0x800);
CallLZ77UncompVRAM(sEnterTourianBackgroundTileTable, VRAM_BASE + sEnterTourianPageData[0].tiletablePage * 0x800);
CallLZ77UncompVRAM(sEnterTourianForegroundTileTable, VRAM_BASE + sEnterTourianPageData[1].tiletablePage * 0x800);
CutsceneSetBGCNTPageData(sEnterTourianPageData[0]);
CutsceneSetBGCNTPageData(sEnterTourianPageData[1]);

View File

@ -86,5 +86,3 @@ const u32 sEnterTourianDeadSpacePirateGFX_2[77] = INCBIN_U32("data/cutscenes/Ent
const u32 sEnterTourianDeadSpacePirateGFX_3[32] = INCBIN_U32("data/cutscenes/EnterTourian/DeadSpacePirate_3.gfx.lz");
const u32 sEnterTourianBackgroundTileTable[385] = INCBIN_U32("data/cutscenes/EnterTourian/Background.tt");
const u32 sEnterTourianForegroundTileTable[385] = INCBIN_U32("data/cutscenes/EnterTourian/Foreground.tt");
const u8 sTempArray_3f6c0c[0x1a7f4] = INCBIN_U8("data/Blob_3f6c0c_411400.bin");

View File

@ -0,0 +1,75 @@
#include "data/cutscenes/internal_enter_tourian_data.h"
#include "cutscenes/enter_tourian.h"
const u16 sEnterTourian_760090[9][2] = {
[0] = {
BLOCK_SIZE * 38 + QUARTER_BLOCK_SIZE,
BLOCK_SIZE * 39 - QUARTER_BLOCK_SIZE
},
[1] = {
BLOCK_SIZE * 37 + QUARTER_BLOCK_SIZE,
BLOCK_SIZE * 38 + QUARTER_BLOCK_SIZE + 8
},
[2] = {
BLOCK_SIZE * 39 - QUARTER_BLOCK_SIZE,
BLOCK_SIZE * 38 + HALF_BLOCK_SIZE
},
[3] = {
BLOCK_SIZE * 38,
BLOCK_SIZE * 38
},
[4] = {
BLOCK_SIZE * 38 + 8,
BLOCK_SIZE * 39 + 8
},
[5] = {
0,
0
},
[6] = {
0,
0
},
[7] = {
0,
0
},
[8] = {
0,
0
}
};
const i16 sEnterTourian_7600b4[4][2] = {
[0] = {
BLOCK_SIZE * 38 + 12,
BLOCK_SIZE * 34 + HALF_BLOCK_SIZE
},
[1] = {
BLOCK_SIZE * 37 - QUARTER_BLOCK_SIZE,
BLOCK_SIZE * 37
},
[2] = {
BLOCK_SIZE * 42 - QUARTER_BLOCK_SIZE,
BLOCK_SIZE * 37 + QUARTER_BLOCK_SIZE
},
[3] = {
BLOCK_SIZE * 40,
BLOCK_SIZE * 36 + HALF_BLOCK_SIZE + 8
}
};
const struct CutsceneSubroutineData sEnterTourianSubroutineData[3] = {
[0] = {
.pFunction = EnterTourianInit,
.oamLength = 9
},
[1] = {
.pFunction = EnterTourianAnimation,
.oamLength = 9
},
[2] = {
.pFunction = (CutsceneFunc_T)0x8061229,//CutsceneEndFunction,
.oamLength = 9
}
};

View File

@ -0,0 +1,24 @@
#include "data/cutscenes/internal_samus_in_blue_ship_data.h"
#include "cutscenes/samus_in_blue_ship.h"
#include "macros.h"
const u8 sSamusInBlueShipPanelTransparency[4] = {
16, 15, 14, 15
};
const struct CutsceneSubroutineData sSamusInBlueShipSubroutineData[3] = {
[0] = {
.pFunction = SamusInBlueShipInit,
.oamLength = 1
},
[1] = {
.pFunction = SamusInBlueShipPoweringUp,
.oamLength = 1
},
[2] = {
.pFunction = (CutsceneFunc_T)0x8061229, //CutsceneEndFunction,
.oamLength = 1
}
};
const u8 sTempArray_7600f8[0x328] = INCBIN_U8("data/Blob_7600f8_760420.bin");

View File

@ -1,7 +1,6 @@
#include "data/cutscenes/internal_statue_opening_data.h"
#include "cutscenes/statue_opening.h"
#include "cutscenes/cutscene_utils.h"
#include "macros.h"
const struct CutsceneSubroutineData sStatueOpeningSubroutineData[3] = {
[0] = {
@ -17,5 +16,3 @@ const struct CutsceneSubroutineData sStatueOpeningSubroutineData[3] = {
.oamLength = 2
}
};
const u8 sTempArray_760090[0x390] = INCBIN_U8("data/Blob_760090_760420.bin");

View File

@ -0,0 +1,487 @@
#include "data/cutscenes/samus_in_blue_ship_data.h"
#include "gba.h"
#include "macros.h"
const struct CutscenePageData sSamusInBlueShipPageData[1] = {
[0] = {
.graphicsPage = 0,
.tiletablePage = 0x1F,
.priority = 3,
.bg = DCNT_BG3,
.screenSize = 0
}
};
static const struct CutsceneScreenShakeInfo sSamusInBlueShipScreenShake = {
.type = 0,
.maxDelay = 2,
.set = 0
};
extern const struct FrameData sSamusInBlueShipOam_Controls[11];
const struct OamArray sSamusInBlueShipOam[3] = {
[0] = {
.pOam = sSamusInBlueShipOam_Controls,
.preAction = OAM_ARRAY_PRE_ACTION_NONE
},
[1] = {
.pOam = sSamusInBlueShipOam_Controls,
.preAction = OAM_ARRAY_PRE_ACTION_RESET_FRAME
},
[2] = {
.pOam = sSamusInBlueShipOam_Controls,
.preAction = OAM_ARRAY_PRE_ACTION_LOOP_ON_LAST_FRAME
}
};
static const u16 sSamusInBlueShipOam_Controls_Frame0[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, OBJ_SPRITE_OAM | 0x180,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_SIZE_32x32 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, OBJ_SPRITE_OAM | 0x180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_SIZE_16x16 | 0x1da, OBJ_SPRITE_OAM | 0x104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, OBJ_SPRITE_OAM | 0x1,
0xb9, OBJ_SIZE_32x32 | 0x1d0, OBJ_SPRITE_OAM | 0x1,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, OBJ_SPRITE_OAM | 0x46,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, OBJ_SPRITE_OAM | 0xc6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, OBJ_SPRITE_OAM | 0x46,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, OBJ_SPRITE_OAM | 0xc6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, OBJ_SPRITE_OAM | 0x4,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, OBJ_SPRITE_OAM | 0x8,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, OBJ_SPRITE_OAM | 0x46
};
static const u16 sSamusInBlueShipOam_Controls_Frame1[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x280,
0xee, OBJ_SIZE_32x32 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, OBJ_SPRITE_OAM | 0x180,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, OBJ_SPRITE_OAM | 0x180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_SIZE_16x16 | 0x1da, OBJ_SPRITE_OAM | 0x104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, OBJ_SPRITE_OAM | 0x1,
0xb9, OBJ_SIZE_32x32 | 0x1d0, OBJ_SPRITE_OAM | 0x1,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, OBJ_SPRITE_OAM | 0x46,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, OBJ_SPRITE_OAM | 0xc6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, OBJ_SPRITE_OAM | 0x46,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, OBJ_SPRITE_OAM | 0xc6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, OBJ_SPRITE_OAM | 0x46
};
static const u16 sSamusInBlueShipOam_Controls_Frame2[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x280,
0xee, OBJ_SIZE_32x32 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, OBJ_SPRITE_OAM | 0x180,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, OBJ_SPRITE_OAM | 0x180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_SIZE_16x16 | 0x1da, OBJ_SPRITE_OAM | 0x104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, OBJ_SPRITE_OAM | 0x1,
0xb9, OBJ_SIZE_32x32 | 0x1d0, OBJ_SPRITE_OAM | 0x1,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame3[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x280,
0xee, OBJ_SIZE_32x32 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, OBJ_SPRITE_OAM | 0x180,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, OBJ_SPRITE_OAM | 0x180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, OBJ_SPRITE_OAM | 0x84,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, OBJ_SPRITE_OAM | 0x100,
0xd8, OBJ_SIZE_16x16 | 0x1da, OBJ_SPRITE_OAM | 0x104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, OBJ_SPRITE_OAM | 0x80,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, OBJ_SPRITE_OAM | 0x84,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, OBJ_SPRITE_OAM | 0x104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame4[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x280,
0xee, OBJ_SIZE_32x32 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, OBJ_SPRITE_OAM | 0x180,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, OBJ_SPRITE_OAM | 0x180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, 0x7100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, 0x7100,
0xd8, OBJ_SIZE_16x16 | 0x1da, 0x7104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame5[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, 0x7180,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x280,
0xee, OBJ_SIZE_32x32 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, 0x7180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, 0x7100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, 0x7100,
0xd8, OBJ_SIZE_16x16 | 0x1da, 0x7104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame6[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x144,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, 0x7180,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, OBJ_SPRITE_OAM | 0x184,
0xee, OBJ_SIZE_32x32 | 0x190, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, 0x7180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, 0x7100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, 0x7100,
0xd8, OBJ_SIZE_16x16 | 0x1da, 0x7104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame7[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, 0x7144,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, 0x7180,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, OBJ_SPRITE_OAM | 0x2e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, OBJ_SPRITE_OAM | 0x2a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, OBJ_SPRITE_OAM | 0x2e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, 0x7144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, 0x7184,
0xee, OBJ_SIZE_32x32 | 0x190, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, 0x7180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, 0x7100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, 0x7100,
0xd8, OBJ_SIZE_16x16 | 0x1da, 0x7104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame8[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, 0x7144,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, 0x7180,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, 0x72a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, 0x72e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, OBJ_SPRITE_OAM | 0x2e0,
0x26, OBJ_SIZE_16x16 | 0x198, OBJ_SPRITE_OAM | 0x2a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, OBJ_SPRITE_OAM | 0x2e0,
0x16, OBJ_SIZE_16x16 | 0x195, 0x72a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, 0x72e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, 0x7144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, 0x7184,
0xee, OBJ_SIZE_32x32 | 0x190, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, 0x7180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, 0x7100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, 0x7100,
0xd8, OBJ_SIZE_16x16 | 0x1da, 0x7104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const u16 sSamusInBlueShipOam_Controls_Frame9[OAM_DATA_SIZE(38)] = {
0x26,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x50, 0x7144,
0xee, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x50, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_SIZE_32x16 | 0x1a6, 0x7180,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_X_FLIP | OBJ_SIZE_32x8 | 0x50, 0x7184,
0x16, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x5b, 0x72a2,
OBJ_SHAPE_HORIZONTAL | 0x26, OBJ_X_FLIP | 0x5b, 0x72e2,
0x26, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x58, 0x72a0,
OBJ_SHAPE_HORIZONTAL | 0x36, OBJ_X_FLIP | 0x58, 0x72e0,
0x26, OBJ_SIZE_16x16 | 0x198, 0x72a0,
OBJ_SHAPE_HORIZONTAL | 0x36, 0x198, 0x72e0,
0x16, OBJ_SIZE_16x16 | 0x195, 0x72a2,
OBJ_SHAPE_HORIZONTAL | 0x26, 0x195, 0x72e2,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, 0x7144,
OBJ_SHAPE_HORIZONTAL | 0x18, OBJ_SIZE_32x8 | 0x190, 0x7184,
0xee, OBJ_SIZE_32x32 | 0x190, 0x7200,
OBJ_SHAPE_HORIZONTAL | 0xe, OBJ_SIZE_32x8 | 0x190, 0x7280,
OBJ_SHAPE_HORIZONTAL | 0xcc, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x3a, 0x7180,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x26, 0x7100,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb8, OBJ_SIZE_32x32 | 0x1ba, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_SIZE_16x32 | 0x1da, 0x7084,
OBJ_SHAPE_HORIZONTAL | 0xd8, OBJ_SIZE_32x16 | 0x1ba, 0x7100,
0xd8, OBJ_SIZE_16x16 | 0x1da, 0x7104,
0xb9, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x10, 0x7001,
0xb9, OBJ_SIZE_32x32 | 0x1d0, 0x7001,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_32x16 | 0x0, 0x70c6,
0xb0, OBJ_SIZE_32x32 | 0x1e0, 0x7046,
OBJ_SHAPE_HORIZONTAL | 0xd0, OBJ_SIZE_32x16 | 0x1e0, 0x70c6,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x1e0, 0x7004,
OBJ_SHAPE_HORIZONTAL | 0xb0, OBJ_SIZE_32x16 | 0x0, 0x7008,
0xb8, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x26, 0x7080,
OBJ_SHAPE_VERTICAL | 0xb8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x16, 0x7084,
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x16, 0x7104,
0xb0, OBJ_X_FLIP | OBJ_SIZE_32x32 | 0x0, 0x7046
};
static const struct FrameData sSamusInBlueShipOam_Controls[11] = {
sSamusInBlueShipOam_Controls_Frame0,
30,
sSamusInBlueShipOam_Controls_Frame1,
16,
sSamusInBlueShipOam_Controls_Frame2,
10,
sSamusInBlueShipOam_Controls_Frame3,
8,
sSamusInBlueShipOam_Controls_Frame4,
4,
sSamusInBlueShipOam_Controls_Frame5,
2,
sSamusInBlueShipOam_Controls_Frame6,
2,
sSamusInBlueShipOam_Controls_Frame7,
2,
sSamusInBlueShipOam_Controls_Frame8,
2,
sSamusInBlueShipOam_Controls_Frame9,
60,
NULL,
0
};
const u16 sSamusInBlueShipPAL[9 * 16] = INCBIN_U16("data/cutscenes/SamusInBlueShip/Ship.pal");
const u32 sSamusInBlueShipSamusGFX[3641] = INCBIN_U32("data/cutscenes/SamusInBlueShip/Samus.gfx.lz");
const u32 sSamusInBlueShipControlsGFX[1642] = INCBIN_U32("data/cutscenes/SamusInBlueShip/Controls.gfx.lz");
const u32 sSamusInBlueShipSamusTileTable[368] = INCBIN_U32("data/cutscenes/SamusInBlueShip/Ship.tt");
const u8 sTempArray_3fcef0[0x14510] = INCBIN_U8("data/Blob_3fcef0_411400.bin");

View File

@ -24,6 +24,7 @@ subDirs: array = [
"cutscenes/BeforeCharlie/",
"cutscenes/StatueOpening/",
"cutscenes/EnterTourian/",
"cutscenes/SamusInBlueShip/",
"menus/",
"menus/TitleScreen/",
"menus/EraseSram/",