Version History
v. 4.0.0 - 04.08.2024
functions support (
function..end
)CLEO 5 modules support
debugger for main.scm scripts
binary number format (
0b101010
)new tabs
other improvements and fixes
See the complete list of changes. Visit SannyBuilder Discord for additional information and support.
This release won't be possible without great feedback and testing from Sanny Builder community as well as support from my Patreon.
v. 3.9.1 - 18.09.2023
array name in expressions without opcode could be a constant #250
preserve global variable index when disassembling with extra info #251
default choice for option Case converting should be "As is" #256
fix an issue with compiling opcode 0B17 #254
fix an issue when Sanny doesn't present the option to use the included script text. #258
v. 3.9.0 - 09.09.2023
command names defined in Sanny Builder Library JSON files are now valid keywords
HEX..END improvements (repeat the same byte N times, include binary files)
new operators (
bitwise
,=@
,=#
){$INCLUDE_ONCE}
directiveadding new edit modes can be done by copying them into the
data
folder, themodes.xml
is gonebug fixes and other changes
👏 Thanks to all people who helped and contributed to this release, and many thanks to my supporters on Patreon.
Previous versions allowed the compilation of some broken code. Now, it will produce an error. You can find examples of such code here.
v. 3.8.5 - 22.02.2023
fix bug #216
v. 3.8.4 - 17.02.2023
keep previously opened documents when launching SB with an input file (Open with) #151
add "--decompile" parameter to CLI
fix some compilation issues with classes using string literals
v. 3.8.3 - 08.01.2023
v. 3.8.2 - 08.09.2022
v. 3.8.1 - 01.09.2022
added support for more commands terminating an if statement with multiple conditions #133
new and updated translations (Spanish, Ukrainian, Romanian, Armenian)
new color themes contributed by the users
massive update for local help files (CHM)
new edit mode for GTA SA PS2 with PS2 CLEO commands
updated local CLEO and plugin files:
CLEO for San Andreas 4.4.1
CLEO for GTA III and Vice City 2.0.0.6
plugin CLEO+ 1.1.2
👏 Thanks to everyone who contributed to this version: NicusorN5, Junior_Djjr, wmysterio, MatiDragon, DanielSant0s, JaggerJam69, Vital, Sdas50, nick7
v. 3.8.0 - 04.08.2021
integration with Sanny Builder Library: a new portal documenting all known opcodes
disassembler now outputs the content of a
hex..end
block as a string if it's a sequence of ASCII characters ending with 00 #33new debug option to let disassembler ignore custom information attached to the compiled script
new CLI parameter to launch the editor with custom options
custom user templates are now stored in a separate file and kept between updates
hotkeys using Numpad buttons have been changed (Zoom text: Ctrl + +/- and Navigate to label and back: Alt + Right/Left)
updated CLEO+ plugin to v1.0.8
updated translations to Hungarian, Spanish, Ukrainian and Chinese languages
👏 Kudos to contributors to this release: forms55, MatiDragon, Vital, wmysterio, XMDS
v. 3.7.0 - 30.01.2021
the autocomplete list displays declared constants (#40)
new VC Mobile mode with CLEO Android opcodes (sannybuilder/data#11)
added spaceeinstein's Opcode Restoration project opcodes in VC PC mode
error messages now have a link to localized documentation if possible (#101)
user tools configuration supports @sb: and @game: variables (#72)
CLEO+ plugin updated to v1.0.7
Read more on constants highlighting there: Language service.
v. 3.6.2 - 29.11.2020
fixed a bug with labels missing in disassembled CLEO scripts #99
v. 3.6.1 - 27.11.2020
updated translation to Ukrainian language
updated CLEO+ plugin to v1.0.4
updated opcode definitions and keywords for CLEO opcodes #95
minor fixes and improvements (see the complete list)
v. 3.6.0 - 11.11.2020
support for enumerated types in classes
initial support for language extensions
better integration with CLEO library:
updated third-party tools in the
tools
directory:CLEO v4.4
SCRLog v2020.2
added CLEO+ plugin for GTA SA with 250+ new opcodes
recognize Cleo for Android scripts (
*.csa
,*.csi
) as compiled scriptscompiler uses CLEO opcodes
0A9E
,0A9F
,0A90
,0A91
in certain expressions when no opcode is suppliedunified description and keywords for CLEO opcodes across different edit modes
added keywords for all opcodes in GTA SA SCR mode
word thread has been replaced with script in opcode definitions and keywords (see why)
v. 3.5.1 - 21.08.2020
fixed a bug with LCS and VCS compilation (#56)
arrays in LCS and VCS now get custom names from
CustomVariables.ini
andCustomArrays.ini
(#53)
v. 3.5.0 - 18.08.2020
updated command line interface
Unix-style syntax with hyphens (#42)
improved edit modes
games.xml
renamed tomodes.xml
, inner structure updatedmodes can now inherit properties of other modes (useful for different versions of one game)
a new mode for SA v2.0 (using
CustomLabels_v2.ini
)separate modes for VCS PSP and VCS PS2 (#41)
support for custom IDE/DAT files
"hot" reloading of modes configuration (#15)
increased available space for the mode name section (#8)
updated opcode definitions for LCS/VCS*
removed SAMB to SB converter (#27)
fixed file association (#43)
fixed an issue with Opcode Search Tool window not available after minimize (#35)
New opcode definitions for GTA LCS and GTA VCS are incompatible with the previous definitions. You must disassemble the main.scm
prior to making any scripts for those games.
v. 3.4.1 - 06.08.2020
fixed incorrect number of parameters in opcode
04E3
inVCSSCM.INI
fixed the issue with the disassembler ignoring
Write opcodes
option and producing a callable label when a regular label is expected
v. 3.4.0 - 04.08.2020
added compiler support for the
SCM
format of GTA: Vice City Stories (#2)added a simpler form of calling subroutines using labels: a label name followed by a pair of parentheses
()
substitutes agosub
commandadded more customization points for edit modes:
path to a GXT file used by the disassembler (#7)
path to
opcodes.txt
(#5)exclusive code templates
added a new tutorial on higher level constructions in the Sanny Builder language, see
help\examples
directoryIDE updates:
Run San Andreas
menu action now checks forgta-sa.exe
(Steam)a new menu item to quickly bootstrap a CLEO script file (see the bottom note in Code Templates)
links to the new documentation portal in the main menu and error messages
minor updates:
updated opcode descriptions (player money += in SA, award_achievement in SA Mobile,
0479
in VCS)renamed variables
script_controlled_player
andflag_player_on_mission
toPLAYER_ACTOR
andONMISSION
respectively in GTA III'sCustomVariables.ini
(#3)reverted files in the
help\GXT Strings
directory to the older version (#25)renamed
macroes.txt
totemplates.txt
v. 3.3.3 - 20.10.2019
fixed a bug causing incorrect external scripts compilation
v. 3.3.2 - 19.10.2019
fixed the opcode
059C
in the Vice City mode
v. 3.3.1 - 14.09.2019
fixed the bug #0048
included
constants.txt
missing in theGTA SA
mode
v. 3.3.0 - 08.09.2019
added compiler support for the Liberty City Stories
SCM
formatadded aliases for the timer variables:
TIMERA
andTIMERB
changed the Ranges check option to apply to the global variables
v. 3.2.4 - 04.08.2019
fixed a regression defect when a CHM help file can not be open
updated opcode definitions for GTA 3 and Vice City
added IDE support for CLEO 2.0 for III and VC
v. 3.2.3 - 07.07.2019
improved support for the version of GTA San Andreas for WinStore, Xbox 360, and PS3
fixed an issue with opcodes
09A4
and0A18
not being properly decompiled in the SA_Mobile mode
v. 3.2.2 - 05.07.2014
added translation into Korean language (thanks to MINE)
improved HEX..END construct processing
fixed the bug #0000028
v. 3.2.1 - 04.05.2014
added translation into Indonesian language (thanks to IMasterFX)
CLEO for GTA III and CLEO for Vice City updated (thanks to Silent)
v. 3.2.0 - 22.03.2014
adding custom edit modes by editing the
games.xml
file is now possiblenew edit mode -
GTA SA SCR
variables can be quickly declared using a type name prefix
CLEO updated to the version 4.3.16
added the InstaSearch feature (formerly 'jump to label' function)
mission names can be changed by editing appropriate
missions.txt
filesimproved association of the script file extensions with Sanny Builder
Sanny Builder only checks if the game directory path is not empty, no checks for specific files (such as an
.exe
)minor improvements in the SB updating feature
changed the Sanny Builder icon and the menu icons
fixed the bug #0000024
v. 3.1.4 - 22.02.2014
CLEO updated to the version 4.3.14
fixed minor interface glitches for hi-res displays
updated German, Polish, Chinese, Ukrainian translations
v. 3.1.3 - 22.12.2013
added support for iOS and Android versions of GTA San Andreas
a code scan value is now used when making a list of constants
updated Chinese and German translations
v. 3.1.2 - 06.10.2013
added Czech translation
added options to associate file extensions
.cs
and.cm
with Sanny Builder
v. 3.1.1 - 22.09.2013
added a new directive $OPCODE to register a new opcode in the script
corrected behavior of the directive $INCLUDE while scanning directories for the file
v. 3.1.0 - 14.09.2013
VCSCM.ini
is updated to include opcodes for the GTA VC mobile version and unsupported opcodeswhen the option Add extra info to SCM is enabled, Sanny Builder remembers the game a script is compiled for, to use the proper edit mode when decompiling
added a new directive $NOSOURCE to prohibit including a source code into a compiled script
some hotkeys are now customizable in the options
added a feature to check automatically if an update exists at the program startup
directives
$VERSION
and$VERSION_RESTORE
are deprecatedupdated Spanish and Chinese translations
Coords manager is now able to change the player's angle in GTA VC
The Sanny Builder installation now includes the SCRLog CLEO plugin by LINK/2012 (can be found in the
tools
folder)
v. 3.09 - 28.07.2013
Sanny Builder is licensed under the Sanny Builder Freeware/Donationware License Agreement
added a feature to report found bugs via the official bug tracker
added a feature to check if an update is available
Coords manager is upgraded to work with all known versions of GTA3, VC and SA (thanks to Silent)
added an updated Chinese translation
minor design changes
v. 3.08 - 05.07.2013
added Silent's ASI Loader v1.1 as a default ASI loader for CLEO 3 and CLEO 4
added Chinese translation
added classes
File
andAudiostream
for backward compatibility with CLEO 4 by Alien
File.Open
, Audiostream.Load
, Audiostream.Load3D
were methods in CLEO 4. Now they are properties. It means, if you get an error when compiling old sources with these commands, change their syntax to:
var = File.Open(file_name, mode)
var = Audiostream.Load(file_name)
var = Audiostream.Load3D(file_name)
the compiler now accepts a string literal as a parameter in a class property
There is a limit on using space characters in such parameter.
the compiler now throws an error for a malformed string literal like
text1"text2"
ortext1'text2'
(without a leading quotation mark)the compiler is able to compile comment markers (curly braces) within a string (
"{text1}text2"
)the semicolon (
;
) can not be used to comment out a line of the codechanged the syntax of the \debug parameter
added flag icons for the available languages in the options
fixed some issues with disassembling of the VCS SCM format
v. 3.06 - 17.06.2013
added new operators
++
and--
added support for block comments
/* */
SASCM.INI
got an update from the GTAG Databasereplaced properties
Actor.Armour
andActor.Car
with their correct versionsActor.AddArmour
andActor.MissionCar
added a new property
Actor.CurrentCar
for the opcode03C0
in the SA and VC classes.added new hotkeys
Ctrl+Num+
andCtrl+Num-
to quickly change the text sizeSanny Builder now remembers a number of closed files for the option Load all closed files
fixed a bug when the compiler failed to compile a source with multiple HEX..END constructs
fixed a bug of version 3.05 when the program hung on startup trying to open a file
v. 3.05 - 05.06.2013
added new translations for the following languages: Finnish, Polish, Hungarian, Turkish, Ukrainian
the CLEO library updated to version 4.1.1.30f (CLEO 4 by Alien)
added a possibility to install CLEO for GTA III and Vice City (made by Alien)
opcode files (**SCM.ini, opcodes.txt) replaced with the ones from the CLEO 4 library installation
new command line parameter
\nosplash
v. 3.04 - 17.08.2008
the editor is able to to convert hexadecimal numbers to decimal ones and vice versa (
Ctrl+H
), and convert the model names to their IDs (Ctrl+Alt+H
)removed a warning message about
script.img
being used by the game when compiling a CLEO scriptthe post-compilation report shows the size of a CLEO script (as
Largest script
)fixed a bug when compiling an array with constant numeric indexes
the installer no longer requires the system administrator rights
v. 3.03 - 17.11.2007
the previous version of CLEO had a bug
minor changes (the toolbar position wasn't saved)
v. 3.02 - 16.11.2007
new version of the CLEO library
main toolbar is movable
the Compile+Copy feature (
F7
) does not create a copy of the output file if the source has$E
or$CLEO
directivesduring a compilation run after pressing
F6
, the output file for a source file with the$CLEO
directiveis created in the same directory; after
F7
the output file is created in the CLEO directory (similarly toSCM
files)new translations: Italian, Portuguese
v. 3.01- 06.08.2007
bug-fixes update
v. 3.00 - 04.08.2007
the CLEO 3 library is integrated into Sanny Builder
disassembler supports the
SCM
format of Vice City Storiesconstants support
new directives
$INCLUDE
,$EXTERNAL
,$CLEO
writing of the additional info to the end of a script file
custom arrays support
a possibility to decompile SCM files having no header
an ability to create an external script named
AAA
a new command line parameter
\compile
a possibility to use a floating-point value as the counter value in a FOR..END loop
dropped support for the commands
WriteMem
andReadMem
a possibility to use regular expressions when searching
a possibility to save a source file in the
RTF
orHTML
formatsan ability to skip the splashes at SA startup
a new key combo
Ctrl+Enter
updated
SASCM.INI
v. 2.99e - 01.01.2007
fixed a bug when parts of the code within the HEX..END construct disappeared in debug mode
a HEX..END construct now accepts the aDMA type and string literals
a FOR loop accepts model identifiers as the counter values
v. 2.99d - 03.12.2006
Memory Hacker became a separate tool.
fixed a decompiler bug
v. 2.99c - 30.11.2006
added the Memory Hacker plug-in
disassembler supports the
SCM
format of Liberty City Storiessupport for constant numbers as indexes of global arrays
a global variable gets disassembled with the type aDMA (
&
) if its address is not divisible by 4the compiler uses default values during compilation of a
main.scm
with the missing header segments (DEFINE XXX
)a possibility to Drag&Drop a file into the editor to open it
new preprocessor directives:
{$VERSION}
,{$VERSION_RESTORE}
If you get a compiler error message like Unknown directive xxxx
when compiling the sources from v2.99, replace the line {$VERSION xxxx}
to any place after the header, for instance before the comment //-------------MAIN---------------
v. 2.99 - 27.09.2006
added new commands
WriteMem
andReadMem
support for hexadecimal numbers
HEX..END
statement accepts labels and global variablesfull support for the ADMA datatype
an opportunity to give custom names to labels
an opportunity to choose a different case for custom names and strings
added console to switch debug options
decompiler supports
GXT
files of GTA III & GTA VCadded escape sequences in long string literals
information about INI file (version, author, date)
classes support the original order of the parameters (like in
SASCM.INI
by PLPynton). The script should have a line {$VERSION x.0.xxxx
} to support such order, see comments in theINI
about thisadded option to confirm an exit from the program
a dropdown menu to switch edit modes
converting of the selected piece of code
an opportunity to pass the current file name to an external tool
corrected some mistakes in the configuration files
removed auto-casting of an integer number to the float one when a variable is declared as
Float
. Now the compiler chooses an opcode depending on the number type only (in math expressions without opcodes)reading/writing of the player's z_angle in Coord Manager; quick insertion of the z_angle value in the script by pressing
Ctrl+Shift+E
(for SA)
The following opcodes were changed in SASCM.INI
: 0181
, 00c3
, 00c4
in order to support the commands WriteMem
and ReadMem
. The original scripts did not use these opcodes and the unmodified games do not implement them so it should not break existing scripts.
The class member Car.SetSpeedInstantly
was named incorrectly (with a wrong opcode) in the classes.db
for SA. If you get an error message about this method during compilation, rename it toActor.DrivingPlane
. We apologize.
v. 2.98 - 04.08.2006
Sanny Builder became multilingual
added menu for external applications
a special version of Opcode Search Tool has been built into SB. The details can be found in the file
OST Readme.txt
validating math expressions during disassembling when Write opcodes is disabled (to ensure that opcodes are used properly)
an opportunity to choose a
script.img
file manually if the folder with themain.scm
file does not have onean opportunity to add a new code template directly from the editor; added template descriptions
the list of models can be sorted alphabetically/by value (
Alt+S
when the list is active)minor corrections and changes
v. 2.97 - 11.06.2006
new data type:
&
for direct byte address (ADMA).minor updates
v. 2.96 - 01.04.2006
improved the jump to label option
added an opportunity to show the list of templates
added an option to replace mission numbers with their names
fixed some bugs
v. 2.9f - 18.02.2006
the
DEFINE OBJECT
list is now optional (the compiler can make it out of model names used in the script)support for block comments
{}
keypress recording
minor changes
v. 2.9 - 15.12.2005
added additional commands
new operator
IN
added IF..THEN..ELSE..END
added support for
WHILE
andREPEAT
loopsadded support for nested loops
added a new function Alloc, allowing to assign a specific memory address to a global variable
new comment style:
//
the editor now remembers the position of markers and the cursor in closed files
v. 2.6 - 05.11.2005
full support of
SCM
formats of Vice City and GTA 3an opportunity to declare variables and arrays as class instances
added a feature to display the list of variables and labels
added loops (
FOR..END
)minor changes:
missions can be referenced by their name (
start_mission MYMISSION
whereMYMISSION
is the label defined in lineDEFINE MISSION XX at @MYMISSION
)Ctrl+Space
displays the list of imported models (DEFINE OBJECT
)new operator
<>
if the disassembler can't find a
script.img
file, it uses the one from the game folderadded
handle
type for arraysan opportunity to switch off a warning that the
script.img
file is being used by the game
v. 2.5 - 10.10.2005
added properties support
added code templates support
added construction VAR...END for variables declaration
all math commands can be used without opcodes (
0004..008B
)new operators
<
and<=
added a capability that the compiler itself set necessary value for the IF command
added extended parameters support
added models list showing
minor changes and fixes
v. 2.0 - 18.09.2005
added classes support
added keywords support
some math commands can be written without opcodes (e.g.
0004
,0005
,0006
,0007
,0038
,0039
,0042
,0043
)for the opcode
00D6
the default parameter is0
(if
=if 0
)added the option to customize labels output
added keywords
True
andFalse
which correspond to1
and0
added construction HEX...END for writing hexadecimal values directly in a binary output
v. 1.1 - 07.09.2005
added coords manager
some bugs fixed
v. 1.0 - 04.09.2005
new format of labels
added converter from the BW's SA Mission Builder syntax
disassembler adds the model names and the text from
american.gxt
in a source fileadded new options
fixed some bugs
v. 0.8 - 20.08.2005
added an ability to associate
SCM
files with Sanny Builderdisassembler adds an additional index to the file name if a file with the same name already exists (e.g, if
main.scm.txt
already exists, a new file will bemain.scm[0].txt
)more informative error messages
added a check for duplicated labels
fixed some bugs
v. 0.7 - 10.08.2005
added new options for text editing
added an ability to work with multiple files simultaneously
added a function to auto-complete an opcode with the
F1
button (beta)
v. 0.6 - 04.08.2005
disassembling support for GTA SA
SCM
formatcompilation of text sources into
main.scm
andscript.img
basic features for text editing
Last updated