Basic Questions & Answers thread

Discussion in 'Engineering & Reverse Engineering' started by Tweaker, May 29, 2008.

  1. Zud

    Zud

    Member
    14
    1
    3
    I wanted to get some feed back on a Mod for Generations I have been working on, and see if anyone can help me on a few parts of it. It might belong in the reverse hacking forum, but I’m not sure if that's the best place yet, as I wasn’t planning on going too technical with it here. I figure General Sonic Discussion is safer. More so, I wanted feedback in general of how he looks. I really hope you guys like it.

    Now, first off, I do not want to take any credit for anyone else work, and because this is a further modification of JoeTE’s Super Sonic Generations. I want to state that up front. The hovering while idle animation is from StarNoodle495’s Super Sonic Revolution. The double jump is from Sajid.

    Here’s the main vid, there are some other test vids up on my channel:



    Even though I have a different taste on how Hypersonic ought to look, it wouldn’t have been possible without the version JoeTE made. Him exploiting the color change glitch to make his Hypersonic was invaluable. He also set the color change speed to being just slow enough that it should be less of a seizure risk

    Because the heavy lifting really was already done by JoeTE on his Super Sonic Generations, I did get his permission to re-release it with my changes to Hyper Sonic. I made sure to give him credit in the description to the youtube video too. I only re-releasing his lite version with my Hyper Sonic changes, not his full version. I just wouldn’t feel right about the full version, as his amount of work there was vast, and I really have only modified the Hypersonic portion.

    I loved Hyper Sonic back in S3&K, OP’d as he is, I’ve always gotten a kick out of him, and wanted to see a really good translation of him to 3D. There have been a lot of Mods, and fan games that include him, but I had my own vision of what it ought to be like, and I wanted to demonstrate that.

    This lead me to learning about modding Generations, and I had to learn a lot. Anyhow, here it is as it stands. I took the best elements from JoeTE and StarNoodle’s.
    I altered one of the DDS files for highlights to make them much brighter, to give a glowing edge effect, like how a flame is darker at it’s center, and lighter to the edges. I altered the shaders for the hyper material, to make them much brighter, so that he wouldn’t look so gray or dark, but rather glow. The jump/spinball is much brighter now too.
    In Darker areas he now appears to glow almost neon, and the colors are more visible than before. Also, in brightly lit areas he now appears to glow white. I changed the stars as well. They are now white light like the original, and they shoot out of him at a high speed, emitting in a rotation.
    I also learned that I needed to apply these changes to both Modern and Classic, as well as to apply the changes to the character .ar files, and common action files to the final boss fight files too, to keep everything congruent.

    I included StarNoodle’s hovering while idle animation, it suits Hyper Sonic so well. It demonstrates how Hyper is more powerful than Super, and well, it just looks so damn cool.

    Physics changes include Sajid’s double jump, I set the parameters very high. The original S3&K had a game breaking high double jump, so does this one. I increase the power of his ring pull when boosting. He also can no longer drown, like the original.
    I also include a save file with the power-stomp in the skill set. It’s the only thing I can think of to give him an area effect attack.

    Now, here is the parts I am unsure of how to proceed with:

    1). I don’t know how to make the double jump only apply to the up-powered form. It carries over to base form.

    2). I don’t know how to make the power stomp simply always be his stomp, without using it as a save file skill. The issue with using it like that is, I cannot use it in fan made levels that lack a save option, such as Aquarium park. If there is a way to always have him use the power stomp, regardless of skill set, that would be better.

    3). I also don’t know how to give his boost an area effect attack when first engaging it. I’d love to see any close by enemies pop when first hitting boost. I wouldn’t want an area effect attack mapped to the double jump. It would be a big problem when trying to chain homing attacks on enemies to get across long bottomless pits, but I don’t think it would cause an issue to kill all visible enemies on the screen when first engaging boost. I just think it would be a cool little effect.

    4). If I knew how I’d make the light pulses during his color change cycle happen at a different speed, so that they aren't always happening on the same colors, also, I'd add a few frames of white between the purple and auqa colors, so that it doesn't appear that the cycle sits on purple longer than the other colors.

    Those are the above 4 changes I’d like to make in a perfect world.

    As it currently sits I’m 98% satisfied with how it looks, and enough to think it’s now worth sharing.

    Also, before anyone asks, yes, I released a version that you start in base form too, along with the Lite version of JoeTE’s Super Sonic Generations with the changes to Hyper sonic. I also put up a separate version of both where Hyper has red eyes, since that’s a big deal to some fans. I can easily change that for anyone else who wants another eye color too.

    I hope you guys like my idea of what Hyper Sonic ought to look like in Generations.

    Edits: are mostly for updated videos if I put up a newer version video
     
    Last edited: Feb 18, 2021
  2. Quickman

    Quickman

    Tech Member
    5,589
    4
    18
    :x
    omg porjcet
    Does a modified version of Sonic 1 (or any other of the Megadrive Sonic game) exist which runs at intended speed on a PAL Megadrive (and, if possible, uses 30-tile mode to use the whole screen rather than being letterboxed)? I suspect not since a lot of people mod their consoles to add a 60Hz switch to play non-PAL-optimised games, but I'd be interested to know about it if so.
     
  3. irrelevantpelican

    irrelevantpelican

    Member
    2
    0
    1
    Hello, I am looking for a Cheat Engine code to allow me to unlock/play Green Hill Zone in Sonic Adventure 2. Can't seem to find it anywhere.
     
  4. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,512
    129
    43
    SonLVL
    If you mean the PC version, the mod loader has a code in it called "All Stages Appear in Stage Select".
     
  5. E-122-Psi

    E-122-Psi

    Member
    2,072
    202
    43
    Okay I have only started trying level editing, so I'm gonna ask a real newbie question. :P

    I've been trying to design a makeshift loop, but can't make it run.
    [​IMG]

    I'm pretty sure I added collision to the second path here.

    [​IMG]

    However as soon as they hit that path swapper they just run through the back of the loop and fall to their deaths.

    Anything I've missed here?

    Oh, another more minor query, does anyone know what palette file the Sound Test icon in the level select uses?
     
  6. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,512
    129
    43
    SonLVL
    You can use the View menu (or W and E on the keyboard) to show the collision for path 1 and path 2. The level select icon palettes are all stored in art/palettes/Level Select Icons.bin, one palette line for each icon, the sound test should be the last one in the file.
     
  7. E-122-Psi

    E-122-Psi

    Member
    2,072
    202
    43
    Ah I see my error now. Thank you. :D

    I'm not sure how the palette file there works though. None of the four lines suit the icon, unless it extends to more, in which case I have no idea how to load past that.
     
  8. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,512
    129
    43
    SonLVL
    Yes, it has as many palette lines as there are icons. You'll have to change the starting offset in the file, if your editor supports that. I recommend HivePal v2.2.
     
  9. SyntaxTsu

    SyntaxTsu

    Member
    121
    50
    28
    So, i've been working on my Sonic 2 Hack, per usual, working on implementing Knuckles the Echidna (currently with placeholder sonic sprites), and right now i've got some weird radius problems - one for climbing, and one for gliding. Anyone got any idea how to fix them? If needed, I can provide the .asm files this build uses for Knuckles’s functionality...

     
    Last edited: Feb 9, 2021
  10. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,512
    129
    43
    SonLVL
  11. SyntaxTsu

    SyntaxTsu

    Member
    121
    50
    28
    Partially. A lot of the code in there hasn’t really been updated over time. This is basically a modified github Sonic object with lower jump height, no super sprites and the ability to glide and climb.
    Also, the videos are slightly outdated, as Knuckles now uses his own sprites.

    EDIT: The climbing problem is fixed. The gliding problem isn’t.
     
    Last edited: Feb 10, 2021
  12. Prototype

    Prototype

    Member
    200
    25
    18
    Hey guys. So, I've been going through all my old hardware and realized I don't have a good 6 button controller for my Megadrive. I have a Honey Bee third party controller, but it's not comfortable.

    However, I do have a Radica Street Fighter II plug and play system with two hardwired controllers.

    I assume they're not too different internally from official controllers, but how would I go about adapting these controllers to plug into a Megadrive console?

    I don't have a soldering iron, but is it possible to hook the plug ends wires into the Megadrive controller plug itself?
     
    Last edited: Feb 11, 2021
  13. MarkeyJester

    MarkeyJester

    Vague Memories Resident Jester
    2,053
    132
    43
    Japan
    Whoa now, hold on, don't go willy nilly cutting up cables assuming everything is compatible.

    It's possible the controllers are using more modern methods, and inside the device itself is a chip for "emulating" the controller port responses accordingly. So I doubt cutting it up will do you any good.

    EDIT:

    I was going to suggest cutting the sheath and having a look at the cable inside to see if there are the usual 9 lines (that way you haven't ruined it if it doesn't), but I came across a screenshot of inside the board, and it doesn't look like it:

    [​IMG]

    I think my initial assumption was right, it's emulating the lines internally.

    EDIT Number 2!:

    This might be actually what you're looking for: https://www.segasaturno.com/portal/viewtopic.php?t=7611

    [​IMG]

    It looks as though someone has attempted to do what you wanted, but have done some extra research into the conversion process. The language is in Spanish however, but I'm sure a Google translate would more than suffice.
     
    Last edited: Feb 11, 2021
  14. Xiao Hayes

    Xiao Hayes

    Back on track Member
    804
    76
    28
    Bilbao, Spain
    Upgrading my own life to pro edition
    Spanish people around here could help too. *Looks at his own profile on the left*

    I've looked at it and what he's doing here is basically adding parts from a broken megadrive to a radica motherboard, including the db9 ports for the gamepads, and followed the same process on both the console and the gamepads so he could still use the radica gamepads with the console they came with. The main thing for the gamepads is the color code for connecting the pins, which seems to be consistent on all those SFII radicas; I don't know about messing with electronic components and he's not explaining the gamepad side of the process, just that he's adding db9 females to the controllers so they work with the db9 slots he just solded to the console. Both the gamepad and the female db9 seem to follow the same color code for their cables, so maybe just getting a couple of those and linking their cables the correct way would be enough, but I wouldn't do that without looking for more info.

    Maybe you could follow the process he follows instead and use a broken console (if you have one) to add parts of it to your radica. What the article doesn't explain is how to solder your radica controllers to your genuine megadrive, and, either way, a console will be screwed for the sake of the other.
     
  15. E-122-Psi

    E-122-Psi

    Member
    2,072
    202
    43
    Anyone know how the CPZ/ARZ/MCZ pressure springs in Sonic 2 calculate your position on them and how far to propel you? I wanna make it so the close end still bounces you a little and the far end takes you even higher.
     
  16. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,512
    129
    43
    SonLVL
    At loc_2645E, it takes the x_pos of the spring, subtracts $1C, subtracts the player's x_pos, and finally negates the result. Then, if the object is flipped, it performs a bitwise NOT on the result, and adds $27. If the result is negative, it's capped at 0. Then, it uses the result to look up a byte in the table at byte_26550, which is subtracted from the high byte of the player's y_vel, after it's set to -$400. The player's horizontal speed is also slowed by the same amount if they are moving faster than $400 in either direction.
     
  17. nineko

    nineko

    I am the Holy Cat Tech Member
    This is also relevant for the question at hand.
     
  18. AngelTheVixen

    AngelTheVixen

    Member
    2
    0
    1
    Hey, I've been dabbling in romhacking the classic Sonic trilogy. I apologize if I'm asking obvious or answered questions, but I haven't done any sort of ASM hacking before, so I have no idea what I'm doing. I do have a million questions, but for now I've been trying to experiment some and want to deal with some nagging ones.

    1. Never used an assembler before now; I'm used to working within the confines of a hex editor. With definitions and labels for flags and other variables simplifying the process, is it really that easy to add something new into a project by just following the comments and references? Additionally, is adding new things, such as new moves, restrictive with their location? That is, if I were to add one, say a Super Peel-Out into Sonic 2 (the title I would like to start with) I could gather that the subroutine would need to be around the same area as the rest of his moves, but does it need to be in the same order as the list of subroutines? Just trying to get a grasp on this since it's part of my endgame.

    2. Sonic 2: I was in the process of implementing manual fixes when I stumbled onto the guide about modifying how Special Stage sprites are read. I was following the instructions and this part is a bit unclear:
    I'm not following the bit about 'making sure that all files are BINCLUDEd' as I don't know where I'm supposed to insert this information in the disassembly. There's one file as well that would get overwritten from the zip; would I need to do that? This isn't important right this minute, but it's an issue I would have to cover as my plan is a character hack.

    3. For animating sprites, is the tile information within the disassembly or is there an editing program that handles this and/or can be used for reference? I have found the data for animation states, but not the tile data for the states themselves.

    Thanks in advance for any help.
     
  19. E-122-Psi

    E-122-Psi

    Member
    2,072
    202
    43
    Does anyone know how to parent objects to another that aren't assigned to a specific RAM entry like MainCharacter and Sidekick are?

    Basically I want an object loaded with a badnik to delete as soon as the badnik is destroyed.

    Code (Text):
    1.  
    2.         jsr    SingleObjLoad            ; find free object location
    3.         bne.w    ObjE9_Anim                ; skip if none was found
    4.         move.b    #$EA,(a1)            ; set it to saw object
    5.  
    6.         move.w    x_pos(a0),x_pos(a1)        ; copy badnik's x-pos
    7.         move.w    y_pos(a0),y_pos(a1)        ; copy badnik's y-pos
    8.         move.w    status(a0),status(a1)        ; copy badnik's y-pos
    9.         move.b    #0,$1C(a1)        ; show saw animation
    10.         btst    #0,$22(a0)        ; is badnik facing leftwards?
    11.         beq.s    Saw_Pos        ; if not, branch
    12.         neg.w    $10(a1)            ; if yes, negate x-deviation
    13.         sub.w    #$32,x_pos(a1)  
    14.         add.w    #8,y_pos(a1)  
    15.         bset    #0,$22(a1)                    ; Flip saw to the left
    16.         bra.s    ObjE9_Anim
    17. Saw_Pos:
    18.         add.w    #$32,x_pos(a1)  
    19.         add.w    #8,y_pos(a1)      
    20.  
    21. ObjE9_Anim:
    22. ....
    I try parenting via a0 and a1 but it doesn't seem to recognise.
     
  20. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,512
    129
    43
    SonLVL
    When spawning the object:
    Code (Text):
    1.     move.w    a0,parent(a1)
    Then, in the newly spawned object:
    Code (Text):
    1.     movea.w    parent(a0),a1
    Then you can access the parent's properties through a1.

    You could also store the child object's address in a slot in the main object that isn't being used, if you would prefer (swap a0 and a1 in the first line).