Comments (8)
No, because gbsplay only supports the sound hardware of a Gameboy. Nothing related to screen or buttons is included (well, I think we have vsync/hsync, but that is timing only).
Also, gbsplay does a file format check and will only accept GBS files (they include a special header). I don't know if a full .gb dump and a .gbs are the same file format or not.
You should look for a "real" Gameboy emulator that emulates the whole Gameboy like VisualboyAdvance-M or Gnuboy.
from gbsplay.
Thx
I thought it was possible, because ot his commit:
a8aec38
I have been able to accomplish that with Sameboy.
from gbsplay.
Ok, I don't know anything about that in detail. @ranma?
from gbsplay.
There is rudimentary support for .gb roms, but I only really tested it with one of the Pokemon roms, YMMV.
As mmitch said, there is no emulation for input or the graphics hardware, but if you're lucky the title screen music should work.
from gbsplay.
Thank you for your replies
there is no emulation for input
Would it be possible to press a button, using a custom plugin?
it seems that the gameboy only reads a register at FF00 to know if somme buttons are depressed
from gbsplay.
I don't know if a full .gb dump and a .gbs are the same file format or not.
They aren't. A .gb file is raw ROM data; the header is part of the ROM itself, not some separate header. It has a fixed entry point ($0100) and it starts executing from there.
it seems that the gameboy only reads a register at FF00 to know if somme buttons are depressed
It's a bit more complicated than that:
- Set $FF00 to either $20 or $10 to respectively indicate that you want to read the D-Pad or the buttons
- Wait 3us
- Read the data for the selected inputs in the lower four bits of $FF00
- Now set $FF00 to the value you didn't use in step 1
- Wait another 3us
- Read the data for the remaining inputs in the lower four bits of $FF00
- Combine the values obtained in steps 3 and 6 for a full input read-out
Not to mention that it's not just input that you'd need to emulate. You'd have to emulate the whole state of the device up to the point when the first track plays. GBS files have their own special cut-down routines for playing a selected song after being given an ID externally. An actual ROM would attempt to initialize most of the GB's hardware, and most likely fail at it.
from gbsplay.
Some examples of GB roms that work:
http://www.pouet.net/prod.php?which=56367
http://www.pouet.net/prod.php?which=82460
and probably others from http://www.pouet.net/prodlist.php?platform%5B%5D=Gameboy
VGM files converted from VGM into a GB rom with https://vgmrips.net/wiki/Dmvgm
(For some you need to override the default silence timeout)
from gbsplay.
great, thanks for your answers and the progress on this issue
from gbsplay.
Related Issues (20)
- Unable to install gbsplay on Windows HOT 5
- Version 0.0.95 fails to compile on FreeBSD HOT 11
- provide a CI pipeline for FreeBSD
- add FreeBSD AIO audio plugout
- add PipeWire audio driver
- check if MIDI magic numbers branch should be merged HOT 2
- Build status for FreeBSD not shown in README.me HOT 1
- noise channel not being played correctly in Castlevania 2's GBS HOT 4
- gbsplay -V shows no version number when built from GitHub tarball HOT 2
- automatically add tarball to GitHub releases HOT 1
- Wrong timing in certain Super Mario Land 2 subtunes HOT 6
- Text output differences when using ALSA vs. PulseAudio HOT 9
- fix build errors on MacOS regarding i18n
- how do i download / use HOT 16
- Crackly audio on PipeWire output HOT 3
- Bug in TAC counter rate calculation HOT 1
- muting channels in midi output HOT 13
- MIDI output slowly gets out of sync if written to separate tracks HOT 6
- channel isolated wav output can be out-of-sync HOT 1
- Typo in plugout_midi ? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gbsplay.