Commit Graph

112 Commits

Author SHA1 Message Date
Vince Weaver
9d6b22a0c2 pt3_player: inline GetNote() which speeds things up a bit 2019-09-10 22:29:22 -04:00
Vince Weaver
f13d6b06a3 pt3_lib: update to generate the four frequency tables on the fly
probably makes the executable a bit bigger but good for correctness sake

only generating the v3.4+ tables.  Would be fairly easy to add the four
3.3 versions, but in practice I don't see many files of that type
2019-09-10 17:10:56 -04:00
Vince Weaver
6589803355 pt3: autogenerate tone table 2019-09-10 01:37:15 -04:00
Vince Weaver
0e2a9ecd06 pt3_player: optimize get_note 2019-09-09 01:06:21 -04:00
Vince Weaver
5c07480333 pt3_lib: fix issue where vibrato was broken
backed out a qkumba optimization that in retrospect I am not sure
what it was doing but it was broken subtly in at least 2 places

could probabl be re-optimized again, especially the pt3_lib version
2019-08-31 01:34:01 -04:00
Vince Weaver
a0dc7d4150 pt3: big mess finding bug in pt3_lib
was playing OOTW ending wrong

was an accidentally commented out "lda #0"  blurgh

some other code cleanups while at it, mostly making it match
the pt3_player code a bit more

also stop using TEMP from interrupt as other code might use it
2019-08-21 15:07:20 -04:00
Vince Weaver
8aa831782c pt3: pt3_mixer_val is copied direct to AY_regs, so make same var 2019-06-19 00:40:10 -04:00
Peter Ferrie
bc93edf06b pt3: optimize the on/off code 2019-06-18 14:00:59 -04:00
Peter Ferrie
c47f390d30 pt3: note X is already set properly, save an instruction 2019-06-18 13:11:37 -04:00
Vince Weaver
d328d28ffa pt3: move note vars to zero page
since we're being crazy
2019-06-09 01:18:39 -04:00
Peter Ferrie
efc2a5a684 pt3: merge in qkumba's crazy self-modify-everything patch
it conflicted a bit with some of the other changes I made

also added a lot of extra init-to-zero so the validation tools
would still work
2019-06-09 00:54:38 -04:00
Vince Weaver
5961077695 pt3_lib: also use loop to zero vars 2019-06-08 01:44:04 -04:00
Vince Weaver
ae3d819970 pt3: init zeroed vars with loop
switching songs, sometimes they'd start wrong due to vars not
being initialized.  Easier to just zero everything than try to
figure out which field we weren't getting.  Also makes code smaller.
2019-06-08 01:39:50 -04:00
Vince Weaver
ea4e5f44f2 pt3: also fix pt3_lib 2019-06-08 00:51:51 -04:00
Vince Weaver
3186056500 pt3: fix bug in portamento code
only noticed with IR.pt3 test

