Wolfenstein 3D для Sega

Автор admin, 27 августа 2013, 11:27

« назад - далее »

admin

Немного истории:
Примерно в одно и тоже время Wolf3D для Sega MegaDrive / Genesis стали разрабатывать два совершенно разных человека. В начале стало известно о Wolfenstein 3D Sega от peekpoke. Данный Вольфенштейн имел небольшую область экрана на которой происходило действие. Так же ФПС (Кадровая частота) не превышало 10 кадров в секунду. К сожалению данный проект был заброшен и на данный момент о нём нечего не слышно.
Совершенно недавно стало известно ещё об одном проекте Wolfenstein 3D Sega. На этот раз от gasega68k. По заверениям самого автора он трудится над Вольфенштейн 3Д уже около года. Фактически это порт оригинального кода игры Wolfenstein 3D на более слабое железо SMD. Но результат его трудов просто поражает воображение. Можно считать, что это будет один из лучших шутеров от первого лица для Sega Mega Drive. Которых и так на эту консоль немного.
gasega68k уже начал работу над спрайтами и другими объектами в игре, так что я надеюсь, что в скором времени мы сможем поиграть в полноценный порт Wolfenstein 3D для Sega Genesis / Mega Drive.
 
Видео демонстрирующие возможности порта WF 3D.
 
В этой теме я буду держать вас в курсе событий вокруг проекта порта Wolfenstein 3D.
 
Сравнение двух разных версий Wolfenstein 3D (Wolf3D от peekpoke, Wolf3D от gasega68k):
Напомню, что игру Wolf3D уже портировали на Sega 32x, в результате появилось 2 игры:
Wolfenstein 3D
Wolfenstein 3D: Spear of Destiny
 
Так же ходят слухи, что может появиться Wolfenstein 3D для Sega CD / Mega CD.

admin

На данный момент в демо Wolfenstein 3D доступен только первый уровень. В нём пока нет, ни предметов, ни врагов, зато есть открывающиеся двери, что немаловажно. Так же имеется музыка и звуки.

Slik

Глядишь, когда автор закончит портировать Вольфенштейн 3Д на Sega Mega Drive, он возьмётся за порт Wolfenstein 3D: Spear of Destiny.

admin

gasega68k обновил демо ром Wolfenstein 3D SMD. В нём он сделал некоторые спрайты, например руки и лицо персонажа. Подробнее в статье.

admin

Возникла проблема с совместимостью игры с железом. Проще говоря, с работай игры на оригинальном или близкому к оригинальному железе. Идёт отладка и поиск причины.

Цитировать 

1. "wolfdemo_wsound.bin"
    -------------------
-the first release.

2. "wolfdemo_wsound_FONT_PAL.bin"
    ----------------------------
-Changed routine to load 1bit-fonts and remove half of the font (not used).
-Changed pallete.
-Added MOVE #$2700,sr before load samples to z80 ram.
-Added some tiles(keys).

3. "wolfdemo_wsound_FONT_PAL_HUD.bin"
    --------------------------------
