Difference between revisions of "Gens/GS"

From Sega Retro

(Yay editing!)
 
(13 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[Image:GensGS.png|right]]
+
{{EmuBob
'''Gens/GS''' is a version of [[Gens]] maintained by [[GerbilSoft]]. The main goal of Gens/GS is to clean up the source code and combine features from various forks of Gens, as well as improving portability to other platforms.
+
| bobscreen=GensGS.png
 
+
| system=[[Sega Mega Drive]], [[Mega-CD]], [[32X]]
==Download==
+
| os=Windows, Linux
 
+
| developer=Stéphane Dallongeville (Gens); David "GerbilSoft" Korth
===Stable Release===
+
| language=Assembly, C++
{{Multidownload
+
| date=2009-11-22{{ref|http://www.dusers.drexel.edu/gitweb/gitweb.cgi/~korth/gens.git/commit/909e81d9a85fa378faba42d3a6bd121fdfe7c5e3}}
|file1=Gens-gs-r7.tar.gz
+
| version=r7
|filename1=Gens/GS Release 7 (Source Code)
 
|filesize1=3.36 MB
 
|file2=Gens_2.16.7_i386.deb
 
|filename2=Gens/GS Release 7 (Ubuntu 8.04+, i386)
 
|filesize2=2.24 MB
 
|file3=Gens-gs-r7-win32-pkg1.zip
 
|filename3=Gens/GS Release 7 (Win32, i386; Packaging Update 1)
 
|filesize3=2.63 MB
 
|file4=Gens-gs-r7-i486-4_SBo.tgz
 
|filename4=Gens/GS Release 7 (Slackware 13.0, i486)
 
|filesize4=2.16 MB
 
 
}}
 
}}
 +
'''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.
  
===Git Repository===
+
Development of the emulator was continued in [[Gens/GS II]].
The Gens/GS git repository is available at http://gs_server.gerbilsoft.ddns.info/cgi-bin/gitweb.cgi?p=gens.git;a=summary .
 
  
 +
==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!]].
  
==In This Release==
+
==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.
  
Changes in Release 7:
+
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.
  
===New Features===
+
==Downloads==
* Added an additional color scaling method, "Full with S/H". This method takes into account the Shadow and Highlight functionality of the Sega Mega Drive's VDP. With this method, MD color 0xEEE (white) is scaled to 0xEEEEEE for normal, 0xFFFFFF for highlight, and 0x777777 for shadow. This color scaling method is now the default.
+
{{Multidownload
* Initial reimplementation of "Full Screen Minimize". This allows the emulator to minimize itself from Full Screen when a dialog is open, e.g. to load a ROM image. It is currently only usable for a specific case on the Linux version.
+
| file1=Gens-gs-r7.tar.gz
* [Linux] Added Alt-Tab support in Full Screen. This uses the "Full Screen Minimize" infrastructure.
+
| 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)
 +
}}
  
===Bug Fixes===
+
===Ubuntu 18.04 Install Instructions===
* [Win32] Added a workaround for an ASPI-related crash on Windows 98SE.
+
These packages are 32 bit, but modern Ubuntu is 64-bit. You can setup i386 architecture and install pretty easily, however:
* [Win32] Fixed a regression from r7_pre3 that caused Gens/GS to crash if a ROM is loaded via File, Open ROM and a Saitek P580 gamepad is plugged in. Special thanks to NeKit from Sonic Retro for helping to diagnose and solve this problem.
 
* [Linux] Fixed a regression from r7_pre4 where starting Gens/GS in fullscreen mode with a ROM specified wouldn't work. This bug was reported by Zombie in #retro.
 
  
===Miscellaneous===
+
    $ sudo dpkg --add-architecture i386
* [Win32] The custom debug console activated with "--debug" on the release build has been replaced with a standard Win32 console, which is created after initial startup.
+
    $ sudo apt-get update
* [MDP] Implemented <tt>mdp_host_t->emulator_control(MDP_EMUCTRL_RELOAD_INFO)</tt>.
+
    $ sudo apt-get install <this package>.deb
* Added "Manual" and "Report a Bug" items to the Help menu.
 
  
===Low-Level Code Changes===
+
===Old versions===
* [libgsft] Added an implementation of strsep() and removed the strtok_r() implementation. All Gens/GS code that uses strtok_r() has been switched over to strsep().
+
* {{file|GensGS old versions.7z|Versions r7 pre1, r7 pre2, r7 pre3, r7 pre4, r7 pre5 (Windows, Linux and source code).}}
* [libgsft] Added the BSD implementations of strlcpy() and strlcat(). Most Gens/GS code has been switched over to these functions.
+
** Version m6 is missing.
* Initial infrastructure for dynamically loading libpng. This will be used to separate libpng on Gens/GS Win32 into a separate DLL. If libpng can't be found, Gens/GS will fall back to saving screenshots in BMP format.
 
* Eliminated most of the "DECL" macros from the x86 assembler files. This reduces the total symbol count in the resulting binaries.
 
* Added a new x86 assembler macro, SYM(), which prefixes symbols with the appropriate C symbol prefix for the platform.
 
  
For information about previous releases, see the ChangeLog.txt file included with Gens/GS.
+
==External links==
 
+
===Git Repository===
 
+
* [http://www.dusers.drexel.edu/gitweb/gitweb.cgi?p=~korth/gens.git;a=summary Gens/GS Git Repository]
==Coming Soon==
+
* [http://www.dusers.drexel.edu/gitweb/gitweb.cgi?p=~korth/gens-gs-ii.git;a=summary Gens/GS II Git Repository]
 
 
===Release 7.1===
 
* [Win32] Full Unicode support on Windows NT. Additionally, ANSI strings on Windows 9x will be converted to UTF-8 for cross-platform compatibility. (Note that Windows 95 doesn't support UTF-8, so Windows 95 is no longer supported.)
 
* Physical CD-ROM drive abstraction layer. BIN/CUE support may be added, too.
 
** ISO/MP3 and Linux CD-ROM support has been ported.
 
** Win32 ASPI support is in progress.
 
* Shift-JIS title decoder for some Japanese ROMs.
 
* [Linux] IRC Reporter plugin to report the current ROM to IRC clients.
 
* New onscreen display font, based on [http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.html UNI-VGA] and [http://unifoundry.com/unifont.html GNU Unifont], with support for most of the Unicode Basic Multilingual Plane. (ASCII characters [U+0000 - U+007F] will be included in the binary, but all other characters will be stored in external custom font files.)
 
* [Linux] Initial VDP Debugging plugin with all the functionality currently available in the built-in VDP debugger, plus a sprite viewer and Sonic sprite mapping viewer.
 
** Sprite viewer shows hardware sprites. [Not Started]
 
** Sonic sprite mapping viewer shows full sprites using the mapping system found in Sonic games. [Not Started]
 
* The VDP rendering and I/O code is being ported from x86 assembly language to C++. Some notable improvements in this port:
 
** The per-line sprite limit is now respected. (16 sprites per line in H32; 20 in H40.)
 
** Border color is now rendered in the VDP code instead of in the video drawing backends.
 
** V30 (240-line) resolution is now supported in NTSC. That is, it works like it does on the real console: VBlank is reduced to 30&nbsp;Hz, and the picture rolls. (V30 still works normally in PAL.)
 
** All tests in Nemesis' Sprite Masking and Overflow Test ROM now pass.
 
** VDP ports are now correctly mirrored throughout the M68K's $C00000-$DFFFFF address space.
 
* SegaCD: The BRAM cartridge emulation now allows 128 KB, 256 KB, and 512 KB cartridges. (Default is still 64 KB)
 
* ROM images that use SRAM now have the SRAM initialized to 0xFF instead of 0x00. This fixes a few games, including Micro Machines 2 and Dino Dini's Soccer.
 
* The 2x C++ renderer no longer reads from the destination buffer when line-doubling the image. It also uses a single loop per source row instead of two.
 
* The 2x MMX renderers have been optimized to use a single loop for each source row instead of two.
 
 
 
===Release 7.2===
 
* Port the emulation code of mdZ80 to C.
 
 
 
===Future Releases===
 
* Cheat Search plugin.
 
** This makes it too easy for the average user to make a "hack" without knowing what they're doing, so it's unlikely that this plugin will be written by me. I will accept patches from anyone else who wants to write this plugin, however.
 
 
 
 
 
==Other Information==
 
===Trivia===
 
* 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.
 
  
===Forum Threads===
+
===Forum threads===
 
* [http://ubuntuforums.org/showthread.php?t=1225491 Ubuntu Forums thread (r7_pre2)]
 
* [http://ubuntuforums.org/showthread.php?t=1225491 Ubuntu Forums thread (r7_pre2)]
 
* {{LinkRetro|topic=16887|title=Sonic Retro thread (r7_pre2)}}
 
* {{LinkRetro|topic=16887|title=Sonic Retro thread (r7_pre2)}}
  
====Older Forum Threads====
 
 
* [http://ubuntuforums.org/showthread.php?t=959074 Ubuntu Forums thread (m5-m6)]
 
* [http://ubuntuforums.org/showthread.php?t=959074 Ubuntu Forums thread (m5-m6)]
 
* [http://ubuntuforums.org/showthread.php?t=948708 Ubuntu Forums thread (m4.2)]
 
* [http://ubuntuforums.org/showthread.php?t=948708 Ubuntu Forums thread (m4.2)]
 
* {{LinkRetro|topic=11813|title=Sonic Retro thread (m6 and earlier)}}
 
* {{LinkRetro|topic=11813|title=Sonic Retro thread (m6 and earlier)}}
  
[[Category:Mega Drive Emulators]]
+
==References==
 +
<references/>

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