hfo4 / gameboy.live Goto Github PK
View Code? Open in Web Editor NEW🕹️ A basic gameboy emulator with terminal "Cloud Gaming" support
License: MIT License
🕹️ A basic gameboy emulator with terminal "Cloud Gaming" support
License: MIT License
Hey, great project :)
I was trying to connect to telnet gameboy.live 1989
, yet all I'm getting is Trying 47.74.183.161...
Is the server down?
I'm not sure if that's even an actual server 😅 or if we're supposed to host our own server first.
I wanto to build it on Raspberry Pi, but encountered the following erros:
main.go:7:2: cannot find package "github.com/HFO4/gbc-in-cloud/driver" in any of:
/usr/lib/go-1.7/src/github.com/HFO4/gbc-in-cloud/driver (from $GOROOT)
($GOPATH not set)
main.go:8:2: cannot find package "github.com/HFO4/gbc-in-cloud/fyne" in any of:
/usr/lib/go-1.7/src/github.com/HFO4/gbc-in-cloud/fyne (from $GOROOT)
($GOPATH not set)
main.go:9:2: cannot find package "github.com/HFO4/gbc-in-cloud/gb" in any of:
/usr/lib/go-1.7/src/github.com/HFO4/gbc-in-cloud/gb (from $GOROOT)
($GOPATH not set)
main.go:10:2: cannot find package "github.com/HFO4/gbc-in-cloud/server" in any of:
/usr/lib/go-1.7/src/github.com/HFO4/gbc-in-cloud/server (from $GOROOT)
($GOPATH not set)
I have installed the libasound2-dev and libgl1-mesa-dev.
This is a very well put together project. Could you list more about the project, your motives, etc on the readme?
I am currently creating a gameboy emulator written in C++. I am also writing an assembler (with uniquely named opcodes) which in its core targets specifically the gb.
Here are some easy resources I have found for quick lookup of ops:
http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html
http://imrannazar.com/Gameboy-Z80-Opcode-Map
In my assembler, I have switched LD (HL), * to SV (HL), * and some other changes that make sense. Like ADD A, * is just ADD *. I am interested in where you are leading this project and how you are going to implement state saving. For example, are you just going to dump a rom's-worth of memory or just the changes to the memory... are you going to make it modular in the sense you can serialize data structures and just reimport them?
I want my assembler to be able to export standard roms (and mine generated matches that of the standard bin) into source.
拿docker鼓捣起来了,加载了神奇宝贝的gb。想问能存档吗?
Would be great to easily deploy / use with a docker embeded version
Hello, we are Korean university students. This project is an area we are interested in, so we would like to contribute.
We want to contribute through the Korean translation of the project. Can you give us permission?
Congratulations on the project. I played around with it and pulled together an alternative Fyne based user interface https://github.com/andydotxyz/fynegameboy.
Before I worked to make a PR to include it here I thought I would check if that is interesting or not.
encountered this error when trying to compile on my Macbook
main.go:7:2: cannot find package "github.com/HFO4/gbc-in-cloud/driver" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/HFO4/gbc-in-cloud/driver (from $GOROOT)
/Users/zxybazh/goforest/src/github.com/HFO4/gbc-in-cloud/driver (from $GOPATH)
main.go:8:2: cannot find package "github.com/HFO4/gbc-in-cloud/gb" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/HFO4/gbc-in-cloud/gb (from $GOROOT)
/Users/zxybazh/goforest/src/github.com/HFO4/gbc-in-cloud/gb (from $GOPATH)
main.go:9:2: cannot find package "github.com/HFO4/gbc-in-cloud/server" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/HFO4/gbc-in-cloud/server (from $GOROOT)
/Users/zxybazh/goforest/src/github.com/HFO4/gbc-in-cloud/server (from $GOPATH)
main.go:10:2: cannot find package "github.com/faiface/pixel/pixelgl" in any of:
/usr/local/Cellar/go/1.10.3/libexec/src/github.com/faiface/pixel/pixelgl (from $GOROOT)
/Users/zxybazh/goforest/src/github.com/faiface/pixel/pixelgl (from $GOPATH)
Thanks for this repo. But when I run this project, it shew me "open Dr. Mario (JU) (V1.1).gb: no such file or directory".
➜ gameboy.live git:(master) ✗ ./gbdotlive -s -c "gamelist.json"
2021/03/06 21:59:26 Listen port: 1989
2021/03/06 22:00:26 New Player: 1c4e580b-dee2-4a56-b800-bd34c225eb29
2021/03/06 22:01:39 [Core] Loading rom file...
2021/03/06 22:01:39 open Dr. Mario (JU) (V1.1).gb: no such file or directory
Hi,
I am providing about 4.6k roms and finding the right game is quite hard.
Please implement some sort of paging or search mechanism.
I´ve tryed both windows and linux terminal:
"telnet gameboy.live 1989"
and i always get:
"telnet: Unable to connect to remote host: Connection refused"
I´ve also tried from mobile phone using 4G
go build -o gbdotlive main.go
# github.com/HFO4/gbc-in-cloud/server
server/server.go:44:12: assignment mismatch: 1 variable but uuid.NewV4 returns 2 values
in the server/server.go
PlayerID := uuid.NewV4()
I change the return like this:
PlayerID, _ := uuid.NewV4()
It worked.
I run gameboy on docker. docker run --name gbdotlive -v /[REDACTED]/gameboy:/data -p 1989:1989 shokinn/docker-gameboy.live
After selecting a game and press enter at the 'here is the controls' page, container crashes w/
open 'Pokemon - Red Version (USA, Europe).gb': no such file or directory
in container log
drwxrwxr-x 2 eric eric 4.0K May 14 23:43 .
drwxrwxr-x 14 eric eric 4.0K May 14 23:30 ..
-rwxr-xr-x 1 eric eric 512K May 14 23:30 'Donkey Kong (JU) (V1.1) [S][!].gb'
-rwxr-xr-x 1 eric eric 512K May 14 23:30 'Legend of Zelda, The - Link'\''s Awakening (U) (V1.2) [!].gb'
-rwxr-xr-x 1 eric eric 1.0M May 14 23:30 'Pokemon - Red Version (USA, Europe).gb'
-rwxr-xr-x 1 eric eric 32K May 14 23:30 'Tetris (World).gb'
-rw-rw-r-- 1 eric eric 348 May 14 23:40 gamelist.json
gamelist.json
[{
"Title": "Tetris",
"Path": "Tetris (World).gb"
}, {
"Title": "Donkey Kong",
"Path": "Donkey Kong (JU) (V1.1) [S][!].gb"
}, {
"Title": "Legend of Zelda - Link's Awakening",
"Path": "Legend of Zelda, The - Link's Awakening (U) (V1.2) [!].gb"
}, {
"Title": "Pokemon - Red",
"Path": "Pokemon - Red Version (USA, Europe).gb"
}]
Since merging in #10 the app has been working but today I tested on mac OS High Sierra and saw a lot of
2019-05-14 23:30:17.338 main[50763:1244727] pid(50763)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
and the app never started.
It seems like the "core.Run()" is required to be called from the main thread on mac OS that is not required on Linux.
I cannot seem to get to the bottom of this so thought I would log this issue instead.
I suspect that there are some OS input handling baked into the core package that I did not find when extracting the last of the graphics code to the "driver" package.
how to fix this:
[dorker@leo10 gameboy.live]$ gbdotlive -G -r "Tetris.gb"
bash: gbdotlive: command not found
[dorker@leo10 gameboy.live]$ sudo gbdotlive -G -r "Tetris.gb"
sudo: gbdotlive: command not found
[dorker@leo10 gameboy.live]$ go gbdotlive -G -r "Tetris.gb"
go gbdotlive: unknown command
Run 'go help' for usage.
[dorker@leo10 gameboy.live]$
my go version 1.11.11
go build -o gbdotlive main.go
In file included from ../github.com/go-gl/glfw/v3.2/glfw/c_glfw_linbsd.go:24:0:
../github.com/go-gl/glfw/v3.2/glfw/glfw/src/linux_joystick.c: In function ‘_glfwInitJoysticksLinux’:
../github.com/go-gl/glfw/v3.2/glfw/glfw/src/linux_joystick.c:224:42: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 9 [-Wformat-truncation=]
snprintf(path, sizeof(path), "%s/%s", dirname, entry->d_name);
^~~~~~~
In file included from /usr/include/stdio.h:862:0,
from /usr/include/X11/Xcursor/Xcursor.h:26,
from ../github.com/go-gl/glfw/v3.2/glfw/glfw/src/x11_platform.h:39,
from ../github.com/go-gl/glfw/v3.2/glfw/glfw/src/internal.h:169,
from ../github.com/go-gl/glfw/v3.2/glfw/glfw/src/x11_init.c:28,
from ../github.com/go-gl/glfw/v3.2/glfw/c_glfw_linbsd.go:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output between 12 and 267 bytes into a destination of size 20
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__bos (__s), __fmt, __va_arg_pack ());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/c_glfw_linbsd.go:24:0:
../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/linux_joystick.c: In function ‘_glfwInitJoysticksLinux’:
../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/linux_joystick.c:224:42: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 9 [-Wformat-truncation=]
snprintf(path, sizeof(path), "%s/%s", dirname, entry->d_name);
^~~~~~~
In file included from /usr/include/stdio.h:862:0,
from /usr/include/X11/Xcursor/Xcursor.h:26,
from ../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/x11_platform.h:39,
from ../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/internal.h:169,
from ../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/x11_init.c:28,
from ../fyne.io/fyne/vendor/github.com/go-gl/glfw/v3.2/glfw/c_glfw_linbsd.go:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output between 12 and 267 bytes into a destination of size 20
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__bos (__s), __fmt, __va_arg_pack ());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../github.com/HFO4/gbc-in-cloud/server/player.go:51:4: cannot use Driver (type *"github.com/HFO4/gbc-in-cloud/driver".ASCII) as type "github.com/HFO4/gbc-in-cloud/driver".DisplayDriver in field value:
*"github.com/HFO4/gbc-in-cloud/driver".ASCII does not implement "github.com/HFO4/gbc-in-cloud/driver".DisplayDriver (wrong type for Run method)
have Run(chan bool)
want Run(chan bool, func())
../github.com/HFO4/gbc-in-cloud/server/player.go:289:38: not enough arguments in call to player.Emulator.DisplayDriver.Run
have (chan bool)
want (chan bool, func())
why not playable via browser? nobody knows/uses telnet?!
➜ Gameboy.Live git:(master) go build -o gbdotlive main.go
# github.com/go-gl/glfw/v3.2/glfw
In file included from ../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/c_glfw_linbsd.go:24:0:
../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/glfw/src/linux_joystick.c: In function ‘_glfwInitJoysticksLinux’:
../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/glfw/src/linux_joystick.c:224:42: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 9 [-Wformat-truncation=]
snprintf(path, sizeof(path), "%s/%s", dirname, entry->d_name);
^~~~~~~
In file included from /usr/include/stdio.h:862:0,
from /usr/include/X11/Xcursor/Xcursor.h:26,
from ../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/glfw/src/x11_platform.h:39,
from ../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/glfw/src/internal.h:169,
from ../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/glfw/src/x11_init.c:28,
from ../../../../pkg/mod/github.com/go-gl/[email protected]/v3.2/glfw/c_glfw_linbsd.go:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output between 12 and 267 bytes into a destination of size 20
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__bos (__s), __fmt, __va_arg_pack ());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# pkg-config --cflags -- gl gl
pkg-config: exec: "pkg-config": executable file not found in $PATH
# pkg-config --cflags -- gl gl
pkg-config: exec: "pkg-config": executable file not found in $PATH
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.