Freescape

صفحة 4/6
1 | 2 | 3 | | 5 | 6

بواسطة gdx

Enlighted (6215)

صورة gdx

24-02-2023, 15:49

I think the good compromise would be to use the Screen 4. Type 2 sprites, color palette and additional pages are a real plus without changing the program much.

بواسطة ARTRAG

Enlighted (6935)

صورة ARTRAG

24-02-2023, 15:55

Your annotated sources are a mine of information, it has been a titanic work... Big smile

بواسطة santiontanon

Paragon (1805)

صورة santiontanon

24-02-2023, 16:01

Thanks for all the info Artrag!!! And yes, it was a lot of work, but it was fun! haha

@gdx: screen 4 is the only one I am familiar with in MSX2, and yes I think that would be a good choice for a quick port. Sprites could be used for the pointer that is always drawn on top at the moment. All other things can be occluded, so, not sure if sprites would work for anything else in the current code base.

بواسطة ARTRAG

Enlighted (6935)

صورة ARTRAG

26-02-2023, 09:54

A screen 5 or screen 8 version would need a separate renderer based on the vdp engine.
The trade off is full color use without color clash vs low frame rate and bigger effort in writing the renderer.

Using screen 4 you can use about the same code for msx1 and 2, in the latter case you can use less wait cycles and two pages to avoid frame tearing

بواسطة ARTRAG

Enlighted (6935)

صورة ARTRAG

26-02-2023, 12:23

Anyway an attempt of doing a direct rendering of the scene would be probably too slow due to the filling of the polygons.
Differential plotting could work but it needs some clever strategies to be implemented

بواسطة pgimeno

Champion (328)

صورة pgimeno

26-02-2023, 20:02

What a gift! Thanks so much Santi!

While taking a look at the disassembly, I've seen your surprise about the handling of IY.

In a Spectrum, the ROM sets IY to 23610 (0x5C3A) then assumes that it's set to that value, and even the default IM 1 interrupt routine assumes that. A plausible hypothesis is that it was used by them during debugging, to return to BASIC. Another is that they weren't sure whether the ROM save/load routines used IY. When using the default entry point which gives an error on BREAK, the BREAK handler does use it.

There's a copy-paste error, by the way, in line 70 of the annotated version. The comment says the same as for the saving routine, but it should read "Loads a collection of bytes from tape". Sorry, I'm not on GitHub so I can't send you a PR.

بواسطة santiontanon

Paragon (1805)

صورة santiontanon

26-02-2023, 23:37

Oh, interesting! I didn't know about the IY usage in spectrum! I was so confused, as I looked at the loader and it was no setting it either, it makes sense now then Smile

And thanks for the note! I'll fix it! I have been noticing lots of typos after going through some routines, so, I should send a patch. Hopefully later this week [I just fixed it, since I was in my computer already haha]

بواسطة mohai

Paladin (1007)

صورة mohai

27-02-2023, 11:30

santiontanon wrote:

There you go! It took many hours of work over about a month of time, but I have finished the disassembly of the Freescape engine! https://github.com/santiontanon/castlemaster2-disassembly

Nice! :D
Thanks for sharing. It is a hard work.
I already identified the main areas in Dark Side game and I am working on the routines for the conversion.
Programmers said that they used a different version of the engine in the different games they released so, the one in Castle Master 2 should be an enhanced version.
I think the last version should be in 3D Construction Kit.
That one is another target for me. It could be interesting having such a development tool for MSX.

By the way, I found an interesting game but with differebt approach to freescape: [url=https://en.m.wikipedia.org/wiki/The_Sentinel_(video_game)]The Sentinel[/url]
This one does not show real 3D moving stages, but pre-calculated views instead.

بواسطة mcolom

Champion (316)

صورة mcolom

27-02-2023, 14:31

Amazing work, Santi! Thanks! I discovered this thread yesterday. First you say "I have 30% disassembled", and some weeks after you have the full disassembly, nicely formatted, and with comments. Wow Smile

بواسطة cborn

Supporter (2)

صورة cborn

27-02-2023, 23:07

Hi, thank you for the disassembly. I noticed it overlaps on the system variable area and i assume it uses some Rom calls so this ROM dissas migth be handy as a reference.
https://github.com/ZXSpectrumVault/rom-disassemblies/tree/ma...

the system variables names as reference
https://worldofspectrum.org/ZXBasicManual/zxmanchap25.html

i myself did some gigascreen thingies and i am curious if a 2screen system would be possible but i assume it will be extreem slow.
cheers!

صفحة 4/6
1 | 2 | 3 | | 5 | 6