What's new

no$gba

spotanjo3

Moderator
Moderator
http://nocash.emubase.de/gba.htm

No$gba v2.2
Notes on New NDS Emulation
--------------------------

Hello to first no$gba version with NDS support. Parts are working fine, parts
are under construction. The most important (missing) things to be aware of
are:

Missing Feedback!
What's up? Feedback on no$gba v2.2a was great, that although it couldn't run
homebrew "libnds" programs. That's been fixed in v2.2b, and I've been hoping
that it'd allow a couple of people to use & test no$gba with their games, and
to get some useful feedback and bug reports from them. From that point of
view, v2.2b has been a total flop, and it seems to have caught even less
interest than my Atari 2600 emulator :) For v2.2c, if something doesn't
work, please let me know about it!

Major Missing Features
3D Video, Sound, and WLAN emulation are still missing. Sound should be
relative easy to implement, WLAN probably isn't that important yet, and
for the 3D Stuff: I've meanwhile figured out how it works, and hope it'll
be implemented in next updates.

Things that work only with real NDS-BIOS-image
The "decompression-with-callback" BIOS functions are currently working only
if you do have a copy of the real BIOSes as ROM-images (see Installation
and DS Xboo chapters).
Encrypted ROM-images (with encrypted first 2Kbytes of the secure area) can
be used only if the (full) NDS7 BIOS ROM-image is present (which contains
the 1048h-byte decryption seed data).

Minor Missing Features and Glitches
Game screen sizing doesn't work yet. VRAM viewer Tile/OBJ windows don't
work. Some of the new NDS-related 2D-video features (eg. Extended Palettes)
aren't yet working. In the DOS version, the NDS video emulation currently
appears totally distorted.

Help please!
Nintendo appears to use a new file-format (at least a new file-extension)
for debug information (.srl files, rather than .elf files). Any info about
the .srl files would be great!
Info about the Wlan/Wifi hardware would be great, too.

Notes
Use Ctrl+T in debug mode to toggle between the two CPUs.
Oh, and the monetary stuff, my bank account is just about to drop to zero,
so I'll probably need to charge some update fees for future no$gba/no$nds
versions, at least from users whom have registered more than 12 months ago.
Some suggestions on reasonable update fees would be great; what would you
pay, and what do you think other companies would pay?

Anyways, for now, the current no$nds beta version is a free update for all
registered no$gba users. As usually, I'd be glad about some feedback, bug
reports, and maybe a priority list for missing/incomplete features, ie.
what you'd prefer to be implemented in the next update.

Remember, this emulator do not supported nds games at all and it is not playable right now so do not complaint about it. Anyway, it is only a beginning. :)

NOW LEAVE HIM ALONE. :evil: :)
 
OP
spotanjo3

spotanjo3

Moderator
Moderator
Indeed, he could use some support. His GBA emulator is the most accurate I ever seen but I hate this name, lol. No biggie deal, really. ^-^

Now the NDS is part of this gba emulator which is very awesome like a real NDS that allowed to play gba games as well. NICE! :D
 
Last edited:

Darkfox

That guy that does stuff.
If it were a brand of muffin I'd eat it. But since that is not the case, it does sound good at least. XD
 

ninja1

New member
well there been an update to version 2.2c these are the notes

- 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 ___FCKpd___0quot; 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)
 
OP
spotanjo3

spotanjo3

Moderator
Moderator
No for NDS roms which was already mentioned but why don't you test it for the homebrew/demos ? Help is appreciate. :)
 

ninja1

New member
and n$gba released a new version, patch notes here:

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

http://nocash.emubase.de/gba.htm
 
OP
spotanjo3

spotanjo3

Moderator
Moderator
- nds/metroid: metroid demo intro-movie is now working (bg bitmap & bitmap obj)

I did tested but it crashed. I do not understand. Oh well. Good job anyway!
 
OP
spotanjo3

spotanjo3

Moderator
Moderator
No$gba v2.2 released!

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)

http://nocash.emubase.de/gba.htm
 

diablow

New member
Well, this new version is running some demos and homebrew, not perfect, but a good progress was made. Previous version as I recall didn't run anything at all...
 
OP
spotanjo3

spotanjo3

Moderator
Moderator
WhiteX said:
Dude, be more polite.

No! I am the Dark Rockman EXE. Look at my avatar! I am an evil one!:evil: ;)

Actually, why should he repeat it ? :unsure:
 
Last edited:

WhiteX

New member
No, that´s not the fact of him repeating a stated fact, only that you can be more polite on telling him.
 
OP
spotanjo3

spotanjo3

Moderator
Moderator
No$gba 2.2f released!

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 / ... / .endm)
- a22i: supports repeat macros (.rept / ..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)
 

diablow

New member
NO$GBA v2.3 released

http://nocash.emubase.de/gba.htm

3D Video - new in v2.3
All relevant 3D functions should be implemented in no$gba v2.3.
It's still excluding a couple of "cosmetic" effects like Fog, Toon, etc.
In some games, some vertex coordinates appear to be totally distorted,
I haven't yet figured out what is causing the problem.
Bug reports from programmers would be very welcome, especially if you
can track it down the bug to occur only in whatever specific situations...

Go and test those 3D demos NOW!
 
Last edited:

Top