Custom Title Screen

Go down

20210625

Post 

Custom Title Screen Empty Custom Title Screen




Here is a tutorial on how to add a custom background for your title screen using more than the original gfx allow for.

Here is a link to the tutorial:
lw2.minecraftnoob.com/Jared/titleScreen.html
Here is a video of the title screen I made for my hack using this same method:



Here is the ASM just in case for any reason the website goes down:

Code:
 org $0CC341 ;initialize some gfx settings at the beginning so that it displays correctly after the
        JSL Main1 ;history cut scene plays And inserts the gfx to the vram and inserts a custom palette
    
    org $0CC27E ; disables BG 3 during the opening sequence as it is not used
        db #$11
    
    org $0CC51D ; disables BG 3 during the opening sequence as it is not used
        db #$01
    
    org $0CC2AE ; applies the tilemap after the original is placed in
        JSL Main2
    
    org $0CEE39 ; at the beginning of the history cut scene reset the bg address
        JSL Reset1
    
    org $0CCDE2 ; once the select screen appears, reset the bg address
        JSL Reset2
    
    org $218000
    
    ; ==============================================================================
    
    Main1:
    {
        JSL $00E384 ;replaces the Graphics_LoadCommonSprLong that was replaced
    
        LDX #$52 : STX $210B ; Changes where BG 1 pulls its graphics from
    
        LDA.b #$11 : STA $1C ;disables BG3
        LDA.b #$01 : STA $1D
        LDA.b #$11 : STA $212C
        LDA.b #$01 : STA $212D
    
        JSR ApplyGraphics ; inserts the new gfx into the vram
        JSR ApplyNewColors ; inserts the new colors into the cram
    
        SEP #$30
    
        RTL
    }
    
    ; ==============================================================================
    
    Main2:
    {
        JSL $0CC404 ; $64404* that was replaced
    
        LDA $35 : CMP.b #$01 : BEQ .notfirst ;$35 is free ram that I am using to see whether this is the first time this is being run or not
    
        LDA.b #$01 : STA $35 ; if it is set $35 to 1 so we don't apply the tilemap again. otherwise, this causes part of the triforce to flicker
    
        JSR ApplyTileMap ; inserts the new tilemap into the vram
    
        .notfirst
    
        SEP #$30
    
        RTL
    }
    
    ; ==============================================================================
    
    Reset1:
    {
        JSL $1BEDF9 ;replaces the bit that was replaced Palette_ArmorAndGloves
    
        LDA.b #$1F : STA $1C ;re-enables BG3
        LDA.b #$1F : STA $1D
        LDA.b #$1F : STA $212C
        LDA.b #$1F : STA $212D
    
        LDX #$22 : STX $210B ;resets tile address
    
        RTL
    }
    
    ; ==============================================================================
    
    Reset2:
    {
        JSL $00E19B ;replaces the InitTileSets that was replaced
    
        LDA.b #$1F : STA $1C ;re-enables BG3
        LDA.b #$1F : STA $1D
        LDA.b #$1F : STA $212C
        LDA.b #$1F : STA $212D
    
        LDX #$22 : STX $210B ;resets tile address
    
        RTL
    }
    ; ==============================================================================
    
    ApplyNewColors:
    {
        REP #$20 ; Set A in 16bit mode
    
        ; note, this uses addresses like 7EC300 and not 7EC500 because the game
        ; will fade the colors into 7EC500 based on the colors found in 7EC300
    
        LDA #$1525 : STA $7EC352 ;first row
        LDA #$1947 : STA $7EC354
        LDA #$1DA7 : STA $7EC356
        LDA #$2E2B : STA $7EC358
        LDA #$4B32 : STA $7EC35A  
    
        LDA #$12A6 : STA $7EC370 ;second row
        LDA #$092D : STA $7EC372
        LDA #$156E : STA $7EC374
        LDA #$19B1 : STA $7EC376
        LDA #$2214 : STA $7EC378
        LDA #$7F61 : STA $7EC37A
        LDA #$7AA0 : STA $7EC37C
        LDA #$031B : STA $7EC37E
    
        LDA #$092D : STA $7EC392 ;third row
        LDA #$156E : STA $7EC394
        LDA #$19B1 : STA $7EC396
        LDA #$2214 : STA $7EC398
    
        SEP #$20 ;Set A in 8bit mode
    
        RTS
    }
    
    ; ==============================================================================
    
    ApplyGraphics:
    {
        REP #$20 ; A = 16, XY = 8
        LDX #$80 : STX $2100 ;turn the screen off (required)
        LDX #$80 : STX $2115 ;Set the video port register every time we write it increase by 1
        LDA #$5C00 : STA $2116 ; Destination of the DMA $A000 in vram <- this need to be divided by 2
        LDA #$1801 : STA $4300 ; DMA Transfer Mode and destination register "001 => 2 registers write once (2 bytes: p, p+1          )"
        LDA.w #YourBitmap : STA $4302 ;This is the source address where you want gfx from ROM
        LDX.b #YourBitmap>>16 : STX $4304
        LDA #$4600 : STA $4305 ; size of the transfer 3 sheets of $800 each
        LDX #$01 : STX $420B ;Do the DMA
        LDX #$0F : STX $2100 ;turn the screen back on
    
        RTS
    
        YourBitmap:
        incbin Tileset.bin
    }
    
    ; ==============================================================================
    
    ApplyTileMap:
    {
        REP #$20 ; A = 16, XY = 8
        LDX #$80 : STX $2100 ;turn the screen off (required)
        LDX #$52 : STX $210B ;52
    
        LDX #$80 : STX $2115 ; Set the video port register every time we write it, increase by 1
        LDA #$0000 : STA $2116 ; Destination of the DMA $0000 in vram <- this need to be divided by 2
        LDA #$1801 : STA $4300 ; DMA Transfer Mode and destination register "001 => 2 registers write once (2 bytes: p, p+1          )"
        LDA.w #YourTileMap : STA $4302 ; This is the source address where you want gfx from ROM
        LDX.b #YourTileMap>>16 : STX $4304
        LDA #$0800 : STA $4305 ; size of the transfer 3 sheets of $800 each
        LDX #$01 : STX $420B ;Do the DMA
        LDX #$0F : STX $2100 ;turn the screen back on
    
        RTS
    
        YourTileMap:
        incbin Tilemap.bin
    }
    
    ; ==============================================================================
Jared_Brian_
Jared_Brian_
Witch
Witch

Since : 2019-05-06

Back to top Go down

Share this post on: redditgoogle

Custom Title Screen :: Comments

eyeballkid

Post Mon 5 Jul 2021 - 4:40 by eyeballkid

Wow! The result looks phenomenal!

Years ago, when I was doing my little hack/mod, I actually gave up on changing the title screen because I couldn't get it to work. Maybe I should try again with your guide Very Happy

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum