That's the raw lua code I executed in #2:
send_init_lda(0x0048)
send_sta(0x4F51) --dog_x
send_sta(0x3365) --clear_crashing_alchemy_projectile
send_sta(0x3377) --clear_crashing_alchemy_animation
--no longer required: send_lda(0xffff)
send_sta(0x22EB) --credit_spaceship
send_sta(0x22F1) --credit_sandpits
send_lda(42)
send_sta(0x4EB3) --boy_hp
send_sta_rts(0x4F53) --dog_y
- 9 frames of code is the minimum I came up with (It reuses imperfect values, that's why the memory still looks slightly corrupted in the overlay)
- boy_hp is the frame you lose in #2 to get a "good ending" (The game checks if the boy survives the 0 damage from the cinema)
- credit_xy "costs 2 frames", because 2 out of the 9 frames are used to set them (Compared to solution #1: #3 has an additional send_lda(0xffff) and #2 the previously mentioned send_sta(0x4EB3) --boy_hp)
In general are most of these values very forgiving. Exception of the dogs coordinate, which has to be inside of
either one of the entry triggers (Next to label "Quicksand Area")
So it's not slower than anything, I just tried to avoid writing "0 frames".