Автор Тема: Ремейк на Gradius III  (Прочитано 4008 раз)

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

Оффлайн romanich

  • Пользователь
  • Сообщений: 26
  • Пол: Мужской
  • пришёл
    • Просмотр профиля
Ремейк на Gradius III
« : 14 Сентябрь 2009, 15:22:29 »
Попытка сделать ремейк на игру 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 =-


Оффлайн romanich

  • Пользователь
  • Сообщений: 26
  • Пол: Мужской
  • пришёл
    • Просмотр профиля
Re: Ремейк на Gradius III
« Ответ #1 : 15 Сентябрь 2009, 09:28:21 »
есть какие-нибудь предложения или пожелания? ;)

Оффлайн Gamefreak

  • Пользователь
  • Сообщений: 1167
  • Пол: Мужской
  • Маньяк
    • Просмотр профиля
Re: Ремейк на Gradius III
« Ответ #2 : 15 Сентябрь 2009, 10:06:54 »
STOP 0x0000008E

Добавлено позже:
Цитата
VESA 1.2 совместимая видяха
Думаю Intel GMA 3100 к таковым не относится :)

Оффлайн romanich

  • Пользователь
  • Сообщений: 26
  • Пол: Мужской
  • пришёл
    • Просмотр профиля
Re: Ремейк на Gradius III
« Ответ #3 : 15 Сентябрь 2009, 11:18:52 »
у меня на всех трех компах работает в dos, win98, winxp PE sp3

видяха Nvidia-вская, звучка CMI9???(Asalia), драйвер эмуляции SBlaster VDM Sound

точно знаю что на радеоновских не заработает!

можно попробовать пересобрать библиотеку АПИ и саму игру, переменной VideoMode=0 сделать в файле System.c

это будет 320x200 16bpp VESA

------
у меня собрано под 640x480 16bpp VESA, который видать криво поддерживается другими картами

P.S. на ATI Radeon работать не будет из-за кривости их VESы. (точнее отдельно взятые режимы)