burn 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. data/README.md +59 -12
  2. data/lib/burn/cli.rb +25 -5
  3. data/lib/burn/generator/assembly_music.rb +1 -1
  4. data/lib/burn/tools/mac.tar.gz +0 -0
  5. data/lib/burn/tools/make_exec.sh +4 -0
  6. data/lib/burn/tools/other.tar.gz +0 -0
  7. data/lib/burn/tools/src.tar.gz +0 -0
  8. data/lib/burn/tools/win.tar.gz +0 -0
  9. data/lib/burn/tools/workspace_default.tar.gz +0 -0
  10. data/lib/burn/util/unpack.rb +11 -0
  11. data/lib/burn/util.rb +2 -1
  12. data/lib/burn/version.rb +1 -1
  13. data/lib/burn.rb +2 -0
  14. metadata +25 -157
  15. data/lib/burn/tools/mac/cc65/asminc/_file.inc +0 -27
  16. data/lib/burn/tools/mac/cc65/asminc/_heap.inc +0 -35
  17. data/lib/burn/tools/mac/cc65/asminc/apple2.inc +0 -64
  18. data/lib/burn/tools/mac/cc65/asminc/atari.inc +0 -1175
  19. data/lib/burn/tools/mac/cc65/asminc/atari.mac +0 -59
  20. data/lib/burn/tools/mac/cc65/asminc/atmos.inc +0 -110
  21. data/lib/burn/tools/mac/cc65/asminc/c128.inc +0 -214
  22. data/lib/burn/tools/mac/cc65/asminc/c16.inc +0 -9
  23. data/lib/burn/tools/mac/cc65/asminc/c64.inc +0 -212
  24. data/lib/burn/tools/mac/cc65/asminc/cbm.mac +0 -50
  25. data/lib/burn/tools/mac/cc65/asminc/cbm510.inc +0 -182
  26. data/lib/burn/tools/mac/cc65/asminc/cbm610.inc +0 -110
  27. data/lib/burn/tools/mac/cc65/asminc/cbm_filetype.inc +0 -34
  28. data/lib/burn/tools/mac/cc65/asminc/cpu.mac +0 -24
  29. data/lib/burn/tools/mac/cc65/asminc/ctype.inc +0 -29
  30. data/lib/burn/tools/mac/cc65/asminc/em-error.inc +0 -49
  31. data/lib/burn/tools/mac/cc65/asminc/em-kernel.inc +0 -106
  32. data/lib/burn/tools/mac/cc65/asminc/errno.inc +0 -36
  33. data/lib/burn/tools/mac/cc65/asminc/fcntl.inc +0 -21
  34. data/lib/burn/tools/mac/cc65/asminc/generic.mac +0 -55
  35. data/lib/burn/tools/mac/cc65/asminc/get_tv.inc +0 -22
  36. data/lib/burn/tools/mac/cc65/asminc/joy-error.inc +0 -44
  37. data/lib/burn/tools/mac/cc65/asminc/joy-kernel.inc +0 -85
  38. data/lib/burn/tools/mac/cc65/asminc/longbranch.mac +0 -88
  39. data/lib/burn/tools/mac/cc65/asminc/lynx.inc +0 -279
  40. data/lib/burn/tools/mac/cc65/asminc/modload.inc +0 -78
  41. data/lib/burn/tools/mac/cc65/asminc/mouse-kernel.inc +0 -180
  42. data/lib/burn/tools/mac/cc65/asminc/nes.inc +0 -93
  43. data/lib/burn/tools/mac/cc65/asminc/o65.inc +0 -150
  44. data/lib/burn/tools/mac/cc65/asminc/opcodes.inc +0 -509
  45. data/lib/burn/tools/mac/cc65/asminc/pet.inc +0 -54
  46. data/lib/burn/tools/mac/cc65/asminc/plus4.inc +0 -86
  47. data/lib/burn/tools/mac/cc65/asminc/ser-error.inc +0 -54
  48. data/lib/burn/tools/mac/cc65/asminc/ser-kernel.inc +0 -162
  49. data/lib/burn/tools/mac/cc65/asminc/signal.inc +0 -57
  50. data/lib/burn/tools/mac/cc65/asminc/smc.inc +0 -245
  51. data/lib/burn/tools/mac/cc65/asminc/stdio.inc +0 -70
  52. data/lib/burn/tools/mac/cc65/asminc/supervision.inc +0 -76
  53. data/lib/burn/tools/mac/cc65/asminc/tgi-error.inc +0 -52
  54. data/lib/burn/tools/mac/cc65/asminc/tgi-kernel.inc +0 -234
  55. data/lib/burn/tools/mac/cc65/asminc/tgi-vectorfont.inc +0 -70
  56. data/lib/burn/tools/mac/cc65/asminc/time.inc +0 -59
  57. data/lib/burn/tools/mac/cc65/asminc/utsname.inc +0 -46
  58. data/lib/burn/tools/mac/cc65/asminc/vic20.inc +0 -75
  59. data/lib/burn/tools/mac/cc65/asminc/zeropage.inc +0 -26
  60. data/lib/burn/tools/mac/cc65/bin/ca65 +0 -0
  61. data/lib/burn/tools/mac/cc65/bin/cc65 +0 -0
  62. data/lib/burn/tools/mac/cc65/bin/ld65 +0 -0
  63. data/lib/burn/tools/other/cc65/asminc/_file.inc +0 -27
  64. data/lib/burn/tools/other/cc65/asminc/_heap.inc +0 -35
  65. data/lib/burn/tools/other/cc65/asminc/apple2.inc +0 -64
  66. data/lib/burn/tools/other/cc65/asminc/atari.inc +0 -1175
  67. data/lib/burn/tools/other/cc65/asminc/atari.mac +0 -59
  68. data/lib/burn/tools/other/cc65/asminc/atmos.inc +0 -110
  69. data/lib/burn/tools/other/cc65/asminc/c128.inc +0 -214
  70. data/lib/burn/tools/other/cc65/asminc/c16.inc +0 -9
  71. data/lib/burn/tools/other/cc65/asminc/c64.inc +0 -212
  72. data/lib/burn/tools/other/cc65/asminc/cbm.mac +0 -50
  73. data/lib/burn/tools/other/cc65/asminc/cbm510.inc +0 -182
  74. data/lib/burn/tools/other/cc65/asminc/cbm610.inc +0 -110
  75. data/lib/burn/tools/other/cc65/asminc/cbm_filetype.inc +0 -34
  76. data/lib/burn/tools/other/cc65/asminc/cpu.mac +0 -24
  77. data/lib/burn/tools/other/cc65/asminc/ctype.inc +0 -29
  78. data/lib/burn/tools/other/cc65/asminc/em-error.inc +0 -49
  79. data/lib/burn/tools/other/cc65/asminc/em-kernel.inc +0 -106
  80. data/lib/burn/tools/other/cc65/asminc/errno.inc +0 -36
  81. data/lib/burn/tools/other/cc65/asminc/fcntl.inc +0 -21
  82. data/lib/burn/tools/other/cc65/asminc/generic.mac +0 -55
  83. data/lib/burn/tools/other/cc65/asminc/get_tv.inc +0 -22
  84. data/lib/burn/tools/other/cc65/asminc/joy-error.inc +0 -44
  85. data/lib/burn/tools/other/cc65/asminc/joy-kernel.inc +0 -85
  86. data/lib/burn/tools/other/cc65/asminc/longbranch.mac +0 -88
  87. data/lib/burn/tools/other/cc65/asminc/lynx.inc +0 -279
  88. data/lib/burn/tools/other/cc65/asminc/modload.inc +0 -78
  89. data/lib/burn/tools/other/cc65/asminc/mouse-kernel.inc +0 -180
  90. data/lib/burn/tools/other/cc65/asminc/nes.inc +0 -93
  91. data/lib/burn/tools/other/cc65/asminc/o65.inc +0 -150
  92. data/lib/burn/tools/other/cc65/asminc/opcodes.inc +0 -509
  93. data/lib/burn/tools/other/cc65/asminc/pet.inc +0 -54
  94. data/lib/burn/tools/other/cc65/asminc/plus4.inc +0 -86
  95. data/lib/burn/tools/other/cc65/asminc/ser-error.inc +0 -54
  96. data/lib/burn/tools/other/cc65/asminc/ser-kernel.inc +0 -162
  97. data/lib/burn/tools/other/cc65/asminc/signal.inc +0 -57
  98. data/lib/burn/tools/other/cc65/asminc/smc.inc +0 -245
  99. data/lib/burn/tools/other/cc65/asminc/stdio.inc +0 -70
  100. data/lib/burn/tools/other/cc65/asminc/supervision.inc +0 -76
  101. data/lib/burn/tools/other/cc65/asminc/tgi-error.inc +0 -52
  102. data/lib/burn/tools/other/cc65/asminc/tgi-kernel.inc +0 -234
  103. data/lib/burn/tools/other/cc65/asminc/tgi-vectorfont.inc +0 -70
  104. data/lib/burn/tools/other/cc65/asminc/time.inc +0 -59
  105. data/lib/burn/tools/other/cc65/asminc/utsname.inc +0 -46
  106. data/lib/burn/tools/other/cc65/asminc/vic20.inc +0 -75
  107. data/lib/burn/tools/other/cc65/asminc/zeropage.inc +0 -26
  108. data/lib/burn/tools/other/cc65/bin/ca65 +0 -0
  109. data/lib/burn/tools/other/cc65/bin/cc65 +0 -0
  110. data/lib/burn/tools/other/cc65/bin/ld65 +0 -0
  111. data/lib/burn/tools/win/cc65/asminc/_file.inc +0 -27
  112. data/lib/burn/tools/win/cc65/asminc/_heap.inc +0 -35
  113. data/lib/burn/tools/win/cc65/asminc/apple2.inc +0 -64
  114. data/lib/burn/tools/win/cc65/asminc/atari.inc +0 -1101
  115. data/lib/burn/tools/win/cc65/asminc/atmos.inc +0 -31
  116. data/lib/burn/tools/win/cc65/asminc/c128.inc +0 -213
  117. data/lib/burn/tools/win/cc65/asminc/c16.inc +0 -9
  118. data/lib/burn/tools/win/cc65/asminc/c64.inc +0 -212
  119. data/lib/burn/tools/win/cc65/asminc/cbm510.inc +0 -182
  120. data/lib/burn/tools/win/cc65/asminc/cbm610.inc +0 -110
  121. data/lib/burn/tools/win/cc65/asminc/ctype.inc +0 -29
  122. data/lib/burn/tools/win/cc65/asminc/em-error.inc +0 -44
  123. data/lib/burn/tools/win/cc65/asminc/em-kernel.inc +0 -100
  124. data/lib/burn/tools/win/cc65/asminc/errno.inc +0 -36
  125. data/lib/burn/tools/win/cc65/asminc/fcntl.inc +0 -21
  126. data/lib/burn/tools/win/cc65/asminc/get_tv.inc +0 -22
  127. data/lib/burn/tools/win/cc65/asminc/joy-error.inc +0 -44
  128. data/lib/burn/tools/win/cc65/asminc/joy-kernel.inc +0 -85
  129. data/lib/burn/tools/win/cc65/asminc/lynx.inc +0 -273
  130. data/lib/burn/tools/win/cc65/asminc/modload.inc +0 -78
  131. data/lib/burn/tools/win/cc65/asminc/mouse-kernel.inc +0 -179
  132. data/lib/burn/tools/win/cc65/asminc/nes.inc +0 -93
  133. data/lib/burn/tools/win/cc65/asminc/o65.inc +0 -135
  134. data/lib/burn/tools/win/cc65/asminc/pet.inc +0 -45
  135. data/lib/burn/tools/win/cc65/asminc/plus4.inc +0 -87
  136. data/lib/burn/tools/win/cc65/asminc/rs232.inc +0 -19
  137. data/lib/burn/tools/win/cc65/asminc/ser-error.inc +0 -50
  138. data/lib/burn/tools/win/cc65/asminc/ser-kernel.inc +0 -161
  139. data/lib/burn/tools/win/cc65/asminc/signal.inc +0 -57
  140. data/lib/burn/tools/win/cc65/asminc/stdio.inc +0 -70
  141. data/lib/burn/tools/win/cc65/asminc/supervision.inc +0 -76
  142. data/lib/burn/tools/win/cc65/asminc/tgi-error.inc +0 -48
  143. data/lib/burn/tools/win/cc65/asminc/tgi-kernel.inc +0 -183
  144. data/lib/burn/tools/win/cc65/asminc/tgi-mode.inc +0 -48
  145. data/lib/burn/tools/win/cc65/asminc/time.inc +0 -59
  146. data/lib/burn/tools/win/cc65/asminc/utsname.inc +0 -46
  147. data/lib/burn/tools/win/cc65/asminc/vic20.inc +0 -77
  148. data/lib/burn/tools/win/cc65/asminc/zeropage.inc +0 -22
  149. data/lib/burn/tools/win/cc65/bin/ca65.exe +0 -0
  150. data/lib/burn/tools/win/cc65/bin/cc65.exe +0 -0
  151. data/lib/burn/tools/win/cc65/bin/ld65.exe +0 -0
  152. data/lib/burn/workspace_default/asset/crt0.s +0 -260
  153. data/lib/burn/workspace_default/asset/famitone.s +0 -1031
  154. data/lib/burn/workspace_default/asset/mus_instruments.s +0 -50
  155. data/lib/burn/workspace_default/asset/music.s +0 -3
  156. data/lib/burn/workspace_default/asset/nes.cfg +0 -83
  157. data/lib/burn/workspace_default/asset/neslib.h +0 -213
  158. data/lib/burn/workspace_default/asset/neslib.s +0 -923
  159. data/lib/burn/workspace_default/asset/runtime.lib +0 -0
  160. data/lib/burn/workspace_default/asset/sounds.s +0 -143
  161. data/lib/burn/workspace_default/asset/test.h +0 -22
  162. data/lib/burn/workspace_default/asset/tileset.chr +0 -0
  163. data/lib/burn/workspace_default/release/js/emulator.html +0 -42
  164. data/lib/burn/workspace_default/release/js/js/dynamicaudio-89ba58da476270a9b630.min.js +0 -1
  165. data/lib/burn/workspace_default/release/js/js/jquery-1.4.2.min.js +0 -154
  166. data/lib/burn/workspace_default/release/js/js/jsnes-4e7a7260aa.js +0 -7149
  167. data/lib/burn/workspace_default/release/js/swf/dynamicaudio.swf +0 -0
  168. data/lib/burn/workspace_default/scripts/compile.bat +0 -30
  169. data/lib/burn/workspace_default/scripts/compile.sh +0 -30
