Comet 64 – Solution to Dopplegänger Under 70 and 60 Cycles

Cycle optimized solution for Disk 1 Puzzle 7: The Dopplegänger for leaderboard (50~69 cycles).

Dopplegänger Puzzle Solution

Solution for 60~69 Cycles

The idea is to use more lines of code to reduce the processing time.

Hints

  1. We need to store two input values in order to compare them. Solutions in other guides show how to pass a value between registers before storing the next input. That’s not the only way.
  2. There are more than one register.
  3. We still need some sort of loop, but a longer one that alternates between two registers.

Solution

loop:
reg = input;
check reg = int;
jump if true: print;
int = input;
check reg = int;
jump if false: loop;
print:
output = int;
jump to: loop;

Note that formatting may have inserted extra spaces. This should yield very close to 70 cycles. With a little bit of luck with different input data, or some other tricks (hint:the first input), you can get under 70 cycles more often.

Hint for 50~59 Cycles

You would still be trading smaller code size for faster execution speed, just taking that concept to the extreme, at least that’s what I have come up with for now.

  • I used many lines of code.
  • It can be considered a hack job.
  • It’s accurate only probabilistically, but at a very high rate that passes the game checks.
  • The more lines of code, the less likely it is to make a mistake.
Created by 4ut0m4t0n

Be the first to comment

Leave a Reply

Your email address will not be published.


*