PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=101)
-   -   Идея для полезной хомки. Она же просьба. (https://www.pspx.ru/forum/showthread.php?t=46610)

pspowner 26.06.2007 23:50

Цитата:

Сообщение от SееD (Сообщение 464894)
ну прога то посчитала что да. а вот PSP нет)
но никакого брика. просто синий экран. я ручками восстановил.

Ну чтож ты так... и опять не понял что и как.

1) Очищение отработало нормально? (по крестику)
2) Восстановление(по кружку)? Какой синий экран? В программе или при перезапуске?
3) Точно места на стике нехватало?

Давай подробно короче, на это просто может быть завязан один из способов проверки свободного места. Да и просто понять где чего ловить..

Да, и ещё, ты из программы выходил, или тестил очистку/восстановление в 1 сессию...

SееD 27.06.2007 00:15

1) отлично сработало
2) по кружку. нажал. она поработала. сказала что всё гуд. я вышел и бах.... синий экран "смерти"
3) стопудова

делал за разные сэссии.

завтра уберу весь тюнинг (просто бэкап на рабочем компе) и потестю еще разок :)

pspowner 27.06.2007 00:29

Ну вот, я же не из праздного любопытства спрашиваю... ))

- когда ты в ручную восстанавливал, ты перезаписал только эти 2 файла? Остальное менять не пришлось? Или ты всю папку font перезалил.

- если эти два файла просто стереть - будет синий экран? Или если эти файлы повреждены будет синий экран?

Вобщем да, похоже что из-за места. Просто я сравнил записаные файлы во флеш0 со своим бекапом с помощью fc.exe и они оказались идентичны.

SееD 27.06.2007 00:43

только эти два. больше ничего не трогал.

синий экран будет в любом случае - если стереть или если повредить.

да точно из-за места, я стопроцентно уверен.

wSlava 27.06.2007 01:32

Ой, тут работа кипит :)
pspowner, выложи исходники посмотреть, а то я с флешем не работал, тоже интересно.
Я начал было писать, вот что нашел, если надо - насчет сколько места осталось:
http://forums.ps2dev.org/viewtopic.p...space+free+art
и насчет батарейки есть функция scePowerIsLowBattery(), проверяющая, что лампочка заряда PSP мигает, в этот момент я думаю лучше не рисковать :)
Еще в SDK есть пример nand, так вот там есть указание, что при работе с флешем его
надо монопольно лочить для изменений и после разлочить:
LockFlash();
...
UnlockFlash();
Может это поможет побороть синий кран ...

SееD 27.06.2007 08:53

да экран синий был только лишь из-за того, что места не хватило и шрифт битый получился. если бы не нехватка места - всё было бы пучком :)

проверка на мигание рулит!

pspowner 27.06.2007 09:51

Цитата:

Сообщение от wSlava (Сообщение 464995)
Ой, тут работа кипит :)
pspowner, выложи исходники посмотреть, а то я с флешем не работал, тоже интересно.

Для меня исходники последнее время стали чем-то личным)) Ну ладно, вечером выложу. Просто стиль у меня несколько корявый...
Пока вот моя прога для смены названия прошивки на 3.40 ОЕ(там запись во флеш0):
Бинарник - https://www.pspx.ru/forum/showpost.ph...7&postcount=14
Исходник - https://www.pspx.ru/forum/showpost.ph...3&postcount=18


Цитата:

Сообщение от wSlava (Сообщение 464995)
Я начал было писать, вот что нашел, если надо - насчет сколько места осталось:
http://forums.ps2dev.org/viewtopic.p...space+free+art
и насчет батарейки есть функция scePowerIsLowBattery(), проверяющая, что лампочка заряда PSP мигает, в этот момент я думаю лучше не рисковать :)

Слав, я это тоже читал. Они предлагают считать сумму размеров всех файлов во флеш0 и вычитать из общего объёма. То не наш путь, по крайней мере мне он кажется диким и не очень точным. Я больше склоняюсь к варианту создания временного файла на флеш0 куда будет записываться некая инфа - сколько сумел записать, столько свободного места и есть. Потом файл удаляется. Или просто сделать проверку - а записались ли файлы полностью, если нет - вернуть как было. На счёт батарейки спасибо, думаю 1 лишняя строчка не повредит.

Цитата:

Сообщение от wSlava (Сообщение 464995)
Еще в SDK есть пример nand, так вот там есть указание, что при работе с флешем его
надо монопольно лочить для изменений и после разлочить:
LockFlash();
...
UnlockFlash();
Может это поможет побороть синий кран ...

Это я тоже знаю - вроде в примере dumpipl было, но лочить флеш не стал, и так всё прекрасно работает. По крайней мере я активно тестил свой VChanger который тут в теме по тюнингу валяется, так вот он без лока и тоже всё шикарно работает.
С синим экраном похоже всё ясно, Сид написал. И потом у меня на непрокаченной ПСП(есть место во флеш0) всё работает и без синих экранов. Вобщем мне кажется что страх перед флеш0 несколько надуманный...

Цитата:

Сообщение от SееD (Сообщение 465086)
да экран синий был только лишь из-за того, что места не хватило и шрифт битый получился. если бы не нехватка места - всё было бы пучком :)

проверка на мигание рулит!


Да, но ты проверь на всякий случай на непрокаченной ПСП, чтобы уж я был уверен что прога не только у меня работает.
Проверку батарейки и места добавлю вечером. Также может быть изменю интерфейс и вклею подсчёт CRC чтоб копирайты не меняли)) Ну параноик я - никуда не деца.

SееD 27.06.2007 11:18