@@ -1,923 +0,0 @@
1
- ;NES hardware-dependent functions by Shiru (shiru@mail.ru)
2
- ;Feel free to do anything you want with this code, consider it Public Domain
3
-
4
-
5
- .export _pal_all,_pal_bg,_pal_spr,_pal_col,_pal_clear,_pal_bright
6
- .export _ppu_off,_ppu_on_all,_ppu_on_bg,_ppu_on_spr,_ppu_mask
7
- .export _oam_clear,_oam_spr,_oam_meta_spr,_oam_hide_rest
8
- .export _ppu_waitnmi
9
- .export _unrle_vram
10
- .export _scroll
11
- .export _bank_spr,_bank_bg
12
- .export _vram_read,_vram_write
13
- .export _music_play,_music_stop,_music_pause
14
- .export _sfx_play
15
- .export _pad_poll,_pad_trigger,_pad_state
16
- .export _rand8,_rand16,_set_rand
17
- .export _set_vram_update,_vram_adr,_vram_put,_vram_fill,_vram_inc
18
- .export _memcpy,_memfill,_delay
19
-
20
-
21
-
22
- ;NMI handler
23
-
24
- nmi:
25
- pha
26
- txa
27
- pha
28
- tya
29
- pha
30
-
31
- lda <VRAMUPDATE
32
- bne @upd
33
- jmp @skipUpd
34
-
35
- @upd:
36
- ldx #$00
37
- stx PPU_OAM_ADDR
38
- lda #>OAM_BUF
39
- sta PPU_OAM_DMA
40
-
41
- lda #$3f
42
- sta PPU_ADDR
43
- stx PPU_ADDR
44
-
45
- .repeat 4,I
46
- ldy PAL_BUF+I
47
- lda (PAL_PTR),y
48
- sta PPU_DATA
49
- .endrepeat
50
-
51
- .repeat 7,J
52
- lda PPU_DATA ;skip background color
53
- .repeat 3,I
54
- ldy PAL_BUF+5+(J*4)+I
55
- lda (PAL_PTR),y
56
- sta PPU_DATA
57
- .endrepeat
58
- .endrepeat
59
-
60
- ldx <NAME_UPD_LEN
61
- beq @skipUpd
62
- ldy #0
63
- @updName:
64
- lda (NAME_UPD_ADR),y
65
- iny
66
- sta PPU_ADDR
67
- lda (NAME_UPD_ADR),y
68
- iny
69
- sta PPU_ADDR
70
- lda (NAME_UPD_ADR),y
71
- iny
72
- sta PPU_DATA
73
- dex
74
- bne @updName
75
-
76
- @skipUpd:
77
- lda #0
78
- sta PPU_ADDR
79
- sta PPU_ADDR
80
-
81
- lda <SCROLL_X
82
- sta PPU_SCROLL
83
- lda <SCROLL_Y
84
- sta PPU_SCROLL
85
- lda <PPU_CTRL_VAR
86
- sta PPU_CTRL
87
-
88
- inc <FRAMECNT1
89
- inc <FRAMECNT2
90
- lda <FRAMECNT2
91
- cmp #6
92
- bne @skipNtsc
93
- lda #0
94
- sta <FRAMECNT2
95
- @skipNtsc:
96
-
97
- jsr FamiToneUpdate
98
-
99
- pla
100
- tay
101
- pla
102
- tax
103
- pla
104
-
105
- irq:
106
- rti
107
-
108
-
109
-
110
- ;void __fastcall__ pal_all(const char *data);
111
-
112
- _pal_all:
113
- sta <PTR
114
- stx <PTR+1
115
- ldx #$00
116
- lda #$20
117
-
118
- pal_copy:
119
- sta <LEN
120
-
121
- ldy #$00
122
- @0:
123
- lda (PTR),y
124
- sta PAL_BUF,x
125
- inx
126
- iny
127
- dec <LEN
128
- bne @0
129
- rts
130
-
131
-
132
-
133
- ;void __fastcall__ pal_bg(const char *data);
134
-
135
- _pal_bg:
136
- sta <PTR
137
- stx <PTR+1
138
- ldx #$00
139
- lda #$10
140
- bne pal_copy ;bra
141
-
142
-
143
-
144
- ;void __fastcall__ pal_spr(const char *data);
145
-
146
- _pal_spr:
147
- sta <PTR
148
- stx <PTR+1
149
- ldx #$10
150
- txa
151
- bne pal_copy ;bra
152
-
153
-
154
-
155
- ;void __fastcall__ pal_col(unsigned char index,unsigned char color);
156
-
157
- _pal_col:
158
- sta <PTR
159
- jsr popa
160
- and #$1f
161
- tax
162
- lda <PTR
163
- sta PAL_BUF,x
164
- rts
165
-
166
-
167
-
168
- ;void __fastcall__ pal_clear(void);
169
-
170
- _pal_clear:
171
- lda #$0f
172
- ldx #0
173
- @1:
174
- sta PAL_BUF,x
175
- inx
176
- cpx #$20
177
- bne @1
178
- rts
179
-
180
-
181
-
182
- ;void __fastcall__ pal_bright(unsigned char bright);
183
-
184
- _pal_bright:
185
- asl a
186
- asl a
187
- asl a
188
- asl a
189
- sta <PAL_PTR
190
- asl <PAL_PTR
191
- rol <PAL_PTR+1
192
- asl <PAL_PTR
193
- rol <PAL_PTR+1
194
- lda <PAL_PTR
195
- clc
196
- adc #<palBrightTable
197
- sta <PAL_PTR
198
- lda <PAL_PTR+1
199
- and #$03
200
- adc #>palBrightTable
201
- sta <PAL_PTR+1
202
- rts
203
-
204
-
205
- ;void __fastcall__ ppu_off(void);
206
-
207
- _ppu_off:
208
- lda <PPU_MASK_VAR
209
- and #%00011000
210
- beq @1
211
- jsr _ppu_waitnmi
212
- @1:
213
- lda <PPU_MASK_VAR
214
- and #%11100111
215
- sta <PPU_MASK_VAR
216
- sta PPU_MASK
217
- lda #0
218
- sta PPU_CTRL
219
- rts
220
-
221
-
222
-
223
- ;void __fastcall__ ppu_on_all(void);
224
-
225
- _ppu_on_all:
226
- lda <PPU_MASK_VAR
227
- ora #%00011000
228
- ppu_onoff:
229
- sta <PPU_MASK_VAR
230
- sta PPU_MASK
231
- lda #$80
232
- sta PPU_CTRL
233
- jsr _ppu_waitnmi
234
- lda #$00
235
- sta PPU_ADDR
236
- sta PPU_ADDR
237
- lda <PPU_CTRL_VAR
238
- sta PPU_CTRL
239
- rts
240
-
241
-
242
-
243
- ;void __fastcall__ ppu_on_bg(void);
244
-
245
- _ppu_on_bg:
246
- lda <PPU_MASK_VAR
247
- ora #%00001000
248
- bne ppu_onoff ;bra
249
-
250
-
251
-
252
- ;void __fastcall__ ppu_on_spr(void);
253
-
254
- _ppu_on_spr:
255
- lda <PPU_MASK_VAR
256
- ora #%00010000
257
- bne ppu_onoff ;bra
258
-
259
-
260
-
261
- ;void __fastcall__ ppu_mask(unsigned char mask);
262
-
263
- _ppu_mask:
264
- sta <PPU_MASK_VAR
265
- sta PPU_MASK
266
- rts
267
-
268
-
269
-
270
- ;void __fastcall__ oam_clear(void);
271
-
272
- _oam_clear:
273
- ldx #0
274
- lda #$ff
275
- @1:
276
- sta OAM_BUF,x
277
- inx
278
- inx
279
- inx
280
- inx
281
- bne @1
282
- rts
283
-
284
-
285
-
286
- ;unsigned char __fastcall__ oam_spr(unsigned char x,unsigned char y,unsigned char chrnum,unsigned char attr,unsigned char sprid);
287
-
288
- _oam_spr:
289
- tax
290
-
291
- jsr popa
292
- sta OAM_BUF+2,x
293
- jsr popa
294
- sta OAM_BUF+1,x
295
- jsr popa
296
- sta OAM_BUF+0,x
297
- jsr popa
298
- sta OAM_BUF+3,x
299
-
300
- txa
301
- clc
302
- adc #4
303
- rts
304
-
305
-
306
-
307
- ;unsigned char __fastcall__ oam_meta_spr(unsigned char x,unsigned char y,unsigned char sprid,const unsigned char *data);
308
-
309
- _oam_meta_spr:
310
- sta <PTR
311
- stx <PTR+1
312
-
313
- jsr popa
314
- tax
315
-
316
- jsr popa
317
- sta <SCRY
318
- jsr popa
319
- sta <SCRX
320
-
321
- ldy #0
322
- @1:
323
- lda (PTR),y ;x offset
324
- cmp #$80
325
- bne @2
326
- txa
327
- rts
328
- @2:
329
- iny
330
- clc
331
- adc <SCRX
332
- sta OAM_BUF+3,x
333
- lda (PTR),y ;y offset
334
- iny
335
- clc
336
- adc <SCRY
337
- sta OAM_BUF+0,x
338
- lda (PTR),y ;tile
339
- iny
340
- sta OAM_BUF+1,x
341
- lda (PTR),y ;attribute
342
- iny
343
- sta OAM_BUF+2,x
344
- inx
345
- inx
346
- inx
347
- inx
348
- jmp @1
349
-
350
-
351
-
352
- ;void __fastcall__ oam_hide_rest(unsigned char sprid);
353
-
354
- _oam_hide_rest:
355
- tax
356
- lda #240
357
- @1:
358
- sta OAM_BUF,x
359
- inx
360
- inx
361
- inx
362
- inx
363
- bne @1
364
- rts
365
-
366
-
367
-
368
- ;void __fastcall__ ppu_waitnmi(void);
369
-
370
- _ppu_waitnmi:
371
- lda #1
372
- sta <VRAMUPDATE
373
- lda <FRAMECNT1
374
- @1:
375
- cmp <FRAMECNT1
376
- beq @1
377
- lda <NTSCMODE
378
- beq @3
379
- @2:
380
- lda <FRAMECNT2
381
- cmp #5
382
- beq @2
383
- @3:
384
- lda #0
385
- sta <VRAMUPDATE
386
- rts
387
-
388
-
389
-
390
- ;void __fastcall__ unrle_vram(const unsigned char *data,unsigned int vram);
391
-
392
- _unrle_vram:
393
- stx PPU_ADDR
394
- sta PPU_ADDR
395
-
396
- jsr popax
397
- sta <RLE_LOW
398
- stx <RLE_HIGH
399
-
400
- ldy #0
401
- jsr rle_byte
402
- sta <RLE_TAG
403
- @1:
404
- jsr rle_byte
405
- cmp <RLE_TAG
406
- beq @2
407
- sta PPU_DATA
408
- sta <RLE_BYTE
409
- bne @1
410
- @2:
411
- jsr rle_byte
412
- cmp #0
413
- beq @4
414
- tax
415
- lda <RLE_BYTE
416
- @3:
417
- sta PPU_DATA
418
- dex
419
- bne @3
420
- beq @1
421
- @4:
422
- rts
423
-
424
- rle_byte:
425
- lda (RLE_LOW),y
426
- inc <RLE_LOW
427
- bne @1
428
- inc <RLE_HIGH
429
- @1:
430
- rts
431
-
432
-
433
-
434
- ;void __fastcall__ scroll(unsigned int x,unsigned int y);
435
-
436
- _scroll:
437
- sta <TEMP
438
-
439
- txa
440
- bne @1
441
- lda <TEMP
442
- cmp #240
443
- bcs @1
444
- sta <SCROLL_Y
445
- lda #0
446
- sta <TEMP
447
- beq @2 ;bra
448
-
449
- @1:
450
- sec
451
- lda <TEMP
452
- sbc #240
453
- sta <SCROLL_Y
454
- lda #2
455
- sta <TEMP
456
- @2:
457
-
458
- jsr popax
459
- sta <SCROLL_X
460
- txa
461
- and #$01
462
- ora <TEMP
463
- sta <TEMP
464
- lda <PPU_CTRL_VAR
465
- and #$fc
466
- ora <TEMP
467
- sta <PPU_CTRL_VAR
468
- rts
469
-
470
-
471
-
472
- ;void __fastcall__ bank_spr(unsigned char n);
473
-
474
- _bank_spr:
475
- and #$01
476
- asl a
477
- asl a
478
- asl a
479
- sta <TEMP
480
- lda <PPU_CTRL_VAR
481
- and #%11110111
482
- ora <TEMP
483
- sta <PPU_CTRL_VAR
484
- rts
485
-
486
-
487
-
488
- ;void __fastcall__ bank_bg(unsigned char n);
489
-
490
- _bank_bg:
491
- and #$01
492
- asl a
493
- asl a
494
- asl a
495
- asl a
496
- sta <TEMP
497
- lda <PPU_CTRL_VAR
498
- and #%11101111
499
- ora <TEMP
500
- sta <PPU_CTRL_VAR
501
- rts
502
-
503
-
504
-
505
- ;void __fastcall__ vram_read(unsigned char *dst,unsigned int adr,unsigned int size);
506
-
507
- _vram_read:
508
- sta <TEMP
509
- stx <TEMP+1
510
-
511
- jsr popax
512
- stx PPU_ADDR
513
- sta PPU_ADDR
514
- lda PPU_DATA
515
-
516
- jsr popax
517
- sta <TEMP+2
518
- stx <TEMP+3
519
-
520
- ldy #0
521
- @1:
522
- lda PPU_DATA
523
- sta (TEMP+2),y
524
- inc <TEMP+2
525
- bne @2
526
- inc <TEMP+3
527
- @2:
528
- lda <TEMP
529
- bne @3
530
- dec <TEMP+1
531
- @3:
532
- dec <TEMP
533
- lda <TEMP
534
- ora <TEMP+1
535
- bne @1
536
-
537
- rts
538
-
539
-
540
-
541
- ;void __fastcall__ vram_write(unsigned char *src,unsigned int adr,unsigned int size);
542
-
543
- _vram_write:
544
- sta <TEMP
545
- stx <TEMP+1
546
-
547
- jsr popax
548
- stx PPU_ADDR
549
- sta PPU_ADDR
550
-
551
- jsr popax
552
- sta <TEMP+2
553
- stx <TEMP+3
554
-
555
- ldy #0
556
- @1:
557
- lda (TEMP+2),y
558
- sta PPU_DATA
559
- inc <TEMP+2
560
- bne @2
561
- inc <TEMP+3
562
- @2:
563
- lda <TEMP
564
- bne @3
565
- dec <TEMP+1
566
- @3:
567
- dec <TEMP
568
- lda <TEMP
569
- ora <TEMP+1
570
- bne @1
571
-
572
- rts
573
-
574
-
575
-
576
- ;void __fastcall__ music_play(const unsigned char *data);
577
-
578
- _music_play:
579
- stx <PTR
580
- tax
581
- ldy <PTR
582
- jmp FamiToneMusicStart
583
-
584
-
585
-
586
- ;void __fastcall__ music_stop(void);
587
-
588
- _music_stop=FamiToneMusicStop
589
-
590
-
591
-
592
- ;void __fastcall__ music_pause(unsigned char pause);
593
-
594
- _music_pause=FamiToneMusicPause
595
-
596
-
597
-
598
- ;void __fastcall__ sfx_play(unsigned char sound,unsigned char channel);
599
-
600
- _sfx_play:
601
- and #$03
602
- tax
603
- lda @sfxPriority,x
604
- tax
605
- jsr popa
606
- jmp FamiToneSfxStart
607
-
608
- @sfxPriority:
609
- .byte FT_SFX_CH0,FT_SFX_CH1,FT_SFX_CH2,FT_SFX_CH3
610
-
611
-
612
-
613
- ;unsigned char __fastcall__ pad_poll(unsigned char pad);
614
-
615
- _pad_poll:
616
- tay
617
- ldx #0
618
-
619
- @padPollPort:
620
- lda #1
621
- sta CTRL_PORT1
622
- lda #0
623
- sta CTRL_PORT1
624
- lda #8
625
- sta <TEMP
626
-
627
- @padPollLoop:
628
- lda CTRL_PORT1,y
629
- lsr a
630
- ror <PAD_BUF,x
631
- dec <TEMP
632
- bne @padPollLoop
633
-
634
- inx
635
- cpx #3
636
- bne @padPollPort
637
-
638
- lda <PAD_BUF
639
- cmp <PAD_BUF+1
640
- beq @done
641
- cmp <PAD_BUF+2
642
- beq @done
643
- lda <PAD_BUF+1
644
- @done:
645
- sta <PAD_STATE,y
646
- tax
647
- eor <PAD_STATEP,y
648
- and <PAD_STATE ,y
649
- sta <PAD_STATET,y
650
- txa
651
- sta <PAD_STATEP,y
652
-
653
- rts
654
-
655
-
656
-
657
- ;unsigned char __fastcall__ pad_trigger(unsigned char pad);
658
-
659
- _pad_trigger:
660
- pha
661
- jsr _pad_poll
662
- pla
663
- tax
664
- lda <PAD_STATET,x
665
- rts
666
-
667
-
668
-
669
- ;unsigned char __fastcall__ pad_state(unsigned char pad);
670
-
671
- _pad_state:
672
- tax
673
- lda <PAD_STATE,x
674
- rts
675
-
676
-
677
-
678
- ;unsigned char __fastcall__ rand8(void);
679
- ;Galois random generator, found somewhere
680
- ;out: A random number 0..255
681
-
682
- rand1:
683
- lda <RAND_SEED
684
- asl a
685
- bcc @1
686
- eor #$cf
687
- @1:
688
- sta <RAND_SEED
689
- rts
690
-
691
- rand2:
692
- lda <RAND_SEED+1
693
- asl a
694
- bcc @1
695
- eor #$d7
696
- @1:
697
- sta <RAND_SEED+1
698
- rts
699
-
700
- _rand8:
701
- jsr rand1
702
- jsr rand2
703
- adc <RAND_SEED
704
- rts
705
-
706
-
707
-
708
- ;unsigned int __fastcall__ rand16(void);
709
-
710
- _rand16:
711
- jsr rand1
712
- tax
713
- jsr rand2
714
- rts
715
-
716
-
717
- ;void __fastcall__ set_rand(unsigned char seed);
718
-
719
- _set_rand:
720
- sta <RAND_SEED
721
- stx <RAND_SEED+1
722
- rts
723
-
724
-
725
-
726
- ;void __fastcall__ set_vram_update(unsigned char len,unsigned char *buf);
727
-
728
- _set_vram_update:
729
- sta <NAME_UPD_ADR
730
- stx <NAME_UPD_ADR+1
731
- jsr popa
732
- sta <NAME_UPD_LEN
733
- rts
734
-
735
-
736
-
737
- ;void __fastcall__ vram_adr(unsigned int adr);
738
-
739
- _vram_adr:
740
- stx PPU_ADDR
741
- sta PPU_ADDR
742
- rts
743
-
744
-
745
-
746
- ;void __fastcall__ vram_put(unsigned char n);
747
-
748
- _vram_put:
749
- sta PPU_DATA
750
- rts
751
-
752
-
753
-
754
- ;void __fastcall__ vram_fill(unsigned char n,unsigned int len);
755
-
756
- _vram_fill:
757
- sta <LEN
758
- stx <LEN+1
759
- jsr popa
760
- ldx <LEN+1
761
- beq @2
762
- ldx #0
763
- @1:
764
- sta PPU_DATA
765
- dex
766
- bne @1
767
- dec <LEN+1
768
- bne @1
769
- @2:
770
- ldx <LEN
771
- beq @4
772
- @3:
773
- sta PPU_DATA
774
- dex
775
- bne @3
776
- @4:
777
- rts
778
-
779
-
780
-
781
- ;void __fastcall__ vram_inc(unsigned char n);
782
-
783
- _vram_inc:
784
- beq @1
785
- lda #$04
786
- @1:
787
- sta <TEMP
788
- lda <PPU_CTRL_VAR
789
- and #$fb
790
- ora <TEMP
791
- sta <PPU_CTRL_VAR
792
- sta PPU_CTRL
793
- rts
794
-
795
-
796
-
797
- ;void __fastcall__ memcpy(void *dst,void *src,unsigned int len);
798
-
799
- _memcpy:
800
- sta <LEN
801
- stx <LEN+1
802
- jsr popax
803
- sta <SRC
804
- stx <SRC+1
805
- jsr popax
806
- sta <DST
807
- stx <DST+1
808
-
809
- ldx #0
810
- @1:
811
- lda <LEN+1
812
- beq @2
813
- jsr @3
814
- dec <LEN+1
815
- inc <SRC+1
816
- inc <DST+1
817
- jmp @1
818
- @2:
819
- ldx <LEN
820
- beq @5
821
-
822
- @3:
823
- ldy #0
824
- @4:
825
- lda (SRC),y
826
- sta (DST),y
827
- iny
828
- dex
829
- bne @4
830
- @5:
831
- rts
832
-
833
-
834
-
835
- ;void __fastcall__ memfill(void *dst,unsigned char value,unsigned int len);
836
-
837
- _memfill:
838
- sta <LEN
839
- stx <LEN+1
840
- jsr popa
841
- sta <TEMP
842
- jsr popax
843
- sta <DST
844
- stx <DST+1
845
-
846
- ldx #0
847
- @1:
848
- lda <LEN+1
849
- beq @2
850
- jsr @3
851
- dec <LEN+1
852
- inc <DST+1
853
- jmp @1
854
- @2:
855
- ldx <LEN
856
- beq @5
857
-
858
- @3:
859
- ldy #0
860
- lda <TEMP
861
- @4:
862
- sta (DST),y
863
- iny
864
- dex
865
- bne @4
866
- @5:
867
- rts
868
-
869
-
870
-
871
- ;void __fastcall__ delay(unsigned char frames);
872
-
873
- _delay:
874
- tax
875
- @1:
876
- jsr _ppu_waitnmi
877
- dex
878
- bne @1
879
- rts
880
-
881
-
882
-
883
- palBrightTable:
884
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f ;0 black
885
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
886
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
887
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
888
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f ;1
889
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
890
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
891
- .byte $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0f,$0e,$0f
892
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f ;2
893
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
894
- .byte $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0f,$0e,$0f
895
- .byte $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1f,$1e,$0f
896
- .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f ;3
897
- .byte $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0f,$0e,$0f
898
- .byte $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1f,$1e,$0f
899
- .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$0f
900
- .byte $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0f,$0e,$0f ;4 normal
901
- .byte $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1f,$1e,$0f
902
- .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$0f
903
- .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$0f
904
- .byte $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1f,$1e,$2d ;5
905
- .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2d
906
- .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$2d
907
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$2d
908
- .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$00 ;6
909
- .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$00
910
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$00
911
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$00
912
- .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$10 ;7
913
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$10
914
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$10
915
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$10
916
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30 ;8 white
917
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30
918
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30
919
- .byte $30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30
920
-
921
-
922
-
923
- .include "famitone.s"