Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void bios_objaffineset(u32 b_src, u32 b_dest, u32 b_num, u32 b_offset)
- {
- save_reg();
- u32 b_i;
- for(b_i = 0; b_i < b_num; b_i++) {
- s16 b_rx = read_memory16(b_src);
- b_src+=2;
- s16 b_ry = read_memory16(b_src);
- b_src+=2;
- u16 b_theta = read_memory16(b_src)>>8;
- b_src+=4; // keep structure alignment
- s32 b_a = (s32)b_sinetable[(b_theta+0x40)&255];
- s32 b_b = (s32)b_sinetable[b_theta];
- s16 b_dx = ((s32)b_rx * b_a)>>14;
- s16 b_dmx = ((s32)b_rx * b_b)>>14;
- s16 b_dy = ((s32)b_ry * b_b)>>14;
- s16 b_dmy = ((s32)b_ry * b_a)>>14;
- write_memory16(b_dest, b_dx);
- b_dest += b_offset;
- write_memory16(b_dest, -b_dmx);
- b_dest += b_offset;
- write_memory16(b_dest, b_dy);
- b_dest += b_offset;
- write_memory16(b_dest, b_dmy);
- b_dest += b_offset;
- }
- load_reg();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement