03 November 2007 - version 2.5b - nds/3d/debug: vram viewer auto-updates 3d tree view (if any) during emulation - nds/3d/debug: defaults to disable old/slow 3d debugmsg's (instead vram viewer) - nds/3d/mtx: removed v2.5 z-rounding trick, allows to change projection per vtx - nds/3d/mtx: gl_projection set to identity (but max depth +1.0 instead +0.99) - nds/3d/mtx: all matrix math done by software without using any opengl matrices - nds/spi: allows to deselect/disable spi bus without clearing the hold-bit - nds/3d/debug: vram viewer displays texture bitmap for currently selected vtx - nds/3d/debug: vram viewer draws laser arrow from screen-center to selected vtx - nds/3d/debug: vram viewer indicates unused lights and color tables by red line - nds/3d/debug: vram viewer shows color/material/shininess/etc for selected vtx - nds/wifi/help: added port 24Ch/24Eh/250h, 264h/270h, 2A4h/2C4h, 2C8h/2CCh info - nds/3d/speedup/frameskip: renders 3d only when needed (capture and video out) - nds/3d/speedup: position vectors multiply only 3x4 matrix (and add 1x4 * w=1) - nds/3d/speedup: directional vectors use 3x3 matrix maths (instead slow 4x4) - nds/key1/help: renamed crypt_up/down (actually encrypt/decrypt) (thanks simon) - nds/3d/stage2/buf: all 3d rendering/lighting/vtxmaths performed from buffer - nds/3d/multi: uses a single opengl context shared (and working) for multiplay - nds/3d/internal: internally translates gx commands 0..255 to ID codes 0..38 - nds/wifi/help: added W_TX_HDR_CNT port 194h bit0,1,2 info (thanks Tim Seidel) - nds/3d/debug: added new 3d page to vram viewer, treeview for buffered commands - nds/3d/buf: stores initial frame settings, reallocs larger buffer when needed - nds/3d/buf: stores commands with original params, and results on each mtx cmd - nds/3d/buf: buffers all gx commands (for future frameskip and for vram viewer) - nds/3d/deguglog: appends current matrix_mode as comment to all matrix commands - nds/3d/softlight: fixed shininess_table index (7bit index = 8bit data div 2) - nds/wifi: emulates 0000h-to-094h-to-098h, and reset-098h.bit15-via-0B4h.Bit6 - nds/wifi/help: added 1D0h..1DFh info, added notes on body instead txhdr - nds/wifi/help: confirmed 0B4h.Bit6, added 030h.Bit7, added info on 094h/098h - nds/wifi/help: removed incorrect/unconfirmed rxbuf_begin/end-latching-info - nds/wifi/help: added txhdr, port[0C0h], port[0C4h], renamed EXTRA to CMD - nds/wifi/help: renamed W_RXUNITS to W_RXTX_ADDR and moved it to status chapter - nds/wifi/help: added notes on registers affected by powerforce (and by irq13) - nds/wifi: reflects powerforce to rf_status (unreported pictochat-lite problem) - cpu/debug: replaced invalid tmb high-opcode error message by optional warning - cpu/debug: disassembler shows invalid high-opcodes as such (thanks vladimir) - cpu: emulates invalid add/mov/cmp thumb high-opcodes-without-high-registers - joysticks: fixed unstable vint_inputs code (occassionallly skipped joysticks) - nds/wifi/dslite: debug-iomap recognizes channel-number for type3 RF registers - nds/wifi/dslite: emulates type3 RF registers (reading, writing, and initial) - nds/wifi: emulates reading from RF chip, emulates initial power-on RF values - nds/wifi/help: added RF2958 (aka RF9008) datasheet info (thanks Tim Seidel) This is seriously the best. Release. Ever. Many 3D games run at full speed now (with some help from the added 3D speed ups and a tad bit of the newly-implemented frameskipping) Mega Man ZX and Advent work now. Super Mario 64 DS now works at full speed without frameskipping. Metroid Prime Hunters works at a playable speed with a fair amount of frameskipping.