• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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
    17
    Years
    • Seen Apr 26, 2014
    Note: This project is no longer active. You can get the source here: https://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):

    https://img24.imageshack.us/img24/5141/classicmap3.png
    https://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:
    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.
     
    Pretty cool. More or less Advanced Map for the GB games.
     
    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.
     
    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.
     
    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
     
    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. :)
     
    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."
     
    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:

    [PokeCommunity.com] [WIP] ClassicMap - A Pokemon Red/Blue Level Editor


    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.
     
    Metalmap? :P Or Gameboy Colour Map? :D What if we want certains colours like the how the gameboy has that effect, is that editable?
     
    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.
     
    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.
     
    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?
     
    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.

    https://www.mediafire.com/?377o5521i20kqdz
     
    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.

    https://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.
     
    Darn, just when I was hoping this would be completed soon... Truly a shame you're giving up on this :/
     
    Back
    Top