| |
Credits :
SIDs used in this release :
Download :
Look for downloads on external sites:
Pokefinder.org
Production Info Submitted by zscs on 17 August 2023
Since I coded everything in S-MON $c000, used a simple text file to make some notes. It was a great fun to code an intro like this. :)
SCREEN:
ln# d012 badl*: scr: col: *$d011=$1b /badline
-----------------------------------------------------
!00 $31 $33 $0400 $d800 logo0_line1 + 6 sprite bg layer
01 $39 $3b $0428 $d828 logo0_line2
02 $41 $43 $0450 $d850 logo0_line3
03 $49 $4b $0478 $d878
04 $51 $53 $04a0 $d8a0
!05 $59 $5b $04c8 $d8c8 logo1_line1 + 6 sprite bg layer
06 $61 $63 $04f0 $d8f0 logo1_line2
07 $69 $6b $0518 $d918 logo1_line3
08 $71 $73 $0540 $d940
!09 $79 $7b $0568 $d968 __raster line, 1px, sideborder
10 $81 $83 $0590 $d990 text: proudly presents
11 $89 $8b $05b8 $d9b8
!12 $91 $93 $05e0 $d9e0 text: intro-03
13 $99 $9b $0608 $da08
!14 $a1 $a3 $0630 $da30 *1x1 scroll with sprite bg layer
!15 $a9 $ab $0658 $da58 __raster line, 1px, sideborder
16 $b1 $b3 $0680 $da80
!17 $b9 $bb $06a8 $daa8 logo2_line1 + 6 sprite bg layer
18 $c1 $c3 $06d0 $dad0 logo2_line2
19 $c9 $cb $06f8 $daf8 logo2_line3
20 $d1 $d3 $0720 $db20
21 $d9 $db $0748 $db48
!22 $e1 $e3 $0770 $db70 logo3_line1 + 6 sprite bg layer
23 $e9 $eb $0798 $db98 logo3_line2
24 $f1 $f3 $07c0 $dbc0 logo3_line3
----------------------
DATA: C: code, G: graphics, D: data, S: sprites, V/P: value/pointer
*******************************************************************
---------------------------------------------------------------------
d $0800 - 09ff 1x1 charset, char data
d $0a00 - 0bff 1x1 charset, sprite layer data (low and high 4 bits)
s $0e00 - 0fbf 7 sprites for 1x1 scroller ($07f9=$38?)
d $1f00 - 1f05 logo0 sprites: X coordinates
d $1f10 - 1f15 logo1 sprites: X coordinates
d $1f20 - 1f25 logo2 sprites: X coordinates
d $1f30 - 1f35 logo3 sprites: X coordinates
d $1f40 - 1f43 logo left-most char X position pixel offsets, bit 0-2 (for $d016)
d $1f50 - 1f53 logo left-most char X positions (based on $2300 & $1f7x)
d $1f60 - 1f63 logo sprite Y positions (FIX values, logo0,1,2,3)
d $1f70 - 1f73 logo swing/sinus position (0-255, logo0,1,2,3)
d $1f74 - 1f77 logo swing STOP On/Off. 'ON' is 0 (zero!), non-zero value is 'OFF'
d $1f80 - 1f9f logo colour variations, 8 color sets (from here, will be copied)
d $1fa0 - 1fa2 logo0 sprite colors, $d025, $d026, $d027-$d02c
d $1fa4 - 1fa6 logo1 sprite colors, $d025, $d026, $d027-$d02c
d $1fa8 - 1faa logo2 sprite colors, $d025, $d026, $d027-$d02c
d $1fac - 1fae logo3 sprite colors, $d025, $d026, $d027-$d02c
d $1fc0 - 1fc3 logo#0-3 color set indices
g $2000 - logo charset (25 chars only, 25x8 bytes)
d $2100 - logo map, 3x40 chars
d $2180 - 218f brightest color fade-in
d $21a0 - 2nd bringtest fade-in
d $21c0 - neutral fade-in
d $21e0 - darkest fade-in
s $2200 - sprites background for logo, 4 MC sprites ($07f8=$88?)
d $2300 - logo swing sinus
d $2400 - logo map colours, 3x40 chars ($06-dark blue, $0e-blue , cv #0)
$2480 - logo map colours, 3x40 chars ($02-dark red, $0a-red , cv #1)
$2500 - logo map colours, 3x40 chars ($0b-dark grey, $0d-green, cv #2)
$2580 - logo map colours, 3x40 chars ($06-dark blue, $0f-lgrey, cv #3)
d $2600 - logo0 colours (copied always from the 4 stored at $2400-25ff)
d $2680 - logo1 colours -||-
d $2700 - logo2 colours -||-
d $2780 - logo3 colours -||-
--
ROUTINES:
c $1a00 - 1x1 scroll colour cycle routine
c $1b20 - colour fade-in/out change ON at $1b40: 'intro-03' (or prod. txt, later)
c $1b40 - colour fade-in/out (intro-03' text)
c $1bd0 - scroll colour cycle every /256 frames
c $1c00 - logo#0-3 swing: change direction based on snares (music, $c1=$80)
c $2400 - 24ff color cycling routines for logos (2400, 2440, 2480, 24c0)
c $2720 - logo#0 fade-in (on: 2721, counter: 2726)
c $2757 - logo#1 fade-in (on: 2758, counter: 275d)
c $278e - logo#2 fade-in (on: 278f, counter: 2794)
c $2e00 - logo#2 fade-in (on: 2e01, counter: 2e06)
c $2800 - start
c $2a00 - main routine / raster interrupts
c $2b00 - 1x1 scroll routine: main logic (draw new char+bg sprite char)
c $2c00 - [subroutine] 1x1 scroll routine: sprite data, move 1 char to left
c $2cc0 - logo#0-3: colour cycling for all logos
c $2d00 - 1x1 scroll mode init + Sprite bg. layer init
c $2dc0 - $dc01 / PRESS SPACE logic start
c $3500 - logo#0 sprite init & X-coordinate calculation
c $3600 - logo#1 sprite init & X-coordinate calculation
c $3700 - logo#2 sprite init & X-coordinate calculation
c $3800 - logo#3 sprite init & X-coordinate calculation
c $3900 - d012=a9, all sprites OFF!, also sprites #0-5 Y-coord set to $00
c $3910 - 1st 1-pixel rasterline
c $3930 - 2nd 1-pixel rasterline
c $3980 - logo swing (logo#0-3) [INC: $ee, DEC: $ce, $3980, 83, 86, 89]
c $2500 - logo#0 draw (speedcode, superfast!: char + colours draw)
c $3b00 - logo#1 draw
c $3d20 - logo#2 draw
c $1d00 - logo#3 draw
--
VARIABLES:
v 2bfe 1x1 scroll: sprite background layer X-pos, bit-3 offset
v 2bff 1x1 scroll: leftmost char (1: low 4 bits, 0: high 4 bits)
v 2d 1x1 scroll: delay counter
v 2e 1x1 scroll: 3-bit decreasing counter, 0-7
v 2f - 30 1x1 scroll: data pointer
v 31 - 32 logo swing: source screen address (fix, $2100)
v 33 - 34 logo swing: target screen address (e.g. $0770)
v 35 - 36 logo swing: source colour address (e.g. $2400)
v 37 - 38 logo swing: target colour address (e.g. $db70)
v 39 temporary value in code $2e00 / logo draw routine for X char pos offset(33
v 41 - 42 1x1 scroll: sprite background copy-paste pointers, source
3e 3c 38 30 20
3657 - 36cf
RUNTIME Plan:
-------------
$2a00 - all main code sections, separated by raster interrupts.
Nr#: $D012: $2a00,X: $D018: $D016: $D011: ($D0xx value only, if change is made)
01 2e 00 $18 =$1f40 $1b [logo0]
.1: draw logo1
02 51 28 =$1f41 [logo1]
.1: draw logo2
03 77 4e $12 #$c8
79 .1: 1-pixel D020-D021 rasterline
.2: sprite init for 'proudly presents' text
04 87 6b
.1: sprite init for 'intro-03' text
91 .2:
05 99 83 =$2e
.1: 1x1 scroll sprite layer init
a8 .2: all sprites OFF (note: save rastertime)
a9 .3: 1-pixel D020-D021 rasterline
06 ac a6 $18 =$1f42 $1b
.1: logo2 6 bg sprites init + colours
.2: draw logo3
07 d9 c9 =$1f43
.1: logo3 6 bg sprites init + colours
.2: draw logo0
.3: play music
.4: swing logo0-3 logic: fill $1f40-43
.5: determine logo colours (sprites)
colours:
0 - @ - black
1 - a - white
2 - b - red
3 - c - cyan
4 - d - purple
5 - e - green
6 - f - blue
7 - g - yellow
8 - h - orange
9 - i - brown
a - j - light red
b - k - dark grey
c - l - grey
d - m - light green
e - n - light blue
f - o - light grey
Logo swing draw logic: $35-36 set based on LDY, others LDX, code: $2e00.
callig $2e00: set X reg = logo number (0-3). Y reg = colour set (0-3)
$33 $34 $35 $36 $37 $38 screen colour
Logo0: 00 04 00 24 00 d8 0400 d800
Logo1: c8 04 80 24 c8 d8 04c8 d8c8
Logo2: a8 06 00 25 a8 da 06a8 daa8
Logo3: 70 07 80 25 70 db 0770 db70
lda 2100,x <-- x starts at $10, ends at $1e!!!
|
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs · Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|