71d8d93abc
even better palette cycling
2024-12-30 11:33:55 -08:00
64a6cf50f3
awesome new palette cycler
2024-12-30 10:21:52 -08:00
100c0f3314
1/2/3 selectable viewports
2024-12-30 09:19:41 -08:00
c4b98c7be2
optimize out a temporary
...
down to 11.076 ms/px on xe
2024-12-30 05:35:22 -08:00
70d2c91f03
fix bank switch on xl/xe
...
was accidentally enabling basic rom :D
5m46s - 11.759 ms/px - 800xl
5m30s - 11.215 ms/px - 130xe
2024-12-30 03:56:35 -08:00
acac5a8df4
moving the framebuffer into the basic space
...
fails on 130xe and 800xl for some reason
works on 800 as expected
2024-12-29 21:19:55 -08:00
883f926e57
split memory, wip
...
appears to work on 800 but xl/xe overlap basic lol
2024-12-29 21:06:48 -08:00
0c63430dd9
wip tables segment to be
2024-12-29 20:37:58 -08:00
3ab5006aa3
wip refacotring
2024-12-29 17:56:14 -08:00
f903272335
refactoring and start on squares
2024-12-29 17:37:06 -08:00
8ad996981a
whoops
2024-12-29 13:19:58 -08:00
15fc5367f9
switck with the overview as default fo rnow
2024-12-29 13:18:54 -08:00
2118890977
add an alternate viewport (compile-time currently)
...
zoomed to max
2024-12-29 13:10:35 -08:00
0fc5ba914f
fix pan/zoom bug
...
was missing an rts on update_palette
this happened to fall through to keycheck
which if timing was wrong would dutifully process the viewport
change and return to update_palette's caller
which in turn was -not- expecting to reset the outer loop
fixed
2024-12-29 12:29:36 -08:00
504457595a
correct zoom border checks
2024-12-28 18:11:35 -08:00
0fcf4d6676
comment tweak
2024-12-28 17:40:21 -08:00
83cba4afa3
Runtime detection of XE-style extended memory
...
Uses the "big multiplication table" in 64KB of extended memory if
bank switching appears to work, otherwise uses the table of squares
lookups.
Initial view clocks in at 13.133 ms/px for the XE version and still
14.211 ms/px for the 400/800/XL version.
Tested in emulator with 130XE and XL+Ultimate 1MB upgrade configs,
and base implementation on the 800XL emulator.
2024-12-27 18:37:03 -08:00
ee1c268705
it works
2024-12-26 21:49:13 -08:00
e84a990789
tweaks:
2024-12-26 21:41:03 -08:00
0cde31905e
runs but doesn't work
2024-12-26 18:35:37 -08:00
45c5a4cb2d
called, gets lost
2024-12-26 18:20:10 -08:00
34ce9da030
builds, not used yte
2024-12-26 18:17:01 -08:00
f996c3cbcd
provisional maybe
...
old mode runs in 81-92 cycles
provisional code runs in 58-77 cycles
if it works ;)
2024-12-25 12:47:37 -08:00
405cec6d51
WIP imul8 via table experiments
...
planning to try a 64KB table of 8x7-bit multiplies in the high memory
on a 130XE or other high-memory-capable machine
not yet working or finished
too many cycles of overhead per invocation
2024-12-25 10:51:27 -08:00
05133aabdd
slightly faster handling of signed mul
...
previously we were flipping the inputs if negative, and then the
output if both inputs were negative
turns out you can just treat the whole thing as an unsigned mul
and then subtract each term from the high word if the other term
is negative.
https://stackoverflow.com/a/28827013
this saves a handful of cycles, reducing our runtime to a merge
14.211 ms/px \o/
2024-12-15 20:17:45 -08:00
5637783529
Faster imul16 routine
...
Improves runtime from 16.24 ms/px to 14.44 ms/px
This uses a routine found on Everything2:
https://everything2.com/title/Fast+6502+multiplication
which uses a lookup table of squares to do 8-bit imuls,
which are then composed into a 16-bit imul
2024-12-14 18:53:31 -08:00
29630c8887
update palette more smoothly
2024-08-19 13:21:44 -07:00
c559b6e76b
palette adjustment
2024-08-18 21:07:53 -07:00
6f05a9bbd0
basic palette cycling
2024-08-18 21:06:30 -07:00
8be03993ab
fix time of drawing of 'DONE' text
2024-08-18 20:29:39 -07:00
201d9bf15c
clear screen after zoom/scroll
2024-02-25 15:15:23 -08:00
c152c4346b
Progressive pixel layout
2024-02-04 14:25:15 -08:00
510457f97a
add a note to fix stats when changing zoom
2023-03-11 21:15:08 -08:00
3d792603db
keyboard nav sorta working
2023-03-11 20:45:32 -08:00
b1c26c1edd
WIP fix keyboard check
2023-03-05 16:57:41 -08:00
53336f7af1
WIP quick hack to check keyboard
...
this for some reason only works ONCE
though I can replicate the logic in BASIC
and it works over multiple keys
not sure what's wrong
2023-03-05 15:45:44 -08:00
24abc21b01
move speed to the right
2023-03-05 13:56:50 -08:00
9926ec28e7
clean up speed display now uses ms/px msg
2023-03-05 13:48:39 -08:00
0501a364c7
Check for repeated zx/zy values
...
These will never escape, so saves
some time in the lake
trick is taken from fractint
2023-02-12 11:56:20 -08:00
839330edb3
fixes
2023-02-05 15:14:24 -08:00
e9f8aa1512
WIP status bar updates
2023-02-05 14:26:58 -08:00
702f7b3598
WIP frame counter for speed readout
...
not yet doing any of the calc/output or calls :D
2023-01-29 18:50:04 -08:00
ca5db83e8f
rethought the rounding function
...
realized the top bits are not enough, that was a brainfart
doing comparisons now
2023-01-28 16:37:37 -08:00
b55015ff87
no this seems right
...
but it's still coming out different. wtf am i doing wrong
it's gotta be a brainfart
2023-01-28 14:34:52 -08:00
76715a6151
Adjust rounding, loop exits
...
Still slight differences between positive and negative Y halves
Not sure what's wrong
2023-01-28 13:34:50 -08:00
b6ddc0d50e
update readme & doc comments & vars
2023-01-22 14:34:30 -08:00
7009e16235
fix range checks
2023-01-22 13:56:19 -08:00
0afed893a6
whoops
...
now produces correct fractal but iterations outside are
sometimes wrong
probably range errrs in intermediate calc
2023-01-22 12:57:52 -08:00
8af3721308
tweaks
2023-01-22 12:47:24 -08:00
57975b7158
not sure what's wrong have to hceck over
2023-01-22 12:02:15 -08:00