Turrican for MSX new WIP

Страница 2/6
1 | | 3 | 4 | 5 | 6

By Grauw

Ascended (10633)

Аватар пользователя Grauw

03-02-2022, 13:16

Rataplan wrote:

Very impressive indeed! Missing the copper-backgrounds though Wink

Turrican didn’t have copper-backgrounds, only the sequels did Smile.

By thegeps

Paragon (1122)

Аватар пользователя thegeps

03-02-2022, 17:11

gdx wrote:

Maybe the fire shouldn't go through the water (or found a trick) to make it proper.

just checked. it behave the same on both C64 and Amiga versions, like mine (I just have to add a little explosion when the bullets touchj some solid surface)

By AnsiStar

Expert (127)

Аватар пользователя AnsiStar

03-02-2022, 17:50

That is a must have!! Wait for the cartridge!! Wink

By Bengalack

Hero (660)

Аватар пользователя Bengalack

03-02-2022, 19:16

Cool. Certainly progress here Smile I like it Smile

By Rataplan

Champion (274)

Аватар пользователя Rataplan

04-02-2022, 00:00

thegeps wrote:

Well, there were only on Turrican2 Wink
And only on Amiga, of course Wink

Hehe fair enough :-) just played / compared Turrican 1 and 2 on my A1200 and Turrican 3 on Amiga with Super Turrican on SNES but I still prefer T2 on Amiga in every way (even more with 2button control). What a masterpiece was that. It's graphics and especially the music will be imprinted in my brain until the day I die.
While I always respect any developers choice, and maybe it's been asked before, but why MSX1?

By thegeps

Paragon (1122)

Аватар пользователя thegeps

04-02-2022, 00:21

I had an msx1 in the past. Only some year ago I bought an MSX2 (wich was my dream machine, in the past, until I bought an Amiga500+). So it is a matter of love <3
But I'm planning to study (in the meanwhile) the v9938 and add features on msx2 if I'll be able to... also because in Freedom Fighter post credit scene I imply that Freedom Fighter 2 will be developed on msx2... so I have to!

And yes, Turrican 2 on Amiga is the best game ever and forever (at least in my heart)

By gdx

Enlighted (5815)

Аватар пользователя gdx

04-02-2022, 08:40

It's prettier by putting a condition for water but it needs 3 more characters.

By thegeps

Paragon (1122)

Аватар пользователя thegeps

04-02-2022, 18:05

well, 5 more characters, to say the truth... you aren't considering 5way (the bullets of the 2 diagonal types aren't the same).
bullets are updated every frame inside the isr. for each bullet I have to set the address and then out it to vram after the screen draw (yep, every frame). I'm already in need of cycles (well in 60Hz machines) so I use 2 different screendraw routines for pal and ntsc: pal screen contents are updated using unrolled otir (soa serie of outi), ntsc ones instead using the classic

label:
     outi
     jp nz,label

(else the bottom of the screen is corrupted)
this because i do a lot hooked in the isr:

redefine 8 sprites (the main character) (256 bytes, unrolled otir)
output the SAT (128 bytes, unrolled otir)
check player movement (not joystick input, stuff like jump offsets, background collision, coordinates updates , and so on)
output the screen (640 bytes, pal unrolled otir, ntsc classic way)
bullets (up to 15 addresses to set and up to 15 bullets to out on vram, they will be deletd next frame from screen output and updated again from this routine)
check frequence and play music at correct speed
update some flags/variables

so added another check (for up to 15 bullets) and maybe use another way to decide wich bullet shape write (actually I use the b value, the counter of the routine because in the bullet table the bullets are stored by type so knowing b we know wich bullet we are writing in vram)... I think I will keep it this way Wink

By santiontanon

Paragon (1693)

Аватар пользователя santiontanon

05-02-2022, 03:49

thegeps wrote:

for each bullet I have to set the address and then out it to vram after the screen draw (yep, every frame).

Oh, interesting! What I usually do is to just overwrite map data in RAM with the bullet tile (and then the tile stores what was underneath it), so when the map is copied to VRAM, the bullets (and all tile-based entities) are copied with it in one go. Then in the next frame, I first "undo" this drawing, then update the entities, and redraw them again over the map, before sending it to the VDP.

By thegeps

Paragon (1122)

Аватар пользователя thegeps

05-02-2022, 08:43

I wanted to do the same before, but in previous version the screen was refreshed only every 3/50 of sec (outside the isr) and the video buffer on ram could be moved in 8 directions. Bullets have to be fast so I decided to update them during isr, storing their locations, restoring them before drawing again the bullets but always during isr so retrieving the addresses and doing this operation for up to 15 bullets. Ir wasn't a matter for horizontal bullets (only one address retrieve from table, out(98h) old backgound value out(98h) bullet value, thanks to auto increment). But for diagonal ones I had to retrieve address, out old bg value, add the right offset to address re send address data and out bullet value. And in 5way bullet we have 12 diagonal bullets (so 24 addressess out)...
So I preferred to output the whole screen before drawing new bullets to avoid all those double addressess out(99h)

Страница 2/6
1 | | 3 | 4 | 5 | 6