Sonic and Sega Retro Message Board: Sonic 1 Disassembly - Sonic and Sega Retro Message Board

Jump to content

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

Sonic 1 Disassembly

#31 User is offline Hivebrain 

Posted 15 July 2010 - 06:45 PM

  • Posts: 2508
  • Joined: 15-January 03
  • Gender:Male
  • Location:53.4N, 1.5W
  • Project:HivePal 2.0
  • Wiki edits:6,176
For those who haven't noticed, I've been updating the disassembly again recently. The latest things I added are long conditional jumps for when beq and suchlike are out of range. Here's an example:

Syntax Highlighted Code: ASM
 
jeq: macro loc
bne.s @nojump
jmp loc
@nojump:
endm
 


#32 User is offline shobiz 

Posted 16 July 2010 - 04:48 AM

  • Posts: 863
  • Joined: 27-March 05
  • Gender:Male
  • Location:Karachi, Pakistan
  • Wiki edits:4,411
That's a pretty damn cool idea, it'll make fixing out of range errors much easier for people who are new to ASM. (Or maybe not, since most of them seem to prefer using a 5 year old disassembly instead :/)

#33 User is offline Mercury 

Posted 16 July 2010 - 05:25 AM

  • His Name Is Sonic
  • Posts: 1711
  • Joined: 13-November 08
  • Gender:Not Telling
  • Location:Location Location
  • Project:AeStHete
  • Wiki edits:130
Speaking of the Sonic 1 Disassembly, I've noticed that the obHeight and obWidth constants are incorrectly named - they need to be reversed: obHeight to obWidth and obWidth to obHeight.

I'm not exactly sure how to do this myself as I've never updated the SVN before.


#34 User is offline DalekSam 

Posted 16 July 2010 - 06:07 AM

  • Resident Tsundere
  • Posts: 1908
  • Joined: 19-February 08
  • Gender:Male
  • Location:Northern Ireland, Belfast
  • Project:Sonic Thrash, Sonic Boom, Super Famidev
  • Wiki edits:165
QUOTE (shobiz @ Jul 16 2010, 10:48 AM)
(Or maybe not, since most of them seem to prefer using a 5 year old disassembly instead :/)

Problem being there aren't any references to the old labels. Additionally, most guides use the 2005 dissasembly, too.

#35 User is offline Spanner 

Posted 16 July 2010 - 06:31 AM

  • Not much I can do on here nowadays...
  • Posts: 2873
  • Joined: 02-June 07
  • Gender:Male
  • Location:United Kingdom
  • Project:Sonic the Hedgehog Hacking Contest, Other Stuff
  • Wiki edits:2,193
QUOTE (DalekSam @ Jul 16 2010, 12:07 PM)
QUOTE (shobiz @ Jul 16 2010, 10:48 AM)
(Or maybe not, since most of them seem to prefer using a 5 year old disassembly instead :/)

Problem being there aren't any references to the old labels. Additionally, most guides use the 2005 dissasembly, too.

This is the main problem why people aren't using this disassembly. The Sonic 2 SVN disasm references old labels, the 2005 labels could at least be referenced. Also, I'm sure most people would rather have a quick download rather than having to set up a SVN client for the latest version.

As for the guides, that is true. Most people are used to the 2005 disassembly and they will probably use it until issues with the SVN disasm are fixed. Then, guides can be rewritten for the SVN disasm.
And once that happens, somebody can fill up SCHG:Equivalent Subroutines
This post has been edited by SOTI: 16 July 2010 - 06:32 AM

#36 User is offline Hivebrain 

Posted 16 July 2010 - 01:25 PM

  • Posts: 2508
  • Joined: 15-January 03
  • Gender:Male
  • Location:53.4N, 1.5W
  • Project:HivePal 2.0
  • Wiki edits:6,176
QUOTE (Mercury @ Jul 16 2010, 11:25 AM)
Speaking of the Sonic 1 Disassembly, I've noticed that the obHeight and obWidth constants are incorrectly named - they need to be reversed: obHeight to obWidth and obWidth to obHeight.

I'm not exactly sure how to do this myself as I've never updated the SVN before.

Are you sure about that? The Sonic 2 disassembly has $16 as width and $17 as height too.

#37 User is offline shobiz 

Posted 16 July 2010 - 02:00 PM

  • Posts: 863
  • Joined: 27-March 05
  • Gender:Male
  • Location:Karachi, Pakistan
  • Wiki edits:4,411
QUOTE (Hivebrain @ Jul 16 2010, 11:25 PM)
QUOTE (Mercury @ Jul 16 2010, 11:25 AM)
Speaking of the Sonic 1 Disassembly, I've noticed that the obHeight and obWidth constants are incorrectly named - they need to be reversed: obHeight to obWidth and obWidth to obHeight.

I'm not exactly sure how to do this myself as I've never updated the SVN before.
Are you sure about that? The Sonic 2 disassembly has $16 as width and $17 as height too.

Syntax Highlighted Code: ASM
y_radius =		$16 ; collision width / 2
x_radius = $17 ; collision height / 2

The labels are right, the comments are wrong (width and height are switched around). I just fixed that in the S2 SVN, it should be fixed in this too.

#38 User is offline MarkeyJester 

Posted 16 July 2010 - 02:07 PM

  • Clouded in obscurity.
  • Posts: 1595
  • Joined: 22-July 08
  • Gender:Male
  • Location:Japan
  • Wiki edits:16
QUOTE (SOTI @ Jul 16 2010, 12:31 PM)
QUOTE (DalekSam @ Jul 16 2010, 12:07 PM)
QUOTE (shobiz @ Jul 16 2010, 10:48 AM)
(Or maybe not, since most of them seem to prefer using a 5 year old disassembly instead :/)

Problem being there aren't any references to the old labels. Additionally, most guides use the 2005 dissasembly, too.

This is the main problem why people aren't using this disassembly. The Sonic 2 SVN disasm references old labels, the 2005 labels could at least be referenced. Also, I'm sure most people would rather have a quick download rather than having to set up a SVN client for the latest version.

As for the guides, that is true. Most people are used to the 2005 disassembly and they will probably use it until issues with the SVN disasm are fixed. Then, guides can be rewritten for the SVN disasm.
And once that happens, somebody can fill up SCHG:Equivalent Subroutines

I'm pretty sure the reason is because the older disassemblies are generally easier to obtain and setup, there as SVN (having to be downloaded individually unless an SVN client is being use (Which most who aren't deep within the community tends not to use anyway)) is not as easy. And my reason for not using Sonic 2 SVN is because of it's complexity, long lable names, macros' which make it easier but not understandable, and having the lables from the older disassemblies leaves it looking like a complete mess, and messy code tends to make the programmer feel less incline to work on their project, it's like climbing a mountain and seeing that what's up ahead is more bumpy than expected.

As for the conditional jumps, not a bad idea and pretty genius, though I can see it being used in places where something more optimal could be written insted and have the same effect.

#39 User is offline Spanner 

Posted 16 July 2010 - 02:59 PM

  • Not much I can do on here nowadays...
  • Posts: 2873
  • Joined: 02-June 07
  • Gender:Male
  • Location:United Kingdom
  • Project:Sonic the Hedgehog Hacking Contest, Other Stuff
  • Wiki edits:2,193
Just noticed that you uploaded the SVN version on the wiki. Are you going to manually upload the latest version every month as an attempt to get more people to use the disassembly?

It's a good idea considering that the WebSVN downloads never work, but again, more people are used to the 2005 disasm.
This post has been edited by SOTI: 16 July 2010 - 02:59 PM

#40 User is offline Hivebrain 

Posted 16 July 2010 - 03:02 PM

  • Posts: 2508
  • Joined: 15-January 03
  • Gender:Male
  • Location:53.4N, 1.5W
  • Project:HivePal 2.0
  • Wiki edits:6,176
I've fixed the obHeight/obWidth issue, and created a downloadable copy of the disasm here:

http://info.sonicretro.org/File:Sonic_1_Di...ly_July_2010.7z

