[Release] Lemmings for 3DS

Discussion in '3DS - Homebrew Development and Emulators' started by bayleef, Sep 16, 2016.

  1. Quantumcat

    Quantumcat Dead and alive

    Moderator
    20
    GBAtemp Patron
    Quantumcat is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Nov 23, 2014
    Australia
    Canberra, Australia
    Cool I didn't know that. FWIW I got past that level by just starting my miner way earlier and bypassing the yellow arrow section :yay3ds:
     
  2. 0bvious

    0bvious GBAtemp Regular

    Member
    4
    Oct 1, 2007
    Not sure if I am running into glitches or just the limit of a small screen, but I have had to give up on a couple of levels in Oh No More Lemmings...

    Wicked 19 seems impossible. Bridge builders just don't quite get the length they need. I have watched people play this (the DOS version) on youtube and their bridges always give them a necessary extra pixel or two. I cannot repeat it.

    Havoc 5 requires precision to choose the exact right lemming when it turns around at the end of a miners dig, and it is just impossible. Either I select the minor or I select the right lemming a second too late (causing a splat later).

    Both these levels require insane amounts of precision and I am not sure it is possible without zooming in or some other select method.

    Just a heads up for those tricky ONML levels.
     
    bayleef and Quantumcat like this.
  3. Quantumcat

    Quantumcat Dead and alive

    Moderator
    20
    GBAtemp Patron
    Quantumcat is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Nov 23, 2014
    Australia
    Canberra, Australia
    I'm hoping one day it'll be like:
    - top screen shows you what the bottom screen shows now
    - bottom screen shows you a zoomed in version centered on the cursor
    - option to glue the screen to the cursor (like when you hold R). Could be toggled on/off so you can still have it the way it is now if you prefer that

    it would also be cool to be able to pause then step through frame by frame but that would probably make it way too easy.
     
  4. TarkinMX

    TarkinMX GBAtemp Regular

    Member
    3
    Nov 4, 2009
    United States
    Lol, I grew up on the DOS version.
     
  5. TarkinMX

    TarkinMX GBAtemp Regular

    Member
    3
    Nov 4, 2009
    United States
    I made another batch file. This one will convert all sounds and music to .wav format, it does have requirements however. Although lem_wavs.zip isn't necessary, I included it because I felt the sound quality is much better than what's in PlayerSource_V29.zip. This batch uses the command line version of 7-Zip for extracting all the files from the zips. If you don't have 7-Zp already installed then the batch file will attempt to use .Net to download 7-Zip if you don't have it installed. The file extraction can be done through .Net without the need for 7-Zip but I went with 7-zip because using .Net would've taken longer to do so.

    Requirements
    VLC - This is needed to convert the music files to .wav format.
    .Net 4.5 framework (optional) - should already come with Windows 7 and up and is only needed if 7-Zip isn't installed.
    PlayerSource_V29.zip (the sound and music files) - can be found on the neolemmix website.
    lem_wavs.zip (optional, windows sound files) - can be found on the lemmings universe.
    7za920.zip (optional) - if you don't have 7-Zip installed and you're having trouble with the .Net framework downloading it for you then download this at http://www.7-zip.org/a/7za920.zip and extract it to the audio folder.

    Just copy the two zip files mentioned above to the audio folder in the lemmings folder on your sd card. Make sure you have VLC installed. Create a .bat file and copy all the code to it and run it and you should be golden.

    Code:
    echo off
    cls
    echo.
    echo.
    echo This batch file requires VLC for converting the music files and .NET 4.5 to download 7-Zip if it's not present. If you do not meet these requirements then there will be errors.
    echo.
    timeout /t 5
    
    if exist "PlayerSource_V29.zip" (
      echo.
      echo PlayerSource_V29.zip found
    ) else (
      cls
      echo.
      echo.
      echo PlayerSource_V29.zip not found. Please make sure PlayerSource_V29.zip is in this folder.
      echo.
      echo Press any key to quit.
      pause >nul
      exit
    )
    
    echo.
    echo getting paths for VLC and 7-Zip
    if exist "%ProgramFiles%\VideoLAN\VLC\vlc.exe" (
      set VLCpath=%ProgramFiles%\VideoLAN\VLC"
    ) else if exist "%ProgramFiles(x86)%\VideoLAN\VLC\vlc.exe" (
      set VLCpath="%ProgramFiles(x86)%\VideoLAN\VLC"
    ) else (
      cls
      echo.
      echo.
      echo No paths for VLC were found. Is VLC properly installed?
      echo.
      echo Press any key to quit.
      pause >nul
      exit
    )
    
    if exist "%ProgramFiles%\7-Zip\7z.exe" (
      set zippath="%ProgramFiles%\7-Zip"
      set unzip="7z.exe"
      goto main
    ) else if exist "%ProgramFiles(x86)%\7-Zip\7z.exe" (
      set zippath="%ProgramFiles(x86)%\7-Zip"
      set unzip="7z.exe"
      goto main
    ) else (
      goto download
    )
    
    :download
      echo.
      echo No paths for 7-Zip were found, attempting to download 7-zip command line version using .Net 4.5
      powershell.exe (new-object System.Net.WebClient).DownloadFile('http://www.7-zip.org/a/7za920.zip','.\7za920.zip')
      echo.
      echo attempting to extract 7-Zip
      powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem';[IO.Compression.ZipFile]::ExtractToDirectory('7za920.zip', '.'); }"
      if exist "7za.exe" (
      set zippath="7-Zip command line version"
      set unzip="7za.exe"
      ) else (
      cls
      echo.
      echo.
      echo No paths for 7-Zip were found and downloading the command line version was unsuccessful. Make sure there is a working "7za.exe" in this folder.
      echo.
      echo Press any key to quit.
      pause >nul
      exit
      )
      goto main
    
    :main
    echo.
    echo %VLCpath% found
    echo.
    echo %zippath% found
    echo.
    echo 7-Zip executable was found as %unzip%
    echo.
    echo setting paths for VLC and 7-Zip
    set PATH=%PATH%;%VLCpath%;%zippath%
    
    if exist "lem_wavs.zip" (
      echo.
      echo lem_wavs.zip found
      echo.
      echo processing sound files
      %unzip% e lem_wavs.zip changeop.wav
      ren changeop.wav SFX01.WAV
      %unzip% e lem_wavs.zip door.wav
      ren door.wav SFX02.WAV
      %unzip% e lem_wavs.zip letsgo.wav
      ren letsgo.wav SFX03.WAV
      %unzip% e lem_wavs.zip mousepre.wav
      ren mousepre.wav SFX04.WAV
      %unzip% e lem_wavs.zip ohno.wav
      ren ohno.wav SFX05.WAV
      %unzip% e lem_wavs.zip electric.wav
      ren electric.wav SFX06.WAV
      %unzip% e lem_wavs.zip thud.wav
      ren thud.wav SFX07.WAV
      %unzip% e lem_wavs.zip splat.wav
      ren splat.wav SFX08.WAV
      %unzip% e lem_wavs.zip chain.wav
      ren chain.wav SFX09.WAV
      %unzip% e lem_wavs.zip chink.wav
      ren chink.wav SFX10.WAV
      %unzip% e lem_wavs.zip explode.wav
      ren explode.wav SFX12.WAV
      %unzip% e lem_wavs.zip fire.wav
      ren fire.wav SFX13.WAV
      %unzip% e lem_wavs.zip tenton.wav
      ren tenton.wav SFX14.WAV
      %unzip% e lem_wavs.zip thunk.wav
      ren thunk.wav SFX15.WAV
      %unzip% e lem_wavs.zip yippee.wav
      ren yippee.wav SFX16.WAV
      %unzip% e lem_wavs.zip glug.wav
      ren glug.wav SFX17.WAV
      %unzip% e lem_wavs.zip ting.wav
      ren ting.wav SFX18.WAV
    ) else (
      echo lem_wavs.zip not found, sound files will be processed from PlayerSource_V29.zip
      echo.
      echo processing sound files
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.0.wav
      ren BasicFX.0.wav SFX01.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.1.wav
      ren BasicFX.1.wav SFX02.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.2.wav
      ren BasicFX.2.wav SFX03.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.3.wav
      ren BasicFX.3.wav SFX04.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.4.wav
      ren BasicFX.4.wav SFX05.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\noises.3.wav
      ren noises.3.wav SFX06.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\noises.7.wav
      ren noises.7.wav SFX07.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.5.wav
      ren BasicFX.5.wav SFX08.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\noises.1.wav
      ren noises.1.wav SFX09.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.6.wav
      ren BasicFX.6.wav SFX10.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.9.wav
      ren BasicFX.9.wav SFX12.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\noises.2.wav
      ren noises.2.wav SFX13.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\FullFX.1.wav
      ren FullFX.1.wav SFX14.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\FullFX.2.wav
      ren FullFX.2.wav SFX15.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.7.wav
      ren BasicFX.7.wav SFX16.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\noises.4.wav
      ren noises.4.wav SFX17.WAV
      %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Sounds\amiga\BasicFX.8.wav
      ren BasicFX.8.wav SFX18.WAV
    )
    
    echo.
    echo processing music files
    md ohno
    %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Music\ohno\*.it
    for %%a in (*.it) do vlc -I dummy -vvv %%a --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst=ohno\%%a} vlc://quit
    cd ohno
    ren track_01.it TUNE01.WAV
    ren track_02.it TUNE02.WAV
    ren track_03.it TUNE03.WAV
    ren track_04.it TUNE04.WAV
    ren track_05.it TUNE05.WAV
    ren track_06.it TUNE06.WAV
    cd..
    attrib *.it -r
    del *.it
    
    md orig
    %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Music\orig\*.it
    for %%a in (*.it) do vlc -I dummy -vvv %%a --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst=orig\%%a} vlc://quit
    %a} vlc://quit
    cd orig
    ren track_20.it TUNE01.WAV
    ren track_18.it TUNE02.WAV
    ren track_21.it TUNE03.WAV
    ren track_01.it TUNE04.WAV
    ren track_08.it TUNE05.WAV
    ren track_02.it TUNE06.WAV
    ren track_04.it TUNE07.WAV
    ren track_10.it TUNE08.WAV
    ren track_19.it TUNE09.WAV
    ren track_17.it TUNE10.WAV
    ren track_16.it TUNE11.WAV
    ren track_13.it TUNE12.WAV
    ren track_03.it TUNE13.WAV
    ren track_06.it TUNE14.WAV
    ren track_15.it TUNE15.WAV
    ren track_07.it TUNE16.WAV
    ren track_09.it TUNE17.WAV
    ren track_11.it TUNE18.WAV
    ren track_05.it TUNE19.WAV
    ren track_12.it TUNE20.WAV
    ren track_14.it TUNE21.WAV
    cd..
    attrib *.it -r
    del *.it
    
    md xmas
    %unzip% e PlayerSource_V29.zip PlayerSourceTrad\Music\h94\*.it
    for %%a in (*.it) do vlc -I dummy -vvv %%a --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst=xmas\%%a} vlc://quit
    cd xmas
    ren track_01.it TUNE01.WAV
    ren track_02.it TUNE02.WAV
    ren track_03.it TUNE03.WAV
    cd..
    attrib *.it -r
    del *.it
    
    :choice
    echo.
    set /P c=Delete the zip files and any other loose files from this folder? (Y/N)
    if /I "%c%" EQU "Y"
      goto :yes
    if /I "%c%" EQU "N"
      goto :no
    echo.
    echo Invalid Option, must be (Y) or (N)
    goto choice
    
    :yes
      echo.
      Cleaning up loose files
      del *.zip
      If %unzip% EQU "7za.exe" (
        del 7za.exe
        del 7-zip.chm
        del license.txt
      )
      goto no
    
    :no
      echo.
      echo Finished. Press any key to quit.
      pause >nul
      exit
     
    Last edited by TarkinMX, Nov 10, 2016 - Reason: Updated the bat file to be less dependant of the .Net framework.
    bayleef likes this.
  6. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    @0bvious Thank you for your bug reports! I haven't tested these levels yet. I'll try to reproduce the problems and fix them afterwards.
    Havoc 5: Have you tried to press SELECT while clicking at the basher to select the non-priorized (non-bashing) lemming at (nearly) the basher's position?
     
    Last edited by bayleef, Oct 31, 2016
  7. 0bvious

    0bvious GBAtemp Regular

    Member
    4
    Oct 1, 2007
    The 'hold select' trick seems to work for that Havoc 5 level I mentioned BUT I come up against another couple of glitches:

    - when the pickaxer finishes and drop they die, but others dropping from their tunnel (at same height) do not die
    - climber will continue to try and climb inside a digger's tunnel rather than turning around at the end
     
    Last edited by 0bvious, Oct 31, 2016
  8. Hopalongtom

    Hopalongtom GBAtemp Regular

    Member
    3
    Mar 14, 2009
    I managed to find lem_wavs.zip but have been unable to find PlayerSource_V29.zip, are both nessary for the conversion?
     
  9. TarkinMX

    TarkinMX GBAtemp Regular

    Member
    3
    Nov 4, 2009
    United States
    The lem_wavs.zip isn't necessary. Because I don't know the legality of the files is the reason why a link to PlayerSource_V29.zip hasn't been posted. Bayleef feels the same about the subject and that's why he hasn't included it with his release. I'm not even sure if I'll get into trouble for saying where they're located. But anyway, do a Google search for neolemmix, go to that website, go to their Dropbox account and look under Lemmix. That's where you'll find it.
     
    Last edited by TarkinMX, Oct 31, 2016
  10. Hopalongtom

    Hopalongtom GBAtemp Regular

    Member
    3
    Mar 14, 2009
    Could have sworn I looked in there, obviously it was in the one folder I must've overlooked!
     
  11. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    This is definitively a glitch in the DOS version.
    However, it occurs when your basher starts too early. Assign the skill as late as possible (just before the lemming changes its direction).
    Havoc 5 in DOSBox
    Sorry, I don't understand this problem. Can you make a picture or a video or describe it more detailed? The original DOS code for climbers is very weird, so any climber problem may be a glitch from the DOS game. However, to implement a switch for this glitch, I have to understand it.

    If it is possible for you, could you try to run the level in DOSBox and see if the second glitch is present? (and maybe capture a video?) You may use right mouse button in DOS for the same effect as the SELECT button on 3DS (hold down right mouse button while assigning skill with left mouse button to select non-priorized lemming).
     
    Last edited by bayleef, Nov 1, 2016
  12. 0bvious

    0bvious GBAtemp Regular

    Member
    4
    Oct 1, 2007
    I eventually finished the level. The glitch seemed to not be present half the time. Basically, the climber wouldn't turn around as the basher was digging, they would instead climb up the basher wall, fall down, and then try and climb again, endlessly. Without turning around. But it only happened sometimes. Anyway.

    — Posts automatically merged - Please don't double post! —

    ...tiny request... could you make the game remember the last level played? Like saving the Music or SFX option, it would be nice to not have to go back through the menus every time. Thanks...
     
    Quantumcat likes this.
  13. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    I think I understood the problem. I was able to reproduce it in DOSBox:

    I have an idea why it is caused. Unfortunately, the problem may be hard to fix without changing a lot of original lemmings behavior, which may cause problems at other levels. Thus, a switch in future settings menu is unlikely. The problem MIGHT be intended to increase the difficulty of the level.

    Okay, I'll add this to the next release (at least if I don't forget it).

    Wicked 19 solution
     
    Last edited by bayleef, Nov 2, 2016
    0bvious likes this.
  14. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    Version 0.5 has been released, introducing a settings menu.
    You can enable/disable some glitches, change music and sound effects volume, and change key bindings.
     
  15. TarkinMX

    TarkinMX GBAtemp Regular

    Member
    3
    Nov 4, 2009
    United States
    Might be a silly request but is it possible to add an option to swap back and forth between the dos and amiga sounds if the amiga sounds are present?

    Also, I updated the audio.bat file above, it'll look for 7-Zip on the user's pc now before attempting to download it.
     
  16. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    I haven't mentioned this feature in my post. However, if I understand you correctly, the feature is included. Just check out the menu.

    Thank you. The updated file will be included in the next release.
     
    TarkinMX likes this.
  17. TarkinMX

    TarkinMX GBAtemp Regular

    Member
    3
    Nov 4, 2009
    United States
    Ah nice, I didn't notice it.
     
  18. 0bvious

    0bvious GBAtemp Regular

    Member
    4
    Oct 1, 2007
    I finally got to the last level of Oh No More Lemmings! (Havoc 20) and it also seems the ultimate glitch...

    Lemmings fall out of the entrance on the left and immediately splat. I couldn't figure out how to stop this. No bridges. Only one umbrella. So I checked on YouTube and all the recorded play throughs show Lemmings landing safely after touching a couple of rocks on the way down.

    Impossible level glitch?
     
    Quantumcat likes this.
  19. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    Indeed a horrible glitch, but should be easy to fix. The lemming start position seems to be incorrect (should be one or two pixels more to the right). I have to figure out the exact position before I fix it, but I should patch it within the next 30 minutes. Thank you for your bug report!

    edit: I just fixed it and released version 0.5.1.
     
    Last edited by bayleef, Nov 16, 2016
    Cid2mizard, hippy dave and Quantumcat like this.
  20. bayleef
    OP

    bayleef Advanced Member

    Newcomer
    2
    Sep 15, 2015
    Gambia, The
    Please test the attached 0.6 alpha3 version!
    [edit] Version 0.6 has been released, please stop using this outdated alpha version!
    This version introduces 2 player (2p) mode via 3DS local wifi connection.
    The wifi communication protocol may not be compatible with final 0.6 release.
    There is a list of known issues that should be fixed before release of 0.6.
    If you find any other bugs, please report them (there might also be new bugs in single player mode, because I have changed a lot of internal stuff).
    You will need 2p level files to test 2p mode. You may find them in an old release of Lix (current releases of Lix do not contain these files any longer due to copyright law).
     
    Last edited by bayleef, Jan 26, 2017
    YassoMasso, MrHuu, hippy dave and 2 others like this.
Quick Reply
Draft saved Draft deleted
Loading...