From 10a4f4f59437c640225950fce143041ccb994c99 Mon Sep 17 00:00:00 2001 From: astoria-d Date: Sat, 24 Sep 2016 19:46:09 +0900 Subject: [PATCH] enabled windows gtk. --- .gitignore | 2 ++ Makefile | 2 +- bin/famicon-controller.jpg | Bin 0 -> 13922 bytes cyg-emu-run.sh | 7 +++++++ cyg-start-x.sh | 4 ++++ cyg-vga-run.sh | 8 ++++++++ emulator/joypad/joypad-wnd.c | 2 +- 7 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 bin/famicon-controller.jpg create mode 100644 cyg-emu-run.sh create mode 100644 cyg-start-x.sh create mode 100644 cyg-vga-run.sh diff --git a/.gitignore b/.gitignore index 261d762..683013d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ vgadisp tags *.a +*.lnk +emulator/opcode diff --git a/Makefile b/Makefile index 90e9890..c2a73eb 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -linux_env := 0 +linux_env := 1 export linux_env DIRS=libs emulator display diff --git a/bin/famicon-controller.jpg b/bin/famicon-controller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45d8e56cc8dff48de18570acb398ccb36755aa4a GIT binary patch literal 13922 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 #include -#include +/*#include */ #include #include "tools.h" -- 2.11.0