SuperLemmini 0.104a

Started by Tsyu, May 25, 2014, 06:20:08 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Tsyu

Do you mean putting the converted INI files in a certain folder as though you're making a Lemmini level pack? Or do you mean putting the actual DAT files there and having the game load those automatically?
The second one!
That's what I thought. Rather than load DAT files automatically, I think I will provide an option to convert a DAT file to a level pack that uses INI files. I'm not sure how exactly I will do it, but I will try to make it as easy for the player as possible.

namida

My suggestions:
1) Obviously, once you decompress the DAT, SuperLemmini can already handle the resulting LVLs, right? So, that part's simple enough.
2) Default parameters, or maybe the CustLemm / NeoLemmix ones as appropriate scaled to suit SuperLemmini's resolution. Although you may want to allow selecting options here - eg; fall distance is 3 pixels higher in CustLemm than others (including Neo).
3) Beyond that, I think the only other thing that needs to be done based on user input is letting the user enter a name for the pack?
4) If any DATs do show up that use NeoLemmix-style oddtabling, they'll almost certianly follow the CustLemm level ordering, so that means for example, if it oddtables Rank 3 level 1, that's the 5th level in the pack.

One other thing to be aware of is NeoCustLemmix packs with secret levels. Obviously SuperLemmini doesn't support secret level triggers, but you could still make the levels themself playable. In this case, keep in mind that the 10 normal levels (2 per rank) come first, then followed by the 5 secret levels (which may not exist in the DAT if the pack in question doesn't actually use any secret levels). This is important for oddtabling too.

Just to keep it clear, the correct ordering is (keeping in mind the last 5 only apply to NeoCustLemmix packs):

1/1
1/2
2/1
2/2
3/1
3/2
4/1
4/2
5/1
5/2
1/3
2/3
3/3
4/3
5/3

You may not want to worry about dividing up the custom pack into ranks (as they're probably not made with any special attention to ranks anyway), but this is also important for the oddtabling.
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)

uci

Rather than load DAT files automatically, I think I will provide an option to convert a DAT file to a level pack that uses INI files. I'm not sure how exactly I will do it, but I will try to make it as easy for the player as possible.

OK, let me rephrase my request.
Would be possible to select an entire folder (full of DAT files, or LVL files) when opening the external level dialog?
You see, maybe I have tens of files stored in a folder and would be nice to load them at once.

Tsyu

OK, let me rephrase my request.
Would be possible to select an entire folder (full of DAT files, or LVL files) when opening the external level dialog?
You see, maybe I have tens of files stored in a folder and would be nice to load them at once.
All right, I think I can do that. In the event that subfolders with other level files exist, should those be loaded too?

uci

All right, I think I can do that. In the event that subfolders with other level files exist, should those be loaded too?

Well, maybe if they are Lemmini subfolders only.

EDIT:
I want to fill a bug report here. It is about builders finishing the stairs. I should hear three beeps before finishing, but this is NOT always the case. I can reproduce this with the first level in Lemmings/Tricky if I put a lemming to build stairs more than once.

Tsyu

I want to fill a bug report here. It is about builders finishing the stairs. I should hear three beeps before finishing, but this is NOT always the case. I can reproduce this with the first level in Lemmings/Tricky if I put a lemming to build stairs more than once.
Unfortunately, I can't reproduce this. Can you post a replay that reliably triggers this bug for you?

uci

Hi,
Here is a replay. With this occasion I observed more bugs. I summarize below.

1. I cannot count the 3 beeps when a builder is about to finish stairs (as mentioned before).
2. The saved replay file had the name 'bugrpl' instead of 'bug.rpl'
3. During replay the screen movement is not the same as the original play (check the second builder which is out of screen)

Tsyu

1. I cannot count the 3 beeps when a builder is about to finish stairs (as mentioned before).
I'm not getting this problem. Just so we're sure that stereo sound is working properly for you (since SuperLemmini uses stereo panning), listen to http://www.youtube.com/watch?v=e8ODm-F9-IM" class="bbc_link" target="_blank">this stereo test and make sure that the sound is properly alternating between the left and right channels.

2. The saved replay file had the name 'bugrpl' instead of 'bug.rpl'
This will be fixed in the next version. For now, if you want to save a replay, make sure you add the extension manually.

3. During replay the screen movement is not the same as the original play (check the second builder which is out of screen)
This is caused by the game not accounting for the zoom level everywhere that it should. It will be fixed in the next version.

uci

I'm not getting this problem. Just so we're sure that stereo sound is working properly for you (since SuperLemmini uses stereo panning), listen to http://www.youtube.com/watch?v=e8ODm-F9-IM" class="bbc_link" target="_blank">this stereo test and make sure that the sound is properly alternating between the left and right channels.
aused by the game not accounting for the zoom level everywhere that it should. It will be fixed in the next version.

The test sound works as expected. The original Lemmini works as expected. It could be Superlemmini doesn't like my system? It is WinXP-SP3 + Java 7u60.

I changed SFX Mixer from 'Primary Sound Driver' to something else I have, but is not better.
Sometimes I hear two beeps, sometimes just one, or even none. Randomly... http://www.lemmingsforums.com/Smileys/lemmings/huh.gif" alt="???" title="Huh?" class="smiley" />

Tsyu

I suggest updating Java to Update 67. Java vulnerabilities are commonly targeted by hackers and malware authors, so you should always keep Java up to date (although you don't need to install Java 8 at this time). It might even fix the sound problem that you're experiencing, but I doubt it.

Before I release the next version, I will have a look at SuperLemmini's sound code and do whatever I can to maybe fix your problem.

uci

I installed Java 7 u67 and reinstalled Superlemmini. No help!
I read that WinXP is not supported anymore by Java. It is probably the time to change my system, but I am not ready yet.


Tsyu

I tested SuperLemmini on one of my own XP computers and experienced your problem. Not only that, the sound was a bit glitchy and stuttered at times. I tried tweaking the sound code to no avail. Then again, the computer is almost 10 years old and has an AMD Sempron 2800+ (a low-end CPU), and CPU usage was generally around 50-80%.

When you get the chance, run SuperLemmini with Task Manager open and note how much CPU javaw.exe or java.exe uses. How high is it for you?

If anyone has this problem under Windows Vista or later (or any OS other than Windows XP), let me know. I'm wondering if this is specific to XP.

I read that WinXP is not supported anymore by Java. It is probably the time to change my system, but I am not ready yet.
Technically, it is; it's just Java 8 that doesn't support XP. Still, keep in mind that Windows XP is no longer receiving security updates from Microsoft, so any new vulnerabilities that get discovered will not be patched.


Anyway, the next version of SuperLemmini should be out soon, and it will finally have a certain feature that was introduced in Lemmings 2 (no, it's not the new skills).

uci

When you get the chance, run SuperLemmini with Task Manager open and note how much CPU javaw.exe or java.exe uses. How high is it for you?
http://simutrans-germany.com/files/upload/task.png" alt="" class="bbc_img" />

As I understand, there is no hope to fix the sound problem?

Tsyu

Good news: I think I fixed the problem that you're having. My sound code had each line call http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/DataLine.html#start()" class="bbc_link" target="_blank">start() when it started playing a sound and http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/DataLine.html#stop()" class="bbc_link" target="_blank">stop() when it was finished. This works fine on my main computer (which runs Windows 7), but it looks like it doesn't work so well under Windows XP. I changed this so that the lines keep running even when they aren't playing anything; this appears to have fixed the problem on my XP machine.

Tsyu

SuperLemmini 0.95 is out! Here are the changes:
  • Levels can now be taller than 320 pixels. To set the height of a level, add a "height" parameter to the level file and set its value to the desired height. Vertical scrolling is done similarly to horizontal scrolling. To scroll with the minimap, click and hold a portion of it and drag above and below the minimap frame. Arrows around the minimap will tell you whether there is more of the level in that direction.
  • Added the vertical "scroll lock" feature from Lemmings 2. To toggle it, either press S (just as in Lemmings 2) or press the new button that's next to the fast-forward button. When it's enabled, you will not be able to scroll the level vertically with the mouse or the minimap. Because the screenshot and superlemming toggle functions were also assigned to S, they have been reassigned as follows: V for screenshot, U for superlemming (cheat mode only).
  • Implemented customizable entrance order. To use this, add an "entranceOrder" parameter to the level file and use a comma-separated list of integers for its value. Use 0 for the first non-fake entrance in the object list, 1 for the second, 2 for the third, and so on.
  • Folders can now be selected when loading external levels. When this is done, all level files in that folder will be added to the list, and subfolders are ignored. Also, multiple files can be selected.
  • The mainLevel parameter can now be used to chain more than two levels.
  • All sizes and positions should now be scaled appropriately according to the zoom scale. (Well, at least I THINK I got everything.)
  • Non-drawing-related code in GraphicsPanel.redraw() has been moved to GraphicsPanel.updateFrame(). This should fix the problem where some error dialogs were unresponsive to input.
  • Fixed an omission that caused replays to be saved without a period before the extension.
  • Replaced most uses of Thread.sleep() in loops with better (I think) techniques.
  • Tweaked the sound code a bit to hopefully fix some potential sound problems.
  • Fixed a bug where the sliders in the gain dialog defaulted to the wrong values (the music slider used the sound gain, and the sound slider used the music gain).