mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
giz rc1 release
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@268 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
a8869ad1e8
commit
da42200b24
14 changed files with 328 additions and 194 deletions
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,");
|
||||
|
|
|
@ -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){}
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue