How to add a newer SEGA screen to Sonic 1

Discussion in 'Approved' started by OscillateNumInit, Dec 22, 2008.

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

    OscillateNumInit Newcomer Member

    Joined:
    Sep 16, 2008
    Messages:
    2
    Note: You must be using the ASM68K assembler to properly add the screen


    In sonic1.asm add the following equates and macros to the beginning of the file:



    Code:
    BitMapXpos	equ	4
    
    BitMapYpos	equ	2
    
    BitMapWidth	equ	256
    
    BitMapHeight	equ	128
    
    BitMapCellHeight	equ	(BitMapHeight/8)
    
    BitMapCellWidth	equ	(BitMapWidth/8)
    
    WallPalBits	equ	$2000
    
    MapRowWidth	equ	64
    
    bitmapaddr	equ $8000
    
    scrollAaddr	equ	$C000
    
    spriteaddr	equ	$D800
    
    hscrolladdr	equ	$DC00
    
    scrollBaddr	equ	$E000
    
    windowaddr	equ	$F000
    
    DMA_ByteInc	equ	$0
    
    DMA_Length1	equ	$2
    
    DMA_Length2	equ	$4
    
    DMA_SrcAdr1	equ	$6
    
    DMA_SrcAdr2	equ	$8
    
    DMA_SrcAdr3	equ	$A
    
    DMA_DMAenbl	equ	$C
    
    DMA_DstAdr1	equ	$E
    
    DMA_DstAdr2	equ	$10
    
    DMA_DMADisbl	equ	$12
    
    SNDADD		  EQU	 $A04000
    
    SNDDAT		  EQU	 $A04001
    
    CNTLA		   EQU	 $A10008
    
    CNTLB		   EQU	 $A1000A
    
    CNTLC		   EQU	 $A1000C
    
    CNTLAW		  EQU	 $A10009
    
    CNTLBW		  EQU	 $A1000B
    
    CNTLCW		  EQU	 $A10009
    
    PPCNTL		  EQU	 $A1000D
    
    PPDATA		  EQU	 $A10007
    
    BUSREQ		  EQU	 $A11100
    
    BUSRES		  EQU	 $A11200
    
    Z80RAM		  EQU	 $A00000
    
    VDATA		   EQU	 $C00000
    
    VCTRL		   EQU	 $C00004
    
    SetVdpRegister  MACRO
    
    		MOVE.W  #$8000|&#40;\1<<8&#41;|\2,VCTRL; check out the SEGA manual
    
    		ENDM
    
    SetVdpRegisterCode	  MACRO
    
    		and.w   #$00ff,\2			 &#59; Mask off high part
    
    		or.w	#$8000|&#40;\1<<8&#41;,\2
    
    		move.w  \2,VCTRL
    
    		ENDM
    
    AutoIncrement   MACRO
    
    		SetVdpRegister  15,\1
    
    		ENDM
    
    VramWrtAddr  MACRO
    
    		MOVE.L  #$40000000|&#40;&#40;\1&$3fff&#41;<<16&#41;|&#40;&#40;\1>>14&#41;&3&#41;,\2
    
    		ENDM
    
    VSramWrtAddr  MACRO
    
    		MOVE.L  #$40000010|&#40;&#40;\1&$3fff&#41;<<16&#41;|&#40;&#40;\1>>14&#41;&3&#41;,\2
    
    		ENDM
    
    CramWrtAddr  MACRO
    
    		MOVE.L  #$C0000000|&#40;&#40;\1&$3fff&#41;<<16&#41;|&#40;&#40;\1>>14&#41;&3&#41;,\2
    
    		ENDM
    
    CalcVramWrtAddrCode MACRO
    
    		move.w  \1,\2		 &#59; Copy for lower 14 bits
    
    		and.l   #$3fff,\2	 &#59; mask
    
    		lsl.l   #8,\2
    
    		lsl.l   #8,\2		 &#59; Shift up
    
    		or.l	#$40000000,\2 &#59; Set bit that tells VDP it&#39;s a VRAM WRITE
    
    		lsr.l   #8,\1
    
    		lsr.l   #6,\1		 &#59; Shift down 14 bits
    
    		and.l   #$3,\1
    
    		or.l	\1,\2		 &#59; and combine
    
    		ENDM


    At the end of the file add





    Code:
    SegaLogo
    
    	move.l  #10,d6
    
    	bsr	delay
    
    	SetVdpRegister  1,$44
    
    	SetVdpRegister  16,1 
    
    	lea.l   LogoChars,A0 
    
    	VramWrtAddr  $20,VCTRL
    
    	move.l  #16*147,d0
    
    ldchar&#58;
    
    	move.w  &#40;a0&#41;+,VDATA
    
    	dbra	d0,ldchar
    
    	lea.l   LogoPalette,a0
    
    	CramWrtAddr  $0,VCTRL
    
    	moveq.l #15,d0
    
    ldpal&#58;
    
    	move.w  &#40;a0&#41;+,VDATA
    
    	dbra	d0,ldpal
    
    	VramWrtAddr $C51C,D2
    
    	moveq.l	#1,d1
    
    	moveq.l #3,d3
    
    newrow&#58;
    
    	move.l	d2,VCTRL
    
    	add.l   #$00800000,D2
    
    	moveq.l #11,D0
    
    wrtrow1&#58;
    
    	move.w	d1,VDATA
    
    	addq.w	#1,d1
    
    	dbra	d0,wrtrow1
    
    	dbra	d3,newrow
    
    	lea.l   LogoCycle,a0
    
    	add.l	#32,a0
    
    	moveq   #16,d1
    
    	move.l  #$3f,d6
    
    	jsr	delay
    
    stcycl&#58;
    
    	move.l	a0,a1
    
    	move.l  #$c00e0000,$C00004.L
    
    	moveq   #8,d0
    
    cyc&#58;
    
    	move.w  &#40;a1&#41;+,VDATA
    
    	dbra	d0,cyc
    
    	move.l  #$08,d6
    
    	bsr	 delay
    
    	subq	#2,a0
    
    	dbra	d1,stcycl
    
    	move.l  #$40,d6
    
    	bsr	 delay
    
    	CramWrtAddr  $0,VCTRL
    
    	moveq.l #15,d0
    
    .clpal&#58;
    
    	move.w  #0,VDATA
    
    	dbra	d0,.clpal
    
    	VramWrtAddr $C000,VCTRL
    
    	move.l #64*28,d0
    
    .clmap&#58;
    
    	move.w  #0,VDATA
    
    	dbra	d0,.clmap
    
    	rts
    
    delay&#58;
    
    	move.l  #$fff,d7
    
    dt&#58;	nop
    
    	dbra	d7,dt
    
    	dbra	d6,delay
    
    	rts
    
    LogoChars&#58;
    
    				dc.l	$00000000,$00000111,$00011BBC,$001ABBBB
    
    				dc.l	$01AABBBB,$01AAABBB,$1AAAABB1,$19AAAA1B
    
    				dc.l	$00000000,$11111111,$CCCDDDDE,$CCCCDDDD
    
    				dc.l	$CCCCDDDD,$BCCCCDDD,$11111111,$BBCCCCDD
    
    				dc.l	$00000000,$11111100,$EEEFF100,$EEEEF101
    
    				dc.l	$EEEEF11A,$DEEEE11A,$111111AA,$DDEEE1AA
    
    				dc.l	$00000000,$00111111,$11BBCCCC,$BBBBCCCC
    
    				dc.l	$ABBBBCCC,$ABBBBCCC,$AABBB111,$AABB1BCC
    
    				dc.l	$00000000,$11111111,$DDDDEEEE,$DDDDEEEE
    
    				dc.l	$CDDDDEEE,$CDDDDEEE,$11111111,$CCDDDDEE
    
    				dc.l	$00000000,$11110000,$FFF10011,$FFF101BB
    
    				dc.l	$EFF11ABB,$EFF11ABB,$1111AAAB,$EEF1AAAB
    
    				dc.l	$00000000,$11111111,$BCCCCDDD,$BCCCCDDD
    
    				dc.l	$BBCCCCDD,$BBCCCCDD,$BBB11111,$B11CCCCD
    
    				dc.l	$00000000,$11111111,$DEEEEFFF,$DEEEEFFF
    
    				dc.l	$DDEEEEFF,$DDEEEEFF,$11111111,$DDDEEEEF
    
    				dc.l	$00000000,$11000000,$F1000000,$F1000000
    
    				dc.l	$F1000000,$F1000000,$11000000,$F1000001
    
    				dc.l	$00000000,$00000111,$00011DDD,$001CCDDD
    
    				dc.l	$01CCCDDD,$1BCCCCDD,$1BCCCCDD,$BBBCCC11
    
    				dc.l	$00001111,$10000010,$E1100010,$DEE10010
    
    				dc.l	$DEEE1010,$DDEEE100,$DDEEE100,$DDDEEE10
    
    				dc.l	$10100001,$00110011,$00101101,$00100001
    
    				dc.l	$00100001,$00000000,$00000000,$00000000
    
    				dc.l	$19AAA1BB,$199AA1AB,$199AA1AB,$1999A1AA
    
    				dc.l	$1999A1AA,$199991AA,$199991AA,$1899991A
    
    				dc.l	$BBCCCCDD,$BBBCCCCD,$BBBCCCCD,$BB111111
    
    				dc.l	$BBBBCCCC,$ABBBBCCC,$ABBBBCCC,$AABBBBCC
    
    				dc.l	$DDEEE19A,$DDDEE19A,$DDDEE199,$11111199
    
    				dc.l	$11111199,$CD111199,$CDD11199,$CCDD1199
    
    				dc.l	$AAA1BBBC,$AAA1BBBC,$AAA1BBBB,$AAA1BBB1
    
    				dc.l	$9AA1ABBB,$9AA1ABBB,$99A1AABB,$99A1AABB
    
    				dc.l	$CCCDDDDE,$CCCDDDDE,$CCCCDDDD,$11111111
    
    				dc.l	$BCCCCDDD,$BCCCCDDD,$BBCCCCDD,$BBCCCCDD
    
    				dc.l	$EEE1AAAA,$EEE19AAA,$EEE19AAA,$111199AA
    
    				dc.l	$D11199AA,$D111999A,$D111999A,$D1119999
    
    				dc.l	$1BBBCCCC,$1BBBBCCC,$1BBBBCCC,$1ABBB111
    
    				dc.l	$1ABBB1CC,$1AABB1BC,$1AABB1BC,$1AAAB1BB
    
    				dc.l	$DDDDEEEE,$CDDDEEEE,$CDDDDEEE,$11111111
    
    				dc.l	$CCDDDDEE,$CCCDDDEE,$CCCDDDDE,$CCCCDDDE
    
    				dc.l	$F1000001,$F1000001,$E100001A,$1100001A
    
    				dc.l	$E100001A,$E10001AA,$E10001AA,$E100019A
    
    				dc.l	$BBBCCC11,$BBBBC1CC,$BBBBC1CC,$ABBBB1CC
    
    				dc.l	$ABBB1CCC,$AABB1BCC,$AABB1BCC,$AAA1BBBC
    
    				dc.l	$DDDEEE10,$1DDDEE10,$1DDDEEE1,$1DDDDEE1
    
    				dc.l	$C1DDDEE1,$C1DDDDEE,$C1DDDDEE,$CC1DDDDE
    
    				dc.l	$00000000,$00000000,$00000000,$00000000
    
    				dc.l	$00000000,$10000000,$10000000,$10000000
    
    				dc.l	$019999A1,$0189999A,$0019999A,$00189999
    
    				dc.l	$00011199,$11111111,$18888999,$18888899
    
    				dc.l	$1111111C,$AAABBBB1,$AAABBBBC,$AAAABBBB
    
    				dc.l	$AAAABBBB,$1111ABBB,$9AAAABBB,$99AAAABB
    
    				dc.l	$CCDD1189,$CCCDD189,$1CCDD188,$1CCCD188
    
    				dc.l	$1CCCD188,$1CCCC188,$1CCCC188,$1BCCC188
    
    				dc.l	$99911111,$9991AAAB,$9991AAAA,$9991AAAA
    
    				dc.l	$89919AAA,$89919AA1,$889199AA,$889199AA
    
    				dc.l	$11111111,$BBBCCCCD,$BBBBCCCC,$BBBBCCCC
    
    				dc.l	$ABBBBCCC,$11111111,$AABBBBCC,$AABBBBCC
    
    				dc.l	$11119999,$D1118999,$D1118999,$D1118899
    
    				dc.l	$C1118899,$11118889,$CCD18889,$CCD18888
    
    				dc.l	$1AAAB111,$1AAAA1BB,$1AAAA1BB,$19AAA1BB
    
    				dc.l	$19AAA1BB,$199AA111,$199AAAAB,$1999AAAA
    
    				dc.l	$11111DDD,$BCCC1DDD,$BCCC1DDD,$BBCC1CDD
    
    				dc.l	$BBCC1CDD,$BBBC1CCD,$BBBC1CCD,$BBBB1CCC
    
    				dc.l	$E100199A,$E1001999,$D1001999,$D1018999
    
    				dc.l	$D1018999,$D1018899,$D1188899,$D1188889
    
    				dc.l	$AAA1BBBC,$AAA1BBBB,$AA1ABBBB,$9A1AABBB
    
    				dc.l	$9A1AAB11,$91AAAA11,$91AAAABB,$919AAAAB
    
    				dc.l	$CC1DDDDE,$CC1CDDDD,$CCC1DDDD,$BCC1CDDD
    
    				dc.l	$BCC1CDDD,$BBCC1CDD,$BBCC1CDD,$BBBC1CCD
    
    				dc.l	$E1000000,$E1000000,$E1000000,$DE100000
    
    				dc.l	$DE100000,$DD100000,$DDE10000,$DDD10000
    
    				dc.l	$17888899,$17788889,$11111111,$17778888
    
    				dc.l	$17778888,$17777888,$17777888,$11111111
    
    				dc.l	$99AAAABB,$999AAAA1,$1111111B,$9999AAAA
    
    				dc.l	$9999AAAA,$89999AAA,$89999AAA,$11111111
    
    				dc.l	$1BCCC178,$BBBCC178,$BBBCC177,$BBBB1017
    
    				dc.l	$BBBB1017,$ABB10001,$A1100000,$10000000
    
    				dc.l	$8881999A,$8889199A,$88889111,$88889999
    
    				dc.l	$78888999,$78888999,$11888899,$00111111
    
    				dc.l	$AAABBBBC,$AAABBBBC,$11111111,$AAAABBBB
    
    				dc.l	$9AAAABBB,$9AAAABBB,$99AAAABB,$11111111
    
    				dc.l	$CCC17888,$CCC17888,$11111788,$CCC11788
    
    				dc.l	$BCC11778,$BCC10178,$BBC10011,$11110000
    
    				dc.l	$1999AAAA,$81199AAA,$88911111,$889999AA
    
    				dc.l	$8889999A,$8889999A,$88889999,$11111111
    
    				dc.l	$BBBB1CCC,$ABBB1CCC,$11111BCC,$AABBBBCC
    
    				dc.l	$AAABBBBC,$AAABBBBC,$AAAABBBB,$11111111
    
    				dc.l	$D1788889,$C1778888,$CC778888,$CC777881
    
    				dc.l	$CC777881,$CC777781,$CC777781,$11111111
    
    				dc.l	$199AAAAB,$1999AAAA,$19991111,$89991AAA
    
    				dc.l	$89911AAA,$889119AA,$881119AA,$11111111
    
    				dc.l	$BBBCC1CD,$BBBBC1CC,$111111CC,$ABBBBCCC
    
    				dc.l	$ABBBBCCC,$AABBBBCC,$AABBBBCC,$11111111
    
    				dc.l	$DDD10000,$DDDD1000,$DDDD1000,$CDDD1000
    
    				dc.l	$CDDDD100,$CCDDD100,$CCDDD100,$11111100
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00110000,$00110000,$00110000,$00110000
    
    	DC.L	$00110000,$00000000,$00110000,$00000000
    
    	DC.L	$01101100,$01101100,$01101100,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$01101100,$01101100,$11111110,$01101100
    
    	DC.L	$11111110,$01101100,$01101100,$00000000
    
    	DC.L	$00110000,$01111100,$11000000,$01111000
    
    	DC.L	$00001100,$11111000,$00110000,$00000000
    
    	DC.L	$00000000,$11000110,$11001100,$00011000
    
    	DC.L	$00110000,$01100110,$11000110,$00000000
    
    	DC.L	$00111000,$01101100,$00111000,$01110110
    
    	DC.L	$11011100,$11001100,$01110110,$00000000
    
    	DC.L	$01100000,$01100000,$11000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00011000,$00110000,$01100000,$01100000
    
    	DC.L	$01100000,$00110000,$00011000,$00000000
    
    	DC.L	$01100000,$00110000,$00011000,$00011000
    
    	DC.L	$00011000,$00110000,$01100000,$00000000
    
    	DC.L	$00000000,$01100110,$00111100,$11111111
    
    	DC.L	$00111100,$01100110,$00000000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$11111100
    
    	DC.L	$00110000,$00110000,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$01100000
    
    	DC.L	$00000000,$00000000,$00000000,$11111100
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$00000000
    
    	DC.L	$00000110,$00001100,$00011000,$00110000
    
    	DC.L	$01100000,$11000000,$10000000,$00000000
    
    	DC.L	$01111100,$11000110,$11001110,$11011110
    
    	DC.L	$11110110,$11100110,$01111100,$00000000
    
    	DC.L	$00110000,$01110000,$00110000,$00110000
    
    	DC.L	$00110000,$00110000,$01111000,$00000000
    
    	DC.L	$11111000,$00001100,$00001100,$00111000
    
    	DC.L	$01100000,$11000000,$11111100,$00000000
    
    	DC.L	$11111000,$00001100,$00001100,$00111000
    
    	DC.L	$00001100,$00001100,$11111000,$00000000
    
    	DC.L	$00011100,$00111100,$01101100,$11001100
    
    	DC.L	$11111110,$00001100,$00001100,$00000000
    
    	DC.L	$11111100,$11000000,$11111000,$00001100
    
    	DC.L	$00001100,$00001100,$11111000,$00000000
    
    	DC.L	$00111100,$01100000,$11000000,$11111000
    
    	DC.L	$11001100,$11001100,$01111000,$00000000
    
    	DC.L	$11111100,$00001100,$00011000,$00110000
    
    	DC.L	$01100000,$11000000,$11000000,$00000000
    
    	DC.L	$01111000,$11001100,$11001100,$01111000
    
    	DC.L	$11001100,$11001100,$01111000,$00000000
    
    	DC.L	$01111000,$11001100,$11001100,$01111100
    
    	DC.L	$00001100,$00001100,$01111000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$00000000
    
    	DC.L	$00000000,$00110000,$00110000,$01100000
    
    	DC.L	$00011000,$00110000,$01100000,$11000000
    
    	DC.L	$01100000,$00110000,$00011000,$00000000
    
    	DC.L	$00000000,$00000000,$11111100,$00000000
    
    	DC.L	$00000000,$11111100,$00000000,$00000000
    
    	DC.L	$01100000,$00110000,$00011000,$00001100
    
    	DC.L	$00011000,$00110000,$01100000,$00000000
    
    	DC.L	$11111000,$00001100,$00001100,$00111000
    
    	DC.L	$00110000,$00000000,$00110000,$00000000
    
    	DC.L	$01111100,$11000110,$11011110,$11011110
    
    	DC.L	$11011110,$11000000,$01111000,$00000000
    
    	DC.L	$00110000,$01111000,$11001100,$11001100
    
    	DC.L	$11111100,$11001100,$11001100,$00000000
    
    	DC.L	$11111000,$11001100,$11001100,$11111000
    
    	DC.L	$11001100,$11001100,$11111000,$00000000
    
    	DC.L	$01111100,$11000000,$11000000,$11000000
    
    	DC.L	$11000000,$11000000,$01111100,$00000000
    
    	DC.L	$11111000,$11001100,$11001100,$11001100
    
    	DC.L	$11001100,$11001100,$11111000,$00000000
    
    	DC.L	$11111100,$11000000,$11000000,$11111000
    
    	DC.L	$11000000,$11000000,$11111100,$00000000
    
    	DC.L	$11111100,$11000000,$11000000,$11111000
    
    	DC.L	$11000000,$11000000,$11000000,$00000000
    
    	DC.L	$01111100,$11000000,$11000000,$11000000
    
    	DC.L	$11011100,$11001100,$01111100,$00000000
    
    	DC.L	$11001100,$11001100,$11001100,$11111100
    
    	DC.L	$11001100,$11001100,$11001100,$00000000
    
    	DC.L	$01111000,$00110000,$00110000,$00110000
    
    	DC.L	$00110000,$00110000,$01111000,$00000000
    
    	DC.L	$00011110,$00001100,$00001100,$00001100
    
    	DC.L	$00001100,$00001100,$11111000,$00000000
    
    	DC.L	$11000110,$11001100,$11011000,$11110000
    
    	DC.L	$11011000,$11001100,$11000110,$00000000
    
    	DC.L	$11000000,$11000000,$11000000,$11000000
    
    	DC.L	$11000000,$11000000,$11111100,$00000000
    
    	DC.L	$11000110,$11101110,$11111110,$11010110
    
    	DC.L	$11000110,$11000110,$11000110,$00000000
    
    	DC.L	$11000110,$11100110,$11110110,$11011110
    
    	DC.L	$11001110,$11000110,$11000110,$00000000
    
    	DC.L	$01111000,$11001100,$11001100,$11001100
    
    	DC.L	$11001100,$11001100,$01111000,$00000000
    
    	DC.L	$11111000,$11001100,$11001100,$11111000
    
    	DC.L	$11000000,$11000000,$11000000,$00000000
    
    	DC.L	$01111000,$11001100,$11001100,$11001100
    
    	DC.L	$11001100,$11011000,$01101100,$00000000
    
    	DC.L	$11111000,$11001100,$11001100,$11111000
    
    	DC.L	$11110000,$11011000,$11001100,$00000000
    
    	DC.L	$01111100,$11000000,$11000000,$01111000
    
    	DC.L	$00001100,$00001100,$11111000,$00000000
    
    	DC.L	$11111100,$00110000,$00110000,$00110000
    
    	DC.L	$00110000,$00110000,$00110000,$00000000
    
    	DC.L	$11001100,$11001100,$11001100,$11001100
    
    	DC.L	$11001100,$11001100,$01111100,$00000000
    
    	DC.L	$11001100,$11001100,$11001100,$11001100
    
    	DC.L	$11001100,$01111000,$00110000,$00000000
    
    	DC.L	$11000110,$11000110,$11000110,$11010110
    
    	DC.L	$11111110,$11101110,$11000110,$00000000
    
    	DC.L	$11000110,$11000110,$01101100,$00111000
    
    	DC.L	$01101100,$11000110,$11000110,$00000000
    
    	DC.L	$11001100,$11001100,$11001100,$01111000
    
    	DC.L	$00110000,$00110000,$00110000,$00000000
    
    	DC.L	$11111110,$00001100,$00011000,$00110000
    
    	DC.L	$01100000,$11000000,$11111110,$00000000
    
    	DC.L	$01111000,$01100000,$01100000,$01100000
    
    	DC.L	$01100000,$01100000,$01111000,$00000000
    
    	DC.L	$11000000,$01100000,$00110000,$00011000
    
    	DC.L	$00001100,$00000110,$00000010,$00000000
    
    	DC.L	$01111000,$00011000,$00011000,$00011000
    
    	DC.L	$00011000,$00011000,$01111000,$00000000
    
    	DC.L	$00010000,$00111000,$01101100,$11000110
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$11111111
    
    	DC.L	$00110000,$00110000,$00011000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$11111000,$00001100
    
    	DC.L	$01111100,$11001100,$01111100,$00000000
    
    	DC.L	$11000000,$11000000,$11111000,$11001100
    
    	DC.L	$11001100,$11001100,$11111000,$00000000
    
    	DC.L	$00000000,$00000000,$01111100,$11000000
    
    	DC.L	$11000000,$11000000,$01111100,$00000000
    
    	DC.L	$00001100,$00001100,$01111100,$11001100
    
    	DC.L	$11001100,$11001100,$01111100,$00000000
    
    	DC.L	$00000000,$00000000,$01111000,$11001100
    
    	DC.L	$11111100,$11000000,$01111100,$00000000
    
    	DC.L	$00111100,$01100000,$01100000,$11111000
    
    	DC.L	$01100000,$01100000,$01100000,$00000000
    
    	DC.L	$00000000,$00000000,$01111100,$11001100
    
    	DC.L	$11001100,$01111100,$00001100,$11111000
    
    	DC.L	$11000000,$11000000,$11111000,$11001100
    
    	DC.L	$11001100,$11001100,$11001100,$00000000
    
    	DC.L	$00110000,$00000000,$00110000,$00110000
    
    	DC.L	$00110000,$00110000,$00110000,$00000000
    
    	DC.L	$00011000,$00000000,$00011000,$00011000
    
    	DC.L	$00011000,$00011000,$00011000,$11110000
    
    	DC.L	$11000000,$11000000,$11001100,$11011000
    
    	DC.L	$11110000,$11011000,$11001100,$00000000
    
    	DC.L	$01110000,$00110000,$00110000,$00110000
    
    	DC.L	$00110000,$00110000,$00110000,$00000000
    
    	DC.L	$00000000,$00000000,$11000110,$11111110
    
    	DC.L	$11010110,$11000110,$11000110,$00000000
    
    	DC.L	$00000000,$00000000,$11111000,$11001100
    
    	DC.L	$11001100,$11001100,$11001100,$00000000
    
    	DC.L	$00000000,$00000000,$01111000,$11001100
    
    	DC.L	$11001100,$11001100,$01111000,$00000000
    
    	DC.L	$00000000,$00000000,$11111000,$11001100
    
    	DC.L	$11001100,$11001100,$11111000,$11000000
    
    	DC.L	$00000000,$00000000,$01111100,$11001100
    
    	DC.L	$11001100,$11001100,$01111100,$00001100
    
    	DC.L	$00000000,$00000000,$11011100,$11100000
    
    	DC.L	$11000000,$11000000,$11000000,$00000000
    
    	DC.L	$00000000,$00000000,$01111100,$11000000
    
    	DC.L	$01111000,$00001100,$11111000,$00000000
    
    	DC.L	$01100000,$01100000,$11111100,$01100000
    
    	DC.L	$01100000,$01100000,$00111100,$00000000
    
    	DC.L	$00000000,$00000000,$11001100,$11001100
    
    	DC.L	$11001100,$11001100,$01111100,$00000000
    
    	DC.L	$00000000,$00000000,$11001100,$11001100
    
    	DC.L	$11001100,$01111000,$00110000,$00000000
    
    	DC.L	$00000000,$00000000,$11000110,$11000110
    
    	DC.L	$11010110,$11111110,$11000110,$00000000
    
    	DC.L	$00000000,$00000000,$11000110,$01101100
    
    	DC.L	$00111000,$01101100,$11000110,$00000000
    
    	DC.L	$00000000,$00000000,$11001100,$11001100
    
    	DC.L	$11001100,$01111100,$00001100,$11111000
    
    	DC.L	$00000000,$00000000,$11111100,$00011000
    
    	DC.L	$00110000,$01100000,$11111100,$00000000
    
    	DC.L	$00011100,$00110000,$00110000,$11100000
    
    	DC.L	$00110000,$00110000,$00011100,$00000000
    
    	DC.L	$00011000,$00011000,$00011000,$00000000
    
    	DC.L	$00011000,$00011000,$00011000,$00000000
    
    	DC.L	$11100000,$00110000,$00110000,$00011100
    
    	DC.L	$00110000,$00110000,$11100000,$00000000
    
    	DC.L	$01110110,$11011100,$00000000,$00000000
    
    	DC.L	$00000000,$00000000,$00000000,$00000000
    
    	DC.L	$00000000,$00010000,$00111000,$01101100
    
    	DC.L	$11000110,$11000110,$11111110,$00000000
    
    	dc.l	$10000000
    
    	dc.l	$00000000
    
    	dc.l	$00000000
    
    	dc.l	$00000000
    
    	dc.l	$00000000
    
    	dc.l	$00000000
    
    	dc.l	$00000000
    
    	dc.l	$00000000
    
    	dc.l	$00011000
    
    	dc.l	$00011000
    
    	dc.l	$00011000
    
    	dc.l	$11000011
    
    	dc.l	$11000011
    
    	dc.l	$00011000
    
    	dc.l	$00011000
    
    	dc.l	$00011000
    
    	dc.l	$00000000
    
    	dc.l	$01100110
    
    	dc.l	$11111110
    
    	dc.l	$11111110
    
    	dc.l	$10011010
    
    	dc.l	$00000010
    
    	dc.l	$00000010
    
    	dc.l	$00000010
    
    	dc.l	$11000000
    
    	dc.l	$11110000
    
    	dc.l	$11111100
    
    	dc.l	$01111000
    
    	dc.l	$01111100
    
    	dc.l	$00100110
    
    	dc.l	$00000011
    
    	dc.l	$00000000
    
    LogoPalette&#58;
    
    				dc.w	$000,$EEE,$EEE,$EEE,$EEE,$EEE,$EEE
    
    LogoCycle&#58;
    
    				dc.w	$EA0,$E80,$E60,$E40,$E20,$E00,$C00,$A00,$800
    
    				dc.w	$A00,$C00,$E00,$E20,$E40,$E60,$E80,$EA0,$E80
    
    				dc.w	$E60,$E40,$E20,$E00,$C00,$A00,$800


    But wait! The code needed for the SEGA logo needs to be added!



    Under CheckSumCheck add:



    Code:
    				jsr	 SegaLogo


    OK, Now there are 2 SEGA Screens, how do we solve that?



    Replace all of SegaScreen with this:



    Code:
    SegaScreen&#58;		&#59; XREF&#58; GameModeArray
    
    		move.b	#$E4,d0
    
    		bsr.w	PlaySound_Special; stop music
    
    		bsr.w	ClearPLC
    
    		bsr.w	Pal_FadeFrom
    
    		lea	&#40;$C00004&#41;.l,a6
    
    		move.w	#$8004,&#40;a6&#41;
    
    		move.w	#$8230,&#40;a6&#41;
    
    		move.w	#$8407,&#40;a6&#41;
    
    		move.w	#$8700,&#40;a6&#41;
    
    		move.w	#$8B00,&#40;a6&#41;
    
    		clr.b	&#40;$FFFFF64E&#41;.w
    
    		move	#$2700,sr
    
    		move.w	&#40;$FFFFF60C&#41;.w,d0
    
    		andi.b	#$BF,d0
    
    		move.w	d0,&#40;$C00004&#41;.l
    
    		bsr.w	ClearScreen
    
    		move.l	#$40000000,&#40;$C00004&#41;.l
    
    		lea	&#40;Nem_SegaLogo&#41;.l,a0; load Sega	logo patterns
    
    		bsr.w	NemDec
    
    		lea	&#40;$FF0000&#41;.l,a1
    
    		lea	&#40;Eni_SegaLogo&#41;.l,a0; load Sega	logo mappings
    
    		move.w	#0,d0
    
    		bsr.w	EniDec
    
    		lea	&#40;$FF0000&#41;.l,a1
    
    		move.w	#-$A,&#40;$FFFFF632&#41;.w
    
    		move.w	#0,&#40;$FFFFF634&#41;.w
    
    		move.w	#0,&#40;$FFFFF662&#41;.w
    
    		move.w	#0,&#40;$FFFFF660&#41;.w
    
    		move.w	&#40;$FFFFF60C&#41;.w,d0
    
    		ori.b	#$40,d0
    
    		move.w	d0,&#40;$C00004&#41;.l
    
    
    
    Sega_GotoTitle&#58;
    
    		move.b	#4,&#40;$FFFFF600&#41;.w; go to title screen
    
    		rts

    And there you go! A newer SEGA screen!
     
    Last edited by a moderator: Dec 22, 2008
  2. Selbi

    Selbi Plug in, baby. Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,397
    Location:
    Northern Germany
    Doesn't work! Also, this is the most worst guide I've ever seen! To say "Add this at the beginning of the file" and "At(<-n00b) the end of the file add:" is shit! And who made this? Not you!
     
  3. SonicVaan

    SonicVaan I'm a cyberpunk with a taste for guns Member

    Joined:
    Sep 12, 2008
    Messages:
    456
    Location:
    Germany, Cologne
    Now don't be bad to him.. He's a newbie and sure there would be some errors.. But don't be so rude :p
     
  4. Clowd

    Clowd Love truce, Correct errors. Member

    Joined:
    Dec 13, 2008
    Messages:
    364
    yea it dosen't work :p ............but i don't think it the worst guide i ever seen...........
     
  5. Selbi

    Selbi Plug in, baby. Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,397
    Location:
    Northern Germany
    I can build, but there's only a black screen instead of an nice Sega Screen! Clean up your guide with proper locations! No excuse!
     
  6. Irixion

    Irixion Well-Known Member Member

    Joined:
    Aug 11, 2007
    Messages:
    670
    Location:
    Ontario, Canada

    Your guides aren't gold either so you'd better shut your mouth.


    As for the guide, I haven't tried it but perhaps you left something out? Also, what does 'Newer' SEGA screen supposed to mean?
     
  7. Clowd

    Clowd Love truce, Correct errors. Member

    Joined:
    Dec 13, 2008
    Messages:
    364
    yea what does the SEGA screen suppossed to look like (pics please) oh and Selbi's tutorials arn't that bad like i couldn't do the spindash tutorial but his video made it easier and i did it........so there not that bad........
     
  8. Clowd

    Clowd Love truce, Correct errors. Member

    Joined:
    Dec 13, 2008
    Messages:
    364
    Son of A Bi**h!!! sorry i had to double post but it fucking worked!!!........(well the sonic retro one did..........even though there both the same)........here's a pic:


    [​IMG]


    but i've seen games older than sonic 1 that have this sega screen.......but yea it works (applied to my hack) :p
     
    Last edited by a moderator: Dec 29, 2008
  9. Oerg866

    Oerg866 Well-Known Member Member

    Joined:
    Aug 29, 2008
    Messages:
    299
    Location:
    Frankfurt, Germany
    WTF! Fuck you all -- Who is responsible for you being a no-brainer and if you unable to follow this guide? This gude works damn fine, in fact, I use this screen on my hack, I layed some PCM music on it and that's it.


    You rude pieces of shit.


    Btw: I love this screen. For those a) too stupid to get this working, B) curious, c) who don't want to use this screen albeit wanting to have a look at it, here's what it looks like:


    [​IMG]


    Complete with pallette animation and stuff.


    PS: Selbi, judging from your posts, you are pretty much an idiot.


    How the heck do you want to tell if it isn't his? I mean, sure, it's modeled after the screen that some SEGA Genesis games used, but it takes quite an effort to rebuild, if not port the screen in ASM. And it takes effort YOU don't know to bring up.


    Yours,


    Oerg866
     
    Last edited by a moderator: Feb 9, 2009
  10. Selbi

    Selbi Plug in, baby. Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,397
    Location:
    Northern Germany
    Because it's already posted on Sonic Retro. Look here. A simple copy paste! But if "Shaonic" is "OscillateNumInit", then I'm sorry!
     
  11. Oerg866

    Oerg866 Well-Known Member Member

    Joined:
    Aug 29, 2008
    Messages:
    299
    Location:
    Frankfurt, Germany
    Dude, I know that it's been posted ad Retro.


    Plus, spreading of information is a GOOD thing, right?!
     
  12. LSD

    LSD aka Light Speed Dash, known as LSD or LD Member

    Joined:
    Apr 26, 2009
    Messages:
    25
    Location:
    US
    Alright, I got the screen to work, but after that, I got a checksum error, any help?
     
    Last edited by a moderator: May 3, 2009
  13. Selbi

    Selbi Plug in, baby. Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,397
    Location:
    Northern Germany
    Just fix the Checksum. In nearly every Emulator is an option called "Auto Fix Checksum". Enable it. If you still get the error, you made something wrong.
     
  14. Oerg866

    Oerg866 Well-Known Member Member

    Joined:
    Aug 29, 2008
    Messages:
    299
    Location:
    Frankfurt, Germany
    or, well, you could drop the rom onto "FIXHEADR.EXE" which is included to the disassembly.


    Or include it to build.bat:


    fixheadr s1built.bin
     
  15. Selbi

    Selbi Plug in, baby. Retired Staff

    Joined:
    Jul 20, 2008
    Messages:
    2,397
    Location:
    Northern Germany
    It's enabled by default. I don't think he disabled it. Also, sometimes you can get a Checksum error, even with fixheadr.exe.


    But if you disabled it, enable it again, using Oerg's method.
     
  16. LSD

    LSD aka Light Speed Dash, known as LSD or LD Member

    Joined:
    Apr 26, 2009
    Messages:
    25
    Location:
    US
    Okay, I didn't have AutoFix on. Thanks both of you for helping!
     
  17. Sephiroth

    Sephiroth WHY SO CURIOUS?!? Member

    Joined:
    Aug 11, 2007
    Messages:
    507
    Location:
    Qatar, M.E.
    I have to say that this Sega screen is pretty neat. It's a shame that you have to resort to having the artwork in the raw coding, and I'm sure there is an easy way to just incbin the artwork.
     
  18. Spanner

    Spanner The Tool Administrator

    Joined:
    Aug 9, 2007
    Messages:
    2,334
  19. Pokepunch

    Pokepunch That guy who posts on occasion Member

    Joined:
    Aug 7, 2009
    Messages:
    269
    Location:
    UK
    There is no sega! music.Or have I done it wrong??
     
  20. MarkeyJester

    MarkeyJester ! % # @ Member

    Joined:
    Jun 27, 2009
    Messages:
    2,698
    I don't mean to sound rude, I know the fact that this thread is pretty old, but seeing as it's bumped, I'm going to ask something.


    Everyone who has posted on this thread before me, can any of you explain WHY it works? i.e. what all those routines do individually to create the SEGA screen?


    Just a little curious to see how many people actually know how it navigates, mainly to see if anyone here has actually taken the time to analyse and properly play around with it is all, not to be mean or rude or anything like that. Lets just call it my little research as it were =P
     
Thread Status:
Not open for further replies.