loadsave: only for BAT features cartidge [load|save] state: for all cartidge. It's like snapshot
74 lines
2.0 KiB
C
74 lines
2.0 KiB
C
#include "gb.h"
|
|
#define SDL_DISABLE_IMMINTRIN_H
|
|
#include <SDL2/SDL.h>
|
|
|
|
int in;
|
|
u8 keys;
|
|
void* window;
|
|
u8* pic;
|
|
SDL_Renderer* renderer;
|
|
SDL_Texture* bitmapTex;
|
|
|
|
void
|
|
render()
|
|
{
|
|
SDL_UpdateTexture(bitmapTex, nil, pic, 160 * sizeof(u32));
|
|
SDL_RenderCopy(renderer, bitmapTex, nil, nil);
|
|
SDL_RenderPresent(renderer);
|
|
}
|
|
|
|
void
|
|
joypadevent(void*_)
|
|
{
|
|
SDL_Event evt;
|
|
|
|
addevent(&evjoypad, JOYPAD_CYCLE);
|
|
if (SDL_PollEvent(&evt) == 0)
|
|
return;
|
|
switch (evt.type) {
|
|
case SDL_KEYUP: keys = 0; break;
|
|
case SDL_KEYDOWN:
|
|
switch (evt.key.keysym.scancode) {
|
|
case SDL_SCANCODE_F1: savereq = 1; break;
|
|
case SDL_SCANCODE_F2: loadreq = 1; break;
|
|
case SDL_SCANCODE_X: keys = GB_KEY_A; break;
|
|
case SDL_SCANCODE_Z: keys = GB_KEY_B; break;
|
|
case SDL_SCANCODE_UP: keys = GB_KEY_UP; break;
|
|
case SDL_SCANCODE_DOWN: keys = GB_KEY_DOWN; break;
|
|
case SDL_SCANCODE_LEFT: keys = GB_KEY_LEFT; break;
|
|
case SDL_SCANCODE_RIGHT: keys = GB_KEY_RIGHT; break;
|
|
case SDL_SCANCODE_RETURN: keys = GB_KEY_START; break;
|
|
case SDL_SCANCODE_ESCAPE: break;
|
|
default: return;
|
|
}
|
|
break;
|
|
case SDL_QUIT: exit(1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
void
|
|
initwindow(int scale)
|
|
{
|
|
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
|
printf("SDL Initialization Fail: %s\n", SDL_GetError());
|
|
return;
|
|
}
|
|
pic = xalloc(PICH * PICW * sizeof(u32));
|
|
window = SDL_CreateWindow("gb",
|
|
SDL_WINDOWPOS_UNDEFINED,
|
|
SDL_WINDOWPOS_UNDEFINED,
|
|
PICW * scale,
|
|
PICH * scale,
|
|
SDL_WINDOW_SHOWN);
|
|
if (!window)
|
|
panic("SDL Initialization Fail: %s\n", SDL_GetError());
|
|
SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
|
|
renderer = SDL_GetRenderer(window);
|
|
bitmapTex = SDL_CreateTexture(renderer,
|
|
SDL_PIXELFORMAT_ARGB8888,
|
|
SDL_TEXTUREACCESS_STREAMING,
|
|
PICW,
|
|
PICH);
|
|
}
|