Как стать автором
Обновить

Комментарии 8

А для чего эти циклы нужны были изначально?

если на старте\переключении уровней, то вангую что это загрузка ресурсов (текстуры, спрайты, музыка и т.д. — организованные в виде списков, деревьев или массовов блоков). И «конец массива ресурсов» может быть не только явный, но и «выход за границы» памяти. («а что, игра же не крешится!» — я такое у железячных игроделов видел не раз)
Немного напоминает историю про кривой ПК порт Deus Ex: Invisible War, который нужно было запускать под Windows, выгрузив максимально все остальные запущенные программы. Потому что эта игра пыталась напрямую лезть в первые 64МБ оперативной памяти, как в оригинальном XBOX, и если что-то было запущено и память в этой области была не доступна — игра зависала.

В первые 64 мегабайта физической памяти? Кто ей даст делать это из пространства пользователя?

может я неточно запомнил, но я читал, что в игре напрямую записаны физические адреса памяти приставки, и что, возможно, проблема возникает при трансляции адресов. может требовалась наличие непрерывных 64МБ свободной памяти, которая выделяется при запуске игры.

Было бы интересно почитать на эту тему. Я попытался поискать, но находил лишь 64 мБ требований к видеопамяти.

Скорее всего, речь идёт о первых 64 мегабайтах виртуальной памяти. А выгружать надо не "все остальные запущенные программы", а все программы, которые внедряют свои dll в чужие процессы.

«Они посадили меня писать код для Hello Kitty, я говорил им, что способен на большее, но никто меня не слушает! Я докажу им и всем вокруг, создам самую элегантную, простую и эффективную DRM защиту из когда-либо существовавших. Сделаю ненавистную Hello Kitty — легендой и тогда они прозреют!»
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории