Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Simon

#2206
Your act() is growing too big. You should split it into understandable chunks.

Whenever there is high-level structure behind something, the code should be designed such that the structure is immediately obvious to the reader. The one long method doesn't convey such intention; unless you read it all, you must fear that anything might happen at any time.

-- Simon
#2207
Lix Levels / Re: Arty's Lix Multiplayer Maps
January 19, 2018, 01:29:12 AM
Offer maps for download, then I'll include them in the next release.

-- Simon
#2208
Lix Levels / Re: Nessy's Lix Levels (V0.1.1)
January 18, 2018, 10:21:37 AM
I downloaded 0.1.1 and ran the replay verifier on my own 0.1.0 solutions. 6/10 levels are already covered by my old replays.

I solved 3 of the remaining levels, see attachments. My solution to 4th Wall is black magic, I don't think it's intended, but you never know. :lix-smile:

-- Simon
#2209
Lemmings Main / Re: Lemmings Speedrunning
January 18, 2018, 05:28:36 AM
QuoteRegarding hitting the ESC instead of nuking. THANKS! for that heads up. Now I'm actually sort of torn.
Quote from: Nihilist Comedy Hour on January 18, 2018, 12:08:19 AM
Mine: https://www.youtube.com/watch?v=u0n2g7CCd3U&t=191s
New WR posted 2 days ago: https://www.youtube.com/watch?v=kg5sUosg4TQ&t=1947s   42:45!!!!

He knows about exiting with ESC, but explicitly disallows it in the video description.

Maybe discuss it with him after he replies to you? I don't mind to see either ruleset. It's more important that you two agree on ESC when the runs get posted.

Quotecycles can be quite painful for games that don't have internal timing systems

I'm concerned about the loading times, where, to my knowledge, no game caps speed. It's good software design to allow unlimited load speeds.

Since you have a compeditor, maybe compare your vids for screen transitioning speed? If you're nearly equal, then this is no worry in Lemmings.

Quotewas any sort of Lemmings speedrunning up to this point... if there have been established rules on the matter in the past, I'd go with that.

I casually raced geoo in Lemmings 1, DMA's Lemmings 2 levels, custom Lemmings 2 levels, and Lix.

The Lemmings 1 race was too long ago to know whether we allowed ESC. I believe we allowed ESC because I don't remember any discussion, and then it's any% by convention. But this was merely one race without routing.

Lemmings 2 casual levels were entirely blind. I didn't highlight the races on twitch, but I clipped getting the idea for a crawling route.

The Lix race was without much routing, too. We knew the levels well because I maintain the game and geoo maintained the community level set. 40 Lovely levels in 16:50; like Neolemmix, it's this fast because of convenience features, but not optimized at all.

Lix and NeoLemmix come close to TAS environments. Custom levels focus purely on the puzzles and not on execution, in contrast to the puzzle-execution mix of Lemmings 1.

-- Simon
#2210
Tech & Research / Re: Lemmings 3 glitches
January 17, 2018, 09:59:15 PM
Beautiful showcases, thanks.

What a bugfest -- but on the other hand, the buzzard is complex and underused in the level designs. It must anticipate lemming movement precisely to strike, it's not the easiest routine in the book. No wonder corner cases like this can pass unfound until today. The potato beast is far more consistent.

I loosely remember trapping the psychobussard in its ready state temporarily, probably with walker assignments like in reply #8. It's been too long ago and I didn't investigate thoroughly back then.

-- Simon
#2211
Lemmings Main / Re: Lemmings Speedrunning
January 17, 2018, 09:35:28 PM
Very interesting. Gronkling attempted a TAS of Genesis Lemmings, but after making it halfway through, he put it on hold indefinitely.

The DOS version should be most popular, it's most widespread and reasonably easy to run in DOSBox.

Instead of nuking at end of stage, you should hit ESC once enough lems are saved. This still counts as a won level and skips the nuke anim. Otherwise, you seem to have a detailed grasp of the mechanics, very nice.

https://www.twitch.tv/nihilistcomedyhour

You allow any number of DOSBox cycles. That's probably the wisest decision for cycles.

I speedrun Jazz Jackrabbit and the DOSBox timing across host platforms can differ substantially, even if one agrees on a fixed cycle count. Inside a level, there's no difference, but the maps load at different speed. Very strange, and I haven't completely investigated. Even the Dosbox config file can be identical and yet get different results on a Windows machine and a Linux machine.

