indeec-evafan
01.01.2012, 14:08
Собственно в целях самообразования решил написать дампер умд. Сами диски прекрасно грабятся, но никак не могу организовать вывод процента на экран. Сам процесс снятия образа идеит в отдельном цикле, так что до его завершения экран не обновляется, а если писать внутри этого цикла - сбрасывается все что было на экране до этого и вывод идет построчечно (pspDebugScreenSetXY не срабатывает второй раз). Как уже понятно все идет через отладочный вывод. И еще вопрос - как можно программно включить режим "без засыпания" при запуске программы и вернуть все как было при выходе?
Сам грабеж идет примерно так:
if (ready==1)
{
fd_i = sceIoOpen("umd:", PSP_O_RDONLY, 0777);
fd_o = sceIoOpen(op, PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
now_sector = 0;
read_sec = sceIoRead(fd_i, buf, max_buf);
while (read_sec>0)
{
sceIoWrite(fd_o, buf, read_sec * 0x800);
now_sector += read_sec;
read_sec = sceIoRead(fd_i, buf, max_buf);
prc = now_sector * 100 /umd_sector;
}
sceIoClose(fd_i);
sceIoClose(fd_o);
ready=0;
}
в prc собственно процент копирования
Сам грабеж идет примерно так:
if (ready==1)
{
fd_i = sceIoOpen("umd:", PSP_O_RDONLY, 0777);
fd_o = sceIoOpen(op, PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
now_sector = 0;
read_sec = sceIoRead(fd_i, buf, max_buf);
while (read_sec>0)
{
sceIoWrite(fd_o, buf, read_sec * 0x800);
now_sector += read_sec;
read_sec = sceIoRead(fd_i, buf, max_buf);
prc = now_sector * 100 /umd_sector;
}
sceIoClose(fd_i);
sceIoClose(fd_o);
ready=0;
}
в prc собственно процент копирования