• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: [WIP] ClassicMap - A Pokemon Red/Blue Level Editor

Lin

JohtoMap/ZOLE Creator
51
Posts
16
Years
  • Age 29
  • Seen Apr 26, 2014
Note: This project is no longer active. You can get the source here: http://www.mediafire.com/?377o5521i20kqdz Feel free to make any modifications to it. You may not sell it or make any money off of it at all.

Hi there. Some of you may notice the unfinished Pokemon G/S level editor I released (JohtoMap), and I'm here to bring you a new editor for R/B. For the same reason as JohtoMap, ClassicMap is going to be made to make hacking these games much easier. As you guys know, no decent editor out there that can do all the things that AdvanceMap does exists.

So what is my goal? To create the best public Pokemon R/B level editor. I am posting it here unfinished because I want to include all realistic suggestions. Here's what I have so far:

-Map editing
-Event editing
-Wild Pokemon editing
-Displaying the town map
-Everything loading from the ROM (Includes town map marker graphics and all other game graphics used), which also includes Pokemon Names

I plan to have the following:

-Fly point editing
-Town map editing (The data IS compressed but it's weak)
-Map name editing (Although... Not as important as the rest of the stuff)
-Header editing, including data repointing
-Connection editing with straight-forward editing like AM has it, not JM

Some screenshots (As usual, not 100% up-to-date):

http://img24.imageshack.us/img24/5141/classicmap3.png
http://img262.imageshack.us/img262/3199/classicmap4.png

This project will be open-source, so if you know C# and there's no chance of me adding it, perhaps you could. Also, you'll notice this looks a lot like JohtoMap. I did actually copy the layout from JM, and even use bits of code from it. It uses the same icons, and everything to make ClassicMap look like JohtoMap.

One more thing: I've found all this data on my own. The only thing I haven't found on my own is the "Event Displacement" formula or the text table. This means I will fully understand data formats and can make it a lot easier to edit.

But that's it. Hopefully since other WIP projects are allowed, this one will be.

~Lin
 
Last edited:

miksy91

Dark Energy is back in action! ;)
1,480
Posts
15
Years
Looks pretty amazing indeed :)

Here are some suggestions:

You could add support for Yellow as well. The map header locations are different but I've made a complete list of them including the event data for some of them.
If you want, I can PM the list for ya.

You could also make it so that it displays the pokemon in "wild pokemon changer" -menu in alphabetical system instead of the way they're shown in the game.
And for wild pokemon menu, also include the location of start of the grass pokemon data so that it could be repointed easily.

"Map name editing (Although... Not as important as the rest of the stuff)"
I'd say, don't include that feature. It can be done so easily without any editor so if you can't do something as simple as that, you really shouldn't be hacking 1st gen in the first place. I myself had hard time learning how pointers worked and afterwards, how to change the locations of events in yellow.

By the way, where did you find the start of "town map events" data ?
I mean, the way you change the locations of different maps shown in town map.
 

Lin

JohtoMap/ZOLE Creator
51
Posts
16
Years
  • Age 29
  • Seen Apr 26, 2014
Looks pretty amazing indeed :)

Here are some suggestions:

You could add support for Yellow as well. The map header locations are different but I've made a complete list of them including the event data for some of them.
If you want, I can PM the list for ya.

You could also make it so that it displays the pokemon in "wild pokemon changer" -menu in alphabetical system instead of the way they're shown in the game.
And for wild pokemon menu, also include the location of start of the grass pokemon data so that it could be repointed easily.

"Map name editing (Although... Not as important as the rest of the stuff)"
I'd say, don't include that feature. It can be done so easily without any editor so if you can't do something as simple as that, you really shouldn't be hacking 1st gen in the first place. I myself had hard time learning how pointers worked and afterwards, how to change the locations of events in yellow.

By the way, where did you find the start of "town map events" data ?
I mean, the way you change the locations of different maps shown in town map.

Thank you, the first bit of feedback I've actually received. I'll look into yellow support; it should be pretty easy to add. As for the wild Pokemon editor, it displays Pokemon how the Pokedex displays them. I can't really change it because the combobox and way things are displayed depends on a table in the ROM, which I use, so it'll have to be like that.

As for the town map data, it's very simple. I did a quick debug using BGB and found it. The maps the town map marker uses are at 0x70F11 (+ the selected spot). Next, the table for the X/Y locations and name pointer... Well, I'll just give you the code...

Code:
			int x = 0, y = 0;
			byte map = gb.ReadByte(0x70F11 + (int)nTownMap.Value);
			nMap.Value = map;
			int namePointer = 0;
			if (map <= 0x25)
			{
				gb.BufferLocation = 0x71313 + map * 3;
				byte location = gb.ReadByte();
				x = (location & 0xF) * 8 + 12;
				y = (location >> 4) * 8 + 4;
				namePointer = gb.ReadByte() + ((gb.ReadByte() - 0x40) * 0x100);
			}
			else
			{
				gb.BufferLocation = 0x71382;
				while (true)
				{
					if (gb.ReadByte() > map)
					{
						byte location = gb.ReadByte();
						x = (location & 0xF) * 8 + 12;
						y = (location >> 4) * 8 + 4;
						namePointer = gb.ReadByte() + ((gb.ReadByte() - 0x40) * 0x100);
						break;
					}
					else
						gb.BufferLocation += 3;
				}
			}

Anything looking like gb.ReadByte() + ((gb.ReadByte() - 0x40) * 0x100); means it's a traditional pointer. Hope it helps.
 

Platinum Lucario

The Legendary Master of [color=#D8D48C]Light[/colo
1,607
Posts
16
Years
Hm... seems to me like another map editor for the 1st generation games... oh wait, it is! At least I really do hope this map editor becomes better than Redmap, BluMap, and PokeMap. However, wouldn't it be a good idea to also add support for Pokémon Yellow as well (like what Miksy91 said)? Because those three sure do fit in the 1st generation saga. It can all be made into a map editor that would work very much like what AdvanceMap does. ;)

It could also be possible to add support for Pokémon Crystal in JohtoMap as well. ;)

Oh wait! I have another great idea! It could also feature a built in hex editor as well, so you can fix any problems with maps or even any routines that are used.
 
3,830
Posts
14
Years
  • Age 26
  • OH
  • Seen Feb 26, 2024
This looks like a wonderful tool. But, with the town map editor, will you be able to edit the towns positions, or just the graphics?
 

sky_queen3

Mimikyu is cute :3
271
Posts
15
Years
Looks like it's still being made. :) I want to have a play for fun. Being a tool user I'll never get past the playing stage but still it'll be nice. :D
 

Shiny Quagsire

I'm Still Alive, Elsewhere
697
Posts
14
Years
Nice to see some C# tools. I program C# also, and I'm actually interested in a few pieces of code. As I don't really do Gen 1 and 2 hacking, I'm not even going to try to replicate this awesome WIP. In other words, I hope this gets finished. :)
 

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
You know what?
Instead of ClassicMap, you should name this KantoMap, since, like GSC's main region is Johto, RBY's main region is Kanto. In the future, people will be able to look back and say, "Oh, yeah, JohtoMap and KantoMap? They must be by the same author."
 

Lin

JohtoMap/ZOLE Creator
51
Posts
16
Years
  • Age 29
  • Seen Apr 26, 2014
You know what?
Instead of ClassicMap, you should name this KantoMap, since, like GSC's main region is Johto, RBY's main region is Kanto. In the future, people will be able to look back and say, "Oh, yeah, JohtoMap and KantoMap? They must be by the same author."

:P The only reason JohtoMap is called JohtoMap is because I couldn't think of another name. I'll look into that though XD

Sorry for the lack of updates. I've been pretty busy in real life, but should resume work soon (In other words: When I stop being lazy). I have actually done some other stuff but haven't posted it yet. For example:

classicmap5.png


I still have to figure out how spritesets work. Also, the sprites in that image are not transparent but are in the final. Thanks for the support you guys.
 

sky_queen3

Mimikyu is cute :3
271
Posts
15
Years
Metalmap? :P Or Gameboy Colour Map? :D What if we want certains colours like the how the gameboy has that effect, is that editable?
 

Lin

JohtoMap/ZOLE Creator
51
Posts
16
Years
  • Age 29
  • Seen Apr 26, 2014
Meh... I hope I don't disappoint anyone here, but I may not finish this. It's extremely boring creating a map editor for a game that's been hacked and figured out to death. I'm probably going to release the source and the program as it is, hoping somebody else will finish it. It's pretty organized so I'm sure atleast SOMEBODY will be able to do it.
 

Pingouin_7

Guest
0
Posts
It's extremely boring creating a map editor for a game that's been hacked and figured out to death.

But there's no map editor that lets us edit the whole game.
Pokemap doesn't even let us edit all of the wild Pokémon data.
 

tkallab

Should have been in Dissidia
1,031
Posts
16
Years
This tool is exactly what I've been looking for! Please continue creating it, you wonderful sir you.
Also, does this mean that this will be a scripting tool too, or only for mapping and changing the events, like AdvanceMap?
 

Lin

JohtoMap/ZOLE Creator
51
Posts
16
Years
  • Age 29
  • Seen Apr 26, 2014
Alright. I don't plan on picking this up as I've been too busy with ZOLE and want to hack other games, so here's the source. Just be sure to give me credit for everything that's already there if you plan on working on it.

http://www.mediafire.com/?377o5521i20kqdz
 
3,830
Posts
14
Years
  • Age 26
  • OH
  • Seen Feb 26, 2024
Alright. I don't plan on picking this up as I've been too busy with ZOLE and want to hack other games, so here's the source. Just be sure to give me credit for everything that's already there if you plan on working on it.

http://www.mediafire.com/?377o5521i20kqdz
Had a peek through the code, and all I have to say is... Amazing work!

It is a shame to see such an awesome project given up on.
 

tkallab

Should have been in Dissidia
1,031
Posts
16
Years
Darn, just when I was hoping this would be completed soon... Truly a shame you're giving up on this :/
 
Back
Top