Basic Questions and Answers Thread

Discussion in 'Discussion & Q&A' started by Malevolence, Jul 7, 2009.

  1. Pacca

    Pacca Why succeed when you can profit off of failure? Member

    Joined:
    Jul 5, 2014
    Messages:
    1,149
    Location:
    Triton (Moon)
    Did you accidentally add extra blank tiles to knuckles art? I once added extra files to the monitor Art in S1, and it overwrote the checkpoint art.
     
  2. Painto

    Painto Samodzierżca Najdłuższego Kija Member

    Joined:
    Mar 24, 2014
    Messages:
    315
    Location:
    Poland
    I'm added S3&K styled special stage ring and after exiting from ring I noticed this:

    [​IMG]

    It appears for one frame, but it can't be seen before it dissapears. Anyway to fix it?
     
  3. Pokepunch

    Pokepunch That guy who posts on occasion Member

    Joined:
    Aug 7, 2009
    Messages:
    270
    Location:
    UK
    I haven't touched Knuckles' art at all, but having extra blank tiles in his art wouldn't cause this issue due to the Characters art being handled dynamically. This has been annoying me all day, it's probably something really simple that i'm overlooking.  
     
  4. Pacca

    Pacca Why succeed when you can profit off of failure? Member

    Joined:
    Jul 5, 2014
    Messages:
    1,149
    Location:
    Triton (Moon)
    Are their any decent tutorials for adding the jumpdash into S1? I know this is generally a rather noobish thing to do, but I love this move, and have some interesting plans for it. I'd look myself, but I've heard that the jumpdash is the most pirated bit of sonic code on the internet...
     
  5. Irixion

    Irixion Well-Known Member Member

    Joined:
    Aug 11, 2007
    Messages:
    670
    Location:
    Ontario, Canada
    The game appears to be loading GHZ's PLCs. The only way to really fix this is to either tell the object to not appear for whatever the duration is, or, change the order in which the game loads art.
     
  6. N30member

    N30member non-pro user btw Member

    Joined:
    Feb 15, 2014
    Messages:
    216
    Location:
    Kazakhstan
    @Pacguy: This lovely guide.


    P.S. Jump Dash is not most pirated ability, but its strange subtype named Homing Attack is.
     
    Last edited by a moderator: Sep 29, 2014
  7. Pacca

    Pacca Why succeed when you can profit off of failure? Member

    Joined:
    Jul 5, 2014
    Messages:
    1,149
    Location:
    Triton (Moon)
    So I followed this guide on implementing an S2 styled level select in sonic 1, but I can't get planed to edit it's mappings so I can correct the level names. Here is my planed settings file (I purposefully changed some of the file endings; I know they're correct because I double checked.)
     
  8. Painto

    Painto Samodzierżca Najdłuższego Kija Member

    Joined:
    Mar 24, 2014
    Messages:
    315
    Location:
    Poland
    Actually the mappings in this S2 levsel are hardcoded in various places in the s2_menu.asm. You can edit the names in Menu_Level_Select_Text:.
     
  9. warr1or2

    warr1or2 I AM CLG Member

    Joined:
    Apr 7, 2008
    Messages:
    390
    Location:
    Town Creek, AL
    I have changed the Level Select to act as an Option menu with sound test on this menu. I also have  the S2 level select, with the sound test on here a MegaPCM Dac Test. Sound test uses $FFFFFF84 (as it should) & MegaPCM Dac test uses $FFFFFF86. In the option menu, when playing a sound, then going to Level Select, it acts as if it Backtracked to the options. Problem 1



    I finally got the Character Change Option to work... somewhat right. oddly enough, i had to change macros on Character, & Playlist

    Character = $FFFFFFFE, I changed it to another unused location (I recall someone saying $FFFFFFFE was for some checking routine 

    I can Push right on Character to change to Sonic, Richter & Nebula Sonic, but pushing left won't change character. Somewhat with playlist, but wanting to change Left to Normal Playlist, Right is custom music. Problem 2

    I know the answers lie in LevelSelect & LevSel_Controls

    (Not on home computer & don't have Disassemblies with me, or i'd show the code)
     
  10. ThomasThePencil

    ThomasThePencil resident psycho Member

    Joined:
    Jan 29, 2013
    Messages:
    911
    Location:
    the united states. where else?
    Not sure if this is a "basic" question, but I'm wondering: How exactly do animated tiles work in Sonic 2?
     
    Last edited by a moderator: Sep 30, 2014
  11. Pacca

    Pacca Why succeed when you can profit off of failure? Member

    Joined:
    Jul 5, 2014
    Messages:
    1,149
    Location:
    Triton (Moon)
    from what I can tell, as system similar to the PLC system consistently overwrites specific art tiles on a timer through the duration of the level. I'm actually curious about this too, though; I don't know any specifics.
     
  12. Pacca

    Pacca Why succeed when you can profit off of failure? Member

    Joined:
    Jul 5, 2014
    Messages:
    1,149
    Location:
    Triton (Moon)
    Sorry to double post, but I have a legitimate issue. I've been trying to implement markeys' old SSRG screen into my S1 hack, but it just makes the game loop back to the Sega screen, forcing the game into an infinite loop. Some experimentation seems to suggest that it ignore the 2 in the 20 value that codes for the SSRG screen mode, making the game read it as 0 and rebooting the Sega screen (I know because adding an extra mode to the array and setting it to 24 goes to mode 04, the title screen)
     
  13. warr1or2

    warr1or2 I AM CLG Member

    Joined:
    Apr 7, 2008
    Messages:
    390
    Location:
    Town Creek, AL
    Pacguy In maingameloop

    Code:
    Move.b ($FFFFF600).w,d0
    Andi.w #$7C,d0
    
    Move.l Gamemodearray(PC,d0.w)a0
    Jsr (a0) 
    Bra.s maingameloop
    Change the bra.w in gamemodearray to dc.l and there you go
     
  14. SuperEgg

    SuperEgg I'm a guy that knows that you know that I know Member

    Joined:
    Oct 17, 2009
    Messages:
    Location:
    THE BEST GOD DAMN STATE OF TEXAS
    ....Or you could not do that, as that is rather silly and completely irrelevant to the problem at hand.

    Pacguy, here is what you should see in your GameModeArray. Not exactly like this, but this is the basic list of what you should see. Far too lazy to open up the S1 disasm just to copy and paste it.


    GameModeArray:
    bra.w SsegaScreen ; Game Mode 00
    bra.w TitleScreen ; Game Mode 04
    bra.w Level ; Game Mode 08
    bra.w Level ; Game Mode 0C
    bra.w SpecialStage ; Game Mode 10
    bra.w ContinueScreen ; Game Mode 14
    bra.w Ending Sequence ; Game Mode 18
    bra.w Credits ; Game Mode 1C

    At the end of this list, go ahead and add this line.


    bra.w SSRG_Screen ; Game Mode 20

    I'm only assuming this is the name of the Mode. Name it to whatever it is titled. I'm trying to make this as generic as possible.

    Now, assuming the order you want your game to start up is as follows:

    Sega Screen->SSRG Screen->Title Screen

    Do this.

    Go to "SegaGotoTitle"

     Change the line


    move.b #4,($FFFF600).w

    to this.


    move.b #$20,($FFFF600).w

    Now, your SEGA screen should go to the SSRG Splash Screen. Next, go to SSRG_ScreenFinish.

    This is what your first line should like.


    move.b #$04,($FFFFF600).w ; set the screen mode to Title Screen

    If it is exactly the same as above, nvm.

    Now, if you have any other issues, go ahead and come back later, but also show what code changes you've done up to this point. You might have messed up somewhere.

    Also, really warr1or2? bra.w to dc.l? Next thing you know you'll want him changing his bsr's to jsr's. =P
     
    Last edited by a moderator: Sep 30, 2014
  15. warr1or2

    warr1or2 I AM CLG Member

    Joined:
    Apr 7, 2008
    Messages:
    390
    Location:
    Town Creek, AL
    Superegg i had the same problem pacguy has and I've done what you've mentioned. didn't work so i applied it the way i mentioned and it works like a charm.
     
  16. Pacca

    Pacca Why succeed when you can profit off of failure? Member

    Joined:
    Jul 5, 2014
    Messages:
    1,149
    Location:
    Triton (Moon)
    Actually, neither of those were my problem. I had to change one line in maingameloop:

    MainGameLoop:
            move.b    ($FFFFF600).w,d0 ; load    Game Mode
            andi.w    #$3C,d0
            jsr    GameModeArray(pc,d0.w) ; jump to apt location in ROM
            bra.s    MainGameLoop

    The bolded line originally had #$1C instead of 3C, I found it while examining maingameloop based on warr1or2s' suggestion. I have no idea what he was actually trying to tell me, though.
     
  17. warr1or2

    warr1or2 I AM CLG Member

    Joined:
    Apr 7, 2008
    Messages:
    390
    Location:
    Town Creek, AL
    I found the fix on SonicGamesDimension
     
  18. MainMemory

    MainMemory Well-Known Member Member

    Joined:
    Mar 29, 2011
    Messages:
    879
    You know Pacguy I was just about to suggest exactly that in IRC, but you had left by the time I read it. I had to do the exact same thing in Sonic 2 (which has $3C there by default) for a hack once.
     
  19. Selbi

    Selbi Kickstart My Ass Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,398
    Location:
    Northern Germany
    Out of curiosity I checked how I did this in my hack some time ago, and I noticed I had everything rewritten to work with dc.l's.

    Code:
    ; ---------------------------------------------------------------------------
    ; Main Game Loop, everything before this is only done on startup.
    ; ---------------------------------------------------------------------------
    
    MainGameLoop:
    		moveq	#0,d0
    		move.b	($FFFFF600).w,d0
    		movea.l	GameModeArray(pc,d0.w),a1
    		jsr	(a1)
    		bra.s	MainGameLoop
    
    ; ---------------------------------------------------------------------------
    ; Main game mode array (screen modes / game modes)
    ; ---------------------------------------------------------------------------
    GameModeArray:
    		dc.l	SegaScreen	; Sega Screen		($00)
    		dc.l	TitleScreen	; Title	Screen		($04)
    		dc.l	Level		; Demo Mode		($08)
    		dc.l	Level		; Normal Level		($0C)
    		dc.l	SpecialStage	; Special Stage		($10)
    		dc.l	ContinueScreen	; Continue Screen	($14)
    		dc.l	EndingSequence	; Ending Sequence	($18)
    		dc.l	Credits		; Credits		($1C)
    		dc.l	InfoScreen	; Info Screen		($20)
    		dc.l	OptionsScreen	; Options Screen	($24)
    		dc.l	ChapterScreen	; Chapters Screen	($28)
    		dc.l	CreditsNew	; New Credits Screen	($2C)
    ; ---------------------------------------------------------------------------
    What I don't know is why I did that. Does anyone have an idea? I just want to understand my train of thought I had back then. :V
     
    Last edited by a moderator: Sep 30, 2014
  20. MarkeyJester

    MarkeyJester ♡ ! Member

    Joined:
    Jun 27, 2009
    Messages:
    2,820
    Two reasons come to mind:

    1. Processes faster
    2. Omits the distance limit