Sonic and Sega Retro Message Board: Sonic 3 Hacking - Sonic and Sega Retro Message Board

Jump to content

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

Sonic 3 Hacking Because Non-Tech Members CAN'T avoid this game forever.

#16 User is offline MainMemory 

Posted 02 May 2013 - 10:33 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 3369
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339

View PostTimpZ, on 02 May 2013 - 10:15 PM, said:

The assembly works fine before replacing the files. Here's a link to the folder which is just a fresh download with the ASM files replaced.

If you look before it spams all those errors, you see the REAL problem:
> > >sonic3k.asm(22395): error: symbol undefined
> > > id_SonicBalance
> > >           move.b  #id_SonicBalance,anim(a0)

It's trying to use labels that don't exist.
In the root folder I noticed two Anim files. I moved them to the folder they should be in in a normal disassembly, General/Sprites/Sonic, and it built just fine.
This post has been edited by MainMemory: 02 May 2013 - 10:35 PM

#17 User is offline KingofHarts 

Posted 02 May 2013 - 11:53 PM

  • Call me back when people stop shitting in the punch bowl...
  • Posts: 1480
  • Joined: 07-August 10
  • Gender:Male
  • Wiki edits:1

View PostTiddles, on 02 May 2013 - 08:22 AM, said:

I was looking for that AIZ "bug" video the other day actually! Thanks for finding it again. I'm pretty sure what happens there requires hacking, or intervention from GG or PAR codes.


You guys have been pointing that out... and lemme tell you. You all have no idea how many hours I spent like a dumbass trying to get that "bug" to work... But yea, I had to take a minute to find it again.

View PostTiddles, on 02 May 2013 - 08:22 AM, said:

and on tutorialising anything I already have that falls into a bugfix category - there are just never enough hours in the day.


I can take care of that part. Matter of fact, I've started work on establishing an offline form of the SCHG for you all, for the benefit of those who cannot access the internet, or if... God forbid, Retro is down... I like to practice writing in my document before placing my wiki changes onto the actual website... I still have a ways to go, but it would contain the SCHG information for each of the 3 MD games, as well as an addendum for the How-To Guide. As I'm going through, I'm combing through for errors and the like... Each game is separated into its own document as well, so it is not too cluttered. I don't have any kind of immediate time frame for finishing this, though I may release an early version with the initial SCHG itself as soon as I can.

#18 User is offline KingofHarts 

Posted 09 May 2013 - 03:17 AM

  • Call me back when people stop shitting in the punch bowl...
  • Posts: 1480
  • Joined: 07-August 10
  • Gender:Male
  • Wiki edits:1
An update. I isolated the monitor code, and... seeing as how there is code for the object in Sonic's 1 and 2 to copy off of, this was fairly easy. So here you go, just copy the code in this asm, and paste it into yours. I've tested, and it builds and runs fine. Lemme know of any mistakes and the like.

It's not FULLY complete, but its labeled and all... so messing with Sonic 3's monitor code should be a little bit easier now.

#19 User is offline Tiddles 

Posted 09 May 2013 - 07:09 AM

  • Diamond Dust
  • Posts: 452
  • Joined: 25-December 09
  • Gender:Male
  • Location:Nottingham, England
  • Project:Get in an accident and wake up in 1973
  • Wiki edits:31
TimpZ: sorry, somehow I missed your post about the slope glitch in the page change! I'm at work at the moment, but I've had a quick scan over the AIZ rocks and the ICZ blocks and the breaking code is quite different. I'll try to have a look in the near future to see if I can find an easy fix for the ICZ floating madness based on comparing them, or just looking at where the logic is falling over for the ICZ objects.

EDIT: Yeah, I think I see how to fix this. Will try tonight and let you know.
This post has been edited by Tiddles: 09 May 2013 - 07:42 AM

#20 User is offline Tiddles 

Posted 09 May 2013 - 02:10 PM

  • Diamond Dust
  • Posts: 452
  • Joined: 25-December 09
  • Gender:Male
  • Location:Nottingham, England
  • Project:Get in an accident and wake up in 1973
  • Wiki edits:31
OK, this will fix it for the ICZ ice blocks.

Look for:

loc_8B3D2:
		bset	#2,$2A(a1)
		move.b	#$E,$1E(a1)
		move.b	#7,$1F(a1)
		move.b	#2,$20(a1)
		move.w	#-$300,$1A(a1)
		bset	#1,$2A(a1)
		bclr	#3,$2A(a1)
		move.b	#2,5(a1)
		btst	#4,$2A(a0)
		beq.s	loc_8B41A
		lea	(Player_2).w,a1
		bset	#1,$2A(a1)
		bclr	#3,$2A(a1)


Now add some stuff in the middle so it looks like this:

loc_8B3D2:
		bset	#2,$2A(a1)
		move.b	#$E,$1E(a1)
		move.b	#7,$1F(a1)
		move.b	#2,$20(a1)
		move.w	#-$300,$1A(a1)
		bset	#1,$2A(a1)
		bclr	#3,$2A(a1)
		move.b	#2,5(a1)

		btst	#3,$2A(a0)				; 
		beq.s	+					;
		lea	(Player_1).w,a1				;
		bset	#1,$2A(a1)				;
		bclr	#3,$2A(a1)				;
+								;

		btst	#4,$2A(a0)
		beq.s	loc_8B41A
		lea	(Player_2).w,a1
		bset	#1,$2A(a1)
		bclr	#3,$2A(a1)


I.e. add the section with the semicolon comment markers on the right. Adding comments is left as an exercise for the reader. (Because I'm lazy.)

But in essence: this whole section is run when the ice block is destroyed, and a1 will have been loaded by the previous section with a pointer to the object RAM of the player who destroyed it. It clears any status of that player standing on an object and bounces them up a bit, amongst other things. Then the bit at the bottom, under where I added the fix, goes "Hey, by the way, was player 2 also standing on this object? Let's drop him off it if so." But it never makes any explicit check for whether player 1 is standing on the object, and as such it never drops him if player 2 broke the block.

I suck at explaining this stuff, and that's one of many reasons you don't see any guides by me! But I hope that makes some sense and someone can translate it into something meaningful. If anyone wants to suggest some more objects where similar stuff occurs I can look into those too, but as ever, I make no promises as to when that may be.

You will probably also have to look a few lines up and change a beq.s locret_8B430 to a beq.w. Such is life.

#21 User is offline KingofHarts 

Posted 09 May 2013 - 10:05 PM

  • Call me back when people stop shitting in the punch bowl...
  • Posts: 1480
  • Joined: 07-August 10
  • Gender:Male
  • Wiki edits:1
I won't have much time over the next couple of days, but I will get to work on a page for this fix... I'll hold off on posting on the wiki until we can get all of the related fixes together though... Unfortunately you must be a Wiki Sysop to move pages stuff around on the wiki so if I slap something up prematurely and something else is brought up, I can't move the page... alas...

#22 User is offline KingofHarts 

Posted 11 June 2015 - 08:38 PM

  • Call me back when people stop shitting in the punch bowl...
  • Posts: 1480
  • Joined: 07-August 10
  • Gender:Male
  • Wiki edits:1
Been two years since I've last posted in this thread... WOW. I can't believe that. Anyway got something here. Another graphical oddity that I stumbled upon completely by accident... to the best of my knowledge, this bug's never been seen or reported before. Go to the first section of vines in AIZ 1... just before that is the Rhinobot, two sets of spikes and a ledge. Now, playing as Tails, go to this area and get hit by the spikes closest to the swinging vine. Then quickly get on the vine before Tails stops flickering.

My point to this post is that if you get hurt with Tails and grab onto an object while he is flickering, his Tails will completely disappear until you let go of said object. I don't know if this happens in Sonic 2 but it's worth looking into. I'll do so myself as well when I can get around to it.
This post has been edited by KingofHarts: 11 June 2015 - 08:39 PM

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

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