TASEmulators / TASEmulators/BizHawk

[F.Rq.] Basic Bot: Find best frame count that matches condition

Open
#4,579 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Request: Feature/Enhancement Tool: Basic Bot
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Currently, Basic Bot works by loading a savestate, running the ROM for a specified number of frames while doing random inputs according to your choices, reading the specified memory locations and comparing them to either the best value achieved or a specific value,

One feature which would be lovely to have is if, rather than checking once at the end of the specified number of frames, to have an option to check every frame and to add the frame number as a possible comparison.

For example, you could set it up so that it would run for a maximum of 50 frames, but to find the smallest frame number (-> fastest time) for a specified condition (say, X position >= 500) to be reached (at which point the attempt could be recorded and the next attempt started).

(You could potentially even use the same comparison operators as with regular memory accesses, so >= would find the slowest time within your max frame count, etc... although this seems less useful.)

I tried searching both here and in the BizHawk forum on TASVideos.org to see if this has already been requested and was surprised to see no results. If this has in fact been requested previously then I apologise, but as far as I can tell this is not something people have asked for.

This will probably slow operation down somewhat as it would involve checking for the conditions every frame (so it would make sense for it to be an option) but it could still be very worthwhile.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name any files, tests, or entry points; begin by locating the Basic Bot implementation and its current end-of-run comparison logic. Determine how an optional per-frame condition check and frame-count comparison should be configured, then add coverage for recording an attempt when the condition is reached.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.