Advertisement
luiscesjr

bios.c

Dec 9th, 2011
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. void bios_objaffineset(u32 b_src, u32 b_dest, u32 b_num, u32 b_offset)
  2.  
  3.     {
  4.   save_reg();
  5.   u32 b_i;
  6.   for(b_i = 0; b_i < b_num; b_i++) {
  7.     s16 b_rx = read_memory16(b_src);
  8.     b_src+=2;
  9.     s16 b_ry = read_memory16(b_src);
  10.     b_src+=2;
  11.     u16 b_theta = read_memory16(b_src)>>8;
  12.     b_src+=4; // keep structure alignment
  13.  
  14.     s32 b_a = (s32)b_sinetable[(b_theta+0x40)&255];
  15.     s32 b_b = (s32)b_sinetable[b_theta];
  16.  
  17.     s16 b_dx =  ((s32)b_rx * b_a)>>14;
  18.     s16 b_dmx = ((s32)b_rx * b_b)>>14;
  19.     s16 b_dy =  ((s32)b_ry * b_b)>>14;
  20.     s16 b_dmy = ((s32)b_ry * b_a)>>14;
  21.    
  22.     write_memory16(b_dest, b_dx);
  23.     b_dest += b_offset;
  24.     write_memory16(b_dest, -b_dmx);
  25.     b_dest += b_offset;
  26.     write_memory16(b_dest, b_dy);
  27.     b_dest += b_offset;
  28.     write_memory16(b_dest, b_dmy);
  29.     b_dest += b_offset;
  30.   }
  31.   load_reg();
  32. }
  33.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement