2015-05-13 18:47:23 +00:00
|
|
|
/*
|
|
|
|
* UAE - The Un*x Amiga Emulator
|
|
|
|
*
|
2015-10-11 14:23:51 +02:00
|
|
|
* Target specific stuff, Pandora version
|
2015-05-13 18:47:23 +00:00
|
|
|
*
|
|
|
|
* Copyright 1997 Bernd Schmidt
|
|
|
|
*/
|
|
|
|
|
2016-08-27 20:39:53 +02:00
|
|
|
#include <SDL.h>
|
|
|
|
|
2015-05-13 18:47:23 +00:00
|
|
|
#define TARGET_NAME "pandora"
|
|
|
|
|
2015-10-11 14:23:51 +02:00
|
|
|
#define NO_MAIN_IN_MAIN_C
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2015-10-11 14:23:51 +02:00
|
|
|
#define OPTIONSFILENAME "uaeconfig"
|
2015-05-13 18:47:23 +00:00
|
|
|
|
|
|
|
extern int emulating;
|
2016-04-24 09:45:29 +00:00
|
|
|
|
|
|
|
extern int z3_start_adr;
|
|
|
|
extern int rtg_start_adr;
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2016-08-27 20:39:53 +02:00
|
|
|
extern int currVSyncRate;
|
|
|
|
|
2015-05-13 18:47:23 +00:00
|
|
|
void run_gui(void);
|
2016-04-24 09:45:29 +00:00
|
|
|
void InGameMessage(const char *msg);
|
2016-08-27 20:39:53 +02:00
|
|
|
void wait_for_vsync(void);
|
2015-05-13 18:47:23 +00:00
|
|
|
|
|
|
|
void saveAdfDir(void);
|
2016-08-27 20:39:53 +02:00
|
|
|
bool SetVSyncRate(int hz);
|
2015-05-13 18:47:23 +00:00
|
|
|
void setCpuSpeed(void);
|
|
|
|
void resetCpuSpeed(void);
|
|
|
|
void update_display(struct uae_prefs *);
|
2016-04-24 09:45:29 +00:00
|
|
|
void black_screen_now(void);
|
2015-05-13 18:47:23 +00:00
|
|
|
void graphics_subshutdown (void);
|
|
|
|
|
|
|
|
void pandora_stop_sound(void);
|
|
|
|
|
2016-07-10 13:48:11 +02:00
|
|
|
void keyboard_settrans (void);
|
|
|
|
int translate_pandora_keys(int symbol, int *modifier);
|
|
|
|
void SimulateMouseOrJoy(int code, int keypressed);
|
2015-10-11 14:23:51 +02:00
|
|
|
|
2016-07-10 18:01:00 +02:00
|
|
|
#define REMAP_MOUSEBUTTON_LEFT -1
|
|
|
|
#define REMAP_MOUSEBUTTON_RIGHT -2
|
|
|
|
#define REMAP_JOYBUTTON_ONE -3
|
|
|
|
#define REMAP_JOYBUTTON_TWO -4
|
|
|
|
#define REMAP_JOY_UP -5
|
|
|
|
#define REMAP_JOY_DOWN -6
|
|
|
|
#define REMAP_JOY_LEFT -7
|
|
|
|
#define REMAP_JOY_RIGHT -8
|
|
|
|
#define REMAP_CD32_GREEN -9
|
|
|
|
#define REMAP_CD32_YELLOW -10
|
|
|
|
#define REMAP_CD32_PLAY -11
|
|
|
|
#define REMAP_CD32_FFW -12
|
|
|
|
#define REMAP_CD32_RWD -13
|
|
|
|
|
2015-10-11 14:23:51 +02:00
|
|
|
void reinit_amiga(void);
|
|
|
|
int count_HDs(struct uae_prefs *p);
|
2016-04-25 17:12:37 +00:00
|
|
|
extern void gui_force_rtarea_hdchange(void);
|
|
|
|
extern bool hardfile_testrdb (const TCHAR *filename);
|
2016-08-27 20:39:53 +02:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
void trace_begin (void);
|
|
|
|
void trace_end (void);
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
STATIC_INLINE size_t uae_tcslcpy(TCHAR *dst, const TCHAR *src, size_t size)
|
|
|
|
{
|
|
|
|
if (size == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
size_t src_len = _tcslen(src);
|
|
|
|
size_t cpy_len = src_len;
|
|
|
|
if (cpy_len >= size) {
|
|
|
|
cpy_len = size - 1;
|
|
|
|
}
|
|
|
|
memcpy(dst, src, cpy_len * sizeof(TCHAR));
|
|
|
|
dst[cpy_len] = _T('\0');
|
|
|
|
return src_len;
|
|
|
|
}
|
|
|
|
|
|
|
|
STATIC_INLINE size_t uae_strlcpy(char *dst, const char *src, size_t size)
|
|
|
|
{
|
|
|
|
if (size == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
size_t src_len = strlen(src);
|
|
|
|
size_t cpy_len = src_len;
|
|
|
|
if (cpy_len >= size) {
|
|
|
|
cpy_len = size - 1;
|
|
|
|
}
|
|
|
|
memcpy(dst, src, cpy_len);
|
|
|
|
dst[cpy_len] = '\0';
|
|
|
|
return src_len;
|
|
|
|
}
|
|
|
|
|
|
|
|
STATIC_INLINE int max(int x, int y)
|
|
|
|
{
|
|
|
|
return x > y ? x : y;
|
|
|
|
}
|