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 - Gronkling

#16
Spent a bit learning some LUA and put together this simple script to track lag during gameplay
Small green square shows in lower left on frames where assignments can be made, so you don't have to keep RAMwatch open all the time
Small red square shows in lower left on lag frames, allowing you to spot them more easily (currently won't give you a total at all like ccexplore's old script though)


I also got ccexplore's trigger map script to work with the modern version of Bizhawk
#17
Forum Games / Re: Family Feud 2021
February 28, 2021, 03:51:33 PM
Yay a :tal-bronze: medal for me

1 - I just went with the first one
2 - Went with the topping thats on every pizza
3 - Went with my favourite that's not UK-specific cos I don't know what's particularly more popular than others
4 - It's the most distinct one pre-loaded into NL
5 - Rectangles was the last thread before this
6 - They're like the main character who appears on everything
7 - Don't like apple but seems like most people know about iPhones most
8 - Just seemed like the most obvious
9 - Didn't really know a particularly common thing so I went with somethig I have every day
10 - Everybody loves namida's tiels

11 - Lucky random pick
12 - Originally went with Eurasia but it got rejected! So picked one at random and got unluckier
13 - Random pick, got unlucky
14 - There's enough old presidents that I just picked a random old one and confident enough I'd be the only one
15 - Random pick, got unlucky

16 - Seemed like a good number but not quite
17 - Probably should of thought this one out more :crylaugh: I just put in a score-like number
#18
Tech & Research / Re: Glitches in Lemmings
February 23, 2021, 07:56:42 PM
Whilst I was setting up a recording of this glitch, I accidently found a DIFFERENT MD/genesis bomber glitch! :smug:
If a lemming explodes as it is falling below the level, it will play an oh-no sprite rather exploding instantly like a normal faller. In the video I do this one the first frame it occurs as it looks most impressive, however it works at any point below that too, and from greater heights.

Here's a video demonstrating both
https://www.youtube.com/watch?v=LT4P7Z9iDrA
#19
Tech & Research / Re: Glitches in Lemmings
February 23, 2021, 05:12:41 PM
On megadrive\genesis, if more than one bomber explodes on the exact same frame, only one of them will cause any change to the terrain, the others will blow up as if they're in a steel area.
(currently untested on other platforms)
#20
The full compilation of ALL current tricky solutions is here! The full tricky rank in 24 minutes 23.96 seconds
https://www.youtube.com/watch?v=nIQHfXs0ZtE
#21
Quote from: ericderkovits on February 10, 2021, 08:14:56 PM
ok, Solved Gronkling's Iron-Age Forge

This one was tricky. Also used all skills. Hopefully not a backroute.

Yes, this is exactly the correct solution
#22
@armani

Spoiler

Your solution uses different specific tricks than intended, but they're about the same difficulty, performed in the same place, and achieve the same effect, whilst being impossible to fix in a nice way anyway, so I'll count it as an acceptable solution
#23
Here's my replays to all the R1 V1 levels, except for IchoTolot's which I haven't beaten yet

My personal scoring is under spoiler
Spoiler

R1.1 Armani
Aesthetics:★★★★☆
Difficulty:   ★★★☆☆
Funness:   ★★★★☆
SCORE: 32

R1.2 Crane
Aesthetics:★★☆☆☆
Difficulty:   ★★★☆☆
Funness:   ★★★☆☆
SCORE: 15

R1.3 Dullstar
Aesthetics:★★★☆☆
Difficulty:   ★★☆☆☆
Funness:   ★★★★☆
SCORE: 20

R1.4 Eric Derkovits
Aesthetics:★☆☆☆☆
Difficulty:   ★★☆☆☆
Funness:   ★★★☆☆
SCORE: 9

R1.5 Flopsy
Aesthetics:★★★☆☆
Difficulty:   ★★★☆☆
Funness:   ★★★☆☆
SCORE: 18

R1.7 IchoTolot
[not yet completed]

R1.8 kaywhyn
Aesthetics:★★☆☆☆
Difficulty:   ★☆☆☆☆
Funness:   ★★★☆☆
SCORE: 9

R1.9 Nessy
Aesthetics:★★★★☆
Difficulty:   ★★☆☆☆
Funness:   ★★★☆☆
SCORE: 18

R1.10 NieSch
Aesthetics:★★★☆☆
Difficulty:   ★☆☆☆☆
Funness:   ★★☆☆☆
SCORE: 8

R1.11 roundthewheel
Aesthetics:★★★☆☆
Difficulty:   ★★☆☆☆
Funness:   ★★★☆☆
SCORE: 15

R1.12 Shmolem
Aesthetics:★★☆☆☆
Difficulty:   ★☆☆☆☆
Funness:   ★★☆☆☆
SCORE: 6

R1.13 Silken Healer
Aesthetics:★☆☆☆☆
Difficulty:   ★☆☆☆☆
Funness:   ★★☆☆☆
SCORE: 4

R1.14 The Tomato Watcher
Aesthetics:★★★☆☆
Difficulty:   ★☆☆☆☆
Funness:   ★★☆☆☆
SCORE: 8

R1.15 WillLem
Aesthetics:★★☆☆☆
Difficulty:   ★★☆☆☆
Funness:   ★☆☆☆☆
SCORE: 4
#24
Fixed ericderkovits's backroute
#25
Quote from: ericderkovits on February 09, 2021, 09:48:23 AM
Ok, Solved Gronkling's Iron-Age Forge

Yep, that's a backroute :8:()[:
#26
Really cool finds and additions, I'll edit the first post to add what you said. The floater thing with byte 10 does happen when testing in gameplay.
However the blocker doesn't seem to cause an effect in bytes 13 and 14. It resets the counters of byte 10 and 11, and affects byte 6 as you expected.
It seems that skill #19 is given when a lemming is assigned a float whilst falling as you predicted
#27
Quote from: EricLang on February 05, 2021, 09:48:36 AM
Hello, what is TAS?
Which files are you analyzing? Maybe I can help.
I have all genesis levels and graphics on my PC (forgot where they exactly came from but ccexplore was involved).

TAS - Tool Assisted Speedrun, using an emulator with the genesis game to get the fastest possible completion time. You can find it in the challenges board
I am just observing how the memory registers in the RAM change based on things that occur in the game. It's not to do with the graphics or levels and I don't need help, I just thought this was interesting.
Anyway I checked in 2P mode as I thought maybe one of the unknown use bytes could be in there, but this just uses an extension of byte 6.
#28
Working on my TAS I've decently reverse-engineered how the data of a lemming is stored, and what data is stored about it. Since the MD/genesis port is very similar to other ports, this may also be true for systems like Amiga and DOS. However there are still some MYSTERIES (fun!), what are byte 10, 13 and 14, and what is skill 19.

Each lemming has 16 bytes stored about it. These chunks of 16 bytes are stored in an array, starting with the data about the first lemming to enter, then the second, and so on. In the version I have, this array starts at address E6B4 in the RAM.

Things found by geoo are in blue text, more details in 3rd reply

Now for a byte-by-byte breakdown of what exactly is stored about each lemming.
BYTE 1: The "half" of the level it is in, if it's in the left half the value is 0, if it's in the right half the value is 1. Basically it's just an extra bit for the X-position of the lemming. Hacking this value to be >1 doesn't seem to result in the lemming being erased, instead it gets "stuck in a wall" rapidly alternating left and right, but not visible in the level.

BYTE 2: The standard X-position of the lemming, all values are used

BYTE 3: The Y-position of the lemming. 0 is the top of the level and 174 is the bottom. There is a "ceiling" at value 8 though and it is impossible to go any higher with current knowledge. The actual bottom of the visible level is 160, but the lemming dies at Y-value 174. Hacking any higher values causes the lemming to instantly die, though hacking it to be it's maximum value causes the lemming to wrap around to the top of the screen, and fall all the way down again with no collision, before dying as usual.

BYTE 4: This one seems to control the X-offset of the sprite used by the lemming, with different skills requiring different offsets to render in the correct position. I have found a single non-hacking glitch where this seems to go wrong, using a climber glitch in terrain, and going through a blocker field may make the sprite render a bit further to the right than it's actual position would suggest for a few frames.

