• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: [Cross-Platform] Script Editor Advance [WIP]

Shiny Quagsire

I'm Still Alive, Elsewhere
697
Posts
14
Years
Script Editor Advance
This is the SEA, as you can see...

This is yet another tool made by me, Shiny Quagsire. It's a simple yet powerful script editor designed to be fast, speedy, and cross-platform.

SEA_zps009da530.png

^ That's Linux by the way. ^​

Why?
Because the support for Linux, Mac, and BSD's sucks. That's my honest reason for making this (and for porting NSE 2.x to Mono). Also, I prefer working on familiar code, which is why I didn't just port some other scripting editor. Not to mention I wanted to craft an editor from the viewpoint of a programmer/scripter, and thus my editor was born.

How?
SEA is currently written in Java, and uses an SQLite database with information on each individual scripting command available to our current knowledge, which information like it's name, bytecode, description, number of arguments, argument lengths, etc. Using this, it makes compiling, (soon) decompiling, and error checking fast, and efficient. I don't work full time on this obviously because of school, sports, and other activities. I tend to go on and off on my projects. I'll do a ton of work on it, then get bored and switch to something else. I do usually return to these things though if I have some suggestions/goals that people want.

(Planned) Features
  • Cross-Platform using Java
  • Open-Source!
  • Fast Compiling using SQLite
  • Error checking
  • Easy command aliases - Shorten your code to help readability!
  • Intuitive syntax
  • and more!

How's Progress?
Please note that this list is subject to change, and more goals will be added once I get some ideas of what to add.
  • Compiling - [|||||||||-] 90%, just need to check for bugs!
  • Error checking - [||||||||||] 100%
  • Live Error Checking (in text, like a spell checker) [----------] 0%, not too much of a priority, but I'd like some Eclipse/Visual Studio style error checking since I'm going to be using this.
  • Decompiling - [|||||||||-] 95%, Decompiling is pretty much perfect! :D (Subject to bugs though.)
  • Syntax Highlighting - [|||||||||-] 90%, subject to bugs, but pretty much done. Issues with if(...) command
  • ROM Writing - [||||||||||] 100%, done.
  • ROM Reading - [||||||||||] 100%, done.
  • ROM Debugging - [||||||||||] 100%, done.
  • UI - [||||||||--] 80%, still need: command help, log viewer, bytecode dump, built-in guide, etc.
Q&A
Q: That sure looks a lot like XSE...
A Yes, yes it does. I designed it to be as familiar as possible while still providing useful additions.

Q: When will this be available?
A: As soon as I finish the decompiler, and add ROM Writing/Reading

Q: Have you even tested this at all, and how do you test it if you can't write to the rom?
A: Yes, I have. Currently it just dumps some bytecode to the console as well as some debugging informations/errors:

Code:
Code:
Set script search start to 8388608 (0x800000)

Set script start to 0x800000
Added section: start at 0x7fffff

Added section: msg at 0x80000c
Section contains message: Hello, World!

