giz rc1 release

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@268 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2007-10-04 21:14:45 +00:00
parent a8869ad1e8
commit da42200b24
14 changed files with 328 additions and 194 deletions

View file

@ -1,6 +1,6 @@
# you may or may not need to change this
CROSS = /opt/cegcc/arm-wince-cegcc/bin/
export CROSS = /opt/cegcc/arm-wince-cegcc/bin/
# settings
asm_memory = 1
@ -38,7 +38,8 @@ LD = $(CROSS)ld
OBJS += main.o emu.o menu.o giz.o asm_utils.o
# common
OBJS += ../common/emu.o ../common/menu.o ../common/fonts.o ../common/arm_utils.o ../common/readpng.o
OBJS += ../common/emu.o ../common/menu.o ../common/fonts.o ../common/arm_utils.o \
../common/readpng.o ../common/mp3_helix.o
# Pico
ifeq "$(amalgamate)" "1"
@ -91,8 +92,6 @@ OBJS += ../../zlib/gzio.o ../../zlib/inffast.o ../../zlib/inflate.o ../../zlib/i
../../zlib/deflate.o ../../zlib/crc32.o ../../zlib/adler32.o ../../zlib/zutil.o ../../zlib/compress.o
# unzip
OBJS += ../../unzip/unzip.o ../../unzip/unzip_stream.o
# mp3
OBJS += mp3.o
# CPU cores
# Cyclone
DEFINC += -DEMU_C68K
@ -104,7 +103,7 @@ OBJS += ../../cpu/DrZ80/drz80.o
all: PicoDrive.exe
PicoDrive.exe : $(OBJS)
PicoDrive.exe : $(OBJS) ../common/helix/helix_mp3.a
@echo ">>>" $@
$(GCC) -o $@ -static $(COPT) $^ -lm -lpng -Lkgsdk/ -lKGSDK -Wl,-Map=PicoDrive.map 2>&1 | \
grep -v ".idata$$4" # | grep -v "supports interworking, whereas"
@ -153,6 +152,9 @@ endif
@echo building Cyclone...
@make -C ../../cpu/Cyclone/proj CONFIG_FILE=config_pico.h
# build helix libs
../common/helix/helix_mp3.a:
make -C ../common/helix
# cleanup

View file

