Jump to content

No$gba 2.2a released!


Robert

Recommended Posts

NDS Emulation

No$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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...