на чистой всё супер. быстро и чётко :)

если будешь красоту наводить, то слова тоже (ИМХО) стоит чуток изменить. А то они пугающее))) Я бы вместо второй строчки просто пропуск оставил. И там еще в одном месте очепятка (хотя ты наверно и сам знаешь)

pspowner 28.06.2007 00:06

эээ переносца. Есть кое-какие засады.

Mortem 28.06.2007 00:38

pspowner
У флеша ограниченное количество перезаписи, если я не ошибаюсь. Большое, но ограниченное. Поэтому вариант с записью файла по моем не очень дачный.
И почему ты считаешь не точным вариант с подсчётом уже имеющихся файлов? Общий размер флешки ведь известен...

pspowner 28.06.2007 08:54

Цитата:

Сообщение от Mortem (Сообщение 465841)
pspowner
У флеша ограниченное количество перезаписи, если я не ошибаюсь. Большое, но ограниченное.

А это вот ты сейчас что-то конкретное имеешь ввиду, или вобщем?
То понятно что у любого накопителя есть предельный ресурс, да что там накопителя, вобще у любого устройства. Спорю, что и обычный дверной замок на 1 * 10^99 раз не откроется. Тоже самое с нандом и стиком, ресурс есть, но он маловажен ибо черезчур большой.

Цитата:

Сообщение от Mortem (Сообщение 465841)
Поэтому вариант с записью файла по моем не очень дачный.
И почему ты считаешь не точным вариант с подсчётом уже имеющихся файлов? Общий размер флешки ведь известен...

Этот вариант(с тест-файлом) я уже отбросил как невалидный, но по другой причине. Такой способ приводит к "забиванию" свободного места на flash0. Т.е. после того как запись в тестовый файл была остановлена в связи с отсутствием места, я удаляю этот файл, но место на flash0 всё равно остаётся как бы занятым тестовым файлом. Вчера уже 2 раза полностью перепрошивал ПСП по этому поводу, ибо даже 2 коцанных файла по 32Кб не влезали - соотв. ПСП не грузилась.

Так что как ни крути, а считать файлы придётся. А неточным я его считаю потому, что объём информации записанной в файл меньше, чем фактический размер файла на накопителе. А размер то файла будем определять по sceIoLseek32, а это не размер на диске. Это количество байт в файле. И потом, неизвестно сколько ещё служебной и/или скрытой инфы записано на флеш0, которая занимает место. Ну а если есть bad sectors(blocks)??

Mortem 28.06.2007 10:45

Да, мысль понял. А к флешу на уровне кластеров подобраться никак нельзя?

pspowner 28.06.2007 13:06

Ну xер знает. Поглядел тут Лёхины исходники oeflesherа и IDStorageChangerа - там не использует кластеров он юзает библиотеку libpspvshbridge - не знаю что это такое, но там интересные есть вещи -

vshLflashFatfmtStartFatfmt(); - логический формат ф0
vshIdStorageLookup и.т.п.

по программе - есть ещё идея.
Суть ведь такая. При замене больших файлов на маленькие - никаких проблем нет, а вот наоборот да при нехватке места получается семибрик.

Вот я и думаю, может покоцанные шрифты из ф0 сразу не убирать, а переименовать. И попытаться восстановить большие шрифты - если запись провалица - сообщить о нехватке места юзеру и вернуть покоцанным файлам старые названия. Со стороны будет выглядеть как будто прога определила нехватку места, полубрика тоже не будет...

Вобщем попробую такой вариант, если опять какие подводные камни будут - тогда уже буду делать с подсчётом файлов.

Mortem 28.06.2007 13:34

Как я понял фишка как раз в том, чтобы эти файлы далить, тем самым высвобождая место на флеше. Если их просто переименовывать, то я чего-то в этой проге не понимаю... (:

pspowner 28.06.2007 13:40

Цитата:

Сообщение от Mortem (Сообщение 466064)
Как я понял фишка как раз в том, чтобы эти файлы далить, тем самым высвобождая место на флеше. Если их просто переименовывать, то я чего-то в этой проге не понимаю... (:

Не делины а заменены на обрезанные. Это уже сделано и работает. Вся фишка в том что Сиду нужно чтоб эти файлы ещё и восстанавливались по желанию. Вот тут и засада, что нужно вместо 2х файлов по 32Кб записать 1 и 1.5 мегабайтные, а места для них после тюнинга может не быть. Вот я и предлагаю 32КБтные не удалять, а переименоваь.

SееD 28.06.2007 13:54

да и отлично. 240 кб свободного места там без всяких извращений остается, так что 2*32 влазят как дети в школу!

а потом просто проверить размер залитого шрифта и если он окажется не такой как надо, то потереть его наф, правильно переименовать малышей и пнуть юзера чтобы тюнинг убирал)

pspowner 28.06.2007 14:53

Тока есть 1 трабла, после моей программы, если места было недостаточно, у юзера места на flash0 точно не будет, брик он не получит, но путь ему только в рекавери на откат.

Хотя для тех у кого место есть, никаких проблем - всё будет работать на ура.

SееD 28.06.2007 18:48

ах вот почему мне откат делать пришлось))))))) хитрый какой косяк...

pspowner 29.06.2007 10:20

Цитата:

Сообщение от SееD (Сообщение 466255)
ах вот почему мне откат делать пришлось))))))) хитрый какой косяк...

Дык яж написал что место забивается... Вобщем буду делать определение места с подсчётом фалов, как пс2дев и Мортем советует... пока беру паузу до понедельника.

SееD 18.07.2007 12:02

ап)


Текущее время: 12:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.