othercrashoverride / go-play Goto Github PK
View Code? Open in Web Editor NEWRetro emulation for the ODROID-GO
Home Page: https://www.hardkernel.com/shop/odroid-go/
Retro emulation for the ODROID-GO
Home Page: https://www.hardkernel.com/shop/odroid-go/
It's not clear how we are supposed to make use of the "firmware.bin" in the last few releases (for example, https://github.com/OtherCrashOverride/go-play/releases/tag/20180712) from this repo.
The firmware update instructions from the Wiki have a bunch of split up firmwares for each partition in the flashall script, so thats pretty clear how to use that.
I want to reduce tearing problem in NES. I copied our discussion from odroid forum to here
The way the display system currently works:
meanwhile on core 1:
meanwhile on DMA:
There are two frame buffers, two scanline buffers of 3 lines, and multiple DMA buffers.
At 40Mhz SPI, there is 40,000Kbps / 8 bits = 5KBps. A frame is 320 * 240 * 2 bytes / 1024 = 150KB. 5KBps / 150KB = 33.3 fps. However, because there is protocol overhead, the achieved frame rate is less (closer to 30fps). The LCD updates at 70fps (61 is the slowest but looked worse). 70fps / 30fps = 2.3 refreshes for every frame displayed.
See if its possible to support a GB/GBC bios file on SD card.
fw version: 20180712
I have video issue in this game:
Wario Land 2:
For your information I tried points 1) & 2) with "Wario Land 2.gbc" on Gameboy Color emulator and I haven't notice issue.
I'm not tried 3) because it's not at the start of the game. If it's necessary I'll tried.
Pokèmon Red Version:
To reproduce issue:
Start a new game and go in the left of the screen then "Mario" goes under the background.
fw version: 20180702-psram
When restoring state, the game incorrectly displays graphics and freezes..
I've noticed a truncated sprite in Looney Tunes Collector - Martian Alert! for GBC
I don't know if the same problem of #38
To see issue, load save state and look at the hedgehog's animation.
File save:
Looney Tunes Collector - Martian Alert! (Europe) (En,Fr,De,Es,It,Nl).gbc.sav.zip
fw version: 20180712
Currently volume level is determined by an array containing four values, 0, 150, 500 & 1000.
These values are multiplied by 0.001 to create a range between 0 and 1 with 0 representing mute and 1 maximum volume.
Human hearing is non-linear i.e. logarithmic and the above values do not conform to this scale.
A reasonable approximation is to use 1000x^4 scale (see reference). Floor and ceiling values would depend on the DAC used. The 8bit internal DAC could perhaps use 0.6 <= x <= 1.0 whereas an external DAC with better fidelity could have a greater range.
Using this equation you can take the values of 0.6, 0.8 and 1.0 to produce equivalent (integer) volume levels of 130, 409 and 1000 for the 8bit DAC. If you prefer a floor value of 150 then you can use the values of 0.62, 0.81 and 1.00 for values of 148, 430 and 1000.
(edit) The author notes that x^3 is a better curve for "quiet" maximum volume. In this case values of 1000x^3 could range from 0.52 to 1.00 which could equate to 149, 448 & 1000.
If in the future fine-grain volume control is introduced the above equation would sound much better than if a linear scale were used. This could be simply implemented by continuously adjusting volume when the volume button is depressed.
I am happy to create this code of course :-)
Reference:
https://www.dr-lex.be/info-stuff/volumecontrols.html
Could you implement more emulators to play the games from these platforms?
Having 1000;s of roms , it takes a very long time to navigate.
Currently d-pad up/down moves 1 record up/down and de-pad right/left moves 1 page to right/left
Could you please consider adding a long press d-pad right/left to move 10 pages to the right/left
Or select + d-pad right/left to move to 10 pages to the left/right
Can you also loop the records. So pressing Up on the first record would take you to the very last record.
Thanks
I'm not sure if I just haven't heard it before or if this problem is new since the firmware update 20180708: when I turn down the volume to zero and start a game I hear a static noise. The noise is not present in the menu.
I'm seeing the roms twice. One is normal and the other has ._filename. Why is that so?
I can't play the ones with dots.
It seem that frameskip have been set to 1 (or 2...). Could we set it to 0 instead ? I can give games examples if you need. I use the latest firmware 20180726 with 20180726-smsplusgx.
Shouldn't the odroid-go be able to handle gba games, and is it possible to add support? 😊
Hi,
I've noticed that nes emulator has not perfect alignment in the display.
You can see easily in game like Castlevania where on the top-left on the screen there are player stats truncated. Like the last pixel line is cut.
If i play in scaling mode the game is perfect.
firmware version: 20180702-psram
I'd love to be able to tag games as good..and throw them to the top of the list :)
[A-Z0-9] favs
[A-Z0-9] non favs
It appears that data is not being retrieved from or saved to the regular location on the SD card (\Odroid\Data<emulator dir>)
I only noticed this because after flashing to the latest next gen firmware, it lost my latest pokemon crystal save. I experimented by removing the .sav file in the \odroid\data\gbc\ directory, and the save still loaded saved and retrieved directly from the odroid, but it isn't doing this to the SD card.
Is there a way of reinstating the retrieval/storage of data saves from the .sav files on the SD card?
Hey all, would it be possible to add a cluster of red pixels to the left hand side of the emulated Gameboy screen to simulate the Power LED on actual gameboy hardware?
The Pocket Sprite does something similar in it's implementation of Gnuboy, and I think it's a neat touch that adds asimple nostalgic flair.
Thanks!
Although I have not too much of a good idea how to display cover of the game without masking too much of the game name on such a small screen, it would be nice to display cover for games
Some games are just bad games. I'd like to delete unwanted games.
So far almost all games I have tried have worked very well, great job! The only game that I am having issues with so far is Super Mario Bros. 3 which won't load.
When the game loads it just freezes at the "red curtain" screen. I can see parts of the display twitching a little. I even tried out the pre-release firmware (20180629-psram) and it actually got worse. At first it seemed to load ok but as soon as I tried to play level 1 it froze completely including the audio track. I had to turn off the power since none of the buttons would respond.
I rolled back the firmware to the current stable release (20180627) and now when I load the game it just shows sprite garbage on the screen and hangs.
If you need more information please let me know.
Would it be possible to remove systems from the menu if the skeleton directories don't exist? Or if easier / more appropriate, read a file on the sd card indicating which entries to display. This could be a simple flat file.
It would be nice, to have an option to change the color palette in Game Boy emulation. Just like the Super Game Boy for the SNES did. If this would be too complicated, you could add an option to cycle through a set of predefined color palettes. At least please add a color palette with a light green background, like the original Game Boy.
Just a suggestion: it is easily possible to embed images/audio/etc files rather than convert them into a large binary header (such as in odroid-go-common/components/odroid/image_*.h). See the docs. I have found this easier to maintain, as you can quickly see what images are included. Nice project, by the way.
The ODROID-GO has an expansion port on the top. It should be possible to attach an RTC to this for games that make use of the date/time.
Hi,
i want to make some new bin files out of this source.
I intalled the Toolchain etc. how in this tutorial on the wiki site.
$ make flash monitor
CC build/gnuboy/mem.o
C:/msys32/home/db/OdroidGo/Firmware/gnuboy-go/components/gnuboy/mem.c:17:38: fatal error: ../odroid/odroid_display.h: No such file or directory
compilation terminated.
make[1]: *** [/home/db/esp/esp-idf/make/component_wrapper.mk:286: mem.o] Fehler 1
make: *** [C:/msys32/home/db/esp/esp-idf/make/project.mk:468: component-gnuboy-build] Fehler 2
I'm uncertain as to how much processing power this would require but it should help to improve sound quality to a degree at reduced bit depth.
Sample C++ code is available here though there are probably many other examples available online.
Hi,
What's the license for go-play? I think the dual-core implementation for Video & audio buffers is perfect for a game engine that utilizes these optimized methods. Is the license for go-play MIT?
If we decide to write an engine on top of this, we'd make it MIT like we did for our EVADE Arduboy games:
https://github.com/ModusCreateOrg/evade2
Thanks :D
Reference to the #38
I have updated to the latest firmware version ( 20180718-smsplusgx ), but I still have this problems:
Wario Land 2:
I provide you a save file.
Wario Land II (USA, Europe).gb.sav.zip
Once load, just press "A" + "down" button to see white pixel line on bottom of screen
Pokèmon Red Version:
Start new game, then move player left to right or right to left to see video issue. Objects in game tremble when the player moves.
I provide you a save file for easily reproduce issue.
Pokemon - Red Version (USA, Europe).gb.sav.zip
After flashing to this GBC freezes when launching. Blue bar completes green freezes at end.
The emulator seems to execute but it is just a blank screen with no audio. Resetting the emulator with power on while holding start doesn't make a difference.
I'd love to be able to quickly save state and load state..
maybe multiple states per game - but at least one quick state :)
I'd like to be able to speed boost to bypass games with long text periods..
maybe start + left would double speed or something
If you try to go in sleep mode when using this emulator the screen turn white and you can't do nothing.
If you turn-of and turn-on device the game resume before entering sleep mode.
Check if there are enough free resources available to offer an in game menu of actions.
I saw your code mixed with spaces and tab.
Shall we unify the coding style? Either tab or x/y/z # of spaces.
Would it be possible to add some basic documentation about how we can build this ourselves?
I'd love to be able to save screen size on a game by game basis
or at least default to unstretched or stretched / zoomed or unzoomed by default
I am reviewing the code and don't understand this part.
The ESP32 documentation states the DAC is 8bit yet you define a 16bit here. sound is clearly working but I can hear lots of crackle.
Is this because the DAC is only reading the first byte?
I am currently running Phantasy Star (English) on version 20180605 of the firmware using the Sega Master System emulator.
The game appears to run fine for the most part, however when you enter the pseudo-3d maze segments of Phantasy Star the FPS will drop until the scene has rendered. Following that, it will stutter every time you attempt to navigate the maze. Standing still (ie, not pressing any inputs) will run correctly and will not lag at all.
When you play this rom ( i tried USA version ) you get big white lines on screen before ( I think ) loading a new scene.
You can reproduce this simply starting a new game and moving on right for a little while.
I tried "Pokemon Pinball" game on GBC emulator and, with latest firmware (20180629-psram), I have some "refresh problem":
Ball "shakes" when it reaches the top or bottom of the display, before changing the game screen.
If you need more information please let me know.
Since the PSRAM update, all emulators use the SD card and need to indicate any error conditions.
It might be good to be able to handle subfolders in rom directories, it facilitates the navigation (I personnaly use it to sort games by genre)
They could be shown and you could enter/exit them with A and B like systems
For now they are not recognised at all, games in subfolders simply not appear, nor the subfolders themselves
For now it's not possible to go directly to the end of the list of roms of a system.
It can be done like in other distributions interface (EmulationStation, if I must name it) by going up on the first game of the list
It might also help to be able to go down or up the list by keeping left and right pressed, for now, you ahve to press / release / press / release etc...
I see a graphic problem in G&WG3 for GBC.
I provide you save file so you can easily reproduce the issue.
Please find attached file.
Game & Watch Gallery 3 (USA, Europe).gbc.zip
After you load save file, then you just see on the top/left the display the truck image is troncated.
fw version: 20180702-psram
For this kind of problem, do you prefer that I open a problem on Github or write the problem on public document on Odroid forum?
It's not possible to go left from the first item in the system list (NES i think), it could be good an allow to create an infinite loop between systems
Same thing for going right on the last one
The spectrum emulator generates an 8 bit mono audio buffer.
Should I change this to 16 bits stereo in order to use the current odroid_common audio processing or should odroid_common be able to accept 8 and 16 bit & mono and stereo?
Currently the file list is ASCII sorted. This makes "Z" less than "a".
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.