Announcement

Collapse
No announcement yet.

Can Super Game Boy borders be hacked?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Can Super Game Boy borders be hacked?

    This is a strange story/request.

    I'm sure you all know that some Gameboy games have some really nice borders when you play them on the Super Game Boy.
    The game Tetris DX (GBC) has two borders, one if you play the game on the Super Game Boy, and the others if you play it on the Super Game Boy 2. You cannot get the second border unless you play it on the SGB2.

    Some dude from the gscentral forum named nensondubois made a code that allows you to get/see that border if you play it on the SGB. So I thought, if he did that for that game, then it should be possible to do it with other games too.

    Some Gameboy games have multiple borders, some only accessible if you beat the game or if you reach certain obscure part of the game.
    I was wondering if anyone could maybe teach me how I could find a border cheat on VBA (or emu of choice) for any game. I have no idea where or how to start.

    This game, Mini 4 Boy II - Final Evolution, has two borders (I saw the titles while peeking inside the rom), but I beat the game and did everything I could and I still didn't see the second border.
    Surely there must be a way to cheat and see the border.


    I'm working on a project about Super Game Boy, that's why I've pestered this place with Game Boy requests in the last few days.

    In return I'm going to post some new codes I made.
    Last edited by ReyVGM; 10-09-2008, 07:27:59 PM.

  • #2
    I've seen some topics about editing borders that stated something along the lines that they can be stored in weird ways. If you want to see borders, best to check where the commands to set the border are used, and see if there are alternate paths in the code to hack. BGB would be the emulator of choice for this task.

    Look for a routine that writes SGB packets to the Packet Viewer window. When you hit a CHR_TRN, then you're to the point of it setting the border. FF00 is written with a 0x30 when the packet is done, and it will appear in the window after the write. Also, the initial border will be loaded first, and after a bit, the new one will appear in this game. Some may have a more distinct decision between borders, while others may have a less certain code path. I found the second set of border settings by eyeing the border setting code for similarities in surrounding code. You may need a hex editor, an internal game address responsible for the borders being loaded, and an understanding of GB bank parsing to really understand this stuff.

    http://nocash.emubase.de/pandocs.txt

    New Border:
    005-32E-4C2
    This reality is mine. Go hallucinate your own.

    Comment


    • #3
      Oh god, thanks so much ugetab.
      BTW, let me congratulate you on the cheats you made to be able to "play" with the Super Game Boy 1 & 2 rom.
      It really made my day when I found out about those cheats.

      I'm currently working on a project and it involves getting screenshots out of all the GB/GBC borders.
      I already took every screenshot, now I'm just going through every game with a title viewer to see if there are any borders I missed.
      Unfortunately some games apparently have the borders in compressed form or something, because most of the time I can't see them with the title viewer.


      There are some other games I noticed that have hidden borders (Daffy Duck Marvin Missions, Bomberman Collection, Momotaro Collection 1 & 2 and some others I couldn't find while playing) and I would love to learn how to do it myself, but it seems kind of complicated for an amateur cheat finder like me. I usually only know how to work with actual visible values like lives or energy.

      You think you could explain to me step by step (as if I was a 7 year old) how to search for the borders? I would hate requesting for a certain cheat all the time.

      I observed that SGB Packet Viewer, but I didn't understand a thing. What exactly am I looking for there and how do I go from there to a cheat?
      I used the same game and in the CHR_TRN fields I didn't see a FF00, I saw a 9900 or 9901.
      And what does 0x30 mean? 30 zeroes?
      Last edited by ReyVGM; 10-10-2008, 04:03:29 AM.

      Comment


      • #4
        There's no universal 'setup the friggin border' routine for you to look for. It's an assembly hack, based on an understanding of SGB packets that I picked up in about 12 minutes from reading the doc I listed.

        If you want to understand at least how borders are set in 1 game, run Mini 4 Boy II through BGB, and breakpoint address 1531. That will show you the gist of how the code operates. The FF00 writes will be listed as Joypad, and are an essential piece of the operation. Just get reasonably close to when the CHR_TRN packet is sent, and run through, looking at writes to FF00, and stepping out to quickly see what packet is being written.

        I can't actually give you a simpleton's tour of assembly, because it's rather all encompassing from my perspective. I say, if you want to try so bad, learn BGB's debugger, watch how the game does it, and try to close in on how other games do the same basic task of sending the CHR_TRN packet. Without knowing the basics, my little tips are mind bogglingly boring to execute, more so if you're not capable of performing the comparisons quickly, or are unable to come up with neat ideas of your own to add to the simple 'keep on keeping on' I use, and how I understand the way to skip code I'm not particularly interested in through disabling currently irrelevant breakpoints.

        I'm not averse to putting a .gb into a hex editor and looking for the exact code I expect to find, or anything like that. In this case, there's a double-write to FF00 that could be found as code(with 2-byte and 3-byte forms of that code possible), and if you want to start relatively easily, you can try for that, and then skip to the RET, so you don't have to watch it put the data in.

        I'll say I put a lot of thought into how to be efficient with the debugger, because I use it a lot for ripping GBS files.
        This reality is mine. Go hallucinate your own.

        Comment


        • #5
          That's the problem, I don't know any assembly, I don't know how to use debuggers or recognizing what those breakpoint addresses are or do.

          I did read the doc last night, but since I don't even know the basics or where to look, I just found it to be very confusing.
          I'm sure that after one learns how to use it, it should be simple.

          I'm willing to learn though, if you are willing to teach the simplest way to do it. I'm a quick learner, but I just need a detailed explanation of what everything does and why. Maybe through MSN, IRC, AIM? Something in real time.

          In the meantime, can you check if these games have extra borders?
          Daffy Duck Marvin Missions (It should have a second one).
          Bomberman Collection (it should have at least 5).
          Momotaro Collection (it should have at least 2 or 3).
          Momotaro Collection 2 (it should have at least 2 or 3).

          Sigh, there are so many I would like to check, that's why I would like to learn how to do it myself.
          Last edited by ReyVGM; 10-10-2008, 03:38:41 PM.

          Comment


          • #6
            I started by working with ZSNES save state hacking(extensively), testing the FCEUXD debugger, reading a general guide to assembly, hacking simple NES codes, hacking progressively less simple codes, getting into SNES/GB/N64/PSX assembly and related debuggers, working with OllyDBG and some disassemblers, and with all that and some documentation to skip the introduction to how it works, I picked out the info I needed to figure out how the SGB commands were written.

            I nearly thought I'd give up early on in NES assembly hacking. I just wanted the results so bad that I couldn't quit. Once I had 1 type of assembly that I could get through reasonably well, the rest of them that I learned never had as sharp a learning curve. PSX, on jumps/branches/calls executes the instruction following the location changing one. NES has practically indecipherable banking code for someone in a hurry. GB has many iterations, addons, and memory sections, but is probably the easiest to figure out.

            Even if you're willing to put in the effort to learn the basics, I've found that very notable individuals didn't really see my methods as usable. If you're intending to study assembly function on your own, I can at least give you a list of decent tools. Best to start off simple, either way. No PS2/GBA/DS hacking without at least a bit of knowledge about how assembly in general works. Basically, come back when you've studied how some of the Game Genie cheats work and can fill a request. If you can't, even my simplest explanation will be indecipherable, just as a foreign language is.
            http://www.gshi.org/wiki/index.php/Assembly_Hacking
            This reality is mine. Go hallucinate your own.

            Comment


            • #7
              I guess I'll just drop this.
              I just wanted to learn the process to be able to find the hidden borders. So it will be pretty much useless for everything else I do.
              And if it was something that I really liked, then it would be no problem taking my time to learn it.

              There's only so much one can do during a day, and it looks like I'll have to drop everything to learn this.

              Would it be OK if I request border cheats for other games then?
              Last edited by ReyVGM; 10-10-2008, 05:08:46 PM.

              Comment


              • #8
                Request what you want, but as someone with a limit to the freebies I'm willing to hand out, and a breadth of areas to apply my knowledge to, I don't always find code requests a top priority. I'm actually thinking of looking at the 'run' code for FF7, but even that'll have to wait until I'm in the mood for more freebie code hacking.
                This reality is mine. Go hallucinate your own.

                Comment


                • #9
                  Well, I don't want to be a bother with this, but if it's limited then I guess this should be ok?

                  Daffy Duck Marvin Missions (It should have a second one).
                  Bomberman Collection (it should have at least 5).
                  Momotaro Collection (it should have at least 2 or 3).
                  Momotaro Collection 2 (it should have at least 2 or 3).

                  Comment


                  • #10
                    Daffy Duck: Marvin Missions

                    Border 1 Only
                    0A5-ABE-C4E

                    Border 2 Only
                    095-B9E-C42

                    Bomberman Collection

                    Border 2 on reset
                    CCE-80F-C40

                    Other borders are because the Wario Blast(Bomberman 1), Bomberman GB(Bomberman 2), and Bomberman 3 SGB compatible ROMs are selected from within the collection one using coding. Try those individual games to see their borders. Same probably goes for the other collections.

                    Momotaro Collection
                    Border 2 on reset
                    CCE-80F-C40

                    No extras in Collection 2.

                    Again, just play the individual games to see the borders.
                    This reality is mine. Go hallucinate your own.

                    Comment


                    • #11
                      Originally posted by ugetab View Post
                      Bomberman Collection

                      Border 2 on reset
                      CCE-80F-C40

                      Other borders are because the Wario Blast(Bomberman 1), Bomberman GB(Bomberman 2), and Bomberman 3 SGB compatible ROMs are selected from within the collection one using coding. Try those individual games to see their borders. Same probably goes for the other collections.
                      Yep, I am aware of that, but looking inside the rom there was another border that wasn't included in the Bomberman 1 & 2 games. That's why I said there was up to 5 borders, just in case you found more than what you bargained for.


                      Daffy Duck: Marvin Missions


                      Border 2 Only
                      095-B9E-C42
                      HA! I knew it! Sneaky border!



                      Momotaro Collection
                      Border 2 on reset
                      CCE-80F-C40

                      No extras in Collection 2.

                      Again, just play the individual games to see the borders.

                      With this one, it had to be through a code, because currently these games are not playable on emus. They just reset when you select any of the games of the collection. So thanks


                      Isn't it strange that both Bomberman Collection and Momotaro Collection share a similar border, but it's not found in the game? (allegedly)
                      My guess is that it's an unused border.
                      All codes worked perfectly and let me share my thanks for your excellent help ugetab. Without you this project would have been very incomplete.

                      I now wonder how many borders I must have missed if I couldn't see them inside the rom due to compression?
                      Is it ok if in a few weeks or months I send you a few more requests? If you're willing, of course.

                      PS
                      Do you have a website you would like to plug? I'll add it to the article once I finish everything. This is going to be seen by everyone.
                      Last edited by ReyVGM; 10-11-2008, 05:03:59 PM.

                      Comment


                      • #12
                        I have three questions.
                        1. How do I enable (set 0h3) SGB features in The Lion King with a GB Game Genie. There is a SGB logo label on the cart but no enhancements are present
                        2. How do I know if a game will use pre-determined colors like Link's Awakening with BGB?
                        3. What is Attraction Mode?
                        Last edited by nensondubois; 10-11-2008, 05:06:29 PM.
                        "Roll The Bones" - Rush
                        Patreon.com/nensondubois Twitter #nensondubois_Youtube.com/user/nensondubois

                        Comment


                        • #13
                          At least in the Arcades, attraction mode was simply that slideshow of character art and gameplay you saw while no one was playing with the machines devised to attract gamers to play it.

                          I guess that one of Nintendo's ideas was to make some sort of splash screen or slideshow only possible on the SGB to make a game more attractive. According to the doc ugetab posted, no game used it.

                          BTW Ugetab, Nensondubois is also working on a different SGB project than I. There's a serious lack of enhanced SGB games specifics on the net and people like him are looking to remedy that.
                          Last edited by ReyVGM; 10-11-2008, 05:26:46 PM.

                          Comment


                          • #14
                            Animaniacs used Attraction Mode for static. I Maybe when I implement Super Game Boy emulation into ZSNES I will be able to make an AR code that forces Border 2, 3 or any border load instead always.
                            Last edited by nensondubois; 10-11-2008, 05:33:04 PM.
                            "Roll The Bones" - Rush
                            Patreon.com/nensondubois Twitter #nensondubois_Youtube.com/user/nensondubois

                            Comment


                            • #15
                              Another Question; How do a force enhanced sounds to play loopingly or non-looped with a Game Boy Game Genie? And also replace replace enhanced sounds in Pagemaster?
                              Last edited by nensondubois; 10-11-2008, 05:42:14 PM.
                              "Roll The Bones" - Rush
                              Patreon.com/nensondubois Twitter #nensondubois_Youtube.com/user/nensondubois

                              Comment

                              Working...
                              X