@@ -2308,8 +2308,10 @@ error_code cellGemConvertVideoFinish(ppu_thread& ppu)
23082308 return CELL_OK;
23092309}
23102310
2311- error_code cellGemConvertVideoStart (vm::cptr<void > video_frame)
2311+ error_code cellGemConvertVideoStart (ppu_thread& ppu, vm::cptr<void > video_frame)
23122312{
2313+ ppu.state += cpu_flag::wait;
2314+
23132315 cellGem.warning (" cellGemConvertVideoStart(video_frame=*0x%x)" , video_frame);
23142316
23152317 auto & gem = g_fxo->get <gem_config>();
@@ -2461,6 +2463,8 @@ error_code cellGemEnableMagnetometer2(u32 gem_num, u32 enable)
24612463
24622464error_code cellGemEnd (ppu_thread& ppu)
24632465{
2466+ ppu.state += cpu_flag::wait;
2467+
24642468 cellGem.warning (" cellGemEnd()" );
24652469
24662470 auto & gem = g_fxo->get <gem_config>();
@@ -3265,15 +3269,15 @@ error_code cellGemPrepareCamera(s32 max_exposure, f32 image_quality)
32653269
32663270 extern error_code cellCameraGetAttribute (s32 dev_num, s32 attrib, vm::ptr<u32 > arg1, vm::ptr<u32 > arg2);
32673271 extern error_code cellCameraSetAttribute (s32 dev_num, s32 attrib, u32 arg1, u32 arg2);
3268- extern error_code cellCameraGetBufferInfoEx (s32 dev_num, vm::ptr<CellCameraInfoEx> info);
3272+ extern error_code cellCameraGetBufferInfoEx (ppu_thread&, s32 dev_num, vm::ptr<CellCameraInfoEx> info);
32693273
32703274 vm::var<CellCameraInfoEx> info = vm::make_var<CellCameraInfoEx>({});
32713275 vm::var<u32 > arg1 = vm::make_var<u32 >({});
32723276 vm::var<u32 > arg2 = vm::make_var<u32 >({});
32733277
32743278 cellCameraGetAttribute (0 , 0x3e6 , arg1, arg2);
32753279 cellCameraSetAttribute (0 , 0x3e6 , 0x3e , *arg2 | 0x80 );
3276- cellCameraGetBufferInfoEx (0 , info);
3280+ cellCameraGetBufferInfoEx (*cpu_thread::get_current<ppu_thread>(), 0 , info);
32773281
32783282 if (info->width == 640 )
32793283 {
@@ -3605,6 +3609,8 @@ error_code cellGemTrackHues(vm::cptr<u32> req_hues, vm::ptr<u32> res_hues)
36053609
36063610error_code cellGemUpdateFinish (ppu_thread& ppu)
36073611{
3612+ ppu.state += cpu_flag::wait;
3613+
36083614 cellGem.warning (" cellGemUpdateFinish()" );
36093615
36103616 auto & gem = g_fxo->get <gem_config>();
0 commit comments