Difference between revisions of "Gens/GS"

From Sega Retro

old>GerbilSoft
(→‎Releases: Milestone 4.1)
 
(135 intermediate revisions by 20 users not shown)
Line 1: Line 1:
{{Stub}}
+
{{EmuBob
'''Gens/GS''' is a version of Gens for Linux maintained by [[GerbilSoft]]. The main goal of Gens/GS is to clean up the source code and combine features from various forks of Gens. Additionally, a future version of Gens/GS will combine the Windows code into the same codebase, so one codebase can be used to compile on both operating systems.
+
| bobscreen=GensGS.png
 +
| system=[[Sega Mega Drive]], [[Mega-CD]], [[32X]]
 +
| os=Windows, Linux
 +
| developer=Stéphane Dallongeville (Gens); David "GerbilSoft" Korth
 +
| language=Assembly, C++
 +
| date=2009-11-22{{ref|http://www.dusers.drexel.edu/gitweb/gitweb.cgi/~korth/gens.git/commit/909e81d9a85fa378faba42d3a6bd121fdfe7c5e3}}
 +
| version=r7
 +
}}
 +
'''Gens/GS''' is a [[Sega Mega Drive]] emulator derived from [[Gens]] and maintained by [[GerbilSoft]]. It is based upon the Gens version 2.15.2 Linux source code. Project goals include clean source code, combined features from various forks of Gens, and improved platform portability.
  
==Releases==
+
Development of the emulator was continued in [[Gens/GS II]].
  
===Milestone 4.1===
+
==Features==
 +
Gens/GS has a number of bug fixes and low-level code changes, as well as the following updates:
 +
* Accurate colour scaling so that white has the RGB value $FFFFFF. Older emulators usually displayed white as $E0E0E0.
 +
* VDP options for disabling layers and locking palettes.
 +
* ''Sonic'' game memory value viewer ported from [[sGens]].
 +
* Renderers ported from [[Gens Re-Recording]] and [[Gens Plus!]].
  
Milestone 4.1 introduces the following new features:
+
==Other versions==
 +
[[Gens/GS II]] is a partial rewrite of Gens/GS written by GerbilSoft. Gens/GS II improves the basic framework of the emulator, which will allow for the addition of many new features.
  
* The Fast Forward feature has been re-enabled. It is mapped to F1. Note that Fast Forward doesn't work if VSync is enabled.
+
A parody version of the emulator, [[Gens/GS S2HD Edition]], was released to mock the high overhead and bad effects of modern-day emulation compilations and poor-quality "HD" remakes.
  
Milestone 4.1 fixes the following bugs:
+
==Downloads==
 +
{{Multidownload
 +
| file1=Gens-gs-r7.tar.gz
 +
| filename1=Gens/GS Release 7 (Source Code)
 +
| file2=Gens_2.16.7_i386.deb
 +
| filename2=Gens/GS Release 7 (Ubuntu 8.04+, i386)
 +
| file3=Gens-gs-r7-win32-pkg1.7z
 +
| filename3=Gens/GS Release 7 (Win32, i386; Packaging Update 1)
 +
| file4=Gens-gs-r7-i486-4_SBo.tgz
 +
| filename4=Gens/GS Release 7 (Slackware 13.0, i486)
 +
| file5=Gens_2.16.8-r7orig_amd64.deb
 +
| filename5=Gens/GS Release 7 (Ubuntu 18.04)
 +
}}
  
* SDL's joystick handler wasn't being initialized properly. Joysticks were properly detected in the Controller Configuration window, but didn't work in-game.
+
===Ubuntu 18.04 Install Instructions===
* A missing #include <stdlib.h> line has been added to g_main_linux.hpp. Lack of this line led to compilation failures on some machines.
+
These packages are 32 bit, but modern Ubuntu is 64-bit. You can setup i386 architecture and install pretty easily, however:
* zlib support can now be conditionally compiled. This only affects the GZip and Zip functionality; PNG support implies zlib, but enabling PNG support will not implicitly enable zlib support.
 
  
===Milestone 4===
+
    $ sudo dpkg --add-architecture i386
 +
    $ sudo apt-get update
 +
    $ sudo apt-get install <this package>.deb
  
Milestone 4 introduces the following new features:
+
===Old versions===
 +
* {{file|GensGS old versions.7z|Versions r7 pre1, r7 pre2, r7 pre3, r7 pre4, r7 pre5 (Windows, Linux and source code).}}
 +
** Version m6 is missing.
  
* The SegaCD GFX debugger now shows all 16 virtual palette lines. The virtual palette lines include highlight and shadow. Previously, these lines were selectable, and the patterns did reflect the palettes, but the color lines didn't actually show up.
+
==External links==
* MAME CHD and CCnet support have been removed. They weren't used for anything and simply took up extra space.
+
===Git Repository===
* The scanline renderer is now available in 32-bit color. Note that the x86 asm scanline renderers don't erase the scanlines on every frame, so garbage is left behind by the new text drawing function.
+
* [http://www.dusers.drexel.edu/gitweb/gitweb.cgi?p=~korth/gens.git;a=summary Gens/GS Git Repository]
* OpenGL linear filtering can now be enabled/disabled via a menu item.
+
* [http://www.dusers.drexel.edu/gitweb/gitweb.cgi?p=~korth/gens-gs-ii.git;a=summary Gens/GS II Git Repository]
* New generic input and audio layers, which are located in src/gens/input/ and src/gens/audio/. Like VDraw, which was implemented in Milestone 3, this will make it easier to add support for DirectInput and DirectSound, respectively. src/gens/sdllayer/ is now completely gone.
 
* New onscreen text drawing function. The new function draws text to the display framebuffer rather than to the emulated framebuffer. Among other things, this means that messages and the FPS counter no longer show up in screenshots. The font currently used is the Commodore 64 font, but more fonts may be added later on.
 
* 32-bit color support in the VDP debugger.
 
* Improved OpenGL renderer. The improved renderer takes some fixes from Gens/Linux 2.15.4, as well as improving the VSync functionality. VSync uses the GLX_SGI_swap_control extension, so it may not work on all systems. Support for other VSync extensions will be added later on.
 
* The GTK+ window border is now set to 0. This allows a window manager to remove the window border for pseudo-full-screen.
 
  
Milestone 4 fixes the following bugs:
+
===Forum threads===
 +
* [http://ubuntuforums.org/showthread.php?t=1225491 Ubuntu Forums thread (r7_pre2)]
 +
* {{LinkRetro|topic=16887|title=Sonic Retro thread (r7_pre2)}}
  
* Shadow/Highlight colors were incorrect in 16-bit color.
+
* [http://ubuntuforums.org/showthread.php?t=959074 Ubuntu Forums thread (m5-m6)]
* If the country code was set to US, Gens/GS would incorrectly attempt to load the EU MegaCD BIOS if a SegaCD game was loaded, resulting in a region code error. This has been fixed.
+
* [http://ubuntuforums.org/showthread.php?t=948708 Ubuntu Forums thread (m4.2)]
* Physical CD-ROM support via ASPI works again. I accidentally broke it when CD-ROM support was made conditional.
+
* {{LinkRetro|topic=11813|title=Sonic Retro thread (m6 and earlier)}}
  
Milestone 4 has the following low-level code changes:
+
==References==
 
+
<references/>
* C99 mode is now used by default for C-language code.
 
* The new INI handler has been converted to a C++ class.
 
* Deprecated GTK+ functions have been disabled via the -DGTK_DISABLE_DEPRECATED CFLAG.
 
* New GensUI C++ class, which replaces the old ui-common.c and ui-common_gtk.c files.
 
* Minizip has been upgraded to the latest version (v1.01e) and is now in a separate subdirectory in src/.
 
 
 
===Milestone 3===
 
 
 
Milestone 3 introduces the following new features:
 
 
 
* Completely rewritten video rendering subsystem. The new video rendering subsystem abstracts the differences between plain SDL and SDL+OpenGL and presents a standard interface to the rest of Gens. This will make it easier to add in DirectDraw support later on.
 
* The configuration file handler has been rewritten such that it no longer fails to read or write certain configuration entries. Additionally, section names and key names are now case-insensitive.
 
* The OpenGL renderer now supports 15-bit and 32-bit color modes.
 
* Improved Fast Blur function, written in C, that supports 15, 16, and 32-bit color modes. The old Fast Blur function is still used for 15 and 16-bit color if x86 asm is enabled via --enable-x86-asm in the ./configure script.
 
* 7z archives can now be used via an external 7z binary. You must have p7zip installed in order to use this feature.
 
* SegaCD LED code has been updated to work correctly in all color modes.
 
 
 
Milestone 3 fixes the following bugs:
 
 
 
* The built-in debugger now properly updates the screen in 32-bit color.
 
* Horizontal positioning for 256x224 video modes in 32-bit color was off by 32 pixels.
 
 
 
Milestone 3 has the following low-level code changes:
 
 
 
* Standard controller I/O functionality has been ported to C. Additionally, controller button presses are now stored in bitfields rather than reserving an entire 32-bit int per button. Unfortunately, I could not figure out how to port over the TeamPlayer code correctly, so that remains in x86 asm for now, with compatibility wrappers with regards to the button format.
 
* Compression handlers have been rewritten using C++ classes.
 
* C++ code has been introduced into the Gens/GS codebase. With this change, all header files have been updated to include "#ifdef __cplusplus" barriers, so older C-only code will link correctly.
 
 
 
===Milestone 2.2===
 
 
 
Milestone 2.2 fixes the following bugs:
 
 
 
* Fixed several bugs with savestate support, including matching struct alignment with Gens/Rerecording (Win32) and incorrectly reading x86 memory pointers for the emulated Z80 CPU. Please note that savestates from previous versions of Gens/GS will not work correctly on m2.2; however, you can load the savestates in another emulator, such as the original Gens, and resave it in the older format. The older format savestate will then work on Gens/GS.
 
* CD-ROM drive support is now conditional via the ./configure script.
 
* 32-bit color now works for 32X games.
 
 
 
===Milestone 2.1===
 
 
 
Milestone 2.1 fixes the following bugs:
 
 
 
* 32X VDP rendering was accidentally broken completely in m2. It's fixed now, at least for 15-bit and 16-bit color. 32-bit color mode still needs to be fixed.
 
* The window title for 32X games was always set to "32X (PAL)", even if the game is NTSC. This is fixed.
 
 
 
===Milestone 2===
 
 
 
Milestone 2 introduces the following new features:
 
 
 
* PNG screenshot support via libpng. This was apparently a wishlist item for Gens for the past several years, but no one bothered to add it.
 
* Screenshots now save the unfiltered image at the correct resolution. For example, Sonic CD special stages now save as a 256x224 image.
 
* Rewrite of the way compressed files are handled. Compressed files are now handled using a generic COMPRESS_Handler interface. Currently, only GZip and Zip files are supported (the same as before), but it's now much easier and simpler to add new formats.
 
* The new compression handler detects compressed files by checking the file's header instead of relying on the file's extension. This may help in cases where a file is misnamed.
 
* Multi-file Zip support. If a Zip file containing multiple files is  selected, Gens will prompt you to select which file to open. The UI for selecting a file is currently not polished, but it will be improved later on.
 
* Rewrite of the way renderers are handled. The new rendering system uses the same rendering code, but has a much simpler calling interface.
 
* Initial 32-bit color support, ported from Gens Rerecording. Most of the 32-bit color renderers haven't been ported from Gens Rerecording yet, so only three are available in 32-bit: Normal, Double, and Scale2x. 15-bit or 16-bit color is necessary for the others. To change color modes, select Graphics, Bits Per Pixel, and the appropriate color mode.
 
* Conditional compilation support for OpenGL, PNG, and x86 asm renderers. If PNG support is not enabled, screenshots will be taken in BMP format.
 
* Border color emulation. The border color is set to color 0 of palette 0 from the MD's VDP.
 
 
 
Milestone 2 fixes the following bugs:
 
 
 
* Fixed a bug where the 32X VDP overlay disappeared when Gens was paused via the Escape key. The overlay reappeared when Gens was unpaused, though.
 
 
 
Known bugs in Milestone 2:
 
 
 
* 32X does not work properly in 32-bit color. The MD VDP shows up correctly, but the 32X VDP's colors are all wrong. For now, switch to 15-bit or 16-bit color by selecting Graphics, Bits Per Pixel, and either 15 or 16.
 
 
 
===Milestone 1===
 
 
 
Milestone 1 introduces the following new features:
 
 
 
* Massive code cleanup throughout the entire Gens codebase. Many functions with duplicated code have been consolidated so that the duplicated code is now shared between the functions. Also, several large files have been split into smaller files. For instance, gens.c has been split into gens.c, g_md.c, g_mcd.c, g_32x.c, and g_palette.c.
 
* Introduction of OS-independent functions, which will allow for the integration of the Win32 version of Gens later on, so that one codebase can be used to build a Gens executable for either operating system.
 
* Gens v7 savestate format, ported from Gens Rerecording. This adds, among other things, proper Sega CD savestate support.
 
* Fixed the built-in debugger, which was broken due to changes in the way text was written to the emulated screen.
 
* Added enhanced Sega CD GFX debugging from Gens Rerecording.
 
* VDP/GFX debugging now outlines the selected palette.
 
* Initial attempt to consoldidate global variables into structs. This will make it easier to figure out where everything is located.
 
* Complete rewrite of the GTK+ UI. Among other things, the new UI has much improved synchronization, so when a menu item is checked, it actually means that item is enabled.
 
* Rewrite of the byteswapping functions so that they describe what is being swapped (e.g. be16_to_cpu_array()).
 
* Extra spaces in game names in ROM headers are removed when the game name is displayed on Gens' title bar.
 
* Fixed tons of compiler warnings.
 
 
 
==Download==
 
{{Download|version=2.15.4/GS-m4|file=Gens-2.15.4-gs-m4.rar|filesize=602 KB}}
 
 
 
===Prior Versions===
 
[[Media:Gens-2.15.2-gs-m3.rar|Gens/GS Milestone 3]] (613 KB, released 2008/09/02)<br />
 
[[Media:Gens-2.15.2-gs-m2.2.rar|Gens/GS Milestone 2.2]] (604 KB, released 2008/08/30)<br />
 
[[Media:Gens-2.15.2-gs-m2.1.rar|Gens/GS Milestone 2.1]] (607 KB, released 2008/08/29)<br />
 
[[Media:Gens-2.15.2-gs-m2.rar|Gens/GS Milestone 2]] (605 KB, released 2008/08/29)<br />
 
[[Media:Gens-2.15.2-gs-m1.rar|Gens/GS Milestone 1]] (446 KB, released 2008/08/26)
 
[[Category:Mega Drive Emulators]]
 

Latest revision as of 14:53, 24 December 2018

Video game console emulator

GensGS.png
Gens/GS
System(s): Sega Mega Drive, Mega-CD, 32X
OS: Windows, Linux
Developer: Stéphane Dallongeville (Gens); David "GerbilSoft" Korth
Programmed in: Assembly, C++
Last release date: (15 years ago)
Last version: r7

Gens/GS is a Sega Mega Drive emulator derived from Gens and maintained by GerbilSoft. It is based upon the Gens version 2.15.2 Linux source code. Project goals include clean source code, combined features from various forks of Gens, and improved platform portability.

Development of the emulator was continued in Gens/GS II.

Features

Gens/GS has a number of bug fixes and low-level code changes, as well as the following updates:

  • Accurate colour scaling so that white has the RGB value $FFFFFF. Older emulators usually displayed white as $E0E0E0.
  • VDP options for disabling layers and locking palettes.
  • Sonic game memory value viewer ported from sGens.
  • Renderers ported from Gens Re-Recording and Gens Plus!.

Other versions

Gens/GS II is a partial rewrite of Gens/GS written by GerbilSoft. Gens/GS II improves the basic framework of the emulator, which will allow for the addition of many new features.

A parody version of the emulator, Gens/GS S2HD Edition, was released to mock the high overhead and bad effects of modern-day emulation compilations and poor-quality "HD" remakes.

Downloads

Download.svg

Download Gens/GS
Multiple downloads available

Ubuntu 18.04 Install Instructions

These packages are 32 bit, but modern Ubuntu is 64-bit. You can setup i386 architecture and install pretty easily, however:

   $ sudo dpkg --add-architecture i386
   $ sudo apt-get update
   $ sudo apt-get install <this package>.deb

Old versions

External links

Git Repository

Forum threads

References