Merge branch 'master' of git://github.com/Themaister/RetroArch

This commit is contained in:
Toad King 2012-06-27 00:57:59 -04:00
commit bae4f75d2c
6 changed files with 34 additions and 9 deletions

View File

@ -1,6 +1,7 @@
CELL_BUILD_TOOLS = SNC CELL_BUILD_TOOLS = SNC
CELL_SDK ?= /usr/local/cell CELL_SDK ?= /usr/local/cell
HAVE_LOGGER = 0 HAVE_LOGGER = 0
CELL_MK_DIR ?= $(CELL_SDK)/samples/mk
include $(CELL_MK_DIR)/sdk.makedef.mk include $(CELL_MK_DIR)/sdk.makedef.mk
@ -32,4 +33,6 @@ PPU_LDLIBS += -lm -lnet_stub -lnetctl_stub -lio_stub -lsysmodule_stub -lsysutil
PPU_OPTIMIZE_LV := -O2 PPU_OPTIMIZE_LV := -O2
MAKE_FSELF = $(CELL_SDK)/host-win32/bin/make_fself.exe
include $(CELL_MK_DIR)/sdk.target.mk include $(CELL_MK_DIR)/sdk.target.mk

View File

@ -14,8 +14,6 @@ CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++ CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++
LD = $(DEVKITPPC)/bin/powerpc-eabi-ld LD = $(DEVKITPPC)/bin/powerpc-eabi-ld
FREETYPECONFIG = $(DEVKITPRO)/portlibs/ppc/bin/freetype-config
DOL_TARGET := retroarch.dol DOL_TARGET := retroarch.dol
ELF_TARGET := retroarch.elf ELF_TARGET := retroarch.elf
@ -23,15 +21,16 @@ INCLUDE := -I. -I$(DEVKITPRO)/libogc/include
LIBDIRS := -L$(DEVKITPRO)/libogc/lib/wii -L. LIBDIRS := -L$(DEVKITPRO)/libogc/lib/wii -L.
MACHDEP := -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float MACHDEP := -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE) $(shell $(FREETYPECONFIG) --cflags) CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE)
CXXFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE) $(shell $(FREETYPECONFIG) --cflags) CXXFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP) $(shell $(FREETYPECONFIG) --libs) LDFLAGS := $(MACHDEP)
LIBS := -lfat -lretro -lwiiuse -logc -lbte LIBS := -lfat -lretro -lwiiuse -logc -lbte
OBJ = console/griffin/griffin.o console/font.bmpobj console/rzlib/rzlib.o OBJ = console/griffin/griffin.o console/font.bmpobj console/rzlib/rzlib.o
ifeq ($(HAVE_LOGGER), 1) ifeq ($(HAVE_LOGGER), 1)
CFLAGS += -DHAVE_LOGGER CFLAGS += -DHAVE_LOGGER
CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
OBJ += console/logger/logger.o OBJ += console/logger/logger.o
endif endif
@ -39,7 +38,7 @@ ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER CFLAGS += -DHAVE_FILE_LOGGER
endif endif
CFLAGS += -std=gnu99 -DHAVE_DEFAULT_RETROPAD_INPUT -DRARCH_CONSOLE -DHAVE_CONFIGFILE=1 -DGEKKO -DHW_RVL -DHAVE_ZLIB -DHAVE_RARCH_MAIN_WRAP -DHAVE_FREETYPE -DHAVE_GRIFFIN=1 -DPACKAGE_VERSION=\"0.9.6\" -Dmain=rarch_main -Wno-char-subscripts -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) CFLAGS += -std=gnu99 -DHAVE_DEFAULT_RETROPAD_INPUT -DRARCH_CONSOLE -DHAVE_CONFIGFILE=1 -DGEKKO -DHW_RVL -DHAVE_ZLIB -DHAVE_RARCH_MAIN_WRAP -DHAVE_GRIFFIN=1 -DPACKAGE_VERSION=\"0.9.6\" -Dmain=rarch_main -Wno-char-subscripts
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g CFLAGS += -O0 -g
@ -63,6 +62,9 @@ $(ELF_TARGET): $(OBJ)
%.bmpobj: %.bmp %.bmpobj: %.bmp
$(LD) -r -b binary -o $@ $< $(LD) -r -b binary -o $@ $<
pkg: all
cp -r $(DOL_TARGET) wii/pkg/boot.dol
clean: clean:
rm -f $(DOL_TARGET) rm -f $(DOL_TARGET)
rm -f $(ELF_TARGET) rm -f $(ELF_TARGET)

