AutoSplitter for Adventure Mode (55 splits) for Steam v1.01 version
3 years ago
Czech Republic

Here it is! I've also submitted it for the LiveSplit AutoSplitters tool, to automatically offer this to you.

Works with the Steam v1.01 version of Peggle Deluxe on Windows. (Tested on Windows 10.) Expects 55 splits (11 stages * 5 levels). Starts when you click the "Adventure" button for a new profile on the main screen. Splits when you confirm the "Level Complete" screen after clearing a level.

Link: https://raw.githubusercontent.com/Janiczek/PeggleDeluxeAutosplitter/master/Peggle%20Deluxe%20-%20Adventure%20Mode.asl

EdgeSpeedruns likes this
United States
nyhilo
He/Him, They/Them
3 years ago

This is very nice!

It looks like it's still splitting on level retry on my machine. I'm not very well versed in asl, but I tried to debug this.

It looks like the the memory address where popupTitle is defined is never updating, so the condition on line 41 is never true.

Czech Republic

@nyhilo Hello and thanks for the note! Yeah folks on the Discord channel found out the same thing :( Turns out the address for the popupTitle isn't as consistent as it would need to be. I can try to find a better address, but I can't promise when that would happen. Anybody feel free to play with Cheat Engine. Searching for "Stage Complete" vs "Level Complete" vs "Try Again!" should give you some hits when the popup is visible.

Edited by the author 3 years ago
United States
nyhilo
He/Him, They/Them
3 years ago

If it's dynamically allocated, we might be able to scan for the location in the startup action.

Again, I don't totally know what I'm doing here haha. I've never touched asl before today, but I do know c#.

The pokemon red autosplitter does this here https://github.com/Spiraster/ASLScripts/blob/4d8f991c1a89db2afd4563ce42190165f5c16236/LiveSplit.PkmnRed/LiveSplit.PkmnRed.asl#L55

Czech Republic

That's pretty dope, I haven't seen these C# snippets inside ASL splitters before! Yeah that might work. A bit more complicated than finding a reliable pointer but hey! If it will work, why not :)

One thing to be aware of is that we might have to find a new address during every new stage (ie. 1-X, 2-X, 3-X, 4-X, ..., 11-X). From my previous testing the address used sometimes changes in stage transitions (probably because of the "master" screen and some game object cleanup), so an address found on startup might not hold for the whole duration of a run. We have a level counter that we could use for triggering a new scan but it also increments on retries... and I haven't found stage / level numbers in memory, so it might be tricky to figure out which stage we're actually in. Perhaps every address will work just enough for us to see the "Stage Complete" title and know that we need to scan?

(Sorry for the brain dump here. It's probably better to say what I know while it's fresh :) )

Brazil

I know this hasn't been updated for 2 years but... the .ASL provided by janiczek didn't work, its throwing me 404

England

Brassbeat made a better splitter, its embedded on srdc through livesplit