Автор Тема: Технические вопросы по 16-биткам  (Прочитано 161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн StRyK

  • Пользователь
  • Сообщений: 817
  • Пол: Мужской
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #30 : 25 Декабрь 2024, 10:50:31 »
Если в картридж записываются только параметры прогресса объемом не более 1-3 кб, зачем тогда эту информацию "оптимизировать"? Чтобы что?
Потому что ее в любом случае нужно оптимизировать, иначе это будет уже сейвстейт, который весит дофига


Нулики и есть пустота. 1 - есть заряд ячейки памяти, а 0 - нет заряда.
Пустота - это чередование одних и тех же значений, не представляющих из себя какую-то закодированную информацию. 0 - не пустота, это равноценная единица создания кода.



Оффлайн Vlad666

  • Пользователь
  • Сообщений: 473
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #31 : 25 Декабрь 2024, 10:53:11 »
Так на современных SSD и HDD та же фигня. В файловой системе NTFS, например, называется размер кластера.

Размер кластера - это не про то. Физически незаполненное пространство SSD и HDD абсолютно пустое, если не считать удаленную информацию, которую можно восстановить. Но это тоже не о том))).

Оффлайн StRyK

  • Пользователь
  • Сообщений: 817
  • Пол: Мужской
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #32 : 25 Декабрь 2024, 10:56:46 »
Так на современных SSD и HDD та же фигня
На современных жестких дисках мы можем контролировать информацию, которая на них сохраняется. И сейвы у нас теперь разных размеров, а не исключительно блоками по 8 кб.

Ну, и жесткие диски более гибкие, на них производится дефрагментация, которая в целом оптимально размещает информацию на диске.

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 473
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #33 : 25 Декабрь 2024, 10:58:39 »
Потому что ее в любом случае нужно оптимизировать, иначе это будет уже сейвстейт, который весит дофига

Да с чего он будет весить дофига, если исходная информация, например, весит 3 кб? Консоль, записывая прогресс прохождения, не создает образ ОЗУ, а просто передает в SRAM отдельные параметры игры. Не путай оригинальную консоль с эмулятором, который создает образ ОЗУ.

Пустота - это чередование одних и тех же значений, не представляющих из себя какую-то закодированную информацию. 0 - не пустота, это равноценная единица создания кода.

0 - это отсутствие заряда в ячейке памяти. Чередование 1 и 0 - это информация, но если речь идет о пустой области памяти, то там только нули, т.е. сплошное отсутствие заряда по всем адресам, а значит это пространство считается пустым. Когда консоль записывает сейв в SRAM, она вообще не делает обращения к этим ячейкам памяти, которые ей не нужны. С чего вы взяли, что пустое пространство не совсем пустое?
« Последнее редактирование: 25 Декабрь 2024, 11:49:35 от Vlad666 »

Оффлайн StRyK

  • Пользователь
  • Сообщений: 817
  • Пол: Мужской
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #34 : 25 Декабрь 2024, 11:05:28 »
Да с чего он будет весить дофига, если исходная информация, например, весит 3 кб? Консоль, записывая прогресс прохождения, не создает образ ОЗУ, а просто передает в SRAM отдельные параметры игры. Не путайте оригинальную консоль с эмулятором, который создает образу ОЗУ.
Исходная информация - это и есть ОЗУ. Из этого ОЗУ тебе надо извлечь данные, которые в будущем позволят игроку вернуться к такому же исходному состоянию. Ты не можешь перенести все ОЗУ в 8 кб. Тебе надо вычленить лишь ключевые моменты - это и есть шифр, код, пароль - назови как хочешь. Иными словами, внутри игры создается кодировщик, который способен создавать код текущего состояния ОЗУ, по которому в будущем его снова можно будет воспроизвести.



С чего вы взяли, что пустое пространство не совсем пустое?
С того, что используется всегда все пространство, какой бы информация ни была. Отличный пример этому - карта памяти пс1. Каждая игра обязана использовать весь блок в 8 кб и ни бита меньше, если хочет сохранить прогресс.

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 473
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #35 : 25 Декабрь 2024, 11:41:04 »
Исходная информация - это и есть ОЗУ. Из этого ОЗУ тебе надо извлечь данные, которые в будущем позволят игроку вернуться к такому же исходному состоянию. Ты не можешь перенести все ОЗУ в 8 кб. Тебе надо вычленить лишь ключевые моменты - это и есть шифр, код, пароль - назови как хочешь. Иными словами, внутри игры создается кодировщик, который способен создавать код текущего состояния ОЗУ, по которому в будущем его снова можно будет воспроизвести.

