зачем уровень?
---------- Post added at 01:53 ---------- Previous post was at 01:52 ----------
убрал лишнюю графику
оптимизировал пульт и меню паузы
зачем уровень?
---------- Post added at 01:53 ---------- Previous post was at 01:52 ----------
убрал лишнюю графику
оптимизировал пульт и меню паузы
С уважением,
Jerri / Red Triangle.
А какая графика лишняя?
Что значит "оптимизировал пульт и меню паузы" ?
Да там и в коде масса повторов, например сейчас под рукой кусок:
Код:seg000:7469 houseCursorShow proc near seg000:7469 mov al, 0Ah ; bx = bl*10+0x100+vFF54 seg000:746B mul bl seg000:746D add ax, ds:0FF54h seg000:7471 add ax, 100h seg000:7474 mov bx, ax seg000:7476 jmp word ptr cs:3018h ; draw cursor seg000:7476 houseCursorShow endp seg000:7476 seg000:747B houseCursorUp proc near seg000:747B mov al, 0Ah ; bx=bl*10+0x100+vFF54 seg000:747D mul bl seg000:747F add ax, ds:0FF54h seg000:7483 add ax, 100h seg000:7486 mov bx, ax seg000:7488 mov cx, 0Ah ; Height seg000:748B loc_748B: seg000:748B push cx seg000:748C mov byte ptr ds:0FF1Ah, 0 seg000:7491 dec bx seg000:7492 push bx seg000:7493 call word ptr cs:3018h seg000:7498 seg000:7498 loc_7498: seg000:7498 call npcAnimation seg000:749B cmp byte ptr ds:0FF1Ah, 4 ; delay seg000:74A0 jb short loc_7498 seg000:74A2 pop bx seg000:74A3 pop cx seg000:74A4 loop loc_748B seg000:74A6 retn seg000:74A6 houseCursorUp endp seg000:74A6 seg000:74A7 houseCursorDown proc near seg000:74A7 mov al, 0Ah ; bx=bl*10+0x100+vFF54 seg000:74A9 mul bl seg000:74AB add ax, ds:0FF54h seg000:74AF add ax, 100h seg000:74B2 mov bx, ax seg000:74B4 mov cx, 0Ah seg000:74B7 loc_74B7: seg000:74B7 push cx seg000:74B8 mov byte ptr ds:0FF1Ah, 0 seg000:74BD inc bx seg000:74BE push bx seg000:74BF call word ptr cs:3018h seg000:74C4 seg000:74C4 loc_74C4: seg000:74C4 call npcAnimation seg000:74C7 cmp byte ptr ds:0FF1Ah, 4 ; delay seg000:74CC jb short loc_74C4 seg000:74CE pop bx seg000:74CF pop cx seg000:74D0 loop loc_74B7 seg000:74D2 retn seg000:74D2 houseCursorDown endp
---------- Post added at 01:32 ---------- Previous post was at 01:30 ----------
Что бы привлечь игроков Zeliard. Типа продолжение.
vinxru, как продвигается работа?
С уважением,
Jerri / Red Triangle.
там по ходу до 400 по вертикали графика растягивается искусственно просто удваивая строки
кстати разобрался с форматом д88
если что могу всю поверхность вытащить в один файл
---------- Post added at 15:20 ---------- Previous post was at 15:17 ----------
порезать на файлы пока не смогу
С уважением,
Jerri / Red Triangle.
Спасибо, не надо. Я все таки буду работать с 8086 версией. Её все равно надо серьезно переписывать под новый видео-адаптер, поэтому я перепишу её полностью.
Я японскую версию дальше интро не смотрел, но уже есть полезные наблюдения. В 8086-версии вместо половины слайдов интро показывается послание от горе хакеров. Надо будет поискать полноценную английскую версию или найти переводчика с японского, что бы восставновить полноценное интро.
8086 версия сделана с возможностью подключать драйвера различных видеоплат: CGA, TGA, Hercules, EGA, VGA. И это очень удобно. Код непосредственно работающий с видеоплатой вынесен в файлы: gmmcga.bin, gtmcga.bin, gfmcga.bin (для других видеоадаптеров используются другие файлы). Эти файлы надо переписывать на 100%, но и остальные файлы игры так же надо править. Я буду уменьшать графику на 75%. (Тайл с 8 до 6 пикселей). И добавлять аппартный скролл вместо постоянной перерисовки карты. Апогей со своим процессором 8080 просто не успеет перерисовывать весь экран 50 раз в секунду.
---------- Post added at 20:25 ---------- Previous post was at 19:39 ----------
Тема внезапно перенеслась из Флейма и раз такое дело, я начну скидывать сюда факты.
Игра Zeliard разбита на множество файлов. Большинство файлов хранятся в сжатом виде в ресурсных файлах. Три ресурсных файла ZELRES1.SAR, ZELRES2.SAR, ZELRES3.SAR. Каждый по 360 Кб, под размер дискеты. В эти файлы упаковано около 200 файлов игры.
И несколько файлов хранятся в виде отдельных файлов:
Файл ZELIARD.EXE выполняет парсинг файла RESOURCE.CFG (в котором указаны используемые драйвера), загружает драйвера в память, выполняет инициализацию видео (да, именно zeliard.exe, а не файл драйвера), устанавливает видео-палитру, устанавливает обработчики прерываний, загружает файлы stick.bin, game.bin, stdply.bin и запускает загруженный файл game.bin. Обращу внимание, что ни один файл игры не обращается к файлу Zeliard.exe, т.е. кроме инициализации он ничего не делает. И нам он совсем не нужен.
Еще есть файлы с кодом игры STICK.BIN и GAME.BIN. Файл STICK.BIN загружается по адресу 0:100. Он содержит много всяких функций, но главное, это функции загрузки файлов упакованных в ресурсные файлы. Этот файл всегда находится в памяти. Файл GAME.BIN загружаются по адресу 0:A000 и содержит функции инициализации игры. Объем файла всего 1 Кб. Во время работы игры этот файл будет замещен другими файлами.
Файл начального состояния игры STDPLY.BIN. Загружается по адресу 0:0. Это файл идентичен файлу сохранения.
Драйверы видео: GMCGA.BIN, GMEGA.BIN, GMHGC.BIN, GMMCGA.BIN, GMTGA.BIN. Один из этих файлов загружается по адресу 0:2000. Эти файлы содержат функции рисования общие для всей игры.
Драйверы музыки: MSCADLIB.DRV, MSCJR.DRV, MSCMT.DRV, MSCSTD.DRV. Один из них загружаются по адресу 1:100. Драйвер проигрывает музыкальный файл загруженный по адресу 1:3000. Скорее всего запуск и остановка воспроизведения повешена на 60h и 61h прерывание.
Драйверы звуковых эффектов: SNDADLIB.DRV, SNDJR.DRV, SNDSTD.DRV. Загружаются по адресу 1:1100. Драйвер висит на прерывании таймера и реагирует на несколько переменных. Главная из них по адресу 1:75. Если туда записать число, то драйвер воспроизведет соответствующий числу звуковой эффект.
Последний раз редактировалось vinxru; 06.01.2012 в 20:43.
Инициализация игры и карта памяти
После запуска GAME.BIN, в память загружаются из ресурсных файлов: шрифт font.grp по адресу 0:F500 и код "интро" opdemo.bin по адресу 0:6000. Интро по ходу выполнения подгружает изображения (файлы nec.grp, ame.grp...) по адресу 0:A000.
После интро выполняется загрузка файлов:
0:3000 gtmcga.bin - Функции рисования и логики города.
2:3000 gfmcga.bin - Функции рисования и логики подземелья.
2:C000 fight.bin
1:E200 itemp.grp - Всякие спрайты
2:0 magic.grp - Всякие спрайты
2:1800 sworp.grp - Всякие спрайты
0:C000 cmap.mdt - Карта первого города
1:3000 mgt1.msd - Мелодия первого города
1:6000 tman.grp - Анимация главного героя для города
2:3300 ympd.bin
Если войти в пещеру, то происходит загрузка новых файлов. В том числе карты пещеры mrmp.mdt по адресу 0:C000 (вместо карты города), а так же происходит перемещение областей памяти. Например, 0:3000 gtmcga.bin и 2:3000 gfmcga.bin меняются местами.
---------- Post added at 20:58 ---------- Previous post was at 20:54 ----------
На Апогее поменяются только адреса, состав модулей останется таким же. Причем, меняться они будут каждую версию, так как я компилирую без промежутков. На PC все модули выровнены. Из адресного пространства в 192 Кбайт пропадет часть модулей, часть изменит адреса, что бы получилось 40..48 Кб.
---------- Post added at 21:09 ---------- Previous post was at 20:58 ----------
Итого, моя первая цель
Сделать сборку сборку игры без интро и пещер. Мне надо переписать:
gmmcga.bin - Общие функции рисования
gtmcga.bin - Код города
Далее файлы изорбражений, которые необходимо сначала расшифровать, потом их надо масштабировать на 75% и уменьшить кол-во цветов. На это я привлеку народ, так как сам я рисую весьма посредственно.
font.grp - Это шрифт. Только английский. А нам необходимы еще и русские буквы
cmap.mdt - Карта первого города.
tman.grp - Спрайты игрока
itemp.grp - Спрайты
Потом я буду код подземелий переписывать. А потом музыку, звуковые эффекты и интро.
Последний раз редактировалось vinxru; 07.01.2012 в 17:00.
Карты подземелий
По этой ссылке можно посмотреть 18 карт подземелий.
http://www.gamefaqs.com/pc/575849-zeliard/faqs
Но в ресурсах игры находится 31 карта (файлы MP*.MDT). Возможно часть из этих карт - это уровни с боссами. Плюс еще 9 карт городов (*MP.MDT) и 1 карта - это локация с дворцом (CMAP.MDT).
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)