Submission Text Full Submission Page
Cancelled due to lack of motivation and from complicated improvements.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #8011: LoganTheTASer's NES Falling "maximum score" in 34:56.61
Darkman425
He/They
Editor, Judge, Skilled player (1031)
Joined: 9/19/2021
Posts: 241
Location: Texas
A quick review of this one: I got sync to work for this homebrew game. The creator of the game has it available for download here: https://github.com/xram64/falling-nes I found one other possible way to manipulate RNG: the frame start is pressed at the title screen determines what the initial RNG seed for the run is. Seeing as this submission already is 35 minutes, any testing for a better initial seed should probably be handled by a bot since doing otherwise would be unreasonable. Otherwise, the TAS itself is fine as it achieves reaching the maximum score of 999 and ends input early without overflowing the score.
Switch friend code: SW-2632-3851-3712
LoganTheTASer
He/They
Banned User, Experienced player (765)
Joined: 7/3/2022
Posts: 458
Location: Berkshire, UK
thanks for the review, darkman! nice find! i don’t know how to run any bots yet.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Darkman425 wrote:
I got sync to work for this homebrew game. The creator of the game has it available for download here: https://github.com/xram64/falling-nes
I got the rom from there (headered) MD5: 2F33019F51624CA94FD952A8B2673DD2 SHA-1: 5E85705B07AA931F729D6B7A85D4CD4B686F5E2F (headerless) SHA1:D2F6BCC7B3337715E3DFBA672F11895B7E9BD0FE MD5:1229D51277BE89D2F9C8BA2024021D0E but it doesn't sync and the movie has a different rom hash (b30b07cf2dd1e812143d636be4fe7143). EDIT: The right one is here https://www.romhacking.net/homebrew/96/ EDIT: Ah it's also here https://github.com/xram64/falling-nes/blob/master/assets/falling.zip
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I made a script to check for missed coins, by breaking when address $01:CB59 is executed, which is when a coin reaches the top border and disappears, because it hasn't been picked up. https://github.com/xram64/falling-nes/blob/fb8937ce3405cafb22e468925d45b3f95cc73e4e/source/falling.asm#L2018
Language: asm6502

Pkup_CoinCheck: ; Pickup activation check: Coin 01:CB46: AD 2D 00 LDA $002D pkupcoin_flag = #$01 01:CB49: C9 01 CMP #$01 01:CB4B: D0 28 BNE $CB75 Pkup_CoinCheckRoll ; S_PKUPCOIN 01:CB4D: A2 04 LDX #$04 01:CB4F: 20 36 CE JSR $CE36 Pkup_Move 01:CB52: 8D 2F 00 STA $002F pkupcoin_y = #$13 ; UI_CUTOFF 01:CB55: C9 14 CMP #$14 01:CB57: B0 39 BCS $CB92 Pkup_CoinCheckDone ; otherwise, a wrap occured >01:CB59: A9 00 LDA #$00 01:CB5B: 8D 2D 00 STA $002D pkupcoin_flag = #$01 ; PKUPCOINY_INIT 01:CB5E: A9 FF LDA #$FF ; SPRITE_RAM_PKUP+S_PKUPCOIN+0 01:CB60: 8D C4 02 STA $02C4 = #$13 01:CB63: 8D 2F 00 STA $002F pkupcoin_y = #$13 01:CB66: 20 11 CF JSR $CF11 prng 01:CB69: 20 47 CE JSR $CE47 Pkup_RandomXGen ; SPRITE_RAM_PKUP+S_PKUPCOIN+3 01:CB6C: 8D C7 02 STA $02C7 = #$A0 01:CB6F: 8D 2E 00 STA $002E pkupcoin_x = #$A0 01:CB72: 4C 92 CB JMP $CB92 Pkup_CoinCheckDone
Download missed.lua
Language: lua

memory.registerexecute(0xCB59, function() gui.text(100,100,"MISSED!!!") emu.pause() end)
And you've missed 2 coins, at frames 12744 and 45324. Was it intentional/unavoidable?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
And here's a movie that reaches the score of 22 60 frames sooner: User movie #638128340520305920 Turns out dependency between coin grab and next coin spawn is non-linear, and sometimes it's more optimal to grab it later, and the next one spawns sooner. Hard to tell how this affects the whole movie, but having to test a few more of the same button presses for every coin sounds easy, just a bit time consuming. If we blindly extrapolate this to the whole movie duration we get 00:20.77 seconds of potential improvement, and for the overall required score we get 00:45.32 seconds. Of course it's impossible to know if in practice actual time saved will be more or less that that. But what we know for sure is you can't just fall on every coin ASAP and be sure the next one spawns optimally. There's a bit more room for manipulation. And in a game as basic as this (you just move left and right), it's fair to expect a bit more attention to details. Also since you can manipulate the coin's X position and you have 9 lives, it would be worth checking if you can manipulate the last few coins to align so you could collect them without input while losing all the lives. EDIT: In theory it should also be possible to manipulate coin spawns a few coins ahead if it takes too long even after all the tries on the immediately previous one. But that makes it a much bigger project.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
LoganTheTASer
He/They
Banned User, Experienced player (765)
Joined: 7/3/2022
Posts: 458
Location: Berkshire, UK
feos wrote:
I made a script to check for missed coins, by breaking when address $01:CB59 is executed, which is when a coin reaches the top border and disappears, because it hasn't been picked up. And you've missed 2 coins, at frames 12744 and 45324. Was it intentional/unavoidable?
1. well done on that, and the fact you found a way to save time! 2. i didn’t realise i had missed those coins. i wonder if it could be possible to use your script to redo the tas?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
EDIT: feos is currently working on a script in order to beat this game faster.
Uh, no? You'll have to test picking up coins at different times manually. The only thing I noticed is fceux taseditor doesn't want to keep markers intact if you load branches, so it would be easier to do this in hawk, marking frames when coins spawn and using branches for different routing.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
LoganTheTASer
He/They
Banned User, Experienced player (765)
Joined: 7/3/2022
Posts: 458
Location: Berkshire, UK
feos wrote:
EDIT: feos is currently working on a script in order to beat this game faster.
Uh, no? You'll have to test picking up coins at different times manually. The only thing I noticed is fceux taseditor doesn't want to keep markers intact if you load branches, so it would be easier to do this in hawk, marking frames when coins spawn and using branches for different routing.
that’ll take forever, and i don’t have the motivation to do that. plus i easily get motion sickness, so this improvement would basically be torture. i’m cancelling this tas until further notice. thanks for starting the improvement. i may finish the improvement in the future and re-submit this run, but for now it’s cancelled.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2728
Location: The dark corners of the TASVideos server
om, nom, nom... crunchy!
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I didn't mean to state that it would be rejected. I researched things that looked interesting, to have a discussion about them, so whatever happens next is agreed about. I asked other judges and they didn't feel it was worth rejecting. Because in the end we don't know if the overall RNG aligns in a way that makes the possible improvement really huge.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
LoganTheTASer
He/They
Banned User, Experienced player (765)
Joined: 7/3/2022
Posts: 458
Location: Berkshire, UK
feos wrote:
I didn't mean to state that it would be rejected. I researched things that looked interesting, to have a discussion about them, so whatever happens next is agreed about. I asked other judges and they didn't feel it was worth rejecting. Because in the end we don't know if the overall RNG aligns in a way that makes the possible improvement really huge.
no, i cancelled it because it wasn’t optimal.