[NDS] No$GBA Update

No$GBA v2.3c

- nds/2d: adjusted window width (nds=256, instead gba=240) (famicom wars demo)
- nds/memory: allows to execute code in vram (used by mariokart demo on nds7)
- iomap: replaced various "vals" by "io10seg" (matching to nds9/nds7 pages)
- nds/wifi/xcept: allows nintendo to write 00h/55h/AAh/FFh to read-only BB-ports
- nds/3d/irq: emulates gxfifo irq (used by lara/brainage demos)
- nds/3d/help: added notes on how/when to acknowledge gxfifo irq (see gxstat)
- nds/3d/dma: emulates gxfifo dma (used by submarine demo and possibly others)
- nds/dma: renamed/renumbered $profiler_id_dma (supporting the eight ds-modes)
- nds/3d/help: added GXFIFO DMA Overkill on Packed Commands Without Parameters
- setup: added gba-solar-sensor setting (now also in freeware version setup)
- setup: removed experimental rear-alpha option (tested / always enabled now)
- nds/backup: bugfix: forces no nds-backup in gba-mode (fixes fatalunexpected)
- nds/xboo: added upload-wait/timeout (for remote secure_area_extra_decryption)
- nds/dma: prevents gba-style dma3-capture on nds (fixes submarine demo freeze)
- nds/dma: simplified different dma mode bits by dma_kick_mask at mount_system
- nds/3d/help: added 3d-lockup note (on swapbuffers with incomplete vertex list)
- a22i: supports "NOT" operator (more or less, crashes on faulty priority order)
- a22i/bugfix: long/negative multiply in numeric expression (swapped lsw2/msw2)
- nds/3d: handles 8bit ldrb reads from 3d ports (4000320h and up)
- gba/nds-cartloader: fixed crash on loading GBA-carts from inside NDS7-mode
- thanks: RockmanRotties and Diablow for bugreports on demos and fatalunexpected

http://nocash.emubase.de/gba.htm
23 February 2007 - version 2.3d

- nds/video/help: added note on unknown tvoutcnt register (nds9 port 4000070h)
- nds/sio/help: added chapter on (absent) link port (with new bits like ckup)
- nds/aux/help: added full gba and gba-sp cpu/lcd/chipset pinouts (from no$gmb)
- nds/aux/help: added SG and SW pins (gba-sp/nds headphone socket) (from no$gmb)
- nds/3d/help: added projection/rotation/scaling/translation matrix examples
- nds/3d/help: added edge marking notes, alpha_test_ref notes, and fog notes
- nds/3d/help: added new shadow polygon chapter, and added toon table notes
- nds/3d: skips vtx's of (still unsupported) shadow polygons (avoid eragon dirt)
- nds/3d: speedup: re-creates textures only if teximage_param/pltt_base changed
- nds/3d: speedup: mtx_mul_4x3/3x3/trans/scale skips fixed values (ie. 0 and 1)
- nds/sound: init [sb_pos_in_buf_in_clk_cycles]=0 (avoids fatal 'e-2' on reset)
- nds/3d: supports packed-texture-mode3 (mul3+mul5=div8) (eragon/mariokart demo)
- nds/microphone: emulates mircophone gain level (powerman reg3 = x1 x2 x4 x8)
- nds/microphone: wave_in-dma activated only if/as long as enabled in powerman
- nds/microphone: forwards PC mic-in/line-in to nds-microphone (player 1 only)
- nds/microphone: emulates muted mic-level (for mic-powerman off=000h, on=800h)
- dos/nds: supports nds-video (256x192) (dual-screen) (forced 640x480 onepix)
- dos: dpmi redirects dos32_int10 to dpmi_interrupt_10h (fixes win98 xgra-crash)
- dos: uses int2fh/1680h under dpmi (not actually supported by cwsdpmi/win98)
- dos: prevents hlt-opcode under dpmi (hlt crashed cwsdpmi, ignored by win98)
- initialize: corrected @@zero_fill_vals length (caused crash in dos version)

