LemmixAmiga. WIP.

Started by Zaphod77, October 04, 2014, 02:38:36 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Zaphod77

What i've done so far.

1) changed exit sound effect to boing, like amiga and dos.
2) removed DOS specific glitches (nuke glitch, pausing for time, direct drop, and climbershrugger)
3) Added OhNo! cue at start of nuke, like Amiga.
4) put in the Amiga levels, complete with the formerly missing water and original Amiga setups.
5) made the sky dark blue, like Amiga version.
6) Changed digger behavior slightly. the outermost pixel on each side of the 9 pixel wide channel no longer holds a digger up. I'm told Amiga is this way, but i haven't tested. if wrong i will revert this.
7) Added eep! sound effect for lemmings that fall off the screen, like Amiga.
8 ) changed entire upper bar for preview to dark blue, to match sky.

TODO
1) fix music order
2) add gamepad support (ummm. hard...)
3) add two player mode.  ( yeah right. lol. needs gamepad support or network support)
4) add cute intro (ummm. can someone else do this one? http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" /> )
4) add mouse cursor support in menus and preview
5) add pretty hand cursor
6) use better skill bar from amiga.
7) add sound effect for raise/lower rate that changes in pitch like it's supposed to.

Anyone want this? http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />  i've built only original lemmings so far, but I can make ONML and holiday ones too without too much effort. others are pointless.

exit

This sounds interesting. I definitely look forward to trying the amiga version of lemmings and see if it really is the best(the first of something is normally the best, so I'm guessing it is). You should start with the music order and sound effects for the TODO list, in my opinion. Then I think it will be good enough to release it as alpha or beta.

namida

I believe X91 and X92 were also released on Amiga. I don't know if there's any level differences between the PC and Amiga versions. OhNo doesn't have any level differences between Amiga and PC, so all you need to do for that one is recompile the player with the new source.

Covox and Prima I'm fairly sure were PC only.



How many colors does the skill bar use? If it's no more than 16 different colors (including black, but not including the colors used to draw the minimap), there's a fairly easy way around that. If not, it might be a bit more tricky. Either way, if you've got some lossless images of it, I can probably help you come up with a solution regarding that...
I've also PM'ed you about the music order issue - it's a very simple fix.
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)

Zaphod77

Yeah, I fixed the music order. the issue is now the speedup/slowdown rate sound effect, and the fact that it changes pitch. found a few more errors in music, working on those.

Zaphod77

AS i understand it the only ones that were any different across platforms are the original. 80 is max for every version of lemmings but original amiga and those based off of it.

Still, i am building Lemmings, ONML, xmas,and holiday.  next release from namida should have correct music order regardless.

Someone wanna test them so far..

http://eunich.cochems.com/~zaphod/LemmixPlayersAmiga.zip" class="bbc_link" target="_blank">http://eunich.cochems.com/~zaphod/LemmixPlayersAmiga.zip

still missing sound effect for rate change and the corrected skill bar.

Zaphod77


How many colors does the skill bar use? If it's no more than 16 different colors (including black, but not including the colors used to draw the minimap), there's a fairly easy way around that. If not, it might be a bit more tricky. Either way, if you've got some lossless images of it, I can probably help you come up with a solution regarding that...
I've also PM'ed you about the music order issue - it's a very simple fix.

http://www.mobygames.com/images/shots/l/44705-lemmings-amiga-screenshot-some-lemming-trapss.gif" class="bbc_link" target="_blank">http://www.mobygames.com/images/shots/l/44705-lemmings-amiga-screenshot-some-lemming-trapss.gif

screenshot

should be enough to work with.

namida

Can anyone who's actually played the Amiga version confirm whether that screenshot is accurate? (I'm a bit wary of it with it being a GIF and all, rather than BMP or PNG; it also looks like it may be slightly out-of-proportion)

I'll have to try and hunt down all the various skill digits too, since even ignoring the color inversion it doesn't appear to use the same ones as DOS.
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)

Zaphod77

looks right to me. resolution checks out. ti's 2x amiga original.

