[TESTED!] NEO-GEO on DS: SWEET!

Wolferaizer

Gal Ageise's Demon
Joined
Apr 12, 2001
Posts
2,059
After almost 20 yrs, finally NeoGeo got its late attention at peak. The most emulated system & games ever.... & ports.

SNES/Genesis: FF, AOF, SS
PS1/2: KOFs etc
PSP: classic collections, MSA, MVSPSP
Wii: the download thingy
Xbox: sum shitty emu
PC: Neoragex LOL
Cellphone: sum silly KOF games
DS: Neo emu!

Next: my microwave will play Shin Oken.
 

subcons

I take no official position on the issue.,
Joined
Oct 10, 2002
Posts
3,519
Verythrax said:
lots, most playable, but almost none perfect.

I'm surprised by this. It has a huge user base. I'd think it'd be further along than the PSP. Is it a hardware issue?

I was looking into it for my friend who recently got a DS. He was excited at the thought of playing emus on it, but it's a bit costly and a lot more complicated than dealing with the PSP. In comparison, Sony's unit is just wide open. I'm loving mine.

Still, it's cool that they have Neo stuff running on the DS.
 

Verythrax

OWES ROT MONEY!
Joined
Nov 25, 2003
Posts
4,553
subcons said:
I'm surprised by this. It has a huge user base. I'd think it'd be further along than the PSP. Is it a hardware issue?

I was looking into it for my friend who recently got a DS. He was excited at the thought of playing emus on it, but it's a bit costly and a lot more complicated than dealing with the PSP. In comparison, Sony's unit is just wide open. I'm loving mine.

Still, it's cool that they have Neo stuff running on the DS.


Well, it's pretty easy to get going once you pass the barrier of choosing a good flash card combo.

The main problem I think it's the need to use both cpus synced to overcome the hardware "weakness". And I think that was a mistake of the homebrew scene to start the developments base on gba hacks. In short term it made a good library of software avaliable, but it's difficult now to re-use the code to make something more powerful, using the power of the system.

I can indicate some last generation homebrews that are so sofisticated that could pass by commercial software easily.
 

krautcroissant

Living it LARGE!,
Joined
Aug 26, 2003
Posts
488
ds owner too skint to purchase psp = best news in a long feckin while.........
yeah yaw, gonna try installin this soon

heads up for this...............eazy :dragf:
 

fenikso

Buriki-One Fight Promoter
15 Year Member
Joined
Oct 6, 2004
Posts
4,029
Is there a reliable place to pick up one of these cards to put emulators/homebrew on?

And by slot2 memory expansion are we talking about the ram cart that came with the DS web browser?
 

Verythrax

OWES ROT MONEY!
Joined
Nov 25, 2003
Posts
4,553
fenikso said:
Is there a reliable place to pick up one of these cards to put emulators/homebrew on?

And by slot2 memory expansion are we talking about the ram cart that came with the DS web browser?

Everybody always comment about www.bamboogaming.com.

I would recommend getting Acekard RPG [slot-1] (have an extra1gb chip) + EZFlashV exp cart [slot-2] combo.

There are 3 types of slot-2 expansion:

- ram expansion to play GBA games (without that no GBA for you);
- ram expansion to browser/apps;
- rumble pack.

EZFlash V have all those options built-in.

So, you don't need the NDS Browser exp pack to run the emu. But I'm not really sure if you can use it instead of the "third-parties" versions ;)

I'm using Supercard lite, and oooold flashcart slot-2 solution that have built in ram for GBA games. Someone had the original emu patched to run on these. Otherwise, you'll need a slot-1 solution (and a slot-2 exp, if you want).

The newe version of the emu uses the extra ram to increase speed and compatibility (the ds without exp have only 4mb ram!) it's a small miracle make the neo run with only this!
 

Verythrax

OWES ROT MONEY!
Joined
Nov 25, 2003
Posts
4,553
Interesting tidbits on how the DS can pull off this ;)

LoneSage said:
so, the DS really can pull off the neo, huh..

:down:

README.TXT said:
NeoDS v0.1.1 by Ben Ingram
Website: http://groups.google.com/group/neods

If you have questions, READ THIS DOCUMENT FIRST!!! Then check the website, and the forums at www.gbadev.org and www.pocketheaven.com. 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

FM audio has already been done in jEnesisDS, so it is possible in theory. It will be hard to squeeze it into NeoDS, as both the ARM7 and ARM9 are pretty busy. But I will try. Most of the graphics in NeoDS are drawn with textured quads. Emulating raster effects using this method would require more polygons per frame than the DS is capable of (as far as I can tell). It may be possible to emulate raster effects using the DS 2D hardware, but there are lots of reasons why this would be difficult.

USING THE EMULATOR

Required:
* Nintendo DS (lite)
* DLDI compatible flash card
Optional:
* Slot2 flashcard with RAM (Opera expansion, SuperCard lite, etc.)

First, you need to patch NeoDS.nds for your DLDI flash card (NOTE - not all flashcards require patching). See here: http://chishm.drunkencoders.com/DLDI/index.html. Please don't email me for help about this, there are plenty of places online that explain how this works.

Next you will need to convert some NeoGeo roms (mslug.zip for example). You also need a bios rom (neogeo.zip). NeoDS uses the same rom sets as MAME, so make sure your games work in MAME before proceeding. Put all the roms you want to convert along with the bios together in a folder. Copy NeoDSConvert.exe into the same folder. Run NeoDSConvert, and it will convert all the NeoGeo roms in that folder. The converted roms will have the *.neo extension.

Copy the DLDI patched NeoDS.nds, and all the *.neo roms into the root of your flashcard. Run NeoDS.nds. The main menu should load, showing you a list of all the roms on your card. Use the arrow keys to select, and press start to choose. The rom should load, and you should be playing. You can load a rom without audio which will improve frame rate, but you won't get any sound (obviously). Once a game is loaded without audio, the only way to get audio back is to reload the game. Some games will freeze with audio disabled, so be warned!

If you have a supported flashcard with external ram in the GBA slot, NeoDS will use the extra ram to cache more data. This will improve the speed of some games, but is never required.

Controls
[Arrow keys] - Arrow keys
[A, B, X, Y] - NeoGeo face buttons
[Start] - Start
[Select] - Coin

The NeoDS gui is controlled with the stylus.
* Video - Video can be normal or scaled. Normal is a cropped screen. Scaled shows the full screen, but scaled down to fit.

* CPU Clock- The NeoGeo cpu can be underclocked. This can actually make some games run faster! It is easier for NeoDS to emulate a slower cpu, and some NeoGeo games don't use the full cpu power anyway. Experiment and see.

* Screen Off - The lower screen can be turned off. Touch anywhere to turn it back on.

* Load rom - Load a new game

Please report any crashes to me. The more info you can give me, the better. Thanks!

ADVANCED

You can run NeoDSConvert from the command line. In this case, it takes up to 2 parameters.
-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
If there is another parameter, it will be interpreted as the name of the game, as given to MAME. In this case, only this rom will be converted.

For example, pretend you want to convert Metal Slug 1, using the japan-s2 bios. Create a new directory (C:\roms). Copy mslug.zip and NeoDsConvert.exe into C:\roms. To open a command line, click start, select "run...", type "cmd", and press enter. Type "cd c:\roms". Press enter. Then type "NeoDSConvert -bios6 mslug". Press enter.

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

v0.1.1 5/6/2008
* Added level2 sprite cache in slot2 ram (if installed)
* Increased rom page size (fix grenades Metal Slug 1)
* Fix interrupt acknowledge (fix Metal Slug 2)
* Fix tile layer palette update (Last Blade 2 gui)
* Update converter to use latest MAME data (fix issues with King of Fighters 98, etc)
* Thanks to FluBBa for a DAA Z80 instruction that doesnt need a stupid lookup table (saves ram)
* Fixed -bios options in NeoDSConvert
 

[OCEAN]

Sakura's Bank Manager
Joined
Aug 14, 2003
Posts
747
Tried this yesterday and I'm pretty impressed. Almost all the games I tried were working at 55-60fps. It's amazing to see big Neogeo roms running in a machine with only 4MB of RAM.

Note that the RAM expansion is not necessary to run the new version, just optional. It seems that a slot 2 flash cart with external RAM (i.e. supercard lite) will also work. Haven't tried this option yet though.

Now let's hope that the author achieves FM sound emulation... WiFi multiplayer would kick ass also :drool_2:
 

Neo Alec

Legendary Member?
25 Year Member
Joined
Dec 7, 2000
Posts
14,211
How does the emulator deal with the DS screen resolution?
 

fenikso

Buriki-One Fight Promoter
15 Year Member
Joined
Oct 6, 2004
Posts
4,029
Verythrax said:
Everybody always comment about www.bamboogaming.com.

I would recommend getting Acekard RPG [slot-1] (have an extra1gb chip) + EZFlashV exp cart [slot-2] combo.

There are 3 types of slot-2 expansion:

- ram expansion to play GBA games (without that no GBA for you);
- ram expansion to browser/apps;
- rumble pack.

EZFlash V have all those options built-in.

So, you don't need the NDS Browser exp pack to run the emu. But I'm not really sure if you can use it instead of the "third-parties" versions ;)

I'm using Supercard lite, and oooold flashcart slot-2 solution that have built in ram for GBA games. Someone had the original emu patched to run on these. Otherwise, you'll need a slot-1 solution (and a slot-2 exp, if you want).

The newe version of the emu uses the extra ram to increase speed and compatibility (the ds without exp have only 4mb ram!) it's a small miracle make the neo run with only this!
I've ordered the AceKard and EZFlash V from Bamboo. I'll let you guys know how it works when it arrives.

I also already have the DS web browser, so I'll be able to test that out for slot2 memory expansion.
 

[OCEAN]

Sakura's Bank Manager
Joined
Aug 14, 2003
Posts
747
Neo Alec said:
How does the emulator deal with the DS screen resolution?

You can choose between using the native neogeo resolution (thus, cropping the borders of the image due to the DS's smaller resolution) or downscale the whole image to fit completely into the screen.

I find it quite nicer to use the original resolution. In many games loosing the borders is not critical, but in others you loose vital info (a whole column in MD3 for example) so you can't play them without scaling.

[OCEAN]
 

Verythrax

OWES ROT MONEY!
Joined
Nov 25, 2003
Posts
4,553
Anyone got Last Blade 2 to work?

It doens't work with the slot2 fixed version. Do anyone successfully made it work in a slot1 cart?
 

Verythrax

OWES ROT MONEY!
Joined
Nov 25, 2003
Posts
4,553
Bump!

It runs MOTW :drool:

I need to say that the scaling is not a big deal, since it can be done in real time, and in some game is difficult to spot differences, due some pixelation from the downscaling. in KOF96 it makes the lifebars look terrible, but MOTW is just beautiful (46fps)
 

IcBlUsCrN

Vanessa's Drinking Buddy
Joined
Mar 13, 2008
Posts
1,184
Verythrax said:
Anyone got Last Blade 2 to work?

It doens't work with the slot2 fixed version. Do anyone successfully made it work in a slot1 cart?
nope shows a bank error on r4 slot 1 Samurai Showown 5 does the same thing...... SS2+ss4 work fine
svc works nice, more importantly captain tomaday looks sweet

MSG-x wont run


Also found out pulstar runs better with the slower clock fyi.
 
Last edited:

Soniku

Mai's Tabloid Photographer
Joined
Apr 12, 2003
Posts
2,128
I gotta find all my DS crap (scattered around my room) and try this shit.

Finally, decent portable fighters that don't require the use of shoulder buttons, or holding down face buttons to determine whether or not you're using light or hard.
 

fenikso

Buriki-One Fight Promoter
15 Year Member
Joined
Oct 6, 2004
Posts
4,029
I finally got to try this out last night. The only thing I've been able to get to run is Metal Slug. The conversion program won't recognize the other roms I've downloaded.

Pretty cool little program though, and it works without too much fuss for a change.

It'd be nice if the author would add letting you set controls and if he added a pause button (I know that the MVS had one in the hard dips).
 

Verythrax

OWES ROT MONEY!
Joined
Nov 25, 2003
Posts
4,553
I finally got to try this out last night. The only thing I've been able to get to run is Metal Slug. The conversion program won't recognize the other roms I've downloaded.

Pretty cool little program though, and it works without too much fuss for a change.

It'd be nice if the author would add letting you set controls and if he added a pause button (I know that the MVS had one in the hard dips).


Be sure to have the correct mame set, with the zip name and rom names correct.

If I remember correctly, the game pauses if you call the "load rom" list. Hit cancel to resume.
 
Top