Skip to content

Commit

Permalink
Forgot to disable interrupts when loading sheets, Balcony cage bars
Browse files Browse the repository at this point in the history
  • Loading branch information
andwn committed Feb 26, 2017
1 parent c42b91c commit 612ad6d
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 9 deletions.
2 changes: 1 addition & 1 deletion inc/sheet.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ enum {
SHEET_SISHEAD, SHEET_BUYOB, SHEET_BUYO, SHEET_HOPPY, SHEET_ACID, SHEET_NIGHTSHOT,
SHEET_GUNFSHOT,SHEET_MIDO, SHEET_PRESS, SHEET_STUMPY, SHEET_CORES1, SHEET_CORES3,
SHEET_CORES4, SHEET_REDDOT, SHEET_MIMI, SHEET_DOCSHOT,SHEET_RING, SHEET_SHOCK,
SHEET_FIRE, SHEET_MAPI, SHEET_MUCORE, SHEET_MUCORE2,SHEET_MUCORE3,
SHEET_FIRE, SHEET_MAPI, SHEET_MUCORE, SHEET_MUCORE2,SHEET_MUCORE3,SHEET_CAGE,
};

u8 sheet_num;
Expand Down
1 change: 1 addition & 0 deletions res/resources.res
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ SPRITE SPR_MUCoreBottom "sprite/ucoreminit.png" 4 1 0 0 NONE
SPRITE SPR_MUCoreEnd "sprite/ucoreminie.png" 2 1 0 0 NONE
SPRITE SPR_UCoreMouth "sprite/ucoremouth.png" 7 4 0 0 NONE
SPRITE SPR_JailBars2 "sprite/jailbars2.png" 8 4 0 0 NONE
SPRITE SPR_JailBars3 "sprite/cage2.png" 4 4 0 0 NONE

