📄 video.c
字号:
#include <stdlib.h>
#include "fb.h"
#include "input.h"
#include <stdio.h>
#include "pcm.h"
struct fb fb;
int swapButtons;
struct pcm pcmaudio;
extern void gb_vidset(unsigned char*);
extern void gb_setbuttons(int aSettings);
extern int gb_getbuttons();
void vid_init()
{
fb.ptr = (unsigned char*)gb_malloc(144*160*2);
memset(fb.ptr, 0, (144*160*2));
fb.pitch = 320;
fb.w = 160;
fb.h = 144;
fb.dirty = 1;
fb.enabled = 2;
fb.yuv = 0;
fb.indexed = 0;
fb.cc[0].r = fb.cc[1].r = fb.cc[2].r = 4;
fb.cc[0].l = 8;
fb.cc[1].l = 4;
fb.cc[2].l = 0;
fb.pelsize = 2;
gb_vidset(fb.ptr);
}
void vid_close()
{
gb_free(fb.ptr);
gb_free(pcmaudio.buf);
}
int vid_toggle_enable()
{
fb.enabled--;
if (fb.enabled < 0)
{
fb.enabled = 2;
}
return (fb.enabled != 0);
}
unsigned char* vidptr()
{
return fb.ptr;
}
void PostEvent(int aScancode, int aDown)
{
if (aScancode)
{
event_t ev;
ev.type = aDown ? EV_PRESS : EV_RELEASE;
ev.code = aScancode;
ev_postevent(&ev);
}
}
void doSaveState(char *name)
{
FILE* f;
swapButtons = gb_getbuttons();
if ((f = fopen(name, "wb")))
{
savestate(f);
fclose(f);
}
}
void doLoadState(char *name)
{
FILE* f;
if ((f = fopen(name, "rb")))
{
loadstate(f);
fclose(f);
vram_dirty();
pal_dirty();
sound_dirty();
mem_updatemap();
}
gb_setbuttons(swapButtons);
}
void pcm_init()
{
int a;
a = &pcmaudio;
pcmaudio.hz = PCM_HZ;
pcmaudio.len = 4096;
pcmaudio.buf = (signed short*)gb_malloc(pcmaudio.len * 2);
pcmaudio.pos = 0;
sound_reset();
}
void pcm_submit()
{
int a;
// a = pcmaudio.pos;
gb_submitsound(pcmaudio.buf, pcmaudio.pos);
pcmaudio.pos = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -