Обновить

Пишем историю игрушки:  восстанавливаем исходный код игры «Поле Чудес» 1992 года для MS-DOS

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели17K
Всего голосов 186: ↑186 и ↓0+240
Комментарии55

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

И интересно, и ностальгия (да-да, играл когда вышла!), и вот это все - спасибо!

Это было круто. Приятно и интересно читать. Приятно вспомнить о этой игре. О программировании тогда... Круто.

Спасибо за статью

Только на момент разоаботки это была игра для крутых. Даже не все счастливые обладатели IBM PC-совместимых машин могли воспользоваться. CGA? Мимо! Поэтому один автор через два года написал игру, почему-то ныне менее известную, с подобным функционалом, но для более доступной платформы...

https://worldofspectrum.org/software?id=0028092

А на платформе БК0010 игра по угадыванию слов с довольно минималистической графикой была, наоборот, ещё до открытия телепередачи. Один преподаватель информатики решил её усовершенствовать - пустил дочь за головную машину (ДВК) и попросил набрать дополнительный словарь из нескольких сотен слов. Теперь понимаю, что затем он некой утилитой перевёл текст из КОИ-7Н2 в КОИ-8Р, чтобы заработало на БК.

Только на момент разоаботки это была игра для крутых. 

"Для крутых" инженеров в НИИ и КБ?

Там тоже EGA на соотв. момент было редкостью. И к таким машинам пускали только достаточно пряморуких, чтобы не сломали дорогую вещь.

По сути игра вышла в 93-м, как я понимаю. У одного моего одноклассника уже был 286-й c VGA (EGA естественно поддерживалось тоже). Ну да, семья номенклатурщика. А у другого был 386-й (папа завкафедрой местечкового ВУЗа).

Ну и, XT-шки и 286-е вполне уже встречались на предприятиях, и спец.допуска никакого не требовалось ) Многие в детстве у мамы/папы на работе и познакомились с IBM PC.

.

Еще, касательно "редкости EGA"... В 92 году было выпущены игры от Gamos: "Балда", "Цветные линии" (Color Lines), в 91-м "Гороскоп" от Dice Soft, и еще куча всяких обучалок (вроде клавиатурного тренажера) и развлекалок (вроде "аракула" и "фито-справочника") для бухгалтерш, которые на ряду с "Полем чудес" были завсегдатаями директории GAMES. Все они были для EGA.
Да что там... "Перестройка" вышла в 1990-м, которая тоже EGA-шная.
Выходит, что не редкость, а самый что нинаесть стандарт начала 90-х.

Что довольно странно, попадались и чуть более поздние игры с возможностью перключения на CGA.

И это в основном игры от компаний, которые делали игры с начала 80-х. У них уже было что-то вроде движков, которые они развивали стараясь сохранять совместимость со старым железом. Ну раз оно уже реализовано типа. С целью охватить большую аудиторию. Так что иной раз игра 94-го года имела поддержку GERCULES, CGA, EGA, VGA, как и в плане звука - от PC SPEAKER и TANDY SOUND, до SOUND BLASTER AWE 32.

Для пост-СССР, где IBM PC начали распространятся эдак с 90-го, как раз всякие CGA, TANDY были редкостью, тогда как на западе у народа этого старья было еще навалом.

Оргагизации оснащали в т.ч. разнообразными советскими клонами XT, а они почти все с CGA.

я видел только один раз советский клон в организации... И он использовался только для одной задачи - передавать что-то там по спец.связи. Видимо потому что был сертифицирован для этого.

Их никак не назовешь массовыми. Даже в рамках использования на предприятиях.

Да и мы же тут вроде про 90-е говорим?

Для пост-СССР, где IBM PC начали распространятся эдак с 90-го, как раз всякие CGA, TANDY были редкостью, тогда как на западе у народа этого старья было еще навалом.

Все советские клоны IBM PC (EC1840-1842/Искра 1030-1031/Нейрон/Поиск/Истра4816/Электроники МС/итдитп) были поголовно с CGA, исключением была ЕС1840 первых выпусков где вообще был текстовый MDA. EGA в советских клонах отсутствовал как класс, так как СЭВ смог освоить только выпуск аналога Motorola 6845, но тот тоже был дефицитом.

Другое дело, если советский клон был с шиной ISA, тогда в него можно было воткнуть EGA видяху, к которой можно было подключить обычны CGA монитор (с соответствующими ограничениями). Но если хотелось получить максимальные 640х350х16 (с палитрой в 64 оттенка) то нужно было раскошелится на настоящий EGA монитор.

ЕС-1842 был вполне себе с EGA.
А ведь он был далеко не последним клоном PC/XT/AT в линейке ЕС.

Если верить интернету, то там была вполне буржуйская EGA на чипе Cirrus Logic

Советских машин того времени стандарт:

Был набор м/сх серии 1843, 4 м/с. Не клон. Были видеоплаты EGA для ЕС-1842, ЕС-1843 (эта по формату как 1841), для ЕС-1849 и 1851 (ISA-8), и искровские (в ISA-формате и в искровском). У Поиска EGA была на иностранной м/с.

https://t.me/retrocomps/328077

Они были (цитировнный текст писал я), но в общем объеме выпуска их доля была незначительна. Не назовешь словом "стандарт". И появились они уже когда отечественные IBM совместимые компьютеры были не особо актуальны. А массово на отечественных IBM-совместимых был CGA и монитор-колокольчик. А то и просто телевизор.

И вот у большинства (выпущенных ЕС (а это 1840.05, 1841 и 1845) был CGA адаптер. По этой табличке - у 79%.
https://www.computer-museum.ru/histussr/es_pevm.htm

особенно в 1997 году это чудо кибернетики было актуально :))

