This is why I don't like hacking Sonic 1.
Basic Questions & Answers thread NEWBIES: Start here!
#3976
Posted 20 November 2011 - 05:33 PM
This is why I don't like hacking Sonic 1.
#3977
Posted 20 November 2011 - 05:48 PM
MainMemory, on 20 November 2011 - 05:33 PM, said:
I know. I put it there for the same purpose, to not have the post be larger than really necessary. I had all of them to begin with. I may be an idiot when it comes to hacking, but I'm not that stupid.
MainMemory, on 20 November 2011 - 05:33 PM, said:
Like this?
Map_Sonic:
include "_maps\Sonic.asm"
SonicDynPLC:
include "_maps\Sonic - Dynamic Gfx script.asm"
MainMemory, on 20 November 2011 - 05:33 PM, said:
I apologize if I'm frustrating you...
It still doesn't seem to be working. Here's the errors.txt file, if you feel it necessary to figure out what the problem is.
SN 68k version 2.53
D:\GENDEV\RSONICHACK\_INCOBJ\25 & 37 RINGS.ASM(374) : Error : Branch (134 bytes) is out of range
D:\GENDEV\RSONICHACK\_INCOBJ\59 SLZ ELEVATORS.ASM(10) : Warning : Forward reference to redefinable symbol
D:\GENDEV\RSONICHACK\_INCOBJ\5A SLZ CIRCLING PLATFORM.ASM(10) : Warning : Forward reference to redefinable symbol
D:\GENDEV\RSONICHACK\_INCOBJ\5B STAIRCASE.ASM(10) : Warning : Forward reference to redefinable symbol
D:\GENDEV\RSONICHACK\_INCOBJ\5E SEESAW.ASM(10) : Warning : Forward reference to redefinable symbol
D:\GENDEV\RSONICHACK\_INCOBJ\(MERCURY) SONIC EFFECTS.ASM(29) : Error : Symbol 'obinstashield' not defined
D:\GENDEV\RSONICHACK\_INCOBJ\(MERCURY) SONIC EFFECTS.ASM(200) : Error : Illegal value (524287)
D:\GENDEV\RSONICHACK\_INCOBJ\(MERCURY) SONIC EFFECTS.ASM(202) : Error : Illegal value (524287)
D:\GENDEV\RSONICHACK\_INCOBJ\(MERCURY) SONIC EFFECTS.ASM(204) : Error : Illegal value (524287)
D:\GENDEV\RSONICHACK\_INCOBJ\(MERCURY) SONIC EFFECTS.ASM(206) : Error : Illegal value (524287)
D:\GENDEV\RSONICHACK\_INCOBJ\(MERCURY) SONIC EFFECTS.ASM(208) : Error : Illegal value (524287)
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash2' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash3' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash4' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash5' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(140) : Error : Symbol 'fr_spindash6' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(155) : Error : Symbol 'fr_balanceforward1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(155) : Error : Symbol 'fr_balanceforward2' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(155) : Error : Symbol 'fr_balanceforward3' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(155) : Error : Symbol 'fr_balanceforward4' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(157) : Error : Symbol 'fr_balanceback1' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(157) : Error : Symbol 'fr_balanceback2' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(157) : Error : Symbol 'fr_balanceback3' not defined
D:\GENDEV\RSONICHACK\_ANIM\SONIC.ASM(157) : Error : Symbol 'fr_balanceback4' not defined
Assembly completed.
25 error(s) from 55523 lines in 0.33 seconds
Here's the very end of the constants file.
; Sonic Mappings
fr_Null= 0
fr_Stand= 1
fr_Wait1= 2
fr_Wait2= 3
fr_Wait3= 4
fr_LookUp= 5
fr_Walk11= 6
fr_Walk12= 7
fr_Walk13= 8
fr_Walk14= 9
fr_Walk15= $A
fr_Walk16= $B
fr_Walk21= $C
fr_Walk22= $D
fr_Walk23= $E
fr_Walk24= $F
fr_Walk25= $10
fr_Walk26= $11
fr_Walk31= $12
fr_Walk32= $13
fr_Walk33= $14
fr_Walk34= $15
fr_Walk35= $16
fr_Walk36= $17
fr_Walk41= $18
fr_Walk42= $19
fr_Walk43= $1A
fr_Walk44= $1B
fr_Walk45= $1C
fr_Walk46= $1D
fr_Run11= $1E
fr_Run12= $1F
fr_Run13= $20
fr_Run14= $21
fr_Run21= $22
fr_Run22= $23
fr_Run23= $24
fr_Run24= $25
fr_Run31= $26
fr_Run32= $27
fr_Run33= $28
fr_Run34= $29
fr_Run41= $2A
fr_Run42= $2B
fr_Run43= $2C
fr_Run44= $2D
fr_Roll1= $2E
fr_Roll2= $2F
fr_Roll3= $30
fr_Roll4= $31
fr_Roll5= $32
fr_Warp1= $33
fr_Warp2= $34
fr_Warp3= $35
fr_Warp4= $36
fr_Stop1= $37
fr_Stop2= $38
fr_Duck= $39
fr_Balance1= $3A
fr_Balance2= $3B
fr_Float1= $3C
fr_Float2= $3D
fr_Float3= $3E
fr_Float4= $3F
fr_Spring= $40
fr_Hang1= $41
fr_Hang2= $42
fr_Leap1= $43
fr_Leap2= $44
fr_Push1= $45
fr_Push2= $46
fr_Push3= $47
fr_Push4= $48
fr_Surf= $49
fr_BubStand= $4A
fr_Burnt= $4B
fr_Drown= $4C
fr_Death= $4D
fr_Shrink1= $4E
fr_Shrink2= $4F
fr_Shrink3= $50
fr_Shrink4= $51
fr_Shrink5= $52
fr_Float5= $53
fr_Float6= $54
fr_Injury= $55
fr_GetAir= $56
fr_WaterSlide= $57
#3978
Posted 20 November 2011 - 08:00 PM
#3979
Posted 20 November 2011 - 09:02 PM
Nostalgia Ninja, on 20 November 2011 - 09:47 AM, said:
Thanks for any help.
Quoting this to bring attention to it, since I ran it off into the previous page. I don't like taking priority over others, makes me feel guilty.
#3980
Posted 21 November 2011 - 08:11 AM
E-122-Psi, on 20 November 2011 - 08:00 PM, said:
Should be $16(a0) for vertical and $17(a0) for horizonzal radius, as seen here.
#3981
Posted 21 November 2011 - 04:26 PM
#3982
Posted 21 November 2011 - 04:44 PM
Krome, on 21 November 2011 - 04:26 PM, said:
Not at all. This has nothing to do with the "Sonic 2 engine", it is the console itself, which is limited to 320x224.
#3983
Posted 21 November 2011 - 05:16 PM
Selbi, on 21 November 2011 - 04:44 PM, said:
What about the PAL version of Ristar and Chaotix? Those were in 320x240. I know the resolution is 224 for NTSC machines, but I was referring to PAL, which it is possible.
#3984
Posted 21 November 2011 - 06:56 PM
Selbi, on 21 November 2011 - 08:11 AM, said:
E-122-Psi, on 20 November 2011 - 08:00 PM, said:
Should be $16(a0) for vertical and $17(a0) for horizonzal radius, as seen here.
EDIT: Okay found it. Thanx.
Also figured out the mappings for the S2 title animations from earlier (obj0E, labelled the title sparkles in the ASM). I'm still having trouble finding the coding that activates and positions Sonic and Tails' title sprites however, likely because it is connected with all the other sparkle animations in the ASM coding).
#3985
Posted 23 November 2011 - 10:59 AM
#3987
Posted 23 November 2011 - 01:44 PM
#3988
Posted 23 November 2011 - 02:59 PM
As a little reminder, editing the level order has some complexity. Instead of just going one by one, this system takes the current level ID into consideration, adds 1 to it and looks into the list for the level to pick.
So in other words, after GHZ3 you get 0200, which means MZ1. After that, the game will look into the list for Marble Zone (which is where all the 020?s are). After that it jump to 0500, which is SYZ. Took some time for me to realize this too, so don't worry if you can't do it right away.
Here's an into plain text converted and commented file:
;dc.w $0000 ; GHZ 1 (is set by default and therefore not actually included in this list) dc.w $0001 ; GHZ 2 dc.w $0002 ; GHZ 3 dc.w $0200 ; MZ 1 (and jump to MZ list) dc.w $0000 ; >>> null dc.w $0101 ; LZ 2 dc.w $0102 ; LZ 3 dc.w $0300 ; SLZ 1 (and jump to SLZ list) dc.w $0502 ; Real SBZ 3 (FZ) dc.w $0201 ; MZ 2 dc.w $0202 ; MZ 3 dc.w $0400 ; SYZ 1 (and jump to SYZ list) dc.w $0000 ; >>> null dc.w $0301 ; SLZ 2 dc.w $0302 ; SLZ 3 dc.w $0500 ; SBZ 1 (and jump to SBZ list) dc.w $0000 ; >>> null dc.w $0401 ; SYZ 2 dc.w $0402 ; SYZ 3 dc.w $0100 ; LZ 1 (and jump to LZ list) dc.w $0000 ; >>> null dc.w $0501 ; SBZ 2 dc.w $0103 ; SBZ 3 (technically LZ 4) dc.w $0000 ; >>> null dc.w $0000 ; >>> null
#3989
Posted 23 November 2011 - 04:21 PM
Quote
00 01 00 02 02 00 00 00 01 01 01 02 03 00 05 02 02 01 02 02 04 00 00 00 03 01 03 02 05 00 00 00 04 01 04 02 01 00 00 00 05 01 01 03 00 00 00 00
Using the guide, I'm interpreting it as 00 (GHZ) 01 (Act 1) 00 (GHZ) 02 (Act 2) and then... 02 (MZ) 02 (Act 2)? Am I looking at this correctly?
Okay, how about this. Let's take Green Hill Zone and make it so that it's only Act 1 and 3. No Act 2. What should I edit?
#3990
Posted 23 November 2011 - 04:40 PM
Machenstein, on 23 November 2011 - 04:21 PM, said:
Quote
00 01 00 02 02 00 00 00 01 01 01 02 03 00 05 02 02 01 02 02 04 00 00 00 03 01 03 02 05 00 00 00 04 01 04 02 01 00 00 00 05 01 01 03 00 00 00 00
Using the guide, I'm interpreting it as 00 (GHZ) 01 (Act 1) 00 (GHZ) 02 (Act 2) and then... 02 (MZ) 02 (Act 2)? Am I looking at this correctly?
Okay, how about this. Let's take Green Hill Zone and make it so that it's only Act 1 and 3. No Act 2. What should I edit?
No, 00 is Act 1, 01 is Act 2, 02 is Act 3, 03 is Act 4. Everything starts at zero, you know. :P
And scratch my idea, I just thought of something way simpler. Basically, create a check, when the game loads a new level, if it's the second act. If it is, change it to act 3. To do so simply go to Obj3A_NextLevel and add these lines after the line with the (pc,d0.w) in it:
cmpi.b #$01,d0 ; check for "act 2" bne.s @cont ; if not, branch addq.b #1,d0 ; otherwise change it to "act 3" @cont:
