Console: | Game Boy |
---|---|

Game name: | Game Boy Camera |

Game version: | USA/Europe |

ROM filename: | Gameboy Camera (UE) [S][!].gb |

Branch: | Ball, maximum score |

Emulator: | BizHawk 2.6.1 |

Movie length: | 2:22:19.11 |

FrameCount: | 510020 |

Re-record count: | 494 |

Author's real name: | |

Author's nickname: | ThunderAxe31 |

Submitter: | ThunderAxe31 |

Submitted at: | 2021-04-01 10:43:22 |

Text last edited at: | 2021-04-12 18:16:44 |

Text last edited by: | feos |

Download: | Download (38473 bytes) |

Status: | decision: rejected |

Submission instructions | |

Discuss this submission (also rating / voting) | |

List all submissions by this submitter | |

List pages on this site that refer to this submission | |

View submission text history | |

Back to the submission list |

Author's comments and explanations:

Maybe. I don't know if it was worth a shot or not, so I did it anyway :^)

- Testing the judges!

At about 2600 points I got bored to TAS it manually and decided to fill the rest with mashing inputs. This decision breaks an important entertainment Guideline, which in itself doesn't make it rejectable...

After reaching the maximum score, I let intentionally lose the game and go to the hi-score screen to display the final score.

After reaching the maximum score, I let intentionally lose the game and go to the hi-score screen to display the final score.

You have to avoid letting the balls fall, by touching each ball for at least 1 frame, when they descend to the same height of the character's hands. You can use either the direction pad or the A and B buttons.

Even though the game displays 3 digits for the score counter while playing, it's actually keeping track of 4 digits. The score display will roll back to 000 each time you surpass 999. However, after reaching 9999 actual points, the game will no longer roll back to displaying 000.

The score is stored at address D9E6 (System Bus), as a 2-bytes binary coded decimal, so in the RAM viewer you gotta set it as hexadecimal value.

Samsara:

feos: Okay... you had it coming...

Samsara:

Even though the game displays 3 digits for the score counter while playing, it's actually keeping track of 4 digits. The score display will roll back to 000 each time you surpass 999. However, after reaching 9999 actual points, the game will no longer roll back to displaying 000.

The score is stored at address D9E6 (System Bus), as a 2-bytes binary coded decimal, so in the RAM viewer you gotta set it as hexadecimal value.

Samsara:

feos: Okay... you had it coming...

First and foremost, this movie is painful to watch, because there's constand flickering for almost two whole hours, along with incredibly unpleasant sound that won't ever let you go.

Quoting Movie Rules:

**The movie should not be painful to watch**

If a movie has entertainment significance which is deemed negatively, such as sickening camera angles, seizure inducing activity, and other rectifiable presentation decisions within it, the movie is not eligible for any tier.

If a movie has entertainment significance which is deemed negatively, such as sickening camera angles, seizure inducing activity, and other rectifiable presentation decisions within it, the movie is not eligible for any tier.

Rejecting for being unwatchable.

...wait, there's more!

This movie aims for maximum score, but it doesn't meet our Moons standards, because it's freaking unwatchable, because I said so, so it has to be eligible for the Vault tier. As such, it should meet the full completion requirements with its maximum score goal.

Well, it breaks not one but two full completion requirements for max score.

Quoting Movie Rules:

**Maximum points**

- Saturation (maxing out the counter) and overflow (dropping from high value to zero or negative) do not count as "max score". Scoring indefinitely should be impossible due to limitations of gameplay.
- A "max score" movie must complete the game. Playing beyond the defined completion point is not allowed.

This movie reaches the score that (supposedly) can't go any higher due to digital limitations of how it's represented, it basically saturates the score counter, which doesn't count as "max score".

Also it plays way way way way past the proper completion point for a game without a clear ending, which is not allowed.

Quoting Movie Rules:

**Games without clear ending**

- All unique content and the hardest difficulty loop have been completed. This option has the same value as playing regular games on the higher difficulty, according to our guideline on difficulty choice.

Difficulty is increasing in this mode until the movement intervals for the balls become the shortest, which means their movement has gotten the fastest it gets. In this game, difficulty is tied to score, and the score of 0400 is the point after which difficulty is no linger increasing, as you can clearly and obviously see from this code listing I made for you:

7AA7: AF XOR A A:05 F:00 B:88 C:08 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343386983 LY:5 znhciE 7AA8: EA EC D9 LD (#D9ECh),A A:00 F:80 B:88 C:08 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343386987 LY:5 ZnhciE 7AAB: 0E 28 LD C,#28h A:00 F:80 B:88 C:08 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387003 LY:5 ZnhciE ; load high byte of score 7AAD: FA E7 D9 LD A,(#D9E7h) A:00 F:80 B:88 C:28 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387011 LY:5 ZnhciE ; if => 4, skip ahead, because THAT'S THE CAP 7AB0: FE 04 CP #04h A:03 F:80 B:88 C:28 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387027 LY:5 ZnhciE 7AB2: 30 09 JR NC,7ABDh A:03 F:70 B:88 C:28 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387035 LY:5 zNHCiE 7AB4: CB 27 SLA A A:03 F:70 B:88 C:28 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387043 LY:5 zNHCiE 7AB6: 4F LD C,A A:06 F:00 B:88 C:28 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387051 LY:5 znhciE 7AB7: CB 27 SLA A A:06 F:00 B:88 C:06 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387055 LY:5 znhciE 7AB9: CB 27 SLA A A:0C F:00 B:88 C:06 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387063 LY:5 znhciE 7ABB: 81 ADD A,C A:18 F:00 B:88 C:06 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387071 LY:5 znhciE 7ABC: 4F LD C,A A:1E F:00 B:88 C:06 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387075 LY:5 znhciE ; load low byte of score 7ABD: FA E6 D9 LD A,(#D9E6h) A:1E F:00 B:88 C:1E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387079 LY:5 znhciE 7AC0: E6 F0 AND #F0h A:91 F:00 B:88 C:1E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387095 LY:5 znhciE 7AC2: CB 37 SWAP A A:90 F:20 B:88 C:1E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387103 LY:5 znHciE 7AC4: 81 ADD A,C A:09 F:00 B:88 C:1E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387111 LY:5 znhciE 7AC5: 4F LD C,A A:27 F:20 B:88 C:1E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387115 LY:5 znHciE 7AC6: A7 AND A A:27 F:20 B:88 C:27 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387119 LY:5 znHciE 7AC7: 20 0C JR NZ,7AD5h A:27 F:20 B:88 C:27 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387123 LY:5 znHciE 7AD5: 06 00 LD B,#00h A:27 F:20 B:88 C:27 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387135 LY:5 znHciE 7AD7: CB 21 SLA C A:27 F:20 B:00 C:27 D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387143 LY:5 znHciE 7AD9: CB 10 RL B A:27 F:00 B:00 C:4E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387151 LY:5 znhciE ; some look-up table magic? don't have time to figure this out. maybe a task for the next AFD 7ADB: 21 57 7B LD HL,#7B57h A:27 F:80 B:00 C:4E D:03 E:A6 H:77 L:F6 SP:DFF5 Cy:2343387159 LY:5 ZnhciE 7ADE: 09 ADD HL,BC A:27 F:80 B:00 C:4E D:03 E:A6 H:7B L:57 SP:DFF5 Cy:2343387171 LY:5 ZnhciE 7ADF: FA E3 D9 LD A,(#D9E3h) A:27 F:80 B:00 C:4E D:03 E:A6 H:7B L:A5 SP:DFF5 Cy:2343387179 LY:5 ZnhciE 7AE2: 86 ADD A,(HL) A:1C F:80 B:00 C:4E D:03 E:A6 H:7B L:A5 SP:DFF5 Cy:2343387195 LY:5 ZnhciE 7AE3: EA E3 D9 LD (#D9E3h),A A:71 F:20 B:00 C:4E D:03 E:A6 H:7B L:A5 SP:DFF5 Cy:2343387203 LY:5 znHciE 7AE6: 23 INC HL A:71 F:20 B:00 C:4E D:03 E:A6 H:7B L:A5 SP:DFF5 Cy:2343387219 LY:6 znHciE 7AE7: FA E4 D9 LD A,(#D9E4h) A:71 F:20 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387227 LY:6 znHciE 7AEA: 8E ADC A,(HL) A:EA F:20 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387243 LY:6 znHciE 7AEB: EA E4 D9 LD (#D9E4h),A A:1F F:10 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387251 LY:6 znhCiE ; if it's too early, return 7AEE: D0 RET NC A:1F F:10 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387267 LY:6 znhCiE ; PROCEED TO MOVE THE BALL 7AEF: 3E 01 LD A,#01h A:1F F:10 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387275 LY:6 znhCiE 7AF1: EA EC D9 LD (#D9ECh),A A:01 F:10 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387283 LY:6 znhCiE ; load current ball index 7AF4: FA E5 D9 LD A,(#D9E5h) A:01 F:10 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387299 LY:6 znhCiE 7AF7: C6 20 ADD A,#20h A:00 F:10 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387315 LY:6 znhCiE 7AF9: CD 7E 2B CALL #2B7Eh A:20 F:00 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387323 LY:6 znhciE 2B7E: EA 60 DD LD (#DD60h),A A:20 F:00 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF3 Cy:2343387347 LY:6 znhciE 2B81: C9 RET A:20 F:00 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF3 Cy:2343387363 LY:6 znhciE 7AFC: FA E5 D9 LD A,(#D9E5h) A:20 F:00 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387379 LY:6 znhciE 7AFF: 4F LD C,A A:00 F:00 B:00 C:4E D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387395 LY:6 znhciE 7B00: 06 00 LD B,#00h A:00 F:00 B:00 C:00 D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387399 LY:6 znhciE ; load ball base position address 7B02: 21 DB D9 LD HL,#D9DBh A:00 F:00 B:00 C:00 D:03 E:A6 H:7B L:A6 SP:DFF5 Cy:2343387407 LY:6 znhciE ; ball index 0 7B05: 09 ADD HL,BC A:00 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387419 LY:6 znhciE ; load first ball position value 7B06: 7E LD A,(HL) A:00 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387427 LY:6 znhciE 7B07: CB 7F BIT 7,A A:01 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387435 LY:6 znhciE 7B09: C0 RET NZ A:01 F:A0 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387443 LY:6 ZnHciE 7B0A: 21 BB 7B LD HL,#7BBBh A:01 F:A0 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387451 LY:6 ZnHciE 7B0D: 09 ADD HL,BC A:01 F:A0 B:00 C:00 D:03 E:A6 H:7B L:BB SP:DFF5 Cy:2343387463 LY:6 ZnHciE 7B0E: BE CP (HL) A:01 F:80 B:00 C:00 D:03 E:A6 H:7B L:BB SP:DFF5 Cy:2343387471 LY:6 ZnhciE 7B0F: C8 RET Z A:01 F:70 B:00 C:00 D:03 E:A6 H:7B L:BB SP:DFF5 Cy:2343387479 LY:6 zNHCiE ; load ball base speed address 7B10: 21 DE D9 LD HL,#D9DEh A:01 F:70 B:00 C:00 D:03 E:A6 H:7B L:BB SP:DFF5 Cy:2343387487 LY:6 zNHCiE ; ball index 0 7B13: 09 ADD HL,BC A:01 F:70 B:00 C:00 D:03 E:A6 H:D9 L:DE SP:DFF5 Cy:2343387499 LY:6 zNHCiE ; add speed value to first ball position 7B14: 86 ADD A,(HL) A:01 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DE SP:DFF5 Cy:2343387507 LY:6 znhciE ; load ball base position address again 7B15: 21 DB D9 LD HL,#D9DBh A:02 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DE SP:DFF5 Cy:2343387515 LY:6 znhciE ; ball index 0 7B18: 09 ADD HL,BC A:02 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387527 LY:6 znhciE ; write #2 to first ball position 7B19: 77 LD (HL),A A:02 F:00 B:00 C:00 D:03 E:A6 H:D9 L:DB SP:DFF5 Cy:2343387535 LY:6 znhciEIf it's somehow still not clear and obvious enough to you, I also made a lua script that tells you with absolute precision when exactly the fastest ball movement occurs, in terms of score:

memory.usememorydomain("System Bus") addr = 0xd9db local best_timer = 100000 local best_score = -1 local cur = { 0, 0, 0 } local prev = { -1, -1, -1 } local timer = { 0, 0, 0 } while true do local score = memory.read_u16_le(0xd9e6) for i = 1,3 do cur[i] = memory.readbyte(addr+i-1) if cur[i] == prev[i] then timer[i] = timer[i]+1 else if timer[i] < best_timer and score > 0 then best_timer = timer[i] best_score = score end timer[i] = 0 end gui.text(0,50+50*i,string.format( "cur: %d\nprev: %d\ntimer: %d", cur[i],prev[i],timer[i] prev[i] = cur[i] end gui.text(0,50,string.format("time: %d\nscore: %X",best_timer,best_score emu.frameadvance() endIf you're brave enough to run it on your movie, you'll see that difficulty maxes out when the score counter reaches 391. After that point, balls move at the intervals of 13 and sometimes 14 frames. They don't get any faster, ever.

Since by the score of 400 difficulty has already maxed out, all you need to complete is whatever we consider a loop after the score of 391. For completeness, and also to match the internal difficulty cap as it's coded, I think stopping the movie as soon as you reach the score of 400 is ideal solution.

But you don't do it here, so I'm rejecting your run.

Oh and obviously you're violating the guideline about difficulty choice mentioned above, because it doesn't make any sense to play this game after all its unique content has been completed. Because it doesn't ever get any more challenging to TAS, so there's nothing impressive in moving left or right once or twice every few frames.
** PERIOD **

...wait, there's more!

Quoting Movie Rules:

**The movie's technical quality must be acceptable**

Don't be lazy. We will try and beat your movie. We should hopefully not succeed. See the Guidelines on how to make a movie that meets the site's standards.

Don't be lazy. We will try and beat your movie. We should hopefully not succeed. See the Guidelines on how to make a movie that meets the site's standards.

If we count the score of 400 as a proper ending for this game, because I said so, then guess what...

...you're too slow.

You can clearly and obviously see how I beat your times by 13 frames in this movie I made in a couple minutes yesterday after dinner. You see the rerecord count? It's higher than in your entire 2.5-hour long TAS. Do you know why? It's because it's not a TAS! You've most likely just recorded your inputs up to score 400 while casually playing this game in real time, so it obviously took no rerecords. I can see it by how long you have to hold your buttons every time you hit them. And I'm not even mentioning the part where you just copypaste a tiny 4-frame-long input sequence onto almost 2 hours of gameplay. Which means that you're still hitting balls sub-optimally, just like in the RTA part of your run.

Rejecting for not even being a TAS.

...wait... there's more!

The very fact that you can beat the game just by copy-pasting a 4-frame input sequence, as well as the fact that there's no potential for any further improvement after the movie I've made, because I said so, it decidedly means that this game mode is way too trivial. And we don't accept trivial games to the Vault tier.

Quoting Movie Rules:

**Must be clearly definable as a game, which has achievable goals**

The game-play needs to standout from non-assisted play, and must not be seen as trivial. Note that a game is considered trivial until proven otherwise. If getting perfect times everywhere is not challenging, such a game is considered trivial. If later a technique is found that makes TASing it challenging, that game becomes acceptable.

The game-play needs to standout from non-assisted play, and must not be seen as trivial. Note that a game is considered trivial until proven otherwise. If getting perfect times everywhere is not challenging, such a game is considered trivial. If later a technique is found that makes TASing it challenging, that game becomes acceptable.

Yeah, gameplay didn't stand out from unassisted play either because it **was** unassisted play, because I said so. That one fact is worth rejecting a few more times just for that.

By manipulating the balls very precisely you could theoretically make them fall to death sooner, allowing you to reach the ending sooner too. Well, you can also exit the ball mode just from Pause, but that doesn't preserve the score... But why should we care about the in-game stats?!

Rejecting because you didn't ask a judge for an advice in the Ask a Judge thread over here. This one bit probably deserves you a site ban... hmm...

Also rejecting because you're "Testing the judges!". Okay no, actually it was cool, because that was finally a technical challenge for me, and it was interesting to get back to overkilling. So yeah, obvioulsly **rejecting**!

Since this game ties score to difficulty, it doesn't make any sense to aim for maximum score as a side goal. Rejecting for having a confusing branch label. It confised me.

It was made in BizHawk 2.6.1, which is infamous for killing the branches if you're not careful, so I tried TASing it in the intended BizHawk version and I lost all my branches. Look:

Rejecting like crazy! No mercy!

...oh almost forgot. You see these balls?

They died so you could stress-test my theories I make up while judging April Fools submissions. Great job! Rejecting. &Rejecting.

Samsara: