diff --git a/Makefile b/Makefile index 542a40c4..13e1546e 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ PANDORA=1 #GEN_PROFILE=1 #USE_PROFILE=1 -SDL_CFLAGS = `sdl-config --cflags` +SDL_CFLAGS = `sdl2-config --cflags` DEFS += `xml2-config --cflags` DEFS += -DCPU_arm -DARMV6_ASSEMBLY -DPANDORA -DPICASSO96 @@ -37,12 +37,12 @@ DEFS += -DROM_PATH_PREFIX=\"./\" -DDATA_PREFIX=\"./data/\" -DSAVE_PREFIX=\"./sav DEFS += -DUSE_SDL MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -MORE_CFLAGS += -Isrc -Isrc/od-pandora -Isrc/td-sdl -Isrc/include +MORE_CFLAGS += -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include MORE_CFLAGS += -Wno-unused -Wno-format -DGCCCONSTFUNC="__attribute__((const))" MORE_CFLAGS += -fexceptions -fpermissive -LDFLAGS += -lSDL -lpthread -lm -lz -lSDL_image -lpng -lrt -lxml2 -lFLAC -lmpg123 -ldl -LDFLAGS += -lSDL_ttf -lguichan_sdl -lguichan -lbcm_host -L/opt/vc/lib +LDFLAGS += -lSDL2 -lpthread -lm -lz -lSDL2_image -lpng -lrt -lxml2 -lFLAC -lmpg123 -ldl +LDFLAGS += -lSDL2_ttf -lguisan -lbcm_host -L/opt/vc/lib -L/usr/local/lib -Lsrc/guisan ifndef DEBUG MORE_CFLAGS += -Ofast -fomit-frame-pointer @@ -148,56 +148,56 @@ OBJS = \ src/archivers/lzx/unlzx.o \ src/archivers/wrp/warp.o \ src/archivers/zip/unzip.o \ - src/md-pandora/support.o \ - src/od-pandora/bsdsocket_host.o \ - src/od-pandora/cda_play.o \ - src/od-pandora/charset.o \ - src/od-pandora/fsdb_host.o \ - src/od-pandora/hardfile_pandora.o \ - src/od-pandora/keyboard.o \ - src/od-pandora/mp3decoder.o \ - src/od-pandora/writelog.o \ - src/od-pandora/pandora.o \ - src/od-pandora/pandora_filesys.o \ - src/od-pandora/pandora_input.o \ - src/od-pandora/pandora_gui.o \ - src/od-pandora/pandora_rp9.o \ - src/od-pandora/pandora_mem.o \ - src/od-pandora/sigsegv_handler.o \ - src/od-pandora/menu/menu_config.o \ - src/sd-sdl/sound_sdl_new.o \ - src/od-pandora/gui/UaeRadioButton.o \ - src/od-pandora/gui/UaeDropDown.o \ - src/od-pandora/gui/UaeCheckBox.o \ - src/od-pandora/gui/UaeListBox.o \ - src/od-pandora/gui/InGameMessage.o \ - src/od-pandora/gui/SelectorEntry.o \ - src/od-pandora/gui/ShowMessage.o \ - src/od-pandora/gui/SelectFolder.o \ - src/od-pandora/gui/SelectFile.o \ - src/od-pandora/gui/CreateFilesysHardfile.o \ - src/od-pandora/gui/EditFilesysVirtual.o \ - src/od-pandora/gui/EditFilesysHardfile.o \ - src/od-pandora/gui/PanelPaths.o \ - src/od-pandora/gui/PanelConfig.o \ - src/od-pandora/gui/PanelCPU.o \ - src/od-pandora/gui/PanelChipset.o \ - src/od-pandora/gui/PanelROM.o \ - src/od-pandora/gui/PanelRAM.o \ - src/od-pandora/gui/PanelFloppy.o \ - src/od-pandora/gui/PanelHD.o \ - src/od-pandora/gui/PanelDisplay.o \ - src/od-pandora/gui/PanelSound.o \ - src/od-pandora/gui/PanelInput.o \ - src/od-pandora/gui/PanelMisc.o \ - src/od-pandora/gui/PanelSavestate.o \ - src/od-pandora/gui/main_window.o \ - src/od-pandora/gui/Navigation.o + src/machdep/support.o \ + src/osdep/bsdsocket_host.o \ + src/osdep/cda_play.o \ + src/osdep/charset.o \ + src/osdep/fsdb_host.o \ + src/osdep/hardfile_pandora.o \ + src/osdep/keyboard.o \ + src/osdep/mp3decoder.o \ + src/osdep/writelog.o \ + src/osdep/pandora.o \ + src/osdep/pandora_filesys.o \ + src/osdep/pandora_input.o \ + src/osdep/pandora_gfx.o \ + src/osdep/pandora_gui.o \ + src/osdep/pandora_rp9.o \ + src/osdep/pandora_mem.o \ + src/osdep/sigsegv_handler.o \ + src/osdep/menu/menu_config.o \ + src/sounddep/sound_sdl_new.o \ + src/osdep/gui/UaeRadioButton.o \ + src/osdep/gui/UaeDropDown.o \ + src/osdep/gui/UaeCheckBox.o \ + src/osdep/gui/UaeListBox.o \ + src/osdep/gui/InGameMessage.o \ + src/osdep/gui/SelectorEntry.o \ + src/osdep/gui/ShowMessage.o \ + src/osdep/gui/SelectFolder.o \ + src/osdep/gui/SelectFile.o \ + src/osdep/gui/CreateFilesysHardfile.o \ + src/osdep/gui/EditFilesysVirtual.o \ + src/osdep/gui/EditFilesysHardfile.o \ + src/osdep/gui/PanelPaths.o \ + src/osdep/gui/PanelConfig.o \ + src/osdep/gui/PanelCPU.o \ + src/osdep/gui/PanelChipset.o \ + src/osdep/gui/PanelROM.o \ + src/osdep/gui/PanelRAM.o \ + src/osdep/gui/PanelFloppy.o \ + src/osdep/gui/PanelHD.o \ + src/osdep/gui/PanelDisplay.o \ + src/osdep/gui/PanelSound.o \ + src/osdep/gui/PanelInput.o \ + src/osdep/gui/PanelMisc.o \ + src/osdep/gui/PanelSavestate.o \ + src/osdep/gui/main_window.o \ + src/osdep/gui/Navigation.o -OBJS += src/od-rasp/rasp_gfx.o -OBJS += src/od-pandora/gui/sdltruetypefont.o -OBJS += src/od-pandora/picasso96.o -OBJS += src/od-pandora/neon_helper.o +OBJS += src/osdep/gui/sdltruetypefont.o +OBJS += src/osdep/picasso96.o +OBJS += src/osdep/neon_helper.o OBJS += src/newcpu.o OBJS += src/newcpu_common.o @@ -212,8 +212,8 @@ OBJS += src/jit/compstbl.o OBJS += src/jit/compemu_fpp.o OBJS += src/jit/compemu_support.o -src/od-pandora/neon_helper.o: src/od-pandora/neon_helper.s - $(CXX) $(CPU_FLAGS) -Wall -o src/od-pandora/neon_helper.o -c src/od-pandora/neon_helper.s +src/osdep/neon_helper.o: src/osdep/neon_helper.s + $(CXX) $(CPU_FLAGS) -Wall -o src/osdep/neon_helper.o -c src/osdep/neon_helper.s src/trace.o: src/trace.c $(CC) $(MORE_CFLAGS) -c src/trace.c -o src/trace.o diff --git a/src/guisan/libguisan.a b/src/guisan/libguisan.a new file mode 100644 index 00000000..766ed125 Binary files /dev/null and b/src/guisan/libguisan.a differ diff --git a/src/md-pandora/m68k.h b/src/machdep/m68k.h similarity index 100% rename from src/md-pandora/m68k.h rename to src/machdep/m68k.h diff --git a/src/md-pandora/maccess.h b/src/machdep/maccess.h similarity index 100% rename from src/md-pandora/maccess.h rename to src/machdep/maccess.h diff --git a/src/md-pandora/md-fpp.h b/src/machdep/md-fpp.h similarity index 100% rename from src/md-pandora/md-fpp.h rename to src/machdep/md-fpp.h diff --git a/src/md-pandora/rpt.h b/src/machdep/rpt.h similarity index 100% rename from src/md-pandora/rpt.h rename to src/machdep/rpt.h diff --git a/src/md-pandora/support.cpp b/src/machdep/support.cpp similarity index 100% rename from src/md-pandora/support.cpp rename to src/machdep/support.cpp diff --git a/src/od-rasp/rasp_gfx.cpp b/src/od-rasp/rasp_gfx.cpp deleted file mode 100644 index d11eff27..00000000 --- a/src/od-rasp/rasp_gfx.cpp +++ /dev/null @@ -1,921 +0,0 @@ -#include "sysconfig.h" -#include "sysdeps.h" -#include "config.h" -#include "uae.h" -#include "options.h" -#include "gui.h" -#include "include/memory.h" -#include "newcpu.h" -#include "inputdevice.h" -#include "custom.h" -#include "xwin.h" -#include "drawing.h" -#include "savestate.h" -#include "picasso96.h" - -#include -#include -#include -#include -#ifdef ANDROIDSDL -#include -#endif -#include "td-sdl/thread.h" -#include "bcm_host.h" - - -/* SDL surface variable for output of emulation */ -SDL_Surface *prSDLScreen = NULL; -/* Dummy SDL variable for screen init */ -SDL_Surface *Dummy_prSDLScreen = NULL; -static SDL_Surface *current_screenshot = NULL; -/* Possible screen modes (x and y resolutions) */ - -#define MAX_SCREEN_MODES 10 -static int x_size_table[MAX_SCREEN_MODES] = { 640, 640, 720, 800, 800, 960, 1024, 1280, 1280, 1920 }; -static int y_size_table[MAX_SCREEN_MODES] = { 400, 480, 400, 480, 600, 540, 768, 720, 800, 1080 }; - -static int red_bits, green_bits, blue_bits; -static int red_shift, green_shift, blue_shift; - -struct PicassoResolution *DisplayModes; -struct MultiDisplay Displays[MAX_DISPLAYS]; - -int screen_is_picasso = 0; - -static int curr_layer_width = 0; - -static char screenshot_filename_default[255]= -{ - '/', 't', 'm', 'p', '/', 'n', 'u', 'l', 'l', '.', 'p', 'n', 'g', '\0' -}; -char *screenshot_filename=(char *)&screenshot_filename_default[0]; -FILE *screenshot_file=NULL; -static void CreateScreenshot(void); -static int save_thumb(char *path); -int delay_savestate_frame = 0; - -int justClicked = 0; -int mouseMoving = 0; -int fcounter = 0; -int doStylusRightClick = 0; - -int DispManXElementpresent = 0; - -static unsigned long previous_synctime = 0; -static unsigned long next_synctime = 0; - -uae_sem_t vsync_wait_sem; - -DISPMANX_DISPLAY_HANDLE_T dispmanxdisplay; -DISPMANX_MODEINFO_T dispmanxdinfo; -DISPMANX_RESOURCE_HANDLE_T dispmanxresource_amigafb_1; -DISPMANX_RESOURCE_HANDLE_T dispmanxresource_amigafb_2; -DISPMANX_ELEMENT_HANDLE_T dispmanxelement; -DISPMANX_UPDATE_HANDLE_T dispmanxupdate; -VC_RECT_T src_rect; -VC_RECT_T dst_rect; -VC_RECT_T blit_rect; - -unsigned char current_resource_amigafb = 0; - -void vsync_callback(unsigned int a, void* b) -{ - //vsync_timing=SDL_GetTicks(); - //vsync_frequency = vsync_timing - old_time; - //old_time = vsync_timing; - //need_frameskip = ( vsync_frequency > 31 ) ? (need_frameskip+1) : need_frameskip; - //printf("d: %i", vsync_frequency ); - uae_sem_post (&vsync_wait_sem); -} - -int graphics_setup (void) -{ -#ifdef PICASSO96 - picasso_InitResolutions(); - InitPicasso96(); -#endif - bcm_host_init(); - return 1; -} - -void InitAmigaVidMode(struct uae_prefs *p) -{ - /* Initialize structure for Amiga video modes */ - gfxvidinfo.pixbytes = 2; - gfxvidinfo.bufmem = (uae_u8 *)prSDLScreen->pixels; - gfxvidinfo.outwidth = p->gfx_size.width; - gfxvidinfo.outheight = p->gfx_size.height; -#ifdef PICASSO96 - if(screen_is_picasso) - { - gfxvidinfo.outwidth = picasso_vidinfo.width; - //gfxvidinfo.outheight = picasso_vidinfo.height; - } -#endif - //gfxvidinfo.rowbytes = prSDLScreen->pitch; - gfxvidinfo.rowbytes = blit_rect.width * 2; -} - -void graphics_dispmanshutdown (void) -{ - if (DispManXElementpresent == 1) - { - DispManXElementpresent = 0; - dispmanxupdate = vc_dispmanx_update_start( 10 ); - vc_dispmanx_element_remove( dispmanxupdate, dispmanxelement); - vc_dispmanx_update_submit_sync(dispmanxupdate); - } -} - -void graphics_subshutdown (void) -{ - if (dispmanxresource_amigafb_1 != 0) - graphics_dispmanshutdown(); - // Dunno if below lines are usefull for Rpi... - //SDL_FreeSurface(prSDLScreen); - //prSDLScreen = NULL; -} - -static void open_screen(struct uae_prefs *p) -{ - VC_DISPMANX_ALPHA_T alpha = { (DISPMANX_FLAGS_ALPHA_T ) (DISPMANX_FLAGS_ALPHA_FROM_SOURCE | DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS), - 255, /*alpha 0->255*/ - 0 - }; - - uint32_t vc_image_ptr; - int width; - int height; - -#ifdef PICASSO96 - if (screen_is_picasso) - { - width = picasso_vidinfo.width; - height = picasso_vidinfo.height; - } - else -#endif - { - p->gfx_resolution = p->gfx_size.width > 600 ? 1 : 0; - width = p->gfx_size.width; - height = p->gfx_size.height; - } - - //if(prSDLScreen != NULL) - //{ - // SDL_FreeSurface(prSDLScreen); - // prSDLScreen = NULL; - //} - - if(Dummy_prSDLScreen == NULL ) - { - const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo (); -#ifdef DEBUG - printf("DispmanX: Current resolution: %d x %d %d bpp\n",videoInfo->current_w, videoInfo->current_h, videoInfo->vfmt->BitsPerPixel); -#endif - // For debug, in order to avoid full screen. - Dummy_prSDLScreen = SDL_SetVideoMode(videoInfo->current_w,videoInfo->current_h, 16, SDL_SWSURFACE | SDL_FULLSCREEN); - //Dummy_prSDLScreen = SDL_SetVideoMode(800,480,16,SDL_SWSURFACE ); - } - - SDL_ShowCursor(SDL_DISABLE); - - // check if resolution hasn't change in menu. otherwise free the resources so that they will be re-generated with new resolution. - if ((dispmanxresource_amigafb_1 != 0) && - ((blit_rect.width != width) || (blit_rect.height != height) || (currprefs.gfx_correct_aspect != changed_prefs.gfx_correct_aspect) || - (currprefs.gfx_fullscreen_ratio != changed_prefs.gfx_fullscreen_ratio))) - { -#ifdef DEBUG - printf("Emulation resolution change detected.\n"); -#endif - if(prSDLScreen != NULL ) - { - SDL_FreeSurface(prSDLScreen); - prSDLScreen = 0; - } - graphics_dispmanshutdown(); - vc_dispmanx_resource_delete( dispmanxresource_amigafb_1 ); - vc_dispmanx_resource_delete( dispmanxresource_amigafb_2 ); - dispmanxresource_amigafb_1 = 0; - dispmanxresource_amigafb_2 = 0; - } - - if (dispmanxresource_amigafb_1 == 0) - { -#ifdef DEBUG - printf("Emulation resolution: Width %i Height: %i\n",width,height); -#endif - currprefs.gfx_correct_aspect = changed_prefs.gfx_correct_aspect; - currprefs.gfx_fullscreen_ratio = changed_prefs.gfx_fullscreen_ratio; - prSDLScreen = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 16, - Dummy_prSDLScreen->format->Rmask, - Dummy_prSDLScreen->format->Gmask, - Dummy_prSDLScreen->format->Bmask, - Dummy_prSDLScreen->format->Amask); - - dispmanxdisplay = vc_dispmanx_display_open( 0 ); - vc_dispmanx_display_get_info( dispmanxdisplay, &dispmanxdinfo); - - dispmanxresource_amigafb_1 = vc_dispmanx_resource_create( VC_IMAGE_RGB565, width, height, &vc_image_ptr); - dispmanxresource_amigafb_2 = vc_dispmanx_resource_create( VC_IMAGE_RGB565, width, height, &vc_image_ptr); - vc_dispmanx_rect_set( &blit_rect, 0, 0, width,height); - vc_dispmanx_resource_write_data( dispmanxresource_amigafb_1, - VC_IMAGE_RGB565, - width *2, - prSDLScreen->pixels, - &blit_rect ); - vc_dispmanx_rect_set( &src_rect, 0, 0, width << 16, height << 16 ); - - } - // 16/9 to 4/3 ratio adaptation. - if (currprefs.gfx_correct_aspect == 0) - { - // Fullscreen. - int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio/100; - int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio/100; - vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width)/2, - (dispmanxdinfo.height - scaled_height)/2, - scaled_width, - scaled_height ); - } - else - { - // 4/3 shrink. - int scaled_width = dispmanxdinfo.width * currprefs.gfx_fullscreen_ratio/100; - int scaled_height = dispmanxdinfo.height * currprefs.gfx_fullscreen_ratio/100; - vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width - scaled_width/16*12)/2, - (dispmanxdinfo.height - scaled_height)/2, - scaled_width/16*12, - scaled_height ); - } - - // For debug, in order to avoid full screen. - //vc_dispmanx_rect_set( &dst_rect, (dispmanxdinfo.width /2.7), - // 0 , - // (dispmanxdinfo.width - (dispmanxdinfo.width * 6)/100 )/1.5, - // (dispmanxdinfo.height - (dispmanxdinfo.height * 7)/100 )/1.5); - - - if (DispManXElementpresent == 0) - { - DispManXElementpresent = 1; - dispmanxupdate = vc_dispmanx_update_start( 10 ); - dispmanxelement = vc_dispmanx_element_add( dispmanxupdate, - dispmanxdisplay, - 2000, // layer - &dst_rect, - dispmanxresource_amigafb_1, - &src_rect, - DISPMANX_PROTECTION_NONE, - &alpha, - NULL, // clamp - DISPMANX_NO_ROTATE ); - - vc_dispmanx_update_submit(dispmanxupdate,NULL,NULL); - //dispmanxupdate = vc_dispmanx_update_start( 10 ); - } - - if(prSDLScreen != NULL) - { - InitAmigaVidMode(p); - init_row_map(); - } - //framecnt = 1; // Don't draw frame before reset done -} - -void update_display(struct uae_prefs *p) -{ - open_screen(p); - - SDL_ShowCursor(SDL_DISABLE); - - framecnt = 1; // Don't draw frame before reset done -} - -int check_prefs_changed_gfx (void) -{ - int changed = 0; - - if(currprefs.gfx_size.height != changed_prefs.gfx_size.height || - currprefs.gfx_size.width != changed_prefs.gfx_size.width || - currprefs.gfx_size_fs.width != changed_prefs.gfx_size_fs.width || - currprefs.gfx_resolution != changed_prefs.gfx_resolution) - { - cfgfile_configuration_change(1); - currprefs.gfx_size.height = changed_prefs.gfx_size.height; - currprefs.gfx_size.width = changed_prefs.gfx_size.width; - currprefs.gfx_size_fs.width = changed_prefs.gfx_size_fs.width; - currprefs.gfx_resolution = changed_prefs.gfx_resolution; - update_display(&currprefs); - changed = 1; - } - if (currprefs.leds_on_screen != changed_prefs.leds_on_screen || - currprefs.pandora_hide_idle_led != changed_prefs.pandora_hide_idle_led || - currprefs.pandora_vertical_offset != changed_prefs.pandora_vertical_offset) - { - currprefs.leds_on_screen = changed_prefs.leds_on_screen; - currprefs.pandora_hide_idle_led = changed_prefs.pandora_hide_idle_led; - currprefs.pandora_vertical_offset = changed_prefs.pandora_vertical_offset; - changed = 1; - } - if (currprefs.chipset_refreshrate != changed_prefs.chipset_refreshrate) - { - currprefs.chipset_refreshrate = changed_prefs.chipset_refreshrate; - init_hz_full (); - changed = 1; - } - - return changed; -} - - -int lockscr (void) -{ - //SDL_LockSurface(prSDLScreen); - return 1; -} - - -void unlockscr (void) -{ - //SDL_UnlockSurface(prSDLScreen); -} - -void wait_for_vsync(void) -{ - // Temporary -} - -void flush_screen () -{ - //SDL_UnlockSurface (prSDLScreen); - - //if (show_inputmode) - //{ - // inputmode_redraw(); - //} - - - if (savestate_state == STATE_DOSAVE) - { - if(delay_savestate_frame > 0) - --delay_savestate_frame; - else - { - CreateScreenshot(); - save_thumb(screenshot_filename); - savestate_state = 0; - } - } - - unsigned long start = read_processor_time(); - //if(start < next_synctime && next_synctime - start > time_per_frame - 1000) - // usleep((next_synctime - start) - 1000); - //SDL_Flip(prSDLScreen); - - - if (current_resource_amigafb == 1) - { - current_resource_amigafb = 0; - vc_dispmanx_resource_write_data( dispmanxresource_amigafb_1, - VC_IMAGE_RGB565, - gfxvidinfo.outwidth * 2, - gfxvidinfo.bufmem, - &blit_rect ); - dispmanxupdate = vc_dispmanx_update_start( 10 ); - vc_dispmanx_element_change_source(dispmanxupdate,dispmanxelement,dispmanxresource_amigafb_1); - - vc_dispmanx_update_submit(dispmanxupdate,vsync_callback,NULL); - //vc_dispmanx_update_submit_sync(dispmanxupdate); - - } - else - { - current_resource_amigafb = 1; - vc_dispmanx_resource_write_data( dispmanxresource_amigafb_2, - VC_IMAGE_RGB565, - gfxvidinfo.outwidth * 2, - gfxvidinfo.bufmem, - &blit_rect ); - dispmanxupdate = vc_dispmanx_update_start( 10 ); - vc_dispmanx_element_change_source(dispmanxupdate,dispmanxelement,dispmanxresource_amigafb_2); - - vc_dispmanx_update_submit(dispmanxupdate,vsync_callback,NULL); - } - - uae_sem_wait (&vsync_wait_sem); - - last_synctime = read_processor_time(); - - if(last_synctime - next_synctime > time_per_frame * (1 + currprefs.gfx_framerate) - 1000 || next_synctime < start) - adjust_idletime(0); - else - adjust_idletime(next_synctime - start); - - if(last_synctime - next_synctime > time_per_frame - 5000) - next_synctime = last_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - else - next_synctime = next_synctime + time_per_frame * (1 + currprefs.gfx_framerate); - - init_row_map(); - -} - -void black_screen_now(void) -{ - SDL_FillRect(Dummy_prSDLScreen,NULL,0); - SDL_Flip(Dummy_prSDLScreen); -} - -static void graphics_subinit (void) -{ - if (prSDLScreen == NULL) - { - fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError()); - return; - } - else - { - SDL_ShowCursor(SDL_DISABLE); - - InitAmigaVidMode(&currprefs); - } -} - -STATIC_INLINE int bitsInMask (unsigned long mask) -{ - /* count bits in mask */ - int n = 0; - while (mask) - { - n += mask & 1; - mask >>= 1; - } - return n; -} - -STATIC_INLINE int maskShift (unsigned long mask) -{ - /* determine how far mask is shifted */ - int n = 0; - while (!(mask & 1)) - { - n++; - mask >>= 1; - } - return n; -} - -static int init_colors (void) -{ - int i; - int red_bits, green_bits, blue_bits; - int red_shift, green_shift, blue_shift; - - /* Truecolor: */ - red_bits = bitsInMask(prSDLScreen->format->Rmask); - green_bits = bitsInMask(prSDLScreen->format->Gmask); - blue_bits = bitsInMask(prSDLScreen->format->Bmask); - red_shift = maskShift(prSDLScreen->format->Rmask); - green_shift = maskShift(prSDLScreen->format->Gmask); - blue_shift = maskShift(prSDLScreen->format->Bmask); - alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); - notice_new_xcolors(); - for (i = 0; i < 4096; i++) - xcolors[i] = xcolors[i] * 0x00010001; - - return 1; -} - -/* - * Find the colour depth of the display - */ -static int get_display_depth (void) -{ - const SDL_VideoInfo *vid_info; - int depth = 0; - - if ((vid_info = SDL_GetVideoInfo())) - { - depth = vid_info->vfmt->BitsPerPixel; - - /* Don't trust the answer if it's 16 bits; the display - * could actually be 15 bits deep. We'll count the bits - * ourselves */ - if (depth == 16) - depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); - } - return depth; -} - -int GetSurfacePixelFormat(void) -{ - int depth = get_display_depth(); - int unit = (depth + 1) & 0xF8; - - return (unit == 8 ? RGBFB_CHUNKY - : depth == 15 && unit == 16 ? RGBFB_R5G5B5 - : depth == 16 && unit == 16 ? RGBFB_R5G6B5 - : unit == 24 ? RGBFB_B8G8R8 - : unit == 32 ? RGBFB_R8G8B8A8 - : RGBFB_NONE); -} - -int graphics_init(bool mousecapture) -{ - int i,j; - - uae_sem_init (&vsync_wait_sem, 0, 0); - - graphics_subinit (); - - if (!init_colors ()) - return 0; - - //buttonstate[0] = buttonstate[1] = buttonstate[2] = 0; - //keyboard_init(); - - return 1; -} - -void graphics_leave (void) -{ - graphics_subshutdown (); - SDL_FreeSurface(Dummy_prSDLScreen); - bcm_host_deinit(); - SDL_VideoQuit(); -} - -#define systemRedShift (prSDLScreen->format->Rshift) -#define systemGreenShift (prSDLScreen->format->Gshift) -#define systemBlueShift (prSDLScreen->format->Bshift) -#define systemRedMask (prSDLScreen->format->Rmask) -#define systemGreenMask (prSDLScreen->format->Gmask) -#define systemBlueMask (prSDLScreen->format->Bmask) - -static int save_png(SDL_Surface* surface, char *path) -{ - int w = surface->w; - int h = surface->h; - unsigned char * pix = (unsigned char *)surface->pixels; - unsigned char writeBuffer[1024 * 3]; - FILE *f = fopen(path,"wb"); - if(!f) return 0; - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, - NULL, - NULL, - NULL); - if(!png_ptr) - { - fclose(f); - return 0; - } - - png_infop info_ptr = png_create_info_struct(png_ptr); - - if(!info_ptr) - { - png_destroy_write_struct(&png_ptr,NULL); - fclose(f); - return 0; - } - - png_init_io(png_ptr,f); - - png_set_IHDR(png_ptr, - info_ptr, - w, - h, - 8, - PNG_COLOR_TYPE_RGB, - PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, - PNG_FILTER_TYPE_DEFAULT); - - png_write_info(png_ptr,info_ptr); - - unsigned char *b = writeBuffer; - - int sizeX = w; - int sizeY = h; - int y; - int x; - - unsigned short *p = (unsigned short *)pix; - for(y = 0; y < sizeY; y++) - { - for(x = 0; x < sizeX; x++) - { - unsigned short v = p[x]; - - *b++ = ((v & systemRedMask ) >> systemRedShift ) << 3; // R - *b++ = ((v & systemGreenMask) >> systemGreenShift) << 2; // G - *b++ = ((v & systemBlueMask ) >> systemBlueShift ) << 3; // B - } - p += surface->pitch / 2; - png_write_row(png_ptr,writeBuffer); - b = writeBuffer; - } - - png_write_end(png_ptr, info_ptr); - - png_destroy_write_struct(&png_ptr, &info_ptr); - - fclose(f); - return 1; -} - -static void CreateScreenshot(void) -{ - int w, h; - - if(current_screenshot != NULL) - { - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } - - w=prSDLScreen->w; - h=prSDLScreen->h; - current_screenshot = SDL_CreateRGBSurfaceFrom(prSDLScreen->pixels, w, h, prSDLScreen->format->BitsPerPixel, prSDLScreen->pitch, - prSDLScreen->format->Rmask, prSDLScreen->format->Gmask, prSDLScreen->format->Bmask, prSDLScreen->format->Amask); -} - -static int save_thumb(char *path) -{ - int ret = 0; - if(current_screenshot != NULL) - { - ret = save_png(current_screenshot, path); - SDL_FreeSurface(current_screenshot); - current_screenshot = NULL; - } - return ret; -} - -bool vsync_switchmode(int hz) -{ - int changed_height = changed_prefs.gfx_size.height; - - if (hz >= 55) - hz = 60; - else - hz = 50; - - if (hz == 50 && currVSyncRate == 60) - { - // Switch from NTSC -> PAL - switch (changed_height) - { - case 200: - changed_height = 240; - break; - case 216: - changed_height = 262; - break; - case 240: - changed_height = 270; - break; - case 256: - changed_height = 270; - break; - case 262: - changed_height = 270; - break; - case 270: - changed_height = 270; - break; - } - } - else if (hz == 60 && currVSyncRate == 50) - { - // Switch from PAL -> NTSC - switch (changed_height) - { - case 200: - changed_height = 200; - break; - case 216: - changed_height = 200; - break; - case 240: - changed_height = 200; - break; - case 256: - changed_height = 216; - break; - case 262: - changed_height = 216; - break; - case 270: - changed_height = 240; - break; - } - } - - if (changed_height == currprefs.gfx_size.height && hz == currprefs.chipset_refreshrate) - return true; - - changed_prefs.gfx_size.height = changed_height; - - return true; -} - -bool target_graphics_buffer_update(void) -{ - bool rate_changed = 0; - //bool rate_changed = SetVSyncRate(currprefs.chipset_refreshrate); - - if (currprefs.gfx_size.height != changed_prefs.gfx_size.height) - { - update_display(&changed_prefs); - rate_changed = true; - } - - if (rate_changed) - { - black_screen_now(); - fpscounter_reset(); - time_per_frame = 1000 * 1000 / (currprefs.chipset_refreshrate); - } - - return true; -} - -#ifdef PICASSO96 - -int picasso_palette (void) -{ - int i, changed; - - changed = 0; - for (i = 0; i < 256; i++) - { - int r = picasso96_state.CLUT[i].Red; - int g = picasso96_state.CLUT[i].Green; - int b = picasso96_state.CLUT[i].Blue; - int value = (r << 16 | g << 8 | b); - uae_u32 v = CONVERT_RGB(value); - if (v != picasso_vidinfo.clut[i]) - { - picasso_vidinfo.clut[i] = v; - changed = 1; - } - } - return changed; -} - -static int resolution_compare (const void *a, const void *b) -{ - struct PicassoResolution *ma = (struct PicassoResolution *)a; - struct PicassoResolution *mb = (struct PicassoResolution *)b; - if (ma->res.width < mb->res.width) - return -1; - if (ma->res.width > mb->res.width) - return 1; - if (ma->res.height < mb->res.height) - return -1; - if (ma->res.height > mb->res.height) - return 1; - return ma->depth - mb->depth; -} -static void sortmodes (void) -{ - int i = 0, idx = -1; - int pw = -1, ph = -1; - while (DisplayModes[i].depth >= 0) - i++; - qsort (DisplayModes, i, sizeof (struct PicassoResolution), resolution_compare); - for (i = 0; DisplayModes[i].depth >= 0; i++) - { - if (DisplayModes[i].res.height != ph || DisplayModes[i].res.width != pw) - { - ph = DisplayModes[i].res.height; - pw = DisplayModes[i].res.width; - idx++; - } - DisplayModes[i].residx = idx; - } -} - -static void modesList (void) -{ - int i, j; - - i = 0; - while (DisplayModes[i].depth >= 0) - { - write_log ("%d: %s (", i, DisplayModes[i].name); - j = 0; - while (DisplayModes[i].refresh[j] > 0) - { - if (j > 0) - write_log (","); - write_log ("%d", DisplayModes[i].refresh[j]); - j++; - } - write_log (")\n"); - i++; - } -} - -void picasso_InitResolutions (void) -{ - struct MultiDisplay *md1; - int i, count = 0; - char tmp[200]; - int bit_idx; - int bits[] = { 8, 16, 32 }; - - Displays[0].primary = 1; - Displays[0].disabled = 0; - Displays[0].rect.left = 0; - Displays[0].rect.top = 0; - Displays[0].rect.right = 800; - Displays[0].rect.bottom = 640; - sprintf (tmp, "%s (%d*%d)", "Display", Displays[0].rect.right, Displays[0].rect.bottom); - Displays[0].name = my_strdup(tmp); - Displays[0].name2 = my_strdup("Display"); - - md1 = Displays; - DisplayModes = md1->DisplayModes = xmalloc (struct PicassoResolution, MAX_PICASSO_MODES); - for (i = 0; i < MAX_SCREEN_MODES && count < MAX_PICASSO_MODES; i++) - { - for(bit_idx = 0; bit_idx < 3; ++bit_idx) - { - int bitdepth = bits[bit_idx]; - int bit_unit = (bitdepth + 1) & 0xF8; - int rgbFormat = (bitdepth == 8 ? RGBFB_CLUT : (bitdepth == 16 ? RGBFB_R5G6B5 : RGBFB_R8G8B8A8)); - int pixelFormat = 1 << rgbFormat; - pixelFormat |= RGBFF_CHUNKY; - - //if (SDL_VideoModeOK (x_size_table[i], y_size_table[i], 16, SDL_SWSURFACE)) - { - DisplayModes[count].res.width = x_size_table[i]; - DisplayModes[count].res.height = y_size_table[i]; - DisplayModes[count].depth = bit_unit >> 3; - DisplayModes[count].refresh[0] = 50; - DisplayModes[count].refresh[1] = 60; - DisplayModes[count].refresh[2] = 0; - DisplayModes[count].colormodes = pixelFormat; - sprintf(DisplayModes[count].name, "%dx%d, %d-bit", - DisplayModes[count].res.width, DisplayModes[count].res.height, DisplayModes[count].depth * 8); - - count++; - } - } - } - DisplayModes[count].depth = -1; - sortmodes(); - modesList(); - DisplayModes = Displays[0].DisplayModes; -} - -void gfx_set_picasso_state (int on) -{ - if (on == screen_is_picasso) - return; - - screen_is_picasso = on; - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; -} - -void gfx_set_picasso_modeinfo (uae_u32 w, uae_u32 h, uae_u32 depth, RGBFTYPE rgbfmt) -{ - depth >>= 3; - if( ((unsigned)picasso_vidinfo.width == w ) && - ( (unsigned)picasso_vidinfo.height == h ) && - ( (unsigned)picasso_vidinfo.depth == depth ) && - ( picasso_vidinfo.selected_rgbformat == rgbfmt) ) - return; - - picasso_vidinfo.selected_rgbformat = rgbfmt; - picasso_vidinfo.width = w; - picasso_vidinfo.height = h; - picasso_vidinfo.depth = 2; // Native depth - picasso_vidinfo.extra_mem = 1; - - picasso_vidinfo.pixbytes = 2; // Native bytes - if (screen_is_picasso) - { - open_screen(&currprefs); - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - picasso_vidinfo.rgbformat = RGBFB_R5G6B5; - } -} - -uae_u8 *gfx_lock_picasso (void) -{ - // We lock the surface directly after create and flip - picasso_vidinfo.rowbytes = prSDLScreen->pitch; - return (uae_u8 *)prSDLScreen->pixels; -} - -void gfx_unlock_picasso (void) -{ - // We lock the surface directly after create and flip, so no unlock here -} - -#endif // PICASSO96 diff --git a/src/od-pandora/bsdsocket_host.cpp b/src/osdep/bsdsocket_host.cpp similarity index 100% rename from src/od-pandora/bsdsocket_host.cpp rename to src/osdep/bsdsocket_host.cpp diff --git a/src/od-pandora/cda_play.cpp b/src/osdep/cda_play.cpp similarity index 100% rename from src/od-pandora/cda_play.cpp rename to src/osdep/cda_play.cpp diff --git a/src/od-pandora/cda_play.h b/src/osdep/cda_play.h similarity index 100% rename from src/od-pandora/cda_play.h rename to src/osdep/cda_play.h diff --git a/src/od-pandora/charset.cpp b/src/osdep/charset.cpp similarity index 100% rename from src/od-pandora/charset.cpp rename to src/osdep/charset.cpp diff --git a/src/od-pandora/config.h b/src/osdep/config.h similarity index 100% rename from src/od-pandora/config.h rename to src/osdep/config.h diff --git a/src/od-pandora/fsdb_host.cpp b/src/osdep/fsdb_host.cpp similarity index 100% rename from src/od-pandora/fsdb_host.cpp rename to src/osdep/fsdb_host.cpp diff --git a/src/od-pandora/gui/CreateFilesysHardfile.cpp b/src/osdep/gui/CreateFilesysHardfile.cpp similarity index 100% rename from src/od-pandora/gui/CreateFilesysHardfile.cpp rename to src/osdep/gui/CreateFilesysHardfile.cpp diff --git a/src/od-pandora/gui/EditFilesysHardfile.cpp b/src/osdep/gui/EditFilesysHardfile.cpp similarity index 100% rename from src/od-pandora/gui/EditFilesysHardfile.cpp rename to src/osdep/gui/EditFilesysHardfile.cpp diff --git a/src/od-pandora/gui/EditFilesysVirtual.cpp b/src/osdep/gui/EditFilesysVirtual.cpp similarity index 100% rename from src/od-pandora/gui/EditFilesysVirtual.cpp rename to src/osdep/gui/EditFilesysVirtual.cpp diff --git a/src/od-pandora/gui/InGameMessage.cpp b/src/osdep/gui/InGameMessage.cpp similarity index 100% rename from src/od-pandora/gui/InGameMessage.cpp rename to src/osdep/gui/InGameMessage.cpp diff --git a/src/od-pandora/gui/Navigation.cpp b/src/osdep/gui/Navigation.cpp similarity index 100% rename from src/od-pandora/gui/Navigation.cpp rename to src/osdep/gui/Navigation.cpp diff --git a/src/od-pandora/gui/PanelCPU.cpp b/src/osdep/gui/PanelCPU.cpp similarity index 100% rename from src/od-pandora/gui/PanelCPU.cpp rename to src/osdep/gui/PanelCPU.cpp diff --git a/src/od-pandora/gui/PanelChipset.cpp b/src/osdep/gui/PanelChipset.cpp similarity index 100% rename from src/od-pandora/gui/PanelChipset.cpp rename to src/osdep/gui/PanelChipset.cpp diff --git a/src/od-pandora/gui/PanelConfig.cpp b/src/osdep/gui/PanelConfig.cpp similarity index 100% rename from src/od-pandora/gui/PanelConfig.cpp rename to src/osdep/gui/PanelConfig.cpp diff --git a/src/od-pandora/gui/PanelDisplay.cpp b/src/osdep/gui/PanelDisplay.cpp similarity index 100% rename from src/od-pandora/gui/PanelDisplay.cpp rename to src/osdep/gui/PanelDisplay.cpp diff --git a/src/od-pandora/gui/PanelFloppy.cpp b/src/osdep/gui/PanelFloppy.cpp similarity index 100% rename from src/od-pandora/gui/PanelFloppy.cpp rename to src/osdep/gui/PanelFloppy.cpp diff --git a/src/od-pandora/gui/PanelHD.cpp b/src/osdep/gui/PanelHD.cpp similarity index 100% rename from src/od-pandora/gui/PanelHD.cpp rename to src/osdep/gui/PanelHD.cpp diff --git a/src/od-pandora/gui/PanelInput.cpp b/src/osdep/gui/PanelInput.cpp similarity index 100% rename from src/od-pandora/gui/PanelInput.cpp rename to src/osdep/gui/PanelInput.cpp diff --git a/src/od-pandora/gui/PanelMisc.cpp b/src/osdep/gui/PanelMisc.cpp similarity index 100% rename from src/od-pandora/gui/PanelMisc.cpp rename to src/osdep/gui/PanelMisc.cpp diff --git a/src/od-pandora/gui/PanelPaths.cpp b/src/osdep/gui/PanelPaths.cpp similarity index 100% rename from src/od-pandora/gui/PanelPaths.cpp rename to src/osdep/gui/PanelPaths.cpp diff --git a/src/od-pandora/gui/PanelRAM.cpp b/src/osdep/gui/PanelRAM.cpp similarity index 100% rename from src/od-pandora/gui/PanelRAM.cpp rename to src/osdep/gui/PanelRAM.cpp diff --git a/src/od-pandora/gui/PanelROM.cpp b/src/osdep/gui/PanelROM.cpp similarity index 100% rename from src/od-pandora/gui/PanelROM.cpp rename to src/osdep/gui/PanelROM.cpp diff --git a/src/od-pandora/gui/PanelSavestate.cpp b/src/osdep/gui/PanelSavestate.cpp similarity index 100% rename from src/od-pandora/gui/PanelSavestate.cpp rename to src/osdep/gui/PanelSavestate.cpp diff --git a/src/od-pandora/gui/PanelSound.cpp b/src/osdep/gui/PanelSound.cpp similarity index 100% rename from src/od-pandora/gui/PanelSound.cpp rename to src/osdep/gui/PanelSound.cpp diff --git a/src/od-pandora/gui/SelectFile.cpp b/src/osdep/gui/SelectFile.cpp similarity index 100% rename from src/od-pandora/gui/SelectFile.cpp rename to src/osdep/gui/SelectFile.cpp diff --git a/src/od-pandora/gui/SelectFolder.cpp b/src/osdep/gui/SelectFolder.cpp similarity index 100% rename from src/od-pandora/gui/SelectFolder.cpp rename to src/osdep/gui/SelectFolder.cpp diff --git a/src/od-pandora/gui/SelectorEntry.cpp b/src/osdep/gui/SelectorEntry.cpp similarity index 100% rename from src/od-pandora/gui/SelectorEntry.cpp rename to src/osdep/gui/SelectorEntry.cpp diff --git a/src/od-pandora/gui/SelectorEntry.hpp b/src/osdep/gui/SelectorEntry.hpp similarity index 100% rename from src/od-pandora/gui/SelectorEntry.hpp rename to src/osdep/gui/SelectorEntry.hpp diff --git a/src/od-pandora/gui/ShowMessage.cpp b/src/osdep/gui/ShowMessage.cpp similarity index 100% rename from src/od-pandora/gui/ShowMessage.cpp rename to src/osdep/gui/ShowMessage.cpp diff --git a/src/od-pandora/gui/UaeCheckBox.cpp b/src/osdep/gui/UaeCheckBox.cpp similarity index 100% rename from src/od-pandora/gui/UaeCheckBox.cpp rename to src/osdep/gui/UaeCheckBox.cpp diff --git a/src/od-pandora/gui/UaeCheckBox.hpp b/src/osdep/gui/UaeCheckBox.hpp similarity index 100% rename from src/od-pandora/gui/UaeCheckBox.hpp rename to src/osdep/gui/UaeCheckBox.hpp diff --git a/src/od-pandora/gui/UaeDropDown.cpp b/src/osdep/gui/UaeDropDown.cpp similarity index 100% rename from src/od-pandora/gui/UaeDropDown.cpp rename to src/osdep/gui/UaeDropDown.cpp diff --git a/src/od-pandora/gui/UaeDropDown.hpp b/src/osdep/gui/UaeDropDown.hpp similarity index 100% rename from src/od-pandora/gui/UaeDropDown.hpp rename to src/osdep/gui/UaeDropDown.hpp diff --git a/src/od-pandora/gui/UaeListBox.cpp b/src/osdep/gui/UaeListBox.cpp similarity index 100% rename from src/od-pandora/gui/UaeListBox.cpp rename to src/osdep/gui/UaeListBox.cpp diff --git a/src/od-pandora/gui/UaeListBox.hpp b/src/osdep/gui/UaeListBox.hpp similarity index 100% rename from src/od-pandora/gui/UaeListBox.hpp rename to src/osdep/gui/UaeListBox.hpp diff --git a/src/od-pandora/gui/UaeRadioButton.cpp b/src/osdep/gui/UaeRadioButton.cpp similarity index 100% rename from src/od-pandora/gui/UaeRadioButton.cpp rename to src/osdep/gui/UaeRadioButton.cpp diff --git a/src/od-pandora/gui/UaeRadioButton.hpp b/src/osdep/gui/UaeRadioButton.hpp similarity index 100% rename from src/od-pandora/gui/UaeRadioButton.hpp rename to src/osdep/gui/UaeRadioButton.hpp diff --git a/src/od-pandora/gui/gui_handling.h b/src/osdep/gui/gui_handling.h similarity index 100% rename from src/od-pandora/gui/gui_handling.h rename to src/osdep/gui/gui_handling.h diff --git a/src/od-pandora/gui/main_window.cpp b/src/osdep/gui/main_window.cpp similarity index 100% rename from src/od-pandora/gui/main_window.cpp rename to src/osdep/gui/main_window.cpp diff --git a/src/od-pandora/gui/sdltruetypefont.cpp b/src/osdep/gui/sdltruetypefont.cpp similarity index 100% rename from src/od-pandora/gui/sdltruetypefont.cpp rename to src/osdep/gui/sdltruetypefont.cpp diff --git a/src/od-pandora/gui/sdltruetypefont.hpp b/src/osdep/gui/sdltruetypefont.hpp similarity index 100% rename from src/od-pandora/gui/sdltruetypefont.hpp rename to src/osdep/gui/sdltruetypefont.hpp diff --git a/src/od-pandora/hardfile_pandora.cpp b/src/osdep/hardfile_pandora.cpp similarity index 100% rename from src/od-pandora/hardfile_pandora.cpp rename to src/osdep/hardfile_pandora.cpp diff --git a/src/od-pandora/keyboard.cpp b/src/osdep/keyboard.cpp similarity index 100% rename from src/od-pandora/keyboard.cpp rename to src/osdep/keyboard.cpp diff --git a/src/od-pandora/menu/menu_config.cpp b/src/osdep/menu/menu_config.cpp similarity index 100% rename from src/od-pandora/menu/menu_config.cpp rename to src/osdep/menu/menu_config.cpp diff --git a/src/od-pandora/mp3decoder.cpp b/src/osdep/mp3decoder.cpp similarity index 100% rename from src/od-pandora/mp3decoder.cpp rename to src/osdep/mp3decoder.cpp diff --git a/src/od-pandora/mp3decoder.h b/src/osdep/mp3decoder.h similarity index 100% rename from src/od-pandora/mp3decoder.h rename to src/osdep/mp3decoder.h diff --git a/src/od-pandora/neon_helper.s b/src/osdep/neon_helper.s similarity index 100% rename from src/od-pandora/neon_helper.s rename to src/osdep/neon_helper.s diff --git a/src/od-pandora/pandora.cpp b/src/osdep/pandora.cpp similarity index 100% rename from src/od-pandora/pandora.cpp rename to src/osdep/pandora.cpp diff --git a/src/od-pandora/pandora_filesys.cpp b/src/osdep/pandora_filesys.cpp similarity index 100% rename from src/od-pandora/pandora_filesys.cpp rename to src/osdep/pandora_filesys.cpp diff --git a/src/od-pandora/pandora_gfx.cpp b/src/osdep/pandora_gfx.cpp similarity index 100% rename from src/od-pandora/pandora_gfx.cpp rename to src/osdep/pandora_gfx.cpp diff --git a/src/od-pandora/pandora_gui.cpp b/src/osdep/pandora_gui.cpp similarity index 100% rename from src/od-pandora/pandora_gui.cpp rename to src/osdep/pandora_gui.cpp diff --git a/src/od-pandora/pandora_input.cpp b/src/osdep/pandora_input.cpp similarity index 100% rename from src/od-pandora/pandora_input.cpp rename to src/osdep/pandora_input.cpp diff --git a/src/od-pandora/pandora_mem.cpp b/src/osdep/pandora_mem.cpp similarity index 100% rename from src/od-pandora/pandora_mem.cpp rename to src/osdep/pandora_mem.cpp diff --git a/src/od-pandora/pandora_rp9.cpp b/src/osdep/pandora_rp9.cpp similarity index 100% rename from src/od-pandora/pandora_rp9.cpp rename to src/osdep/pandora_rp9.cpp diff --git a/src/od-pandora/pandora_rp9.h b/src/osdep/pandora_rp9.h similarity index 100% rename from src/od-pandora/pandora_rp9.h rename to src/osdep/pandora_rp9.h diff --git a/src/od-pandora/picasso96.cpp b/src/osdep/picasso96.cpp similarity index 100% rename from src/od-pandora/picasso96.cpp rename to src/osdep/picasso96.cpp diff --git a/src/od-pandora/sigsegv_handler.cpp b/src/osdep/sigsegv_handler.cpp similarity index 100% rename from src/od-pandora/sigsegv_handler.cpp rename to src/osdep/sigsegv_handler.cpp diff --git a/src/od-pandora/sysconfig.h b/src/osdep/sysconfig.h similarity index 100% rename from src/od-pandora/sysconfig.h rename to src/osdep/sysconfig.h diff --git a/src/od-pandora/target.h b/src/osdep/target.h similarity index 100% rename from src/od-pandora/target.h rename to src/osdep/target.h diff --git a/src/od-pandora/writelog.cpp b/src/osdep/writelog.cpp similarity index 100% rename from src/od-pandora/writelog.cpp rename to src/osdep/writelog.cpp diff --git a/src/sd-pandora/sound.cpp b/src/sounddep/sound.cpp similarity index 100% rename from src/sd-pandora/sound.cpp rename to src/sounddep/sound.cpp diff --git a/src/sd-pandora/sound.h b/src/sounddep/sound.h similarity index 100% rename from src/sd-pandora/sound.h rename to src/sounddep/sound.h diff --git a/src/sd-sdl/sound_sdl_new.cpp b/src/sounddep/sound_sdl_new.cpp similarity index 100% rename from src/sd-sdl/sound_sdl_new.cpp rename to src/sounddep/sound_sdl_new.cpp diff --git a/src/td-sdl/thread.h b/src/threaddep/thread.h similarity index 100% rename from src/td-sdl/thread.h rename to src/threaddep/thread.h