Abbaye des Morts MSX

Page 1/3
| 2 | 3

Par geijoenr

Champion (364)

Portrait de geijoenr

26-02-2018, 20:36

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.

the source is in github and open for pull requests.


!login ou Inscrivez-vous pour poster


Enlighted (6935)

Portrait de ARTRAG

26-02-2018, 21:57

For music you can try to adapt this player

Par geijoenr

Champion (364)

Portrait de geijoenr

26-02-2018, 23:06


Par jltursan

Prophet (2619)

Portrait de 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:

Par Grauw

Ascended (10768)

Portrait de 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:

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

Par FiXato

Scribe (1742)

Portrait de FiXato

27-02-2018, 20:58

First make it work, then make it better. Wink

Par alexito

Paladin (761)

Portrait de alexito

28-02-2018, 04:48

Excellent Game and excellent review:

Par geijoenr

Champion (364)

Portrait de geijoenr

18-05-2020, 17:38

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

I think pretty soon is going to be fully playable.

Par sfranck72

Resident (42)

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

Par tfh

Prophet (3346)

Portrait de tfh

19-05-2020, 10:57

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

Par geijoenr

Champion (364)

Portrait de geijoenr

14-06-2020, 21:56

And another update:

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.

Page 1/3
| 2 | 3