[nostalgia/core] Make setSprite use word size

This commit is contained in:
Gary Talent 2020-07-13 02:21:16 -05:00
parent 7e565a3162
commit 408d4c8fa1
3 changed files with 4 additions and 4 deletions

View File

@ -201,13 +201,13 @@ void setTile(Context*, int layer, int column, int row, uint8_t tile) {
MEM_BG_MAP[layer][row * GbaTileColumns + column] = tile; MEM_BG_MAP[layer][row * GbaTileColumns + column] = tile;
} }
void setSprite(uint8_t idx, uint8_t x, uint8_t y, uint8_t tileIdx) { void setSprite(unsigned idx, unsigned x, unsigned y, unsigned tileIdx) {
// block until g_spriteUpdates is less than buffer len // block until g_spriteUpdates is less than buffer len
while (g_spriteUpdates >= config::GbaSpriteBufferLen); while (g_spriteUpdates >= config::GbaSpriteBufferLen);
GbaSpriteAttrUpdate oa; GbaSpriteAttrUpdate oa;
oa.attr0 = static_cast<uint16_t>(y & ox::onMask<uint8_t>(7)) oa.attr0 = static_cast<uint16_t>(y & ox::onMask<uint8_t>(7))
| (static_cast<uint16_t>(1) << 10); // enable alpha | (static_cast<uint16_t>(1) << 10); // enable alpha
oa.attr1 = static_cast<uint16_t>(x); oa.attr1 = static_cast<uint16_t>(x) & ox::onMask<uint8_t>(8);
oa.attr2 = static_cast<uint16_t>(tileIdx & ox::onMask<uint16_t>(8)); oa.attr2 = static_cast<uint16_t>(tileIdx & ox::onMask<uint16_t>(8));
oa.idx = idx; oa.idx = idx;
REG_IE &= ~Int_vblank; // disable vblank interrupt handler REG_IE &= ~Int_vblank; // disable vblank interrupt handler

View File

@ -125,6 +125,6 @@ void puts(Context *ctx, int column, int row, const char *str);
void setTile(Context *ctx, int layer, int column, int row, uint8_t tile); void setTile(Context *ctx, int layer, int column, int row, uint8_t tile);
void setSprite(uint8_t idx, uint8_t x, uint8_t y, uint8_t tileIdx); void setSprite(unsigned idx, unsigned x, unsigned y, unsigned tileIdx);
} }

View File

@ -200,7 +200,7 @@ void setTile(Context *ctx, int layer, int column, int row, uint8_t tile) {
id->bgTileMaps[z][y][x] = tile; id->bgTileMaps[z][y][x] = tile;
} }
void setSprite(uint8_t, uint8_t, uint8_t, uint8_t) { void setSprite(unsigned, unsigned, unsigned, unsigned) {
} }
} }