3.05 / 23-08-2021
No$GBA
Accuracy
Performance
Features
No$GBA is currently the fastest working GBA emulator, though not the most accurate on GBA and even less on DS. It supports multiplayer and is able to load multiple GBA/NDS ROM files for linking games.
--
Windows: Doesn't mention minimum
Also available on DOS
Most Recent Changes
20 Aug 2021 - version 3.05
- wifiboot: allows to upload GBA/NDS/DSi files to 3DS (requires wifiboot v2.8)
- nds/cart/debug: shows rom/nand command names in tty debug message log window
- nds/cart/help: added nand Face Training undoc commands and reserved area
- nds/cart/help: added undoc rom cartridge commands
- nds/cart/help: added nand cartridge specs (thanks Arisotura)
- 3ds/cart/help: added info on RC4 and SNOW 2.0 cartridge encryption
- gba/help: notes on port 4000800h bit0/bit3 (thanks endrift/shinyquagsire23)
- wifi/help: various atheros sdio wifi notes/details (thanks shinyquagsire23)
- dsi/help: SIGSTATE detect delay and SDCLK auto pause (thanks profi200)
- dsi/help: more TWLCFGn.dat entries (eula flag/ver, num titles)
- 3ds/help: described touchscreen scaling for nds/dsi mode (see lgyfb chapter)
- 3ds/help: more realistic info for HWCAL and config file contents
- 3ds/help: more realistic info for MCU RTC real time clock
- 3ds/help: marked some new3ds-only bits and registers (ie. non-old3ds)
- 3ds/help: added symbolic names for PDC frame buffer setup registers
- 3ds/help: lcd register specs (parallax, backlight, clock_dis, display_en)
- 3ds/help: created nearly complete component list for old 3ds
- 3ds/help: pinouts for 3ds connectors, 3ds testpoints, and some more 3ds chips
- help engine: fixed .htm filenames for chapter names with square brackets
- help engine: omits linebreaks after http hyperlinks in html PRE sections
- vram viewer: supports negative mouse coords (for multiple monitors, thanx tim)
- windows/gui: vkcode_to_doskeycode catches VK_ESCAPE when SHIFT/CAPS active
23 Mar 2021 - version 3.04
- web: released new gbatek version with separate htm pages per chapter
- help engine: allows to export gbatek to multple chapter-name.htm pages
- help engine: added search/prev/next functions, and goto prev/next chapter
- help engine: save_as adds vgwort markers to htm pages (for usage stats)
- debug: added simple ARM CPU tracelog function (in tty debugmsg window)
- debug: added nds-wifi IE/IF interrupt enable/flags (in io map window)
- nds-ir-help: cartridge infrared port SPI commands and memory map
- nds-ir-help: activity meter IR commands and memory map
- nds-ir-help: p-walter IR commands, memory map, LCD and Accel registers
- nds-ir-help: component lists for infrared carts and pedometers
- nds-ir-help: H8/386 exception vectors and SFRs, H8/300H registers and opcodes
- nds-cart-help: SanDisk rom supports max 200h-byte blocks (padded with FFh)
- dsi-i2c-help: added ACK/NACK notes (thanks lidnariq)
- nds-wifi-help: much better specs for nintendo beacons (zone and download play)
- nds-wifi-help: much better specs for ds download play transfer protocol
- nds-wifi-help: added CMD/REPLY multiplay specs (thanks Arisotura)
- nds-wifi-emu: multiplay cmd/reply transfers (semi-stable)
- nds-wifi-emu: data frame rxhdr cmd/reply type, and txhdr reply status
- nds-wifi-emu: data frame rxhdr bssid match flag (per from/to sta/ds)
- nds-wifi-emu: rxfilter for da=mac, and broadcast with/without bssid=bssid
- cmdline: added fullscreen mode commandline switch (see /? for all switches)
- multimachine: mount_system (and init MAC address) now after init machine_id
- multimachine: fixed vram-remapping on add machne (moved after chain_in arm7)
- multimachine: fixed crash on non-existing sinline-dealloc on nds7 side
- multimachine: fixed 2-player no$gba.ini dsi-detect crash (thanks Lorenzo)
17 Oct 2020 - version 3.03
- filesys viewer: supports deeply nested/compressed/encrypted filesystems
- filesys viewer: allows to browse into dozens of compressed/archive filetypes
- filesys viewer: added file/folder/archive/device icons, added save-as button
- filesys viewer: auto-mounts child archives when expanding treeview items
- filesys viewer: detects about 150 different filetypes
- nds/help: file formats for sound, 2d/3d-video, message, manuals
- 3ds/help: file formats for sound, 3d-video, message, mpo, cro0/crr0, config
- compression/help: specs for Yaz0, ASH0, ALZ1, zip compression
- archive/help: specs for arcless, narcless, sarc, zar, encrypted arika archives
- gba/eeprom: ignores non-DMA access (Tomato Adventure) (thanks Unknown W.B.)
- gba/eeprom: avoids crash by stripping upper 4bit of 14bit addresses
- gba/debug: fixed nonsense warnings on jumps to 300xxxxh (caused by dsi mapper)
- dsi/ndma: gxfifo ndma mode support, fixed ndma ctrl bits in iomap (thanks ttb)
- 3ds/help: MCU: added missing IRQ 26,27,28,29 and IRQ 18,19,20,21
- 3ds/help: added aes keyslot summary
- 3ds/help: specs for partitions, cleanup for FIRM encryption chapter
- 3ds/help: confirmed GBA footer format (removed most of the guess/maybe stuff)
- debug: fixed lost data/stack/regs window focus after emulation run
16 May 2020 - version 3.02
- 3ds/vfp/help: multiply note about FMUL X,X,X.. and FMAC Y,Y,Y.. (thanks kemal)
- 3ds/gpu/help: added triangle drawing examples (thanks to profi200 for help)
- 3ds/gpu/help: created I/O map chapters for gpu internal/external registers
- 3ds/gpu/help: renamed several registers, especially ATTR_BUF related ones
- 3ds/gpu/help: swapped/renamed width and height to match up with actual usage
- 3ds/gpu/help: important details/corrections for rendering pipeline registers
- 3ds/gpu/help: better GPUREG_IRQ_xxx and GPU_MEMCOPY descriptions
- 3ds/gpu/help: info on undocumented flat shading and striped/dotted modes
- 3ds/gpu/help: info on undocumented memory traffic and vertex/polygon counters
- 3ds/gpu/help: added undocumented gpu register stubs (inside of gpu chapters)
- 3ds/gpu/help: started to rewrite and rearrange unclear gpu descriptions
- 3ds/gpu/help: removed meaningless sentences alike this register is used to...
- 3ds/gpu/help: removed nonsense definitions alike unsigned 1bit enable flag
- 3ds/gpu/help: gpu external registers: added memory control/status registers
- a22i/float: .float16/24/32/64/80 supports multiple operands (using commas)
25 Apr 2020 - version 3.01
- 3ds/help: added info on arm11/arm9 bootrom 3DS Exception Vectors
- 3ds/help: added info on bootrom key generator for AES key slots
- 3ds/help: added more notes/questions on still needed unknown gpu things
- 3ds/help: more gpu notes from 3dbrew (but isn't yet understood what they mean)
- 3ds/help: ntrcard on arm11 side: triggers cdma 01h, and interrupt 44h
- 3ds/help: clarified gamecard insert/pwroff irqs on arm9 and arm11 sides
- 3ds/help: info on starting/stopping arm11 cpu1 and cpu2/3 cores
- 3ds/help: details: pad irq 5Bh, memory enable for 08100000h and 1F000000h
- 3ds/help: added specs for Level 2 Cache (L2C) registers and cache irq 76h
- 3ds/help: added specs for AXI bus matrix registers (mostly readonly)
- 3ds/help: added specs ARM7 aka GBA config registers (and guess on gba footer)
- 3ds/help: added specs for LGYFB gba/nds framebuffer converters (thanks sono)
- 3ds/help: added specs for RGB-to-RGBA converter (L2B) (new3ds mvd related)
- 3ds/help: added specs for YUV-to-RGBA converter (Y2R) (camera related)
- 3ds/help: added many details for CTRCARD registers/seed/protocol
- dsi/help: added SCFG_CARD_xxx_DELAY specs, better cart power on/off sequences
- 3ds/help: added chapter with 3DS Console IDs and ID0/ID1 folder names
- 3ds/help: added mcu reflashing specs via uart cable on tool0 pin
- 3ds/help: renamed mcu looping-queue-stack-nonsense to battery-backed-ram
- 3ds/help: added details on mcu i2c-slave devices (fuel gauge and powerman/tsc)
- 3ds/help: rev-engineered RSA and SHA register details
- 3ds/help: fixed weird IPC_SYNC aka PXI_SYNC description
- 3ds/help: added specs for VFP vector-floating-point opcodes/registers
- 3ds/help: added tsc page 64h/65h/67h/FBh register info (thanks profi200)
- gba/bios: fixed multiboot-upload crash upon too many slaves or too much data
- dsi/debug: debugmsg window displays TSC page number alongsides with TSC index
- a22i/arm: bugfixed shortform for MOV Rd,shift (other than ALU Rd,Rx,shift)
- a22i/float: added data directives .float16/24/32/64/80
- a22i/dis: fixed corelink dma reladdr for loops (unsigned, target=$-offset)
- 3ds/disass: bugfixed RL78 short addr, and "[SFR+1]" for MSBs of SFRs
- 3ds/debug: added RL78 assembler for MCU code (and RL78 opcode list in help)
- 3ds/debug: added assembler/disassembler for VFP floating point opcodes
- 3ds/debug: added assembler/disassembler for CDMA/XDMA corelink dma opcodes
27 Nov 2019 - version 3.00
- dsi/teak/help: mmio info from wwylele's .md files and lauterbach .per files
- dsi/teak/help: tested/added/clarified more/undocumented teak mmio details
- 3ds/teak/help: fixed errors in CFG11_SHAREDWRAM_32K_CODE/DATA descriptions
- 3ds/help: rev-engineered CSND sound/capture specs (mostly same as NDS sound)
- 3ds/help: rev-engineered most NDMA startup modes and CDMA peripheral IDs
- 3ds/help: basic notes on New3DS NFC hardware (Near-field communication)
- 3ds/help: basic specs for New3DS QTM io expander (whatever that is used for)
- 3ds/help: more or less working specs for New3DS C-stick and ZL/ZR buttons
- 3ds/help: full specs for accelerometer, and for both gyroscope chip versions
- 3ds/help: full specs for irda chip (yet no info on irda-software protocol)
- 3ds/help: full specs for corelink dma registers (still need opcodes though)
- 3ds/help: scanned SPI bus and I2C bus (with some new device id findings each)
- 3ds/help: added many i2c irq-sources (routed through gpio registers)
- 3ds/help: added comprehensive list of unknown lcd-i2c registers
- 3ds/help: removed lots of dirt from the official arm11 mpcore interrupt specs
- 3ds/help: rev-engineered event/fault irq numbers for XDMA, OldCDMA, NewCDMA
- 3ds/help: tested I2C+ARM camera access (and identified left and right cameras)
- 3ds/help: major rewrite of mcu chapter (focusing on actual info without blurb)
- tsc/help: added TSC flowcharts for touchscr,microphone,nds-mode and basic init
- mic/help: rev-engineered microphone, moved mic from unknown to sndex chapter
- 3ds/help: rev-engineered I2C clock config and manual/fifo SPI clock rates
- dsi/help: added 8mhz spi bus clock (not 3ds specific) (enable via scfg_ext7)
- 3ds/help: added complete New3DS XL Component List (and semi-complete Old3DS)
- 3ds/help: added basic MMU virtual memory table specs (in arm cp15 chapter)
- 3ds/gpu/help: completely rewritten Top/Bottom Screen/Framebuffer Setup chapter
- 3ds/gpu/help: added notes on unknown read/write-able bits in PICA registers
- 3ds/gpu/help: added list of unknown/unused/undocumented PICA registers
- 3ds/gpu/help: added specs for finalize/interrupt registers PICA(0000h..0035h)
- setup/controls: allows to use DEL/BS keys (toggles between none and that key)
- 3ds/cdma/xdma/help: added summary of all Corelink DMA registers and opcodes
- help/emu/disass: supports invalid arm/libgcc BX PC opcode (thanx scott norton)
- 3ds/help: better gpio specs, and various details here and there
- 3ds/help: added stubs with R/W masks for most unknown arm9/arm11 io ports
- 3ds/debug: assembler/disassembler supports all new ARMv6/ARMv6K opcodes
- 3ds/debug: start_direct can now load FIRM files to memory (for disass)
- 3ds/memory: started allocating some 3ds-specific memory (AXI, WRAM, etc)
- 3ds/arm11/help: arm/thumb opcode encoding specs for new ARMv6/ARMv6K opcodes
- 3ds/bptwl/help: added notes on (limited) bptwl i2c register emulation
- 3ds/mcu/help: RL78 opcodes, registers, flags, memory map, SFR I/O map
- 3ds/cpu/help: added notes on branch prediction affecting waitbyloop timings
- 3ds/config11/help: rev-engineered details for new3ds clk/mode change register
- wifiboot: uploader uses non-blocking tcp socket (for abort by keystroke)
- 3ds/disass: added RL78 disassembler (for 3DS.mcu or New3DS.mcu firmware image)
- debug/help: included no$gba debug help in gbatek (moved to bottom of text)
10 Jul 2019 - version 2.9e
- wifiboot uploader: supports uploading 3ds .firm files from no$gba to 3ds
- wifiboot uploader: new bootinfo block (icon/title and rtc/time)
- wifiboot/help: added DS Wifi Dslink/Wifiboot Protocol chapter
- 3ds/help: added notes on SD/MMC Signals and 3DS Hardmodding
- 3ds/help: 3ds NWM wifi driver info (pool addresses and type1/4/5 variants)
- 3ds/help: specs for CID/OTP/NCSD/FIRM sectors for 3ds-#.mmc and new3ds-#.mmc
- setup: added 3ds/new3ds as nds mode variants (for debug view, not emulation)
- 3ds/aes: supports keyinit as by bootrom per otp (for filesys viewer)
- 3ds/emmc: loaded from 3DS-1.mmc or New3DS-1.mmc (for filesys viewer only yet)
- 3ds/bios: loaded from BIOS3DS.ROM (ARM9+ARM11) or BIOS3DS9.ROM+BIOS3DS11.ROM
- 3ds/help: added file/filesys info and arm11 mpcore/irq register specs
- wifi/help: added several new details (mostly from newly dumped AR6014 rom)
- a22i: supports abbrev ALU Rd,Rm,RotateShift (using Rd for both Rd and Rn)
- wifi/help: added wifi-board pinouts from fccid, and 4kbyte-wifi-flash-specs
- 3ds/crypt: supports sha256, sha224, aes-cbc, new keyscrambler (keyx/y)
- filesys viewer: show/decrypt 3ds stuff (partitions and firm/sav blocks)
- filesys viewer: faster directory loading (abort on first unused 00h entry)
23 Feb 2019 - version 2.9d
- debug/setup: disabled profiler by default (for fast emulation) (thanks Dwedit)
- debug/disass: disassembler support for UAL syntax (optional) and ARM11 opcodes
- dsi/help: added SD_EXT_IRQ_STAT/MASK (insert/eject state and irq for emmc)
- 3ds/help: added 3DS register specs (thanks 3dbrew.org/wiki/IO_Registers)
08 Feb 2019 - version 2.9c
- wifiboot: now supports dsi-wifi-hardware with wpa/wpa2 encryption
- utility/upload: omits nocashio lpt-port-driver for wifi upload (thanx edo9300)
- dsi/wifi/hack: dsi browser patch for writing all sdio traffic to wifi-log.txt
- dsi/wifi/help: new chapter for DSi Atheros Wifi - MBOX Transfer Headers
- dsi/wifi/help: added notes on used WMI params (connect, cipher, pstream, etc)
- dsi/wifi/help: more details for access point 4/5/6 settings in wifi-flash
- nds/wifi/help: updated ds download play chapter (and separate beacon chapter)
- nds/wifi/help: new chapters for WPA/WPA2: handshake, keys/mics, encryption
- nds/help: added reverse-engineered dldi specs (flashcart driver for homebrew)
- dsi/help: added several notes on files found in firmware v1.0J (thanks AnKi)
- dsi/ndma: added support for SDIO startup mode (much alike as SDMMC startup)
- dsi/boot: init AES Key2.X (for Data Managment export to SD card, thanx zoogie)
- dsi/help: device list: details on naming for "public & private savedata"
- dsi/autoload/help: new chapter for auto-loading (formerly in i2c chapter)
- dsi/autoload/help: added skeleton/info on 2000000h (autoload parameters)
- dsi/autoload/help: added more details on 2000300h (autoload by title id)
- dsi/autoload/help: added specs for 2000800h (unlaunch autoload by path\name)
- dsi/autoload/help: added specs for 2FFD800h (nintendo's title list and flags)
- dma/gba/nds7: re-fixed dma0/1/2 len, don't crop 16bit to 8bit (thanx normmatt)
- dsi/bios: added warn if/when using missing RSA keys (missing bios dsi dump)
- aboutbox: added email/contact page (debug version only, not gaming version)
- xed editor: fixed scrolling upon backspace in first some lines (thanks yuki)
30 Sep 2018 - version 2.9b
- web: created no$project patreon page, https://www.patreon.com/martin_korth
- dsi/emu: allows 8bit vram writes on dsi (if enabled in SCFG_EXT9.bit13)
- dsi/help: added note on dsi debug blowfish key used when SCFG_OP nonzero
- carthdr/help: added carthdr[0B0h] "DoNotZeroFillMem"=unlaunch fastboot ID
- dma/help: added note on dma-fill via 40000Exh being slower than stmia/ndma
- dsi/help: added note on broken cameras being more common than unknown cameras
- dsi/tsc/iomap: shows tsc page 0,1,3 registers (page 3 is hidden in aes tab)
- dsi/tsc/emu: basic emulation for reading/writing tsc page 0,1,3 registers
- dsi/startdirect: initializes GPIO registers (sound,powerbutt,wifimode)
- a22i: throws error message on forward references within .pack blocks
- nds/cart: supports flashcarts with arm9 code below offset 4000h (ievolution)
- nds/bugfix: resurrected BG0CNT/BG1CNT.bit13 (unlike GBA) (thanks chocoreep)
- dsi/help: info about ST NAND02G AH0LZC5 emmc chips (thanks barawer+trade girl)
- dsi/emmc: emulates different eMMC CSD's (matched to four known eMMC CID's)
24 Jul 2018 - version 2.9a
- emu/dsi/clk: supports ARM9 134MHz mode (but waitstates are too fast for now)
- bios/help: swi waitbyloop timings for arm7/arm9 rom/cache nds/dsi 67mhz/134mhz
- cart/emu: supports ds cart reset tricks (via toggling scfg_mc_msb or exmemcnt)
- dsi/emu/help: scfg_clk.bit7 is read-only on arm9 (value mirrored from arm7)
- dsi/help: added notes on 'flipnote lenny (or whatever it is called)' exploit
- dsi/help: solved unknown last bytes in boot info block (SHA1 on 60h-byte area)
- dsi/mmc-image: alternately accepts no$gba-footer at emmc offset FF800h
- nds/dsi/cart/help: romctrl notes on (in-)official ways to reset cartridges
- nds/dsi/cart/help: romctrl notes on wrong and slow 1t-rom timings cart header
- dsi/debug: reformatted scfg7/scfg9 iomap windows, with new scfg details
- dsi/teak/help: added offical names for bits in ar/arp/stt/mod (from .dll)
- dsi/teak/help: many new stt/mod/ar/arp/cfgi/a0e/vtr details (thanks wwylele)
14 Jun 2018 - version 2.9
- webpage: added credit card payment option - plz send money if you like my work
- dsi/exploit: released unlaunch.dsi (first ever released dsi bootcode exploit)
- utility/upload: added dslink-compatible wifi upload function (nds/dsi only)
- utility/upload: wifiboot 2.1 dslink-clone (proper cache init/initback)
- utility/upload: wifiboot 2.0 dslink-clone (dwm-w024 and arm7i/arm9i areas)
- dsi/emu/cartloader/help: takes WRAMCNT from MSBs of MBK9 entry in cartheader
- dsi/emu: mirrors read-only SCFG_EXT7 bits from SCFG_EXT9 and vice-versa
- arm/cpu/help: notes on cache clean vs invalidate and cache-write-bufferability
- dsi/help: added caution of forward references in Device List structure
- dsi/cartloader: rejects large modcrypt areas (eg. crypt.size>arm7i.size)
- dsi/cartloader: supports small modcrypt areas (eg. crypt.start>arm7i.start)
- dsi/modcrypt/help: added notes of several weird modcrypt corner cases
- arm/debug: I/O map cpmem9 shows PU dc/cc/wb (data/code cache and wbufferable)
- spi/powerman: emulates dslite/dsi registers: powerman[4] and powerman[10h]
- dsi/korea/help: notes korean font file (diff names, crisp clear, less tiles)
- dsi/korea/help: korean firmware version numbering as in china, 1.4.6 is newest
- dsi/help: added note on smaller cert.sys files (for korea or before dsi-shop?)
- dsi/wifi/emu: emulates sdio cmd5,cmd3,cmd7,cmd15 and reset_control.bit8
- nds/wifi/help: added description for 48080DAh W_RX_LEN_CROP register
- dsi/wifi/help: sdio init via cmd5,cmd3,cmd7,cmd15, rtc.fout, scfg/gpio etc
- dsi/wifi/help: added sdio pins on daughterboard and pinout for ar6013g chip
- dsi/sdmmc/help: described 40048F6h (bit0 = SD_WRPROTECT_2 for eMMC chip)
- dsi/scfg/help: details on scfg_ext7 and scfg_a7rom, updated mbk chapter
- dsi/scfg/emu: emulates scfg_ext7 and scfg_a7rom access right bits
- dsi/scfg/emu: emulates arm9.mbk1-5 writes in respect to arm7.mbk9 setting
- dsi/emu: removed most in_32 notyet warnings, added more out_xx notyet warnings
- dsi/mmc/emu: warning if .mmc file without footer (need CID and Console ID)
- dsi/help: added notes on bits in SCFG_A9ROM/A7ROM being set-once bits
- dsi/wifi/help: described 4004C04h.bit8 needed for DWM-W024 in NDS-wifi mode
- dsi/sdmmc/help: notes on SEND_OP_COND, and on ALL_GET_CID vs max CARD_CLK_CTL
- dsi/exploits/help: added some notes on recently released exploits and tools
- dsi/biosdumping/help: notes on voltage errors and CE2 idea from dark_samus
- dsi/help: added info on valid ARM9+ARM7+ARM9i+ARM7i areas for NDS and DSi mode
- dsi/help: added info on RSA signatures for newer non-whitelisted NDS carts
- dsi/carthdr/help: added notes on Access Control entry (request AES keys)
- dsi/carthdr/help: digest, modcrypt, twl-total can be ZERO (optional entries)
- dsi/sdmmc: added provisions for SDHC emulation, filesys viewer supports FAT32
- arm9/emu: allows exception vectors at 00000000h or FFFF0000h (thanks dave)
- dsi/help: added details on ECC keys/certificates (using ECC curve sect233r1)
- carthdr/help: added some more cart headers entries for dsi (and nds with rsa)
- help: specs for DSi RTC extras (up counter, alarm date, and FOUT selection)
- debug/elf: processes/skips dwarf4/dwarf5 DW_FORM tags (for homebrew PSX games)
23 Jul 2017 - version 2.8f
- nds/3d/help: note on MTX_PUSH/POP/STORE/RESTORE in Mode1 (thanks staplebutter)
- nds/3d/emu: matrix stack in mode1 behaves like mode2 (fixes light directions)
- dsi/mmc: supports MMC commands CMD1 and CMD6 (somewhat needed for libnds)
- dsi/sd: added warning on trying to use SD card in 4bit mode with pull-up on
- dsi/i2c: support softreset via bptwl (keeping main ram and bptwl regs intact)
- dsi/help: added notes on warmboot info at 2003000h (for autostarting a title)
- dsi/help: more details on 2FFD7BCh (scr,type,hcd,csr,clk_ctl,card_opt,device)
- bios clone: reproduces div-zero, fixed crash on div-overflow (thanks endrift)
- gba/io: emulates some more unused bits as non-writeable (thanks endrift)
- gba/help: note on BLDALPHA being R/W (unlike official specs, thanks endrift)
- debug/help: note on nds9 debug message ports 4FFFAxxh working on gba/nds7 too
- setup: renamed "Emu Identification" to "Debug I/O" and enabled it by default
- gui: fixed window positions/fullscr when taskbar at upper/left (thanks joseph)
11 Feb 2017 - version 2.8e
- gba/bugfix: forces WAITCNT.15=readonly (for DKong:KingOfSwing, thanks endrift)
- dsi/teak/a22i: added TeakLite II assembler (supports most TL+TL2 opcodes)
- dsi/teak/help: specs for teak cpu flags (which opcodes affect which flags)
- dsi/teak/help: specs for memory mapped I/O ports on teak/dsp side
- dsi/teak/help: specs for teak CPU registers, details for operand encoding
- dsi/teak/help: specs for teak st0-2,icr plus undoc stt0-2,mod0-3
- dsi/emmc: detects/supports debug-version eMMC images (tweaks port 4004024h)
- dsi/help: cleaned up some RSA descriptions, notes on debug-version RSA keys
- dsi/help: first attempts on describing SCFG_xxx registers for ARM7 side
- nds/wifi/help: added details on ds-download-play's openpgp-rsa-sha1 signature
- dsi/boot: mimmicked support for booting with AR6013 (when WifiFlash[1FDh]=2)
- dsi/dsdump: released dumping tool for dsi memory areas and chip IDs
- nds/wifi: released dswifi ASM port (and bugfixes for original dswifi-library)
- dsi/wifi/a22i: added assembler support for atheros/xtensa instruction set
- dsi/wifi/disass: fixed bugs for ANY/ALL/4/8 and EXTUI-based SHR pseudo-opcode
- bugfix: handles 16bit (not 32bit) return value of GetKeyState/GetAsyncKeyState
- nds/wifi/help: added note on W_IF acknowledging for counter half-overflows
- dsi/tmd/help: added age ratings and public/private .sav entries in .tmd specs
- dsi/devicelist/help: added DSi SD/MMC Device List chapter (for carthdr[1D4h])
- dsi/startdirect: initializes device list, aes keys, etc. (still imperfect)
- fontfile/help: more info on dsi font file (compression, nitrofont, characters)
- lz/help: added pseudo code for lzss, lz11, and lzrev decompression
- bootinfo/help: SHA1 WifiFlash[00h..27h] and eMMCBootInfo[00h..FFh,180h..1FFh]
- whitelist/help: info on RSA-SHA1's, SHA1-HMAC's and missing RSA check in v1.4E
- flipnote/help: info on various flipnote files, rsa, md5, xor-encryption
- rsa/help: added info on rsa basics, rsa pseudo code, rsa big-endian format
- rsa/help: added note on SWI 23h using OpenPGP Message Format (RFC 4880)
- rsa/bios: 80x86 dsi bios clone supports RSA bios functions (SWI 20h..23h)
- nds/bugfix: disables dsi I/O ports in DS mode (avoids misdetecting DS as DSi)
26 May 2016 - version 2.8d
- dsi/rsa: supports unencrypted "rsa" signatures (via hooked RSA swi functions)
- dsi/sdmmc: supports NDMA sdmmc start condition (for SD data32 read/write)
- dsi/sdmmc: supports SD card initialization (CMD0,2,3,7,8,9, ACMD6,13,41,42,51)
- dsi/sdmmc: created/included empty sd-card-image (file dsi-1.sd, in dsi-sd.zip)
- dsi/sdmmc: fixed irq-retriggering (recurse irq_stat on irq_mask changes)
- dsi/sdmmc: adjusts insert/eject and write-protect flags depending on dsi-#.sd
- dsi/sdmmc: prevents RXRDY in DATA32 mode (@@skip_rxrdy_in_data32_mode)
- dsi/help: added notes on EMPTY sd-image (dsi-#.sd) (DSi SD/MMC Images chapter)
- dsi/help: added notes unencrypted signatures (see BIOS RSA Functions chapter)
- dsi/help: added notes on encrypted twl-*.der files (in "verdata" NARC file)
- dsi/help: added CRC32 checksums for currently known/dump-able DSi-BIOS areas
- dsi/debug: shows insternal sd/mmc registers in iomap screen (cid,csd,csr,src)
- sample: updated magic floor gba/nds version, now with working dsi cart header
07 May 2016 - version 2.8c
- webpage: added some dev forum links (http://4dsdev.org and http://gbadev.org)
- help: added "us" to known dsi-regions (including its countries and languages)
- dsi: re-ordered wram as C-then-B (fixes 3780000h boundary issue on us/sysmenu)
- dsi/wifi/help: added specs for WMI commands/events (and for BMI boot-commands)
- dsi/sdmmc/help: added sd/mmc state info (specs when/which command can be used)
- dsi/softreset: allows rebooting dsi firmware via NUM-* (reinit DSi registers)
- dsi: can boot NDS games from within DSi mode (tweaks non4MB via fake_scfg_ext)
- dsi: supports NDS-backwards-compatibility-touchscreen mode (for NDS games)
- dsi: supports NDS-bios-mapping in DSi mode (for NDS games booted via sysmenu)
- dsi: supports firmware-coldboot (when bios_intro enabled with nds_mode=DSi)
- dsi: bugfixed jumps in new wram via addr_code_table (fixes many DSi problems)
- dsi/help: added DSi Atheros Wifi I2C EEPROM info (access and partial content)
- debug/gui: fixed system colors used for cpu-flag checkboxes (swapped red/blue)
- dsi/help: added notes on dumping wifi bios, and on dumping dsi keys from 3ds
- dsi/help: added flipnote fileformat, added notes on \shared2\0000 file
- nds7: emulates disabled bios area being FFh-filled (define_nds7_bios_rom)
- aes: forces instant completion on aes-body-len-zero (boot sysflaw via sysmenu)
- sdio/wifi: initializes 0500458h to ZERO (indicating not firmware yet uploaded)
- dsi/bugfix: moved "sdmmc_try_drain_write_buffer" after status/state handling
- dsi: wifi init mimmicked good enough to run bootcode without WLFIRM 2 error
- dsi/sdmmc: supports card_irq
- dsi/i2c: omits ACK response on non-existing devices (especially A0h/E0h cams)
- dsi/misc: omits arm7 warning on 4004001h access, sets DSi flag in cart.chip.id
- dsi: emulates SCFG_MC register (else hangs after starting a game in bootmenu)
- xtensa: auto-resolves special registers mov opcodes to symbolic sfr_xxx names
- dsi/loader: supports loading AR60xxG.rom (for disass at atheros:8E0000h)
- dsi/mapping: supports MBK mapping to TEAK memory space (for teak disassembler)
- dsi/sdmmc: supports WRITE_MULTIPLE command (requires eMMC image with CID+ID)
- dsi: supports 32bit 4004D00h read, and more 16bit/32bit access for other ports
- dsi/jpeg/help: added notes on computing jpeg/exif MAC signatures (via AES-CCM)
- dsi/sdmmc: emulates fifo16/fifo32, irq-edge-triggering, fixed bits, etc.
- dsi/help: added lots of details on sd/mmc/sdio controller's I/O ports
- dsi/help: updated dsi exploits chapter (notes on resurrected dsiware hax, etc)
- dsi/help: addded teak instruction set specs (encoding, syntax, params)
- dsi/help: added atheros/wifi registers specs (for sdio side and xtensa side)
- dsi/debug: added teaklite II disassembler (see menubar, window, teak)
- dsi/wifi/debug: added xtensa disassembler (see menubar, window, atheros)
- dsi/wifi/help: added xtensa/cpu instruction set and xtensa/cpu register map
- dsi/sdio: partial sdio/atheros simulation (passing most of "PRE-AUTH" phase)
- dsi/help: added sdio specs (cmd52/cmd53 and cccr, fbr, cia areas)
- dsi/boot: fixed initialization of emmc-info in main ram
- dsi/help: added various details (initial ram, etc.)
- nds/debug: optional IPC fifo send/recv logging (in tty debug message window)
- dsi/bptwl: supports writing BPTWL registers (except invalid/readonly ones)
- debug/tty: displays sd/mmc command names, and resolves sdio func:addr's
- debug: accepts mirror of 3800000h at 3FF0000h without warning (common on dsi)
- dsi/help: details on tmd, tickets, and big-endian aes-cbc decryption
01 Jun 2015 - version 2.8b
- dsi/boot: runs eMMC bootcode (see new "DSi Emulation" chapter in help text)
- dsi/cartloader: allows secure area above 23bfe00h limit (for dsiware only)
- dsi/wifi: loads WIFI-DSI.BIN file (else auto-generates dummy wifi calibration)
- dsi/boot: copies dsi-bios keys to tcm/wram, and console IDs to AES keyslots
- dsi/help: added notes on initial itcm/wram/aes content after bios-rom-bootcode
- dsi/debug: displays all known dsi registers in f10-iomap (except cam/tsc)
- dsi/camera: prevents ndma if camera=off, prevents hang-up upon infinite ndma
- dsi/aes: bugfixed handling of aes-irq-enable-bit
- dsi/sdmmc: eMMC command support (CMD2,CMD7,CMD9,CMD10,CMD12,CMD13,CMD18)
- hwreset: initializes [curr_clks_segment]=-1=none (fixes initial arm7bios clks)
- hwreset: cleaned up init on reset (among others forced arm9-then-arm7 order)
- dsi/ndma: supports timer0-3, filldatap, fixed irq details, fixed total limit
- dsi/ndma/help: details on ndma irq(s), ndma total length, and ndma filldata
- dsi/gamecart: supports dsi-blowfish encrypted commands (requires dsi bios)
- dsi/gamecart: supports command 3dh (enter dsi mode, with dsi secure area)
- dsi/gamecart: supports reset via 40001A4h.bit29=0 on DSi7 side (not tested)
- dsi/sdmmc: supports SDIO commands, ie. ignores them and throws some error bits
- dsi/memory: better MBK1..9 initializion on reset, added partial MBK9 support
- dsi/aes/dma: supports AES_in and AES_out NDMA transfer startup modes
- dsi/sdmmc/help: renamed nonsense "SEND" command names to "GET" or "SET"
- dsi/sdmmc/debug: optionally logs sdmmc CMD/param's in tty debug log window
- dsi/sdmmc: loads sector data from mmc-image file (for sdmmc read command)
- dsi/sdmmc: obtains CID and CPU ID from mmc-image file (per-console IDs)
- dsi/sdmmc: initializes sdmmc port 4004800-4004BFFh with some (guessed) values
- arm/help: fixed "cache debug" numbering: p15,3,C15,Cn,0 (not p15,3,C15,C0,n)
- layer setup: gouraud shading disable (force all vertices same as 1st color)
- dsi/help: added info on DSiware files on internal eMMC and on software updates
- nds/dsi/help: added details header[1Dh]=ds region, and on korean icon/title
- dsi/help: added details on animated icon/title
- poc: more accurate "garbage_byte" for memory areas without 8bit read access
- poc: fixed several details in pocketstation bios clone
- poc: better timing (freshen_waitcnt, ram/flash wait, 16bit/32bit bus, cpu clk)
03 May 2015 - version 2.8a
- dsi/help: added little-endian AES pseudo code with double-checked test values
- dsi/files/help: added camera pit.bin and jpec/exif specs (unknown signature)
- dsi/files/help: added TWLFontTable.dat specs (with unknown compression)
- dsi/files/help: added specs/compression for "wifi firmware" (unknown purpose)
- dsi/files/help: added specs for TWLCFGn.dat (user settings) (as far as known)
- dsi/files/help: added specs for misc files and log files
- dsi/files/help: more details for "tad" files (sd card .bin) and for HNB_.lst
- dsi/files/help: added partial specs on certificate and whitelist stuff
- dsi/help: notes on emmc decryption being possible for boot code and partitions
- dsi/mem/help: added info on various main ram regions (2FFxxxxh and 2000400h)
- debug: filesystem viewer: allows to view eMMC partition trees (like NDS carts)
- debug: filesystem viewer: double click saves selected file (to fixed filename)
- dsi/help: specs for eMMC images ("DSi-#.mmc" with "DSi eMMC CID/CPU" footer)
- gaming version: fixed crash when starting emu without cartridge in nds mode
- debug version: fixed messed intro screen when booting without cart in nds mode
- nds/3d/help: added note on invalid gx commands being ignored by hardware
- nds/3d: made 'invalid gx command' warning optional (as part of bad io warning)
- gba/help: updated gba/thumb open-bus specs in unpredictable things chapter
- gba/emu: better prefetch for reads from unused memory by code in WRAM/OAM/BIOS
- dsi/help: added summary (and complete list) of files/folders on SD/MMC storage
- layer setup: allows to disable video layers, 3d effects, and 3d hide tests
- layer setup: allows to disable nds sound channels, and separate sound formats
- gba/bios-clone: swi cpufastset length rounded-up to n*8 words (thanks ricardo)
- nds/auxspi: forces spi-busy bit (and unused bits) to zero (thanks Frederic)
- setup: added "setup_nds_system" in gaming version, too (thanks Kokoji)
- setup: fixed some crashes on gba/nds/dsi mode changes (mainly tty-related)
- dsi/help: added MBR, VBR, FAT, and LFN specs to SD/MMC filesystem chapters
- dsi/help: added console id chapter (cid, 4004d00h, barcode, mac, wfc id)
- dsi/help: added AES ndma notes (block size, start-ndma before starting aes)
- dsi/aes: emulates aes-io-ports, and aes-irq (no aes-dma yet though)
- dsi/aes: ported AES functions to native DSi-style little-endian format
- dsi/help: updated AES i/o port chapter (many details, additions, corrections)
- dsi/help: discovered eMMC 120bit CID value (at 2FFD7BCh in main ram)
- dsi/cartbooter: allows dsiware/system code to exceed 4MB (unlike ROM carts)
- gui: help-engine on win95/winNT4: forces IDC_ARROW (instead of IDC_HAND)
- gui: uses GetScrollInfo/SetScrollInfo in help-engine (except for win31...?)
- dsi/help: identified AIC3000D as TSC2117, added lots of specs from datasheet
- debug: added SPI logging option (in TTY window) (cart, powerman, flash, tsc)
- dsibrew: updated the NUS Downloader/database page (some additions/corrections)
- dsi/help: added note on teak being actually used (by two system utilities)
- dsi/cartloader: added ".app" to standard extensions (for nus downloader files)
- dsi/help: added more cart header details (region flags, system/dsiware flags)
- dsi: emulates dsipstat.bit6=1 (lcd init ready) (needed for dsi system menu)
- nds/dsi: allows writing dispstat.bit7 (MSB of 9bit LYC) (unlike 8bit gba LYC)
02 Feb 2015 - version 2.8
- help: updated gbatek standalone version 2.8 (with fairly complete dsi specs)
- dsi: no$gba is now having (more or less) working non-experimental DSi support
- dsi/cartloader: auto-encrypts modcrypt area if needed (requires good sha1hmac)
- gba/snap: fixed skipping empty-nds-chunks in gba-snapshots (thanks shiny.exe)
- newmem: avoids borland tasm32/tlink32 linker-error on "arm_memxlat_non_tcm"
- dsi/help: added list of known regions/countries (only europe is known yet)
- dsi/help: better ndma description (logical/physical blocks, and repeat modes)
- wifi/help: added new DSi access points specs (wpa/wpa2, and proxy settings)
- wifi/help: added formerly unknown NDS access points specs (mtu, ssid length)
- dsi/help: added average microphone specs for ARM7 side (A/D side is unknown)
- dsi/emu: supports fake camera access (outputting some dummy snow picture)
- dma: added warning on unsupported dma/ndma types (wifi,sd/mmc,aes,mic,mainmem)
- debug: fixed $profiler_id indices for dma-channel/mode names
- dsi/emu: supports basic aes and sd/mmc init (32bit 44xxh, 16bit 48xxh/49xxh)
- dsi/emu: supports i2c access (8bit 450xh) and gpio access (16bit 4C0xh)
- dsi/emu: supports new touchscreen controller (different SPI protocol as NDS)
- dsi/help: added description for new touchscreen controller (position/status)
- dsi/help: added notes on touchscreen in nds mode (no pressure & temperature)
- dsi/help: identified the dsi cameras as Aptina MT9V113 image sensors
- dsi/help: added initialization/transfer flowcharts for cameras on ARM9 side
- dsi/help: added initialization flowchart for Aptina cameras on ARM7 side
- dsi/help: added initialization flowchart for Unknown cameras on ARM7 side
- dsi/help: added undocumented aptina regs, and aptina REV3 additions
- dsi/help: added general dsi notes (eg. dsi detection) and info on exploits
- dsi/help: added notes on basic differences to NDS mode (changed details)
- dsi/help: added info about (mostly unknown) eMMC encryption (via CID register)
- dsi/help: added behaviour of SPI powerman (with differences in DSi/NDS modes)
- gba/nds/dsi/help: added BIOS RAM info (initial RAM content and IRQ/SWI usage)
- nds/help: cart header[06Eh] Secure Area Delay, and ROMCTRL.Bit28 gap CLKs
- nds/help: info on rom chip id bit31 cart protocol variant (gap/repeat/delay)
- xboo: supports dumping carts with rom chip id bit31=1 (protocol differences)
- dsi/debug: added tty.log options for I2C commands and NDS cartridge commands
- dsi/debug: prevents warnings on bigger New WRAM areas (unlike 32K for NDS)
- dsi/debug/emu: allows bigger DSi7/DSi9 bios regions (bigger than NDS7/NDS9)
- dsi/emu: allows reading/writing more scfg registers (as far as used by games)
- dsi/emu: initializes more scfg regs on reset (with suspected/guessed values)
- dsi/i2c/help: added Aptina MT9V113 camera specs (i2c registers and variables)
- dsi/i2c/help: added many details on bptwl chip (led/volume/misc controller)
- dsi/help: described power-button modes (auto-reset, irq, forced-power-off)
- dsi/help: major corrections to I2C control reg, added I2C signals chapter
- dsi/help: added details like headphone-connect bit, game-cart-insert-bit
- dsi/cartloader: bugfixed cartloader odd modcrypt lengths (eg. cooking coach)
- dsi/help: added GPIO specs (data in/out/direction, irq edge/enable)
- dsi/help: removed dsi cart protocol, instead added cmd_3Dh notes in ds chapter
- dsi/help: hardware/software info on wiring the eMMC chip to PC card readers
- dsi/help: info on sd/mmc I/O (from TC6387XB datasheet, tmio_mmc, dsi dumps)
- dsi/help: added specs for sd/mmc protocols (commands, repsonses, registers)
09 Nov 2014 - version 2.7d
- nds-mode-option: added poppy nds-lite mode, and new (experimental) dsi mode
- gba-mode-option: renamed poppy bright color option to poppy nds-lite colors
- dsi/bios-clone: supports SHA1 swi functions via 80x86 code (swi 24h..29h)
- cpu/swi: allows executing buggy System Flaw SWI number, when warnings disabled
- dsi/help: added chipset pin-outs (cpu/ram/nand/snd/tsc/rtc/led/pwr/vol/etc)
- dsi/help: added pin-outs for all internal connectors on DSi main+dpad boards
- dsi/help: added dsi component lists for mainboard, wifi, battery, etc.
- dsi/help: warning on AES little-endian (ctr,mac,key, and 16-byte-xor-blocks)
- dsi/help: added details about modcrypt and AES special key_x/key_y feature
- dsi/emu: supports new shared-ram mapping (wram-a,b,c) in emu and debugger
- dsi/help: added sd/mmc pinouts, card shapes, and onboard NAND-solder pads
- dsi/help: added notes on DSi memory map (with extra Main RAM and WRAM regions)
- dsi/help: merged DSi7 and DSi9 BIOS chapters with overall BIOS descriptions
- dsi/help: added notes on DSi7 and DSi9 IntrWait/VblankIntrWait BIOS bugs
- dsi/help: added partial I/O maps for SD/NAND (based on linux "tmio_mmc" code)
- dsi/debug: resolves DSi I/O area 4004xxxh in debugger's code/data windows
- dsi/emu: added support for new I/O areas at 4004xxxh on ARM7 and ARM9 sides
- dsi/boot: loads ARM7i and ARM9i areas as specified in DSi cartridge header
- dsi/boot: loads DSi cartheader to 2FFE000h (instead of NDS header to 27FFE00h)
- dsi/boot: cartloader resolves modcrypt areas (within @@load_block function)
- dsi/emu: added provisions for new interrupt sources (IE2/IF2 registers)
- dsi/debug: disassembler resolves swi names for DSi7/DSi9 bios functions
- dsi/a22i: computes extended icon/title crc16's (on ".fix" and icon_version)
- dsi/a22i: fixes sha1's and applies modcrypt (on ".dsi" plus ".fix" directive)
- dsi/a22i: added ".dsi" directive (produces binary with .dsi extension)
- dsi/emu: implemented AES in 8086 asm (not mounted to DSi I/O emulation yet)
- dsi/help: added notes on extended icon/title (new unknown language, new icon)
- dsi/help: added SHA1 and SHA1-HMAC pseudo code (in BIOS swi chapter)
- dsi/help: added AES pseudo code (core, key, tables, and AES-CNT and AES-CTR)
- poc/bios: avoids unsupported 8086-bios irq/fiq/swi emulation (always use bios)
- dsi/help: added info on blowfish differences (cmd 3Dh, level=1, dsi-key)
- dsi/help: added info on additional known/unknown dsi cartridge header entries
- dsi/help: added BIOS dumping chapter (info on what is dumpable on gba/ds/dsi)
- xboo: added dsi cartridge dumping function (requires dsi7bios and nds-xboo)
- xboo: allows downloading NDS cart when GBA slot empty (txt_cartridge_missing)
- mem: faster gba slot access right changes (faster exmemcnt with new memsystem)
- web/donations: added bitcoin and classic bank details (instead of paypal)
- web: released pixel-edited dsi mainboard photo with signal names; twl_core.jpg
28 Jul 2014 - version 2.7c
- webpage: moved from http://nocash.emubase.de/ to http://problemkaputt.de/
- freeware: both no$gba gaming version and debug version are now fully freeware,
donations http://problemkaputt.de/donate.htm are welcome and valuable support
(I am working fulltime on no$xxx emulation projects without any other income)
- snapshots: supports savestates in NDS mode (formerly supported for GBA only)
- nds/snd: replaced nds_snd_getnext_proc by "proc_id" (snapshot compatibility)
- gaming version: allows to access recent files menu without cartridge loaded
- mem: forces gba-slot region to be 00h-filled on deselected cpu (arm7 or arm9)
- help: nds mem control: notes on gba-slot deselection, and gba-slot open bus
- help: major cosmetic changes to arm/thumb cpu chapters (parts from no$sns)
- cpu: exported arm disassembler and arm cpu engine to external include files
- snapshot: re-included bg2/bg3_refx/y registers (for gba and BOTH nds-engines)
- snapshot: does freshen_waitcnt_raw before emu-run (needed after snaploading)
- snapshot: snap-saver skips empty chunks (eg. unused NDS chunks in GBA mode)
- cpu: supports ldmd/stmd direction (increasing, NOT decreasing) (classic nes)
- cartloader/gui: reinit game-window size when switching between gba/nds mode
- mem: with_new_memory_system (completely new memory system: now using separate
small macros per memory region, instead of old giant all-in-one macro, this
does resolve a terrible mess, does speed-up source code assembling, and does
speed-up NDS tcm/wram emulation, and allows to add DSi memory areas in future)
- snapshot: added new snapshot/battery sna/sav compression option (as in no$psx)
- setup/sound: volume slider (optionally hardware/mixer or software/multiply)
- a22i: fixed ".fill" directive (destroyed ecx when fetching 2nd/3rd parameter)
- help: added "GBA Cart Protections" chapter (namely about "classic nes" stuff)
- nds: allows nds7bios intrwait bios-bug with any incoming lz77-random values
- nds: allows jmp to 05ECh without warning (can be used for dumping NDS7 bios)
- gba: forces rom-mirror (instead "increasing numbers") for "classic nes" series
- gba: forces eeprom (no flash/sram) for "classic nes" series (game code "Fxxx")
- mem: moved misaligned_mem_reads to subfunction level (instead macro level)
- xboo: recognizes DSi's 128K flash id (allows to dump/patch wifi calibration)
- help: added note on ldmd/stmd transfer order (uses increasing addr for rlist!)
- help: corrected wifi calibration chapter (version is at 040h, not at 044h)
- web: changed no$gba forum link: http://ngemu.com/forums/no-gba-discussion.102/
10 Nov 2013 - version 2.7b
- a22i: prevents unsupported [dest-1] for .pack_lz77 (fixes no$firmware loading)
- help: added caution on unsupported [dest-1] for LZ77UnCompVram bios function
- sav: support for 1024kbyte and 8192kbyte nds flash save memory (both untested)
- sav: dynamically allocates save memory as needed (between 128k and 8192kbyte)
- bugfix: hwreset preserves gba/sav media creation date (got destroyed in v2.7a)
- nds/help: added more nds cartridge rom IDs and nds flash IDs (thanks jimmsu)
- poc/clone: fixed bug in pocketstation bios-clone (added INT_BASE to show_date)
- poc/loader: accepts checksum for newly discovered "J110" BIOS version
- poc/emu: applies 4x4 pre-zoom (less tiny window, avoid StretchDIBits failure)
- poc/help: added notes on BIOS versions (in no$psx help, see there)
- poc/help: added POC-XBOO circuit and sample code for xboo TTY debug messages
- poc/xboo: tty debug window (ascii characters transferred via FUNC3 feature)
- poc/xboo: verify-before-write and skip-if-same (higher lifetime/faster upload)
- poc/xboo: pocketstation upload/download memcard and download bios functions
- nds/help: added basic notes on special ds carts (infrared, nand, microsd slot)
- sound: optional 16bit output (instead of 8bit) (maybe fixes 'noise' problems)
- gui/setup: uses asia-compatible TabControl instead of unreliable PropertySheet
17 Aug 2013 - version 2.7a
- flash: nds games with 8Mbit FLASH memory are KEPT UNSUPPORTED, please identify
that chips! tools are at http://forum.gbadev.org/viewtopic.php?p=178032#178032
- nds/infrared: fake response AAh to NTR-Ixxx cart SPI cmd 08h (thanks normatt)
- nds/cartloader: forces Rune Factory to use EEPROM 64kbyte (thanks BinarySlave)
- cpu/gba: fixed sram mirror Fxxxxxxh to E00xxxxh (for Croket 2, thanks normatt)
- cartloader: auto-encrypt secure_area (for unencrypted NDS games WITH firmware)
- nds/snd: tweaks BIAS=200h (instead 0) on coldboot; avoid firmware boot scratch
- nds/reset: initialization zerofills more RAM regions and internal registers
- nds/help: added info on nds/dsi gamecodes (ds cartridge header chapter)
- nds/help: added some more newly discovered ROM chip IDs (thanks normatt)
- nds/help: added notes on cartridges with uncommon save memory (nand, microSD)
- bugfix: adjust_addr_edi_gba/poc: removed silly/buggy bit27=0 (thanks kingcom)
- nds/boot: init [27FFC40]=0001 (for newer games) (thanks Exophase and drwhojan)
- nds/boot: init [27FF808,27FF80A,27FF810,27FF860,27FF874,27FF880,27FF884]
- xboo: init [27FF860,27FF868,27FF874,27FF880,27FF884,27FF890,27FFC40,380F980]
- nds/cart: mirrors [romsize*N+0..7FFFh] to [8000h..81FFh] (thanks cheryl)
- dsi/help: started adding basic DSi specs (still far away from completion)
- nds/bios/help: added note on special temp buffer used by Huffman SWI function
- cheats: added cheat function also to debug version (as in gaming version)
- menubar: added recent_files list also to gaming version (as in debug version)
- video: added fullscreen mode in gaming version (black border/without menubar)
- bugfix: fixed arm7 stm writeback for rb=r13..r14 (thanks flubba and dwedit)
- help: added note on texcoord sign+integer+fraction for parameters and result
- soft-detail: clips texcoord transformation results to 16bit (thanks smealum)
- soft-renderer: bugfixed front/back-check for clipped polygons (thanks smealum)
23 May 2013 - version 2.7
- help: updated gbatek standalone version 2.7 (around fifty news since 2.5)
- sizing: added game window sizing support in NDS mode, and in multimachine mode
- multimachine: fixed some bugs on adding/removing additional NDS machines
- dos: fixed destroyed ebx register in memory handle resizing function
- dos: fixed missing nds_color_xlat re-initialization on dos video mode changes
- dos: fixed wrong resolution in 320x200pix mode (emu-vga mov cx,320 for lowres)
- gba/help: added partial gba wireless adapter details
- gba/help: added gameboy player detect/unlock/rumble info (thanks flubba)
- nds/help: added expansion ram detection/unlocking info (thanks rick lick wong)
- gui: created own help engine (instead of microcrap's suicidal windows .hlp)
- gui: added dos/windows help engines to gaming-versions (with short help text)
- internal: uses new overlay engine for help.pak, xmit-nds.pak, pockclon.pak
- removed bg_gif feature (no$gmb relict that was probably never used in no$gba)
- gba/help: added video interlace info (thanks damian yerrik)
- debugmsg: added optional dma-transfer and serial-port (normal mode) logging
- debugmsg: changed debug message window to use nonproportional fixedwidth font
- debugmsg: added new debug I/O ports 4FFFAxxh (alternate to old "mov r12,r12")
- debugmsg/help: added info on no$gba (and ensata) debug pseudo I/O ports
- cpu: supports "blx lr" (both arm and thumb) (used by FF4) (thanks X-0D X-0D)
- cpu: supports 2nd half of thumb-bl-opcode (used by MarioGolfAdvanceTour.gba)
- a22i: fixed thumb add rd,=adr (unsigned 8bit offset, not 7bit with 1bit sign)
- a22i: recognizes thumb add/sub rx,ry as short-form for add/sub rx,rx,ry
- a22i: recognizes thumb labels starting with "b" (were treated as "b{cond}")
- a22i: accepts thumb ldr/str rd,[sp] with omitted zero-immediate offset
- pockstat: emulates sony pocketstation (uses arm cpu too, otherwise offtopic)
- debug: added new emu-detection and string/character-output (via port 4FFFAxxh)
- laptop/controls: backspace disables delays (same as keypad+ on real keyboards)
- nds/wifi: emulates aid_low and aid_full masking, stats masking, stats auto_res
- nds/3d: soft-detail: emulates disp_1dot_depth (if enabled checks all w-coords)
- nds/3d/help: added note that disp_1dot_depth checks all vertices of the poly
- nds/3d/help: added note that disp_1dot_depth is actually a 0dot_depth check
- nds/3d/help: added note that disp_1dot_depth always uses W-coord (not Z-coord)
- nds/3d: stores disp_1dot_depth changes as pseudo gx command in command buffer
- nds/3d: soft-detail: emulates depth_equal tolerance, raised frac_z from 5 to 6
- nds/3d/help: added info on depth_equal tolerance (+/-200h within 24bit range)
- nds/3d/help: added disabled alpha_blend info (size reduction, rgba overwrite)
- nds/3d: soft-detail: reduces size of translucent polys if alpha-blend disabled
- nds/timing-fix: prevents dumbloop-trick on legitimate div/sqrt-busy waitloops
- nds/3d: soft-detail: bypasses alpha-blending when framebuf alpha=0 (rearplane)
- nds/3d: soft-detail: bypasses alpha-blending when master-disabled in disp3dcnt
- nds/3d: soft-accuracy: boxtest uses new soft3d clipping code (for all 6 quads)
- nds/3d/help: added alpha-blending formulas (for blending polygon vs framebuf)
- gba-micro/help: added note on slower 256K main ram (crashes when overclocked)
- gba-micro/help: added case/joypad ascii-arts, mentioned unsupported dmg/cgb
- gba-micro/help: added pinouts for supply/sio/phones/lcd/backlight/powerchips
- nds/3d: soft-detail: supports alpha_test_ref (if enabled) (full range 0..31)
- nds/3d: soft-accuracy: raised div_w resolution from 40000000h/w to FFFFFFFFh/w
- nds/3d/help: corrected alpha_test_ref (hide if below-or-equal) (instead below)
- nds/3d/help: added notes on edge-marking problems (with translucent polygons)
- nds/3d/help: added fog blending formula, added note on fog glitch (1st alpha)
- nds/3d: soft-detail: applies fog when enabled (depth/flag/color/alpha/mode)
- nds/3d: soft-detail: explodes fog_table (only if enabled and only if changed)
- nds/3d: soft-bugfix: fixed transulcent mask (new id only, not new OR old id)
- debug/profiler: fixed crash in the profiler list window (occured in v2.6b)
24 January 2008 - version 2.6b (bugfix) (hll-debug-ver only)
- debug/bugfix: fixed a crash that occured with new demangler (pop without push)
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)
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)
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
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)
04 October 2007 - version 2.5a
- debug: fixed @@resolve_clks bug (new timings crashed the clock cycle comments)
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
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)
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)
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)
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)
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)
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
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)
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)
04 February 2007 - version 2.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
20 January 2007 - version 2.3b
- gba/snd: snd_on_off 60h-81h non-writeable while disabled with optional warning
- gba/snd: fixed snd_on_off (resets only 60h-81h, not 82h-83h) (thanks ludvig)
- gba/help: described nr52/snd_on_off affected registers (60h-81h reset to zero)
- gba/help: added noise random generator specs (gba psg channel 4, poly counter)
- snap/sav: uses new "save_chunks" function (instead separate snapdat_write's)
- snap/sav: RLU-encoder/decoder supports long-same regions (code 80h dta8 len16)
- snap/sav-loader: re-allows old/smaller 64K sram/liff blocks (pre 128K flash)
- snap/sav-loader: raised gba-max liff/sram_siz for to 128K (for new FLASH type)
- snap/sav-loader: replaced fixed "liff/sram_siz" by variable "memsiz_sram/liff"
- snap/sav-loader: skips unknown blocks by file-entry (rather by expected entry)
- gba/help: new Backup IDs chapter (library ID strings, thanks pocketheaven faq)
- gba/backup: detects 128kbyte FLASH backup (reportedly uses ID "FLASH1M_Vnnn")
- gba/backup: emulates bankswitched 128kbyte FLASH backup memory (not tested)
- gba/add-on: emulates gba solar sensor (currently fixed level) (boktai, momov)
- gba/add-on: emulates gba-cart real time clock (rtc) (boktai, thanks momov)
- gba/multiplay: refixed slave machine bios-loading (missing v2.2 mount_system)
- nds/sound: precalculates sample rate timing (for some/minor emulation speedup)
- nds/backup/help: added description of the new eeprom/flash/fram backup types
- nds/backup: new: None, EEPROM 8K, EEPROM 64K, FLASH 256K, FLASH 512K, FRAM 32K
- nds/3d: uses pixelformat with alpha (if supported, ie. not by generic driver)
- nds/3d: above alpha untested - disabled by default - see setup: 3D Rear Alpha
- nds/3d: added warning on 3D access with powcnt bit2-3 disabled (thanks anders)
- nds/snd: fixed hang-up on uninitialized sound frequency (thanks damian yerrik)
- nds/3d: loads opengl on any opengl-call (not only on swap buffers) (anders)
- cpu/help: added notes on mis-aligned ldrd/strd (cpu memory alignments chapter)
- cpu/detail: emulates mis-aligned ldrd/strd (clips lower 2 bits) (not 3 bits)
- cpu/bugfix: fixed ldrd/strd bugged alignment warning (thanks anders norlander)
- winxp/xboo: nocashio install bugfix: added "system32\" in CreateService param
- winxp: supports Alt+key combinations (VK_LMENU instead of unsupported VK_MENU)
- internal: sorted/re-arranged nds variables (for future nds snapshot support)
- setup: changed color/depth settings: re-applies nds_color_xlat (backlights)
- web/paypal: fixed missing CRLF between "=" / "-----END PKC" (thanks francesco)
- nds/directboot: puts nds7_bios_crc and user_settings_base in RAM (as by BIOS)
- nds/3d: cleanup: unloads opengl library (if loaded) on exit
- nds/3d: uses win31-style upside-down-images (required for nvidia geforce)
- nds/help: new chapter on accessing gba-slot/gba-carts in ds-mode (clks/addr)
- gba/help: new chapter on gba cart real time clock (rtc) (used in boktai)
- gba/help: new chapter on gba cart solar sensor (boktai, thanks momov for cart)
- gba/help: new chapter on gba cart rom-chip 4bit io port (used in boktai)
- gba/help: added backup eeprom chip names 9853 (mario), and 9854 (boktai)
- nds/directboot: stores RomChipID in RAM (as by BIOS) (verified by newer games)
- nds/bugfix: hwreset memclear includes nds7 I/O region (older version didn't)
- gba/help: added note on ZERO-padded titles in cart-header (eg. in boktai)
- gba/help: fixed joybus entrypoint in gba-cart-header summary (E0h instead E4h)
4th November 2006 - version 2.3a
- nds/help: nds-bitmaps can be wrapped (that unlike gba-bitmaps) (thanks remi)
- nds/video: emulates optional wrap-around (area overflow) for nds bitmap-modes
- nds/video: emulates read-only 2d-engine-b ports as read-only (thanks remi)
- nds/3d: texture transformation mode 1 supports negative m[8,9,12,13] values
- nds/3d/boxtest: fast onscreen pre_check on any of all 8 coordinates of box
- nds/3d/boxtest: fast offscreen pre_check on all 8 coordinates of whole-box
- nds/3d/boxtest: fast offscreen pre_check on all 4 coordinates of box-face
- video/speedup: faster bg drawing when special effects disabled (blend/bright)
- reg/home: moved all users to usa, avoids paypal-german-language-service (remi)
- reg/full: new parity and decrypt.jpg encryption by headless marching soldiers
- reg/full: discontinued free nds-updates for older (than 12 months) gba-users
- reg/full: registration tool auto-generates invoices for commercial users
- reg/home: new file-ext .key (some servers now declare .bin as potential virus)
- sync: forces machine_switch on retrace, forces to be 1st machine after retrace
- gui/f1_key: HELP_FORCEFILE instead HELP_CONTENTS (preserves current chapter)
- webpage: added donate buttons on gba,msx,cpc,nes,2k6,zx8,c64 freeware pages
- email: new email address - please do NOT put it online - due to spam problems
- nds/3d: bug-fixed GX "nop" command (to have 0 parameters, instead 1 parameter)
- emu/help: described + emulated gba/nds7 dummy cp14-icebreaker (prefetch data)
- nds/cpu: emulates cp15 ctrl bit15 (pre-v5 ldr/ldm/pop pc.bit0=thumb disabled)
- cpu: emulates/ignores misaligned r15 in LDM [Rb],r15 (with optional warning)
- nds/help: added some basic specs on DS Memory Timings (in DS Various chapter)
- nds/3d: bugfixed texture transform (imul_op=64bit, instead imul_eax,op=32bit)
- cpu: emulates empty rlist (load/store r15 on ARMv4, Rb=Rb+/-40h on ARMv4/v5)
- cpu: emulates writeback-base-included-in-rlist (for all stm/ldm/v4/v5/tmb/arm)
- cpu/help: added info on invalid rlist's for ARMv4/v5 THUMB/ARM LDM/STM opcodes
- cpu: bugfixed arm9 q(d)add/sub (xor 7fffffffh instead 7ffffffh, one more f)
- nds/sound: emulates sound output speaker routing and speaker stereo panning
- nds/sound: emulates sound-hold (freezes output until hold=0 or next re-start)
- nds/sound: optionally mono output, optionally disabled, on machine 1 only
- nds/sound: allows "dumb loops" when reading non-irq-timed sound status regs
- nds/sound/help: described hold flag (can't hold on restart, apparently bugged)
- nds/sound/help: described the two different ch(a)+ch(b) addition outputs
- nds/sound/help: described capture errors (both negative and overflow bugs)
- nds/sound: emulates minmax clipping, fully emulates all sound capture errors
- gba/sound: fixed small ch4 glitch (occured when only one stereo side was on)
- gba/sound: bugfix: recurses channel 3 wave ram bank number/bank size changes
- gba/sound: emulates minmax clipping, corrected channel-volume vs bias-volume
- gba/nds/sound/help: rev-engineered Max Output Levels (psg/pcmfifo/bias/clip)
- nds/sound: emulates capture (routing, adding, mixing, rounding, clipping, etc)
- nds/sound: emulates sound loop+length and high accuracy frequency timings
- nds/gba-slot/bugfix: memadr_sram (instead nnn=0Eh) (thanks Chow Kim Foong)
- nds/sound/help: corrected sample frequency, explained length/loop registers
- nds/sound: emulates channel volume, channel volume shift, master volume, bias
- nds/sound: emulates pcm8, pcm16, adpcm, psg wave/duty, psg noise formats
- nds/sound: emulates all write-only sound ports as such (reads as 00000000h)
- nds/sound/no$fmw/emu: initializes bias=200h (as done by original firmware)
- nds/sound: nds_sb_generate_sample invoked by NDS7 (not NDS9) as sound master
- nds/bugfix: fixed arm9 halfmul opcodes (accidently exchanged opcode lsbs/msbs)
- debug/disass: fixed smulxy opcode (showed up as "smmuxy" instead of "smulxy")
- nds/sound/help: described SOUNDCNT bits 8-11 (final audio output selection)
4th August 2006 - version 2.3
- nds/dos: displays nds button X and button Y in redefine keys setup screen
- gba/bugfix: re-disabled NDS master_bright in GBA mode (port 6Ch is GBA sound2)
- help: uploaded gbatek txt/htm standalone versions (v2.3 news: 3d video, wifi)
- nds/help: firmware header chapter (added timestamp/version/type/unused info)
- wifi/emu: direct boot sets wifi regs (mainly bb) as done by firmware bootcode
- wifi/emu: emulate serial read/write to BB ports, and write to RF ports
- wifi/emu: emulates indirect wifi ram read/write access via ports 050h..076h
- wifi/emu: emulates wifi disable by powcnt2, emulates 8bit/16bit/32bit access
- wifi/emu: allocates/emulates 8K wifi RAM, emulates used/unused wifi io ports
- wifi/help: added write range: w_buf_wr_end (074h) and w_buf_wr_step (076h)
- wifi/help: added missing ports 078h and 09Ch, explained RF index/18bit data
- wifi/help: added random algorithm, added w_us_comparecnt (compare enable)
- wifi/help: added notes on read-mirrors when reading from write-only ports
- wifi/help: added bit-by-bit port descriptions, including unused/always0 bits
- wifi/help: corrected several (R)/(W)/(R/W) specifications, added r/w bitmasks
- wifi/help: matched doc to 80 column width, removed too-verbose stuff in iomap
- wifi/help: added wireless chapter (many thanks stephen stair's ds wifi doc)
- nds/xcept: allows NDS7 to access 64K region at 4800000h (wireless wifi ports)
- nds/xcept: allows NDS7 to access 256K mirror at 27C0000h (commercial games)
- nds/xcept: allows ITCM mirror at 1FF8000h..1FFFFFFh (used by commercial games)
- nds/rtc: serial transfer timings firmware-compatible (on other edge than bios)
- nds/firmware: supports 512Kbyte firmware.bin (ie. chinese charset in iQue)
- nds/emu: emulates 512-byte backup eeprom (as used in metroid demo cartridge)
- nds/help: corrected auxspicnt (exchanged bit6/bit13, enable and hold flags)
- 3d/help: cleaned-up 3d matrix chapter (mtx_mode, and clip_mtx descriptions)
- 3d/help: added chapter on 2D scrolling/specialeffects/window used on 3D/BG0
- nds/video: emulates display capture from source A=bg/obj, fixed swap_buf time
- nds/help: added note on capture completion in line 192 (regardless of size)
- nds/iomap/help: corrected display capture read/write offsets (exchanged them)
- 3d/2d: emulates hscroll on 3D layer, prevents mosaic and vscroll on 3D layer
- debug/iomap: fixed position of "W0 W1 Obj Out" and "1st 2nd Target" flags
- 3d/log: automatic comments on separate bits in poly_attr and teximage_param
- 3d: supports transparent rear-planes (for underlaying 2D plane) (metroid menu)
- 3d: enabled GL_NORMALIZE (required for normals when used with scaled matrix)
- nds/slot/dma: executes BURST only on START 0-to-1 (not on clearing MODE bits)
- nds/slot: cart transfer ready irq generated ONLY if enabled in 40001A1h.Bit6
- nds/touchscreen: works also in debug-window (not only in separate game window)
- nds/touchscreen: initializes calibration also when booted via bios/firmware
- nds/div/emu/help: DIV0 or MAX overkill: 32bit result is reversed-sign-expanded
- nds/div/emu/help: reserved mode3 is same as mode1, result/remain sign-expanded
- nds/div/emu/help: DIV0 sets remain=numer, result=+/-1 (sign opposite of numer)
- nds/div/emu/help: (-MAX / -1) overflow error returns (-MAX) (instead +MAX)
- 3d/iomap: added vertex (vtx16), normal vector, light colors, and light vectors
- 3d/iomap: added box test, pos test, pos test result, vec test, vec test result
- 3d/iomap: added edge color table, fog table, toon table, shininess table
- 3d/iomap: added current projection, position, direction, and texture matrices
- debug: disassembler: fixed Rm,Rs operand order for umull/smull/umlal/smlal
- 3d: texture mirror repeat (fully software emulated, pre_opengl_1.4 compatible)
- debug: changed .FNT DefaultChar from 2Eh to FFh (avoids WinXP bug) (jasper)
- 3d/log: log-file for all GX commands (format: PortNNN/CmdNN cmd_name params)
- 3d/log: auto-indent within begin/end, auto-wrap-indent for NxN matrix params)
- nds: re-init fpu-mode for 64bit INTEGER div/sqrt (required after opengl calls)
- 3d: fixed SCALE command (applied only to one matrix even in simultaneous mode)
- 3d: fixed mtx_load_4x3 command (applied to both matrices in simultaneous mode)
- 3d: emu: fixed vec_test (x,y,z,0) (4bit sign, instead 1bit sign+3bit integer)
- 3d: texcoord-transform fully software emulated (without GL_TEXTURE matrix)
- gba/help: added note on more complex invalid tiles with multiple BGs (jasper)
- 3d/help: added decal/modulation/toon/highlight chapter, and texcoord chapter
- 3d: texture 4x4 texel compressed format (incomplete, without interpolation)
- 3d: texture translucent formats, palette formats optionally color0 transparent
- 3d: bugfixed vtx_diff (9bit fraction is meant to be LSBs of 12bit fraction)
- 3d: material0.bit15 directly sets vertex color (for N's "cube" demonstration)
- 3d: light/material/normal with forced begin/end-outbreak on GL_LIGHTING change
- 3d: calls gx_process_fifo to free-up gxfifo (when possible aka no swap active)
- 3d: get framebuf: reverses red/blue by table (for match-up with nds 2D engine)
- 3d: explodes (1)-5-5-5 RGB textures to "unpacked" OpenGL RGBA 8-8-8-8 format
- 3d: supports 16bit I/O-writes (eg. metroid demo: 16bit STRH to CLEAR_DEPTH)
- 3d: textures (metroid demo: "nintendo/actimagine" shown before intro-movie)
- 3d/help: added note on END_VTXS being a dummy command (no effect on hardware)
- 3d/help: added note on depth test, and on POLYGON_ATTR applied at BEGIN_VTXS
- 3d: enabled Depth Test, and emulated Depth Test modes (either Less, or Equal)
- 3d/iomap: displays VertexColor setting (Port 480h aka Cmd20h) in F10 screen
- gba/video: bugfixed rotscal tile-map mode (bugged since v2.2f) (thanks jasper)
- 3d: converts fixed-point-to-float by FMUL 1/1000h (faster than fscale or fdiv)
- 3d/help: added notes about clipping, and about light vectors and normal vector
- 3d: retrieves DIB bitmap data by movsd (glReadPixels doesn't seem to work)
- 3d: supports begin/end quad/triangle/strips and all variants of vtx-commands
- 3d: forwards (software calculated) projection/modelview matrices to opengl
- 3d: supports clear color, clear depth, and applies viewport setting
- 3d: supports vertex color, and polyonattr alpha/wireframe/front/back settings
- 3d: pre-calculates 5bit R,G,B,A float values (for fast conversion via table)
- 3d: calls ChoosePixelFormat (killer-slow) (only if needed, not for 2D games)
- 3d: retrieves gl- and wgl- and PixelFormat proc addresses (quite fast)
- 3d: loads Opengl32.dll (killer-slow) (but, only if needed, not for 2D games)
18th June 2006 - version 2.2f
- cpu/help: added CPU Memory Alignments chapter (and info on mis-alignments)
- research: discovered wglCreateContext (despite no info in worst opengl specs)
- gba/video: hides invalid tiles in NDS-in-GBA-mode (invisible, unlike real gba)
- gba/video: shows invalid tiles in GBA/SP-mode (vertically striped) (jasper)
- gba/help: unprectiable things: described invalid tiles (thanks jasper vijn)
- gba/emu/help: corrected Prefetch Disable (1N+1I instead 1S+3I) (jasper vijn)
- gui: re-fixed game_template for multiple machines (@@total for dual-screen)
- nds/vram: nds7 emulated vram mirrors every 256K, disabled palette/oam access
- nds/vram: nds9 ignores 8bit-writes to vram/palette/oam (thanks gary linscott)
- nds/vram: nds7 allows 8bit-writes to vram (thanks gary linscott)
- cpu: ignores mis-alignment on NDS9 LDRH/LDRSH (unlike rotated GBA/NDS7 data)
- nds/debug: filesystem viewer rejects invalid nds headers (eg. passme files)
- nds: emulates reading 8bit/16bit-fractions from 32bit ipc_fifo_recv register
- cpu: emulates "ldr pc,[mem]" with misaligned jump-dest (with optional warning)
- nds/video: avoids divide-by-zero crashes in 3D perspective divisions
- gba/nds/video: speedup: color special effects by 1x32bit mul (instead 3x5bit)
- nds/help: fixed extended palette enable bits (dispcnt bit31,30 exchanged)
- a22i: supports macros (still without params) (.macro <name> / ... / .endm)
- a22i: supports repeat macros (.rept <count> / ..code or data.. / .endm)
- nds/video: emulates new nds master brightness up/down effect (port 400X06ch)
- vram viewer: supports NDS rot/scal mode with text-style 16bit bgmap entries
- gba/vram/emu/help: strb to vram: write-nothing reduced to 16K in bitmap mode
- gba/vram/emu/help: strb to vram: write-twice expanded to 80K in bitmap mode
- nds/video: new rotscal mode with 16bit map entries (400h tiles ext_pal xyflip)
- nds/video: extended palettes (256-color TEXT, 256-color OBJs, 16bit rotscal)
- nds/video: emulates large screen bitmap mode (not tested, but should work)
- nds/reset: also zero-fills 2D Engine B ports (bg0ofs scroll registers, etc.)
- cartloader: loads .NEF debug-info also for .NDS files (instead only for .SRL)
- cpu: allows mis-aligned thumb BX R15, auto-aligned to "($+4) AND NOT 2"
- gba/video: emulates obj-wrap; 64x64 scaled to 128x128 only in UPPER portion
- nds/help: described obj-wrap; 64x64 scaled to 128x128 in BOTH screen portions
- nds/video: screen-width for NDS rot/scal-obj (256 pix on NDS, instead 240 pix)
18th May 2006 - version 2.2e
- no$fmw: detects post-header gap-size (typ. 0h,3E00h,4600h) (old: fixed 3E00h)
- dos: fixed v2.2d bug: init_gba_color_xlat_table (old: init_color_xlat_table)
- help: added note on possiblity to move nds7 ROM to (non-)secure area at 200h
- help: added note about blank secure areas (nintendo devkit, 800h zero-bytes)
- help: added cart.NEF/SRL/NLF-combo description in symbolic debug info chapter
- elf/cartloader: crash-fix (occured if newly loaded labels at code-window-addr)
- cartloader/cmdline: supports spaces in "quoted" path\filenames (thanks peter)
- screenshots: fixed palette size (set to zero for true color) (thanks jasper)
- help: changed DMA 4 to DMA 3 (probably makes more sense, thanks jasper vijn)
- nds/debug: accepts labels below 2000000h (ie. ITCM labels, at 1000000h and up)
- nds/help/no$fmw: added chinese as extra language (newer/chinese consoles only)
- vram viewer: OAM redbox works at negative y-coordinate (thanks peter schraut)
- bugfix: joypad_adjust uses "@@seg" instead "vals" for [local_if_adr] access
- nds/tcm: 80x86 intrwait [dtcm+3ff8h] works if DTCM is off, or covered by ITCM
- nds/freeware: stores [memaccess_addr] (required for tcm/interrupt emulation)
- elf: ignores "@1234" and "@456" style dummy labels (used in ldr rd,=txt_ptr)
- nds/cartloader: shows warning on 2K-encrypted-carts (if missing biosnds7.rom)
- nds/cartloader: shows warning on faulty secure area (rom-offset below 4000h)
- cartloader/cmdline: accepts all "unpacked_extensions" (new ones: nds srl elf)
- elf: reload/recent files: reinitializes dsk_path (used to load source-lines)
- nds/controls: joyp/penirq works for BOTH arm7+nds9 (@@skipinp, old: @@skipadj)
- elf: shows continous source lines from ONE section (hides .nef DUPE sections)
- elf: ignores strange "$a" and "$d" dummy labels (found in some elf/nef files)
- nds/cartloader: supports cart.NEF debug info (for cart.SRL binaries) (if any)
- nds/cartloader: supports (not existing) nds-elf's with zero-based phys.addr
- internal/cartloader: replaced @@target_rom flag by pre_size detection values
- internal/cartloader: removed ancient @@elf_method load-by-section-headers
- nds/cartloader: accepts ext .SRL (nintendo's alias for raw .NDS rom-images)
9th May 2006 - version 2.2d
- nds/tcm: reset during emulation does reinit memaccess_list (and rebuild_tcm)
- gba/video: selectable GBA (dark), GBA-SP (med), DS-in-GBA-mode (bright) colors
- nds/video: emulates backlight on/off/dimming (rgb_xlat per screen / machine)
- nds/setup: optionally allocates debug-ver 8MB main memory (with reset/remount)
- nds/help: described wifiwaitcnt (port 4000206h), and displayed it in f10-iomap
- nds/help: spi 16bit mode bugged (only each 2nd byte appears in 8bit-spidata)
- nds/iomap: added 32bit auxspi register in iomap (formerly 8bit whatever 1a1h)
- nds/aux: emulates auxspi port (that still without any backup-memory emulated)
- nds/help: added cartridge backup chapter, and auxspi in cart ports and iomaps
- nds/realtime: raised from 50% to 100% speed (delays only on arm9, not on arm7)
- nds/video: emulates alpha-flag (0=transparent) for direct color BG bitmaps
- nds/iomap: expanded bg#cnt charbase value to bit2-5 (unlike GBA-style bit2-3)
- nds/help: added debug_exception_vectors in irq chapter (27FFD9Ch and 380FFDCh)
- nds/reset: stable multiple_ready initialization (libnds crashed each-2nd-boot)
- nds/debug: allows stackinfo at non-3000000h region (ie. var nds9 dtcm region)
- nds/metroid: metroid demo intro-movie is now working (bg bitmap & bitmap obj)
- nds/iomap: fixed displayed sqrt_result register value (addr 2B4h instead 2A4h)
- nds/iomap: fixed soundcnt and soundbias registers (addr 50Xh instead ecx+50Xh)
- nds/video: fixed bitmap obj emulation (also displayed in vram viewer oam page)
- nds/help: corrected 2D Bitmap OBJ description (boundary=8x8, not boundary=32)
- nds/video: emulates vram-display-mode (used for metroid intro / upper screen)
- nds/irq/bios: nds-irq-handlers working without copy of real nds-bios-image
- profiler: goto function always applied to CODE window (not data/stack window)
- nds/profiler: treats FFFF0018h as nds9-irq (unlike 00000018h for gba/nds7)
- nds/emudetail: higher emulation accuracy for read/write-able POSTFLG bits
- nds/bugfix: fixed SWP opcode (metroid) (ecx was destroyed by anytcm handler)
18th April 2006 - version 2.2c
- nds/tcm/debug: accepts "odd" (non-16MB-aligned) dtcm-base without warnings
- nds/help: specified recommended TCM areas (emulation performance friendly)
- web: added "no$nds" iomap screenshots, changed "gbanotes.txt" for v2.2c
- dos/help: dynamically counts help line numbers, then allocates helpptrseg buf
- nds/bugfix: fixed crash on nds-to-gba switch (hack_win_sizes post init_addr)
- nds/controls: supports new x/y buttons, fixed normal joypad input on nds7
- nds/debug: adjust_addr supports iopt, vram, and dtcm/itcm (also for 80x86 swi)
- dma/nds: accepts large word-counts for nds9 dma transfers (max 200000h units)
- dma/nds: masks-out unused sad,dad,len/cnt bits of nds7/nds9 dma registers
- dma/nds/help: added note about nds7-dma having same restrictions as gba-dma
- dma/gba: fixed various "write-only" emulation glitches of various DMA ports
- dma/gba/nds: supports rarely used 8bit DMA port access (by ldrb/strb opcodes)
- nds/cp15: emulates fixed cp15 bits, mirrored/unified cp15-pu-region-registers
- freeware version: re-fixed error-count (ignores bios-bugs, thanks dave murphy)
- nds/debug: full iomap, 10 tabs (Lcd-A/B/3D,CpMem/SpiRtc/Snd,DmaTmr/IrqIpc-7/9)
- nds/help: added note about absent cp15 fast context switching extension (fcse)
- nds/help: added list of read-write/read-only cp15 control register bits
- nds/tcm: supports move/enable/disable/mirroring, re-supported JUMPs in ITCM
- nds/tcm: created separate dtcm/itcm/anytcm handlers, mounted where needed
- nds/ipc: help: added 16 word ipc fifo size, emu: "ipc-clear" sets empty-flag
- nds/3d/help: added new chapter with 3D video specs (about 70% complete)
- nds/3d/fifo/pipe/load/push/pop/mul: emulated basic 3D functions (by software)
- nds/tcm: emulates unused CP15 bits=zero, ITCM not-moveable, ITCM/DTCM priority
- nds/tcm/help: rev-engineered DTCM vs ITCM priority, and NON-moveable ITCM
- nds/memory: moved GBA-SRAM address to A000000h (unlike GBA-style E000000h)
- nds/memory: moved GBA-EEPROM expected address to WS0 (unlike GBA-style WS2)
- nds/memory: truncated GBA-ROM to WS0 (without GBA-style WS1, WS2 mirrors)
- snaps: fixed snapshot load/save (memadr_regs instead bugged v2.2 memadr_vals)
- a22i: definitions by "global equ $" preserve @@local labels (unlike global:)
- help/htm: eliminated unwanted TABLE-spacing that appeared around PRE sections
- xboo: fixed silly bug that crept into gba-xboo-mode (@@non_nds -> AFTER ret)
4th February 2006 - version 2.2b
- help: added credits in about chapter, uploaded gbatek v2.2b standalone version
- help: removed question marks in video capture chapter (thanks christian auby)
- help: added bios-dumping method, bypassing biosprot via 5ECh (thanks damien)
- debugger: hides 2nd gamescreen in gba-mode, and activates it in nds-mode only
- help: firmware settings RTC Offset, difference in seconds on time/date changes
- debugger: shows debug window also on cmdline "no$gba file.gba" (unless hidden)
- xcept: allows passme-entry-style jumps in 27ffxxxh area (mirrors of 23ffxxxh)
- xcept: allows nds9_irq_vector=zero (only if itcm=enabled, and itcm_base=zero)
- vram viewer: palette screen: adds engine-b-base, engine-button freshen_options
- setup: autostart flag (in filemenu) saved with other options in ini/cfg file
- debugger: search -> goto area -> exchanged 32K and 256K (thanks peter schraut)
- vram viewer: supports new nds bgmodes (bitmap, large bitmap, rotscal-16bit)
- dual cpu: provokes instant machine switch on any 27ffxxxh access (libnds stub)
- cartloader: applies passme-patches only to NDS-header (not to GBA-header)
- help: added description of bg#cnt size-bits for nds bitmaps and large-bitmap
- bios: fixed 80x86 bios rlu/lz77 decoders (new v2.2 regr0_adjust damaged flags)
- help: added KEY2 specs (semi-thanks darkfader for (obviously) incomplete info)
- iomap/vram viewer: shows correct names of NDS video modes (text,bitmap,etc.)
- lcd: supports bitmap base (in 16K steps), supports rotated/scaled bitmaps
- no$fmw: fixed nds7 uninitialized r12, activated DST adjust, fixed DST apply
- no$fmw: simplified nds7-bios-dump, works without nds-cart, thanks damien good
23nd January 2006 - version 2.2a
- bugfix: fixed v2.2 instant crash after loading (occured debug versions only)
22nd January 2006 - version 2.2
- help: uploaded new gbatek standalone version v2.2 (with nds specifications)
- exe/help: replaced upx compressor by nocash packer (without opcode filters)
- nds: applies bottom lcd (touchscreen) video output to correct window-owmer
- nds: applies mouse/touchscreen to correct window-owmer (in multi-machine mode)
- nds: auto-initializes touchscreen calibration (both with/without firmware.bin)
- nds: no$fmw: included nocash firmware xmit binary as overlay in no$gba.exe
- help: added notes about new NDS emulation (on things that aren't yet working)
- exe: exported windows-help to separate upx-compressed overlay (as in dos ver)
- nds: vram viewer: matched user-grid, bg-scyx, oam-redbox to NDS resolution
- nds: xboo: saves backup of original firmware header on HDD and in flash memory
- nds: xboo: includes crypt key in firmware for NDS-decryption (if BIOS dumped)
- nds: xboo: download functions for dumping NDS firmware, BIOSes, and GBA-carts
- nds: xboo: patch/restore functions for (un-) installing nocash firmware
- nds: xboo: help: xboo-circuit optionally fmw/rfu, and dsub/cntr pin numbers
- nds: xboo: high-speed upload connection Dta7bit/Clk1bit (ca. 700 KBytes/sec)
- nds: no$fmw: menu: property sheet, check boxes, radio buttons, edit buttons
- nds: no$fmw: menu: settings/time, touchscreen/temperature calibration, etc.
- nds: no$fmw: gui: joypad, touchscreen (lower), mouse/touchpad (upper) controls
- nds: no$fmw: auto adjusts daylight saving time (should work, but not tested)
- nds: no$fmw: allows to boot NDS-images from NDS-slot, or from NDS-Xboo-cable
- nds: no$fmw: allows to load/boot small NDS-images to/from firmware memory
- nds: no$fmw: allows to load/boot NDS/GBA/PASSME-images to/from GBA-flashcards
- nds: lcd: re-activated rotscal params, working for GBA and BOTH NDS engines
- nds: lcd: emulates extended affine bitmap modes
- nds: direct boot: initializes ioports, and cp15, loads newest user settings
- help: nds: added DMA chapter, GBA-mode chapter, and keypad chapter
- help: nds: rev.engineered/described RTC interrupt (shared with rcnt SI-line)
- help: nds: added sound chapters (channels, control, capture, block diagram)
- nds: emulates touchscreen, wramstat, vramstat, exmemstat
- help: nds: described undoc wramstat, vramstat, exmemstat, dmafill registers
- help: nds: added cartridge secure area, icon/title, passme, I/O port chapters
- help: nds: described how to interprete touch screen calibration values
- nds: help: CpuFastSet: only 1st QUARTER uses FAST 32-byte-blocks, rest is SLOW
- nds: resurrecred GBA mode (dis-chains NDS co_vals on NDS to GBA mode switch)
- a22i: added ".no_auto_run" directive (don't load non-game-cart files into emu)
- nds: emu: emulates ZERO unused/write-only ports (instead GBA-style prefetch)
- nds: xboo: replaced 1N4148 diodes by BAT85 diodes for stable SPI connection
- nds: xboo: added firmware dump/patch items in gui\utility\remote access menu
- nds: xboo: automatically sends reset & provokes lockdown to get a spi free bus
- nds: xboo: nocash firmware running in emu, using nds ".pack_lz77/key1/crc16"
- a22i: new ".pack_nds_key1" directive (only firmw, rev/down, modulo C, level 2)
- a22i: new ".pack_crc16 dest_label[,initial]" directive (start by .pack_org $)
- nds: xboo: programmed overall skeleton nocash firmware version
- a22i: lz77 compress now working (start by ".pack_org" finish by ".pack_lz77")
- a22i: added new desired origin target parameter to ".pack_org" directive
- help: corrected length in bit0-20 for CpuSet and CpuFastSet (not in bit0-15)
- a22i: accepts ARM instructions "ALU Rd,Rm" (abbreviations for "ALU Rd,Rd,Rm")
- a22i: fixed crash on "MOV R0,XX 1" whereas XX 1 invalid formula (unlike XX+1)
- cpu: squeeze: ANYMEM removed seq code for areas with same timing as non-seq
- cpu: squeeze: ANYMEM/mem_read_breaks checks brks, then executes normal ANYMEM
- cpu: speedup: stores memaccess_addr prior to ANYMEM (instead "nnn OR adr")
- cpu: speedup: ANYMEM bypasses addr_clks_table for regions with fixed timings
- nds: help: added cart filesystem chapter, firmware header/settings chapters
- nds: debug version: added NitroROM filesystem viewer window (if any)
- nds: direct boot: decrypts 2K secure area (only if rom-image is encrypted)
- nds: a22i ".fix" directive (plus .nds) encrypts first 2K secure area (if any)
- nds: a22i ".fix" directive (plus .nds) fixes logo,secure,header,icon CRCs
- nds: a22i ".nds" directive creates target files with ".NDS" extension
- nds: direct boot: optionally bypasses ugly slow bios/firmware intro
- nds: timings: recurses cycles per scanline, scanlines per picture & per vblank
- nds: dma: moved NDS9 dma-mode bits, DS-gamecart DMA, disabled NDS7 hblank-dma
- nds: cartloader detects nds-passme images, direct boot works with diff entry
- nds: cartloader identifies NDS gamecarts by header CRC (switches NDS/GBA mode)
- nds: help: described cart protocol KEY1-commands in raw/unencrypted format
- nds: emulates firmware bootmenu, io_lists: emulates nds gamecart
- nds: lcd-core displays second screen in game window, and in debug mode
- nds: lcd-core displays second screen, lcd-core handles vram_table
- nds: allocated DOUBLE sinline_bufseg in EMP-GSET, for GBA-LCD, for 2 screens
- nds: vram viewer: displays second screen (by engine A/B buttons)
- nds: vram viewer: supports BG maps, added Engine buttons to all screens
- nds: creates second nds-machine, and dis-creates it in gba-mode
- nds: lcd: suppresses lcd_refresh_request on NDS7 machine (lcd by NDS9 only)
- nds: lcd: emulates OBJs, vram_table, variable boundary, moved dimension bit
- nds: lcd: disabled undoc green swap in NDS mode (supported in GBA mode only)
- nds: emulates ANYMEM vram bank-switching in 16K units by new vram_table
- nds: expanded NDS9 io_lists to 800h+80h (3D_Engine + and 2D_Engine_B area)
- nds: allows NDS9 firmware to read from DMA reg 40000B0h at least as dummy
- nds: added EXTKEYIN port 4000136h to NDS7 io_lists
- nds: expanded NDS7 io_lists to 800h (sound registers), plus dummy WLAN region
- nds: added new NDS9 io_list entries 400006xh (video), 40000Exh (dmafilldata)
- nds: emulates access to power managment device and touch screen controller
- nds: emulates all firmware flash memory commands (write, erase, status, etc)
- nds: emulates full SPI bus with different modes, irqs, devices etc.
- nds: help: added Power Managment Device, and SPI bus, and IPC chapter
- nds: help: added TSC touch screen chapter (touchscr, microphone, temperature)
- nds: help: added RTC real time clock chapter (port, time, date, alarm, etc)
- nds: emulates rtc real time clock, uses system time/date & own stat/alarm regs
- nds: xcept: allows NDS9 firmware to zerofill invalid ports 4000058h/400005Ch
- nds: xcept: allows NDS7 user code jump to BIOS addr 2DD4h (irq return addr)
- nds: xcept: allows ITCM high-mirror at 1FF8000h (aka 1000000h aka 0000000h)
- nds: xcept: allows bios accesses LDR/STR [3FFFFF8h], and LDM [3FFFFD0h],r0-r11
- nds: xcept: ignores IntrWait bug with R12=18h (firmware decompression garbage)
- nds: xcept: zero-irq-vector-check on NDS addresses (DTCM+3FFCh and 380FFFCh)
- nds: xcept: allows/expects nds7 shared ram at (37F8000h aka/instead 3000000h)
- nds: xcept: allows bios to execute mis-aligned 32bit write to [40001A1h]
- nds: xcept: allows bios to fill last 32K main RAM at 27F8000h (aka 23F8000h)
- nds: xcept: allows NDS9 hi_bios jumps FFFF0xxxh and FAKE_TCM 080xxxxh accesses
- nds: xcept: allows NDS9 BIOS boot at FFFF0194h to write garbage to 27E57FEh
- nds: xcept: allows NDS debug ver-style 4K mirror at 27FF000h (aka 23FF000h)
- nds: xcept: allows BIOS-"tricks" memfill/irqvect at 3FFFFxxxh (aka 3800Fxxxh)
- nds: reproduced ARM7 execution time R0*4 clks in 80x86-emulated WaitByLoop
- nds: emulates ipc fifo control/status/interrupts, and send / receive queues
- nds: redirects high ports (4100000h and 4100010h) to nds in_list & out_list
- nds: cpu2cpu emulates interrupt send/enable (used later on in firmware)
- nds: cpu2cpu provokes instant machine switch (for firmware 232EEF0h/37FFB38h)
- nds: emulates nds9 irq/swi exception execution via high-vectors at FFFF0000h
- nds: added 2nd FAKE_TCM area for firmware dtcm=3000000h (in shared ram area)
- nds: customized adjust_pc for NDS7 host for split ram at 3000000h and 3800000h
- nds: customized debug ADJUST_ADDR for NDS7 host (ram at 3000000h and 3800000h)
- nds: faked gamecart irq, relocated IF (lcd,timer,dma,sio,etc) to NDS addresses
- mds: debugger shows current machine host (NDS7, NDS9, or GBA) in statusbar
- nds: emulates FAKE_TCM at fixed/default locations dtcm=0/800000h,itcm=1000000h
- nds: mounted ARM9 engine, chained-in 2nd vals with co_machine pointer
- nds: created ANYMEM for ARM9, supporting HI_BIOS area, init ARM9 addrbaselist
- nds: created NDS9 in_lists and out_lists, emulated SQRT and DIV registers
- nds: verified all machine loops for use with 2nd nds-machine (except gba-set)
- nds: dummy feedback for CPU2CPU communication, and for ROMCTRL busy flags
- nds: mounted new ANYMEM system for NDS7 host, split area nds7 ram/shared ram
- nds: created nds7 in_lists, expanded IE and IF to 32bit, emulated firmware bus
- nds: bios loader: shows warning on invalid BIOSNDS7.ROM/BIOSNDS9.ROM checksums
- webpage: new paypal email address, and new donate page (for freeware projects)
- help: removed all "(formerly ..)" names, expanded ports from NNNh to 4000NNNh
- xed32: selectable line-wrap length (65 or 77 columns), fixed line-wrap bug
- xed32: scrollbar works with >65535 lines, hex-scroll doesn't end at chr(1Ah)
- lcd: speedup: fixed fatal "test_bg_rotated" bitmap BUG (refx/refy exchanged)
- cpu: suppressed base-writeback on NDS7:BIOS:1CD4h THUMB ldmia [r0]!,r0,r3
- cpu: bugfix: illegal opcode "arm_11_ldmib_usr_wb" acted as STM (instead LDM)
- cpu: emulates invalid "stmib [rb]!,rlist^" (userbank/writeback) (nds firmware)
- cpu: ignores misaligned thumb target address on "subs r15" (for nds firmware)
- memory: mount_system switches between GBA and NDS memory allocation & host
- memory: cleaned initaddrbasemask, new memadr_<typ>, formerly addr_<typ>
- bios: debug/disass: added complete BIOS datazones and cpuzones for NDS7/NDS9
- bios: debug/disass: added SWI auto-comments and auto-labels for NDS7/NDS9
- bios: simulates all NDS7/NDS9 bios SWIs by 80x86 code (except callbacks)
- help: bios: nds: described all new and changed NDS7/NDS9 bios SWI functions
- bios: simulates IntrWait swi4/swi5 by 80x86 code (no longer using minibios)
- anymem: moved memaccess list to vals layer (for gba/nds7/nds9 memory hosts)
- anymem: cleaned up source by splitting code into separate anym sub-macros
- anymem: exported warnings to non-macro procs, access_abort "exitm" (saves 12K)
- help: nds: added firmware flash chip, firmware header, and encryption chapters
- windows: allows break-out from emucore even if windows sound timer locked-up
- win98: returns zero on WM_ACTIVATE (to regain full keyboard focus under win98)
- power saving: HLT opcode in DOS debug/gui/emucore, Sleep(1) in Win98 emucore
- internal: recombined frameskip handlers for gmb/gba/retro versions
30th May 2005 - version 2.1b
- cpu/bugfix: logical imm8 ROR 0 (no shift, carry=same) (thanks fredrik olsson)
- debug: media lifetime window shows FLASH/EEPROM writes-per-sector statistics
- eeprom: emulates EEPROM combined with 32MB ROM (thanks jamie) (not tested yet)
- help: added specs for backup EEPROM with 32MB ROM (last 256 bytes at DFFFF00h)
23rd May 2005 - version 2.1a
- multicart: bugfixed uninitialzed initstackram mem handle (thanks oleg volkov)
- setup: added sav/sna compression enable option to files setup (debug version)
17th May 2005 - version 2.1
- multicart: remove_machine: also unloads associated ROM, unless memory shared
- multicart: load into <selected> machine; if none such: allocate new machine(s)
- multicart: cartloader target selectable (specific machine, or all machines)
- help: added various NDS chapters, 2D video, memory map & control, arm9 I/O map
- help: described NDS cartridge header & protocol with some new details
- cpu: handles CP15 system control coprocessor opcodes and Cn,Cm,N registers
- debug: disassembler supports all copro opcodes, assembler all except ldc/stc
- help: cleaned up coprocessor operand names (Pn,Cn instead P#,CRn,etc.)
- help: corrected sprites/scanline formula (10+n*2 per n pix, not 26 per 8 pix)
- shareware: changed decrypter extension (microsoft declared .prg as virus)
25th March 2005 - version 2.0g
- help: described unsupported WRAM-waitstate-control for DS in GBA mode
- help: described different gba-bios-checksum BAAE1880h for DS in GBA mode
- help: described gamepak prefetch-disable-bug (plus 2I cycles on any I cycles)
- timing: emulates gamepak prefetch-internal-clocks (effectively 0I cycles)
- timing: emulates gamepak prefetch-disable-bug (plus 2I cycles) (for rtype3)
- timing: fine-adjusted power-on scanline time (required for unstable rtype3)
- dos/vga: zoom3x/scale3x in 800x600 pix mode (non-tweaked fullscreen-style)
- dos/vga: performance indicator displayed okay also in 15bit..24bit color modes
17th March 2005 - version 2.0f
- dos/vga: changed truedacs (gui) and color_xlat_table (gba) for 64K colors
- dos/vga: alternately uses 64K colors if 32K colors unsupported (LS-563)
- dos/vga: vesa modeset bit14=1 to enable linear buf (required for LS-563)
- dos/dpmi: calls int21h/48h via int31h (win95b sound <seg> instead <descr>)
15th March 2005 - version 2.0e
- dos/dpmi: added bullshit dpmi support (for windows dos-box and arcade-box)
- dos/dpmi: discovered ability to use 4GB descriptor limit for linear memory
- dos/dpmi: discovered conventional mem at linear address zero (undoc feature)
- dos/dpmi: discovered video ram/bios at linear A0000h/B8000h/C0000h (undoc)
- dos/dpmi: uses decriptor access rights privilege level 3 (lowest, required)
- dos/dpmi: terminates by INT 21h/4Ch from WITHIN protected mode (required)
- dos/dpmi: avoids PSP/Environment descriptor values (instead segment values)
- dos/dpmi: supports relocate-able 32bit code (bloated, but required for dpmi)
- dos/dpmi: compatible with cwsdpmi (r5) and windows (95b; still without sound)
- dos/dpmi: supports slow virtual memory (if desired, on PCs with "small" RAM)
- dos: loads executable "objects" only; without help overlay (reloc side-effect)
- bugfix: fixed joypad irq-OR-mode (using only mask 3FFh bits) thanks nat ryall
1st February 2005 - version 2.0d
- dos: horizontal/vertical centering in various vmodes (by software / vram-addr)
- dos: uses linear framebuf (vesa2.0, if any, non-pagefault, fast 640pix modes)
- dos: added tweaked 256/512pix vmode horizontal-centering option (by CRT regs)
- dos: merged various video mode options into single option (scale/zoom/debug)
29th January 2005 - version 2.0c
- dos: dumm: exitmessage optionally quite & keep vmode (hidden arcadebox option)
- dos: dumm: clear sinlinebufseg on allocation (instead no$gba-this-is-asm logo)
- dos: uses hires video mode for 2 players, adjusted position for 2-12 players
- dos: fixed osshell paramblock segment adjust (must be done before downcast)
- dos: fixed 4K-page allocation/alignment (required for freedos with lbacache)
- dos: uses 640x480pix or illegal video mode 512x400pix for scale2x effect
- video: optionally scale2x (240x160pix converted to 480x320 with smooth edges)
18th January 2005 - version 2.0b
- debug: F3-key doesn't treat BLS/BLE/BLT opcodes as sub-routine-calls (BL)
- controls: re-activated helixe POV joystick signals - after some months either
- help: corrected several typos in gbatek specs - thanks to Sebastian Rasmussen
29th September 2004 - version 2.0a
- debug: fix: shutdown message immediately even if 1st/traced opcode at emu_run
- cartload: memorizes recent cartnames last 9 shown in windows version file-menu
- bios: bugfix: softreset by 80x86 code switches from thumb state to arm state
- debug: numeric expression decoder accepts uppercase hex/oct/bin in debugger
- speedup: faster cpu_arit_add_flags emulation (and cmc-less cpu_arit_sub_flags)
- debug: online assembler can create LDR=IMM if it finds match/fREE/blank memory
- debug: online assembler can "edit" existing "ldr{cond} rd,=imm" pseudo opcodes
- curious: help/ass/dis/emu: described/supported older retro ARMv1,2,3 versions
- armv5: emulated all new/changed ARMv5TE opcodes (disabled in no$gba of course)
- armv5: a22i/disassembler: (qadd/sub, mul16bit, cpsr.q, ldrd/strd/pld, vect.hi)
- armv5: help: ARMv5TE (qadd/sub, mul16bit, cpst.q, ldrd/strd/pld, mcrr/mrrc)
- debug: search menu with new quick-link goto-memory-area function (and goto pc)
- bugfix: re-fixed flash backup writes (same ebx*8 bug as eeprom, thanks celebi)
- armv5: a22i/disassembler: recognize new ARMv5 opcodes (bkpt,blx reg/imm,clz)
- armv5: help: described new ARMv5 opcodes (bkpt, blx reg/imm, clz, copro.2)
- armv5: help: described changed ARMv5 opcode behaviour (mul.cy, pop/ldm/ldr.pc)
- armv5: help: new chapter describes differences between ARMv1 through ARMv5
- webpage: added notice needing help about sick debug info specifications
- emudetail: accepts thumb BX opcode with reserved bits<>0 (suspicious warning)
9th September 2004 - version 2.0
- webpage: just being moving to http://nocash.emubase.de, added xboo screenshot
- xboo: updated standalone version, new up/download switches, header auto-fix
- cartloader: redraws debug screen (if any) moved to new cartridge entrypoint
- media: run-length compressed SAV/SNA files (simple, but better than nothing)
- emudetail: allows reading from second wave ram bank (in diag cpu data cycles)
- help: described newly discovered Halt behaviour (depends on IE AND IF only)
- emudetail: allows low power HALT to pass through even if CPSR.I=SET or IME=0
- emudetail: emulates CPU spsr bit4 being always set - even writing zero to it
- internal: removed A22i pack_dest buffer (did allocate 256K - even if unused)
- bugfix: re-fixed eeprom writes (crashed on new lifetime counters, bad ebx*8)
- debug: now also supports memory <read> breaks (thanks joe for giving the kick)
- emudetail: prevents eeprom backup mirrors at addresses>10000000h (upper 4bit)
- emudetail: emulates various bios prefetch even when not having bios rom-image
- emudetail: emulates power-up bios prefetch even when booted <with> bios intro
- help: explained "SO During Inactivity" details, added note on SIODATA32
- help: described flashcard write/erase/detection (thanks to jeff's cartlib)
- xboo: simplified pull-up ascii arts drawing in cable connection schematic
- xboo: CAUTION: changed reset signal (if any) now also drags select+start low
- xboo: automatically closes upload box on uploads only (not after downloads)
- a22i: fixed bad crash on invalid parameters in "adrl" pseudo instructions
- help: refined ascii arts for link plug/cable schematics (using underscores)
- help: added gba sp power supply/headphones info in tech data and aux chapters
- help: added gba sp case dimensions ascii arts picture in tech data chapter
- gba sp: got old SP from marcel and replaced damaged oscillator
- emudetail: emulates VCOUNT=99h on direct FLASH/ROM-cartridge start entrypoint
- xboo: flashcard write and erase (erase phase simultaneously with cable upload)
- xboo: flashcard skips writing/erasing blocks if old block did have same crc
- xboo: flashcard highspeed 16MB/sec mechanism analyses remote/local checksums
- xboo: flashcard upload rejected if missing or if too small for rom-image
- xboo: flashcard upload automatically chosen if xboo image bigger than 256K
- xboo: new utility function shows detected info (without downloading anything)
- xboo: detects type/size/presence of remote flashcarts, flashbackup, srambackup
29th August 2004 - version 1.9c
- shareware: changed .prg MIME type to "data/binary" (against "virus" filters)
- media: logs writes per sector for EEPROM and FLASH in SAV and SNA files
- controls: ignores POV if joyGetDevCaps HASPOV=0 (should fix "up/down" problem)
- shareware: added "Hello <Firstname>" in auto-generated registration emails
- media/snaps: included FLASH and EEPROM and video REFXY registers in snapshots
- xboo/help: removed notes about giveio/totalio due to built-in nocashio driver
- media: emulates 64KByte FLASH backup memory (used by Sonic, thanks Kirk again)
- bios: emulates RCNT=800Xh when booted from ROM (required for Sonic Advance)
- gui: forces "OK" and "Cancel" setup buttons (instead local language mixup)
- bugfix: even cartchipsizes were incorrectly rounded-up to double-of-even-size
- bugfix: rlu-compressed length (nocashio driver crash, and no$gba startup logo)
22nd August 2004 - version 1.9b
- shareware: how-to-buy by paypal/cash/cheque/etc txt (webpage below price list)
- shareware: got a verified paypal account (meanwhile available in germany too)
- shareware: new installation instructions in shareware registration emails
- shareware: included decrypt.com in .zip package (loader for emailed .prg)
- internal stats: shows cart CRC-32 (if any use though ultraslow with big carts)
- dos: fixed crash in loader of UPXed (released) version, nobody noticed it ;-(
- dos: faked get_or_resize_memory function (non-virtual, dumb slow rep_movsb)
- shareware: new decrypt proggy working (also compatible with DOS PE header)
- shareware: base64 attachment decrypt.prg (avoids .com/exe "virus" filters)
- help: added ascii arts GBA picture in tech data (shape, dimensions, buttons)
- xboo: uninstall nocashio - seems to have been nonfunctional in freeware 1.9/a
- xboo: download closes and deletes output file on errors/aborts during download
- xboo: download cart: displays "press START+SELECT text" (unless burst mode)
- help: media: flash backup specs (thanks Kirk Zathey for donating a Sonic cart)
- media: sram: emulates 64K area truncated to 32K SRAM size, or 0K size if none
- xboo: download at single speed burst via general purpose code in fast sram
- xboo: download displays cartridge title (or BIOS) and download size in kbytes
- xboo: download cart auto-detects cartsize, skips if no cartridge inserted
- xboo: download via separate buffer (without scattering emulation romseg)
- xboo: download switches into BURST-MODE after completion (instead dumb reset)
- xboo: download (and wait ready) can be aborted by ESC key / CANCEL button
- xboo: download bios function, download cart function, no piracy text message
- xboo: download increased bios/midikey delay from 3x15us to 4x15us (for P200)
- xboo: download wait ready function by SO=LOW signal (instead fixed delay)
- xboo: corrected silly typo: use 560 ohm pull-ups (no not-existing 570 ohm)
- shareware: inserts new decryption data in regkey (similiar fullver gif data)
- shareware: new home-use encryption proggy with three new encryption layers
- controls: ignores POV joystick signals with Helixe reg key - after 3 months
- dos: uses all available memory (instead fixed 6MB), new big page table in xms
- shareware: autogenerates random password, auto-appends password to reg emails
30th July 2004 - version 1.9a
- freeware: fixed vertical size in 3-12 player mode (with cymenubar, thanx zool)
- cheats: displays/prompts for modifiers (eg. ?? ## NN values) instead checkbox
- cheats: silly bloated large bitmap type symbols (codebreaker,gameshark,parv3)
- cheats: shows "error in line ###" on load errors, codes saved automatically
- cheats: keyb: toggle by SPC, delete by DEL, cancel button: undo recent changes
- cheats: add/edit/delete functions for code/type/comment, optionally RAW codes
- cheats/help: described codebreaker, gameshark v1/v2, actionreplay v3 (gbatek)
- cheats: interpretes codebreaker, gameshark v1/v2, and actionreplay v3 codes
- cheats: supports various decryption, changed encrypt-seeds, and crc formulas
- cheats: mastercode/on/off/invalid symbols in cheat list (doubleclick on/off)
- files.lst: new tiny icons (green and blue "A" symbols instead old 8bit carts)
- shareware: full debugger (only excluding profiler and dwarf2 and demangler)
- cheats: loads cheat codes from file, displays descriptions in cheats window
- debug: demangler resolves _(Q2)4name(3bla).other --> name::(bla::)other
- debug: demangler resolves destructors "_._4name" --> tilded "name::~name"
- debug: demangler string buffer created for sort by name and general displaying
- sound: supports backwards/decrementing dma source address (freeware elite)
- setup: disabled single-gamepak mode by default (maybe less confusing)
12th July 2004 - version 1.9
- webpage: new freeware page, new email.htm page, changed various details
- help: changed some stuff in readme.txt (mainly related to new freeware users)
- nocashio: uninstall function in utility menu (results okay,nothing-to-do,fail)
- nocashio: fixed incorrect SC_MANAGER_ALL_ACCESS and SERVICE_ALL_ACCESS values
- cartloader: removed no$gmb-mbc/rom/ramsize-relicts in cartridge header warning
- dos: bugfix: diskgetdirplain_withdrv gets "d:\" plus fpathlen-<3> chars path
- freeware: windows version screenshot to clipboard, dos version xboo & err stat
- debug: demangler displays mangled c++ labels (profiler tree & alt+l only yet)
- profiler: fixed crash on add_machine (profiler alloc killed multiplayer alloc)
- freeware: added previously missing xboo port/delay options in freeware setup
- vram viewer: fixed crash in OAM screen (happened on "prohibited" obj shape)
30th June 2004 - version 1.8b
- freeware: new error statistics window (summary of hidden bugs, quality rating)
- freeware: added menubar with various gaming functions in game window
27th June 2004 - version 1.8a
- crashfix: XPs SetCurrentDirectoryA ERROR_NOACCESS caused by mis-aligned stack
- webpage: added gba-fnt.gif and gba-cond.gif screenshots and description
- dos: crashfix ensures nested task bit cleared in unzip/dos-shell pmode_kicks
- dos: dumm version bugfixes hack mmm_text=b8000h and added "pusha" in setvga80
24th June 2004 - version 1.8
- webpage: added profiler screenshots, about box screenshot, new email address
- gui: io/vram/debmsg/profiler captions got no$gba icon (instead microsoft icon)
- email: got a new spam-free email address (******@elbinsel.de, 21st june 2004)
- profiler: path window goto optionally to "first" or "current" opcode in proc
- profiler: double-click tree/path/list item moves to procaddr (or goto button)
- profiler: minibios uses normal "add lr,=back" (instead tricked "mov lr,back")
- debug: "str rd,[sp,-4]!" logs stackinfo (alias "stmfd [sp]!,rd" or "push rd")
- internal: rlu-packed no$gba intro-picture (19K->2.5K), bugfixed rlu (nocashio)
- cpu: emulates/warns invalid ARM.10.post.indexing with W=1 (goldroad: bar.gba)
- profiler: moved setup options directly into profiler window (cyles, sub-procs)
- profiler: supports "ldr pc,[sp],4" as alias for "pop pc" (for homebrewn games)
- profiler: bugfixed path re-allocation (crashed on path deeper than 512 levels)
- profiler: help: added new profiler window and profiler compatibility chapters
- profiler: list window can be sorted by addr/name/calls/cycle columns
- speedup: symbol table sorted by address (faster profiler and debugger lookup)
- debug: bugfix: new numeric expressions decoder re-accepts uppercase labels
- dma: profiler: fifo dma by GETMEM (real mem waitstates, and profiler support)
- dma: profiler: DMAs displayed in profiler (as "sub-routines" or "interrupts")
- dma: emulates real DMA timings: 2N+2(n-1)S+2I, previously 2(n)N, (notyet 4I)
- dma: help: reverse engineered & described DMA transfer timings: 2N+2(n-1)S+xI
- profiler: displays current "path" (like tree or stacks, but with irq nesting)
- profiler: window split into property sheet tabs (tree, path, and list)
- profiler: resizeable, stores variable pref position/size of profiler window
- vram viewer: bugfix: reapplies old property sheet size when re-opening window
1st June 2004 - version 1.7h
- elf/cleanup: disksetdirz creates system directories -only- if not existing
- profiler: optionally shows total cycles, cycles per call, cycles per second
- profiler: added clear-counters buttons (resets counters without erasing tree)
- profiler: allocates separate profiling buffers for each emulated machine
- profiler: optionally raw time, with sub-routines, with/without halt+intrwait
- profiler: optionally collapses or expands all items when opening profiler
- profiler: shows procedures with missing (or overseen) return opcodes as "(?)"
- profiler: shows number of calls (NNNx), number of cycles (NN,NNN,NNN)
- profiler: arrays split into tree+path, optionally places IRQs on top of tree
- profiler: allows to return by BX Rd, or MOV PC,RD wirh Rd (LR or else)
- profiler: scans higher-level return addresses (resynchronizes if lost track)
- profiler: supports bl -> bx rd opcode combination (traget rd), esc-key closes
- profiler: shows IRQ + Entry + BIOS function names, ignores addr.0 (thumb-bit)
- profiler: supports various mechanisms for entering/leaving irq/swi handlers
25th May 2004 - version 1.7g
- profiler: watches "bx lr", "pop pc", "mov pc,lr", "pop rd/bx rd" for exit
- profiler: watches "bl", "add lr/bx", and "add lr/ldr pc" for entering procs
- profiler: tree view shows all executed (sub-) routines (still without cycles)
- nocashio: prompts to install driver on xboo upload or snespad access
- nocashio: parallel port access under win nt,2k,xp by sergey's nocashio.sys
- webpage: moved from "www.work.de/nocash" to "work.typo3.work.de/nocash"
- debug: new window shows list of all symbols (Alt+L) (sorted by name or addr)
- run: added single-frame-step hotkey (keypad-"/", in emu mode and debug mode)
- elf: removed script.txt (wasn't required at all, bug was fixed in 1.7d ;-) )
- controls: supports POV-joysticks (aka good old digital, non-analogue sticks)
- test: disksetdir: nested access error message (maybe done by multi-processors)
30th April 2004 - version 1.7f
- elf: disksetdir fatal error additionally shows windows GetLastError value
- elf: suppresses load/allocate of unused files in source info (eg. hdr files)
29th April 2004 - version 1.7e
- elf: bugfix: @@trysetdir_esi skips setdirplain on empty directory names
- elf: writes list of loaded source directories + files to file script.txt
29th April 2004 - version 1.7d
- cleanup: added pusha/popa in setdirplain procedure (maybe fixes any crashes)
- elf: suppressed rom-area warning on attempts to map fileheader to 1FFFFXXh
- elf: translates source paths "/cygdrive/x/" to actual "x:\" (nintendo tools)
- elf: optionally accesses elf as memory mapped file (avoids slow virtual mem)
- elf: optionally loads all source lines at once (slower, but maybe more stable)
- elf: moved writing " > " in source lines after load_src (which crashed strn)
- cleanup: vram viewer uses normal getmem (with anz_mem_handles updated)
- help: added note that Nintendo no longer supports Amtel-Flash (thanks doug)
- cprot: encrypted the decryption floppy disk proggy by licence.key data
- video: sets SetStretchBltMode (prevents 16 color HALFTONE on matrox megashit)
- help: fixed typo in VRAM addresses (601NNNNh instead 61NNNNNh, thanks vegard7)
- internal: displays current and desired directory on setdirectory fatal errors
- a22i: fixed bad parameter error occured with mis-aligned END (implied .pool)
- debug: new numeric expression decoder can be used in debugger (eg. ctrl+g..)
- debug: setup allows to change default numeric-input format (radix 16 or 10)
- a22i: numeric forward references working with all operators (eg. mul div xor)
- a22i: numeric default format define-able by ".radix 16/10/8/2" hex/dec/oct/bin
- a22i: numeric expression priority ordering (eg. ()=highest, *,/=med, +,-=low)
- a22i: numeric boolean operators EQ,NE,GE,GT,LE,LT or =,<>,>=,>,<=,< or ==,!=
- a22i: numeric operators MOD,MUL,DIV,SHL,SHR,AND,OR,XOR or aliases EOR,>>,<<
- a22i: supports decimal number format defined as &dNNN (even if radix not 10)
- a22i: supports roman number format defined as &rNNN (eg. &rCXXIV = 124)
- a22i: supports octal number format defined as &oNNN or NNNo or 0oNNN
- a22i: clean-up: split testvalw into separate number and operator decoding
- a22i: added new ".errif <expression>" directive (user error if non-zero)
- a22i: quoted 'txt' or "txt" opcode-operands may be longer than 1 character
- help: removed middle colon from older 32bit numbers (NNNN:NNNN -> NNNNNNNN)
- help: sys control chapter added note about forced non-sequential 128K-blocks
- help: sys control chapter added note about not-working (data-) prefetch
- help: added pseudo code for SWI 37 multiboot checksum/encryption calculation
28th October 2003 - version 1.7c
- dwarf2: bugfix: restores no$gba home directory after on-the-fly source loading
- vram viewer: vram window resizeable (graphics zoomed, text/details preserved)
- font: allows to disable patched 7x15 font in case of problems (in other setup)
- vram viewer: oam screen small user screen adjusted to exact 240x160 pix size
- vram viewer: fixed BG map scyx rectangle/wrapping (red line text scroll pos)
- vram viewer: fully suppors large BG maps (text & rotscal, drawing & details)
- dos: always updates dizzy dacs in text mode (even if true color graphics mode)
- dos: forwards xtxt mouse-pointer from mmm_text to actual vram (xtxt mode only)
23th October 2003 - version 1.7b
- sound: fixed various channel 3 wave ram size & bank selection bugs (tauceti3)
- help/sound: corrected channel 3 bank selection bits (bit 5,6 mis-exchanged)
- help/sound: corrected channel 3 sample rate (2097152Hz instead 131072Hz)
- statscr: displays sound 1-4 frequency (Hz) and Timer 0-3 frequency (Hz & clks)
- joysticks: setup allows to re-assign gba buttons by pc button-stroke in setup
- joysticks: supports more than 4 buttons (getJoyPosEx via gba-def.def file)
- dwarf2: loads source level source files on the fly only when needed (speedup)
- internal: uses hdc from BeginPaint when available instead from separate GetDC
- dwarf2: memorizes recent source line number/address (source lookup speedup)
24th September 2003 - version 1.7a
- debug font: patched WinXP triangle symbol (arrow right), GetDC after HideCaret
- vram viewer: worked on bg layers bigger than 256x256, still incomplete yet
- vram viewer: shows bg/layer mode name in bg map screens (text, bitmap, etc)
- gui: "deselects" debug font after use (maybe that "deallocates" something)
- dwarf2: skips duplicated header/include files (loading version was VERY slow)
15th September 2003 - version 1.7
- webpage: screenshots of most important debug screens allow to preview no$gba
- webpage: new layout colored boxes giving presentation of the various features
- webpage: got a new www.work.de/nocash ftp password and access rights, yipieh!
- emu: any of the below "prefetch" bullshit actually fixes super Mario Bros ;-)
- emu: recent_bios_prefetch now also set before passing to USER IRQ handler
- emu: recent_bios_prefetch set on EXIT from swi/irq (instead fake on ENTERING)
- emu: recent_bios_prefetch moved into vals area (for snapshots & multi players)
- reg: adjusted registration fee to $5000, looks more valuable... and reasonable
- emu: bugfixed stopping prescaled timers (freeze by OLD prescaler, thanks matt)
- parser: online asmbox accepts simple commands: run,reload,exit,reset,date,etc.
- xcept: allows IntrWait/r0=0 to write to BIOS:0631h (programming trick or bug)
- a22i: .strict directive insists on "label:" definitions (instead just "label")
- a22i: accepts "SWP{B} Rd,[Rn]" as alias for "SWP{B} Rd,Rd,[Rn]" (ie. Rd=Rm)
- debug: value-at-cursor for [R15,OFFS] points to $+8+OFFS (instead R15+OFFS)
- debug: nocash disassembler syntax resolves "stmfd/ldmfd [r13]!" as "push/pop"
- debug: search function can be aborted by esc; disassembling all mem takes time
- dwarf2: uses other background color for source code lines (typ. light blue)
- debug: search function scans all 32bit mem (except unused/mirrors) (old=64K)
- dwarf2: on special opcode line+NN: inserts NN-source lines (instead skip NN-1)
- dwarf2: loads & displays source files from current (elf file's) directory
- dwarf2: sourcelevel viewer allows to select custom source TAB-size in setup
- debug profiling: cpu-power-bar optionally updated only once every 1..6 frames
- debug font: changed patched 7x15 font to older/smaller ver 200h (instead 300h)
- disass: prohibits "ldrb rd,[pc,offs]" to show up as "ldrb rd,=immediate32bit"
- a22i: accepts signed 8bit/16bit data (dcb/dcw), fixed blind-data online crash
- internal: moved debugscreen "init_new_color/font" into inside of "draw_area"
- debug: bugfixed labels-ending-with-square-bracket (eg. cond break "[label]!")
- dwarf2/elf: ignores/suppresses unwanted dummy labels (eg. ".gcc2_compliled.")
- vram detail: 8bit writes to OBJ+OAM are ignored (only BG+PAL are doubled)
- dwarf2: multiline disline (can show more than 1 line per disassembled opcode)
- dwarf2: bugfix: 5-byte LEB128s values (eg. nintendo-nonsense DC,FF,FF,FF,0F)
- dwarf2: ignores incorrect too-short nintendo-bugged "prologue length" entries
- dwarf2: bugfix: skips empty include directory list, finds all compile units
- dwarf2: moving cursor on source text shows line number & filename in statusbar
- dwarf2/elf: loads symtab & strtab by section name (instead section flag guess)
- cartloader and XED-standalone: look up for file in original-current directory
- xed: hexedit mode (commandline /b switch), new minimize box in standalone mode
- dwarf2: stores pointers to file/directory names in new table (file-indexed)
- dwarf2: uses separate tables for line-address and line-info (faster lookup)
- debug: ctrl+g (goto) accepts indirect addresses such like [r4] or [label]
- hack: re-fixed data window editing (left/right digit of byte were exchanged)
- video: emulates window coordinates x1>x2 and y1>x2 (treated as x2=240, y2=160)
18th July 2003 - version 1.6c
- dwarf2: optionally displays source line numbers (not yet actual source lines)
- cartloader/elf: rejects any code/data outside of usual ROM area (with warning)
- debug/font: changed new patched font to use OUT_RASTER_PRECIS (hope it helps)
- help: added info on I,F CPSR bits on exception execution (particulay for SWI)
- cpu: bugfix: IRQs disabled by SWI opcode (undocumented in original ARM docs)
- dwarf2: loads line numbers from .debug_info, .debug_line, debug_abbrev, etc.
- dwarf2: loads the whole elf-file into RAM (maybe slower, but easier to deal)
15th July 2003 - version 1.6b
- debugmsg: added clock cycle counter operands (%lastclks%, %totalclks%, etc.)
- iomap: implemented user clock cycle counter (with manual reset button)
- help: added hyperlink to debugging chapter in the menu bar of the debug window
- help: profiling & performance monitoring chapter (clk comments, counters, etc)
- iomap: optionally merges all six tab-pages into one large "all-in-one" window
- debug: displays recent "Execution Time: nnn Cycles" in status bar on emu stop
- sound: bugfixed bit positions for FIFO A/B volume and FIFO B stereo registers
- debug: inserts space characters between all bytes in datawindow (if room)
- debug: supports non-standard windows color schemes (hack,iomap,tv,warn,gadaba)
- debug/xed: creates patched 7x15 font (proper arrows, ditherings, One's & L's)
- debug: disass scrollup/center dynamically increases walkback (eg ascii dzones)
- xed: improved vertical scrollbar (up/dn buttons, up/dn keys, thumb dragging)
- debug: disass shows datazones as 0NNh/0xNN (old=NN), uses best-match 2^N width
- debug: disass shows jmp direction (up/down/right arrow for back-,forward,call)
- debug: disass shows true/false if program counter points to conditional opcode
- debug: clock cycle comments (normal, detailed formulas, resolved clks, sum)
- debug: shows unused/unmirrored memory areas as garbage (instead mirrored data)
- debug: codewindow horizontally resizeable, 60..120 columns (old was 60 fixed)
- debug: codewindow cursor up & pageup avoid hangup on wraps from FFFFFFFF to 0
- debug: disassembler resolves exception vectors (at address 0..18h) as labels
- help: described undoc bios functions HardReset, CustomHalt, GetBiosChecksum
- xed: xed setup settings are now actually loaded/saved to/from no$gba.ini file
- xed: new options allow to explode/collapse TABs automatically on load-/saving
- xed: new option allows to save backups as "\recycled\xed_bak.~nn"
- xed: assembler/compiler compatibility: bestfill TABs suppressed in quoted text
- setup: hides the "?" question mark in the caption of the setup property sheet
- help: fixed chapters with 1st letter "K" in index (ie. Keypad instead "eypad")
- xed: F8+T truncates ending spaces, F8+T/M recover curlinadr,blockbeg/end etc.
23rd June 2003 - version 1.6a
- xed: aside from TABs, F8+T also collapses CRCRLF as CRLF, explodes LF as CRLF
- hotkeys: F5,F6 toggles FIFO A,B sound, Shift+F1..F5 toggles BG0..3,OBJ layers
- hotkeys: added help emulation hotkeys chapter, changed SnapSave=F8 (old=F5)
- cpu/timing: emulates sequential/nonsequential gamepak cycles (LDM/STM opcodes)
- a22i: bugfixed Thumb/STMIA opcode (has been badly assembled as LDMIA instead)
- setup/xcept: added <enable> all warnings option (additional to disable & user)
- setup: memorizes recent screen xy-position of vram viewer and i/o map windows
- aboutbox: added email address in about box again (commercial/fullversion only)
- xed: somewhat added F11-key setup screen (most xed options still not working)
- xed: somewhat added vertical scrollbar (more or less basically half working)
- xed: somewhat supports selecting (onscreen-) text by mouse (left button+move)
- xed: new commandline option allows to use XED as RAW editor (no$gba /x fname)
- xed: 32bit version supports column-block copy to cursor, cut/copy to clipboard
- xed: fixed block-read (and paste) towards xloc after end of line (spc padding)
- xed: additionally supports mainstream clipboard cut, copy, paste functions
- xed: imported and re-written DOS-XED help text (about, hotkeys, cmdline, etc.)
- xed: allows to access help contents/gba/cpu/xed-specs from inside of editor
- screenshot: fixed bmp header filesize entry, fixed PRNSCR hotkey in debug mode
- screenshot: optionally copies screenshot to clipboard (instead saving to file)
- debug: changed vertical size to max 120 lines (instead old dos-style 60 lines)
- debug: allows F3-key to stepover HALTs (ie. STRB [4000301], runs to next line)
- a22i: accepts "XOR" as alias for "EOR", accepts "CALL" as alias for "BL"
- a22i: accepts thumb-style shortform "ALU Rd,Imm" as alias for "ALU Rd,Rd,Imm"
- debug: combo-input boxes dropdown editing behaves more like nocash DOS version
- debug: toolbar window (for F3/F7 Trace, GBA/ARM Specs, Reload Cart, Edit File)
- vram viewer/bg map screens: bugfixed palette HEX-values & added "BGP" text
- help: added note that 8MB ROM exists (used by zelda) (cartridge rom chapter)
- help: described game code ("A" is for ABC, most people believed it's for AGB)
- debug/stack/snap: stack usage info loaded/saved in snapshot files
- debug/stack: displays stack usage in stack window (horizontally resize-able)
- debug/stack: moves cursor to BOTTOM of window (used area) (eg ctrl+g,emu-stop)
- debug/stack: logs stack usage in memory (on PUSH/STMFD SP!, and on SUB SP)
25th May 2003 - version 1.6
- help: described undocumented behaviour of "unused bits" in SIOCNT and RCNT
- irq: instantly executes pending IRQs when enabled in CPSR.I (via MSR or SPSR)
- irq: instantly executes pending IRQs when enabled in IE or IME
- link/rcnt: RCNT LSBs also in multiplay mode (input current SC,SD,SI,SD state)
- link/rcnt: slave GENERAL PURPOSE mode reflects proper SD to MULTIPLAY master
- debug: re_read_io for siocnt/rcnt
- colors: emulates real blurred color-mixing (same as CGB, but different ramp)
- link/performance: emu-speed meter updated only when ALL gba frames ready
- link/biosless-multiboot: transfers header data to slave wram (for fzero ID)
- link/biosless-multiboot: allows repeat 620Y->720x endless (for fzero startkey)
- link/biosless-multiboot: allows repeat 6200->720x endless (instead max x64K)
- multiplay/biosless-multiboot: returns send-data also as well to master
- multiplay/biosless-multiboot: forces slave in 115k multiplay mode after boot
- multiplay/biosless-multiboot: always SD=good (regardless of slave siocnt)
- multiplay: bugfixed all-gba-ready SD=good (old version reversed siocnt / rcnt)
- multiplay: emulates timing depending on number of slaves, proper slave busybit
- dos: truecolor - text cursor, mouse arrow
- dos: truecolor - supports 15bit/24bit depth (game screen & debug text output)
- dos: copyprot fullversion password prompt after first-time installation
- dos: copyprot/loading fullversion with cartridge and alpha blending support
- dos: redef keys setup supports L+R buttons, and redefkey merged with cpc/msx
- sounds: 2nd may: 1st time tested stereo, bugfix: exchanged ALL left/right
- colors: 1st may: 1st time tested color emulation on color monitor/color mode
- dos: supports wide 256x200 pixels low resolution emulation mode optionally
- dos: virtual vram page number working okay after screen resolution switches
- p200: nocash project gets commercial - this version was made on a pentium
sucks 200MHz with bloody color monitor and plug'n'wait stereo sound card
1st May 2003 - version 1.5b
- xboo: changed default speed to medium/medium (more stable with normal ports)
- debug: "set register" function moved into online assembler (without ctrl+r)
- cartloader: reload-cartridge hotkey (ctrl+r) (formerly used as "set register")
- elf: resolved thumb/arm zones as far as information present (in symbol table)
- elf: loads executables by normal <program> headers (which must be valid exist)
- setup: new defaults: warnings disabled, game window autodestroyed with debug
- vram viewer: displays "tile/map"-info for bitmaps (addr, depth, enlarged tile)
- vram viewer: unused BG layers blank filled (eg. BG 0,1,3 in bitmap modes)
- vram viewer: displays bitmaps (current frame as bg2, frame 0+1 as tiles 1+2)
- debug: replaced '>' program counter symbol by square box symbol (8bit charset)
- debug: input boxes bugfixed for register plus offset (eg. ctrl+g, "r7+10")
11th February 2003 - version 1.5a
- link/help: noted incoming master zero-data (SI=GND) for FAST-ONE-WAY uploads
- link/help: added old'n'new / socket'n'plug schematics in aux link port chapter
- link/normal: bugfixed internal clock rate, bugfixed 32bit data clock rate
- link/normal: supports FAST-ONE-WAY normal-mode upload with multiplay-cables
- link/setup: added new "multiplay" cable type option (and automatic cable type)
- link/setup: link strategy option split into single pak + cable type options
- link/multi: slaves timing synchronized to master timing
- link/multi: slaves BUSY bit automatically set/reset by masters START bit
- link/multi: casts [12Ah] send-data from all units to [120h..126h] of all units
- link/multi: fast instant multiboot transfer for multiplay mode respectively
4th February 2003 - version 1.5
- webpage: added some more detailed notes about discontinued freeware version
- bios: automatically uses 80x86 code if GBA.ROM not found (not accurate though)
- link: reapplies master as dummy-slave-owner when adding/resetting a new slave
- link: warning on missing multiboot entrypoint, or on non-zero reserved field
- link: ignores warning about bug in original bios-intro slave boot procedure
- link: emulated biosless SLAVE multiboot code (required if GBA.ROM is missing)
- link: forces fast instant 80x86-code multiboot if bios-intro disabled in setup
- bios: emulated SWI 37 MultiBoot by 80x86 code (optional speedup instant xmit)
- bios: emulated SWI 31 MidiKey2Freq by 80x86 code (for optional small speedup)
- link: tested single gamepak with new diag.a22 multiboot function (normal mode)
- help: corrected swi 37 multiboot (r0 instead r7)
- link: single gampak link option (cartridge rom locked out in slave units)
- freeware: discontinued freeware version upon crackers request - cu good bye
15th January 2003 - version 1.4c
- dos: arjzip-preview rejected except in f12-menu (eg. not editfile,assfile,etc)
- cartloader: saves old battery/eeprom data to <oldcartname>.SAV instead newname
- cartloader: deallocates old ROM and saves SAV (thanks matt, also snaploader)
- dos: sound engine initial sampbufhead=10 (instead =2) avoids DMA overrun noise
- debug: f8-key: run until current subroutine ends (eg.next higher POP PC/BX LR)
- dos: sound emulation (sound blaster, pc speaker, covox/lpt, gravis ultrasound)
- dos: faked newint03 recovers old interrupt enable flag, added cpu detection
- dos: also hooks smooth 1024hz RTC timer INT70 (with realmode es:bx expire flg)
- debug: shows used GBA CPU time vs free HALT INTRWAIT time (regs/bar + f10/nn%)
- dos: no$gba.exe may be renamed, cpsr flags displayed, stack x-width adjusted
4th January 2003 - version 1.4b - DOS related only - first DOS version
- dos: internal memory (de-)allocation manager (supports best-fit allocation)
- dos: exeloader supports upx'ed progdata (working relocation and decompression)
- dos: keyb and timer interrupts double-hooked in protected mode and real mode
- dos: raw-dos/extended-mem A20 enable (not sure if required EACH pmode_kick?!)
- dos: xcept warning messages in dynamic textboxes with automatic line wrapping
- dos: upx 32bit/pe help text overlay de/compression (and max compress size>64K)
- dos: also working in raw dos mode (ie. without vcpi/emm386 interface)
- dos: keyboard game controls 32bit interrupt hooked within int descriptor table
- dos: hires 640x480 detects & supports VESA bios/driver or tseng ET4000 chipset
- dos: includes 16bit loader for 32bit mainprog as 'stub' directly in no$gba.exe
- dos: virtual 32bit vram addressing (selects 64K vram banks upon page faults)
- dos: successful exitback from 32bit to dos with clean vcpi/xms deallocation
- dos: 32bit/exe working & alive with 16bit/dos!! (mem alloc, filesys, dos INTs)
- help: added note that KEYCNT interrupt is not suitable for normal user input
- help/webpage: removed $1000 single user licence (there was no real/commercial
interest, except that a lot of kids believed that it was addressed to gamers)
14th December 2002 - version 1.4a
- dos: started loader.exe, loads the 32bit exe, with old viewpoint pmode code
- video: supresses un-rotated bitmap drawing if refxy was rewritten within frame
- i/o map: resolves curr scanline (vcount) and irq scanline in gmb LY/LYC terms
- xcept: additional warning info (cpu/irq/dma, read/write/jump, target addrress)
- help: added typical minimum/maximum memory sizes in lcd vram overview chapter
- video: fine-adjusted scanline drawing time in relation to display DMA/IRQs
- dma: fixed [regpc] prefetch emulation for dmasad=unused memory (mattdeadbeef)
- gui: small 5x12pix font uses APP850.FON if DOSAPP.FON doesn't exist (486micha)
5th December 2002 - version 1.4
- help: uploaded second standalone version of gbatek docs (txt & htm format)
- eeprom/sram: excluded eeprom in cutdown version (cutdown supports sram only)
- help: added note about internal bg reference point registers (rotscal chapter)
- video: rotscal uses <internal> refxy, fallback on <rewrite> (1000 thanks matt)
- video: truncates TEXT TILE MEMORY to max 64K (wraps 601XXXXh to 600XXXXh)
- video: truncates ROTSCAL BG MAP to max 64K (wraps 601XXXXh to 600XXXXh, matt)
- eeprom/sram: initialized on loadrom (FF-filled), loaded/saved to .SAV file
- rom: emulates garbage reads from unused area (that is not mirror of ROM area)
- help: updated WAITCNT description, moveed Cart Header into Cartridges chapter
- help: new chapters about cartridge ROM,SRAM,EEPROM (and briefly Flash,DACS)
- help: revised the 80000A0h-8000FFFh multiboot/slave copy-protection text
- xcept: renamed "Address out of range (mirror)" into "Invalid or mirrored addr"
- eeprom: emulated serial external backup eeprom, eeprom bus-width auto-detected
- setup: added backup media option: none, auto, sram32k, small/large eeprom
- sram: emulated 16/32bit read/write to/from 8bit SRAM (with optional warning)
- setup: replaced the silly oversized/textless sample-rate trackbar by combobox
- dma: step-by-step transfer (slower, but handles bad addresses/range overflows)
- 26 Oct 02: downloaded other EMUs, 28 Oct 02: purchased Fzero+SuperMarioAdvance
- i/o map: displays banked CPU registers (irq,svc) (or usr if cpsr=irq/svc)
- i/o map: displays name of current SIO/RCNT mode, displays WRAM 256K waitstates
- i/o map: displays WS1,WS2, bugfixed WS0 bit position, moved to "Timer" screen
- i/o map: displays internal/current DMA sad/dad, displays greenswap register
- i/o map: subclassed DMA Timing=3 for DMA0-3 (reserved,fifo,fifo,video capture)
- help: minor changes to unpredictable things chapter (ROM,SRAM,UNUSED mirrors)
- cpu: emudetail high-memory 10000000h-FFFFFFFFh emulated as unused (no mirrors)
- io: emudetail writing to greenswap (port 002h) strips unused bits mask 0001h
- debug: animate (repeated trace) stops on debug warnings (eg. suspicios opcode)
- xed: during scrolling forces statusbar UpdateWindow (eg. PgDown line-numbers)
- win31/win95+explorer: forcefully adds 5x12 terminal debug font (dosapp.fon)
- win31/compatib: processes WM_KEYDOWN directly instead using CreateAccelerator
- win31/compatib: uses SetTimer/18.2hz if timeSetEvent/1024hz failed/unsupported
- win31/compatib: draws cpu-flag checkboxes <mirrored> by <SetDIBitsToDevice>
- win31/only: redirects metrics SM_CXYEDGE (3D, 2pix) to SM_CXYBORDER (1pix)
- win31/only: uses WM_RBUTTONUP to simulate WM_CONTEXTMENU (right mouse button)
- win31/only: debug windows scrollrange reduced to max 15bit (instead 16bit)
- win31/only: uses exact ysize for setup combo boxes (doesn't have auto-adjust)
- win31/only: suppresses additional/unsupported fileselect template (cart/snap)
- win31/only: simulates LB_SETCOUNT by repeated LB_ADDSTRING (files.lst menu)
- win31/only: debug font uses ANSI courier new (doesn't have OEM courier new)
- win31/bugfix: fixed unsaved EDI screen-dest for XED double-keys (eg. Ctrl-K,B)
- win31/bugfix: data/code splitter ReleaseCapture(-N/A-), apply only if captured
- win31/bugfix: added ReleaseDC for each GetDC (device context 'memory' leaks)
- win31/bugfix: fixed missing pusha/popa in hack/splitter/xed/game_class_procs
- internal: cleaned up hdd (now 150 MB free space!), renamed path of no$-project
- dos: reached zero linker errors, linked non-relocatable (exe is raw code+data)
- idiag: internal diagnostics screen shows size of currently loaded cartridge
- dos: moved vram-screen-select to headline (more room), palette and oam screens
- dos: 640x480pix vram viewer displays user screen, bg maps, bg/obj tile viewer
23rd September 2002 - version 1.3b
- help: added note about SWI 01h RegisterRamReset dispcnt destroyed/forced blank
- palette viewer: displays R,G,B intensity bars (to the right of R,G,B values)
- oam viewer: displays rot/scal selection,parameters,address, displays x/y-flip
- oam viewer: displays all 3x16bit attr/dat values (directly as stored in OAM)
- bg map viewer: marks unused/disabled BG layers by diagonal red-line
- tile viewer: user selectable depth (either for ALL, or only for UNKNOWN tiles)
- palette viewer: displays 16bit color definition (additionally to R,G,B values)
- tile viewer: if all used tiles in a row are same depth, used for the whole row
- tile viewer: if all used OBJs are of same depth, used for unused OBJs also
- tile viewer: if all used BG tiles're same depth, used for unused BG tiles also
- tile viewer: autodetects depth+palette of used tiles (by examing bgmaps+oam)
- tile viewer: merged 4bit and 8bit tiles in one screen (8bit tiles stretched)
- tile viewer: new option for masking BGMAP/BITMAP areas in tile viewer
- tile viewer: removed old 8bit gameboy related options, better tile-details
- tile viewer: autodetects vram/tile usage (depth 4bit, 8bit, bg-map, or unused)
- tile viewer: created 3 tile screens (each representing 32K out of 96K vram)
- font: removed small 5x8 pix no$gba.fnt, uses 5x12 terminal/dosbox font instead
- oam viewer: bug fix: now invalidates all OBJs during running emulation
- oam viewer: shows currently selected OBJ enlarged (drawn at actual size x2)
- oam viewer: shows OBJs larger than 8x8 pixels (drawn at best fit in oam map)
- dos: cartloader warnings working in 80x25 text format (xboo-like dynamic box)
- dos: 1st-time built without import32.lib, reduced linker errors from 80 to 12
- help: corrected SWI 0Ah ArcTan2 (two parameters, X and Y, thanks Randy Linden)
- keyb: fixed keyboard accel entrysiz (6 instead 5) (showed up as stuck b-key)
- disass: indicates thumb code by drawing (T) in symbolic mode, ie. <addr> (T)
- debug: also displays irq/swi/reset/debug-handler addresses as "bios-labels"
9th September 2002 - version 1.3a
- debug: cursor right/data follow (eg. "ldr r2,[r4,8h]" --> DATA window to r4+8)
- debug: displays SWI function-names as "bios-labels" (if symbolic info loaded)
- debug: displays "longlabels" in statusbar (if code window abbrev as "longla+")
- internal: killed separate "ass" arm assembler file (merged with "ext" pack)
- help: added notes about elf file support in symbolic debug info chapter
- dos: added dos-style xboo/multiboot upload box (height increases dynamically)
- vram viewer: oam screen displays all 128 OBJs, uses <gba-ratio> game screen
- snapshots: loading+saving (uncompressed though) (including multiple machines)
- cartloader: new warnings on missing rom-entry-point, or bad fixed-value-96h
- video: uses VCOUNT only (removed internal sinline_ly/sinline_adr variables)
- sound: added previously missing 'eintcount' (caused dirty timing-accuracy)
- cpu/except: fixed the new jump-range warning (didn't worked at all, whoops)
- screenshots: uncompressed 8/16/24bit truecolor bitmaps (instead 8bit GIFs)
28th August 2002 - version 1.3
- help: first-time uploaded standalone version of gbatek docs (txt & htm format)
- help: removed some question marks, moved "cpu usage" info to other chapters
- video: emulates forced blank (display disabled, the screen becomes white)
- intro: displays no$gba picture in small game window on startup (dumb bitmap)
- xcept: new hotkey (ctrl+e) to enable/disable all warnings, shown in statusbar
- cpu/xcept: suspicious opcode warning (opcode 00000000h, ANDEQ r0,r0,r0 ZF=0/1)
- fullprot: password box repaired (showed up more than daily on some computers)
- bios: optionally emulates bios by 80x86 code (fast,less accurate,except sound)
- i/o map: deciphered bios irq flgs, fixed bit10 fifo timer select (16bit value)
- dos: added dos-style i/o map screens + values (toggled by TAB in fullscr mode)
- i/o map: re-formatted video page (detailed window/special effects layer bits)
- help: updated color special effects chapter (various details, corrections...)
- a22i: supports ".fill length[,size[,filldata]]" only size=1=byte works though
- irq/xcept: added warning upon uninitialized IRQ vector (ie. [3007FFCh]=0)
- i/o map: fixed aaaa,bbbb,cccc,dddd type values (bug was aaaa,bbbb,bbbb,aaaa)
- breaks: membreaks [adr]!/? also working in I/O area (instead normal mem only)
- minibios: break requests delayed AFTER halt/intrwait (now also in minibios)
- minibios: fixed built-in bios SWI 4/5 (now pushes LR and functions exchanged)
- cpu/xcept: jump address warnings (jumps into bios/io/vram/sram/unused/mirrors)
- cpu/xcept: suspicious opcode warning (LDRT/STRT, and opcode 0000h=LSL r0,r0,0)
- cpu/xcept: warning if loading mis-aligned ARM address into R15 by ALU ops
- cpu: clock cycles for thumb ADD/MOV with Rd=R15 (slower as normal MOV/ADD)
15th August 2002 - version 1.2e
- bios: xboo/standalone version includes new download-gba-bios-to-file function
- gui: new option automatically place game window in upper-right of debug window
- gui: changed size of small game window in 5x8pix font mode (width/2, height/2)
- vram viewer: fixed y-position of red box (scrolled area in bgmap screens, jon)
- setup: fixed player#2..12 keyboard setup (mess-missed L/R buttons, thanks jon)
- dos: started working on dos version (win/exe with dos-style GUI parts working)
- video: emulates semitransp objs (still not perfect: allows OBJ-to-OBJ transp)
- debug: code & data scrollbars working (range excludes unused memory/mirrors)
- bios: warning if incorrect gba bios version (eg. older incompatible prototype)
- video: fixed special effect bug brightness down (and up) (thanks matt)
5th August 2002 - version 1.2d
- help: added cartridge/multiboot header overview (summary, one line per entry)
- help: corrected cartridge header KEY-number entry 09Eh (it's not a palette)
- sym/elf: displays labels in "ldr Rd,=Imm" and "add Rd,=Imm" lines (pool/adr)
- elf: loads labels from symtab/strtab (similiar .sym, but without tmb/arm/data)
- elf: cartloader loads elf binaries (apparently used by intellectual c coders)
30th July 2002 - version 1.2c
- arj/zip: cartloader works with directories (eg. Folder/File.ext -> File.ext)
- internal: simplified color version vram viewer (always 16bit depth internally)
- help: noted that Bg/ObjAffineSet use only 8bit angles (lower 8bit ignored)
- video: emulates color special effects (alpha blending, brightness up/down)
- help: window description (x2, y2, priority, master/enable bits, obj window)
- help: updated description of bitmap modes (bg2, rotscal, 8bit transp, obj 16k)
- sound: fixed 8bit writing to MSBs of SOUNDBIAS register (used by bios intro)
- video: emulates window 0 and window 1, obj window, and outside of window(s)
- video: emulates transparent BG color 0 also in 8bit bitmap mode
- video: simplified all scanline drawing to 16bit depth, mono greenswap working
- sio: emulates master bit and slave id number in multiplay mode
- sio: emulates normal mode SI input (opponents SO), fixed 8bit STRB [SIOCNT+0]
- help: corrected dma description, added video capture dma, wait 2 cycles note
- dma: emulates "video capture" dma (dma channel 3, start timing 3)
15th July 2002 - version 1.2b
- help: updated dma/fifo sound description (signed 8bit data, 32kHz resampling)
- help: corrected description of soundbias register (16MHz PWM, thanks aleksi)
- sound: bias level emulated (allows "manual" sample output by writing to 088h)
- sio: simultaneous emulation working (machine switch, 8bit/32bit normal link)
- sio: add/remove_machine working (multiple machines memory de/allocation)
- help: fixed bugged HLP/HTM bold headlines (eg. mkno$emp >>062h - SOUND1CNT_L)
- help: updated swi/bios description of Division, Decompression, IntrWait
- help: described GBA memory access time in Memory Map & System Control chapters
- help: described S+N+I data+code+jump cycles/waitstates in CPU Cycles chapter
- help: described undocumented "green swap" feature I/O 002h/bit0 (thanks shawn)
- video: emulated "green swap" feature (15bit/24bit color only, not 8bit mono)
- io: emulates unused fragment zero-readback eg. 08Ah, instead prefetch eg. 08Ch
- cartloader: blank-pads unused mem after file end (eg. 45K file in 64K buffer)
- breaks: fixed [200E000]! being badly remapped as [200C000]! (gmb echo relict)
4th July 2002 - version 1.2a
- controls: adjusted stick0/stick1 keystroke bits for GBA keyinput register
- controls: enabled stick0/stick1/snespad controls (been somehow outcommented)
- help: described undoc register 800h default/fastest 256K WRAM waitstates
- cpu: tested+fixed LDM+STM amod IB+DA indexing offset 4 (instead of n*4)
- internal: cleaned up io-core, removed relicts, ensured vals-data alignment
- tracing: processes "events" ie. vcount, timers, etc. are updated during trace
- debugmsg: added %r0%,%r1%,..,%r15% parameters, and %pc%,%lr%,%sp% aliases
- xcept: ignores another bug in the gba bios (memcopy instead memfill in intro)
- keyb: default L/R-Buttons changed to Left/Right-Alt keys (or L,R keys 2nd set)
- cpu: emulates variable 256K-WRAM waitstates (undoc "wramcnt" register, 800h)
- cpu: emulates variable ws0,ws1,ws2,sram game pak waitstates (waitcnt register)
- xcept: added mem 'range' warning message on reads from 0-3FFFh (readprot bios)
- debug: del-key in code window clears source code breaks (.brk --> nop)
- timers: fine-tuned timer start delayed 2 cycles, timer stop delayed 1 cycle
- i/o map: re-freshed timer counter registers after emu-run and tracing
- cpu: always uses time accurate GET/PUTMEM in ARM mode, too (not only for I/O)
- cpu: refixed thumb POP PC (bugged when used more accurate GETMEM stuff)
- a22i: recognizes "PUSH/POP{cond}" as ARM-alias for "STM/LDM{cond}FD [R13]!,"
- help: updated arm+thumb summaries (detailed syntax, cycles, flags, expl.)
- help: thumb chapter added execution time, and affected flags for all opcodes
- cpu: emulated exact S,N,I code/data/jump cycles for all thumb+arm opcodes
- a22i: accepts // as alias for CRLF (eg. "dcb 1,2 // dcw 1234h" in one line)
26th June 2002 - version 1.2
- fullprot: decrypter inserts username (clean and x-times encrypted in exefile)
- fullprot: added decription picture (thanks to ina+ulf for scanning the pic)
- fullprot: key-generator creates custom decryption proggy with username encoded
- fullprot: activated first-time-installation password box / re-removed hellobox
- regkeys: moved fullprot @@abs values into newer registration key files
- hellobox: added (previously empty) first-time hello box text in fullversion
- fullprot: new 6/2002-@@move/xchg_stuff in fullversion encrypter/decrypter
- help: added protection chapter, describes cutdown/fullprot, misuse warning
- help: rewritten the registering chapter, cleaned up the contents chapter
- help: described the new local+global break conditions (similiar no$gmb breaks)
- vram viewer: displays rotation/scaling bg maps (8bit map entries, 256 colors)
- cartloader: removed tetris as default romname
- f10key i/o map screen: fixed oversize width of tabcontrol and fifo groups
- exe/upx/i32: removed -9 switch, it's been much too slow on this computer
- cpu/io: supports thumb-LDM/STM to I/O area, get/putmem macros (star shooter)
- disass: hides LDR/STR-zero-offsets, ie. [r5,0] displayed as plain [r5]
- debug: cursor-right on SWI opcode moves directly to the SWI BIOS procedure
- debug/disass: status bar displays [address]=content for ldr/str/swp opcodes
- disass: fixed undisplayed "b" in "swpb" opcode (missing inc xdi)
- disass: optionally shows native ARM/C64-style syntax (fancy {rlist}, #0xHex)
- a22i: "..ds", ".space", and "defs" aliases for "%" (sic), db/dw/dd for dcb/w/d
- a22i: "x=n", ".equ x,n", and ".define x n" aliases for "x equ n"
- a22i: ignores .global/.extern/.thumb_func, and quotes in .include "filename"
- a22i: redirects "#directive" into ".directive"
- a22i: accepts ASL as alias for LSL, and "LSL Rd,Imm" for "LSL Rd,Rd,Imm" (etc)
- a22i: new conditions ".ifdef" and ".ifndef", .bss/.text alias for .data?/code
- a22i: fixed nested ".else", and fixed recovering from unexpected ".endif"
- a22i: treats "@@@" and "@ ..." and "@*" and "@..." as ";..." comments
- cpu: accepts meaningless LDR|STR{B}T as alias for LDR|STR{B} (1bitBallWall)
- a22i/edit: filemenu shows names with extension .S for "hll/c-based asm coders"
- a22i: recognizes "align" alias for ".align" / each without param as ".align 4"
- a22i: fixed thumb mode "add/cmp RdHi,op" (xored bits to eax instead opcode)
- disass: resolves "sub Rd,r15,disp" as "sub Rd,=addr" (negative relative addr)
- help: added mailing address and bank account in registering chapter
- a22i: automatically inserts a literal .pool at the end of the source code file
- a22i/help: new chapter about asm directives, syntax, pseudo instructions, etc.
- a22i/help: new chapter about online assembler and a22i source code assembler
- a22i: recognizes "code16" and ".code 16" as alias for ".thumb" (..32 for .arm)
- a22i: recognizes ".end" as alias for "end", and defb/defw/defd for dcb/dcw/dcd
- a22i: recognizes .ascii/.byte/.hword/.long as aliases for dcb/dcb/dcw/dcd
- a22i: accepts negative immediates for ADD/SUB and CMP/CMN (opcodes exchanged)
- a22i: recognizes "adr Rd,Imm" as alias for "add Rd,=Imm" (aleksi source)
- a22i: recognizes "ltorg" and ".ltorg" as aliases for ".pool" aka "..ltorg"
- a22i: re-fixed blindlabel lockup when entering dcb/dcw/dcd in online assembler
- xcept: allows to access -all- 16bit I/O ports as 32bit ports (RCNT, etc.)
- xboo/no$gba: uses msctls_progress<32> for win2000 (no$msg/xboo/bung/fcomp/x51)
- xboo/no$gba: added missing burst boot description + sample code in help text
- xboo/standalone: added new config file xboo.cfg (for default port/delays)
- xboo: software "pull-ups" and delays (optionally for cables without resistors)
- xboo: speedup, optimized chksum/transfer program code (for real CPUs<=66MHz)
- xboo: slowdown, delays after each transfer-word (for lame CPUs>=100MHz)
- xboo: timings, uses i/o waitstates for timing, fully cpu-speed independent
- breaks: global and local break conditions working (eg. r0=100, r2>=r0, etc.)
31th May 2002 - version 1.1c
- disass/sym: faster insinlist for larger amounts of datafields from sym file
- breaks/help: added chapter about Breakpoints in Debugging help text manual
- breaks: cpu-core handles [2000000]! and [2000000..20001ff]? style mem breaks
- breaks: allows to define conditional breaks with 32bit addresses (ctrl+b)
- internal: recombined z80/gui and gmb/gack family insin/clr/delin/list code
- disass/sym: loads arm/thumb info, and data fields from debug info .SYM file
- a22i: stores addresses of byte/word/dword/ascii data fields in .SYM file
- a22i: stores addresses of arm/thumb program code memory fields in .SYM file
- disass: home-key moves to "r15 AND 0e000000h" (typically begin of RAM or ROM)
- disass: ignores non-user-memory labels/symbols (eg. "width equ 30")
- disass: implemeted CPU state zones (arm/thumb), pre-def BIOS cpu state areas
- disass: supports 32bit "dcd" datazones
- disass: multiboot header RAM datazone (cutdown & fullversion with <=256K ROM)
- disass: resolves GBA bios datazones, treats I/O+palette+OAM as DCW datazones
- video: speed-up by using color xlat macros instead of call's to procedures
- vram viewer: oam screen supports laser pointer/red box at signed x/y positions
22nd May 2002 - version 1.1b
- debug main screen: added separate bg0-bg3 in vram viewer "window" menubar
- vram viewer: some new GBA details in OAM screen (instead old no$gmb relicts)
- video: emulated BG mosaic/vsize (tested ok) and OBJ mosaic/vsize (not tested)
- bugfix: fixed bad lockup that occured in v1.1a public cutdown versions
- help: added note that bios RegisterRamReset/clear-OAM does NOT disable OBJs
18th May 2002 - version 1.1a
- webpage: uploaded "Magic Floor" puzzle game with sample source code included
- a22i: implemented .code and .data? directives (aliases for old .rom and .ram)
- bios/xcept: ignores swi=1/bit5=0 garbage write to unused io-port 114h
- fullprot: created new/gba reg keys, fullversions run only with key
- fullprot: improved registration key code confusion
- help: updated the description of the cutdown version
- video: emulates not-displayed OBJ tile numbers 0-511 in bitmap BG modes
- sound: fixed lock-up on dma-sound-output when sound output disabled in setup
- fullprot: improved protection of encrypted full version (forcefield/tables)
- bg gif: draws background gif at 8bit/pix (even if emu uses 15 or 24 bits)
- vram viewer: created separate map-screens for each bg layer bg0-3
24th April 2002 - version 1.1
- video: fixed bg mode 0 double map-ysiz (shr eax,6 (instead 5) for 4000h->100h)
- cutdown: split into separate sound and color versions as additional protection
- io/dma: emulates address reload upon dma re-start (bios dma-fifo intro sound)
- sound: emulates digital FIFO/DMA sound channels (not sure if volume+stereo ok)
- i/o map: bldcnt deciphered (not sure if there may be only ONE target each ?)
- i/o map: deciphers mosaic bits, and bldalpha and bldy (eva,evb,evy)
- help: re-sorted bit numbers in sound chapters (incrementing 0..15 ordering)
- help: added note about buffer synchronization in DMA/FIFO sound chapter
- i/o map: displayed channel 3 waveram banks, deciphered sound control bits
- i/o map: deciphers keycnt irq enable/condition bits
- i/o map: deciphers waitcnt bits, displays bios irq vector [3007FFFh]
- io/timers: added auto-reload for count-up timers
- io/timers: changed timer IRQ address to 202hex (instead 202 decimal)
- io/timers: repaired badly inverted count-up bit
- internal: changed dma/timer macro param ch to chn (ch could be a 8086 reg)
- sound: implemented "FM" channels 1-4 (from no$gmb, with GBA modifications)
- internal: replaced cs32:[gba_intcount] by vals [gba_eintcount] (multi gbas)
17th April 2002 - version 1.0e
- video: added init_color_xlat_table at startup (fixes initially black colors)
- io/dma: emulates vhblank & hblank dma transfers, and repeated dma transfers
- io/dma: emulates mixed incrementing/decrementing dma, and increment-reload
- cpu: fixed thumb ror flags (80x86 ror opcode didn't support zero/sign flags)
- cpu: emulated misdocumented mull V-flag (apparently -same-, not "destroyed")
- cpu: repaired jump addresses to muls/mlas/umulls.. (instead mul/mla/umull..)
- cpu: dis-inverted "cmn" opcode carry (ie. addition-style instead subtraction)
- cpu/xcept: optionally ignores access to cpsr_c in user mode without warning
- help: added note about 'hidden' H-Blanks in DISPSTAT description
- io: writing to DISPSTAT msb and/or lsb may directly generate new IRQs
- io: repaired v-counter interrupt in scanline 0, emulated hblank stat/irqs
- io: emulates 32bit read from dispstat+vcount as one 32bit value
- help: corrected return value of Div (and DivArm) functions (r3 instead of r2)
- i/o map: deciphered control bits for dma, timers, video, and interrupts
- i/o map: split into separate tabbed screens (video,bg,dma,sound,timers,other)
- cartloader: added .mb as gameboy file extension (used by some multiboot demos)
- video: repaired text mode scrolling/size (took size from bgoffs instead bgcnt)
11th April 2002 - version 1.0d
- xcept/debug: moves codewindow cursor onto -previous- opcode (=fault position)
- cpu: emulates misaligned LDM/STM/PUSH/POP base register (warning optional)
- cpu: thumb POP PC ignores PC/Bit0 (always stays in thumb state even if Bit0=0)
- a22i: fixed address operand shifting for thumb mode BL instruction
- a22i: fixed misplaced PC/LR operands for thumb mode PUSH/POP instructions
- video: uses BIG color translation table with 32K entries (eventually faster)
- video: fixed exchanged red/blue, and 24bit-black-blue, hopefully okay now :-)
- cpu: emulated reading of unused cpsr/spsr bits (bits 8-27)
- cpu/xcept: emulates not-existing spsr in user/system mode (alu,msr,mrs,ldm)
9th April 2002 - version 1.0c
- video: colors are not tested (included test-rgb.gba for testing on rgb-vga)
- vram viewer: colors in palette screen, tile screen, enlarged tile, bg map
- disass/dump to file: rejects too large/signed 32bit length (thnx randy+costis)
- video: emulates gba-display-style 'truncated' color intensities (optionally)
- video: color emulation, 15bit and 24bit output
5th April 2002 - version 1.0b
- help: described debug messages, SYM files, debug hotkeys, installation
- cpu/disass/a22i: supports .msg 'string' debug messages (raw text only yet)
- bios: warning message if accessing SWIs other than 2-5 (if GBA.ROM not found)
- bios: built-in mini BIOS supports IRQs and SWI 2-5 (used if GBA.ROM not found)
- cpu: uses separate GETMEM and PUTMEM for SWP opcode (xcept and io handling)
- xcept/flat32: refreshes debugscreen -before- display textbox/warning messages
- xcept/setup: provides strict and bios-compatible memory range checks
- xcept/setup: abbreviated to Halt/IntrWait warning message (formerly clipped)
- cpu/memory: emulates read-protected bios area, and unused 4000-1FFFFFF memory
- help: corrected description of BIOS memory read-protection
- io/memory: emulates unused I/O area 400h and up, and undoc port 800h/mirrors
- a22i: recognizes MOV as alias for both MSR and MRS opcodes
- a22i: recognizes the newer "_csfx" extension/combinations for MSR opcode
- cpu/memory: emulates 64K+32K+32K vram mirrors
- cpu/memory: emulates mis-aligned data memory accesses (aligned/rotated)
- cpu/memory: write-protects readonly memory
- xcept/setup: new/optional warning on writing to readonly memory
- xcept/setup: new/optional warning if memory addresses out of range
- xcept/setup: new/optional warning for 8bit writes to palette/vrom/oam
- xcept/setup: made "Alignment" warnings optional (separately for read/write)
- xcept/setup: made "Bad I/O" and "Reserved CPSR Bits" warnings optional
- xcept/setup: killed old 8bit options, moved some options from other to xcept
- debug/setup: changed emulator identification from HL=0CA5H to R0=0CA5H
- debug/setup: renamed the follow registers HL,BC,DE,SP,PC to R0..R15
- bios: added filename "GBA.ROM" in bios-not-found error message at startup
- xcept: allows RegisterRamReset to write zero's to unused I/O ports
- help: added HEX values for SWI-function numbers and CPU-mode CPSR values
- help: corrected reset function (SWI 0 and SWI 1) descriptions
22nd March 2002 - version 1.0a
- cartloader: fixed fileselect double\\backslash path glitch (also for no$gmb)
- arjzip/preview: long filenames, cmdline/files.lst ARJ:GBA format (from zx81)
- arjzip/preview: autoload if containing 1 file (even misnamed X.GBA in Y.ZIP)
- arjzip/preview: allows to select 1 file if containing multiple files (zx81)
(Requires ARJ.EXE and/or PKUNZIP.EXE installed in a PATH directory.)
13th March 2002 - version 1.0 - first public release
- cutdown: startup message box
- cpu: rev-engineered/emulated LSL/LSR/ASR/ROR with Register-00 shift amounts
- cpu: rev-engineered/emulated THUMB LSL/LSR/ASR with Immediate-00 shift amounts
- a22i: supports pseudo instruction "LDR Rd,=Immediate" by using literal ".pool"
- debug: displays non-symbolic addresses at beginning of datazone lines
- debug: disassembler automatically comments SWI opcodes, eg. "swi 2 ;Halt"
- debug: keystroke/mousebutton breaks wait for completion of BIOS-Halt-handler
- debug: F2-breaks and source code breaks (.brk aka mov r11,r11) working 12/01
- cpu/io: emulated I/O access through ARM mode 32bit ldm/stm instructions
- video: displays truncated left/right offscreen normal and xflipped objs
- setup: optional speedup if emulator caught in Halt/IntrWait-less 'dumb' loops
- video: rotating/scaling OBJs working, rotated/scaled left/right offscreen OBJs
- setup: optional warning message if Halt/IntrWait not used for longer period
- setup: optionally displays topmost screenlines dark as caused by real shadows
- setup: option for executing nintendo-logo bios boot procedure upon reset
- video emulation: variable bg map size in bg modes 0-2
- video emulation: bg rotation/scaling in all bg modes 1-5, yflip in mode 0-1
- video emulation: supported tilebased bg mode 2, and 32K-bitmap bg modes 3,5
- vram viewer: user screen, bg0 map, bg0 tiles, palette viewer
- debug/stck: fixed initial stackwindow position, displays 32bit stack data
- setup: initially defaults to debug font size matching for local display
- news: russian cosmonauts have successfully repaired the mir, 18th Oct 2001
- io/help: rev-engineered, described, and emulated Timers (counter/reload/ctrl)
- a22i: fixed LDR/STR Rd,[Rb,Rm] stack fault lockup
- io: emulated reading from writeonly or unused io-addresses
- cpu/reset: initializes all CPU registers (especially stack ptrs) as by BIOS
- cpu: fixed STM [Rb],...,R15 (probably rarely used though)
- a22i: assembler recognizes ADD Rd,=RelativeAddress in ARM and THUMB modes
- multiboot: added multiboot upload function, and cable description, etc.
- keyb: emulated L/R buttons, added SNESPAD support for GBA (both not tested)
- setup: immediately recognizes changed debug fontsize without re-opening hack
27th August 2001 - version 0.1 - first nonpublic beta release
- emailed devrs (and received not so much feedback, and lost interest)
- most or all tested games/demos working (chaos89 turned out to be really dull)
- various news, in short, cpu and simple video/keyboard emulation are working
July 2001 - version 0.0 - cpu only - unreleased
23th July 01 - emailed devrs (and received lots of feedback)
20th July 01 - a22i source code assembler, resolves forward references, sym file
19th July 01 - a22i online assembler for 16bit THUMB instruction set
18th July 01 - a22i online assembler for 32bit ARM instruction set
17th July 01 - debugger 32bit addressing (frb,dta,brk lists), F4-key crackbreaks
15th July 01 - cpu_arit_add/sub_flags chaos89 traces forever without lockup
14th July 01 - memory emulation, adjust_addr gba_rom/ramseg, traces 13 opcodes
12th July 01 - succesfully traces through first four (4) opcodes in chaos89 :-)
11th July 01 - assembled TMB emulation core with 0 errors (and lots of notyets)
10th July 01 - assembled ARM emulation core with 0 errors (and lots of notyets)
5th July 01 - beach; completed gba-cpu primary ARM/TMB jump lists
4th July 01 - beach; parts of displayed registers in debugger
3rd July 01 - beach; finished TMB disassembler untested
2nd July 01 - finished ARM disassembler tested with chaos89.bin
1st July 01 - programming started (arm 32bit disassembler)