Mekanaizer pointed me a stupid bug in sources i uploaded !
And unfortunatly since site is down now, i can't reupload the fix for the moment.
So, for all guys which tried to compile the sources, you should get an error like that :
-D_arch_dreamcast -D _GENS_SOUND_ Â* Â*-fverbose-asm -fexpensive-optimizations -O1
source/dreamcast/main.c: In function `emu_run':
source/dreamcast/main.c:198: `skip_frame' undeclared (first use in this function)
source/dreamcast/main.c:198: (Each undeclared identifier is reported only once
source/dreamcast/main.c:198: for each function it appears in.)
make.exe: *** [out/main.o] Error 1
Execution terminated
It's just because i still was in the IDE when i archived my sources, and some files weren't saved properly at this time.
Here's how fix it :
replace this part of code in the main.c file
Code:
static void emu_run()
{
Â* Â* Â*int res = 0;
Â* Â* Â*pvr_vertex_t vert;
Â* Â* Â*int still_going;
Â* Â* Â*uint32 last_time;
Â* Â* Â*uint32 this_time;
Â* Â* Â*int fps_count = 0;
Â* Â* Â*int vps_count = 0;
Â* Â* Â*still_going = 1;
Â* Â* Â*exec_frames = 0;
Â* Â* Â*draw_frames = 0;
Â* Â* Â*last_time = getTimer();
Â* Â* Â*while(still_going)
Â* Â* Â*{
Â* Â* Â* Â* Â* Â*/* FPS counter stuff */
Â* Â* Â* Â* Â* Â*exec_frames++;
Â* Â* Â* Â* Â* Â*/* Run a frame of emulation */
Â* Â* Â* Â* Â* Â*res = system_frame(res);
Â* Â* Â* Â* Â* Â*if(res == -1)
Â* Â* Â* Â* Â* Â*{
Â* Â* Â* Â* Â* Â* Â* Â* Â*system_reset();
Â* Â* Â* Â* Â* Â* Â* Â* Â*skip_frame = 0;
Â* Â* Â* Â* Â* Â*}
Â* Â* Â* Â* Â* Â*/* Update the controllers */
Â* Â* Â* Â* Â* Â*if(update_input())
Â* Â* Â* Â* Â* Â* Â* Â* Â*still_going = 0;
Â* Â* Â* Â* Â* Â*/* Update screen */
Â* Â* Â* Â* Â* Â*if (skip_frame != 2)
Â* Â* Â* Â* Â* Â*{
by this one
Code:
static void emu_run()
{
Â* Â* Â*int skip_frame = 0;
Â* Â* Â*pvr_vertex_t vert;
Â* Â* Â*int still_going;
Â* Â* Â*uint32 last_time;
Â* Â* Â*uint32 this_time;
Â* Â* Â*int fps_count = 0;
Â* Â* Â*int vps_count = 0;
Â* Â* Â*still_going = 1;
Â* Â* Â*exec_frames = 0;
Â* Â* Â*draw_frames = 0;
Â* Â* Â*last_time = getTimer();
Â* Â* Â*while(still_going)
Â* Â* Â*{
Â* Â* Â* Â* Â* Â*/* FPS counter stuff */
Â* Â* Â* Â* Â* Â*exec_frames++;
Â* Â* Â* Â* Â* Â*/* Run a frame of emulation */
Â* Â* Â* Â* Â* Â*skip_frame = system_frame(skip_frame);
Â* Â* Â* Â* Â* Â*if(skip_frame == -1)
Â* Â* Â* Â* Â* Â*{
Â* Â* Â* Â* Â* Â* Â* Â* Â*system_reset();
Â* Â* Â* Â* Â* Â* Â* Â* Â*skip_frame = 0;
Â* Â* Â* Â* Â* Â*}
Â* Â* Â* Â* Â* Â*/* Update the controllers */
Â* Â* Â* Â* Â* Â*if(update_input())
Â* Â* Â* Â* Â* Â* Â* Â* Â*still_going = 0;
Â* Â* Â* Â* Â* Â*/* Update screen */
Â* Â* Â* Â* Â* Â*if (!skip_frame)
Â* Â* Â* Â* Â* Â*{
Don't forget this version still use the software renderer, so auto frame skip make almost games just unplayable (about 1-3 FPS).
But it should runs descently with hardware renderer.
Bookmarks