- Group:
- Member: Members
- Active Posts:
- 238 (0.09 per day)
- Most Active In:
- Engineering & Reverse Engineering (149 posts)
- Joined:
- 04-September 08
- Profile Views:
- 2261
- Last Active:
Jan 10 2015 02:13 PM- Currently:
- Offline
My Information
- Member Title:
- Masochistic Maniac, Raving Lunatic <3
- Age:
- 25 years old
- Birthday:
- October 29, 1989
- Gender:
-
Male
- Location:
- East Midlands, England
- Interests:
- Aside from Sonic Hacking, I enjoy playing various games on various platforms, and dabble in various MMO's.
Contact Information
- E-mail:
- Private
- Website:
-
http://
Previous Fields
- Other Contact Info:
- Destructiox on IRC
- Project:
- Sonic 1 Lunacy.
- National Flag:
- uk
- Wiki edits:
- 45
Topics I've Started
-
Sonic 1 Lunacy
14 February 2012 - 03:01 PM
EDIT: If your rom is not listed as REV03, Please re-download, as the resizing for GHZ3 Hard boss was broken, it is now fixed.
I'd spent a long time thinking about how I was going to write this topic out. After all, the presentation can be important to the hack. Three and a half years of work has been put into this, the first public demo release of Sonic 1 Lunacy, so the topic should be something to consider. This is about the best I can do.
****USELESS HISTORIC SPEECH AHEAD****
It was the thirteenth of August, 2008 that I began working on this project. Initially, it was just designed to be the average joe's hack. Changes here, changes there, nothing truly ground-breaking. But then I made an account on Sonic Retro, and began frequenting the IRC, and I started to meet people. Malevolence, SAEGA, MarkeyJester, and the Masochistic Maniacs, each of them teaching me and in time spurring me on, all building up into what we have before us.
'The Masochistic Maniacs?' I hear you say. 'Who is this bizarre, unknown group of which Destructiox speaks?'
The Masochistic Maniacs is the group that has come together to create Sonic 1 Lunacy. For the first part of the project's history, about a year and a few months, it was indeed, a solo project. But then MarkeyJester joked with me about creating a team, and I actually took up on his suggestion. Many people have worked on this hack, but the core members of the Masochistic Maniacs are, alongside myself: MarkeyJester, SonicVaan, CarrascoZX0, Spanner, and Selbi. Not a large list, no, but there have been people coming and going in the group. Credit goes to UtopiaUK, SAEGA (pretty much the entirety of this awesome group have provided some insight or code or knowledge that has been put towards this hack. You guys are awesome. <3) to Cinossu, and to the Sonic Retro staff for keeping this place up and for allowing me to be a member of the community, which in turn is the base for this entire project. There are many more people that have contributed in different ways, and I am truly thankful for the support and the effort each individual has given me.
More info in the history of the hack/team can be found on their respective wiki pages:
Sonic 1 Lunacy
Masochistic Maniacs
****END OF USELESS HISTORIC SPEECH****
Regarding the demo itself:
It's rather bare-bones. A lot of things have been removed because they obviously aren't ready yet. The content provided in the demo is subject to change, and is being shown so you guys have something to enjoy (or despise) while we re-work a few things which results in adding several more months to the development time. Alongside that, owing to this being an (incomplete) demo, some levels are not fully fleshed out, and there are some prevalent bugs in the game which were unable to be fixed within the time limit. Known bugs that I can remember off the top of my head are:
Not collecting a special stage ring when one is on screen will result in crabmeats and buzzbombers giving out glitchy graphics. (SO YOU'D BETTER GET YOUR ASS IN THERE
)
Entering a special stage will (most of the time) reset the timer, and will always reset the ring count.
BONU and CONTINUE on the special stage result screen still uses the original HUD graphics.
Using the teleport monitor in GHZ2 Lunatic can result in the background being messed up.
There are far too many 0's in the HUD. I just fukken love 0's too much.
EDIT: A few more I remembered:
Hard Mode's scroll lock after the boss is defeated is not working as desired. It is recommended to take your time and savestate after beating the boss to avoid major annoyance. (Yes, recommending a save-state.)
Lunatic's boss is unable to swing his ball. His hit points are too heavy.
That said, Sonic 1 Lunacy Demo 1
Please remember, I liked to be cooked medium-rare.
Screenshots:

-
How to fix those nasty branch-out-of-range errors
09 August 2009 - 07:23 AM
So, you've written some awesome code, for the most awesome shit ever to be hacked into sonic, you're sure it all works fine, go to build...........but wait? What's this?
Seems like something's wrong. But you didn't even touch that part of the code, what's going on?
What happened, is when you implemented your new code, you pushed this branch out of it's range. To be more specific, you've pushed the branch at line 899 out of range, by 556652 bytes. There's three ways to fix this, plain and simple.
1) Take it to the next level!
if the branch in question that is out of range is a bxx.s, then try replacing it with a bxx.w. IF you're wondering why, it's because bxx.w has a greater range than bxx.s (Wherein the x's used are wildcards and practically any form of branch can be substituted into bxx)
2) I'll have to give myself a prrrrromotion!
if the branch in question is a bra or bsr, then simply replace them with a jmp or jsr respectively. This will solve most of your problems, as jmp and jsr have unlimited range.
3) SnooPING AS usual I see!
So the above two methods didn't work or weren't eligible, so what do you do now? Work around the problem.
Say, for example, you have the following code
CODEObj01_RAGE:
cmpi.b #1,($FFFFFFFE).w
beq.w SonicRAAAAGE
move.w #$1800,($FFFFF760).w; change Sonic's top speed
move.w #$40,($FFFFF762).w; change Sonic's acceleration
move.w #$60,($FFFFF764).w; change Sonic's deceleration
rts
[30,000 lines of code here]
SonicRAAAAGE:
jsr KillSonic
(Yes, I know this code is completely random and makes no sense, it's not supposed to :V)
So, you go to build, but oops! It's out of range. You can't make the branch any bigger, and you can't change it to jsr or jmp, that will make it mandatory, so what do we do?
What we can do, is set up a mini-chain of branches, which will ensure the code will work the way you want it to. It's ridiculously easy.
CODEObj01_RAGE:
cmpi.b #1,($FFFFFFFE).w
beq.w SonicRAAAAGEJump
move.w #$1800,($FFFFF760).w; change Sonic's top speed
move.w #$40,($FFFFF762).w; change Sonic's acceleration
move.w #$60,($FFFFF764).w; change Sonic's deceleration
rts
SonicRAAAAGEJump:
jmp SonicRAAAAGE
[30,000 lines of code here]
SonicRAAAAGE:
jsr KillSonic
And that should work :D Give it a try on your latest out-of-branch errors, I guarantee it'll work, as long as you use the right labelling.
Comments & Amendments welcome. Written by Destructiox.
Friends
Destructiox hasn't added any friends yet.


Find My Content
Jan 10 2015 02:13 PM
Male