mirror of
https://github.com/JetSetIlly/Gopher2600.git
synced 2024-05-20 13:48:02 -04:00
68 lines
2.5 KiB
Go
68 lines
2.5 KiB
Go
// This file is part of Gopher2600.
|
|
//
|
|
// Gopher2600 is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Gopher2600 is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Gopher2600. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
// Package macro implements an input system that processes instructions from a
|
|
// macro script.
|
|
//
|
|
// The first line of the macro must be the string "gopher2600macro".
|
|
//
|
|
// The macro language is very simple and does not implement any flow control
|
|
// except basic loops.
|
|
//
|
|
// DO loopCt [loopName]
|
|
// ...
|
|
// LOOP
|
|
//
|
|
// The 'loopName' parameter is optional. When a loop is named the current
|
|
// counter value can be referenced as a variable in some contexts (currently,
|
|
// this is the SCREENSHOT instruction only).
|
|
//
|
|
// Loops can be nested.
|
|
//
|
|
// The WAIT instruction will pause the execution of the macro for the specified
|
|
// number of frames. If no value is given for this the number of frames defaults
|
|
// to 60.
|
|
//
|
|
// There are instructions that give basic control over the emulation (only left
|
|
// player joystick control and some panel operaitons).
|
|
//
|
|
// LEFT, RIGHT, UP, DOWN, CENTRE, FIRE, NOFIRE, SELECT, RESET
|
|
//
|
|
// There is also an instruction to initiate a screenshot. The macro system is
|
|
// therefore useful to automate the collation of screenshots in a repeatable
|
|
// manner.
|
|
//
|
|
// SCREENSHOT [filename suffix]
|
|
//
|
|
// The filename suffix parameter is optional. Without it the screenshot will be
|
|
// given the default but unique filename.
|
|
//
|
|
// If the filename suffix parameter is given then the name of the screenshot
|
|
// will be the name of the cartridge plus the suffix. Spaces will be replaced
|
|
// with underscores.
|
|
//
|
|
// In the context of the screenshot instruction, variables can referenced with
|
|
// the % symbol. For example, if a loop has been given the name "ct", then the
|
|
// following screenshot command could be written:
|
|
//
|
|
// SCREENSHOT %ct
|
|
//
|
|
// Any errors in a macro script will result in a log entry and the termination
|
|
// of the macro execution.
|
|
//
|
|
// Lines can be commented by prefixing the line with two dashes (--). Leading
|
|
// and trailing white space is ignored.
|
|
package macro
|