something else is wrong playing that file but it passes validation now
2019-06-08 00:48:26 -04:00
Vince Weaver
0cf9c5aaf6 pt3: some more cycle counts 2019-06-05 17:00:47 -04:00
Vince Weaver
6802663554 pt3: remove pt3_version
makes code slightly faster but also slightly bigger
2019-06-05 12:45:10 -04:00
Vince Weaver
f8cfa2feb1 pt3: remove two unused variables 2019-06-05 12:18:34 -04:00
Vince Weaver
499b0ba332 pt3: remove "decode_done" variable 2019-06-05 11:40:06 -04:00
Vince Weaver
9f6e149b7c pt3: add a few more cycle counts 2019-06-05 11:22:12 -04:00
Vince Weaver
f3fe83bfc4 pt3: combine $d0/$e0 decode 2019-06-05 11:19:09 -04:00
Vince Weaver
8691e095f4 pt3: more timing numbers 2019-06-05 00:56:52 -04:00
Vince Weaver
5ae0023bd6 pt3: move all variables together
easier to see what's going on
2019-06-05 00:30:27 -04:00
Vince Weaver
c623d5c0bb pt3: mask/cache note_command bottom nibble
adds 8 cycles but removes a number of instructions
2019-06-05 00:26:12 -04:00
Peter Ferrie
d72f629d93 cache slide 2019-06-03 14:42:07 -07:00
Vince Weaver
fe21132fdb pt3: fix issue where sharps not being printed right on channel B/C
actually unclear if/how was working on channel A
2019-06-03 00:29:20 -04:00
Peter Ferrie
77007cfdb5 pt3: make negating code more efficient
vmw: fix a L/H typo that was causing validation test fail
2019-06-02 23:53:48 -04:00
Peter Ferrie
c4da336e98 fix b1 check 2019-06-02 23:39:05 -04:00
Peter Ferrie
7b447699f8 pt3: optimize envelope code 2019-06-02 23:37:26 -04:00
Peter Ferrie
90b8a76a4b pt3: optimize amplitude code 2019-06-02 23:24:44 -04:00
Peter Ferrie
089d963d23 pt3: remove branch 2019-06-02 23:17:00 -04:00
Peter Ferrie
5c4795ad72 pt3: remove temp_y, add dedicated ornament/sample init entry points 2019-06-02 23:10:50 -04:00
Peter Ferrie
c5bd00e068 pt3: make loop/megahertz self-modified 2019-06-02 22:57:47 -04:00
Vince Weaver
33615c215f Revert "[PATCH] cut some bytes and cycles"
This reverts commit d5ca73dc14.
2019-06-02 22:36:31 -04:00
Vince Weaver
0b98d803e8 pt3: update optimization info 2019-06-02 01:05:55 -04:00
Peter Ferrie
4e2916c4cb fix b1 check 2019-06-02 00:39:02 -04:00
Peter Ferrie
d5ca73dc14 [PATCH] cut some bytes and cycles
also fix envelope bug
no change in zpage use

The optimizations include (but are not limited to)
+ Make loop code self-modified
+ Make 1.77MHz code self-modified
+ Make speed compare self-modified
+ Add code to reduce size of default ornament/sample load
2019-06-02 00:38:29 -04:00
Vince Weaver
f535a8c774 pt3: update optimization stats 2019-06-02 00:09:49 -04:00
Peter Ferrie
3c13c8e734 pt3: changes to register updates 2019-06-02 00:04:44 -04:00
Peter Ferrie
b1b5f18707 pt3: optimize end detection and branch sizes 2019-06-01 23:56:36 -04:00
Peter Ferrie
5d503052f8 pt3: move volume table code so no need for jsr 2019-06-01 23:50:38 -04:00
Peter Ferrie
c8cbed652c pt3: optimize load_sample and load_ornament 2019-06-01 23:46:14 -04:00
Peter Ferrie
c1f32e8cb3 optimize the volume table generation code 2019-06-01 01:45:59 -04:00
Peter Ferrie
0d3427b11d optimize 1.77MHz to 1MHz conversion
fixed a few minor bugs here from qkumba's version as it was
making the validation tests fail.  One was not zeroing out
mixer/envelope, and one was not saving some values properly
in the 1MHz case --- vmw
2019-06-01 01:35:55 -04:00
Peter Ferrie
390c560edc optimize pattern selection code 2019-06-01 00:45:33 -04:00
Peter Ferrie
0a89e8fcfc optimize effects code 2019-06-01 00:40:32 -04:00
Peter Ferrie
3c4d32eaba optimize envelope code 2019-06-01 00:36:11 -04:00
Peter Ferrie
d0d0e06f1c optimize amplitude code 2019-06-01 00:30:10 -04:00
Peter Ferrie
6f56cfc254 optimize note calculation 2019-06-01 00:26:39 -04:00
Peter Ferrie
dca5cb2e95 optimize version detection 2019-06-01 00:19:53 -04:00