I didn't know this in late 2016, I've measured old runs and we agreed that 40,000 cycles would come closest to existing runs from 2014. In hindsight, maybe it would have been smarter to allow arbitrary cycles. Secret Agent and Lemmings suggests max cycles. Keen 1, Keen 4 and some other DOS games don't mention anything at all.

-- Simon
#2212
Sundays 18:00 UTC will work for me just as fine as Saturdays 18:00 UTC.

-- Simon
#2213
Cool! Thanks everybody for the debugging help. I'll use this lazy initialization in 0.9.9 then, and will report our findings upstream.

-- Simon
#2214
In case Forestidia would still like to build again and produce an allegro.log file (I don't think we need it anymore, though): I've tried once again to pack debugging DLLs and LIBs, see attachment. Maybe I made a mistake earlier.

I doubt this is useful anymore because we're on a good track. I attached this merely for completeness.

-- Simon
#2215
QuoteFrom my side it seems to look good. I haven't gotten the error even with the reliable seeming method.
But maybe Arty should test nevertheless, since he had it consistent.
Thanks, ccexplore.

Resolution change and display mode change seems to work fine for me. Music just runs on.

Okay, perfect, thanks for the quick feedback! I've sent a PM to Arty, waiting for feedback now. This will be wonderful information for the Allegro 5 issue on github, too.

Excellent hunch from ccexplore to reorder the initializations. Thanks a ton, that skips a lot of agonizing reduction. It should be irrelevant whether the display or sound driver exists first, but apparently it makes a difference. :lix-scared: It makes sense that the big restructuring for #222 introduced this.

ccx, was it this part of the A5 code?

/* FIXME: The window specified here is probably very wrong. NULL won't work either. */
hr = device->SetCooperativeLevel(GetForegroundWindow(), DSSCL_PRIORITY);


-- Simon
#2216
Lix initialized the audio before creating the window.

I've pushed a fix to unstable/master that lazily initializes the A5 audio driver. Since the main menu wants to print whether initialization is successful, audio gets now initialized on entering main menu. The display exists by then.

I've built this for Windows and attached the exe here, too. Would love feedback from Forestidia or Arty on this. :lix-smile:
  • Does it fix the crash?
  • Do you have audio every time? The main menu should print a warning in the lower-left corner otherwise.
  • What happens when you change resolution or display mode during program run? Does audio still work after the resolution change? (The sound driver persists throughout app's run once initialized.)
-- Simon
#2217
Okay, cool, thanks for confirming. Then this partial fix will go into 0.9.9.

-- Simon
#2218
Cannot repro on Linux. This script opens 3 instances of Windows Lix through Wine and 3 instances of Linux version, all within 4 seconds. I get no problems at all, and all 6 instances play music at the same time in the main menu.

Spoiler
#!/bin/sh

wine dub build
dub build

wine bin/lix.exe &
wine bin/lix.exe &
wine bin/lix.exe &

bin/lix &
bin/lix &
bin/lix &

I fixed the crash in unstable/master. Now, you should hear no audio and get an error in the main menu, but can still continue playing.

-- Simon
#2219
I've reported this against Allegro 5, linking back to this thread and to the 2016 thread on allegro.cc.

These days, I'll have another go at building debugging libraries and giving Forestidia and Arty a small self-contained example program.

-- Simon
#2220
Quote from: Forestidia86 on January 17, 2018, 07:15:48 AM
Can it be related to the taskbar issue concerning software fullscreen on Win 7? On the Win 8.1 laptop I don't have the fullscreen taskbar issue and the taskbar crash is rare and hard to get. Although Arty has Win 8.0 and consistent crash.

I don't remember the taskbar issue re fullscreen. <_<;; I suppose it wasn't #262 (Fullscreen, can't switch to other windows, Windows)?

Quote
What bugs me is that I don't get an allegro.log. I don't know why.

There's always a chance that I made a mistake in preparing the dll/lib archives. If you'd really like to try again: Get an A5 binary release and generate the lib files with implib. I don't remember how to write a shell loop in Windows batch.

Quote
But nevertheless before fix #222 the crash doesn't seem so likely. Maybe ask Arty if he has the issue with an Lix instance earlier than 0.9.6.

He never complained before 0.9.8, but I can ask again to be sure.

-- Simon