Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <gba_base.h>
- #include <gba_video.h>
- #include <gba_systemcalls.h>
- #include <gba_interrupt.h>
- #include <gba_input.h>
- #include <string.h>
- #include <maxmod.h>
- #include "soundbank.h"
- #include "soundbank_bin.h"
- #include "tiles.h"
- // --------------------------------------------------------------------
- #define ALIGN4 __attribute__((aligned(4)))
- #define MAPADDRESS0 MAP_BASE_ADR(28) // our base map address
- #define MAPADDRESS1 MAP_BASE_ADR(29)
- #define MAPADDRESS2 MAP_BASE_ADR(30)
- #define MAPADDRESS3 MAP_BASE_ADR(31)
- // --------------------------------------------------------------------
- u16 map[32*32];
- u32 i;
- char currentLevel = 0;
- char characterX = 1, characterY = 1;
- const u16 palette[] = {
- RGB8(0x00, 0x00, 0x00),
- RGB8(0x2A, 0x2A, 0x2A),
- RGB8(0x80, 0x80, 0x80),
- RGB8(0x08, 0x08, 0x08),
- RGB8(0xFF, 0xFF, 0xFF)
- };
- // --------------------------------------------------------------------
- void loadTilesAndPalette(){
- u16 *temppointer, *temppointer2;
- for(i = 0; i < (32 * 32); i++){
- map[i] = 0;
- }
- //BG is 30x20 on screen
- // load the palette for the background, 7 colors
- temppointer = BG_COLORS;
- temppointer2 = OBJ_COLORS;
- for(i=0; i<5; i++) {
- *temppointer++ = palette[i];
- *temppointer2++ = palette[i];
- }
- CpuFastSet(tiles_chr, (u16*)0x06010000,(tiles_chr_size/4) | COPY32);
- CpuFastSet(tiles_chr, (u16*)VRAM, (tiles_chr_size / 4) | COPY32);
- // clear screen map with tile 0 ('space' tile) (256x256 halfwords)
- CpuFastSet(MAPADDRESS0, MAPADDRESS0, FILL | COPY32 | (0x800/4));
- // set screen H and V scroll positions
- for(i = 0; i < 4; i++){
- BG_OFFSET[i].x = 0; BG_OFFSET[i].y = 0;
- }
- // set the screen base to 31 (0x600F800) and char base to 0 (0x6000000)
- BGCTRL[0] = SCREEN_BASE(28);
- BGCTRL[1] = SCREEN_BASE(29);
- }
- char level1[30 * 20] = {
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- };
- char level2[30 * 20] = {
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- };
- char* levelTable[2] = {
- level1,
- level2
- };
- void loadLevel(char* levelData){
- int j = 0;
- int k = 0;
- i = 0;
- while(j < (30 * 20)){
- if((k % 32) < 30){
- map[i] = levelData[j];
- j++;
- }
- k++;
- i++;
- }
- }
- u8 colors[256][3];
- void fadeOut(){
- for(int i = 0; i < 256; i++){
- colors[i][0] = BG_COLORS[i] & 0b0000000000011111;
- colors[i][1] = (BG_COLORS[i] & 0b0000001111100000) >> 5;
- colors[i][2] = (BG_COLORS[i] & 0b0111110000000000) >> 10;
- }
- bool fullyFadedOut = false;
- while(!fullyFadedOut){
- fullyFadedOut = true;
- for(int i = 0; i < 256; i++){
- if((colors[i][0] != 0x00) || (colors[i][1] != 0x00) || (colors[i][2] != 0x00)){
- if(colors[i][0] > 0x00) colors[i][0]--;
- if(colors[i][1] > 0x00) colors[i][1]--;
- if(colors[i][2] > 0x00) colors[i][2]--;
- BG_COLORS[i] = (u16)((colors[i][2] << 10) | (colors[i][1] << 5) | colors[i][0]);
- OBJ_COLORS[i] = (u16)((colors[i][2] << 10) | (colors[i][1] << 5) | colors[i][0]);
- fullyFadedOut = false;
- }
- }
- VBlankIntrWait();
- }
- }
- u8 colorsToFadeTo[256][3];
- void fadeIn(){
- for(int i = 0; i < 5; i++){
- colorsToFadeTo[i][0] = palette[i] & 0b0000000000011111;
- colorsToFadeTo[i][1] = (palette[i] & 0b0000001111100000) >> 5;
- colorsToFadeTo[i][2] = (palette[i] & 0b0111110000000000) >> 10;
- }
- bool fullyFadedIn = false;
- while(!fullyFadedIn){
- fullyFadedIn = true;
- for(int i = 0; i < 5; i++){
- if((colors[i][0] != colorsToFadeTo[i][0]) || (colors[i][1] != colorsToFadeTo[i][1]) || (colors[i][2] != colorsToFadeTo[i][2])){
- if(colors[i][0] < colorsToFadeTo[i][0]) colors[i][0]++;
- if(colors[i][1] < colorsToFadeTo[i][1]) colors[i][1]++;
- if(colors[i][2] < colorsToFadeTo[i][2]) colors[i][2]++;
- BG_COLORS[i] = (u16)((colors[i][2] << 10) | (colors[i][1] << 5) | colors[i][0]);
- OBJ_COLORS[i] = (u16)((colors[i][2] << 10) | (colors[i][1] << 5) | colors[i][0]);
- fullyFadedIn = false;
- }
- }
- VBlankIntrWait();
- }
- }
- void unloadLevel(){
- for(i = 0; i < (32 * 32); i++){
- *((u16 *)MAPADDRESS1 + i) = 0x00;
- }
- }
- void vblank(){
- mmFrame();
- mmVBlank();
- }
- void gotoNextLevel(){
- currentLevel++;
- fadeOut();
- *((u16 *)MAPADDRESS0) = 0x00;
- *((u16 *)MAPADDRESS0 + 1) = 0x00;
- *((u16 *)MAPADDRESS0 + 2) = 0x00;
- *((u16 *)MAPADDRESS0 + 3) = 0x00;
- unloadLevel();
- *((u16 *)MAPADDRESS0 + 299) = 'L';
- *((u16 *)MAPADDRESS0 + 300) = 'E';
- *((u16 *)MAPADDRESS0 + 301) = 'V';
- *((u16 *)MAPADDRESS0 + 302) = 'E';
- *((u16 *)MAPADDRESS0 + 303) = 'L';
- *((u16 *)MAPADDRESS0 + 305) = '0' + (((currentLevel + 1) / 10) % 10);
- *((u16 *)MAPADDRESS0 + 306) = '0' + ((currentLevel + 1) % 10);
- *((u16 *)0x07000000 + 2) = 0x0000;
- fadeIn();
- for(int i = 0; i < 60; i++) VBlankIntrWait();
- fadeOut();
- *((u16 *)MAPADDRESS0 + 299) = 0x00;
- *((u16 *)MAPADDRESS0 + 300) = 0x00;
- *((u16 *)MAPADDRESS0 + 301) = 0x00;
- *((u16 *)MAPADDRESS0 + 302) = 0x00;
- *((u16 *)MAPADDRESS0 + 303) = 0x00;
- *((u16 *)MAPADDRESS0 + 305) = 0x00;
- *((u16 *)MAPADDRESS0 + 306) = 0x00;
- loadLevel(levelTable[(int)currentLevel]);
- for(i = 0; i < 32*32; i++){
- *((u16 *)MAPADDRESS1 + i) = map[i];
- }
- *((u16 *)MAPADDRESS0) = 'L';
- *((u16 *)MAPADDRESS0 + 1) = 'V';
- *((u16 *)MAPADDRESS0 + 2) = '0' + (((currentLevel + 1) / 10) % 10);
- *((u16 *)MAPADDRESS0 + 3) = '0' + ((currentLevel + 1) % 10);
- *((u16 *)0x07000000 + 2) = 0b0000000000000000 | ((u8)0x04);
- fadeIn();
- }
- int main() {
- // Set up the interrupt handlers
- irqInit();
- irqSet(IRQ_VBLANK, vblank);
- // Enable Vblank Interrupt to allow VblankIntrWait
- irqEnable(IRQ_VBLANK);
- mmInitDefault((mm_addr)soundbank_bin, 18); //Initialize MaxMod with 8 channels
- mmStart(MOD_DROZERIX___CRUSH, MM_PLAY_LOOP);
- loadTilesAndPalette();
- SetMode( MODE_0 | BG0_ON | BG1_ON | OBJ_ON);
- fadeOut();
- *((u16 *)MAPADDRESS0) = 'L';
- *((u16 *)MAPADDRESS0 + 1) = 'V';
- *((u16 *)MAPADDRESS0 + 2) = '0' + (((currentLevel + 1) / 10) % 10);
- *((u16 *)MAPADDRESS0 + 3) = '0' + ((currentLevel + 1) % 10);
- loadLevel(levelTable[0]);
- for(i = 0; i < 32*32; i++){
- *((u16 *)MAPADDRESS1 + i) = map[i];
- }
- fadeIn();
- while(1) {
- scanKeys();
- u16 pad = keysDown();
- if(pad & KEY_A) {
- gotoNextLevel();
- }
- if(pad & KEY_B) {
- currentLevel = -1;
- }
- if(pad & KEY_UP){
- if(map[(((characterY - 1) * 32) + characterX)] != 0x01) characterY--;
- }
- if(pad & KEY_DOWN){
- if(map[(((characterY + 1) * 32) + characterX)] != 0x01) characterY++;
- }
- if(pad & KEY_LEFT){
- if(map[((characterY * 32) + (characterX - 1))] != 0x01) characterX--;
- }
- if(pad & KEY_RIGHT){
- if(map[((characterY * 32) + (characterX + 1))] != 0x01) characterX++;
- }
- *((u16 *)0x07000000) = 0b0000000000000000 | (characterY * 8);
- *((u16 *)0x07000000 + 1) = 0b0000000000000000 | (characterX * 8);
- *((u16 *)0x07000000 + 2) = 0b0000000000000000 | ((u8)0x04);
- if(map[((characterY * 32) + characterX)] == 0x02) gotoNextLevel();
- for(i = 0; i < 32*32; i++){
- *((u16 *)MAPADDRESS1 + i) = map[i];
- }
- VBlankIntrWait();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment