Hallo!
Ja, das ist erst mein zwiter artikel, ich bin da noch nicht so gut....
zu 1:
Der werttebereich der eingelesen wird, wird von dir definiert. Du kannst den bereich einstellen. Damit bestimmst du quasi die Auflösung deines Joysticks. Eingestellt wird das im Quellcode deines Windows Programms. Steht übrigens auch im Artikel.

zu 1.1:
Alles was du brauchst ist
do
Input "" , X
Input "" , Y
loop
Die restlichen Rechenoperationen sind nur für die soundausgabe.

zu 2:
Ja, buttons kannst du auch abfragen (auch coolie-hats, schubregler, einfach alles...). Die Buttons heißen immer gleich von Button 0 hoch bis zur anzahl der buttons deines joysticks.
das ist der code für 8 buttons:
Code:
	Dim buttons As Byte() = state.GetButtons()
	Dim button As Integer = 0
	For i = 0 To 7
		If buttons(i) = 128 Then
			label1.Text="Button "+i.ToString()+" was pressed!"
		End If
	Next
zu 3:
Den Bootloader brauchst du nur um deinen Mikrocontroller über RS232 zu programmieren. Aber wahrscheinlich hast du ja ein ISP Programmierkabel, damit geht das natürlich auch.
Vielleicht verstehst du den ganzen artikel falsch...? Du brauchst SharpDevelop um ein Programm für Windows zu schreiben mit dem du deinen Joystick abfragst und dann die Ergebnisse per RS232 an deinen Microcontroller schickst.
Dein µC kann nicht ohne Hilfe einfach einen USB Joystick abfragen. Das musst du schon mit Windows machen.

Hoffe geholfen zu haben,
Viele Grüße,
William