update ArduboyFX library
This commit is contained in:
parent
8d5147ab86
commit
bee1697dab
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
/**** FX data header generated by fxdata-build.py tool version 1.01 ****/
|
/**** FX data header generated by fxdata-build.py tool version 1.07 ****/
|
||||||
|
|
||||||
using uint24_t = __uint24;
|
using uint24_t = __uint24;
|
||||||
|
|
||||||
|
@ -10,4 +10,10 @@ constexpr uint16_t FX_DATA_PAGE = 0xff65;
|
||||||
constexpr uint24_t FX_DATA_BYTES = 39470;
|
constexpr uint24_t FX_DATA_BYTES = 39470;
|
||||||
|
|
||||||
constexpr uint24_t mapGfx = 0x000000;
|
constexpr uint24_t mapGfx = 0x000000;
|
||||||
|
constexpr uint16_t mapGfxWidth = 816;
|
||||||
|
constexpr uint16_t mapGfxHeight = 368;
|
||||||
|
|
||||||
constexpr uint24_t whaleGfx = 0x0092A4;
|
constexpr uint24_t whaleGfx = 0x0092A4;
|
||||||
|
constexpr uint16_t whaleGfxWidth = 107;
|
||||||
|
constexpr uint16_t whaleGfxHeight = 69;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name=ArduboyFX
|
name=ArduboyFX
|
||||||
version=1.0.3
|
version=1.0.4
|
||||||
author=Mr.Blinky
|
author=Mr.Blinky
|
||||||
maintainer=mstr.blinky@gmail.com
|
maintainer=mstr.blinky@gmail.com
|
||||||
sentence=The Arduboy FX library.
|
sentence=The Arduboy FX library.
|
||||||
|
|
|
@ -412,6 +412,15 @@ void FX::writeSavePage(uint16_t page, uint8_t* buffer)
|
||||||
disable();
|
disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FX::waitWhileBusy()
|
||||||
|
{
|
||||||
|
enable();
|
||||||
|
writeByte(SFC_READSTATUS1);
|
||||||
|
while(readByte() & 1)
|
||||||
|
; // wait while BUSY status bit is set
|
||||||
|
disable();
|
||||||
|
}
|
||||||
|
|
||||||
void FX::drawBitmap(int16_t x, int16_t y, uint24_t address, uint8_t frame, uint8_t mode)
|
void FX::drawBitmap(int16_t x, int16_t y, uint24_t address, uint8_t frame, uint8_t mode)
|
||||||
{
|
{
|
||||||
// read bitmap dimensions from flash
|
// read bitmap dimensions from flash
|
||||||
|
@ -443,7 +452,7 @@ void FX::drawBitmap(int16_t x, int16_t y, uint24_t address, uint8_t frame, uint8
|
||||||
{
|
{
|
||||||
skiptop = -y & -8; // optimized -y / 8 * 8
|
skiptop = -y & -8; // optimized -y / 8 * 8
|
||||||
if (height - skiptop <= HEIGHT) renderheight = height - skiptop;
|
if (height - skiptop <= HEIGHT) renderheight = height - skiptop;
|
||||||
else renderheight = HEIGHT + (y & 7);
|
else renderheight = HEIGHT + (-y & 7);
|
||||||
skiptop >>= 3;//pixels to displayrows
|
skiptop >>= 3;//pixels to displayrows
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -504,11 +513,11 @@ void FX::drawBitmap(int16_t x, int16_t y, uint24_t address, uint8_t frame, uint8
|
||||||
" ror %[mode] \n" // carry to mode dbfExtraRow
|
" ror %[mode] \n" // carry to mode dbfExtraRow
|
||||||
" \n"
|
" \n"
|
||||||
" ldi %[rowmask], 0x02 \n" // rowmask = 0xFF >> (8 - (height & 7));
|
" ldi %[rowmask], 0x02 \n" // rowmask = 0xFF >> (8 - (height & 7));
|
||||||
" sbrc %[height], 1 \n"
|
" sbrc %[renderheight], 1 \n"
|
||||||
" ldi %[rowmask], 0x08 \n"
|
" ldi %[rowmask], 0x08 \n"
|
||||||
" sbrc %[height], 2 \n"
|
" sbrc %[renderheight], 2 \n"
|
||||||
" swap %[rowmask] \n"
|
" swap %[rowmask] \n"
|
||||||
" sbrs %[height], 0 \n"
|
" sbrs %[renderheight], 0 \n"
|
||||||
" lsr %[rowmask] \n"
|
" lsr %[rowmask] \n"
|
||||||
" dec %[rowmask] \n"
|
" dec %[rowmask] \n"
|
||||||
" breq .+4 \n"
|
" breq .+4 \n"
|
||||||
|
|
|
@ -26,7 +26,7 @@ constexpr uint8_t SFC_READSTATUS2 = 0x35;
|
||||||
constexpr uint8_t SFC_READSTATUS3 = 0x15;
|
constexpr uint8_t SFC_READSTATUS3 = 0x15;
|
||||||
constexpr uint8_t SFC_READ = 0x03;
|
constexpr uint8_t SFC_READ = 0x03;
|
||||||
constexpr uint8_t SFC_WRITE_ENABLE = 0x06;
|
constexpr uint8_t SFC_WRITE_ENABLE = 0x06;
|
||||||
constexpr uint8_t SFC_WRITE = 0x04;
|
constexpr uint8_t SFC_WRITE = 0x02;
|
||||||
constexpr uint8_t SFC_ERASE = 0x20;
|
constexpr uint8_t SFC_ERASE = 0x20;
|
||||||
constexpr uint8_t SFC_RELEASE_POWERDOWN = 0xAB;
|
constexpr uint8_t SFC_RELEASE_POWERDOWN = 0xAB;
|
||||||
constexpr uint8_t SFC_POWERDOWN = 0xB9;
|
constexpr uint8_t SFC_POWERDOWN = 0xB9;
|
||||||
|
@ -255,6 +255,8 @@ class FX
|
||||||
|
|
||||||
static void writeSavePage(uint16_t page, uint8_t* buffer);
|
static void writeSavePage(uint16_t page, uint8_t* buffer);
|
||||||
|
|
||||||
|
static void waitWhileBusy(); // wait for outstanding erase or write to finish
|
||||||
|
|
||||||
static void drawBitmap(int16_t x, int16_t y, uint24_t address, uint8_t frame, uint8_t mode) __attribute__((noinline));
|
static void drawBitmap(int16_t x, int16_t y, uint24_t address, uint8_t frame, uint8_t mode) __attribute__((noinline));
|
||||||
|
|
||||||
static void readDataArray(uint24_t address, uint8_t index, uint8_t offset, uint8_t elementSize, uint8_t* buffer, size_t length);
|
static void readDataArray(uint24_t address, uint8_t index, uint8_t offset, uint8_t elementSize, uint8_t* buffer, size_t length);
|
||||||
|
|
Loading…
Reference in New Issue