Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Reload this Page Tool Full Metal Toolbox

Notices
For all updates, view the main page.

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.



Reply
 
Thread Tools
  #1    
Old March 26th, 2010 (5:14 PM). Edited July 28th, 2011 by Full Metal.
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal



About.
Most tools available today are available to one OS specifically ( Windows ). My goal is to create portable applications that are open source, intuitive, and user-friendly. All of my tools are written in C or C++, and will typically use the GTK+ toolkit. If you want to use my tools, or any other GTK+ reliant programs, I reccomend using the installer in the links section below. Additionally, all programs are hosted on Google Code, and I welcome anybody wishing to be part of a development team with open arms ( Just shoot me an email ).

If you feel that you have a ( reasonable ) feature to add to a program, VM me, but please don't spam the thread with these 'suggestions', because in all honesty, I expect the requests to eventually turn into spam from people not thinking their request through all the way.
Index:

Links:
GTK+ Installer for windows: Basic Files | Theme Engine.


Full Metal Phoenix.
Full Metal Phoenix is a palette editor with 256 color support for as many colors as you want!
Current Version: 0.6
Updates:
○Better GUI layout
○Better use of the cairo library and GtkDrawingArea widget.
○No labels -- the color's HTML code is drawn right on the color.
○Filesupport - Dropped support for APE and writing to GBA directly. Don't worry, that will come back later. Added support for Adobe Color tables! (:[ advance map palettes are still there, don't worry. ] And importing bitmaps now works for any bitmap. even if it's not indexed.
To Come:
○Bug-Fixes
○Palette Averaging - Apply Hue/Saturation/Lightness effects to an entire palette
○Color Drag&Drop ( hopefully )
Bugs:
Saving with a bitmap format causes a crash. Sorry.
Importing bitmaps works just fine though! [ no matter what the BPP is! :D ]
Repository: Here
Screen:


Full Metal Free Space.
Full Metal Free Space is a simple free-space searcher. It doesn't hog file permissions, and is intuitive. Infact, there are only 2 textboxes, and 2 buttons. To change the starting point of the search, input the offset in the 'found' box. It doesn't matter if you use decimal, or hexadecimal, or if you include the '08' -- just as long as you prepend '0x','$',or '&h' before the hex number.
Recent Updates:
○Speed Boost.
○Smarter GUI.
Bugs:
○None that I'm aware of.
To Come:
○Open to suggestions.
Repository: Here.


Full Metal Geared Sun.
Full Metal Geared Sun is, yet another, revolutionary script editor. What sets it apart from our other favorite script editors like PKSV, and XSE, are two main features: The Language structure itself, and it's database. FMGS will use a sqLite3 database library which will hold all of the commands, items, Pokemon, TM's, HM's, Flag Information, Special information, and ( hopefully ) an assembler, although the later might come in a later release. For a proof of concept please download a ( very ) early development release here. Please, if you have information relevant as far as flag information, special information, send it to me in a VM in a regulated format so that I can put it in the database. Information I'm looking for includes: Flag Names / Descriptions ( make sure to tell me which game they apply to ), Special Names / Descriptions, Command Names / Descriptions / Arguments, Item Information, pretty much anything that you might want to use a constant rather than a hex value for in a script.
Now, the language structure is something amazing in my opinion. Here's the concept:
A 'solution' has several 'items'. An 'item' can be any of the following: 'sub' , 'func', 'str', 'mov' -- and these are compiled into the ROM. An item is accessed by the name of it's type, followed by brackets, and a name or offset. For example:
str['messageToLoad'] @This will register as needing to be compiled, and use dynamics
str[0xOFFSET] @This will not use dynamics
Speaking of dynamics, I also hope to check and see if certain data has already been compiled in the ROM so as to not waste space when developing / testing a script.
Another nice thing about the language is that it allows for multiple commands on one line by using semicolons to notate the end of a statement.
lock
faceplayer
Becomes:
lock; facePlayer;
The program also implements default values for some arguments in the scripting language, like addPokemon will use 0 0 0 for the last three arguments. This is done by using parentheses to ensure the program knows the end of a command. so
addPokemon(Bulbasaur,5,1,0,0,0);
can also be:
addPokemon(Bulbasaur,5,1);
and the program won't complain a tiny bit.
The program also knows the difference between a POKEMON and an ITEM.
so you can not say
addPokemon(OranBerry,5,1); // This will cause a complaint.
but you can say:
addPokemon(1,5,1); // Program doesn't complain about numeric constants so long as they're the right size...
or
addPokemon(Bulbasaur,5,1); // Bulbasaur IS_A pokemon.
As a side note, the program will not be case-sensitive, however formatting will be done to your code to ensure it is nice and pretty. I might add an auto-complete and syntax-highlighting unless the memory burden is too large ( the entire database loaded into memory which as of now is looking like about 26kb...).
This is a rather complex project, and as such I do not have a planned release date so please don't ask. In the mean time however, feel free to contribute to the database ( so I can support GenII and GenIV, GenV scripting as well ( ? ) )

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote

Relevant Advertising!

  #2    
Old March 27th, 2010 (5:23 AM).
Masterge77's Avatar
Masterge77 Masterge77 is offline
Jacen The Robot Floatzel
 
Join Date: Dec 2007
Location: Sinnoh Region
Gender: Male
Nature: Serious
Posts: 1,057

So since this is called the "Metal toolbox", does that mean it works on G/S/C?

__________________
My DA account
Avatar made by MelNathea on DeviantART

The Owner of Sea Weasels, the club for Buizel and Floatzel fans!
Reply With Quote
  #3    
Old March 27th, 2010 (6:18 AM).
Pokepal17's Avatar
Pokepal17 Pokepal17 is offline
More cowbell~
Silver Tier
 
Join Date: Oct 2008
Location: Steeltown
Age: 21
Gender: Male
Nature: Modest
Posts: 1,517

Quote originally posted by Masterge77:
So since this is called the "Metal toolbox", does that mean it works on G/S/C?

No, it's called that because the author's name is "Full Metal".

__________________
Pokémon Stardrop
Reply With Quote
  #4    
Old March 27th, 2010 (6:45 AM).
NarutoActor's Avatar
NarutoActor NarutoActor is offline
The rocks cry out to me
Silver Tier
 
Join Date: Jan 2009
Location: Brooklyn/Marlboro
Age: 22
Gender: Female
Nature: Bashful
Posts: 1,977
Send a message via AIM to NarutoActor Send a message via Windows Live Messenger to NarutoActor

Okay on topic, Good Job Full Metal.(blub of blubs XD) I will try out these tools. The functions have already been done, but if it puts a new spin to things, or has more features; I will definitely be using this.

__________________
~There are those people who understand hex, F the rest
Reply With Quote
  #5    
Old July 4th, 2010 (7:43 PM).
clarity clarity is offline
 
Join Date: Aug 2008
Gender:
Posts: 1

Hey, I download these programs and for some reason they wouldn't run for me. First they kept demanding dll files, then it suggested I reload the programs, and it still didn't work for me, for some reason. I'm sure it's me, though. Any idea what I'm doing wrong?

Reply With Quote
  #6    
Old July 4th, 2010 (8:14 PM).
ERROR ERROR is offline
 
Join Date: Aug 2009
Posts: 84

EXCELLENCE
omg thanks alot :D

and for the dll files that its asking for couldnt you just dl those off the internet?

__________________
Gen IV FC: 4772 1434 3503
Gen V FC: 2753 3643 9488
Reply With Quote
  #7    
Old July 7th, 2010 (7:43 AM).
iTeruri's Avatar
iTeruri iTeruri is offline
iAm
 
Join Date: May 2006
Location: The Nederlands
Nature: Relaxed
Posts: 277

Great, tools that may work on a mac. We need more of those!

Luckily I have xcode, so I may be able to compile these programs for mac using the source. However, I never tried it before, so I'm not sure if I'll be able to pull it off.

Reply With Quote
  #8    
Old May 22nd, 2011 (8:45 AM). Edited May 22nd, 2011 by Full Metal.
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal

For a proof-of-concept demo, here's a download link of my next project: Geared Sun. This doesn't require any dll's to be installed on your system, and it's a windows binary. Uses sqlite3, and basic io/stream. Open the program, enter a pokemon's name, and be amazed. Look at the source code, be more amazed. ( feel free to use any of the source provided if you want as well )*edit* if you've already downloaded and get the error about 'libgcc_s_dw2-1.dll' then re-download and it will be solved. I guess G++/GCC adds dependencies for dll's that I just didn't know about. But I statically linked them, so it's all good. { Click on the link in this post or first post for newer 'beta' ... }

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #9    
Old May 26th, 2011 (1:53 PM).
Team Fail's Avatar
Team Fail Team Fail is online now

