Turrican for MSX new WIP

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

By hit9918

Prophet (2926)

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

05-02-2022, 19:06

thegeps wrote:

It's not that simple:

You did not respond to my argument.
And then, "It's not that simple", you kinda confirm what I said, "the time is taken by something else".

So, do you have speed problems? To change the bullets to the RAM nametable will change nothing.

The RAM version of the code is this

	ld e,(hl)
	inc l
	ld d,(hl)
	ld a,bullet shape
	ld (de),a

And it is roughly those before mentioned 34 cycles faster

With a dozen bullets you save 1.8 rasterlines
And your game runs in some 3 frames, 900 rasterlines

By ARTRAG

Enlighted (6889)

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

05-02-2022, 20:28

thegeps
If you do not plan to have software sprites for enemies and your current strategy is adequate for your needs keep your track and do not waste time reworking things that work already Smile

By thegeps

Paragon (1122)

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

05-02-2022, 20:49

hit9918 wrote:

So, do you have speed problems?

Who said this?
We are simply talking about a way to gain some cicles (better have more of them for any case). The code isn't yet optimized. And probably some cicles to fully out the entire screen in ntsc too could be found moving the above mentioned "move player" routine at the end of the isr, instead of in between the SAT out and the SCREEN out, so it will prepare all the variations for the next frame to be outputted...

Anyway, no problems here, I can assure it

By hit9918

Prophet (2926)

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

05-02-2022, 21:58

Ah, it is about the short NTSC blank, I thought it is about cpu time.

By thegeps

Paragon (1122)

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

06-02-2022, 11:28

Ok, here's some measurements on ntsc (Sony HB-10) vs pal (vg8020) during isr hooked routine
white = gfx out
red = rest of the isr hooked routine (variables update + music replayer)

ntsc: all 3 nametable blocks outputted with classic outi+jp nz (29 cycles)
https://youtu.be/TMh2DHpWxvY
ntsc: 1st block outputted with unrolled otir (64 x outi repeated) + 2nd and 3rd with classic outi+jp nz
https://youtu.be/3A6KI0LRUQ8
ntsc: 1st+2nd block outputted with unrolled otir + 3rd with classic outi + jpnz
https://youtu.be/bENSPzDETY8
all of 3 blocks with unrolled otir wasn't possible (3rd block corruption)

pal: all blocks with unrolled otir
https://youtu.be/fw51zhKKgq8

By Grauw

Ascended (10633)

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

06-02-2022, 15:13

Interesting to see the differences! The unrolled otir + outi / jpnz combination is a clever idea, looks like it saves a decent amount of cycles.

By thegeps

Paragon (1122)

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

06-02-2022, 16:09

Yep and it will probably be the definitive arrangement. Infact now only one thing is missing in the isr according to my plans. The phaser weapon (the only alternative to bullet weapon in Turrican) that is easier to manage compared to bullets (only orizontal movement and limited number of shots)
Rotating laser, wich doesn't need to change its position during the time like bullets (infact it works only when the main character is stopped) xan be managed outside the isr.
So no more load on the isr

By hit9918

Prophet (2926)

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

06-02-2022, 16:52

Enable the BLANK bit in the VDP mode register during every high speed vram copy, then corruption is impossible.
It is a bit a secret feature.

By thegeps

Paragon (1122)

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

06-02-2022, 19:08

You mean to force the screen to be disabled a little more than the vblank?
So set the blank bit, do all the stuff with unrolled otir (even on ntsc) and then reset the blank bit?

By hit9918

Prophet (2926)

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

06-02-2022, 21:33

Yes, I suggest to always put it to blank when speeding. And then one can go speeding some more Big smile
But dont make the display flash nervously.

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