Subject: CVS commit: wip/desmume
From: Thomas Klausner
Date: 2009-08-16 14:00:05
Message id: E1McePM-0003WK-Aq@ddv4jf1.ch3.sourceforge.com

Log Message:
Update to 0.9.4:

0.9.2 -> 0.9.4 (r1844->r2352->r2437)

0.9.3 was skipped due to emu news sites sneaking it out of our staging area and 
releasing it prematurely while it still had bugs. I was going to curse them 
individually, but then I decided that they would just like the publicity.

Highlights:
 * New save autodetection and save file format
 * Full rerecording support
 
General/Core:
 bug: fix many 64 bit and endian issues
 bug: fix mic input, which was nearly useless before
 bug: fix failures of large dmas
 bug: fix in ipc sync which broke devkitpro touch
 bug: screenshots now exclude hud and rotation
 bug: rewritten vram mapping (fixes corrupted or missing BG)
 enh: add universal commandline system (same commandline options on every port)
 enh: cheats: added Action Replay code parser
 enh: more reliable and useful frameskipping
 enh: SPU: speedup: add adpcm caching
 enh: SPU: speedup: interpolation is now optional
 enh: print svn build number so we can identify people's svn builds from screenshots

Graphics:
 bug: add polygon y-sorting (fixes 3d guis)
 bug: fix texcoordgen mode 3; fixes some ortho sprites and some entirely broken games
 bug: display capture fixes
 bug: fix a number of OBJ modes
 bug: fixes to affine BG modes
 bug: better emulate some translucent OBJ
 bug: more correct handling of color effect windows and backdrop colors
 bug: fix matrix stack overrun which crashed emulator
 bug: swrast: add clear depth image emulation and other fixes to depth buffering
 bug: swrast: fix some toon and highlight cases
 bug: fix bug in matrix stack, fixes some broken models
 enh: add alternate flush mode HACK 3d config toggle, fixes some entirely broken \ 
3d games  
 
Gtk frontend:
 enh: switch all of menu/toolbar system to GtkAction + GtkUIManager
 enh: remove the gtglext 3d code
 enh: improve/speedup screen resize and final presentation logic in gtk frontend
 enh: minimal rerecording hookups

Cli frontend:
 enh: hooked the frameskip (szigor)
 enh: misc usability improvements: auto pause switch for pausing when focus is \ 
lost and exit on escape pressing (szigor)
 enh: hook the fake noise mic; use m to toggle

0.9.1 -> 0.9.2
General/Core:
 bug: fix error in SBCS/RSCS flags; fixes many odd behaviors and crashes [zeromus]
 bug: add support for sleep mode and power registers [luigi__]
 bug: important fixes to RTC so correct time is actually told [luigi__]
 bug: fix card reads below 0x8000; fixes some game freezes [normatt]
 bug: fix 4 mbit save type; fix non-autodetect savefile dumping [zeromus, matusz]
 enh: add sram to GBA game addon emulation for importing savefiles [zeromus]
 enh: many improvements and feature hookups in linux ports [matusz, luigi__]
 
Graphics:
 bug: fix specular texture mapping mode [luigi__]
 bug: repairs to some capture modes and vram mapping [zeromus, CrazyMax]
 bug: viewports finally correctly handled [zeromus]
 enh: add software rasterizer. quirky, but on par with opengl [zeromus]
 

0.9 -> 0.9.1
General/Core:
 enh: GBA slot emulation  [CrazyMax]
  - Rumble support (windows only)
  - GBA game
 enh: Mic support (windows only?) [luigi__]
 enh: Preliminary cheats system [CrazyMax]
 enh: Savestates invalidated, as more variables have been added.
 bug: Added PSG white noise [luigi__]
 bug: fix arm/thumb ROR [zeromus]
 bug: [ 2550645 ] Super Princess Peach: crash when starting a puzzle [zeromus]
 bug: win32: fix spu wav file writer (regression from 0.8) [zeromus,luigi__]
 bug: Much work on FIFOs, still not finished [CrazyMax]
 bug: Many fixes to dma [zeromus, CrazyMax]
 bug: bios WaitForVblank and WaitForInterrupt fixed [luigi__]

Graphics:
 bug: Added sprite blending [luigi__]
 bug: more correct mosaic effects, still imperfect [zeromus]
 bug: Many fixes to tile rendering; all graphics tests now pass [luigi__]
 bug: fix crashes in some affine BG [zeromus]
 bug: Implement some pos test function [luigi__]
 bug: fix texture mapping across texture and palette banks and to unmapped banks \ 
[zeromus]
 bug: fix texture handling for texels with MSB set (fixes some texture \ 
corruption) [zeromus]
 bug: fix texture coordinate generation, including environment mapping [zeromus]
 bug: texture cache invalidates when palettes change, prevents some texture \ 
corruption [zeromus]
 bug: fix display capturing from 2d+3d source when display mode is display-vram \ 
[zeromus] 
 bug: [ 2488334 ].1 fixes to layer compositing [luigi__]
 bug: [ 2488334 ].3 fix bug in support for hdma affine bg parameters [zeromus]
 bug: Improvements to 3d h-scrolling [luigi__]
 bug: Fix some errors in rendering 512 tall BG [zeromus,CrazyMax] (still not \ 
fully resolved)
 bug: Add optional fragment shading pipeline (more precision) [luigi__]
 bug: Fix bug where some sprites got cut of on x=255 [zeromus]
 bug: Implement GXSTAT register [CrazyMax]
 