View File

@ -103,6 +103,7 @@ static ssize_t wii_audio_write(void *data, const void *buf_, size_t size)
if (frames < to_write) if (frames < to_write)
to_write = frames; to_write = frames;
// FIXME: Nonblocking audio should break out of loop when it has nothing to write.
while ((wa->dma_write == wa->dma_next || wa->dma_write == wa->dma_busy) && !wa->nonblock) while ((wa->dma_write == wa->dma_next || wa->dma_write == wa->dma_busy) && !wa->nonblock)
LWP_ThreadSleep(wa->cond); LWP_ThreadSleep(wa->cond);
@ -155,6 +156,18 @@ static void wii_audio_free(void *data)
g_audio = NULL; g_audio = NULL;
} }
static size_t wii_audio_write_avail(void *data)
{
wii_audio_t *wa = data;
return ((wa->dma_busy - wa->dma_write + BLOCKS) & (BLOCKS - 1)) * CHUNK_SIZE;
}
static size_t wii_audio_buffer_size(void *data)
{
(void)data;
return BLOCKS * CHUNK_SIZE;
}
const audio_driver_t audio_wii = { const audio_driver_t audio_wii = {
.init = wii_audio_init, .init = wii_audio_init,
.write = wii_audio_write, .write = wii_audio_write,
@ -162,6 +175,8 @@ const audio_driver_t audio_wii = {
.start = wii_audio_start, .start = wii_audio_start,
.set_nonblock_state = wii_audio_set_nonblock_state, .set_nonblock_state = wii_audio_set_nonblock_state,
.free = wii_audio_free, .free = wii_audio_free,
.ident = "wii" .ident = "wii",
.write_avail = wii_audio_write_avail,
.buffer_size = wii_audio_buffer_size,
}; };

View File

@ -29,7 +29,7 @@
#define TERM_WIDTH (((RGUI_WIDTH - 30) / (FONT_WIDTH_STRIDE))) #define TERM_WIDTH (((RGUI_WIDTH - 30) / (FONT_WIDTH_STRIDE)))
#define TERM_HEIGHT (((RGUI_HEIGHT - 30) / (FONT_HEIGHT_STRIDE))) #define TERM_HEIGHT (((RGUI_HEIGHT - 30) / (FONT_HEIGHT_STRIDE)))
#define TERM_START_X 15 #define TERM_START_X 15
#define TERM_START_Y 15 #define TERM_START_Y 30
struct rgui_handle struct rgui_handle
{ {
@ -180,6 +180,8 @@ static void render_text(rgui_handle_t *rgui, size_t begin, size_t end)
fill_rect(rgui->frame_buf, rgui->frame_buf_pitch, fill_rect(rgui->frame_buf, rgui->frame_buf_pitch,
RGUI_WIDTH - 10, 5, 5, RGUI_HEIGHT - 10, green_filler); RGUI_WIDTH - 10, 5, 5, RGUI_HEIGHT - 10, green_filler);
blit_line(rgui, TERM_START_X + 15, 15, "FILE BROWSER\n", true);
unsigned x = TERM_START_X; unsigned x = TERM_START_X;
unsigned y = TERM_START_Y; unsigned y = TERM_START_Y;

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1"> <app version="1">
<name>RetroArch Wii</name> <name>RetroArch Wii</name>
<coder>Themaister, Squarepusher2</coder> <coder>Themaister, Squarepusher2, ToadKing</coder>
<version>0.9.6</version> <version>0.9.6</version>
<release_date>2012</release_date> <release_date>2012</release_date>
<short_description>Multi-system emulator</short_description> <short_description>Multi-system emulator</short_description>

View File

@ -323,6 +323,9 @@ static bool wii_frame(void *data, const void *frame,
(void)data; (void)data;
(void)msg; (void)msg;
if(!frame)
return true;
while (g_vsync && !g_draw_done) while (g_vsync && !g_draw_done)
LWP_ThreadSleep(g_video_cond); LWP_ThreadSleep(g_video_cond);