Попытка сделать ремейк на игру Gradius III
Очень нравится игра на приставках под названием Gradius!
Особенно Gradius III на SNES!!!
MAME-версию так и не смог пройти, так как при сохранении/восстановлении
карта тайлов отображается некорректно
Ещё до того момента, когда успешно портировал эмуляторы, решил написать ремейк этой игры!
Вооружился SNEmul под DOS (а есть ли версия под Win32 ?) и стал рипать графику в основном.
Некоторые оцифровки рипнул двумя компьютрами (один воспроизводит, другой пишет).
Одним компьютером рипнуть звук не получилось - драйвер был кривой (или эмуль не позволял ?) - с эхом было...
Рипнув всю графику, стал разбираться что к чему... Некоторое использовал.
Остальные спрайты взял из интернета или из других игр.
В то время Digital Thresher'а не существовало, была только Advanced MicroMachine с экраном 128x128 и ОЗУ 2 МБ
Собственно под неё всё и затачивалось...
Написал порт библиотеки API-функций МикроМашины для PC (DOS32), для того чтобы разработку вести на PC.
Затем кидать без проблем на реальный девайс...
Кто-то (уверен что 90%) скажет: "ДОС - умер!!! Никто этой некрофилией заниматься не будет!"
Но мне честно говоря безразлично, а выбор в сторону 32-битного ДОС'а (DOS+DPMI) был продиктован следующими соображениями:
1) Работа напрямую с железом (или эмуляция этой самой "прямоты")
2) Не люблю идеологию программирования под Windows'ы
3) Есть некоторое количество опыта в программировании под DOS
Поэтому решено было писать DOS-приложение.
Проект вёлся в среде Open Watcom C 1.7. Собирать надо с помощью него.
Вначале сделал библиотеку API-функций, которая в какой-то степени абстрагировала меня от железа,
тоесть стирала различия между железом PC и МикроМашины! Это очень важно для переноса.
Библиотека позволяет программировать: видео, звук, ввод клавиш(эмуляция джойстика) и другие прочие системные функции.
Там и блиттинг с отзеркаливанием, полупрозрачностью и растровыми операциями.
Резидентные проигрыватели MIDI-файлов, WAV, и Adlib (проигрывание модифицированного RAW-формата).
И многое другое...
Далее приступил к игре...
Составил плоскость спрайтов (в неё постоянно добавлялись новые спрайты по мере написания игры)
Выбрал подходящую музыку, звуки (тоже несколько раз претерпевали изменения когда проект разрастался)
Ну и собственно в редакторе карт MapWin (Mappy) составил карты 4-х уровней, которые более отличимы от других:
1) Песок
2) Вода
3) Огонь
4) Органика
Все уровни кроме первого - анимируются (боковые стены).
Далее добавил главного героя - космический корабль (закамуфлированный под боевой самолёт ?)
Сделал ему 10 видов оружия!!! Некоторые могут наращивать мощь!
И три типа бомбы.
Запрограммированы также: движение и анимация боковых стен, отображение и прокрутка задника
Также: фоновая музыка, звуки (выстрелы, взрывы и др.)
А также: коллизия корабля с бонусами (значки: жизнь, экспандер жизни, временное бессмертие, 10 типов оружия, 3 типа бомб,...)
и со стенами.
Также: игровой процесс: вступление, окончание (мультеги
, показ карты - текущая планета, скругление уровня, если проиграл, и т.п.
Ну и немного заставки - о себе, про игру и т.п.
----------------------------------------------------------------------------
В общем - добавить туда врагов и коллизию с ними - и игра будет закончена!!!
----------------------------------------------------------------------------
Но меня обломало! Так как после портирования эмуляторов смысл в ремейке отпал!
Да и написание игры - жрёт кучу времени, ну и надоел в конце концов...
Поэтому выкладываю исходники проекта и всего что с ним свызано (что осталось)...
Может кому-нибудь будет интересно. Или кто-нибудь подхватит...
Файлы:
Gradius3.rar - скомпилированный исполняемый файл.
AuMAPI.rar - исходники библиотеки API
Gradius3SRC.rar - исходники проекта
Converter.rar - конвертилки (24-битный bmp в 16-битный RAW, 16-битный RAW в массив констант (Си) )
Resource.rar - некоторые ресурсы (карты уровней для MapWin, музыка, зарипанные звуки и графика с SNES'овского Gradius'а)
HowTo:
1) Плоскость спрайтов (bmp-файл) после редактирования и сохранения гонится в 16-битный RAW, затем RAW гонится в Си-массив констант
Затем данные вставляются в файл Sprite.c, старые убираем.
2) Если библиотека AuMAPI надо изменить (сменить разрешение или ещё что-нибудь), то её надо перекомпилять. Полученный файл AuMAPI.lib
кинуть в проект Gradius (заменить или прибить старую либу).
3) Далее компилять проект Gradius3
4) MIDI файлы должны быть в формате SMF0. И желательно без мусора. Программы MIDIDisAssembler и MIDIConverter в помощь
Управление:
Стрелки - направление
Enter - старт/пауза
Ctrl - стрельба патронами
Alt - бомбы (ограничено)
Esc - выход
Дальше хаки в целях отладки:
X - изменить силу оружия
Y - сменить оружие
Z - прыгнуть на следующий уровень (а в конце показать концовку)
На счёт X и Y - точно не помню - возможно перепутал местами...
Требования к железу:
VESA 1.2 совместимая видяха
Sound Blaster Pro совместимая звучка
PS/2 клавиатура
или эмулирование в DOS-box'е или VDM-Sound
Переменная окружения BLASTER должна соответствовать следующим настройкам:
I/O 0x220
IRQ 5
DMA 1
Type : SB Pro или выше
MPU I/O 0x330
Adlib I/O 0x388
В общем - всё стандартно
ДОСоФаги помнят
Напоследок добавлю, что "недо-игра" также работала на Advanced MicroMachine
-= Enjoy =-