and they have other screenshots there so yo may be able to get the stuff.

namida

I might try and set up an Amiga emulator and use that instead, so I can be sure of getting accurate images.
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)

Tsyu

I'll just chip in and say some things about the Amiga Lemmings games that you might want to know:
  • The width of the levels is 1,600, not 1,584. However, there is an invisible boundary at the right side that extends to 8 pixels, so the effective width in terms of where a lemming can be is 1,592.
  • Regarding diggers, the outermost two pixels of each side are ignored when determining whether a digger should stop, so it's just the five center pixels that keep the digger going.
  • When a lemming falls in water, the Amiga version plays splash.wav (albeit faster) instead of glug.wav. It's not until the lemming disappears completely that glug.wav is played. (Note that if you want toget this behavior in the Amiga version, you have to turn off the music; otherwise, the normal "die" sound is played.)
  • The new levels in Xmas Lemmings '91 and '92 appear to be identical to the ones in the DOS versions, although I haven't been able to verify this. Levels 2 and 3 in the Amiga version of '92 are switched, and the last two levels in '91 (which are from ONML) are different; see http://tle.vaarties.nl/xmas1991/solutions/amiga/xmas/1/4/" class="bbc_link" target="_blank">this page of The Lemmings Encyclopedia to see what levels were substituted (which are also from ONML).
  • The status area of the Amiga version uses more than 16 colors. It also has double the horizontal (but not vertical) resolution.
  • For the release rate sound, you can closely approximate the Amiga behavior by starting with the skill assignment sound (mousepre.wav, which the Amiga version does use here) and changing the sample rate using this formula: s * 2^((n-40) / 36) (where s is the original sample rate of the sound, and n is the selected release rate).
  • The skill selection sound also plays at different pitches in the Amiga version. The sample rate of this sound should be adjusted using this formula: s * 2^(n/12) (where s is the original sample rate of the sound, and n is the index of the skill, with climber being 0, floater being 1, and so on). The pitches form part of a musical chromatic scale.

(EDIT: Added a note regarding drowners.)

ccexplore

In addition to the digger, there are a couple other significant differences related to gameplay/mechanics:
[I believe the SNES version also exhibit some of these behaviors, so you may try to get screenshots off that version for things like which pixels a basher stroke removes, if SNES emulator is more convenient than an Amiga emulator like WinUAE.]

- The basher's stroke goes one pixel further than DOS version.  In DOS, if lemming's horizontal position is x, the farthest column of pixels removed is x+7, while in Amiga it would be x+8.  This means for example, the 2 bashers is just enough to get through the column in Tricky 26 ("I have a cunning plan") in Amiga, but not in DOS.
- Moreover, the basher's "backstroke" (pixels "behind" the lemming that's removed by the basher's stroke) is different in Amiga version vs DOS version (admittedly this is more esoteric of a difference, but still not that hard to discover).
- The timer goes faster!  In DOS it's 17 frame updates per game second, in Amiga it's 16 IIRC.  Obviously important in levels like "Just a Minute".
- When you run out of time, the level takes a little bit of time to fade out, during which the game continues to run and lemmings that exit continues to count.  (Basically just like the behavior in DOS's "High Performance PC" mode which Lemmix doesn't emulate either.)  I don[t remember whether other ways of leaving the level (eg. pressing ESC) are instantaneously or does the same fade-out.
- You can't change the release rate while game is paused.  Thus the release rate cannot instantaneously jump from one value to another, it will take time to move from the starting value to the value you want.  (How fast I don't know, you'd have to measure it--and it's definitely different from port to port, so you can't use SNES as substitute for this one if accuracy is important.)
- DOS has a glitch where a miner cannot mine a certain one-way wall (forgot which direction) even when facing the correct way.  I don't remember whether Amiga has that glitch or not (but I suspect no).  I also don't remember whether Amiga is more strict or same as DOS in its steel checking for miners.  (In DOS, past the initial skill assignment, it stops the miner only after the lemming has basically moved into a steel area, rather than checking for steel ahead like it would for basher.)

There are likely more (in addition to other ones already mentioned on the thread) but those are the ones off top of my head, and a few of them are clearly fairly significant even in normal gameplay.  I guess until we actually analyze the game's programming we'd have to acknowledge that the emulation may not be as accurate.

ccexplore

I definitely look forward to trying the amiga version of lemmings and see if it really is the best(the first of something is normally the best, so I'm guessing it is).

IIRC the Amiga, DOS and Atari ST version are basically developed pretty much all at the same time.  It is true that Amiga did end up released first, but it's not quite accurate to think of the DOS and Atari ST versions as ports of the Amiga version, unlike the latter ones.

In any case, it's worth keeping in mind that DOS machines of the day simply don't have some of the video and audio capabilities available on the Amiga.  Heck, the DOS version only deals with 80 lemmings max rather than Amiga's 100!  (Though to be fair I don't know if the reason is truly performance related versus other factors, but then again they also removed a lot of water across all the levels in DOS which was released later than Amiga, so hmm.)  So there's far more to things here than "being the first of something" or not.

I do question some of the changes made in the DOS version though, like giving 20 instead of 10 of skills in "Steel Mines of Kessel" or having an extra minute (plus only requiring 75% instead of 100%) in "The Fast Food Kitchen".  Did they feel compelled to tone down those levels because they (or feedback from Amiga players) found the original versions too hard?

Zaphod77

I'll just chip in and say some things about the Amiga Lemmings games that you might want to know:
  • The width of the levels is 1,600, not 1,584. However, there is an invisible boundary at the right side that extends to 8 pixels, so the effective width in terms of where a lemming can be is 1,592.
Hmm. this may be doable.  I'm not sure how though.
Quote
  • Regarding diggers, the outermost two pixels of each side are ignored when determining whether a digger should stop, so it's just the five center pixels that keep the digger going.
Done.  I made this a constant I could change. http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />
Quote
  • When a lemming falls in water, the Amiga version plays splash.wav (albeit faster) instead of glug.wav. It's not until the lemming disappears completely that glug.wav is played. (Note that if you want toget this behavior in the Amiga version, you have to turn off the music; otherwise, the normal "die" sound is played.)
Interesting.  So it plays different sounds depending on if music is on?  So if music is off, then it does splash then glug. what one does it do in the other case? Which sound file?
Quote
  • The new levels in Xmas Lemmings '91 and '92 appear to be identical to the ones in the DOS versions, although I haven't been able to verify this. Levels 2 and 3 in the Amiga version of '92 are switched, and the last two levels in '91 (which are from ONML) are different; see http://tle.vaarties.nl/xmas1991/solutions/amiga/xmas/1/4/" class="bbc_link" target="_blank">this page of The Lemmings Encyclopedia to see what levels were substituted (which are also from ONML).
FUN.  At this point i'm willing to say screw it.  I was most worried about the game that I played, which was the first one. http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />   GUess I need to setup the amiga emulator.
Quote
  • The status area of the Amiga version uses more than 16 colors. It also has double the horizontal (but not vertical) resolution.
Figures...  I'm not up to this particular task.
Quote
  • For the release rate sound, you can closely approximate the Amiga behavior by starting with the skill assignment sound (mousepre.wav, which the Amiga version does use here) and changing the sample rate using this formula: s * 2^((n-40) / 36) (where s is the original sample rate of the sound, and n is the selected release rate).
If I knew how to do this, I would. Anyone know how? http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />
Quote
  • The skill selection sound also plays at different pitches in the Amiga version. The sample rate of this sound should be adjusted using this formula: s * 2^(n/12) (where s is the original sample rate of the sound, and n is the index of the skill, with climber being 0, floater being 1, and so on). The pitches form part of a musical chromatic scale.
Same here.

namida

I'll just chip in and say some things about the Amiga Lemmings games that you might want to know:
  • The width of the levels is 1,600, not 1,584. However, there is an invisible boundary at the right side that extends to 8 pixels, so the effective width in terms of where a lemming can be is 1,592.
Hmm. this may be doable.  I'm not sure how though.

I'm pretty sure you just need to edit GAME_BMPWIDTH and LEMMING_MAX_X.

Quote
Quote
  • The status area of the Amiga version uses more than 16 colors. It also has double the horizontal (but not vertical) resolution.
Figures...  I'm not up to this particular task.

The double horizontal resolution means that the graphic may display slightly inaccurately (as in, the same sort of thing you'd get if you stretched any image to a non-power-of-2 factor) on odd zoom levels (including 1x), but it should be doable still. You'd need to store a copy of the Amiga bitmap in MAIN.DAT of course, and load it with a custom palette. Fortunately for you, both Lemmix and LemMain's code can already handle images that are more than 4 bits per pixel if nessecary (though you might need to mess with the palette code; but you don't have to mess with the code that loads the correct format).

You could also possibly look into just including the digits and panel as seperate resources in BMP or PNG format.

From there, just make sure that before drawing the panel to the screen, scale it - the horizontal scale should be *half* of the normal scaling factor.

I also notice that Amiga uses a different color for lemmings and a fixed color for terrain on the minimap; both should be quite simple to implement. http://www.lemmingsforums.com/Smileys/lemmings/wink.gif" alt=";)" title="Wink" class="smiley" /> (Hint: looking for BrickColor and fMinimapBuffer in LemGame.pas might steer you in the right direction.)


For the sound ones, I'll look into it, no promises though.
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)

Zaphod77

http://www.lemmingsforums.com/index.php?topic=1076.msg22878#msg22878">Quote from: ccexplore on 2014-10-05 05:19:28
- The basher's stroke goes one pixel further than DOS version.  In DOS, if lemming's horizontal position is x, the farthest column of pixels removed is x+7, while in Amiga it would be x+8.  This means for example, the 2 bashers is just enough to get through the column in Tricky 26 ("I have a cunning plan") in Amiga, but not in DOS.
Does the basher step forward another pixel to do this? I should be able to extend the destruction mask by one pixel.
Quote
- Moreover, the basher's "backstroke" (pixels "behind" the lemming that's removed by the basher's stroke) is different in Amiga version vs DOS version (admittedly this is more esoteric of a difference, but still not that hard to discover).
Ok, how do I fond out what the proper destruction mask is? http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />
Quote
- The timer goes faster!  In DOS it's 17 frame updates per game second, in Amiga it's 16 IIRC.  Obviously important in levels like "Just a Minute".
I also believe the framerate is slightly different. if i have truly accurate frame data, I should be able to make the adjustment.
Quote
- When you run out of time, the level takes a little bit of time to fade out, during which the game continues to run and lemmings that exit continues to count.  (Basically just like the behavior in DOS's "High Performance PC" mode which Lemmix doesn't emulate either.)  I don[t remember whether other ways of leaving the level (eg. pressing ESC) are instantaneously or does the same fade-out.
I should be able to work out how to do a fade, if Lemmix does them.
Quote
- You can't change the release rate while game is paused.  Thus the release rate cannot instantaneously jump from one value to another, it will take time to move from the starting value to the value you want.  (How fast I don't know, you'd have to measure it--and it's definitely different from port to port, so you can't use SNES as substitute for this one if accuracy is important.)
Aware of this one, don't care. We are allowing frame advance, why should we not allow changing release rate?  Easy change though.
Quote
- DOS has a glitch where a miner cannot mine a certain one-way wall (forgot which direction) even when facing the correct way.  I don't remember whether Amiga has that glitch or not (but I suspect no).  I also don't remember whether Amiga is more strict or same as DOS in its steel checking for miners.  (In DOS, past the initial skill assignment, it stops the miner only after the lemming has basically moved into a steel area, rather than checking for steel ahead like it would for basher.)
I believe this is intended behavior ( the pick breaks on the steel).  But again I don't have the stuff.
Quote
There are likely more (in addition to other ones already mentioned on the thread) but those are the ones off top of my head, and a few of them are clearly fairly significant even in normal gameplay.  I guess until we actually analyze the game's programming we'd have to acknowledge that the emulation may not be as accurate.