X-Files: Right Edge on DOS Is Solid Eventually, X = 1648

Started by Simon, June 09, 2023, 12:34:04 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Prompted by the DMA manual's figure of level width 1600, I've re-tested level size and edge behavior on DOS Lemmings 1.

You can scroll around to see 1584 pixels of the official 1600 pixels, i.e., all but the rightmost 16 columns. You can't scroll any further to the right.

The left edge turns lemmings.

The right edge extends even beyond 1600 pixels as extra air, still inaccessible to the game's main camera, but observable on the minimap. There is considerable empty space at the right, certainly more than 16 pixels beyond the visible 1584. On DOS, in Rendezvous at the Mountain (DOS password GKNONNIIJQ), I can build an entire 12-brick bridge into the unscrollable void and I still see lemmings fall off the end of the bridge, dying only in the void at the bottom. With only the first brick visible, the bridge is 22 pixels long, and I sneak in another builder to make it at least 23 pixels long beyond the visible 1584.

So far, this agrees with Proxima's post about L1 edge behavior: Left is solid, right is open on DOS and Mac.

Compare with the Rendezvous Amiga screenshot on Lemmings Encyclopedia, which is 1591 pixels wide. The rightmost 7 pixels in this screenshot are not viewable on DOS. The left edge in the screenshot agrees with the DOS visible left edge.

But, lurking in the darkness, there is more.



New and exciting! There is an eventual solid right edge on DOS Lemmings 1. It's about 2 or 3 bridge-lengths away from the visible section.

You can't hover the mouse over lemmings in the scrolling-incessible section, which is everything beyond the first 1584 pixels. The method to build bridges in the inaccessible section, to eventually reach that solid right edge, is to abuse the right-click bug:
  • Select builder in the panel.
  • Hover over an eligible lemming which you want to build later.
  • Press RMB, holding RMB throughout all remaining steps.
  • Hover over a blocker. (Or any lemming that cannot receive builder.)
  • Wait until the eligible lemming is where you want him to build.
  • Click (press LMB) on the blocker. The eligible lemming will now build.
Repeat this bug 1-3 times with fresh lemmings from the rightmost hatch on Rendezvous. Eventually, you've reached the solid right edge, and lemmings will return to the visible area, as in the screenshot above.

It's so far right that the green points (that mark lemmings on the minimap) are getting on the minimap's red border. There is more to research here about where exactly that solid right edge is. I took a wild guess in that it's around X = 1640; it took me 3 bridges to get there. But I didn't build optimally.

There seems to be nothing special about the DMA manual's figure of 1600 for the level width. Scrolling stops earlier than that (at 1584), but physics stop later (at ~ 1640).

-- Simon

Mindless

Since you can place terrain beyond the bounds of the level, I thought it would be simple to find the edge by placing a wide terrain piece so that it extends past the right boundary and shift it increasingly rightward until the lemmings start turning around and coming back.  They never do, and they also never reach the red border in the minimap.  It seems you can't place terrain all the way to the edge.  If the preview is to be believed, at some point, shifting the terrain piece rightward causes the terrain piece to be clipped.

The test level and preview are attached.  If you load the level into Lemmings or CustLemm, scroll to the left at your own peril.

I also placed some terrain as far past the left edge as possible, which makes for an interesting preview, as terrain past the left edge gets wrapped around to the right edge.

Unsubstantiated analysis: The minimap is 104 pixels wide, with each pixel representing 16 horizontal pixels.  There are 16 inaccessible pixels past the left boundary.  So that puts the right edge at 104*16-16=1648.

Mindless

It turns out there is a way to see to the edge -- edit the initial X value in the level so that it's past where scrolling normally stops.  Scrolling wraps around (kinda), but the lemmings turn around at 1648.

Simon

Excellent investigation, thanks!

Quote from: Mindless on August 25, 2023, 06:24:50 PM
Scrolling wraps around (kinda)

I read that as: L1 (and CustLemm?) duplicates terrain from the level's left edge at the right. Is the duplicate terrain shifted upward by 1 pixel, compared to where it really sits vertically at the left? I'd expect this upward shift from 1-dimensional storage of a 2-dimensional array, and reading across the seam.

(I haven't yet tried your most recent XFILES.LVL, I'm only writing this idea down.)

If this theory holds, it makes sense that DMA prohibited camera movement too far rightward, and that DMA tried to play it overly safe by blocking the scrolling 64 pixels earlier than the lemming-flipping field. After all, DMA had issues with 2-player scrolling. DMA put a thick vertical status bar in the center of the whole screen to cover artifacts that arose from scrolling the two half-screens.

-- Simon