From f47eba7d7d4c6a1d9501e027b63bbab04bb7d417 Mon Sep 17 00:00:00 2001 From: Takamichi Horikawa Date: Thu, 30 Mar 2017 23:31:39 +0000 Subject: add NEON optimization --- fmdsp/fmdsp-vramlookup-c.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 fmdsp/fmdsp-vramlookup-c.c (limited to 'fmdsp/fmdsp-vramlookup-c.c') diff --git a/fmdsp/fmdsp-vramlookup-c.c b/fmdsp/fmdsp-vramlookup-c.c new file mode 100644 index 0000000..f900c8d --- /dev/null +++ b/fmdsp/fmdsp-vramlookup-c.c @@ -0,0 +1,14 @@ +#include "fmdsp/fmdsp.h" + +void fmdsp_vramlookup_c(uint8_t *vram32, const uint8_t *vram, const uint8_t *palette, int stride) { + for (int y = 0; y < PC98_H; y++) { + for (int x = 0; x < PC98_W; x++) { + uint8_t r = palette[vram[y*PC98_W+x]*3+0]; + uint8_t g = palette[vram[y*PC98_W+x]*3+1]; + uint8_t b = palette[vram[y*PC98_W+x]*3+2]; + uint32_t data = (((uint32_t)r)<<16) | (((uint32_t)g)<<8) | ((uint32_t)b); + uint32_t *row = (uint32_t *)(vram32 + y*stride); + row[x] = data; + } + } +} -- cgit v1.2.3