Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Found a bug in R'n'D? Report it here!

Moderators: Zomis, Flumminator

Post Reply
User avatar
RAP
Posts: 285
Joined: Sat Jun 19, 2004 6:44 pm

Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by RAP » Sat Feb 03, 2018 9:28 am

Yeah, I was say something about this, because moments ago, I was about to watch my recorded tapes on playing Ace Mine 1 (an Emerald Mine Club levelset) on the latest version of Rocks'n'Diamonds (4.0.1.1) to look at how much I played R'n'D (and to get more inspiration for level creating), I noticed that in the middle of the recording of level 0, I somehow died in the middle of the level. This wasn't the case at all when playing the same tape on version 4.0.0.0. For those that wanted the Ace Mine 1 tapes that I made, just refer to this link: http://www.artsoft.org/forum/viewtopic. ... 084#p13039

Here's something that's worth mentioning that could narrow down what would cause those types of bugs, in regards of playing Emerald Mine Club levels, to keep it authentic, I played the levels without using the tape system to quick save and quick load. Thinking about this a bit further, I actually refer doing this practice because they're might be a bug on quickloading saved in-progress levels that are in the Emerald Mine engine... but unfortunately that was long ago, I don't know if the info is clear or detailed enough.

In regards to the Ace Mine 1 tapes when played on 4.0.1.1, I took the liberty (thanks to the way-faster way to load tapes system in comparison to 4.0.0.0), here are the tapes where it got busted in that I got stuck or died with an incorrect playback of the input from said tape:

Level 0, 3, 5, 8, 11, 12 (wait, what?), 14, 16, 17, 19 (another dynamite?), 23, 27, 30, 31, 32, 33, 36 (yet another dynamite?), 37, 38, 39, 41, 44, 47, 48, 51, 52, and 74 (stuck?!).

I played the tapes of those affected levels in 4.0.0.0 and those problems didn't exist at all. Then again, I'm not sure what version Rocks'n'Diamonds was used when making those taapes in December 2009, probably the latest version of R'n'D at the time!

Hope this helps you narrow down this pesky bug Holger!

User avatar
Holger
Site Admin
Posts: 2977
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by Holger » Sun Feb 04, 2018 10:14 am

Ryan, I've split your post from this thread, as this is a different bug (in fact, it's two separate bugs caused by small changes in version 3.3.1.0 and 4.0.1.0).

User avatar
RAP
Posts: 285
Joined: Sat Jun 19, 2004 6:44 pm

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by RAP » Sun Feb 04, 2018 11:11 am

Okay, so I attempted to do a narrow-down of this bug, using version 4.0.0.0 and 4.0.1.1, and here's the test level and tape to go along with it:
099.level
(248 Bytes) Downloaded 54 times
099.tape
(117 Bytes) Downloaded 39 times
The level simply consists of a player next to a dynamite next to an exit that's blocked off by walls.
  • In 4.0.0.0, when holding down the action button (which is to lit up a dynamite), while doing so, I moved my player around, which did not lit up the dynamite, as I have to stay still in order to make it happen.
  • In 4.0.1.1, this is where there's the differing input control schemes happen; while holding down the action button, I can't move the player at all unlike in 4.0.0.0.
  • It appears that because of this tweak in the control scheme, this makes the tape playback in 4.0.1.1 screwy, and not 4.0.0.0 because the latter does not have the player lock into place and not move while holding the action dynamite button.
...huh, so in 4.0.1.1, both of the snap and action buttons combined together as intended by the engine? Basically the two separate buttons are both combos. That control scheme reminds me of playing BD4, where there's only one action button for both snapping and dynamite dropping.

User avatar
Holger
Site Admin
Posts: 2977
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by Holger » Sun Feb 04, 2018 12:28 pm

