VGMaps

General Boards => Maps In Progress => Topic started by: Troy Lundin on June 07, 2012, 09:14:06 pm

Title: Troy's Junk and Stuff
Post by: Troy Lundin on June 07, 2012, 09:14:06 pm
This will be a depository of my junk and stuff related to VGMaps. Since my OCD won't let anything ever be finished, I decided to sort my projects by submission (green) or lack thereof (red). This ordering is likely to change in the future. :D


System   Game                                         Capture        Compiled   Tagged   Notes
(GBA)    Final Fantasy: Dawn of Souls (FF2)       388 /  388 (100%)    100%       90%    Thanks to Trop for compiling. Missing shop data.
(GBA)    Sword of Mana                              ? / 2221 (  ?%)    100%      100%    Still missing many Morning, Evening and Night versions.

(GBA)    Baldur's Gate: Dark Alliance              27 /   27 ( 99%)     50%        0%    No object layer.
(GBA)    Final Fantasy: Dawn of Souls (FF1)       212 /  212 (100%)      5%        5%   
(GBA)    Final Fantasy IV Advance                 495 /  495 ( 99%)      0%        0%    Some scenes are missing the object layer.
(GBA)    Final Fantasy V Advance                    2 /    ? (  ?%)      0%        0%    Found a quite hack-y way of capturing this. Very tedious.
(GBA)    Final Fantasy VI Advance                 430 /  430 (100%)      0%        0%   
(GBA)    Golden Sun: The Lost Age                 324 /  324 (100%)      0%        0%   
(GBA)    Super Mario Advance 4                      ? /    ? (  ?%)      ?%        0%   
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 07, 2012, 09:14:53 pm
The Sword of Mana maps have been bugging me since they were finished. The main point of irritation comes from the scenes being incomplete. Some games restrict camera movement while others have the camera follow the actor no matter what. Games that restrict the camera have to have a way to tell when the camera should stop scrolling, right? Games will usually store this in an easy to find location where the value is the minimum or maximum coordinate allowed for the camera. Sword of Mana was just a bit different.

How Sword of Mana Is Different

Sword of Mana doesn't use a simple system for restricting camera movement, or at least that's what I thought after hours of perusing it's memory. For the life of me I could not find the values for the restrictive camera coordinates. Then, I noticed a pointer at 0201C98C. The problem with this pointer was that it pointed to the ROM portion of the memory. For those that don't know, if you change a value in the ROM portion of memory you actually change the ROM itself. If you are not careful you can permanently damage or corrupt your ROM. So, I quickly made a copy of my ROM and headed to the address being pointed to.

Upon arrival, I immediately noticed the pattern of bytes presented to me. The pattern told me that each "block" of code was 24 bytes in length. The blocks weren't too complicated looking, as some of the bytes were zeroes, meaning they didn't do anything. My brain being the way it is, I noticed another pattern in this specific block. There were two bytes, one was 0F and the other was 03. These values stood out because of the following: the scene I was looking at had minimum camera coordinates of 120 on the x-axis and 24 on the y-axis. See the correlation yet?

0F, of course, equals 15 in decimal. 15 multiplied by 8 equals... 120. Omg. Did I just find the location of the camera restriction? Let's check the other one. 3 multiplied by 8 equals... 24! Yes! I found it! Oddly, I had to edit the ROM directly but I'll take what I can get. By the way, the 8 from earlier is a very basic value in most things. I just it because the size of tiles in most games is 8 pixels by 8 pixels. So, in essence, 0F means 15 tiles from 0.

So, now that I found that I went in to capture the rest of the scenes. I set both values from earlier (0F and 03) to 00 so that the camera will be able to go to the very minimum point. When I reloaded the area, I could indeed move the camera past the previous restrictions (YES!) but another problem arose. The camera could now no longer move south as far as it could before. Weird. I took another look at the block in the ROM and checked out the next two values past 0F 03. They were 2C and 20. Using the method from before, I multiplied both values by 8 and came up with 352 and 256, respectively.

