VGMaps

General Boards => Mapping Tips/Guides => Topic started by: Troy Lundin on March 04, 2012, 11:38:22 pm

Title: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on March 04, 2012, 11:38:22 pm
Changed to SMRT, a compilation of my Scene Manipulation and Rendering Tools. Currently, it contains GBA Blending Emulator and VBA Scene Compiler. Please post any bugs found here. Thanks. :D

SMRT (Revision 0)
SMRT (Revision 1) (http://www.mediafire.com/?0kzf821lf5utzfe)

Tagger (Beta 0) [23AUG12] (http://www.mediafire.com/?twzltfympwc703v)
Tagger (Beta 1) [26AUG12] (http://www.mediafire.com/?wtnacdpafgiw4l4)
Tagger (Beta 2) [27AUG12] (http://www.mediafire.com/?nd82e3h07b6qvdz)
Tagger (Beta 5) [29OCT12] (http://www.mediafire.com/?o6r95wrj9twdf5l)
Tagger (Beta 6) [02NOV12] (http://www.mediafire.com/download.php?5kaeudapwewyw1i)

Mapper (Revision 0) [18SEP12] (http://www.mediafire.com/?glmpj4crfxzb4d1)

Changelog

Code: [Select]
[Changelog : GBA Blending Emulator]

Revision 10   30 JUN 2012   [Feature]  Loading a layer no longer automatically resizes the canvas. It was pretty annoying. :D
                            [Fix]      More positional blending bugs squashed! WHY IS IT SO HARD?!
                              ! BUG !  There is a bug with this revision that occurs when the up/down buttons of the
                                       positional controls of the BG layers are held down. You can still change these
                                       values by single-clicking the buttons or entering a value manually.

Revision  9   16 MAR 2012   [Feature]  Tooltips added to all controls.
                            [Feature]  Layers now blend ~17 times faster thanks to Bitblt. (Blends 10,000,000 pixels in ~4.2 seconds)
                            [Feature]  Now accepts images of any resolution. Still outputs at 96dpi.
                            [Fix]      Negative positioning no longer gives incorrect results.

Revision  8   08 MAR 2012   [Feature]  Now supports indexed pixel formats. (PNGOut compresses to indexed pixel formats.)
                            [Feature]  Now uses PARGB format for all image manipulation to increase processing speed ten-fold. Save format is also PARGB.
                            [Feature]  Loading a layer will now resize the canvas if it's too small.
                            [Feature]  Shift-left-clicking a layer resizes the canvas to the size of the layer.
                            [Feature]  Right-clicking a layer now removes it.
                            [Fix]      Zoom no longer glitches the canvas.
                            [Fix]      The Replace Tiles button now correctly disables if no replacement tiles are present.
                            [Internal] The Alpha and Coords windows no longer show up in the taskbar.

Revision  7   08 MAR 2012   [Feature]  Added tile replacement capabilities.
                            [Feature]  Added mouse / tile co-ordinates to the canvas.
                            [Feature]  The canvas may now be scrolled by dragging it with the mouse.
                            [Feature]  The canvas may now be zoomed.
                            [Feature]  The canvas BG color may now also be chosen by Shift-clicking on the canvas.
                            [Fix]      Fixed multiple tiling issues.

Revision  6   06 MAR 2012   [Feature]  Added the ability to choose a negative position for each layer.
                            [Feature]  Tiling is more advanced. It now loops around the canvas.
                            [Fix]      Auto Blend will now obtain a new pointer when VBA is refreshed.
                          
Revision  5   05 MAR 2012   [Feature]  Changed the canvas to update on the fly as options are changed.
                                      Blending now only occurs when the Blend button is pressed.
                            [Fix]      No longer get sharing violations with open images.
                            [Fix]      Manually setting blend options works correctly.
                          
Revision  4   04 MAR 2012   [Feature]  Changed UI controls.
                            [Feature]  The Alpha window now resizes the image if it is too large.
                            [Fix]      Fixed a bug causing the alpha channel to not reset.

Revision  3   04 MAR 2012   [Feature]  Added support for all modes of blending.
                            [Feature]  Added support for automatic gathering of blending information.
                            [Feature]  Added support for layer position modifiers.
                            [Fix]      Fixed bugs with layer tiling.

Revision  2   03 MAR 2012   [Feature]  Added support for up to four layers.
                            [Feature]  Added support for layer transparency.
                            [Feature]  Added support for layer tiling.

Revision  1   02 MAR 2012   Internal build.

Revision  0   01 MAR 2012   Initial public release.

[Changelog : Scene Compiler]

Revision  2   16 MAR 2012   Initial public release.

Previous revisions are non-public builds.
Title: Re: GBA Blending Emulator
Post by: Troy Lundin on March 05, 2012, 12:34:44 pm
Updated to Revision 5.
Title: Re: GBA Blending Emulator
Post by: Trop on March 05, 2012, 06:04:07 pm
You should see if you can get this thing up on Zophars.
Title: Re: GBA Blending Emulator
Post by: TerraEsperZ on March 05, 2012, 08:02:31 pm
Man, I'm almost annoyed that I'm not mapping a GBA game with real transparencies at the moment. Though I'm really tempted to go back and re-do all the underwater sections in my Castlevania: Aria of Sorrow maps...
Title: Re: GBA Blending Emulator
Post by: Troy Lundin on March 05, 2012, 10:29:08 pm
@TerraEsperz: What kind of blending did you use for those maps? The water certainly looks semi-transparent. Do you still have the raw captures?
@Trop: I almost regret releasing it now. I have found so many bugs and am constantly adding things to it. I thought it was more ready than it actually was. I'm not very good with image manipulation in .NET so this is a huge project for me.

Btw, have you guys been able to break it yet? :D
Title: Re: GBA Blending Emulator
Post by: TerraEsperZ on March 06, 2012, 04:01:25 pm
@TerraEsperz: What kind of blending did you use for those maps? The water certainly looks semi-transparent. Do you still have the raw captures?

Everything that's underwater is correct since the water layer is completely uniform in colour and it was easy to capture the background once blended with this colour. But the water surface is made up of a lot of different shades of blue so that part was fudged but it doesn't really show because it's just a bunch of small pixels. I'd like to go for 100% accuracy if I can.
Title: Re: GBA Blending Emulator
Post by: Troy Lundin on March 07, 2012, 03:28:05 am
Updated to Revision 6.

Edit: Revision 7 is up. A few neat features added.
Edit: Revision 8 is up. Lots of performance and bug fixes.
Title: Re: GBA Blending Emulator
Post by: Troy Lundin on March 17, 2012, 02:04:10 pm
Ok, so I decided to throw some of my programs together into a single program. Right now, there are two ready for release. The main program is called SMRT, Scene Manipulation and Rendering Tools. It will contain the other tools I use for scene manipulation when I can get them ready for release. This release contains two programs: GBA Blending Emulator and VBA Scene Compiler. The former you may be familiar with so let me explain the latter.

The VBA Scene Compiler is a very simple tool. It allows you to grab the image from the Map view window of VBA and place it on the canvas in the region you select. You can then select another region and paste another image there. This tool has helped immensely in the capturing of SMA4 scenes. All options are found by right-clicking on the canvas.

GBA Blending Emulator has been updated to Revision 9. The most exciting change is to blending layers, which is now performed by locking the bits into memory. It's now ridiculously faster than before. About 17 times faster. In my test run I blended 10 million pixels in ~4.2 seconds. Quite nice. Other changes are listed below.

Code: [Select]
Revision  9   16 MAR 2012   [Feature]  Tooltips added to all controls.
                            [Feature]  Layers now blend ~17 times faster. (Blends 10,000,000 pixels in ~4.2 seconds)
                            [Feature]  Now accepts images of any resolution. Still outputs at 96dpi.
                            [Fix]      Negative positioning no longer gives incorrect results.

Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on June 30, 2012, 01:51:45 pm
Updated GBA Blending Emulator to Revision 10. Changed the UI a bit and fixed some more positional bugs. Hopefully this will be all of them. I changed how the layers are draw internally so that positional conflicts won't occur. We'll see. :D

Zoom was disabled this build until I can figure how to make it not suck. There is also a bug that can cause the program to crash. Read the changelog for full information.

The next update will contain the ability to add objects to the canvas, such as sprites and what not, and allow all the features available to the layers.

Code: [Select]
Revision 10   30 JUN 2012   [Feature]  Loading a layer no longer automatically resizes the canvas. It was pretty annoying. :D
                            [Fix]      More positional blending bugs squashed! WHY IS IT SO HARD?!
                              ! BUG !  There is a bug with this revision that occurs when the up/down buttons of the
                                       positional controls of the BG layers are held down. You can still change these
                                       values by single-clicking the buttons or entering a value manually.
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on August 23, 2012, 09:22:27 pm
Preview: http://youtu.be/PzlVf-pPptM (http://youtu.be/PzlVf-pPptM)
Program: http://www.mediafire.com/download.php?twzltfympwc703v (http://www.mediafire.com/download.php?twzltfympwc703v)

I present to you, Tagger. I have been fiddling with this program for a bit now and decided I was ready to show off my progress. This is my biggest project to date (I am so bad at programming with graphics) and I am very proud of it.

Tagger allows the creation and edition of image- or text-based tags. Many editing features are in place and finished but I am sure there are some very sneaky bugs in there somewhere.

Features:
 - Create and edit text tag properties including: Location, size, margins, anchoring, alignment, fill/border color, border drawing.
 - Line styles may also be edited for text tags.
 - For image tags, only location, anchoring, border color, border drawing and opacity work.
 - Saving/Loading to custom .map files. These files are just basic .zip files. If you try to read the files inside your mind will implode. YOU HAVE BEEN WARNED!
 - Supports exporting to an image file.

Limitations:
 - At the moment, only 32 lines are supported per tag. I plan to increase this to ~32,000 in the future.
 - Ionic.Zip.dll is required for operation. It provides compression for loading and saving.

Some hints for use:

 - Shift + Left click to place a tag on the canvas.
 - Shift + Right click to remove a tag.
 - Ctrl (Hold) + Left click to move a tag around the canvas.
 - Double click a tag to open the editor.

I tried to safeguard the controls in the editor so that they disable if they would other cause issues. Some controls don't even work but I haven't cleaned up much. :D
Title: Re: Scene Manipulation and Rendering Tools
Post by: Grizzly on August 25, 2012, 07:23:57 am
This looks certainly useful. Good luck on your progress :)

Will there be multiple fonts available later on? Especially custom variable-width bitmap fonts (so that it fits the current game)?
Also for RPGs I sometimes added a small icon in front of text boxes (for item chests, for example). A grouping option for that would be useful so that image and text can be moved together. But of course if bitmap fonts are supported, it should be no problem to put the icons on unused positions of the ASCII range so that the icons are interpreted as text and moved with the text box. So custom bitmap fonts are the most important thing that I would need because I most likely would use bitmap fonts anyway.
And I miss an invisibility option for the text background. For putting small text right onto the map without hiding too much of that map.
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on August 25, 2012, 09:00:30 am
It actually supports transparent backgrounds but the functionality isn't present in the GUI. As for grouping, it's already available. If you set the anchor for the tag it works the same way. Anchoring isn't recursive though. You can see anchoring in action in the video I linked.

Custom fonts is pretty low on my to-do list. I chose the current font because it was fixed-width which made it easier to get the program going. I will support custom font, but it isn't a very high priority. It's funny, though, because the program started out using a variable-width font (FFDOS (FF1)) but I changed it to make progression easier. :D
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on August 26, 2012, 01:34:07 pm
Tagger updated to Beta 1 (http://www.mediafire.com/download.php?wtnacdpafgiw4l4).

There is a file included in this download named 'demo.map'. Open that with Tagger to see a demo of the various features available.
Many changes were made. Click the 'Information' button in the upper-right corner of the program to see the changelog.
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on August 27, 2012, 09:06:19 pm
Updated Tagger to Beta 2 (http://www.mediafire.com/download.php?nd82e3h07b6qvdz).

I believe the previous upload had a corrupted file in it. This revision provided the following changes.

Code: [Select]
Beta 2 (27 AUG 2012)
 - Cleaned up various tag properties.
 - Right-clicking a tag will cause the cursor tag to inherit it's properties.
 - Fixed possible issues with canvas grid display.
 - Added 'New' button to the toolbar. Use it to create a new canvas.
 - Various assembly changes.

 Tag Editor
  - Editing multiple tags or styles at once is now possible.
  - Minor QoL editions.

Coming in the next version is a more verbose grouping editor as well as style editor. I KNOW YOU CAN'T WAIT! :D
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on September 18, 2012, 11:20:49 pm
Including my Mapper (http://www.mediafire.com/download.php?glmpj4crfxzb4d1) program. Currently only works with VBA-m (SVN 1097) and only works for GBA games. Modifying it to work with other emulators would be cake, just gotta find the time. :D

Inside the Mapper .zip:

The settings file must be in the same directory as the program. It contains sample setting for GS2, to give a sample of what it can do. The image explains most of the functions, but there are a few undiscussed (which you probably won't notice anyway).

The program can do so much and I am terrible at creating help files. :(

Also, I gave Tagger an overhaul. I just have some touching up to do and will release it's first release version by the end of the week.
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on October 29, 2012, 09:41:26 pm
Updated Tagger to Beta 5 [29OCT12]. I added the ability to use custom fonts. With this modification, the program is still not ready for an actual release.

Custom Fonts can be created right in the program itself, or compatible font bitmaps can be imported. Fonts used in the program are saved in the map file so they don't need to be transferred with the program. I included three font bitmaps so you can see the format and try them out. Included are Dialog and Menu fonts for Dawn of Souls and a font for Golden Sun: The Lost Age.

What's next? Custom border and some gradient filling. We'll see. Any QoL features you'd like to see? Let me know.
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on November 02, 2012, 04:29:12 pm
http://www.mediafire.com/download.php?5kaeudapwewyw1i

Tagger updated to Beta 6. Fixed crucial bugs that prevent fonts from loading in Beta 5. The save files are still valid, they just didn't load correctly.

Changelog:
Code: [Select]
Beta 6 (02 NOV 2012)
 - Improved initial load times marginally.
 - Increased draw speed by ~5400%. You read that correctly, 54 times faster. :D
 - Property editing is much more efficient. Performance may increase on slower computers.
 - Changed highlighting to yellow outline with tranparent yellow fill.
 - Fixed bug that would cause a tag's line height to reset when changing fonts.
 - Fixed critical error that would cause custom fonts to not load from a saved file.
 - Integrated Font Creator into the Font Viewer.

 Font Viewer
  - Allows viewing, editing or creation of fonts.
  - Existing font may be added, removed, renamed or even exported.
  - Font editing is only available in a manual capacity.
    Automatic comes when I can figure out a decent enough algorithm to detect characters.

 Tag Editor
  - Implemented custom z-ordering. Simply drag nodes around in the treeview.
  - Completely rewrote tag handling code. Now more efficient.
  - Multi-select is more robust, handling multi-tag editing more easily.
Title: Re: Scene Manipulation and Rendering Tools
Post by: TerraEsperZ on March 05, 2013, 06:21:33 pm
Troy Lundin, I finally tried SMRT after managing to understand how to find the evA, evB and evY values in the I/O Viewer and the results are amazing! It makes me a lot for confident if I ever need to do Alpha Blending for a GBA game in the future, and if I ever find the time, to go back and redo the transparencies in Castlevania: Aria of Sorrow correctly.

You rock my friend :D!
Title: Re: Scene Manipulation and Rendering Tools
Post by: Troy Lundin on March 06, 2013, 12:07:49 am
Well, well, well...

I haven't been here for quite some time, though I have been hard at work making amazing programs.

SMRT has been updated quite a bit since I last posted here. I might have to release the latest revision. Also, do you mean you entered the evA, evB and evY values in manually? Because the program should be able to find the values automatically.

Well, now that I think of it, attaching to a process is tricky. It really only works with a specific release of VBA. Anywho, my latest creation is an image compressor. It's coming along quite well, if I do say so myself. I took a certain image from this site (https://www.vgmaps.com/Atlas/SuperNES/Lufia&TheFortressOfDoom-World.png) and compressed it like a champ. Here are the results:

Code: [Select]
Format                                      Filesize (in bytes)
Bitmap (32bpp):                                      20,972,598
PNG (PNGGauntlet, best settings, OptiPNG, DeflOpt)      998,629
PNG (7z, LZMA2, Ultra)                                  957,710
BMP (7z, LZMA2, Ultra)                                  254,217
pimanip (Tile Sequence algorithm)                        35,377

My program is the bottom one. Quite significant indeed. On a side note, why is the font size of the code tag so small?
Title: Re: Scene Manipulation and Rendering Tools
Post by: Revned on March 06, 2013, 06:05:11 pm
Great numbers! However, the problem with custom image formats is lack of support. It's unlikely that casual users would download your program just to look at a map. Maybe it would be useful if you could tie it into one of those Google Maps-like viewers, though.
Title: Re: Scene Manipulation and Rendering Tools
Post by: Maxim on March 06, 2013, 10:47:09 pm
Some years ago I wrote such a viewer as a Java applet - although of course nobody uses them any more - and it was similarly compressy, but slow to draw when the tile size is small and when zoomed out. These days you could try to do it in Javascript. I also played a bit with PanoJS which doesn't serve the same file for identical tiles, but does end up smaller even with the multiple zoom levels due to better local similarly in each image file.