Extract brinstar room data

This commit is contained in:
YohannDR 2023-11-12 22:02:10 +01:00
parent afc61aa3fd
commit acaf3c63d5
60 changed files with 3351 additions and 1575 deletions

View File

@ -44,7 +44,7 @@ CPPFLAGS = -nostdinc -Iinclude/
PREPROCFLAGS = charmap.txt
# Objects
CSRC = $(wildcard src/**.c) $(wildcard src/**/**.c) $(wildcard src/**/**/**.c)
CSRC = $(wildcard src/**.c) $(wildcard src/**/**.c) $(wildcard src/**/**/**.c) $(wildcard src/**/**/**/**.c)
.PRECIOUS: $(CSRC:.c=.s)
ASMSRC = $(CSRC:.c=.s) $(wildcard asm/*.s)
OBJ = $(ASMSRC:.s=.o)

View File

@ -4,7 +4,7 @@ This is a work in progress decompilation of Metroid - Zero Mission.
2673/2721 functions decompiled (98.24%, 48 left)
0x482a74/0x76b014 bytes of data not in blobs (60.80%, 0x2e85a0 left)
0x491a90/0x76b014 bytes of data not in blobs (61.59%, 0x2d9584 left)
Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0

View File

@ -1312,7 +1312,203 @@ rooms/debug/Debug4_Bg1.rle;330;0x367786;1
## Brinstar rooms
rooms/brinstar/6_Bg3.rle;988;0x5e1b2c;1
rooms/brinstar/map_room.rle;988;0x5e1b2c;1
rooms/brinstar/Brinstar_0_Clipdata.gfx;311;0x60c64a;1
rooms/brinstar/Brinstar_0_Bg2.gfx;124;0x60c781;1
rooms/brinstar/Brinstar_0_Bg1.gfx;1328;0x60c818;1
rooms/brinstar/Brinstar_1_Clipdata.gfx;317;0x60cd7e;1
rooms/brinstar/Brinstar_1_Bg2.gfx;14;0x60cebb;1
rooms/brinstar/Brinstar_1_Bg1.gfx;1142;0x60cef6;1
rooms/brinstar/Brinstar_1_Bg0.gfx;232;0x60d384;1
rooms/brinstar/Brinstar_2_Clipdata.gfx;122;0x60d47e;1
rooms/brinstar/Brinstar_2_Bg2.gfx;108;0x60d50d;1
rooms/brinstar/Brinstar_2_Bg1.gfx;653;0x60d588;1
rooms/brinstar/Brinstar_2_Bg0.gfx;128;0x60d824;1
rooms/brinstar/Brinstar_3_Clipdata.gfx;775;0x60d8a4;1
rooms/brinstar/Brinstar_3_Bg2.gfx;139;0x60dbab;1
rooms/brinstar/Brinstar_3_Bg1.gfx;3530;0x60dc5d;1
rooms/brinstar/Brinstar_4_Clipdata.gfx;142;0x60ea50;1
rooms/brinstar/Brinstar_4_Bg2.gfx;128;0x60eade;1
rooms/brinstar/Brinstar_4_Bg1.gfx;544;0x60eb5e;1
rooms/brinstar/Brinstar_5_Clipdata.gfx;52;0x60ed8c;1
rooms/brinstar/Brinstar_5_Bg2.gfx;145;0x60edc0;1
rooms/brinstar/Brinstar_5_Bg1.gfx;141;0x60ee51;1
rooms/brinstar/Brinstar_6_Clipdata.gfx;52;0x60eee4;1
rooms/brinstar/Brinstar_6_Bg2.gfx;91;0x60ef18;1
rooms/brinstar/Brinstar_6_Bg1.gfx;188;0x60ef73;1
rooms/brinstar/Brinstar_6_Bg0.gfx;186;0x60f032;1
rooms/brinstar/Brinstar_7_Clipdata.gfx;692;0x60f0ec;1
rooms/brinstar/Brinstar_7_Bg2.gfx;313;0x60f3a0;1
rooms/brinstar/Brinstar_7_Bg1.gfx;1962;0x60f512;1
rooms/brinstar/Brinstar_8_Clipdata.gfx;143;0x60fd06;1
rooms/brinstar/Brinstar_8_Bg2.gfx;196;0x60fd95;1
rooms/brinstar/Brinstar_8_Bg1.gfx;407;0x60fe6b;1
rooms/brinstar/Brinstar_8_Bg0.gfx;205;0x61000b;1
rooms/brinstar/Brinstar_9_Clipdata.gfx;313;0x6100ea;1
rooms/brinstar/Brinstar_9_Bg2.gfx;247;0x610223;1
rooms/brinstar/Brinstar_9_Bg1.gfx;1389;0x610320;1
rooms/brinstar/Brinstar_9_Bg0.gfx;172;0x610890;1
rooms/brinstar/Brinstar_10_Clipdata.gfx;91;0x610946;1
rooms/brinstar/Brinstar_10_Bg2.gfx;260;0x6109a1;1
rooms/brinstar/Brinstar_10_Bg1.gfx;678;0x610aa5;1
rooms/brinstar/Brinstar_11_Clipdata.gfx;108;0x610d5e;1
rooms/brinstar/Brinstar_11_Bg2.gfx;122;0x610dca;1
rooms/brinstar/Brinstar_11_Bg1.gfx;280;0x610e44;1
rooms/brinstar/Brinstar_12_Clipdata.gfx;379;0x610f64;1
rooms/brinstar/Brinstar_12_Bg2.gfx;337;0x6110df;1
rooms/brinstar/Brinstar_12_Bg1.gfx;1226;0x611230;1
rooms/brinstar/Brinstar_12_Bg0.gfx;203;0x611709;1
rooms/brinstar/Brinstar_13_Clipdata.gfx;206;0x6117d4;1
rooms/brinstar/Brinstar_13_Bg2.gfx;78;0x6118a2;1
rooms/brinstar/Brinstar_13_Bg1.gfx;520;0x6118f0;1
rooms/brinstar/Brinstar_13_Bg0.gfx;220;0x611b10;1
rooms/brinstar/Brinstar_14_Clipdata.gfx;212;0x611bfe;1
rooms/brinstar/Brinstar_14_Bg2.gfx;38;0x611cd2;1
rooms/brinstar/Brinstar_14_Bg1.gfx;532;0x611cf8;1
rooms/brinstar/Brinstar_15_Clipdata.gfx;287;0x611f2e;1
rooms/brinstar/Brinstar_15_Bg2.gfx;78;0x61204d;1
rooms/brinstar/Brinstar_15_Bg1.gfx;975;0x61209b;1
rooms/brinstar/Brinstar_16_Clipdata.gfx;191;0x61248a;1
rooms/brinstar/Brinstar_16_Bg2.gfx;40;0x612549;1
rooms/brinstar/Brinstar_16_Bg1.gfx;514;0x612571;1
rooms/brinstar/Brinstar_17_Clipdata.gfx;71;0x61279c;1
rooms/brinstar/Brinstar_17_Bg2.gfx;89;0x6127e3;1
rooms/brinstar/Brinstar_17_Bg1.gfx;265;0x61283c;1
rooms/brinstar/Brinstar_18_Clipdata.gfx;52;0x612958;1
rooms/brinstar/Brinstar_18_Bg2.gfx;172;0x61298c;1
rooms/brinstar/Brinstar_18_Bg1.gfx;135;0x612a38;1
rooms/brinstar/Brinstar_19_Clipdata.gfx;325;0x612ac8;1
rooms/brinstar/Brinstar_19_Bg2.gfx;42;0x612c0d;1
rooms/brinstar/Brinstar_19_Bg1.gfx;935;0x612c4c;1
rooms/brinstar/Brinstar_19_Bg0.gfx;274;0x613002;1
rooms/brinstar/Brinstar_20_Clipdata.gfx;336;0x613114;1
rooms/brinstar/Brinstar_20_Bg2.gfx;211;0x613264;1
rooms/brinstar/Brinstar_20_Bg1.gfx;1163;0x613337;1
rooms/brinstar/Brinstar_21_Clipdata.gfx;241;0x6137e6;1
rooms/brinstar/Brinstar_21_Bg2.gfx;174;0x6138d7;1
rooms/brinstar/Brinstar_21_Bg1.gfx;1038;0x6139a0;1
rooms/brinstar/Brinstar_21_Bg0.gfx;394;0x613dba;1
rooms/brinstar/Brinstar_22_Clipdata.gfx;172;0x613f56;1
rooms/brinstar/Brinstar_22_Bg2.gfx;50;0x614002;1
rooms/brinstar/Brinstar_22_Bg1.gfx;611;0x61404f;1
rooms/brinstar/Brinstar_22_Bg0.gfx;93;0x6142bb;1
rooms/brinstar/Brinstar_23_Clipdata.gfx;312;0x61432a;1
rooms/brinstar/Brinstar_23_Bg2.gfx;82;0x614462;1
rooms/brinstar/Brinstar_23_Bg1.gfx;732;0x6144b4;1
rooms/brinstar/Brinstar_23_Bg0.gfx;669;0x6147c3;1
rooms/brinstar/Brinstar_24_Clipdata.gfx;118;0x614a72;1
rooms/brinstar/Brinstar_24_Bg2.gfx;140;0x614ae8;1
rooms/brinstar/Brinstar_24_Bg1.gfx;417;0x614b74;1
rooms/brinstar/Brinstar_24_Bg0.gfx;300;0x614d24;1
rooms/brinstar/Brinstar_25_Clipdata.gfx;91;0x614e62;1
rooms/brinstar/Brinstar_25_Bg2.gfx;286;0x614ebd;1
rooms/brinstar/Brinstar_25_Bg1.gfx;247;0x614fdb;1
rooms/brinstar/Brinstar_26_Clipdata.gfx;108;0x6150e2;1
rooms/brinstar/Brinstar_26_Bg2.gfx;166;0x61514e;1
rooms/brinstar/Brinstar_26_Bg1.gfx;340;0x6151f4;1
rooms/brinstar/Brinstar_27_Clipdata.gfx;52;0x615350;1
rooms/brinstar/Brinstar_27_Bg2.gfx;156;0x615384;1
rooms/brinstar/Brinstar_27_Bg1.gfx;141;0x615420;1
rooms/brinstar/Brinstar_28_Clipdata.gfx;213;0x6154b4;1
rooms/brinstar/Brinstar_28_Bg2.gfx;107;0x6155b0;1
rooms/brinstar/Brinstar_28_Bg1.gfx;746;0x615633;1
rooms/brinstar/Brinstar_28_Bg0.gfx;94;0x61593e;1
rooms/brinstar/Brinstar_29_Clipdata.gfx;113;0x6159ae;1
rooms/brinstar/Brinstar_29_Bg2.gfx;14;0x615a1f;1
rooms/brinstar/Brinstar_29_Bg1.gfx;287;0x615a2d;1
rooms/brinstar/Brinstar_29_Bg0.gfx;357;0x615b4f;1
rooms/brinstar/Brinstar_30_Clipdata.gfx;76;0x615cb4;1
rooms/brinstar/Brinstar_30_Bg2.gfx;14;0x615d00;1
rooms/brinstar/Brinstar_30_Bg1.gfx;220;0x615d0e;1
rooms/brinstar/Brinstar_31_Clipdata.gfx;136;0x615dfa;1
rooms/brinstar/Brinstar_31_Bg2.gfx;95;0x615e82;1
rooms/brinstar/Brinstar_31_Bg1.gfx;408;0x615ee1;1
rooms/brinstar/Brinstar_32_Clipdata.gfx;54;0x616088;1
rooms/brinstar/Brinstar_32_Bg2.gfx;14;0x6160be;1
rooms/brinstar/Brinstar_32_Bg1.gfx;190;0x6160cc;1
rooms/brinstar/Brinstar_33_Clipdata.gfx;71;0x616190;1
rooms/brinstar/Brinstar_33_Bg2.gfx;14;0x6161d7;1
rooms/brinstar/Brinstar_33_Bg1.gfx;211;0x6161e5;1
rooms/brinstar/Brinstar_34_Clipdata.gfx;69;0x6162c0;1
rooms/brinstar/Brinstar_34_Bg2.gfx;14;0x616305;1
rooms/brinstar/Brinstar_34_Bg1.gfx;213;0x616313;1
rooms/brinstar/Brinstar_35_Clipdata.gfx;123;0x6163f0;1
rooms/brinstar/Brinstar_35_Bg2.gfx;58;0x61646b;1
rooms/brinstar/Brinstar_35_Bg1.gfx;482;0x6164a5;1
rooms/brinstar/Brinstar_36_Clipdata.gfx;70;0x616690;1
rooms/brinstar/Brinstar_36_Bg2.gfx;14;0x6166d6;1
rooms/brinstar/Brinstar_36_Bg1.gfx;215;0x6166e4;1
rooms/brinstar/Brinstar_37_Clipdata.gfx;52;0x6167c4;1
rooms/brinstar/Brinstar_37_Bg2.gfx;168;0x6167f8;1
rooms/brinstar/Brinstar_37_Bg1.gfx;137;0x6168a0;1
rooms/brinstar/Brinstar_38_Clipdata.gfx;153;0x616942;1
rooms/brinstar/Brinstar_38_Bg2.gfx;102;0x6169db;1
rooms/brinstar/Brinstar_38_Bg1.gfx;578;0x616a56;1
rooms/brinstar/Brinstar_38_Bg0.gfx;213;0x616ca7;1
rooms/brinstar/Brinstar_39_Clipdata.gfx;78;0x616d7c;1
rooms/brinstar/Brinstar_39_Bg2.gfx;14;0x616dca;1
rooms/brinstar/Brinstar_39_Bg1.gfx;216;0x616dd8;1
rooms/brinstar/Brinstar_40_Clipdata.gfx;93;0x616eb8;1
rooms/brinstar/Brinstar_40_Bg2.gfx;14;0x616f15;1
rooms/brinstar/Brinstar_40_Bg1.gfx;236;0x616f23;1
rooms/brinstar/Brinstar_41_Clipdata.gfx;214;0x617018;1
rooms/brinstar/Brinstar_41_Bg2.gfx;100;0x6170ee;1
rooms/brinstar/Brinstar_41_Bg1.gfx;765;0x617188;1
rooms/brinstar/Brinstar_41_Bg0.gfx;48;0x6174b8;1
rooms/brinstar/Brinstar_Bg3_0.gfx;1564;0x6174e8;1
rooms/brinstar/Brinstar_Bg3_1.gfx;1600;0x617b04;1
rooms/brinstar/Brinstar_Bg3_2.gfx;1756;0x618144;1
rooms/brinstar/Brinstar_Bg3_3.gfx;1360;0x618820;1
rooms/brinstar/Brinstar_Bg3_4.gfx;1620;0x618d70;1
rooms/brinstar/Brinstar_Bg3_5.gfx;2168;0x6193c4;1
rooms/brinstar/Brinstar_Bg3_6.gfx;928;0x619c3c;1
rooms/brinstar/Brinstar_Bg3_7.gfx;2020;0x619fdc;1
rooms/brinstar/Brinstar_Bg3_8.gfx;1164;0x61a7c0;1
rooms/brinstar/Brinstar_Bg3_9.gfx;1360;0x61ac4c;1
rooms/brinstar/Brinstar_Bg3_10.gfx;1200;0x61b19c;1
## Kraid rooms
@ -2785,4 +2981,4 @@ Blob_8cad0_8cc60.bin;400;0x8cad0;1
Blob_8ceec_8f253.bin;9064;0x8ceec;1
Blob_8f2c0_908df.bin;5664;0x8f2c0;1
Blob_908e0_2320e4.bin;1710084;0x908e0;1
Blob_60c630_74f8b4.bin;1323652;0x60c630;1
Blob_61b64c_74f8b4.bin;1262184;0x61b64c;1

View File

@ -3,7 +3,7 @@
#include "types.h"
extern const u8 sTileset0_BackgroundGfx[3796];
extern const u8 sTileset_0_BackgroundGfx[3796];
extern const u8 sDebug_Bg3[896];
extern const u8 sBackground_Empty[52];
extern const u8 sDoorTransitionTilemap[184];

View File

@ -4,6 +4,7 @@
#include "types.h"
#include "structs/scroll.h"
#include "structs/sprite.h"
#include "structs/room.h"
extern const u8 sBrinstar_0_Scrolls[SCROLL_DATA_SIZE(3)];
extern const u8 sBrinstar_0_Clipdata[311];
@ -58,7 +59,7 @@ extern const u8 sBrinstar_6_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(1)];
extern const u8 sBrinstar_6_Bg0[186];
extern const u8 sBrinstar_7_Clipdata[695];
extern const u8 sBrinstar_7_Clipdata[692];
extern const u8 sBrinstar_7_Bg2[313];
extern const u8 sBrinstar_7_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(19)];
extern const u8 sBrinstar_7_Bg1[1962];
@ -125,10 +126,10 @@ extern const u8 sBrinstar_15_Bg1[975];
extern const u8 sBrinstar_15_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(4)];
extern const u8 sBrinstar_9_Scrolls[SCROLL_DATA_SIZE(3)];
extern const u8 sBrinstar_9_Scrolls[SCROLL_DATA_SIZE(2)];
extern const u8 sBrinstar_16_Clipdata[191];
extern const u8 sBrinstar_16_Bg2[40];
extern const u8 sBrinstar_16_Bg1[512];
extern const u8 sBrinstar_16_Bg1[514];
extern const u8 sBrinstar_16_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(13)];
@ -141,7 +142,7 @@ extern const u8 sBrinstar_17_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(6)];
extern const u8 sBrinstar_18_Clipdata[52];
extern const u8 sBrinstar_18_Bg2[172];
extern const u8 sBrinstar_18_Bg1[135];
extern const u8 sBrinstar_18_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)];
extern const u8 sBrinstar_18_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)];
extern const u8 sBrinstar_19_Clipdata[325];
@ -171,7 +172,7 @@ extern const u8 sBrinstar_11_Scrolls[SCROLL_DATA_SIZE(2)];
extern const u8 sBrinstar_22_Clipdata[172];
extern const u8 sBrinstar_22_Bg2[50];
extern const u8 sBrinstar_22_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(9)];
extern const u8 sBrinstar_22_Bg1[644];
extern const u8 sBrinstar_22_Bg1[611];
extern const u8 sBrinstar_22_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)];
extern const u8 sBrinstar_22_Bg0[93];
@ -226,7 +227,7 @@ extern const u8 sBrinstar_29_Clipdata[113];
extern const u8 sBrinstar_29_Bg2[14];
extern const u8 sBrinstar_29_Bg1[287];
extern const u8 sBrinstar_29_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(1)];
extern const u8 sBrinstar_29_Bg0[287];
extern const u8 sBrinstar_29_Bg0[357];
extern const u8 sBrinstar_30_Clipdata[76];
@ -237,7 +238,7 @@ extern const u8 sBrinstar_30_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)];
extern const u8 sBrinstar_17_Scrolls[SCROLL_DATA_SIZE(1)];
extern const u8 sBrinstar_31_Clipdata[136];
extern const u8 sBrinstar_31_Bg2[14];
extern const u8 sBrinstar_31_Bg2[95];
extern const u8 sBrinstar_31_Bg1[408];
extern const u8 sBrinstar_31_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)];

View File

@ -2,47 +2,46 @@
#define DEBUG_ROOMS_DATA_H
#include "types.h"
#include "structs/room.h"
#define ROOM_SPRITE_DATA_TERMINATOR UCHAR_MAX, UCHAR_MAX, UCHAR_MAX
extern const u8 sTileset_0_Gfx[1780];
extern const u8 sTileset_0_Tilemap[1410];
extern const u16 sTileset_0_Pal[14 * 16];
extern const u8 sTileset0_Gfx[1780];
extern const u8 sTileset0_Tilemap[1410];
extern const u16 sTileset0_Pal[14 * 16];
extern const u8 sDebug_0_Clipdata[306];
extern const u8 sDebug_0_Bg2[14];
extern const u8 sDebug_0_Bg1[369];
extern const u8 sDebug0_Clipdata[306];
extern const u8 sDebug0_Bg2[14];
extern const u8 sDebug0_Bg1[369];
extern const u8 sDebug_1_Clipdata[446];
extern const u8 sDebug_1_Bg2[14];
extern const u8 sDebug_1_Bg1[485];
extern const u8 sDebug1_Clipdata[446];
extern const u8 sDebug1_Bg2[14];
extern const u8 sDebug1_Bg1[485];
extern const u8 sDebug_2_Clipdata[280];
extern const u8 sDebug_2_Bg2[116];
extern const u8 sDebug_2_Bg1[209];
extern const u8 sDebug2_Clipdata[280];
extern const u8 sDebug2_Bg2[116];
extern const u8 sDebug2_Bg1[209];
extern const u8 sDebug_3_Clipdata[156];
extern const u8 sDebug_3_Bg2[14];
extern const u8 sDebug_3_Bg1[159];
extern const u8 sDebug3_Clipdata[156];
extern const u8 sDebug3_Bg2[14];
extern const u8 sDebug3_Bg1[159];
extern const u8 sDebug_4_Clipdata[314];
extern const u8 sDebug_4_Bg2[14];
extern const u8 sDebug_4_Bg1[330];
extern const u8 sDebug4_Clipdata[314];
extern const u8 sDebug4_Bg2[14];
extern const u8 sDebug4_Bg1[330];
extern const u8 sDebug_0_SpriteData[2 * 3];
extern const u8 sDebug0_SpriteData[2 * 3];
extern const u8 sDebug_1_SpriteData[3 * 3];
extern const u8 sDebug1_SpriteData[3 * 3];
extern const u8 sDebug2_SpriteData[2 * 3];
extern const u8 sDebug3_SpriteData[2 * 3];
extern const u8 sDebug4_SpriteData[1 * 3];
extern const u8 sDebug5_SpriteData[2 * 3];
extern const u8 sDebug6_SpriteData[1 * 3];
extern const u8 sDebug7_SpriteData[1 * 3];
extern const u8 sDebug8_SpriteData[2 * 3];
extern const u8 sDebug9_SpriteData[7 * 3];
extern const u8 sDebug10_SpriteData[1 * 3];
extern const u8 sDebug11_SpriteData[1 * 3];
extern const u8 sDebug12_SpriteData[3 * 3];
extern const u8 sDebug_2_SpriteData[2 * 3];
extern const u8 sDebug_3_SpriteData[2 * 3];
extern const u8 sDebug_4_SpriteData[1 * 3];
extern const u8 sDebug_5_SpriteData[2 * 3];
extern const u8 sDebug_6_SpriteData[1 * 3];
extern const u8 sDebug_7_SpriteData[1 * 3];
extern const u8 sDebug_8_SpriteData[2 * 3];
extern const u8 sDebug_9_SpriteData[7 * 3];
extern const u8 sDebug_10_SpriteData[1 * 3];
extern const u8 sDebug_11_SpriteData[1 * 3];
extern const u8 sDebug_12_SpriteData[3 * 3];
#endif /* DEBUG_ROOMS_DATA_H */

View File

@ -7,7 +7,7 @@ extern const u8 sTileset_42_Tilemap[1796];
extern const u8 sTileset_78_Tilemap[1796];
extern const u8 sTileset_27_Tilemap[1796];
extern const u8 sBrinstar_6_Bg3[988];
extern const u8 sMapRoom_Bg3[988];
extern const u8 sChozodia_5_Bg3[988];
extern const u8 sWater_Bg0[548];

View File

@ -3,6 +3,8 @@
#include "types.h"
#define ROOM_SPRITE_DATA_TERMINATOR UCHAR_MAX, UCHAR_MAX, UCHAR_MAX
struct AnimatedGraphicsEntry {
u8 palette;
u8 tileset;
@ -50,11 +52,11 @@ struct RoomEntryROM {
u8 Bg1Prop;
u8 Bg2Prop;
u8 Bg3Prop;
const u8* pBG0Data;
const u8* pBG1Data;
const u8* pBG2Data;
const u8* pBg0Data;
const u8* pBg1Data;
const u8* pBg2Data;
const u8* pClipData;
const u8* pBG3Data;
const u8* pBg3Data;
u8 Bg3Scrolling;
u8 transparency;
const u8* pDefaultSpriteData;

View File

@ -6,6 +6,7 @@
#define SCROLL_SUB_DATA_SIZE 8
#define SCROLL_DATA_SIZE(nbrScrolls) (2 + SCROLL_SUB_DATA_SIZE * nbrScrolls)
struct Scroll {
u8 within;
u16 xEnd;

View File

@ -710,6 +710,51 @@ SECTIONS {
src/data/common_pals.o(.rodata);
src/data/tilesets/tilesets_set1.o(.rodata);
/* 60c630-74f8b4 */
src/data/rooms/brinstar/Brinstar_0.o(.rodata);
src/data/rooms/brinstar/Brinstar_1.o(.rodata);
src/data/rooms/brinstar/Brinstar_2.o(.rodata);
src/data/rooms/brinstar/Brinstar_3.o(.rodata);
src/data/rooms/brinstar/Brinstar_4.o(.rodata);
src/data/rooms/brinstar/Brinstar_5.o(.rodata);
src/data/rooms/brinstar/Brinstar_6.o(.rodata);
src/data/rooms/brinstar/Brinstar_7.o(.rodata);
src/data/rooms/brinstar/Brinstar_8.o(.rodata);
src/data/rooms/brinstar/Brinstar_9.o(.rodata);
src/data/rooms/brinstar/Brinstar_10.o(.rodata);
src/data/rooms/brinstar/Brinstar_11.o(.rodata);
src/data/rooms/brinstar/Brinstar_12.o(.rodata);
src/data/rooms/brinstar/Brinstar_13.o(.rodata);
src/data/rooms/brinstar/Brinstar_14.o(.rodata);
src/data/rooms/brinstar/Brinstar_15.o(.rodata);
src/data/rooms/brinstar/Brinstar_16.o(.rodata);
src/data/rooms/brinstar/Brinstar_17.o(.rodata);
src/data/rooms/brinstar/Brinstar_18.o(.rodata);
src/data/rooms/brinstar/Brinstar_19.o(.rodata);
src/data/rooms/brinstar/Brinstar_20.o(.rodata);
src/data/rooms/brinstar/Brinstar_21.o(.rodata);
src/data/rooms/brinstar/Brinstar_22.o(.rodata);
src/data/rooms/brinstar/Brinstar_23.o(.rodata);
src/data/rooms/brinstar/Brinstar_24.o(.rodata);
src/data/rooms/brinstar/Brinstar_25.o(.rodata);
src/data/rooms/brinstar/Brinstar_26.o(.rodata);
src/data/rooms/brinstar/Brinstar_27.o(.rodata);
src/data/rooms/brinstar/Brinstar_28.o(.rodata);
src/data/rooms/brinstar/Brinstar_29.o(.rodata);
src/data/rooms/brinstar/Brinstar_30.o(.rodata);
src/data/rooms/brinstar/Brinstar_31.o(.rodata);
src/data/rooms/brinstar/Brinstar_32.o(.rodata);
src/data/rooms/brinstar/Brinstar_33.o(.rodata);
src/data/rooms/brinstar/Brinstar_34.o(.rodata);
src/data/rooms/brinstar/Brinstar_35.o(.rodata);
src/data/rooms/brinstar/Brinstar_36.o(.rodata);
src/data/rooms/brinstar/Brinstar_37.o(.rodata);
src/data/rooms/brinstar/Brinstar_38.o(.rodata);
src/data/rooms/brinstar/Brinstar_39.o(.rodata);
src/data/rooms/brinstar/Brinstar_40.o(.rodata);
src/data/rooms/brinstar/Brinstar_41.o(.rodata);
src/data/rooms/brinstar/Bg3.o(.rodata);
src/data/animated_tiles_data.o(.rodata);
src/data/shortcut_pointers.o(.rodata);
src/data/cable_link_data.o(.rodata);

View File

@ -1,7 +1,7 @@
#include "data/default_background_data.h"
#include "macros.h"
const u8 sTileset0_BackgroundGfx[3796] = INCBIN_U8("data/rooms/Tileset0_Background.gfx.lz");
const u8 sTileset_0_BackgroundGfx[3796] = INCBIN_U8("data/rooms/Tileset0_Background.gfx.lz");
const u8 sDebug_Bg3[896] = INCBIN_U8("data/rooms/Debug_Bg3.gfx.lz");
const u8 sBackground_Empty[52] = INCBIN_U8("data/rooms/Background_Empty.bin");
const u8 sDoorTransitionTilemap[184] = INCBIN_U8("data/rooms/DoorTransition.tm");

View File

@ -2,6 +2,7 @@
#include "macros.h"
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
#include "data/clipdata_data.h"
#include "data/animated_graphics_data.h"
#include "data/hatch_data.h"
@ -127,25 +128,25 @@ static const u8* const sScrollPointer_Empty[] = {
};
static const u8* const sBrinstarScrolls[] = {
(const u8* const)0x860c630, // sBrinstar_0_Scrolls,
(const u8* const)0x860cd64, // sBrinstar_1_Scrolls,
(const u8* const)0x860d46c, // sBrinstar_2_Scrolls,
(const u8* const)0x860fcf4, // sBrinstar_3_Scrolls,
(const u8* const)0x86100d8, // sBrinstar_4_Scrolls,
(const u8* const)0x861093c, // sBrinstar_5_Scrolls,
(const u8* const)0x8610d54, // sBrinstar_6_Scrolls,
(const u8* const)0x8611bec, // sBrinstar_7_Scrolls,
(const u8* const)0x8611f14, // sBrinstar_8_Scrolls,
(const u8* const)0x8612478, // sBrinstar_9_Scrolls,
(const u8* const)0x86137d4, // sBrinstar_10_Scrolls,
(const u8* const)0x8613f44, // sBrinstar_11_Scrolls,
(const u8* const)0x8614318, // sBrinstar_12_Scrolls,
(const u8* const)0x8614a60, // sBrinstar_13_Scrolls,
(const u8* const)0x8614e50, // sBrinstar_14_Scrolls,
(const u8* const)0x86150d8, // sBrinstar_15_Scrolls,
(const u8* const)0x861599c, // sBrinstar_16_Scrolls,
(const u8* const)0x8615df0, // sBrinstar_17_Scrolls,
(const u8* const)0x8616930, // sBrinstar_18_Scrolls,
sBrinstar_0_Scrolls,
sBrinstar_1_Scrolls,
sBrinstar_2_Scrolls,
sBrinstar_3_Scrolls,
sBrinstar_4_Scrolls,
sBrinstar_5_Scrolls,
sBrinstar_6_Scrolls,
sBrinstar_7_Scrolls,
sBrinstar_8_Scrolls,
sBrinstar_9_Scrolls,
sBrinstar_10_Scrolls,
sBrinstar_11_Scrolls,
sBrinstar_12_Scrolls,
sBrinstar_13_Scrolls,
sBrinstar_14_Scrolls,
sBrinstar_15_Scrolls,
sBrinstar_16_Scrolls,
sBrinstar_17_Scrolls,
sBrinstar_18_Scrolls,
sScroll_Empty
};

View File

@ -0,0 +1,26 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_Bg3_0[1564] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_0.gfx");
const u8 sBrinstar_Bg3_1[1600] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_1.gfx");
const u8 sBrinstar_Bg3_2[1756] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_2.gfx");
const u8 sBrinstar_Bg3_3[1360] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_3.gfx");
const u8 sBrinstar_Bg3_4[1620] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_4.gfx");
const u8 sBrinstar_Bg3_5[2168] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_5.gfx");
const u8 sBrinstar_Bg3_6[928] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_6.gfx");
const u8 sBrinstar_Bg3_7[2020] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_7.gfx");
const u8 sBrinstar_Bg3_8[1164] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_8.gfx");
const u8 sBrinstar_Bg3_9[1360] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_9.gfx");
const u8 sBrinstar_Bg3_10[1200] = INCBIN_U8("data/rooms/brinstar/Brinstar_Bg3_10.gfx");
const u8 sTempArray_61b64c[] = INCBIN_U8("data/Blob_61b64c_74f8b4.bin");

View File

@ -0,0 +1,59 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_0_Scrolls[SCROLL_DATA_SIZE(3)] = {
0, // Room
3, // Number of scrolls
// Scroll 0
2, 76, // X bounds
22, 31, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
32, 46, // X bounds
2, 23, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 2
32, 46, // X bounds
31, 41, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_0_Clipdata[311] = INCBIN_U8("data/rooms/brinstar/Brinstar_0_Clipdata.gfx");
const u8 sBrinstar_0_Bg2[124] = INCBIN_U8("data/rooms/brinstar/Brinstar_0_Bg2.gfx");
const u8 sBrinstar_0_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(9)] = {
22, 27, 21,
22, 56, 21,
23, 68, 21,
24, 4, 21,
27, 11, 18,
30, 21, 21,
30, 67, 21,
34, 39, 20,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_0_Bg1[1328] = INCBIN_U8("data/rooms/brinstar/Brinstar_0_Bg1.gfx");
const u8 sBrinstar_0_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(9)] = {
22, 27, 17,
22, 56, 17,
23, 68, 17,
24, 4, 17,
27, 11, 18,
30, 21, 17,
30, 67, 17,
34, 39, 20,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,66 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_1_Scrolls[SCROLL_DATA_SIZE(3)] = {
1, // Room
3, // Number of scrolls
// Scroll 0
2, 16, // X bounds
12, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 16, // X bounds
19, 51, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 2
2, 16, // X bounds
2, 12, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_1_Clipdata[317] = INCBIN_U8("data/rooms/brinstar/Brinstar_1_Clipdata.gfx");
const u8 sBrinstar_1_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_1_Bg2.gfx");
const u8 sBrinstar_1_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(15)] = {
16, 6, 22,
16, 8, 22,
16, 9, 18,
16, 10, 22,
16, 11, 22,
18, 9, 22,
18, 12, 22,
23, 9, 18,
24, 5, 22,
27, 11, 18,
28, 6, 19,
32, 7, 18,
43, 7, 19,
49, 6, 21,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_1_Bg1[1142] = INCBIN_U8("data/rooms/brinstar/Brinstar_1_Bg1.gfx");
const u8 sBrinstar_1_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(8)] = {
16, 9, 17,
23, 9, 18,
27, 11, 18,
28, 6, 19,
32, 7, 18,
43, 7, 19,
49, 6, 21,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_1_Bg0[232] = INCBIN_U8("data/rooms/brinstar/Brinstar_1_Bg0.gfx");

View File

@ -0,0 +1,27 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_5_Scrolls[SCROLL_DATA_SIZE(1)] = {
10, // Room
1, // Number of scrolls
// Scroll 0
2, 31, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_10_Clipdata[91] = INCBIN_U8("data/rooms/brinstar/Brinstar_10_Clipdata.gfx");
const u8 sBrinstar_10_Bg2[260] = INCBIN_U8("data/rooms/brinstar/Brinstar_10_Bg2.gfx");
const u8 sBrinstar_10_Bg1[678] = INCBIN_U8("data/rooms/brinstar/Brinstar_10_Bg1.gfx");
const u8 sBrinstar_10_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)] = {
8, 16, 18,
8, 17, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,26 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_6_Scrolls[SCROLL_DATA_SIZE(1)] = {
11, // Room
1, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
3, // Breakeable block direction
21, // Breakeable block Y bound extension
};
const u8 sBrinstar_11_Clipdata[108] = INCBIN_U8("data/rooms/brinstar/Brinstar_11_Clipdata.gfx");
const u8 sBrinstar_11_Bg2[122] = INCBIN_U8("data/rooms/brinstar/Brinstar_11_Bg2.gfx");
const u8 sBrinstar_11_Bg1[280] = INCBIN_U8("data/rooms/brinstar/Brinstar_11_Bg1.gfx");
const u8 sBrinstar_11_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
9, 9, 19,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,19 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_12_Clipdata[379] = INCBIN_U8("data/rooms/brinstar/Brinstar_12_Clipdata.gfx");
const u8 sBrinstar_12_Bg2[337] = INCBIN_U8("data/rooms/brinstar/Brinstar_12_Bg2.gfx");
const u8 sBrinstar_12_Bg1[1226] = INCBIN_U8("data/rooms/brinstar/Brinstar_12_Bg1.gfx");
const u8 sBrinstar_12_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
3, 13, 18,
10, 113, 17,
11, 41, 17,
11, 88, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_12_Bg0[203] = INCBIN_U8("data/rooms/brinstar/Brinstar_12_Bg0.gfx");

View File

@ -0,0 +1,22 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_13_Clipdata[206] = INCBIN_U8("data/rooms/brinstar/Brinstar_13_Clipdata.gfx");
const u8 sBrinstar_13_Bg2[78] = INCBIN_U8("data/rooms/brinstar/Brinstar_13_Bg2.gfx");
const u8 sBrinstar_13_Bg1[520] = INCBIN_U8("data/rooms/brinstar/Brinstar_13_Bg1.gfx");
const u8 sBrinstar_13_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(8)] = {
2, 8, 20,
2, 23, 20,
2, 27, 20,
2, 31, 19,
2, 44, 20,
2, 48, 20,
2, 51, 20,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_13_Bg0[220] = INCBIN_U8("data/rooms/brinstar/Brinstar_13_Bg0.gfx");

View File

@ -0,0 +1,33 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_7_Scrolls[SCROLL_DATA_SIZE(2)] = {
14, // Room
2, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 16, // X bounds
9, 31, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_14_Clipdata[212] = INCBIN_U8("data/rooms/brinstar/Brinstar_14_Clipdata.gfx");
const u8 sBrinstar_14_Bg2[38] = INCBIN_U8("data/rooms/brinstar/Brinstar_14_Bg2.gfx");
const u8 sBrinstar_14_Bg1[532] = INCBIN_U8("data/rooms/brinstar/Brinstar_14_Bg1.gfx");
const u8 sBrinstar_14_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
3, 9, 18,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,42 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_8_Scrolls[SCROLL_DATA_SIZE(3)] = {
15, // Room
3, // Number of scrolls
// Scroll 0
17, 61, // X bounds
3, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
17, 61, // X bounds
11, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 2
2, 25, // X bounds
2, 9, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_15_Clipdata[287] = INCBIN_U8("data/rooms/brinstar/Brinstar_15_Clipdata.gfx");
const u8 sBrinstar_15_Bg2[78] = INCBIN_U8("data/rooms/brinstar/Brinstar_15_Bg2.gfx");
const u8 sBrinstar_15_Bg1[975] = INCBIN_U8("data/rooms/brinstar/Brinstar_15_Bg1.gfx");
const u8 sBrinstar_15_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(4)] = {
5, 7, 17,
8, 34, 17,
8, 47, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,44 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_9_Scrolls[SCROLL_DATA_SIZE(2)] = {
16, // Room
2, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 16, // X bounds
9, 31, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_16_Clipdata[191] = INCBIN_U8("data/rooms/brinstar/Brinstar_16_Clipdata.gfx");
const u8 sBrinstar_16_Bg2[40] = INCBIN_U8("data/rooms/brinstar/Brinstar_16_Bg2.gfx");
const u8 sBrinstar_16_Bg1[514] = INCBIN_U8("data/rooms/brinstar/Brinstar_16_Bg1.gfx");
const u8 sBrinstar_16_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(13)] = {
2, 4, 22,
2, 5, 22,
2, 6, 22,
2, 12, 22,
2, 13, 22,
2, 14, 22,
11, 8, 18,
14, 12, 17,
17, 8, 17,
21, 9, 19,
23, 10, 18,
26, 11, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,18 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_17_Clipdata[71] = INCBIN_U8("data/rooms/brinstar/Brinstar_17_Clipdata.gfx");
const u8 sBrinstar_17_Bg2[89] = INCBIN_U8("data/rooms/brinstar/Brinstar_17_Bg2.gfx");
const u8 sBrinstar_17_Bg1[265] = INCBIN_U8("data/rooms/brinstar/Brinstar_17_Bg1.gfx");
const u8 sBrinstar_17_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(6)] = {
4, 14, 17,
5, 20, 17,
6, 16, 17,
8, 13, 17,
9, 19, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_18_Clipdata[52] = INCBIN_U8("data/rooms/brinstar/Brinstar_18_Clipdata.gfx");
const u8 sBrinstar_18_Bg2[172] = INCBIN_U8("data/rooms/brinstar/Brinstar_18_Bg2.gfx");
const u8 sBrinstar_18_Bg1[135] = INCBIN_U8("data/rooms/brinstar/Brinstar_18_Bg1.gfx");
const u8 sBrinstar_18_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
9, 6, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,29 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_19_Clipdata[325] = INCBIN_U8("data/rooms/brinstar/Brinstar_19_Clipdata.gfx");
const u8 sBrinstar_19_Bg2[42] = INCBIN_U8("data/rooms/brinstar/Brinstar_19_Bg2.gfx");
const u8 sBrinstar_19_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(7)] = {
3, 16, 17,
3, 20, 17,
3, 24, 17,
3, 77, 17,
3, 81, 17,
3, 96, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_19_Bg1[935] = INCBIN_U8("data/rooms/brinstar/Brinstar_19_Bg1.gfx");
const u8 sBrinstar_19_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
3, 13, 18,
3, 50, 17,
3, 80, 17,
3, 96, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_19_Bg0[274] = INCBIN_U8("data/rooms/brinstar/Brinstar_19_Bg0.gfx");

View File

@ -0,0 +1,56 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_2_Scrolls[SCROLL_DATA_SIZE(2)] = {
2, // Room
2, // Number of scrolls
// Scroll 0
2, 36, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
36, 61, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_2_Clipdata[122] = INCBIN_U8("data/rooms/brinstar/Brinstar_2_Clipdata.gfx");
const u8 sBrinstar_2_Spriteset2[ENEMY_ROOM_DATA_ARRAY_SIZE(7)] = {
2, 19, 17,
2, 23, 17,
3, 12, 17,
3, 16, 17,
3, 27, 17,
9, 53, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_2_Bg2[108] = INCBIN_U8("data/rooms/brinstar/Brinstar_2_Bg2.gfx");
const u8 sBrinstar_2_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
2, 19, 17,
2, 23, 17,
3, 27, 17,
9, 53, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_2_Bg1[653] = INCBIN_U8("data/rooms/brinstar/Brinstar_2_Bg1.gfx");
const u8 sBrinstar_2_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
2, 19, 17,
2, 23, 17,
3, 27, 17,
9, 53, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_2_Bg0[128] = INCBIN_U8("data/rooms/brinstar/Brinstar_2_Bg0.gfx");

View File

@ -0,0 +1,18 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_20_Clipdata[336] = INCBIN_U8("data/rooms/brinstar/Brinstar_20_Clipdata.gfx");
const u8 sBrinstar_20_Bg2[211] = INCBIN_U8("data/rooms/brinstar/Brinstar_20_Bg2.gfx");
const u8 sBrinstar_20_Bg1[1163] = INCBIN_U8("data/rooms/brinstar/Brinstar_20_Bg1.gfx");
const u8 sBrinstar_20_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(6)] = {
16, 4, 19,
22, 5, 19,
33, 10, 17,
38, 9, 17,
47, 10, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,49 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_10_Scrolls[SCROLL_DATA_SIZE(2)] = {
21, // Room
2, // Number of scrolls
// Scroll 0
2, 76, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
33, 76, // X bounds
11, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_21_Clipdata[241] = INCBIN_U8("data/rooms/brinstar/Brinstar_21_Clipdata.gfx");
const u8 sBrinstar_21_Bg2[174] = INCBIN_U8("data/rooms/brinstar/Brinstar_21_Bg2.gfx");
const u8 sBrinstar_21_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(9)] = {
8, 64, 20,
8, 65, 19,
8, 66, 19,
8, 67, 19,
8, 68, 19,
8, 69, 19,
11, 21, 17,
19, 59, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_21_Bg1[1038] = INCBIN_U8("data/rooms/brinstar/Brinstar_21_Bg1.gfx");
const u8 sBrinstar_21_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(4)] = {
8, 64, 20,
11, 21, 17,
19, 59, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_21_Bg0[394] = INCBIN_U8("data/rooms/brinstar/Brinstar_21_Bg0.gfx");

View File

@ -0,0 +1,48 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_11_Scrolls[SCROLL_DATA_SIZE(2)] = {
22, // Room
2, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 24, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 16, // X bounds
22, 31, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_22_Clipdata[172] = INCBIN_U8("data/rooms/brinstar/Brinstar_22_Clipdata.gfx");
const u8 sBrinstar_22_Bg2[50] = INCBIN_U8("data/rooms/brinstar/Brinstar_22_Bg2.gfx");
const u8 sBrinstar_22_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(9)] = {
4, 10, 17,
17, 14, 17,
23, 4, 19,
23, 5, 19,
23, 6, 19,
23, 8, 19,
23, 9, 19,
25, 9, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_22_Bg1[611] = INCBIN_U8("data/rooms/brinstar/Brinstar_22_Bg1.gfx");
const u8 sBrinstar_22_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)] = {
5, 11, 17,
25, 9, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_22_Bg0[93] = INCBIN_U8("data/rooms/brinstar/Brinstar_22_Bg0.gfx");

View File

@ -0,0 +1,50 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_12_Scrolls[SCROLL_DATA_SIZE(2)] = {
23, // Room
2, // Number of scrolls
// Scroll 0
2, 61, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 61, // X bounds
10, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_23_Clipdata[312] = INCBIN_U8("data/rooms/brinstar/Brinstar_23_Clipdata.gfx");
const u8 sBrinstar_23_Bg2[82] = INCBIN_U8("data/rooms/brinstar/Brinstar_23_Bg2.gfx");
const u8 sBrinstar_23_Bg1[732] = INCBIN_U8("data/rooms/brinstar/Brinstar_23_Bg1.gfx");
const u8 sBrinstar_23_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(17)] = {
2, 15, 23,
2, 16, 23,
2, 48, 23,
2, 49, 23,
2, 50, 23,
3, 48, 23,
3, 49, 23,
3, 50, 23,
3, 51, 23,
4, 15, 23,
4, 16, 23,
4, 17, 23,
4, 18, 23,
7, 52, 24,
7, 55, 20,
9, 13, 21,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_23_Bg0[669] = INCBIN_U8("data/rooms/brinstar/Brinstar_23_Bg0.gfx");

View File

@ -0,0 +1,38 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_13_Scrolls[SCROLL_DATA_SIZE(2)] = {
24, // Room
2, // Number of scrolls
// Scroll 0
2, 32, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
32, 46, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_24_Clipdata[118] = INCBIN_U8("data/rooms/brinstar/Brinstar_24_Clipdata.gfx");
const u8 sBrinstar_24_Bg2[140] = INCBIN_U8("data/rooms/brinstar/Brinstar_24_Bg2.gfx");
const u8 sBrinstar_24_Bg1[417] = INCBIN_U8("data/rooms/brinstar/Brinstar_24_Bg1.gfx");
const u8 sBrinstar_24_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
6, 34, 17,
6, 35, 17,
6, 36, 17,
6, 37, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_24_Bg0[300] = INCBIN_U8("data/rooms/brinstar/Brinstar_24_Bg0.gfx");

View File

@ -0,0 +1,33 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_14_Scrolls[SCROLL_DATA_SIZE(2)] = {
25, // Room
2, // Number of scrolls
// Scroll 0
2, 17, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
17, 31, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_25_Clipdata[91] = INCBIN_U8("data/rooms/brinstar/Brinstar_25_Clipdata.gfx");
const u8 sBrinstar_25_Bg2[286] = INCBIN_U8("data/rooms/brinstar/Brinstar_25_Bg2.gfx");
const u8 sBrinstar_25_Bg1[247] = INCBIN_U8("data/rooms/brinstar/Brinstar_25_Bg1.gfx");
const u8 sBrinstar_25_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
7, 21, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,26 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_15_Scrolls[SCROLL_DATA_SIZE(1)] = {
26, // Room
1, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
3, // Breakeable block direction
21, // Breakeable block Y bound extension
};
const u8 sBrinstar_26_Clipdata[108] = INCBIN_U8("data/rooms/brinstar/Brinstar_26_Clipdata.gfx");
const u8 sBrinstar_26_Bg2[166] = INCBIN_U8("data/rooms/brinstar/Brinstar_26_Bg2.gfx");
const u8 sBrinstar_26_Bg1[340] = INCBIN_U8("data/rooms/brinstar/Brinstar_26_Bg1.gfx");
const u8 sBrinstar_26_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
9, 9, 19,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_27_Clipdata[52] = INCBIN_U8("data/rooms/brinstar/Brinstar_27_Clipdata.gfx");
const u8 sBrinstar_27_Bg2[156] = INCBIN_U8("data/rooms/brinstar/Brinstar_27_Bg2.gfx");
const u8 sBrinstar_27_Bg1[141] = INCBIN_U8("data/rooms/brinstar/Brinstar_27_Bg1.gfx");
const u8 sBrinstar_27_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
7, 6, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,52 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_28_Clipdata[213] = INCBIN_U8("data/rooms/brinstar/Brinstar_28_Clipdata.gfx");
const u8 sBrinstar_28_Spriteset2[ENEMY_ROOM_DATA_ARRAY_SIZE(13)] = {
3, 83, 23,
3, 85, 23,
3, 87, 23,
3, 88, 23,
3, 89, 23,
5, 58, 18,
6, 18, 17,
6, 72, 18,
8, 20, 18,
9, 56, 18,
10, 28, 22,
10, 81, 19,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_28_Bg2[107] = INCBIN_U8("data/rooms/brinstar/Brinstar_28_Bg2.gfx");
const u8 sBrinstar_28_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(8)] = {
5, 58, 18,
6, 18, 17,
6, 72, 18,
8, 20, 18,
9, 56, 18,
10, 28, 22,
10, 81, 19,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_28_Bg1[746] = INCBIN_U8("data/rooms/brinstar/Brinstar_28_Bg1.gfx");
const u8 sBrinstar_28_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(11)] = {
3, 10, 19,
3, 15, 19,
3, 56, 17,
5, 58, 17,
6, 18, 17,
6, 72, 17,
7, 56, 17,
8, 20, 18,
9, 56, 17,
10, 28, 20,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_28_Bg0[94] = INCBIN_U8("data/rooms/brinstar/Brinstar_28_Bg0.gfx");

View File

@ -0,0 +1,34 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_16_Scrolls[SCROLL_DATA_SIZE(2)] = {
29, // Room
2, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 12, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 16, // X bounds
11, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_29_Clipdata[113] = INCBIN_U8("data/rooms/brinstar/Brinstar_29_Clipdata.gfx");
const u8 sBrinstar_29_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_29_Bg2.gfx");
const u8 sBrinstar_29_Bg1[287] = INCBIN_U8("data/rooms/brinstar/Brinstar_29_Bg1.gfx");
const u8 sBrinstar_29_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(1)] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_29_Bg0[357] = INCBIN_U8("data/rooms/brinstar/Brinstar_29_Bg0.gfx");

View File

@ -0,0 +1,41 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_3_Clipdata[775] = INCBIN_U8("data/rooms/brinstar/Brinstar_3_Clipdata.gfx");
const u8 sBrinstar_3_Bg2[139] = INCBIN_U8("data/rooms/brinstar/Brinstar_3_Bg2.gfx");
const u8 sBrinstar_3_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(13)] = {
11, 11, 18,
14, 9, 18,
18, 10, 19,
28, 15, 19,
36, 12, 19,
44, 11, 18,
76, 5, 19,
78, 7, 18,
86, 9, 18,
98, 8, 18,
104, 3, 19,
115, 8, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_3_Bg1[3530] = INCBIN_U8("data/rooms/brinstar/Brinstar_3_Bg1.gfx");
const u8 sBrinstar_3_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(13)] = {
11, 11, 17,
14, 9, 17,
18, 10, 19,
28, 15, 19,
36, 12, 19,
44, 11, 17,
76, 5, 19,
78, 7, 17,
86, 9, 17,
98, 8, 17,
104, 3, 19,
115, 8, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_30_Clipdata[76] = INCBIN_U8("data/rooms/brinstar/Brinstar_30_Clipdata.gfx");
const u8 sBrinstar_30_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_30_Bg2.gfx");
const u8 sBrinstar_30_Bg1[220] = INCBIN_U8("data/rooms/brinstar/Brinstar_30_Bg1.gfx");
const u8 sBrinstar_30_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
9, 11, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,29 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_17_Scrolls[SCROLL_DATA_SIZE(1)] = {
31, // Room
1, // Number of scrolls
// Scroll 0
2, 16, // X bounds
3, 19, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_31_Clipdata[136] = INCBIN_U8("data/rooms/brinstar/Brinstar_31_Clipdata.gfx");
const u8 sBrinstar_31_Bg2[95] = INCBIN_U8("data/rooms/brinstar/Brinstar_31_Bg2.gfx");
const u8 sBrinstar_31_Bg1[408] = INCBIN_U8("data/rooms/brinstar/Brinstar_31_Bg1.gfx");
const u8 sBrinstar_31_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
10, 10, 17,
15, 7, 17,
17, 8, 17,
17, 10, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_32_Clipdata[54] = INCBIN_U8("data/rooms/brinstar/Brinstar_32_Clipdata.gfx");
const u8 sBrinstar_32_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_32_Bg2.gfx");
const u8 sBrinstar_32_Bg1[190] = INCBIN_U8("data/rooms/brinstar/Brinstar_32_Bg1.gfx");
const u8 sBrinstar_32_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
6, 5, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_33_Clipdata[71] = INCBIN_U8("data/rooms/brinstar/Brinstar_33_Clipdata.gfx");
const u8 sBrinstar_33_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_33_Bg2.gfx");
const u8 sBrinstar_33_Bg1[211] = INCBIN_U8("data/rooms/brinstar/Brinstar_33_Bg1.gfx");
const u8 sBrinstar_33_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
10, 8, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_34_Clipdata[69] = INCBIN_U8("data/rooms/brinstar/Brinstar_34_Clipdata.gfx");
const u8 sBrinstar_34_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_34_Bg2.gfx");
const u8 sBrinstar_34_Bg1[213] = INCBIN_U8("data/rooms/brinstar/Brinstar_34_Bg1.gfx");
const u8 sBrinstar_34_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
10, 10, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,15 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_35_Clipdata[123] = INCBIN_U8("data/rooms/brinstar/Brinstar_35_Clipdata.gfx");
const u8 sBrinstar_35_Bg2[58] = INCBIN_U8("data/rooms/brinstar/Brinstar_35_Bg2.gfx");
const u8 sBrinstar_35_Bg1[482] = INCBIN_U8("data/rooms/brinstar/Brinstar_35_Bg1.gfx");
const u8 sBrinstar_35_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)] = {
5, 7, 18,
5, 9, 18,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_36_Clipdata[70] = INCBIN_U8("data/rooms/brinstar/Brinstar_36_Clipdata.gfx");
const u8 sBrinstar_36_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_36_Bg2.gfx");
const u8 sBrinstar_36_Bg1[215] = INCBIN_U8("data/rooms/brinstar/Brinstar_36_Bg1.gfx");
const u8 sBrinstar_36_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
10, 10, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_37_Clipdata[52] = INCBIN_U8("data/rooms/brinstar/Brinstar_37_Clipdata.gfx");
const u8 sBrinstar_37_Bg2[168] = INCBIN_U8("data/rooms/brinstar/Brinstar_37_Bg2.gfx");
const u8 sBrinstar_37_Bg1[137] = INCBIN_U8("data/rooms/brinstar/Brinstar_37_Bg1.gfx");
const u8 sBrinstar_37_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
9, 12, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,48 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_18_Scrolls[SCROLL_DATA_SIZE(2)] = {
38, // Room
2, // Number of scrolls
// Scroll 0
2, 46, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
2, 16, // X bounds
10, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_38_Clipdata[153] = INCBIN_U8("data/rooms/brinstar/Brinstar_38_Clipdata.gfx");
const u8 sBrinstar_38_Bg2[102] = INCBIN_U8("data/rooms/brinstar/Brinstar_38_Bg2.gfx");
const u8 sBrinstar_38_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(7)] = {
3, 15, 18,
3, 19, 18,
3, 37, 18,
3, 40, 18,
6, 30, 18,
9, 5, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_38_Bg1[578] = INCBIN_U8("data/rooms/brinstar/Brinstar_38_Bg1.gfx");
const u8 sBrinstar_38_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(5)] = {
3, 19, 18,
3, 37, 18,
3, 40, 18,
9, 5, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_38_Bg0[213] = INCBIN_U8("data/rooms/brinstar/Brinstar_38_Bg0.gfx");

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_39_Clipdata[78] = INCBIN_U8("data/rooms/brinstar/Brinstar_39_Clipdata.gfx");
const u8 sBrinstar_39_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_39_Bg2.gfx");
const u8 sBrinstar_39_Bg1[216] = INCBIN_U8("data/rooms/brinstar/Brinstar_39_Bg1.gfx");
const u8 sBrinstar_39_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
10, 9, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,16 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_4_Clipdata[142] = INCBIN_U8("data/rooms/brinstar/Brinstar_4_Clipdata.gfx");
const u8 sBrinstar_4_Bg2[128] = INCBIN_U8("data/rooms/brinstar/Brinstar_4_Bg2.gfx");
const u8 sBrinstar_4_Bg1[544] = INCBIN_U8("data/rooms/brinstar/Brinstar_4_Bg1.gfx");
const u8 sBrinstar_4_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(4)] = {
3, 9, 19,
3, 12, 19,
3, 39, 19,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,15 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_40_Clipdata[93] = INCBIN_U8("data/rooms/brinstar/Brinstar_40_Clipdata.gfx");
const u8 sBrinstar_40_Bg2[14] = INCBIN_U8("data/rooms/brinstar/Brinstar_40_Bg2.gfx");
const u8 sBrinstar_40_Bg1[236] = INCBIN_U8("data/rooms/brinstar/Brinstar_40_Bg1.gfx");
const u8 sBrinstar_40_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)] = {
8, 10, 19,
8, 15, 19,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,51 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_41_Clipdata[214] = INCBIN_U8("data/rooms/brinstar/Brinstar_41_Clipdata.gfx");
const u8 sBrinstar_41_Bg2[100] = INCBIN_U8("data/rooms/brinstar/Brinstar_41_Bg2.gfx");
const u8 sBrinstar_41_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(18)] = {
1, 4, 22,
1, 5, 22,
1, 8, 22,
1, 9, 22,
3, 5, 20,
3, 8, 20,
5, 4, 22,
5, 7, 22,
5, 8, 22,
8, 6, 20,
10, 9, 18,
10, 10, 18,
10, 11, 18,
11, 12, 18,
12, 8, 18,
12, 12, 18,
16, 8, 20,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_41_Bg1[765] = INCBIN_U8("data/rooms/brinstar/Brinstar_41_Bg1.gfx");
const u8 sBrinstar_41_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(17)] = {
1, 4, 22,
1, 5, 22,
1, 9, 22,
3, 5, 20,
3, 8, 20,
5, 4, 22,
5, 7, 22,
5, 8, 22,
8, 6, 20,
10, 9, 18,
10, 10, 17,
10, 11, 18,
11, 12, 17,
12, 8, 18,
12, 12, 18,
16, 8, 20,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_41_Bg0[48] = INCBIN_U8("data/rooms/brinstar/Brinstar_41_Bg0.gfx");

View File

@ -0,0 +1,14 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_5_Clipdata[52] = INCBIN_U8("data/rooms/brinstar/Brinstar_5_Clipdata.gfx");
const u8 sBrinstar_5_Bg2[145] = INCBIN_U8("data/rooms/brinstar/Brinstar_5_Bg2.gfx");
const u8 sBrinstar_5_Bg1[141] = INCBIN_U8("data/rooms/brinstar/Brinstar_5_Bg1.gfx");
const u8 sBrinstar_5_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
7, 6, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,15 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_6_Clipdata[52] = INCBIN_U8("data/rooms/brinstar/Brinstar_6_Clipdata.gfx");
const u8 sBrinstar_6_Bg2[91] = INCBIN_U8("data/rooms/brinstar/Brinstar_6_Bg2.gfx");
const u8 sBrinstar_6_Bg1[188] = INCBIN_U8("data/rooms/brinstar/Brinstar_6_Bg1.gfx");
const u8 sBrinstar_6_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(1)] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_6_Bg0[186] = INCBIN_U8("data/rooms/brinstar/Brinstar_6_Bg0.gfx");

View File

@ -0,0 +1,52 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_7_Clipdata[692] = INCBIN_U8("data/rooms/brinstar/Brinstar_7_Clipdata.gfx");
const u8 sBrinstar_7_Bg2[313] = INCBIN_U8("data/rooms/brinstar/Brinstar_7_Bg2.gfx");
const u8 sBrinstar_7_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(19)] = {
12, 5, 19,
15, 5, 18,
25, 8, 18,
35, 12, 18,
36, 7, 19,
43, 8, 19,
45, 11, 18,
55, 8, 18,
62, 9, 22,
65, 4, 22,
67, 6, 22,
67, 8, 22,
75, 5, 22,
78, 10, 18,
80, 6, 19,
82, 10, 18,
84, 6, 18,
89, 9, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_7_Bg1[1962] = INCBIN_U8("data/rooms/brinstar/Brinstar_7_Bg1.gfx");
const u8 sBrinstar_7_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(18)] = {
6, 10, 22,
6, 12, 22,
9, 5, 19,
12, 5, 19,
15, 5, 18,
25, 8, 18,
35, 12, 18,
36, 7, 19,
43, 8, 19,
45, 11, 17,
55, 8, 17,
67, 6, 22,
78, 10, 17,
80, 6, 19,
82, 10, 17,
84, 6, 18,
89, 9, 17,
ROOM_SPRITE_DATA_TERMINATOR
};

View File

@ -0,0 +1,45 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_3_Scrolls[SCROLL_DATA_SIZE(2)] = {
8, // Room
2, // Number of scrolls
// Scroll 0
2, 16, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
3, // Breakeable block direction
21, // Breakeable block Y bound extension
// Scroll 1
15, 31, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_8_Clipdata[143] = INCBIN_U8("data/rooms/brinstar/Brinstar_8_Clipdata.gfx");
const u8 sBrinstar_8_Bg2[196] = INCBIN_U8("data/rooms/brinstar/Brinstar_8_Bg2.gfx");
const u8 sBrinstar_8_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(6)] = {
6, 25, 19,
6, 28, 19,
7, 16, 19,
9, 9, 17,
9, 15, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_8_Bg1[407] = INCBIN_U8("data/rooms/brinstar/Brinstar_8_Bg1.gfx");
const u8 sBrinstar_8_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(3)] = {
9, 9, 17,
9, 15, 18,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_8_Bg0[205] = INCBIN_U8("data/rooms/brinstar/Brinstar_8_Bg0.gfx");

View File

@ -0,0 +1,39 @@
#include "data/rooms/brinstar_rooms_data.h"
#include "macros.h"
const u8 sBrinstar_4_Scrolls[SCROLL_DATA_SIZE(2)] = {
9, // Room
2, // Number of scrolls
// Scroll 0
2, 76, // X bounds
2, 11, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
// Scroll 1
32, 61, // X bounds
10, 21, // Y bounds
UCHAR_MAX, UCHAR_MAX, // Breakeable block position
UCHAR_MAX, // Breakeable block direction
UCHAR_MAX, // Breakeable block Y bound extension
};
const u8 sBrinstar_9_Clipdata[313] = INCBIN_U8("data/rooms/brinstar/Brinstar_9_Clipdata.gfx");
const u8 sBrinstar_9_Bg2[247] = INCBIN_U8("data/rooms/brinstar/Brinstar_9_Bg2.gfx");
const u8 sBrinstar_9_Spriteset1[ENEMY_ROOM_DATA_ARRAY_SIZE(2)] = {
1, 69, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_9_Bg1[1389] = INCBIN_U8("data/rooms/brinstar/Brinstar_9_Bg1.gfx");
const u8 sBrinstar_9_Spriteset0[ENEMY_ROOM_DATA_ARRAY_SIZE(1)] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sBrinstar_9_Bg0[172] = INCBIN_U8("data/rooms/brinstar/Brinstar_9_Bg0.gfx");

View File

@ -1,75 +1,75 @@
#include "data/rooms/debug_rooms_data.h"
#include "macros.h"
const u8 sTileset0_Gfx[1780] = INCBIN_U8("data/rooms/debug/Tileset0_Tiles.gfx.lz");
const u8 sTileset0_Tilemap[1410] = INCBIN_U8("data/rooms/debug/Tileset0.tm");
const u16 sTileset0_Pal[14 * 16] = INCBIN_U16("data/rooms/debug/Tileset0.pal");
const u8 sTileset_0_Gfx[1780] = INCBIN_U8("data/rooms/debug/Tileset0_Tiles.gfx.lz");
const u8 sTileset_0_Tilemap[1410] = INCBIN_U8("data/rooms/debug/Tileset0.tm");
const u16 sTileset_0_Pal[14 * 16] = INCBIN_U16("data/rooms/debug/Tileset0.pal");
const u8 sDebug0_Clipdata[306] = INCBIN_U8("data/rooms/debug/Debug0_Clipdata.rle");
const u8 sDebug0_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug0_Bg2.rle");
const u8 sDebug0_Bg1[369] = INCBIN_U8("data/rooms/debug/Debug0_Bg1.rle");
const u8 sDebug_0_Clipdata[306] = INCBIN_U8("data/rooms/debug/Debug0_Clipdata.rle");
const u8 sDebug_0_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug0_Bg2.rle");
const u8 sDebug_0_Bg1[369] = INCBIN_U8("data/rooms/debug/Debug0_Bg1.rle");
const u8 sDebug1_Clipdata[446] = INCBIN_U8("data/rooms/debug/Debug1_Clipdata.rle");
const u8 sDebug1_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug1_Bg2.rle");
const u8 sDebug1_Bg1[485] = INCBIN_U8("data/rooms/debug/Debug1_Bg1.rle");
const u8 sDebug_1_Clipdata[446] = INCBIN_U8("data/rooms/debug/Debug1_Clipdata.rle");
const u8 sDebug_1_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug1_Bg2.rle");
const u8 sDebug_1_Bg1[485] = INCBIN_U8("data/rooms/debug/Debug1_Bg1.rle");
const u8 sDebug2_Clipdata[280] = INCBIN_U8("data/rooms/debug/Debug2_Clipdata.rle");
const u8 sDebug2_Bg2[116] = INCBIN_U8("data/rooms/debug/Debug2_Bg2.rle");
const u8 sDebug2_Bg1[209] = INCBIN_U8("data/rooms/debug/Debug2_Bg1.rle");
const u8 sDebug_2_Clipdata[280] = INCBIN_U8("data/rooms/debug/Debug2_Clipdata.rle");
const u8 sDebug_2_Bg2[116] = INCBIN_U8("data/rooms/debug/Debug2_Bg2.rle");
const u8 sDebug_2_Bg1[209] = INCBIN_U8("data/rooms/debug/Debug2_Bg1.rle");
const u8 sDebug3_Clipdata[156] = INCBIN_U8("data/rooms/debug/Debug3_Clipdata.rle");
const u8 sDebug3_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug3_Bg2.rle");
const u8 sDebug3_Bg1[159] = INCBIN_U8("data/rooms/debug/Debug3_Bg1.rle");
const u8 sDebug_3_Clipdata[156] = INCBIN_U8("data/rooms/debug/Debug3_Clipdata.rle");
const u8 sDebug_3_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug3_Bg2.rle");
const u8 sDebug_3_Bg1[159] = INCBIN_U8("data/rooms/debug/Debug3_Bg1.rle");
const u8 sDebug4_Clipdata[314] = INCBIN_U8("data/rooms/debug/Debug4_Clipdata.rle");
const u8 sDebug4_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug4_Bg2.rle");
const u8 sDebug4_Bg1[330] = INCBIN_U8("data/rooms/debug/Debug4_Bg1.rle");
const u8 sDebug_4_Clipdata[314] = INCBIN_U8("data/rooms/debug/Debug4_Clipdata.rle");
const u8 sDebug_4_Bg2[14] = INCBIN_U8("data/rooms/debug/Debug4_Bg2.rle");
const u8 sDebug_4_Bg1[330] = INCBIN_U8("data/rooms/debug/Debug4_Bg1.rle");
const u8 sDebug0_SpriteData[2 * 3] = {
const u8 sDebug_0_SpriteData[2 * 3] = {
20, 9, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug1_SpriteData[3 * 3] = {
const u8 sDebug_1_SpriteData[3 * 3] = {
45, 30, 18,
45, 31, 19,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug2_SpriteData[2 * 3] = {
const u8 sDebug_2_SpriteData[2 * 3] = {
10, 10, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug3_SpriteData[2 * 3] = {
const u8 sDebug_3_SpriteData[2 * 3] = {
10, 10, 17,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug4_SpriteData[1 * 3] = {
const u8 sDebug_4_SpriteData[1 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug5_SpriteData[2 * 3] = {
const u8 sDebug_5_SpriteData[2 * 3] = {
4, 10, 33,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug6_SpriteData[1 * 3] = {
const u8 sDebug_6_SpriteData[1 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug7_SpriteData[1 * 3] = {
const u8 sDebug_7_SpriteData[1 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug8_SpriteData[2 * 3] = {
const u8 sDebug_8_SpriteData[2 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR,
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug9_SpriteData[7 * 3] = {
const u8 sDebug_9_SpriteData[7 * 3] = {
3, 14, 18,
8, 12, 20,
8, 15, 19,
@ -79,15 +79,15 @@ const u8 sDebug9_SpriteData[7 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug10_SpriteData[1 * 3] = {
const u8 sDebug_10_SpriteData[1 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug11_SpriteData[1 * 3] = {
const u8 sDebug_11_SpriteData[1 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR
};
const u8 sDebug12_SpriteData[3 * 3] = {
const u8 sDebug_12_SpriteData[3 * 3] = {
ROOM_SPRITE_DATA_TERMINATOR,
ROOM_SPRITE_DATA_TERMINATOR,
0, 0, 0 // End of file alignment?

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ const u8 sTileset_42_Tilemap[1796] = INCBIN_U8("data/tilesets/42.tm");
const u8 sTileset_78_Tilemap[1796] = INCBIN_U8("data/tilesets/78.tm");
const u8 sTileset_27_Tilemap[1796] = INCBIN_U8("data/tilesets/27.tm");
const u8 sBrinstar_6_Bg3[988] = INCBIN_U8("data/rooms/brinstar/6_Bg3.rle");
const u8 sMapRoom_Bg3[988] = INCBIN_U8("data/rooms/brinstar/map_room.rle");
const u8 sChozodia_5_Bg3[988] = INCBIN_U8("data/rooms/chozodia/5_Bg3.rle");
const u8 sWater_Bg0[548] = INCBIN_U8("data/rooms/Water_Bg0.rle");
@ -56,5 +56,3 @@ const u8 sTileset_4_Tilemap[2436] = INCBIN_U8("data/tilesets/4.tm");
const u8 sTileset_65_Tilemap[2820] = INCBIN_U8("data/tilesets/65.tm");
const u8 sTileset_18_Tilemap[2436] = INCBIN_U8("data/tilesets/18.tm");
const u8 sTileset_20_Tilemap[2436] = INCBIN_U8("data/tilesets/20.tm");
const u8 sTempArray_60c630[0x143284] = INCBIN_U8("data/Blob_60c630_74f8b4.bin");

View File

@ -311,8 +311,8 @@ void RoomLoadBackgrounds(void)
entry = sAreaRoomEntryPointers[gCurrentArea][gCurrentRoom];
// Load BG3, always LZ77
gCurrentRoomEntry.Bg3Size = *entry.pBG3Data;
src = entry.pBG3Data + 4;
gCurrentRoomEntry.Bg3Size = *entry.pBg3Data;
src = entry.pBg3Data + 4;
CallLZ77UncompVram(src, gDecompBg3Map);
if (gPauseScreenFlag == 0)
@ -323,7 +323,7 @@ void RoomLoadBackgrounds(void)
// Load BG0, either RLE or LZ77
if (gCurrentRoomEntry.Bg0Prop & BG_PROP_RLE_COMPRESSED)
{
src = entry.pBG0Data;
src = entry.pBg0Data;
gBgPointersAndDimensions.backgrounds[0].pDecomp = gDecompBg0Map;
gBgPointersAndDimensions.backgrounds[0].width = *src++;
gBgPointersAndDimensions.backgrounds[0].height = *src++;
@ -331,7 +331,7 @@ void RoomLoadBackgrounds(void)
}
else if (gCurrentRoomEntry.Bg0Prop & BG_PROP_LZ77_COMPRESSED)
{
src = entry.pBG0Data;
src = entry.pBg0Data;
gCurrentRoomEntry.Bg0Size = *src;
src += 4;
@ -346,7 +346,7 @@ void RoomLoadBackgrounds(void)
RoomRleDecompress(TRUE, src, (u8*)gDecompClipdataMap);
// Load BG1, assume RLE
src = entry.pBG1Data;
src = entry.pBg1Data;
gBgPointersAndDimensions.backgrounds[1].pDecomp = gDecompBg1Map;
gBgPointersAndDimensions.backgrounds[1].width = *src++;
gBgPointersAndDimensions.backgrounds[1].height = *src++;
@ -355,7 +355,7 @@ void RoomLoadBackgrounds(void)
// Load BG2, force RLE
if (gCurrentRoomEntry.Bg2Prop & BG_PROP_RLE_COMPRESSED)
{
src = entry.pBG2Data;
src = entry.pBg2Data;
gBgPointersAndDimensions.backgrounds[2].pDecomp = gDecompBg2Map;
gBgPointersAndDimensions.backgrounds[2].width = *src++;
gBgPointersAndDimensions.backgrounds[2].height = *src++;

210
tools/roomExtractor.py Normal file
View File

@ -0,0 +1,210 @@
from io import BufferedReader
import os
file: BufferedReader = open("../mzm_us_baserom.gba", "rb")
header: BufferedReader = open("../include/data/rooms/brinstar_rooms_data.h", "r")
def ExtractScroll(f: BufferedReader, size: int):
result: str = "\t"
result += str(int.from_bytes(f.read(1), "little"))
result += ", // Room\n\t"
s: int = int.from_bytes(f.read(1), "little")
if s != size:
raise Exception("Scroll size isn't valid at " + hex(f.tell()))
result += str(s)
result += ", // Number of scrolls\n\t"
for x in range(0, s):
result += "\n\t// Scroll " + str(x)+ "\n\t"
result += str(int.from_bytes(f.read(1), "little")) + ", " + str(int.from_bytes(f.read(1), "little")) + ", // X bounds\n\t"
result += str(int.from_bytes(f.read(1), "little")) + ", " + str(int.from_bytes(f.read(1), "little")) + ", // Y bounds\n\t"
b: int = int.from_bytes(f.read(1), "little")
if b == 255:
result += "UCHAR_MAX, UCHAR_MAX, // Breakeable block position\n\t"
file.read(1)
else:
result += str(b) + ", " + str(int.from_bytes(f.read(1), "little")) + ", // Breakeable block position\n\t"
b = int.from_bytes(f.read(1), "little")
if b == 255:
result += "UCHAR_MAX, // Breakeable block direction\n\t"
result += "UCHAR_MAX, // Breakeable block Y bound extension\n"
file.read(1)
else:
result += str(b) + ", // Breakeable block direction\n\t"
result += str(int.from_bytes(f.read(1), "little")) + ", // Breakeable block Y bound extension\n"
return result
def ExtractSpriteData(f: BufferedReader, size: int):
result = "\t"
for x in range(0, size - 1):
result += str(int.from_bytes(f.read(1), "little")) + ", " + str(int.from_bytes(f.read(1), "little")) + ", " + str(int.from_bytes(f.read(1), "little")) + ",\n\t"
f.read(3)
result += "ROOM_SPRITE_DATA_TERMINATOR\n"
return result
def Align(f: BufferedReader):
addr: int = f.tell()
# print("Align from : " + hex(addr))
while addr % 4 != 0:
f.read(1)
addr += 1
def Func():
addr = 0x60c630
currentRoom: int = 0
prevIsScroll: bool = False
cFileName: str = "Brinstar_" + str(currentRoom) + ".c"
if os.path.exists(cFileName):
os.remove(cFileName)
f = open(cFileName, "w")
f.write('#include "data/rooms/brinstar_rooms_data.h"\n#include "macros.h"\n\n')
file.seek(addr)
result: str = ""
line: str = header.readline()
while line != '':
actualRoom: int = currentRoom
if line.find("extern") != -1:
if line.find("Bg3") == -1:
actualRoom = int(line.split("_")[1])
if line.find("SCROLL_DATA_SIZE") != -1:
prevIsScroll = True
if currentRoom != actualRoom:
if not f.closed:
print("Closing file " + f.name)
f.write(result)
f.close()
result = ""
Align(file)
print("")
if not prevIsScroll:
currentRoom = actualRoom
cFileName = "Brinstar_" + str(currentRoom) + ".c"
if os.path.exists(cFileName):
os.remove(cFileName)
f = open(cFileName, "w")
f.write('#include "data/rooms/brinstar_rooms_data.h"\n#include "macros.h"\n\n')
prevIsScroll = False
if line.find("SCROLL_DATA_SIZE") != -1:
prevIsScroll = True
print(hex(file.tell()))
splitted = line.split("[SCROLL_DATA_SIZE(")
size: str = splitted[1].split(")")[0]
result += line.replace("extern ", "").replace(";\n", "").__add__(' = {\n')
parsed: str = ExtractScroll(file, int(size))
result += parsed + "};\n\n"
elif line.find("ENEMY_ROOM_DATA_ARRAY_SIZE") != -1:
splitted = line.split("[ENEMY_ROOM_DATA_ARRAY_SIZE(")
size: str = splitted[1].split(")")[0]
result += line.replace("extern ", "").replace(";\n", "").__add__(' = {\n')
parsed: str = ExtractSpriteData(file, int(size))
result += parsed + "};\n\n"
elif line.find("Bg3") != -1:
splitted = line.split("[")
size = int(splitted[1].split("]")[0])
name = splitted[0].split("u8 s")[1]
addr = file.tell()
#print(name)
folderName: str = "rooms/brinstar/"
name = name.replace("extern ", "", 1)
name = name.__add__(".gfx")
fileName: str = folderName.__add__(name)
result += line.replace("extern ", "").replace(";\n", "").__add__(' = INCBIN_U8("data/').__add__(fileName).__add__('");\n\n')
dbEntry: str = fileName.__add__(";").__add__(str(size)).__add__(";").__add__(hex(addr)).__add__(";1")
# print()
print(dbEntry)
# print("Before : " + hex(addr))
addr += size
file.seek(addr)
# print("After : " + hex(addr))
#print(size)
elif line.find("_Clipdata") != -1 or line.find("_Bg") != -1:
splitted = line.split("[")
size = int(splitted[1].split("]")[0])
name = splitted[0].split("u8 s")[1]
addr = file.tell()
#print(name)
folderName: str = "rooms/brinstar/"
name = name.replace("extern ", "", 1)
name = name.__add__(".gfx")
fileName: str = folderName.__add__(name)
result += line.replace("extern ", "").replace(";\n", "").__add__(' = INCBIN_U8("data/').__add__(fileName).__add__('");\n\n')
dbEntry: str = fileName.__add__(";").__add__(str(size)).__add__(";").__add__(hex(addr)).__add__(";1")
# print()
print(dbEntry)
# print("Before : " + hex(addr))
addr += size
file.seek(addr)
# print("After : " + hex(addr))
#print(size)
line = header.readline()
f.write(result)
Func()