Sonic 1 after act one credits

Discussion in 'Discussion and Q&A Archive' started by PikachuLPer, May 29, 2016.

  1. PikachuLPer

    PikachuLPer Newcomer In Limbo

    Joined:
    Dec 31, 2015
    Messages:
    8
    i wanna make a one level hack so after act one green hill zone come the credits and i dont know how can you guys help me?
     
  2. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    912
    Location:
    Orono, Maine
    Replace this from Obj3A_NextLevel
    Code:
            move.b    ($FFFFFE10).w,d0
            andi.w    #7,d0
            lsl.w    #3,d0
            move.b    ($FFFFFE11).w,d1
            andi.w    #3,d1
            add.w    d1,d1
            add.w    d1,d0
            move.w    LevelOrder(pc,d0.w),d0 ; load level from level order array
            move.w    d0,($FFFFFE10).w ; set level number
            tst.w    d0
            bne.s    Obj3A_ChkSS
            move.b   #0,($FFFFF600).w ; set game mode to level (00)
    with this
    Code:
            move.b    #$1C,($FFFFF600).w ; set game mode to credits (1C)
     
    MarkeyJester and Niko like this.
  3. Niko

    Niko All's well that ends well, right? Member

    Joined:
    Mar 1, 2014
    Messages:
    245
    Location:
    $C800
    EDIT: Ninja'd.

    In terms of Sonic 1, "credits" come after the ending sequence. The level order can be adjusted so that Green Hill Act 1 goes to Ending Sequence (Act 1) instead of Green Hill act 2, or however you adjust it.

    Hex editing the Level Order's binary file in a dissembly can prove to be a little much if you're not too sure what you're looking at, but here's Painto's code (and quick tut') to make the level order be in ASM.

    http://sonicresearch.org/community/index.php?threads/sonic-1-changing-level-order.3791/#post-55402

    After applying it, change this line:
    Code:
            dc.w    green_hill_act_2    ; GHZ1
    ..to the level you want to activate instead of Green Hill's Act 2.

    For the ending sequence, that would be an address he didn't mention, but would it hurt to use Final Zone?
    Code:
            dc.w    final_zone    ; GHZ1 goes to Final

    I personally use the method of editing the level order in a clean ROM with ESEII, splitting it, and then using the lvl_ord.bin from that.
     
    Ashuro and MarkeyJester like this.