Alexander Nicholi
what do you know about computing?
- 5,500
- Posts
- 15
- Years
- Age 26
- Research Triangle / Jakarta
- Seen Sep 22, 2024
Sapphire is a Qt5-based GUI designed for editing and assembling PokéScript code files.
Its brother, Lapis, functions as an assembler, disassembler, and debugger for Sapphire that can also run as a standalone program.
Features
- Standards compliance: Adheres to Revision 5 of the de facto PokéScript Standard
- Cross-platform compatibility: Official support for both Windows and Linux, in both 32- and 64-bit flavours
- Intelligent UI: Sapphire aims to be as comprehensive and user-friendly as possible
- Standalone assembler: You can call Sapphire's backend, Lapis, from your own program if you want!
- Free Software: Free as in freedom, not just as in price. Lapis and Sapphire are licensed under the GNU GPL version 3.
- Open Source & GitHub: It's easier than ever to fork Sapphire and work on it yourself!
About Sapphire & Company
Lapis and Sapphire were born together with the goal of upping the ante for the quality of Pokémon ROM hacking tools, and creating a user experience that is on-par with the rest of the world's good software.
A recurring issue within the realm of Pokémon ROM hacking are tools that are "good enough for now." It's seen all over the place, particularly with entire GUIs that do one or two specific things, or the often dreaded .NET app for the WINE user. We see how that worked out for Advance Map, didn't we? Similar should be done with the messes that are XSE and PKSV. PKSV-UI effectively lacks support for Emerald, and good luck trying to compile it to change anything as the code is a big mess that makes no mention of needed dependencies (we're not even sure it compiles at all). XSE is written in the dying-nearly-dead VB6 language and also has a mess for source code, and has a broken lexer. WIth MEH and its port to D, BEH, seeing to replace Advance Map, Sapphire intends to do the same with both of these old programs; it's our intention to lead the way for the remainder of the Pokémon ROM hacking desktop development scene.
It's time to move away from Windows-exclusive development, to show etiquette in both code and design, it's time to do things properly. And with that, it's also time to try something new. Both Lapis and Sapphire are written in one of the most powerful, versatile, and popular languages around today: C++. With them we aim to achieve an acceptable writing style, with excellent refactoring (need I repeat myself), generous code spacing for readability, and finally complete documentation of every class, function, method, and other block. Sapphire aims at providing a cohesive graphical experience for all kinds of users, regardless of how much you use your keyboard over your mouse (and vice versa), or what your preference is for looks. Along with that, it aims at allowing for generous user customization, utilizing "AppData" on Windows and user configs on Linux. However, Sapphire will provide some aesthetic and functional differences between operating systems, so they are only as synonymous as they need to be. We think that changing and "seasoning" the application for its specific OS is necessary for the proper experience.Besides these two core programs, Sapphire will soon see even more development! A full planned port of the two programs to C♯, under the working title "Cerulean," is being planned by user Team Fail.
A sample screenshot of Lapis on GNU/Linux.
Releases
As of now, both programs lack what you would call a "working release." However, anyone can clone the GitHub repo and compile it themselves to take it for a test run – to compile, you need GCC 5.2.0, Boost 1.59.0, and a Linux environment, preferably an Arch-based one.
Don't worry though, production is well under way! I can tell you that I'm fairly fast with getting things done with the application, and new things are getting added/tested each day. What you can expect: First Lapis will be released on Linux, then it will be released on Windows. Next Sapphire will be published for Linux as an interim "gamma" release, and then it will be ported to Windows and released there. From there you can expact feature additions based on you guys' input, along with anything else I hadn't thought of before that's worth implementing, and that'll make up the current, functional product.
Important: If you are a developer for OS X, Solaris, or BSD, are looking for something to code and have proof of work, don't hesistate to contact me! I would love to get this program ported to more operating systems.* only for porting Lapis and other command-line components, not the Sapphire GUI
Last edited: