don't click here

Basic Questions & Answers thread

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

  1. what? like an actual shit? /s
    no but seriously, please explain what you mean by """""a shit"""""
     
  2. Nik Pi

    Nik Pi

    Member
    @lunarstudio
    knockknockitssometroubles.PNG
    I tried to port some sprites from origins, and as result- one is good, but another- shit, made from random tiles....
    It's also happens in Flex2, so.. maybe it's problems with S3K game format?
    In game- it also random tiles(
     
  3. Brainulator

    Brainulator

    Regular garden-variety member Member
    Did you select "Sonic 3&K Object" or "Sonic 3&K Player"?
     
  4. Nik Pi

    Nik Pi

    Member
    I select S3K player
     
  5. Devon

    Devon

    There's nothing left but faith Tech Member
    867
    610
    93
    I'm noticing that it's going back to the start of the tile bank. How many tiles do you have? DPLCs can only support so many tile offsets.
     
  6. Nik Pi

    Nik Pi

    Member
    Um.. I didn't expand it much.. just for a couple of sprites... I don't remember how many of them are in the original, it seems.. FF? Or DC..
    Even so, Sonic has much more frames without mapping separation... is there really no way to get around the frame limit?
     
  7. Devon

    Devon

    There's nothing left but faith Tech Member
    867
    610
    93
    I meant the actual *tiles*, not sprite frames.
     
  8. Nik Pi

    Nik Pi

    Member
    Oh..
    Ok. I'll check it later

    At this moment I can't use my computer
     
  9. Nik Pi

    Nik Pi

    Member
    Sorry for make you wait
    Tiles in Knux' file- 105A
    In unchanged file- FFC
     
  10. Devon

    Devon

    There's nothing left but faith Tech Member
    867
    610
    93
    The DPLC format can only support up to $1000 tiles.

    The format of a player DPLC entry is as follows in binary:
    llll tttt tttt tttt

    l = Number of tiles to load (minus 1)
    t = Tile offset, which only has 12 bits, meaning the the range is 0-$FFF. This is why you're seeing the starting tiles in those corrupted frames, because it has wrapped back around to 0.

    The other DPLC format doesn't seem to be any better for your situation. It appears they just swapped the location of l and t for more optimal performance in bit shifting. You're either gonna have to set up a new DPLC format, split up Knuckles' data into 2 sets, or find ways to optimize the tile data to use less tiles.
     
  11. Cokie

    Cokie

    C. Okie Member
    49
    7
    8
    Ok I was guessing that was why it’s clockwise . Since Sin(angle) is y/radius
     
    Last edited: Sep 19, 2022
  12. Brainulator

    Brainulator

    Regular garden-variety member Member
    It should be noted that Sonic and Tails already have had their DPLC lists split up between art common to Sonic 3 and Sonic & Knuckles and art solely in S&K. Not that Knuckles's frames are properly optimized, though.
     
    • Informative Informative x 1
    • List
  13. Cokie

    Cokie

    C. Okie Member
    49
    7
    8
    When sonic is facing left or the collision data is flipped, do things need to be corrected as we'll? In the sonic game, quadrant 1 2 3 and 4 in the game are quadrants 4 3 2 1 in normal math grid correct? ( though there aren't quadrants in the game ) .. But if you face left x sign switches. If the solidly data flips it will change . so wouldn't sonics angle change depending on his facing direction as the initial ray of.the angle would move if he is facing left because the quadrant order would change? Sorry this is a confusing question . I think I am.confusing and mixing concepts.
     
  14. Devon

    Devon

    There's nothing left but faith Tech Member
    867
    610
    93
    The way collision works is that there are 2 sensors on the bottom of Sonic's feet, and it simply picks the sensor that finds the highest column. These sensors do rotate according to which "quadrant" Sonic is in, downwards in floor mode (angles E1-20), towards the right in right wall mode (angles A1-E0), towards the top in ceiling mode (angles 60-A0), and towards the left in left wall mode (angles 21-5F).

    The direction Sonic faces does not affect the sensors in any ways, nor does it affect the angle. The negative ground speed when moving left will automatically take care of sending Sonic in the right trajectory when it gets multiplied by the sine and cosine of the angle (i.e., say you go down-right when facing right, meaning that both the X and Y speed signs are positive, negating the ground speed when moving left will cause the signs of the X and Y speeds to be negative as well, and make Sonic go up-left).

    The flip flags in the blocks do flip the angle, though.
     
  15. kyasarintsu

    kyasarintsu

    Member
    296
    111
    43
    Why do some characters in Sonic Adventure go faster when walking up slopes? This is most notable with Big. I've always wondered what makes this kind of thing happen.
     
  16. I'd be astonished if I were right, but I latched onto the notion that the larger characters appear to move faster up slopes due to their meatier frames/animation needing to catch up.
     
  17. Cokie

    Cokie

    C. Okie Member
    49
    7
    8
    Lapper Solid Tiles article states how sloped ceilings are possible if the height arrays start at only one end . that the tiles can be flipped horizontally and vertically. And the collision system takes this to play when reading the height data from the tiles. My question is it at the chunk level that lapper is referring to everything dynamically at run time being flipped thus flipping all the block (sub units and thus solidity data )? Also can you flip Individual blocks in the chunk independent dynamically?
     
  18. Devon

    Devon

    There's nothing left but faith Tech Member
    867
    610
    93
    Chunks do indeed have flip flags for each block, and the game does automatically flip the angle and heights/widths accordingly.
     
  19. Cokie

    Cokie

    C. Okie Member
    49
    7
    8
    So want to make sure I understand this correctly - That the sine table values are slight off . Hex times 1.40625 gives angle in degree. If hex angle is 0x5 or 7.03125 in degrees , the sin of 7.03125 is really 0.1224106751992 but in the sinewave table it is 0.12109375 in float ( 0x001F 8.8 fixed point ) . I am assuming the reason for this loss of precision is : 1. 8.8 fixed points fractal part can have a maximum of 8 places. And 2. The 8.8 fixed points fractal parts value has to be a summation of 2^-1 , 2^-2 ... 2^-8 and the fractal part smallest value and the amount it increments by is 2^-8 .. Ie 1/128 = 2/256. So this is the reason the fractal is can only represent fractions that are between and including 1/256 and 255/256 by 1/256 increments ?? Just as the integer part smallest number 2^0 = 1 is the increment ? Is this correct?
     
  20. kyasarintsu

    kyasarintsu

    Member
    296
    111
    43
    What's up with the crushers in Marble Garden? Why do I get killed when trying to sprint past them, even when they're completely open?