BYTE 5: Same as above, but for the Y-offset.

BYTE 6: Each bit in this byte is a different property
Spoiler

bit 0: direction
bit 1: climber flag
bit 2: floater flag
bit 3: removed from level
bit 4: player
bit 5: blocker related
bit 6: blocker related


BYTE 7: This cycles through the frames of the lemming's sprite animation.

BYTE 8: The skill of the lemming!
Spoiler

0    Walker
1    Oh-noer
2    Drowner
3    Instant Explosion
4    Faller
5    Jumper (used when going up steps greater than 2 pixels)
6    Exiter
7    Climber
8    Hoister (when finished climbing)
9    Shrugger (when finished building)
10   Floater Start
11   Floater
12   Splatter
13   Digger
14   Blocker
15   Miner
16   Die in fire trap
17   Builder
18   Basher
19   Occurs when a floater is assigned as a lemming is falling
above that causes game to crash

BYTE 9: Bomber countdown. Is set to 79 when a bomber is applied and decreases by 1 every physics update cycle. Turns into an oh-noer when this reaches 0.

BYTE 10: Counts up by two every physics update cycle when a lemming is floating down, seems linked to the floater sprite animation.

BYTE 11: Combined fall distance and builder countdown. It counts up when a lemming is falling to keep track of fall distance, to check if it should splat. When a builder is assigned it counts down from 12, reducing by one each time it lays a step (every 15 physics update cycles). This counter is only reset when the lemming becomes a builder or a faller or a blocker.

BYTE 12: This changes based on what sort of object trigger area or terrain it is in. For example it is 0 when in air, 1 in an exit trigger area, 8 when in a steel area. Haven't really looked into what each number means. This does not seem to actually affect the lemming's actions though, hacking it to be 1 does not cause the lemming to exit for example, and it is reset back to a normal value the next physics update cycle.

BYTE 13 and BYTE 14: UNKNOWN never seen these change, however is referenced in blocker-related code

BYTE 15 and BYTE 16: Work together to give address in memory where to find the sprite's animation: "if you look in the ROM, the value of these bytes plus 0x40644 give you the address where to find the sprites for the state (BYTE 8) this lemming is in. The exact offset also depends on the animation frame of the lemming (BYTE 7), and is computed in the skill-specific rendering code from off_9156 and off_9FC4. For example, for the walker or jumper, you'd find the ROM address of the current sprite of the lemming by taking 0x40664 + 0x168 (the value of BYTE 15-16 for walkers) + 0x28 * (BYTE 7). The sprites are encoded with 4 bits per pixel, and I believe for the walker the dimensions are 8x10 (not sure where the game gets the width and height of each frame from)"
#29
Finished going through each tricky level now, for the next step I will go back through them and check for any time saves that I can think of with a fresh look at the level and a better understanding of things like lag. Unfortunately ccexplore's LUA scripts no longer work due to a major bizhawk update at some point in the last few years, and my programming knowledge isn't good enough to fix them, so I will have to guess a bit at the lag patterns.

I'll edit this post to list improvements
Tricky 1 - No improvement
Tricky 2 - 0:48.03(2387) -> 0:47.26(2349)
Tricky 3 - 0:36.64(1821) -> 0:36.26(1802)
Tricky 4 - No improvement
Tricky 5 - 1:45.77(5257) -> 1:37.02(4822)
Tricky 6 - 0:31.09(1545) -> 0:30.70(1526)
Tricky 7 - 0:38.97(1937) -> 0:37.61(1869)
Tricky 8 - No improvement
#30
I'm just adding new solutions to the OP now since no one was replying, for now I'll make a new post if I come across something interesting, such as...

Today's Genesis mystery:
Sometimes pressing the A button stops a frame or two of lag. For example, I managed to save 4 frames on the tricky 28 solution just by pressing the A button at certain points whilst the game was lagging. I have absolutely no idea why this happens, or how to predict when you should press A.

Got 5 frames off lag-fest fun 14 with this