Sonic and Sega Retro Message Board: How to fix the Level Select menu so it have the true in-game order - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
Page 1 of 1
    Locked
    Locked Forum

How to fix the Level Select menu so it have the true in-game order Level Select Menu Text and Level Pointers

#1 User is offline STHX 

  Posted 26 May 2008 - 11:32 AM

  • SEGAAAAAAAAA?!?
  • Posts: 1753
  • Joined: 25-April 08
  • Gender:Male
  • Location:The world of Trophies
  • Project:Sonic In Mushroom Kingdom
  • Wiki edits:31
Before starting, probably some people will say this topic is useless or not needed (also most mayor hacks do not have the old level select menu), however, others, like me, may find this useful for their hack, so I'm doing this for them, and also to check if I understood this process completely (If I'm wrong, please someone correct me. Where I live nobody is a programmer/RomHacker, so I can't ask anybody). The first part is based on the SCHG:Sonic The Hedgehog Text Editing, the second part has some original research. Also, this topic is useless if you use ESE, but it helps if you use a disassembly.
NOTE: Hivebrain 2005 Disassembly used. Sorry if it has differences from other disassemblies.
Anyway, Let's Start:

Introduction:
If you have been on this board for a long time, chance is you have played Sonic The Hedgehog, and if you played it, you know it has a Level Select code (UP DOWN LEFT RIGHT to activate it, A+START to enter the level select menu). However, the Zone order in the menu is not the actual in-game order, but the original planned order.

Posted Image

This topic will show you how to change it and still mantain its functions.
You will need an Hex Editor for this.

Step 1: The Text

From the Hivebrain 2005 Disassembly open with an hex editor the file menutext.bin in the misc folder. You should have something like this:

17 22 15 15 1E FF 18 19 1C 1C FF 10 1F 1E 15 FF FF 23 24 11 17 15 FF 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 1C 11 12 0F 22 19 1E 24 18 FF 10 1F 1E 15 FF FF FF 23 24 11 17 15 FF 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 1D 11 22 12 1C 15 FF 10 1F 1E 15 FF FF FF FF FF FF 23 24 11 17 15 FF 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 23 24 11 22 FF 1C 19 17 18 24 FF 10 1F 1E 15 FF FF 23 24 11 17 15 FF 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 23 20 22 19 1E 17 FF 0F 11 22 14 FF 10 1F 1E 15 FF 23 24 11 17 15 FF 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 23 13 22 11 20 FF 12 22 11 19 1E FF 10 1F 1E 15 FF 23 24 11 17 15 FF 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 16 19 1E 11 1C FF 10 1F 1E 15 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 20 15 13 19 11 1C FF 23 24 11 17 15 FF FF FF FF FF FF FF FF FF FF FF 23 1F 25 1E 14 FF 23 15 1C 15 13 24 FF FF FF FF FF FF FF FF FF FF FF FF

Now, if you have read the article SCHG:Sonic The Hedgehog Text Editing on the wiki, you know that all of this bytes can be translated to a character. In particular:

00 = 0 01 = 1 02 = 2 03 = 3 04 = 4
05 = 5 06 = 6 07 = 7 08 = 8 09 = 9
0A = $ 0B = - 0C = = 0D = <- 0E = <-
0F = Y 10 = Z 11 = A 12 = B 13 = C
14 = D 15 = E 16 = F 17 = G 18 = H
19 = I 1A = J 1B = K 1C = L 1D = M
1E = N 1F = O 20 = P 21 = Q 22 = R
23 = S 24 = T 25 = U 26 = V 27 = W
28 = X FF = (space)

These are the corrisponding values, that, when rearranged will look like this:

