Fix build
This commit is contained in:
parent
22fed0fea1
commit
dda0cf5006
11
Makefile
11
Makefile
|
@ -1,7 +1,7 @@
|
||||||
LDFLAGS = $(shell pkg-config --libs sdl2 r_util r_io)
|
LDFLAGS = $(shell pkg-config --libs sdl2 r_util r_io)
|
||||||
CFLAGS = -Wall -I include/ $(shell pkg-config --cflags sdl2 r_util r_io)
|
CFLAGS = -Wall -I include/ $(shell pkg-config --cflags sdl2 r_util r_io)
|
||||||
|
|
||||||
all: sdl/pixbuf.o io/timers.o
|
all: sdl/pixbuf.o io/timers.o io/mbc1.o io/mbc2.o io/joypad.o
|
||||||
|
|
||||||
sdl/pixbuf.o:
|
sdl/pixbuf.o:
|
||||||
gcc -c sdl/pixbuf.c -o sdl/pixbuf.o $(CFLAGS)
|
gcc -c sdl/pixbuf.c -o sdl/pixbuf.o $(CFLAGS)
|
||||||
|
@ -9,5 +9,14 @@ sdl/pixbuf.o:
|
||||||
io/timers.o:
|
io/timers.o:
|
||||||
gcc -c io/timers.c -o io/timers.o $(CFLAGS)
|
gcc -c io/timers.c -o io/timers.o $(CFLAGS)
|
||||||
|
|
||||||
|
io/mbc1.o:
|
||||||
|
gcc -c io/mbc1.c -o io/mbc1.o $(CFLAGS)
|
||||||
|
|
||||||
|
io/mbc2.o:
|
||||||
|
gcc -c io/mbc2.c -o io/mbc2.o $(CFLAGS)
|
||||||
|
|
||||||
|
io/joypad.o:
|
||||||
|
gcc -c io/joypad.c -o io/joypad.o $(CFLAGS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm sdl/*.o && rm io/*.o
|
rm sdl/*.o && rm io/*.o
|
||||||
|
|
|
@ -48,5 +48,6 @@ void gb_joypad_close(RIO *io, GBJoypad *joypad);
|
||||||
extern RIOPlugin r_io_plugin_gb_timers;
|
extern RIOPlugin r_io_plugin_gb_timers;
|
||||||
extern RIOPlugin r_io_plugin_gb_mbc1;
|
extern RIOPlugin r_io_plugin_gb_mbc1;
|
||||||
extern RIOPlugin r_io_plugin_gb_mbc2;
|
extern RIOPlugin r_io_plugin_gb_mbc2;
|
||||||
|
extern RIOPlugin r_io_plugin_gb_joypad;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
13
io/joypad.c
13
io/joypad.c
|
@ -15,12 +15,12 @@ static RIODesc *__open(RIO *io, const char *pathname, int rw, int mode) {
|
||||||
GBJoypad *joypad = NULL;
|
GBJoypad *joypad = NULL;
|
||||||
sscanf (pathname, "gb_joybad://%p", &joypad);
|
sscanf (pathname, "gb_joybad://%p", &joypad);
|
||||||
RIODesc *desc = r_io_desc_new (io, &r_io_plugin_gb_joypad, pathname,
|
RIODesc *desc = r_io_desc_new (io, &r_io_plugin_gb_joypad, pathname,
|
||||||
R_PERM_RWX, mode, timers);
|
R_PERM_RWX, mode, joypad);
|
||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ut64 __lseek(RIO* io, RIODesc *desc, ut64 offset, int whence) {
|
static ut64 __lseek(RIO* io, RIODesc *desc, ut64 offset, int whence) {
|
||||||
GBJoypad *joypad = (GBTimers *)desc->data;
|
GBJoypad *joypad = (GBJoypad *)desc->data;
|
||||||
ut64 seek = (joypad->odata & 0x40) >> 6;
|
ut64 seek = (joypad->odata & 0x40) >> 6;
|
||||||
switch (whence) {
|
switch (whence) {
|
||||||
case R_IO_SEEK_SET:
|
case R_IO_SEEK_SET:
|
||||||
|
@ -33,7 +33,7 @@ static ut64 __lseek(RIO* io, RIODesc *desc, ut64 offset, int whence) {
|
||||||
seek = 1;
|
seek = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
joypad->odata = (joypad->odata & 0x3f) |
|
joypad->odata = (joypad->odata & 0x3f) | (seek << 6);
|
||||||
return seek;
|
return seek;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ RIOPlugin r_io_plugin_gb_joypad = {
|
||||||
};
|
};
|
||||||
|
|
||||||
GBJoypad *gb_joypad_open (RIO *io) {
|
GBJoypad *gb_joypad_open (RIO *io) {
|
||||||
joypad = R_NEW0 (GBJoypad);
|
GBJoypad *joypad = R_NEW0 (GBJoypad);
|
||||||
if (!joypad) {
|
if (!joypad) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,8 @@ GBJoypad *gb_joypad_open (RIO *io) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
joypad->fd = desc->fd;
|
joypad->fd = desc->fd;
|
||||||
joypad->keys = SDL_GetKeyboardState (NULL);
|
const ut8 *keys = SDL_GetKeyboardState (NULL);
|
||||||
|
memcpy (&joypad->keys, &keys, sizeof (ut8 *));
|
||||||
joypad->up = SDL_SCANCODE_W;
|
joypad->up = SDL_SCANCODE_W;
|
||||||
joypad->down = SDL_SCANCODE_S;
|
joypad->down = SDL_SCANCODE_S;
|
||||||
joypad->left = SDL_SCANCODE_A;
|
joypad->left = SDL_SCANCODE_A;
|
||||||
|
@ -122,7 +123,7 @@ void gb_joypad_update(GBJoypad *joypad) {
|
||||||
ndata = (ndata & 0x3) | (data & 0xc);
|
ndata = (ndata & 0x3) | (data & 0xc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(joypad->data & 0x10)) {
|
if (!(joypad->data & 0x10)) { //buttons
|
||||||
ndata |= !!joypad->keys[joypad->a];
|
ndata |= !!joypad->keys[joypad->a];
|
||||||
ndata |= (!!joypad->keys[joypad->b]) << 1;
|
ndata |= (!!joypad->keys[joypad->b]) << 1;
|
||||||
ndata |= (!!joypad->keys[joypad->select]) << 2;
|
ndata |= (!!joypad->keys[joypad->select]) << 2;
|
||||||
|
|
|
@ -103,7 +103,7 @@ static RIODesc *__open(RIO *io, const char *pathname, int rw, int mode) {
|
||||||
}
|
}
|
||||||
eprintf ("%d rambanks\n", mbc->n_rambanks);
|
eprintf ("%d rambanks\n", mbc->n_rambanks);
|
||||||
} else {
|
} else {
|
||||||
eprintf ("no external ram\n", mbc->n_rombanks);
|
eprintf ("no external ram\n");
|
||||||
}
|
}
|
||||||
mbc->io = r_io_new ();
|
mbc->io = r_io_new ();
|
||||||
if (!mbc->io) {
|
if (!mbc->io) {
|
||||||
|
@ -119,7 +119,7 @@ static RIODesc *__open(RIO *io, const char *pathname, int rw, int mode) {
|
||||||
}
|
}
|
||||||
if (mbc->n_rambanks) {
|
if (mbc->n_rambanks) {
|
||||||
char *malloc_uri = r_str_newf ("malloc://0x%"PFMT64x,
|
char *malloc_uri = r_str_newf ("malloc://0x%"PFMT64x,
|
||||||
mbc->small_ram? 0x800: (0x2000 * mbc->n_rambanks));
|
(ut64)(mbc->small_ram? 0x800: (0x2000 * mbc->n_rambanks)));
|
||||||
mbc->mem_fd = r_io_fd_open (mbc->io, malloc_uri, R_PERM_RW, 0);
|
mbc->mem_fd = r_io_fd_open (mbc->io, malloc_uri, R_PERM_RW, 0);
|
||||||
free (malloc_uri);
|
free (malloc_uri);
|
||||||
if (mbc->mem_fd < 0) {
|
if (mbc->mem_fd < 0) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user