• 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?".
  • 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.

The (Un)official Pokemon GB/C Hacking Support Thread

Status
Not open for further replies.
17
Posts
16
Years
    • Seen Mar 29, 2016
    I am wondering
    1.) where is the SGB border at in Pokemon Red (GB)?
    2.) where are all the SGB palettes?
    3.) what do you use to edit the SGB border, and if it is tiles versus a bitmap, then what bpp (bits per pixel) levels is it at?

    The goal is to get the japanese blue version's data into a red version rom that will report back as Pokemon Green and Bulbasaur now shows up on the title screen by the way. From there, I intend to also disassemble the rom (and I am wondering if ida pro will work for that) so that I can also add pokemon numbers chikorita - celebi to the list as well as surprises when people do some of the glitches and get a second generation pokemon instead (this is to fill some of the empty slots) but my main concern is that I know very little about the super gameboy features though the gameboy color documentation is out there on the net and if there is an archived answer to the question could someone kindly redirect me to that point, or if there isnt one, could someone provide the info needed please, it would be very much appreciated.
     

    Sawakita

    Not Invented Here
    181
    Posts
    13
    Years
    • Seen Nov 17, 2019
    I am wondering
    1.) where is the SGB border at in Pokemon Red (GB)?
    2.) where are all the SGB palettes?
    3.) what do you use to edit the SGB border, and if it is tiles versus a bitmap, then what bpp (bits per pixel) levels is it at?

    The goal is to get the japanese blue version's data into a red version rom that will report back as Pokemon Green and Bulbasaur now shows up on the title screen by the way. From there, I intend to also disassemble the rom (and I am wondering if ida pro will work for that) so that I can also add pokemon numbers chikorita - celebi to the list as well as surprises when people do some of the glitches and get a second generation pokemon instead (this is to fill some of the empty slots) but my main concern is that I know very little about the super gameboy features though the gameboy color documentation is out there on the net and if there is an archived answer to the question could someone kindly redirect me to that point, or if there isnt one, could someone provide the info needed please, it would be very much appreciated.
    In pokemon Red (USA version):
    1) SGB-Border graphics start at 0x72FF8, in 2BPP (gameboy format).
    2) SGB palettes are three and start respectively at 0x72F88, 0x72F98, 0x72FA8.
    3) If you want to edit the GFX you can use a tile editor like TileLayerPro. If you want to edit the tile arrangement, its data starts at 0x72788 and uses 2 byte for each tile arrangement (screen):
    - 1st byte = tile index number
    - 2nd byte = tile flag-specifics (flipped horiz./vertic., palette ID)
    The order is left-right, top-down (like the way you read a book in Western countries).

    There's a disassembly in progress worked by IIMarckus at https://bitbucket.org/iimarckus/pokered/src, and it uses RGBDS as assembler/linker.

    Here is the official gameboy programming manual (including SGB directives): http://www.romhacking.net/docs/544/
     
    Last edited:
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016

    In pokemon Red (USA version):
    1) SGB-Border graphics start at 0x72FF8, in 2BPP (gameboy format).
    2) SGB palettes are three and start respectively at 0x72F88, 0x72F98, 0x72FA8.
    3) If you want to edit the GFX you can use a tile editor like TileLayerPro. If you want to edit the tile arrangement, its data starts at 0x72788 and uses 2 byte for each tile arrangement (screen):
    - 1st byte = tile index number
    - 2nd byte = tile flag-specifics (flipped horiz./vertic., palette ID)
    The order is left-right, top-down (like the way you read a book in Western countries).

    thanks for the reply I guess I was perfectly descriptive of my objective, so it looks like the hack will be a success.


    There's a disassembly in progress worked by IIMarckus at (url removed), and it uses RGBDS as assembler/linker.

    I am one of the people from Sonic Retro and I was at a point working on a Sonic 3 Sound Driver (z80) disassembly. That is near completion. I discovered also that Ida Pro 5.2 (which I have) has a cpu module for gb. I wonder though if the in the works disasm can be used in data for making the idb for the project due to the start of the hack being in binary form.

    Edit: I just looked at that disassembly and it does not meet the quality standards of those at sonic retro, but it is a good start one one. I can make an excellent idb with the info in red.asm.

    Here is the official gameboy programming manual (including SGB directives): (url removed)

    That will be very helpful, thanks.
     
    Last edited:

    Sawakita

    Not Invented Here
    181
    Posts
    13
    Years
    • Seen Nov 17, 2019
    thanks for the reply I guess I was perfectly descriptive of my objective, so it looks like the hack will be a success.
    ???

    I am one of the people from Sonic Retro and I was at a point working on a Sonic 3 Sound Driver (z80) disassembly. That is near completion. I discovered also that Ida Pro 5.2 (which I have) has a cpu module for gb. I wonder though if the in the works disasm can be used in data for making the idb for the project due to the start of the hack being in binary form.

    Edit: I just looked at that disassembly and it does not meet the quality standards of those at sonic retro, but it is a good start one one. I can make an excellent idb with the info in red.asm.
    What do you mean with "quality standards"? Do you mean that you don't want to use RGBDS, or that you think there's something that could be improved in the disassembly (within the use/specifics of said assembler)? If you found something that could be done better you could point it out by sending an e-mail to IIMarckus (his e-mail is in his signature)
     

    Olli

    I am still bathing in a summer's afterglow
    2,583
    Posts
    13
    Years
  • Well, I don't hack the GB(C) gen games, as I don't really do hacks on my own, and not that many people here on P.C hack those either.
    The only people I've seen post their hacks here are of course Miksy91 with a great number of second gen hacks, you with Pokémon Wood, and Pokémon Brown which I can't remember the creator of (sorry :()
    However I fully support this, as I've followed the Pokemon franchise from the first gen to the fourth, and the first 2 generations were my favorites.
    So add me to the list :D
     
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016

    What do you mean with "quality standards"? Do you mean that you don't want to use RGBDS, or that you think there's something that could be improved in the disassembly (within the use/specifics of said assembler)? If you found something that could be done better you could point it out by sending an e-mail to IIMarckus (his e-mail is in his signature)

    something that can be improved is what I am saying. Sonic Retro disassemblies have all the data split from the rom (I can go and get split.exe from any disassembly I want, or its linux or mac equivilent.)

    There is a reason for this. A lot of tools like fatiley and directed would have a much easier chance with editing the art of it wasn't misaligned. Also it means hunting down data in a hex editor in an unorganized mess is less likely, also expandability is another reason. Soned2 was made to adapt to this, and now you can have sonic1 and 2 roms with twice as many zones as the original. Other than that, keep up the good work, Sonic needs a good rival, hope pikachu can keep up.
     

    Sawakita

    Not Invented Here
    181
    Posts
    13
    Years
    • Seen Nov 17, 2019
    something that can be improved is what I am saying. Sonic Retro disassemblies have all the data split from the rom (I can go and get split.exe from any disassembly I want, or its linux or mac equivilent.)

    There is a reason for this. A lot of tools like fatiley and directed would have a much easier chance with editing the art of it wasn't misaligned. Also it means hunting down data in a hex editor in an unorganized mess is less likely, also expandability is another reason. Soned2 was made to adapt to this, and now you can have sonic1 and 2 roms with twice as many zones as the original.
    In my hack I split all data from ROM too. My guess is that IIMarckus has almost everything stored in one single file because he uses version control, so it's easier to find all differences among various commits. A reason is also that it's still WIP so a lot of data/code is taken as raw binary include from the original ROM.
    Sonic needs a good rival, hope pikachu can keep up.
    I'm afraid that's hardly going to happen; actually I can't understand why pokemon hacking community refuses to base itself upon the use of disassemblies, like any other game's hacking community does...
     

    XDragonRiderX

    Time flies.
    214
    Posts
    15
    Years
    • Seen Apr 24, 2021
    Do you need to know math to hex edit? Because I suck at math... and that I'm a total noob at hacking. I've made a FROmega clone, but I only got as far as making 3 scripts before getting stuck at making a person move at the gate of Pikachu and making a Pallet Town Gym. :/ I really hate Windows 7.
     

    miksy91

    Dark Energy is back in action! ;)
    1,480
    Posts
    15
    Years
  • Do you need to know math to hex edit? Because I suck at math... and that I'm a total noob at hacking. I've made a FROmega clone, but I only got as far as making 3 scripts before getting stuck at making a person move at the gate of Pikachu and making a Pallet Town Gym. :/ I really hate Windows 7.
    Well...to understand how to hex edit, you're also going to have to understand how to convert decimal numbers into hexadecimal number system (contains 16 numbers instead of 10: 0, 1, 2, 3, ..., 9).

    Anyways, whatever you do, you'll always have to think.
    Hacking is all about thinking and figuring out how stuff works - without mathematical talent, it will be hard to learn how to do major hacking.

    However, editing minor things in the game isn't that hard. Anybody should be able to learn that much.
     
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016

    In my hack I split all data from ROM too. My guess is that IIMarckus has almost everything stored in one single file because he uses version control, so it's easier to find all differences among various commits. A reason is also that it's still WIP so a lot of data/code is taken as raw binary include from the original ROM.

    I guess I will help with it then, by providing a disassembly of my own to compete with his, one of the nice things about retro, is that you have disassembly choices instead of rom base ones and with a true split disassembly, that is all the community needs to really take off, other than howtos on editing the data via asm/hex/tile editor and by tools designed for split disassemblies. On another note: retro has some of its newer disasemblies on subversion, so split disassemblies would work with version control, on another note, I realize I was too quick to judge, because his disassembly is nowhere near complete.

    I'm afraid that's hardly going to happen; actually I can't understand why pokemon hacking community refuses to base itself upon the use of disassemblies, like any other game's hacking community does...

    As I mentioned above, there are a few things this community will need to do just that.

    1.) guides on learning asm and tutorials on doing some very simple things, like adding new pokemon or new maps to the split disassembly.

    2.) the disassembly needs to be easy to use, i.e. pointers actually point to data and are properly labeled, code symbols are properly labeled, and documentation is provided to make it worth the jump.

    3.) an incentive to asm hacking needs to exist. people need to see the benefit to asm based hacks versus binary based ones. A good example is this, way back when sonic hacking was in its infancy, nobody could expand sonic1 or sonic2 to have more level slots and all sprites had to be already pre-programmed, we had a lot of simple palette hacks and level layout hacks, but nothing like we have now. For incentive to do pokemon hacks via asm the way the sonic community does it, here are my two cents (for everyone that visits this site and hacks to see) with asm, all the limits to what defines a pokemon game would be removed by doing so, for an example, you could have a red version where the S.S. Anne can go to Johto, Hoenne, and Sinnoh (on a gameboy even) and having generation 4 pokemon in it, as well as some totally new ones and areas. You can also port the gbc code from pokemon crystal as well in the same hack if we went that route. The only drawback is that with the resources for making really great hacks becoming more accessible, so does the standard of what is really great also go up because really great must take a lot of work, time, and effort.

    4.) the community needs a hacking guide. That is what turned the sonic community from what we have here into what it is now, and the guide must support both hex and asm, by having either the address, guide location name, or both in it. The guide must have an address listing too. (look at Nemesis's Sonic 2 Hacking Guide on retro and that will give an idea what I mean.) Tools like that are what defines retro for what it is, hopefully the admins can look over this in HQ.

    5.) hacking contests would help with the incentive a little. Retro has them almost annually and it is almost like the olympics of sonic hacking, here is an example of how we can do such a thing here:
    * Prof. Oak Trophy - best selection of starters.
    * Celebi Trophy - most unique hack.
    * Team Rocket Trophy - worst hack submitted.
    * Saphron Trophy - best map design.
    * Elm Trophy - best totally new pokemon.
    * Charizard Trophy - most addictive to play hack.
    * Mew Trophy - hardest hack to play.
    and many other ideas like these.
     
    Last edited:
    9
    Posts
    13
    Years
    • Seen Oct 23, 2012
    could someone teach me how to repoint?because i want to learn this,im currently making my gold hack. So i need to know how to do this, im a spriter,my avatar is my example,. Please contact me at facebook. [email protected]
     
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016
    If a "Pokecommunity Hacking Guide (PCHG)" came into existance, then you would be able to find it there, and that is why I agree with the people asking for things to be done like Sonic Retro around here.
     

    IIMarckus

    J946@5488AA97464
    402
    Posts
    16
    Years
    • Seen Feb 21, 2024
    I guess I will help with it then, by providing a disassembly of my own to compete with his
    I would really appreciate contributions to mine. One of the reasons I chose Mercurial over Subversion is that it's decentralized, so multiple people can fork and then pull in changes. So far nobody has taken advantage of this feature.
    because his disassembly is nowhere near complete.
    That's correct.

    There are two reasons for it. One is that I am busy, and have to balance this with time spent on more important projects (i.e., things I can put on my résumé). Because of this, I would appreciate other workers; Sawakita has been a huge help in this regard.
    the disassembly needs to be easy to use, i.e. pointers actually point to data and are properly labeled, code symbols are properly labeled, and documentation is provided to make it worth the jump.
    This is the other reason. I try to only put in code that is well‐labeled and well‐commented, and that takes a long time compared to simply dumping in BGB logs. I think the best‐documented source starts at the function "ReadTrainer" (but even that needs work in the AI functions near the end).
    something that can be improved is what I am saying. Sonic Retro disassemblies have all the data split from the rom (I can go and get split.exe from any disassembly I want, or its linux or mac equivilent.)
    I would like to split data from the ROM. It just so happens that I haven't disassembled any large pieces of data that would benefit from it yet. When I start on maps, all the blockdata will certainly be pulled out into separate files. (At one point, I did have the naïve thought "no copyrighted data in the repository," but I've since realized how silly that is.)


    One thing that really irritates me is that Pokémon doesn't use ASCII. For such a text‐heavy game, this is an incredible pain (as you can see if you look at any text strings in my source). I may need to hack the assembler to allow non‐ASCII strings…

    I actually started this disassembly because of Retro. But I was never a member there and don't know much about the community.

    How do you guys typically disassemble? Do you run it through an automated disassembler or emulator trace, then comment and improve it later? I have been taking the approach of doing one function (e.g., how trainer's attacks are defined, or how the dictionary works) and taking it apart completely, but this is very slow and I am interested in faster methods.
     
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016
    How do you guys typically disassemble? Do you run it through an automated disassembler or emulator trace, then comment and improve it later? I have been taking the approach of doing one function (e.g., how trainer's attacks are defined, or how the dictionary works) and taking it apart completely, but this is very slow and I am interested in faster methods.

    Most of us use IDA Pro as our disassembler, it is called the Interactive Disassembler. As for how to get it, I will not say here, I am sure googling it can help with that, or talking via email because posting a link would result in infraction. IDA Pro I discovered actually has support for gameboy asm and can output for any assembler you want. Also, we dont do it via emulator trace, but by documentation via the community hacking guide and via hacking the unknown data and checking the result. I replied to you because I felt it was worth the reply.

    As for your wish for contribution, you may find a much more major change than you expect if you asked me to do that.
     

    Sawakita

    Not Invented Here
    181
    Posts
    13
    Years
    • Seen Nov 17, 2019
    could someone teach me how to repoint?because i want to learn this,im currently making my gold hack. So i need to know how to do this, im a spriter,my avatar is my example
    If a "Pokecommunity Hacking Guide (PCHG)" came into existance, then you would be able to find it there, and that is why I agree with the people asking for things to be done like Sonic Retro around here.
    Actually information on internet exist, you just need to know where to look at. If you don't know what a pointer is read THIS or THIS. I also wrote a little guide on REPOINTING, although it's probably not the most quality one.
     
    9
    Posts
    13
    Years
    • Seen Oct 23, 2012
    hey thanks sawakita. I'll try to study this.Why dont we make a gold hack someday?after i finish my own hack?
     
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016
    The PokeCommunity is still in its infancy.



    Actually information on internet exist, you just need to know where to look at. If you don't know what a pointer is read THIS or THIS. I also wrote a little guide on REPOINTING, although it's probably not the most quality one.

    I checked out your site and it seems you started in a forum exactly what I was talking about the pokemon community needing. Sonic Hackelbee (not sure if I spelled that right), Saxman, and Magus did the same thing you are doing there, back in '96 if I remember correctly. The end result eventually because the SCHG (Sonic Community Hacking Guide). So I guess that this community has already begun its first step towards becoming the community that retro is in the area of hacking. Also that guide I speak of existed long before asm entered the picture, so if here the asm and guide started showing up at the same time, then we may have an initial delay, followed by jumps in leaps and bounds. Now I guess, we will need a guide like the one that Nemesis made ( one that would list in order the hex values for pokemon, items, trainers, and maps after a brief introduction, then give an address listing in a table that has the start address, followed by what it is, followed by whether it is code or a specific type of data, where the data type is a hyperlink to an anchor to the section with an explanation of the format and best way to edit it. and the row ending there and the next row beginning, and after the listing, we have the data type explanations.)

    Guides like those would be extremely helpful for both beginners and for veterans alike because it helps the beginners learn the format so that they can gain experience and it helps the older veterans locate the data easily by address when they have done so many hacks with the data shifting all over the place that it becomes impossible to remember the address itself but easier to remember how to edit it. Still beginner guides like those you have made are still helpful for beginners alike and a learn gb asm guide could be helpful for those that need to learn asm (help bring the newbie into the asm age.) As more hacking communities move into asm, rom hacking truely takes off. So the point in this reply is that I can see definitely that the pokemon rom hacking community is only in its infancy and tons of other communities have yet to take off.
     

    kringlur

    Velkominn í heim POKéMON!
    90
    Posts
    13
    Years
  • Sawakita, I heard you had a sort of messy collection of information about stuff that could be really useful to first-generation hackers. I know you probably want to clean it up before you post it anywhere, but could you post at least some more of it even if it is messy? Just the most useful stuff?

    Unrelated but I tried to use Visual Basic to make a program to edit stuff in Yellow but Visual Basic wouldn't save changes and kept crashing. Any other suggestions people have for something to make simple programs in, other than writing them in code from scratch?

    My first comment about this was deleted for off-topicness, but I said I'm editing Fire Red to look/sound like the old Red version, so in the future even if no one's hacking RBYG because they're too hard maybe someone will make games that look like them anyway.

    EDIT: What do you guys think about reviving Classic Map and finishing it?
    http://www.pokecommunity.com/showthread.php?t=238450

    In addition, a palette editor (I can't explain this well, but when the colours shift from town to town or pokemon to pokemon) program would be great, especially if it were added into Classic Map.

    I also wanted to make a program that changes which starter pokemon you get, and the sprite for that pokemon which would still follow you around, and the emotions graphics for that pokemon in Yellow.
     
    Last edited:
    17
    Posts
    16
    Years
    • Seen Mar 29, 2016
    I am curious, it seems that there is a color palette that I have no idea what it is used for and it is between the "POKEMON" text from the title screen palette and the mew palette. I cannot seem to find what it is used for, even with VisualBoyAdvance's palette viewer showing which palettes work with which screens.

    I do though know that the palette following the Saffron City one is the green/blue for the stars in the Fame Freak Logo, then we have the colors for the japanese text and for "<Color> VERSION" followed by the POKEMON caption palette and after that the one that really stumps me as to what its purpose really is.

    it has the usual faint rose color, a pink, a purple, and a black, but I edit it and nowhere in the game at all seems to be effected.

    On another note, as for reviving ClassicMap, I am doing that and adding color support to it as well, but first, I am building a simple palette editor (that will even edit the sgb border palettes too), then an sgb border editor, and after that, ClassicMap will be updated to show sgb colors on the maps. I also plan to add to all 3 tools, Yellow support, and Japanese support (r/g/b/y) and I will make a Turn my pokemon red rom into a englis pokemon green rom tool since all tools will support the Pokemon Green (UE) rom but that will require a Pokemon Red (UE) rom to work. As for where to find the red rom? search with google and find it yourself, I cannot explain where to find it from here without breaking the forum rules.
     
    Last edited:

    kringlur

    Velkominn í heim POKéMON!
    90
    Posts
    13
    Years
  • That's really, really great! I'm confused about the Red/Green rom bit though, if it's compatible with Green why do you need a Red rom...?

    I also realized that I have instructions for how to insert alternate characters into Yellow, so your in-game text could have þ and ð for example. I'll make a tutorial on that today and post it, because even if it's easy to figure out I'm not sure there's a tutorial.
     
    Status
    Not open for further replies.
    Back
    Top