@ -73,6 +73,8 @@ static void emu_state_cb(const char *str)
Framework2D_UnlockBuffer();
giz_screen = NULL;
Sleep(0); /* yield the CPU, the system may need it */
}
static void emu_msg_tray_open(void)
@ -299,7 +301,7 @@ static void vidResetMode(void)
giz_screen = NULL;
}
/*
#include <stdarg.h>
static void stdbg(const char *fmt, ...)
{
@ -313,7 +315,7 @@ static void stdbg(const char *fmt, ...)
noticeMsgTime = GetTickCount();
}
*/
static void updateSound(int len)
{
@ -323,8 +325,8 @@ static void updateSound(int len)
PsndOut += len;
if (PsndOut - snd_cbuff >= snd_cbuf_samples)
{
if (PsndOut - snd_cbuff != snd_cbuf_samples)
stdbg("snd diff is %i, not %i", PsndOut - snd_cbuff, snd_cbuf_samples);
//if (PsndOut - snd_cbuff != snd_cbuf_samples)
// stdbg("snd diff is %i, not %i", PsndOut - snd_cbuff, snd_cbuf_samples);
PsndOut = snd_cbuff;
}
}
@ -365,31 +367,43 @@ void emu_forcedFrame(void)
static void RunEvents(unsigned int which)
{
if (which & 0x1800) { // save or load (but not both)
if (which & 0x1800) // save or load (but not both)
{
int do_it = 1;
if (PsndOut != NULL)
FrameworkAudio_SetPause(1);
if (giz_screen == NULL)
giz_screen = Framework2D_LockBuffer();
if ( emu_checkSaveFile(state_slot) &&
(( (which & 0x1000) && (currentConfig.EmuOpt & 0x800)) || // load
(!(which & 0x1000) && (currentConfig.EmuOpt & 0x200))) ) // save
{
int keys;
if (giz_screen == NULL)
giz_screen = Framework2D_LockBuffer();
blit("", (which & 0x1000) ? "LOAD STATE? (PLAY=yes, STOP=no)" : "OVERWRITE SAVE? (PLAY=yes, STOP=no)");
while( !((keys = Framework_PollGetButtons()) & (BTN_PLAY|BTN_STOP)) )
Sleep(50);
if (keys & BTN_STOP) do_it = 0;
while( ((keys = Framework_PollGetButtons()) & (BTN_PLAY|BTN_STOP)) ) // wait for release
Sleep(50);
clearArea(0);
}
if (do_it) {
if (do_it)
{
osd_text(4, 232, (which & 0x1000) ? "LOADING GAME" : "SAVING GAME");
PicoStateProgressCB = emu_state_cb;
emu_SaveLoadGame((which & 0x1000) >> 12, 0);
PicoStateProgressCB = NULL;
Sleep(0);
}
if (PsndOut != NULL)
FrameworkAudio_SetPause(0);
reset_timing = 1;
}
if (which & 0x0400) { // switch renderer
if (which & 0x0400) // switch renderer
{
if (PicoOpt&0x10) { PicoOpt&=~0x10; currentConfig.EmuOpt |= 0x80; }
else { PicoOpt|= 0x10; currentConfig.EmuOpt &= ~0x80; }
@ -405,7 +419,8 @@ static void RunEvents(unsigned int which)
noticeMsgTime = GetTickCount();
}
if (which & 0x0300) {
if (which & 0x0300)
{
if(which&0x0200) {
state_slot -= 1;
if(state_slot < 0) state_slot = 9;
@ -560,10 +575,11 @@ void emu_Loop(void)
PsndOut = NULL;
if (currentConfig.EmuOpt & 4)
{
int ret, snd_excess_add, stereo=(PicoOpt&8)>>3;
int ret, snd_excess_add, stereo;
if (PsndRate != PsndRate_old || (PicoOpt&0x0b) != (PicoOpt_old&0x0b) || Pico.m.pal != pal_old) {
sound_rerate(Pico.m.frame_count ? 1 : 0);
}
stereo=(PicoOpt&8)>>3;
snd_excess_add = ((PsndRate - PsndLen*target_fps)<<16) / target_fps;
snd_cbuf_samples = (PsndRate<<stereo) * 16 / target_fps;
lprintf("starting audio: %i len: %i (ex: %04x) stereo: %i, pal: %i\n",
@ -593,7 +609,7 @@ void emu_Loop(void)
tval = GetTickCount();
if (reset_timing || tval < tval_prev) {
stdbg("timing reset");
//stdbg("timing reset");
reset_timing = 0;
tval_thissec = tval;
frames_shown = frames_done = 0;
@ -665,7 +681,7 @@ void emu_Loop(void)
audio_skew_prev = audio_skew;
target_frametime += adj;
sec_ms = (target_frametime * target_fps) >> 8;
stdbg("%i %i %i", audio_skew, adj, sec_ms);
//stdbg("%i %i %i", audio_skew, adj, sec_ms);
frames_done = frames_shown = 0;
}
else if (currentConfig.Frameskip < 0) {

View file

@ -1257,11 +1257,18 @@ static int menu_loop_options(void)
}
break;
case MA_OPT_SOUND_QUALITY:
if ((inp & BTN_RIGHT) && currentConfig.PsndRate == 44100 && !(currentConfig.PicoOpt&0x08)) {
currentConfig.PsndRate = 11025; currentConfig.PicoOpt|= 0x08;
} else if ((inp & BTN_LEFT) && currentConfig.PsndRate == 11025 && (currentConfig.PicoOpt&0x08)) {
currentConfig.PsndRate = 44100; currentConfig.PicoOpt&=~0x08;
} else currentConfig.PsndRate = sndrate_prevnext(currentConfig.PsndRate, inp & BTN_RIGHT);
if ((inp & BTN_RIGHT) && currentConfig.PsndRate == 44100 &&
!(currentConfig.PicoOpt&0x08))
{
currentConfig.PsndRate = 11025;
currentConfig.PicoOpt |= 8;
} else if ((inp & BTN_LEFT) && currentConfig.PsndRate == 11025 &&
(currentConfig.PicoOpt&0x08) && !(PicoMCD&1))
{
currentConfig.PsndRate = 44100;
currentConfig.PicoOpt &= ~8;
} else
currentConfig.PsndRate = sndrate_prevnext(currentConfig.PsndRate, inp & BTN_RIGHT);
break;
case MA_OPT_REGION:
region_prevnext(inp & BTN_RIGHT);
@ -1347,7 +1354,7 @@ static void draw_menu_credits(void)
menu_draw_begin(1);
text_out16(tl_x, 20, "PicoDrive v" VERSION " (c) notaz, 2006,2007");
text_out16(tl_x, 30, "beta1");
text_out16(tl_x, 30, "rc1");
y = tl_y;
text_out16(tl_x, y, "Credits:");
text_out16(tl_x, (y+=10), "Dave: Cyclone 68000 core,");

View file

@ -1,8 +0,0 @@
#include <stdio.h>
int mp3_get_bitrate(FILE *f, int size){ return 1; }
void mp3_start_play(FILE *f, int pos){}
int mp3_get_offset(void){ return 0; } // 0-1023
void mp3_update(int *buffer, int length, int stereo){}