init_screen(){ /* setup fonts/screen */ set_color_rgb(1, 7, 7, 7); set_font_color(1, 0); set_font_pal(0); load_default_font(); }
int main() { load_default_font(); put_string("Lo", 0, 2); put_hex(&__huc_rodata, 4, 0, 3); put_hex(&__huc_rodata_end, 4, 5, 3); put_hex(&__huc_data, 4, 10, 3); put_number(a, 5, 15, 3); for(;;); }
main() { int joie; cls(); init_satb(); reset_satb(); set_color(0,0); /* Je veux le noir */ set_color(1,511); /* Je veux le blanc */ set_font_color(1, 0); load_default_font(); put_string("TimeFend", 12, 12); put_string("First presented at AC2015", 4, 13); put_string("by Cr30s & Bjorn", 8, 15); for(;;) { joie = joy(0); if (joie & JOY_STRT) timefend(); } }
main() { char i,j,k,l,m,n; disp_off(); /* <- I don't think this works.... */ spr_set(); spr_hide(); load_default_font(); set_screen_size(SCR_SIZE_32x32); disp_on(); if(!sgx_detect()) { put_string("Halt: SGX not hardware found", 2, 13); for(;;){} } /* These NEED to be set, else you won't see the SGX 2nd layer BG or sprites. */ vpc_win_size( VPC_WIN_A, 0x01ff); vpc_win_size( VPC_WIN_B, 0x01ff); vpc_win_reg( VPC_WIN_A, VDC_ON+VPC_NORM); vpc_win_reg( VPC_WIN_B, VDC_ON+VPC_NORM); vpc_win_reg( VPC_WIN_AB, VDC_ON+VPC_NORM); vpc_win_reg( VPC_WIN_NONE, VDC_ON+VPC_NORM); set_font_pal(4); set_font_color(14,0); load_default_font(); put_string("SGX hardware found", 2, 3); sgx_set_screen_size(SCR_SIZE_32x32); sgx_load_vram(0x0000,map, 0x400); sgx_load_vram(0x1000,tile, 0x4000); load_palette(0, pal,16); sgx_spr_hide(); sgx_spr_set(1); sgx_disp_on(); put_string("Arcade Card: ", 2, 4); if ( ac_init() ) { put_string("detected.", 15, 4); /* initialize AC register 0 to address 0x000000 and +1 auto-increment */ ac_full_reg0(0x00,0x0000,0x0000,0x0001,0x11); put_string("CD->AC xfer... ", 2, 5); /* transfer 8k at a time from CD to AC memory via AC reg #0 */ ac_cd_xfer(AC_REG0,0,0x1c2,4); ac_cd_xfer(AC_REG0,0,0x1c6,4); ac_cd_xfer(AC_REG0,0,0x1ca,4); ac_cd_xfer(AC_REG0,0,0x1ce,4); ac_cd_xfer(AC_REG0,0,0x1d2,4); ac_cd_xfer(AC_REG0,0,0x1d6,4); ac_cd_xfer(AC_REG0,0,0x1da,4); ac_cd_xfer(AC_REG0,0,0x1de,4); put_string("finished.", 17, 5); sgx_bg_on(); /* reset AC reg #0 address to 0x000000 */ ac_addr_reg0(0x00,0x0000); ac_vram_dma(AC_REG0 ,0x1000,0x3c00, SGX); ac_addr_reg0(0x00,0x8000); ac_vram_dma(AC_REG0 ,0x0000,0x800, SGX); ac_addr_reg0(0x00,0x8800); ac_vce_copy( AC_REG0, 0x00, 0x100 ); vsync(60); vsync(60); } else { put_string("not detected.", 15, 4); for(;;){} } put_string("Scrolling SGX layer ", 2, 6); for(;;) { for( j=0; j<0xff; j++) { vsync(); sgx_scroll( j , j); } } }
run_game() { /* init variables */ frame = 0; hero_walk_state = 0; spr_addr_hero = SPR_ADDR__HERO_D; joy1_dpad = 0; /* init sprites */ init_satb(); load_vram(SPR_ADDR__HERO_U, spr_hero_u, 0x400); load_vram(SPR_ADDR__HERO_UR, spr_hero_ur, 0x400); load_vram(SPR_ADDR__HERO_R, spr_hero_r, 0x400); load_vram(SPR_ADDR__HERO_DR, spr_hero_dr, 0x400); load_vram(SPR_ADDR__HERO_D, spr_hero_d, 0x400); load_vram(SPR_ADDR__HERO_DL, spr_hero_dl, 0x400); load_vram(SPR_ADDR__HERO_L, spr_hero_l, 0x400); load_vram(SPR_ADDR__HERO_UL, spr_hero_ul, 0x400); set_sprpal(PAL_NUM__HERO, pal_hero); /* hero sprite */ spr_set(SPR_NUM__HERO); spr_x(hero_x); spr_y(hero_y); spr_pattern(spr_addr_hero); spr_ctrl(SIZE_MAS|FLIP_MAS, SZ_32x32|NO_FLIP); spr_pal(PAL_NUM__HERO); spr_pri(1); /* font */ set_font_color(1, 0); set_font_pal(0); load_default_font(); satb_update(); vsync(); /******************************************************************************* GAME LOOP *******************************************************************************/ for(;;) { joy1 = joy(0); joy1a = joytrg(0); old_spr_addr_hero = spr_addr_hero; /* d-pad input */ #asm lda _joy1 lsr4 sta _joy1_dpad bne movement_input jmp no_movement_input movement_input: #endasm if (joy1 & JOY_UP) hero_y--; else if (joy1 & JOY_DOWN) hero_y++; if (joy1 & JOY_LEFT) hero_x--; else if (joy1 & JOY_RGHT) hero_x++; if (frame % 8 == 0) hero_walk_state++; #asm ldx _joy1_dpad ;// lower nibble of _spr_addr_hero already zeroed lda tbl_hero_spr_addr,X sta _spr_addr_hero+1 no_movement_input: #endasm /* a/b input */ if (joy1 & JOY_A) { spr_addr_hero_modifier = 0x300; if (spr_addr_hero != old_spr_addr_hero) { if (frame % 4) { spr_addr_hero = old_spr_addr_hero; } else { if (!(joy1a & JOY_A)) { spr_addr_hero = old_spr_addr_hero + 0x400; if (spr_addr_hero > 0x6C00) spr_addr_hero = 0x5000; } } } } else if (joy1 & JOY_B) { spr_addr_hero_modifier = 0x300; if (spr_addr_hero != old_spr_addr_hero) { if (frame % 4) { spr_addr_hero = old_spr_addr_hero; } else { if (!(joy1a & JOY_B)) { spr_addr_hero = old_spr_addr_hero - 0x400; if (spr_addr_hero < 0x5000) spr_addr_hero = 0x6C00; } } } } else { /* hero direction walk animation*/ if (hero_walk_state == 1) { spr_addr_hero_modifier = 0x100; } else if (hero_walk_state == 3) { spr_addr_hero_modifier = 0x200; } else{ spr_addr_hero_modifier = 0; } } spr_set(SPR_NUM__HERO); spr_pattern(spr_addr_hero + spr_addr_hero_modifier); spr_x(hero_x); spr_y(hero_y); hero_walk_state = hero_walk_state % 4; frame++; satb_update(); vsync(); } }
int main() { #ifdef VISUAL load_default_font(); #endif #if 0 BAD(1) #elif 1 GOOD(1) #endif #if 1 GOOD(2) #elif 1 BAD(2) #endif #if 0 BAD(3) #elif 0 BAD(3) #else GOOD(3) #endif #if 1 GOOD(4) #elif 0 BAD(4) #endif #if 0 BAD(5) #elif 0 BAD(5) #elif 1 GOOD(5) #else BAD(5) #endif #if 0 BAD(6) #elif 0 BAD(6) #elif 1 GOOD(6) #elif 1 BAD(6) #else BAD(6) #endif #if 0 BAD(7) #elif 0 BAD(7) #elif 1 GOOD(7) #elif 0 BAD(7) #else BAD(7) #endif #if 0 #if 0 BAD(8) #elif 0 BAD(8) #elif 1 BAD(8) #else BAD(8) #endif #else GOOD(8) #endif #if 1 #if 0 BAD(9) #elif 0 BAD(9) #elif 1 GOOD(9) #else BAD(9) #endif #else BAD(9) #endif #if 0 #if 0 BAD(10) #elif 1 BAD(10) #endif #else #if 1 GOOD(10) #else BAD(10) #endif #endif #if 1 #if 0 BAD(11) #elif 1 GOOD(11) #endif #else #if 1 BAD(11) #else BAD(11) #endif #endif #if 0 BAD(12) #elif 1 #if 0 BAD(12) #elif 0 BAD(12) #else GOOD(12) #endif #elif 1 BAD(12) #endif return 0; }