0.8 -> 0.9
 There have been so many changes that this list can hardly be considered complete.
 For this release, we have formatted the list into a high level overview of big \ 
changes and bad bugs relative to the previous release. Hopefully what you're \ 
interested in.
 This list does not include items which are solely performance boosts, for let \ 
us just say that virtually every system has been speeded up.
  
 * The savestate system is totally changed and incompatible with old savestates.
 * The 3d system should be considered rewritten.
 
General/Core:
 enh: Convert to c++
 enh: Add functions for a lid open/close. Holding key (default \ 
"Backspace" in Windows port) while game is freeze/non freeze. \ 
[CrazyMax]
 enh: Add secure area decryption from ndstool [zeromus]
 enh: Change savestate code to support loosely bound chunks and more easily \ 
other parts of the emu (GE, GPU).
      The savestate format is changed, but from now on it is in principle more \ 
resilient 
      (though it will continue to break as we tinker with the internals) [zeromus]
 enh: Added SSE2 optimizations for matrices. Since we now make an SSE2 build, \ 
more optimizations can be made. [CrazyMax]
 enh: Add a preliminary GUI hud system [CrazyMax,zeromus]

CPU/MMU:
 bug: Many fixes in IPC and GE FIFOs. Fixes freezes in NSMB, dsracing, and \ 
others. [CrazyMax,luigi__,shash]
 bug: Fix ARM instructions SBC and RSC (likewise SBC in thumb) [normatt]
 bug: Fixed Thumb LDMIA (fixes ingame Dead'n'Furious) [shash]
 bug: Fix repeating DMA (fixes NSMB parallax BG) [zeromus]
 bug: Proper handling for unaligned CPU accesses [luigi__]
 bug: Proper handling for undefined instruction exceptions [Salva Peir
 bug: correctly return vram control register values (fixes homebrew 3d games) \ 
[zeromus]
 enh: Remove 16MB of WRAM at 0x01****** from arm9. Mapped to unused instead. \ 
Nobody knows what this was. [zeromus]
 enh: Changed instruction execution to 16 at a time blocks (tested and stable) \ 
[shash]

Hardware: 
 bug: Newer and better sqrt and div emulation; makes SM64DS playable \ 
[luigi__,shash,zeromus]
 bug: Add preliminary RTC implementations [CrazyMax]
 enh: Add cosine interpolation in the SPU (conditionally compiled) [zeromus,luigi__]
 enh: Experimental: always one silent non-mixing SPU core at 44.1khz synched \ 
with emu, for more precision.
      The audible core runs with the host, causing music to slow down but not \ 
tear or pitch bend. [zeromus]

Graphics:
 - Overhaul 3d:
  . Move entire GE to core emu.
  . Move OpenGL renderer to emu core for optional use by platforms, removing \ 
ogl_collector. Now every platform shares the same 3d code.
  . Reorganize 3d code to defer rendering to after 3d vblank. Eliminates \ 
tearing, and texturing artifacts. [zeromus]
  . Add optional fragment shading pipeline (more precision) [luigi__]
  . Move lighting model to software instead of using opengl's fixed function \ 
model [zeromus]
  . Render shadow volumes; toon shading and highlight table [zeromus, luigi__]
  . Added texture caching! big speed up. [CrazyMax]
 
 bug: Many assorted tweaks and improvements to 3d and 2d precision \ 
[zeromus,CrazyMax,luigi__]
 bug: Fixes to GE: command unpacking, projection and pos-vector mode matrix \ 
handling, mult and load commands [zeromus]
 bug: Fix a bug in texture transformation mode 1 [zeromus]
 bug: Fixed GPU rendering bugs in sprites and BG [CrazyMax]
 bug: Fixes to texture conversion [CrazyMax,zeromus]
 bug: Fixes in capture display (no blinking in many games with dual 3D) [CrazyMax]
 bug: Fixes in master brightness (this fixes some games with black screens) \ 
[CrazyMax] 
 bug: Fixes in screen, backdrop, and sprite blending [luigi__]
 bug: Changed clear depths and how depth initial values are calculated (fixes \ 
SM64DS skybox, Castlevania) [shash,lugi__] 
 bug: Add 3d layer h-scrolling [zeromus]
 bug: Added transparency and fixed material alpha support and alpha testing on \ 
the 3D core [shash]
 bug: Rewrite VRAM mapping control and rendering (more accurate) [CrazyMax,luigi__]

 bug: convert colors to opengl better to prevent alpha=31 polys from being ever \ 
so slightly transparent [zeromus]
 enh: Add MMU->GPU signal for when vram mappings change to function as a \ 
texture cache invalidate signal [zeromus]
 enh: Make matrix 4x4 multiply routines use W-coordinate; carry w coord through \ 
pipeline [zeromus]

Files:
RevisionActionfile
1.4modifywip/desmume/Makefile
1.2modifywip/desmume/PLIST
1.2modifywip/desmume/distinfo
1.1addwip/desmume/patches/patch-aa