+ The Generic Tile Engine (GTE) Tool Set enables tile-based games to be implemented in an efficient manner.
+ The tool set provides support for sprites, animations, large scrolling backgrounds and special effects.
+
+
+
+ To effectively use this tool set, a user should be familiar with the following
+
+
+
The IIgs Hardware Reference
+
The QuickDraw II tool set
+
IIgs Technical Note #70
+
+
+
+
A preview of the GTE Tool Set routines
+
+
+ To introduce you to the capabilities of the GTE Tool Set the routines are grouped by function and briefly
+ described in Table 1. These routines are descibed in detail later where they are separated into housekeeping
+ routines (discussed in routine number order) and the rest of the GTE Tool Set routines (discussed in alphabetical
+ order).
+
+
+
+
+
+
Table 1
+
+
+
GTE Tool Set routines and their functions
+
+
+
Routine
+
Description
+
+
+
Housekeeping Routines
+
+
+
GTEBootInit
+
Initializes the GTE Tool Set; called only by the Tool Locator — must not be called by an application
+
+
+
GTEStartUp
+
Starts up the GTE Tool Set for use by an application
+
+
+
GTEShutDown
+
Shuts down the GTE Tool Set when an application quits
+
+
+
GTEVersion
+
Returns the version number of the GTE Tool Set
+
+
+
GTEReset
+
Resets the GTE Tool Set; called only when the system is reset — must not be called by an application
+
+
+
GTEStatus
+
Indicates whether the GTE Tool Set is active
+
+
+
+
Sprite Routines
+
+
+
+
GTECreateSpriteStamp
+
Creates a sprite stamp from the tile set
+
+
+
GTEAddSprite
+
Add a active sprite to the scene
+
+
+
GTEMoveSprite
+
Changes a sprite's location
+
+
+
GTEUpdateSprite
+
Changes a sprite's tile set reference and display flags
+
+
+
GTERemoveSprite
+
Removes a sprite from the scene
+
+
+
+
Tile Routines
+
+
+
GTELoadTileSet
+
Copies a tileset into the GTE tileset memory
+
+
+
GTESetTile
+
Assigns a tile to a tile store
+
+
+
GTEGetTileAt
+
Retrieves the tile ID stored in the tile store
+
+
+
GTECopyTileToDynamic
+
Copies a tile from the tileset memory into the managed dynamic tile memory. Changing the dynamic tile data
+ will result in all of the tiles updating
+ on the next call the GTERender()
+
+
+
GTEGetTileDataAddr
+
Returns the base address of the tiledata memory
+
+
+
GTEFillTileStore
+
Fills the entire tile store with a tile ID.
+
+
+
+
Primary Background Routines
+
+
+
GTESetBG0Origin
+
Sets the upper-left origin point in the primary background
+
+
+
GTERender
+
Draws the current scene to the graphics screen
+
+
+
GTEGetBG0TileMapInfo
+
Returns a record describing the number of tiles in the primary tilemap and a pointer to the tilemap data.
+
+
+
+
GTESetBG0TileMapInfo
+
Defines a tile map for the primary background
+
+
+
GTERefresh
+
Forces all of the tiles in the tile store to be refreshed on the next render.
+
+
+
+
Secondary Background Routines
+
+
+
GTESetBG1Origin
+
Sets the upper-left origin point in the secondary background
+
+
+
GTECopyPicToBG1
+
Copies an uncompressed pixel image into the secondard background buffer
+
+
+
GTESetBG1TileMapInfo
+
Defines a tile map for the secondary background
+
+
+
+
Timer Routines
+
+
+
GTEAddTimer
+
Add a timer callback that is fired after a designated number of VBL ticks
+
+
+
GTERemoveTimer
+
Removes an active timer
+
+
+
GTEStartScript
+
Registers a GTE script to be handled in the background
+
+
+
+
Overlay Routines
+
+
+
GTESetOverlay
+
Registers an overlay routine to be integrated into the renderer. Typically used for status bars or
+ messages.
+
+
+
GTEClearOverlay
+
Removes the current overlay from the renderer
+
+
+
+
Functions affecting the global state
+
+
+
GTESetScreenMode
+
Sets the playing field's port rectangle to a pre-defined size, or a specified width and height
+
+
+
GTESetPalette
+
Copies a palette to the Super HiRes palette memory
+
+
+
GTEBindSCBArray
+
Takes an array of SCB bytes and binds them to either the Primary or Secondary background's vertical
+ position
+
+
+
GTEGetScreenInfo
+
Returns a records describing the origin, width and height of the playfield on the physical graphics
+ screen.
+
+
+
+
Misc. Functions
+
+
+
GTEReadControl
+
Reads the keyboard and returns key events in a gamepad structure
+
+
+
GTEGetSeconds
+
Returns the number of seconds elapsed since the toolset was started
+
+
+
+
+
Using the GTE Tool Set
+
+ This section discusses how the GTE Tool Set routines fit into the general flow of an application and gives you an
+ idea of which routines you'll need to use under normal circumstances. Each routine is described in detail later in
+ this chapter.
+
+ The GTE Tool Set depends on the presence of the tool sets shown in Table 2 and requires at least the indicated
+ version of each tool set be present.
+
+
+
+
+
Table 2
+
+
+
GTE Tool Set — other tool sets required
+
+
+
Tool set number
+
Tool set name
+
Minimal version needed
+
+
+
$01
+
#01
+
Tool Locator
+
3.x
+
+
+
$02
+
#02
+
Memory Manager
+
3.x
+
+
+
$03
+
#03
+
Miscellaneous Tool Set
+
3.2
+
+
+
+
+
+ To use the GTE Tool Set routines, your application must call the GTEStartUp routine before making any other GTE
+ calls. To save memory, the GTE Tool Set may be started up with some features disabled. See the section GTEStartUp in this chapter for further details.
+
+
+ Your application should also make the GTEShutDown call when the application quits.
+
+
+
+
+
$01XX
+
+
GTEBootInit
+
+ Initializes the GTE Tool Set; called only by the Tool Locator.
+
+
+
+ An application must never make this call
+
+
+
+
+
Parameters
+
+ The stack is not affected by this call. There are no input or output parameters.
+
+
+
+
+
Errors
+
None
+
+
+
+
C
+
Call must not be made by an application.
+
+
+
+
+
$02XX
+
GTEStartUp
+
+ Starts up the GTE Tool Set for use by an application.
+
+
+
+
+ Your application must make this call before it makes any other GTE Tool Set calls.
+
+
+
+
+ The GTE Tool Set uses two consecutive pages of bank zero for its direct page space starting at dPageAddr.
+ If the ENGINE_MODE_DYN_TILES flag is set in the capFlags, the GTE will attempt to allocate an
+ additional eight pages of bank zero space. If the ENGINE_MODE_BNK0_BUFF flag is set, then GTE
+ will attempt to allocate an ~32KB buffer from $2000 to $9CFF in Bank 0.
+
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
Stack before call
+
+
+
previous contents
+
+
+
dPageAddr
+
+
Word — 16-bit address of two pages of page-aligned Bank 0 memory
+
+
+
capFlags
+
+
Word — Capability flags to set the engine mode
+
+
+
userID
+
+
Word — User ID to be associated with the block. All memory allocated by GTE will use this
+ ID
+
+
+
+
←
+
SP
+
+
+
+
+
+
+
+
+
+
+
+
+
Stack after call
+
+
+
previous contents
+
+
+
+
←
+
SP
+
+
+
+
+
+
+
capFlags
+
+
+
+
+
+
+
ENGINE_MODE_TWO_LAYER
+
$0001
+
Enables the second background layer. This will have a moderate impact on rendering performance.
+
+
+
ENGINE_MODE_DYN_TILES
+
$0002
+
Enables the use of dynamic (animated) tiles. This will have a small impact on performance and requires
+ allocating 8 pages of Bank 0 memory
+
+
+
ENGINE_MODE_BNK0_BUFF
+
$0004
+
Allocates a 32KB buffer in Bank 0 for advanced graphical effects and customizations.