Advertiser Content

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
Hey guys, and welcome to my tool showcase!

Battle Script Pro
Spoiler:
This helps you to create new effects for moves, and slightly simplifies the actual insertion of a battle script as the tool compiles and inserts it for you!

This thread is ONLY for the tool itself and related discussions. Please do NOT ask questions about the scripting language itself here. Direct your queries about the Scripting Language itself to here.

Please also ensure you have updated to the latest .NET framework.


Features:
Dynamic Offsets - Searches for free space to insert into on your behalf
SQLite Database - Uses an SQLite database to store the commands and information related to them. Quick and small in size!
Coded in C#.Net - Simply the language I am most comfortable with. Sorry Mac/Linux users!
Tabbed Interface - Like XSE, you can have several scripts open at any one time. Makes for easier editing, or even copy and pasting!
Decompilation - Decompiles scripts from the ROM. This is known to be a little slow and buggy and is still in development.
Compilation - Compiles scripts. Well, what else would you expect a Script Editor to do? :P
Custom Commands - Allows you to define custom commands using a (hopefully) simple format in the commands header file.
XSE Style Definitions - Allows you to define certain strings to have a certain value. Can make scripting easier.

Currently, it only "supports" BPRE, as I haven't added the necessary data to the INIs to support any other ROM, but if this data were to be added, it would work perfectly well.

Note, what this actually means is that the tool won't be able to decompile battle scripts from the effect table, and you won't be able to use the "keywords" I have defined. It will still be able to insert, and decompile, scripts to any given ROM.

Now, I hear you ask, "What do you mean by 'keywords'"?

Good question, sir/madam! What it actually means is that it allows you commonly used offsets by referencing a "keyword".

Eg, I want to check what move is being executed, and jump somewhere if it is this move, say Pound. Normally, you'd have to do this:
jumpifhalfword 0x0 0x02023D4A 0x1 @somewhere
But with "keywords", you can do this instead:
jumpifhalfword B_== move MOVE_POUND @somewhere
I feel that the latter is easier to understand, since you don't need to remember the various RAM Locations!

So, to the nitty gritty stuff.
Compiler Directives:
Spoiler:
#org - Defines the start of any script segment or a jump anchor.
#define - Lets you define some text string to have a specific associated value.
#include - Lets you include a header file. The header files themselves are just lists of #defines.
#dynamic - Defines the starting search location for dynamically assigned scripts. Necessary if you have any dynamic offsets anywhere in your script. Note, you can have more than 1 #dynamic to assign different parts of the script to different areas of the ROM. I don't know why you would want to do that, but I digress.
#freespacebyte - This allows you to define what byte is regarded as free space in your ROM. Unless you explicitly tell the tool otherwise, the tool will use 0xFF as the free space byte.



Keywords:
Spoiler:
baselocationbattledata
baselocationpartydata
attacker
target
attackpartner
targetpartner
move
battletype
terrainbyte
weather
weatherturns
numberofpokemon
attackdamage
knockedoffitem
loopcounter
currentposition
outcome
effectchooser
multistringchooser
attackmultiplier
statchange



Here are some screenshots: Note, these screenshots are actually a little out of date, as I've redesigned the interface since I took them.
Spoiler:

The Main Interface


The Main Interface with some scripts open


The Goto Line Interface


The Find Text Interface


The Find and Replace Interface


A decompiled script, with some basic formatting in place


So you know, this tool is still in development, so if you have any sensible feature requests, or any ideas, or whatever, let me know! I'll try my best to implement them if I like them!

I've tested this quite thoroughly, but I can't guarantee it's bug free. So do let me know if you encounter any bugs. Note, by bugs, I mean occasions where the tool actually crashes or displays garbage data or something. Not occasions where the tool complains about "Unknown Commands" because I know of these and coded in checks to ensure that the tool wouldn't crash when it hit such a command.

Without any further ado: the tool itself.

After downloading, you must press F5 or Help -> Update Database in order to get the most up to date version of the database available. This way, I can ensure that you can easily access the database.


Unnamed Trainer Editor
Spoiler:
A new trainer editor which correctly labels the AI and IV values, as well as supporting reading from an INI to help ensure that it should be future proof!
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
Judging the screenshots, it IS user-friendly, right?
Is it hard to make battle scripts?
Sorry for the noob question but is there a battle script tutorial included?
No, but I'm currently waiting on a tutorial thread to be approved. As to user friendliness, you tell me. It looks OK to me, but I'm likely to be biased. Feedback is always appreciated!
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
Battle scripts can be specifically applied to wild Pokémon, yes. Their most common use is for moves, but realistically, they can be used for several purposes when you manipulate them correctly.
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
Hey guys, this is just a post to advise you that you should update the tool and all the data files. I didn't realise when I put together the .RAR before that I was bundling an outdated version of the .exe file. Sorry about that!

