-
Notifications
You must be signed in to change notification settings - Fork 0
/
notes.txt
116 lines (100 loc) · 7.94 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
BeebTracker
~~~~~~~~~~~
Infrastructure
- Better build system
- Multiple source files (demo, player, exo) for library reuse
VGM Pre-process & Player
- Track length in metadata for tune progress (SM) DONE
- Track speed in metadata for tracker update? (SM)
- Mapping from sound data to note notation for tracker (c#3f etc.) (SM) - DONE
- Ability to look ahead into sound data for upcoming tracker - POLISH
- Song name & author metadata <- in VGM file or embedded in demo code? (SM) DONE
- Support for looping tracks?
- Better extraction of frequency & beat data from tune for fx - GOOD ENOUGH! DONE
Scroll text FX
- Smaller font ~ 6x6 pixels per letter - DONE
- Store font as MODE 7 optimised data (2x3 pixels per byte) - DONE
- Rewrite for one pixel horizontal scrolling - (KC) - DONE
- Ability to set scroll text message - DONE
VU FX
- Rewrite to only update changed teletexels not redraw entirely each frame - DONE
- Any changes to FX in general? Maybe flash / wibble logo with white noise beats?
- Hook up to improved frequency & beat extraction - DONE
Tracker FX
- Write tracker display routine! (KC) - DONE (V1)
- Timer display routine (SM) DONE
Loader FX
- Static MODE 7 screen at minimum
- Ideally animated - perhaps MODE 7 vector routines?
- Ability to drive animation on events whilst loading - DONE
Intro FX
- Static MODE 7 screen at minimum
Outro FX
- Static MODE 7 screen at minimum - NOT NEEDED - BREAK TO EXIT
Main Loop
- State machine for demo logic - DONE (in code not separate state machine routine)
- Intro
- Menu - DONE (V1)
- Loading - DONE (V1)
- Tracker - DONE (V1)
- Outro - NOT NEEDED
- (Would be nice if menu could overlay running tracker?) - DONE
- Cleanly kill & restart player - DONE
- Loader for VGM files - DONE
- Where is metadata for files etc. stored? - SM: Stuff into RAW file I think? DONE
- (Compile time configuration from a file?) - N/A
Optimisation
- Optimise draw routines for raster - doesn't seem to be catching raster at the moment?
- Reduce code footprint, i.e. remove redundant code, refactor generalised routines for specific case
- Minimise data sizes, e.g. strip unused lines from MODE 7 screens
- Find convenient memory locations below PAGE for runtime buffers where possible (check AUG memory map)
Memory Reductions to maximise available song size
- Move 1k Exomiser buffer to language workspace &400 - &800 (save 4 pages) - DONE
- Relocate note tables after load to somewhere lower down, e.g. &A00, &B00, &C00 (save 3 pages)
- Crunch note tables to less than 3x 256 bytes?
- Reduce font file to 16 lines (640 bytes) + reduce menu overlay to 9 lines (360 bytes) (save 4 pages) - DONE
- Move all run-time variables to either ZP or somewhere lower down (< 1 page) - DONE TO &900
- Remove use of oswrch after boot (e.g. clear screen via VDU 12 in loading state) to free up VDU workspace at &300
- Rip out unused teletexel code & lookup tables - DONE
- Exomiser crunch the main screen (reduces to ~400 bytes) (save 2 pages) - not simple as menu overlay copies original screen data back :\
- General tidy up / refactoring of code to reduce duplication
Content
- Pick VGM music files for disk #1 (themed?)
- Assemble meta data
- Write scroll text for each file?
- Finalise team name :)
FONT
http://edit.tf/#0:LuFjB4sYOFiR4sYPFiR4sSOFiRogaLHiRAgaNMCRogQdMDQu3Rte_NJl4MOvBL35sG6FBl5NW6Nrw6sMnBK3UsOvBg1QtS_RA0cLGDxYwcLGDxYwcLEix4kaIGjRA0aIGmTAkyYEizYkLtVLXLwSt0aDK5Yt1bDlzSIGqDLwSqnSB6pauFLBA1QeOLAu42MMDRAsWMFixhg2IHixI4WIFmxI4WMHCxgsWMEDRAgQIC-3il49WHbmw5c0i3ck580mfmk0IUGbmkxc0qBmgQMUCBggIoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAigQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICOBZk0LMmBYs0LMmhYs0LFmBYs0INCjYsQINGhA40IEGhh4I6kevVzcquHDVwdaufHUjQKuHvUj14PXBRwdakeTVw4akWoloYaMCzJoWZMCzJoWZMCxYo2LNCDRoQaNCDQoYOFDBwoWPCWpFuVcHWpGhVcs2pHlwc3KDUgVcHSDKl1Jt2BNkQakGDtwJ4FnRB4QKFmRQsyIHDTQsWYFiRQseYFmTAsyKFmRBoQIECAmq7OsXrho58cHNyqWPcXNyq5uUDZAo5uUHN2gxIUGJAgwICaBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA
SCREEN
http://edit.tf/#0:NEUDD_vaf16X-vS_97Rf_X6n_3Q_-6H_3U1_6n6_U_-oGCA0TzNf-5j_WIP6xB_3MUH9Bq-99T3_qaoNT1jqepNT3ug7pDRJAh__kv_40__Gn_8lQf0Gpr_1Nf6r6_1Nf-r781Nf6BCgQIEFPfuzug0Lf0hIKGjD0QTMufLuyIN-ZB00ZUFDRh5b1y5BB69NG_k6DQtOzZ5QQt-Lnr8oEyDpoyoO-HTsy8uaDJlXLi_hYsWLFixYsWLFixYsWLFixYsWLFixYsWLFixYsWLFizogLtQbB0zYlXqxYsWLFixYsWLFm5YsWLFixYsWbgbR0zZF9SAv7WLFixYsWLFixYsWLFixYsWLFixYsWLFixYsWLFixYs7oC7Uj7a_2v9r_a_2v9r_a_2v9r_a_2v9r_a_2v9r_aoEBfUgLtSftr_a_2v9r_a_2v9r_a_2v9r_a_2v9r_a_2v9qgQF9SAu1J-2v9r_a_2v9r_a_2v9r_a_2v9r_a_2v9r_a_2qBAX1IC7Ul7a_2v9r_a_2v9r_a_2v9r_a_2v9r_a_2v9r_aoEBfUgLtSXtr_a_2v9r_a_2v9r_a_2v9r_a_2v9r_a_2v9qgQF9SAu9WLFixYsWLFixYsWLFixYsWLFixYsWLFixYsWLFixYs3IC7UIgYMWTNAR_hMd9mzI8AmO-zzEUATHfZ5iKAJjvs8xfUgLtQiBgxZM0BP-EWrVuUn_CLVq3MT-BFq1bmJoAi1atzF9SAu1CIGDFkzQEv4RatW5iX8ItWrcxL-EWrVuYl8CLVq3MX1IDo0IgYMWTNAgQIMd9nmQIEGNayzIECDHfZ5kCBBjvtUCBAgLoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAu1QBGDFkzQF2oRatW5i7UItWrcxdqEWrVuYu1CLVq3MX1IC7VAEYMWTNAXahFq1bmLtQi1atzF2oRatW5i7UItWrcxfUgLtUARgxZM0BdqEWrVuYu1CLVq3MXahFq1bmLtQi1atzF9SAurWLFixYsWLFqxYsWLFi1YsWLFixasWLFixYtWLFixYsToC5r40cLMCzQs0LGjRA0QLHiR4sUMHCjYsQfNnz58-fFnxAgLGv7Xk5VcNSDVwa9WHVggaoO_HAmyINSBB___Pn738_f0CA
LOADING
http://edit.tf/#0:Imv-xB-ToHixJqUtECzYs0bNjBBo2MHixJowPEDxIg1bUCAma972H9Yg6vEGpf1QINSBV--JUDZZt6oECh_0QfViDV-QICRr-sS_ViResXKliNAgVIEG9UsQJUCpUsSIEqpAuWLESZWgQIEFPfuzug0Lf0hIKGjD0QTMufLuyIN-ZB00ZUFDRh5b1y5BB69NG_k6DQtOzZ5QQt-Lnr8oEyDpoyoO-HTsy8uaDJlXLi_hYsWLFixYsWLFixYsWLFixYsWLFixYsWLFixYsWLFizogL9QbB0zYlXqxYsWLFixYsWLFm5YsWLFixYsWbgbR0zZF9SAv6WLFixYsWLFixYsWLFixYsWLFixYsWLFixYsWLFixYs7oC7Uj_1Nf-pr_QIECBAgQIECBAgQIECBAgQIECBBw0NP5fUgLtSf_U1_6mv9AgQIECBAgQIECBAgQIECDAw-amv_U1_l9SAu1J_9TX_qa_0CBAgQIECBAgQIECDhoaf9TX_qa_9TX-X1IC7Ul_1Nf-pr_wMECBAgQIEGBh81Nf-pr_1Nf-pr_1Nf5fUgLtSX_U1_6mv_U1_6GnDQ0_6mv_U1_6mv_U1_6mv_U1_l9SAu9WLFixYsWLFixYsWLFixYsWLFixYsWLFixYsWLFixYs3IAJ0HTizIsOogqUoMOWgQIECBAgQIECBAgQIECBAgLoC6AucL_fnz58-fPnz58-fPnz58-fPnz58-fPnz58-fPnz58-fPyAOdCMV1SlBhy0DFAtQQpkGQghTIMhBCmQZCCFMgyEEKYX1HDo0KyXVKUGHLQMkC1BCmQZCCFMgyEEKZBkIIUyDIQQpiBAgLoECBAgqIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAOdCM11SlBhy0DNAtQQpkGQghTIMhBCmQZCCFMgyEEKYX1HA50I0XVKUGHLQNEC1BCmQZCCFMgyEEKZBkIIUyDIQQphfUcDnQjVdUpQYctA1QLUEKZBkIIUyDIQQpkGQghTIMhBCmF9RwurXr169evXr169evXr169evXr169evXr169evXr169evToC5r-1cLMCzQs0LGjRA0QLHiR4sUMHCjYsQfNnz58-fFnxAgLGv7Xk5VcNSDVwa9WHVggaoO_HAmyINSBB___Pn738_f0CA
MEMORY MAP (MODEL B w/ DFS)
&0000 - Zero Page / &00 - &8F AVAILABLE / &90 - &9F ECONET wksp / &A0 - &FF NOT AVAILABLE
&0100 - Stack
&0200 - OS wksp - NOT AVAILABLE
&0300 - VDU & CFS wksp - NOT AVAILABLE (need to stop using VDU calls to free this)
&0400 - Lang wksp - AVAILABLE
&0500 - " - AVAILABLE
&0600 - " - AVAILABLE
&0700 - " - AVAILABLE
&0800 - Sound wksp - NOT AVAILABLE (maybe could disable OS sound processing somehow?)
&0900 - Output buffer - AVAILABLE
&0A00 - Input buffer - AVAILABLE
&0B00 - Soft key storage - AVAILABLE
&0C00 - Character definitions - AVAILABLE
&0D00 - NMI / Econet wksp - NOT AVAILABLE w/ disk access
&0E00 - DFS - Disk catalog - NOT AVAILABLE w/ disk access
&0F00 - DFS " - NOT AVAILABLE w/ disk access
&1000 - DFS - General workspace - NOT AVAILABLE w/ disk access
&1100 - DFS - Open file information - AVAILABLE (because we don't keep files open we just load them directly)
&1200 - DFS - 1st open file buffer - AVAILABLE
&1300 - DFS - 2nd open file buffer - AVAILABLE
&1400 - DFS - 3rd open file buffer - AVAILABLE
&1500 - DFS - 4th open file buffer - AVAILABLE
&1600 - DFS - 5th open file buffer - AVAILABLE
&1700 - DFS - Environment save area - AVAILABLE (because we don't switch file system)
&1800 - DFS - " - AVAILABLE
&1900 - PAGE
..
&7C00 - MODE 7 screen