games/nes: cleanup and resize handling
This commit is contained in:
parent
eeac553c36
commit
29491679b8
|
@ -6,7 +6,6 @@
|
||||||
u16int pc, curpc;
|
u16int pc, curpc;
|
||||||
u8int rA, rX, rY, rS, rP;
|
u8int rA, rX, rY, rS, rP;
|
||||||
int nmi;
|
int nmi;
|
||||||
extern int map;
|
|
||||||
|
|
||||||
static u8int
|
static u8int
|
||||||
fetch8(void)
|
fetch8(void)
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
extern u16int pc, curpc;
|
extern u16int pc, curpc;
|
||||||
extern u8int rA, rX, rY, rS, rP;
|
extern u8int rA, rX, rY, rS, rP;
|
||||||
extern uchar mem[32768];
|
extern uchar mem[32768], ppuram[16384], oam[256];
|
||||||
extern int scale;
|
|
||||||
extern u16int pput, ppuv;
|
extern u16int pput, ppuv;
|
||||||
extern u8int ppusx;
|
extern u8int ppusx;
|
||||||
|
extern int mirr;
|
||||||
|
|
||||||
|
extern int map, scale;
|
||||||
|
extern uchar *prg, *chr;
|
||||||
|
extern int nprg, nchr, nmi, map;
|
||||||
|
|
||||||
|
extern int keys;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
FLAGC = 1<<0,
|
FLAGC = 1<<0,
|
||||||
|
|
|
@ -9,12 +9,9 @@ uchar mem[32768];
|
||||||
uchar ppuram[16384];
|
uchar ppuram[16384];
|
||||||
uchar oam[256];
|
uchar oam[256];
|
||||||
uchar *prgb[2], *chrb[2];
|
uchar *prgb[2], *chrb[2];
|
||||||
extern uchar *prg, *chr;
|
|
||||||
extern int nprg, nchr;
|
|
||||||
u16int pput, ppuv;
|
u16int pput, ppuv;
|
||||||
u8int ppusx;
|
u8int ppusx;
|
||||||
static int vramlatch = 1, keylatch = 0xFF;
|
static int vramlatch = 1, keylatch = 0xFF;
|
||||||
extern int keys, nmi, map, mirr;
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
nrom(int p, u8int)
|
nrom(int p, u8int)
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
#include <libc.h>
|
#include <libc.h>
|
||||||
#include <thread.h>
|
#include <thread.h>
|
||||||
#include <draw.h>
|
#include <draw.h>
|
||||||
|
#include <mouse.h>
|
||||||
#include "dat.h"
|
#include "dat.h"
|
||||||
#include "fns.h"
|
#include "fns.h"
|
||||||
|
|
||||||
int ppuy, ppux, odd;
|
int ppuy, ppux, odd;
|
||||||
uchar pic[256*240*4*9];
|
uchar pic[256*240*4*9];
|
||||||
extern uchar oam[256];
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pixel(int x, int y, int val, int back)
|
pixel(int x, int y, int val, int back)
|
||||||
|
@ -248,8 +248,21 @@ static void
|
||||||
flush(void)
|
flush(void)
|
||||||
{
|
{
|
||||||
extern Rectangle picr;
|
extern Rectangle picr;
|
||||||
extern Image *tmp;
|
extern Image *tmp, *bg;
|
||||||
|
extern Mousectl *mc;
|
||||||
|
Mouse m;
|
||||||
|
Point p;
|
||||||
|
|
||||||
|
while(nbrecv(mc->c, &m) > 0)
|
||||||
|
;
|
||||||
|
if(nbrecvul(mc->resizec) > 0){
|
||||||
|
if(getwindow(display, Refnone) < 0)
|
||||||
|
sysfatal("resize failed: %r");
|
||||||
|
p = divpt(addpt(screen->r.min, screen->r.max), 2);
|
||||||
|
picr = (Rectangle){subpt(p, Pt(scale * 128, scale * 120)), addpt(p, Pt(scale * 128, scale * 120))};
|
||||||
|
bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
|
||||||
|
draw(screen, screen->r, bg, nil, ZP);
|
||||||
|
}
|
||||||
if(tmp){
|
if(tmp){
|
||||||
loadimage(tmp, tmp->r, pic, 256*240*4*scale*scale);
|
loadimage(tmp, tmp->r, pic, 256*240*4*scale*scale);
|
||||||
draw(screen, picr, tmp, nil, ZP);
|
draw(screen, picr, tmp, nil, ZP);
|
||||||
|
|
Loading…
Reference in a new issue