Martin Korth autor popularnej serii emulatorów no$cash (no$sns, no$gba, no$nes, no$msx, no$sns, no$cpc, no$c64, no$gmb, no$k2) udostępnił nową wersję emulatora handheldów NINTENDO - GameBoy Advance i Nintendo DS.
Tak jak w wypadku pozostałych projektów z serii NoCash, autor zdecydował się zmienić dostęp do najnowszych wersji - są one dostępne dla wszystkich, a nie jak wcześniej poprzednia wersja była publicznie uwalniana, a wersja najnowsza tylko dla osób dotujących projekt. Warto więc pomyśleć o dotacji, zważywszy, że Korth tworzy projekty, które należą do jednych z lepszych emulatorów obsługiwanych platform, a według informacji na jego stronie dotacje to jedno z głównych źródeł jego utrzymania (nawiasem mówiąc, wolny człowiek - bez stałej pracy, bez pieniędzy, fiu, fiu... u nas zdechłby z głodu nawet gdyby napisał emulator emulatora).
NO$GBA, tak jak NO$PSX został udostępniony w dwóch wersjach - deweloperskiej (z debuggerem bez rozszerzenie) i typowo dla graczy (wersji DOS (-d) a także Windows(-w)), gdzie cały śmietnik dev został usunięty.
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)
→ NOWSZY [multi] NO$GBA 3.0.4 27/03/21
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)
→ NOWSZY [multi] NO$GBA 3.0.3 17/10/20
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)
No$GBA 10 Jul 2019
- 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)
version 2.9c 08 Feb 2019
- 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 pathname)
- 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)
No$GBA version 2.9 14 Jun 2018
- 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)
-
No$gba version 2.8e 23 Jul 2017
- 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)