Go Penguin WIP platformer for MSX 1

ページ 5/16
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10

By albs_br

Champion (339)

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 (339)

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 (2542)

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 (10066)

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

Master (165)

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 (4699)

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

Prophet (3764)

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 (4699)

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 (339)

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 (339)

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