Gens/GS Milestone 5 - 模擬器

Vanessa avatar
By Vanessa
at 2008-10-29T12:06

Table of Contents

http://info.sonicretro.org/Gens/GS#Milestone_5

Releases
Milestone 5

Milestone 5 introduces the following new features:

* The Windows UI and DirectX code has been integrated into the codebase. The
Gens/GS codebase can now be used to compile both the Linux versions and the
Windows versions.
* [Linux] The frame counter code has been updated to work a lot better. In
particular, it no longer uses the x86 instruction "rdtsc", so it should be
more accurate on multiprocessor and multicore systems.
* 7z: A warning dialog is now shown if the 7z binary cannot be run. This
usually occurs if 7-Zip isn′t installed.
* [GTK+] The "General Options" dialog now has regular buttons instead of
radio buttons for selecting colors. It seems that most GTK+ themes don′t
properly support changing the colors of radio buttons, so changing them to
regular buttons enables proper color support.

Milestone 5 fixes the following bugs:

* [32X] PWM audio volume has been increased by a factor of 4, making it
audible.
* [SegaCD] The 8th PCM audio channel now works.
* [Linux] If Gens is started in a terminal window, Ctrl-C now correctly shuts
down the program. Earlier versions ignored Ctrl-C. Apparently, SDL catches
the Ctrl-C (SIGINT) and adds it to the SDL event queue as an SDL_QUIT
message.
* The "Save Config" and "Load Config As" functions incorrectly passed a NULL
value to the GensUI class when a C++ string was expected, resulting in a
crash.
* Clicking "OK" in the "Archive File Selection" dialog with no file selected
resulted in a crash.
* [32X] Some 32X ROMs were misdetected as Genesis ROMs. In particular, drx′s
"Sonic 32X" does not say "SEGA 32X" in the header. However, the ROM does have
"MARS" at 0x040E. The detection function has been updated to take this into
account, so "Sonic 32X" is now properly detected as a 32X ROM.
* [GTK+] Fixed GTK+ 2.4 compatibility issues.
* [GTK+] Added accelerators for the "Cancel" button in the Game Genie window.
* Color Adjust: If both Contrast and Brightness are set to 0, then no color
adjustment calculations will take place. This prevents inaccuracies due to
rounding errors.

Milestone 5 has the following low-level code changes:

* -Wl,--as-needed has been added to LDFLAGS. This eliminates unnecessary
library dependencies.
* Internal copies of zlib and libpng have been added. These internal copies
are not used by default on the Linux build, since most Linux systems have
zlib and libpng already installed, but are used by default on the Windows
build. Use of these internal copies can be configured using the ./configure
script.
* MP3 playback support can now be disabled in the ./configure script.
* rom.cpp, save.cpp, and imageutil.cpp (formerly scrshot.c) have been
converted to static C++ classes.
* The INI parser now supports hexadecimal and octal numbers. These numbers
are identified by prefixes. (Hexadecimal: "0x" or "0X"; Octal: "0".)
* Controller mappings are now saved as hexadecimal numbers in gens.cfg.

Milestone 5 has the following known issues:

* [Win32] MP3 support is currently disabled due to problems with the MP3
library. ASPI support is available though, so you can use an ASPI library
with a CD-ROM emulator, such as Daemon Tools.
* [Win32] Stretched rendering may not work properly in fullscreen mode.
* [Linux] Monaural sound is broken.

Milestone 4.2

Milestone 4.2 fixes the following bugs:

* Joystick input was still completely broken due to an accidental swapping of
"which" (device number) and "axis" (axis number). This bug was reported by
Techokami in #retro.

Milestone 4.1

Milestone 4.1 introduces the following 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.

Milestone 4.1 fixes the following bugs:

* SDL′s joystick handler wasn′t being initialized properly. Joysticks were
properly detected in the Controller Configuration window, but didn′t work
in-game. This bug was reported by Techokami in #retro.
* A missing #include line has been added to g_main_linux.hpp. Lack of this
line led to compilation failures on some machines. This bug was reported by
SOTI in #retro.
* 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

Milestone 4 introduces the following new features:

* 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.
* MAME CHD and CCnet support have been removed. They weren′t used for
anything and simply took up extra space.
* 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.
* OpenGL linear filtering can now be enabled/disabled via a menu item.
* 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:

* Shadow/Highlight colors were incorrect in 16-bit color.
* 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.
* Physical CD-ROM support via ASPI works again. I accidentally broke it when
CD-ROM support was made conditional.

Milestone 4 has the following low-level code changes:

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

--

All Comments

Ootake v1.57

Faithe avatar
By Faithe
at 2008-10-29T12:03
http://www.ouma.jp/ootake/ ◇CD-ROMアクセスの割り込み処理を、実機の動作に近づけました。and#34;麻雀レモンエンジ ェルand#34;で、頻繁にフリーズしてしまっていた不具合(v1.37から発生)が解消しました。 ◇ラスタ割込み処理のタイミングを、実機の動作に近づけました ...

尋找一款飛機射擊遊戲

John avatar
By John
at 2008-10-29T11:04
這是一款約10年前的電視橫向射擊遊戲 玩法是要打電話上去玩 越2468代表下左右上 武器是要靠用吃的取得 印象中有綠色的追蹤雷射(會發射三條會追人的雷射) 也有會發射三種方向的散彈(斜上 前 斜下) 好像也有藍色的集中雷射 第一官場景是在宇宙 boss是一隻正方形的機器 兩旁各有一隻鐵鉤會攻擊 第二關 ...

VisualBoyAdvance-M [SVN build 781, MFC]

Eden avatar
By Eden
at 2008-10-29T00:20
※ 引述《choan (八房龍の助)》之銘言: : http://vba-m.ngemu.com/vbam/vbacompiles/msvc2008/ : Windows VBA-M build with UPS support : Here is a Windows MFC build of VBA-M w ...

Gambatte v0.4.0

Caroline avatar
By Caroline
at 2008-10-29T00:02
Gambatte is an accuracy-focused, cross-platform Game Boy / Game Boy Color emulator. It is based on hundreds of corner case hardware tests, as well as previ ...

Mednafen v0.8.A

Rae avatar
By Rae
at 2008-10-28T23:57
http://sourceforge.net/project/showfiles.php?group_id=150840 Mednafen a multisystem-emulator has been updated. Mednafen emulates the following systems: At ...