Исходная информация о прогрессе - это список параметров прогресса (прокачка, очки, инвентарь, деньги и др.) в данный момент времени. ОЗУ - это состояние всей игры (прогресс, код движка, положение врагов и игрока и др.) в данный момент времени. Игре достаточно взять параметры прогресса и записать их в SRAM, не парясь с кодированием всей ОЗУ. Даже если игра будет кодировать состояние ОЗУ, то на это уйдет огромное количество времени, учитывая скорость работы тогдашних процессоров. И на декодирование уйдет тоже много времени. Ни старые, ни новые игры не создают код состояния ОЗУ. В этом просто нет никакого смысла. Проще и быстрее записать в SRAM отдельные параметры ОЗУ, имеющие отношение к прогрессу в игре. Из-за этого, когда игрок загружает сейв на 16-bit играх, он видит не тот самый момент, который он сохранил, а, например, начало уровня, но с сохраненным инвентарем и прокачкой персонажа. Игра запускается заново, но с некоторыми сохраненными параметрами, связанными с прогрессом. Иначе игры на SNES не просто запускались бы с сохраненным прогрессом прокачки персонажа, но даже с сохраненной позицией игрока с точностью до "миллиметра", и даже враги находились бы в тех позициях, на которых они были в момент сохранения.

Ты пишешь о какой-то дичи. У меня такое ощущение, что ты судишь о железе консолей по поведению эмуляторов. Эмуляторы создают либо весь образ ОЗУ, либо они создают образ всего SRAM вместе с пустым пространством. Об этом я писал выше. То же самое происходит при создании образов ПЗУ картриджей и даже CD. А кодировать 64 кб ОЗУ в 3 кб SRAM - это уже 7z архиватор с ультра сжатием. Для консолей того времени - это фантастика. Можно закодировать количество денег и инвентарь в 32 значный код, но закодировать ОЗУ в код нереально. Это невозможно по законам математики.

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

С того, что используется всегда все пространство, какой бы информация ни была. Отличный пример этому - карта памяти пс1. Каждая игра обязана использовать весь блок в 8 кб и ни бита меньше, если хочет сохранить прогресс.

Если PS1 использует все 8 кб, значит информация о прогрессе весит 8 кб. Если же информация весит меньше, тогда остальная часть карты будет пустой или зарезервированной для других сейвов (если в игре несколько ячеек для сохранений), "заполненной" одними лишь нулями. Игра даже не будет считывать информацию, выходящую за рамки адреса определенного сейва. Для каждого сейва свое адресное пространство в SRAM. Поэтому, когда игра читает сейв в SRAM, она ограничивается в этот момент адресом сейва. Даже если SRAM будет объемом в 1 гб, игра все равно будет считывать только адресное пространство сейва в 3 кб. И запись будет тоже ограничена этим адресом.

Я не исключаю, что если в SRAM записывается только один сейв, то игра может считывать при загрузке прогресса весь SRAM, включая его пустые области. Такое вполне возможно и, скорее всего, такое было часто. Но даже в этом случае пустые области остаются пустыми.

Но если рассуждать философски, то да, даже пустота - это некая информация. Но я не о философии, а ты, походу, философствуешь))).
« Последнее редактирование: 25 Декабрь 2024, 14:19:38 от Vlad666 »

Оффлайн Nhisti

  • Пользователь
  • Сообщений: 980
    • Просмотр профиля
Технические вопросы по 16-биткам
« Ответ #36 : 29 Декабрь 2024, 22:58:37 »
Мега CD - отдельная платформа
Это не отдельная платформа - это просто дополнение для использования дисков вместо картриджей, такая же, как была у PC Engine, например. Если бы изначально МД вышла с дисками вместо картриджей в качестве основного носителя, у неё бы была такая же графика с ограничением в 64 цвета, такие же просадки производительности в Роад Рашах и т.п., но за счёт диска она бы имела возможность проигрывать музыку в CD-качестве, ролики full motion video и гораздо больший объём памяти для самих игр - то есть то, что и делала Mega CD, но это не делает её другой платформой.