If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Mega Man (DOS)

From The Cutting Room Floor
Jump to navigation Jump to search
This page is a translated version of the page Mega Man (DOS) and the translation is 53% complete.
Outdated translations are marked like this.
Other languages:
English • ‎Nederlands • ‎русский • ‎한국어

Заглавный экран

Mega Man

Разработчик: Rozner Labs
Издатель: Hi-Tech Expressions
Платформа: DOS
Релиз в США: 1990


CodeIcon.png Эта игра имеет неиспользованный код.
CopyrightIcon.png Эта игра имеет скрытые титры разработчика.
GraphicsIcon.png Эта игра имеет неиспользованную графику.
PiracyIcon.png Эта игра имеет функции борьбы с пиратством.


Mega Man для DOS — видеоигра, лицензированная (но не разработанная) компанией Capcom. Она не является портом как одноимённой игры на NES, так и её аналога на Game Boy, потому что во многом отличается от них и "идёт своим путём" со своими тремя оригинальными робот-мастерами. В 1992 г. появился сиквел этой игры, который тоже вышел на DOS и почему-то получил название Mega Man 3 (видимо, разработчикам было слишком трудно осилить нормальную нумерацию). Игру можно запустить в браузере, используя онлайн-эмулятор на сайте Internet Archive.

Неиспользованная защита от копирования

В файлах игры есть код и графика, похожие на следы нереализованной системы защиты от копирования. Эта система показывает спрайт одного из 12 врагов и требует ввести его название, которое по идее нужно было бы найти в мануале с изображениями врагов ("FIND THE PICTURE IN THE MANUAL AND TYPE IN THE NAME"). При правильном ответе играет звук energy-collection (sound 5), а при неправильном воспроизводится звук, похожий на шум щита Volt Man'а (sound 12).

Mega Man (DOS)-pass-screenshot.png

Этот снимок экрана был сделан путем взломы в прыжке к 0x154b0 (функция просто предшествует главную функцию).

Графика экрана защиты от копирования содержится в файле pass.frm.

Mega Man (DOS)-pass.frm-00-prompt.png Текст сообщения хранится в виде одного спрайта.

Mega Man (DOS)-pass.frm-alphabet.png А символы, которые набираются на клавиатуре, записаны как 28 спрайтов размером 8×8 px.

Изображения врагов немного отличаются от спрайтов, видимых во время игрового процесса: на экране защиты от копирования они имеют непрозрачный фон и обведены чёрной рамкой. Выбор спрайта зависит от текущего времени и определяется 12-секундным циклом. Если время оканчивается на :01, :13, :25, :37 или на :49, то выбирается BATVIRE; если на :02, :14, :26, :38 или на :50, то показывается FROGBOT и т.д.

Правильные ответы находятся в коде игры в виде массива, состоящего из двенадцати 11-байтных строк. Текст записан в кодировке 00= , 01=-, 02=A, 03=B, ..., 1b=Z.

03 02 15 17 0a 13 06 00 00 00 00 = BATVIRE
07 13 10 08 03 10 15 00 00 00 00 = FROGBOT
14 06 18 06 13 00 13 02 15 00 00 = SEWER RAT
11 0a 13 02 0f 09 02 00 00 00 00 = PIRANHA
06 06 0d 01 06 04 15 13 0a 04 00 = EEL-ECTRIC
13 02 11 15 10 13 03 10 15 00 00 = RAPTORBOT
0a 0f 14 06 04 15 10 03 10 15 00 = INSECTOBOT
14 11 1a 05 13 10 03 10 13 08 00 = SPYDROBORG
14 06 0f 15 13 1a 00 03 06 06 00 = SENTRY BEE
05 13 0a 0d 0d 00 11 13 06 14 14 = DRILL PRESS
02 13 0e 1a 00 02 0f 15 00 00 00 = ARMY ANT
02 14 14 06 0e 03 0d 06 13 00 00 = ASSEMBLER

