Announcement
Collapse
No announcement yet.
Sega Mega CD ISO Hacks & Editors
Collapse
This is a sticky topic.
X
X
-
Right, it's been a long while and I've only now gotten around to create a hacked Sonic CD ISO for my Sega CD - I've successfully applied several hacks (all time stones/good futures, don't lose rings when hit and infinite time) but I've hit a roadblock with the last three hacks converted from PAR codes;
FF1589:0001 Enable debug mode
FF1507:0009 Infinite lives
What would be the best way to go about this? Sadly my M68K knowledge is completely lacking when it comes to this sort of thing (man, I wish I had the time). If anything, I only really care about the debug mode one.
Thanks in advance.
EDIT: Found that enabling debug mode in-game is pretty straightforward and found that I don't need infinite lives either. So this request can be forgotten about!
Last edited by King Of Chaos; 09-08-2016, 08:11:35 AM.
Leave a comment:
-
Amazing Spider-Man Vs The Kingpin (U)
Infinite Web: 1 instance
Search: D74A916DD752
Change: D74A916D6004
Infinite Health: 1 instance
Search: 000F912DD829
Change: 000F912D6004
Invulnerable (Normal-no hit to activate): 1 instance
Search: D836584F6F08
Change: D836584F6004
Stop Clock (main game): 1 instance
Search: D720536DD720
Change: D720536D6004
**************************************************
Invulnerable alt1 (Normal-no hit to activate): 1 instance
Search: 4A6DD836584F
Change: 4A6D6004584F
Invulnerable alt2 (Normal-takes 1 hit to activate): 1 instance
Search: 4A6DD836584F
Change: 6004D836584F
Invulnerable alt 3 (Normal-takes 1 hit to activate): 1 instance
Search: 4A6DD836584F
Change: 4A6DD8366004
Invulnerable alt4 (Blinking-takes 1 hit to activate): 1 instance
Search: D836536DD836
Change: D836536D6004
Leave a comment:
-
Keio Flying Squadron (U)
Infinite Lives: 11 instances
Search: 00385378F856
Change: 003853786002
Change all
Invulnerable: 11 instances
Search: 00145378F854
Change: 001453786002
Change all
Leave a comment:
-
Robo Aleste (U)
Infinite Lives: 1 instance
Search: 30390001FF146708534033C00001FF14
Change: 30390001FF146708534060040001FF14
Invulnerability: 1 instance
NOTE: Has to be triggered again at each boss. Perfect if used with Mezmorize's two codes below, otherwise you won't be able to upgrade your ARM Level.
001C302900246700000E534033400024
001C302900246700000E600433400024
Codes by Mezmorize:
Don't Lose Powerup Upon Death
FF566636 - Search For
FF566036 - Replace With
Pickup One Powerup For Arm Level 3
67025241 - Search For
67025641 - Replace With
Leave a comment:
-
Adventures Of Batman & Robin (U)
Infinite Continue Time: 1 instance
Search: 53790007EBA4
Change: 537900076004
Infinite Continues: 1 instance
Search: 0007FFF0323C
Change: 6004FFF0323C
NOTE freezes @ 1,140 Continues if used
Take More Damage: 24 instances
NOTE not invincible. Slightly extends the amount of damage taken while keeping the display @ 0%
Search: 0640006333C0
Change: 6004006333C0
Change all
Invulnerable Normal: 24 instances
NOTE takes a hit to activate
Search: 6F045329000D
Change: 6F0453296004
Change all
Invulnerable Blinking: 24 instances
NOTE everything blinks, all cars/obstructions/objects, etc.
Search: 4A29000D6F04
Change: 6004000D6F04
Change all
Infinite Turbo: 10 instances
Search: E540D0C05350
Change: E540D0C06004
Change all 10
************************************************** ***************
1: To the Bank
Infinite Time: 1 instance
Search: 123E30390006
Change: 600430390006
Take longer to become a Menace: 2 instances (stage 1)
NOTE normal paced driving only-not collisions while using turbo or blasting away w/ mini missiles lol
Search: 00BE024000FF660000CA303C
Change: 6004024000FF660000CA303C
Change both
Skip to stage 2 if die/fail/arrested: 1 instance (stage 1)
Search: 4EB90005FF904A790006122C670C6B0A
Change: 4EB90005FF904A790006122C670C6004
Infinite Big Missiles on pickup: 8 instances
NOTE non Rapid Fire version
Search: 4A790007FFD06700006E53790007FFD0
Change: 4A790007FFD06004006E53790007FFD0
Change all
Infinite Big Missiles on pickup: 1 instance
NOTE Rapid Fire version
Search: 180C4A790007FFD06700
Change: 60044A790007FFD06004
Change all
No Traffic: 10 instances
NOTE but no bosses either
Search: 43E9FF264E750C4000806F500C400C80
Change: 6004FF264E750C4000806F500C400C80
Change all
Invisible Cars: 10 instances
Search: 43E9FF264E750C4000806F500C400C80
Change: 43E9FF264E750C4060046F500C400C80
Change all
************************************************** ***************
2: Stop Poison Ivy
Infinite/Rapid Fire Missiles: 1 instance
Search: 6C044A790007FFD06700
Change: 60044A790007FFD06004
************************************************** ***************
3: The Toy Store
Infinite Time: 1 instance
Search: E54E66F64A790005E55C66EE53790005
Change: 600466F64A790005E55C66EE53790005
Infinite/Rapid Fire Missiles: 1 instance
Search: 33FC00120005EB3A4A790007FFD06700
Change: 600400120005EB3A4A790007FFD06004
************************************************** ***************
4: Virtual Arcade
Infinite Time: 1 instance
Search: 1078303900041078EC4033C0000140E4
Change: 6004303900041078EC4033C0000140E4
Infinite/Rapid Fire Missiles: 1 instance
Search: 16944A790007FFD067000076303C00246100
Change: 60044A790007FFD067000076303C00246004
************************************************** ***************
5: Bumper Safari
Infinite Time: 1 instance
Search: 54C866F64A79000654D666EE53790006
Change: 600466F64A79000654D666EE53790006
Infinite/Rapid Fire Missiles: 1 instance
Search: 33FC001200065AB24A790007FFD06700
Change: 6004001200065AB24A790007FFD06004
************************************************** ***************
6: Clayface
Infinite Time: 1 instance
Search: 6CFE66F64A7900056D0C66EE53790005
Change: 600466F64A7900056D0C66EE53790005
Infinite/Rapid Fire Missiles: 1 instance
Search: 33FC0012000572CE4A790007FFD06700
Change: 60040012000572CE4A790007FFD06004
Leave a comment:
-
The Smurfs (E)
Infinite Lives/Time: 2 instances
720013840000-51C8FFE44E757200534018310000D832
Search: 720013840000
Change: 600413840000
Change 1st only
Infinite Time ('jump' to end stages for above hack): 5 instances
4A790008ACDC-67284EB90001E2167000103900081C40
Search: 4A790008ACDC
Change: 4A7900086004
Change 1st only
Infinite Health: 3 instances
53390008ACE0-4A390008ACE066046100E68C70FF4E75
Search: 53390008ACE0
Change: 60040008ACE0
Change 3rd only
Invulnerability: 1 instance
537900084C10-0839000400081C1B6632083900070008
Search: 537900084C10
Change: 600400084C10
Leave a comment:
-
Silpheed (U)
Invulnerability (blinking): 2 instances
Search: 537900FFD296
Change: 537900FF6004
Change both
Infinite Optional/Special Weapon: 4 instances (Full=13)
917900FFECFA-701A4EB900FF9008527900FFEC8E0C79
Search: 917900FFECFA
Change: 917900FF6004
Change all
************************************************** **********************************
Individually:
Infinite Shields 1: 1 instance (Full Shields @ start=9) (3+the six "bars" showing)
D29653690012-670841E8004851CFFF144E7548E78080
Search: D29653690012
Change: D29653696004
Infinite Shields 2: 2 instances
D17900FFECFA-700010280046673043F900FFEC885340
Search: D17900FFECFA
Change: D17900FF6004
Change both
Infinite Shields 3: 1/4 instances
00029B690012-6706640842690012610001804E757C00
Search: 00029B690012
Change: 00029B696004
Change 1st 3 only
Infinite Shields 3: 2/4 instances
00029B690012-6706640842690012610001044E757C00
Search: 00029B690012
Change: 00029B696004
Infinite Shields 3: 3/4 instances
00029B690012-6706640842690012610000884E757C00
Search: 00029B690012
Change: 00029B696004
XX inf shields 3: 4/4 instances (can't destroy enemies/objects)
00029B690012-67066408426900126100000C4E757C00
00029B69001267066408426900126100000C4E757C00
Infinite shield 4: 1 instance
33C200FFD298-43F900FF3C6620D920D9209172099242
Search: 33C200FFD298
Change: 33C200FF6004
Another shield 5: 1 instance
D29653680012-4E754E75302800021200E509E2480240
Search: D29653680012
Change: D29653686004
Another shield 6: 1 instance
33C100FFD35A-4E75000A0E1B1A211F0104030303004E
Search: 33C100FFD35A
Change: 33C100FF6004
Inf anti matter bomb (alt): 2 instances
60F8D04210C3-51C9FFEE4844C8FC000A88C5108441F9
Search: 60F8D04210C3
Change: 60F8D0426004
Change both
************************************************** *******************
Invulnerability from Collision (blinking): 2 instances
537900FFD296-6606423900FFD279610024D408390000
Search: 537900FFD296
Change: 537900FF6004
Change 2nd
Invulnerability from Enemy Fire (blinking): 1 instance
537900FFD296-6606423900FFD27961002AF608390000
Search: 537900FFD296 2 instances
Change: 537900FF6004 blinking
Change 1st
Leave a comment:
-
The Terminator (U)
Infinite Health: 20 instances
67045378FE1C-4E754A38FBB6660000044E7541F8F2B4
Search: 67045378FE1C
Change: 670453786004
Replace all
Infinite Lives: 10 instances
7E0F5338FE41-4238FBB42E7CFFFFFFFC6100B7B841F9
Search: 7E0F5338FE41
Change: 7E0F53386004
Change all
Infinite Grenades: 10 instances
67045338FE40-4E756100F79C3038FAE608000000660A
Search: 67045338FE40
Change: 670453386004
Change all
Infinite Shield on pickup (current stage only): 10 instances
700831C0FB8E-4A38FBB567045338FBB53038FCCCD078
Search: 700831C0FB8E
Change: 700831C06004
Change all
Infinite Heavy Machine Gun on pickup (current stage only): 10 instances
EE6035801000-E24920014CDF04024E7545F8EE60203C
Search: EE6035801000
Change: EE6035806004
Change all
Leave a comment:
-
Android Assault - The Revenge of Bari-Arm (U)
Invulnerability: 14 instances
0100536E000E-600E02477FFF0807000D670400470100
Search: 0100536E000E
Change: 01006002000E
Change all
Infinite Lives: 14 instances
E6205378E61E-640A4278E61E317C0001000E30874E75
Search: E6205378E61E
Change: E6206002E61E
Change all
Leave a comment:
-
Final Fight CD (Updated 11/07/16)
Stop Timer: 1 instance
Search: 951767147201023C00EF810111C09517
Change: 951767147201023C00EF810160029517
Infinite Lives: 1 instance
Search: 122E00807001023C00EF83001D410080
Change: 122E00807001023C00EF830060020080
No Damage from using Special Move: 1 instance
Search: 4A38954A661C4A2E006867165D6E0018
Change: 4A38954A661C4A2E0068671660020018
Invulnerable (normal): 1 instance
Search: 003E4EBB103A4A2E0061670A532E0061
Change: 003E4EBB103A4A2E0061670A60040061
************************************************** ********
Infinite Health Hacks:
No Damage from street thug attacks: 1 instance (Full Health=112)
Search: 0000936B00184E756100001E936B0018
Change: 0000936B00184E756100001E60020018
No Damage from Andore's Running Attack: 1 instance
Search: 0012670E10280060103B0028916B0018
Change: 0012670E10280060103B002860020018
No Damage from Andore's Pile Driver: 1 instance
Search: 303C0020206E005C10300000916B0018
Change: 303C0020206E005C1030000060020018
No Damage from Andore's Strangle: 1 instance
Search: 206E005C10300000306E004491680018
Change: 206E005C10300000306E004460020018
No Damage from Molotovs: 1 instance
Search: 00186026177C0008003F046B001F0018
Change: 00186026177C0008003F6004001F0018
No Damage from cop's club strike: 1 instance
Search: 10300000303C000A306E004491680018
Change: 10300000303C000A306E004460020018
No Damage from Edi. E's' Bullets: 1 instance
Search: 0003003F177C00FF0069046B001F0018
Change: 0003003F177C00FF00696004001F0018
No Damage from Floor Flames: 1 instance
Search: 00186018177C0008003F046B001F0018
Change: 00186018177C0008003F6004001F0018
No Damage from Rolento's Throws: 1 instance
Search: 66027020D029006010300000916E0018
Change: 66027020D02900601030000060020018
No Damage from Rolento's Grenades: 1 instance
NOTE: This hack actually restores health when hit with grenades
Search: 0006906B00066A04522B003E06400014
Change: 0006906B00066A04522B003E60040014
No Damage from Chandeliers: 1 instance
Search: C34B4E75177C0003003F046B00260018
Change: C34B4E75177C0003003F600400260018
No Damage from Belger's Arrows: 1 instance
Search: 06400060D0290060103B0012916B0018
Change: 06400060D0290060103B001260020018Last edited by Saturn025; 11-07-2016, 11:44:30 PM.
Leave a comment:
-
Thank you, this is GOLD!Originally posted by Tony Hedstrom View PostThe offset that you will need to change for most codes will be before the value found in CE. It will not always be 6 bytes.
I don't think there's a way to output the assembly from a Sega CD game into an assembly trace log or with breakpoints, so you're kind of stuck having to look at the raw assembly via a string of hex numbers from a hex editor. It's actually not that difficult once you know some of the common instructions.
I'll use the string from above as an example.
53390002F62E13FC00010002F418600C42390002
Here's how that breaks down. Remember that all 68000 assembly instructions are 2 bytes, but not everything is an instruction.
5339 0002 F62E
The 5339 is a subtract instruction and it is subtracting 1 from RAM address 0002F62E (the RAM address for the Plasma Gun ammo).
The next part (which may not have anything to do with plasma ammo) is 13FC 0001 0002 F418.
13FC 0001 is moving a value of 0001 to RAM address 0002F418.
As you can see, the 5339 instruction has 4 bytes after it that are not instructions. The 4 bytes are the RAM address.
The 13FC instruction has 6 bytes after it that are not instructions. The first 2 are the number that is going to be moved, and the next 4 bytes are the RAM address that that value is being moved to.
Some instructions (like branch instructions) don't have any bytes after them that are not instructions. For example, the next instruction in our string is 600C. The 600C is all by itself and means it will branch (jump) 0C bytes.
The problem (as I'm sure you're aware of) is how the hell do you tell what is what when you look at a long string of hex numbers? Just start playing around with it and use Puggsy's list for help. Remember that when you see a 53xx, that will probably be a subtract instruction (although it may be a RAM address with a 53 in it). If you see a 0002xxxx, that will probably be a RAM address (for Sega CD). Also, anytime you see a 4E75, that's usually a RTS instruction.
EDIT: Forgot to mention that not all 53xx type subtract instructions have 4 bytes after them for the RAM address. 68000 assembly has a shit load of instructions.
Leave a comment:
-
The offset that you will need to change for most codes will be before the value found in CE. It will not always be 6 bytes.
I don't think there's a way to output the assembly from a Sega CD game into an assembly trace log or with breakpoints, so you're kind of stuck having to look at the raw assembly via a string of hex numbers from a hex editor. It's actually not that difficult once you know some of the common instructions.
I'll use the string from above as an example.
53390002F62E13FC00010002F418600C42390002
Here's how that breaks down. Remember that all 68000 assembly instructions are 2 bytes, but not everything is an instruction.
5339 0002 F62E
The 5339 is a subtract instruction and it is subtracting 1 from RAM address 0002F62E (the RAM address for the Plasma Gun ammo).
The next part (which may not have anything to do with plasma ammo) is 13FC 0001 0002 F418.
13FC 0001 is moving a value of 0001 to RAM address 0002F418.
As you can see, the 5339 instruction has 4 bytes after it that are not instructions. The 4 bytes are the RAM address.
The 13FC instruction has 6 bytes after it that are not instructions. The first 2 are the number that is going to be moved, and the next 4 bytes are the RAM address that that value is being moved to.
Some instructions (like branch instructions) don't have any bytes after them that are not instructions. For example, the next instruction in our string is 600C. The 600C is all by itself and means it will branch (jump) 0C bytes.
The problem (as I'm sure you're aware of) is how the hell do you tell what is what when you look at a long string of hex numbers? Just start playing around with it and use Puggsy's list for help. Remember that when you see a 53xx, that will probably be a subtract instruction (although it may be a RAM address with a 53 in it). If you see a 0002xxxx, that will probably be a RAM address (for Sega CD). Also, anytime you see a 4E75, that's usually a RTS instruction.
EDIT: Forgot to mention that not all 53xx type subtract instructions have 4 bytes after them for the RAM address. 68000 assembly has a shit load of instructions.Last edited by Tony H; 05-11-2015, 11:48:21 PM.
Leave a comment:
-
Thanks and yes, it's pretty random. I'm reading several Assembly resources to try to get a clue, as time allows, but struggling.
I don't mean to mess up your thread w/ a lot of bad codes. I intend to come back and 'fix' them when I'm more knowledgeable. I can request a mod to delete them if needed
Really just putting the info up for others who want to play an easier version of the games.
Quick questions:
This is the code I found in CE for the Plasma Gun:
2E13FC00010002F418600C42390002
This is the part you found that correctly hacks it:
53390002F62E
So, the entire original 'string' would be:
53390002F62E13FC00010002F418600C42390002
Does the register(?) that controls the value found in CE always preceed the value found in CE?
If so, is it always 6 bytes-starting (or ending, I guess) with the first byte showing in CE?
I'm thinking if the above answers are yes, I can look up the bytes in Puggsy's file and possibility get a better understanding. I originally only cared about having Soul Star hacked but that led me here so I want to do these right. Plus, Soul Star is a mess right now.
ThanksLast edited by Saturn025; 05-11-2015, 02:40:48 PM.
Leave a comment:
-
Saturn025, I've been noticing that a LOT of your "codes" appear to be incorrect. It looks like you're just changing random offsets to "00". While this can sometimes give the desired effect (infinite items, etc), it can also cause unwanted side effects. I'm pretty sure this is what's causing some of your problems (random crashes, etc).
For example, your "Infinite plasma gun on pick-up" code above for Earthworm Jim... It looks like you have changed the RAM address that is being subtracted from. The problem is that something else is getting subtracted from instead. There's a good chance this is what's causing the random crashes in the "Down The Tubes" stage.
The best way to do it is to change the subtract instruction (or whatever instruction you want to kill) to a NOP or Branch instruction instead (depending on operands). You'll find that this works much better, and usually with no side effects.
Try this instead for your "Infinite Plasma gun on pick-up" code:
Search for every instance of:
53390002F62E
Change the 5339 at the beginning to 6004 instead.
It will look like this:
60040002F62E
Do that to all 18 occurrences.
EDIT: The 6004 will jump right over the RAM address and go to the next instruction.Last edited by Tony H; 05-10-2015, 10:26:16 PM.
Leave a comment:
Leave a comment: