mirror of
https://github.com/a2-4am/4cade.git
synced 2024-12-26 20:30:29 +00:00
add wavy iris effects
This commit is contained in:
parent
d70c05a50b
commit
336e00f350
@ -1 +1 @@
|
||||
RIPPLE
STAR.IN
SOFT.DIAGONAL
STAGGERWHITE.UD
RADIAL
STAGGER.LR
SOFT.UD
HEART.IN
CRYSTAL
STAR.RIPPLE
BIT.FIZZLE
MEETINTHEMIDDLE
SOFT.IRIS
DIAGONAL
STAR
R.BY.PIXEL
SUNRISE
SOFT.L
HEART.RIPPLE
SUNSET
SLOW.STAR.IN
IRIS.IN
BUTTERFLYRIPPLE
CORNER.CIRCLE
CENTER.BY.PIXEL
DIAGONAL2
RIPPLE2
STAR.BLOOM
PALETTE.FIZZLE
RADIAL2
BUTTERFLY
SPLIT.UD.INTRO
R.BY.2
HALF.FIZZLE
RADIAL3
HEART
SOFT.L
SUNRISE
CORNER4.OUT
LATTICE
BAR.DISSOLVE
R.BY.PALETTE
FOURSPIRAL
SOFT.R
IRIS
CASCADE
AND
BUTTERFLY.IN
CHECKERBOARD
LR.BY.PIXEL
RADIAL4
CHECKER.FIZZLE
STAGGERWHITE.LR
SOFT.UD.OUT
ONESQUARE
FIZZLE
SLOW.STAR
ARROW.WHITE
TRI.FIZZLE
SOFT.IRIS.IN
DIAMOND
TWOPASS.LR
HALF.MOSAIC
RADIAL5
ARROW
FOURSQUARE
BLOCK.FIZZLE
DIAGONAL4
STAGGER.UD
INTERLOCK.LR
SOFT.UD.IN
BLOCK.MOSAIC
CORNER4.IN
INTERLOCK.UD
LITTLE.BOXES
SPIRAL
[eof]
#
# transition effects for HGR slideshows
#
# Each Mega-Attract Module that is an HGR slideshow (see attract.conf)
# will use a single transition effect for the length of the module.
# Transition effects are loaded in the order listed in this file. Each line
# of this file is a filename (not including comments, like this one). The
# name of the next transition effect is stored in the global prefs, so this
# file should not contain duplicates.
#
# Transition effects are binary files loaded at $6000 and called with
# hi-res page 1 showing and the next HGR graphic already loaded at $4000.
# A transition effect can use $6000-$BFFF in main memory, zero page, and
# text page if needed (but preserve the screen holes). $800-$1FFF is reserved
# for the slideshow data. LC RAM banks 1 and 2 are reserved for the launcher.
#
# Important: LC RAM bank 1 will be read/write on entry and must be read/write
# on exit. If you need ROM routines, you are responsible for switching to ROM
# then switching back to RAM bank 1 (read/write) before returning.
#
|
||||
RIPPLE
STAR.IN
SOFT.DIAGONAL
STAGGERWHITE.UD
RADIAL
STAGGER.LR
SOFT.UD
HEART.IN
CRYSTAL
STAR.RIPPLE
BIT.FIZZLE
MEETINTHEMIDDLE
SOFT.IRIS
DIAGONAL
STAR
R.BY.PIXEL
WAVY.IRIS
SUNRISE
SOFT.L
HEART.RIPPLE
SUNSET
SLOW.STAR.IN
IRIS.IN
BUTTERFLYRIPPLE
CORNER.CIRCLE
CENTER.BY.PIXEL
WAVY.IRIS.IN
DIAGONAL2
RIPPLE2
STAR.BLOOM
PALETTE.FIZZLE
RADIAL2
BUTTERFLY
SPLIT.UD.INTRO
R.BY.2
HALF.FIZZLE
RADIAL3
HEART
SOFT.L
SUNSET
WAVY.RIPPLE
CORNER4.OUT
LATTICE
BAR.DISSOLVE
R.BY.PALETTE
FOURSPIRAL
SOFT.R
IRIS
CASCADE
AND
BUTTERFLY.IN
CHECKERBOARD
LR.BY.PIXEL
RADIAL4
CHECKER.FIZZLE
STAGGERWHITE.LR
SOFT.UD.OUT
ONESQUARE
FIZZLE
SLOW.STAR
ARROW.WHITE
TRI.FIZZLE
SOFT.IRIS.IN
DIAMOND
TWOPASS.LR
HALF.MOSAIC
RADIAL5
ARROW
FOURSQUARE
BLOCK.FIZZLE
DIAGONAL4
STAGGER.UD
INTERLOCK.LR
SOFT.UD.IN
BLOCK.MOSAIC
CORNER4.IN
INTERLOCK.UD
LITTLE.BOXES
SPIRAL
[eof]
#
# transition effects for HGR slideshows
#
# Each Mega-Attract Module that is an HGR slideshow (see attract.conf)
# will use a single transition effect for the length of the module.
# Transition effects are loaded in the order listed in this file. Each line
# of this file is a filename (not including comments, like this one). The
# name of the next transition effect is stored in the global prefs, so this
# file should not contain duplicates.
#
# Transition effects are binary files loaded at $6000 and called with
# hi-res page 1 showing and the next HGR graphic already loaded at $4000.
# A transition effect can use $6000-$BFFF in main memory, zero page, and
# text page if needed (but preserve the screen holes). $800-$1FFF is reserved
# for the slideshow data. LC RAM banks 1 and 2 are reserved for the launcher.
#
# Important: LC RAM bank 1 will be read/write on entry and must be read/write
# on exit. If you need ROM routines, you are responsible for switching to ROM
# then switching back to RAM bank 1 (read/write) before returning.
#
|
60
res/notes/transitions/wavyiris.py
Executable file
60
res/notes/transitions/wavyiris.py
Executable file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from math import sqrt, sin, cos, acos, pi
|
||||
import util
|
||||
|
||||
# Graph is plotted across the entire HGR screen, but only coordinates
|
||||
# - in the left half of the screen, AND
|
||||
# - on even rows, AND
|
||||
# - on even columns
|
||||
# are included. It is assumed that the graph is symmetrical across
|
||||
# the left and half sides of the screen (along an axis at X=140).
|
||||
#
|
||||
# X coordinates are converted to byte+bitmask (but see notes below).
|
||||
# Y coordinates are flipped (so 0,0 ends up on the bottom left) then
|
||||
# incremented by 1 so that 0 can terminate the loop,
|
||||
#
|
||||
# 6502 code will be responsible for plotting each of these coordinates
|
||||
# in a 2x2 block. The bitmask usually includes 2 adjacent pixels;
|
||||
# the code will also plot the same 2 adjacent pixels in the adjacent row,
|
||||
# AND mirror both of those plots in the right half of the screen.
|
||||
#
|
||||
# Unfortunately, since bytes are 7 bits across, some blocks will cross a
|
||||
# byte boundary. To simplify the 6502 code, those are simply listed as
|
||||
# separate coordinate pairs, each with a bitmask that includes 1 pixel
|
||||
# instead of 2.
|
||||
|
||||
max_x = 280
|
||||
max_y = 192
|
||||
|
||||
def f(theta, k):
|
||||
r = k*(10.8+sin(16*theta))
|
||||
return r*cos(theta),r*sin(theta)
|
||||
|
||||
coords = []
|
||||
for k_mul in range(3000):
|
||||
for t_mul in range(int(pi*1000+1)):
|
||||
a, b = f(float(t_mul/100), float(k_mul)/100.0)
|
||||
x = round(max_x//2+a*1.2)
|
||||
y = round(max_y//2+b)
|
||||
if (x % 2 != 0) or (y % 2 != 0):
|
||||
continue
|
||||
if x < 0 or x >= max_x//2 or y < 0 or y >= max_y:
|
||||
continue
|
||||
coords.append((x,y))
|
||||
|
||||
unique_coords = util.unique(coords)
|
||||
unique_vals = util.vals_2bit(unique_coords)
|
||||
with open("../../../src/fx/fx.hgr.wavy.iris.data.a", "w") as f:
|
||||
for aval, bval in unique_vals:
|
||||
f.write(" !byte %s,%s\n" % (aval, bval))
|
||||
|
||||
ripple_vals = util.ripple(unique_vals)
|
||||
with open("../../../src/fx/fx.hgr.wavy.ripple.data.a", "w") as f:
|
||||
for aval, bval in ripple_vals:
|
||||
f.write(" !byte %s,%s\n" % (aval, bval))
|
||||
|
||||
unique_vals.reverse()
|
||||
with open("../../../src/fx/fx.hgr.wavy.iris.in.data.a", "w") as f:
|
||||
for aval, bval in unique_vals:
|
||||
f.write(" !byte %s,%s\n" % (aval, bval))
|
@ -1 +1 @@
|
||||
#
# action shots slideshow of games that begin with "H","I","J","K","L"
#
KARATEKA
HUNGRYBOY
HARD.HAT.MACK2=HARD.HAT.MACK
JOUST2=JOUST
JUMPMAN
LADY.TUT
JUGGLER
IMPOSSIBLE.MISS
JUNGLE.HUNT
[eof]
|
||||
#
# action shots slideshow of games that begin with "H","I","J","K","L"
#
KARATEKA
HERO
HARD.HAT.MACK2=HARD.HAT.MACK
JOUST2=JOUST
IKARI.WARRIORS
JUMPMAN
LADY.TUT
JUGGLER
IMPOSSIBLE.MISS
JUNGLE.HUNT
[eof]
|
@ -1 +1 @@
|
||||
#
# action shots slideshow of games that begin with "H","I","J","K","L"
#
LODE001=LODE.RUNNER
HARD.HAT.MACK
LOST.TOMB
HORIZON.V2=HORIZON.V
HERO
HYPER.HEAD.ON2=HYPER.HEAD.ON
JUGGLER2=JUGGLER
HIGH.RISE
JUNGLE.HUNT2=JUNGLE.HUNT
LOST.TOMB2=LOST.TOMB
[eof]
|
||||
#
# action shots slideshow of games that begin with "H","I","J","K","L"
#
LODE001=LODE.RUNNER
HARD.HAT.MACK
LOST.TOMB
HORIZON.V2=HORIZON.V
HUNGRYBOY
HYPER.HEAD.ON2=HYPER.HEAD.ON
JUGGLER2=JUGGLER
HIGH.RISE
JUNGLE.HUNT2=JUNGLE.HUNT
LOST.TOMB2=LOST.TOMB
[eof]
|
@ -1 +1 @@
|
||||
#
# action shots slideshow of games that begin with "H","I","J","K","L"
#
KID.NIKI
LODE137=LODE.RUNNER
IKARI.WARRIORS
LANCASTER
HADRON
LAZER.SILK
HEAD.ON
HUNGRYBOY2=HUNGRYBOY
HORIZON.V
JOUST
[eof]
|
||||
#
# action shots slideshow of games that begin with "H","I","J","K","L"
#
KID.NIKI
LODE137=LODE.RUNNER
LANCASTER
HADRON
LAZER.SILK
HEAD.ON
HUNGRYBOY2=HUNGRYBOY
HORIZON.V
JOUST
[eof]
|
14
src/fx/fx.hgr.wavy.iris.a
Normal file
14
src/fx/fx.hgr.wavy.iris.a
Normal file
@ -0,0 +1,14 @@
|
||||
;license:MIT
|
||||
;(c) 2019 by 4am
|
||||
;
|
||||
!cpu 6502
|
||||
!to "build/FX/WAVY.IRIS",plain
|
||||
*=$6000
|
||||
|
||||
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||
|
||||
+FX_PRECOMPUTED_2BIT Coordinates
|
||||
|
||||
Coordinates
|
||||
!source "src/fx/fx.hgr.wavy.iris.data.a"
|
||||
!byte $00
|
7680
src/fx/fx.hgr.wavy.iris.data.a
Normal file
7680
src/fx/fx.hgr.wavy.iris.data.a
Normal file
File diff suppressed because it is too large
Load Diff
14
src/fx/fx.hgr.wavy.iris.in.a
Normal file
14
src/fx/fx.hgr.wavy.iris.in.a
Normal file
@ -0,0 +1,14 @@
|
||||
;license:MIT
|
||||
;(c) 2019 by 4am
|
||||
;
|
||||
!cpu 6502
|
||||
!to "build/FX/WAVY.IRIS.IN",plain
|
||||
*=$6000
|
||||
|
||||
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||
|
||||
+FX_PRECOMPUTED_2BIT Coordinates
|
||||
|
||||
Coordinates
|
||||
!source "src/fx/fx.hgr.wavy.iris.in.data.a"
|
||||
!byte $00
|
7680
src/fx/fx.hgr.wavy.iris.in.data.a
Normal file
7680
src/fx/fx.hgr.wavy.iris.in.data.a
Normal file
File diff suppressed because it is too large
Load Diff
14
src/fx/fx.hgr.wavy.ripple.a
Normal file
14
src/fx/fx.hgr.wavy.ripple.a
Normal file
@ -0,0 +1,14 @@
|
||||
;license:MIT
|
||||
;(c) 2019 by 4am
|
||||
;
|
||||
!cpu 6502
|
||||
!to "build/FX/WAVY.RIPPLE",plain
|
||||
*=$6000
|
||||
|
||||
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||
|
||||
+FX_PRECOMPUTED_2BIT Coordinates
|
||||
|
||||
Coordinates
|
||||
!source "src/fx/fx.hgr.wavy.ripple.data.a"
|
||||
!byte $00
|
7680
src/fx/fx.hgr.wavy.ripple.data.a
Normal file
7680
src/fx/fx.hgr.wavy.ripple.data.a
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user