Abbaye des Morts MSX

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

By geijoenr

Champion (391)

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

26-02-2018, 20:36

Hi,
I have been working for some time (an rather slowly) in a game engine for MSX1, in order to test it I am making a port of Abbaye des Morts.

https://www.youtube.com/watch?v=N6NBt1l_3eM

the source is in github and open for pull requests.

https://github.com/retrodeluxe/rlengine-msx1

E.-

Для того, чтобы оставить комментарий, необходимо регистрация или !login

By ARTRAG

Enlighted (6977)

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

26-02-2018, 21:57

For music you can try to adapt this player

http://www.dvik-joyrex.com/download/pt3play.zip

By geijoenr

Champion (391)

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

26-02-2018, 23:06

thanks

By jltursan

Prophet (2619)

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

27-02-2018, 19:42

Cool project!!

In your "vdp_fastcopy_nametable" function you're sending data to VDP too fast (that's why it only works in MSX2). You need to add a "NOP" after every OUTI and prolly it would work in MSX1 (you're under the minimum t-states to wait tho, YMMV). You can also wait until vblank but seems a bad solution except if you plan to build a VDP engine with an execution queue ready to work only when vblank arrives, maybe too complex for a initial release of your library Smile

Check this interesting thread: https://www.msx.org/forum/msx-talk/development/respecting-29-t-states-timing?page=1

By Grauw

Ascended (10821)

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

27-02-2018, 20:42

Looks like fun!

Don’t miss the nice code snippet from the first post of that thread jltursan linked: loop: outi / jp nz,loop takes exactly 29 cycles. So this exactly matches the maximum transfer speed on screen 2. Handy!

Additionally, considering this loop:

vdp__copy_to_vram_loop:
        outi
        dec de
        ld a,d
        or e
        jr nz,vdp__copy_to_vram_loop

Rather than this 16-bit counter, by using two nested 8-bit loops and a tiny bit of math, using b and another register for the outer loop, you can get a faster loop, as described here. Like so:

    ld b,e          ; 16-bit counter (de) to two 8-bit counters (d, b)
    dec de
    inc d
vdp__copy_to_vram_loop:
    outi
    jp nz,vdp__copy_to_vram_loop
    dec d
    jr nz,vdp__copy_to_vram_loop

Given screen 2’s maximum transfer speed during active display, the extra speed of an unrolled loop is only useful if you plan to time your VRAM I/O in the VBLANK period, disable sprites, or code for V9938.

Finally, although it is fun to talk about, and good to know about these techniques, try not to get too absorbed by performance optimisation in places where it doesn’t really matter. Since as much as it is fun, it is also a huge time sink :). For me this is always a pitfall I try hard to avoid (and often fail), while I think in the end a finished product is what is most important.

By FiXato

Scribe (1743)

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

27-02-2018, 20:58

First make it work, then make it better. Wink

By alexito

Paladin (761)

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

28-02-2018, 04:48

Excellent Game and excellent review:

https://www.youtube.com/watch?v=YyknMZAB1CA

By geijoenr

Champion (391)

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

18-05-2020, 17:38

I have made a bit of progress lately on the port:

https://youtu.be/ICH9RFfk9lE

I think pretty soon is going to be fully playable.

By sfranck72

Resident (42)

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

19-05-2020, 10:41

Good, eager to see more.
That would be a good game for MSX, I'm suprise there was no conversion before.

By tfh

Prophet (3427)

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

19-05-2020, 10:57

Love the graphic style Smile Looking forward to see more of it Smile

By geijoenr

Champion (391)

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

14-06-2020, 21:56

And another update:

https://youtu.be/8j9gINVdXC0

the port is almost done. There are around one hundred small things to fix and some optimizations to do, but it may be ready for the msxdev deadline.

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