plugins: changes for targets with small plugin buffer (Clipv1)
- only enable overlays for targets with very small plugin buffer (<= 0x10000 bytes, i.e. archos) - change the condition for rockboy to reflect exactly why it can be built or not - Some plugins need a large plugin buffer, only enable them if the buffer is big enough (sizes measured on Clipv1) - disable MIDI if we have 2MB (or less), we won't be able to load the instruments in the audio buffer - remove unusable lua overlay loader - sokoban code is bigger on clipv1 than on SH, assume it code is 20kB on anything but SH so it builds with buffer smaller than 192kB - reduce the Clipv1 plugin buffer size from 288kB to 96kb, disabling zxbox, chessbox, and fft zxbox and chessbox have overlays which run on archos, we just need to enable them on other targets. We'll also be able to run rockboy. fft won't run as it needs a large plugin buffer for greylib git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26141 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
dcbd8d74c6
commit
a01422c54b
6 changed files with 44 additions and 58 deletions
|
@ -67,22 +67,19 @@ iriverify.c
|
|||
|
||||
#ifndef SIMULATOR /* those plugins only run on hardware */
|
||||
|
||||
/* Overlay loaders */
|
||||
/* Overlays loaders */
|
||||
#if PLUGIN_BUFFER_SIZE <= 0x10000 && defined(HAVE_LCD_BITMAP)
|
||||
|
||||
#if (MEMORYSIZE <= 8)
|
||||
chessbox.c
|
||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||
#if CONFIG_KEYPAD != ONDIO_PAD /* not enough buttons for rockboy */
|
||||
rockboy.c
|
||||
#endif
|
||||
zxbox.c
|
||||
#endif
|
||||
|
||||
/* overlay loader for Goban */
|
||||
#if (PLUGIN_BUFFER_SIZE < 0x10000)
|
||||
lua.c
|
||||
zxbox.c
|
||||
chessbox.c
|
||||
goban.c
|
||||
pictureflow.c
|
||||
#endif
|
||||
|
||||
#endif /* PLUGIN_BUFFER_SIZE <= 0x10000 && HAVE_LCD_BITMAP */
|
||||
|
||||
|
||||
#if CONFIG_CODEC != SWCODEC
|
||||
|
|
|
@ -7,23 +7,32 @@ shortcuts
|
|||
clock
|
||||
#endif
|
||||
|
||||
#if (CONFIG_KEYPAD == RECORDER_PAD) || defined(HAVE_LCD_COLOR) \
|
||||
|| defined(IRIVER_H100_SERIES) || defined(IAUDIO_M5) /* FIXME */
|
||||
rockboy
|
||||
#endif
|
||||
|
||||
/* For all targets with a bitmap display */
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
|
||||
#if (CONFIG_KEYPAD != ONDIO_PAD) /* not enough buttons */ \
|
||||
&& (LCD_PIXELFORMAT != HORIZONTAL_PACKING) /* TODO */ \
|
||||
&& (LCD_PIXELFORMAT != VERTICAL_INTERLEAVED) /* TODO */ \
|
||||
&& (defined(HAVE_LCD_COLOR) || (LCD_HEIGHT == 64) && (LCD_DEPTH == 1) || \
|
||||
(LCD_HEIGHT == 128) && (LCD_DEPTH == 2)) \
|
||||
&& (PLUGIN_BUFFER_SIZE >= 0x60000 /* it needs a lot of RAM */ || \
|
||||
PLUGIN_BUFFER_SIZE <= 0x10000) /* but we can use overlays */
|
||||
rockboy
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TAGCACHE
|
||||
pictureflow
|
||||
#endif
|
||||
|
||||
#if (CONFIG_CODEC == SWCODEC)
|
||||
#if CONFIG_CODEC == SWCODEC && PLUGIN_BUFFER_SIZE > 0x20000
|
||||
fft
|
||||
#endif
|
||||
|
||||
#if PLUGIN_BUFFER_SIZE > 0x20000 || PLUGIN_BUFFER_SIZE <= 0x10000 /* overlay */
|
||||
chessbox
|
||||
#endif
|
||||
|
||||
fractals
|
||||
imageviewer
|
||||
sudoku
|
||||
|
@ -36,8 +45,10 @@ frotz
|
|||
#endif
|
||||
|
||||
#ifndef OLYMPUS_MROBE_500
|
||||
#if PLUGIN_BUFFER_SIZE > 0x40000 || PLUGIN_BUFFER_SIZE <= 0x10000 /* overlay */
|
||||
zxbox
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_LCD_BITMAP */
|
||||
|
||||
|
@ -56,7 +67,9 @@ doom
|
|||
/* For all the swcodec targets */
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
|
||||
#if MEMORYSIZE > 2 /* we need a lot of RAM for instruments */
|
||||
midi
|
||||
#endif
|
||||
|
||||
/* beatbox */
|
||||
#if defined(IRIVER_H300_SERIES) || defined(IRIVER_H100_SERIES)
|
||||
|
@ -71,6 +84,6 @@ mpegplayer
|
|||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
|
||||
/* Lua needs at least 160 KB to work in */
|
||||
#if (PLUGIN_BUFFER_SIZE >= 0x80000)
|
||||
#if PLUGIN_BUFFER_SIZE >= 0x80000
|
||||
lua
|
||||
#endif
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Overlay loader stub plugin for lua
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#include "plugin.h"
|
||||
|
||||
#if PLUGIN_BUFFER_SIZE >= 0x80000 && !defined(SIMULATOR)
|
||||
|
||||
#include "lib/overlay.h"
|
||||
|
||||
PLUGIN_HEADER
|
||||
|
||||
/* this is the plugin entry point */
|
||||
enum plugin_status plugin_start(const void* parameter)
|
||||
{
|
||||
return run_overlay(parameter, VIEWERS_DIR "/lua.ovl", "LuaViewer");
|
||||
}
|
||||
#endif
|
|
@ -230,7 +230,7 @@ void vid_update(int scanline)
|
|||
{
|
||||
register int cnt=0;
|
||||
int scanline_remapped;
|
||||
#if (LCD_HEIGHT == 64) && (LCD_DEPTH == 1) /* Archos */
|
||||
#if (LCD_HEIGHT == 64) && (LCD_DEPTH == 1) /* Archos, Clip, m200v4 */
|
||||
int balance = 0;
|
||||
if (fb.mode==1)
|
||||
scanline-=16;
|
||||
|
@ -306,7 +306,7 @@ void vid_update(int scanline)
|
|||
cnt ++;
|
||||
}
|
||||
rb->lcd_update_rect(0, (scanline/2) & ~7, LCD_WIDTH, 8);
|
||||
#elif (LCD_HEIGHT == 128) && (LCD_DEPTH == 2) /* iriver H1x0 */
|
||||
#elif (LCD_HEIGHT == 128) && (LCD_DEPTH == 2) /* iriver H1x0, Samsung YH920 */
|
||||
if (fb.mode==1)
|
||||
scanline-=16;
|
||||
else if (fb.mode==2)
|
||||
|
|
|
@ -58,10 +58,19 @@ PLUGIN_HEADER
|
|||
#define COLS (LCD_WIDTH/SOKOBAN_TILESIZE)
|
||||
#endif
|
||||
|
||||
/* Use either all but 16k of the plugin buffer for level data
|
||||
/* size of code+bss */
|
||||
#if CONFIG_CPU == SH7034
|
||||
#define CODE_SIZE 0x3000 /* 12k */
|
||||
#else
|
||||
#define CODE_SIZE 0x5000 /* 20k */
|
||||
#endif
|
||||
|
||||
#define CODE_AND_UNDO_SIZE (CODE_SIZE+0x1000) /* + 4k */
|
||||
|
||||
/* Use either all but code & undo of the plugin buffer for level data
|
||||
* or 128k, which ever is less */
|
||||
#if PLUGIN_BUFFER_SIZE - 0x4000 < 0x20000
|
||||
#define MAX_LEVEL_DATA (PLUGIN_BUFFER_SIZE - 0x4000)
|
||||
#if PLUGIN_BUFFER_SIZE - CODE_AND_UNDO_SIZE < 0x20000
|
||||
#define MAX_LEVEL_DATA (PLUGIN_BUFFER_SIZE - CODE_AND_UNDO_SIZE)
|
||||
#else
|
||||
#define MAX_LEVEL_DATA 0x20000
|
||||
#endif
|
||||
|
@ -69,11 +78,11 @@ PLUGIN_HEADER
|
|||
/* Number of levels for which to allocate buffer indexes */
|
||||
#define MAX_LEVELS MAX_LEVEL_DATA/70
|
||||
|
||||
/* Use 4k plus remaining plugin buffer (-12k for prog) for undo, up to 64k */
|
||||
#if PLUGIN_BUFFER_SIZE - MAX_LEVEL_DATA - 0x3000 > 0x10000
|
||||
/* Use remaining plugin buffer (- code prog) for undo, up to 64k */
|
||||
#if PLUGIN_BUFFER_SIZE - MAX_LEVEL_DATA - CODE_SIZE > 0x10000
|
||||
#define MAX_UNDOS 0x10000
|
||||
#else
|
||||
#define MAX_UNDOS (PLUGIN_BUFFER_SIZE - MAX_LEVEL_DATA - 0x3000)
|
||||
#define MAX_UNDOS (PLUGIN_BUFFER_SIZE - MAX_LEVEL_DATA - CODE_SIZE)
|
||||
#endif
|
||||
|
||||
/* Move/push definitions for undo */
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
#define CODEC_SIZE 0x48000 /* in IRAM */
|
||||
|
||||
/* The number of bytes reserved for loadable plugins */
|
||||
#define PLUGIN_BUFFER_SIZE 0x45000
|
||||
#define PLUGIN_BUFFER_SIZE 0x18000
|
||||
|
||||
#define AB_REPEAT_ENABLE 1
|
||||
|
||||
|
|
Loading…
Reference in a new issue