update ArduboyFX library, add programmers.txt

Update ArduboyFX to v 1.0.10

Add programmers.txt for Arduino IDE 2.x support
This commit is contained in:
Mr.Blinky 2023-04-22 17:45:54 +02:00
parent f343c67507
commit cf5067fe3a
3 changed files with 141 additions and 11 deletions

View File

@ -1,5 +1,5 @@
name=ArduboyFX
version=1.0.9
version=1.0.10
author=Mr.Blinky
maintainer=mstr.blinky@gmail.com
sentence=The Arduboy FX library.

View File

@ -250,6 +250,7 @@ void FX::seekData(uint24_t address)
void FX::seekDataArray(uint24_t address, uint8_t index, uint8_t offset, uint8_t elementSize)
{
#ifdef ARDUINO_ARCH_AVR
register uint24_t addr asm("r22") = address;
asm volatile
(
" mul %[index], %[size] \n"
@ -258,21 +259,20 @@ void FX::seekDataArray(uint24_t address, uint8_t index, uint8_t offset, uint8_t
" clr r21 \n" //use as alternative zero reg
" add r0, %[offset] \n"
" adc r1, r21 \n"
" add %A[address], r0 \n"
" adc %B[address], r1 \n"
" adc %C[address], r21 \n"
" add %A[addr], r0 \n"
" adc %B[addr], r1 \n"
" adc %C[addr], r21 \n"
" clr r1 \n"
" jmp %x4 \n" //seekData
:
: [addr] "+r" (addr)
: [index] "r" (index),
[offset] "r" (offset),
[size] "r" (elementSize),
[address] "r" (address),
"" (seekData)
: "r21"
);
#else
address += size ? index * size + offset : index * 256 + offset;
address += elementSize ? index * elementSize + offset : index * 256 + offset;
seekData(address);
#endif
}
@ -648,7 +648,7 @@ void FX::saveGameState(const uint8_t* gameState, size_t size) // ~152 bytes loca
"ld r24, z+ \n" //saveState
"call %x7 \n" //writeByte
"asr r23 \n" //shiftstate >>= 1
"brcc .+4 \n" //if (shiftstate == -1) size--
"brcc .+6 \n" //if (shiftstate == -1) size--
"subi r18, 1 \n"
"sbci r19, 0 \n"
"breq 6f \n" //size == 0
@ -1141,10 +1141,10 @@ uint24_t FX::drawFrame(uint24_t address) //~94 bytes
);
return address;
#else
seekData(address);
address += sizeof(f);
for(;;)
{
seekData(address);
address += sizeof(f);
f.x = readPendingUInt16();
f.y = readPendingUInt16();
f.bmp = readPendingUInt24();

View File

@ -0,0 +1,130 @@
avrisp.name=AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v1
avrisp.program.protocol=stk500v1
avrisp.program.tool=avrdude
avrisp.program.tool.default=avrdude
avrisp.program.extra_params=-P{serial.port}
avrispmkii.name=AVRISP mkII
avrispmkii.communication=usb
avrispmkii.protocol=stk500v2
avrispmkii.program.protocol=stk500v2
avrispmkii.program.tool=avrdude
avrispmkii.program.tool.default=avrdude
avrispmkii.program.extra_params=-Pusb
usbtinyisp.name=USBtinyISP
usbtinyisp.protocol=usbtiny
usbtinyisp.program.tool=avrdude
usbtinyisp.program.tool.default=avrdude
usbtinyisp.program.extra_params=
arduinoisp.name=ArduinoISP
arduinoisp.protocol=arduinoisp
arduinoisp.program.tool=avrdude
arduinoisp.program.tool.default=avrdude
arduinoisp.program.extra_params=
arduinoisporg.name=ArduinoISP.org
arduinoisporg.protocol=arduinoisporg
arduinoisporg.program.tool=avrdude
arduinoisporg.program.tool.default=avrdude
arduinoisporg.program.extra_params=
usbasp.name=USBasp
usbasp.communication=usb
usbasp.protocol=usbasp
usbasp.program.protocol=usbasp
usbasp.program.tool=avrdude
usbasp.program.tool.default=avrdude
usbasp.program.extra_params=-Pusb
parallel.name=Parallel Programmer
parallel.protocol=dapa
parallel.force=true
# parallel.delay=200
parallel.program.tool=avrdude
parallel.program.tool.default=avrdude
parallel.program.extra_params=-F
arduinoasisp.name=Arduino as ISP
arduinoasisp.communication=serial
arduinoasisp.protocol=stk500v1
arduinoasisp.speed=19200
arduinoasisp.program.protocol=stk500v1
arduinoasisp.program.speed=19200
arduinoasisp.program.tool=avrdude
arduinoasisp.program.tool.default=avrdude
arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed}
arduinoasispatmega32u4.name=Arduino as ISP (ATmega32U4)
arduinoasispatmega32u4.communication=serial
arduinoasispatmega32u4.protocol=arduino
arduinoasispatmega32u4.speed=19200
arduinoasispatmega32u4.program.protocol=arduino
arduinoasispatmega32u4.program.speed=19200
arduinoasispatmega32u4.program.tool=avrdude
arduinoasispatmega32u4.program.tool.default=avrdude
arduinoasispatmega32u4.program.extra_params=-P{serial.port} -b{program.speed}
usbGemma.name=Arduino Gemma
usbGemma.protocol=arduinogemma
usbGemma.program.tool=avrdude
usbGemma.program.tool.default=avrdude
usbGemma.program.extra_params=
usbGemma.config.path={runtime.platform.path}/bootloaders/gemma/avrdude.conf
## Notes about Dangerous Prototypes Bus Pirate as ISP
## Bus Pirate V3 need Firmware v5.10 or later
## Bus Pirate V4 need Firmware v6.3-r2151 or later
## Could happen that BP does not have enough current to power an Arduino board
## through the ICSP connector. In this case disconnect the +Vcc from ICSP connector
## and power Arduino board in the normal way.
buspirate.name=BusPirate as ISP
buspirate.communication=serial
buspirate.protocol=buspirate
buspirate.program.protocol=buspirate
buspirate.program.tool=avrdude
buspirate.program.tool.default=avrdude
buspirate.program.extra_params=-P{serial.port}
# STK500 firmware version v1 and v2 use different serial protocols.
# Using the 'stk500' protocol tells avrdude to try and autodetect the
# firmware version. If this leads to problems, we might need to add
# stk500v1 and stk500v2 entries to allow explicitly selecting the
# firmware version.
stk500.name=Atmel STK500 development board
stk500.communication=serial
stk500.protocol=stk500
stk500.program.protocol=stk500
stk500.program.tool=avrdude
stk500.program.tool.default=avrdude
stk500.program.extra_params=-P{serial.port}
jtag3isp.name=Atmel JTAGICE3 (ISP mode)
jtag3isp.communication=usb
jtag3isp.protocol=jtag3isp
jtag3isp.program.protocol=jtag3isp
jtag3isp.program.tool=avrdude
jtag3isp.program.tool.default=avrdude
jtag3isp.program.extra_params=
jtag3.name=Atmel JTAGICE3 (JTAG mode)
jtag3.communication=usb
jtag3.protocol=jtag3
jtag3.program.protocol=jtag3
jtag3.program.tool=avrdude
jtag3.program.tool.default=avrdude
# Set a bitclock of 0.1us (the fastest supported value). This should
# work regardless of the crystal used, since JTAG doesn't use the MCU
# clock but dictates its own clock.
jtag3.program.extra_params=-B0.1
atmel_ice.name=Atmel-ICE (AVR)
atmel_ice.communication=usb
atmel_ice.protocol=atmelice_isp
atmel_ice.program.protocol=atmelice_isp
atmel_ice.program.tool=avrdude
atmel_ice.program.tool.default=avrdude
atmel_ice.program.extra_params=-Pusb