In 4.0.0.0, when holding down the action button (which is to lit up a dynamite), while doing so, I moved my player around, which did not lit up the dynamite, as I have to stay still in order to make it happen.
Yep, that's the old behaviour. Check out original Emerald Mine in UAE: You cannot walk around with pressed button, as this (pressing button key and any direction key) triggers snapping.
In 4.0.1.1, this is where there's the differing input control schemes happen; while holding down the action button, I can't move the player at all unlike in 4.0.0.0.
And that's the correct behaviour (with "correct" as in "the way it worked in the original Emerald Mine engine").
It appears that because of this tweak in the control scheme, this makes the tape playback in 4.0.1.1 screwy, and not 4.0.0.0 because the latter does not have the player lock into place and not move while holding the action dynamite button.
With the bugfix mentioned in the other thread (soon to be released as R'n'D 4.0.1.2), tapes of EM levels recorded with pre-4.0.1.0 versions of R'n'D (including those you mentioned above) should work again (excluding those that break due to a second bug introduced with 3.3.1.0 -- I'll try to fix this with 4.0.1.2, too).

User avatar
Holger
Site Admin
Posts: 2977
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by Holger » Mon Feb 05, 2018 1:27 am

All your Ace Mine 1 tapes mentioned above play just fine with R'n'D 3.3.0.1, but with 3.3.1.0, some of them break. This was a bug in 32-bit -> 64-bit transition (which I did for 3.3.1.0). However, if you use Windows, you wouldn't have noticed anything, because it is still a 32-bit binary up to today, but on 64-bit systems, those tapes are already broken.

More tapes break with 4.0.1.0, which introduced single-button mode for the EM engine without backward compatibility code. :-o

Version 4.0.1.0 also contains a bugfix for the EM engine that prevents player movement in rare cases when having the "snap" key pressed (much more obvious and easily reproducible when using the TAS snap keys). This broke some more existing tape.

Today, I've fixed the 32/64-bit bug, and I added backward compatibility code for both changes mentioned.

I've done a full "autotest" on your "emc_ace_mine_1" tapes, and now they all succeed to 100% again! I will release these bugfixes soon as version 4.0.1.2.

User avatar
Holger
Site Admin
Posts: 2977
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by Holger » Fri Feb 23, 2018 11:22 pm

I've done a full "autotest" on your "emc_ace_mine_1" tapes, and now they all succeed to 100% again! I will release these bugfixes soon as version 4.0.1.2.
Out now! Also did an automated test on all 20 sets contained in your solution tape packages from 2015 and 2018, and all those tapes now completely succeed again!

When I do the long-planned update to the Emerald Mine Club level collection (hopefully soon this year), I will add all those solution tapes to the collection, as they cover the complete single-player levels of those sets! :-)

filbo
Posts: 308
Joined: Fri Jun 20, 2014 10:06 am

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by filbo » Sat Feb 24, 2018 1:17 am

I have solution tapes for almost all of the EMC level collection alphabetically up to eagle_mine_07 or so, can submit at some point.

Mind you, these are generally played in ultra-cheat mode (pause, single-step, replay up to point of death, etc.) -- I can't play any of this stuff in realtime :)

filbo
Posts: 308
Joined: Fri Jun 20, 2014 10:06 am

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by filbo » Sat Feb 24, 2018 1:18 am

(and have not retested older ones against recent RnD releases, don't know what their current state of breakage or happiness might be...)

User avatar
Holger
Site Admin
Posts: 2977
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by Holger » Sat Feb 24, 2018 3:47 pm

I have solution tapes for almost all of the EMC level collection alphabetically up to eagle_mine_07 or so, can submit at some point.
Sounds great -- if you provide me with those tapes, I'll add them to my build process for the upcoming update of the EMC collection!
Mind you, these are generally played in ultra-cheat mode (pause, single-step, replay up to point of death, etc.)
That's perfectly fine! :-)
I can't play any of this stuff in realtime :)
Me neither! :-o ;-)

But that's OK -- using this cheating stuff just transforms "action and run against the time" style levels to "puzzle and thinking" style levels! :-D
(and have not retested older ones against recent RnD releases, don't know what their current state of breakage or happiness might be...)
It generally should have improved with the last version (4.0.1.2), which fixes some things for EM tapes back to those recorded with the early 3.x.x.x versions. Theres only one bug which would be hard to repair afterwards, which is a leftover 32/64 bit migration bug. This probably breaks EM tapes containing amoeba that were recorded between version 3.x and 4.0.1.2. :-/

(This bug does not occur with the Windows version, as this was always a 32-bit binary, but may happen on 64-bit systems.)

User avatar
RAP
Posts: 285
Joined: Sat Jun 19, 2004 6:44 pm

Re: Broken tapes due to changes in the EM/EMC engine since 3.3.1.0 and 4.0.1.0

Post by RAP » Wed Feb 28, 2018 7:29 am

filbo wrote:
Sat Feb 24, 2018 1:17 am
I have solution tapes for almost all of the EMC level collection alphabetically up to eagle_mine_07 or so, can submit at some point.

Mind you, these are generally played in ultra-cheat mode (pause, single-step, replay up to point of death, etc.) -- I can't play any of this stuff in realtime :)
Well, for me, admittedly, I made a compromise on playing those levels, cheat by checking the level editor if the level is cheating against me (because I consider it a waste of time from trying to beat those levels), and I use the pause button whenever I can. I'm interested in watching your way of beating those levels though, not only for entertainment, but also for more level design inspiration.

Post Reply