I also changed it to a .ZIP file since that tends to be an easier format to decompress.
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
Jambo Jambo Jambo! Can I please import my syntax highlighting in to it? Please oh please?
Uh, speak to me on the IRC when you get a chance, and we can discuss this. I tried to add to add it before, but there were problems with its implementation.
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

destinedjagold

Oh Hai Thar~

Age 28
Male
Philippines
Seen 1 Week Ago
Posted May 6th, 2019
8,596 posts
12.1 Years
I have a question though.

This helps you to create new effects for moves, and slightly simplifies the actual insertion of a battle script as the tool compiles and inserts it for you!
So, basically, this tool will only add effects to already-existing (or newly inserted) moves, right? :3

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
I have a question though.



So, basically, this tool will only add effects to already-existing (or newly inserted) moves, right? :3
Well, yes and no. You can wholesale replace move effects if you so desire, and it's quite happy to insert into new move effect slots if you tell it to.

But the tool itself won't do the hard work of repointing the tables which need to be repointed to add new moves, nor will it insert the necessary asm and movesets for if you want to have more than 0x1FF moves in total.
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

MrDollSteak

Formerly known as 11bayerf1

Age 24
Male
Hong Kong
Seen 3 Days Ago
Posted May 15th, 2019
846 posts
10.6 Years
I've been having problems with the most recent version. Whenever I want to decompile or compile anything on a rom, it either causes the 'unhandled exception' message, or says the rom is unable to read. I was wondering if anyone else is having this problem?

I have changed the location of the move effect table and have replaced the .ini accordingly. I've even tried using it on a blank fire red rom and couldn't get it to work either.

If anyone knows a solution, I'd greatly appreciate it.

Thanks!

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
Could you be more specific?

Are you getting any other error messages, anywhere?

If nothing else, send me a copy of the "Unhandled Exception" error logs in a PM and I'll see what is causing the issues.

ETA: It looks somewhat like the executable or the inis or something got corrupted in the last upload. I've reuploaded now, with a nice new feature too!
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Kurapika

Grudgebearer

Male
Lavendar Town
Seen 49 Minutes Ago
Posted 1 Day Ago
830 posts
6.4 Years
Hi Jambo,
I am unable to do anything with BSP, :( I keep getting this error:
Spoiler:

and, here is the log, sorry it is partly in French: http://pastebin.com/raw.php?i=0fU1akw0
G3T - GEN 3 TOOLS ( Windows / Android )


Shadowraze

ur mum

Age 20
Non-binary
ur mum
Seen June 7th, 2019
Posted October 16th, 2016
798 posts
6.3 Years
Hi Jambo,
I am unable to do anything with BSP, :( I keep getting this error:
Spoiler:

and, here is the log, sorry it is partly in French: http://pastebin.com/raw.php?i=0fU1akw0
Try downloading the tool again. I have that problem a few hours ago and have bugged Jambo to fix it nonstop. It's practically a missing DLL just for you to know. :3

Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
To all of you who were having issues, I tracked down the problem, and included the relevant files in the BSP download. I also fixed a minor compiling bug.

Update, and decompile/compile to your heart's content!

Enjoy!
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

MrDollSteak

Formerly known as 11bayerf1

Age 24
Male
Hong Kong
Seen 3 Days Ago
Posted May 15th, 2019
846 posts
10.6 Years
To all of you who were having issues, I tracked down the problem, and included the relevant files in the BSP download. I also fixed a minor compiling bug.

Update, and decompile/compile to your heart's content!

Enjoy!
Thanks Jambo! Great work. I've been playing with it for awhile now and it is just awesome!

Kurapika

Grudgebearer

Male
Lavendar Town
Seen 49 Minutes Ago
Posted 1 Day Ago
830 posts
6.4 Years
Ugh, now it doesn't even launch for me. ;_; As soon as I execute it this wild crash message shows up:
Spoiler:

Log, (in French sorry): http://pastebin.com/raw.php?i=RcKcTMBa
G3T - GEN 3 TOOLS ( Windows / Android )


Jambo51

Glory To Arstotzka

Male
Seen January 28th, 2018
Posted December 6th, 2015
732 posts
10.1 Years
OK, all you guys should re-download, and I have rebuilt the executable to version 0.9.0.0.
This version includes some extra decompiling options, and is, to the best of my knowledge, free of these bugs.

The entire programme, data and all will need updated, since I've added a lot of new stuff. If you have edited your ini in any way, back it up, and after the update, merge it with the new one.
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Advertiser Content