хотя оно на момент начала выпуска уже было устаревшим никому не нужным гавном. Так что совершенно не важно, CGA там были или циферблат на лампах...

В 80-х эти крупорушки юзали толкьо инженеры АСУ и два с половиной студента.
А настоящая компьютаризация пост-совка началась в начале 90-х, а тогда из-за бугра приехали уже машины с EGA/VGA,

Спасибо за статью, поддержу комментарием, такую штуку на хабре не каждый день встретишь.
Работа титаническая, действительно воскрешение классики

О, Кинг отличная игра, не один час провёл. Если мне не изменяет память у меня на диске были King и King 2. Правда уже не помню чем отличались, но выглядели одинаково.

Помню, играл. Поле чудес было и castle (где две крепости ядрами перестреливаются)

Меня все это время мучает вопрос: когда миллион выбираешь вместо приза - анимация с купюрами заканчивается, или там бесконечный цикл?

Заканчивается. Там честный миллион.

В то время играл в неё на 286, и мне вдруг стало интересно узнать, как будет выглядеть этот миллион на экране, если его выбрать.

...Минут через 15 доступ к компу был возвращён через Reset.

100 000 червонцев - 25 в секунду = 4000 секунд = примерно 1 час

Всплакнул. От гордости что такие парни вскрывают забытый код. Функцию отрисовки я отлаживал на ассемблере а потом вставлял в виде инлайн кода в паскаль. И кстати это был вроде паскаль 4.5 хотя в процессе разработки уже появился 5.0

TP 5.0 вышел в 1988 году. 5.5 в 89-м. А версии 4.5 вообще не было.

А в процессе разработки (92-й год) уже BP 7.0 вышел. Хотя, понятно, что до России версии доходили с некоторым лагом. Но...

Значит 4.0 - учебник и АПИ точно пользовал 4.0 - почему не С? Потому что скорость компиляции ТурбоПаскаля была невероятна. Про процесс разработки год - порадовали)) Я игру за 1-2 недели февраля 1992-ого года написал к дню рождения будущей жены)

ну, я ж не имел ввиду, что на разработку целый год, я имел ввиду, что в 1992-ом (когда делалась игра) BP 7.0 вышел.

В EXE-файле первой версии POLE есть строчки "Copyright (c) 1987,1988 Borland international" и "BGI Device Driver (EGA/VGA) 2.00 - Mar 21 1988".

Эта версия EGAVGA.BGI шла в TP 5.0. И да, в нем все еще приходилось inline-вставки делать, встроенный ассемблер появился только в TP 6.0.

Специально скачал TP 4.0, посмотрел, там в EGAVGA.BGI строка "BGI Device Driver (EGA/VGA) V 1.00 - september 1987".

Простите, что придолбался :)

Вадим, спасибо вам в первую очередь, для меня это большая честь. Приключение было невероятным)

О, по стопам любимой статьи на Хабре выпустили хабратортовый реверс, спасибо за труд!

Девушка проходит по всем совпадениям букв, и если совпадений больше не остаётся — отправляется на x = 1000 (причём Вадим уверяет девушку, что там есть буква):

но как-только заходит за 583 пиксель ее жизнь(цикл) завершается.

Прям сюжет для Черного Зеркала.

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

А логика не к этим же байтам привязана? Было бы интересно разобрать какие-нибудь аномальные варианты при выходе за границы предусмотренного автором массива

Причём colorkey, похоже, зависит от типа ресурса

В каких-то DOS'овских программах точно был хак: "прозрачный" цвет берется из пикселя в левом верхнем (вроде) углу ресурса

именно - даже проще - первая горизонталь картинки была фоном

"Восстанавливаем историческую справедливость"
для тех, кто не в курсе — что там за Ричард?

«Поле Чудес» — нелицензионная (но разрешенная) копия американского шоу «The Wheel of Fortune». В конце XVIII века вышла пьеса с таким же названием, автор — Ричард Камберлэнд. Видимо, в честь него.

А еще гугление подсказывает, что есть какая-то телефонная игрушка «Rise of Kingdoms», в которой главный (?) персонаж — Richard І The Wheel of Fortune.

Но точный ответ надо узнавть у автора статьи.

Ох, какая интересная гипотеза! Но на самом деле — это Ричард Гир, который приехал в Нижний Новгород, и встретил там Вадима Башурова — автора оригинальной игры, пруфы

Вон оно как... А я уж начал классическую английскую литературу вспоминать... :-)

Спасибо, ЧатЖПТ

Есть еще интересный вопрос - откуда у Поля Чудес несколько модифицированных версий, до сих пор гуляющих по сети? Доступ к исходникам? Злые хакеры? Альтернативные авторские версии?

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

Есть еще версия с раундами в духе 1/64, 1/32 и т.д. финала и, если память не подводит, версия где больше одного не компьютерного игрока.

так это вроде авторская версия, просто чуть более поздняя. Ну, пусть меня @PapaBubaDiop поправит, если это не так.

Игра скомпилирована как и Морской бой в ДЕБАГ режиме. А об отключении этого режима лишь через пару лет узнал

Великолепная работа! Апплодирую стоя. Хабр — торт!

Ждём версию игры нового поколения — на чистом HTML + CSS! Ну ладно, можно немного JS.

Ставлю лайк, хоть и не знаю ассембли

>> игра написана на Turbo Pascal (раз 1992 год, то самые вероятные версии — 5.0, 5.5 или 6.0);

Одобряю :)

Огромная работа и великолепная статья! Отдельное спасибо за большое количество анимаций - безумно интересно не только в голове представлять, но и видеть как это всё реально работает!

Спасибо за качественное оформление статьи - очень добротно сделано и заметно, что много сил потрачено

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации