You are on page 1of 8

No$gba Gameboy Advance / Nintendo DS Debugger Homepage

A thousand may keep a secret if ninehundredninetynine are dead. Lock the frontdoor, lock the backdoor, and trust nobody. Gaming History Screenshots Contact Price List Links Home No$gba is a software based development tool for testing and debugging of Gameboy Advance and Nintendo DS software, running on Windows 95 platforms (and also on less efficient windows versions), programmed by Martin Korth. It supports source level debugging (which would be important only for HLL programmers). And covers an overload of features and options (which are described in the funny colored boxes below), whilst still maintaining an uncomplicated user interface and highest performance even on low-end computers. In short, no$gba is a full moon after midnight. Real. The debug version has been exclusively designed for professional developers. It is not a toy. It is not freeware. And it is completely useless for gamers. Back to no$gba freeware page for gamers. The Main Debug Screen consists of Code, Data, Stack, and Registers windows. The Code window displays Another very comfortable feature is the disassembled code and/or source code, 'follow' function: Pushing right cursor the built-in assembler allows to modify, key moves the code window to the or NOP-out, single opcodes. The status target address of the currently selected bar gives additional information on the branch opcode. On load or store currently selected opcode, for example: opcodes it moves the data window to "[3001248h]=0114h" for a "ldrh r0,[r1]" the target address. Left cursor key opcode. Arrow up/down symbols moves the window back to the old indicate the jump direction location(s). That feature also works (backwards/forwards, ie. loop/skip) for with return values in stack window. any branch opcodes, the arrow right The Stack window gives a list of symbol indicates jumps to sub-routines. pushed and allocated words, including Automatic 'true/false' comments are detailed stack information for each generated when the current instruction word, for example: "pushed r7", is a conditional opcode, making it much "allocated [1Ch]", or "return from easier to determine if a jump opcode is game_initialization". about to be executed. The Data window allows to view (and The memory addresses of modify) a memory dump in code/data/stack windows can be hexadecimal and ascii text format. changed by cursor keys, mouse scroll The Registers window displays the bars, by search function, or by goto CPU registers and flags. address (or goto label) functions. The debug user interface is based on nine years of programming, experience, fine tuning,

and feedback from users. Source Level Debugging and Profiling The no$gba disassembler displays any No$gba displays the execution time in labels that are used in source code (and clock cycles each time when starting of course, that labels are also and stopping the emulation, eg. after recognized in user input). Mixed executing a sub-routine. The power Thumb and Arm opcodes are gauge displays the current CPU load automatically disassembled as such. (assuming that unused CPU time is Additionally, your source code can be spent in low power state). The nocash displayed in stacked view mode, that is, clock cycle comments display the the associated disassembled opcodes are execution time for each disassembled displayed below of each line of source opcode, different view modes are code. For better legibitly, the source available - it can display formulas (eg. lines are drawn by light blue "1N+3S+1I") (optionally split into background color, moving the cursor separate code and data cycles), and it onto a source line displays the can resolve that formula into actual corresponding line number and source number of clock cycles (by filename in status bar. automatically recursing the current No$gba supports debug info in .ELF, address and waitstate configuration, etc. DWARF2, and .SYM formats. - the results are kinda interesting: some opcodes take only 1 cycle, others may eat up about 100 cycles). And, it can calculate the sum of cycles for a sequence of instructions. Profiling and clock cycle counting allows to make faster and smoother software, and to free up more CPU time - either for battery power saving, or for additional effects. Conditional Breakpoints & Automatic Warnings The debugger covers a wide range of Aside from user configured breaks, the breakpoints, which are able to 'freeze' debugger also includes built-in warning the emulation - even when debugging messages which are (optionally) interrupt handlers. Aside from normal notifying the user of suspicious 'stop' breaks, it also supports conditional operations, such like writes into ROM, breaks (for example when writing a accesses of invalid or mis-aligned specific value to specific address, or memory addresses, etc. These features when writing or changing a value inside are helpful to locate both 'obvious of a specified memory area). Also, crashes' as well as 'hidden bugs' which there's possibilty to define breakpoints may show up only in certain situations, (and text messages) in source code. Of or only in later builts - or not until the course, basic operations like tracing game is released (in fact, no$gba finds (either single opcodes, or complete subbugs in most distributed commercial routines) and stopping when reaching titles). the currently selected line are supported as well. NB. Such features are likely to be found only in software debuggers - which are more flexible than hardware debuggers. General Emulation Features

In multi-player mode, up to four GBAs can be linked together by emulating normal, multiplay, or automatic cable connection, this feature also supports single gamepak software. The video engine supports real blurred colors and dark intensities, giving the same picture as on real GBA/NDS displays, the screenshot function allows to capture the current picture to clipboard or file. The stereo sound emulation provides exact reproduction of all six sound channels. The snapshot function allows to save and restore the state of the complete hardware to or from file. No$gba emulates most GBA/NDS BIOS functions, and can be upgraded by installation of the BIOS rom-image (details here), which provides complete emulation of all functions and highest timing accuracy. Of course, no$gba can skip the BIOS intro sequence - you can to start your cartridge directly, without having to see the nintendo logo each time when testing a new built. Forget everything that you have experienced with normal emulators. No$gba is not like that. I/O Map and VRAM Viewer The I/O Map Window lists the name, The built-in VRAM Viewer allows to address, and content of all hardware view the various BG layers, the BG and registers, including undocumented OBJ tile memory, OAM content, and ports. Additionally, the separate control color palettes. Moving the mouse arrow bits are resolved for each register (eg. onto a specific OBJ or BG tile displays Bit6 Irq=On, Bit7 Start=Off). All values a zoomed copy of that tile, as well as are, optionally, updated also when the associated attributes (screen position, emulation is running. The information memory address, color depth and can be viewed either in a tabbed palette, OBJ mode and size, flip or window (with tabs for Video, BG0-3, scaling parameters, etc.) BG layers can Sound, DMA, Timers, and Other be viewed with/without grid. A 'laser registers), or in all at once in one huge arrow' indicates the screen position of single window, (requires at least the currently selected OAM entry. 1024x768 pixels screen resolution). That is punk rock software debugging - it's a bit more than a gameboy connected to a PC user interface by some cables. Accuracy Emulation has been programmed with Of course, it is nearly impossible to love in detail. Most operations are make a perfect emulator of total having a timing accuracy of +/-0 clock accuracy. At least, I am trying to. If you cycles. Opcodes and hardware ports are should come accross any details which giving 1:1 same results, bits, and flags are not working exactly as one real as real hardware. The emulation covers hardware, please let me know about it! undocumented ports, and exactly Even if it is only a small glitch and emulated 'garbage' readback from looks unimportant. I'd even love to unused memory areas (which is actually reproduce the undefined MUL carry required for many - apparently badly flag, even though it is probably not debugged - games). intentionally - used by any games. I'd recommend to run your game frequently on real hardware (eg. by using flash-cards) for 100% proof bug-testing. Performance Most of the user interface was Emulation of the GBAs RISC

processor takes up more CPU load, most GBA games are working smoothly and at full speed on 500Mhz computers. If you do have a faster PC you may use the additional CPU time to emulate up to four GBAs at once - in multiplayer mode, or to let the emulation run at quad speed on keystroke (eg. to skip intro sequences). All no$gba program code, both emulation and user interface, is all hand-crafted and pure assembler code. Additional Features The built-in manual contains help about debugging functions (see help html version), as well as complete specifications for the GBA/NDS hardware (see specs html version). The built-in source code assembler provides two-way interfacing with the built-in text editor. The upload function allows to run small programs (max 256K) in Work RAM of attached GBAs by simple xboo cable connection, that feature is significantly faster and more comfortable than 'flash-cards' even though the limited size restricts it to small games (or to fragments of larger games, it might be suitable to test a sound engine or intro sequence, for example). Also, a disassemble to file function is included. Previews Click here for some screenshots of the Click here for downloading no$gmb, no$gba debug screens, vram viewer, my previous emulator/debugger for warning messages, configuration older 8bit monochrome and color screens, etc. That link also includes gameboys. Aside from some newer descriptions for each picture, and points improvements such like support for out important features. That larger monitors and source level introduction may be worth to have a debugging, no$gba covers the same look at even if you've already registered debugging features and accuracy as the program. no$gmb. Because of the risk of cracks (for a console emulator of that quality: 100% one week after release) there's no no$gba demonstration version available. Very sorry, I've tried to, but it didn't work. No$gba Price Single Site Emulator Debugger Profiler SourceLevel Cheats List User Licence Freeware Yes Yeah! 0 Gamers Shareware Yes Yes US$15 Home-use Commercial use Yes Yes Yes US$750 US$3000 pro Commercial use Yes Yes Yes Yes US$1750 US$5000 hll All registered versions include free support, updates, and bug-fixes for at least 12 months. Be sure to compare the support and price and features and anything else with any other

designed, and works smoothly on a 66MHz computer. That guarantees no nasty surprises in case that you don't own one of the latest 16GHz models. And, because the debugger does not need to communicate with external hardware it is likely to be ways faster than hardware debuggers.

tools. Home-use version is meant to support hobby programmers for non-commercial use only. Payment Cash Money Orders Cheques Money Transfers PayPal Methods How Per mail. Per mail. Per mail. Per Bank Account. Online. Please Please no US Please no From inside europe For Home-use no Postal Service canadian only (due to transfer coins. money orders. cheques. fees). Commercial Okay, Same as above. Okay, worldwide. use worldwide. Any currency accepted, best use your own local currency, according to current exchange rates. For home-use, if you don't know the rates, send somewhat US$ 15 or EUR 15 or CA$/AU$ 20 or GBP 10 or YEN 2000. Include your email address and the word "no$gba" (both required to receive a no$gba registration key)! Hotmail users please read info for hotmail users. Click here for my bank details & mailing address. Mark cheques/money orders to be paid to Martin Korth only. Contacting me (Martin Korth) - Developers only (no gaming questions) n x o p v c a a My email address is hidden in the spam-shielded box left of this text, ? s f h - 5 m p please copy only the white character cells (from left to right, starting in topmost line). Alternately, decipher the hex dump (ascii character u s b e 2 r @ v codes): e l g b y i _ 3 - 6e 6f 63 61 73 68 2D 70 75 62 40 65 6c 62 69 6e 73 65 6c 2e 64 65 n - s u # q e - If you think that programmers must work for free, please find useful d l @ . / d z e inspiration here before contacting me. My mailing address and bank details can be found here. Hotmail users please read info for hotmail users. The email address is subject to be removed or changed in case of incoming garbage. My email address can be also found, as clean text, in the about box of registered no$gba versions. Caution: Emails with attachments are deleted automatically without notice! Support, Updates No$gba has been updated quite The facilites of the current versions are regulary since programming was started surpassing everybodys expections, about three years ago (see release including for my own. And I am still notes). The complete timeline for the not tired of adding more and more 'final nocash project is longer, I've started details'. I've meanwhile reached the working on the debugging engine about level where people are hesitating to buy 1994 (initially for DOS programs), and the program because they cannot written my first emulator back in 1995, believe that it really includes all of the finally, about 1998 I've started working announced features ;-) For me, work fulltime on emulation and debugging becomes more fun when receiving projects. feedback; that implies best support for the users. Questions, comments, suggestions, requests, and bug-reports are always welcome.

Related info & tools & links release notes Info about newer (and older) no$gba updates. gba-xboo - Updated 15th August 2002 - new function for downloading the GBA BIOS to file Stand-alone DOS version of the 'multiboot' upload program and instructions on how to built the cable, use that for testing games on real hardware, the new version should be also working with fast >100MHz computers. gbatek.htm and gbatek.txt - New Feb 2006 with NDS specs Standalone version of the no$gba tech docs in Html and Text format (ca. 500 KBytes each). Describes the complete GBA/NDS hardware, memory map, I/O ports, BIOS functions, cartridge header, undocumented features, CPU instruction set, etc. magicflr Magic Floor, freeware puzzle game for the GBA, includes assembler source code. Aside from playing with it, I hope this will delight some programmers whom seem to be confused about terms such like interrupts, sound, halts, and multiboot. devrs.com/gba gbaemu.com gbadev.org Links related with news in gba programming scene. Tools, docs, emulators, jobs, competitions, freeware games, demos, examples, etc. pdroms.de Big collection of freeware games. Nice concept, and it's been quite popular for the last 10 years, only problem is that downloading didn't ever work due to dozens of browser compatibility problems. So, best forget about it, and check the games/demos section at gbadev.org (see link above) instead. no$gmb Emulator/debugger for the old 8bit monochrome gameboy, super gameboy, and color gameboy, some of the users killed the program, but it's netherless still a useful dev tool with similiar features as no$gba. gbapub The public opinion. Feedback & lyrics on no$gba project... "YOu SuCK MAn!!!I'm ThE EVIl!!, and i want to cook your soulI WANT TO MURDER YOUyour fucking emulators are PURE TRASH!!!SHUTDOWN YOUR SITE NOW, and use another emulator!!! LOSER!!!" ereader.zip - New (June 2007) Contains four dotcode games/demos: Magic Floor, e-Reader Camera Viewer demo, Yarin's Rotris, and Snowbro's Bomb Sweeper. Including some sample source code. Back to nocash mainpage.
2 ^ 10 = 1024 ; C programmers should be careful not to misread this notation as exclusive-or.

NO$GBA Emulator v2.2f

Thursday June 29, 2006

post a comment : 10 total

Description
NO$GBA started as a Gameboy Advance debugger but was later released as a normal emulator(version 1.9). It is the first gameboy advance emulator to support multiplayer games on the same pc! 2.2f Release Notes: 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! (Got some great bug reports on newer no$gba updates, many thanks!) 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. In the DOS version, the NDS video emulation currently appears totally distorted. 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.

You might also like