Render cards in standard manner

This commit is contained in:
2022-05-08 21:56:32 -07:00
parent 1a57ab1e26
commit 0530c60da8
4 changed files with 71 additions and 15 deletions

View File

@@ -20,7 +20,9 @@ void main() {
DISPLAY_OFF; DISPLAY_OFF;
LCDC_REG = LCDCF_OFF | LCDCF_BG8000 | LCDCF_BG9800 | LCDCF_BGON; LCDC_REG = LCDCF_OFF | LCDCF_BG8000 | LCDCF_BG9800 | LCDCF_BGON;
STAT_REG |= STATF_LYC; STAT_REG |= STATF_LYC;
LYC_REG = 0; LYC_REG = 0x00;
SCX_REG = 0x00;
SCY_REG = 0x00;
add_LCD(interruptOnScanline); add_LCD(interruptOnScanline);
} }
set_interrupts(VBL_IFLAG | LCD_IFLAG); set_interrupts(VBL_IFLAG | LCD_IFLAG);
@@ -46,13 +48,14 @@ void main() {
filled[j] = SPRITE_TILESET_WHITE_LOW; filled[j] = SPRITE_TILESET_WHITE_LOW;
} }
spriteBufferBackgroundLow(0x00, 0x00, GB_BACKGROUND_COLUMNS, GB_BACKGROUND_ROWS, filled); spriteBufferBackgroundLow(0x00, 0x00, GB_BACKGROUND_COLUMNS, GB_BACKGROUND_ROWS, filled);
SCX_REG = 0x00;
SCY_REG = 0x00;
// Card Test // Card Test
uint8_t cardTiles[SPRITE_CARD_TILE_COUNT]; uint8_t i;
spriteCardBufferTiles(cardTiles, CARD_HEARTS_TWO); for(i = 0; i < 0x03; i++) {
spriteBufferBackgroundLow(0x00, 0x00, SPRITE_CARD_WIDTH, SPRITE_CARD_HEIGHT, cardTiles); uint8_t cardTiles[SPRITE_CARD_TILE_COUNT];
spriteCardBufferTiles(cardTiles, i);
spriteBufferBackgroundLow(i * SPRITE_CARD_WIDTH, 0x00, SPRITE_CARD_WIDTH, SPRITE_CARD_HEIGHT, cardTiles);
}
// Now turn the screen on // Now turn the screen on
DISPLAY_ON; DISPLAY_ON;

View File

@@ -371,13 +371,70 @@ const uint8_t SPRITE_CLUBS_TEN[SPRITE_CARD_TILE_COUNT] = {
SPRITE_CARD_BOTTOM_LEFT, SPRITE_CARD_BOTTOM, SPRITE_CARD_BOTTOM, SPRITE_CARD_TEN_BOTTOM SPRITE_CARD_BOTTOM_LEFT, SPRITE_CARD_BOTTOM, SPRITE_CARD_BOTTOM, SPRITE_CARD_TEN_BOTTOM
}; };
const uint8_t *SPRITE_CARDS[] = {
SPRITE_CLUBS_TWO,
SPRITE_CLUBS_THREE,
SPRITE_CLUBS_FOUR,
SPRITE_CLUBS_FIVE,
SPRITE_CLUBS_SIX,
SPRITE_CLUBS_SEVEN,
SPRITE_CLUBS_EIGHT,
SPRITE_CLUBS_NINE,
SPRITE_CLUBS_TEN,
NULL,
NULL,
NULL,
SPRITE_CLUBS_ACE,
SPRITE_DIAMONDS_TWO,
SPRITE_DIAMONDS_THREE,
SPRITE_DIAMONDS_FOUR,
SPRITE_DIAMONDS_FIVE,
SPRITE_DIAMONDS_SIX,
SPRITE_DIAMONDS_SEVEN,
SPRITE_DIAMONDS_EIGHT,
SPRITE_DIAMONDS_NINE,
SPRITE_DIAMONDS_TEN,
NULL,
NULL,
NULL,
SPRITE_DIAMONDS_ACE,
SPRITE_HEARTS_TWO,
SPRITE_HEARTS_THREE,
SPRITE_HEARTS_FOUR,
SPRITE_HEARTS_FIVE,
SPRITE_HEARTS_SIX,
SPRITE_HEARTS_SEVEN,
SPRITE_HEARTS_EIGHT,
SPRITE_HEARTS_NINE,
SPRITE_HEARTS_TEN,
NULL,
NULL,
NULL,
SPRITE_HEARTS_ACE,
SPRITE_SPADES_TWO,
SPRITE_SPADES_THREE,
SPRITE_SPADES_FOUR,
SPRITE_SPADES_FIVE,
SPRITE_SPADES_SIX,
SPRITE_SPADES_SEVEN,
SPRITE_SPADES_EIGHT,
SPRITE_SPADES_NINE,
SPRITE_SPADES_TEN,
NULL,
NULL,
NULL,
SPRITE_SPADES_ACE
};
inline void spriteCardsBuffer() { inline void spriteCardsBuffer() {
spriteBufferLow(SPRITE_CARD_VRAM_START, CARDS_TILES_IMAGE_TILES, CARDS_TILES_IMAGE); spriteBufferLow(SPRITE_CARD_VRAM_START, CARDS_TILES_IMAGE_TILES, CARDS_TILES_IMAGE);
} }
inline uint8_t * spriteCardsForCard(uint8_t card) { inline uint8_t * spriteCardsForCard(uint8_t card) {
return SPRITE_CLUBS_ACE; return SPRITE_CARDS[card];
} }
inline void spriteCardBufferTiles(uint8_t *buffer, uint8_t card) { inline void spriteCardBufferTiles(uint8_t *buffer, uint8_t card) {

View File

@@ -185,6 +185,8 @@ extern const uint8_t SPRITE_CLUBS_EIGHT[];
extern const uint8_t SPRITE_CLUBS_NINE[]; extern const uint8_t SPRITE_CLUBS_NINE[];
extern const uint8_t SPRITE_CLUBS_TEN[]; extern const uint8_t SPRITE_CLUBS_TEN[];
extern const uint8_t *SPRITE_CARDS[];
inline void spriteCardsBuffer(); inline void spriteCardsBuffer();
inline uint8_t * spriteCardsForCard(uint8_t card); inline uint8_t * spriteCardsForCard(uint8_t card);

10
test.sh Normal file → Executable file
View File

@@ -1,8 +1,2 @@
#!/bin/bash #!/bin/bash
# Send over latest build scp ./build/Penny.gb root@ywbud3.local:/storage/roms/gb/Penny.gb
scp ./build/Penny.gb root@ywbud3:/storage/roms/gb/Penny.gb
systemctl stop emustation.service
killall emulationstation
retroarch -L /lib/libretro/gambatte_libretro.so "/storage/roms/gb/Penny.gb"
systemctl start emustation.service