int main() { /* Transfer color palettes */ set_bkg_palette( 7, 1, &bar_p[0] ); set_bkg_palette( 6, 1, &bar_p[4] ); set_bkg_palette( 5, 1, &bar_p[8] ); set_bkg_palette( 4, 1, &bar_p[12] ); set_bkg_palette( 3, 1, &bar_p[16] ); set_bkg_palette( 2, 1, &bar_p[20] ); set_bkg_palette( 1, 1, &bar_p[24] ); set_bkg_palette( 0, 1, &bar_p[28] ); /* CHR code transfer */ set_bkg_data( 0x0, 32, bar_c ); /* Select VRAM bank 1 */ VBK_REG = 1; /* Set attributes */ set_bkg_tiles( 0, 0, bar_mWidth, bar_mHeight, bar_a ); /* Select VRAM bank 0 */ VBK_REG = 0; /* Set data */ set_bkg_tiles( 0, 0, bar_mWidth, bar_mHeight, bar_m ); SHOW_BKG; enable_interrupts(); DISPLAY_ON; /* Loop forever */ while(1) ; return(0); }
unsigned int mainMenu() { int selection; unsigned long int loopCount; DISPLAY_OFF; HIDE_BKG; move_bkg(0,0); set_bkg_palette( 7, 1, &menuPalCGB[28] ); set_bkg_palette( 6, 1, &menuPalCGB[24] ); set_bkg_palette( 5, 1, &menuPalCGB[20] ); set_bkg_palette( 4, 1, &menuPalCGB[16] ); set_bkg_palette( 3, 1, &menuPalCGB[12] ); set_bkg_palette( 2, 1, &menuPalCGB[8] ); set_bkg_palette( 1, 1, &menuPalCGB[4] ); set_bkg_palette( 0, 1, &menuPalCGB[0] ); set_bkg_data( 0, 141, menuTiles ); VBK_REG = 1; set_bkg_tiles(0,0,menuMapWidth,menuMapHeight,menuPal); VBK_REG = 0; set_bkg_tiles(0,0,menuMapWidth,menuMapHeight,menuMap); SHOW_BKG; DISPLAY_ON; setupPointer(); loopCount = 0; do { loopCount++; if((loopCount % 125) == 0) updatePointer(); /* animate the pointer */ selection = checkButtons(); } while(!selection); /* user hasn't made a selection */ set_sprite_tile(0, 0); /* set to straight pointer while waiting */ while(joypad() & (J_A | J_START)); /* wait for the user to let up */ /* "Shoot" the pointer across the screen */ loopCount = 0; while((pointerX + loopCount) <= 168) { move_sprite(0, pointerX + loopCount, pointerYPositions[currSelection]); loopCount++; delay(4); } hidePointer(); return selection; }
void displaySetup() { DISPLAY_OFF; set_bkg_palette( 0, 1, &bgpalette[0] ); /* Initialize the background */ set_bkg_data(0, 92, data_font); //set_bkg_tiles(1,0, 20, 18, bgmap); set_sprite_palette(0,2,&spritepalette[0]); for(j=0;j!=4;j++) { cursorBigStartX[j] = SCREEN_XO + SCREEN_PSTARTX + (j * SCREEN_XSPACE) - 1; cursorBigStartY[j] = SCREEN_YO + SCREEN_PSTARTY - 8; cursorStartX[j] = SCREEN_XO + SCREEN_PSTARTX + (j * SCREEN_XSPACE) - 8; cursorStartY[j] = SCREEN_YO + SCREEN_PSTARTY; cursorRow[j] = cursorStartY[j]; } SPRITES_8x8; set_sprite_data(SPRITE_ARRT,0x01U, data_barrow); set_sprite_data(SPRITE_ARRL,0x01U, data_larrow); set_sprite_tile(SPRITE_ARRT_START, SPRITE_ARRT); for(j=0;j!=4;j++) set_sprite_tile(j+SPRITE_ARRL_START, SPRITE_ARRL); for(j=0;j!=4;j++) set_sprite_prop(j+SPRITE_ARRT_START,1); for(j=0;j!=4;j++) set_sprite_prop(j+SPRITE_ARRL_START,1); DISPLAY_ON; }
main() { UBYTE key; // selchannel=0; programs[0]=0;programs[1]=0;programs[2]=0;programs[3]=0; offset=0; // load palette sets set_bkg_palette( 0, 7, &dsppalette[0] ); // load in tiles set_bkg_data(0,214,tileData); SHOW_BKG; DISPLAY_ON; VBK_REG = 1; // set palettes per tile set_bkg_tiles( 0,0, 20,18, mapAttr); VBK_REG = 0; // set actual tiles set_bkg_tiles( 0,0, 20,18, mapData); key = 0; while(key != J_START) { key = getkey(); if ( (key & J_DOWN)&&(offset > 0) ) offset --; if ( (key & J_UP)&&(offset < 12) ) offset ++; draw_number(offset+1,17,14); draw_number(offset+2,17,15); draw_number(offset+3,17,16); draw_number(offset+4,17,17); } VBK_REG = 1; VBK_REG=1; set_bkg_tiles(0,14,17,1,clear_pal); set_bkg_tiles(0,15,17,1,clear_pal); set_bkg_tiles(0,16,17,1,clear_pal); set_bkg_tiles(0,17,17,1,clear_pal); VBK_REG=0; set_bkg_tiles(0,14,17,1,msg_clear); set_bkg_tiles(0,15,17,1,msg_clear); set_bkg_tiles(0,16,17,1,msg_clear); set_bkg_tiles(0,17,17,1,msg_clear); draw_number(0,17,14); draw_number(0,17,15); draw_number(0,17,16); draw_number(0,17,17); set_bkg_tiles(16,14,1,1,hardmap); set_bkg_tiles(16,15,1,1,hardmap); set_bkg_tiles(16,16,1,1,hardmap); set_bkg_tiles(16,17,1,1,hardmap); // Go onto pushpin proper midi_server(); return(0); }
int main() { //setup //sprite stuff set_sprite_palette(0,1,&spritepalette[0]); SPRITES_8x8; set_sprite_data(MARIO, 4, mario); set_sprite_tile(0,0); set_sprite_tile(1,1); set_sprite_tile(2,2); set_sprite_tile(3,3); /* set_sprite_location(0, 0, 20, 0, MARIO, current_map); set_camera_location(0, 0, 2, 0); */ //background stuff set_bkg_palette(0,1,&backgroundpalette[0]); set_bkg_palette(1,1,&backgroundpalette[4]); set_bkg_data(0,4,backgroundcharacters); VBK_REG=1; set_bkg_tiles(0,0,20,24,cgbmap); VBK_REG=0; set_bkg_tiles(0,0,20,24,bgmap); SHOW_BKG; enable_interrupts(); DISPLAY_ON; scroll_bkg(0,1); while(1) {/* printf("camera_x: %i\n", camera_x); printf("camera_y: %i\n", camera_y); printf("spritex: %i\n", spritex); printf("spritey: %i\n", spritey);*/ //read input = joypad(); //eval if(input & J_UP) { spritey--; } if(input & J_DOWN) { spritey++; } if(input & J_LEFT) { if(spritex != 0) { spritex--; } camera_x = spritex - 80; if(spritex <= 80) { camera_x = 0; } if(spritex >= world_width_px - 80) { camera_x = world_width_px - SCREEN_WIDTH; } scrolled = 0; } if(input & J_RIGHT) { if(spritex != world_width_px - 16) { spritex++; } camera_x = spritex - 80; if(spritex <= 80) { camera_x = 0; } if(spritex >= world_width_px - 80) { camera_x = world_width_px - SCREEN_WIDTH; } scrolled = 0; } //print for(y = 0; y <= 18; y++) { /* VBK_REG=1; set_bkg_tiles(0,3,20,19,cgbmap); VBK_REG=0; set_bkg_tiles(0,0,20,19,bgmap); */ map_row = camera_y/8; map_row *= tile_width; map_row += (camera_x/8); VBK_REG=1; set_bkg_tiles(0,y,21,1,&cgbmap[map_row]); VBK_REG=0; set_bkg_tiles(0,y,21,1,&bgmap[map_row]); } move_sprite(0,spritex-camera_x+8,spritey-camera_y+16); move_sprite(1,spritex-camera_x+16,spritey-camera_y+16); move_sprite(2,spritex-camera_x+8,spritey-camera_y+24); move_sprite(3,spritex-camera_x+16,spritey-camera_y+24); //print for(i = 0; i < 4; i++) { //slow down animation wait_vbl_done(); } SHOW_BKG; SHOW_SPRITES; } return 0; }
void main(void) { UINT8 i = 0; UINT8 a = 0; INT8 s6 = 0; INT8 c6 = 0; INT8 dd = 0; disable_interrupts(); cpu_fast();// GBC enable_interrupts(); mode(M_DRAWING); color(3, 0, SOLID); set_bkg_palette(0, 1, palette); plot_heart(12, 30); plot_heart(22, 26); for (i = 0; i != 8; i++) { pixels[i].x = HX; pixels[i].y = HY; } while (1) { INT8 xmin = pixels[0].x; INT8 xmax = pixels[0].x; INT8 ymin = pixels[0].y; INT8 ymax = pixels[0].y; // calc min-max of last drawn cube for (i = 1; i != 8; i++) { pixel_t * p = pixels + i; if (xmin > p->x) xmin = p->x; else if (xmax < p->x) xmax = p->x; if (ymin < p->y) ymin = p->y; else if (ymax > p->y) ymax = p->y; } // step s6 = sin6[a]; c6 = cos6[a]; dd = s6 + s6; a += 3; // transform and project for (i = 0; i != 8; i++) { vertex_t * v = vertices + i; pixel_t * p = pixels + i; INT8 x = (v->x * c6) + (v->z * s6) + dd; INT8 y = (v->y * 31) + dd; INT8 z = (v->z * c6) - (v->x * s6); /* rotates in z INT8 x = (v->x * c6) - (v->y * s6); INT8 y = (v->y * c6) + (v->x * s6); INT8 z = (v->z * 31); */ UINT16 dx = x < 0 ? -x : x; UINT16 dy = y < 0 ? -y : y; UINT16 dz = 128 - z; dx = (dx << 5) / dz; dy = (dy << 5) / dz; p->x = HX + (x < 0 ? -dx : dx); p->y = HY + (y < 0 ? -dy : dy); } // sync //wait_vbl_done(); // draw wireframe color(WHITE, WHITE, SOLID); box(xmin - 1, ymin + 1, xmax + 1, ymax - 1, M_FILL); color(1, 0, SOLID); for (i = 0; i != 12; i++) { edge_t * edge = edges + i; pixel_t * p0 = pixels + edge->i; pixel_t * p1 = pixels + edge->j; if (p0->x > p1->x) line(p1->x, p1->y, p0->x, p0->y); else line(p0->x, p0->y, p1->x, p1->y); } } }
void recordSounds() { int joy; DISPLAY_OFF; HIDE_BKG; /*************************************************************************/ /* the following set of routines loads the palettes into the display. */ /* each palette is send (one by one) by using the command: */ /* set_bkg_palette( palette-no, first color in palette, Palette-data ) */ /*************************************************************************/ set_bkg_palette( 7, 1, &recordPalCGB[28] ); set_bkg_palette( 6, 1, &recordPalCGB[24] ); set_bkg_palette( 5, 1, &recordPalCGB[20] ); set_bkg_palette( 4, 1, &recordPalCGB[16] ); set_bkg_palette( 3, 1, &recordPalCGB[12] ); set_bkg_palette( 2, 1, &recordPalCGB[8] ); set_bkg_palette( 1, 1, &recordPalCGB[4] ); set_bkg_palette( 0, 1, &recordPalCGB[0] ); /*************************************************************************/ /* Next, the tile-data is send to the display; /*************************************************************************/ set_bkg_data( 0, 235, recordTiles ); /*************************************************************************/ /* Now it's time to send the map-data to the display. Again, in two */ /* steps, as the tiles and attributes reside in different banks. */ /* The data is send to the display by using the command: */ /* set_bkg_tiles( Left, Top, Width, Height, Map-data ) */ /*************************************************************************/ VBK_REG = 1; set_bkg_tiles(0,0,recordMapWidth,recordMapHeight,recordPal); VBK_REG = 0; set_bkg_tiles(0,0,recordMapWidth,recordMapHeight,recordMap); /*************************************************************************/ /* the remaining code init the Gameboy and makes it wait untill you turn */ /* it off.. */ /*************************************************************************/ SHOW_BKG; DISPLAY_ON; do { joy = joypad(); } while (!joy); waitpadup(); HIDE_BKG; return; }