Brought back several PANDORA specific items, using #ifdef PANDORA to enable them conditionally

This commit is contained in:
Dimitris Panokostas 2017-09-29 17:21:56 +02:00
parent 9d8dc58b19
commit 0646927e7a
10 changed files with 274 additions and 39 deletions

View file

@ -1876,7 +1876,7 @@ void init_row_map(void)
static void init_aspect_maps()
{
int i, maxl, h;
int i, h;
h = gfxvidinfo.drawbuffer.outheight;
@ -1889,15 +1889,18 @@ static void init_aspect_maps()
native2amiga_line_map = xmalloc(int, h);
maxl = (MAXVPOS + 1);
int maxl = (MAXVPOS + 1);
for (i = 0; i < h; i++)
native2amiga_line_map[i] = -1;
for (i = maxl - 1; i >= minfirstline; i--) {
int j;
for (j = i - minfirstline; j < h && native2amiga_line_map[j] == -1; j++)
for (int j = i - minfirstline; j < h && native2amiga_line_map[j] == -1; j++)
#ifdef PANDORA
native2amiga_line_map[j] = i + currprefs.pandora_vertical_offset;
#else
native2amiga_line_map[j] = i;
#endif
}
}
@ -2204,7 +2207,11 @@ static void center_image(void)
linetoscr_x_adjust_pixels = visible_left_border;
linetoscr_x_adjust_pixbytes = linetoscr_x_adjust_pixels * gfxvidinfo.drawbuffer.pixbytes;
#ifdef PANDORA
thisframe_y_adjust_real = minfirstline + currprefs.pandora_vertical_offset;
#else
thisframe_y_adjust_real = minfirstline;
#endif
max_ypos_thisframe = maxvpos_display - minfirstline + 1;
}

View file

