Como sempre sempre um amigo hacker, através de meses talvez em testes, usando engenharia reversa, consegue essas proezas.
Nesse link, um mini-overview feito por mim, em baixa qualidade, mas assitível.
http://br.youtube.com/watch?v=w0CdVLf6Nmc
Conheçam o NEODS
________________________


O neo ds, é um emulador pra DS, seja ele Classic/Lite. Está apenas na versão 1.0, porem emula praticamente TODOS os games de NEO entre 45-60 frames, COM SOM.
Foi emulado todos os sons, menos o FM, porém não sei ao certo como o desenvolvedor fez, mas utilizando só o ADCPM ele "espremeu" sons e vozes usando apenas um canal e o resultado é quase perfeito.
Creio que na sua 2ª versão ja esteja perfeito e a 3ª seja a DEFINITIVA!!!!

Abaixo segue as notas do criador Ben Ingram, em ingles.
"NeoDS v0.1.0 by Ben Ingram
Website: http://groups.google.com/group/neods
If you have questions, READ THIS DOCUMENT FIRST!!! . If you still have questions, email me at ingramb AT gmail DOT com. I will be happy to help, but possibly slightly annoyed if your question is answered in this document.
INTRODUCTION
This is a NeoGeo AES/MVS emulator for the Nintendo DS. It can run all types of NeoGeo roms with some limitations.
Currently emulated:
* M68000 cpu (cyclone)
* Z80 cpu (DrZ80)
* All forms of NeoGeo protection/encryption
* Graphics
* ADPCM audio
* PSG audio
Not emulated:
* FM audio
* Raster effects
* Multiplayer
* Some timings are not that accurate
TODO
* Save states
* Faster M68k cpu core
* Improved stability
* FM audio (?)
* Raster effects (?)
* Wifi multiplayer (?)
* Clean up NeoDSConvert source if I feel like it
TECHNICAL NOTES
NeoGeo games can be close to 100MB in size, while the ds only has 4MB of ram. Graphics, sound, and program code all need to be streamed into ram constantly while the emulator is running. NeoDs uses a modified libfat which has a lookup table to vastly speed up seek times. In the future, slot2 ds ram expansion packs could provide some speed up. But they only have 32MB, so games will still have to stream.
The emulator uses a slightly modified version of Cyclone for the m68k core. The memory handlers are all done in assembly code and integrated into the core. The jump table is also compressed using a series of sub jump tables. This uses an extra arm instruction to decode each opcode, but reduces the .nds file size by ~200k, and improves cache utilization. This seems to give a slight speed increase. My feeling is that cpu emulation is heavily memory bound. I think a smaller m68k core that fit mostly into the TCM could be much faster than cyclone, even if it needed more instructions to execute each opcode.
The NeoGeo sprite graphics are all done with textured quads using the ds 3d hardware. The NeoGeo tile layer is done with a ds tile background. Doing raster effects with quads is possible in theory, but changing quads per-scanline would need way more quads per frame than the ds is capable of rendering. 2d sprites could be used instead of quads, but this has several problems. The NeoGeo can render many more sprites than the ds, so it would take a complex hblank handler to swap them on a per-scanline basis. Also, the ds can only address 1024 sprites at once. This corresponds to 256k worth of vram, which is half what I can get using quads.
The NeoGeo adpcm audio is streamed from the card and decoded in software because the NeoGeo's audio format doesn't quite match the ds hardware format. The NeoGeo PSG is mapped directly to the ds PSG hardware. FM audio would probably have to be done on the arm7. But the arm7 has very little memory, and can't afford any slowdown (or else the audio will be choppy). A faster and smaller Z80 core might be needed first.
LICENCE
The gui code is all public domain (all files that begin with gui). The NeoDSConvert code is all public domain, except where the MAME/zlib licenses apply. The emulator code is free to use for non-commercial purposes. Contact me if these terms don't work for you.
I would appreciate credit/thanks in all cases if you use parts of NeoDs, but it's not required. Also, I would discourage the release of modified versions. If you have useful changes, submit them to me, and I'll put them in the official version, with full credit going to you. If you must release your own version, I would encourage you to release the source. But if you really want to release your own closed source version, I won't stop you (just don't try to sell it).
CREDITS
* FinalDave, notaz for Cyclone
* Reesy for DrZ80
* Wintermute for devkitPro toolchain
* chishm for libfat
* MAME for parts of NeoDSConvert
* Minizip used by NeoDSConvert
* GnGeo, FinalBurnAlpha, MAME, MVSPSP for source code reference
* Charles MacDonald for NeoGeo technical documentation
* Alexander Stante for NeoGeo technical documentation
* Brandon Long for a nice small sprintf implementation
* Everyone who answers questions on the gbadev.org forums
* Let me know if you think you should be here!
HISTORY
Project started Summer 2007
v0.1.0 4/29/2008
initial release"
Usando o emulador.
____________________________
O emulador vc pega AQUI!
Depois baixe as roms de neogeo de sua fonte preferida, porém tem que ser de acordo com o PADRÃO MAME, ou seja, esqueça as roms que rodam no fba,neoragex,ou kawaks.
Após isso outro download a ser feito, o famoso neogeo.zip, as BIOS do neogeo console. Mais uma vez cuidado pois existem dezenas de versoes para esse aquivo. Para poupar trabalho eu upei um set correto, pegue aqui!
NEOGEO.ZIP by Nigazallucard
CONVERTENDO AS ROMS
_____________________________
Sim, é necessario converter para que o NEODS carregueos corretamente. Por quê? simples. Porque assim se torna desnecessário o "unzip" na MEMÓRIA do ds, que ja é escassa.Inteligentemente Ben criou um converter "tranmigrando" as roms pra um aquivo legivel no emu.
Primeiro crie uma pasta em qualquer lugar o ruindows, e coloque lá todas as roms que deseja converter, o negeo.zip e o arquivo NeoDsConvert.exe que você encontra dentro do zip do NEODS.
Depois, crie um ATALHO para NeoDsConvert.exe OU rode através de linha de comando com o EXECUTAR ou atraves de uma janela OS com o seguinte parametro:
-bios1
Isso é necessário pq é um BUG do conversor, que nao enxerga a BIOS caso você nao converta com esse parametro, e sem ele, o jogo não roda, ou seja, conversão incorreta.


Abaixo as possibilidades através dessa string:
-bios0 use the euro bios
-bios1 use the euro-s1 bios
-bios2 use the us bios
-bios3 use the us-e bios
-bios4 use the asia bios
-bios5 use the japan bios
-bios6 use the japan-s2 bios
-bios7 use the japan-s1 bios
-bios8 use the uni-bios.10 bios
-bios9 use the uni-bios.11 bios
-bios10 use the debug bios
-bios11 use the asia-aes bios
Após isso , deverá aparecer as roms convertidas, com .neo no final.
Instalando o EMU no FLASHCARD
________________________________________________
Copie o conteudo do NEODS como o neods.nds e pastas(menos a do conversor) para a RAIZ do flashcard.
Se quiser, configure atraves do windows que todos fiquem como ocultos, menos o executavel(.nds) pra não ficar aquela "bagunça" de arquivos amontoados na raiz, e atrapalhe na hora de vc selecionar atraves do menu do seu flashcart.
Depois de tudo, COLE as roms na raiz do flash, junto com o neods.nds, e se quiser proceda da mesma forma, deixando em OCULTO.
Abaixo, uma imagem overview do que foi feito.

Bora jogar kof?
___________________________
Feito tudo Carregue o neods.nds no seu flash cart!
Na tela inicial vc seleciona com ou sem som. Eu testei e não notei melhoras ou percas, os games q ficam meio lentos mesmo sem som nao alteram em nada os frames, portanto, deixe com som mesmo.

Com o start vc inicia o jogo na lista.
Dentro do jogo você poe fichas com o select, e inicia o game com start.
Na tela de baixo vc confere o fps , e pode dar um "stretch" na tela do game, e desligar o "menu".

Agora é só jogar!

Possiveis problemas:
__________________________________________________
O emulador abre, mas as roms não aparecem no menu....
R. Pode ser 2 coisas, ou vc não converteu corretamente, ou o emulador e roms não estão JUNTOS na RAIZ do flashcart.
As roms aparecem, eu carrego nao nao aparece nada dá tela preta.. seguido o erro : Invalid PC:FF3FFF3F
R.Com certeza conversão incorreta, talvez devido o BUG citado acima, onde você deve inserir a string -bios , Leia o tutorial na parte convertendo as roms.
Compatibilidade? Bem são muitas roms, mas com certeza as da primeira geração de games de neogeo roda beirando a perfeição emtre 52-60 frames.Porem muitos da ultima geração também rodam perfeitamente.
Os que testei que possuem erros foram o metal slug 1(trava quando vc solta uma granada), Kof96(Cai muito a taxa, fica entre 45 frames, dá pra jogar, mas pra mim é inaceitável.) e Samurai Shodown 2(também frames em 43-50)
Já antigoes como fatal fury 1 e 2, já estão no meu flash!
Futuro promissor
_________________________________________________
Com certeza por essa ninguém esperava, apesar de todos saberem as limitações do pequeno notável, existem pessoas que graças a DEUS não conhecem a palavra limite.
Sei que a emulação não alcançará o nível como a do PSP devido ao poder de hardware, mas podemos sonhar com CPS1 e CPS2 sim senhor.. e quem sabe ambos com WIRELESS......
O futuro Dirá.