Script length in bytes (Decimal): 26
Compiled Dump:
6a 5a 0f 00 0c 00 80 08 09 02 6c 02 c2 d9 e0 e0 
e3 b8 00 d1 e3 e6 e0 d8 ab ff
then I just copy+paste it into the ROM itself. Here's a pic of the script shown in the screenshot in action!
The newest build supports saving (I think, unless it's bugged...). Just use the Save button and test it in the game.
Pokemon-Amethyst_zps859a5287.png


Q: What's up with the calculator?
A: Copy and paste... Copy and paste...

Q: Your editor sucks. Can I suggest something to fix it?
A: Sure! I'm always open to suggestions, and if you feel that something in my scripting syntax or UI isn't right, I'll be more than happy to fix it.

Source Code
Currently, the source code is hosted on my GitHub account. You can visit it here.

Downloads
The current release is alpha ETU R3.

Reporting Bugs:
...
The entire source code has been pushed to the GitHub Repository. Some things you need to know when testing:
  1. This is a DEBUGGING ALPHA. Use at your own risk on your hacks.
  2. Freespace checking has NOT been added yet, so it'll just overwrite at it's pleasure.
  3. Test with a plain Fire Red ROM using generic scripts, or extremely advanced scripts.
  4. Decompiling doesn't support command aliases yet! So in place of your if's and msgbox's you'll get preparemsgs, callstds, and if1's and if2's. Now it does! :D
When submitting a bug, please use the following format:
  • Description (sometimes not needed)
  • Date built (If you didn't build it yourself, just put ETU)
  • Code Inputted (your script)
  • Decompiled Code
  • Log file - Use pastebin!
  • Optional: In-Game screenshot of script. Not really needed, but nice.
Some features that are useful when debugging:
  • The logger - This can save a log with VERY useful information to me or any other bugfixers.
  • The debugger - The little VBA icon will save your ROM with the byte modifications to a temporary location so you can test it without writing. The changes will NOT be written until you press the Save button. It opens it with the default emulator for your system, so you must have it set to VBA by default.
  • The decompiler - This can give some useful output as well. Since the decompiler doesn't have hardly as many bugs as the compiler, you can often determine if the script will work just by decompiling.
And since this is a new script editor, feel free to ask questions! If something confuses you, I'll be happy to help.
 
Last edited:
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
This looks very nice!
The syntax is unique, yet familiar.

All in all, this seems like an updated XSE, which is good. Well done.
 
5,256
Posts
16
Years
Could you please just update the pointers to use @ instead of :? I feel like that's something I'd have to adapt to which is just unnecessary and adds a barrier.
 
146
Posts
11
Years
  • CO
  • Seen Mar 16, 2023
shiny quagsire ^_^ you are a Beast

It looks great so far.

Questions:
Spoiler:


An are you still working on this or is all your time going on MEH?
 
Last edited:

xGal

Mhm
241
Posts
12
Years
This is really great... The fact that It's cross-platform, easy to use and open source is really great :D. It should really help the rom hacking community!
 
9
Posts
10
Years
I have a suggestion, and an off-topic question. I'm loving this due to the fact that you're carefully applying it to Linux, and I've recently switched over to Linux. Easy compatibility is a must for me.

Suggestion: An advanced space finder. Every free space finder requires the script to be compiled already to find the next available space, in the case of multiple pointers in one script. This creates major issues because when a script contains incomplete pointers, you're left with a jumbled mess of "raw" errors. Essentially it would be nice to have it spout off say, five open spaces for easy scripting when lacking dynamic functions. Also, before you ask, I just dislike using dynamic offsets.. so I likely wouldn't use it even if it was available.

Off-topic question: Would you happen to know a good Gen3 trainer editor that works with Linux? I've been searching for a while, and the standard famous ones don't work with Linux.
 

Touched

Resident ASMAGICIAN
625
Posts
9
Years
  • Age 122
  • Seen Feb 1, 2018
I have a suggestion, and an off-topic question. I'm loving this due to the fact that you're carefully applying it to Linux, and I've recently switched over to Linux. Easy compatibility is a must for me.

Suggestion: An advanced space finder. Every free space finder requires the script to be compiled already to find the next available space, in the case of multiple pointers in one script. This creates major issues because when a script contains incomplete pointers, you're left with a jumbled mess of "raw" errors. Essentially it would be nice to have it spout off say, five open spaces for easy scripting when lacking dynamic functions. Also, before you ask, I just dislike using dynamic offsets.. so I likely wouldn't use it even if it was available.

Off-topic question: Would you happen to know a good Gen3 trainer editor that works with Linux? I've been searching for a while, and the standard famous ones don't work with Linux.

Just fill with nop. I'm pretty sure XSE has a #reserve directive for this. Sadly, you'll have to just use WINE or VirtualBox to run it.

Anyway, as a side note, this project looks to be abandoned, or at least on hiatus - the last commit was 9 months ago...
 

Shiny Quagsire

I'm Still Alive, Elsewhere
697
Posts
14
Years
Fixed the link in the main post. Hopefully now it stays fixed instead of somehow breaking itself every 3 weeks. :P

It should be noted that there's no additional features, just a reupload of the last version. I've been meaning to update both this and MEH but as of now school has started so no free time for me. Maybe once the beginning homework flood stops I'll have a bit of time to work on it though. :)
 
25
Posts
9
Years
  • Age 27
  • Seen Sep 21, 2014
This editor seems unusable. If I load a ROM and the name pushes the buttons behind the (hilariously broken) calculator, resizing the window shows that the buttons have vanished permanently so I have to resize the window before I load in a ROM. I put in the offset I wanted, clicked both the floppy disk and the notepad with pencil icon (save and write?), then used the GBA icon to launch my ROM in an emulator. Unfortunately either it didn't write to the ROM or it completely bugged out when I tried to launch the script. The File, Edit, Tools, and Help buttons don't do anything. I can open a ROM with the icon of a file, the gears open up a buggy window as shown in the attachment, the wrench in the square box does nothing and I'm guessing the notepad with pencil icon and floppy disk don't either, and the screwdriver with crossed wrench freezes the program forcing me to have to end the process.

I must be doing something wrong as I'm the only one who seems to be getting this severity in errors. Is there something I'm not getting? Can provide more screenshots if you like.
 

Shiny Quagsire

I'm Still Alive, Elsewhere
697
Posts
14
Years
This editor seems unusable. If I load a ROM and the name pushes the buttons behind the (hilariously broken) calculator, resizing the window shows that the buttons have vanished permanently so I have to resize the window before I load in a ROM. I put in the offset I wanted, clicked both the floppy disk and the notepad with pencil icon (save and write?), then used the GBA icon to launch my ROM in an emulator. Unfortunately either it didn't write to the ROM or it completely bugged out when I tried to launch the script. The File, Edit, Tools, and Help buttons don't do anything. I can open a ROM with the icon of a file, the gears open up a buggy window as shown in the attachment, the wrench in the square box does nothing and I'm guessing the notepad with pencil icon and floppy disk don't either, and the screwdriver with crossed wrench freezes the program forcing me to have to end the process.

I must be doing something wrong as I'm the only one who seems to be getting this severity in errors. Is there something I'm not getting? Can provide more screenshots if you like.

Well for one the calculator is just not implemented (ie no functions tied to buttons). But for the most part this entire tool as a whole is a big WIP and is unlikely to be finished any time soon (or at least before MEH is gotten into a good state). Once MEH is situated and I have a good map editor to test this with, I'll likely start work on SEA again and get this thing finished up. But as of now it's horribly, horribly buggy.
 
Back
Top