From this, I deciphered that the first set of values (0F and 03) determined the minimum tile the camera can move to. The second set of values, 2C and 20, determined the size of the area. Added together like so: 352 + 120 = 472, 256 + 24 = 280, these values determine the maximum tile the camera can move to.

Now, I already knew the total size of the area was 480 by 288 from before. The values I calculated seem to be 8 pixels off on each axis. For the second set of values, I figure if I set them to 00 it would mean one tile and not zero tiles. That actually gives me another tile (or 8 pixels) to add on the totals. Finally, I arrived at 480 by 288.

This is fantastic! I can now capture all the missing areas in each scene. :D

Here are some screens that show the values:
(https://i.imgur.com/PzRBUs.png) (http://imgur.com/PzRBU)(https://i.imgur.com/x3vECs.png) (http://imgur.com/x3vEC)(https://i.imgur.com/1RIBVs.png) (http://imgur.com/1RIBV)

Example of the difference:
(https://i.imgur.com/afK6Ls.png) (http://imgur.com/afK6L)(https://i.imgur.com/3GONys.png) (http://imgur.com/3GONy)
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 11, 2012, 12:24:20 pm
Been working on a program to make tagging a map ridiculously quick. Once it's finished, which should be today, I'll start compiling and tagging Final Fantasy: Dawn of Souls (FF1).
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 12, 2012, 04:17:40 pm
Ok, started work on FF1 for Dawn of Souls. Now, I have a question for my fellow mappers. In the attached image, which of the blue sections looks the best? I cannot decide which one looks the best! Ugh.
Title: Re: Troy's Junk and Stuff
Post by: TerraEsperZ on June 12, 2012, 04:43:17 pm
Personally, I'd go with the second blue section, with the letters alone and a small space between them and the items they point to.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 12, 2012, 08:47:43 pm
Ok, this is what I went with. This is an example of what I want to go with. One more question, though. As you can see in this image, some of the adjacent colored squares have their borders removed at the collision site, while others do not. Which looks better? With the borders or without?

(https://i.imgur.com/XuIUqs.png) (http://imgur.com/XuIUq)
Title: Re: Troy's Junk and Stuff
Post by: TerraEsperZ on June 12, 2012, 09:30:11 pm
Definitely with, if for no other reason than that it makes it obvious that they're separate elements.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 13, 2012, 06:09:55 pm
Ok, organized a town. Pretty pleased with it. I am still deciding whether to show the shop lists like they are in the image or consolidate them in a single table.

(https://i.imgur.com/6N3SFs.png) (http://imgur.com/6N3SF)
Title: Re: Troy's Junk and Stuff
Post by: Paco on June 13, 2012, 10:39:01 pm
Ok, organized a town. Pretty pleased with it. I am still deciding whether to show the shop lists like they are in the image or consolidate them in a single table.

(https://i.imgur.com/6N3SFs.png) (http://imgur.com/6N3SF)

It's fine like this. I'm liking it ^^ *drool*
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 14, 2012, 06:03:23 pm
Made a video showing my process of creating Elfheim. I messed up on the shop lists at first (vertical align was set to Middle instead of Top) but didn't care enough to remake the whole video. :D

http://youtu.be/_06dVq9aUE0 (http://youtu.be/_06dVq9aUE0)
Title: Re: Troy's Junk and Stuff
Post by: Paco on June 15, 2012, 10:59:40 am
Can you tell me more of this "Map Tagger" Program you're using. That look interesting.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 15, 2012, 02:00:53 pm
I guess I didn't mention it in my previous post, but it's a program I developed out of necessity. I got tired of using Paint or similar programs to try and organize scenes, then try and label them. This program gives me a non-nonsense way of doing that.

Basically, there are five layers: Images, Items, Events, Transitions, and Other Text. Each layer is independently drawn. When I want to label items, for example, everything is drawn to the Items layer. Then, all the layers are combined to form the final image. Using different layers for each set of labels makes it very simple to remove labels without ruining other parts of the map. Not only can I export to a BMP or PNG file, but I can save the layers in a single custom file. The custom file saves the integrity of each layer so I can load it up later and the layers will still be separate.

There are still a few bugs and missing features. The coding is pretty forced as well, but that's what I get for rushing it. :D
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 16, 2012, 11:52:17 am
Spent all of yesterday performing a complete overhaul on my Tagger program. Previously, it would start to lag in the drawing process after ~50 tags, now it takes ~2500 tags to reach a 100ms draw time. Yay! :D
Also, updated the way it saves tags so older files won't load anymore, I'll have to waste time remaking those.

In the meantime, I managed to squeak out Cavern of Earth and Sunken Shrine. Format was updated a bit. I'm happy with this format for non-towns. Also, do you think it's necessary to mark where the scene loops around as in Sunken Shrine 5F?

Changed the format a bit. Here are the dungeons I have finished. I'll update this post as I go.

(https://i.imgur.com/ivVyNs.png) (http://imgur.com/ivVyN)(https://i.imgur.com/uhBj3s.png) (http://imgur.com/uhBj3)(https://i.imgur.com/7zDlHs.png) (http://imgur.com/7zDlH)(https://i.imgur.com/IJbPZs.png) (http://imgur.com/IJbPZ)(https://i.imgur.com/PD0D5s.png) (http://imgur.com/PD0D5)

Imgur didn't like my world map so I put it up on MediaFire: http://www.mediafire.com/i/?r9sr53f3kdijdod

Also, I was looking at the World Map for the original FF1 and noticed that I have credit for it. I don't remember submitting a map for that game. Did I just forget?
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 17, 2012, 03:39:01 pm
While doing the Mount Gulg map, I discovered the greatness that is shared chests. Some chests in this game are linked, meaning if you open one chest all the linked chests will also open. If you ever cam across an empty chest, this is the reason.

Now, when I discovered this I went and checked out Paco's maps for the original FF1 to make sure I wasn't going crazy. Paco's map for Gurgu Volcano has shared chests marked with the same number, but then I noticed three empty chests on B5. Now, I'm not positive if the shared chests in the original FF1 appear open or if you open them and they are empty. Those three empty chests on B5 are actually linked with another chest on B4. The shared item is a Gold Needle (Pure in original?).

Paco, you marked them as empty. Could this be a mistake?
Title: Re: Troy's Junk and Stuff
Post by: Paco on June 18, 2012, 09:33:15 am
While doing the Mount Gulg map, I discovered the greatness that is shared chests. Some chests in this game are linked, meaning if you open one chest all the linked chests will also open. If you ever cam across an empty chest, this is the reason.

Now, when I discovered this I went and checked out Paco's maps for the original FF1 to make sure I wasn't going crazy. Paco's map for Gurgu Volcano has shared chests marked with the same number, but then I noticed three empty chests on B5. Now, I'm not positive if the shared chests in the original FF1 appear open or if you open them and they are empty. Those three empty chests on B5 are actually linked with another chest on B4. The shared item is a Gold Needle (Pure in original?).

Paco, you marked them as empty. Could this be a mistake?

This is good possible (I'm only a Human not a Robot. ^^). Have to test it out and if its indeed so, then redo the Map and resubmit it in.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 18, 2012, 01:03:47 pm
This is good possible (I'm only a Human not a Robot. ^^). Have to test it out and if its indeed so, then redo the Map and resubmit it in.

If you can find where treasure is stored in memory, it would be simple to check. All four chests are linked to the same bit.
Title: Re: Troy's Junk and Stuff
Post by: Paco on June 18, 2012, 01:26:06 pm
I'm not a Expert for complicated Stuff like Memory and such. *walk away*
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 21, 2012, 01:15:46 am
After a major overhaul of my Tagger including many additional QoL features, I present to you: Earthgift Shrine.

Check out that desert. That was fun to do. :D

(https://i.imgur.com/JWkAQs.png) (http://imgur.com/JWkAQ)
Title: Re: Troy's Junk and Stuff
Post by: Paco on June 26, 2012, 01:04:03 pm
fixed the error you found and will resubmit it soon. Did you find more Error on my Maps (i hope not. ^^)?
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on June 26, 2012, 03:03:49 pm
I haven't looked over your other maps. I just noticed that the chests were shared and wanted to see how you handled it. I don't remember any chests that are actually empty. If the chest was already open, then it was a shared chest.

I made a list of which bit in memory each chest refers to. There are some bits that I haven't discovered yet, not sure why. I made the listing for the state editor I made. I'll go through it again and see if the missing bits actually refer to anything.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on September 22, 2012, 03:30:08 am
Been real busy with work and trying to get my programs up and running (damn you Tagger!).

Here is another effort at a town map. Enjoy.

(https://i.imgur.com/besUys.png) (http://imgur.com/besUy)

Edit: Ok, final effort. Looks good enough to submit.

(https://i.imgur.com/5c3tCs.png) (http://imgur.com/5c3tC)
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on March 15, 2013, 05:21:43 pm
Medabots RPG - Rokusho Version.

Completed:
Found a way to freely move around maps.
Disabled random encounters.
Disabled a single timer that controlled all background animation.
Found memory offsets for camera location, actor location, and map ID .
Found memory offset that will reload the map, allowing instant map transitions.

Capturing begins!

Edit: Got through 192 scenes. Everything after 00BF just gave a frozen white screen. This has to be the fastest I have ever captured a game.

More info:
Each scene has a maximum size of 512x512. Moving past that just loops. I have just captured the raw scenes. I probably will just post them raw and let someone else piece them together.
Title: Re: Troy's Junk and Stuff
Post by: snesmaster on March 15, 2013, 09:22:01 pm
Sounds like you found a lot of useful codes to make the mapping much easier.  I never played this game back in the day.  I may have to check it out sometime.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on March 16, 2013, 12:07:49 am
I don't see a point in mapping a game unless I have (at least) a Freemove code. I usually have to find them myself.
I see no point if you can't be sure you captured the entire map.

I used three codes:

0300640B 0000   No Random Battles
03006415 0000   Timer for background animations.
0300643c 001E   Increases movement speed and allows walking through objects. Transitions still work.


Here are other offsets:

There are three spots for camera coordinates. Each one belongs to a layer (BG0, BG1, et cetera). I just used this one.
0300057C   Camera X-coordinate.
0300057E   Camera Y-coordinate.

03005312   Setting this to 03 will reload the map. Setting it to 01 will move you in the direction you are facing, bypassing objects.
03005FDE   Map ID

03006432   Actor X-coordinate
03006434   Actor Y-coordinate


The actor location, camera location, and map ID were used in my mapper program. Finding the byte that reloads the map is what made this fast. Here was the process. I was using write mode on my mapper program.

0. Set map ID to 00.

1. Reload map (change byte to 03). This loads the map corresponding to the current map id.
2. Capture map.
3. Hit Save button.
4. Increment map ID.
5. Back to step 1.

Because the maps were small (all smaller than 512x512), they took maybe 15 seconds each to capture. It was pretty ridiculous, to be quite honest.
Title: Re: Troy's Junk and Stuff
Post by: snesmaster on March 17, 2013, 02:15:51 pm
Kewl, thanks for sharing all that.  I also try to find a walk through walls code for any game I map, as well as invincibility so the enemies won't bump me around when I'm trying to stand in a certain spot to capture the map.  Some games I'm able to find a code that stops the animations easily, other games it takes a while, or I just give up and try to pause on the same frame before capturing each screen if it is just a simple animation.  I have not tried mapping any games yet for any of the hand held systems.  So far I have just done games for NES and SNES.
Title: Re: Troy's Junk and Stuff
Post by: Troy Lundin on March 18, 2013, 12:40:29 am
The only information I will never map without are the coordinates and the map ID. Lucky for me, every single game contains this information somewhere in it's memory. It has to, so the game know where you are and what map you are on. Once it's found, you can make perfect maps, as if you just ripped them straight from the rom itself.