Robert Posted January 24, 2006 Share Posted January 24, 2006 NDS EmulationNo$gba v2.2 contains some NDS emulation support. 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_, formerly addr_- 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>> Get it HERE Link to comment Share on other sites More sharing options...
Alpha Posted January 24, 2006 Share Posted January 24, 2006 That's what I call a LONG list of updates. Link to comment Share on other sites More sharing options...
Robert Posted January 24, 2006 Author Share Posted January 24, 2006 uh, yeah, sorry about that. Just shows the developer has been busy! Link to comment Share on other sites More sharing options...
Agozer Posted January 24, 2006 Share Posted January 24, 2006 And it also shows that No$GBA isn't updated often. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now