Announcement

Collapse
No announcement yet.

Sega CD codes found with neogenesis on the xbox

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

  • Sega CD codes found with neogenesis on the xbox

    I never really knew how to find codes for sega cd games and i remembers neogenesis emulator on the xbox allowed me to. I went on and found all these codes for a few games like popful mail, lunar 1 & 2, shining force cd. However, when i try using those codes in say gens+ they do not work. I am not sure what i have to do to get them working.

    here is a sample from shining force cd:

    Nick Lv 3000B0AA:00XX (01-63)
    Nick HP 3000B0AC:03E7
    Nick Inf HP 3000B0AE:03E7
    Nick Inf MP 3000B0B0:03E7
    Nick MP 3000B0B1:03E7
    Nick ATK 3000B0B2:0063
    Nick DEF 3000B0B4:0063
    Nick AGL 3000B0B6:0063
    Nick MOV 3000B0B8:0063
    Nick Exp 3000B0D1:0064

  • #2
    As I recall, Gens uses a somewhat limited cheat module that doesn't really work when it runs Sega CD games. It's similar to the limitations on real hardware, where cheating on the Sega CD was impossible.

    I'm a bit foggy on the technical details of the Sega CD, but your PAR codes are hitting addresses in the ROM range of the Genesis's map if memory serves. Either those addresses are mapped to the Sega CD attachment's expanded RAM when playing a CD game, or something else is going on with how Neogenesis maps things.

    Edit: Actually, no, those are full 32-bit addresses. I think your XBox emulator is just coughing up XBox RAM addresses for its emulated memory. Think of it sort of like using Cheat Engine or Artmoney on a PC emulator.

    Edit again: http://distribution.xbins.org/nfo.ph...xboxnfo311.nfo

    So this emulator ports the Playstation era GameShark commands backwards into its cheat engine by the look of things. I don't think any other emulator does that, and it certainly doesn't follow the format of the Game Genie or PAR codes that Gens expects. You could just knock off the 30 and see if it works (00B0B6:0063 or FFB0B6:0063 maybe), but I wouldn't exactly bet on it. You have a couple of 8-bit writes with 16-bit values by the way. If those are working right, then Neogenesis has a bug somewhere.
    Last edited by Pyriel; 12-02-2016, 01:43:22 PM.

    Comment


    • #3
      Thanks for the reply, that was really informative. Are you referring to the 03e7 codes? those do work but the game can not display it properly. the max health and mp of a player is probably 256(ff)

      so all in all, these codes are useless other than through neogenesis.

      i wasnt sure if they would have been useful for someone to use to help edit the game directly.

      again thank you for the information.

      Comment


      • #4
        The codes would sort of work, in that they'd be infinite or give boosts up to a point. The only thing weird would be that instead of 999, the value would be truncated to 231. If you can't see the numbers, it hardly matters unless you get hit with an attack that does more than that in damage, or try to cast a spell that costs more than that.

        Comment


        • #5
          I should make myself clearer. What i meant was if this is proprietary to the xbox and neogenesis i assume they wouldnt be useful to anyone else, either to use in another emulator or converting them to something useable.

          Weird about the health and mp, i know enemies have far more than 231 or even 256, that is why i used 999 because i figured if enemies could have up to 999 hp/mp the player should be able to as well. it does work it just glitches the display of hp/mp only if you do not have max hp/mp set to the same number. ( i mean is if you use infinite hp or mp without increases the max hp or mp then the display is messed up otherwise it looks and works fine)

          if these can be used in someway, i am willing to learn how but at the moment i am stuck. i tried dropping off the 30 or changing it to ff for gens+ but they did not work.

          btw the reason i was hoping this could work eventually is because i have tons of free time to make codes for any sega cd game.
          Last edited by linkthetimehero; 12-03-2016, 03:15:43 PM.

          Comment


          • #6
            Gens and Gens + is pretty old and hasn't been officially updated for a while. I believe Gens/GS can use Sega CD codes tho. Bizhawk is supposed to let you use and make codes too. If you wanna get into Bizhawk.

            Comment


            • #7
              Originally posted by linkthetimehero View Post
              I should make myself clearer. What i meant was if this is proprietary to the xbox and neogenesis i assume they wouldnt be useful to anyone else, either to use in another emulator or converting them to something useable.
              That part of it was perfectly clear. I was just pointing out that having 8-bit writes for 16-bit values wouldn't necessarily make the codes not work on NeoGenesis itself, since you seemed a little unclear on why that would be.

              Originally posted by linkthetimehero View Post
              Weird about the health and mp, i know enemies have far more than 231 or even 256, that is why i used 999 because i figured if enemies could have up to 999 hp/mp the player should be able to as well. it does work it just glitches the display of hp/mp only if you do not have max hp/mp set to the same number. ( i mean is if you use infinite hp or mp without increases the max hp or mp then the display is messed up otherwise it looks and works fine)
              The issue isn't some arbitrary maximum. It's high-order truncation. By using an 8-bit write, only the least significant 8-bits of your 16-bit value will be used. That is, the code will write E7 to that address instead 03E7. And E7 is decimal 231. Now, that doesn't necessarily mean that's the actual value the game will use. If the game uses 16-bits, and allows values more than FF/255, what will happen is part of the value will come from the code, and part of it will be left over from the last value the game stored there.

              Here's an example. The Genesis is big-endian, so let's assume you can have 500 HP normally (hex 01F4). That would be stored in memory with 01 at 00B0AE (current hp) and the byte at 00B0AF would contain F4. Your code comes along and writes the 8-bit value E7 to 00B0AE, leaving the 16-bit value as E7F4. Thanks to the screwy cheat, the game now thinks you have 59,380 HP instead of 500 or 999. If you change the 3 to an 8 in NeoGenesis, it should do a 16-bit write, which will set the value properly with 03 at 00B0AE and E7 at 00B0AF.
              Last edited by Pyriel; 12-04-2016, 12:05:41 PM.

              Comment


              • #8
                Thanks your explanation and some research I understand now what you mean about the truncation.

                well i should at least find the proper codes for hp and mp.

                i am unsure how this gets these codes any closer to being used in general for other people. either to edit the game itself or use them in other emulators.

                ok so i went on to try this bizhawk, and i was able to find the same corresponding codes in the emulator as to the ones i found using neogenesis, but when i put them in or even edit the hex address in the game, nothing changed.

                edit* i changed it from 00boae to ffboae and the code actually worked

                Click image for larger version

Name:	Screenshot_1.jpg
Views:	1
Size:	234.8 KB
ID:	162920

                that would mean these codes do work and i suppose you could edit the image directly with these codes?
                Last edited by linkthetimehero; 12-05-2016, 02:51:21 AM.

                Comment


                • #9
                  As in edit the ROM image? No, those are RAM patches you're making. It's possible to do ROM patches that have sort of similar effects, but they're not necessarily 1:1. The best you could hope for there would probably be to change the starting max HP when a new game started, or when it's loaded from a save. If you wanted to make Infinite HP and patch it into the disc, it would need to be a change to the game's programming, rather than to a bunch of ephemeral values.

                  Comment


                  • #10
                    While none of the Sega CD games don't seem to work on my Xbox system under the Neo-Genesis emulator, the Sega Genesis games that I have do. When a code is produced, it'll put a "30" at the beginning of it. It can be replaced as "FF". The other thing to look for is Big & Little Endian at the end of the address. I've found codes on the PAR that were off by 1 digit from what was found: For Example: a code that shows 3000B0B0:03E7 would be FF0B0B1:03eE7 on a PAR.

                    I hope that helps even though the Genesis & Sega CD are two different systems.
                    Hacking games is always fun because you don't know what's hidden in the game.

                    Comment


                    • #11
                      The Genesis itself is big-endian, and that won't vary. It sounds to me like you're seeing janky implementations between emulators, since x86 and x64 are little-endian architectures. Probably some of the emulators just fake it in different ways in different places, with the result that some implementations of cheat engines wind up conflicting. Or the cheat engines themselves have some fakery going on, and they're changing what you've input (the 68k requires proper memory alignments for larger operands). Otherwise, there's no earthly reason why writing 8-bits as B0B0 (3000B0B0:03E7) would be identical to writing 16-bits at B0B1, and writing 16-bits to that address should be an alignment violation.

                      Comment


                      • #12
                        thats exactly what i found in bizhawk, some of the codes were off by 1

                        Comment


                        • #13
                          Yeah, and your Bizhawk screenshot says the byte at B0A3 contains 19200 and B0AE has 6300 somehow while B0AF has 8. I assumed this was due to weird poking that you'd done, and the display hadn't updated fully, but for B0A3 at least, it looks like you made no changes.

                          It seems like these emulators are doing some weird things that probably won't carry over to real hardware...Actually, you know what, I recall having a similar discussion with Lee4 about I think Kega and Gens. I think they both reused the same cheat engine code, but one of them handles the endian change without making any corresponding changes, so the codes have to be off by one to account for that. It's a quirk (read: lazy hack) in the emulator's implementation, and not something "real" caused by accurate emulation.

                          Comment


                          • #14
                            yes i was poking to try and find where the code exactly was because i couldnt get them to work when i entered them as cheats

                            these codes could never be used on real hardware since the segacd never had a cheat device made for it. best hope would be to find ways to patch the game like that one guy is doing.
                            Last edited by linkthetimehero; 12-06-2016, 01:59:03 PM.

                            Comment


                            • #15
                              Yeah, but BigBossman was talking about plain old Genesis games. The off-by-one issue isn't restricted to Sega CD somehow.

                              If I remember right, somebody decided in their emulation framework to treat Genesis RAM as an array of 16-bit values instead of bytes. Why they'd do that is a mystery, probably only addressed on some forum in 2001 that can only be found now in the Wayback Machine.

                              Comment

                              Working...
                              X