abse/gameboy-advance

A tscircuit package created by abse.

Version
0.0.45
License
unset
Stars
0

games/platform/pico_main.c

/* SPDX-License-Identifier: GPL-2.0-or-later */
#include "game_platform.h"
#include "board.h"
#include "pico/stdlib.h"
uint16_t platform_buttons(void) { return buttons_read(); }
uint32_t platform_millis(void) { return to_ms_since_boot(get_absolute_time()); }
void platform_sleep(uint32_t ms) { sleep_ms(ms); }
void platform_present(const uint8_t *pixels,const uint32_t *palette) {
    static unsigned field;
    for(unsigned y=field;y<320;y+=3)
        lcd_indexed_scanline(pixels+(y*200/320)*320,palette,y,0,480);
    field=(field+1)%3;
}
int main(void) {
    stdio_init_all(); board_init(); lcd_large=1; lcd_apply_game_mode(); game_init();
    uint64_t start=time_us_64(); unsigned tick=0;
    for(;;) { game_tick(); sleep_until(from_us_since_boot(start+(++tick)*1000000ull/35)); }
}