Неиспользованные фоновые тайлы

В BLK-файлах записаны тайлы фонов для каждого уровня. Игра использует не все из них.

Все тайлы ниже показаны с 1-битовыми масками, определяющими тип отрисовки каждого пикселя (на переднем или на заднем плане). В таблицах также приведены некоторые использованные тайлы, которые внешне схожи с неиспользованными.

SECUR.BLK

Неисполь-
зованные
Исполь-
зованные
Комментарии
Mega Man (DOS)-secur.blk-2f.png Mega Man (DOS)-secur.blk-2f-mask.png Mega Man (DOS)-secur.blk-34.png Mega Man (DOS)-secur.blk-34-mask.png Неиспользованный тайл 2f напоминает угол небольшого здания, расположенного в конце вступительного уровня. В игре на этом месте отображается тайл 34, отличающийся от 2f наличием горизонтальных полос.

SONIC.BLK

Неисполь-
зованные
Исполь-
зованные
Комментарии
Mega Man (DOS)-sonic.blk-18.png Mega Man (DOS)-sonic.blk-18-mask.png

Mega Man (DOS)-sonic.blk-19.png Mega Man (DOS)-sonic.blk-19-mask.png

Mega Man (DOS)-sonic.blk-17.png Mega Man (DOS)-sonic.blk-17-mask.png Тайлы травы 17, 18 и 19 являются копиями тайлов 08, 09 и 0a из SECUR.BLK, но только первый из них используется на уровне Sonic Man'а.

VOLT.BLK

VOLT.BLK весит больше, чем любой другой BLK-файл в папке игры, и содержит 216 тайлов. На уровне Volt Man'а используются все из них до единого.

DYNA.BLK

Неисполь-
зованные
Исполь-
зованные
Комментарии
Mega Man (DOS)-dyna.blk-32.png Mega Man (DOS)-dyna.blk-32-mask.png

Mega Man (DOS)-dyna.blk-33.png Mega Man (DOS)-dyna.blk-33-mask.png

Mega Man (DOS)-dyna.blk-36.png Mega Man (DOS)-dyna.blk-36-mask.png

Mega Man (DOS)-dyna.blk-37.png Mega Man (DOS)-dyna.blk-37-mask.png

Неиспользуемые тайлы лестниц 32 и 33 похожи на тайлы 36 и 37, которые можно увидеть на потолке в некоторых местах уровня Dyna Man'а. Ступеньки выполняют чисто декоративную функцию, так как движок не обрабатывает столкновения с ними.
Mega Man (DOS)-dyna.blk-55.png Mega Man (DOS)-dyna.blk-55-mask.png

Mega Man (DOS)-dyna.blk-59.png Mega Man (DOS)-dyna.blk-59-mask.png

Тайлы 55 и 59 образуют что-то вроде перевёрнутого купола, если расположить их рядом:
Mega Man (DOS)-dyna.blk-55.pngMega Man (DOS)-dyna.blk-59.png.

WILEY.BLK

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