http://nocash.emubase.de/gba.htm
21 March 2007 - version 2.4
- xboo: retested all xboo functions, re-fixed gba-bios dump, faster nds-download
- nds/2d: fixed crash on empty/unallocated extended-obj-palette-slot (spiderman)
- nds/3d/help: added various important notes in polygon light parameters chapter
- nds/3d: recurses directional matrix (as on real nds, instead of gl_normalize)
- nds/3d: skinning support (by soft_mul_vector, instead opengl modelview matrix)
- nds/cart/help: added new info on first 2K of secure area (fixed bytes, crc16)
- nds/gba/xboo: includes cmd/length in checksums (rather than raw data-checksum)
- nds/xboo: get_info shows nds-backup type (chip-id and status-register bits)
- nds/2d: fixed unrotated 512x256/512x512 bitmap sizes (thanks Kevin Keeling)
- nds/dma: prevents dma from accessing tcm (for compatibility with downhill jam)
- nds/xboo: added download NDS-cart from NDS-slot (slow 2 megabytes per minute)
- nds/gba/xboo: splits downloads into small blocks (with block-retry on bad crc)
- nds/cartloader: also accepts already-decrypted-and-destroyed secure-area-id's
- gba/undoc/help: added newly discovered wram-disable bits (4000800h bits 0,5)
- nds/cart: emulates correct nds chip-id size-field in respect to rom-image size
- nds/cart/help: added note on nds-cart chip-id size field (nn+1 megabytes)
- nds/screenshot: supports dual 256x192pix screens (as simple 256x384 bitmap)
- nds/3d: supports keep-old-depth-setting for translucent-polygons (DepthMask)
- nds/3d/rear: supports rear-plane rgba/depth bitmap (killer slow when/if used)
- nds/3d/io: new 8bit write support, fixed 16bit write (accidently out_32_norm)

http://nocash.emubase.de/gba.htm
04 April 2007 - version 2.4a
- nds/help: added nds-lite case/joypad ascii arts, and nds-lite supply pinout
- spam: nocash-lite was posted online - new addresses in email.htm or about-box
- nds/3d: forces instant new gxfifo irq (if any) on attempt to acknowlege it
- nds/sound: fixed output to sample.wav script file (for diagnostics purposes)
- nds/adpcm: emulates nds-rounding-error, uses fast-pre-multiplied adpcm tables
- nds/adpcm: fixed clipping-bug in no$gba, and emulates real nds-clipping-error
- nds/sound/help: added more ima-adpcm notes (rounding-error and clipping-error)
- stat: performance indicator counts frames on nds9 only (=60Hz) (instead 120Hz)
- nds/tsc/debug: displays all tsc channel values in io-map (touchscr, mic, etc.)
- nds/tsc: prevents penirq if disabled, penirq more in sync with tsc-adc values
- nds/3d: drains gxfifo before gxfifo dma (fixes mariokart/downhill slowdowns)
- nds/3d: forces DepthMask=1 on ClearDepth (if it was 0 from translucent/attr)
- nds/firmware: applies different mac addr to each machine with wifi-crc adjust
- nds/firmware: forces def.fmw/wifi header (if firmware.bin missing) (downhill)
- nds/firmware: forces user settings [65h]=FCh=good (if firmware.bin missing)
- nds/firmware: fixed touchscreen/calib screen coords origin 1,1 (instead 0,0)
- nds/dos/3d: translates by w, recurses current viewport x1/y1 and width/height

http://nocash.emubase.de/gba.htm
05 June 2007 - version 2.4b

