dave wrote:this is why i want to be credited properly.
If you think that you are not credited properly for your valuable contribution to R'n'D at the moment, and how it should be done instead, please let me know. (Here in the forum, or by private e-mail, as you prefer.)
i played diamond caves when it first came out, (when i still had my amiga :-) and it is not a perfect clone. iirc you could collect emeralds and diamonds as they fell, which is a fatal flaw in any emulation of emerald mine.
I have to defend Diamonds Caves a little bit here: I think it is a very good clone which plays pure Emerald Mine levels quite nicely. I also don't think that differences in behaviour you mentioned above (collecting falling gems) are a "fatal flaw", as this only makes a minority of levels a little bit easier to play (sort of "cheating", if you like). IMHO, a "fatal flaw" is an engine difference that makes a majority of levels completely unplayable/unsolvable.
i disassembled original kingsoft emerald mine, and re-wrote it from scratch in assembly for the amiga.
Yep, that's what I expected. To those who may now think "Well, writing a highly compatible game engine in a certain language if you have a perfectly compatible (original) version of the exact same game engine in the exact same language should be a reachable goal.", I have to tell that it's easy to disassemble a program, but quite hard work to make sense of it, with no variable names and functions and all (just to name a few things). Everybody who has ever seen (not even to talk of modified, re-assembled and successfully run again) a disassembled binary program will agree here.
IMHO, the most important part was to translate the engine to C, which made it available to all modern systems, not only antique Amiga systems. I cannot emphasize enough how much I appreciate this!
so to answer your question, no it is not based on disassembly, it is written and re-written three times, in c, entirely from scratch.
Yes. But I think it wouldn't have been possible to reach the same agree of compatibility without the analysis of the disassembly (but by only looking closely at the running game engine, as it may have been the case with Diamond Caves).
About the new Supaplex engine:
(i am skeptical of this. you have very different programming langauges and runtime environments. if the original code relys on such things you will have a hard time emulating it. for example in emerald mine to be 100% compatible would require the amiga ROM because it is used for random numbers. another problem is code that examines uninitialized memory (see level 80, in both ruppelmine 4 & 5).
Yes, that's right. The Supaplex engine indeed has this "problem" -- you can create levels that cause access to non-playfield memory, and quite a number of levels make (ab-)use of this, so just preventing off-playfield access (like it is done in the R'n'D engine) would cause a number of levels to be unplayable/unsolvable. To find correctly working solutions for such special cases is a good part of integrating such a native engine that originally ran in a non-memory-protection, non-multitasking environment.
yet you, and others, continue to say its 'partially' compatible with emerald mine.
Yes, it is. (In a similar sense that Diamond Caves is Emerald Mine compatible, although Diamond Caves beats R'n'D here, I think.)
try 99.8% incompatible (100 em levels shipped with rnd divided by 50 000 total).
Yes, it's not generally Emerald Mine Club engine compatible.
(On a side note: I added those additional EMC game elements to the R'n'D engine not to play native EMC levels in the R'n'D engine, but to be able to create or modify EMC style levels, as R'n'D internally uses R'n'D engine elements also for levels designed to be played with a native game engine before they are played with that engine. To get a seamless integration without people wondering why certain elements do nothing when played with the R'n'D engine, I added some similar functionality to those EMC elements also in the R'n'D game engine, which may be only slightly compatible with the original. After all, it's no coincidence that all levels from that huge EMC collection are played with the EMC engine by default, and not with the R'n'D engine, although this can be changed in the level editor if somebody wants to see how a certain level plays with the R'n'D engine. But it shouldn't be forgotten that the R'n'D engine wasn't created to play all EM/EMC levels, but to play R'n'D levels.)
RTADash wrote:One of my primary points was that the best-designed levels (the classics) can actually withstand changes to the engine.
Interestingly, this is right. Most of the classic original levels are not only well-designed regarding fun and playability, but also in a surprisingly engine-robust way, which means that most of these levels do not require frame-exact timing or make use of ultra-specific engine details -- something which cannot be said for quite a number of the EMC levels, or some of the additional, player-designed Supaplex levels, where in both cases special/strange engine behaviour was used to make levels especially tricky, which unfortunately does not always add to the fun and playability for those players who don't have this inside know-how about the engines.
As a result, the classic original Emerald Mine levels can also be played nicely with game engines like Diamond Caves or R'n'D, which in fact are not perfectly Emerald Mine compatible, while many of the EMC levels need a much higher compatible game engine to be played.
On a side note, I feel the need to mention that 99/100 of the original Boulder Dash levels and 110/111 of the original Supaplex levels are also solvable under the RnD engine.
It's interesting to see that the above not only seems to be true for only the Emerald Mine engine, but also the Supaplex and Boulder Dash game engine. Apparently these original levels focussed on different game aspects that bashing the engine to the limits! ;-)
I personally am very interested to see how the BD engine will turn out, with that classic being my forte of the three.
Don't know why, but when I worked on the EMC engine integration, everybody and his dog asked for the native Supaplex engine. Since I work on it, I got quite an amount of requests and questions regarding the native BD engine! :-)
BTW1: The code for that BD engine (which is said to be highly, if not perfectly compatible) is already waiting to be integrated. It's just a matter of free time for coding, instead of writing forum posts. ;-P
BTW2: When that BD engine is done one day, I also have a collection of around 550 classic (from C64 times) player-created BD level sets available for it... :-)