Go Penguin WIP platformer for MSX 1

Página 5/8
1 | 2 | 3 | 4 | | 6 | 7 | 8

Por albs_br

Master (248)

imagem de albs_br

03-04-2021, 14:53

albs_br wrote:

(I shamelessly copied from SMB)

* SMW (Super Mario World from SNES), not SMB (Super Mario Bros from NES).

Por albs_br

Master (248)

imagem de albs_br

30-04-2021, 14:45

I would ask one thing about the TMS9918:

I know I can have two name tables and switch them, it's a simple way of implementing a double buffering. I wrote the bytes on the innactive names table, and then switch to it at VBLANK start.

The question is: can I use unrolled OUTIs when writing to the innactive names table? My guess is that I can't. Unrolled OUTIs are possible only during VBLANK. Is that correct?

Por jltursan

Prophet (2480)

imagem de jltursan

30-04-2021, 16:34

Yep, VRAM is VRAM whatever it's located or how it's used. Same rules applies, full speed only in VBLANK and correct waiting timings out there Smile

Por Grauw

Ascended (9763)

imagem de Grauw

30-04-2021, 16:39

albs_br wrote:

The question is: can I use unrolled OUTIs when writing to the innactive names table? My guess is that I can't. Unrolled OUTIs are possible only during VBLANK. Is that correct?

Correct. The access slots mechanism which limits the maximum transfer rate applies to all of the VRAM, not just a part of it. The bottleneck is the use of the data bus between the VDP and the memory, not tied to specific memory regions. During active display the VDP continuously reads bytes from VRAM to display, occupying the data bus. Between those reads, it leaves some room for the CPU to read / write to VRAM. During blanking there is more room so the CPU needs to wait less.

Por aoineko

Master (140)

imagem de aoineko

30-04-2021, 23:22

Grauw wrote:

During blanking there is more room so the CPU needs to wait less.

During blanking there's no need for the CPU to wait at all, no?

Por gdx

Enlighted (4282)

imagem de gdx

01-05-2021, 10:36

OUTI is always possible (only a little wait time is required after setting the first address in VRAM) but not OTIR.

Por PingPong

Prophet (3681)

imagem de PingPong

01-05-2021, 14:16

gdx wrote:

OUTI is always possible (only a little wait time is required after setting the first address in VRAM) but not OTIR.

not in active area without delay. OUTI unrolled is faster than otir

Por gdx

Enlighted (4282)

imagem de gdx

01-05-2021, 15:06

Yes, it's right. I was not clear. I meant alone in a in a loop.

Por albs_br

Master (248)

imagem de albs_br

01-05-2021, 17:12

Is there any way to rename a forum thread?
I would like to change it to "Go Penguin WIP platformer for MSX 1". Could some admin make this change?

Por albs_br

Master (248)

imagem de albs_br

03-05-2021, 05:30

Finally a new video to show you guys:

https://youtu.be/2NCsq2hEWuI

After one month of work, now we have enemies (they still don't move, neither can kill the player).

Lots of refactoring, I think the codebase is more robust and will be easier to work from now on.
Many bugs fixed (no more sticking to side of blocks). Minor bugs still found.
Running implemented, but not working 100%.

As next step I will implement the double buffering using dual name tables, to gain some performance and make it possible to show more than one enemy per screen.

ROM and source are avalialable, if someone would like to test (MSX 1 real machines are especially appreciated):
https://github.com/albs-br/penguin-platformer
Z key to run, X to jump.

Hope you enjoy!

Página 5/8
1 | 2 | 3 | 4 | | 6 | 7 | 8