don't click here

Sonic 1 Megamix

Discussion in 'Engineering & Reverse Engineering' started by Tweaker, Dec 22, 2005.

Thread Status:
Not open for further replies.
  1. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Stop spamming my topic. Any other, but not mine.

    Discuss Sonic in tits, but relate it to my hack. kthx.
     
  2. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,134
    5
    18
    I love these kinda hacks. I hope you guys don't do too much to the level format. Just add a buncha cool features. I'm not crazy about the music selection, especially porting Sonic 3 invinicibility music, but perhaps it will make it have more a fresh feel.

    If you want to be even more 133t you should throw Tails and Knuckles in there.

    I can't wait to play this, it should be fun playing around with the new menus and stuff.
     
  3. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    I could get Tails and Knux in there, but I won't for reasons I'd like to keep under wraps. Maybe eventually, but not at the moment.

    Sonic 3 invincibility sounds pretty sweet. You can download my last version if you want to hear it in action.
     
  4. StephenUK

    StephenUK

    Liquor in the front, poker in the rear Tech Member
    1,678
    0
    16
    Manchester, UK
    Quackshot Disassembly
    Right Tweaker doesn't seem to be online anymore when I am, si I thought I'd post this anyway. Since this is now a joint project, I thought I might as well make an input. I got an idea from his GHZ act 1 music, so I decided to put it into practice. The finla word is up to Tweaker, but this may well be the replacement for GHZ. If he doesn't want it, I'll release the files for other people to use. Basically, I've redesigned Azure Lake as a 1P level, and put it into S1. I've yet to see it in game coz I haven't fixed the collision yet, but I made a concept pic out of screenshots of it's current progress in SonED.See pic below and discuss.

    Azure Lake in S1

    (BTW, this is work in progress so there is a lack of details, such as flowers and trees)
     
  5. Sonic 65

    Sonic 65

    Tech Member
    Art looks orgasmic.

    I really need to get around to doing something for this hack (since I'm on the team too). All I've done so far is port some music. =P
     
  6. Quickman

    Quickman

    be attitude for gains Tech Member
    5,596
    18
    18
    :x
    omg porjcet
    omg Fiz draw Sonic in tits plz.

    RELATING TO TWEAKER'S HACK: Tweaker is an awesome hacker and his hack make my nipples go ONOS.

    =P
     
  7. Shade

    Shade

    Member
    That looks insanely awesome.

    Heh, it would be cool if someone did a hack making all of Sonic 3's competition exclusive zones into actual fully fledged single players zones.

    At any rate, I loved the musical tweaks of Sonic 2 Megamix, and this one may well be surpasing it from what I've played. I'm really looking forward to updates.
     
  8. stormislandgal

    stormislandgal

    It's not a phase! Tech Member
    4,533
    10
    18
    Married life <3
    I was going to do Azure lake in Sonic 1... Until the layer deformation hit...

    As said before by other people, can't wait to hear this, and see it.
     
  9. Wow...that looks awesome! Something I've always wanted to do was make to make the competition zones into one player zones.
     
  10. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Okay... Implementing the Sonic CD TIME counter, with milliseconds. Credit goes to drx for writing the original code.

    ...does anyone know the exat method to convert a VRAM base address to VDP? Stealth mentioned to me it involved bit rotating to the left and ANDing by a certain amount... or something like that anyway, but he wasn't entirely sure. Can anyone clarify?
     
  11. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    634
    4
    18
    I'm not clear on what you mean, but I'll take a shot anyway. Assuming you have the VRAM address in d0(16-bit), with the upper unused half of d0 clear, you can use these. Not sure if they will work (and can't find a place to test it), nor which one is faster, though I imagine it'd be the second one since it doesn't have to do so much swapping and shifting.

    Code (Text):
    1. swap &nbsp; &nbsp;d0
    2. rol.l &nbsp; #2,d0
    3. swap &nbsp; &nbsp;d0
    4. lsr.w   #2,d0
    5. andi.w &nbsp;#$400,d0
    6. swap    d0
    Code (Text):
    1. moveq &nbsp; #0,d1
    2. move.w &nbsp;d0,d1
    3. rol.w &nbsp; #2,d1
    4. andi.w &nbsp;#3,d1
    5. andi.w &nbsp;#$3FFF,d0
    6. ori.w   #$4000,d0
    7. swap &nbsp; &nbsp;d0
    8. move.w &nbsp;d1,d0
    Basically, you just rollover bits #14-#15 of the address to put them in bits #0-#1 and move the rest to the upper half of the VDP instruction. Bit #30 should be set to indicate a VRAM write afterwards (if that's what you want to do that is). THen just write the result to $C00004.

    If this code doesn't work, or if there's a faster way, please tell me. This is just what I came up with ina few minutes.
     
  12. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Well... I do have the option of dynamically reloading the art using the routine that Stealth ported from me (The Sonic 2 DMA Queue routine). The only problem is that I'm not sure how to load JUST the numbers, and not the whole block of the HUD's art. I feel stupid asking, but if I can figure that out then it should be no problem.
     
  13. jman2050

    jman2050

    Teh Sonik Haker Tech Member
    634
    4
    18
    Wait, I swear there was a routine somewhere that did just that. It was somewhere in the HUD update routine (which I skipped most of because I didn't need to see it and it was quite complicated). Regardless, the HUD art isn't all loaded at once. In fact, it really can't be because of the way sprites work on the Genesis.
     
  14. Stealth

    Stealth

    Tech Member
    594
    30
    18
    Sonic Mania, HCGE, Sonic Megamix, SonED2, [...]
    Goddamn, make me sound stupid.. I just gave you the gist of the process and not the full details because I didn't HAVE to. If I didn't know and it was important, it's not like I couldn't have looked THAT up in about 2 seconds. Like I already told you, I already inserted the queue process from Sonic 2, which starts with the routine that was at 144E that takes the data start address (d1), the number of tiles (d3), and VRAM start address (d2) and mangles them into VDP command WORDs for a DMA transfer, and stuffs them into a list, automatically picked up by the companion function called during VBlank to make the actual transfer. The process for converting the VDP start address is:
    LONG shift left by 2 (the two high bits become the two low bits of the upper WORD)
    WORD shift right by 2 (return the rest of the bits to their original position)
    swap (the two upper bits end up in the lower WORD, the lower bits in the upper WORD)
    OR by LONG $40000080 (The 4 is always used when setting the start location, the 8 is the flag for using DMA). That's from taking the time to get the details from memory, although I don't have to remember because it's pointless to keep doing it manually for each transfer when the queue is there. You'll only want this transfer to happen during VBlank anyway
     
  15. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Okay, my apologies. I didn't want to insult your knowledge at all, I just wasn't exactly sure as to what I should do at the time. It's my bad that I'm an idiot when it comes to VDP.

    Anyway, thanks for that. I'll give it another shot once I'm done with this letter...
     
  16. Stealth

    Stealth

    Tech Member
    594
    30
    18
    Sonic Mania, HCGE, Sonic Megamix, SonED2, [...]
    You're not an idiot, you were apparantly just not paying attention when I was telling you about it. I also explained that the transfer size you want is only two tiles per digit (that's 4 tiles, but you need two different transfers because they're not always in sequence). It should also be easy to figure out the start offset of the tiles you want because it SHOULD be digit * $40 ($20 for each tile), which you add to the start location of the uncompressed large HUD numbers. That's what I said you'd probably see happening in the existing HUD code, along with how to isolate each digit. They probably have a faster way to do that than the most obvious
     
  17. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    [​IMG]

    HAY GUYS IT'S DONE LOL
     
  18. Skaarg

    Skaarg

    Member
    3,683
    0
    16
    Shouldn't there be 3 numbers for milliseconds?
    Otherwise though it looks really nice good job! :D
     
  19. LocalH

    LocalH

    roxoring your soxors Tech Member
    3,303
    26
    28
    wouldn't you like to know
    Guitar Hero II Deluxe
    No. Milliseconds go from 00 to 99 before wrapping - 100 milliseconds is by definition 1 full second.
     
  20. Varion Icaria

    Varion Icaria

    He's waiting.... Tech Member
    1,014
    3
    18
    S4: Cybernetic Outbreak
    Nice Milli-second counter. Good to see some HUD modifications as of late.
     
Thread Status:
Not open for further replies.