burning passion

ModeratorCS
 
Join Date: May 2009
Location: yes
Age: 21
Gender: Male
Nature: Brave
Posts: 12,449

Quote originally posted by Geared Sun:
This is a rather complex project, and as such I do not have a planned release date so please don't ask. In the mean time however, feel free to contribute to the database ( so I can support GenII and GenIV, GenV scripting as well ( ? ) )
I know that PPRE has some commands in it, like movements, and whatnot, and are a bit more simple. Example:

moveleft 23

Moves the set target left 23 spaces.

There are also the lock and faceplayer commands. Maybe if there is a source for PPRE, you might be able to create a scripting engine for GenIV.

__________________
CONTENTS
001
  THE LAB
002
  VISITOR MESSAGE
003
  PRIVATE MESSAGE
004
  PUSHING BUTTONS
005
  PUSHING BUTTONS BLOG
006
  ALT
007
  PHO
008
  PAIR 1
009
  PAIR 2
010
  TWITTER
011
  TF'S MUSIC STUDIO
012
  PC DISCORD - #GENERAL
SEEN
151

OWN
151
DATA
CRY
AREA
QUIT
Reply With Quote
  #10    
Old May 26th, 2011 (10:24 PM). Edited May 26th, 2011 by keisky.
keisky keisky is offline
 
Join Date: May 2011
Posts: 1

thx for sharing. are good tools

Reply With Quote
  #11    
Old May 27th, 2011 (3:49 AM). Edited May 27th, 2011 by Full Metal.
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal

Quote originally posted by zacharyknoblauch:
try to download it again thats what i always do
Who exactly are you talking to?
Quote originally posted by Team Fail:
I know that PPRE has some commands in it, like movements, and whatnot, and are a bit more simple. Example:

moveleft 23

Moves the set target left 23 spaces.

There are also the lock and faceplayer commands. Maybe if there is a source for PPRE, you might be able to create a scripting engine for GenIV.

Hm...wasn't PPRE closed-source? Anyways, the problem is I wouldn't know how to export it into a format a NDS hacker could use in their games. Mainly because I don't hack/mod/whatevs NDS...
Quote originally posted by keisky:
thx for sharing. are good tools
Of course, I'm glad you like them.

FMGS - Update to the 'beta':
Edit "Script.gss" to contain ANY pokemon's name ( Correct spelling, no 'special' characters ) and separate the list of names by ;
EG:
bulbasaur;charmander;squirtle
Caps do not matter, and neither do spaces. It could also be
bulbasaur; charmander; squirtle ;
or even
bulbasaur; charmander; squirtle
^ absence of a semicolon on last line.
Also - I'm working on a way to drag and drop files, but atm, if argc is > 1, then sqLite does some funky things, and claims that the table "PKMN" doesn't exist...but it does. So idk why that is, but I'm working on it...
*link* http://www.mediafire.com/?bcbnp2adbi0lj2b

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #12    
Old July 28th, 2011 (8:31 AM).
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal

*BUMP*
I made a [ simple ] package of the GTK+ and GtkMM dll's for download. Just extract, then drag them into your system folder (%SYSTEMROOT%:\Windows\system32) or somewhere in your system path. I promise, no viruses are included that I'm aware of. You can scan them yourself before you merge with your system, or if you really don't trust me, download them manually from gtk.org and gtkmm.org
Anyways. The reason for all of this?
I decided to release Phoenix as it is right now.
Only two and a half things left to do.
1) Average palette modification ( Adjust h/s/v for all colors using a quadratic equation that 'slows down' once a color reaches a max or minimum value, and 'speeds up' when it's at the middle. By 'speed' I mean the amount of impact on one color by an adjustment )
2) Palette preview - load an [ indexed ] image, and view the image loaded with the palette.
2.5) Bugfix - Bitmap exporting isn't working properly and causes a crash. So don't use it.
Anyways, dl link for GTK&GTKMM dll's : http://www.mediafire.com/?0kcr6054kg2azgq // 10.8 megabytes. :\
Dl Link for the Phoenix ( And it's DLL ) : http://www.mediafire.com/?fe11rj74xspksfk // Less than a megabyte! :O

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #13    
Old August 11th, 2011 (3:04 PM).
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal

Geared Sun update!
Text and movement compiling works perfectly!
Want a demo?
SURE!
link
This file includes everything you need to run.
GS.sql
sqlite3.dll
geared sun.exe
As of now, this is just a demo. It's console based as well. There are no GTK/GTKMM dependencies, so don't be afraid to just give it a try. (:
Also -- I tried ( and failed ) to make sure you input a number at the 'menu'. So please, don't put something besides a number.
Here's what the demo does:
You enter 1,2, or 3.
1 - Create a new text item. You enter the name of the item, and the text.
2 - Create a new movement string. You don't have to include "END" ( end of movements ), but no harm done if you do. Separate different moves with a semicolon ( because you can't input new lines with the console. )
3 - Create a new command. So far this is just parsing. No data is generated yet. Basically it will extract the name of the command. Commands will need () and ; characters. In the format of : command(); command(argument); command(argument,argument); and so forth. ( like a normal programming language. ) As of now this is a test of my custom string class I made to help me out with parsing ya'lls stuff.
finally, when you're done toying around, enter a '0'. All the items you made will display their binary data. You can take this data and put it into a hex editor then check it with another script editor ( per se XSE or PKSV ). Here's a list of movements ( credits to Spherical Ice for the list -- thanks. (: ) more references here.

Spoiler:

#raw 0x0 = Face Down
#raw 0x1 = Face Up
#raw 0x2 = Face Left
#raw 0x3 = Face Right
#raw 0x4 = Face Down (Faster)
#raw 0x5 = Face Up (Faster)
#raw 0x6 = Face Left (Faster)
#raw 0x7 = Face Right (Faster)
#raw 0x8 = Step Down (Very Slow)
#raw 0x9 = Step Up (Very Slow)
#raw 0xA = Step Left (Very Slow)
#raw 0xB = Step Right (Very Slow)
#raw 0xC = Step Down (Slow)
#raw 0xD = Step Up (Slow)
#raw 0xE = Step Left (Slow)
#raw 0xF = Step Right (Slow)
#raw 0x10 = Step Down (Normal)
#raw 0x11 = Step Up (Normal)
#raw 0x12 = Step Left (Normal)
#raw 0x13 = Step Right (Normal)
#raw 0x14 = Jump2 Down
#raw 0x15 = Jump2 Up
#raw 0x16 = Jump2 Left
#raw 0x17 = Jump2 Right
#raw 0x18 = Delay1
#raw 0x19 = Delay2
#raw 0x1A = Delay3
#raw 0x1B = Delay4
#raw 0x1C = Delay5
#raw 0x1D = Step Down (Fast)
#raw 0x1E = Step Up (Fast)
#raw 0x1F = Step Left (Fast)
#raw 0x20 = Step Right (Fast)
#raw 0x21 = Step on the Spot Down (Normal)
#raw 0x22 = Step on the Spot Up (Normal)
#raw 0x23 = Step on the Spot Left (Normal)
#raw 0x24 = Step on the Spot Right (Normal)
#raw 0x25 = Step on the Spot Down (Faster)
#raw 0x26 = Step on the Spot Up (Faster)
#raw 0x27 = Step on the Spot Left (Faster)
#raw 0x28 = Step on the Spot Right (Faster)
#raw 0x29 = Step on the Spot Down (Fastest)
#raw 0x2A = Step on the Spot Up (Fastest)
#raw 0x2B = Step on the Spot Left (Fastest)
#raw 0x2C = Step on the Spot Right (Fastest)
#raw 0x2D = Face Down (Delayed)
#raw 0x2E = Face Up (Delayed)
#raw 0x2F = Face Left (Delayed)
#raw 0x30 = Face Right (Delayed)
#raw 0x31 = Slide Down (Slow)
#raw 0x32 = Slide Up (Slow)
#raw 0x33 = Slide Left (Slow)
#raw 0x34 = Slide Right (Slow)
#raw 0x35 = Slide Down (Normal)
#raw 0x36 = Slide Up (Normal)
#raw 0x37 = Slide Left (Normal)
#raw 0x38 = Slide Right (Normal)
#raw 0x39 = Slide Down (Fast)
#raw 0x3A = Slide Up (Fast)
#raw 0x3B = Slide Left (Fast)
#raw 0x3C = Slide Right (Fast)
#raw 0x3D = Slide Running on Right Foot (Down)
#raw 0x3E = Slide Running on Right Foot (Up)
#raw 0x3F = Slide Running on Right Foot (Left)
#raw 0x40 = Slide Running on Right Foot (Right)
#raw 0x41 = Slide Running on Left Foot (Down)
#raw 0x42 = Slide Running on Left Foot (Up)
#raw 0x43 = Slide Running on Left Foot (Left)
#raw 0x44 = Slide Running on Left Foot (Right)
#raw 0x46 = Jump Facing Left (Down)
#raw 0x47 = Jump Facing Down (Up)
#raw 0x48 = Jump Facing Up (Left)
#raw 0x49 = Jump Facing Left (Right)
#raw 0x4A = Face Player
#raw 0x4B = Face Against Player
#raw 0x4E = Jump Down
#raw 0x4F = Jump Up
#raw 0x50 = Jump Left
#raw 0x51 = Jump Right
#raw 0x52 = Jump in Place (Facing Down)
#raw 0x53 = Jump in Place (Facing Up)
#raw 0x54 = Jump in Place (Facing Left)
#raw 0x55 = Jump in Place (Facing Right)
#raw 0x56 = Jump in Place (Facing Down/Up)
#raw 0x57 = Jump in Place (Facing Up/Down)
#raw 0x58 = Jump in Place (Facing Left/Right)
#raw 0x59 = Jump in Place (Facing Right/Left)
#raw 0x60 = Hide Sprite
#raw 0x61 = Show Sprite
#raw 0x62 = Exclamation Mark
#raw 0x63 = Question Mark
#raw 0x64 = VS Seeker (No)
#raw 0x65 = VS Seeker (Yes)
#raw 0x66 = Casino Happy Face
#raw 0xFE = End Movements

Enjoy. (: ( also -- so far the movements are for FR only. haha. )

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #14    
Old August 17th, 2011 (8:25 PM).
sky_queen3's Avatar
sky_queen3 sky_queen3 is offline
Minusle Fangirl. ;)
 
Join Date: Feb 2009
Location: Australia
Age: 26
Gender: Female
Nature: Naive
Posts: 256

I can't get Full Metal Phoenix to work, I keep getting an application error, something about 0xc000007b click ok to close application. What have I done wrong?

__________________
Reply With Quote
  #15    
Old August 18th, 2011 (1:53 PM). Edited August 18th, 2011 by Full Metal.
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal

I see. Some things I need to know:
What OS are you running?
What version of Phoenix do you have( Is there still a picture in the middle? Are the HTML codes printed on a label just below the color button? Or does it look like the screenshot on the first post? )
What was the last thing you did before you got that error, or did you get that error when the program started?
How many palettes did you have open?
Sorry for the bug, I promise I will have it fixed ASAP, once I figure out what it is.
*edit* also, are you sure you have all the required DLL files?

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #16    
Old August 18th, 2011 (7:16 PM). Edited August 18th, 2011 by sky_queen3.
sky_queen3's Avatar
sky_queen3 sky_queen3 is offline
Minusle Fangirl. ;)
 
Join Date: Feb 2009
Location: Australia
Age: 26
Gender: Female
Nature: Naive
Posts: 256

I can't even start it. I'm running Windows 7 and I downloaded a 64 bit version of GTK+ Installer from the microsoft site.

Sucess, I did something wrong woth the files but I moved them into SysWOW64 and the program works now, thank you. :D

__________________
Reply With Quote
  #17    
Old August 19th, 2011 (4:34 AM).
Full Metal's Avatar
Full Metal Full Metal is offline
C(++) Developer.
Silver Tier
 
Join Date: Jan 2008
Location: In my mind.
Age: 20
Gender: Male
Nature: Timid
Posts: 805
Send a message via Windows Live Messenger to Full Metal

I'm glad to hear you got the issue resolved. Did you also install GTKMM?

__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #18    
Old August 19th, 2011 (7:03 AM).
sky_queen3's Avatar
sky_queen3 sky_queen3 is offline
Minusle Fangirl. ;)
 
Join Date: Feb 2009
Location: Australia
Age: 26
Gender: Female
Nature: Naive
Posts: 256

I did at the time but I moved the files to the wrong place.

__________________
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 10:16 PM.