Basic Questions & Answers thread

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

  1. Clownacy

    Clownacy

    Tech Member
    797
    29
    28
    Wow, talk about calling the kettle black. If you wanted that to be anything but insulting, some examples would have been nice, instead of vaguely claiming 'your guides don't do enough'. Some guides are on the bare side (but are still serviceable copy-paste guides), while others such as this bugfix go as far as to explain exactly what the bug is, how it's caused, and how to fix it. What's not clear about that?
     
  2. Iso Kilo

    Iso Kilo

    Local Wolf-Fox Member
    27
    25
    13
    Small Town, BC
    Ripping Sonic Classic Collection ROMs
    I had renamed the ROM to s1.bin (as I am working with Sonic 1; gotta' start easy, right?) and I'm not entirely sure if I already had the split disassembly. I most likely do have it and I'm completely unaware, I believe this as, I had attempted the set up process numerous times. And if I do have the split disassembly, I'm not quite sure as to what I'm supposed to run.

    Oh, I also forgot something too; Will the ROM be able to support the color palette of Studiopolis? It's what I was planning on doing as my starter project (through means of re-texturing Starlight Zone) It's fine if I have to remove a color or 2... Or 8.
     
  3. Okamikurainya

    Okamikurainya

    Member
    212
    1
    16
    Somewhere in Africa
    Sonic: Time Attacked - MAX
    While I'm not a hacker, I'm working on the fangame engine Sonic MAX by TPoT and I was wondering if anyone knew of a definitive list/ guide for the little animal's physics and movements? I tried Google with a few different terms and came up empty.
     
  4. Chainspike

    Chainspike

    Stealing rings since 1994 Member
    160
    35
    28
    Death Egg Zone
    S3C Delta
    I highly doubt it. The Genesis only supports 64 colors on screen which is likely not even close too the amount in Studiopolis. There are tricks that can be done in order to get more colors on screen (This is how Sega was able to use a different palette for the water) but it will not come easy.
     
  5. Rika Chou

    Rika Chou

    Tech Member
    5,253
    115
    43
    Honestly I'll bet Studiopolis could have it's colors, tiles, and layout reduced enough to fit the limitation of the Genesis and still look faithful to the original. Reducing the tiles to use only 42 colors, they still look good. They could possibly be reduced a bit more.

    Some things would have to be cut, and it would take a lot of work, but I'm sure it could be done.
     
  6. Haxhabte

    Haxhabte

    Member
    10
    0
    0
    USA
    I needed help importing Sonic Generations .KF animations with the niftools plugin. apparently the animation is loaded perfectly but it doesnt "sync" with the model. What happens is that the model just becomes heavily distorted. I tried searching everywhere for help with no answers. I'll attach a screenshot. I want to know if there is a way to manually fix this. Its not an animation import issue as all the bones look perfect (*looks*), it just looks like the model is stretching to reach the bone location instead of just shifting.

    Huge images btw
    [​IMG]

    [​IMG]
     
  7. Azu

    Azu

    I must be stupid. Member
    Cool. Found them. It also possible to get an Object List? Like something that shows, Object Subtype, Frame, and ArtTile data? I'm looking at levels in SonicLvL and it shows me some of the information.

    Code (Text):
    1. dbglistobj Obj_Monitor,         Map_Monitor,               6,   0, make_art_tile($4C4,0,0)
    I saw that in AIZ/Debug/Act 1.asm. That's the S monitor which seem to have a subtype of 6. However, in SonLVL, it's subtype is 9. Am I looking in the wrong place?
     
  8. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,411
    67
    28
    SonLVL
    No, you're definitely in the right place, and you are correct on both counts. The subtype used in the debug list says 6, but according to SonLVL it should be 9. I don't know what's going on either.

    As for a full list, well, there's some lists on the wiki, but they're made for ROM hacking, not disassemblies.
     
  9. Azu

    Azu

    I must be stupid. Member
    Yeah, what I'm trying to do is add all monitor boxes in the list. Want to see if I can add bosses too.
     
  10. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,411
    67
    28
    SonLVL
    I wouldn't count on bosses working properly when spawned from the debug list, most of them (if not all of them) use hardcoded positions, and the graphics will be entirely wrong.
     
  11. Azu

    Azu

    I must be stupid. Member
    Ah, that would make sense.
    Code (Text):
    1.  
    2.  
    3.     dbglistobj Obj_Monitor,         Map_Monitor,               1,   1, make_art_tile($4C4,0,0)
    4.     dbglistobj Obj_Monitor,         Map_Monitor,               2,   2, make_art_tile($4C4,0,0)
    5.     dbglistobj Obj_Monitor,         Map_Monitor,               3,   3, make_art_tile($4C4,0,0)
    6.     dbglistobj Obj_Monitor,         Map_Monitor,               4,   4, make_art_tile($4C4,0,0)
    7.     dbglistobj Obj_Monitor,         Map_Monitor,               5,   5, make_art_tile($4C4,0,0)
    8.     dbglistobj Obj_Monitor,         Map_Monitor,               6,   6, make_art_tile($4C4,0,0)
    9.     dbglistobj Obj_Monitor,         Map_Monitor,               7,   7, make_art_tile($4C4,0,0)
    10.     dbglistobj Obj_Monitor,         Map_Monitor,               8,   8, make_art_tile($4C4,0,0)
    11.     dbglistobj Obj_Monitor,         Map_Monitor,               9,   9, make_art_tile($4C4,0,0)
    Tried something like this, and I was able to get some of the monitors to show different icons, but still spawns S-Monitor.
     
  12. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,411
    67
    28
    SonLVL
    Ha, found the culprit:
    Code (Text):
    1.         cmpi.l  #Obj_Monitor,(a1)
    2.         bne.s   locret_92C0A
    3.         move.b  #9,$2C(a1)
    If you remove those three lines (under loc_92BB2), you can get the monitor to spawn with any subtype you want. I wonder why they did it that way though, instead of just using the subtype they already had in the debug list. It's rather hacky.
     
  13. Azu

    Azu

    I must be stupid. Member
    Oh, nice, it worked.
     
  14. CHRdutch

    CHRdutch

    h Member
    82
    16
    8
    Earth, I think.
    Sonic the Hackable (A.K.A. "A generic Sonic 1 ROMhack")
    Alright, this is a problem I've had for quite a while now, but I just can't seem te be able to fix it.

    I'm trying to add the water graphics to Green Hill Zone, but I have no idea where there's VRAM space to put them in.
    The problem is that "_inc\Pattern Load Cues.asm" states the adresses where the Green Hill Zone tiles are stored, but it is never stated where the graphics end. So everytime I try to place the water graphics somewhere, something else get overwritten. And I have no idea where there is space to put them in.

    So where can I see for how much tiles the already loaded graphics run?
    Or is there even space for the water graphics?
     
  15. MarkeyJester

    MarkeyJester

    ♡ ! Resident Jester
    In the routine "Level:", right after "bsr.w Pal_FadeFrom", put in the following:

    Code (Text):
    1.         lea ($C00004).l,a6              ; load VDP control port
    2.         move.w  #$8F01,(a6)             ; set increment mode to 1
    3.         move.l  #$94FF93DF,(a6)             ; set DMA size
    4.         move.l  #$97804020,(a6)             ; set DMA source and destination/mode
    5.         move.w  #$0080,(a6)             ; set DMA destination/mode
    6.         move.w  #$FFFF,-$04(a6)             ; fill location with FFFF
    7.         nop                     ; delay
    8.  
    9. LV_Wait:
    10.         move.w  (a6),ccr                ; load status
    11.         bvs.s   LV_Wait                 ; if the VDP DMA busy flag was set (bit 1), branch to wait til finished...
    12.         move.w  #$8F02,(a6)             ; set increment mode to normal
    13.  
    14.         moveq   #$00,d0                 ; reload HUD/Lives graphics
    15.         bsr.w   RunPLC_ROM              ; ''
    What this will do, is it'll first fill all of VRAM from 0020 up to FFFF with F's, this will turn all tiles (except the first) into a solid graphical tile. The rest of the level's routine will load graphics into VRAM, and once it's done and the level has started, any free space will be solid tiles using the last colour of the palette. So, run the game, let the level start, and then, you'll need a way to view VRAM, here are a few ways...

    You can use Regen, it has a "VDP Debugger" you can use to see VRAM:

    [​IMG]

    Unfortunately, this debugger doesn't display the exact VRAM address of a tile, also, the last row of VRAM tiles in that window cannot be viewed because the program doesn't let you scroll down enough.

    Another method is to hijack the savestate. So, make a savestate, then opening that savestate with a hex editor:

    [​IMG]

    Delete the data from offset 000000 to 012478:

    [​IMG]

    Putting the data at 012478 - 022477 now at 000000 - 00FFFF:

    [​IMG]

    Save it, and now you can open this savestate with any tile editor of your liking, here it is open in SonMapEd:

    [​IMG]

    You see those yellow tiles? Those are the free spaces, in SonMapEd you can click on a yellow tile, then in "View > Info..." menu, it'll display the details of the free tile(s):

    [​IMG]

    So, tile at VRAM 67C0 is free...

    If you'd prefer, I could write you a program that opens the savestate and displays the free space addresses for you, using tiles completely filled with "F's" as an indicator. But I find, using these visual ways is much more convenient, since you can "see" what tiles and art are around, and can make decisions as to whether or not you want to move other art around, delete other art, etc.
     
  16. EnderWaffle

    EnderWaffle

    Ghostly Friend Member
    Hello! I have a question.

    So there are a bunch of hacks that use different palettes for each act and I wanted to do that with my Sonic 1 hack but can't figure it out. I've found the palette pointers and put new palettes in for the zones but I don't know where to put the code. Can anyone help me with this? Thanks.
     
  17. Dark Sonic

    Dark Sonic

    Member
    12,638
    222
    43
    Working on my art!
    So, question.

    I want to make a Chaotix hack that replaces Knuckles' sprites with Knuckles' Mania sprites (obviously with palette limitations, but oh boy are Knuckles' sprites in Chaotix fugly). I'm trying to use this now ancient program and I'm getting nowhere. I keep trying to save my sprite as a 16 bit bmp but it complains that it's not a 16 bit bmp. It never loads the palette from the bmp properly and I've yet to actually see a sprite imported, all it does is just break the ROM. Does anyone understand Chaotix editing enough that they might be able to help me, or is this probably just a lost cause.
     
  18. MainMemory

    MainMemory

    Have no fear...Amy Rose is here! Tech Member
    4,411
    67
    28
    SonLVL
    Well, I made a Chaotix sprite editor of my own, but it's meant to edit individual files, and I dunno how to extract or insert the sprites from the ROM. Varion might be able to help in that regard.

    Also I don't have a binary readily available for the program, but I can produce one if necessary.
     
  19. Varion Icaria

    Varion Icaria

    He's waiting.... Tech Member
    1,010
    0
    16
    S4: Cybernetic Outbreak
    Hi, Yes. I can assist, Chaotix has the art for Knuckles minus an arm/Ring. His Arm/Ring is a separate art index in itself. I've yet to separate all of Knuckles frames into individual files but it's not hard to do if you follow the Index. I've been working on a Chaotix Disassembly, It doesn't build yet but I can help when the time comes, I'm on the SSRG Discord and Skype if you need to contact me.
     
  20. Dark Sonic

    Dark Sonic

    Member
    12,638
    222
    43
    Working on my art!
    Good to know. And yup, I'm aware that the characters have separate arm sprites in Chaotix. First test is just seeing if I can get anything in the game :specialed: But I would make modified Mania sprites that in addition to giving Knuckles a more limited palette would also give him separate arm/body sprite.

    If I can figure it out and my interest remains in the project, I would also like to replace Mighty's sprites with Sonic's from Mania, update a few HUD elements, and I would like to swap out Robotnik's sprites, if only because he looked so weird in that game.