Go Penguin WIP platformer for MSX 1

Page 5/16
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10

Par albs_br

Champion (319)

Portrait 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).

Par albs_br

Champion (319)

Portrait 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?

Par jltursan

Prophet (2536)

Portrait 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

Par Grauw

Ascended (10015)

Portrait 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.

Par aoineko

Master (163)

Portrait 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?

Par gdx

Enlighted (4634)

Portrait 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.

Par PingPong

Prophet (3755)

Portrait 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

Par gdx

Enlighted (4634)

Portrait de gdx

01-05-2021, 15:06

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

Par albs_br

Champion (319)

Portrait 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?

Par albs_br

Champion (319)

Portrait 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!

Page 5/16
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10