Labels from old disassemblies will not be restored, because they're incorrect in many cases, and they make things look cluttered as MarkeyJester said.

#41 User is offline Spanner 

Posted 16 July 2010 - 03:07 PM

  • Not much I can do on here nowadays...
  • Posts: 2873
  • Joined: 02-June 07
  • Gender:Male
  • Location:United Kingdom
  • Project:Sonic the Hedgehog Hacking Contest, Other Stuff
  • Wiki edits:2,193
Well I hope you enjoy your low takeup. Nobody is going to switch to a disassembly which has radically been changed and is going to confuse people. If you're not going to reference them inside the disassembly, create a text file that's provided with the disasm with the major label changes and update the equivalent subroutines table. This would give some guidance. Then again, maybe a global labelling scheme for both disassemblies could be looked at.
This post has been edited by SOTI: 16 July 2010 - 03:13 PM

#42 User is offline Selbi 

Posted 16 July 2010 - 03:14 PM

  • Tief.Tiefer
  • Posts: 1431
  • Joined: 12-May 08
  • Gender:Male
  • Location:Northern Germany
  • Project:Sonic ERaZor
  • Wiki edits:320
QUOTE (Hivebrain @ Jul 16 2010, 01:45 AM)
For those who haven't noticed, I've been updating the disassembly again recently. The latest things I added are long conditional jumps for when beq and suchlike are out of range. Here's an example:

Syntax Highlighted Code: ASM
 
jeq: macro loc
bne.s @nojump
jmp loc
@nojump:
endm
 

I love you! I've been waiting for this for over 3 years. =D

#43 User is offline Mercury 

Posted 17 July 2010 - 10:24 AM

  • His Name Is Sonic
  • Posts: 1711
  • Joined: 13-November 08
  • Gender:Not Telling
  • Location:Location Location
  • Project:AeStHete
  • Wiki edits:130
QUOTE (Hivebrain @ Jul 16 2010, 08:02 PM)
I've fixed the obHeight/obWidth issue, and created a downloadable copy of the disasm here:

Thank you! smile.png It threw me for awhile until I figured out that they were wrong. Now nobody else using it will have to go through that.

#44 User is offline qiuu 

Posted 17 July 2010 - 05:09 PM

  • Posts: 134
  • Joined: 05-February 08
  • Gender:Not Telling
  • Project:Blue Ball & Blocks
  • Wiki edits:13
QUOTE (SOTI @ Jul 16 2010, 10:07 PM)
Well I hope you enjoy your low takeup. Nobody is going to switch to a disassembly which has radically been changed and is going to confuse people. If you're not going to reference them inside the disassembly, create a text file that's provided with the disasm with the major label changes and update the equivalent subroutines table. This would give some guidance. Then again, maybe a global labelling scheme for both disassemblies could be looked at.
Do you notice you keep reiterating the same point over and over again?
It's a minor drawback (especially to beginners) compared to the huge advantages the new disasm offers.

Anyway, so you finally shut up, here's that freakin' list: http://geoo.digibase.ca/Genesis/s1_labellist.txt
Hope considering that you've been crying for it for ages, you'll actually make something from it now.

(It's been autogenerated by the following rather primitive program: http://geoo.digibase.ca/Genesis/s1_labellist_make.cpp Some additional fixes have been applied to the file afterwards. Not guaranteed to be perfect.)
EDIT: small bugfix
This post has been edited by qiuu: 17 July 2010 - 06:28 PM

#45 User is offline Spanner 

Posted 17 July 2010 - 05:50 PM

  • Not much I can do on here nowadays...
  • Posts: 2873
  • Joined: 02-June 07
  • Gender:Male
  • Location:United Kingdom
  • Project:Sonic the Hedgehog Hacking Contest, Other Stuff
  • Wiki edits:2,193
Yeah, I did use it for something:
SCHG:Equivalent_Subroutines
More will be added eventually. People are encouraged to add new things to it.

  • 5 Pages +
  • 1
  • 2
  • 3
  • 4
  • 5
    Locked
    Locked Forum

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