ASM to Sega Genesis Platform

Would you like to react to this message? Create an account in a few clicks or log in to continue.
ASM to Sega Genesis Platform

All about assembly programming in the Sega Genesis console.


4 posters

    The S Monitor, WITHOUT level Editing! Tutorial.

    calebjhuhlu
    calebjhuhlu


    Mensagens : 55
    Data de inscrição : 2011-06-16

    The S Monitor, WITHOUT level Editing! Tutorial. Empty The S Monitor, WITHOUT level Editing! Tutorial.

    Post  calebjhuhlu Mon Jul 18, 2011 6:05 pm

    Did you know that there was i guide for restoring the S monitor? Well, This is sort of like it. Instead of inserting an entire new monitor, without level editing, you can restore it, but you have to replace an old monitor.

    Ill show you how i did it.

    First, I Opened My sonic1.asm and i went to the invincible monitor subroutine (Obj2E_ChkInvinc:)

    I Saw this:
    Code:
    Obj2E_ChkInvinc:
          cmpi.b   #5,d0      ; does monitor contain invincibility?
          bne.s   Obj2E_ChkRings
          move.b   #1,($FFFFFE2D).w ; make   Sonic invincible
          move.w   #$4B0,($FFFFD032).w ; time limit for the power-up
          move.b   #$38,($FFFFD200).w ; load stars   object ($3801)
          move.b   #1,($FFFFD21C).w
          move.b   #$38,($FFFFD240).w ; load stars   object ($3802)
          move.b   #2,($FFFFD25C).w
          move.b   #$38,($FFFFD280).w ; load stars   object ($3803)
          move.b   #3,($FFFFD29C).w
          move.b   #$38,($FFFFD2C0).w ; load stars   object ($3804)
          move.b   #4,($FFFFD2DC).w
          tst.b   ($FFFFF7AA).w   ; is boss mode on?
          bne.s   Obj2E_NoMusic   ; if yes, branch
          move.w   #$87,d0
          jmp   (PlaySound).l   ; play invincibility music

    and i also looked at the Sonic Speed Shoes Monitor Subroutine:Obj2E_ChkShoes:
    Code:
    Obj2E_ChkShoes:
          cmpi.b   #3,d0      ; does monitor contain speed shoes?
          bne.s   Obj2E_ChkShield
          move.b   #1,($FFFFFE2E).w ; speed up the   BG music
          move.w   #$4B0,($FFFFD034).w ; time limit for the power-up
          move.w   #$C00,($FFFFF760).w ; change Sonic's top speed
          move.w   #$18,($FFFFF762).w
          move.w   #$80,($FFFFF764).w
          move.w   #$E2,d0
          jmp   (PlaySound).l   ; Speed   up the music

    i Saw that in the Speed shoes Subroutine, the top speed. What i did was copy it, and paste it under this line in Obj2E_ChkInvinc:
    Code:
          move.b   #4,($FFFFD2DC).w

    That way, when i break the monitor, it will also make sonic speed up to the Shoes Speed. But, THe S Monitor requires Higher Speed. Super Sonic Speeds Very Happy

    So, i edited this line:
    Code:
          move.w   #$C00,($FFFFF760).w ; change Sonic's top speed

    to the Super Sonic Speed from Sonic 2 (around 900)

    And as Expected, I Built, and it worked. However, I Did not like how the acceleration/deceleration (how fast you start out) Worked, So, I Went to Sonic's main subroutine, Obj01_Main:

    Code:
    Obj01_Main:            ; XREF: Obj01_Index
          addq.b   #2,$24(a0)
          move.b   #$13,$16(a0)
          move.b   #9,$17(a0)
          move.l   #Map_Sonic,4(a0)
          move.w   #$780,2(a0)
          move.b   #2,$18(a0)
          move.b   #$18,$19(a0)
          move.b   #4,1(a0)
          move.w   #$600,($FFFFF760).w ; Sonic's top speed
          move.w   #$C,($FFFFF762).w ; Sonic's acceleration
          move.w   #$80,($FFFFF764).w ; Sonic's deceleration

    The Acceleration/Deceleration stayed the same when i open the Invincible monitor. SO, I Copied/Pasted These:
    Code:
          move.w   #$C,($FFFFF762).w ; Sonic's acceleration
          move.w   #$80,($FFFFF764).w ; Sonic's deceleration

    into the invincible monitor subroutine, Obj2E_ChkInvinc

    Code:
    Obj2E_ChkInvinc:
          cmpi.b   #5,d0      ; does monitor contain invincibility?
          bne.s   Obj2E_ChkRings
          move.b   #1,($FFFFFE2D).w ; make   Sonic invincible
          move.w   #$4B0,($FFFFD032).w ; time limit for the power-up
          move.b   #$38,($FFFFD200).w ; load stars   object ($3801)
          move.b   #1,($FFFFD21C).w
          move.b   #$38,($FFFFD240).w ; load stars   object ($3802)
          move.b   #2,($FFFFD25C).w
          move.b   #$38,($FFFFD280).w ; load stars   object ($3803)
          move.b   #3,($FFFFD29C).w
          move.b   #$38,($FFFFD2C0).w ; load stars   object ($3804)
          move.b   #4,($FFFFD2DC).w
          move.w   #$930,($FFFFF760).w ; change Sonic's top speed
          move.w   #$C,($FFFFF762).w ; Sonic's acceleration
          move.w   #$80,($FFFFF764).w ; Sonic's deceleration
          tst.b   ($FFFFF7AA).w   ; is boss mode on?
          bne.s   Obj2E_NoMusic   ; if yes, branch
          move.w   #$87,d0
          jmp   (PlaySound).l   ; play invincibility music

    I edited the Acceleration/Deceleration to 1E (Acceleration) and 30 (Deceleration)

    I saved my Sonic1.asm and compiled it, having perfect results.
    Enjoy Your S Monitor!
    Don't ask me how to change the Monitor image to the S monitor image, because i don't yet.
    When i Figure it out, Ill be sure to share it!

    EDIT: Ive Decided to make this a copy/paste thing so here.

    Go to Obj2E_ChkInvinc and replace the entire thing with this:
    Code:
    Obj2E_ChkInvinc:
              cmpi.b  #5,d0      ; does monitor contain invincibility?
              bne.s  Obj2E_ChkRings
              move.b  #1,($FFFFFE2D).w ; make  Sonic invincible
              move.w  #$4B0,($FFFFD032).w ; time limit for the power-up
              move.b  #$38,($FFFFD200).w ; load stars  object ($3801)
              move.b  #1,($FFFFD21C).w
              move.b  #$38,($FFFFD240).w ; load stars  object ($3802)
              move.b  #2,($FFFFD25C).w
              move.b  #$38,($FFFFD280).w ; load stars  object ($3803)
              move.b  #3,($FFFFD29C).w
              move.b  #$38,($FFFFD2C0).w ; load stars  object ($3804)
              move.b  #4,($FFFFD2DC).w
              move.w  #$A00,($FFFFF760).w ; change Sonic's top speed
              move.w  #$30,($FFFFF762).w ; Sonic's acceleration
              move.w  #$100,($FFFFF764).w ; Sonic's deceleration
              tst.b  ($FFFFF7AA).w  ; is boss mode on?
              bne.s  Obj2E_NoMusic  ; if yes, branch
              move.w  #$87,d0
              jmp  (PlaySound).l  ; play invincibility music

    Man, that was boring to do. That's why i started doing it to where you learn something, but if you dont want to, use the code above.


    Last edited by calebjhuhlu on Tue Jul 19, 2011 7:48 am; edited 1 time in total
    calebjhuhlu
    calebjhuhlu


    Mensagens : 55
    Data de inscrição : 2011-06-16

    The S Monitor, WITHOUT level Editing! Tutorial. Empty Re: The S Monitor, WITHOUT level Editing! Tutorial.

    Post  calebjhuhlu Mon Jul 18, 2011 7:16 pm

    Also, If anyone could tell me how to make him jump higher when the box is broken, and how to make it subtract one ring per second, it would be appreciated. Thanks.
    Karate Cat
    Karate Cat


    Mensagens : 83
    Data de inscrição : 2011-04-22

    The S Monitor, WITHOUT level Editing! Tutorial. Empty Re: The S Monitor, WITHOUT level Editing! Tutorial.

    Post  Karate Cat Tue Jul 19, 2011 12:55 pm

    Pretty nice! Smile
    calebjhuhlu
    calebjhuhlu


    Mensagens : 55
    Data de inscrição : 2011-06-16

    The S Monitor, WITHOUT level Editing! Tutorial. Empty Re: The S Monitor, WITHOUT level Editing! Tutorial.

    Post  calebjhuhlu Tue Jul 19, 2011 1:25 pm

    Thanks! If you have any tips for me, go on and tell me! Very Happy

    EDIT: Found a bug i dont know how to fix. When the Power time is over, it looks like everything is back to normal, but you still have the same speed, acceleration,and deceleration as when you have broken the monitor.
    Green Snake
    Green Snake


    Mensagens : 2185
    Data de inscrição : 2012-04-07
    Localização : I do not even know
    Current Project : nope

    The S Monitor, WITHOUT level Editing! Tutorial. Empty Re: The S Monitor, WITHOUT level Editing! Tutorial.

    Post  Green Snake Tue Apr 10, 2012 2:15 am

    calebjhuhlu wrote:Found a bug i dont know how to fix. When the Power time is over, it looks like everything is back to normal, but you still have the same speed, acceleration,and deceleration as when you have broken the monitor.
    You Should point for monitor that if time limit is ended, restore sonic's speed\accerelation\deceleration.

    But you might want to use ''s'' monitor instead...
    Just found out quide for it on sonicretro
    avatar
    JoshDP


    Mensagens : 1682
    Data de inscrição : 2014-10-05

    The S Monitor, WITHOUT level Editing! Tutorial. Empty Re: The S Monitor, WITHOUT level Editing! Tutorial.

    Post  JoshDP Thu Dec 27, 2018 8:21 am

    Just an annual year bump! Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy bounce bounce bounce bounce bounce affraid Basketball cheers bom drunken Basketball cheers bom drunken cherry sunny Sleep

    Sponsored content


    The S Monitor, WITHOUT level Editing! Tutorial. Empty Re: The S Monitor, WITHOUT level Editing! Tutorial.

    Post  Sponsored content


      Current date/time is Sat Dec 07, 2024 7:20 pm