- ereader/demo's: uploaded ereader.zip (with magicflr, rotris, camera, bombswp)
- nds/sound: bugfix: fixed snd crash on mul1.5 speed (thanks Giuseppe Marletta)
- bios-clone: bugfix: gba/nds intrwait set IME=1 (eg. japanese/original ereader)
- ereader/a22i: vpk compression, good tree values, auto-method1/0 for gba/nes
- ereader/emu: automatically loads next strip, automatically extracts red-layer
- ereader/emu: supports homebrew 300dpi .bmp's and scanned 1200dpi .jpg's
- ereader/emu: emulates ereader hardware (requires ereader bios/bmp/jpg files)
- ereader/a22i: new .ereader and .title directive, handles .import'ed .nes roms
- ereader/help: added verify/create error correction (thanks Simon Rockliff)
- ereader/help: added dotcode, data, program, vpk chapters (thanks Damien Good)
- ereader/help: rev'ed PGA I/O ports, camera SIO ports, address bar encryption
- debug: shows "BiosSwi/IrqHandler" labels also for ARM9 (with offset FFFF0000h)
- bios/help: corrected bios-swi huffman description and added an example to it
- bios: improved bios-swi huffman decoder (straighter, smaller, and faster)
- xed: fixed occasional crashes on ctrl,k+n (missing reform in toggle_blocktype)
- wifi: emulates microsecond counter read/change/start/stop
- wifi: emulates data transfer from local txbuf to rxbuf of remote console(s)
- wifi/help: added chapters on the various ieee802.11b frame (=packet) formats
- wifi/help: added notes on multiboot beacons (and multicart/pictochat beacons)
- wifi/help: added notes on transfer completion flags in txbuf_loc registers
- wifi/help: added new values in hardware headers chapter, added unknown chapter
- wifi/help: added a lot of new bits and registers in transmit control chapter
- wifi/help: marked all "unused" registers as w_internal (=not used by firmware)
- wifi: emulates ie/if registers, emulates pending powerforce with powerack
- wifi/debug: displays wifi registers (and current channel) in I/O map window
- wifi/help: added chapters on ieee802.11 frames, renamed rxbuf/txbuf registers
- wifi: fixed rf write, emulates powerforce=8001h (over the hedge)

http://nocash.emubase.de/gba.htm
01 July 2007 - version 2.4c

