The original purpose of this page was to show computerstickman quality samples of my work. Now, it has become a documentation of my programming style and tools. The best way to see the highest resolution is to click on the image to open the picture viewer, then right click on the image to select open in new tab. I will continue to update this article as I find more to add. I hope you enjoy this article.
This is my modification of CINNABAR ISLAND to look like a port city at the end of a river in order to represent LAS PEGASUS as depicted on the map(s) that I have chosen. There are a few other map locations that I have changed, but only for the purpose of staying true to the map(s) that I am working from.
I was working from town to town trying to keep track of placement as I went, but quickly decided to use my tables to keeping track of progress on wild pony placement. I found making a map to visually keep track helped to figure out placement, and to show the relationship of the placements. I found it also had the benefit of comparing maps, and easy map edit planning. This made it easy to find location appropriate names.
This is a sample of one of the tables (actually two sharing the same identifiers in the left few columns) that I can dump data into and out of. For this tab I take the data dumped from the corresponding section of the ROM, and I dump it into the column just left of the thick yellow column or into the lighter green column. The darker green and lighter green columns are actually data that I am sure of and checked off. this shows that I only have the yellow text section left. Since it is a solid color horizontally that means it is considered a single data field. In this case it represents a single string of text characters. This is one of my favorite tables, because it includes a complex set of interlocking formulas to take several pieces of data to fill in several columns of data that place and size the shadows on the image in the "Ponydex Info Page2" section. it uses measurements of the pony sprite, sizes of real horses, trainer sprite, and an average height for the trainer for that age.This part of what I do may seem complicated, but is just a compilation of mostly simple cell formulas added together. First I identify the data location and length of data set per entry, and line the data in columns in HexEdit (4.0) by adjusting number of columns to a number that helps read it. There are arrows at the top of the columns of data that control the number of columns, column grouping, and offset (lines up the starting byte on column 00). Then, I use the available hack tools and/or what I know of the translated data values to help decipher what each data field represents. I copy a row of data from the ROM to my table to help label the columns and test my cell display formulas to show each piece of data in the most meaningful manner. Once all columns are identified I simply copy the row down to display the translations for the rest of the entries. At the top, I use a row each to display the data, translate the data, hold the new data to be used, and add the new data to the old to build the updated data string. The data shown at the top is selected by the row number typed in the dark green cell near the upper left corner. I made two simple keystroke macros to quickly scroll up and down the data table using upper and lower limits listed in adjacent cells.
Ponydex Info Page1
This is one of the Ponydex pages I filled in using spriting, data from my tables, hexadecimal level text editing, and repointing with macros in the hex editor I use. The fluttershy you see uses color sampling and pixel manipulation to try to look like the picture that was available for that Ponydex entry. I "eyed it" and tried to make it look as much like the picture as I could. The next picture is the one that I found to work from and can be found here ( YFluttrshy ). I start with a solid Green (or magenta) 64x64px 1 color image, and sample the colors from pictures of the pony being worked until I had a maximum of 16 colors. Since those sprites require a limit of 15 colors plus a transparent color, I had to narrow the pallet down by averaging between colors quite a few times. To help keep the similar colors straight, I found it helpful to order them by purpose. Finally, I modified the pixels till it resembled the model pictures while adjusting line placement to add room for important details. In this case it yielded the third picture shown for this section, which is the one I imported to my game. Being a compressed image, the size it takes up in the file varies. Since I adjusted the sprite data fields to accommodate a fair level of complexity, I have not had any problems importing sprites. For the (U)1.1 ROM I reduced the field for each of the front and back sprites to 500h(1,280_Bytes), but so far I have used up to about 400h(1,024_Bytes).
Ponydex Info Page2
The top row of this image is from Ponymon Dawn 0.4, while the bottom row is from my project. This shows many things at once. The shadows are managed as mentioned above in "Tables". It also shows that I went with the colors of the elements of harmony for the types. The type sprites use longer names to make unfamiliar ones easier to guess.I have only started to redistribute the Ponymon so the catch areas will not solidify till after the Ponymon are all added.
Graphics and Fonts for game conversion
This is a small sample of the graphics and font mods (Top:Dawn 0.4.0 Bottom:my ROM). I used a set of graphics rules across the different fonts of the Firered game to fix various font and type sprite font errors from Firered.
Hex Editor Sample
This image shows an example of one of my standard field size text entries. this is the same text that fills the info on the Ponydex sample from "Ponydex Info Page1" above. The advantage I got from modifying the character table in my hex editor can be seen here. For the fixed size text fields, all I have to do is adjust the columns displayed with a slider at the top of the display area to a predetermined number. This lines up the beginning of the data fields on the left side making it easy to edit.
Types and Type Effects
This table shows the effectiveness of the combined types of Firered and my project at the time the picture was made. The effectiveness is marked in hexadecimal as it is in the ROM, and is color coded for quicker reference. Though I have not made a data in and out location on this table, I believe I will add it if it will help to update changes to the data.
You may notice a band between "Dark" and "Loyalty" in both directions on this table. The names on the table are in order according to the hexadecimal designation. The bands represent the designations used by the sprites in middle of the Type sprites on the next image. The next image also shows the type sprites that were added. To add a type also takes adding a sprite size and location reference to a type sprite pointer table.