@ -44,8 +44,8 @@ struct inputdevice_functions {
void (*unacquire)(int);
void (*read)(void);
int (*get_num)(void);
TCHAR* (*get_friendlyname)(int);
TCHAR* (*get_uniquename)(int);
const TCHAR* (*get_friendlyname)(int);
const TCHAR* (*get_uniquename)(int);
int (*get_widget_num)(int);
int (*get_widget_type)(int,int,TCHAR*,uae_u32*);
int (*get_widget_first)(int,int);
@ -183,9 +183,9 @@ extern void inputdevice_swap_compa_ports (struct uae_prefs *p, int portswap);
extern void inputdevice_config_change (void);
extern int inputdevice_config_change_test (void);
extern int inputdevice_get_device_index (int devnum);
extern TCHAR *inputdevice_get_device_name (int type, int devnum);
extern TCHAR *inputdevice_get_device_name2 (int devnum);
extern TCHAR *inputdevice_get_device_unique_name (int type, int devnum);
extern const TCHAR *inputdevice_get_device_name (int type, int devnum);
extern const TCHAR *inputdevice_get_device_name2 (int devnum);
extern const TCHAR *inputdevice_get_device_unique_name (int type, int devnum);
extern int inputdevice_get_device_status (int devnum);
extern void inputdevice_set_device_status (int devnum, int enabled);
extern int inputdevice_get_device_total (int type);

View file

@ -538,7 +538,7 @@ static void out_config (struct zfile *f, int id, int num, const TCHAR *s1, const
static bool write_config_head (struct zfile *f, int idnum, int devnum, const TCHAR *name, struct uae_input_device *id, struct inputdevice_functions *idf)
{
TCHAR *s = nullptr;
const TCHAR *s = nullptr;
TCHAR tmp2[CONFIG_BLEN];
if (idnum == GAMEPORT_INPUT_SETTINGS) {
@ -1126,8 +1126,8 @@ static int matchdevice(struct inputdevice_functions *inf, const TCHAR *confignam
for (int j = 0; j < 2; j++) {
bool fullmatch = j == 0;
for (int i = 0; i < inf->get_num(); i++) {
TCHAR *aname1 = inf->get_friendlyname(i);
TCHAR *aname2 = inf->get_uniquename(i);
const TCHAR *aname1 = inf->get_friendlyname(i);
const TCHAR *aname2 = inf->get_uniquename(i);
if (fullmatch && (!aname1 || !name))
continue;
if (aname2 && configname) {
@ -1174,8 +1174,8 @@ static int matchdevice(struct inputdevice_functions *inf, const TCHAR *confignam
bool fullmatch = j == 0;
match = -1;
for (int i = 0; i < inf->get_num(); i++) {
TCHAR *aname1 = inf->get_friendlyname(i);
TCHAR *aname2 = inf->get_uniquename(i);
const TCHAR *aname1 = inf->get_friendlyname(i);
const TCHAR *aname2 = inf->get_uniquename(i);
if (aname2 && configname) {
const TCHAR *bname2 = configname;
bool matched = false;
@ -1202,7 +1202,7 @@ static int matchdevice(struct inputdevice_functions *inf, const TCHAR *confignam
if (match < 0) {
// no match, try friendly names
for (int i = 0; i < inf->get_num(); i++) {
TCHAR *aname1 = inf->get_friendlyname(i);
const TCHAR *aname1 = inf->get_friendlyname(i);
if (aname1 && name) {
const TCHAR *bname1 = name;
if (aname1 && bname1 && !_tcscmp(aname1, bname1)) {
@ -1304,7 +1304,7 @@ void read_inputdevice_config (struct uae_prefs *pr, const TCHAR *option, TCHAR *
struct uae_input_device *id = nullptr;
const struct inputevent *ie;
int devnum, num, button, joystick, subnum, idnum, keynum, devtype;
const TCHAR *p;
const TCHAR *p;
TCHAR *p2, *custom;
struct temp_uids *tid = &temp_uid;
struct inputdevice_functions *idf = nullptr;
@ -2918,7 +2918,7 @@ static int switchdevice (struct uae_input_device *id, int num, bool buttonmode)
int newport = 0;
int newslot = -1;
int flags = 0;
TCHAR *name = nullptr, *fname = nullptr;
const TCHAR *name = nullptr, *fname = nullptr;
int otherbuttonpressed = 0;
int acc = input_acquired;
@ -2983,7 +2983,7 @@ static int switchdevice (struct uae_input_device *id, int num, bool buttonmode)
supermouse = i;
}
if (supermouse >= 0 && nummouse == 1) {
TCHAR *oldname = name;
const TCHAR *oldname = name;
name = idev[IDTYPE_MOUSE].get_uniquename (supermouse);
fname = idev[IDTYPE_MOUSE].get_friendlyname(supermouse);
issupermouse = true;
@ -4453,8 +4453,8 @@ static void matchdevices (struct inputdevice_functions *inf, struct uae_input_de
bool fullmatch = l == 0;
int match = -1;
for (i = 0; i < inf->get_num (); i++) {
TCHAR *aname1 = inf->get_friendlyname (i);
TCHAR *aname2 = inf->get_uniquename (i);
const TCHAR *aname1 = inf->get_friendlyname (i);
const TCHAR *aname2 = inf->get_uniquename (i);
for (j = 0; j < MAX_INPUT_DEVICES; j++) {
if (aname2 && uid[j].configname) {
bool matched = false;
@ -4862,7 +4862,11 @@ void inputdevice_default_prefs (struct uae_prefs *p)
inputdevice_init ();
p->input_selected_setting = GAMEPORT_INPUT_SETTINGS;
#ifdef PANDORA
p->input_joymouse_multiplier = 20;
#else
p->input_joymouse_multiplier = 2;
#endif
p->input_joymouse_deadzone = 33;
p->input_joystick_deadzone = 33;
p->input_joymouse_speed = 10;
@ -5212,17 +5216,17 @@ int inputdevice_get_device_total (int type)
return idev[type].get_num ();
}
/* returns the name of device */
TCHAR *inputdevice_get_device_name (int type, int devnum)
const TCHAR *inputdevice_get_device_name (int type, int devnum)
{
return idev[type].get_friendlyname (devnum);
}
/* returns the name of device */
TCHAR *inputdevice_get_device_name2 (int devnum)
const TCHAR *inputdevice_get_device_name2 (int devnum)
{
return getidf (devnum)->get_friendlyname (inputdevice_get_device_index (devnum));
}
/* returns machine readable name of device */
TCHAR *inputdevice_get_device_unique_name (int type, int devnum)
const TCHAR *inputdevice_get_device_unique_name (int type, int devnum)
{
return idev[type].get_uniquename (devnum);
}
@ -6096,8 +6100,8 @@ int inputdevice_joyport_config (struct uae_prefs *p, const TCHAR *value1, const
idf = &idev[dtype];
if (value1 && value2) {
for (int i = 0; i < idf->get_num(); i++) {
TCHAR *name1 = idf->get_friendlyname(i);
TCHAR *name2 = idf->get_uniquename(i);
const TCHAR *name1 = idf->get_friendlyname(i);
const TCHAR *name2 = idf->get_uniquename(i);
if (name2 && !_tcscmp(name2, value2) && name1 && !_tcscmp(name1, value1)) {
// config+friendlyname matched: don't bother to check for duplicates
matched = i;
@ -6108,7 +6112,7 @@ int inputdevice_joyport_config (struct uae_prefs *p, const TCHAR *value1, const
if (matched < 0 && value2) {
matched = -1;
for (int i = 0; i < idf->get_num (); i++) {
TCHAR *name2 = idf->get_uniquename (i);
const TCHAR *name2 = idf->get_uniquename (i);
if (name2 && !_tcscmp (name2, value2)) {
if (matched >= 0) {
matched = -2;
@ -6122,7 +6126,7 @@ int inputdevice_joyport_config (struct uae_prefs *p, const TCHAR *value1, const
if (matched < 0 && value1) {
matched = -1;
for (int i = 0; i < idf->get_num (); i++) {
TCHAR *name1 = idf->get_friendlyname (i);
const TCHAR *name1 = idf->get_friendlyname (i);
if (name1 && !_tcscmp (name1, value1)) {
if (matched >= 0) {
matched = -2;

View file

@ -231,6 +231,12 @@ void target_fixup_options(struct uae_prefs* p)
void target_default_options(struct uae_prefs* p, int type)
{
#ifdef PANDORA
p->pandora_vertical_offset = OFFSET_Y_ADJUST;
p->pandora_cpu_speed = defaultCpuSpeed;
p->pandora_hide_idle_led = 0;
p->pandora_tapDelay = 10;
#endif //PANDORA
p->customControls = false;
_tcscpy(p->custom_up, "");
_tcscpy(p->custom_down, "");
@ -273,6 +279,12 @@ void target_default_options(struct uae_prefs* p, int type)
void target_save_options(struct zfile* f, struct uae_prefs* p)
{
#ifdef PANDORA
cfgfile_write (f, "pandora.cpu_speed", "%d", p->pandora_cpu_speed);
cfgfile_write (f, "pandora.hide_idle_led", "%d", p->pandora_hide_idle_led);
cfgfile_write (f, "pandora.tap_delay", "%d", p->pandora_tapDelay);
cfgfile_write (f, "pandora.move_y", "%d", p->pandora_vertical_offset - OFFSET_Y_ADJUST);
#endif //PANDORA
cfgfile_write(f, _T("amiberry.kbd_led_num"), _T("%d"), p->kbd_led_num);
cfgfile_write(f, _T("amiberry.kbd_led_scr"), _T("%d"), p->kbd_led_scr);
cfgfile_write(f, _T("amiberry.scaling_method"), _T("%d"), p->scaling_method);
@ -310,6 +322,18 @@ TCHAR *target_expand_environment(const TCHAR *path, TCHAR *out, int maxlen)
int target_parse_option(struct uae_prefs* p, const char* option, const char* value)
{
#ifdef PANDORA
if (cfgfile_intval(option, value, "cpu_speed", &p->pandora_cpu_speed, 1)
return 1;
if (cfgfile_intval(option, value, "hide_idle_led", &p->pandora_hide_idle_led, 1)
return 1;
if (cfgfile_intval(option, value, "tap_delay", &p->pandora_tapDelay, 1)
return 1;
if (cfgfile_intval(option, value, "move_y", &p->pandora_vertical_offset, 1) {
p->pandora_vertical_offset += OFFSET_Y_ADJUST;
return 1;
}
#endif //PANDORA
if (cfgfile_intval(option, value, "kbd_led_num", &p->kbd_led_num, 1))
return 1;
if (cfgfile_intval(option, value, "kbd_led_scr", &p->kbd_led_scr, 1))
@ -684,6 +708,91 @@ void loadAdfDir(void)
}
}
int currVSyncRate = 0;
bool SetVSyncRate(int hz)
{
char cmd[64];
if(currVSyncRate != hz && (hz == 50 || hz == 60))
{
#ifdef PANDORA
snprintf((char*)cmd, 64, "sudo /usr/pandora/scripts/op_lcdrate.sh %d", hz);
system(cmd);
#endif
currVSyncRate = hz;
return true;
}
return false;
}
void setCpuSpeed()
{
#ifdef PANDORA
char speedCmd[128];
currprefs.pandora_cpu_speed = changed_prefs.pandora_cpu_speed;
if(currprefs.pandora_cpu_speed != lastCpuSpeed)
{
snprintf((char*)speedCmd, 128, "unset DISPLAY; echo y | sudo -n /usr/pandora/scripts/op_cpuspeed.sh %d", currprefs.pandora_cpu_speed);
system(speedCmd);
lastCpuSpeed = currprefs.pandora_cpu_speed;
cpuSpeedChanged = true;
}
#endif
if(changed_prefs.ntscmode != currprefs.ntscmode)
{
if(changed_prefs.ntscmode)
SetVSyncRate(60);
else
SetVSyncRate(50);
fix_apmodes(&changed_prefs);
}
}
int getDefaultCpuSpeed(void)
{
#ifdef PANDORA
int speed = 600;
FILE* f = fopen ("/etc/pandora/conf/cpu.conf", "rt");
if(f)
{
char line[128];
for(int i=0; i<6; ++i)
{
fscanf(f, "%s\n", &line);
if(strncmp(line, "default:", 8) == 0)
{
int value = 0;
sscanf(line, "default:%d", &value);
if(value > 500 && value < 1200)
{
speed = value;
}
}
}
fclose(f);
}
return speed;
#else
return 0;
#endif
}
void resetCpuSpeed(void)
{
#ifdef PANDORA
if(cpuSpeedChanged)
{
lastCpuSpeed = defaultCpuSpeed - 10;
currprefs.pandora_cpu_speed = changed_prefs.pandora_cpu_speed = defaultCpuSpeed;
setCpuSpeed();
}
#endif
}
void target_addtorecent(const TCHAR *name, int t)
{
}
@ -890,6 +999,22 @@ int handle_msgpump()
ioctl(0, KDSETLED, kbd_led_status);
ioctl(0, KDSKBLED, kbd_flags);
break;
#ifdef PANDORA
case SDLK_LCTRL: // Select key
inputdevice_add_inputcode (AKS_ENTERGUI, 1);
break;
case SDLK_LSHIFT: // Shift key
inputdevice_do_keyboard(AK_LSH, 1);
break;
case SDLK_RSHIFT: // Left shoulder button
case SDLK_RCTRL: // Right shoulder button
if(currprefs.input_tablet > TABLET_OFF) {
// Holding left or right shoulder button -> stylus does right mousebutton
doStylusRightClick = 1;
}
#endif
default:
if (currprefs.customControls)
{
@ -936,8 +1061,14 @@ int handle_msgpump()
case SDL_MOUSEBUTTONDOWN:
if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE)
{
if (rEvent.button.button == SDL_BUTTON_LEFT)
setmousebuttonstate(0, 0, 1);
if (rEvent.button.button == SDL_BUTTON_LEFT) {
if (currprefs.input_tablet > TABLET_OFF && !doStylusRightClick)
#ifdef PANDORA
delayed_mousebutton = currprefs.pandora_tapDelay << 1;
else
#endif //PANDORA
setmousebuttonstate(0, doStylusRightClick, 1);
}
if (rEvent.button.button == SDL_BUTTON_RIGHT)
setmousebuttonstate(0, 1, 1);
if (rEvent.button.button == SDL_BUTTON_MIDDLE)
@ -949,7 +1080,7 @@ int handle_msgpump()
if (currprefs.jports[0].id == JSEM_MICE || currprefs.jports[1].id == JSEM_MICE)
{
if (rEvent.button.button == SDL_BUTTON_LEFT)
setmousebuttonstate(0, 0, 0);
setmousebuttonstate(0, doStylusRightClick, 0);
if (rEvent.button.button == SDL_BUTTON_RIGHT)
setmousebuttonstate(0, 1, 0);
if (rEvent.button.button == SDL_BUTTON_MIDDLE)
@ -965,7 +1096,16 @@ int handle_msgpump()
int mouseScale = currprefs.input_joymouse_multiplier / 2;
int x = rEvent.motion.xrel;
int y = rEvent.motion.yrel;
#ifdef PANDORA
if(rEvent.motion.x == 0 && x > -4)
x = -4;
if(rEvent.motion.y == 0 && y > -4)
y = -4;
if(rEvent.motion.x == currprefs.gfx_size.width - 1 && x < 4)
x = 4;
if(rEvent.motion.y == currprefs.gfx_size.height - 1 && y < 4)
y = 4;
#endif //PANDORA
setmousestate(0, 0, x * mouseScale, 0);
setmousestate(0, 1, y * mouseScale, 0);
}

View file

@ -205,6 +205,15 @@ int check_prefs_changed_gfx()
currprefs.leds_on_screen = changed_prefs.leds_on_screen;
changed = 1;
}
#ifdef PANDORA
if (currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led ||
currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset)
{
currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led;
currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset;
changed = 1;
}
#endif //PANDORA
if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate)
{
currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate;

View file

@ -421,6 +421,9 @@ int gui_init()
void gui_exit()
{
#ifdef PANDORA
resetCpuSpeed();
#endif
sync();
amiberry_stop_sound();
saveAdfDir();
@ -507,6 +510,14 @@ void gui_display(int shortcut)
fpscounter_reset();
}
void moveVertical(int value)
{
changed_prefs.pandora_vertical_offset += value;
if(changed_prefs.pandora_vertical_offset < -16 + OFFSET_Y_ADJUST)
changed_prefs.pandora_vertical_offset = -16 + OFFSET_Y_ADJUST;
else if(changed_prefs.pandora_vertical_offset > 16 + OFFSET_Y_ADJUST)
changed_prefs.pandora_vertical_offset = 16 + OFFSET_Y_ADJUST;
}
void gui_led(int led, int on)
{

View file

@ -185,6 +185,9 @@ static void parse_clip(struct uae_prefs *p, xmlNode *node)
if (attr != NULL)
{
top = atoi((const char *)attr) / 2;
#ifdef PANDORA
p->pandora_vertical_offset = top - 41 + OFFSET_Y_ADJUST;
#endif //PANDORA
xmlFree(attr);
}
attr = xmlGetProp(curr_node, (const xmlChar *)_T("width"));

View file

@ -21,6 +21,12 @@ static gcn::Window* grpScalingMethod;
static gcn::UaeRadioButton* optAuto;
static gcn::UaeRadioButton* optNearest;
static gcn::UaeRadioButton* optLinear;
#ifdef PANDORA
static gcn::Window *grpAmigaScreen;
static gcn::Label* lblVertPos;
static gcn::Label* lblVertPosInfo;
static gcn::Slider* sldVertPos;
#endif // PANDORA
class AmigaScreenActionListener : public gcn::ActionListener
{
@ -31,6 +37,16 @@ public:
{
changed_prefs.gfx_framerate = chkFrameskip->isSelected() ? 1 : 0;
}
#ifdef PANDORA
else if (actionEvent.getSource() == sldVertPos)
{
if(changed_prefs.pandora_vertical_offset != (int)(sldVertPos->getValue()) + OFFSET_Y_ADJUST)
{
changed_prefs.pandora_vertical_offset = (int)(sldVertPos->getValue()) + OFFSET_Y_ADJUST;
RefreshPanelDisplay();
}
}
#endif // PANDORA
}
};
@ -82,9 +98,37 @@ void InitPanelDisplay(const struct _ConfigCategory& category)
posY += DISTANCE_BORDER + grpScalingMethod->getHeight() + DISTANCE_NEXT_Y;
#ifdef PANDORA
lblVertPos = new gcn::Label("Vert. offset:");
lblVertPos->setSize(150, LABEL_HEIGHT);
lblVertPos->setAlignment(gcn::Graphics::RIGHT);
sldVertPos = new gcn::Slider(-16, 16);
sldVertPos->setSize(160, SLIDER_HEIGHT);
sldVertPos->setBaseColor(gui_baseCol);
sldVertPos->setMarkerLength(20);
sldVertPos->setStepLength(1);
sldVertPos->setId("sldVertPos");
sldVertPos->addActionListener(amigaScreenActionListener);
lblVertPosInfo = new gcn::Label("000");
#endif //PANDORA
chkFrameskip = new gcn::UaeCheckBox("Frameskip");
chkFrameskip->addActionListener(amigaScreenActionListener);
#ifdef PANDORA
grpAmigaScreen = new gcn::Window("Amiga Screen");
grpAmigaScreen->setPosition(DISTANCE_BORDER, DISTANCE_BORDER);
grpAmigaScreen->add(lblVertPos, 0, posY);
grpAmigaScreen->add(sldVertPos, 160, posY);
grpAmigaScreen->add(lblVertPosInfo, 160 + sldVertPos->getWidth() + 12, posY);
posY += sldVertPos->getHeight() + DISTANCE_NEXT_Y;
grpAmigaScreen->setMovable(false);
grpAmigaScreen->setSize(460, posY + DISTANCE_BORDER);
grpAmigaScreen->setBaseColor(gui_baseCol);
category.panel->add(grpAmigaScreen);
#endif //PANDORA
category.panel->add(chkFrameskip, DISTANCE_BORDER, posY);
RefreshPanelDisplay();
@ -95,7 +139,12 @@ void ExitPanelDisplay()
{
delete chkFrameskip;
delete amigaScreenActionListener;
#ifdef PANDORA
delete lblVertPos;
delete sldVertPos;
delete lblVertPosInfo;
delete grpAmigaScreen;
#endif //PANDORA
delete optAuto;
delete optNearest;
delete optLinear;
@ -114,6 +163,11 @@ void RefreshPanelDisplay()
optNearest->setSelected(true);
else if (changed_prefs.scaling_method == 1)
optLinear->setSelected(true);
#ifdef PANDORA
sldVertPos->setValue(changed_prefs.pandora_vertical_offset - OFFSET_Y_ADJUST);
snprintf(tmp, 32, "%d", changed_prefs.pandora_vertical_offset - OFFSET_Y_ADJUST);
lblVertPosInfo->setCaption(tmp);
#endif //PANDORA
}
bool HelpPanelDisplay(std::vector<std::string> &helptext)
@ -124,6 +178,11 @@ bool HelpPanelDisplay(std::vector<std::string> &helptext)
helptext.push_back("and crisp image, but it may come with some distortion if your resolution is not an exact multiple.");
helptext.push_back("\"Linear\" will give you a smoother scaling but some people might find it a bit blurry.");
helptext.push_back("");
#ifdef PANDORA
helptext.push_back("With \"Vert. offset\" you can adjust the position of the first drawn line of the Amiga screen. You can also change");
helptext.push_back("this during emulation with left and right shoulder button and dpad up/down.");
helptext.push_back("");
#endif //PANDORA
helptext.push_back("When you activate \"Frameskip\", only every second frame is drawn. This will improve performance and some");
helptext.push_back("more games are playable.");
return true;

View file

@ -153,16 +153,16 @@ void InitPanelMisc(const struct _ConfigCategory& category)
#ifdef PANDORA
lblPandoraSpeed = new gcn::Label("Pandora Speed:");
lblPandoraSpeed->setSize(110, LABEL_HEIGHT);
lblPandoraSpeed->setAlignment(gcn::Graphics::RIGHT);
sldPandoraSpeed = new gcn::Slider(500, 1260);
sldPandoraSpeed->setSize(200, SLIDER_HEIGHT);
sldPandoraSpeed->setBaseColor(gui_baseCol);
lblPandoraSpeed->setSize(110, LABEL_HEIGHT);
lblPandoraSpeed->setAlignment(gcn::Graphics::RIGHT);
sldPandoraSpeed = new gcn::Slider(500, 1260);
sldPandoraSpeed->setSize(200, SLIDER_HEIGHT);
sldPandoraSpeed->setBaseColor(gui_baseCol);
sldPandoraSpeed->setMarkerLength(20);
sldPandoraSpeed->setStepLength(20);
sldPandoraSpeed->setId("PandSpeed");
sldPandoraSpeed->addActionListener(miscActionListener);
lblPandoraSpeedInfo = new gcn::Label("1000 MHz");
sldPandoraSpeed->addActionListener(miscActionListener);
lblPandoraSpeedInfo = new gcn::Label("1000 MHz");
#endif
chkBSDSocket = new gcn::UaeCheckBox("bsdsocket.library");
chkBSDSocket->setId("BSDSocket");

View file

@ -18,6 +18,8 @@ STATIC_INLINE FILE *uae_tfopen(const char *path, const char *mode)
return fopen(path, mode);
}
#define OFFSET_Y_ADJUST 15
extern int emulating;
extern uae_u8* natmem_offset;