Interesting find in the Lemmings 3D Saturn level codes.

Started by namida, May 31, 2019, 03:05:33 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

Now - a foreword; this is all going on the assumption that the level codes at GameFAQs are accurate. I cannot find another source either confirming or disproving that assumption (though I didn't look super hard). I do notice two codes are an extra character long; these might be typos, or errors in the game.

But there's some interesting messages in the codes, for sure.

First, here's the list of codes, in actual level order (GameFAQs uses alphabetical order, which is slightly wrong here):

Spoiler
02   STARTING
03   DIFFRENT
04   PLECTRUM
05   ROBINSON
06   GREGATIM
07   FUNCTION
08   BLANDISH
09   LAMPWICK
10   MURLITION
11   SURPRISE
12   TRAPDOOR
13   FIGUERAS
14   SANDWICH
15   BATEMANS
16   PANGOLIN
17   GARGANEY
18   PECULIAR
19   ESPANOLA
20   WOBEGONE
21   TRISTART
22   SHOBNALL
23   CURLICUE
24   BILLYCAN
25   GOLDPEAK
26   GRIPPING
27   FUGITIVE
28   FEARLESS
29   SPITULUM
30   BESLAVER
31   ANABLEPS
32   QUINCUNX
33   TARLATAN
34   YANGSING
35   GUMMOSIS
36   PRODNOSE
37   NGULTRIM
38   COTTABUS
39   THANKSTO
40   BIERHAUS
41   TAXSTART
42   AFBAMIXS
43   BRADFORD
44   SHEEPAND
45   SMARMITE
46   CHEAPGAG
47   THINKYOU
48   PROBABLY
49   CANTREAD
50   NEXTONES
51   TSTDFWTO
52   HOHOOHHF
53   EMAWROAT
54   SETNTETH
55   ECRWHNSA
56   AOEAOJON
57   RDARSORG
58   EEDDEYTX
59   XSXSXXXX
60   FOOTBALL
61   MAYSTART
62   TASHKENT
63   ZULUDAWN
64   QUATRAIN
65   GRANDCRU
66   WITTMANN
67   WHATNEXT
68   UNCTIOUS
69   EVERARADS
70   ENTREATY
71   GLACKIAN
72   WHEEEEEE
73   IKEIMMEL
74   MORROCCO
75   TWOPOINT
76   FOLLICLE
77   SPROCKET
78   METARULE
79   FALLBACK
80   BEANCURD

Of particular interest are:
21, 41, 61: TRISTART TAXSTART MAYSTART - note these are the first levels of Tricky, Taxing and Mayhem respectively (hm, wonder if the unlisted code for level 01 is "FUNSTART"...)
39 and 40: THANKSTO BIERHAUS
46 to 50: CHEAPGAG THINKYOU PROBABLY CANTREAD NEXTONES

51 to 59, these need to be arranged vertically:
TSTDFWTO
HOHOOHHF
EMAWROAT
SETNTETH
ECRWHNSA
AOEAOJON
RDARSORG
EEDDEYTX
XSXSXXXX


Reading this top-to-bottom, left-to-right, and dropping the X's, this reads: "these are some codes that read downwards for those who enjoy that sort of thang" [sic]

Also, code 72 is WHEEEEEE. Not so much of an easter egg in and of itself, but both myself and GigaLem found this highly amusing.

I couldn't find any mention of this anywhere with a quick Google search. Is this known?
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

ccexplore

This reminds me of some of the hidden messages found in the Acorn Lemmings/ONML codes (see Crazy 12 to Wild 2 for example, and Wicked 1 to 12).

I think it's easy to miss because even if you are writing down the codes on paper to look up later, as a player you will usually just go look for the most recent code so you can resume playing, rather than carefully reading through a sequence of them.

As for Google, well now that you have this thread created, maybe future Googlers looking for mentions of this will be directed here. ;)

Pooty

I've extracted the game data from the Saturn disc, and I found a string of text that matches up with the password list.

Spoiler

