GBA Frotz

From GameBrew
GBA Frotz
Gbafrotz02.png
General
AuthorJames Jacobs
TypeOther Emulators
Version1.15
LicenseMixed
Last Updated2002/04/16
Links
Download
Website

GBAFrotz is a port of Frotz to the Game Boy Advance. Based on Frotz 2.41.

Installation

You need games to play. You can find some at these places:

To add files to the ROM, use the ADDFILES command, example: ADDFILES.EXE <binfile> <file1> <file2>

Any files ending with .zcode will be recognized as story files that can be played (and shown in a menu). Any files ending with .bmp that matches a name of a zcode-files will be shown before starting the game, provided that it's a 240x160 8bit bmp that uses no more than 224 colors. Also note that you always need to add a few special files:

  • keyb.dat
  • normal.font
  • fixed.font

And for games using the graphics-font (font 3) you also need:

  • gfx.font

This is the keyboard graphics and the fonts. You can replace the fonts with others, just make sure that normal.font is proportional and fixed.font is monospaced. For an example, look at the provided MAKEROM.BAT which creates an example rom.

User guide

Virtual keyboard

The basic idea is that you select a key group by combinations of the Left and Right shoulder buttons, and then you enter a specific key in that group by pressing either one of 8 directions on the direction pad, or one of the A & B buttons. This gives you a total of 50 possible keys - 5 combinations of keyboxes and 10 keys in each keybox.

No buttons, Left, Right, Left+Right and Right+Left (meaning that when holding both shoulder buttons the order in which you press them is important).

When the keyboard is not showing, all input is handled by the Smartkey device. This system lets you connect sequences of keypresses to ascii- values or special functions.

The default bindings should work well for most games but you can change them through commands in the config file.

Config Files

When you select a game to play, Frotz will look for a file in rom with the same name as the game-file except ending with .cfg instead of .zcode. If that is not found it tries default.cfg.

All parameters must be on a separate line with no spaces. Colors are ansi-numbers (0-15) but only (0-7) for foreground colors.

#Setting the forground or background color to <color> (default to bgcol=0, fgcol=7).
fgcol=<color>
bgcol=<color>

#Setting the reverse foreground and background colors (default to fgrev=-1, bgrev=-1).
fgrev=<color>
bgrev=<color>

#Set proportional and fixed font (default to "normal.font" and "fixed.font").
font=<fontfile>
fixed=<fontfile>

#Any line starting with "bind " defines a key-binding.
bind <sequence> <command> [mode]

The sequence is a string of letters, where each letter is either one of the 10 keys or a special flag. A sequence means pushing those buttons in order and keeping them pressed.

Sequence characters and meanings:

  • U Up
  • D Down
  • < Left
  • > Right
  • R Right Shoulder
  • L Left Shoulder
  • S Start
  • E Select
  • * Any keys
  • ! Auto commit

Auto commit means this binding will take effect immidiatly when the last key in the sequence is pressed. Normally it doesn't take effect until all keys are released again.

The '*' symbol can (currently) not be followed by any other keys.

The command can be a number (meaning an ASCII code), a character enclosed in single quotes (meaning that character) or a special command. These are:

  • GO_MODE0 - Switch to mode 0.
  • GO_MODE1 - Switch to mode 1.
  • GO_MODE2 - Switch to mode 2.
  • GO_MODE3 - Switch to mode 3.
  • HISTORY_UP - Show the previous line in commandline history.
  • HISTORY_DOWN - Show the next line in commandline history.
  • CURSOR_LEFT - Move the edit cursor left.
  • CURSOR_RIGHT - Move the edit cursor right.
  • SHOW_KEYBOARD - Go to virtual keyboard mode.
  • COMPLETE - Complete the current commandline.
  • MARKER_UP - Move the screengrab marker up one line.
  • MARKER_DOWN - Move the screengrab marker down one line.
  • MARKER_WORDLEFT - Move the screengrab marker one word to the left.
  • MARKER_WORDRIGHT - Move the screengrab marker one word to the right.
  • MARKER_INSERTBACK - Insert the current marked word into the commandline and go to the precious mode.
  • MARKER_INSERT - Insert the current marked word into the commandline.
  • GET_DICT0 - Insert a word from dictionary 0.
  • GET_DICT1 - Insert a word from dictionary 1.
  • GET_DICT2 - Insert a word from dictionary 2.
  • GET_DICT3 - Insert a word from dictionary 3.

The optional third argument is 'mode' and indicates that the binding should only be used in that mode (default is mode 0). The modes are used to have different bindings for different modes and jump between them. For instance the default bindings used mode 1 for screengrab.

There is a special mode 4 that is only active when frotz is reading a single key instead of a line. The default key bindings bind the cursor keys to cursor movement and history, but in mode 4 they are bound to keycodes 129-132 which is Frotz keycodes for cursor-movement. This makes sure (for instance) the menu in Beyond Zork works.

For default bindings check default.cfg. Note that the provided default.cfg in it's current form is redundant, as that is the default internal settings that would be used even when no config file was found. Also note that if you specify any bind commands in your config, all of the default ones will be removed (so you always have to specify the full set).

Verbs

These are the four available dictionaries:

Dictionary 0 (Bound to L+(Directional, A, B) per default):

  • "in"
  • "north"
  • "up"
  • "west"
  • "east"
  • "out"
  • "south"
  • "down"
  • "restore"
  • "save"

Dictionary 1 (Bound to R+(Directional, A, B) per default):

  • "open "
  • "get "
  • "close "
  • "inventory"
  • "look"
  • "open "
  • "drop "
  • "read "
  • "examine "
  • "enter "

Dictionary 2 (Bound to A+(Directional) per default):

  • "climb "
  • "eat "
  • "attack "
  • "move "
  • "unlock "
  • "push "
  • "jump "
  • "pull "

Dictionary 3 (Bound to B+(Directional) per default):

  • "load"
  • "score"
  • "save"
  • "wait"
  • "again"
  • "help "
  • "talk to "
  • "exit "

Controls

Select - Bring up the virtual keyboard

L/R/L+R - Key Groups

L+R - Screen grab, Cancel screen grab

L/R/A or B+Keys - Insert verbs into the commandline

Shortcuts:

Start - Enter

R+Start - Backspace

L+Start - Space

R+Select - Complete word

Screenshots

gbafrotz3.pnggbafrotz4.png

gbafrotz5.pnggbafrotz6.png

Compatibility

It works on real hardware and in Visual Boy Advance SDL.

Known issues

The keyboard does not seem to be visible in emulators other than Visual Boy Advance.

Changelog

V1.15

  • Graphics font (Beyond Zork).
  • Configurable colors & fonts.
  • New configurable input system.
  • Now really based on Frotz 2.41 (was 2.32 before).
  • Virtual Mem bugfix, large (v8) games work now.

V1.1

  • SRAM save support (one save per game, up to 64KB data).
  • Simple command line completion (R+SELECT).
  • Monospaced fonts.
  • Timed input (Border Zone).
  • Bug fixes.

External links

Advertising: