Sonic and Sega Retro Message Board: Rockman Megaworld - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

Rockman Megaworld or as some call it, Megaman: The Wily Wars

#1 User is offline Quickman 

Posted 21 April 2008 - 10:56 PM

  • Posts: 5584
  • Joined: 03-December 03
  • Gender:Male
  • Location::x
  • Project:omg porjcet
  • Wiki edits:10
I've been poking around with the idea of disassembling Rockman Megaworld to see what makes it tick with a view to making a hack of it which improves its faithfulness to the NES originals and/or splitting the games off as independent games of their own.

I've not got much, but I do know it has a ker-razy checksum routine. Dig this:
Syntax Highlighted Code: ASM
loc_354:
[color= #00bfff;]lea[/color] (ROM_Start).[color= #00bfff;]w[/color],a0
[color= #00bfff;]lea[/color] (unk_200).[color= #00bfff;]w[/color],a1
[color= #00bfff;]moveq[/color] [color= #ff0000;]#[/color][color= #ff0000;]$[/color][color= #ff0000;]F[/color],d2 [color= #adadad; font-style: italic;]; run checksum check sixteen times[/color]
[color= #00bfff;]moveq[/color] [color= #ff0000;]#[/color][color= #ff0000;]$[/color][color= #ff0000;]FFFFFFFF[/color],d1
 
loc_360:
[color= #00bfff;]moveq[/color] [color= #ff0000;]#[/color][color= #ff0000;]0[/color],d0
 
loc_362:
[color= #00bfff;]add[/color].[color= #00bfff;]w[/color] (a0)+,d0
[color= #00bfff;]dbf[/color] d1,loc_362
[color= #00bfff;]cmp[/color].[color= #00bfff;]w[/color] (a1)+,d0
[color= #00bfff;]bne[/color].[color= #00bfff;]s[/color] BadChecksum
[color= #00bfff;]dbf[/color] d2,loc_360

At $200 there's a list of checksums:
Syntax Highlighted Code: ASM
unk_200:
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;][color= #ff0000;]5648[/color][/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]6B30[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]5F4A[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]D70C[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]256E[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]F9FE[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]C0AF[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]B38A[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]01B7[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]236D[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]10B2[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]0E51[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]A5EA[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]0EAF[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;][color= #ff0000;]6519[/color][/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]9C66[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]7A4D[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]4FF9[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;]00FF[/color]
[color= #00bfff;]dc[/color].[color= #00bfff;]w[/color] [color= #ff0000;]$[/color][color= #ff0000;][color= #ff0000;]0414[/color][/color]

As far as I can tell this checksums everything from $0 to $FFFFF, but in sixteen chunks ($0 to $FFFF, $10000 to $1FFFF, $20000 to $2FFFF etc). BadChecksum writes to some VDP registers, then does the familiar red-screen-of-death.

Does anyone have any work on this game, or know of anyone who's done any work on this game?

#2 User is offline Techokami 

Posted 22 April 2008 - 07:08 AM

  • For use only on NTSC Genesis systems
  • Posts: 1287
  • Joined: 19-November 05
  • Gender:Male
  • Location:HoleNet!
  • Project:Sonic Edge
  • Wiki edits:63

View PostQuickman, on Apr 21 2008, 07:56 PM, said:

As far as I can tell this checksums everything from $0 to $FFFFF, but in sixteen chunks ($0 to $FFFF, $10000 to $1FFFF, $20000 to $2FFFF etc). BadChecksum writes to some VDP registers, then does the familiar red-screen-of-death.

Good grief, that explains why I've been unable to hack the European ROM into playing in NTSC mode.

#3 User is offline shobiz 

Posted 22 April 2008 - 07:40 AM

  • Posts: 863
  • Joined: 27-March 05
  • Gender:Male
  • Location:Karachi, Pakistan
  • Wiki edits:4,411

View PostQuickman, on Apr 22 2008, 08:56 AM, said:

As far as I can tell this checksums everything from $0 to $FFFFF, but in sixteen chunks ($0 to $FFFF, $10000 to $1FFFF, $20000 to $2FFFF etc)

Actually, since each add operation is word-sized, it'll actually check it from $0 to $1FFFF, then from $20000 to $3FFFF, up till $1FFFFF
This post has been edited by shobiz: 22 April 2008 - 07:46 AM

#4 User is offline Quickman 

Posted 23 April 2008 - 12:24 AM

  • Posts: 5584
  • Joined: 03-December 03
  • Gender:Male
  • Location::x
  • Project:omg porjcet
  • Wiki edits:10

View Postshobiz, on Apr 22 2008, 01:40 PM, said:

View PostQuickman, on Apr 22 2008, 08:56 AM, said:

As far as I can tell this checksums everything from $0 to $FFFFF, but in sixteen chunks ($0 to $FFFF, $10000 to $1FFFF, $20000 to $2FFFF etc)

Actually, since each add operation is word-sized, it'll actually check it from $0 to $1FFFF, then from $20000 to $3FFFF, up till $1FFFFF

Ah, my bad. I have a tendency to miss things like that.

#5 User is offline Bibin 

  Posted 23 April 2008 - 06:46 PM

  • DON'T LET THE SUN LAUGH AT YOU.
  • Posts: 882
  • Joined: 05-January 07
  • Gender:Male
  • Location:New York City
  • Project:Ghost in the Machine

View PostTechokami, on Apr 22 2008, 08:08 AM, said:

View PostQuickman, on Apr 21 2008, 07:56 PM, said:

As far as I can tell this checksums everything from $0 to $FFFFF, but in sixteen chunks ($0 to $FFFF, $10000 to $1FFFF, $20000 to $2FFFF etc). BadChecksum writes to some VDP registers, then does the familiar red-screen-of-death.

Good grief, that explains why I've been unable to hack the European ROM into playing in NTSC mode.


I found a rom that does just that; it says "Cracked by Jarre" in the beginning, but runs the European rom in NTSC.

#6 User is offline GeneHF 

Posted 23 April 2008 - 08:53 PM

  • SEGA-ier than you'll potentially ever be.
  • Posts: 8384
  • Joined: 16-May 04
  • Gender:Male
  • Location:Scenic Studiopolis
  • Project:Complete Global Conquest
  • Wiki edits:381
It'd be nice if you could crack the games into four separate entries. On the rom currently out, it's impossible to get to The Wily Tower sub-game without using a savestate floating around the web because of a bug in how the game handles save data.

#7 User is offline Techokami 

Posted 23 April 2008 - 08:55 PM

  • For use only on NTSC Genesis systems
  • Posts: 1287
  • Joined: 19-November 05
  • Gender:Male
  • Location:HoleNet!
  • Project:Sonic Edge
  • Wiki edits:63

View PostGeneHF, on Apr 23 2008, 05:53 PM, said:

On the rom currently out, it's impossible to get to The Wily Tower sub-game without using a savestate floating around the web because the game wasn't properly dumped.

Fixed. There is a ROM you can use to get saving working correctly, it's one of the alternate dumps of the Japanese version.

#8 User is offline GeneHF 

Posted 24 April 2008 - 12:10 AM

  • SEGA-ier than you'll potentially ever be.
  • Posts: 8384
  • Joined: 16-May 04
  • Gender:Male
  • Location:Scenic Studiopolis
  • Project:Complete Global Conquest
  • Wiki edits:381
I've actually never found that copy of it. I only find the broken one.

#9 User is offline MoDule 

Posted 24 April 2008 - 07:36 AM

  • Posts: 308
  • Joined: 03-October 07
  • Gender:Male
  • Project:Procrastinating from writing bug-fix guides
  • Wiki edits:52
I really like this idea. I would have loved this game if it hadn't been for the screwed up controlls.
Also, if this game is fully disassembled it might be possible to remake the other 3 games.

#10 User is offline roxahris 

Posted 27 April 2008 - 04:47 AM

  • Everyone's a hypocrite. Take my word for it.
  • Posts: 1224
  • Joined: 24-January 07
  • Gender:Male
  • Project:Doing anything at all
  • Wiki edits:30

View PostQuickman, on Apr 22 2008, 01:26 PM, said:

Does anyone have any work on this game, or know of anyone who's done any work on this game?
Well, I tried to do a 'translation' (replacing the Japanese text with English), but I stopped due to annoying bugs and long weapon names... (I stopped at the Quick-Boomerang, funnily enough.) The text is just in SJIS, but I couldn't find a hex editor that supported it fully so I had to manually convert the weapon names... although English text showed up fine (lol ASCII).
This post has been edited by roxahris: 27 April 2008 - 04:49 AM

#11 User is offline Vixy 

Posted 27 April 2008 - 07:21 PM

  • Kind & Generous Fluffy Pillow~
  • Posts: 11
  • Joined: 04-April 08
  • Gender:Female
  • Location:Sweden

View PostTechokami, on Apr 24 2008, 03:55 AM, said:

Fixed. There is a ROM you can use to get saving working correctly, it's one of the alternate dumps of the Japanese version.
I thought we already covered that on another forum, because I mentioned it.

I originally found out that the [!](a1) version had SRAM working. It was just that everyone wasn't considering that dump to be as authentic as the good dump that had no extra markings on them. These things tend to be overlooked so easily. (a1) has pretty much always been the alternate version of a good/decent dumped ROM, but it tends to be misunderstood, because people tend to compare these kinds of dumps with bad dumps (b1), over-dumps (o1) and fixed dumps (f1). But give the (a1) version a try any ways.

Use the code in that version and implement it into the (E) version, or try finding a alternate version of it that allows SRAM. Find the original cart and do proper ROM dumping if you have to, because there are a few that are still interested in a SRAM-enabled English ROM. With or without NTSC mode setting doesn't matter really, but that's the player's personal preference if they want it or not. Most emulators tend to have that feature already, but for Flash Cart users, it would be pretty neat to have this fix added. ^^;
This post has been edited by Vixy: 27 April 2008 - 07:22 PM

#12 User is offline Quickman 

Posted 28 April 2008 - 03:59 AM

  • Posts: 5584
  • Joined: 03-December 03
  • Gender:Male
  • Location::x
  • Project:omg porjcet
  • Wiki edits:10
Doing anything with this game is going to be difficult as hell. It's written in C, so the code is all over the place and makes heavy use of the stack. (Compare how the Sonic games have really quite structured ASM with numerous devices to make the work of writing an object easier.)

I've been pressing C diligently in IDA Pro for quite a while now, and am up to $40000. A large portion of the game is going to be data (graphics, other stuff like that) which I'm not going to touch. (Selecting thousands of bytes in IDA is not fun.)

#13 User is offline Techokami 

Posted 28 April 2008 - 07:19 AM

  • For use only on NTSC Genesis systems
  • Posts: 1287
  • Joined: 19-November 05
  • Gender:Male
  • Location:HoleNet!
  • Project:Sonic Edge
  • Wiki edits:63

View PostVixy, on Apr 27 2008, 04:21 PM, said:

View PostTechokami, on Apr 24 2008, 03:55 AM, said:

Fixed. There is a ROM you can use to get saving working correctly, it's one of the alternate dumps of the Japanese version.
I thought we already covered that on another forum, because I mentioned it.

That's why I was saying that :P

#14 User is offline ICEknight 

Posted 28 April 2008 - 09:46 AM

  • Posts: 11164
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18
-Replace 0x036A with "Nq".
-Replace country code to "U".
-For some reason, replace 0x0188 with "958E".
-Profit!

This is all according to "Mega Man - The Wily Wars (E) [f1]". I'd like to know why it works, though...

EDIT: By the way, didn't Kega Fusion get rid of the saving bug already?
This post has been edited by ICEknight: 28 April 2008 - 10:04 AM

#15 User is offline Quickman 

Posted 28 April 2008 - 10:32 AM

  • Posts: 5584
  • Joined: 03-December 03
  • Gender:Male
  • Location::x
  • Project:omg porjcet
  • Wiki edits:10

View PostICEknight, on Apr 28 2008, 03:46 PM, said:

-Replace 0x036A with "Nq".
-Replace country code to "U".
-For some reason, replace 0x0188 with "958E".
-Profit!

This is all according to "Mega Man - The Wily Wars (E) [f1]". I'd like to know why it works, though...


First change: disables checksum error.
Second change: changes region to US.
Third change: fixes checksum - kinda pointless given the first change. :P

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users