extract collect rings assets

This commit is contained in:
Oliver Bell committed 2024-04-19 17:00:33 +01:00
1 parent 0e92bf9b1d
commit 68470e2920
14 files changed
+57 -47

No files matched your search

+17 -27
View File
@@ -1,46 +1,36 @@
.section .rodata
.align 2
;@ collect_rings tilemaps
.global gCollectRingsTilemaps
gCollectRingsTilemaps:
.incbin "baserom.gba", 0x00C88408, 0x8000
// it also includes some of the end of the tile maps (I think?)
;@ obj_vram
.global gCollectRingsTextTiles
gCollectRingsTextTiles:
.incbin "multi_boot/roms/collect_rings/graphics/obj_tiles/4bpp/text.4bpp" ;@ This is potentially 0x1B10 instead of 0x1E00
;@ if the above is 0x1B10 then the below would be:
;@ 0x8C91f18 -> 0x8C92208 = 0x2f0 potentially some pointers/rodata, not sure
.incbin "multi_boot/collect_rings_assets/tilemaps.bin"
;@ bg map tileset
.global gCollectRingsBgStageTileset
gCollectRingsBgStageTileset:
.incbin "multi_boot/roms/collect_rings/data/tilemaps/stage_tiles.4bpp"
.incbin "multi_boot/collect_rings_assets/maps/stage_tiles.4bpp" ;@ CollectRingsTilemaps + 0x9E00
;@ these might all include the animation scripts
;@ compressed obj tiles
.global gCollectRingsAnimationTiles_Compressed
gCollectRingsAnimationTiles_Compressed:
.incbin "multi_boot/roms/collect_rings/graphics/obj_tiles/4bpp/animations.4bpp.lz"
;@ compressed obj tiles (unused) possibly because they are not needed
;@ when the player with the PAK is always sonic so already has these animations
.global gCollectRingsAnimations_Unused_Compressed
gCollectRingsAnimations_Unused_Compressed:
.incbin "multi_boot/collect_rings_assets/animations_sonic.bin.lz"
;@ compressed obj tiles
.global gCollectRings_ObjTiles_1
gCollectRings_ObjTiles_1:
.incbin "baserom.gba", 0x00CA6760, 0x6A7C
.global gCollectRingsAnimations_Cream_Compressed
gCollectRingsAnimations_Cream_Compressed:
.incbin "multi_boot/collect_rings_assets/animations_cream.bin.lz"
;@ compressed obj tiles
.global gCollectRings_ObjTiles_2
gCollectRings_ObjTiles_2:
.incbin "baserom.gba", 0x00CAD1DC, 0x6fe4
.global gCollectRingsAnimations_Tails_Compressed
gCollectRingsAnimations_Tails_Compressed:
.incbin "multi_boot/collect_rings_assets/animations_tails.bin.lz"
;@ compressed obj tiles
.global gCollectRings_ObjTiles_3
gCollectRings_ObjTiles_3:
.incbin "baserom.gba", 0x00CB41C0, 0x6a44
.global gCollectRingsAnimations_Knuckles_Compressed
gCollectRingsAnimations_Knuckles_Compressed:
.incbin "multi_boot/collect_rings_assets/animations_knuckles.bin.lz"
.global gCollectRingsRom_Compressed
gCollectRingsRom_Compressed:
+4 -4
View File
@@ -3,15 +3,15 @@
#include "global.h"
extern const u8 gCollectRingsTilemaps[0x8000];
extern const u8 gCollectRingsTilemaps[0xC000];
extern const u8 gCollectRingsTextTiles[];
extern const u8 gCollectRingsBgStageTileset[];
extern const u8 gCollectRings_ObjTiles_1[0x6A7C];
extern const u8 gCollectRings_ObjTiles_2[0x6fe4];
extern const u8 gCollectRings_ObjTiles_3[0x6a44];
extern const u8 gCollectRingsAnimations_Cream_Compressed[0x6A7C];
extern const u8 gCollectRingsAnimations_Tails_Compressed[0x6fe4];
extern const u8 gCollectRingsAnimations_Knuckles_Compressed[0x6a44];
extern const u8 gCollectRingsRom_Compressed[];
@@ -0,0 +1,3 @@
# Collect rings assets
This folder will contain the configuration to build the asset payloads used by the collect rings games
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+12 -9
View File
@@ -112,14 +112,17 @@ void AgbMain()
}
}
#define SEGMENT_ROM_FINAL 2
#define SEGMENT_BG_TILESET 3
#define SEGMENT_ROM_CODE_1 0
#define SEGMENT_ROM_CODE_2 1
#define SEGMENT_ROM_CODE_3 2
#define SEGMENT_TILEMAPS_3 3
#define SEGMENT_COMPRESSED_SPRITE_OBJ_TILES_1 4
#define SEGMENT_COMPRESSED_SPRITE_OBJ_TILES_2 5
#define SEGMENT_COMPRESSED_SPRITE_OBJ_TILES_3 6
#define SEGMENT_TEXT_OBJ_TILES 7
#define SEGMENT_TILEMAPS 8
#define SEGMENT_TILEMAPS_2 7
#define SEGMENT_TILEMAPS_1 8
static u16 sub_0203b2f0(u16 state, Loader *loader)
{
@@ -136,11 +139,11 @@ static u16 sub_0203b2f0(u16 state, Loader *loader)
} else {
state = 2;
switch (loader->segment) {
case SEGMENT_ROM_FINAL:
// When rom has been received, copy into EWRAM
case SEGMENT_ROM_CODE_3:
// When ROM Code has been received, copy into EWRAM
LZ77UnCompWram(PROGRAM_WORK_BUFFER, (void *)EWRAM_START);
break;
case SEGMENT_BG_TILESET:
case SEGMENT_TILEMAPS_3:
// When the BG tileset received, copy into BG VRAM
CpuCopy16(PROGRAM_WORK_BUFFER, (void *)BG_VRAM, SIO32ML_BLOCK_SIZE);
break;
@@ -153,14 +156,14 @@ static u16 sub_0203b2f0(u16 state, Loader *loader)
LZ77UnCompWram(RECV_BUFFER, PROGRAM_WORK_BUFFER);
}
break;
case SEGMENT_TEXT_OBJ_TILES:
case SEGMENT_TILEMAPS_2:
// When the text obj tiles recieved, copy into obj vram
CpuCopy16(RECV_BUFFER, (void *)OBJ_VRAM0, 0x5000);
break;
#if 0 // The tilemaps are left in the RECV_BUFFER so the case is ignored
case SEGMENT_TILEMAPS:
case SEGMENT_TILEMAPS_1:
break;
#endif
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

+13
View File
@@ -0,0 +1,13 @@
import os
import sys
address = int(sys.argv[1], 16)
length = int(sys.argv[2], 16)
with open('baserom.gba', 'rb') as rom:
rom.seek(address)
base_name = str(hex(0x8000000 + address).upper())[2:]
name = base_name+ ".bin.lz"
with open(name, "wb") as bin:
bin.write(rom.read(length))
os.system(f"tools/gbagfx/gbagfx {name} {base_name}.bin")
+8 -7
View File
@@ -61,21 +61,22 @@ void *const gCollectRingsSegments[9] = {
// Tileset for level
&gCollectRingsBgStageTileset,
// character sprites
// Animations for each client
// cream
&gCollectRings_ObjTiles_1,
&gCollectRingsAnimations_Cream_Compressed,
// tails
&gCollectRings_ObjTiles_2,
&gCollectRingsAnimations_Tails_Compressed,
// knuckles
&gCollectRings_ObjTiles_3,
&gCollectRingsAnimations_Knuckles_Compressed,
// tile maps
&gCollectRingsTextTiles,
// tile maps copied directly into OBJ_VRAM0
(void *)gCollectRingsTilemaps + (SIO32ML_BLOCK_SIZE * 1),
// tile map pointers
&gCollectRingsTilemaps,
(void *)gCollectRingsTilemaps + (SIO32ML_BLOCK_SIZE * 0),
};
static const u16 gUnknown_080E018C[7][3] = {