Code Monkey home page Code Monkey logo

gambatte-libretro's Introduction

Build Status Build status



Copyright (C) 2007 by Sindre Aamås [email protected]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details.

You should have received a copy of the GNU General Public License version 2 along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA


About

Gambatte is an accuracy-focused, open-source, cross-platform Game Boy Color emulator written in C++. It is based on hundreds of corner case hardware tests, as well as previous documentation and reverse engineering efforts.

The core emulation code is contained in a separate library back-end (libgambatte) written in platform-independent C++. There is currently a GUI front-end (gambatte_qt) using Trolltech's Qt4 toolkit, and a simple command-line SDL front-end (gambatte_sdl).

The GUI front-end contains platform-specific extensions for video, sound and timers. It should work on MS Windows, Linux/BSD/UNIX-like OSes, and Mac OS X.

The SDL front-end should be usable on all platforms with a working SDL port. It should also be quite trivial to create new (simple) front-ends (note that the library API should in no way be considered stable).

Usage

You will have to supply Gambatte with a ROM image file of the GB/GBC program/game you'd like to run/play, either as a command-line argument to gambatte_sdl, or through the File->Open... menu in gambatte_qt.

gambatte_sdl keyboard commands: TAB - fast-forward Ctrl-f - toggle full screen Ctrl-r - reset F5 - save state F6 - previous state slot F7 - next state slot F8 - load state 0 to 9 - select state slot 0 to 9

Default key mapping: Up: Up Down: Down Left: Left Right: Right A: D B: C Start: Return Select: Shift

Compiling

Building Gambatte from source code can be done by executing the build_<qt/sdl>.sh scripts for the qt/sdl front-ends respectively, or by issueing the correct build command (either 'scons' or 'qmake && make') in the top-level subdirectories (libgambatte will have to be built first). The clean.sh script can be executed to remove all generated files after a compile (including binaries).

Requirements for building libgambatte:

  • A decent C++ compiler (like g++ in the GNU Compiler Collection).
  • SCons.
  • optionally zlib

Requirements for building gambatte_sdl:

  • A decent C++ compiler (like g++ in the GNU Compiler Collection).
  • SDL headers and library.
  • SCons. (- libgambatte.)

Requirements for building gambatte_qt:

  • A decent C++ compiler (like g++ in the GNU Compiler Collection).
  • Qt4 (Core, GUI, OpenGL) headers and library.
  • Qmake and make (GNU Make should work).
  • Platform-specific requirements:
    • MS Windows:
      • Win32 API headers and libraries.
      • DirectSound and DirectDraw7 headers and libraries.
      • Direct3D9 headers
    • Linux/BSD/UNIX-like OSes:
      • POSIX/UNIX headers (unistd.h, fcntl.h, sys/ioctl.h, sys/time.h, sys/shm.h).
      • Open Sound System header (sys/soundcard.h).
      • X11 Xlib, XVideo, XRandR and XShm headers and libraries.
      • Alsa headers and library (Linux only).
    • Max OS X:
      • Recent Mac OS X SDK (Panther Xcode/SDK should work) (- libgambatte.)

Installing after a compile simply amounts to copying the generated binary (either gambatte_qt/bin/gambatte_qt<.exe> or gambatte_sdl/gambatte_sdl<.exe>) to wherever you'd like to keep it.

Thanks

Derek Liauw Kie Fa (Kreed) Gilles Vollant Jeff Frohwein Jonathan Gevaryahu (Lord Nightmare) kOOPa Marat Fayzullin Martin Korth (nocash) Maxim Stepin (MaxSt) Nach Pan of Anthrox Pascal Felber Paul Robson SDL Shay Green (blargg) The OpenGL Extension Wrangler Library


Game Boy and Game Boy Color are registered trademarks of Nintendo of America Inc. Gambatte is not affiliated with or endorsed by any of the companies mentioned.

gambatte-libretro's People

Contributors

albertofustinoni avatar alcaro avatar aliaspider avatar andres-asm avatar bananarama203 avatar bslenul avatar claudiuslollarius avatar disastermo avatar eadmaster avatar fix94 avatar fr500 avatar gabo1423 avatar hizzlekizzle avatar inactive123 avatar jdgleaver avatar leiradel avatar libretroadmin avatar matthewbauer avatar meepingsnesroms avatar netux79 avatar retrosven avatar rzumer avatar sergiobenrocha2 avatar stspdotname avatar themaister avatar thewolfbunny64 avatar toadking avatar vanfanel avatar webgeek1234 avatar yoshisuga 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

gambatte-libretro's Issues

Build issue for Android ndk

There is an issue with building this for Android. With INCDIRS using the -I${PATH} form the build system will eventually pick up gambatte's memory.h in place of Android's file with the same name.

The simple fix is to replace all entries in INCDIRS with the -iqoute ${PATH} form, then change <gambatte.h> to "gambatte.h" in libretro.cpp.

The environment I use to build is 'platform=unix CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++'

Multicart Compatibility

Vanilla Gambatte supports Multicart games (Bomberman Collection & Mortal Kombat I & II for example) by enabling "Multicart Compatibility" through the options menu.
Since Gambatte libretro doesn't have that option those games always loop back to the game selection screen making them unplayable.

Game Link issues

Testing with:

Linux Laptop: Network Server
Android smartphone: Network Client

Tetris:

If I hit start in the "2 player" option in the client side, it'll work fine (network client side as master in the game). But if I hit the start in the server client, I'll get some hiccup in the audio, it seems it has a little more unstable network connection this way (network server as master in the game).

Mario Tennis:

It hangs & gets an white screen in one of the sides I try first (smartphone for example), and the other side tries to connect and fails and returns to the main screen; then the smartphone side comes back to life and goes to the "linking..." screen.

Sometimes when they successfully link, they quickly get this screen:

mario tennis usa -160907-153452

Edit: I'm using the same save file in both sides

audio clicking

It seems there is some nasty audio clicking in a lot of games I've tried (particularly noticable when bringing up the pause menu in Link's Awakening DX)

Would a declicking feature (like VBA-M has) be possible?

[Mac OS only] Enabling Runahead makes the application / core freeze after a minute

With the latest gambatte core and the latest Retroarch code on Mac OS (High Sierra), enabling Runahead makes the application / core freeze after around a minute of gameplay. You need to use a force-quit shortcut (Option+CMD+Esc) to quit the application.

This happens all the time, regardless of whether Second Instance is activated and irrespective of the specific content loaded (GB game, GBC game, etc.). The same core works perfectly with Runahead on Windows.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Gameshark cheats don't work at all

Gameshark cheat codes do not work properly in any game in this emulator. I have tried both Pokémon Crystal (US 1.0) and Pokémon Trading Card Game (US) and Gameshark codes worked for neither game.
Game Genie codes seem to work, however.

per-game custom palettes

Vanilla Gambatte also supports per-game custom palettes (they are saved in "%APPDATA%\gambatte\palettes").
How to use them with RetroArch?

Achievements support regression

According to user reports, recent memory mapping changes (in the last few months/year?) have broken achievement support. The memory map seems offset by minus 0xC000 bytes, such that an address which is expected to be located at 0xC123 would now be located at 0x0123. I am not sure if this applies to all, or only some titles, and I am not sure if banks were swapped or if all of them were simply offset. This commit changes memory descriptors and might be related to this issue.

Memory map should follow this layout for compatibility.

Quoting meleu/RetroArch-problematic-cheevos#36:

So to summarize, the issue is not specifically a problem with RetroArch 1.7.5 Android since that build works ok with GearBoy core, nor is it an issue with Gambatte v0.5.0-netlink because that core works fine with RetroArch 1.7.5 Raspi build.

The issue is isolated to only certain builds of Retroarch 1.7.5 (Android and PC) running the Gambatte v.0.5.0-netplay core and in those cases only some addresses display the compatibility problem.

Support for 128kb sav

Would it be possible to add support for 128kb .sav files / SRAM dump? This will help with compatibility with other emulators and also support roms like LSDJ (little sound dj).

Super Game Boy palette/border support?

A number of GBx emulators support basic features of the SGB like custom palettes and borders. To name a few, VBA-M, KiGB, bgb, Gameyob (DS) and Lameboy (DS). Unfortunately the VBA-M libretro ports are GBA-only and don't seem to have any plans to support classic GBx, which is a shame. In fact there are no libretro cores that have this feature.

I honestly just want the custom palettes - Lots of DMG games have special palettes for SGB that add nicer colors than just B&W, such as Kirby 2 and Pokemon Blue.

Could it be possible to support those SGB color modes for games that use it? Would it be accepted as a PR? Or would this functionality be better set in a hypothetical VBAM-GBC core. The GB experience just isn't complete without it.

What do you think?

Here is a comparison:

