Зачем нужен аккаунт на Viva-Games?
Пользователи, у которых есть аккаунт, могут сохранять игровой процесс на сервер в любой игре и создавать списки игр (как на Youtube, например).
Создание аккаунта абсолютно бесплатно и займёт всего минуту Вашего времени.
Для создания аккаунта просто кликните в блоке "Войти на сайт" иконку социальной сети, в которой у вас уже есть активный профиль и следуйте подсказкам.
Jet Set Mini
https://viva-games.ru/game/jet-set-miniJswmm.co.uk (Сайт), 2017
Авторы: Ian Rushforth (IRF), Andy Ford (Spider)
Жанр: Платформеры
Язык
- Русский
- English
Управление
- Интерфейс 2(?)
- Кемпстон джойстик(?)
- Клавиатура(?)
Максимум игроков
- Один
Рассказать друзьям
Доступные версии
Доступные версии
- Аннотация
- Описание (пер.)
- Информация
- Аннотация
- Описание
Масштабный и технически изощренный ремейк культовой платформенной игры “Jet Set Willy” для ZX Spectrum, выполненный с огромным уважением к оригиналу, но при этом значительно его превосходящий.
Ключевые особенности:
Переосмысленный особняк: Игровое пространство основано на уменьшенной и зеркально отраженной версии оригинала, что создает ощущение знакомой, но новой классики.
Техническое совершенство: Это не просто перерисовка. Игра является демонстрацией возможностей движка ZX Spectrum 48K. Разработчики использовали продвинутые техники, такие как “Patch Vectors”, чтобы добавить множество спецэффектов, новых типов врагов, анимаций и механик, невозможных в 1984 году.
Исправление исторических ошибок: В проекте тщательно исправлены знаменитые баги оригинальной “Jet Set Willy” (включая “чердачный баг”, ошибки с веревками и графические артефакты), что делает геймплей более честным и отполированным.
Богатый контент: Несмотря на приставку “Mini”, игра предлагает 36 комнат, 100 предметов для сбора и множество врагов, как из оригинала, так и заимствованных из других классических игр (например, “Technician Ted”), а также совершенно новых.
Аутентичность и внимание к деталям: Проект включает новое музыкальное сопровождение (вариант “Марша Радецкого”), тщательно проработанную графику и сохраняет дух и геймплейную механику оригинала, что оценят поклонники жанра.
Jet Set Mini
Иэн Рашфорт и Энди Форд |
(jswmm.co.uk)
с музыкой Ричарда Халласа
«Jet Set Mini» — это переработанная версия классической игры Мэтью Смита «Jet Set Willy» для ZX Spectrum 48K. В неё можно играть на настоящем Spectrum, на Sinclair ZX Spectrum Vega/Vega+, а также на компьютере, игровой консоли или другом устройстве с помощью эмулятора ZX Spectrum.
В «Jet Set Mini» оригинальный особняк Вилли несколько уменьшен в масштабе. Но размер — это ещё не всё! Значительная часть кода, высвобожденного за счёт сокращения макета, была переработана для добавления в игру целого ряда спецэффектов!
Многие из этих изменений реализованы с помощью инструментов, известных как «Patch Vectors», которые вызываются для каждой комнаты отдельно. Также в игровой движок внесён ряд общих изменений и улучшений. Однако суть этой 8-битной 48K-игры будет хорошо знакома ценителям «Jet Set Willy». Надеемся, она вам понравится!
Содержание
I. Благодарности
II. Инструкции
III. История игры
IV. Технические нововведения
V. Исправления ошибок
VI. Юридическая часть
VII. Заключение
I. Благодарности
Авторы хотели бы выразить свою благодарность:
Мэтью Смиту, создателю оригинальных игр «Jet Set Willy» и «Manic Miner».
Доктору Эндрю Броду за его перевёрнутую версию «Jet Set Willy» под названием «ylliW teS teJ», которая послужила отправной точкой для разработки «Jet Set Mini». Также выражаем благодарность Эндрю за опубликованную техническую документацию (http://www.oocities.org/andrewbroad/spectrum/willy/), за советы на ранних этапах разработки «Jet Set Mini» и за создание и управление группой Manic Miner & Jet Set Willy на Yahoo! (https://groups.yahoo.com/neo/groups/manicminerandjetsetwilly/info).
Джону Эллиотту за его превосходный редактор JSW Editor (JSWED, http://www.seasip.info/Jsw/jswed.html), который стал основным инструментом для создания игры, и за сопроводительную документацию к JSWED. Также был реализован патч Джона «Adjacent Ropes», а также патч, предложенный Джоном, с инвертированной латеральной стороной, который гарантирует, что направление взгляда Вилли и кадр анимации будут сброшены в начале каждой игры.
Рихарду Халласу за музыку к «Маршу Радецкого» (первоначально написанному Иоганном Штраусом-старшим); вступление к маршу используется в качестве заставки, а основная часть марша — в качестве внутриигровой мелодии. Более ранняя, сокращённая версия «Марша Радецкого» была написана Рихардом для игры «Jet Set Willy Ivy» Филиппа Би. Документ Рихарда «A Miner Triad» (http://hallas.net/Software/music.htm) — бесценное руководство по созданию музыки для игр JSW/Manic Miner. Его вклад в «Jet Set Mini» знаменует возвращение Рихарда на сцену JSW/MM после почти двадцатилетнего перерыва!
Ричарду Даймонду («SkoolKid») за его полные дизассемблированные версии Jet Set Willy и Manic Miner (http://skoolkid.github.io/jetsetwilly/ и http://skoolkid.github.io/manicminer/), которые сыграли решающую роль в реализации многочисленных модификаций и оптимизаций кода в «Jet Set Mini».
Джеффу Эдди за его Patch Vectors, многие из которых были использованы в «Jet Set Mini» в модифицированном виде. Подробные дизассемблированные версии Patch Vectors Джеффом и его исчерпывающая документация по игровому движку «Geoff Mode» также оказались чрезвычайно полезными при адаптации патчей для наших целей. Архивные версии этих веб-страниц доступны через Wayback Machine:
(https://web.archive.org/web/20080511161939/http://www.cix.co.uk/~morven/jsw/patches.html),
(https://web.archive.org/web/20030818082654/http://www.cix.co.uk:80/~morven/jsw/geoffmode.html).
Дэниелу Громанну за создание некоторых векторов патчей в игре, в частности, стражей, меняющих цвет, в комнатах «Охранник особняка» и «Площадка на первом этаже», а также за пасхалку в «Первой посадке». Дэниел и Иэн Рашфорт также совместно создали «Свистящие стрелы» и «Мерцающие стрелы», ранние версии которых появлялись в специальном издании великолепной игры Дэниела «Новый особняк Вилли», а теперь они пролетают сквозь экраны бального зала в «Jet Set Mini». Дэниел проводил обширное игровое тестирование «Jet Set Mini» на разных этапах разработки игры, а его веб-сайт JSW Central (www.jswcentral.org) является богатым источником информации об играх JSW и MM.
Стюарт Брэди, за исправление ошибки CellGraphics и полезное объяснение принципа работы различных «экранных буферов» в игровом движке JSW (первичных и вторичных буферов, как для файлов отображения, так и для файлов атрибутов). Глубокое понимание принципов работы экранных буферов было необходимо при разработке многих эффектов векторных патчей в «Jet Set Mini».
Стив Марсден и Дэвид Кук за несколько спрайтов из своей игры «Technician Ted». Шрифт персонажей в «Jet Set Mini» также был взят из «Technician Ted».
Питер Харрап за пару спрайтов из своей игры «Wanted: Monty Mole».
Алекс Корнхилл («Sendy») — за невольно вдохновляющие идеи новых типов блоков, высказанные в сообщениях в группе Manic Miner & Jet Set Willy на Yahoo! более десяти лет назад!
«Norman Sword» — за работу по исправлению ошибок «Jagged Finger» и «Delayed Attribute» в оригинальном игровом движке JSW.
Джонатан Грэм Харстон — за «Полный список опкодов Z80, включая недокументированные опкоды» (http://www.z80.info/z80oplist.txt), за документацию по «Jet Set Willy» (http://mdfs.net/Software/JSW/) и за элегантное исправление ошибки паузы.
Джеймсу Моксхэму за его «ZINT Z80 Interpreter» (http://www.z80.info/z80code.htm), представляющий собой весьма информативное введение в набор инструкций Z80, который часто использовался при разработке «Jet Set Mini».
Авторам Binary Hex Converter (http://www.binaryhexconverter.com/), который был стандартным инструментом для преобразования значений между десятичной, двоичной и шестнадцатеричной системами исчисления. Побитовый калькулятор (http://www.miniwebtool.com/bitwisecalculator/) также оказался полезным инструментом.
Команде ZX Spin за их ZX Spin (http://www.zophar.net/sinclair/zxspin.html), который использовал Дэниел Громанн при тестировании.
Яну Бобровски за его эмулятор ZX Spectrum на Qaop/JS HTML5, который использовал Ян Рашфорт при тестировании.
Гюнтер Войгк за его zxsp версии 0.8.pre27 (эмулятор ZX Spectrum для macOS: http://zxsp.blogspot.co.uk), который Ричард Халлас использовал для создания музыки в «Jet Set Mini». Ричард также использовал Z80Em (эмулятор для RISC OS: http://www.borcherds.co.uk/murklesoft/riscos/Z80em.html) и FUSE (бесплатный эмулятор UNIX Spectrum: http://fuseemulator.sourceforge.net/) для переноса музыкального файла.
Клаус Ян за его ZXModules (http://www.zxmodules.de), в частности, ZXBlockeditor, который Энди Форд использовал при создании загрузочного и титульного экранов.
Иэн Рашфорт хотел бы выразить особую благодарность Энди Форду за его невероятное терпение на завершающем этапе разработки «Jet Set Mini», особенно за многократное добавление загрузчика BASIC в финальный файл игры (после создания Иэном нескольких финальных сборок!).
II. Инструкции
Цель игры — провести Вилли и собрать все мигающие предметы, разбросанные по его особняку, избегая движущихся и неподвижных стражей, а также неподвижных существ, которые могут убить вас (например, падение с большой высоты). Собрав все предметы, игроку нужно добраться до главной спальни, где Мария больше не будет блокировать доступ к кровати Вилли. Это нужно сделать до того, как игровые часы достигнут полуночи или у Вилли закончатся жизни. За каждые десять собранных предметов вы получите дополнительную жизнь.
Используйте OLeft, PRight (или комбинацию клавиш верхнего ряда) и ПРОБЕЛ или любую из букв нижнего ряда для прыжка.
AG ставит игру на паузу; любая другая клавиша снимает её с паузы.
HENTER/RETURN включает/выключает музыку.
Одновременное нажатие клавиш SHIFT+ПРОБЕЛ прекращает текущую игру.
В нескольких местах с помощью Patch Vector была введена новая комбинация клавиш, которая позволяет Вилли выйти из «застрявшего» положения на конвейере. Нажмите одновременно клавиши X, O и R.
Игра «Jet Set Mini» прошла полное игровое тестирование, и её можно пройти до 8:15 утра, не потеряв ни одной жизни.
III. История игры
«Jet Set Mini» появился в конце января 2016 года как простой базовый файл «конструктора» для статьи Энди Форда на jswmm.co.uk о том, как добавить загрузчик Speedlock в файл игры JSW (или Manic Miner) размером 48 КБ. Таким образом, в первой версии было всего 12 комнат, и изначально она задумывалась как «заполнитель пространства» для файла на ленте (который должен был быть заменён собственными данными разработчика), а не как самостоятельная игра.
Однако, после небольших доработок в Contributor Lounge на jswmm.co.uk, проект «Jet Set Mini» начал жить собственной жизнью. Теперь в нём 36 комнат, 100 предметов для коллекционирования и полчища стражей (многие из которых взяты из оригинального «Jet Set Willy», некоторые «позаимствованы» из игры «Technician Ted», а несколько совершенно новых восьминогих спрайтов были созданы Яном Рашфортом). Кроме того, по всей игре разбросано множество визуальных, звуковых, статических и динамических спецэффектов.
Выход «Jet Set Mini» в июле 2017 года означает, что проект переживает период созревания, сравнимый с периодом созревания слона! (Может быть, невероятно розовый?) Задержка во многом была обусловлена сочетанием желания Ричарда Халласа завершить свою раннюю партитуру «Марша Радецкого» и его чрезвычайно плотного рабочего графика. Пока Ричард ждал своего вклада, «Дьявол нашёл работу для праздных рук», а Иэн Рашфорт придумал множество спецэффектов, которые в итоге попали в игру. Таким образом, помимо того, что Ричард в конечном итоге написал музыкальное сопровождение, его участие непреднамеренно привело к…
Значительное улучшение проекта! (Ричард извиняется за долгую задержку, но рад, что из этого получилось что-то хорошее!)
IV. Технические новшества
Среди нововведений в «Jet Set Mini» — новые звуковые эффекты, последовательности вспышек на экране, печатные сообщения/функции, совершенно новые типы блоков и стражи, меняющие характеристики или движущиеся по необычным траекториям. Они были адаптированы к комнатам, в которых происходят события, чтобы усилить атмосферу классической игры Мэтью Смита и повысить уровень сложности, не сделав игру СЛИШКОМ сложной для прохождения (надеемся?).
Многие спецэффекты игры реализованы для каждой комнаты по отдельности с помощью инструментов, известных как Patch Vectors. Существует два основных варианта: «Patch Vectors настройки комнаты» (реализуются один раз при каждом входе Вилли в комнату или при его возрождении в комнате после потери жизни) и «Patch Vectors основного цикла» (реализуются многократно в течение каждого игрового «тика», то есть каждый раз, когда основной цикл программы выполняется, пока Вилли находится в определённой комнате).
«Jet Set Mini», пожалуй, одна из самых интенсивно использующих Patch Vectors игр на сегодняшний день. Однако существует также множество спецэффектов, специфичных для отдельных комнат, которые не используют Patch Vectors, а используют существующие «необычные функции» игрового движка JSW 48K (например, комбинированные типы блоков, «недопустимые стрелки» и «недопустимые пандусы»). Это касается, например, всего, что происходит в триптихе комнат Западной стены. (Если вы знаете, что происходит с бочками в «На полпути…», то «Ответы на открытке, пожалуйста?»)
Также где-то в макете присутствует «недопустимая верёвка» (координата x верхнего сегмента верёвки выходит за пределы обычного диапазона 031). Насколько известно авторам, это новая и инновационная функция для опубликованной игры JSW. (Примечание: чтобы Вилли мог более внимательно изучить эту функцию, можно попробовать использовать POKE 59471, 15 или POKE 41372, 27 [выйти из комнаты и войти заново, если ввод POKE динамический], но это, конечно же, будет читерством?…)
Как уже упоминалось в разделе «Инструкции», в «Jet Set Mini» появилась совершенно новая комбинация клавиш XOR, которую иногда можно использовать, чтобы освободить Вилли из «залипшей» ситуации. XOR означает «eXchange Onoff / Reverse». Этот конкретный вектор патча редактирует определение конвейера в текущем буфере комнаты, меняя полярность стандартного конвейера «влево-вправо» или переключая состояние «залипшего» конвейера между включенным и выключенным. В обоих случаях для реализации этого применяется один и тот же логический вентиль (угадайте, какой?).
Внесены и другие «глобальные» изменения в игровой движок. Например, стандартная игровая мелодия JSW 48K состоит из 64 нот (требующих 64 байта данных), но в «Jet Set Mini» это число увеличено до 256 нот (что позволило Ричарду Халласу исполнить расширенный «Марш Радецкого»). Ещё одно новшество заключается в том, что цвет чернил (INK) названия комнаты, отображаемого в строке состояния, теперь определяется индивидуально для каждой комнаты, чтобы дополнить настройки цвета рамки. В оригинальные функции JSW были внесены различные изменения, такие как эффект прокручивающегося сообщения на титульном экране и элементы, циклически меняющие восемь цветов чернил вместо четырёх (оптимизированный вариант функции «Режим Джеффа»).
Конечно, одним из самых заметных изменений является то, что вся раскладка инвертирована вбок, основанная на зеркальном отображении игры JSW «ylliW teS teJ» из сборника «Party Willy» Эндрю Брода. Однако, что касается стражей в «ylliW teS teJ», то только стрелки и вертикальные стражи были идеально инвертированы вбок. В «Jet Set Mini» настоящая инверсия вбок (то есть как пространственная, так и временная) также была достигнута для горизонтальных стражей и верёвок.
В некоторых комнатах отряды стражей одного типа были анимированы несинхронно друг с другом благодаря некоторым несложным манипуляциям с битами, например, различные сегменты ног Чердачной сороконожки (или теперь это Многоножка?), что в результате привело к более «натуралистичному» ползанию. «Jet Set Mini» также является первой игрой JSW48, в которой представлены 128 различных «классов стражей» (#00#7F; класс #7F ранее был запрещён из-за технических ограничений, которые теперь преодолены).
Реализовано множество дополнительных функций, которые здесь не перечислены. Чтобы узнать больше, вам просто нужно сыграть в «Jet Set Mini» и увидеть их в действии! (Или, в некоторых случаях, услышать их, иначе вы пропустите несколько трюков, если играете без звука!)
V. Исправление ошибок
В «Jet Set Mini» исправлен ряд ошибок, присутствовавших в оригинальном игровом движке JSW, в том числе:
Ошибка CellGraphics. Её последствия можно увидеть в оригинальной игре «Jet Set Willy», где она влияет на конвейеры в нескольких комнатах (например, «Tool Shed»). В процессе отрисовки текущей комнаты растровое изображение ячейки может быть повреждено, если байт атрибута цвета этой ячейки совпадает с байтом графических данных, который предшествует ему в данных комнатах. Исправление этой ошибки означает, что вся оригинальная графика JSW в «Jet Set Mini» отображается так, как задумал Мэтью Смит, за исключением, конечно, того, что она перевернута вбок! И любая новая графика ячеек, созданная с помощью этой ошибки, не подвержена влиянию этой ошибки.
Ошибка «Смежные верёвки». В оригинальном игровом движке данные верёвки «выходили за пределы восьми байтов, обычно выделяемых каждой сущности в «буфере стражей». Поэтому любой страж (или другая верёвка), следующий сразу за верёвкой в списке стражей комнаты, мог быть повреждён предыдущей верёвкой. Исправление «Смежные верёвки» предотвращает такое «перетекание» данных верёвки, так что стражи (или другая верёвка) могут безопасно размещаться сразу после верёвки в списке стражей комнаты без повреждения.
Ошибка паузы. Ошибка в исходном основном цикле приводила к «зависанию» программы при постановке и снятии игры с паузы, когда к Spectrum было подключено определённое оборудование. Известно, что некоторые исправления этой ошибки вызывали даже больше проблем, чем исправляли. Исправление, использованное в «Jet Set Mini», не имеет подобных побочных эффектов.
Ошибка с пропущенной нотой. В оригинальной игре «Jet Set Willy» самая первая нота пропускалась в начале первого воспроизведения игровой мелодии при каждом запуске новой игры. Это происходило потому, что при каждом прохождении основного цикла игры переменная, служащая индексом хода воспроизведения мелодии, увеличивалась до выбора ноты для воспроизведения. Благодаря инициализации значения «Music Note Index» значением 255 (#FF в шестнадцатеричном формате) в начале каждой игры вместо нуля, пропущенная нота была восстановлена.
Недостатки «Зазубренного пальца»/«Задержанных атрибутов». Эти недостатки вызваны тем, что копирование буферов отображения и атрибутов в файлы отображения и атрибутов может мгновенно рассинхронизироваться с физическим обновлением строк растровой развёртки экрана. В результате движущиеся спрайты могут на мгновение прерываться и мерцать, а также частично (или, в случае стрелок, полностью) отображаться с неправильным цветовым атрибутом на короткий, но заметный момент. Изменяя последовательность копирования элементов буферов отображения и атрибутов, можно значительно уменьшить или полностью устранить эти эффекты.
Четыре «классические» ошибки в исходных данных игры JSW (включая печально известный «чердачный баг»). Во всех четырёх случаях исправления, реализованные в «Jet Set Mini», существенно отличаются от решений, предложенных Software Projects в их официально выпущенных POKES. (Эти четыре «официальных» POKES-а были получены от хакеров, которые первыми написали издателям, что использовали их для завершения «Jet Set Willy», и поэтому не могут считаться «каноническими».)
Также было исправлено несколько менее известных ошибок в исходных данных игры JSW. В «Бассейне» был «самособирающийся предмет», который автоматически собирался, как только Вилли входил в комнату, поскольку настройка фона ЧЕРНИЛ для комнаты была установлена на белый цвет (предметы собираются, если ячейка комнаты, в которой они находятся, содержит белые ЧЕРНИЛА, что обычно означает, что Вилли их коснулся). После изменения цвета фона ЧЕРНИЛ для комнаты «автосбор» больше не происходит (хотя, если посмотреть на положение предмета в бассейне в «Jet Set Mini», можно пожелать, чтобы он автоматически собирался!). В оригинальной игре «The Beach» также присутствовал «двойной предмет» (то есть два предмета, расположенных в одних и тех же координатах в комнате), которые были разделены в «Jet Set Mini». (На самом деле, если бы это не было сделано, один предмет «автособрался» бы с другим, как следствие реализации предметов, циклически меняющих восемь цветов ЧЕРНИЛ, включая белый!)
Было уделено особое внимание снижению вероятности «бесконечных сценариев смерти» (то есть, когда Вилли сталкивается с неизбежной смертью при входе в комнату, и это повторяется снова и снова, пока все его жизни не иссякнут), особенно когда внимательный игрок не может легко предвидеть такой сценарий или по какой-либо причине считает его несправедливым. Аналогичным образом, была предпринята попытка избежать ситуаций, в которых Вилли может «застрять» (без возможности выбраться, даже жертвуя жизнью, что вынуждает игрока отказаться от текущей игры). В некоторых случаях, чтобы избежать подобных ситуаций, приходилось вставлять «невидимые огненные ячейки» в верхней или нижней части комнат, чтобы Вилли не мог прыгать или падать из одной комнаты в другую, что в противном случае привело бы к преждевременному завершению игры. (Так что, если вы столкнётесь с внезапным и неожиданным, но необычным фатализмом, имейте в виду, что это может быть результатом «жестокости авторов ради доброты»!)
Все предыдущие записи посвящены попыткам устранить ошибки или недоработки в «Jet Set Mini». С другой стороны, новая ошибка была непреднамеренно добавлена во время разработки игры (связана с ошибочной точкой возврата в основной цикл программы).
Это было обнаружено во время игрового тестирования, когда выяснилось, что именно оно стало причиной появления нового впечатляющего «причудливого манёвра». Поскольку этот случайный глюк оказался настолько впечатляющим (если вы обнаружите его, прыгая по особняку, надеемся, вы согласитесь!), и поскольку он достаточно безвреден (на самом деле, он может быть полезен Вилли в определённых обстоятельствах), было решено оставить этот баг на месте!
Что касается более широкой темы «причудливых манёвров», разрешённых игровой механикой JSW, это один из самых спорных аспектов игр JSW. Независимо от того, возникают ли они из-за «ошибок» в коде или считаются «интересными причудливыми функциями», которые можно эксплуатировать, это может стать предметом жарких споров! Некоторым игрокам нравится возможность выполнять манёвры, которые, казалось бы, противоречат «законам физики Вилли»; В то время как другие находят их довольно отталкивающими, особенно если игра разработана таким образом, что её невозможно пройти без предварительного знания подобных трюков.
«Jet Set Mini» пытается найти баланс в этом отношении. Доступные исправления ошибок, которые исключали бы использование необычных приёмов, в игре не реализованы (зачем портить удовольствие тем, кто хочет их использовать?). Следовательно, в игре есть ряд мест, где игрок может найти способ сократить путь, используя несколько необычных манёвров (в том числе несколько совершенно новых!). Тем не менее, вполне возможно пройти игру, не полагаясь на эти «странности»!
VI. Юридическая информация
«Jet Set Mini» — бесплатное программное обеспечение, и все его инновационные элементы могут быть свободно использованы в других проектах. В этом случае, пожалуйста, укажите авторство.
VII. Заключение
Надеемся, вам понравится играть в «Jet Set Mini» так же, как нам — писать её! Также ознакомьтесь с родственным проектом «Jet Set Mixup», выпущенным в тот же день.
Если у вас есть вопросы, комментарии или отзывы, свяжитесь с нами по адресу электронной почты ниже или посетите наше сообщество Jet Set Willy & Manic Miner на сайте jswmm.co.uk, чтобы присоединиться к обсуждениям на Willy!
Иэн Рашфорт и Энди Форд, 21 июля 2017 г.
projects@jswmm.co.uk
Играйте в Jet Set Mini без эмуляторов прямо на сайте. Эта игра-платформер, изданная в Сайт в 2017 году компанией Jswmm.co.uk, которую написали Ian Rushforth (IRF) и Andy Ford (Spider).
A large-scale and technically sophisticated remake of the cult platform game “Jet Set Willy” for the ZX Spectrum, respectful of the original yet significantly superior.
Key Features:
Reimagined Mansion: The gameplay environment is based on a scaled-down and mirrored version of the original, creating a familiar yet modern classic.
Technical Excellence: This is not a simple remake. The game showcases the capabilities of the ZX Spectrum 48K engine. The developers mastered advanced techniques such as “Patch Vectors” to add numerous special effects, new enemy types, animations, and mechanics that were impossible in 1984.
Historical Bug Fixes: The project meticulously fixes the notorious original bugs of “Jet Set Willy” (including the “attic bug,” rope issues, and graphical artifacts), making the gameplay more accurate and polished.
Rich Content: Despite its “Mini” prefix, the game offers 36 rooms, 100 items to collect, and a variety of enemies, both from the original and borrowed from other classic games (such as Technic Ted), as well as completely new ones.
Authenticity and Attention to Detail: The project includes a new musical score (a version of the “Radetzky March”), meticulously crafted graphics, and preservation of the spirit and gameplay mechanics of the original, which are prized by genre veterans.
Jet Set Mini
by Ian Rushforth & Andy Ford |
(jswmm.co.uk)
with music by Richard Hallas
‘Jet Set Mini’ is a redesign of Matthew Smith’s classic ZX Spectrum 48K game ‘Jet Set Willy’. It can be played on a real Spectrum, on the Sinclair ZX Spectrum Vega/Vega+ or on a computer, game console or another device using a ZX Spectrum emulator.
In ‘Jet Set Mini’, Willy’s original mansion has been somewhat reduced in scale. But size isn’t everything! Much of the code which was freed up by paring back the layout has been recycled, in order to insert a whole host of special effects into the game!
Many of these changes are implemented via tools known in the trade as ‘Patch Vectors’, which are called up on a roomspecific basis. There are also a number of generic modifications and enhancements to the game engine. However, the essence of this 8bit, 48K game will be very familiar to connoisseurs of ‘Jet Set Willy’. We hope you enjoy it!
Contents
I. Acknowledgements and thanks
II. Instructions
III. Game history
IV. Technical novelties
V. Bug fixes
VI. The legal bit
VII. Closing remarks
I. Acknowledgements and thanks
The authors would like to express their gratitude to:
Matthew Smith, creator of the original ‘Jet Set Willy’ and ‘Manic Miner’.
Dr Andrew Broad, for his laterallyinverted version of ‘Jet Set Willy’, titled ‘ylliW teS teJ’, which formed the starting point for the development of ‘Jet Set Mini’. Thanks also to Andrew for his published technical documents (http://www.oocities.org/andrewbroad/spectrum/willy/), for his advice during the early stages of development of ‘Jet Set Mini’, and for establishing and managing the Manic Miner & Jet Set Willy Yahoo! Group (https://groups.yahoo.com/neo/groups/manicminerandjetsetwilly/info).
John Elliott, for his excellent JSW Editor (JSWED, http://www.seasip.info/Jsw/jswed.html), which was the main tool used to create the game, and for JSWED’s accompanying documentation. John’s ‘Adjacent Ropes’ patch has also been implemented, as well as a laterallyinverted version of a patch suggested by John to ensure that Willy’s facing direction and frame of animation are reset at the start of each game.
Richard Hallas, for scoring the ‘Radetzky March’ (originally composed by Johann Strauss Sr.); the introduction to the March is used as the title screen tune, and the main part of the March is used as the ingame tune. An earlier, shorter version of the ‘Radetzky March’ was scored by Richard for Philip Bee’s game ‘Jet Set Willy Ivy’. Richard’s document ‘A Miner Triad’ (http://hallas.net/Software/music.htm) is an invaluable guide to creating music for JSW/Manic Miner games. His input to ‘Jet Set Mini’ marks Richard’s return to the JSW/MM scene after a hiatus of almost twenty years!
Richard Dymond (‘SkoolKid’), for his complete Jet Set Willy and Manic Miner disassemblies (http://skoolkid.github.io/jetsetwilly/ and http://skoolkid.github.io/manicminer/), which were absolutely instrumental to the implementation of numerous code modifications and optimisations in ‘Jet Set Mini’.
Geoff Eddy, for his Patch Vectors, many of which have been used in ‘Jet Set Mini’ in modified form. Geoff’s detailed disassemblies of his Patch Vectors, and his comprehensive documentation of the ‘Geoff Mode’ game engine, were also extremely useful when adapting patches for our purposes. Archived versions of these webpages are accessible via the Wayback Machine:
(https://web.archive.org/web/20080511161939/http://www.cix.co.uk/~morven/jsw/patches.html),
(https://web.archive.org/web/20030818082654/http://www.cix.co.uk:80/~morven/jsw/geoffmode.html).
Daniel Gromann, for creating some of the Patch Vectors in the game; specifically the colourchanging guardians in the rooms ‘The Mansion Security Guard’ and ‘Ground Floor Landing’, and the ‘Easter egg’ message in ‘First Landing’. Daniel and Ian Rushforth also cocreated the ‘Swooshing Arrows’ and ‘Shimmering Arrows’, earlier incarnations of which appeared in the Special Edition of Daniel’s excellent game ‘Willy’s New Mansion’, and which now shoot through the Ballroom screens in ‘Jet Set Mini’. Daniel carried out extensive playtesting of ‘Jet Set Mini’ at various stages of the game’s development, and his JSW Central website (www.jswcentral.org) is a rich source of information on JSW & MM games.
Stuart Brady, for his CellGraphics Bug Fix, and for his helpful explanation of the way that the various ‘screen buffers’ work in the JSW game engine (primary and secondary buffers, for both the display and attribute files). A deep insight into how the screen buffers operate was essential when devising many of the Patch Vector effects in ‘Jet Set Mini’.
Steve Marsden and David Cooke, for a number of sprites from their game ‘Technician Ted’. The character font used in ‘Jet Set Mini’ was also sourced from ‘Technician Ted’.
Peter Harrap, for a couple of sprites from his game ‘Wanted: Monty Mole’.
Alex Cornhill (‘Sendy’), for unwittingly inspiring ideas for new block types, in messages posted on the Manic Miner & Jet Set Willy Yahoo! Group more than a decade ago!
‘Norman Sword’, for his work on fixing the ‘Jagged Finger’ and ‘Delayed Attribute’ flaws in the original JSW game engine.
Jonathan Graham Harston, for his ‘Full Z80 Opcode List Including Undocumented Opcodes’ (http://www.z80.info/z80oplist.txt), for his ‘Jet Set Willy’ related documentation (http://mdfs.net/Software/JSW/) and for his elegant Pause Bug Fix.
James Moxham, for his ‘ZINT Z80 Interpreter’ (http://www.z80.info/z80code.htm), which is a highly informative introduction to the Z80 instruction set that was frequently referred to during the development of ‘Jet Set Mini’.
The authors of Binary Hex Converter (http://www.binaryhexconverter.com/), which was the standard tool used to convert values back and forth between the decimal, binary and hexadecimal systems. The Bitwise Calculator at http://www.miniwebtool.com/bitwisecalculator/ was also a useful tool.
The ZX Spin team, for their ZX Spin (http://www.zophar.net/sinclair/zxspin.html), which was used by Daniel Gromann in playtesting.
Jan Bobrowski, for his Qaop/JS HTML5 ZX Spectrum emulator, which was used by Ian Rushforth in playtesting.
Günter Woigk, for his zxsp version 0.8.pre27 (ZX Spectrum emulator for macOS: http://zxsp.blogspot.co.uk), which was used by Richard Hallas to create the music in ‘Jet Set Mini’. Richard also used Z80Em (an emulator for RISC OS: http://www.borcherds.co.uk/murklesoft/riscos/Z80em.html) and FUSE (Free UNIX Spectrum Emulator: http://fuseemulator.sourceforge.net/) during the process of transferring the music file.
Claus Jahn, for his ZXModules (http://www.zxmodules.de), particularly ZXBlockeditor which was used by Andy Ford during the creation of the loading and title screens.
Ian Rushforth would like to give special thanks to Andy Ford, for his extreme patience towards the end of the development of ‘Jet Set Mini’, particularly for the process of repeatedly adding the BASIC loader to the final game file (following the creation by Ian of several ‘Final Final’ builds!).
II. Instructions
The object of the game is to guide Willy and collect all of the flashing items scattered around his mansion, avoiding the moving and unmoving guardians and the stationary nasties which may kill you (as will falling from an excessive height). With all the items collected, the player needs to go to ‘The Master Bedroom’ where Maria will no longer be blocking access to Willy’s bed. This has to be done before the ingame clock reaches midnight, or before Willy runs out of lives. An extra life will be granted for every ten items collected.
Use OLeft, PRight (or a combination of keys from the top row of letters) and SPACE or any of the letters from the bottom row to jump.
AG pauses the game; any other key unpauses it.
HENTER/RETURN toggle the music ON/OFF.
Pressing SHIFT+SPACE together at the same time abandons the current game.
There are also a couple of locations where a novel key combination has been introduced via a Patch Vector, to free Willy from a ‘sticky’ situation if he gets stuck on a conveyor. Press the X, O and R keys simultaneously to activate this.
‘Jet Set Mini’ has been fully playtested and it is possible to complete the game, before an ingame time of 8:15 am, without losing a single life.
III. Game history
‘Jet Set Mini’ started off at the end of January 2016 as a simple ‘builder’ base file for an article which Andy Ford was writing at jswmm.co.uk, on how to add a Speedlock loader to a JSW (or Manic Miner) 48K game file. Thus the first incarnation only featured 12 rooms, and was initially intended as ‘space filler’ for the tape file (to be replaced by the builder’s own data), rather than a standalone game in itself.
However, after a bit of tinkering about in the Contributor Lounge of jswmm.co.uk, the ‘Jet Set Mini’ project started to take on a life of its own. It now features 36 rooms, 100 items to collect, and hordes of guardians (many of which are taken from the original ‘Jet Set Willy’, some of which are ‘borrowed’ from the game ‘Technician Ted’, and a couple of brand new eightlegged sprites have been created by Ian Rushforth). There are also numerous visual, audio, static and dynamic special effects scattered throughout the game.
The eventual release of ‘Jet Set Mini’ in July 2017 means that the project has had the gestation period of an elephant! (An unbelievable pink one, perhaps?) Much of the delay was down to a combination of Richard Hallas’ expressed desire to complete his earlier score of the ‘Radetzky March’, with his extremely busy work schedule. Whilst awaiting Richard’s contribution, “The Devil found work for idle hands” and Ian Rushforth devised an abundance of special effects that ended up in the game. So as well as eventually supplying the musical score, Richard’s involvement inadvertently gave rise to a considerable enhancement of the project! (Richard apologises for creating the long delay, but is pleased that something positive came out of it!)
IV. Technical novelties
Amongst the innovations in ‘Jet Set Mini’ are some novel sound effects, screen flash sequences, printed messages/features, brand new block types, and guardians which change attributes or follow unusual trajectories. These have been tailored to suit the rooms in which they take place, in order to enhance the atmosphere of Matthew Smith’s classic game, and increase the challenge level without making the game TOO difficult to complete (we hope?).
Many of the game’s special effects are implemented on a roombyroom basis, via tools known as Patch Vectors there are two basic variants of these: ‘Room Setup Patch Vectors’ (implemented once each time Willy enters a room, or when he is ‘respawned’ within the room after losing a life), and ‘Main Loop Patch Vectors’ (implemented repeatedly during each ‘tick’ of the game, i.e. every time that the main loop of the program is executed whilst Willy is in a particular room).
‘Jet Set Mini’ is probably one of the most Patch Vectorintensive JSW games published to date. However, there are also many roomspecific special effects that do not rely on Patch Vectors, but which exploit existing ‘quirky features’ of the JSW 48K game engine (such as combined block types, ‘invalid arrows’ and ‘invalid ramps’). This is true of everything that occurs within the West Wall triptych of rooms, for example. (If you know what’s going on with the Barrels in ‘Halfway up…’, then “Answers on a postcard please?”!)
There is also an ‘invalid rope’ (whereby the xcoordinate of the top segment of the rope lies outside the usual range of 031) present somewhere in the layout. To the best of the authors’ knowledge, this is a new and innovative feature for a published JSW game. (N.B. To allow Willy to examine this feature more closely, you could try using POKE 59471, 15 or POKE 41372, 27 [leave the room in question and reenter, if entering a POKE dynamically] but surely that would be ‘Cheating?’…)
As previously mentioned under ‘Instructions’, there is a brand new XOR keypress combination in ‘Jet Set Mini’ which can occasionally be used to free Willy from a ‘sticky’ situation. XOR stands for ‘eXchange Onoff / Reverse’. This particular Patch Vector edits the conveyor definition in the current room buffer reversing the polarity of a standard ‘leftright’ conveyor, or toggling the status of a ‘sticky’ conveyor between on and off. The same logic gate is applied in both cases to implement this (can you guess which one?).
Other ‘global’ changes to the game engine have been introduced. For instance, a standard JSW 48K ingame tune comprises 64 notes (requiring 64 bytes of data), but in ‘Jet Set Mini’ this has been extended to 256 notes (allowing Richard Hallas to score an extended ‘Radetzky March’). Another novelty is that the INK colour of the room name printed on the status bar is now determined on a roombyroom basis, to complement the border colour settings. Various tweaks have been made to original JSW features, such as the scrolling message effect on the title screen, and items that cycle through eight INK colours rather than four (an optimised variant of a ‘Geoff Mode’ feature).
Of course, one of the most notable changes is the fact that the entire layout is laterallyinverted, based as it is on the mirrored JSW game ‘ylliW teS teJ’ from Andrew Broad’s ‘Party Willy’ boxset. However, with regard to the guardians in ‘ylliW teS teJ’, only arrows and vertical guardians were perfectly laterallyinverted. In ‘Jet Set Mini’, true lateral inversion (i.e. both spatial and temporal) has also been achieved for horizontal guardians and for ropes.
In some rooms, formations of guardians of the same type have been made to animate outofsync with each other, thanks to some lowlevel bitfiddling, e.g. the various leg segments of the Attic Centipede (or is it now a Millipede?), which as a result displays a more ‘naturalistic’ crawling motion. ‘Jet Set Mini’ is also the first JSW48 game to feature 128 distinct ‘Guardian Classes’ (#00#7F; Class #7F previously being out of bounds because of technical limitations which have now been overcome).
There are many more additional features implemented that haven’t been listed here to find out more, you’ll just have to play ‘Jet Set Mini’ for yourself and see them in action! (Or in some cases, hear them you’ll miss a few tricks if you play on mute!)
V. Bug fixes
A number of bugs that were present in the original JSW game engine have been fixed in ‘Jet Set Mini’, including:
The CellGraphics Bug. The effects of this can be seen in the original ‘Jet Set Willy’, where it affects the conveyors in several rooms (e.g. ‘Tool Shed’). During the process of drawing the current room, a cell’s bitmap can become corrupted if that cell’s colourattribute byte matches with a graphicdata byte which precedes it in the room data. The fix for this bug means that all the original JSW graphics in ‘Jet Set Mini’ are rendered as Matthew Smith intended except of course that they are laterallyinverted! and any new cell graphics that have been created are immune from the effects of the bug.
The ‘Adjacent Ropes’ Bug. In the original game engine, a rope’s data ‘spilt over’ beyond the eight bytes that are normally allocated to each entity in the ‘guardian buffer’. Therefore any guardian (or another rope), which immediately followed on after a rope in a room’s list of guardians, could be corrupted by the preceding rope. The ‘Adjacent Ropes’ patch prevents this ‘spillover’ of a rope’s data from occurring, so that guardians (or another rope) can safely be placed immediately after a rope in a room’s guardian list, without corruption.
The Pause Bug. An error in the original main loop meant that the program would ‘freeze up’ if the game was paused and unpaused whilst certain hardware was attached to the Spectrum. Some patches for this bug have been known to cause even more problems than they fix. The fix used in ‘Jet Set Mini’ does not have any such side effects.
The Missed Note Bug. In the original ‘Jet Set Willy’, the very first note is missed out at the start of the first rendition of the ingame tune, each time a new game is commenced. This happens because, during each pass through the game’s main loop, the variable which acts as an index of the progress of the tune is incremented before a note is selected to be played. By initialising the value of the ‘Music Note Index’ to a value of 255 (#FF in hexadecimal) at the start of each game, instead of to zero, the missing note has been restored.
The ‘Jagged Finger’/’Delayed Attributes’ imperfections. These flaws are caused by the fact that the copying of the display and attribute buffers, to the display and attribute files, can instantaneously fall ‘out of sync’ with the physical updating of the screen’s ‘raster’ scan lines. As a result, moving sprites can momentarily break up and flicker, and can partially (or, in the case of arrows, entirely) be rendered in the wrong colour attribute for a brief but perceptible moment. By changing the sequence in which elements of the display and attribute buffers are copied across, these effects can be greatly reduced or eliminated.
The four ‘classic’ bugs in the original JSW game data (including the infamous ‘Attic Bug’). In all four cases, the fixes implemented in ‘Jet Set Mini’ are rather different from the solutions that were provided by Software Projects in their officiallyreleased POKES. (Those four ‘official’ POKES were derived from the hackers who first wrote in to the publishers to say that they had used them to complete ‘Jet Set Willy’, and so cannot really be considered as ‘canon’.)
A couple of lessinfamous bugs in the original JSW game data have also been fixed. There was a ‘selfcollecting item’ in ‘Swimming Pool’, which was automatically collected as soon as Willy entered the room, because the background INK setting of the room was set to white (items are collected if the room cell in which they are located contains white INK normally signifying that Willy has touched them). After editing the background INK colour for the room, the ‘autocollection’ no longer occurs (although when you see the positioning of the item within the Pool in ‘Jet Set Mini’, you might wish that it did get autocollected!). There was also a ‘double item’ in ‘The Beach’ in the original game (i.e. two items located at the same coordinates within the room), which have been separated out in ‘Jet Set Mini’. (In fact, if this had not been done, then one would have ‘autocollected’ the other, as a consequence of the implementation of items that cycle through eight INK colours, including white!)
Great care has been taken to reduce the potential for ‘Infinite Death Scenarios’ (i.e. where Willy meets an unavoidable fatality upon entry to a room, which then occurs repeatedly until all his lives have expired) especially when such a scenario could not easily be foreseen by a careful player, or would otherwise be considered unfair. Similarly, an attempt has been made to avoid situations where Willy might get ‘stuck’ (with no means of escape, not even by sacrificing a life; thus forcing the player to abandon the current game). In some cases, avoiding such scenarios has entailed inserting ‘invisible Fire cells’ at the top or bottom of rooms, to prevent Willy from jumping or falling from one room to the next, where to do so would otherwise bring the game to a premature end. (So if you encounter a sudden and unexpected but singular fatality, consider that it might be as a result of the authors ‘being cruel to be kind’!)
All the preceding entries concern attempts to eliminate bugs or flaws from ‘Jet Set Mini’. Conversely, a new bug was unintentionally introduced during the development of the game (relating to an erroneous reentry point into the program’s main loop). This was discovered during playtesting, when it was found to be the root cause of a spectacular new ‘quirky manoeuvre’. Since this accidental glitch turned out to be so impressive (if you discover it whilst bouncing around the mansion, we hope you’ll agree!), and because it is harmless enough (in fact, it can actually be helpful to Willy in certain circumstances), it was decided to leave this bug in situ!
On the wider subject of ‘quirky manoeuvres’ that are permitted by the JSW game mechanics, this is one of the more contentious aspects of JSW games. Whether they arise from ‘bugs’ in the code, or are considered ‘interesting quirky features’ to be exploited, can become a matter of heated debate! Some players relish the ability to perform manoeuvres that are seemingly in defiance of ‘Willy’s Laws of Physics’; whereas others find them rather offputting, particularly if a game is designed so that it cannot be completed without advance knowledge of such tricks.
‘Jet Set Mini’ attempts to strike a balance in this regard. Bug fixes that are available, which would preclude the use of quirky moves, have not been implemented in the game (why spoil the fun for those who wish to use them?). Consequently, there are a number of places in the layout where the player may find shortcuts by utilising a few quirky manoeuvres (including several brand new ones!). However, it is quite possible to complete the game without relying on these ‘oddities’!
VI. The legal bit
‘Jet Set Mini’ is freeware, and all of its innovative elements may freely be reused in other projects. If you do so, please acknowledge their authorship.
VII. Closing remarks
We hope you enjoy playing ‘Jet Set Mini’ as much as we did writing it! Please also check out its sister project, ‘Jet Set Mixup’, released on the same day.
If you have any queries, comments or general feedback, please contact us on the email address below, or come and visit our Jet Set Willy & Manic Miner Community at jswmm.co.uk to join in with Willybased discussions!
Ian Rushforth & Andy Ford, 21st July 2017
projects@jswmm.co.uk
Сохранённые игры[X]
Справка[X]
Помощь уже в пути!
- x1
- x2
- x3
<<<<
<<<<
<<<<
Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!
Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.
Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.
Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.























Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.