Unused Comments
Mega Man (DOS)-wiley.blk-1c.png Mega Man (DOS)-wiley.blk-1c-mask.png Tile 1c is the same as 59 in SONIC.BLK.
Mega Man (DOS)-wiley.blk-20.png Mega Man (DOS)-wiley.blk-20-mask.png Tile 20 is the same as 5e in SONIC.BLK, and has the same anti-gravity property.
Mega Man (DOS)-wiley.blk-3c.png Mega Man (DOS)-wiley.blk-3c-mask.png Tile 3c is the same as 8a in SONIC.BLK. The graphic is identical to 14 in WILEY.BLK and 13 in SONIC.BLK, but the map tile properties are different. This is a false wall that you can walk through, present in Sonic Man's stage but absent from Wily's.
Mega Man (DOS)-wiley.blk-4f.png Mega Man (DOS)-wiley.blk-4f-mask.png Tile 4f is the same as 4f in SONIC.BLK.
Mega Man (DOS)-wiley.blk-50.png Mega Man (DOS)-wiley.blk-50-mask.png Tile 50 is the same as af in VOLT.BLK.
Mega Man (DOS)-wiley.blk-51.png Mega Man (DOS)-wiley.blk-51-mask.png Tile 51 is the same as c2 in VOLT.BLK.
Mega Man (DOS)-wiley.blk-52.png Mega Man (DOS)-wiley.blk-52-mask.png Tile 52 is the same as 5f in WILEY.BLK and 03 in VOLT.BLK (other trigger tiles with the same graphic), and graphically identical to the non-trigger tiles 5a in WILEY.BLK and c3 in VOLT.BLK.
Mega Man (DOS)-wiley.blk-53.png Mega Man (DOS)-wiley.blk-53-mask.png Tile 53 is the same as c7 in VOLT.BLK.
Mega Man (DOS)-wiley.blk-54.png Mega Man (DOS)-wiley.blk-54-mask.png Tile 54 is the same as cb in VOLT.BLK.
Mega Man (DOS)-wiley.blk-58.png Mega Man (DOS)-wiley.blk-58-mask.png Tile 58 is the same as cf in VOLT.BLK.
Mega Man (DOS)-wiley.blk-59.png Mega Man (DOS)-wiley.blk-59-mask.png Tile 59 is the same as 02 in VOLT.BLK.
Mega Man (DOS)-wiley.blk-5b.png Mega Man (DOS)-wiley.blk-5b-mask.png Tile 5b is the same as 04 in VOLT.BLK.
Mega Man (DOS)-wiley.blk-64.png Mega Man (DOS)-wiley.blk-64-mask.png Tile 64 is the same as 01 in DYNA.BLK. (Probably half of a disappearing block animation.)
Mega Man (DOS)-wiley.blk-65.png Mega Man (DOS)-wiley.blk-65-mask.png Tile 65 is the same as 02 in DYNA.BLK. (Probably half of a disappearing block animation.)
Mega Man (DOS)-wiley.blk-66.png Mega Man (DOS)-wiley.blk-66-mask.png Tile 66 is the same as 07 in DYNA.BLK.
Mega Man (DOS)-wiley.blk-69.png Mega Man (DOS)-wiley.blk-69-mask.png Tile 69 is the same as 10 in DYNA.BLK.
Mega Man (DOS)-wiley.blk-6a.png Mega Man (DOS)-wiley.blk-6a-mask.png Tile 6a is the same as 11 in DYNA.BLK.
Mega Man (DOS)-wiley.blk-6c.png Mega Man (DOS)-wiley.blk-6c-mask.png Tile 6c is the same as 13 in DYNA.BLK.
Mega Man (DOS)-wiley.blk-8c.png Mega Man (DOS)-wiley.blk-8c-mask.png Tile 8c is the same as 4a in DYNA.BLK.
Mega Man (DOS)-wiley.blk-8f.png Mega Man (DOS)-wiley.blk-8f-mask.png Tile 8f is the same as 4d in DYNA.BLK.
Mega Man (DOS)-wiley.blk-90.png Mega Man (DOS)-wiley.blk-90-mask.png Tile 90 is the same as 4e in DYNA.BLK.
Mega Man (DOS)-wiley.blk-91.png Mega Man (DOS)-wiley.blk-91-mask.png Tile 91 is the same as 4f in DYNA.BLK, and has the same anti-gravity property.
Mega Man (DOS)-wiley.blk-92.png Mega Man (DOS)-wiley.blk-92-mask.png Tile 92 is unique to WILEY.BLK and unused. It looks like it belongs with the dials and reels of the mainframes near the end of the stage.

Unused Map Tile Properties

Each map tile has a collection of associated properties, stored in the .BLK file along with the tile graphics, that define things such as whether the tile is solid and whether it hurts to touch. Some property values produce behavior that isn't used in any of the game's maps.

