Talk:APU Length Counter: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
mNo edit summary
(Undo revision 14336 by 208.71.141.54 (talk))
 
(13 intermediate revisions by 8 users not shown)
Line 3: Line 3:
- As small note, on $4015 reads in my emulator, I have to put a flag there because the LC *should* be +1. Probably unrelated...
- As small note, on $4015 reads in my emulator, I have to put a flag there because the LC *should* be +1. Probably unrelated...
--[[User:Zepper|Zepper]] 01:28, 28 January 2011 (UTC)
--[[User:Zepper|Zepper]] 01:28, 28 January 2011 (UTC)
----
There's some structure to how these values are laid out, which is reinforced when you look at the order in which they appear in the PLA on the chip. Here's an index (in binary) to length map:
<pre>
11111 -> 30
11101 -> 28
11011 -> 26
11001 -> 24
10111 -> 22
10101 -> 20
10011 -> 18
10001 -> 16
01111 -> 14
01101 -> 12
01011 -> 10
01001 -> 8
00111 -> 6
00101 -> 4
00011 -> 2
00001 -> 254
11110 -> 32  (24 times 1 1/3)
11100 -> 16  (12 times 1 1/3)
11010 -> 72  (12 times 6)
11000 -> 192
10110 -> 96
10100 -> 48
10010 -> 24
10000 -> 12
01110 -> 26  (20 times 1 1/3)
01100 -> 14  (10 times 1.4)
01010 -> 60  (10 times 6)
01000 -> 160
00110 -> 80
00100 -> 40
00010 -> 20
00000 -> 10
</pre>
The least significant bit seems to be a "use linear length" flag, which makes the length the value of the remaining bits (with 0 being special). When not set, you get doubling note lengths based on 10 and 12, with some other values in there too (maybe handy for slight length alterations and triplets and the like - I'm not a professional musician :P). -[[User:Ulfalizer|Ulfalizer]] ([[User talk:Ulfalizer|talk]]) 18:34, 29 May 2013 (MDT)
: The interpretation I put on the page is probably even more likely... -[[User:Ulfalizer|Ulfalizer]] ([[User talk:Ulfalizer|talk]]) 20:51, 29 May 2013 (MDT)

Latest revision as of 09:29, 9 November 2017

Food for thought: the values in the length counter table on the die (bottom of the chip, just left of center), once incremented by 1, match the ones on this page. --Quietust 03:30, 23 January 2011 (UTC)

- As small note, on $4015 reads in my emulator, I have to put a flag there because the LC *should* be +1. Probably unrelated... --Zepper 01:28, 28 January 2011 (UTC)


There's some structure to how these values are laid out, which is reinforced when you look at the order in which they appear in the PLA on the chip. Here's an index (in binary) to length map:

11111 -> 30
11101 -> 28
11011 -> 26
11001 -> 24
10111 -> 22
10101 -> 20
10011 -> 18
10001 -> 16
01111 -> 14
01101 -> 12
01011 -> 10
01001 -> 8
00111 -> 6
00101 -> 4
00011 -> 2
00001 -> 254

11110 -> 32  (24 times 1 1/3)
11100 -> 16  (12 times 1 1/3)
11010 -> 72  (12 times 6)
11000 -> 192
10110 -> 96
10100 -> 48
10010 -> 24
10000 -> 12

01110 -> 26  (20 times 1 1/3)
01100 -> 14  (10 times 1.4)
01010 -> 60  (10 times 6)
01000 -> 160
00110 -> 80
00100 -> 40
00010 -> 20
00000 -> 10

The least significant bit seems to be a "use linear length" flag, which makes the length the value of the remaining bits (with 0 being special). When not set, you get doubling note lengths based on 10 and 12, with some other values in there too (maybe handy for slight length alterations and triplets and the like - I'm not a professional musician :P). -Ulfalizer (talk) 18:34, 29 May 2013 (MDT)

The interpretation I put on the page is probably even more likely... -Ulfalizer (talk) 20:51, 29 May 2013 (MDT)