05cf036201
This only works with movies loaded from files (e.g. not newly created movies or movies downloaded via HTTP).
9579 lines
198 KiB
Text
9579 lines
198 KiB
Text
#LyX 2.3 created this file. For more info see http://www.lyx.org/
|
|
\lyxformat 544
|
|
\begin_document
|
|
\begin_header
|
|
\save_transient_properties true
|
|
\origin unavailable
|
|
\textclass article
|
|
\use_default_options true
|
|
\maintain_unincluded_children false
|
|
\language english
|
|
\language_package default
|
|
\inputencoding auto
|
|
\fontencoding global
|
|
\font_roman "default" "default"
|
|
\font_sans "default" "default"
|
|
\font_typewriter "default" "default"
|
|
\font_math "auto" "auto"
|
|
\font_default_family default
|
|
\use_non_tex_fonts false
|
|
\font_sc false
|
|
\font_osf false
|
|
\font_sf_scale 100 100
|
|
\font_tt_scale 100 100
|
|
\use_microtype false
|
|
\use_dash_ligatures true
|
|
\graphics default
|
|
\default_output_format default
|
|
\output_sync 0
|
|
\bibtex_command default
|
|
\index_command default
|
|
\paperfontsize default
|
|
\spacing single
|
|
\use_hyperref true
|
|
\pdf_bookmarks true
|
|
\pdf_bookmarksnumbered false
|
|
\pdf_bookmarksopen false
|
|
\pdf_bookmarksopenlevel 1
|
|
\pdf_breaklinks false
|
|
\pdf_pdfborder false
|
|
\pdf_colorlinks false
|
|
\pdf_backref false
|
|
\pdf_pdfusetitle true
|
|
\papersize a4paper
|
|
\use_geometry true
|
|
\use_package amsmath 1
|
|
\use_package amssymb 1
|
|
\use_package cancel 1
|
|
\use_package esint 1
|
|
\use_package mathdots 1
|
|
\use_package mathtools 1
|
|
\use_package mhchem 1
|
|
\use_package stackrel 1
|
|
\use_package stmaryrd 1
|
|
\use_package undertilde 1
|
|
\cite_engine basic
|
|
\cite_engine_type default
|
|
\biblio_style plain
|
|
\use_bibtopic false
|
|
\use_indices false
|
|
\paperorientation portrait
|
|
\suppress_date false
|
|
\justification true
|
|
\use_refstyle 1
|
|
\use_minted 0
|
|
\index Hakusana
|
|
\shortcut idx
|
|
\color #008000
|
|
\end_index
|
|
\leftmargin 2cm
|
|
\topmargin 2cm
|
|
\rightmargin 1cm
|
|
\bottommargin 2cm
|
|
\headheight 1cm
|
|
\headsep 1cm
|
|
\footskip 1cm
|
|
\secnumdepth 3
|
|
\tocdepth 3
|
|
\paragraph_separation indent
|
|
\paragraph_indentation default
|
|
\is_math_indent 0
|
|
\math_numbering_side default
|
|
\quotes_style english
|
|
\dynamic_quotes 0
|
|
\papercolumns 1
|
|
\papersides 1
|
|
\paperpagestyle default
|
|
\tracking_changes false
|
|
\output_changes false
|
|
\html_math_output 0
|
|
\html_css_as_file 0
|
|
\html_be_strict false
|
|
\end_header
|
|
|
|
\begin_body
|
|
|
|
\begin_layout Title
|
|
lsnes Lua functions reference
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table of contents
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset CommandInset toc
|
|
LatexCommand tableofcontents
|
|
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Conventions
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
Coordinates:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Coordinates increase to right and down.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The origin is at top left of game area or buffer.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
Drawing and contexts
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Methods that draw something (unless stated otherwise) require a valid rendering
|
|
context.
|
|
This context can come in three ways:
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Enumerate
|
|
The default rendering context of paint callback (the screen).
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
The default rendering context of video callback (the video).
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
Explicitly set rendering context (RENDERCTX:set).
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Itemize
|
|
The rendering context is always reset when callback ends.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
Colors
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
(Direct) colors can be specified either as numbers or strings.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
-1 is fully transparent.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Non-negative numbers less than
|
|
\begin_inset Formula $2^{32}$
|
|
\end_inset
|
|
|
|
are partially opaque colors (
|
|
\begin_inset Formula $a*2^{24}+r*2^{16}+g*2^{8}+b$
|
|
\end_inset
|
|
|
|
)
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
\begin_inset Formula $a$
|
|
\end_inset
|
|
|
|
is transparency
|
|
\begin_inset Formula $0-255$
|
|
\end_inset
|
|
|
|
,
|
|
\begin_inset Formula $0$
|
|
\end_inset
|
|
|
|
is fully opaque,
|
|
\begin_inset Formula $256$
|
|
\end_inset
|
|
|
|
would be fully transparent.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Thus, numbers in range
|
|
\begin_inset Formula $0-16777215$
|
|
\end_inset
|
|
|
|
stand for fully opaque colors.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Itemize
|
|
\begin_inset Formula $r$
|
|
\end_inset
|
|
|
|
,
|
|
\begin_inset Formula $g$
|
|
\end_inset
|
|
|
|
and
|
|
\begin_inset Formula $b$
|
|
\end_inset
|
|
|
|
are intensities of base colors on scale
|
|
\begin_inset Formula $0-255$
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Itemize
|
|
Color can also be specified by name as string: The following color names
|
|
are known: aliceblue antiquewhite antiquewhite1 antiquewhite2 antiquewhite3
|
|
antiquewhite4 aqua aquamarine aquamarine1 aquamarine2 aquamarine3 aquamarine4
|
|
azure azure1 azure2 azure3 azure4 beige bisque bisque1 bisque2 bisque3
|
|
bisque4 black blanchedalmond blue blue1 blue2 blue3 blue4 blueviolet brown
|
|
brown1 brown2 brown3 brown4 burlywood burlywood1 burlywood2 burlywood3
|
|
burlywood4 cadet cadetblue cadetblue1 cadetblue2 cadetblue3 cadetblue4
|
|
chartreuse chartreuse1 chartreuse2 chartreuse3 chartreuse4 chocolate chocolate1
|
|
chocolate2 chocolate3 chocolate4 coral coral1 coral2 coral3 coral4 cornflowerbl
|
|
ue cornsilk cornsilk1 cornsilk2 cornsilk3 cornsilk4 crimson cyan cyan1 cyan2
|
|
cyan3 cyan4 darkblue darkcyan darkgoldenrod darkgoldenrod1 darkgoldenrod2
|
|
darkgoldenrod3 darkgoldenrod4 darkgray darkgreen darkgrey darkkhaki darkmagenta
|
|
darkolivegreen darkolivegreen1 darkolivegreen2 darkolivegreen3 darkolivegreen4
|
|
darkorange darkorange1 darkorange2 darkorange3 darkorange4 darkorchid darkorchi
|
|
d1 darkorchid2 darkorchid3 darkorchid4 darkred darksalmon darkseagreen darkseagr
|
|
een1 darkseagreen2 darkseagreen3 darkseagreen4 darkslateblue darkslategray
|
|
darkslategray1 darkslategray2 darkslategray3 darkslategray4 darkslategrey
|
|
darkturquoise darkviolet deeppink deeppink1 deeppink2 deeppink3 deeppink4
|
|
deepskyblue deepskyblue1 deepskyblue2 deepskyblue3 deepskyblue4 dimgray
|
|
dimgrey dodgerblue dodgerblue1 dodgerblue2 dodgerblue3 dodgerblue4 firebrick
|
|
firebrick1 firebrick2 firebrick3 firebrick4 floralwhite forestgreen fractal
|
|
fuchsia gainsboro ghostwhite gold gold1 gold2 gold3 gold4 goldenrod goldenrod1
|
|
goldenrod2 goldenrod3 goldenrod4 gray gray0 gray1 gray10 gray100 gray11
|
|
gray12 gray13 gray14 gray15 gray16 gray17 gray18 gray19 gray2 gray20 gray21
|
|
gray22 gray23 gray24 gray25 gray26 gray27 gray28 gray29 gray3 gray30 gray31
|
|
gray32 gray33 gray34 gray35 gray36 gray37 gray38 gray39 gray4 gray40 gray41
|
|
gray42 gray43 gray44 gray45 gray46 gray47 gray48 gray49 gray5 gray50 gray51
|
|
gray52 gray53 gray54 gray55 gray56 gray57 gray58 gray59 gray6 gray60 gray61
|
|
gray62 gray63 gray64 gray65 gray66 gray67 gray68 gray69 gray7 gray70 gray71
|
|
gray72 gray73 gray74 gray75 gray76 gray77 gray78 gray79 gray8 gray80 gray81
|
|
gray82 gray83 gray84 gray85 gray86 gray87 gray88 gray89 gray9 gray90 gray91
|
|
gray92 gray93 gray94 gray95 gray96 gray97 gray98 gray99 green green1 green2
|
|
green3 green4 greenyellow grey grey0 grey1 grey10 grey100 grey11 grey12
|
|
grey13 grey14 grey15 grey16 grey17 grey18 grey19 grey2 grey20 grey21 grey22
|
|
grey23 grey24 grey25 grey26 grey27 grey28 grey29 grey3 grey30 grey31 grey32
|
|
grey33 grey34 grey35 grey36 grey37 grey38 grey39 grey4 grey40 grey41 grey42
|
|
grey43 grey44 grey45 grey46 grey47 grey48 grey49 grey5 grey50 grey51 grey52
|
|
grey53 grey54 grey55 grey56 grey57 grey58 grey59 grey6 grey60 grey61 grey62
|
|
grey63 grey64 grey65 grey66 grey67 grey68 grey69 grey7 grey70 grey71 grey72
|
|
grey73 grey74 grey75 grey76 grey77 grey78 grey79 grey8 grey80 grey81 grey82
|
|
grey83 grey84 grey85 grey86 grey87 grey88 grey89 grey9 grey90 grey91 grey92
|
|
grey93 grey94 grey95 grey96 grey97 grey98 grey99 honeydew honeydew1 honeydew2
|
|
honeydew3 honeydew4 hotpink hotpink1 hotpink2 hotpink3 hotpink4 indianred
|
|
indianred1 indianred2 indianred3 indianred4 indigo ivory ivory1 ivory2
|
|
ivory3 ivory4 khaki khaki1 khaki2 khaki3 khaki4 lavender lavenderblush
|
|
lavenderblush1 lavenderblush2 lavenderblush3 lavenderblush4 lawngreen lemonchif
|
|
fon lemonchiffon1 lemonchiffon2 lemonchiffon3 lemonchiffon4 lightblue lightblue1
|
|
lightblue2 lightblue3 lightblue4 lightcoral lightcyan lightcyan1 lightcyan2
|
|
lightcyan3 lightcyan4 lightgoldenrod lightgoldenrod1 lightgoldenrod2 lightgolde
|
|
nrod3 lightgoldenrod4 lightgoldenrodyellow lightgray lightgreen lightgrey
|
|
lightpink lightpink1 lightpink2 lightpink3 lightpink4 lightsalmon lightsalmon1
|
|
lightsalmon2 lightsalmon3 lightsalmon4 lightseagreen lightskyblue lightskyblue1
|
|
lightskyblue2 lightskyblue3 lightskyblue4 lightslateblue lightslategray
|
|
lightslategrey lightsteelblue lightsteelblue1 lightsteelblue2 lightsteelblue3
|
|
lightsteelblue4 lightyellow lightyellow1 lightyellow2 lightyellow3 lightyellow4
|
|
lime limegreen linen magenta magenta1 magenta2 magenta3 magenta4 maroon
|
|
maroon1 maroon2 maroon3 maroon4 mediumaquamarine mediumblue mediumforestgreen
|
|
mediumgoldenrod mediumorchid mediumorchid1 mediumorchid2 mediumorchid3
|
|
mediumorchid4 mediumpurple mediumpurple1 mediumpurple2 mediumpurple3 mediumpurp
|
|
le4 mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumviole
|
|
tred midnightblue mintcream mistyrose mistyrose1 mistyrose2 mistyrose3 mistyrose
|
|
4 moccasin navajowhite navajowhite1 navajowhite2 navajowhite3 navajowhite4
|
|
navy navyblue oldlace olive olivedrab olivedrab1 olivedrab2 olivedrab3
|
|
olivedrab4 orange orange1 orange2 orange3 orange4 orangered orangered1
|
|
orangered2 orangered3 orangered4 orchid orchid1 orchid2 orchid3 orchid4
|
|
palegoldenrod palegreen palegreen1 palegreen2 palegreen3 palegreen4 paleturquoi
|
|
se paleturquoise1 paleturquoise2 paleturquoise3 paleturquoise4 palevioletred
|
|
palevioletred1 palevioletred2 palevioletred3 palevioletred4 papayawhip
|
|
peachpuff peachpuff1 peachpuff2 peachpuff3 peachpuff4 peru pink pink1 pink2
|
|
pink3 pink4 plum plum1 plum2 plum3 plum4 powderblue purple purple1 purple2
|
|
purple3 purple4 red red1 red2 red3 red4 rosybrown rosybrown1 rosybrown2
|
|
rosybrown3 rosybrown4 royalblue royalblue1 royalblue2 royalblue3 royalblue4
|
|
saddlebrown salmon salmon1 salmon2 salmon3 salmon4 sandybrown seagreen
|
|
seagreen1 seagreen2 seagreen3 seagreen4 seashell seashell1 seashell2 seashell3
|
|
seashell4 sienna sienna1 sienna2 sienna3 sienna4 silver skyblue skyblue1
|
|
skyblue2 skyblue3 skyblue4 slateblue slateblue1 slateblue2 slateblue3 slateblue
|
|
4 slategray slategray1 slategray2 slategray3 slategray4 slategrey snow snow1
|
|
snow2 snow3 snow4 springgreen springgreen1 springgreen2 springgreen3 springgree
|
|
n4 steelblue steelblue1 steelblue2 steelblue3 steelblue4 tan tan1 tan2 tan3
|
|
tan4 teal thistle thistle1 thistle2 thistle3 thistle4 tomato tomato1 tomato2
|
|
tomato3 tomato4 transparent turquoise turquoise1 turquoise2 turquoise3
|
|
turquoise4 violet violetred violetred1 violetred2 violetred3 violetred4
|
|
wheat wheat1 wheat2 wheat3 wheat4 white whitesmoke yellow yellow1 yellow2
|
|
yellow3 yellow4 yellowgreen
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The HSL base color names: hsl-<hue><saturation><lightness>.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Hue can be one of: r (red), ry (red-yellow), o (orange, same as red-yellow),
|
|
y (yellow), yg (yellow-green), g (green), gc (green-cyan), c (cyan), cb
|
|
(cyan-blue), b (blue), bm (blue-magenta), m (magenta), mr (magenta-red).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Saturation is 0-8, where 0 is greyscale and 8 is fully saturated.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Lightness is 0-8, where 0 is black and 8 is white.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Itemize
|
|
The color names can have a modifier after space (multiple modifiers are
|
|
allowed, separated by spaces): opaque10, opaque20, opaque25, opaque30,
|
|
opaque40, opaque50, opaque60, opaque70, opaque75, opaque80, opaque90, opaque,
|
|
hue{+,-}{1-23}, {saturation,lightness}{+,-}{1-16}.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
opaqueness is measured as percentage.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Hue adjustments are on 24-step scale.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Saturation and lightness adjustments are on 16-step scale.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Section
|
|
Special tokens
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
These tokens are special, and are expanded while the script is being loaded
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
@@LUA_SCRIPT_FILENAME@@
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Expanded to string token containing path and filename of this Lua script.
|
|
Handy for referencing other lua scripts or resources that are relative
|
|
to this Lua script.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
In practicular, this is suitable to be passed as base argument of various
|
|
functions like loadfile, dofile, resolve_filename, gui.bitmap_load, gui.bitmap_lo
|
|
ad_png and gui.bitmap_load_pal.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Classes
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
MMAP_STRUCT: Quasi-table mapping emulated memory
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Objects act like tables, but the values reflect emulated memory.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
static function new: Create a new instance
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: mmap memory.mmap.new()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: mmap classes.MMAP_STRUCT.new()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
mmap: MMAP_STRUCT: The created mmap structure.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new object (with no mappings) and return it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
operator(): Bind key in mmap structure
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: obj(key, {marea, address|addrobj}, type)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
obj: MMAP_STRUCT: The structure to manipulate.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
key: String: The name of the key in array to map.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
marea: String: The memory area the mapped address is in (default: global
|
|
memory space).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
address: Number: The offset of memory addreess, relative to specified memory
|
|
area or global memory space.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addrobj: ADDRESS: The memory address.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
type: String: The type of data to map.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
One of: byte, sbyte, word, sword, hword, shword, dword, sdword, qword, sqword,
|
|
float or double.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Bind key <key> in mmap structure <obj> to address <address> (relative to
|
|
<marea>).
|
|
The memory address is treated as type <type>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Example: foomap(
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
bar
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
,
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
WRAM
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
, 0x2A,
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
sword
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
This binds signed word at address WRAM+0x2A into key
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
bar
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
ZIPWRITER: Write .zip files
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
This class does writing of .zip files.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create a new zipfile
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: zip zip.writer.new(filename, [compression])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: zip zip.create(filename, [compression])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
filename: string: The name of the file to write.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
compression: number: Compression level (0-9).
|
|
Default is 9.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
zip: ZIPWRITER: The newly created ZIP writer.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new ZIPWRITER object and return it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method commit: Finish creating ZIP file.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: zipfile:commit()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
zipfile: ZIPFILE: The ZIP file object.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Finish writing the ZIP file and actually create it on disk.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If a member is currently open, it is implicitly closed.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Invoking this on already committed or rolled back zipfile causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method rollback: Cancel writing the ZIP file.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: zipfile:rollback()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
zipfile: ZIPFILE: The ZIP file object.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Cancel writing the whole ZIP file.
|
|
The file on disk will not be modified.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If a member is currently open, it is implicitly closed.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Invoking this on already committed or rolled back zipfile causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method create_file: Start writing a new member
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: zipfile:create_file(filename)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
zipfile: ZIPFILE: The ZIP file object.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
string filename: Name of the new member to create
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Start writing a new member <filename> in ZIP file.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If a member is currently open, it is implicitly closed.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Invoking this on already committed or rolled back zipfile causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method close_file: Close member
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: zipfile:close_file()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
zipfile: ZIPFILE: The ZIP file object.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Close the currently open member in zipfile.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Invoking this on already committed or rolled back zipfile causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Invoking this without an open member causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method write: Write data
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: zipfile:write(data)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
zipfile: ZIPFILE: The ZIP file object.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
data: string: The data to write.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write <data> in binary mode (as-is) to currently open member.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Invoking this without a member being open causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
TILEMAP: Tiled collection of bitmaps.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
A tilemap is tiled table, each cell holding a bitmap (indexed or direct).
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create a tilemap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tilemap gui.tiled_bitmap.new(w, h, bw, bh);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tilemap classes.TILEMAP.new(w, h, bw, bh);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: tilemap gui.tilemap(w, h, bw, bh);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: Width of the tilemap in tiles
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: Height of the tilemap in tiles
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bw: number: Width of each tile in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bh: number: Height of each tile in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tilemap: TILEMAP: the newly created tilemap
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new tilemap of <w>*<h> tiles, each of <bw>*<bh> pixels and return
|
|
it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:getsize: Query tilemap size
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: width, height tmap:getsize()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tmap: TILEMAP: The tilemap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: number : The width of the tilemap in tiles.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: number: The height of the tilemap in tiles.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get size of tilemap in tiles.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:getcsize: Query tilemap cell size
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: width, height tmap:getcsize()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tmap: TILEMAP: The tilemap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: number: The width of tilemap tile in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: number: The height of tilemap tile in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get size of each tilemap tile in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:get: Query tilemap tile
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette tmap:get(x, y)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tmap: TILEMAP: The tilemap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: The x-coordinate of tile to query.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: The y-coordinate of tile to query.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: The associated bitmap (BITMAP or DBITMAP), or nil if none.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: The palette (PALETTE) associated with indexed-color bitmap, if
|
|
any.
|
|
Otherwise nil.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return the contents of tile at <x>,<y>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:set: Set tilemap cell
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tmap:set(x, y)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tmap:set(x, y, bitmap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tmap:set(x, y, bitmap, palette)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tmap: TILEMAP: The tilemap to manipulate.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
number x: The x-coordinate of tile to set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
number y: The y-coordinate of tile to set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP/DBITMAP: The bitmap to set to tile.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The associated palette for bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the contents of tile <x>,<y>.
|
|
If no <bitmap> is given, clears the tile.
|
|
Otherwise sets the tile to contain bitmap <bitmap> with associated palette
|
|
<palette>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Specifying index bitmap <bitmap> without palette <palette> causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:scroll: Scroll tilemap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tmap:scroll(ox, oy);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tmap:scroll(ox, oy, x, y, w, h);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: tmap:scroll(ox, oy, x, y, w, h, circ_x, circ_y);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tmap: TILEMAP: The tilemap to manipulate.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
ox: number: The number of tiles to scroll horizontally (positive is to right).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
oy: number: The number of tiles to scroll vertically (positive is to down).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: The left edge of scroll window.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: The top edge of scroll window.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of scroll window.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of scroll window.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
circ_x: boolean: If true, treat the window as circular in horizontal direction.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
circ_y: boolean: If true, treat the window as circular in vertical direction.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Scroll the specified tilemap <tmap> by <ox>,<oy>.
|
|
If a window <x>,<y>,<w>,<h> is specified, only that part is scrolled.
|
|
<circ_x> and <circ_y> control if scroll is circular or not.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Specifying out-of-range window causes an error.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:draw: Draw tilemap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Name: tmap:draw(x, y)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Name: tmap:draw(x, y, x0, y0, w, h)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
tmap: TILEMAP: The tilemap to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: The x coordinate on screen to draw to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: The y coordinate on screen to draw to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x0: number: The x coordinate on tilemap (in pixels) to start drawing from.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y0: number: The y coordinate on tilemap (in pixels) to start drawing from.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width to draw (in pixels).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height to draw (in pixels).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw tilemap <tmap> to screen at <x>,<y>.
|
|
If a window <x0>,<y0>,<w>,<h> is specified, only that part is drawn.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
This method requires a rendering context to work.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
TILEMAP:draw_outside: Draw tilemap outside game area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Name: tmap:draw_outside(x, y)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Name: tmap:draw_outside(x, y, x0, y0, w, h)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like TILEMAP:draw, but draws only outside game area.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
RENDERCTX: Off-screen rendering context
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Object acting as off-screen rendering context.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create a render queue
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: renderctx gui.renderctx.new(width, height);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: renderctx classes.RENDERCTX.new(width, height);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: renderctx gui.renderq_new(width, height);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: number: The notional width of the game area.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: number: The notional height of the game area.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
rendectx: RENDERCTX: The newly created render context.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a render context with reported size <width>*<height> and return it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function setnull: Reset to default queue
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: gui.renderctx.setnull()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: classes.RENDERCTX:setnull()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.renderq_set()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Reset the used render context back to default for the executing callback:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The default for paint callback is the screen
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The default for video callback is the video frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The default otherwise is nothing.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method clear: Clear a render queue
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: renderctx:clear()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.renderq_clear(renderctx)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
renderctx: RENDERCTX: The render queue to clear.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Clear all drawing from the context.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method set: Change active render context
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: renderctx:set()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.renderq_set(renderctx)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
renderctx: RENDERCTX: The render queue to use.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Switch the current rendering context <renderctx>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method run: Draw all objects in context to another
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: renderctx:run()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.renderq_run(renderctx)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
renderctx: RENDERCTX: The render context to overlay.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Overlay the specified render context <context> upon the active rendering
|
|
context.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Trying to overlay rendering context upon itself is a bad idea.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method render: Render a contex to bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap renderctx:render()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
renderctx: RENDERCTX: The context to render.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The rendered bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Render the specified context <renderctx> to a new bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The size of bitmap will be nominal game area size, plus any set gaps.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
This method does not require active rendering context.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method synchronous_repaint: Paint screen now
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: renderctx:synchronous_repaint()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.synchronous_repaint(renderctx)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
renderctx: RENDERCTX: The context to paint.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Immediately redraw the screen with game overlayed by drawings from context
|
|
<renderctx>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
This does not require active rendering context.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Will not cause paint callback to be invoked.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
PALETTE: Color palette for indexed image
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create a new palette
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette gui.palette.new()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette classes.PALETTE.new()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: palette gui.palette_new()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The created palette.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new palette (with all colors transparent) and return it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function load: Load a palette
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette gui.palette.load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette classes.PALETTE.load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: palette gui.palette_load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
string file: The file to load.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
string base (optional): The base file to resolve file relative to.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The loaded palette.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Load a palette from file <file> (resolved relative to <base>).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The file format is a series of lines, each with following format:
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Blank or just whitespace: Ignored
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
First non-whitespace is '#': Ignored
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<r> <g> <b>: Fully opaque color with specified RGB values (0-255)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<r> <g> <b> <a>: Color with specified RGB values (0-255) and specified alpha
|
|
(0-256, 0 being fully transparent and 256 fully opaque).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
transparent: Fully transparent color
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Subsubsection
|
|
Static function load_str: Load a palette from string
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette gui.palette.load(data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette classes.PALETTE.load(data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: palette gui.palette_load(data)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
string data: The palette data.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The loaded palette.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like PALETTE:load, but instead of reading palette from file, reads it from
|
|
a string.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method set: Set palette entry
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette:set(index, color)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.palette_set(palette, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The palette to manipulate
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
index: number: The index of color to set (0-65535).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: number/string: The color value to set.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set palette <palette> index <index> to color <color>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method get: Get palette entry
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number palette:get(index)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The palette to query
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
index: number: The index of color to get (0-65535).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The palette entry as integer.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get palette entry <index> of palette <palette> and return it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method hash: Hash a palette
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: hash palette:hash()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: hash gui.palette_hash(palette)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: The palette to hash.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hash: string: 64-hex digit hash.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Obtain crypto-grade hash of palette data of <palette>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
All colors after the last non-transparent one are ignored.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method adjust_transparency: Adjust transparency
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: palette:adjust_transparency(newvalue)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.adjust_transparency(palette, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The palette to adjust.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Number adj: The factor to multiply opaqueness with times 256.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Multiply opaqueness of all colors in palette <palette> by factor of <adj>/256.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
BITMAP: Indexed-color bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create a new bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap gui.bitmap.new(w, h, [fillcolor])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap classes.BITMAP.new(w, h, [fillcolor])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: bitmap gui.bitmap_new(w, h, false, [fillcolor])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of bitmap to create in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of bitmap to create in pixels.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
false: boolean: Constant boolean false.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fillcolor: number: The initial fill index.
|
|
Default 0 if not specified.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new bitmap of size <w>*<h>.
|
|
Fill the bitmap with color index <fillcolor>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw: Draw a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:draw(x, y, palette)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_draw(x, y, bitmap, palette)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to draw
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: The x-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: The y-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: The palette to use for drawing.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw bitmap <bitmap> on screen at <x>,<y> with palette <palette>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw_outside: Draw a bitmap outside game area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:draw_outside(x, y, palette)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bitmap:draw, but does not draw on game area.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw_clip: Draw a bitmap, with clipping
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:draw_clip(x, y, palette, x0, y0, width, height)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to draw
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: The x-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: The y-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: The palette to use for drawing.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x0: The smallest bitmap x coordinate to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y0: The smallest bitmap y coordinate to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: Width of region to draw
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: Height of region to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bitmap:draw, but clip the bitmap area drawn.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw_clip_outside: Draw a bitmap outside game are, with clipping
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:draw_clip_outside(x, y, palette, x0, y0, width, height)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bitmap:draw_clip, but only draw outside game area.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method pset: Set pixel in bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:pset(x, y, color)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecaed: gui.bitmap_pset(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to manipulate.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: x-coordinate of pixel to set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: y-coordinate of pixel to set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: number: The color index to set.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Sets specified pixel <x>,<y> in bitmap <bitmap> to color index <color>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method pget: Get pixel in bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: color bitmap:pget(x,y)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: color gui.bitmap_pget(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: x-coordinate of pixel to get.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: y-coordinate of pixel to get.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: number: The color index in specified pixel.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Gets color index of specified pixel <x>,<y> in bitmap <bitmap>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method size: Get size of bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: width, height bitmap:size()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: width, height gui.bitmap_size(bitmap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: number: The width of the bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: number: The height of the bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get size of bitmap <bitmap>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit: Blit a bitmap into another
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit(dx, dy, src, sx, sy, w, h, [ck])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: BITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
ck: number: The color key.
|
|
Pixels with this index are not copied.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
If none is specified, all pixels are copied.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Copy region of size <w>*<h> at <sx>,<sy> in bitmap <src> into <dest> at
|
|
<dx>,<dy>.
|
|
If a color key <ck> is specified, pixels of that color are not copied.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_scaled: Blit a bitmap into another with scaling
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled(dx, dy, src, sx, sy, w, h, hscl, [vscl], [ck])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_scaled(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: BITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hscl: number: Horizontal scale factor (integer).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
vscl: number: Vertical scale factor (integer).
|
|
Defaults to the same as <hscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
ck: number: The color key.
|
|
Pixels with this index are not copied.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
If none is specified, all pixels are copied.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Like BITMAP:blit, but also scales the copied part of bitmap (using nearest
|
|
neighbor) by factor of <hscl>*<vscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_porterduff: Blit a bitmap into another with Porter-Duff composition
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_porterduff(dx, dy, src, sx, sy, w, h, operator)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_porterduff(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: BITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
operator: string: The operator to use.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Can be one of: Src, Atop, Over, In, Out, Dest, DestAtop, DestOver, DestIn,
|
|
DestOut, Clear or Xor.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Like BITMAP:blit, but instead of just overwriting, applies specified Porter-Duff
|
|
operator.
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Color index 0 in source and target is treated as background.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_scaled_porterduff: Blit a bitmap into another with scaling and
|
|
Porter-Duff composition
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled_porterduff(dx, dy, src, sx, sy, w, h, hscl, [vscl],
|
|
operator)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_scaled_porterduff(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: BITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hscl: number: Horizontal scale factor (integer).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
vscl: number: Vertical scale factor (integer).
|
|
Defaults to the same as <hscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
operator: string: The operator to use.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Can be one of: Src, Atop, Over, In, Out, Dest, DestAtop, DestOver, DestIn,
|
|
DestOut, Clear or Xor.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Like BITMAP:blit_porterduff, but also scales the source by <hscl>*<vscl>
|
|
like BITMAP:blit_scaled.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_priority: Blit a bitmap into another with color priority
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_priority(dx, dy, src, sx, sy, w, h)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_priority(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: BITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like BITMAP:blit, but only copy pixels where source color index is greater
|
|
than destination color index.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_scaled_priority: Blit a bitmap into another with color priority
|
|
and scaling
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled_priority(dx, dy, src, sx, sy, w, h, hscl, [vscl])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_scaled_priority(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: BITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hscl: number: Horizontal scale factor (integer).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
vscl: number: Vertical scale factor (integer).
|
|
Defaults to the same as <hscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like BITMAP:blit_priority, but apply scaling by <hscl>*<vscl> like BITMAP:blit_s
|
|
caled.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method save_png: Save a bitmap to PNG
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:save_png(filename, [base], palette)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: data bitmap:save_png(palette)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: ...
|
|
gui.bitmap_save_png(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to save.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
filename: string: The filename to save to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The base filename is resolved relative to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: The palette to use.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
data: string: BASE64 encoded PNG data.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Save bitmap <bitmap>, with palette <pal> into PNG file <filename> (relative
|
|
to <base>) or return BASE64 encoding of it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method hash: Hash a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: hash bitmap:hash()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: hash bitmap:hash(bitmap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP: The bitmap to hash.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hash: string: 64-hex digit hash
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Hashes bitmap <bitmap> and returns crypto-strong hash.
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Color order in bitmap is significant.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method sample_texture: Sample a texture
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bitmap:sample_texture(BITMAP source, number xx, number xy,
|
|
number x0, number yx, number yy, number y0, number scale, boolean wrap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
source: BITMAP: The bitmap to sample
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xx: number: s times the source x coefficient of target x axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xy: number: s times the source y coefficient of target x axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x0: number: s times the target x axis offset.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
yx: number: s times the source x coefficient of target y axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
yy: number: s times the source y coefficient of target y axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y0: number: s times the target y axis offset.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
s: number: Scale of coordinates
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
wrap: boolean: If true, wrap the texture.
|
|
If false, read outside the texture as color 0.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Samples the source as texture, performing linear transform (with nearest-neighbo
|
|
r sampling) and writes the result to this bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method hflip: Horizontally flip a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bitmap:hflip()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Horizontally flips a bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method vflip: Vertically flip a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bitmap:vflip()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Vertically flips a bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
DBITMAP: Direct-color bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function: new: Create a new bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap gui.dbitmap.new(w, h, [fillcolor])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap classes.DBITMAP.new(w, h, [fillcolor])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: bitmap gui.bitmap_new (w, h, true, [fillcolor]).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of new bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of new bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
true: boolean: Fixed boolean true
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fillcolor: The color to fill the bitmap with (default transparent).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The new bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new direct-color bitmap of size <w>*<h>, initially filled with
|
|
<fillcolor>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw: Draw a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap.draw(x, y)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_draw(x, y, bitmap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: X-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: Y-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw bitmap <bitmap> on screen at <x>,<y>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw_outside: Draw a bitmap outside game area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dbitmap:draw_outside(x, y, palette)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like dbitmap:draw, but does not draw on game area.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw_clip: Draw a bitmap, with clipping
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dbitmap:draw(x, y, palette, x0, y0, width, height)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to draw
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: The x-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: The y-coordinate on screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x0: The smallest bitmap x coordinate to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y0: The smallest bitmap y coordinate to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: Width of region to draw
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: Height of region to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like dbitmap:draw, but clip the bitmap area drawn.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method draw_clip_outside: Draw a bitmap outside game are, with clipping
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dbitmap:draw_clip_outside(x, y, palette, x0, y0, width, height)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like dbitmap:draw_clip, but only draw outside game area.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method pset: Set pixel in bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:pset(x, y, color)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecaed: gui.bitmap_pset(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to manipulate.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: x-coordinate of pixel to set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: y-coordinate of pixel to set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: number/string: The color to set.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Sets specified pixel <x>,<y> in bitmap <bitmap> to color <color>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method pget: Get pixel in bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: color bitmap:pget(x,y)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: color gui.bitmap_pget(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: x-coordinate of pixel to get.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: y-coordinate of pixel to get.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: number: The color of specified pixel.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Gets color index of specified pixel <x>,<y> in bitmap <bitmap>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method size: Get size of bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: width, height bitmap:size()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: width, height gui.bitmap_size(bitmap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to query.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: number: The width of the bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: number: The height of the bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get size of bitmap <bitmap>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit: Blit a bitmap into another
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit(dx, dy, src, sx, sy, w, h, [ck])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit(dx, dy, src, srcpal, sx, sy, w, h, [ck])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: DBITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP/DBITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
srcpal: PALETTE: If <src> is indexed, this is the palette for source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
ck: number: The color key.
|
|
Pixels with this index are not copied.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
If none is specified, all pixels are copied.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If <src> is paletted, this is color index, otherwise it is a color.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Copy region of size <w>*<h> at <sx>,<sy> in bitmap <src> (with palette <pal>
|
|
if indexed) into <dest> at <dx>,<dy>.
|
|
If a color key <ck> is specified, pixels of that color are not copied.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_scaled: Blit a bitmap into another with scaling
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled(dx, dy, src, sx, sy, w, h, hscl, [vscl], [ck])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled(dx, dy, src, srcpal, sx, sy, w, h, hscl, [vscl],
|
|
[ck])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_scaled(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: DBITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP/DBITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
srcpal: PALETTE: If <src> is indexed, this is the palette for source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hscl: number: Horizontal scale factor (integer).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
vscl: number: Vertical scale factor (integer).
|
|
Defaults to the same as <hscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
ck: number: The color key.
|
|
Pixels with this index are not copied.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
If none is specified, all pixels are copied.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If <src> is paletted, this is color index, otherwise it is a color.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Like DBITMAP:blit, but also scales the copied part of bitmap (using nearest
|
|
neighbor) by factor of <hscl>*<vscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_porterduff: Blit a bitmap into another with Porter-Duff composition
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_porterduff(dx, dy, src, sx, sy, w, h, operator)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_porterduff(dx, dy, src, srcpal, sx, sy, w, h, operator)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_porterduff(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: DBITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP/DBITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
srcpal: PALETTE: If <src> is indexed, this is the palette for source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
operator: string: The operator to use.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Can be one of: Src, Atop, Over, In, Out, Dest, DestAtop, DestOver, DestIn,
|
|
DestOut, Clear or Xor.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Like DBITMAP:blit, but instead of just overwriting, applies specified Porter-Duf
|
|
f operator.
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
In target, fully transparent is background.
|
|
In source, either fully transparent (if direct) or index 0 (if paletted)
|
|
is treated as background.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method blit_scaled_porterduff: Blit a bitmap into another with scaling and
|
|
Porter-Duff composition
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled_porterduff(dx, dy, src, sx, sy, w, h, hscl, [vscl],
|
|
operator)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: dest:blit_scaled_porterduff(dx, dy, src, srcpal, sx, sy, w, h, hscl,
|
|
[vscl], operator)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.bitmap_blit_scaled_porterduff(dest, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dest: DBITMAP: The target bitmap to blit to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dx: number: The x-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dy: number: The y-coordinate in target.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
src: BITMAP/DBITMAP: The source bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
srcpal: PALETTE: If <src> is indexed, this is the palette for source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sx: number: The x-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sy: number: The y-coordinate in source.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
w: number: The width of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
h: number: The height of area to blit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hscl: number: Horizontal scale factor (integer).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
vscl: number: Vertical scale factor (integer).
|
|
Defaults to the same as <hscl>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
operator: string: The operator to use.
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
Can be one of: Src, Atop, Over, In, Out, Dest, DestAtop, DestOver, DestIn,
|
|
DestOut, Clear or Xor.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Like DBITMAP:blit_porterduff, but also scales the source by <hscl>*<vscl>
|
|
like DBITMAP:blit_scaled.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method adjust_transparency: Adjust transparency of bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:adjust_transparency(newvalue)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: gui.adjust_transparency(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to adjust.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Number adj: The factor to multiply opaqueness with times 256.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Multiply opaqueness of all colors in bitmap <bitmap> by factor of <adj>/256.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method save_png: Save a bitmap to PNG
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap:save_png(filename, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: data bitmap:save_png()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: ...
|
|
gui.bitmap_save_png(bitmap, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to save.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
filename: string: The filename to save to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The base filename is resolved relative to.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
data: string: BASE64 encoded PNG data.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Save bitmap <bitmap> into PNG file <filename> (relative to <base>) or return
|
|
BASE64 encoding of it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method hash: Hash a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: hash bitmap:hash()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: hash bitmap:hash(bitmap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: DBITMAP: The bitmap to hash.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hash: string: 64-hex digit hash
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Hashes bitmap <bitmap> and returns crypto-strong hash.
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method sample_texture: Sample a texture
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bitmap:sample_texture(BITMAP source, number xx, number xy,
|
|
number x0, number yx, number yy, number y0, number scale, boolean wrap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
source: BITMAP: The bitmap to sample
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xx: number: s times the source x coefficient of target x axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xy: number: s times the source y coefficient of target x axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x0: number: s times the target x axis offset.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
yx: number: s times the source x coefficient of target y axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
yy: number: s times the source y coefficient of target y axis.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y0: number: s times the target y axis offset.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
s: number: Scale of coordinates
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
wrap: boolean: If true, wrap the texture.
|
|
If false, read outside the texture as color 0.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Samples the source as texture, performing linear transform (with nearest-neighbo
|
|
r sampling) and writes the result to this bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method hflip: Horizontally flip a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none dbitmap:hflip()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Horizontally flips a bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method vflip: Vertically flip a bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none dbitmap:vflip()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Vertically flips a bitmap.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
IMAGELOADER: Load an image
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function load: Load a bitmap from file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette gui.image.load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette classes.IMAGELOADER.load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: ...
|
|
gui.bitmap_load(...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
file: string: The file to read.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The base to resolve <file> relative to.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP/DBITMAP: The new bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: If bitmap is paletted, this is the palette, otherwise
|
|
nil.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Load a new bitmap and return it (plus associated palette if any).
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function load_str: Load a bitmap from string
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette gui.image.load_str(data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette classes.IMAGELOADER.load_str(data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: ...
|
|
gui.bitmap_load_str(...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
data: string: The image data
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP/DBITMAP: The new bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: If bitmap is paletted, this is the palette, otherwise
|
|
nil.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like IMAGELOADER:load, but read the bitmap from string <data> instead of
|
|
file.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function load_png: Load a bitmap from PNG file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette gui.image.load_png(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette classes.IMAGELOADER.load_png(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: ...
|
|
gui.bitmap_load_png(...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
file: string: The file to read.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The base to resolve <file> relative to.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP/DBITMAP: The new bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: If bitmap is paletted, this is the palette, otherwise
|
|
nil.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like IMAGELOADER:load, but load a PNG file instead.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function load_png_str: Load a PNG bitmap from string
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette gui.image.load_png_str(data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bitmap, palette classes.IMAGELOADER.load_png_str(data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: ...
|
|
gui.bitmap_load_png_str(...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
data: string: The image data, base64 encoded.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bitmap: BITMAP/DBITMAP: The new bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
palette: PALETTE: If bitmap is paletted, this is the palette, otherwise
|
|
nil.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like IMAGELOADER:load_png, but read the bitmap from BASE64 encoded string
|
|
<data> instead of file.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
CUSTOMFONT: Arbitrary-sized bitmap font
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Return a new empty font
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font gui.font.new()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font classes.CUSTOMFONT.new()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: font gui.font_new()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
font: CUSTOMFONT: New font.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a new font with no characters and return it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function: load: Load a font file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font gui.font.load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font gui.font.load()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font classes.CUSTOMFONT.load(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font classes.CUSTOMFONT.load()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: font gui.loadfont(...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
file: string: The file to read the font from
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The file to resolve <file> relative to.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
font: CUSTOMFONT: New font.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Load font from file <file> (relative to <base>).
|
|
If no filename is given, system default font is loaded.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
operator(): Render text to screen
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font(x, y, text, [fgc], [bgc], [hlc])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parmeters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
font: CUSTOMFONT: The font to use.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: number: The x-position on screen to draw to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: number: The y-position on screen to draw to.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
text: string: The text to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fgc: number/string: Foreground color (default white).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bgc: number/string: Background color (default transparent).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hlc: number/string: Outline color (default transparent).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draws a string <text> with specified font <font> and colors <fgc>,<bgc>,<hlc>
|
|
onto screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If <hlc> is transparent, no outline is drawn.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method edit: Alter glyph in font
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font:edit(string character, bitmap glyph)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
font: CUSTOMFONT: The font to edit.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
character: string: The character to edit (UTF-8 encoded).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
glyph: BITMAP: The bitmap to use.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Replace character <character> in font <font> by <glyph>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Color index 0 is background, everything else is foreground.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<character> may be empty string, meaning the replacement character used
|
|
for bad characters.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<character> may be multi-codepoint string, meaning character used for that
|
|
ligature.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method dump: Dump font into file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: font:dump(string filename[, string base])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
filename: string: The file to dump to
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The base filename
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Dump contents of <font> in file <filename> (resolved relative to <base>).
|
|
The dump is in format CUSTOMFONT:load() can load.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
ICONV: Character set conversions
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create new character set converter
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: iconv iconv.new(from, to);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: iconv classes.ICONV.new(from, to);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: iconv iconv_new(...);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
from: string: The source character set.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
to: string: The target character set.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
iconv: ICONV: The converter.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Create a character set converter, converting from <from> to <to> and return
|
|
it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Operator(): Convert string fragment from character set to another
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: success, result, unconverted, error iconv(input)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
iconv: ICONV: The context to use.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
input: string: The input to convert.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return value:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
success: boolean: True if conversion was successful, false if not.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
result: string: The string (partially) converted.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
unconvered: number: Number of bytes that were not converted (only if <success>
|
|
is false).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
error: string: Error that caused conversion to stop (only if <success> is
|
|
false).
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
INVALID: The input string is invalid.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
INCOMPLETE: The input string cuts off in middle of character.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
INTERNALERR: Internal error.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Standard
|
|
Convert a string <input> using character set converter <iconv> and return
|
|
the result.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
FILEREADER: Read a file as a stream
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function open: Open a stream
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: handle filereader.open(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: handle classes.FILEREADER.open(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Deprecated: handle open_file(file, [base])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
file: string: The filename to read.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
base: string: The base <file> is resolved against.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
handle: FILEREADER: The new file reader.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Open file <file> (relative to <base>) and return a handle to it.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
operator(): Read line/bytes from stream
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: result handle()
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: result handle(bytes)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
handle: FILEREADER: The handle to read from.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bytes: Number of bytes to read (default is next line).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
result: string: The read data, or nil on end-of-file.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Reads next line or <bytes> bytes from specified file handle <handle>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If reading specified number of bytes, the bytes are read in binary mode
|
|
(as-is).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If reading next line, the line is read in text mode (any line ending is
|
|
skpped).
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method lines: Iterator to read all lines
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: for line in handle:lines() do ...
|
|
end
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
handle: FILEREADER: The handle to read.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
A lua iterator with one variable.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return a Lua iterator that iterates all the lines in <handle>.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
COMPARE_OBJ: Watch memory area for changes
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Objects of this class allow fast checking for modifications to given memory
|
|
block.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create a checker
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: handle classes.COMPARE_OBJ.new({marea, offset|addrobj}, size, [rows,
|
|
stride])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: handle memory.compare_new({marea, offset|addrobj}, size, rows, stride)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
marea: string: The memory area to interpret <offset> against.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
offset: number: The initial offset in memory area.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addrobj: ADDRESS: The memory address.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
size: number: The number of bytes in each row.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
rows: number: The number of rows.
|
|
Default is 1.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
stride: number: The number of bytes offset increments from one row to next.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
A handle to object.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return an object watching specified memory area.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: For fastest operation, limit checks to inside one memory area (that
|
|
has to be mappable, individual RAM areas often are).
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
operator(): Check area for modifications
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean handle()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
True if memory block has been modified since last call (or object creation
|
|
if first call), false if not.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Check if the block has been modified.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
ADDRESS: Memory address
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Objects of this class contain a memory address.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Static function new: Create new memory address
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS classes.ADDRESS.new(string marea, number offset)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS memory.address.new(string marea, number offset)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS memory.mkaddr(string marea, number offset)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
marea: The memory area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
offset: The offset in memory area.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The memory area.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Construct a new memory address object.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method: addr: Get global address
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number addr:addr()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addr: ADRESS: The original address.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The global address corresponding to this address.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method: vma: Get memory area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string addr:vma()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addr: ADRESS: The original address.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The memory area corresponding to this address.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method: offset: Get memory area offset
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string addr:offset()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addr: ADRESS: The original address.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The offset in memory area corresponding to this address.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method: replace: Replace address part
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS addr:replace(offset[, bits])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addr: ADRESS: The original address.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
offset: number: The new offset
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bits: number: The number of LSB to replace.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The modified address
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns a new address, with <bits> (all if missing) least significant bits
|
|
of <addr> replaced by LSB of <offset>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsubsection
|
|
Method: add: Add to address
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS addr:add(offset)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS addr:add(number, stride)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: ADDRESS addr:add(number, stride, offset)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addr: ADRESS: The original address.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
offset: number: Offset to add.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
number: number: Number of table strides to add.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
stride: number: The table stride.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The modified address
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Adds <offset>, <number>*<stride> or <number>*<stride>+<offset> into specified
|
|
address <addr>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
ADDRESS:<op>: Read/Write memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none addr:<op>(value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number addr:<op>()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
addr: ADDRESS: The address to read/write.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
value: number: The number to write.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The value read.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read/Write value from/to given address <addr>.
|
|
The value written is <value>.
|
|
<Op> is of form: [i][s]<type>, where:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<type> is one of 'byte', 'word', 'hword', 'dword', 'qword', 'float', 'double'.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
'i' signifies that the value is treated as opposite-to-normal endianess,
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
's' signifies that value is treated as signed (not available for floating-point).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Global
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
print: Print values to console
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none print(value...
|
|
values)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Prints specified values to console.
|
|
Can print any Lua type at least enough to identify the type and instance.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
tostringx: Format a value to string
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string tostringx(value val)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Formats value <val> like print would, and returns the result as a string.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
exec: Execute lsnes commands
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none exec(string cmd)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Execute lsnes command <cmd>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
utime: Get current time
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number,number) utime()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns two numbers.
|
|
First is time since some epoch in seconds, the second is microseconds mod
|
|
10^6 since that epoch.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
set_idle_timeout: Run function after timeout when emulator is idle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none set_idle_timeout(number timeout)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set number of microseconds to block idle for.
|
|
After this timeout has expired, on_idle() will be called once.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
set_timer_timeout: Run function after timeout.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none set_timer_timeout(number timeout)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set number of microseconds to block timer for.
|
|
After this timeout has expired, on_timer() will be called once.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bus_address: Look up address in system bus.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bus_address(number bus_addr)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns virtual address corresponding to specified address on system bus.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
loopwrapper: Convert loop into callable function
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function loopwrapper(function fun, ...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Calls function <fun> with function and specified arguments.
|
|
The function passed suspends execution until the function returned is called.
|
|
Handy for linear flow control among multiple invocations of a hook.
|
|
Example code:
|
|
\end_layout
|
|
|
|
\begin_layout LyX-Code
|
|
on_paint = loopwrapper(function(wait)
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout LyX-Code
|
|
while true do
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout LyX-Code
|
|
gui.text(0, 0,
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
Test!
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
);
|
|
\end_layout
|
|
|
|
\begin_layout LyX-Code
|
|
wait();
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout LyX-Code
|
|
end
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout LyX-Code
|
|
end);
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
list_bindings: List keybindings
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table list_bindings([string cmd])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get table of all keybindings, indexed by keyspec (modifiers|mask/key).
|
|
If <cmd> is specified, the table is limited to that command.
|
|
Also searches for controller keys.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
get_alias: Get expansion of alias
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string get_alias(string aname)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get expansion of given alias <aname>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
set_alias: Set expansion of alias
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none set_alias(string aname, string value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set expansion of given alias.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
create_ibind: Create invese binding
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INVERSEBIND create_ibind(string name, string cmd)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return object representing inverse binding with specified name <name> and
|
|
specified command <cmd>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: To create press/release commands, use aliases +foo and -foo .
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: Keep the returned object around.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
create_command: Create a command
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: COMMANDBIND create_command(string name, function a)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: COMMANDBIND create_command(string name, function a, function b)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return object representing a command (pair).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If only one function is specied, the command is level-sensitive, <a> is
|
|
callback.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If <b> is function, the function is edge-sensitive, <a> is positive edge
|
|
callback and <b> is negative edge callback.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
All callbacks get single argument: The parameters passed.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Keep the returned object around.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
loadfile: Load Lua script
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function loadfile(string filename[, string base])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Load lua script from <filename>, resolved relative to <base> (if empty,
|
|
current directory).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
dofile: Execute Lua script
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function dofile(string filename[, string base])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Execute lua script from <filename>, resolved relative to <base> (if empty,
|
|
current directory) and return all return values.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
resolve_filename: Resolve name of file relative to another
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string resolve_filename(string filename[, string base])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Resolve name of file <filename> relative to <base> and return the result.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
render_queue_function: Return paint function for render queue
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function render_queue_function(RENDERQUEUE rq)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return function that renders render queue <rq>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Handy for paint callback if one is using render queues updated in other
|
|
callbacks.
|
|
As in:
|
|
\end_layout
|
|
|
|
\begin_layout LyX-Code
|
|
handle = callback.paint:register(render_queue_function(my_rq));
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
get_directory_contents: Get files in directory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table get_directory_contents(string name[, string base[, string
|
|
pattern]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return array containg all files in specified directory <name> (relative
|
|
to <base>).
|
|
If <pattern> is specified, the filenames are matched to specified regex.
|
|
The returned filenames inherit path.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
get_file_type: Get type of file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string/nil get_file_type(string path)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return type of file <path>.
|
|
Currently possible return values are:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
regular: regular file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
directory: subdirectory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
unknown: Exists, but type not known (not anything above).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<nil>: File does not exist.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
identify_class: Identify class of object
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string identify_class(userdata object)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Identifies the class of userdata <object>, if possible.
|
|
If no identification is possible, returns
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
unknown
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
lookup_class: Lookup class by name
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: classobj lookup_class(string name)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Looks up class corresponding to <name>, if possible.
|
|
If not found, returns nil.
|
|
The classobj has following fields:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
_static_methods: Return static method names
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
_class_methods: Return class method names
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<static-function-name>: The specified static function.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
all_classes: Get list of all classes
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string...
|
|
all_classes()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get names of all classes available.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
lsnes_features: Read feature flags
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean lsnes_features(string feature)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Checks if feature <feature> is available, if it is, returns true, otherwise
|
|
returns false.
|
|
The following features are known:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
text-halos: gui.text supports halos (takes halo color argument).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
icnov: Class ICONV
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class ICONV.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
filereader: Class FILEREADER
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class FILEREADER.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table bit:
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Bitwise logical functions and related.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.none/bit.bnot: Bitwise none or NOT function
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.none(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.bnot(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
48-bit bitwise NOT / NONE function (set bits that are set in none of the
|
|
arguments).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.any/bit.bor: Bitwise any or OR function
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.any(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.bor(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.all/bit.band: Bitwise all or AND function
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.all(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.band(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
|
|
).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.parity/bit.bxor: Bitwise parity or XOR function
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.parity(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.bxor(number...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
48-bit bitwise XOR / PARITY function (set bits that are set in odd number
|
|
of the arguments).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.lrotate: Rotate a number left
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.lrotate(number base[, number amount[, number bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Rotate <bits>-bit (max 48, default 48) number <base> left by <amount> (default
|
|
1) places.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.rrotate: Rotate a number right
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.rrotate(number base[, number amount[, number bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Rotate <bits>-bit (max 48, default 48) number <base> right by <amount> (default
|
|
1) places.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.lshift: Shift a number left
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.lshift(number base[, number amount[, number bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Shift <bits>-bit (max 48, default 48) number <base> left by <amount> (default
|
|
1) places.
|
|
The new bits are filled with zeroes.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.lrshift: Shift a number right (logical)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.lrshift(number base[, number amount[, number bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Shift <bits>-bit (max 48, default 48) number <base> logically right by <amount>
|
|
(default 1) places.
|
|
The new bits are filled with zeroes.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.arshift: Shift a number right (arithmetic)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.arshift(number base[, number amount[, number bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Shift <bits>-bit (max 48, default 48) number <base> logically right by <amount>
|
|
(default 1) places.
|
|
The new bits are shifted in with copy of the high bit.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.extract: Extract/shuffle bits from number
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.extract(number base[, number bit0[, number bit1,...]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns number that has bit0-th bit as bit 0, bit1-th bit as 1 and so on.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: Bit numbers up to 51 should work reliably (then things start falling
|
|
apart due to double precision issues).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: There are two special bit positions, true and false, standing for
|
|
always set bit and always clear bit.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.value: Construct number with specified bits set
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.value([number bit1[, number bit2,...]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns bitwise OR of 1 left shifted by <bit1> places, 1 left shifted by
|
|
<bit2> places and so on.
|
|
As special value, nil argument is no-op.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.test: Test if bit is set
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean bit.test(number a, number bit)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Tests if bit <bit> is set in <a>.
|
|
If it is set, returns true, otherwise false.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.testn: Test if bit is clear
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean bit.testn(number a, number bit)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Tests if bit <bit> is set in <a>.
|
|
If it is clear, returns true, otherwise false.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.test_any: Test if any bit is set
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean bit.test_any(number a, number b)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns true if bitwise and of <a> and <b> is nonzero, otherwise false.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.test_all: Test if all bits are set
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean bit.test_all(number a, number b)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns true if bitwise and of <a> and <b> equals <b>, otherwise false.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.popcount: Population count
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.popcount(number a)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns number of set bits in <a>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.clshift: Chained left shift
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number) bit.clshift(number a, number b, [number amount,[number
|
|
bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Does chained left shift on <a>, <b> by <amount> positions (default 1), assuming
|
|
numbers to be of specified number of bits <bits> (default 48).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.crshift: Chained right shift
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number) bit.crshift(number a, number b, [number amount,[number
|
|
bits]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Does chained right shift on <a>, <b> by <amount> positions (default 1),
|
|
assuming numbers to be of specified number of bits <bits> (default 48).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.flagdecode: Decode bitfield into flags
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string bit.flagdecode(number a, number bits, [string on, [string
|
|
off]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return string of length bits where ith character is ith character of on
|
|
if bit i is on, otherwise ith character of off.
|
|
Out of range reads give last character.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: <on> defaults to '*' if empty.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: <off> defaults to '-' if empty.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.rflagdecode: Decode bitfield into flags
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string bit.rflagdecode(number a, number bits, [string on, [string
|
|
off]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bit.flagdecode, but outputs the string in the opposite order (most significa
|
|
nt bit first).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.swap{,s}{,h,d,q}word: Swap word endian
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swaphword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapdword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapqword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapsword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapshword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapsdword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.swapsqword(number n)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Swap endianess of (un)signed integer <n>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.compose: Compose multi-byte number
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.compose(number n...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return
|
|
\begin_inset Formula $n_{1}+256n_{2}+256^{2}n_{3}+\ldots$
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.binary_ld_{{u,s}{8,16,24,32,64},float,double}{l,b}e: Load binary integer
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.binary_ld_<type>le(string str, number pos);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.binary_ld_<type>be(string str, number pos);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Load little (*le) or big (*be) endian binary number from position <pos>
|
|
of string <str>.
|
|
Type may be one of: u8, u16, u24, u32, u64, s8, s16, s24, s32, s64, float,
|
|
double.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.binary_st_{{u,s}{8,16,24,32,64},float,double}{l,b}e: Store binary integer
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string bit.binary_st_<type>le(number x);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string bit.binary_st_<type>be(number x);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Store specified number <x> as binary in string and return the result.
|
|
Type may be one of: u8, u16, u24, u32, u64, s8, s16, s24, s32, s64, float,
|
|
double.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.quotent: Integer quotent
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.quotent(number a, number b)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Calculate quotent a/b.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.multidiv: Divide and split among multiple divisiors
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number...
|
|
bit.multidiv(number v, number q...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Does the following steps:
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
Set v' to <v>.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
For each <q> q:
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Enumerate
|
|
Calculate quotent(v'/q) and add that to numbers returned.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
v' <- remainder(v'/q)
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Enumerate
|
|
Add v' to numbers returned.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
That is, it successively divides <v> by <q>s, and reduces <v> modulo <q>
|
|
at each step.
|
|
<v> may be floating point, <q>s are integers.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
E.g.
|
|
bit.multidiv(time, 3600, 60) splits time into hours, minutes and seconds.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
E.g.
|
|
bit.multidiv(a, b) calculates quotent and remainder of a/b.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.mul32: 32-bit multiply
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number, number bit.mul32(number a, number b)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Multiply 32-bit numbers <a> and <b>.
|
|
The first return value is low 32 bits of result, the second is high 32
|
|
bits.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.fextract: Extract bit field
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number bit.fextract(number value, number shift, number width)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Extract <width> bits starting from bit <shift> from number <value>.
|
|
This is more compact way to write
|
|
\begin_inset Formula $\left(value\gg shift\right)\&\left(2^{width}-1\right)$
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bit.bfields: Split number into bit fields
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number...
|
|
bit.bfields(number v, number q...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Split a number <v> into bitfields of <q> bits (in order, from least significant
|
|
towards more significant bits), with no padding in between.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Eg.
|
|
number of form 0 bbbbb ggggg rrrrr can be decoded to its component fields
|
|
using r,g,b = bit.bfields(v, 5, 5, 5).
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Eg.
|
|
number of form x yyyyyyy w zzzzzzz can be decode to its component fields
|
|
using z, w, y, x = bit.bfields(v, 7, 1, 7, 1).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table classes:
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
classes.<foo>: The classobj for class <foo>
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: classes.<foo>
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
The classobj for class <foo>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
classes.<foo>._static_methods: Enumerate static methods
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string...
|
|
classes.<foo>._static_methods()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns all static methods of <foo> as strings.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
classes.<foo>._class_methods: Enumerate static methods
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string...
|
|
classes.<foo>._class_methods()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns all class methods of <foo> as strings.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
classes.<foo>.<bar>: Static method
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: variable classes.<foo>.<bar>(variable...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Invokes static method <bar> of class <foo>.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table gui:
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.resolution: Get current resolution
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number) gui.resolution()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns 2-tuple (hresolution, vresolution).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.left_gap/gui.right_gap/gui.top_gap/gui.bottom_gap: Set edge gaps
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.left_gap(number gap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.right_gap(number gap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.top_gap(number gap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.bottom_gap(number gap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the specified edge gap to specified value <gap> (max gap is 8191).
|
|
If successful, old gap is returned.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.delta_left_gap/gui.delta_right_gap/gui.delta_top_gap/gui.delta_bottom_gap:
|
|
Adjust edge gaps
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.delta_left_gap(number dgap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.delta_right_gap(number dgap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.delta_top_gap(number dgap)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.delta_bottom_gap(number dgap)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Increase the specified edge gap by specified value <dgap> (max gap is 8191)
|
|
and return the old gap (returns nothing on error).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.text/gui.textH/gui.textV,gui.textHV: Draw text
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.text(number x, number y, string text[, number fgc[, number
|
|
bgc[, number hlc]]])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.textH(number x, number y, string text[, number fgc[, number
|
|
bgc[, number hlc]]])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.textV(number x, number y, string text[, number fgc[, number
|
|
bgc[, number hlc]]])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.textHV(number x, number y, string text[, number fgc[, number
|
|
bgc[, number hlc]]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw specified text on the GUI (each character cell is 8 or 16 wide and
|
|
16 high).
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate to start the drawing from (and x-coordinate at begining
|
|
of the lines).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate to start the drawing from.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
text: The text to draw.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fgc: Text color (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
bgc: Background color (default is -1 (transparent))
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hlc: Halo color (default is -1 (transparent))
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Note: The H variants draw at double width and V variants draw at double
|
|
height.
|
|
Halo thickness is always 1 and is not doubled.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.rectangle: Draw a rectangle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.rectangle(number x, number y, number width, number height[,
|
|
number thickness[, number outline[, number fill]]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw rectangle on the GUI.
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate of left edge.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate of upper edge.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: Width of rectangle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: Height of rectangle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
thickness: Thickness of outline (default is 1).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
outline: Color of outline (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fill: Color of fill (default is -1 (transparent))
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.solidrectangle: Draw a solid rectangle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.rectangle(number x, number y, number width, number height[,
|
|
number color])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw solid rectangle on the GUI.
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate of left edge.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate of upper edge.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: Width of rectangle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: Height of rectangle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: Color of rectangle (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.box: Draw a 3D-effect box
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.box(number x, number y, number width, number height[, number
|
|
thickness[, number outline1[,number outline2[, number fill]]]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw rectangle with 3D effect on the GUI.
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate of left edge.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate of upper edge.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
width: Width of rectangle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
height: Height of rectangle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
thickness: Thickness of outline (default is 1).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
outline1: First color of outline (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
outline2: First color of outline (default is 0x808080 (dark gray))
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fill: Color of fill (default is 0xC0C0C0 (light grayy))
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.pixel: Draw a single pixel
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.pixel(number x, number y[, number color])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw one pixel on the GUI.
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate of the pixel
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate of the pixel
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: Color of the pixel (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.crosshair: Draw a crosshair
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.crosshair(number x, number y[, number length[, number color]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw a crosshair.
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate of the crosshair
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate of the crosshair
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
length: Length of the crosshair lines (default 10).
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: Color of the crosshair (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.line: Draw a line
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.line(number x1, number y1, number x2, number y2[, number
|
|
color])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw a thin line.
|
|
Parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x1: X-coordinate of one end.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y1: Y-coordinate of one end.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x2: X-coordinate of the other end.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y2: Y-coordinate of the other end.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
color: Color of the line (default is 0xFFFFFF (white)).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.circle: Draw a (filled) circle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.circle(number x, number y, number r[, number thick[, number
|
|
border[, number fil]]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draw a circle.
|
|
Parameters.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
x: X-coordinate of the center
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
y: Y-coordinate of the center
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
r: The radius of the circle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
thick: Border thickness
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
border: Border color (default is 0xFFFFFF (white))
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fill: Fill color (default is -1 (transparent)).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.repaint: Arrange a repaint
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.repaint()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Request on_repaint() to happen as soon as possible.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.subframe_update: Enable/Disable subframe updates
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.subframe_update(boolean on)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Request subframe updates (calling on_paint() on subframes) to happen (<on>=true)
|
|
or not happen (<on>=false).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.screenshot: Write a screenshot
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.screenshot(string filename)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write PNG screenshot of the current frame (no drawings) to specified file
|
|
<filename>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.screenshot_bitmap: Write a screenshot to bitmap
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: DBITMAP gui.screenshot_bitmap()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write PNG screenshot of the current frame (no drawings) to dbitmap and return
|
|
the result.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.color: Compose a color.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.color(number r, number g, number b[, number a])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.color(string c)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns color (in notation Lua scripts use) corresponding to color (<r>,<g>,<b>)
|
|
, each component in scale 0-255.
|
|
If <a> is specified, that is alpha (0 is fully transparent, 256(sic) is
|
|
fully opaque).
|
|
The default alpha is 256.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
The form taking a string returns color corresponding color name.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.status: Set status variable
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.status(string name, string value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set status field
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
L[<name>]
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
to <value> in status area.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.rainbow: Rainbow color calculation
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number gui.rainbow(number step, number steps[, number color])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Perform hue rotation of color <color> (default bright red), by <step> steps.
|
|
The number of steps per full rotation is given by absolute value of <steps>.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
If <step> is negative, the rotation will be counterclockwise.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.kill_frame: Kill video frame and associated sound
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.kill_frame()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Kills the currently dumped video frame + the associated sound.
|
|
Only valid in on_video callback.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.set_video_scale: Set video frame scale
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.set_video_scale(number h, number v)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Sets the scale factors of current frame to <h>x<v>.
|
|
Only valid in on_video callback.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.arrow: Draw an arrow
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none gui.arrow(number x, number y, number length, number hwidth,
|
|
number direction[, bool fill[, number color[, number twidth[, number hthick]]]]
|
|
)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Draws an arrow using color <color>.
|
|
The tip of arrow is at (<x>, <y>).
|
|
Other parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
<length>: The length of arrow tail.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
<hwidth>: The width of arrow head.
|
|
Should be odd.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
<direction>: Direction of arrow.
|
|
0 is to right, +1 rotates 45 degrees counterclockwise.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
<fill>: If true, fill the arrow head.
|
|
Default false.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
<twidth>: Tail width.
|
|
Should be odd.
|
|
Default 1.
|
|
\end_layout
|
|
|
|
\begin_layout Enumerate
|
|
<hthick>: Head thickness (only used if <fill> is false).
|
|
Default is <twidth>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.tiled_bitmap: Class TILEMAP
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class TILEMAP.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.palette: Class PALETTE
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class PALETTE.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.bitmap: Class BITMAP
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class BITMAP.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.dbitmap: Class DBITMAP
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class DBITMAP.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.font: Class CUSTOMFONT
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class CUSTOMFONT.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.renderctx: Class RENDERCTX
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class RENDERCTX.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.image: Class IMAGELOADER
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class IMAGELOADER.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gui.get_runmode: Get current emulator mode
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string gui.get_runmode()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Gets the current emulator runmode.
|
|
The possible ones are:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
quit: Emulator is quitting.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
normal: Emulator is running emulation
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
load: Emulator is loading a movie/savestate
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
advance_frame: Emulator is doing frame advance
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
advance_subframe: Emulator is doing subframe advance
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
skiplag: Emulator is skipping lag frames
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
skiplag_pending: Emulator will start skipping lag frames next frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
pause: Emulator is paused
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
pause_break: Emulator is paused at breakpoint
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
corrupt: Emulator can't run because corrupt emulation state
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
unknown: Unknown state (should not happen).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
table input
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Input handling.
|
|
Functions manipulating input are only available in on_input callback.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.get: Read controller button/axis (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number input.get(number controller, number index)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read the specified index <index> (zero-based) from specified controller
|
|
<controller> (zero-based).
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.set: Write controller button/axis (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none input.set(number controller, number index, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write the specified index <index> (zero-based) from specified controller
|
|
<controller> (zero-based), storing value <value>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.get2: Read controller button/axis
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number input.get2(number port, number controller, number index)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read the specified input tuple.
|
|
Port 0 is system port.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.set2: Write controller button/axis
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: input.set2(number port, number controller, number index, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write the specified input tuple.
|
|
Port 0 is system port.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.lcid_to_pcid2: Look up logical controller
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number) input.lcid_to_pcid2(number lcid)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Look up physical pcid pair (port, controller) corresponding to specified
|
|
logical controller (1-based).
|
|
Returns nothing if controller does not exist.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.port_type: Look up port type
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string input.port_type(number port)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return type of specified port.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.controller_info: Get information about controller
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table input.controller_info(number port, number controller)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get controller info for specified controller.
|
|
If controller does not exist, returns nil.
|
|
Otherwise returns a table with following fields:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
type (string): Type of the controller.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
class (string): Class of the controller.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
classnum (number): Number of the controller within its class (1-based)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
lcid (number): Logical controller number of the controller.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
button_count (number): Number of buttons on controller
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
buttons (array): Array of following info about each button:
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
type (string): Type of button.
|
|
Currently one of
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
null
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
,
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
button
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
,
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
axis
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
,
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
raxis
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
name (string): Name of button.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
symbol (string): Symbol of button.
|
|
Only present for type
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
button
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hidden (boolean): True if hidden button.
|
|
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Subsection
|
|
input.veto_button: Veto a button press
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none input.veto_button()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Signals that the button event should be vetoed.
|
|
Only valid in on_button callback.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.geta: Get all buttons for controller (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number...) input.geta(number controller)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get input state for entiere controller.
|
|
Returns n return values.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
1st return value: Bitmask: bit i is set if i:th index is nonzero
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
2nd- return value: value of i:th index.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.seta: Set all buttons for controller (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none input.seta(number controller, number bitmask, number args...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set state for entiere controller.
|
|
args is up to N values for indices (overriding values in bitmask if specified).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.controllertype: Get controller type (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
syntax: string input.controllertype(number controller)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get the type of controller as string.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.reset: Execute (delayed) reset
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none input.reset([number cycles])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Execute reset.
|
|
If <cycles> is greater than zero, do delayed reset.
|
|
0 (or no value) causes immediate reset.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: Only available with subframe flag false.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.raw: Return raw input data
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table input.raw()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns table of tables of all available keys and axes.
|
|
The first table is indexed by key name (platform-dependent!), and the inner
|
|
table has the following fields:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
value: Last reported value for control
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
For keys: 1 for pressed, 0 for released.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
For axes: -32767...32767.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
For presure-sensitive buttons: 0...32767.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
For hats: Bitmask: 1=>Up, 2=>Right, 4=>Down, 8=>Left.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
For mouse: Coordinates relative to game area.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Itemize
|
|
ktype: Type of key (disabled, key, mouse, axis, hat, pressure).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.keyhook: Hook a key
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none input.keyhook(string key, boolean state)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Requests that keyhook events to be sent for key <key> (<state>=true) or
|
|
not sent (<state>=false).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.joyget: Get controls for controller
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table input.joyget(number logical)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns table for current controls for specified logical controller <logical>.
|
|
The names of fields vary by controller type.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The buttons have the same name as those are referred to in other contexts
|
|
in the emulator
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The analog axes are usually
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
xaxis
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
and
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
yaxis
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Each field is numeric or boolean depending on axis/button.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.joyset: Set controls for controller
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none input.joyset(number controller, table controls)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the the state of specified controller to values specified in specified
|
|
table.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Each field can be boolean or number.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Also, buttons allow strings, which cause value to be inverted.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
input.lcid_to_pcid: Look up logical controller (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number, number) input.lcid_to_pcid(number lcid)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the legacy pcid for controller (or false if there isn't one), followed
|
|
by pcid pair.
|
|
Returns nothing if controller does not exist.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table keyboard
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Various keybinding-related functions
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
keyboard.bind: Bind a key
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none keyboard.bind(string mod, string mask, string key, string cmd)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Bind specified key with specified modifers to specified command.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
keyboard.unbind: Unbind a key
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none keyboard.unbind(string mod, string mask, string key)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Unbind specified key with specified modifers.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
keyboard.alias: Set alias expansion
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none keyboard.alias(string alias, string expansion)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set expansion of given command.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table subtitle
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Subtitle handling
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
subtitle.byindex: Look up start and length of subtitle by index
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number) subtitle.byindex(number i)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read the frame and length of ith subtitle.
|
|
Returns nothing if not present.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
subtitle.set: Write a subtitle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none subtitle.set(number f, number l, string txt)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the text of subtitle.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
subtitle.get: Read a subtitle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string subtitle.get(number f, number l)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get the text of subtitle.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
subtitle.delete: Delete a subtitle
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none subtitle.delete(number f, number l)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Delete specified subtitle.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table hostmemory
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Host memory handling (extra memory saved to savestates).
|
|
Host memory starts empty.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Reads out of range return false.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Writes out of range extend the memory.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
hostmemory.read: Read byte from host memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.read(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Reads byte from hostmemory slot address <address>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
hostmemory.write: Write byte to host memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none hostmemory.write(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Writes hostmemory slot with value <value> 0-255.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
hostmemory.read{,s}{byte,{,h,d,q}word}: Read from host memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readbyte(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readsbyte(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readsword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readhword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readshword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readdword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readsdword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readqword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readsqword(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read elements (big-endian) from given address <address>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
byte is 1 element
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
word is 2 elements
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hword is 3 elements
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dword is 4 elements
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
qword is 8 elements.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The 's' variants do signed read.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
hostmemory.read{float,double}: Read from host memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
syntax: number hostmemory.readfloat(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.readdouble(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read elements (big-endian) floating-pont from given address <address>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
hostmemory.write{,s}{byte,{,h,d,q}word}: Write to host memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writebyte(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writesbyte(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writeword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writesword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writehword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writeshword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writedword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writesdword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writeqword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number hostmemory.writesqword(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write value <value> to elements (little-endian) starting from given address
|
|
<address>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
byte is 1 element
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
word is 2 elements
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hword is 3 elements
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
dword is 4 elements
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
qword is 8 elements.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The 's' variants do signed write.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
hostmemory.write{float,double}: Write to host memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
syntax: none hostmemory.readfloat(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none hostmemory.readdouble(number address, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write elements (big-endian) floating-pont to given address <address>, storing
|
|
<value>.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table movie
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Movie handling
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.currentframe: Get current frame number
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.currentframe()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return number of current frame.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.framecount: Get move frame count
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.framecount()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return number of frames in movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.lagcount: Get current lag count
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.lagcount()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return number of lag frames recorded so far.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.readonly: Is in playback mode?
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean movie.readonly()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return true if in playback mode, false if in recording.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.rerecords: Movie rerecord count
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.rerecords()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the current value of rerecord count.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.set_readwrite: Set recording mode.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.set_readwrite()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set recording mode (does not cause on_readwrite callback).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.frame_subframes: Count subframes in frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.frame_subframes(number frame)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Count number of subframes in specified frame <frame> (frame numbers are
|
|
1-based) and return that.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.read_subframes: Read subframe data (deprecated)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table movie.read_subframes(number frame, number subframe)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read specifed subframe in specified frame and return data as array.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.read_rtc: Read current RTC time
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: (number, number) movie.read_rtc()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the current value of the RTC as a pair (second, subsecond).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.unsafe_rewind: Fast movie rewind to saved state
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.unsafe_rewind([UNSAFEREWIND state])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Start setting point for unsafe rewind or jump to point of unsafe rewind.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If called without argument, causes emulator to start process of setting
|
|
unsafe rewind point.
|
|
When this has finished, callback on_set_rewind occurs, passing the rewind
|
|
state to lua script.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
If called with argument, causes emulator rewind to passed rewind point as
|
|
soon as possible.
|
|
recording mode is implicitly activated.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
The following warnings apply to unsafe rewinding:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
There are no safety checks against misuse (that's what
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
unsafe
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
comes from)!
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Only call rewind from timeline rewind point was set from.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Only call rewind from after the rewind point was set.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.to_rewind: Load savestate as rewind point
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: UNSAFEREWIND movie.to_rewind(string filename)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Load specified savestate file <filename> as rewind point and return UNSAFEREWIND
|
|
corresponding to it.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: This operation does not take emulated time.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.copy_movie/INPUTMOVIE::copy_movie: Copy movie to movie object
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTMOVIE movie.copy_movie([INPUTMOVIE/string movie])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTMOVIE INPUTMOVIE::copy_movie()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Copies specified movie or branch <movie>/current object (if none or nil,
|
|
the active movie) as new movie object.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.get_frame/INPUTMOVIE::get_frame: Read specified frame in movie.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTFRAME movie.get_frame([INPUTMOVIE/string movie,] number frame)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTFRAME INPUTMOVIE::get_frame(number frame);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get INPUTFRAME object corresponding to specified frame in specified movie
|
|
or branch.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.set_frame/INPUTMOVIE::set_frame: Write speicifed frame in movie.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.set_frame([INPUTMOVIE/string movie,] number frame, INPUTFRAME
|
|
data)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOVIE::set_frame(number frame, INPUTFRAME data)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set data in specified frame.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Note: Past can't be edited in active movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.get_size/INPUTMOVIE::get_size: Get size of movie
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: integer movie.get_size([INPUTMOVIE/string movie])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: integer INPUTMOVIE::get_size()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return number of subframes in specified movie or branch.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.count_frames/INPUTMOVIE::count_frames: Count frames in movie
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.count_frames([INPUTMOVIE/string movie])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number INPUTMOVIE::count_frames()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return number of frames in movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.find_frame/INPUTMOVIE::find_frame: Find subframe corresponding to frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.find_frame([INPUTMOVIE/string movie], number frame)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number INPUTMOVIE::find_frame(number frame)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns starting subframe of given frame (frame numbers are 1-based).
|
|
Returns -1 if frame number is bad.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.subframe_to_frame/INPUTMOVIE::subframe_to_frame: Find frame corresponding
|
|
to subframe
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.subframe_to_frame([INPUTMOVIE/string movie], number
|
|
subframe)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number INPUTMOVIE::subframe_to_frame(number subframe)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns frame containing given subframe (subframe numbers are 0-based).
|
|
Returns -1 if subframe number is bad.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.blank_frame/INPUTMOVIE::blank_frame: Return a blank frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTFRAME movie.blank_frame([INPUTMOVIE/string movie])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTFRAME INPUTMOVIE::blank_frame()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return blank INPUTFRAME with frame type from specified movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.append_frames/INPUTMOVIE::append_frames: Append blank frames
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.append_frames([INPUTMOVIE/string movie,] number frames)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOVIE::append_frames(number frames)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Append specified number <frames> of frames.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.append_frame/INPUTMOVIE::append_frame: Append a frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.append_frame([INPUTMOVIE/string movie,] INPUTFRAME frame)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOVIE::append_frame(INPUTFRAME frame)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Append specified frame <frame>.
|
|
Past of current movie can't be edited.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.truncate/INPUTMOVIE::truncate: Truncate a movie.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.truncate([INPUTMOVIE/string movie,] number frames)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOVIE::truncate(number frames)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Truncate the specified movie to specified number of frames.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.edit/INPUTMOVIE::edit: Edit a movie
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.edit([INPUTMOVIE movie,] number frame, number port, number
|
|
controller, number control, number/bool value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.edit(string branch, number frame, number port, number
|
|
controller, number control, number/bool value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOVIE::edit(number frame, number port, number controller,
|
|
number control, number/bool value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Change specified control in specified frame in specified movie.
|
|
Past can't be edited in active movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.copy_frames2: Copy frames between movies
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.copy_frames2([INPUTMOVIE/string dstmov,] number dst, [INPUTMOV
|
|
IE/string srcmov,] number src, number count)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Copy specified number of frames between two movies.
|
|
The copy proceeeds in forward direction.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.copy_frames/INPUTMOVIE::copy_frames: Copy frames in movie
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.copy_frames([INPUTMOVIE/string mov,] number dst, number
|
|
src, number count, bool backwards)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOVIE::copy_frames(number dst, number src, number count,
|
|
bool backwards)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Copy specified number of frames from one point in movie to another.
|
|
If backwards is true, the copy will be done backwards.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.serialize/INPUTMOVIE::serialize: Serialize movie
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none movie.serialize([INPUTMOVIE movie/string,] string filename,
|
|
bool binary)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTMOIVE::serialize(string filename, bool binary)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Serialize given movie into file.
|
|
If binary is true, binary format (more compact and much faster) is used.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.unserialize: Unserialize movie
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: INPUTMOVIE movie.unserialize(INPUTFRAME template, string filename,
|
|
bool binary)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Unserialize movie from file.
|
|
The given frame is used as template to decide the frame type.
|
|
If binary is true, binary format is decoded (much faster).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.current_first_subframe: Return first subframe in current frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.current_first_subframe()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns first subframe in current frame.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.pollcounter: Return poll counter for speified control
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number movie.pollcounter(number port, number controller, number control)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns number of times the specified control has been polled this frame.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.current_branch: Return current branch
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string movie.current_branch()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the name of the current branch.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.get_branches: Return names of all branches
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string...
|
|
movie.get_branches()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the name of all branches.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.rom_loaded: Is ROM loaded?
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean movie.rom_loaded()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns true if ROM is loaded, false otherwise.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.get_rom_info: Get info about loaded ROM
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: Table movie.get_rom_info()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns a table of tables.
|
|
The outer table is indexed by ROM slot index.
|
|
The inner table has the following fields:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
filename: The name of file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
hint: File name hint
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
sha256: SHA-256 hash of ROM.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xml_filename: The name of file for markup
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xml_hint: File name hint for markup
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
xml_sha256: SHA-256 hash of ROM markup.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
If there is no markup, the xml_* fields are absent.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.get_game_info: Get info about loaded game
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: Table movie.get_game_info()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns a table with following fields:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
core: The name of the core
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
core_short: Short name of the core
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
type: The name of the system type
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
type_long: The long name of the system type
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
region: The name of region
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
region_long: The long name of region
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
gametype: The gametype of movie.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fps: Nominal fps as floating-point value
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fps_n: Exact nominal fps numerator
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
fps_d: Exact nominal fps denominator.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
movie.get_last_movie: Get name of last movie loaded
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String/Nil movie.get_last_movie()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the name of last movie loaded as a string, or nil if the last movie
|
|
loaded was unnamed.
|
|
If you are using this for naming something, movie.get_rom_info() might be
|
|
useful in case this returns nil or something useless starting with '$'.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
INPUTFRAME::get_button: Get button
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean INPUTFRAME::get_button(number port, number controller, number
|
|
control)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns state of given button as boolean.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
INPUTFRAME::get_axis: Get axis
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number INPUTFRAME::get_axis(number port, number controller, number
|
|
control)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns state of given axis as number.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
INPUTFRAME::set_button/INPUTFRAME::set_axis: Set button or axis
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTFRAME::set_button(number port, number controller, number
|
|
control, number/bool value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTFRAME::set_axis(number port, number controller, number
|
|
control)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the given button/axis to given value.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
INPUTFRAME::serialize: Serialize a frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string INPUTFRAME::serialize()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return string representation of frame.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
INPUTFRAME::unserialize: Unserialize a frame
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none INPUTFRAME::unserialize(string data)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set current frame from given data.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
INPUTFRAME::get_stride: Get movie stride
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number INPUTFRAME::get_stride()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return number of bytes needed to store the input frame.
|
|
Mainly useful for some debugging.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table settings
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Routines for settings manipulation
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
settings.get: Get value of setting
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string settings.get(string name)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get value of setting <name>.
|
|
If setting value can't be obtained, returns (nil, error message).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
settings.set: Set value of setting
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none settings.set(string name, string value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set value <value> of setting <name>.
|
|
If setting can't be set, returns (nil, error message).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
settings.get_all: Get values of all settings
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table settings.get_all()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return a table with all setting names as keys and all current values as
|
|
values.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
settings.get_speed: Get current speed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number/string settings.get_speed()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return the current speed multiplier (1 is normal), or
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
turbo
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
if speed is set to turbo (this does not react to turbo toggle).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
settings.set_speed: Set current speed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: settings.get_speed(number spd)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: settings.get_speed(string special)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the current speed multiplier (1 is normal).
|
|
The speed may be positive multiplier or
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
turbo
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
for turbo speed.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table memory
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Contains various functions for managing memory
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.vma_count: Count number of memory areas.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number memory.vma_count()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the number of memory areas
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.read_vma: Lookup memory area info by index
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table memory.read_vma(number index)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Reads the specified memory area (indices start from zero).
|
|
Trying to read invalid memory area gives nil.
|
|
The return value is table with the following fields:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
region_name (string): The readable name of the memory area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
baseaddr (number): Base address of the memory area
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
lastaddr (number): Last address in the memory area.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
size (number): The size of memory area in bytes.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
readonly (boolean): True of the memory area corresponds to ROM.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
iospace (boolean): True if the memory area is I/O space.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
native_endian (boolean): True if the memory area has native endian as opposed
|
|
to little endian.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.find_vma: Find memory area info by address
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table memory.find_vma(number address)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Finds the memory area containing specified address.
|
|
Returns table in the same format as read_vma or nil if not found.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.read{,s}{byte,{,h,d,q}word}: Read memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readbyte({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readhword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readdword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readqword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readsbyte({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readsword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readshword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readsdword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readsqword({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Reads the specified address <address> (if 's' variant is used, do undergo
|
|
2's complement).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.{,s}read_sg: Scatter/Gather read memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.read_sg(string/boolean/number...)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.sread_sg(string/boolean/number...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Perform (2s complement signed if using memory.sread_sg) scatter/gather read
|
|
of memory.
|
|
Each argument can be string, boolean or number:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
String: Set memory area addresses are relative to (e.g.
|
|
'WRAM').
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
boolean: If true, increment relative address by 1, if false, decrement by
|
|
1.
|
|
The new address is read as next higher byte.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
integer: Set the relative address to specified value and read the address
|
|
as next higher byte.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.write_sg: Scatter/Gather write memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.write_sg(number value, string/boolean/number...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Perform scatter/gather write of value <value> on memory.
|
|
Each argument can be string, boolean or number:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
String: Set memory area addresses are relative to (e.g.
|
|
'WRAM').
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
boolean: If true, increment relative address by 1, if false, decrement by
|
|
1.
|
|
The new address is read as next higher byte.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
integer: Set the relative address to specified value and read the address
|
|
as next higher byte.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.read{float,double}: Read memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readfloat({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.readdouble({string marea, number address|ADDRESS addrobj})
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Reads the specified address <address>
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.write{byte,{,h,d,q}word,float,double}: Write memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writebyte({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writeword({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writehword({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writedword({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writeqword({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writefloat({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writedouble({string marea, number address|ADDRESS addrobj},
|
|
number value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Writes the specified value <value> (negative integer values undergo 2's
|
|
complement) to specified address <address>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.map{{,s}{byte,{,h,d,q}word},float,double}: Map an array
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: userdata memory.map<type>({string marea, number base|ADDRESS addrobj},
|
|
number size)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns a table mapping specified memory aperture for read/write.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Type may be one of: byte, sbyte, word, sword, hword, shword, dword, sdword,
|
|
qword, sqword, float or double.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.hash_region: Hash region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string memory.hash_region({string marea, number base|ADDRESS addrobj},
|
|
number size)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Hash <size> bytes starting from address <base> (relative to <marea>) and
|
|
return the SHA-256.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.hash_region2: Hash region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string memory.hash_region2({string marea, number base|ADDRESS addrobj},
|
|
number size[, number rows, number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Hash <rows> blocks of <size> bytes starting from address <base> (relative
|
|
to <marea>).
|
|
The blocks are offset by <stride> from one another and return the SHA-256.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.hash_region_skein: Hash region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string memory.hash_region_skein({string marea, number base|ADDRESS
|
|
addrobj}, number size[, number rows, number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Same as memory.hash_region2, but uses Skein-512-256 (v1.3; one of the SHA-3
|
|
finalists) as hash function.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.store: Store region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.store({string marea, number addr|ADDRESS addrobj}, number
|
|
daddr[, number rows, number stride]
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Copy memory starting from <addr> in memory area <marea> (each row being
|
|
of size <size>, there being <rows> rows, and rows being separated by <stride>
|
|
in memory) into savestate-saved memory area, starting from <daadr> (all
|
|
rows are written back to back).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.storecmp: Compare and store region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: bool memory.storecmp({string marea, number addr|ADDRESS addrobj},
|
|
number daddr[, number rows, number stride]
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like memory.store, but returns true if target of copy already held the value
|
|
that would be copied before the copy happened.
|
|
Otherwise returns false (if target and source differ before copy).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.hash_state: Hash system state
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string memory.hash_state()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Hash the current system state.
|
|
Mainly useful for debugging savestates.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.readregion: Read region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table memory.readregion({string marea, number base|ADDRESS addrobj},
|
|
number size)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read a region of memory.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Warning: If the region crosses memory area boundary, the results are undefined.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.writeregion: Write region of memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.writeregion({string marea, number base|ADDRESS addrobj},
|
|
number size, table data)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write a region of memory.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Warning: If the region crosses memory area boundary, the results are undefined.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.action: Run core action
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
memory.action(string action, [<params>])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Run core action.
|
|
The different models expect parameters as:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
string: String
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
numeric: numeric
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
enumeration: String
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
boolean: String
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
toggle: None.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.action_flags: Get core action flags
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
memory.action_flags(string action)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get value of action flags for core action <action>.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Bit 0: Enabled?
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Bit 1: Selected (not all actions can be selected)?
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.get_lag_flag: Get lag flag
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean memory.get_lag_flag()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get the value of core lag flag.
|
|
True if this frame has been lag so far, false if poll has been detected.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.set_lag_flag: Set lag flag
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.set_lag_flag(boolean flag)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the value of core lag flag.
|
|
This flag automatically gets cleared if poll is detected, but can be forcibly
|
|
set or cleared if game so requires.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Should only be used in on_frame_emulated callback.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Setting or clearing this affects the emulator lag counter.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.{,un}register{read,write,exec}: (Un)Register read / write / execute
|
|
callback
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory.registerread({string marea, number addr|ADDRESS addrobj},
|
|
function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory.registerwrite({string marea, number addr|ADDRESS
|
|
addrobj}, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory.registerexec({string marea, number addr|ADDRESS addrobj},
|
|
function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.unregisterread({string marea, number addr|ADDRESS addrobj},
|
|
function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.unregisterwrite({string marea, number addr|ADDRESS addrobj},
|
|
function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.unregisterexec({string marea, number addr|ADDRESS addrobj},
|
|
function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Add or remove callback on memory read, write or execute (depending on the
|
|
function).
|
|
<addr> is relative to <marea>.
|
|
<fn> is the callback.
|
|
The register* functions return <fn> (which can then be passed to unregister*
|
|
functions.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Not all cores support this, and it may be unsupported for some memory areas.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The functions are passed two parameters: Address and value.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.{,un}registertrace: Set/Clear trace hook
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory.registertrace(number processor, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.unregistertrace(number processor, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Add or remove trace callback.
|
|
<processor> is system-dependent processor number (0 is usually main CPU).
|
|
The function arguments work like in other (un)register* functions.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
The functions are passed two parameters: Trace CPU and Trace event string.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.cheat: Set cheat
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.cheat({string marea, number addr|ADDRESS addrobj}, number
|
|
value);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.cheat({string marea, number addr|ADDRESS addrobj});
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set or clear cheat (value <value>) on address <addr> (relative to <marea>).
|
|
If <value> is not speicified, clear a cheat.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Not all cores support this, and it may be unsupported for some memory areas.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.setxmask: Set global execute hook mask
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.setxmask(number mask)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the global execute hook mask to <mask>.
|
|
The meaning of each bit is system-dependent, but bit 0 should be the main
|
|
CPU.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.getregister: Get register value
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number/boolean memory.getregister(string register)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get the value of named register.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.getregisters: Get register values
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table memory.getregisters()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Get the value of all known registers as table.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.setregister: Set register value
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory.setregister(string register, number/boolean value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set the value of named register.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory.mmap: Class MMAP_STRUCT
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class MMAP_STRUCT
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table memory2
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Contains newer memory functions.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2(): Get all memory area names.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table memory2()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns array of all valid memory area names.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:info: Get memory area info
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: table memory2.<marea>:info()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Return table describing given memory area.
|
|
Includes fields address, size, last, readonly, special and endian.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:<op>: Read/Write memory
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory2.<marea>:<op>(number offset, number value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number memory2.<marea>:<op>(number offset)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read/Write value from/to given memory area <marea> at given offset <offset>
|
|
(must be in-range).
|
|
The value written is <value>.
|
|
<Op> is of form: [i][s]<type>, where:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
<type> is one of 'byte', 'word', 'hword', 'dword', 'qword', 'float', 'double'.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
'i' signifies that the value is treated as opposite-to-normal endianess,
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
's' signifies that value is treated as signed (not available for floating-point).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:read: Scatter-gather value read
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number memory2.<marea>:read(number addr...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read value from given memory area <marea> at byte offsets <addr>..., given
|
|
in order of increasing significance.
|
|
Value of true and false are special.
|
|
True increments address by 1, and false decrements address by 1.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:sread: Signed scatter-gather value read
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number memory2.<marea>:sread(number addr...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like memory2.<marea>:read, but reads signed values.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:write: Scatter-gather value write
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number memory2.<marea>:write(number val, number addr...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write value <val> to given memory area <marea> at byte offsets <addr>..., given
|
|
in order of increasing significance.
|
|
Value of true and false are special.
|
|
True increments address by 1, and false decrements address by 1.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:cheat: Set/Clear cheat
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory2.<marea>:cheat(number addr, [number value])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Set/Clear cheat at offset <addr> of memory area <marea>.
|
|
If <value> is given, cheat with specified value is set.
|
|
Otherwise cheat on address is removed.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:sha256: SHA-256
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string memory2.<marea>:sha256(number addr, number size[, number rows,
|
|
number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Compute SHA-256 of <rows> (default 1) chunks of <size> bytes each, starting
|
|
from offset <addr> of area <marea>.
|
|
The chunks are separated by <stride>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:skein: Skein-512-256
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string memory2.<marea>:skein(number addr, number size[, number rows,
|
|
number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Same as memory2.<marea>:sha256, except with Skein-512-256 as hash function.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:store{,cmp}: Copy region to Lua memory with compare
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory2.<marea>:store(number addr, number daddr, number size[,
|
|
number rows, number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean memory2.<marea>:storecmp(number addr, number daddr, number
|
|
size[, number rows, number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Copy <rows> (default 1) chunks of <size> bytes each, starting from offset
|
|
<addr> of area <marea>.
|
|
The chunks are separated by <stride>.
|
|
The target is Lua host memory, starting from offset <daddr>.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Additionally, the storecmp method returns false if target was modified (otherwis
|
|
e true).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:readregion: Read region
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax table memory2.<marea>:readregion(number addr, number size)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Read <size> bytes starting from <addr> in <marea> and return as array.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:writeregion: Write region
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax none memory2.<marea>:writeregion(number addr, table data)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Write array <data> to bytes starting from <addr> in <marea>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:register{read,write,exec}: Register hook
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory2.<marea>:registerread(number addr, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory2.<marea>:registerwrite(number addr, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function memory2.<marea>:registerexec(number addr, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Register debug callback <fn> of specified type at offset <addr> of memory
|
|
area <marea>.
|
|
Returns <fn>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
memory2.<marea>:unregister{read,write,exec}: Unregister hook
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory2.<marea>:unregisterread(number addr, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory2.<marea>:unregisterwrite(number addr, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none memory2.<marea>:unregisterexec(number addr, function fn);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Unregister debug callback <fn> of specified type at offset <addr> of memory
|
|
area <marea>.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table random
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Contains random number generation methods.
|
|
These functions do not return reproducable results.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
random.boolean: Random boolean
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean random.boolean()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns true or false at random (50-50 chance).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
random.integer: Random integer
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number random.integer(number highplusone)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number random.integer(number low, number high)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
With one argument, return random integer [0,<highplusone>) (upper end exclusive).
|
|
With two arguments, return random integer [<low>,<high>] (both ends inclusive).
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
The returned numbers are from uniform distribution.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
random.float: Random float
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number random.float()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns random decimal number [0,1).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
random.among: Random parameter
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: value random.among(value values...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns random parameter value, picked at uniform.
|
|
Multiple equivalent values are returned with higher chance.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
random.amongtable: Random from table
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: value random.amongtable(table tab)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns random value from table <tab>.
|
|
As in random.among, no equality testing is done.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table zip
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
zip.enumerate: Enumerate members in zipfile
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: Table zip.enumerate(string filename[, boolean invert])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns table of files in zip archive <filename>.
|
|
If <invert> is true, instead of returning array of names, returns table
|
|
with keys being member names and values being true.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
zip.writer: Class ZIPWRITER
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
See class ZIPWRITER.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table paths
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_executable_file: Get the name of lsnes executable file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_executable_file()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the filename of the lsnes executable (together with path), if known.
|
|
If unknown, returns nil.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_executable_path: Get the path of lsnes executable file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_executable_path()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the directory of the lsnes executable path, if known.
|
|
If unknown, returns nil.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_config_path: Get the path of lsnes config file
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_config_path()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the directory of the lsnes configuration.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_rompath: Get the path of ROM files
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_rompath()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the default directory for various ROMs.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_firmwarepath: Get the path of firmware files
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_firmwarepath()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the default directory for various firmwares.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_slotpath: Get the path of save slot files
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_slotpath()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns the default directory for various save slots.
|
|
If in project context, returns the project directory.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
paths.get_save_slot_file: Get save slot filename
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_slotpath(string name)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: String paths.get_slotpath(integer slotnum, bool for_save)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Resolve the filename of specified save slot <name> or <slotnum>.
|
|
Projects and save branches are taken into account.
|
|
If <for_save> is true, the filename is always for current branch.
|
|
If <for_save> is false, branch tree is walked upwards until root is reached
|
|
or desired file is located.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table callback
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Various callback-related functions.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
\begin_inset CommandInset label
|
|
LatexCommand label
|
|
name "subsec:callback.register:-Register-a"
|
|
|
|
\end_inset
|
|
|
|
callback.register: Register a callback
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function callback.register(string cbname, function cbfun);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Instruct function <cbfun> to be added to list of callbacks to call on event
|
|
<cbname> (See section
|
|
\begin_inset CommandInset ref
|
|
LatexCommand ref
|
|
reference "sec:Callbacks"
|
|
|
|
\end_inset
|
|
|
|
).
|
|
The callback name does not have the 'on_' prefix (e.g.
|
|
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
paint
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
).
|
|
Returns <cbfun>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
\begin_inset CommandInset label
|
|
LatexCommand label
|
|
name "subsec:callback.unregister:-Unregister-"
|
|
|
|
\end_inset
|
|
|
|
callback.unregister: Unregister a callback
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function callback.unregister(string cbname, function cbfun);
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Instruct function <cbfun> to be removed from list of callbacks to call on
|
|
event <cbname>.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
callback.<cbname>:register: Register callback
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function callback.<cbname>:register(function cbfun)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Synonym for callback.register (section
|
|
\begin_inset CommandInset ref
|
|
LatexCommand ref
|
|
reference "subsec:callback.register:-Register-a"
|
|
|
|
\end_inset
|
|
|
|
), albeit with callback name specified differently.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
callback.<cbname>:unregister: Register callback
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: function callback.<cbname>:unregister(function cbfun)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Synonym for callback.unregister (section
|
|
\begin_inset CommandInset ref
|
|
LatexCommand ref
|
|
reference "subsec:callback.unregister:-Unregister-"
|
|
|
|
\end_inset
|
|
|
|
), albeit with callback name specified differently.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
table bsnes
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Various bsnes-specific functions.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.dump_sprite: Dump a sprite
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: BITMAP bsnes.dump_sprite(string marea, number addr, number width,
|
|
number height[, number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Dumps given sprite (in native format) from memory.
|
|
memory area is usually
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
VRAM
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
<Width> and <height> are given in 8x8 blocks.
|
|
<Stride> overrides row stride (default 512).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.dump_sprite2: Dump a 2bpp sprite
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: BITMAP bsnes.dump_sprite2(string marea, number addr, number width,
|
|
number height[, number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Dumps given sprite (in 2bpp format) from memory.
|
|
memory area is usually
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
VRAM
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
<Width> and <height> are given in 8x8 blocks.
|
|
<Stride> overrides row stride (default 256).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.dump_palette: Dump a palette
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: PALETTE bsnes.dump_palette(string marea, number addr, bool/integer
|
|
full256, bool first_trans)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Dumps a palette from memory.
|
|
memory area is usually
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
CGRAM
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
.
|
|
If <full256> is true, 256 colors are dumped (otherwise 16).
|
|
<full256> can also be number of colors (4, 16 or 256).
|
|
If <first_trans> is true, first color is forced transparent.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.enablelayer: Set layer visibility
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bsnes.enablelayer(number layer, number priority, boolean enabled)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Enable or disable specified layer at specified priority.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.redump_sprite: Redump a sprite
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bsnes.redump_sprite(BITMAP bitmap, string marea, number addr[,
|
|
number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bsnes.dump_sprite, but instead dumps to specified bitmap <bitmap>.
|
|
The specified bitmap must have size multiple of 8x8.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.redump_sprite2: Redump a 2bpp sprite
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bsnes.redump_sprite2(BITMAP bitmap, string marea, number addr[,
|
|
number stride])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bsnes.dump_sprite2, but instead dumps to specified bitmap <bitmap>.
|
|
The specified bitmap must have size multiple of 8x8.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes.redump_palette: Redump a palette
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: none bsnes.dump_palette(PALETTE pal, string marea, number addr, bool
|
|
first_trans)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like bsnes.dump_palette, but instead dumps to specified palette <pal>.
|
|
The specified palette must have either 16 or 256 colors.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
extensions to table string
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
string.charU: string.char, UTF-8 version.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string string.charU(number n...)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like Lua string.char(), but works in terms of Unicode codepoints.
|
|
The returned string is UTF-8.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
string.byteU: string.byte, UTF-8 version.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: number...
|
|
string.byteU(string str[, number i[, number j]])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Like string.byte(), but works in terms of Unicode codepoints.
|
|
The input string <str> is assumed UTF-8.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
string.regex: Match string against regular expression
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: boolean/string...
|
|
string.regex(string regexp, string against)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Match POSIX-extended regular expression <regexp> against string <against>.
|
|
If no match, false is returned.
|
|
Otherwise if string has no subcaptures, true is returned.
|
|
Otherwise each subcapture is returned as a string (in order of starting
|
|
position).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
string.hex: Transform integer into hex string
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string string.hex(number n, [number digits])
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Returns hexadecimal string representation of <n>, optionally padded with
|
|
zeroes to <digits> digits (default is not to pad).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
string.lpad: Pad string with spaces from left
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string string.lpad(string x, number n)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Pad string <x> to <n> bytes by inserting spaces at start and return the
|
|
result.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
string.rpad: Pad string with spaces from right
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Syntax: string string.rpad(string x, number n)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Pad string <x> to <n> bytes by inserting spaces at end and return the result.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
Table _SYSTEM
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Contains copy of global variables from time of Lua initialization.
|
|
Non-writeable.
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
\begin_inset Newpage pagebreak
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
\begin_inset CommandInset label
|
|
LatexCommand label
|
|
name "sec:Callbacks"
|
|
|
|
\end_inset
|
|
|
|
Callbacks
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Various callbacks to Lua that can occur.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_paint: Screen is being painted
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_paint(bool not_synth)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when screen is being painted.
|
|
Any gui.* calls requiring graphic context draw on the screen.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
not_synth is true if this hook is being called in response to received frame,
|
|
false otherwise.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_video: Dumped video frame is being painted
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_video()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when video dump frame is being painted.
|
|
Any gui.* calls requiring graphic context draw on the video.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_frame_emulated: Frame emulation complete
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_frame_emulated()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when emulating frame has completed and on_paint()/on_video() calls
|
|
are about to be issued.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_frame: Frame emulation starting.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_frame()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called on each starting whole frame.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_rewind: Movie rewound to beginning
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_rewind()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when rewind movie to beginning has completed.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_pre_load: Load operation is about to start
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_pre_load(string name)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called just before savestate/movie load occurs (note: loads are always delayed,
|
|
so this occurs even when load was initiated by lua).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_err_Load: Load failed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_err_load(string name)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called if loadstate goes wrong.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_post_load: Load completed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_post_load(string name, boolean was_savestate)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called on successful loadstate.
|
|
was_savestate gives if this was a savestate or a movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_pre_save: Save operation is about to start
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_pre_save(string name, boolean is_savestate)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called just before savestate save occurs (note: movie saves are synchronous
|
|
and won't trigger these callbacks if called from Lua).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_err_save: Save failed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_err_save(string name)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called if savestate goes wrong.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_post_save: Save completed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_post_save(string name, boolean is_savestate)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called on successful savaestate.
|
|
is_savestate gives if this was a savestate or a movie.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_quit: Emulator is shutting down
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_quit()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when emulator is shutting down.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_input: Polling for input
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when emulator is just sending input to bsnes core.
|
|
Warning: This is called even in readonly mode, but the results are ignored.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_reset: System has been reset
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_reset()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when system is reset.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_readwrite: Entered recording mode
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_readwrite()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when moving into recording mode as result of
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
set-rwmode
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
command (note: moving to rwmode by Lua won't trigger this, as per recursive
|
|
entry protection).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_snoop/on_snoop2: Snoop core controller reads
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_snoop(number port, number controller, number index, number
|
|
value)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_snoop2(number port, number controller, number index, number
|
|
value)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called each time bsnes asks for input.
|
|
The value is the final value to be sent to bsnes core (readonly mode, autohold
|
|
and autofire have been taken into account).
|
|
Might be useful when translating movies to format suitable for console
|
|
verification.
|
|
Note: There is no way to modify the value to be sent.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
On_snoop2 is called instead of on_snoop if defined.
|
|
Reserves port 0 for system, having first user port be port 1.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_keyhook: Hooked key/axis has been moved
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_keyhook(string keyname, table state)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Sent when key that has keyhook events requested changes state.
|
|
Keyname is name of the key (group) and state is the state (same kind as
|
|
table values in input.raw).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_idle: Idle event
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_idle()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when requested by set_idle_timeout(), the timeout has expired and
|
|
emulator is waiting.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_timer: Timer event
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_timer()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when requested by set_idle_timeout() and the timeout has expired
|
|
(regardless if emulator is waiting).
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_set_rewind: Rewind point has been set
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_set_rewind(UNSAFEREWIND r)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when unsafe rewind object has been constructed.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_pre_rewind: Rewind is about to occur
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_pre_rewind()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called just before unsafe rewind is about to occur.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_post_rewind: Rewind has occured
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_post_rewind()
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called just after unsafe rewind has occured.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_button: Button has been pressed
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_button(number port, number controller, number index, string
|
|
type)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called on controller button press, with following parameters:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
port: Port number (0 is system)
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
controller: Controller within port
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
index: Index of button.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
type: Type of event, one of:
|
|
\begin_inset Separator latexpar
|
|
\end_inset
|
|
|
|
|
|
\end_layout
|
|
|
|
\begin_deeper
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
pressed
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Button was pressed.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
released
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Button was released.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
hold
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Held.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
unhold
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Released from hold.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
type
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Typing input on button.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
untype
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Typing input undone.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
autofire <duty> <cycle>
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Autofire with specifie duty and cycle.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
autofire
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Stop autofire.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
\begin_inset Quotes eld
|
|
\end_inset
|
|
|
|
analog
|
|
\begin_inset Quotes erd
|
|
\end_inset
|
|
|
|
: Analog action on axis.
|
|
\end_layout
|
|
|
|
\end_deeper
|
|
\begin_layout Subsection
|
|
on_movie_lost: Movie data is about to be lost
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_movie_lost(STRING kind)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called just before something would happen that could lose movie data.
|
|
Kind can be:
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
readwrite: Switching to recording mode.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
reload: ROM is being reloaded in recording mode.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
load: New movie is being loaded.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
unsaferewind: Unsafe rewind is happening.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
on_latch: Latch line is rising
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Callback: on_latch(<core-dependent-parameters>)
|
|
\end_layout
|
|
|
|
\begin_layout Standard
|
|
Called when latch line for controller is rising.
|
|
Some cores may not support this.
|
|
\end_layout
|
|
|
|
\begin_layout Section
|
|
System-dependent behaviour
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
bsnes core
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Registers are: pbpc, pb, pc, r0, r1, r2, r3, r4, r5, a, x, y, z, s, d, db,
|
|
p, e, irq, wai, mdr, vector, aa, rd, sp, dp, p_n, p_v, p_m, p_x, p_d, p_i,
|
|
p_z, p_c, ppu_display_disabled, ppu_oam_priority, ppu_bg_tilesize[0], ppu_bg_ti
|
|
lesize[1], ppu_bg_tilesize[2], ppu_bg_tilesize[3], ppu_bg3_priority, ppu_mosaic_
|
|
enabled[0], ppu_mosaic_enabled[1], ppu_mosaic_enabled[2], ppu_mosaic_enabled[3],
|
|
ppu_vram_incmode, ppu_mode7_vflip, ppu_mode7_hflip, ppu_window1_enabled[0],
|
|
ppu_window1_enabled[1], ppu_window1_enabled[2], ppu_window1_enabled[3],
|
|
ppu_window1_enabled[4], ppu_window1_enabled[5], ppu_window1_invert[0],
|
|
ppu_window1_invert[1], ppu_window1_invert[2], ppu_window1_invert[3], ppu_window
|
|
1_invert[4], ppu_window1_invert[5], ppu_window2_enabled[0], ppu_window2_enabled[
|
|
1], ppu_window2_enabled[2], ppu_window2_enabled[3], ppu_window2_enabled[4],
|
|
ppu_window2_enabled[5], ppu_window2_invert[0], ppu_window2_invert[1], ppu_windo
|
|
w2_invert[2], ppu_window2_invert[3], ppu_window2_invert[4], ppu_window2_invert[5
|
|
], ppu_bg_enabled[0], ppu_bg_enabled[1], ppu_bg_enabled[2], ppu_bg_enabled[3],
|
|
ppu_bg_enabled[4], ppu_bgsub_enabled[0], ppu_bgsub_enabled[1], ppu_bgsub_enable
|
|
d[2], ppu_bgsub_enabled[3], ppu_bgsub_enabled[4], ppu_window_enabled[0],
|
|
ppu_window_enabled[1], ppu_window_enabled[2], ppu_window_enabled[3], ppu_window
|
|
_enabled[4], ppu_sub_window_enabled[0], ppu_sub_window_enabled[1], ppu_sub_windo
|
|
w_enabled[2], ppu_sub_window_enabled[3], ppu_sub_window_enabled[4], ppu_addsub_m
|
|
ode, ppu_direct_color, ppu_color_mode, ppu_color_halve, ppu_color_enabled[0],
|
|
ppu_color_enabled[1], ppu_color_enabled[2], ppu_color_enabled[3], ppu_color_ena
|
|
bled[4], ppu_color_enabled[5], ppu_mode7_extbg, ppu_pseudo_hires, ppu_overscan,
|
|
ppu_oam_interlace, ppu_interlace, ppu_latch_hcounter, ppu_latch_vcounter,
|
|
ppu_counters_latched, ppu_time_over, ppu_range_over, ppu_ppu1_mdr, ppu_ppu2_mdr
|
|
, ppu_bg_y[0], ppu_bg_y[1], ppu_bg_y[2], ppu_bg_y[3], ppu_ioamaddr, ppu_icgramad
|
|
dr, ppu_display_brightness, ppu_oam_basesize, ppu_oam_nameselect, ppu_oam_tdaddr
|
|
, ppu_oam_baseaddr, ppu_oam_addr, ppu_oam_firstsprite, ppu_oam_latchdata,
|
|
ppu_bg_mode, ppu_mosaic_size, ppu_mosaic_countdown, ppu_bg_scaddr[0], ppu_bg_sc
|
|
addr[1], ppu_bg_scaddr[2], ppu_bg_scaddr[3], ppu_bg_scsize[0], ppu_bg_scsize[1],
|
|
ppu_bg_scsize[2], ppu_bg_scsize[3], ppu_bg_tdaddr[0], ppu_bg_tdaddr[1],
|
|
ppu_bg_tdaddr[2], ppu_bg_tdaddr[3], ppu_bg_ofslatch, ppu_m7_hofs, ppu_m7_vofs,
|
|
ppu_bg_hofs[0], ppu_bg_hofs[1], ppu_bg_hofs[2], ppu_bg_hofs[3], ppu_bg_vofs[0],
|
|
ppu_bg_vofs[1], ppu_bg_vofs[2], ppu_bg_vofs[3], ppu_vram_mapping, ppu_vram_incs
|
|
ize, ppu_vram_addr, ppu_mode7_repeat, ppu_m7_latch, ppu_m7a, ppu_m7b, ppu_m7c,
|
|
ppu_m7d, ppu_m7x, ppu_m7y, ppu_cgram_addr, ppu_cgram_latchdata, ppu_window1_lef
|
|
t, ppu_window1_right, ppu_window2_left, ppu_window2_right, ppu_window_mask[0],
|
|
ppu_window_mask[1], ppu_window_mask[2], ppu_window_mask[3], ppu_window_mask[4],
|
|
ppu_window_mask[5], ppu_color_mask, ppu_colorsub_mask, ppu_color_r, ppu_color_g
|
|
, ppu_color_b, ppu_color_rgb, ppu_scanlines, ppu_hcounter, ppu_vcounter,
|
|
ppu_vram_readbuffer, ppu_oam_itemcount, ppu_oam_tilecount,
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
on_latch has no parameters
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
CPU 0 is S-CPU, 1 is S-SMP.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Cheats are supported for ROM, SRAM, WRAM, BSXFLASH, SLOT{A,B}_{RAM,ROM}.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Read/Write/Execute hooks are supported for ROM, SRAM, WRAM, BSXFLASH, SLOT{A,B}_
|
|
{RAM,ROM}.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Memory areas are: WRAM, APURAM, VRAM, OAM, CGRAM, RTC, DSPRAM, DSPPROM,
|
|
DSPDROM, SRAM, ROM, BUS, PTRTABLE, CPU_STATE, PPU_STATE, SMP_STATE, DSP_STATE,
|
|
BSXFLASH, BSX_RAM, BSX_PRAM, SLOTA_ROM, SLOTB_ROM, SLOTA_RAM, SLOTB_RAM,
|
|
GBCPU_STATE, GBROM, GBRAM, GBWRAM, GBHRAM.
|
|
\end_layout
|
|
|
|
\begin_layout Subsection
|
|
gambatte core
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Registers are: wrambank, cyclecounter, pc, sp, hf1, hf2, zf, cf, a, b, c,
|
|
d, e, f, h, l
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
on_latch is not supported
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
CPU 0 is main CPU.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Cheats are supported for ROM, SRAM and WRAM.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Read/Write/Execute hooks are supported for ROM (read/execute only), SRAM
|
|
and WRAM.
|
|
\end_layout
|
|
|
|
\begin_layout Itemize
|
|
Memory areas are: SRAM, WRAM, VRAM, IOAMHRAM, ROM, BUS.
|
|
\end_layout
|
|
|
|
\end_body
|
|
\end_document
|