diff options
author | lonkaars <loek@pipeframe.xyz> | 2023-02-25 13:08:00 +0100 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2023-02-25 13:08:00 +0100 |
commit | 5850f4ab766256791f72301349e30d4cd304c675 (patch) | |
tree | ae72fb95eb7a028eb0a86fdc07340d97942f285a /src/main.c | |
parent | 1a2bd8b70c12d497acb2eba548d161b2bfc4f9b6 (diff) |
ppusim done
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 94 |
1 files changed, 3 insertions, 91 deletions
@@ -1,12 +1,8 @@ #include <stdlib.h> -#include <math.h> -#ifdef HH_TARGET_DESKTOP -#include <stdio.h> -#endif #include "main.h" #include "ppu/ppu.h" -#include "ppu/consts.h" +#include "demo.h" bool g_hh_run = true; @@ -21,97 +17,13 @@ void hh_ppu_vblank_interrupt() { static unsigned long frame = 0; frame++; -#ifdef HH_TARGET_DESKTOP - // printf("frame %lu\n", frame); -#endif - - unsigned shift = (double) sin((double) frame / 20) * 10 + 10; - hh_ppu_update_aux((hh_s_ppu_loc_aux) { - .bg_shift_x = shift, - .bg_shift_y = 0, - .fg_fetch = 0, - .sysreset = 0, - }); + hh_demo_loop(frame); } void hh_setup() { hh_ppu_init(); - hh_s_ppu_loc_sprite sprite = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 - }; - - for (int x = 0; x < HH_PPU_SPRITE_WIDTH; x++) { - for (int y = 0; y < HH_PPU_SPRITE_HEIGHT; y++) { - // sprite[y * HH_PPU_SPRITE_WIDTH + x] = (pow(x - 8, 2) + pow(y - 8, 2) < 64) ? 1 : 0; - uint8_t p = sprite[y * HH_PPU_SPRITE_WIDTH + x]; - printf("%c%c%c", p ? 'X' : ' ', p ? 'X' : ' ', p ? 'X' : ' '); - } - printf("\n"); - } - - hh_ppu_update_sprite(0, sprite); - - // hh_ppu_update_foreground(0, (hh_s_ppu_loc_fam_entry) { - // .horizontal_flip = false, - // .vertical_flip = false, - // .palette_index = 1, - // .tilemap_index = 0, - // .position_x = 30, - // .position_y = 40, - // }); - - hh_ppu_update_background(3, (hh_s_ppu_loc_bam_entry) { - .horizontal_flip = false, - .vertical_flip = false, - .palette_index = 1, - .tilemap_index = 0, - }); - hh_ppu_update_background(4, (hh_s_ppu_loc_bam_entry) { - .horizontal_flip = true, - .vertical_flip = false, - .palette_index = 2, - .tilemap_index = 0, - }); - hh_ppu_update_background(5, (hh_s_ppu_loc_bam_entry) { - .horizontal_flip = false, - .vertical_flip = false, - .palette_index = 3, - .tilemap_index = 0, - }); - hh_ppu_update_background(6, (hh_s_ppu_loc_bam_entry) { - .horizontal_flip = false, - .vertical_flip = true, - .palette_index = 4, - .tilemap_index = 0, - }); - hh_ppu_update_background(7, (hh_s_ppu_loc_bam_entry) { - .horizontal_flip = true, - .vertical_flip = true, - .palette_index = 5, - .tilemap_index = 0, - }); - - hh_ppu_update_color(1, 1, (hh_ppu_rgb_color_t) {0xf, 0x0, 0xf}); - hh_ppu_update_color(2, 1, (hh_ppu_rgb_color_t) {0xf, 0xf, 0xf}); - hh_ppu_update_color(3, 1, (hh_ppu_rgb_color_t) {0xf, 0x0, 0x0}); - hh_ppu_update_color(4, 1, (hh_ppu_rgb_color_t) {0x0, 0xf, 0xf}); - hh_ppu_update_color(5, 1, (hh_ppu_rgb_color_t) {0x0, 0x0, 0xf}); + hh_demo_setup(); } void hh_exit() { |