rpcs3/rpcs3/Emu/SysCalls/lv2/SC_GCM.cpp
DH f83aa9d5ae OpenGL renderer:
- Improved Vertex & Fragment Shader Decompilers.
- Implemented fp uniform loader.
- Implemented DXT1 & DXT2 textures decompression.
- Implemented draft cellResc module.
- Updated glext.

PPU Interpreter:
- Fixed VSPLTW, VNMSUBFP, VMRGLW, VMRGLH, VMRGLB, VMRGHW, VMRGHH, VMRGHB instructions.

cellFs:
- Fixed cellFsStat syscall.
2013-08-26 17:18:59 +03:00

25 lines
617 B
C++

#include "stdafx.h"
#include "Emu/SysCalls/SysCalls.h"
#include "Emu/GS/GCM.h"
extern Module cellGcmSys;
extern gcmInfo gcm_info;
int cellGcmCallback(u32 context_addr, u32 count)
{
GSLockCurrent gslock(GS_LOCK_WAIT_FLUSH);
CellGcmContextData& ctx = (CellGcmContextData&)Memory[context_addr];
CellGcmControl& ctrl = (CellGcmControl&)Memory[gcm_info.control_addr];
const s32 res = re(ctx.current) - re(ctx.begin) - re(ctrl.put);
if(res > 0) memcpy(&Memory[re(ctx.begin)], &Memory[re(ctx.current) - res], res);
ctx.current = re(re(ctx.begin) + res);
ctrl.put = re(res);
ctrl.get = 0;
return CELL_OK;
}