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
- 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)
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)
- 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)
- 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)
(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)