image

Left: Kirby 2 using GBC palette
Right: Kirby 2 using SGB palette


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Savestates nonfunctional on New 3ds

Description
When using Retroarch 1,7,3 and Gambatte 0.5.0 with GBC games on a Nintendo 3DS, loading state crashes the console.

Expected behavior
The state would load.

Actual behavior
It attempts to load the savestate but consistently fails at 96%. the 3ds version uses the bottom screen to display a log and the last items are:

[INFO] Loading State: "sdmc/retroarch/cores/savestates/.state
[INFO] State size: 59446 bytes.
[INFO] Saving state: "RAM"
[INFO] State size: 59446 bytes.

I think this may be related to the saved state used to undo the loaded state.

Steps to reproduce the bug
Load a Game Boy Color ROM
Save state
Load State

Bisect Results
I went back 3 versions of retroarch and they all were affected by the issue.

Version/Commit
Retroarch 1,7,3 and Gambatte 0.5.0
Build date May 4 2018
Compiler GCC (7.1.0)

RetroArch: [version/commit]
Environment information
OS: New 3ds XL 11.6 (Luma 3ds)
Compiler: GCC (71.10)


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

[Android] Gambette- Is colorization broken?

I have spent the last couple of days, in vain, trying to get a custom palette working in Gambette for Retroarch android. Specifically, a pea-green GB palette so I don't have to rely on the battery-taxing shader.

Apparently, users of Retroarch on other systems have gotten colorization to work fine. But on Android, I'm fairly certain it's broken. The Special palettes fail to load anything, and choosing custom does not load the proper .pal file, and the palette defaults to whatever the last internal palette was.

My palette files are located in /data/data/com.retroarch/system/palettes, and read/write/execute privileges have been granted to all files and folders. But still nothing. I must thus add this issue.

Internal Palette: GB - DMG seems a little bit off

Hello everyone!

When playing with the Internal Palette: GB - DMG core option I wondered how this came to be and what it's based on?

It looks like this:
gb_dmg_gambatte

While watching an episode of AVGN yesterday (Episode 42 - Virtual Boy) there was a brief moment of where a Game Boy screen was shown.
gb_dmg_hardware

By comparing these two and upon further examination it feels like the Internal Palette: GB - DMG core option is a little bit off.

By using Paint and derivative the values of each color, lightest to darkest I was able to come up with this.
gb_dmg_bgb

This pretty much resembles of how I remember the Game Boy games to look like.

These are the color values (used in bgb):
Color 1 - 120, 169, 59 (lightest)
Color 2 - 93, 150, 78
Color 3 - 70, 131, 89
Color 4 - 56, 110, 86 (darkest)

I don't think I have ever played a Game Boy that looks like the Internal Palette: GB - DMG
Granted, each individual Game Boy was unique however and it could just be my interpretation.

What do you guys think of this?

Gambatte 3ds sound crackling

Hi debuggers,

I submit a new issue on sound issue with gambatte. I tested on gbc games like Zelda awakening DX. At start, the sound crackling problem arrives. This problem hasard been detected since few month ago. It concerns as well the lastest retroarch version as older version. But ne carreful, this issue IS not systematic. Sometimes it works but when sound crackling occurs, it persists. Even if i reboot thé 3ds.
Here my test rig:
N3ds + luma3ds 8.1.1 with boot9strap.
Retroarch 1.6.9 release (latest)


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Gambatte crashes when handling a broken ROM

The following ROM crashes it: gb-crasher.zip

I don't know what this file is, but it looks like just junk data.

Backtrace:

#0  0x00007fffdba4b3bd in gambatte::Memory::nontrivial_read (this=this@entry=0x555556112860, p=<optimized out>, cc=cc@entry=0) at libgambatte/src/mem/memptrs.h:73
#1  0x00007fffdba4017b in gambatte::Memory::read (cc=0, p=256, this=0x555556112860) at libgambatte/src/cpu.cpp:518
#2  gambatte::CPU::process (this=this@entry=0x555556112860, cycles=<optimized out>) at libgambatte/src/cpu.cpp:511
#3  0x00007fffdba4827e in gambatte::CPU::runFor (this=0x555556112860, cycles=<optimized out>) at libgambatte/src/cpu.cpp:46
#4  0x00007fffdba483de in gambatte::GB::runFor (this=this@entry=0x7fffdba7f430 <gb>, videoBuf=<optimized out>, pitch=<optimized out>, 
    soundBuf=soundBuf@entry=0x7fffdba7b280 <retro_run::sound_buf>, samples=@0x7fffffffb9d4: 2064) at libgambatte/src/gambatte.cpp:50

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Control Mapping Retropad Issue

Hi there, having an issue with Gambatte where instead of the core having its own control config, it uses retropad directly. So instead of mapping just the core it remaps retropad for all other cores, the controls are also not changed in input to reflect changes made and the only way to reset control mappings to normal is via Gambatte.

This is contrasted to something like Snes9x which has a "SNES pad" setting and changes made in "controls" only affect the Snes9x core.

Using RetroArch 1.4.1 on Android, core is Gambatte v0.5.0-netlink.

Thank you much.

Seg fault on every rom

hello upgrading from version 425.c71935d to 429.f3a647a and using latest retroarch version. Now retroarch seg fault on every rom i try. Before everything worked fine and retroarch doesn't crash when using other emu core.

Rumble support

There are 23 games with rumble support, should be interesting to add this feature to Gambatte. Some games also support rumble even without it in the cartridge, like Tarzan.

MBC5 mapper is implemented in VBA-M, and in the VBA GX port it's fully implemented.

https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/src/gb/gbMemory.cpp#L533

https://github.com/dborth/vba-wii/blob/master/source/vba/gb/gbMemory.cpp#L534

Someone in the forum also requested it: http://libretro.com/forums/showthread.php?t=991

Regarding Game Boy Pocket emulation/hardware

Hello everyone!

Recently started using the Gambatte core again and had almost forgotten how good it was!

I have used bgb for a while now and noticed that it had options for detecting Game Boy Pocket/Super Game Boy 2 hardware.

There is actually a separate BIOS for the Game Boy Pocket, it's called mgb_boot.bin (SHA1: 4e68f9da03c310e84c523654b9026e51f26ce7f0) and in bgb it works quite well.

Normal users wouldn't see the difference between the regular dmg_boot.bin and the mgb_boot.bin when booting a Game Boy game, the only real difference is that the mgb_boot.bin differs in one byte.

It loads the value $FF into the A register instead of $01 just before handing over the control to the game which is used by the game to detect that it is running on Game Boy Pocket hardware.

Coming back to Gambatte again I noticed in the Emulated hardware core option that Game Boy Pocket isn't present (Auto|GB|GBC|GBA)

Would it be possible to add Game Boy Pocket to the list? There is a seperate BIOS and the Game Boy Pocket is different to the standard brick sized original Game Boy hardware wise.

When using Use official bootloader (restart) enabled with the mgb_boot.bin BIOS the user could pair it with the added Emulated hardware (restart) GBP option and make it "act" like a Game Boy Pocket.

This would be pretty cool, to have most of the Game Boy systems available.

What do you think?

Error opening socket: No error

Gambatte currently fails to create sockets on my friend's Windows machine because the socket checking code checks if fds are negative. On Windows, fds can be negative so you have to check if it's INVALID_SOCKET.

http://www.sockets.com/winsock.htm#Deviation_DataType
https://github.com/libretro/gambatte-libretro/blob/master/libgambatte/libretro/net_serial.cpp#L116

I'm unsure how much other code is hit by this error.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Vita: Sporadically freezes while loading a Save State

Having trouble loading save states in Gambatte on Vita Enso 3.65 with several GB games.
Around 40-70% loading tryies are loading fine, the rest are freezing.
OSD is freezing at "0% loading state".

Can not enter RetroArch menu anymore while it freezed. Have to close the program with the PS button and restart RetroArch.

The following roms have I tried so far:

  • Amazing Spider-Man, The (USA, Europe)
  • Mega Man - Dr. Wily's Revenge (USA)
  • SolarStriker (World)
  • Super Mario Land (World) (Rev A)

Problem occurs with v1.7.1 and nightly from 2018-03-28.
The maching bios files are used. Tryied with fresh and clean retroarch.cfg, also.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Can't use more than one cheat at a time

This happens with both formats, Game Sharks and Game Genies. You can't use more than just one code at a time.

If you choose multiple codes it will apply the last one selected. If you return to the cheat menu and select another one, when back to the emulation and after some seconds, that'll be enabled and the others, even saying ON, will be disabled when playing.

Confirmed this is a Core issue, not happening with any other cores (Genesis Plus GX/mGBA/FCEUMMX).

Homebrew ROM (Airaki!) shows Checksum Error on launch

First of all thank you so much for the Gambatte core development.

The issue I come with today is very specific. Essentially, modern day rom developers are adding emulation checksum errors so that their developed titles cannot be played on emulators (or RetroArch cores in this case), but rather play perfectly fine and enhanced with color on physical GameBoy hardware. However, there are emulators that can actually run the title because that boast accuracy to actual GameBoy/GameBoy Color hardware.

The rom I would like to add support for is called Airaki! and it is available for download here. The page lists detail of what happens when the game is emulated, but it displays a Checksum Error screen that reads "Fuck You, Emulator!" on launch. I am hoping to get support on the Gambatte core for Retroach since it is the best speedwise in reference to GameBoy and GameBoy Color (preferably the NES Classic retroarch).

The rom however does work on SameBoy and BGB emulators on computer in case you wanted to test it through other avenues, but I do understand emulators and cores are very different so I want to say thank you once again.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Kirby - Tilt 'n' Tumble (USA) segfault gambatte

Trying to load Kirby - Tilt 'n' Tumble (USA) in gambatte core, and I got a segfault. Tested in Linux and Android.

Compiled with DEBUG=1:

bt full
#0  0x000000000046aca8 in ?? ()
No symbol table info available.
#1  0x00000000004110ff in ?? ()
No symbol table info available.
#2  0x0000000000462b88 in ?? ()
No symbol table info available.
#3  0x000000000040f03e in ?? ()
No symbol table info available.
#4  0x000000000040daa0 in ?? ()
No symbol table info available.
#5  0x00007ffff26f1ec5 in __libc_start_main (main=0x40d9d0, argc=1, argv=0x7fffffffdf48, init=<optimized out>, fini=<  optimized out  >, rtld_fini=<  optimized out  >, 
    stack_end=0x7fffffffdf38) at libc-start.c:287
        result = <  optimized ou  t>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 8751052256051647789, 4250700, 140737488346944, 0, 0, -8751052255027342035, -8751022428627610323}, mask_was_saved = 0}}, 
          priv = {pad = {0x0, 0x0, 0x49bba0, 0x7fffffffdf48}, data = {prev = 0x0, cleanup = 0x0, canceltype = 4832160}}}
        not_first_call = <  optimized out  >
#6  0x000000000040dc75 in ?? ()
No symbol table info available.

more: http://pastebin.com/b20R7WiL

[CTR/3DS] Sound corruption on specific notes

On 3DS, sometimes there's sound corruption when games hit specific notes. A clear example of this is Mario Tennis, where the music that plays during a match is completely screwed up and scarry-sounding.

README to README.md

when RetroPie is cloning this repo, it looks for README and not README.md. This causes the RetroPie installer to crash.

readme

MBC7 ROM support - Game Boy Color

Roms like Kirby Tilt n Tumble do not work as they use a data format that gambatte does not support.

Apparently Visual Boy Advance has some code that might be portable for this

https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/src/gb/gbMemory.h#L50
https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/src/gb/gbMemory.cpp#L664

I took a look at doing the port myself but the differences in operations between VBA and gambatte are a bit mysterious to me. Someone with more experience with these codebases might have a better time with it.

Cannot compile sdl version

The current version of gambatte_sdl.cpp is not compatible with the provided version of gambatte.cpp

  • selectState is missing
  • loadState parameters not matching

GBC BIOS palettes

how to enable GBC BIOS palettes?
(vanilla gambatte supports them)

Crash with RetroArch Windows 10/7 Build

This core is crashing for me as of the latest test build. Here is my log:

F:\Blue\Emulation\Emulators\RetroArch>retroarch.exe "....\Roms\Nintendo Game Bo
y\Wario Land - Super Mario Land 3 (World).zip" -c Config\GBA.cfg --appendconfig
Config\GB.cfg --verbose
rarch_main_init: === Build =======================================
Compiler: MinGW (4.9.1) 64-bit
Built: Oct 7 2014
rarch_main_init: Version: 1.0.0.2-2014-10-07
rarch_main_init: Git: 7270f89
rarch_main_init: =================================================
RetroArch: rarch_get_cpu_features: [CPUID]: Vendor: GenuineIntel
RetroArch: rarch_get_cpu_features: [CPUID]: MMX: 1
RetroArch: rarch_get_cpu_features: [CPUID]: MMXEXT: 1
RetroArch: rarch_get_cpu_features: [CPUID]: SSE: 1
RetroArch: rarch_get_cpu_features: [CPUID]: SSE2: 1
RetroArch: rarch_get_cpu_features: [CPUID]: SSE3: 1
RetroArch: rarch_get_cpu_features: [CPUID]: SSSE3: 1
RetroArch: rarch_get_cpu_features: [CPUID]: SSE4: 1
RetroArch: rarch_get_cpu_features: [CPUID]: SSE4.2: 1
RetroArch: rarch_get_cpu_features: [CPUID]: AES: 1
RetroArch: rarch_get_cpu_features: [CPUID]: AVX: 1
RetroArch: rarch_get_cpu_features: [CPUID]: AVX2: 0
RetroArch: parse_config_file: Loading config from: Config\GBA.cfg.
RetroArch: config_load_file: Appending config "Config\GB.cfg"
config_load_file: === Config ===
RetroArch: config_file_dump_all: video_shader = "./Shaders/gb-pocket-shader.cgp"

RetroArch: config_file_dump_all: rgui_browser_directory = "../../Roms/Nintendo G
ame Boy/"
RetroArch: config_file_dump_all: savefile_directory = "./Save/Nintendo Game Boy
Color/"
RetroArch: config_file_dump_all: savestate_directory = "./State/Nintendo Game Bo
y Color/"
RetroArch: config_file_dump_all: system_directory = "./System/Nintendo Game Boy
Color/"
RetroArch: config_file_dump_all: libretro_path = "./Cores/gambatte_libretro.dll"

