From b1758ac4d80768e90e46932a47d327484734d0c3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 5 Oct 2002 16:50:56 +0000 Subject: [PATCH] Added initial support for Dreamcast (thanks HERO!) --- Makefile.am | 2 + Makefile.dc | 105 +++++++ README.DC | 37 +++ docs.html | 1 + src/audio/Makefile.am | 2 +- src/audio/SDL_audio.c | 3 + src/audio/SDL_sysaudio.h | 3 + src/audio/dc/.cvsignore | 6 + src/audio/dc/Makefile.am | 11 + src/audio/dc/SDL_dcaudio.c | 245 +++++++++++++++ src/audio/dc/SDL_dcaudio.h | 45 +++ src/audio/dc/aica.c | 267 +++++++++++++++++ src/audio/dc/aica.h | 17 ++ src/cdrom/Makefile.am | 2 +- src/cdrom/dc/.cvsignore | 6 + src/cdrom/dc/Makefile.am | 8 + src/cdrom/dc/SDL_syscdrom.c | 176 +++++++++++ src/joystick/Makefile.am | 2 +- src/joystick/dc/.cvsignore | 6 + src/joystick/dc/Makefile.am | 8 + src/joystick/dc/SDL_sysjoystick.c | 203 +++++++++++++ src/thread/Makefile.am | 1 + src/thread/dc/SDL_syscond.c | 223 ++++++++++++++ src/thread/dc/SDL_syscond_c.h | 27 ++ src/thread/dc/SDL_sysmutex.c | 135 +++++++++ src/thread/dc/SDL_sysmutex_c.h | 27 ++ src/thread/dc/SDL_syssem.c | 180 +++++++++++ src/thread/dc/SDL_syssem_c.h | 27 ++ src/thread/dc/SDL_systhread.c | 98 ++++++ src/thread/dc/SDL_systhread_c.h | 29 ++ src/timer/Makefile.am | 1 + src/timer/dc/SDL_systimer.c | 106 +++++++ src/video/Makefile.am | 2 +- src/video/SDL_sysvideo.h | 3 + src/video/SDL_video.c | 3 + src/video/dc/.cvsignore | 6 + src/video/dc/Makefile.am | 14 + src/video/dc/SDL_dcevents.c | 164 ++++++++++ src/video/dc/SDL_dcevents_c.h | 42 +++ src/video/dc/SDL_dcmouse.c | 45 +++ src/video/dc/SDL_dcmouse_c.h | 35 +++ src/video/dc/SDL_dcvideo.c | 477 ++++++++++++++++++++++++++++++ src/video/dc/SDL_dcvideo.h | 51 ++++ 43 files changed, 2847 insertions(+), 4 deletions(-) create mode 100644 Makefile.dc create mode 100644 README.DC create mode 100644 src/audio/dc/.cvsignore create mode 100644 src/audio/dc/Makefile.am create mode 100644 src/audio/dc/SDL_dcaudio.c create mode 100644 src/audio/dc/SDL_dcaudio.h create mode 100644 src/audio/dc/aica.c create mode 100644 src/audio/dc/aica.h create mode 100644 src/cdrom/dc/.cvsignore create mode 100644 src/cdrom/dc/Makefile.am create mode 100644 src/cdrom/dc/SDL_syscdrom.c create mode 100644 src/joystick/dc/.cvsignore create mode 100644 src/joystick/dc/Makefile.am create mode 100644 src/joystick/dc/SDL_sysjoystick.c create mode 100644 src/thread/dc/SDL_syscond.c create mode 100644 src/thread/dc/SDL_syscond_c.h create mode 100644 src/thread/dc/SDL_sysmutex.c create mode 100644 src/thread/dc/SDL_sysmutex_c.h create mode 100644 src/thread/dc/SDL_syssem.c create mode 100644 src/thread/dc/SDL_syssem_c.h create mode 100644 src/thread/dc/SDL_systhread.c create mode 100644 src/thread/dc/SDL_systhread_c.h create mode 100644 src/timer/dc/SDL_systimer.c create mode 100644 src/video/dc/.cvsignore create mode 100644 src/video/dc/Makefile.am create mode 100644 src/video/dc/SDL_dcevents.c create mode 100644 src/video/dc/SDL_dcevents_c.h create mode 100644 src/video/dc/SDL_dcmouse.c create mode 100644 src/video/dc/SDL_dcmouse_c.h create mode 100644 src/video/dc/SDL_dcvideo.c create mode 100644 src/video/dc/SDL_dcvideo.h diff --git a/Makefile.am b/Makefile.am index 1510ba813..e61a32a44 100644 --- a/Makefile.am +++ b/Makefile.am @@ -25,6 +25,7 @@ EXTRA_DIST = \ README \ README.AmigaOS \ README.CVS \ + README.DC \ README.Epoc \ README.MacOS \ README.MacOSX \ @@ -40,6 +41,7 @@ EXTRA_DIST = \ VisualC.html \ VisualC.zip \ VisualCE.zip \ + Makefile.dc \ MPWmake.sea.bin \ CWprojects.sea.bin \ PBProjects.tar.gz \ diff --git a/Makefile.dc b/Makefile.dc new file mode 100644 index 000000000..467391326 --- /dev/null +++ b/Makefile.dc @@ -0,0 +1,105 @@ +#GL=1 + +CC = sh-elf-gcc -ml -m4-single-only +AR = sh-elf-ar +KOS_BASE=/prog/kos-1.1.7 +INCS = -I$(KOS_BASE)/libc/include -I$(KOS_BASE)/include -I$(KOS_BASE)/kernel/arch/dreamcast/include +DEFS =-DNO_SIGNAL_H -DENABLE_DC + +ifdef GL +DEFS += -DHAVE_OPENGL +TARGET = libSDL_gl.a +else +TARGET = libSDL.a +endif + +OPTFLAGS=-O2 -fomit-frame-pointer +CFLAGS=-D_arch_dreamcast $(DEFS) $(INCS) -Iinclude -Isrc -Isrc/audio -Isrc/cdrom -Isrc/endian -Isrc/events -Isrc/joystick -Isrc/thread/dc -Isrc/thread -Isrc/timer -Isrc/video $(OPTFLAGS) + +SRCS = \ + src/audio/dc/SDL_dcaudio.c \ + src/audio/dc/aica.c \ + src/audio/SDL_audio.c \ + src/audio/SDL_audiocvt.c \ + src/audio/SDL_audiodev.c \ + src/audio/SDL_audiomem.c \ + src/audio/SDL_mixer.c \ + src/audio/SDL_wave.c \ + src/cdrom/dc/SDL_syscdrom.c \ + src/cdrom/SDL_cdrom.c \ + src/endian/SDL_endian.c \ + src/events/SDL_active.c \ + src/events/SDL_events.c \ + src/events/SDL_expose.c \ + src/events/SDL_keyboard.c \ + src/events/SDL_mouse.c \ + src/events/SDL_quit.c \ + src/events/SDL_resize.c \ + src/file/SDL_rwops.c \ + src/joystick/dc/SDL_sysjoystick.c \ + src/joystick/SDL_joystick.c \ + src/SDL.c \ + src/SDL_error.c \ + src/SDL_fatal.c \ + src/SDL_getenv.c \ + src/SDL_loadso.c \ + src/thread/dc/SDL_syscond.c \ + src/thread/dc/SDL_sysmutex.c \ + src/thread/dc/SDL_syssem.c \ + src/thread/dc/SDL_systhread.c \ + src/thread/SDL_thread.c \ + src/timer/dc/SDL_systimer.c \ + src/timer/SDL_timer.c \ + src/video/dc/SDL_dcevents.c \ + src/video/dc/SDL_dcvideo.c \ + src/video/SDL_blit.c \ + src/video/SDL_blit_0.c \ + src/video/SDL_blit_1.c \ + src/video/SDL_blit_A.c \ + src/video/SDL_blit_N.c \ + src/video/SDL_bmp.c \ + src/video/SDL_cursor.c \ + src/video/SDL_gamma.c \ + src/video/SDL_pixels.c \ + src/video/SDL_RLEaccel.c \ + src/video/SDL_stretch.c \ + src/video/SDL_surface.c \ + src/video/SDL_video.c \ + src/video/SDL_yuv.c \ + src/video/SDL_yuv_sw.c \ + +OBJS = $(SRCS:.c=.o) + +TEST = \ + test/checkkeys.c \ + test/graywin.c \ + test/loopwave.c \ + test/testalpha.c \ + test/testbitmap.c \ + test/testcdrom.c \ + test/testerror.c \ + test/testgamma.c \ + test/testgl.c \ + test/testhread.c \ + test/testjoystick.c \ + test/testkeys.c \ + test/testlock.c \ + test/testoverlay.c \ + test/testpalette.c \ + test/testsem.c \ + test/testsprite.c \ + test/testtimer.c \ + test/testtypes.c \ + test/testver.c \ + test/testvidinfo.c \ + test/testwin.c \ + test/testwm.c \ + test/threadwin.c \ + test/torturethread.c \ + +clean: + rm $(OBJS) + +$(TARGET) : $(OBJS) + $(AR) rcs $(TARGET) $(OBJS) + diff --git a/README.DC b/README.DC new file mode 100644 index 000000000..c7c39b183 --- /dev/null +++ b/README.DC @@ -0,0 +1,37 @@ +SDL for Dreamcast (beta2) + + BERO + bero@geocities.co.jp + + http://www.geocities.co.jp/Playtown/2004/ + +this work with kos-newlib +http://sourceforge.net/projects/dcquake/ + +compile +- edit KOS_BASE in Makefie.dc for your enviroment +- make -f Makefile.dc + +FIXME: The KOS thread files can be found on HERO's site - not in the SDL source. +- overwrite thread/*.c to kos-1.1.7/kernel/thread +- rebuild kos + +compile with gl support +- install latest libgl from http://sourceforge.net/projects/dcquake/ +- uncomment GL=1 in Makefile.dc +- make -f Makefile.dc clean +- make -f Makefile.dc + +install +- copy include/*.h and libSDL.a or libSDL_gl.a for your enviroment + +changelog: + +beta2 +- OpenGL support +- Hardware page flip support + +beta +- thread, timer don't tested so much. +- not support OpenGL + diff --git a/docs.html b/docs.html index 66688f5b5..924bc6751 100644 --- a/docs.html +++ b/docs.html @@ -16,6 +16,7 @@

Major changes since SDL 1.0.0: