Roll Eyes
Lips Sealed
<- 12
List results:
Search options:
Use \ before commas in usernames
You're of course welcome to use as much or as little of the information in my post as you want. However, I don't think you're interpreting what I wrote correctly.

I'm not saying the points matter for the drops. My testing instead indicates that the points are not related to the drops.

$0646 ≠ points

It's true that both the value of $0646 and your points increase when you kill an enemy, but not in the same way. Let's take an example.
1-1: Pterodactyls give 500 points and increase $0646 by 13, cavemen give 600 points and increase $0646 by 13
1-2: Pterodactyls give 600 points and increase $0646 by 51, cavemen give 700 points and increase $0646 by 51

Now, if you only play from a save state in the same level as the drop you're investigating, it might look like the points are determining the drops. But even if that might work for that particular test, the information can't be used when you try to apply it to a whole run.

And yeah, I deleted a bunch of off-topic posts to keep the topic focused on speedrunning Joe & Mac.
Yeah thats explain a lot. Its still hard to hard to understand. I have to ask did LotBlind make me finnish explain about this. But i guess its still random to make. Im not TAS expert.

Thanks man.:)
If you have never looked at memory addresses before, it can definitely be a bit technical. And if there is a language barrier, it certainly doesn't help either.

The fire drop in 3-2 might be random, semi-random or completely deterministic. I didn't test enough to conclude either way. I think the best way to determine which one it is would be to do a bunch of emulator movies from start through 3-2 and observe how $0646 increases. Does it increase the same every time or is it impacted by e.g. boss RNG? The problem for me to do that is that I'm not playing this game (still on my "games-that-I-haven't-beaten-yet" list), so it's time-consuming for me. If you can run up to 3-2 (with save states) without much trouble, it would be much faster for you to do it. And besides, you're the one speedrunning this game. :-)

If there is any specific information in my posts you'd like to discuss, let's continue here. If you have some questions about NES emulators in general and how to start looking at RAM-values, I suggest we take it either in PM or you create a new topic for emulator discussion here in "Older Consoles" (I think that's the best place for such a topic).
I thinki ´ll seems pretty retared right now. Therre is few points i can definitely pick up. If you not kill any enemey in 1-2 you cannot got stone wheel. If you got lower than 100 000 points you will got really hard time got fire in stage 3-2. But its seems you can got its 98 000 points or over.

Sorry my bad english i just ask that with my finnish friend and ask question with this.? No trouble.
Edit history:
ktwo: 2021-05-06 02:18:24 am
ktwo: 2021-05-04 03:12:14 pm
ktwo: 2021-05-04 03:08:14 pm
ktwo: 2021-05-04 03:07:25 pm
ktwo: 2021-05-03 01:39:47 pm
ktwo: 2021-05-03 04:40:44 am
I had another look at the game this afternoon. I think I have improved my understanding of the drops now. Just gonna put my findings and thoughts here while it's still fresh.

The value of the counter in $646 is used to look up a value in the table starting at $FE03 (instruction $FDE9). As far as I can tell, this is essentially a table of random numbers being used instead of an RNG function. That number is then manipulated by the following instructions
$EDD7:4A        LSR
$EDD8:4A        LSR
$EDD9:29 0E     AND #$0E

which results in $00, 02, 04, 06, 08, 0A, 0C or 0E (so the 8 even numbers of a 4-bit). I did a quick, but far from exhaustive check and these values seem to occur with equal probability or at least close. Anyways, this value will determine the drop according to the following rules:
$00 - Axes
$02 - Stone wheels
$04 - Bones
$06 - Boomerangs (before 3-2) or Fire (from 3-2 and onwards)
$08 - Boomerangs
$0A and above - Interpreted as $00 (so Axes)

If the calculated drop is the weapon you already have, $02 is added and becomes the new drop.
Fire is not possible before 3-2. The game checks specifically which level (RAM-address $4B4) the player is on and only when you're in level 3-2 and onwards, the check that allows for fire to drop is passed.

In 1-2, this means:
- 5/8 chance of stone wheels (high probability since axes can't drop and result in stone wheels instead)
- 2/8 chance of boomerangs
- 1/8 chance of bones

Assuming you have the stone wheels in 3-2, this means for 3-2 and after:
- 4/8 chance of axes
- 2/8 chance of bones
- 1/8 chance of boomerangs
- 1/8 chance of fire

While the probability of getting fire is low, at least you have the same chance with every enemy that drops a weapon from 3-2 and onwards.

Unfortunately, the counter in $646 is quite volatile during boss battles. I haven't looked at the boss patterns to see if there is any way to manipulate them or predict how the counter in $646 will behave. Maybe if you're consistent with the boss fights, you can get the same result most of the time? But if you can't even kill every boss in the same cycle every time, the chances of any manipulation being possible will be even worse. But as I mentioned, I haven't tried to look at boss behavior.

Each weapon has a damage value, stored in $687:
Bones - 1
Axes - 2
Boomerangs - 3
Stone wheels - 4
Fire - 5

If you hold down the fire button for 32 frames, the damage value increases by 1 for all weapons. If you continue holding down B for another 32 frames, the damage value increases by another point for all weapons. You can keep this state for 64 frames before you become fatigued. As an example, stone wheels can therefore deal 4, 5 or 6 damage, depending on if it's powered up or not.

There is also a special case when you fire upwards. The damage value will then always be increased by 1. Powering up the weapon when firing upwards has no effect.

The damage inflicted during levels is the same as the damage value. So fire is slightly better than the stone wheel. Enemy health is stored in $6B7/$6C7/$6D7 (there are three possible enemies on screen at the same time).

The damage inflicted during boss fights works differently. Boss health always starts at $20 (so 32) and is stored in $64D. A damage value of
- 1, 2 or 3 results in 1 damage
- 4 or 5 results in 2 damage
- 6 or 7 results in 4 damage

So the base damage on bosses of the stone wheels and the fire is the same. The powered up shots also deal the same damage, but fire is faster to power up, since you only need the first damage value boost (from 5 to 6), while you need both boosts with the stone wheels (from 4 to 6) to deal 4 damage. However, because of the damage calculation when shooting straight up, fire will essentially deal double damage over the stone wheels in some fights, which I assume is the primary reason for fire being seen as much faster.

I'm still curious if stone wheels really lose that much time over fire. Assuming RNG is such a big part of the boss fights, wouldn't essentially 4 times as many attempts (since there are two drops in 3-2, each with a 1/8 chance of fire) be able to give RNG that offsets (and maybe more) the time losses from not having fire? And besides, you can still try for fire in 4-2 to 5-2 (no weapon drop in 4-1).
Thanks your explain.

Im not sure did Stonewheel lost that amount time. WR run fireless is 7:56. WR is actual with fire 7:06. but flame makes 4-2 boss Pteradon much more easier. to beat faster Flame can cause critical damage and its usually save time with few bosses like 3-2, 4-1 & 4-2. Also its kill little fly lizards faster. So Stone wheel cost most times here.  Stonewheels seems also very good, but usually 4-2 boss will cost much time. Little Pteradonts here and there.  Its usually cost 30 seconds total compared flame.