1   FUNSTART
2   STARTING
3   DIFFRENT
4   PLECTRUM
5   ROBINSON
6   GREGATIM
7   FUNCTION
8   BLANDISH
9   LAMPWICK
10   MIRLITON
11   SURPRISE
12   TRAPDOOR
13   FIGUERAS
14   SANDWICH
15   BATEMANS
16   PANGOLIN
17   GARGANEY
18   PECULIAR
19   ESPANOLA
20   WOBEGONE
21   TRISTART
22   SHOBNALL
23   CURLICUE
24   BILLYCAN
25   GOLDPEAK
26   GRIPPING
27   FUGITIVE
28   FEARLESS
29   SPITULUM
30   BESLAVER
31   ANABLEPS
32   QUINCUNX
33   TARLATAN
34   YANGSING
35   GUMMOSIS
36   PRODNOSE
37   NGULTRUM
38   COTTABUS
39   THANKSTO
40   BIERHAUS
41   TAXSTART
42   AFBAMIXS
43   BRADFORD
44   SHEEPAND
45   SMARMITE
46   CHEAPGAG
47   THINKYOU
48   PROBABLY
49   CANTREAD
50   NEXTONES
51   TSTDFWTO
52   HOHOOHHF
53   EMAWROAT
54   SETNTETH
55   ECRWHNSA
56   AOEAOJON
57   RDARSORG
58   EEDDEYTX
59   XSXSXXXX
60   FOOTBALL
61   MAYSTART
62   TASHKENT
63   ZULUDAWN
64   QUATRAIN
65   GRANDCRU
66   WITTMANN
67   WHATNEXT
68   UNCTIOUS
69   EVERARDS
70   ENTREATY
71   GLACKIAN
72   WHEEEEEE
73   IKEIMMEL
74   MORROCCO
75   TWOPOINT
76   FOLLICLE
77   SPROCKET
78   METARULE
79   FALLBACK
80   BEANCURD
81   SPACEXXX
82   EGYPTXXX
83   ARMYXXXX
84   MAZEXXXX
85   KRAUTROK
86   TOECHEEZ
87   PASSWORD

  • SPACEXXX, EGYPTXXX, ARMYXXXX and MAZEXXXX play the FMVs that play when you beat the Fun, Tricky, Taxing and Mayhem difficulties respectively.
  • KRAUTROK is the level select password.
  • TOECHEEZ and PASSWORD are accepted as passwords, but I don't know if they do anything.
SEGA Master System version
100% on 110/120 levels (92%). Other levels [Lemmings lost]:
Fun 03 [3], 06 [2], 18 [5]   
Taxing 19 [5], 27 [1], 28 [3]
Tricky 15 [5], 17 [2]
Mayhem 19 [7], 26 [10]


namida

So, as I mentioned in Discord - the fact that this lead us to closer examine the passwords in that version, has lead to us discovering a level select code that went unknown for nearly 24 years since the game's release - even when a level select code was known to exist on PS1. Wow. :O

The next question is whether one also exists in the PC version. Unfortunately, not much luck has been had trying to even find where it stores the passwords.

Also, I made a video of the RASPUTIN cheat in the PC version. Although the cheat has been known for a long time, I couldn't find any existing video footage of it, so I made some.
https://www.youtube.com/watch?v=0H95Zou5bXM
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