-Added HUD(no player's hand/weapon).

 

admin

Сегодня gasega68k опубликовал демо игры Wolfenstein 3D для Sega CD. Так же уже частично решена проблема совместимости игры с оригинальным железом SMD, выплыла проблема с музыкой.
 
Спойлер


"wolfdemo_wsound"
---------------

This is the first version of the demo, but the samples do not work here, and also sometimes the demo crashes. I'm sure this is because the z80 is not initialized correctly. This is the code to initialize the z80 I did:

This is the first version of the demo, but here the samples do not work well, and also sometimes the demo crashes. I'm sure this is because the z80 is not initialized correctly. This is the code to initialize the z80 I did:

move.w  #$100,$a11100     ;stop the Z80
move.w  #$100,$a11200     ;reset the Z80

lea z80drv,a0
move.w  #544-1,d0       ;lenght driver
lea     $a00000,a1
z80lp:
move.b  (a0)+,(a1)+
dbra d0, z80lp

lea musicdata,a2
move.l a2,d0
move.l a2,($ffffa110)     ;address_data
jsr tfc_init

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

tfc_init:
move.w #$100,$a11100    ;busreq on
move.w #$100,$a11200    ;reset on
move.w #$0,$a11100      ;busreq off

move.l d0,a2          ;TFCP.data=data;
moveq #0,d0
bsr tfc_play         ;if d0=0  initialize all Ym regs.

rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In the all other versions (that do work well) I add this:

move.w  #$100,$a11100     ;stop the Z80
move.w  #$100,$a11200     ;reset the Z80

lea z80drv,a0
move.w  #544-1,d0       ;lenght driver
lea     $a00000,a1
z80lp:
move.b  (a0)+,(a1)+
dbra d0, z80lp

------------------------------------------------- \
move.w #$0,$A11200                               add
move.w #$0,$A11100      ;start the Z80           this
move.w #$100,$A11200    ;reset the Z80
------------------------------------------------- /

jsr tfc_init

"wolfdemo_wsound_sr2700"
----------------------

This version add MOVE #$2700,sr before loading samples to z80.

"wolfdemo_wsound_busrq"
---------------------

In this version I move the "busreq off". I think that how it was before was not correct.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

tfc_init:
move.w #$100,$a11100    ;busreq on
move.w #$100,$a11200    ;reset on

move.l d0,a2          ;TFCP.data=data;
moveq #0,d0
bsr tfc_play         ;if d0=0  initialize all Ym regs.

move.w #$0,$a11100      ;busreq off

rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

"wolfdemo_wsound_busrq_wz80"
--------------------------

In this version, in the ymwrite loop I add this:

;d0 = reg,  d1 = val,  d2 = bank
ym2612wr:
;lea  $a04000,a0
move.w #$100,$a11100    ;busreq on
nop
nop
nop
----------------------------------\
z80notready:                       add
btst  #0,$a11100                this
bne.s z80notready
----------------------------------/
tst.b $a01ff0
beq.s wait1
clr.w  $a11100
nop
nop
nop
nop
nop
bra.s ym2612wr

wait1:
tst.b  (a0)        ;waitstatus
bmi.s wait1
move.b d0,0(a0,d2)
wait2:
tst.b  (a0)        ;waitstatus
bmi.s wait2
move.b d1,1(a0,d2)
clr.w  $a11100      ;move.w #$0,$a11100      ;busreq off
rts

"wolfdemo_wsound_busrq_wait3"
---------------------------

In this version, in the ymwrite I add this:

;d0 = reg,  d1 = val,  d2 = bank
ym2612wr:
;lea  $a04000,a0
move.w #$100,$a11100    ;busreq on
nop
nop
nop
tst.b $a01ff0
beq.s wait1
clr.w  $a11100
nop
nop
nop
nop
nop
bra.s ym2612wr

wait1:
tst.b  (a0)        ;waitstatus
bmi.s wait1
move.b d0,0(a0,d2)
wait2:
tst.b  (a0)        ;waitstatus
bmi.s wait2
move.b d1,1(a0,d2)
----------------------------------------------\
wait3:                                         add
tst.b  (a0)        ;waitstatus             this
bmi.s wait3
----------------------------------------------/
clr.w  $a11100      ;move.w #$0,$a11100      ;busreq off
rts

"wolfdemo_wsound_brq_wz80wait3"
-----------------------------

In this I add the two previous.

"wolfdemo_wsoundb"
----------------

This is the second release I uploaded (also add the correct initialization of the z80).

"wolfdemo_wsoundb_wz80wait3"
--------------------------

From previous version, in the ymwrite I add the two loops mentioned before.

"wolfdemo_wsoundb_nomusic"
------------------------

The music is not played.

"wolfdemo_texture_color_test"
---------------------------
This is a much earlier version that I made to test the combination of colors in the textures that could be used, for example the combination of blue and red to make purple, blue and yellow to make green...

admin

gasega68k сообщил, что он закончил возиться с TFC плеером и может быть в будущем напишет свой звуковой движок. Теперь он перешёл к созданию объектов (врагов) и выводу их спрайтов на экран.

SPOT

С нетерпением жду Wolfenstein 3D для SMD. Я готов ждать, но лишь бы знать, что проект не умрёт на какой-то из стадий. Возможно, что это получится лучший FPS (Шутер) для 16-ти битной игровой приставки Sega MegaDrive.

Alon

Было бы ещё неплохо, если бы автор данного порта игры, сделал бы ещё левел едитор (Level Editor) для своего Wolfenstein 3D. Но это так, скорее мечты, потому что игра ещё даже не завершена.

admin

Gasega68k добавил в свой порт Wolfenstein 3D некоторые объекты. Теперь игра смотреться ещё лучше.
Подробнее обо всех обновлениях Wolf 3D читайте в статье В Wolfenstein 3D для Sega MegaDrive появились спрайты. Там же можно посмотреть демонстрационный ролик в котором показаны все нововведения и некоторые секреты.

SPOT

Вольфинштейн для Сега это будет конечно круто.

admin

Игра обновилась, стало ещё больше предметов (спрайтов), подробнее в статье:
Wolfenstein 3D для SMD продолжает развиваться

SPOT

Спасибо, что держите нас в курсе дела о проекте Wolfenstein 3D для SMD.

admin

Стало известно, что порт игры Wolfenstein 3D официально разрабатывался для Mega Drive. Игра должна была содержать в себе всё то, что содержала версия игры для PC, в том числе и кровь. Игру разрабатывала Imagineer. Wolf 3D для SMD должен был выйти в ноябре 1994 года, но, к сожалению, этого не случилось.
Если честно скриншоты игры из журнала не вдохновляют. Наверное, хорошо, что она так и не вышла, иначе бы gasega68k не начал делать порт столь высокого уровня. Который по качеству графики почти не уступает ПК версии, а порты для многих консолей даже превосходит. Например, Wolfenstein 3D для GBA.
wolfmd3.jpgwolfmd2.jpg

admin

Демо игры Wolf 3D для SMD обновилось. Появилась возможность подбирать предметы и переключать оружие. Подробнее обо всех нововведения вы можете прочитать в статье Wolfenstein 3D для Sega Mega Drive новое демо.
В следующем демо автор пообещал добавить новые уровни и разобраться с воспроизведением музыки на оригинальном железе.

Alon

Отлично, уже не терпится увидеть врагом, а то скучновато бегать в 10 раз по одной и той же локации.

SPOT

Цитата: admin от 23 сентября 2013, 16:14 
Стало известно, что порт игры Wolfenstein 3D официально разрабатывался для Mega Drive. Игра должна была содержать в себе всё то, что содержала версия игры для PC, в том числе и кровь. Игру разрабатывала Imagineer. Wolf 3D для SMD должен был выйти в ноябре 1994 года, но, к сожалению, этого не случилось.
Если честно скриншоты игры из журнала не вдохновляют. Наверное, хорошо, что она так и не вышла, иначе бы gasega68k не начал делать порт столь высокого уровня. Который по качеству графики почти не уступает ПК версии, а порты для многих консолей даже превосходит. Например, Wolfenstein 3D для GBA.
 
Спасибо, полезная и интересная информация. Кто бы мог подумать что уже была официальная попытка портировать (адоптировать) эту игру для SEGA MD.

admin

Сейчас автор работает над звуковыми эффектами. Теперь их длительность не ограничена временем. Так же он продолжает работу над нормальным воспроизведением музыки на железе. И ещё, был немного доработан движок спрайтов.

admin

Хорошие новость, кажется наконец-то gasega68k закончил возиться со звуком и наконец-то ему удалось добиться нормального звучания на железе. Теперь он продолжит свою работу над игрой.

admin

gasega68k собрал свой флеш-картридж для SMD, так что, наверное, теперь дела пойдут быстрее.