pizza: add lag/polling support
This commit is contained in:
parent
e81d269fbe
commit
6637e0a53f
|
@ -102,7 +102,8 @@ namespace BizHawk.Client.ApiHawk
|
||||||
case "VB":
|
case "VB":
|
||||||
case "NGP":
|
case "NGP":
|
||||||
case "DNGP":
|
case "DNGP":
|
||||||
case "O2":
|
case "O2":
|
||||||
|
case "SGB":
|
||||||
return 0; // like I give a shit
|
return 0; // like I give a shit
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -21,12 +21,12 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
||||||
public Pizza(byte[] rom, CoreComm comm)
|
public Pizza(byte[] rom, CoreComm comm)
|
||||||
:base(comm, new Configuration
|
:base(comm, new Configuration
|
||||||
{
|
{
|
||||||
DefaultWidth = 160,
|
DefaultWidth = 256,
|
||||||
DefaultHeight = 144,
|
DefaultHeight = 224,
|
||||||
MaxWidth = 256,
|
MaxWidth = 256,
|
||||||
MaxHeight = 224,
|
MaxHeight = 224,
|
||||||
MaxSamples = 1024,
|
MaxSamples = 1024,
|
||||||
SystemId = "GB",
|
SystemId = "SGB",
|
||||||
DefaultFpsNumerator = TICKSPERSECOND,
|
DefaultFpsNumerator = TICKSPERSECOND,
|
||||||
DefaultFpsDenominator = TICKSPERFRAME
|
DefaultFpsDenominator = TICKSPERFRAME
|
||||||
})
|
})
|
||||||
|
|
|
@ -29,6 +29,8 @@ char global_cpu_double_speed;
|
||||||
char global_debug;
|
char global_debug;
|
||||||
char global_rumble;
|
char global_rumble;
|
||||||
char global_window; // if true, show window
|
char global_window; // if true, show window
|
||||||
|
int global_lagged;
|
||||||
|
void (*global_input_callback)(void);
|
||||||
|
|
||||||
void global_init()
|
void global_init()
|
||||||
{
|
{
|
||||||
|
@ -38,5 +40,7 @@ void global_init()
|
||||||
global_sgb = 0;
|
global_sgb = 0;
|
||||||
global_cpu_double_speed = 0;
|
global_cpu_double_speed = 0;
|
||||||
global_rumble = 0;
|
global_rumble = 0;
|
||||||
|
global_lagged = 0;
|
||||||
|
global_input_callback = NULL;
|
||||||
sprintf(global_cart_name, "NOCARTIRDGE");
|
sprintf(global_cart_name, "NOCARTIRDGE");
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,8 @@ extern char global_sgb;
|
||||||
extern char global_cpu_double_speed;
|
extern char global_cpu_double_speed;
|
||||||
extern char global_rumble;
|
extern char global_rumble;
|
||||||
extern char global_cart_name[256];
|
extern char global_cart_name[256];
|
||||||
|
extern int global_lagged;
|
||||||
|
extern void (*global_input_callback)(void);
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
void global_init();
|
void global_init();
|
||||||
|
|
|
@ -250,6 +250,9 @@ uint8_t mmu_read(uint16_t a)
|
||||||
|
|
||||||
/* joypad reading */
|
/* joypad reading */
|
||||||
case 0xFF00:
|
case 0xFF00:
|
||||||
|
global_lagged = 0;
|
||||||
|
if (global_input_callback)
|
||||||
|
global_input_callback();
|
||||||
return global_sgb ? sgb_read_ff00(cycles.sampleclock) : input_get_keys(mmu.memory[a]);
|
return global_sgb ? sgb_read_ff00(cycles.sampleclock) : input_get_keys(mmu.memory[a]);
|
||||||
|
|
||||||
/* CGB HDMA transfer */
|
/* CGB HDMA transfer */
|
||||||
|
|
|
@ -106,6 +106,7 @@ EXPORT void FrameAdvance(MyFrameInfo *frame)
|
||||||
else
|
else
|
||||||
input_set_keys(frame->Keys);
|
input_set_keys(frame->Keys);
|
||||||
current_vbuff = frame->VideoBuffer;
|
current_vbuff = frame->VideoBuffer;
|
||||||
|
global_lagged = 1;
|
||||||
|
|
||||||
uint64_t current = cycles.sampleclock;
|
uint64_t current = cycles.sampleclock;
|
||||||
uint64_t target = current + 35112 - overflow;
|
uint64_t target = current + 35112 - overflow;
|
||||||
|
@ -125,6 +126,7 @@ EXPORT void FrameAdvance(MyFrameInfo *frame)
|
||||||
frame->Width = 160;
|
frame->Width = 160;
|
||||||
frame->Height = 144;
|
frame->Height = 144;
|
||||||
}
|
}
|
||||||
|
frame->Lagged = global_lagged;
|
||||||
current_vbuff = NULL;
|
current_vbuff = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +137,7 @@ EXPORT int IsCGB(void)
|
||||||
|
|
||||||
EXPORT void SetInputCallback(void (*callback)(void))
|
EXPORT void SetInputCallback(void (*callback)(void))
|
||||||
{
|
{
|
||||||
// TODO
|
global_input_callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT void GetMemoryAreas(MemoryArea *m)
|
EXPORT void GetMemoryAreas(MemoryArea *m)
|
||||||
|
|
Loading…
Reference in New Issue