View Single Post
Old June 1st, 2008 (1:57 PM). Edited June 5th, 2008 by HackMew.
HackMew's Avatar
HackMew HackMew is offline
Mewtwo Strikes Back
Crystal Tier
Join Date: Jun 2006
Posts: 1,314

Quick Info

- Multi-Script Handling (Tabbed interface)
- Short/Long File Name support
- Multi-level Undo/Redo
- Line Numbers
- Recent Files feature
- Backup feature (ROMs, Scripts, Headers etc.)
- Offset linking
- Quick Command/Construct Help
- Japanese table auto-detect
- File Association for RBC/RBH/BIC files
- Command Line support (supports AdvanceMap 1.90 and higher)
- "Always on top" feature
- Minimize to system tray
- Integrated Scientific Calculator
- Notes
- Compiler Output
- Batch Compiler
- Built-in scripts feature (Scripting models)
- Static/Dynamic/Mixed offsets
- Script Debugging (Use of Dummy ROM)
- Level scripts decompiling/recompiling
- Braille decompiling/recompiling
- Constructs decompiling/recompiling
- Biggest Command Database currently available, with more then 140 new commands (Only few left, and still researching)
- Upgraded Commands (Due to the our improved command understanding)
- Hex Viewing (A simple Hex-Viewer, with built-in Poké/ASCII table)
- Text-Adjusting (R/S/E/FR/LG compatible)
- Free Space Finder integration
- Live Update
- Intergrated Translations (Based on OS Language, currently supports Dutch, English, German, Italian, Slovak and Spanish)
- Indepth Guide (preview currently)
- Easy Script testing (Use of VBA - a "secret" function)
and much more.

Happy Scripting!


WARNING: in case you were using a previous version of XSE, please delete all its files before using the newest one.
If you find any bugs, please let me know giving me as much details as possibile. Thanks.

Main Download Link

Brief explanation about dynamic offsets and their use in XSE
XSE introduced a brand new way to handle dynamic offsets. That's why some PokeScript users may get confused at first.

First of all you need an offset where there's some free space to use as the starting one.
FSF can be good enough. Once you get your offset, which may differ from ROM to ROM obviously, you "tell" that to XSE. To do so, you have to use the new directive #dynamic. Let's say you got 0x82BAFD as free space offset. Then in your script you would write:

#dynamic 0x82BAFD
The #dynamic directive is quite important and you won't be able to compile anything if you omit it.
Now it's to to actually write the script. Being a dynamic one, we need to use some dynamic labels, where the format is @LabelName. Here's a working example:

#org @Start
msgbox @Hello
callstd 0x2

#org @Hello
= Hello, this is a test.
Putting everything together:

#dynamic 0x82BAFD

#org @Start
msgbox @Hello
callstd 0x2

#org @Hello
= Hello, this is a test.
At this point the script is ready to be compiled. Once you compile it, XSE will scan the script and write it to the ROM where it finds enough space, starting searching from offset 0x82BAFD in our case. If everything went fine, the Compiler Ouput will show you the compiler log with all the offsets assigned to each dynamic label, ready to be used.
Note: dynamic labels are case sensitive. Which means @Start is different from @start and so on.


Complete Script dumps, for Ruby, FireRed and Emerald
Which means, all the scripts of all the maps, decompiled and put together.

For those interested, here's a little userbar:

HTML Code:
This is a nice wallpaper:

Reply With Quote