Ground Friction

One of the tile properties is how much friction should be applied when Mega Man is on the ground and changing direction or coasting to a stop. There are 8 possible friction tags, 0 to 7, representing friction values from 1/16 to 16, but only tag 7, maximum friction, is ever used.

The friction values seem to be clamped elsewhere in the code, which causes tag 7 (16 units) to behave the same as tag 6 (8 units) in practice. The game does not use subpixels. A friction value of 1/n is implemented by applying 1 unit of friction every n frames. The fractional friction values are slippery indeed.

The following image shows what walking on each friction tag is like. Each row uses the same input: hold right for 12 frames, then left for 16 frames, then no input until Mega Man comes to a stop. The friction values, from top to bottom, are:

0 1/16 units unused
1 1/8 units unused
2 1/4 units unused
3 1 unit unused
4 2 units unused
5 4 units unused
6 8 units unused
7 16 units used

Mega Man (DOS)-friction-stacked.gif

Conveyor Speeds

A ground tile can either have intrinsic friction, or it can be a conveyor such as are found in Dyna Man's stage. A conveyor can have one of 8 speeds: −8, −6, −4, −2, +2, +4, +6, +8; but only ±4 is used in the game. Speed ±8 is equal to Mega Man's walking speed: going against such a conveyor makes Mega Man walk in place.

The image shows Mega Man standing on each of the 8 speeds of conveyor.

Mega Man (DOS)-conveyors-stacked.gif

Gravity

Each tile can have one of 16 gravity (vertical acceleration) values. The most common value is a, which is normal gravity of 3 pixels/frame/frame. 10 of the 16 possibilities are unused - including a zero-gravity mode where Mega Man just floats, but you can accelerate him up and down using the Up and Down keys.

This image shows Mega Man under each gravity condition. For the non-positive gravities (left half of image), there is no input and Mega Man floats. For the positive gravities (right half of image), Mega Man does a full-height jump.

Mega Man (DOS)-gravity-stacked.gif

Under non-positive gravity, it's possible to influence Mega Man's vertical acceleration using the Up and Down keys, Lunar Lander-style. With the weakest two values of anti-gravity, 7 and 6, pressing Down will cause Mega Man to descend. With any stronger anti-gravity, you can slow Mega Man's ascent but you can't stop him from floating away.

I'm not 100% sure about the acceleration values. -Ed.

value accel
0 −7 units unused
1 −6 units unused
2 −5 units unused
3 −4 units Vertical fan shaft in Sonic Man's stage.
4 −3 units unused
5 −2 units unused
6 −1 units unused
7 0 units Zero gravity is only used in a small number of places, perhaps by mistake: where a single vertical background pipe touches the ceiling (tile 5e) in Sonic Man's stage; certain inaccessible background tiles (4f), the debris dispenser (3d, 3e, 3f, 40), and assembler apertures (5a) in Dyna Man's stage; wall lights (b3) in Wily's stage. Most of the tiles are either solid or too close to the ceiling to get Mega Man's hitbox inside. But the Wily wall lights and Dyna Man assembler apertures are low enough that you'll float if you jump in front of them. (The assembler apertures require the invincibility cheat code because the assemblers damage you otherwise.)
8 +1 units Deep water and water surfaces in Sonic Man's stage.
9 +2 units Shallow water and boss chamber in Sonic Man's stage. Sonic Man's chamber in Wily's stage.
a +3 units Normal gravity used almost everywhere.
b +4 units unused
c +5 units Turbines and waterfalls in Volt Man's stage.
d +6 units unused
e +7 units unused
f +8 units unused

Чит-код на неуязвимость

В самом первом меню (где настраивается графика, звук и т.д.) введите nd перед началом игры. Да, именно так — просто нажмите и отпустите n, сделайте то же самое с d, выберите "Start Game" и нажмите Enter. Визуального подтверждения активации кода не будет, и поэтому его работоспособность получится проверить только во время прохождения вступительного уровня.

После введения кода Mega Man не будет получать урон от врагов, пуль и тайлов, наносящих повреждения. Он станет неуязвимым даже для шипов и других мгновенно убивающих тайлов, что, впрочем, может выйти боком и привести к застреванию в ямах, из которых не получится выпрыгнуть (при честном прохождении игрок не застрянет, потому что без чита эти ямы сразу отнимают жизнь). Если вы случайно упадёте в одну из таких ям, игру не придётся начинать с начала — можно будет просто перезапустить уровень, нажав Esc для перехода в меню, F10 для обнуления шкалы энергии и P для возвращения из меню.

Скрытые упоминания разработчиков

In Dyna Man's stage, the wood grain background tiles 17, 15, and 16 unobstrusively contain the names "STEVE", "JOEL", and "RON". They appear in the stage 10 times in total ("STEVE"×3, "JOEL"×4, "RON"×3). The names no doubt refer to Stephen Rozner, Joel Pambid, and Ron Santillano, who are credited in the game's final screen:

Mega Man (DOS)-credits.png

The three tiles are visible right at the start of Dyna Man's stage. The names only show up in the 16-color tiles of EGA and VGA mode, not the simplified 4-color tiles of CGA and Tandy mode.

Mega Man (DOS)-dyna-steve-joel-ron-vga.png Mega Man (DOS)-dyna-steve-joel-ron-cga.png

Graphical Errors

Each map tile has an associated foreground/background mask that determines which pixels should be drawn in front of and which behind Mega Man and other sprites. In the introductory stage, tile 18, part of the roof of the guardhouse, has a single pixel masked to the foreground. When Mega Man jumps in front of it, the roof pixel shows through his helmet.

Листы карты Маска Снимок экрана в игре
Mega Man (DOS)-secur-straypixel-tiles.png Mega Man (DOS)-secur-straypixel-mask.png Mega Man (DOS)-secur-straypixel-ingame.png

Similarly, in the unused copy protection screen, the portrait of the enemy ASSEMBLER has two transparent pixels (perhaps because the actual enemy sprite, used in Dyna Man's stage, has those pixels colored magenta). All the other portraits are fully opaque.

Colors Transparency In-game screenshot,
with blue background
showing through.
Enemy sprite used
in Dyna Man's stage,
with magenta pixels.
Mega Man (DOS)-pass.frm-12-assembler-pixels.png Mega Man (DOS)-pass.frm-12-assembler-mask.png Mega Man (DOS)-pass.frm-12-assembler-ingame.png Mega Man (DOS)-dyna.frm-36-assembler.png

Unused 16-Color Tandy Mode

Despite having a setup menu with four options (CGA, EGA, VGA, TANDY), the game only has two resulting video modes: 4-color CGA (mode 04h) and 16-color EGA (mode 0Dh). The VGA mode has the same graphics as EGA, while Tandy mode redirects to CGA.

There is code for a third video driver to use 16-color Tandy graphics (mode 09h), but it appears to be unfinished and is deliberately disabled at the end of the settings menu routine:

cs:5107 xor al, C0h ; clears bit 7 (EGA/VGA)
cs:5109 xor al, 40h ; clears bit 6 (16-color Tandy)

This redundant xor instruction clears the bit that would have selected the unfinished mode. It can be re-enabled by replacing the 40h at byte 4978h in MM.EXE with 0. Doing so reveals graphics very similar to EGA mode, but with some severe errors in rendering:

Mega Man's eyes are covered
with a black rectangle.
Some sprites appear within
opaque black rectangles.
In some places, sprites
partially disappear.
Mmd tandy 0.png Mmd tandy 1.png Mmd tandy 2.png

Продолжение, Mega Man 3, тоже имеет неиспользованный код видео Tandy, но в менее функциональном состоянии.