17 22 15 15 1E FF 18 19 1C 1C FF 10 1F 1E 15 FF FF 23 24 11 17 15 FF 01 (GREEN HILL ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
1C 11 12 0F 22 19 1E 24 18 FF 10 1F 1E 15 FF FF FF 23 24 11 17 15 FF 01 (LABYRINTH ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
1D 11 22 12 1C 15 FF 10 1F 1E 15 FF FF FF FF FF FF 23 24 11 17 15 FF 01 (MARBLE ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
23 24 11 22 FF 1C 19 17 18 24 FF 10 1F 1E 15 FF FF 23 24 11 17 15 FF 01 (STAR LIGHT ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
23 20 22 19 1E 17 FF 0F 11 22 14 FF 10 1F 1E 15 FF 23 24 11 17 15 FF 01 (SPRING YARD ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
23 13 22 11 20 FF 12 22 11 19 1E FF 10 1F 1E 15 FF 23 24 11 17 15 FF 01 (SCRAP BRAIN ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
16 19 1E 11 1C FF 10 1F 1E 15 FF FF FF FF FF FF FF FF FF FF FF FF FF FF (FINAL ZONE)
23 20 15 13 19 11 1C FF 23 24 11 17 15 FF FF FF FF FF FF FF FF FF FF FF (SPECIAL STAGE)
23 1F 25 1E 14 FF 23 15 1C 15 13 24 FF FF FF FF FF FF FF FF FF FF FF FF (SOUND SELECT)

Now you can change the code to make it reflect the true in-game Zone order (GHZ MZ SYZ LZ SLZ SBZ FZ). In the end, you should have somethign like this:

17 22 15 15 1E FF 18 19 1C 1C FF 10 1F 1E 15 FF FF 23 24 11 17 15 FF 01 (GREEN HILL ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
1D 11 22 12 1C 15 FF 10 1F 1E 15 FF FF FF FF FF FF 23 24 11 17 15 FF 01 (MARBLE ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
23 20 22 19 1E 17 FF 0F 11 22 14 FF 10 1F 1E 15 FF 23 24 11 17 15 FF 01 (SPRING YARD ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
1C 11 12 0F 22 19 1E 24 18 FF 10 1F 1E 15 FF FF FF 23 24 11 17 15 FF 01 (LABYRINTH ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
23 24 11 22 FF 1C 19 17 18 24 FF 10 1F 1E 15 FF FF 23 24 11 17 15 FF 01 (STAR LIGHT ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
23 13 22 11 20 FF 12 22 11 19 1E FF 10 1F 1E 15 FF 23 24 11 17 15 FF 01 (SCRAP BRAIN ZONE STAGE 1)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 02 (STAGE 2)
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 23 24 11 17 15 FF 03 (STAGE 3)
16 19 1E 11 1C FF 10 1F 1E 15 FF FF FF FF FF FF FF FF FF FF FF FF FF FF (FINAL ZONE)
23 20 15 13 19 11 1C FF 23 24 11 17 15 FF FF FF FF FF FF FF FF FF FF FF (SPECIAL STAGE)
23 1F 25 1E 14 FF 23 15 1C 15 13 24 FF FF FF FF FF FF FF FF FF FF FF FF (SOUND SELECT)

Save, test, build, and you should have done it. However, now that the text is changed, there seems to a bigger problem,

Posted Image

Because if you select Marble Zone 1

Posted Image

You will go to Labyrinth!
So, does this mean we screwed up? Yes, but only because the level pointers were not altered, and now we will change them.

Step 2: The Level Pointers

From the Hivebrain 2005 Disassembly open with an hex editor the file ls-point.bin in the misc folder. You should have something like this:

00 00 00 01 00 02 01 00 01 01 01 02 02 00 02 01 02 02 03 00 03 01 03 02 04 00 04 01 04 02 05 00 05 01 01 03 05 02 07 00 80 00

This file tell the game in what Zone the various selection of the Level Select Menu will take Sonic (The Level Pointers)
But... What does it mean? Before going on, let me explain something on the Zones.
The game give a hex value to all Zones and to all Acts, and the order follows (Again) the original planned order of the levels. Each level is identified with a pair of bytes, the first indicate the zone number (remember, they are in Hex, and they start at 00):

00 = GHZ
01 = LZ
02 = MZ
03 = SLZ
04 = SYZ
05 = SBZ
07 = Special Stage

While the second indicate the zone act:

00 = Act 1
01 = Act 2
02 = Act 3
03 = Act 4 [No, it's not a mistake. Sonic The Hedgehog has a fourth Act, I'll explain this after]

Still unclear? Then let's arrange the code:

(GREEN HILL ZONE STAGE 1) 00 00
(STAGE 2) 00 01
(STAGE 3) 00 02
(LABYRINTH ZONE STAGE 1 01 00
(STAGE 2) 01 01
(STAGE 3) 01 02
(MARBLE ZONE STAGE 1) 02 00
(STAGE 2) 02 01
(STAGE 3) 02 02
(STAR LIGHT ZONE STAGE 1) 03 00
(STAGE 2) 03 01
(STAGE 3) 03 02
(SPRING YARD ZONE STAGE 1) 04 00
(STAGE 2) 04 01
(STAGE 3) 04 02
(SCRAP BRAIN ZONE STAGE 1) 05 00
(STAGE 2) 05 01
(STAGE 3) 01 03 [Remember the fourth act thing? Then do not forget that SBZ Act 3 is in truth LZ act 4. This is important! FZ is the true SBZ Act 3]
(FINAL ZONE) 05 02
(SPECIAL STAGE) 07 00
(SOUND SELECT) 80 00 [This do not point to any level. I suppose it just tell the game to set the Sound Select number to 80]

Now it's a lot easier to understand that bunch of Hex values. Now change them so they reflect the new Text in the menu (You should have something like this: 00 00 00 01 00 02 02 00 02 01 02 02 04 00 04 01 04 02 01 00 01 01 01 02 03 00 03 01 03 02 05 00 05 01 01 03 05 02 07 00 80 00):

(GREEN HILL ZONE STAGE 1) 00 00
(STAGE 2) 00 01
(STAGE 3) 00 02
(MARBLE ZONE STAGE 1) 02 00
(STAGE 2) 02 01
(STAGE 3) 02 02
(SPRING YARD ZONE STAGE 1) 04 00
(STAGE 2) 04 01
(STAGE 3) 04 02
(LABYRINTH ZONE STAGE 1 01 00
(STAGE 2) 01 01
(STAGE 3) 01 02
(STAR LIGHT ZONE STAGE 1) 03 00
(STAGE 2) 03 01
(STAGE 3) 03 02
(SCRAP BRAIN ZONE STAGE 1) 05 00
(STAGE 2) 05 01
(STAGE 3) 01 03
(FINAL ZONE) 05 02
(SPECIAL STAGE) 07 00
(SOUND SELECT) 80 00

Save, build, and try again to select Marble Zone Stage 1

Posted Image

Success!!! The level select menu now not only have the the Zones in the right order, but you will actually go there when you select them.

Final note: This can help you if you plan to change the Zone names (Or the order) in your hack, and still have a perfect Level Select Menu.
Have fun :lol: .


EDIT: Stupid me accented all the Us in the word menu, but now it is fixed... Wait, no. The one in the title need to be fixed too.
This post has been edited by STHX: 28 May 2008 - 02:43 AM

#2 User is offline Puto 

Posted 26 May 2008 - 11:38 AM

  • Shin'ichi Kudō, detective.
  • Posts: 2012
  • Joined: 31-July 05
  • Gender:Male
  • Location:Portugal, Oeiras
  • Project:Part of Team Megamix, but haven't done any actual work in ages.
  • Wiki edits:51
One question... why did you use an accented ù in "menu"?

#3 User is offline STHX 

Posted 26 May 2008 - 11:39 AM

  • SEGAAAAAAAAA?!?
  • Posts: 1753
  • Joined: 25-April 08
  • Gender:Male
  • Location:The world of Trophies
  • Project:Sonic In Mushroom Kingdom
  • Wiki edits:31

View PostPuto, on May 26 2008, 06:38 PM, said:

One question... why did you use an accented ù in "menu"?

Sorry, I italianized the word, I'll fix this now.

#4 User is offline nineko 

Posted 26 May 2008 - 11:45 AM

  • I am the Holy Cat
  • Posts: 5509
  • Joined: 17-August 06
  • Gender:Male
  • Location:italy
  • Project:I... don't even know anymore :U
  • Wiki edits:5,251
Go Italy :D

Now, to add some content to this post, since I don't like to write useless comments.

If you plan to add more levels, being them Act 4s or new Zones, it's easy to add more lines to the menu.
For one, you just have to add a new row of 24 bytes in menutext.bin, and a new row of 2 bytes in ls_point.bin using the syntaxes described above. This is the easiest part.
Now, you have to edit a few sections of the asm code.

Look here:
LevSelControls:		; XREF: LevelSelect
		move.b	($FFFFF605).w,d1
		andi.b	#3,d1; is up/down pressed and held?
		bne.s	LevSel_UpDown; if yes, branch
		subq.w	#1,($FFFFFF80).w; subtract 1 from time	to next	move
		bpl.s	LevSel_SndTest; if time remains, branch

LevSel_UpDown:
		move.w	#$B,($FFFFFF80).w; reset time delay
		move.b	($FFFFF604).w,d1
		andi.b	#3,d1; is up/down pressed?
		beq.s	LevSel_SndTest; if not, branch
		move.w	($FFFFFF82).w,d0
		btst	#0,d1; is up	pressed?
		beq.s	LevSel_Down; if not, branch
		subq.w	#1,d0; move up 1 selection
		bcc.s	LevSel_Down
		moveq	#$14,d0; if selection moves below 0, jump to selection	$14; THIS LINE HAS TO BE EDITED

LevSel_Down:
		btst	#1,d1; is down pressed?
		beq.s	LevSel_Refresh; if not, branch
		addq.w	#1,d0; move down 1 selection
		cmpi.w	#$15,d0; THIS LINE HAS TO BE EDITED
		bcs.s	LevSel_Refresh
		moveq	#0,d0; if selection moves above $14,	jump to	selection 0

LevSel_Refresh:
		move.w	d0,($FFFFFF82).w; set new selection
		bsr.w	LevSelTextLoad; refresh text
		rts	
; ===========================================================================

LevSel_SndTest:		; XREF: LevSelControls
		cmpi.w	#$14,($FFFFFF82).w; is	item $14 selected?; THIS LINE HAS TO BE EDITED
		bne.s	LevSel_NoMove; if not, branch
		move.b	($FFFFF605).w,d1
		andi.b	#$C,d1; is left/right	pressed?
		beq.s	LevSel_NoMove; if not, branch
		move.w	($FFFFFF84).w,d0
		btst	#2,d1; is left pressed?
		beq.s	LevSel_Right; if not, branch
		subq.w	#1,d0; subtract 1 from sound	test
		bcc.s	LevSel_Right
		moveq	#$4F,d0; if sound test	moves below 0, set to $4F

LevSel_Right:
		btst	#3,d1; is right pressed?
		beq.s	LevSel_Refresh2; if not, branch
		addq.w	#1,d0; add 1	to sound test
		cmpi.w	#$50,d0
		bcs.s	LevSel_Refresh2
		moveq	#0,d0; if sound test	moves above $4F, set to	0

LevSel_Refresh2:
		move.w	d0,($FFFFFF84).w; set sound test number
		bsr.w	LevSelTextLoad; refresh text

LevSel_NoMove:
		rts	
; End of function LevSelControls
There are three lines that need to be changed.
Edit the #$14 in the first moveq to #$15, the #$15 in the first cmpi.w to #$16, and the #$14 in the other cmpi.w to #$15

What will this do? This will tell the game that you can now select one more line, and that the sound test has been shifted down by one line.

Now, right below that code, you should find this:
LevSelTextLoad:		; XREF: TitleScreen
		lea	(LevelMenuText).l,a1
		lea	($C00000).l,a6
		move.l	#$62100003,d4; screen position (text); THIS LINE HAS TO BE EDITED
		move.w	#$E680,d3; VRAM setting
		moveq	#$14,d1; number of lines of text; THIS LINE HAS TO BE EDITED

loc_34FE:		; XREF: LevSelTextLoad+26j
		move.l	d4,4(a6)
		bsr.w	LevSel_ChgLine
		addi.l	#$800000,d4
		dbf	d1,loc_34FE
		moveq	#0,d0
		move.w	($FFFFFF82).w,d0
		move.w	d0,d1
		move.l	#$62100003,d4; THIS LINE HAS TO BE EDITED
		lsl.w	#7,d0
		swap	d0
		add.l	d0,d4
		lea	(LevelMenuText).l,a1
		lsl.w	#3,d1
		move.w	d1,d0
		add.w	d1,d1
		add.w	d0,d1
		adda.w	d1,a1
		move.w	#$C680,d3
		move.l	d4,4(a6)
		bsr.w	LevSel_ChgLine
		move.w	#$E680,d3
		cmpi.w	#$14,($FFFFFF82).w; THIS LINE HAS TO BE EDITED
		bne.s	loc_3550
		move.w	#$C680,d3

loc_3550:
		move.l	#$6C300003,($C00004).l; screen	position (sound	test); THIS LINE HAS TO BE EDITED
		move.w	($FFFFFF84).w,d0
		addi.w	#$80,d0
		move.b	d0,d2
		lsr.b	#4,d0
		bsr.w	LevSel_ChgSnd
		move.b	d2,d0
		bsr.w	LevSel_ChgSnd
		rts	
; End of function LevSelTextLoad
Now, you see two more #$14 that need to be changed to #$15, but there is more to do: change the parameter in move.l #$62100003,d4 and in move.l #$6C300003,($C00004).l

That parameter express the coordinates on the screen where the text is loaded. The first one ($62100003), which appears twice, refers to the main block of text (all except the sound test number); the second one ($6C300003)) refers to the sound test number. You actually have two chances here: edit the $62100003 and move all the text up by one row, or edit the $6C300003 and move the sound test number down one row. To do this, remember that each row is 8 pixels high. So, in the first case, you have to change $62100003 to $61900003 (both of them!); in the second case, you have to change the $6C300003 to $6CB00003. That, or you can experiment new placements that better suit your imagination. So, straight from my hack, here is the result (minus the special stage selector, which is a completely different matter):
Posted Image

Have fun!
This post has been edited by nineko: 26 May 2008 - 12:14 PM

#5 User is offline Tweaker 

Posted 26 May 2008 - 11:49 AM

  • Posts: 12389
  • Joined: 27-June 04
  • Gender:Male
Alternatively, download the Sonic 1 Japanese ROM. =P

Nice to see someone understand this process, though. It's not terribly complicated—in fact, it's the most basic of the basic—but if it's what helps you understand things, go for it. :)

#6 User is offline STHX 

Posted 26 May 2008 - 11:57 AM

  • SEGAAAAAAAAA?!?
  • Posts: 1753
  • Joined: 25-April 08
  • Gender:Male
  • Location:The world of Trophies
  • Project:Sonic In Mushroom Kingdom
  • Wiki edits:31

View PostTweaker, on May 26 2008, 06:49 PM, said:

Nice to see someone understand this process, though. It's not terribly complicated—in fact, it's the most basic of the basic—but if it's what helps you understand things, go for it. :)

This is the very first programming/Hex thing (The very first ASM thing I did was the succeful importing of my midframes in Sonic 1) I did in my whole life, and it helped me understanding the Sonic Engine a lot more.

#7 User is online Overlord 

Posted 26 May 2008 - 05:14 PM

  • Substitute Meerkovo IT Chief
  • Posts: 16045
  • Joined: 12-January 03
  • Gender:Male
  • Location:Berkshire, England
  • Project:VGDB
  • Wiki edits:3,204

View PostTweaker, on May 26 2008, 05:49 PM, said:

Alternatively, download the Sonic 1 Japanese ROM. =P

The funny thing is, that's exactly what I was thinking, that and "or use STE to do it". However that wouldn't do the pointers or work on a split assembly, sooo... =P

#8 User is offline nineko 

Posted 26 May 2008 - 05:16 PM

  • I am the Holy Cat
  • Posts: 5509
  • Joined: 17-August 06
  • Gender:Male
  • Location:italy
  • Project:I... don't even know anymore :U
  • Wiki edits:5,251

View PostOverlord, on May 27 2008, 12:14 AM, said:

"or use STE to do it". However that wouldn't do the pointers or work on a split assembly, sooo... =P
There is Esrael Sonic Editor, which can fix the pointers as well. But it doesn't work on a split disassembly. A workaround for this would be to edit a clean rom and then split it.

#9 User is offline STHX 

Posted 30 May 2008 - 11:08 AM

  • SEGAAAAAAAAA?!?
  • Posts: 1753
  • Joined: 25-April 08
  • Gender:Male
  • Location:The world of Trophies
  • Project:Sonic In Mushroom Kingdom
  • Wiki edits:31

View Postnineko, on May 27 2008, 12:16 AM, said:

View PostOverlord, on May 27 2008, 12:14 AM, said:

"or use STE to do it". However that wouldn't do the pointers or work on a split assembly, sooo... =P
There is Esrael Sonic Editor, which can fix the pointers as well. But it doesn't work on a split disassembly. A workaround for this would be to edit a clean rom and then split it.

Anything that can be edited with ESE can then be imported to a disassembly if you split the edited ROM (Minus the Zone Title Cards, which, in the disassembly, have the mapping in ASM format and, thus, can't be imported).
Or, this would be true if ESE actually saved my Special Stage Layouts.
Ironically, I learned how to change the Level Select Menu Text, the Level Pointers, the Title Cards (both the Zones and the Credits ones without using SonMapED), the Level Order, the Level Layout and the palette (Well, with a little help from SonED2) directly from a disassembly by myself (Things that I could import with ease after splitting the edited ROM), but I can't change the SS Layouts in my hack because:
A - I still can't do it by myself.
B - ESE do not save them in the ROM.
And so, if I can't find a solution, the hack I'm working on will always have the original SS Layout (This is important for me because the Sonic 1 Special Stage is my favorite SS ever).


On a side note, I noticed this mini-guide was added to the SCHG How-tos. This made me very proud, because I didn't thought this was enought worthy for that (Thanks Nineko).
This post has been edited by STHX: 30 May 2008 - 11:29 AM

#10 User is offline Thehackery 

  Posted 01 June 2008 - 10:15 AM

  • Posts: 20
  • Joined: 30-May 08
  • Gender:Male
  • Location:Newcastle
  • Project:Sonic The Hedgehog 1.1 and Sonic The Hedgehog 2.1

View PostSTHX, on May 30 2008, 05:08 PM, said:

View Postnineko, on May 27 2008, 12:16 AM, said:

View PostOverlord, on May 27 2008, 12:14 AM, said:

"or use STE to do it". However that wouldn't do the pointers or work on a split assembly, sooo... =P
There is Esrael Sonic Editor, which can fix the pointers as well. But it doesn't work on a split disassembly. A workaround for this would be to edit a clean rom and then split it.

Anything that can be edited with ESE can then be imported to a disassembly if you split the edited ROM (Minus the Zone Title Cards, which, in the disassembly, have the mapping in ASM format and, thus, can't be imported).
Or, this would be true if ESE actually saved my Special Stage Layouts.
Ironically, I learned how to change the Level Select Menu Text, the Level Pointers, the Title Cards (both the Zones and the Credits ones without using SonMapED), the Level Order, the Level Layout and the palette (Well, with a little help from SonED2) directly from a disassembly by myself (Things that I could import with ease after splitting the edited ROM), but I can't change the SS Layouts in my hack because:
A - I still can't do it by myself.
B - ESE do not save them in the ROM.
And so, if I can't find a solution, the hack I'm working on will always have the original SS Layout (This is important for me because the Sonic 1 Special Stage is my favorite SS ever).


Wierd, ESE II works for my special stages. (Though it didn't at first) I'm just disappointed that only the one-way blocks, the scrapped life icons, walls, the dreaded GOAL blocks, and most importantly, the Chaos Emeralds work.

Page 1 of 1
    Locked
    Locked Forum

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