In the PC version, near where the password is stored in memory (as in, the one you've entered on the password screen), there are 8 bytes that change depending on the password entered. The first byte will always have the same value, if the first character is the same. Likewise, the second byte will have the same value if the second character is the same. But if the first two characters are the same, the first and second byte will be different. Here's the codes for all 27 strings of one character, including empty (from which any combination can be derived, due to the aforementioned rules):

AAAAAAAA : 1E 1F 0F 07 03 11 08 04
BBBBBBBB : 1F 1E 0E 06 02 10 09 05
CCCCCCCC : 1C 1D 0D 05 01 13 0A 06
DDDDDDDD : 1D 1C 0C 04 00 12 0B 07
EEEEEEEE : 1A 1B 0B 03 07 15 0C 00
FFFFFFFF : 1B 1A 0A 02 06 14 0D 01
GGGGGGGG : 18 19 09 01 05 17 0E 02
HHHHHHHH : 19 18 08 00 04 16 0F 03
IIIIIIII : 16 17 07 0F 0B 19 00 0C
JJJJJJJJ : 17 16 06 0E 0A 18 01 0D
KKKKKKKK : 14 15 05 0D 09 1B 02 0E
LLLLLLLL : 15 14 04 0C 08 1A 03 0F
MMMMMMMM : 12 13 03 0B 0F 1D 04 08
NNNNNNNN : 13 12 02 0A 0E 1C 05 09
OOOOOOOO : 10 11 01 09 0D 1F 06 0A
PPPPPPPP : 11 10 00 08 0C 1E 07 0B
QQQQQQQQ : 0E 0F 1F 17 13 01 18 14
RRRRRRRR : 0F 0E 1E 16 12 00 19 15
SSSSSSSS : 0C 0D 1D 15 11 03 1A 16
TTTTTTTT : 0D 0C 1C 14 10 02 1B 17
UUUUUUUU : 0A 0B 1B 13 17 05 1C 10
VVVVVVVV : 0B 0A 1A 12 16 04 1D 11
WWWWWWWW : 08 09 19 11 15 07 1E 12
XXXXXXXX : 09 08 18 10 14 06 1F 13
YYYYYYYY : 06 07 17 1F 1B 09 10 1C
ZZZZZZZZ : 07 06 16 1E 1A 08 11 1D
(empty)  : 01 00 10 18 1C 0E 17 1B


EDIT: Upon further inspection, this is just using A = 0 (and blank = 31), with the final string XOR'd with 1E 1F 0F 07 03 11 08 04.

There are two more nearby bytes that vary with the password entered. One of these has a value of 0x65 for an invalid password, or 0x54 for a valid one. The other varies from (at least as far as I've seen) 00 to 08. This does not appear to be connected to the password being correct - two correct ones resulted in 0x05, while another gave 0x03. 0x05 has also occurred on an invalid password.

In a memory dump, look for the following. In my memory dumps (DOSBox 0.74 debugger build, via "memdumpbin 0:0 128000"), this starts at offset 0x011844.

XX 0B YY 45 6E 74 65 72 20 50 61 73 73 77 6F 72 64 00 WW WW WW WW WW WW WW WW 00 2E 0B ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ

where:
XX - The byte that's 0x65 or 0x54 depending on password validity
YY - The byte that varies from 0x00 to 0x08
WW - The entered password, in uppercase plain ASCII
ZZ - The 8 bytes with the encoded password

Searches in the EXE file or dumped memory for encoded copies of the correct passwords, including via packing it into 5 bits x 8 characters = 5 bytes, has not produced any useful results; nor has memory searches for packed copies of the entered password.

EDIT: Upon further testing, YY may vary even when entering the same password multiple times - so it's quite possible it simply tracks an animation frame.
EDIT AGAIN: YY's function confirmed. It's a byte that counts down to figure out, after hitting enter, how long until the screen should begin fadeout.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Seems no one posted, so update - while we never fully cracked how the PC version stores the codes, we did figure out where it stores them. And just from this alone, we were able to confirm that the PC version doesn't have any secret codes - unless they're more of the RASPUTIN variety, where they're typed in during gameplay rather than at the password screen. It's very interesting though, that the PC version goes to all this trouble to hide the passwords (which would've been just 160 extra bytes to leave in plaintext like they are on other versions), while the other two versions store their passwords in plaintext - especially in the case of PS1, where the passwords are the same as PC (except for the addition of 5 secret ones).

We also confirmed no more unknown codes exist on the PS1 version - just the four FMV ones and "LAMPWICK", which have been known for ages.

Pooty did mention the string "assassinated" (but not any of the postview messages associated with RASPUTIN) appears in the ROM of the Saturn version. I just checked the Playstation version, and the same is true there.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)