A new PC port of Super Mario 64, with native Linux version. It comes as an AppImage, and requires a ROM file of the original game.

Seems to work well. FPS is locked to 30 by default, but you can change that from the settings. It even supports ultrawide resolutions, with the possibility to change HUD aspect ratio to 16:9.

It also supports HD texture packs, such as this one: https://github.com/GhostlyDark/SM64-Reloaded-GS. Just decompress it in to the mods folder, and toggle between original and alternative textures with the Tab key.

you are viewing a single comment's thread
view the rest of the comments
[–] 21 points 9 months ago (17 children)

What's the benefit of using this over an existing emulator (e.g. Mupen)?

  • source
  • hideshow 17 child comments
  • [–] 37 points 9 months ago (8 children)

    This is a full native recompilation of the game for x64 processors, so you don't need an emulation layer. Should also make it easier to make custom texture packs and mods.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 4 points 9 months ago (7 children)

    If this is a full recompilation of the game, why do I need the ROM file of the original game then? Just like an emulator. That doesn’t make any sense.

  • source
  • parent
  • hideshow 7 child comments
  • [–] 19 points 9 months ago (6 children)

    Because Nintendo would sue them if they included any assets of the game

  • source
  • parent
  • hideshow 6 child comments
  • [–] -3 points 9 months ago (5 children)

    https://github.com/isledecomp/isle

    This decompilation of the game Lego Island doesn’t need something like that.

    It’s possible withoit the company behind the game suing the devs

  • source
  • parent
  • hideshow 5 child comments
  • [–] 13 points 9 months ago (2 children)

    Implication from the readme is that the lego island decomp does indeed need original assets:

    The simplest way to use the recompiled binaries is to swap the original executables (ISLE.EXE, LEGO1.DLL, and CONFIG.EXE) in LEGO Island's installation directory for the ones that you've built from this source code.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 9 months ago (1 child)

    Read before that:

     Prerequisites

    You will need the following software installed:

    • Microsoft Visual C++ 4.2. This can be found on many abandonware sites, but the installer can be a little iffy on modern versions of Windows. For convenience, a portable version is available that can be downloaded and used quickly instead.
    • CMake. A copy is often included with the "Desktop development with C++" workload in newer versions of Visual Studio; however, it can also be installed as a standalone app.

    And after that:

    For advanced users, you can get LEGO Island to run from anywhere as long as ISLE.EXE and LEGO1.DLL are in the same directory and the cdpath and diskpath registry keys (usually found in HKEY_LOCAL_MACHINE\Software\Mindscape\LEGO Island on 32-bit operating systems and HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mindscape\LEGO Island on 64-bit operating systems) point to the correct location for the asset files (the directory that contains the LEGO folder).

  • source
  • parent
  • hideshow 1 child comment
  • [–] 5 points 9 months ago*

    Prerequisites

    Those look like build prerequisites. Many decomp projects do not need original game assets at build time, just runtime.

    and after that...

    cdpath and diskpath registry keys [...] point to the correct location for the asset files

    I read this as another implication that original game files are required. Otherwise, why would you need a registry key telling the new game engine where to look for assets? The /assets file in the git repo contains only 3 pngs of icon images. There's no way they've secretly bundled a whole game's worth of models and textures in the codebase.

  • source
  • parent
  • [–] 7 points 9 months ago

    I actually followed some devlogs for this, and nobody knows who owns the rights to that game anymore. The original developing company was bought out, then merged, then bought out again, then the rights sold off in a bundled deal, and whatever else. They can't figure out the legal shit for that project, and no company knows if they own the rights to even sue over.

  • source
  • parent
  • [–] 17 points 9 months ago

    This is native code, so you'd expect much better performance, but mostly this is just a really great foundation to build on.

    Current features are thin, but you should expect a lot of improvements going forward, compare it to something like Ship of Harkinian (same team) for an idea of what might be to come. Features like high framerates and texture packs, built in randomizer and tracking support, modding support, a ton of features and tweaks for speedrunners, etc, and a metric ton of QoL features.

  • source
  • parent
  • [–] 13 points 9 months ago

    The other comments pretty much covered it, but a small nice thing that a port of the game can do that an emulator can't do is increase the draw distance and disable the LOD to always draw maximum quality models

  • source
  • parent
  • [–] 8 points 9 months ago

    Not only requires emulating the game more resources, its also the configuration and imperfect N64 emulation state that muddies just a little bit. Plus a native port to PC can use everything that a normal PC game could too without tricks, such as widescreen, better controller support with new features, higher fps and so on. Emulating a game still uses the same CPU of the original system and other constraints.

  • source
  • parent
  • [–] 6 points 9 months ago

    Emulators are emulating N64hardware running a game pak, this is a native port of the game to Linux and unlocks several benefits. Off the top of my head:

    • Improved performance due to running natively on the hardware (not emulating an N64 with 4MB RAM)
    • Ability to set custom resolutions (widescreen), apply aliasing, filtering or other graphical tweaks
    • Easier to replace textures, models, audio files and otherwise tweak the codebase
    • Native controller support
  • source
  • parent