Go Penguin WIP platformer for MSX 1

Страница 5/16
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10

By albs_br

Champion (499)

Аватар пользователя 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).

By albs_br

Champion (499)

Аватар пользователя 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?

By jltursan

Prophet (2619)

Аватар пользователя 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

By Grauw

Ascended (10822)

Аватар пользователя 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.

By aoineko

Paragon (1144)

Аватар пользователя 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?

By gdx

Enlighted (6445)

Аватар пользователя 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.

By PingPong

Enlighted (4156)

Аватар пользователя 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

By gdx

Enlighted (6445)

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

01-05-2021, 15:06

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

By albs_br

Champion (499)

Аватар пользователя 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?

By albs_br

Champion (499)

Аватар пользователя 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!

Страница 5/16
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10