- web: updated magicflr.zip (with NDS and e-Reader source) (additionally to GBA)
- web: uploaded hotmail.htm (hotmail is deleting ALL emails that I am sending)
- web: updated ereader.zip package (using new bmp/raw/bin/ori/plus directives)
- ereader/a22i/japan: uses 8bit/16bit charset depending on invalid 8bit chars
- ereader/help: notes on non-vpk mode, and on z80-wait-opcodes, 5bit-card types
- ereader/a22i/jap/ori: inserts dummy-sub-titles, and z80-stub to start gba-code
- ereader/a22i: .ereader_create_bmp/raw/bin .ereader_japan_ori/plus directives
- debug: supports vert_splitter for code/stack sizing (instead outer-edges only)
- ereader/loader: supports multi/single .raw/.bin files (auto-converted to bmp)
- no$fmw: fixed dtcm/pal/oam zerofill init (memory wasn't mapped/enabled there)
- gui: added OFN_ENABLESIZING to all filemenues (win98 and up; ignored by win95)
- ereader/a22i: also creates RAW dotcode (multi-strip) (all strips in 1 file)
- debug: adjusts small-gamescreen size in nds-mode (256x192 instead of 240x160)
- bios-clone: 80x86-mode redirects nds-callback/gba-sound to rom-image (if any)
- gui: defaults .hlp window-width to correct 80 columns (not more, not less)

http://nocash.emubase.de/gba.htm
21 August 2007 - version 2.4d

- debug/setup: allows to enable/disable user-debugmsg, wifi-log, and 3d-log
- cpu: emulates undef opcode/copro exception (with warning if no bios/vector=0)
- wifi/emu: emulates new bits in rx header, and optional auto sequence control
- cpu/bugfix: arm ldm/stm accidently destroyed mis-alignments (on writeback)
- wifi/help: added info on port 1C4h, and on some of the 1Bxh ports (rxstat's)
- wifi/help: added new chapter on transmit errors and automatic ACK responses
- wifi/help: added info on ports 1A8h,1AAh,1ACh,1AEh (bit0..12 vs. 1B0h..1BFh)
- wifi/help: discovered new bits in RX header, added notes on MAC addresses
- wifi/debug: allows to log all packets (with automatic comments on ieee header)
- wifi/help: added notes on automatic sequence ctrl and auto-modified frame ctrl
- wifi/emu: tx-engine uses new timers, and emulates length/rate/preamble timing
- wifi/emu: emulates the various wifi counters and irqs at correct timing
- debug/setup: memorizes if iomap window was open (if so, re-opens it on boot)
- debug/emustop: break_requests (esc-key) take place only on current machine
- debug/internal: replaced ds:bibos swi_retadr/haltstop/intrwait by vals:bios
- debug/vramviewer: oam viewer supports extended obj palettes (thanks pierre)
- debug/vramviewer: fixed engine-B palette viewer (thanks pierre for bug report)
- dslite/help: added info on new TSC chip by AKM (new IN2, different PD bits)
- dslite/help: added note on near-crt-quality colors and wider viewing angles
- dslite/help: added custom change-channels-flowchart for new wifi-type3-chips
- dslite/help: added settings at firmware[0CEh-and-up] for new wifi-type3-chips
- dslite/xboo: updated nds-pins.gif (added new pin-positions on ds-lite board)
- dslite/xboo: added 8 extra diodes in data lines (to prevent power-on problem)
- dslite/help: added lite-specific wifi (W) mirrors, and unused wifi ram/ports
- dslite/help: added the new backlight level bits in firmware user settings
- dslite/help: added caution on DS-lite destroying wifi ports 064h and 076h
- dslite/help: added new powerman backlight/power register (and lost mute-bit)
- dslite/help: added ID for firmare chip 35PE20P (and supported it in ds-xboo)
- powerman/help: added unknown bit (mutes volume to zero, if amplifier is on)
- wifi/emu: emulates initial wifi-port settings and random register (mod 5FDh)
- wifi/emu: emulates primary wifi irq flag stuck zero while secondary nonzero
- wifi/emu: emulates corrected ports (004h,0ACh,0AEh,0B0h,0B4h)
- wifi/emu: emulates new ports (210h, 05Ch/06Ch, 062h/064h) and new mirrors
- wifi/help: added rx/tx signal/timing charts (rfu pins, aka 19Ch bits)
- wifi/help: added specs/cautions on primary wifi irq flag (2000214h.Bit24)
- wifi/help: added new mirrors (on read from 0ACh,0AEh,20Ch,21Ch,298h,2A8h,2B0h)
- wifi/help: added notes/info on ports 038h,19Ch,214h,21Ch and on W_CONFIG_140h
- wifi/help: new bits 0EAh.1,008h.13/14 004h.14); extra-TX ports 118h,0EEh,090h
- wifi/help: corrected ports 004h,0ACh,0AEh,0B0h,0B4h and txstat.bit12-13
- wifi/help: added info on new ports (110h, 210h, 05Ch/06Ch, 062h/064h)
- wifi/help: fixed tx_hdr: rate 8bit (not 16bit) defaults to 1Mbit/s if invalid
- wifi/help: added new bits: port004h.bit0 tx_master, 008h.bit15 beacon_irq1
- wifi/help: major updates in timers chapter (reloads, IRQ13/14/15, 22MHz, etc)
- nds/help: pinouts for nds LCD sockets, wifi RFU boards, and powerman chips
- gui: mousewheel support (win98 or dos/ctmouse) (thanks jasper/idea, tilo/hw)

http://nocash.emubase.de/gba.htm
03 September 2007 - version 2.4e

- nds/3d: internal diag screen shows used opengl driver vendor/renderer/version
- nds: emulates hinge folded/closed (game window wm_poschanged/isiconic check)
- gba/cheat: fixed some unreported bugs, help: added some missing decrypt info
- nds/cheat: supports actionreplay/codebreaker codes (freeware/gaming ver only)
- nds/help: actionreplay/codebreaker specs (thanks kenobi and dualscreenman)
- nds/help: added info on changing key2 seed (romctrl.15) (thanks chishm/idea)

http://nocash.emubase.de/gba.htm
17 September 2007 - version 2.4f
- cheat: fixed conditional counter for cbds parameter lines (thanks Hiei Youkai)
- cheat: raised strnlen to 5kbytes for about 256 codes/line (thanks Hiei Youkai)
- nds/gba/help: added info on unknown add-ons (gba ir/wifi and nds memory exp)
- nds/help: added info on ds rumble option paks (thanks bottledlight ds wiki)
- gba/help: added some very basic info about the gameboy player (thanks flubba)
- gui: allows to resize debugmsg/cheat/fileslst windows (with anchored buttons)
- gba/help: added yoshi x/y-axis info (thanks flubba) (still incomplete though)
- gba/help: added warioware z-axis gyro info (thanks momo vampire for the cart)
- gba/help: added rumble and fram info (thanks momo vampire for warioware cart)
- gba/help: added notes on special meaning of 1st (and 4th) letter of gamecode
- nds/3d: emulates alpha blending master enable/test mode bit (disp3dcnt.bit3)
- gba/memfill: fixed memfill code (data step/repeat count) (thanks Hiei Youkai)
- nds/cheat: removed various ARDS checks (accepting addr with unknown offsets)
- gba/nds: corrected hblank durations (thanks sebastien), no-vblank in lastline
- gba/nds/help: notes on hblank=0 duration (1006/1606/1613 on gba/nds9/nds7)
- gba/nds/help: notes on no-vblank-flag in last line, and hblank in ALL lines
- nds/cheat: removed alignment check for [[X]+Z] (works with uninitialized [X])
- nds/cheat: changed ARDS enable-code detection (9 lines with specific 4th/9th)
- multi-cpu-timing: machine_switch_request processed AFTER all event_handlers
- nds/3d: emulates texture master enable bit in disp3dcnt (thanks peter schraut)
- nds/3d: emulates material-alpha (rather than only color-alpha) (thanks peter)
- nds: emulates hinge/unfold irq (additionally to hinge status) (thanks antonio)

http://nocash.emubase.de/gba.htm
04 October 2007 - version 2.5

- help: updated gbatek standalone version 2.5 (about one hundred news since 2.3)
- vram viewer: supports extended palettes in bg map windows (eg. magnetica demo)
- nds/help: added ds 3d overview chapter (basics on geometry/rendering engines)
- nds/help: added ds technical data chapter (containing some basic overview)
- nds/help: replaced ds various chapter by new ds memory control/timing chapter
- nds/sound: fixed major unreported bug in 80x86 code sound_bias SWI function
- nds/3d/help: corrected shininess formula (ie. fixed that max cos 2 angle mess)
- nds/3d/help: added caution: specular reflection WON'T WORK on camera rotation
- nds/3d/help: maths basics of vector-by-vector multiply (and purposes thereof)
- nds/3d/softlight: allows light+color nonsense double def (eg castlevania clip)
- nds/3d/softlight: much better light-accuracy, and now supports shininess_table
- nds/3d/softlight: lighting fully calculated by software (without opengl light)
- nds/timing: split timings for nds7 (fast access) and trashy nds9 (slow access)
- nds/timing: split addr_clks_table to CODE/DATA addr_clkc_table/addr_clkd_table
- nds/timing: emulates "half" cycles on 66MHz/nds9 (tcm/cache and n32/2 thumb)
- nds/timing: emulates nds7 exmemstat gba-slot timing bits (like nds9 exmemcnt)
- nds/timing/help: added detailed/tested nds7/nds9 code/data memory-timing chart
- nds/timing/cache: allows more CPU load on bios/mainram when cache is enabled
- nds/timing: emulates shared N32 access time for two NDS9 thumb 16bit opcodes
- cpu/speedup: precalculates opcode-timings on interseg-jumps (usually faster)
- cpu/speedup: faster conditional opcode handling (maybe yet another 3% faster)
- cpu/speedup: thumb: uses 16bit reads (3% faster on non-32bit-aligned addr's)
- cpu/speedup: replaced dumb jmp exec_opcode by exec_opcode_mac (ca. 10% faster)
- cpu/speedup: added more code alignments in cpu-core (not significantly faster)
- nds/help: added note that 66MHz-nds9 actually runs MUCH SLOWER than 33MHz-nds7
- nds/cpu: emulates superslow nds9 memory access time (bios,wram,vram,oam,etc)
- nds/cpu: emulates operand-independend ARM9 multiply time (eg. slow thumb time)
- nds/wram: emulates wramcnt mapping (no idea if it's used by any games though)
- nds/3d: adjusted z-rounding (avoid opengl-clip-plane in club house games demo)
- cpu: emulates cp15-trace-id, debug: disass auto-comments on trace-id and bist
- nds/help: fixed key1 [scratch] writeback lsw/msw are exchanged (thanks simon)
- nds/help: cp15 info on trace-id, bist, cache debug/test, supported cache cmds
- cheat: fixed occassional crash on delete cheat (push/pop) (thanks Hiei Youkai)
- thanks: rockmanrotties for submarine (timing) and clubhouse (clip) bugreports

http://nocash.emubase.de/gba.htm
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[2] instead txhdr[2]
- 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[2], 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)

http://nocash.emubase.de/gba.htm
20 November 2007 - version 2.5c

- nds/3d: vram viewer: stable handling of old-tree messages (after new reload)
- nds/bios: 80x86 bios clone supports thumb-mode irq handler (nds9/arm v5 only)
- webpage: added two nds 3d viewer screenshots, and a nds-wlan-iomap screenshot
- wifi/debug/cleanup: rearranged/fixed/renamed wlan registers in i/o map window
- menubar: added pdroms.de (and donate.htm) hyperlinks in help topic of menubar
- nds/3d: vram viewer: hides the laser pointer for non-vtx/non-postest commands
- nds/cheats: fixed last some bytes of action replay code 0Eh (thanks hiei)
- nds/3d: vram viewer: laser outlines for polygon(s) of selected begin_vtxs
- nds/3d: vram viewer: laser pointer shows cube-outlines for boxtest command
- nds/3d: vram viewer: ignores vtx_end cmd (reduces amount of tree root entries)
- cpu/detail: emulates ignored writeback on ldrh rd,[rd],imm (thanks kenobi)
- nds/3d: vram viewer: laser pointer for pos_test command (as for vtx commands)
- nds/3d: emulates internal vtx coordinates being overwritten by pos_test cmd
- nds/3d/help: added caution on pos_test (overwrites internal vtx coordinates)
- nds/3d: vram viewer: shows viewport rectangle (by red lines drawn on screen)
- nds/3d: vram viewer: allows to resize tree-view vertically (y2 bottom-aligned)
- nds/3d: vram viewer: laser arrow: shows corresponding numeric screen x,y,depth
- nds/3d: supports 3d vs 2d alpha blending (if supported by local opengl driver)
- nds/3d: temporarily halts arm9-cpu upon gxfifo-overkill (fixes main_siz error)
- nds/cartloader: accepts faulty homebrew logo crc (warning if other than CF56h)
- nds/debug: vram viewer fixed crash in guess-tile-usage for 2D tile screens
- nds/video: aligned empty_vram (crashed unallocated text scroll) (thanks m m)
- nds/3d/debug/speedup: setredraw=0 when reloading 3d viewer tree (thanks peter)
- gba/nds/video/speedup: precalculates eva/evb/evy parameters per scanline

http://nocash.emubase.de/gba.htm
18 December 2007 - version 2.6

- nds/3d: soft-renderer: uses fast linear color/texture interpolation when w1=w2
- nds/3d: soft-renderer: supports perspective-correct texture (eg. eragon/demo)
- nds/3d: soft-renderer: supports perspective-correct rgb color interpolation
- nds/3d: soft-renderer: picks correct vertex/color/attributes on 1dot polygons
- nds/3d: soft-renderer: prevents polys at existing/possible x1=256 (off-screen)
- nds/3d: soft-renderer: allows bigger than possible rear-depth (clubhouse dart)
- nds/3d/debug: vram viewer correctly shows swap buffers as 1st command in tree
- nds/3d/help: added note on situations where lower/right edges are excluded
- nds/3d/help: anti-aliasing doesn't work with (opaque) lines and wire-frames
- nds/3d/help: anti-aliasing isn't used on edge-marked polys/lines/wire-frames
- nds/3d/help: swap_buffers parameters are applied on the FOLLOWING gxcommands
- nds/3d/help: swap_buffers does NOT copy re-ports (disp3dcnt/toon_table/etc)
- nds/3d: soft-renderer: supports w-buffering (games with reversed z working)
- nds/3d/help: confirmed guessed texture slot locations for rear-plane bitmaps
- nds/3d: soft-renderer: allows dots on lower/right clip-boundary (off-viewport)
- nds/3d: soft-renderer: prevents polys at y1=192 or y1=negative (off-screen)
- nds/3d: soft-renderer: handles faulty viewports (exceeding 192 scanlines)
- nds/3d: re-renders old frame on master changes (disp3dcnt or port 330h..3BFh)
- nds/3d: soft-renderer: discards correct vertex of invalid twisted |X| quads
- nds/3d: soft-renderer: emulates edge-marking (edge_color, opaque, polygon_id)
- nds/3d: soft-renderer: emulates correct size of line-segments and wire-frames
- nds/3d: soft-renderer: emulates correct size of edge-marked polygons
- nds/3d: soft-renderer: emulates correct size of translucent and opaque polys
- nds/3d: soft-renderer: enulates inwards/outwards/left/right/front/back edges
- nds/3d: soft-renderer: emulates steep, flat, vertical, horizontal edges
- nds/3d: soft-renderer: emulates correct rounding of screen coordinates
- nds/3d: supports direct capture from 3d engine (instead from engine a only)
- nds/2d/bugfixes: inits engine b on reset, fixed engine b base in vram viewer
- nds/3d: opengl: internally breaks all polygon strips to separate polygons
- nds/3d: buffers translucent polys, and renders them later (after opaque polys)
- nds/3d/help: corrected polygon_attr.bit11 (affects pixels, not whole polygons)
- nds/3d: soft-renderer: stores alpha in framebuf (unlike evil generic opengl)
- nds/3d/help: added description on clamped textures (clips to minmax 0,siz-1)
- nds/3d: soft-renderer: supports texture clamp, repeat, and flip-repeat modes
- nds/3d: soft-renderer: clips texcoord (only if needed; point1 or point2>max)
- nds/3d: soft-renderer: supports toon table (and skips green/blue calculations)
- nds/3d: soft-renderer: does texture blending (modulation,decal,toon,highlight)
- nds/3d: soft-renderer: explodes texture bitmap and renders texture by texcoord
- nds/3d: emulates polygon_attr having no effect until next begin_vtxs command
- nds/3d: soft-renderer: renderer uses linear (quick'n'dirty) color/texcoord
- nds/3d: soft-renderer: interpolates color and texcoord (if any) on rendering
- nds/3d: soft-renderer: interpolates color and texcoord (if any) on clipping
- nds/3d: allocates/stores color/texcoord/screencoord in each buffered vtx-entry
- nds/3d: soft-renderer: re-ensures range after clipping (for rounding errors)
- nds/3d: vram viewer: fixed 4x4 texel texture mode1 crash (missing pusha/popa)
- nds/3d: soft-renderer: optional depth_update for translucent polys (less only)
- nds/3d: soft-renderer: optional depth_less or depth_equal rendering condition
- nds/3d: soft-renderer: interpolates depth (z) horizontally and vertically
- nds/3d: soft-renderer: initializes rear-plane rgba,depth,etc (blank or bitmap)
- nds/3d: soft-renderer: front/back/linesegment check (on first three vertices)
- nds/3d: soft-renderer: hides far-plane-intersecting (if enabled in poly_attr)
- nds/3d: soft-renderer: clips polygons to all six sides of the view-volume
- web/paypal: added an evil "donate 2.50 and download newest version" button
- dos: due to the soft-renderer, dos version is now fully supporting 3d video
- a22i: added LO (usingned lower) as alias for CC (carry clear) (thanks niels)

http://nocash.emubase.de/gba.htm
23 January 2008 - version 2.6a

(faster 3d rendering, backup detect, rtc-irq, better texture interpolation,)
(perfectly accurate edge-marking, translucent-poly-id, shadow-poly support,)
(capture in vram display mode, debug gui/warnings, cpu/ipc/div/sqrt details)
- free-download: old no$gba v2.6 gaming version now free for everybody - enjoy
- debug/symbols: resize function for Alt+L symbol list window (saved in .ini)
- debug/internal: changed computer_id handling for compatibility with win vista
- nds/debug: allows nintendo to mis-use clipmtx_result for detecting their emu
- nds/debug: allows to override mis-declared-thumb-functions by crude $t labels
- nds/rtc: triggers IRQ when SI changes HI-to-LO (only when SI-IRQ is enabled)
- hll-version: demangles strange new "_ZN3txt3txtEii" and "_Z3txtii" type labels
- nds/gba/rcnt: allows to generate SI interrupts manually by toggling RCNT bits
- nds/gba/rcnt: internally memorizes rcnt-output bits (additionally to inputs)
- nds/rtc: passes rtc 1Hz/2Hz/4Hz/8Hz/16Hz or per-minute IRQ to rcnt SI input
- nds/3d: soft-speedup: uses clean 80286 shift opcodes (instead slow 80386 shrd)
- nds/3d: soft-speedup: new scaled side_clip_x allowed to re-remove pre_add_mask
- nds/3d: soft-speedup: scaled side_clip_x coords from 0..len to 0..7FFFFFFFh
- nds/3d: soft-accuracy: texture/color interpolation with variable pre_add_mask
- nds/details: emulates all newly discovered ipcfifo/div/sqrt technical details
- nds/help: added tech specs on div/sqrt (readonly results, start/stop timings)
- nds/help: added tech specs on ipcfifo (edge triggered, underrun, fifo-disable)
- nds/help: added user settings 076h (language mask) and header 01Dh (ique flag)
- nds/3d: soft-detail: edge-mark: recurses surrounding depth values (less only)
- nds/3d/help: added more technical notes on edge marking (depth and polygon_id)
- nds/a22i: auto generates chinese crc upon .fix directive (only if version=2)
- nds/help: added info on chinese title in icon/title region (addr/version/crc)
- cpu/internal: reduced 32bit test/and to 8bit (al/bl/cl/dl instead eax/ebx/etc)
- cpu/detail: emulates mis-aligned thumb bx/blx and arm bx/blx (with warning)
- cpu/detail: emulates mis-aligned rd=r15 in arm alu opcodes (thanks jonathan)
- nds/3d/help: added double-blended-edge-glitch (edge-marking plus anti-alias)
- nds/3d/help: added translucent-edge-glitch (edge-marking plus anti-aliasing)
- nds/backup: supports re-detection (games with faulty initial initialization)
- nds/backup: added bus-width auto detection (redirecting to new general types)
- nds/backup: added new types (3x general types) (and 1x sanyo, thanks flubba)
- nds/3d: soft-detail: edge-mark: handles edges at screen border (via clear_id)
- nds/3d: soft-detail: edge-mark: applies edges in respect to surrounding pixels
- nds/3d: soft-detail: edge-mark: internally stores edge_flag for possible edges
- nds/debug: allows some games to initialize not-existing port 4001004h to zero
- nds/debug: allows nintendo to use faulty ldmib with base-inclusion-writeback
- nds/debug: allows nintendo to use invalid stmib/ldmib user bank writeback
- nds/debug: allows nintendo to write more serious nonsense to (R) baseband regs
- nds/timings: re-fixed arm7/arm9 sync (new arm9-66MHz timings vs arm7-33MHz)
- nds/video: supports capture from 2d/3d engine in vram display mode (nanostray)
- nds/help: added note on undoc nds7 port 4001080h (used by ds-lite firmware)
- nds/help: added optical mouse sensor (slider controller) (thanx daniel palmer)
- nds/help: added firmware wifi internet access point settings info (thanks cue)
- nds/help: added user settings 066h (year) and 075h (ext language) (thanks cue)
- screenshot: converts 32bpp images to 24bpp (smaller and more standard files)
- nds/3d: soft-detail: prevents rendering of translucent polys with same poly_id
- nds/3d: soft-detail: supports shadow polygons (mask/render, step 1 and step 2)
- nds/3d: soft-speedup: scaled perspective correct clp.x from 0..len to 0..7FFFh
- nds/3d: soft-speedup: mmx: faster texcoord_clipping (no_repeat,repeat,flipped)
- nds/3d: soft-speedup: pre-calc tex_clip proc, collapsed 32:32 tex_xy to 16:16
- nds/3d: soft-speedup: pre-explodes edge_color_table, optimized alpha blend
- nds/3d: soft-speedup: mmx: processes two rgba-pairs and tex_xy-pairs at once
- nds/3d: soft-speedup: mmx: nonlinear color_rgb and texcoord_xy interpolation
- nds/3d: soft-detail: stores fog bit in framebuffer (opaque/trans=replace/and)
- nds/3d: soft-speedup: mmx: linear color_rgb and texcoord_xy interpolation
- nds/3d: soft-speedup: merged texture addressing and blending into single proc
- nds/3d: soft-speedup: mmx: faster texture blending (modulate/toon/highlight)
- nds/3d: soft-speedup: pre-calculates soft3d_tex_blend_proc for blendtype/mmx
- nds/3d: soft-speedup: uses mmx (if present) (otherwise stays 80386 compatible)
- nds/3d: soft-speedup: collapsed scanline_rgba from 32:32:32:32 to 8:8:8:8 bits
- detect: added no$gmb-386/486/cpuid detection, internal: rdtsc (3d/re selftest)

http://nocash.emubase.de/gba.htm