Giter Site home page Giter Site logo

go-play's People

Contributors

kamotswind avatar molorius avatar othercrashoverride avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-play's Issues

[Discussion] Reduce Tearing in NES

I want to reduce tearing problem in NES. I copied our discussion from odroid forum to here

How it works now

The way the display system currently works:

  1. emulator finishes a frame on core 0
  2. frame is copied and the copy is sent to core 1
  3. emulator works on next frame on core 0

meanwhile on core 1:

  1. a frame is received from core 0
  2. a group of scanlines is processed (palette and scaling).
  3. the group is sent to DMA.
  4. the next group of scanlines is processed while DMA is in progress.

meanwhile on DMA:

  1. data is received by the DMA engine and is fed to the SPI hardware
  2. DMA notifies completion.

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.

LCD controller specs

IL9341 specs

Other's improvement on IL9341 over SPI

fbcp-ili9341 repo

My proposal

  1. Use two frame buffers to do swap instead of memcpy
  2. Find minimal different rectangle between two frame buffer and send the delta over SPI
  3. Use Good old interlacing is added into the mix: if the amount of pixels that needs updating is detected to be too much that the SPI bus cannot handle it, the driver adaptively resorts to doing an interlaced update, uploading even and odd scanlines at subsequent frames. Once the number of pending pixels to write returns to manageable amounts, progressive updating is resumed. This effectively doubles the maximum display update rate.

[GB] Video Issue in GameBoy Emulator

fw version: 20180712
I have video issue in this game:

Wario Land 2:

  1. Nintendo logo in menu screen is truncated
  2. start new game and see intro, some images are truncated
  3. 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

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:

  1. Once load Rom see the logo "Game Freak" on intro in center of screen. Is truncated
  2. Start new game, then move player left to right or right to left to see video issue. I provide you a save file for easily reproduce issue.
    Pokemon - Red Version (USA, Europe).gb.sav.zip

Suggestion: Change volume control

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

Navigation enhancement

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

Static noise in emulators when volume is zero

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.

Seeing roms twice.

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.

[GB/GBC] Frameskip issue

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.

[Request] gba support

Shouldn't the odroid-go be able to handle gba games, and is it possible to add support? 😊

[NES] Display alignment

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

Save files not working correctly (not saving to SD)

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?

[Proposal] Artificial Red "power" light during GB/GBC emulation

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!

Display cover of the game

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

[NES] Super Mario Bros. 3 not loading

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.

Remove systems from menu

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.

[GB] color palette

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.

Suggestion: embed images

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.

make fails

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

License for go-play?

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

[GB] Video Issue in GameBoy Emulator #38

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

GBC Failure to launch

After flashing to this GBC freezes when launching. Blue bar completes green freezes at end.

[GG] Aerial Assault (World) won't load

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.

[SMS] Video issue with Where in the World is Carmen Sandiego (USA)

While trying out a new game today that my wife requested I discovered an issue that may be refresh rate related like another issue reported. This occurs in most of the game so it should be easy to reproduce. Audio sounds perfectly fine.

I've attached a short video clip showing the issue.
game-video-error

[Request] Quick save/quick load

I'd love to be able to quickly save state and load state..

maybe multiple states per game - but at least one quick state :)

[Request] Speed boost button

I'd like to be able to speed boost to bypass games with long text periods..

maybe start + left would double speed or something

[GB][GBC] Sleep Mode not working

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.

[Proposal] Tab vs Space

I saw your code mixed with spaces and tab.

Shall we unify the coding style? Either tab or x/y/z # of spaces.

Setup documentation?

Would it be possible to add some basic documentation about how we can build this ourselves?

[Request] Save screen size per game

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

Performance issues in 3d segments of Phantasy Star

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.

[GBC] Megamen Xtreme white line on display

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.

[GBC] Pokémon Pinball bad refresh

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.

Use and display sub folders

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

Go to the end of the list

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...

[GBC] Game & Watch Gallery 3 graphic problem

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?

Go to last system from the first

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

8 bit sound

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.