С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
У меня такие предложения по Exolon'у. Если есть возможность оптимизировать вывод спрайтов - сделать это (я не смотрел ещё исх). Если не хватает непрерывного ОЗУ - можно ж вариант под +2А/+3 сделать, там поле 64К. Допилить уровней опираясь на старую графику, что бы все скрины были уникальными, без повтора в конце. 128К должно хватить. Если дорисовать спрайтов в стиле Exolon - было бы замечательно, но проблема с художниками. Можно было бы музыку в меню заменить на ту, которая в ПЦ ремейке (не в том, что 2 части), но это только mp3 играющий через карту (вроде уже такое есть?). Ещё вариант, сделать римейк мелодии на Turbo AY или SAA. Или на AY 2203 совместно с FM. Ещё вариант, использовать палитру для раскраски отдельных скринов. И палитры Профи хватит и АТМ. На прочих машинах как и ранее, без палитры. Можно улучшить озвучку AY, что бы взрывы были более похожи на взрывы.
Скрытый текст
Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
ZX Evolution Rev B.
Color 48 + Beta Disk Interface +FDD+YM2149F
Орель-08БК
Pentagon-48 (недоссобранный кем-то)
Pentagon-128 (полуубитый)
Кворум-128 (в ремонте)
Магик-05 (в ремонте)
Robotron 1715
Корвет ПК8020 и ПК8010
Amstrad CPC 464
Amstrad CPC 6128[свернуть]
еще пару коментариев на свежую голову
главное, дальше на ZX делать что-то с этим у меня нет планов
мне исходники нужны были для возможного порта на другой комп
а т.к. довел до приличного вида - решил открыть, вдруг кому будет интересно.
и по теме.
традиционно дизасм был в IDA, база в проекте
там же тулзы которые использовал для визуализации графики.
из исходников при желании можно получить полную копию оригинала
я в этих в паре мест явно неиспользуемый код закоментил
(правда потом в одном месте пришлось раскоменчивать, поломал скролл таблицы рекордов)
синхронизации нет,
прерывания ни используются
AY эффекты играют - в основмном цикле несколько вызовов doPSG
код не использует ПЗУ
не, в одном месте он читает один байт чтобы поставить флаг ZX128
а не, опять забыл про задержку
ну и используем, например в основном цикле игрыКод:; BC _delayLDIR: push bc push de push hl ld hl, 0 ld de, 0 ldir pop hl pop de pop bc ret
из "оптимизаций по размеру"Код:ld bc, 500 124: call _delayLDIR
то что не явное
куча данных используется только при построении уровня
их можно держать сжатыми и разжимать по необходимости.
zone_blocks, perl_level_enemy_tab, level data, FONTS
это больше 10к
на экране может быть только один тип врага в один момент времени
т.е. можно держать в памяти сдвинутый только нужный предварительно его подготовив
врод там есть явный баг
сокомпилить без него можно
FIX_SPRITE16x16COM equ 1
с этим фиксом вроде чуть поживее
а то получалась чистая задержка ...
в коде при выводе спрайтов увеличивают счётчик,
и есть такой код (он выводит фейковые спрайты на экран если на экране их меньше заданного)
Скрытый текст
Код:CompensateSprites8x8preshifted: ld a, (Sprites8x8_OnScreen_count) cp 16 ret nc ld b, a ld a, 16 sub b ld b, a ld a, 6 ; 6 - Boom5 - Empty? loc_9E92: call Sprite8x8_XOR_Preshifted djnz loc_9E92 ret ; --------------------------------------------------------------------------- Sprites8x8_OnScreen_count:db 0 CompensateSprites16x16: ld a, (Sprites16x16_OnScreen_count) cp 6 ret nc ld b, a ld a, 6 sub b ld b, a if FIX_SPRITE16x16COM = 1 ld hl, SPR_COMP else ld hl, byte_B101 endif xor a if FIX_SPRITE16x16COM = 1 ld de,0 endif loc_9EA8: call Sprite16x16 ; A sprId (00..45) ; D - Y (0..192)? ; E - X (0..255) ; HL - saveSpriteArea ; djnz loc_9EA8 ret ; --------------------------------------------------------------------------- Sprites16x16_OnScreen_count:db 0[свернуть]
так CompensateSprites16x16 - вызывается
но инкрементировать Sprites16x16_OnScreen_count - забыли
вот "карта" памяти, по lst файлу
основные блоки "данных"
Код:4000 screen 5800 attr 5b00 over_player_tab 5e00 ATTR_TABLE_COPY 6100 no_walk_tab 6400 bitSwapTab 6500 Y2SCR_HI 6600 Y2SCR_LO 6700 scr_addr_8 (2x256) ----- ~3583 6D60 code start 71ED highscore table 750E ----- ~ 800 7D4D beeper music+code 807D ---- ~ 816 84FB zone_blocks 8DC2 ---- ~2247 A3D3 trajectory A4D5 ----- ~ 258 A644 per_level_enemy_tab ----- ~ 351 A7A3 A92E xMessages AB61 ----- ~ 563 B0A8 sprite buffers B678 ----- ~1488 B678 PSG related code C79A ----- ~4386 C79B level data D886 ----- ~4331 D887 "FONTS" ECE6 ----- ~5215 ECE7 SPRITES FEB6 ----- ~4559
Последний раз редактировалось esl; 16.12.2014 в 12:41.
AzAtom(23.09.2025)
Влезу со своими никому не нужными пятью копейками — мне кажется, что при наличии полноценного и хорошего ремейка Exolon под PC и даже Мак (который DX, вы про него говорили) уводить спектрумовский Exolon в сторону от полной совместимости с обычными 48К-128К-машинами не стоит.
Как-то было бы куда приятнее, если бы появилась версия для условного фирменного 128К (ну и пентагона), которая бы выжимала все соки из него и AY, а не юзала бы более современными прибамбасы.
---------- Post added at 18:46 ---------- Previous post was at 18:36 ----------
А тем временем сам Рафаэль Кекко в восторге от работы. Вот что пишет (esl наверняка уже в курсе, но я для остальных):
Оригинал:Боже мой, он там во всём прям досконально разобрался!
И в первом же файле я, кажется, нашёл баг в своей процедуре. Ха, ничего удивительного!
Здорово — я как раз хотел что-нибудь почитать на Рождество, и моё желание сбылось. Поразительно, конечно. Передавайте мои поздравления и благодарность Сергею.
Вам тоже хорошего Рождества — лично я в этом году плюнул на «реальные» магазины и всё делал в онлайне.
Спасибо.
http://www.worldofspectrum.org/forum...4&postcount=45
Он написан достаточно модульно.
перенос на любой z80 будет не особо сложным
в Retro Gamer #135 (p.33-35) есть интервью Раффа про EXOLON
"... конверсия на Amstrad CPC была очень простой (deadly simple)
она заняла несколько дней.
перерисовал графику в меньшем разрешении и большем кол-вом цветов
переписал продцедуры спрайтов и slotting in the sound effects.
остальной код - идентичный."
на zx спрайты главного героя делал аниматор
(c одной пушкой)
с двумя это уже модификация
Буловался тут, визуализировал переходы "курсора" при отрисовке
получилось пару прикольных картинок
разные "стрелочки" -> разные переходы
blue - gotoXY
pink - (y+1,dx)
brown - (dy,dx)
красные квадраты -> начало отрисовки "блока" (или основной или подпрограммы так сказать)
EXOLON тоже забавно
левая половина
правая половина
и нижний хвостик
Последний раз редактировалось esl; 19.12.2014 в 19:02.
Вот точный ремейк под html5 http://newagebegins.github.io/exolon/exolon.html
AzAtom(11.06.2024)
http://zx-pk.ru/showpost.php?p=743488&postcount=11
похоже достаточно точный,
интересно, автор тоже дизассемблил ?
Удалось ли в итоге портировать игру и что за целевая платформа была?Сообщение от esl
С уважением, Станислав.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)