# Use PAL_Regu
SPRITE SPR_Kazuma "sprite/kazuma.png" 2 3 0 0 NONE
Expand Down
Binary file added res/sprite/cage2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions src/ai/cent.c
Original file line number Diff line number Diff line change
Expand Up @@ -911,4 +911,22 @@ void onspawn_jailbars(Entity *e) {
void onspawn_cent_cage(Entity *e) {
e->x += 8 << CSF;
e->y += 16 << CSF;
// When reused in Balcony, things are a bit different
if(stageID == 65) {
e->x += 8 << CSF;
// Release the allocation
TILOC_FREE(e->tiloc, e->framesize);
e->tiloc = NOTILOC;
// Set sheet to the smaller cage bars
e->sprite_count = 1;
SHEET_FIND(e->sheet, SHEET_CAGE);
e->vramindex = sheets[e->sheet].index;
e->framesize = 16;
e->sprite[0] = (VDPSprite) {
.size = SPRITE_SIZE(4, 4),
.attribut = TILE_ATTR_FULL(PAL2,0,0,0,e->vramindex)
};
// And never deactivate
e->alwaysActive = TRUE;
}
}
2 changes: 1 addition & 1 deletion src/db/npc.c
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ const npc_info_def npc_info[NPC_COUNT + 9 + 14 + 4] = {
{ &SPR_Gunfish, NOSHEET, PAL0, 1, &ai_null, &ai_gunfish, &ondeath_default }, // Gunfish
{ NULL, SHEET_GUNFSHOT, PAL0, 1, &onspawn_persistent, &ai_gunfish_shot, &ai_null }, // Gunfish Projectile
{ NULL, SHEET_PRESS, PAL1, 1, &ai_null, &ai_proximity_press_hoz, &ondeath_default }, // Lethal Press
{ &SPR_JailBars2, NOSHEET, PAL2, 2, &onspawn_cent_cage, &ai_null, &ai_null }, // Cage Bars
{ &SPR_JailBars2,NOSHEET,PAL2,2, &onspawn_cent_cage, &ai_null, &ai_null }, // Cage Bars
/* 0x0F0 (240) */
{ &SPR_JailedMimi,NOSHEET,PAL3,1, &ai_null, &ai_mimiga_caged, &ai_null }, // Jailed Mimiga
{ NULL, SHEET_CRITTER, PAL3, 1, &onspawn_snap, &ai_critter, &ondeath_default }, // Red Critter
Expand Down
8 changes: 4 additions & 4 deletions src/db/stage.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ const stage_info_def stage_info[STAGE_COUNT] = {
{ PXM_e_Sky, PXE_e_Sky, TSC_e_Sky, &PAL_Regu, 8, 0, "Credits" },
{ PXM_Prefa2, PXE_Prefa2, TSC_Prefa2, &PAL_Regu, 16, 0, "Prefab House" },
/* 0x50 (80) */
{ PXM_Hell1, PXE_Hell1, TSC_Hell1, &PAL_Regu, 10, 0, "Sacred Ground B1" },
{ PXM_Hell2, PXE_Hell2, TSC_Hell2, &PAL_Regu, 10, 0, "Sacred Ground B2" },
{ PXM_Hell3, PXE_Hell3, TSC_Hell3, &PAL_Regu, 10, 0, "Sacred Ground B3" },
{ PXM_Hell1, PXE_Hell1, TSC_Hell1, &PAL_Regu, 10, 10, "Sacred Ground B1" },
{ PXM_Hell2, PXE_Hell2, TSC_Hell2, &PAL_Regu, 10, 10, "Sacred Ground B2" },
{ PXM_Hell3, PXE_Hell3, TSC_Hell3, &PAL_Regu, 10, 10, "Sacred Ground B3" },
{ PXM_Mapi, PXE_Mapi, TSC_Mapi, &PAL_Mapi, 3, 0, "Storage" },
{ PXM_Hell4, PXE_Hell4, TSC_Hell4, &PAL_Regu, 10, 0, "Passage?" },
{ PXM_Hell42, PXE_Hell42, TSC_Hell42, &PAL_Regu, 10, 0, "Passage?" },
Expand All @@ -101,5 +101,5 @@ const stage_info_def stage_info[STAGE_COUNT] = {
{ PXM_Island, PXE_Island, TSC_Island, &PAL_Regu, 21, 0, "" },
{ PXM_Ballo2, PXE_Ballo2, TSC_Ballo2, &PAL_Regu, 10, 14, "Seal Chamber" },
{ PXM_e_Blcn, PXE_e_Blcn, TSC_e_Blcn, &PAL_Regu, 21, 0, "Credits" },
{ PXM_Clock, PXE_Clock, TSC_Clock, &PAL_Regu, 15, 0, "Clock" },
{ PXM_Clock, PXE_Clock, TSC_Clock, &PAL_Regu, 15, 7, "Clock" },
};
3 changes: 2 additions & 1 deletion src/sheet.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ void sheets_load_stage(u16 sid, u8 init_base, u8 init_tiloc) {
SHEET_ADD(SHEET_REDDOT, &SPR_RedDot, 2,1,1, 0,0, 0,1);
SHEET_ADD(SHEET_MIMI, &SPR_ShovelMimi, 2,2,2, 0,0, 0,1);
SHEET_ADD(SHEET_DOCSHOT, &SPR_DocShot, 4,2,2, 0,0, 0,1, 0,2, 0,3);
SHEET_ADD(SHEET_CAGE, &SPR_JailBars3, 1,4,4, 0,0);
} break;
case 0x44: // Black Space
{ SHEET_ADD(SHEET_BAT, &SPR_MizaBat, 3,2,2, 0,0, 0,1, 0,2);
Expand All @@ -359,11 +360,11 @@ void sheets_load_stage(u16 sid, u8 init_base, u8 init_tiloc) {
} break;
case 0x52: // Sacred Ground B3
{ SHEET_ADD(SHEET_TRAP, &SPR_Trap, 1,4,3, 0,0);
SHEET_ADD(SHEET_PRESS, &SPR_Press, 3,2,3, 0,0, 0,1, 0,2);
// Bute
// Mesa
// Rolling
// Delete
// Press
} break;
case 0x53: // Ma Pignon
{ SHEET_ADD(SHEET_MAPI, &SPR_MaPignon, 12,2,2,
Expand Down
5 changes: 3 additions & 2 deletions src/stage.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,11 @@ void stage_load(u16 id) {
stageTileset = stage_info[id].tileset;
stage_load_tileset();
}
VDP_waitVSync();
SYS_disableInts();
// Load sprite sheets
sheets_load_stage(id, FALSE, TRUE);
// Stage palette and shared NPC palette
SYS_disableInts();
if(stageID == 0x30) {
VDP_setCachedPalette(PAL2, PAL_RiverAlt.data); // For Waterway green background
} else {
Expand Down Expand Up @@ -339,7 +340,7 @@ void stage_draw_screen() {
}
x++;
}
DMA_doDma(DMA_VRAM, (u32)maprow, VDP_getAPlanAddress() + (y%32)*64*2, 64, 2);
DMA_doDma(DMA_VRAM, (u32)maprow, VDP_getAPlanAddress() + (y%32)*0x80, 64, 2);
}
y++;
}
Expand Down

0 comments on commit 612ad6d

Please sign in to comment.