gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/examples/msxdos/smoke/smoketest.c
1 #include <gbdk/platform.h>
2
3 BANKREF_EXTERN(earth_data)
4 extern const unsigned char earth_data[];
5
6 BANKREF_EXTERN(earth_data_size)
7 extern const unsigned int earth_data_size;
8
9 const uint8_t tilemap[] = {2, 4, 6, 8, 3, 5, 7, 9};
10 const uint16_t tilemapw[] = {2, 4, 6, 8, 3, 5, 7, 9};
11
12 uint16_t banked_func(uint8_t be, uint8_t ef) BANKED;
13
14 int16_t x = 8 << 4, y = 0;
15 int8_t xspd = 0, yspd = 0;
16
17 uint8_t anim = 0, tick = 0;
18
19 uint8_t joy;
20 void main(void) {
21 // HIDE_LEFT_COLUMN;
22 // SPRITES_8x16;
23 DISPLAY_ON;
24
25 // vmemcpy(0x4000, earth_data, sizeof(earth_data));
26
27 SWITCH_ROM(BANK(earth_data));
28 if (banked_func(0xBE, 0xEF) == 0xBEEF) {
29 set_bkg_data(2, earth_data_size >> 4, earth_data);
30 set_sprite_data(0, earth_data_size >> 4, earth_data);
31 set_sprite_tile(0, 0);
32 set_sprite_tile(1, 2);
33 }
34
35 set_bkg_tiles(4, 10, 4, 2, tilemap);
36
37 set_tile_map(4, 16, 4, 2, tilemapw);
38
39 while(TRUE) {
40 joy = joypad();
41
42 if (joy & J_LEFT) {
43 if (xspd > -32) xspd -= 2;
44 } else if (joy & J_RIGHT) {
45 if (xspd < 32) xspd += 2;
46 } else {
47 if (xspd < 0) xspd++; else if (xspd > 0) xspd--;
48 }
49
50 if (joy & J_UP) {
51 if (yspd > -32) yspd -= 2;
52 } else if (joy & J_DOWN) {
53 if (yspd < 32) yspd += 2;
54 } else {
55 if (yspd < 0) yspd++; else if (yspd > 0) yspd--;
56 }
57
58 x += xspd;
59 if (x < (8 << 4)) x = 8 << 4; else if (x > (30 * 8) << 4) x = (30 * 8) << 4;
60
61
62 y += yspd;
63 if (y < 0) y = 0; else if (y > (22 * 8) << 4) y = (22 * 8) << 4;
64
65 tick++; tick &= 7;
66 if (!tick) {
67 anim++; if (anim == 7) anim = 0;
68 set_sprite_tile(0, anim << 2);
69 set_sprite_tile(1, (anim << 2) + 2);
70 }
71
72 move_sprite(0, x >> 4, y >> 4);
73 move_sprite(1, (x >> 4) + 8, y >> 4);
74 /*
75 if (joy & J_LEFT) {
76 scroll_bkg(-1, 0);
77 } else if (joy.joy1 & J_RIGHT) {
78 scroll_bkg(1, 0);
79 }
80 if (joy & J_UP) {
81 scroll_bkg(0, -1);
82 } else if (joy.joy1 & J_DOWN) {
83 scroll_bkg(0, 1);
84 }
85 */
86 vsync();
87 }
88 }
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.