Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Troy Lundin

Pages: [1] 2 3 ... 10
Maps In Progress / Re: Troy's Junk and Stuff
« 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.

Maps In Progress / Re: Troy's Junk and Stuff
« 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.

Maps In Progress / Re: Troy's Junk and Stuff
« on: March 15, 2013, 05:21:43 pm »
Medabots RPG - Rokusho Version.

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.

Map Requests / Re: Wario Land II
« on: March 14, 2013, 02:17:36 pm »
I wanted to extend compatibility of my Mapper program to support GBC games, so I decided to use this game for testing, even though it already has maps made for it. The area I chose was Chapter 2: Story 1.

First and foremost: The memory layout in GBC games is atrocious. It's an absolute hassle to move between the two Window RAM banks and the Hi-RAM bank.

This game has two modes of scrolling (that I have found in the first level). Horizontal scrolling, in which the camera will follow you horizontally and only allows vertical scrolling in increments, such as when you reach a certain point, the screen scrolls up/down an entire screen at once. Then, there is vertical scrolling, in which the camera will follow you vertically and horizontal scrolling is forbidden. These modes can be changed in real time. An example of each scrolling mode: Horizontal scrolling is used in the very first area of the level. When you go through the door, the next area uses vertical scrolling.

Changing between scrolling modes helps a bit when moving around, mostly because of this reason: The entire level is a single map. The doors don't take you to different maps, just different locations of the same map. Also, the vertical shift during horizontal scrolling can be done in real-time as well.

Another ball-buster is how locations are stored: In a DWORD in big-endian format. Yay. I am so used to reading hex in little-endian that it really slowed my progress. I constantly changed the wrong byte.

I couldn't find a spot that stored which coins were collected or which blocks were busted, which had me restarting when I collected a coin or broke a block accidentally. I only spent about an hour implementing GBC support into Mapper and mapping out this area, but I am pleased with the results. Anywho, I have included the map of the area in this post.

Notable Offsets
C6DB: Bit 6 cause the screen to shift up during horizontal scrolling, and vice versa for bit 7.
C6F2: Bit 4 enables horizontal scrolling, bit 5 enables vertical scrolling.

D53A: Actor location (DWORD, big-endian)
FFAD: Camera location (DWORD, big-endian, misaligned)

Mapping Tips/Guides / Re: Scene Manipulation and Rendering Tools
« 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 ( 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?

Maps In Progress / Re: Verifiaman gbc rips.
« on: February 02, 2013, 01:52:06 pm »
What is the exact name of that 'medabots' game? The only GBC one I can find are named Medarots and there are several of them. Thanks.

Maps In Progress / Re: Verifiaman gbc rips.
« on: February 01, 2013, 02:04:47 pm »
You should do some freemoving to grab the areas out of the camera's reach. It will make the maps more complete. I may be able to help with this.

Mapping Tips/Guides / Re: Scene Manipulation and Rendering Tools
« on: November 02, 2012, 04:29:12 pm »

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.

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.

Mapping Tips/Guides / Re: Scene Manipulation and Rendering Tools
« 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.

Gaming / Re: Is the PS3 a good Blu-Ray (+ benefits) player at this point?
« on: October 23, 2012, 10:45:29 pm »
I know this thread is old, but while I was reading it I remembered something I saw quite a while ago that still rings true to this day.

Link (Video)

Maps In Progress / Re: Troy's Junk and Stuff
« 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.

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

Mapping Tips/Guides / Re: Scene Manipulation and Rendering Tools
« on: September 18, 2012, 11:20:49 pm »
Including my Mapper 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 program (Mapper (Revision 0) [18SEP12].exe)
  • An image help file (MapperHelp.png)
  • A settings file (Mapper.txt)

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.

Mapping Tips/Guides / Re: GIMP 2.8.2 - Basic questions
« on: September 18, 2012, 11:12:00 pm »
PS: I attached an image showing what I mean.

I've always giggled at the selection lines when selecting a color. I know, I'm weird. :D

Edit: I understand what everyone is saying. Using the GIMP method, you would have to capture each layer separately, so that you can layer them in GIMP. With the screenshot method, you could just have the sprite layer disabled, so when you screenshot, you are actually grabbing multiple layers at a time. I think this is what Terra means.

Mapping Tips/Guides / Re: GIMP 2.8.2 - Basic questions
« on: September 17, 2012, 09:53:04 pm »
If he doesn't remove the overscan color on each screencap, then it will overlap the main image. It has to be done for each screencap.

When a game is localized or they release a revision, sometimes the memory addresses of certain values can change.  Usually the address is somewhere close to the code though.  For example I found a Phantasy Star II code that I had to move +/- a few bytes to get working on the particular revision I was using.

A great example of this is Crystal Chronicles on the DS. Not only are the memory addresses different for each region, half of them use pointers while the other half don't. When I created my save editor of the game I wasn't very amused. :D

Pages: [1] 2 3 ... 10