extend mmap wrapper functionality
[libpicofe.git] / psp / Makefile
index 7a0cada..026249e 100644 (file)
@@ -4,88 +4,110 @@ PSPSDK = $(shell psp-config --pspsdk-path)
 \r
 # settings\r
 #use_musashi = 1\r
-use_mz80 = 1\r
+#use_mz80 = 1\r
 amalgamate = 0\r
-#profile = 1\r
-#up = 1\r
+for_15fw = 1\r
+# :!touch platform/psp/psp.c\r
 \r
 \r
-CFLAGS += -I../.. -I. -D_UNZIP_SUPPORT -DNO_SYNC # -DBENCHMARK\r
-CFLAGS += -Wall -Winline\r
+CFLAGS += -I../.. -I. -DNO_SYNC -D_ASM_DRAW_C_AMIPS\r
+CFLAGS += -Wall -Winline -G0\r
+#CFLAGS += -DLPRINTF_STDIO\r
+#CFLAGS += -pg\r
 ifeq ($(DEBUG),)\r
-CFLAGS += -O2 -G0 -ftracer -fstrength-reduce -ffast-math\r
+CFLAGS += -O2 -ftracer -fstrength-reduce -ffast-math\r
 else\r
 CFLAGS += -ggdb\r
 endif\r
-ifeq "$(profile)" "1"\r
-CFLAGS += -fprofile-generate\r
-endif\r
-ifeq "$(profile)" "2"\r
-CFLAGS += -fprofile-use\r
+ifeq "$(for_15fw)" "1"\r
+CFLAGS += -DFW15\r
 endif\r
 \r
 \r
-# frontend\r
-OBJS += main.o emu.o mp3.o menu.o psp.o\r
+# frontend and stuff\r
+OBJS += main.o emu.o mp3.o menu.o psp.o asm_utils.o\r
 \r
 # common\r
-OBJS += ../common/emu.o ../common/menu.o ../common/fonts.o ../common/readpng.o\r
+OBJS += platform/common/emu.o platform/common/menu.o platform/common/fonts.o platform/common/config.o platform/common/readpng.o\r
 \r
 # Pico\r
 ifeq "$(amalgamate)" "1"\r
-OBJS += ../../PicoAll.o\r
+OBJS += ../../picoAll.o\r
 else\r
-OBJS += ../../Pico/Area.o ../../Pico/Cart.o ../../Pico/Memory.o ../../Pico/Misc.o \\r
-               ../../Pico/Pico.o ../../Pico/Sek.o ../../Pico/VideoPort.o ../../Pico/Draw2.o ../../Pico/Draw.o \\r
-               ../../Pico/Patch.o ../../Pico/Draw_amips.o\r
+OBJS += pico/area.o pico/cart.o pico/memory.o pico/misc.o pico/pico.o pico/sek.o pico/videoport.o \\r
+       pico/draw2.o pico/draw.o pico/z80if.o pico/patch.o pico/draw_amips.o pico/memory_amips.o \\r
+       pico/misc_amips.o pico/debug.o\r
 # Pico - CD\r
-OBJS += ../../Pico/cd/Pico.o ../../Pico/cd/Memory.o ../../Pico/cd/Sek.o ../../Pico/cd/LC89510.o \\r
-               ../../Pico/cd/cd_sys.o ../../Pico/cd/cd_file.o ../../Pico/cd/gfx_cd.o \\r
-               ../../Pico/cd/Area.o ../../Pico/cd/Misc.o ../../Pico/cd/pcm.o ../../Pico/cd/buffering.o\r
+OBJS += pico/cd/pico.o pico/cd/memory.o pico/cd/sek.o pico/cd/LC89510.o \\r
+               pico/cd/cd_sys.o pico/cd/cd_file.o pico/cd/cue.o pico/cd/gfx_cd.o \\r
+               pico/cd/area.o pico/cd/misc.o pico/cd/pcm.o pico/cd/buffering.o\r
+# Pico - carthw\r
+OBJS += pico/carthw/carthw.o pico/carthw/svp/svp.o pico/carthw/svp/memory.o \\r
+               pico/carthw/svp/ssp16.o\r
+# Pico - Pico\r
+OBJS += pico/pico/pico.o pico/pico/memory.o pico/pico/xpcm.o\r
 endif\r
 \r
 # Pico - sound\r
 ifneq "$(amalgamate)" "1"\r
-OBJS += ../../Pico/sound/sound.o\r
+OBJS += pico/sound/sound.o\r
 endif\r
-OBJS += ../../Pico/sound/mix.o\r
-OBJS += ../../Pico/sound/sn76496.o ../../Pico/sound/ym2612.o\r
+OBJS += pico/sound/mix.o\r
+OBJS += pico/sound/sn76496.o pico/sound/ym2612.o\r
 # zlib (hacked)\r
-OBJS += ../../zlib/gzio.o ../../zlib/inffast.o ../../zlib/inflate.o ../../zlib/inftrees.o ../../zlib/trees.o \\r
-       ../../zlib/deflate.o ../../zlib/crc32.o ../../zlib/adler32.o ../../zlib/zutil.o ../../zlib/compress.o\r
+OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \\r
+       zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o \\r
+       zlib/uncompr.o\r
 # unzip\r
-OBJS += ../../unzip/unzip.o ../../unzip/unzip_stream.o\r
+OBJS += unzip/unzip.o unzip/unzip_stream.o\r
 # CPU cores\r
 ifeq "$(use_musashi)" "1"\r
 CFLAGS += -DEMU_M68K\r
-OBJS += ../../cpu/musashi/m68kops.o ../../cpu/musashi/m68kcpu.o\r
+OBJS += cpu/musashi/m68kops.o cpu/musashi/m68kcpu.o\r
 else\r
 CFLAGS += -DEMU_F68K\r
-OBJS += ../../cpu/fame/famec.o\r
+OBJS += cpu/fame/famec.o\r
 endif\r
 # z80\r
 ifeq "$(use_mz80)" "1"\r
 CFLAGS += -D_USE_MZ80\r
-OBJS += ../../cpu/mz80/mz80.o\r
+OBJS += cpu/mz80/mz80.o\r
 else\r
-$(error nothing here!)\r
+CFLAGS += -D_USE_CZ80\r
+OBJS += cpu/cz80/cz80.o\r
 endif\r
+# bg images\r
+OBJS += data/bg32.o data/bg40.o\r
+\r
+vpath %.c = ../..\r
+vpath %.s = ../..\r
+DIRS = platform platform/psp platform/common pico pico/cd pico/pico pico/sound pico/carthw/svp \\r
+       zlib unzip cpu cpu/musashi cpu/fame cpu/mz80 cpu/cz80\r
+\r
 \r
+LIBS += -lpng -lm -lpspgu -lpsppower -lpspaudio -lpsprtc -lpspaudiocodec -lpspkubridge\r
+#LIBS += -lpspprof\r
+LDFLAGS += -Wl,-Map=PicoDrive.map\r
 \r
-LIBS += -lpng -lm -lpspgu -lpsppower -Wl,-Map=PicoDrive.map # -lpspaudio -lpsphprm\r
 \r
 # target\r
 TARGET = PicoDrive\r
-EXTRA_TARGETS = EBOOT.PBP\r
-PSP_EBOOT_TITLE = PICODRIVE\r
-#PSP_EBOOT_ICON = .png\r
+EXTRA_TARGETS = mkdirs EBOOT.PBP\r
+PSP_EBOOT_TITLE = PicoDrive\r
+PSP_EBOOT_ICON = data/icon.png\r
 #PSP_EBOOT_PIC1 = .png\r
+ifneq "$(for_15fw)" "1"\r
+BUILD_PRX = 1\r
+endif\r
 \r
 CUSTOM_CLEAN = myclean\r
 \r
 include $(PSPSDK)/lib/build.mak\r
 \r
 # some additional rules\r
+mkdirs:\r
+       mkdir -p $(DIRS)\r
+\r
 .c.o:\r
        @echo ">>>" $<\r
        $(CC) $(CFLAGS) -c $< -o $@\r
@@ -99,24 +121,51 @@ AS := psp-as
 ../../cpu/musashi/m68kops.c :\r
        make -C ../../cpu/musashi\r
 \r
+cpu/fame/famec.o : ../../cpu/fame/famec.c\r
+       @echo ">>>" $<\r
+       $(CC) $(CFLAGS) -Wno-unused -c $< -o $@\r
+\r
+pico/misc.o : ../../pico/misc.c\r
+       @echo ">>>" $<\r
+       $(CC) $(CFLAGS) -c $< -o $@ -D_ASM_MISC_C_AMIPS\r
+\r
+pico/memory.o : ../../pico/memory.c\r
+       @echo ">>>" $<\r
+       $(CC) $(CFLAGS) -O2 -c $< -o $@ -D_ASM_MEMORY_C -D_ASM_MEMORY_C_AMIPS\r
+\r
+pico/cd/memory.o : ../../pico/cd/memory.c\r
+       @echo ">>>" $<\r
+       $(CC) $(CFLAGS) -O2 -c $< -o $@\r
+\r
+pico/cd/gfx_cd.o : ../../pico/cd/gfx_cd.c\r
+       @echo ">>>" $<\r
+       $(CC) $(CFLAGS) -O2 -c $< -o $@\r
+\r
 readme.txt: ../../tools/textfilter ../base_readme.txt\r
        ../../tools/textfilter ../base_readme.txt $@ PSP\r
 \r
 ../../tools/textfilter: ../../tools/textfilter.c\r
        make -C ../../tools/ textfilter\r
 \r
-../../cpu/fame/famec.o : ../../cpu/fame/famec.c\r
-       @echo ">>>" $<\r
-       $(CC) $(CFLAGS) -Wno-unused -c $< -o $@\r
+data/bg32.o: data/bg32.bin\r
+       bin2o -i $< $@ bgdatac32\r
 \r
-# ?\r
+data/bg40.o: data/bg40.bin\r
+       bin2o -i $< $@ bgdatac40\r
+\r
+#\r
+ifndef UPDIR\r
+UPDIR = /media/disk/PSP/GAME/PicoDrive/\r
+endif\r
 up: EBOOT.PBP\r
-       @cp -v $^ /media/disk/PSP/GAME/PicoDrive/\r
+       @cp -v $^ $(UPDIR)\r
 \r
 \r
 # cleanup\r
 \r
 myclean:\r
+       #rm -rf $(DIRS)\r
+       $(RM) PicoDrive.map\r
        make -C ../../cpu/musashi clean\r
 \r
 \r
@@ -132,7 +181,25 @@ endif
 endif\r
 \r
 # ?\r
-rel: EBOOT.PBP readme.txt\r
-       zip -9 -j ../../PicoDrive_$(VER).zip $^\r
-#      zip -9 -r ../../PicoDrive_$(VER).zip skin -i \*.png -i \*.txt\r
+rel: EBOOT.PBP readme.txt ../game_def.cfg\r
+       mkdir -p PicoDrive/skin/\r
+       cp $^ PicoDrive/\r
+       cp skin/* PicoDrive/skin/\r
+       zip -9 -r ../../PicoDrive_psp_$(VER).zip PicoDrive\r
+       rm -rf PicoDrive\r
+       mkdir bin_to_cso_mp3\r
+       cp ../../tools/bin_to_cso_mp3/* bin_to_cso_mp3/\r
+       zip -9 -r ../../PicoDrive_psp_$(VER).zip bin_to_cso_mp3\r
+       rm -rf bin_to_cso_mp3\r
+\r
+rel_kxploit: readme.txt ../game_def.cfg\r
+       mkdir -p PicoDrive/skin/\r
+       cp $^ PicoDrive/\r
+       cp skin/* PicoDrive/skin/\r
+       zip -9 -r ../../PicoDrive_psp_$(VER)_kxploit.zip PicoDrive\r
+       zip -9 -r ../../PicoDrive_psp_$(VER)_kxploit.zip PicoDrive%\r
+       mkdir bin_to_cso_mp3\r
+       cp ../../tools/bin_to_cso_mp3/* bin_to_cso_mp3/\r
+       zip -9 -r ../../PicoDrive_psp_$(VER)_kxploit.zip bin_to_cso_mp3\r
+       rm -rf bin_to_cso_mp3\r
 \r