Make burn smoke texture fix optional

This commit is contained in:
Arceveti
2021-09-22 17:40:55 -07:00
parent 3a5d392b92
commit d2c1564eed
2 changed files with 13 additions and 3 deletions

View File

@@ -8,9 +8,9 @@ static const Vtx burn_smoke_seg4_vertex_040217C0[] = {
{{{ -50, 50, 0}, 0, { 0, 0}, {0x14, 0x0a, 0x0a, 0xff}}},
};
// //! Wrong texture format. Called as rgba16, which makes the burn smoke appear
// as a transparent black burn smoke. Probably meant to show up as white-ish
// burn smoke, but mistakened for being intended as black smoke.
// Wrong texture format. Called as rgba16, which makes the burn smoke appear
// as a transparent black burn smoke. Probably meant to show up as white-ish
// burn smoke, but mistakened for being intended as black smoke.
// 0x04021800
ALIGNED8 static const Texture burn_smoke_seg4_texture_04021800[] = {
#include "actors/burn_smoke/burn_smoke.ia16.inc.c"
@@ -19,7 +19,11 @@ ALIGNED8 static const Texture burn_smoke_seg4_texture_04021800[] = {
// 0x04022000 - 0x04022028
const Gfx burn_smoke_seg4_dl_04022000[] = {
gsDPPipeSync(),
#ifdef BURN_SMOKE_FIX
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
#else
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
#endif
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
@@ -44,7 +48,11 @@ const Gfx burn_smoke_seg4_dl_04022048[] = {
// 0x04022070 - 0x040220C8
const Gfx burn_smoke_seg4_dl_04022070[] = {
gsSPDisplayList(burn_smoke_seg4_dl_04022000),
#ifdef BURN_SMOKE_FIX
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
#else
gsDPLoadTextureBlock(burn_smoke_seg4_texture_04021800, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
#endif
gsSPDisplayList(burn_smoke_seg4_dl_04022028),
gsSPDisplayList(burn_smoke_seg4_dl_04022048),
gsSPEndDisplayList(),

View File

@@ -108,6 +108,8 @@
//#define PUPPYCAM
// Allows Mario's shadow to be transparent on top of transparent surfaces, such as water, lava, and ice
#define FIX_SHADOW_TRANSPARENCY
// Fixes the game reading the ia8 burn smoke texture as an rgba16
#define BURN_SMOKE_FIX
// Automatically calculate the optimal collision distance for an object based on its vertices.
#define AUTO_COLLISION_DISTANCE