RetroArch: config_file_dump_all: audio_volume = "5.0"
RetroArch: config_file_dump_all: video_driver = "gl"
RetroArch: config_file_dump_all: audio_driver = "dsound"
RetroArch: config_file_dump_all: video_fullscreen = "true"
RetroArch: config_file_dump_all: config_save_on_exit = "false"
RetroArch: config_file_dump_all: input_autodetect_enable = "false"
RetroArch: config_file_dump_all: input_joypad_driver = "winxinput"
RetroArch: config_file_dump_all: input_player1_joypad_index = "0"
RetroArch: config_file_dump_all: input_player1_a_axis = "nul"
RetroArch: config_file_dump_all: input_player1_a_btn = "0"
RetroArch: config_file_dump_all: input_player1_a = "z"
RetroArch: config_file_dump_all: input_player1_b_axis = "nul"
RetroArch: config_file_dump_all: input_player1_b_btn = "2"
RetroArch: config_file_dump_all: input_player1_b = "x"
RetroArch: config_file_dump_all: input_player1_select_axis = "nul"
RetroArch: config_file_dump_all: input_player1_select_btn = "7"
RetroArch: config_file_dump_all: input_player1_select = "c"
RetroArch: config_file_dump_all: input_player1_start_axis = "nul"
RetroArch: config_file_dump_all: input_player1_start_btn = "6"
RetroArch: config_file_dump_all: input_player1_start = "enter"
RetroArch: config_file_dump_all: input_player1_l_axis = "nul"
RetroArch: config_file_dump_all: input_player1_l_btn = "4"
RetroArch: config_file_dump_all: input_player1_l = "a"
RetroArch: config_file_dump_all: input_player1_r_axis = "nul"
RetroArch: config_file_dump_all: input_player1_r_btn = "5"
RetroArch: config_file_dump_all: input_player1_r = "s"
RetroArch: config_file_dump_all: input_player1_left_axis = "nul"
RetroArch: config_file_dump_all: input_player1_left_btn = "h0left"
RetroArch: config_file_dump_all: input_player1_left = "left"
RetroArch: config_file_dump_all: input_player1_right_axis = "nul"
RetroArch: config_file_dump_all: input_player1_right_btn = "h0right"
RetroArch: config_file_dump_all: input_player1_right = "right"
RetroArch: config_file_dump_all: input_player1_up_axis = "nul"
RetroArch: config_file_dump_all: input_player1_up_btn = "h0up"
RetroArch: config_file_dump_all: input_player1_up = "up"
RetroArch: config_file_dump_all: input_player1_down_axis = "nul"
RetroArch: config_file_dump_all: input_player1_down_btn = "h0down"
RetroArch: config_file_dump_all: input_player1_down = "down"
RetroArch: config_file_dump_all: input_player1_analog_dpad_mode = "1"
RetroArch: config_file_dump_all: input_player1_l_x_plus = "nul"
RetroArch: config_file_dump_all: input_player1_l_x_plus_btn = "nul"
RetroArch: config_file_dump_all: input_player1_l_x_plus_axis = "+0"
RetroArch: config_file_dump_all: input_player1_l_x_minus = "nul"
RetroArch: config_file_dump_all: input_player1_l_x_minus_btn = "nul"
RetroArch: config_file_dump_all: input_player1_l_x_minus_axis = "-0"
RetroArch: config_file_dump_all: input_player1_l_y_plus = "nul"
RetroArch: config_file_dump_all: input_player1_l_y_plus_btn = "nul"
RetroArch: config_file_dump_all: input_player1_l_y_plus_axis = "-1"
RetroArch: config_file_dump_all: input_player1_l_y_minus = "nul"
RetroArch: config_file_dump_all: input_player1_l_y_minus_btn = "nul"
RetroArch: config_file_dump_all: input_player1_l_y_minus_axis = "+1"
RetroArch: config_file_dump_all: input_hold_fast_forward_axis = "+5"
RetroArch: config_file_dump_all: input_hold_fast_forward_btn = "nul"
RetroArch: config_file_dump_all: input_hold_fast_forward = "tilde"
RetroArch: config_file_dump_all: input_shader_prev_btn = "9"
RetroArch: config_file_dump_all: input_exit_emulator_btn = "10"
RetroArch: config_file_dump_all: input_menu_toggle_axis = "nul"
RetroArch: config_file_dump_all: input_menu_toggle_btn = "8"
RetroArch: config_file_dump_all: input_menu_toggle = "tab"
RetroArch: config_file_dump_all: input_save_state_axis = "nul"
RetroArch: config_file_dump_all: input_save_state_btn = "nul"
RetroArch: config_file_dump_all: input_save_state = "f5"
RetroArch: config_file_dump_all: input_load_state_axis = "nul"
RetroArch: config_file_dump_all: input_load_state_btn = "nul"
RetroArch: config_file_dump_all: input_load_state = "f9"
RetroArch: config_file_dump_all: input_audio_mute_axis = "nul"
RetroArch: config_file_dump_all: input_audio_mute_btn = "nul"
RetroArch: config_file_dump_all: input_audio_mute = "f2"
RetroArch: config_file_dump_all: input_reset_axis = "nul"
RetroArch: config_file_dump_all: input_reset_btn = "nul"
RetroArch: config_file_dump_all: input_reset = "f10"
RetroArch: config_file_dump_all: video_smooth = "false"
RetroArch: config_file_dump_all: video_scale_integer = "false"
RetroArch: config_file_dump_all: video_windowed_fullscreen = "true"
RetroArch: config_file_dump_all: video_disable_composition = "false"
RetroArch: config_file_dump_all: video_vsync = "true"
RetroArch: config_file_dump_all: video_hard_sync = "true"
RetroArch: config_file_dump_all: video_hard_sync_frames = "0"
RetroArch: config_file_dump_all: video_swap_interval = "2"
RetroArch: config_file_dump_all: video_refresh_rate = "60.000000"
RetroArch: config_file_dump_all: video_shader_enable = "true"
RetroArch: config_file_dump_all: rgui_browser_directory = "../../Roms/Nintendo G
ame Boy Advance/"
RetroArch: config_file_dump_all: savefile_directory = "./Save/Nintendo Game Boy
Advance/"
RetroArch: config_file_dump_all: savestate_directory = "./State/Nintendo Game Bo
y Advance/"
RetroArch: config_file_dump_all: screenshot_directory = "./Screenshot/"
RetroArch: config_file_dump_all: video_shader_dir = "./Shaders/"
RetroArch: config_file_dump_all: system_directory = "./System/"
RetroArch: config_file_dump_all: video_shader = "./Shaders/lcd-shader.cgp"
RetroArch: config_file_dump_all: libretro_path = "./Cores/vbam_libretro.dll"
RetroArch: config_file_dump_all: video_scale = "6.0"
RetroArch: config_file_dump_all: pause_nonactive = "true"
RetroArch: config_file_dump_all: autosave_interval = "60"
RetroArch: config_file_dump_all: audio_volume = "3.0"
RetroArch: config_file_dump_all: rgui_show_start_screen = "false"
config_load_file: === Config end ===
RetroArch: load_symbols: Loading dynamic libretro from: "F:\Blue\Emulation\Emula
tors\RetroArch\Cores\gambatte_libretro.dll"
RetroArch: rarch_environment_cb: Environ SET_VARIABLES.
RetroArch: parse_variable: Core option:
RetroArch: parse_variable: Description: GBA mode
RetroArch: parse_variable: Key: gb_gbamode
RetroArch: parse_variable: Current value: disabled
RetroArch: parse_variable: Possible values:
RetroArch: parse_variable: disabled
RetroArch: parse_variable: enabled
RetroArch: parse_variable: Core option:
RetroArch: parse_variable: Description: GB Colorization
RetroArch: parse_variable: Key: gb_colorization
RetroArch: parse_variable: Current value: disabled
RetroArch: parse_variable: Possible values:
RetroArch: parse_variable: disabled
RetroArch: parse_variable: enabled
RetroArch: parse_variable: custom
RetroArch: parse_variable: Core option:
RetroArch: parse_variable: Description: Color correction
RetroArch: parse_variable: Key: gbc_color_correction
RetroArch: parse_variable: Current value: enabled
RetroArch: parse_variable: Possible values:
RetroArch: parse_variable: enabled
RetroArch: parse_variable: disabled
RetroArch: verify_api_version: Version of libretro API: 1
RetroArch: verify_api_version: Compiled against API: 1
RetroArch: rarch_environment_cb: Environ GET_LOG_INTERFACE.
RetroArch: rarch_environment_cb: Environ PERFORMANCE_LEVEL: 4.

