Release: LiveSplit autosplitter for SMB1 (and 2J, ish) (supports Nestopia v1.40 and FCEUX 2.2.3)
3 years ago
United States

Hi all,

I wrote an autosplitter for this game recently, and thought I'd share it with everyone. It also happens to work with SMB2J, at least mostly. (It does not currently remove load times; see the README for more information.)

This autosplitter can now be enabled from within LiveSplit. Go to Edit Splits and make sure the game name is spelled correctly ("Super Mario Bros."), and then click "Activate".

You can also download the autosplitter manually from here: https://github.com/periwinkle9/smb-autosplitter

I highly recommend reading the README on that page to get an idea of what the autosplitter can and cannot currently do. The README also contains instructions on how to install/use it, in case you've never used an ASL autosplitter before.

If you decide to use it, I would consider starting from a fresh, empty set of splits. If you choose to continue using your existing splits, you may notice the autosplitter splitting earlier than you do, due to a computer's reaction time generally being much faster than a human's. (For example, a typical "perfect" 1-1 split without FPG is around 29.57s using this autosplitter, compared to ~29.75s for a human.)

Let me know if you run into any bugs/problems.

FAQ

Q: Can I use a title screen delay with this? A: Yes, but you will have to start the timer manually in that case. Note, this doesn't apply if you use a starting timer value of 0.0 and use some other method of counting title screen framerules (e.g. by watching the flashing coin counter).

Q: Will this work if I'm playing on console/BizHawk/(insert any emulator other than FCEUX, Nestopia, or MesenRTA)? A: This autosplitter is memory-based rather than image-based, which means that LiveSplit has to be able to hook into the game's memory, and I also have to know how to tell LiveSplit where to look for those memory values. As such, this autosplitter will not be usable by console players (sorry :( ), or with any emulator other than the ones that are specifically supported (see the README in the GitHub repo for the exact list).

Other versions of the supported emulators may not (and probably will not) work. If you happen to know the base address of the game's RAM for any emulator that's not currently supported, let me know and I can get that added for you right away! (I'm particularly interested if anybody can get this to work for BizHawk.)

Q: If I don't use LiveSplit (or I'm on Mac/Linux), can I use this autosplitter? A: See the above question. In short, no.

Q: Why is this not splitting perfectly consistently? I'm seeing a small variance in split timings. A: This one is on LiveSplit, not me. In general, LiveSplit tends to split within ~3 frames of the actual intended split timings, so you may occasionally see fake golds appear in your splits if it split late for the previous segment but then split on time for the next.

Note that this means that even with the autosplitter enabled, you shouldn't trust LiveSplit's sum of best calculation, since all of your gold segments will probably eventually end up being a few frames shorter than what they're supposed to be, which in turn will make the sum of best show lower than it actually is.

Edited by the author 5 months ago
Nolmy, Enderlorean and 8 others like this
Georgia, USA

does it not work with FCEUX 2.2.2?

KilleDragon likes this
Ohio, USA

This is awesome. Thank you so much for developing this!

KilleDragon likes this
Singapore

Same, THIS IS AWESOME DUDE. thanks so much peri

KilleDragon likes this
Basque Country

nice, good job! I maybe prob it

zsjetu9 likes this

Works like a charm. Thank you!

KilleDragon likes this
United States

Could you make it compatible with mesen emulator? Mesen is the highest rated nes emulator

KilleDragon likes this
Québec

It's not allowed on the leaderboard. What's the point?

KilleDragon likes this
United States

@WolfAttacK this is a livesplit autosplitter. Why would it not be allowed on the leaderboard? It doesn't change anything with the gameplay

KilleDragon likes this
Québec

Yeah I was talking about Mesen, not the auto splitter

KilleDragon likes this
United States

Why is it not allowed?

KilleDragon likes this
United States

I have performance issues with FCEUX and I can't find a download for NEStopia 1.40

KilleDragon likes this
United Kingdom

Mesen has a runahead feature that literally skips frames of gameplay in order to reduce lag. The developer of the emulator said himself that it shouldn't be allowed for speedrunning.

You can download nestopia here http://nestopia.sourceforge.net/ (nestopia v1.40 binary)

SUPERSMASH and KilleDragon like this
United States

Reviving this thread to announce that after way too many hours of digging through source code, reverse-engineering, and debugging, I have now (hopefully) managed to add support for Nestopia UE 1.50 and FCEUX 2.3.0. Download link is as usual: https://github.com/periwinkle9/smb-autosplitter

Everything else in the first post still applies, so go read that if you aren't familiar with this autosplitter already.

Darpey, yeabruh and 2 others like this
Singapore

thanks peri :)

United States

Thanks so much!

United States

@hh555 I have confirmation from another person that FCEUX 2.3.0 does autosplit correctly. Are you sure you downloaded the correct version of FCEUX? It should be the first download link on http://fceux.com/web/download.html, the one that says "FCEUX 2.3.0 win32 Binary". The in-development builds listed below that have not been tested (and are unlikely to be compatible with the autosplitter).

Game stats
Followers
7,783
Runs
8,790
Players
1,781
Latest news
Requirements for High-Level Any% Runs

Any% (NTSC) runs below 4:57.000 must now fulfill additional requirements in order to be verified.

  • The run's full session must be included in the submission description.
  • For emulator runs below 4:57.000, some form of input display must be visible for the duration of the run. A hand-cam or input
3 months ago