Basic Questions & Answers thread

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

  1. Zud

    Zud

    Member
    15
    1
    3
    I wanted to get some feed back on a Mod for Generations I have been working on.

    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. Yes, I did get his permission to release it.

    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. I believe he discovered it sitting unused in the sonic.ar file, and I first saw it in his Super Sonic Revolution mod.

    I made a bunch of Physics changes included 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 and a modified version of ring time turned into a Hyper Flash, so you kill enemies every time you stomp near by, and if you press the same button you used to transform, you will kill every visible enemy on screen, even some you normally cannot. Sometimes it even still leaves rings behind, which I am ok with.
    I removed it's graphical effect, and shortened it's active life to just under a second. I also made the charges practically unlimited, and it works with Modern Sonic as well.
    It doesn't happen automatically every time you double jump like the S3&K original, but I believe it is better mapped to the transformation button, and can be used at any time.
    The reason it would an issue if it happened automatically is that you would accidentally kill enemies you need to chain homing attacks on to cross long bottomless pits. By having a Hyper Flash that kills every visible enemy mapped to the transformation button, you have full control over when it happens.
    Also, even though the same button is used for lightspeed dash, the lightspeed dash takes priority when near a line of rings, so you won't accidentally use it then either.

    I hope you guys like it. Sorry if it looks a bit amateurish. I'm learning still.
     
    Last edited: Mar 29, 2021
  2. Quickman

    Quickman

    Tech Member
    5,590
    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,543
    142
    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,115
    298
    63
    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,543
    142
    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,115
    298
    63
    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,543
    142
    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
    135
    55
    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,543
    142
    43
    SonLVL
  11. SyntaxTsu

    SyntaxTsu

    Member
    135
    55
    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
    235
    31
    28
    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

    A D V A N C E Resident Jester
    2,078
    211
    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

    My name's Martin Member
    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,115
    298
    63
    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,543
    142
    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
    5,929
    119
    43
    italy
    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,115
    298
    63
    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,543
    142
    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).