Performance regression in Gambatte with Pokemon Blue Japanese version

I recently tried playing Pokemon Blue (Japanese version) using gambatte-libretro. When I reached the "load game/new game/settings" screen, the emulator slowed down to about 7fps.
The same behavior does not occur with Gambatte 0.5.0, WIP2 on the same ROM. Likewise, it does not occur with the US Pokemon Blue ROM, on either version.
My system is an AMD Phenom II X3 710, clocked at 2.6 GHz. I am running Debian, x86_64, and using a git checkout I built retroarch and gambatte-libretro.
The ROM's md5sum is c1adf0a77809ac91d905a4828888a2f0.

[Wii] Gamecube controller repeatedly detected

When using the Gamebatte Retroarch core with a Gamecube controller in the first slot, the automatic detection and remapping of the controller will happen over and over, displaying the message "Gamecube controller configured in Port #00" at the bottom of the screen. The display can be triggered consistently by certain acts in a game, such as entering a door or sucking up an enemy in Kirby's Dream Land or moving between menus in Mario Golf, but generally speaking it appears near-constantly in the majority of games. This behavior does not happen with the Wiimote or any other controller, nor any other core on Retroarch Wii that I've seen.

Although you can disable automatic remapping, due to the way Retroarch on the console works there is no way to manually remap the controls without first disabling the current set and totally locking yourself out of any control until you delete the retroarch.cfg file. There is also no option to disable the message that I can see.

Retro Version: 1.3.4
Emu Version: Gambatte v0.5.0

Broken portability

When trying to build core without __LIBRETRO__ flag, we get the following errors:

src/gambatte-memory.h:61:2: error: 'class gambatte::Cartridge' has no member named 'loadSavedata'
void loadSavedata() { cart_.loadSavedata(); }
src/gambatte-memory.h:62:2: error: 'class gambatte::Cartridge' has no member named 'saveSavedata'
void loadSavedata() { cart_.loadSavedata(); }

Seems that at some point portability was broken. No idea how many more functions are missing, as the build process just stops there.

zip/bin files

Hello,

I have Gameboy Color roms in zip format, they contain .bin file.
If I try to launch archive zip with Gambatte core, it doesn't work.
But if I unzip archive and try to launch .bin rom file, it works.

This core does not support zip files? Is it a bug?

Thank you for your help.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

custom palette "default.pal" doesn't get used anymore

in earlier gambatte-libretro builds (some time around RetroArch 0.9.7 I think) if there existed a custom palette /palettes/default.pal it would get loaded and used. Not so anymore, maybe since the gbc bios palettes were built into the core. Only .pal-files that are named after their game are still used, for example "SUPERMARIOLAND3.pal".

Crash when loading Pokemon Crystal

RetroArch 1.7.2 - Windows 10 x64

Gambatte crashes on startup when loading Pokemon Crystal

ROM: Pokemon Crystal REV A (No intro)

It works fine with other cores like Sameboy.
Gambatte seems to load other games without issues and the same settings and shader.

No BIOS files used.

Log : https://pastebin.com/r2AAdtHX

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.