NeoDS - Neo Geo AES/MVS Emulator

Discussion in 'User Submitted News' started by khan, Apr 29, 2008.

Apr 29, 2008

NeoDS - Neo Geo AES/MVS Emulator by khan at 12:51 PM (55,423 Views / 0 Likes) 308 replies

  1. khan
    OP

    Member khan GBAtemp Maniac

    Joined:
    Mar 17, 2003
    Messages:
    1,320
    Country:
    Pakistan
    This is the first release of NeoGeo emu on DS, developed by ingramb.

    I am at uni, can someone plz test this to see how good this emu is? readme is included in the zip file containing all the instructions.

    http://groups.google.com/group/neods
     


  2. Bob Evil

    Member Bob Evil The Department of Home-Made Insecurity

    Joined:
    Sep 27, 2006
    Messages:
    3,783
    Location:
    Out of the corner of your eye
    Country:
    United Kingdom
    Just downloaded it ... will try it with Metal Slug, AODK, Magical Drop3 & Ninja Master ...

    WARNING : This uses .neo NeoGeo roms ... not the normal NeoGeo roms ... thankfully, I have some lol


    Tried this with my CycloDS, and all of them roms I tried hanged on loading ... will try with a different cart ...

    No joy with my Supercard, either ... and the roms are good ... I use them with my handhelds gizmos ...

    Unless, this requires files with the .neo extension that aren't standard .neo files ...

    I will convert some NeoGeo .bins with the included software, and try again later ...
     
  3. raulpica

    Supervisor raulpica With your drill, thrust to the sky!

    Joined:
    Oct 23, 2007
    Messages:
    10,657
    Location:
    _____________ PowerLevel: 9001
    Country:
    Italy
    Can really a NeoGeo emulator work well and at an acceptable speed on a DS? I have my doubts [​IMG]

    Surely MSLUG3 won't work... There's not enough RAM for it [​IMG]
     
  4. Bob Evil

    Member Bob Evil The Department of Home-Made Insecurity

    Joined:
    Sep 27, 2006
    Messages:
    3,783
    Location:
    Out of the corner of your eye
    Country:
    United Kingdom
    I have a couple of handhelds from China that play NeoGeo games very well ... they have 64mb though ...
     
  5. khan
    OP

    Member khan GBAtemp Maniac

    Joined:
    Mar 17, 2003
    Messages:
    1,320
    Country:
    Pakistan
    AFAIK, you need to convert neogeo(mame compatible) games. See readme.
     
  6. Bob Evil

    Member Bob Evil The Department of Home-Made Insecurity

    Joined:
    Sep 27, 2006
    Messages:
    3,783
    Location:
    Out of the corner of your eye
    Country:
    United Kingdom
    I did [​IMG]

    It said to use .neo roms ... and I already have some .neo roms ... which work with other emulators and devices ...

    What I am saying is, this guy's .neo roms must be non-standard, which is why you have to compile them yourself ...
     
  7. raulpica

    Supervisor raulpica With your drill, thrust to the sky!

    Joined:
    Oct 23, 2007
    Messages:
    10,657
    Location:
    _____________ PowerLevel: 9001
    Country:
    Italy
    Yeah, it's the RAM the issue [​IMG] I believe that games like Puzzle Bobble (~4mb) will work at decent speeds [​IMG]
     
  8. teonintyfive

    Member teonintyfive GBAtemp Advanced Fan

    Joined:
    Oct 20, 2006
    Messages:
    791
    Location:
    Greece, Somewhere in Macedonia
    Country:
    Greece
    Metal Slug 3 was so power hungry? Too bad... it was the best Metal Slug.
     
  9. raulpica

    Supervisor raulpica With your drill, thrust to the sky!

    Joined:
    Oct 23, 2007
    Messages:
    10,657
    Location:
    _____________ PowerLevel: 9001
    Country:
    Italy
    Yeah, initially it didn't even work on the PSP (which is a LOT more powerful than the DS and has 32mb of RAM...) [​IMG]
    NJ (the one who made the PSP NeoGeo emu) had to do a lot of optimizing and a cache system to make it properly work with sound.
     
  10. khan
    OP

    Member khan GBAtemp Maniac

    Joined:
    Mar 17, 2003
    Messages:
    1,320
    Country:
    Pakistan
    So is this emu completely useless then? ingramb in his post on pocketheaven/gbadev boards says that he has been working on it for over a year.
     
  11. Bob Evil

    Member Bob Evil The Department of Home-Made Insecurity

    Joined:
    Sep 27, 2006
    Messages:
    3,783
    Location:
    Out of the corner of your eye
    Country:
    United Kingdom
    I got it to run Puzzle Bobble, and that was it ...
     
  12. raulpica

    Supervisor raulpica With your drill, thrust to the sky!

    Joined:
    Oct 23, 2007
    Messages:
    10,657
    Location:
    _____________ PowerLevel: 9001
    Country:
    Italy
    How it was? Playable? And the speed?
     
  13. Bob Evil

    Member Bob Evil The Department of Home-Made Insecurity

    Joined:
    Sep 27, 2006
    Messages:
    3,783
    Location:
    Out of the corner of your eye
    Country:
    United Kingdom
    The speed was normal ... no lag ... slow to load, but that's not really an issue ...
     
  14. mortys

    Newcomer mortys Advanced Member

    Joined:
    Aug 16, 2005
    Messages:
    82
    Country:
    France
    Maybe a solution to an N Eo Emu is to use the Neo CD instead of MVS Neo. Less ram use.
    And if it's to use MVS maybe a solution as on GP2X (streaming the rom), will be best for DS.
    In all cas, that's a great news and try to have a NEo Emu on DS.
     
  15. gizmo_gal

    Member gizmo_gal QWEEN of the RadioActive Force!!!

    Joined:
    Apr 10, 2008
    Messages:
    1,171
    Location:
    1st dimension, Earth
    Country:
    United States
    Aww...Oh well, better hope for updates people!
    That DONT occur less often then alphebetical planetary alignments...

    **HOPING HARD**


    EDIT:
    Actually, I'll be turning my focus to getting a GP2x soon so I dont really need to hope for a NeoDS to get updated, (not saying it wont be) because I intend to run all emulators and videos from my Gp2X when I get it and just use the DS for Homebrew and media [​IMG]
     
  16. mortys

    Newcomer mortys Advanced Member

    Joined:
    Aug 16, 2005
    Messages:
    82
    Country:
    France
    Somebody can tell me what must be the name and format of the neogeo bios ?
    Thx
     
  17. khan
    OP

    Member khan GBAtemp Maniac

    Joined:
    Mar 17, 2003
    Messages:
    1,320
    Country:
    Pakistan
    This emu is really awesome. As good as JEnesisDS if not better. I have tried Blues Journey, AOF, and KOF94 and all run near perfect with sound.

    Cannot believe that fully working emu is out for DS
     
  18. Sweater Fish Del

    Member Sweater Fish Del GBAtemp Regular

    Joined:
    Jul 8, 2006
    Messages:
    220
    Country:
    United States
    Have you tried using the converter that comes with the distribution rather than games you had already converted for use on another platform? Because most people are reporting pretty good compatibility. The 4MB RAM limit is not brick wall. Most Neo Geo games can and have been converted to use a sort of memory paging system that allows them to run on systems like the Dreamcast and GP2X, which also have nowehrre near enough RAM to hold an entire ROM at once. This is what the converter is for, I assume.

    I haven't used the emu myself yet since I'm still at work, but I've seen many comments from apparently reliable people saying that lots of games work.


    ...word is bondage...
     
  19. Hadrian

    Former Staff Hadrian Better than Craigslist

    Joined:
    Oct 12, 2004
    Messages:
    16,978
    Country:
    United Kingdom
    Some details from http://www.dcemu.co.uk/vbulletin/showthread.php?t=108952

    ingramb has today released a major shocker for the Nintendo DS Emulation Scene and that is a Neo Geo AES/MVS Emulator for Nintendo DS that he has been working on for a year. Games like windjammers, Metal Slug and Fatal Fury work either perfect of near perfect.

    Heres the full details

    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

    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

    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!

    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


    This is such a surprise! I expected this emulator to be NGPC, gonna give it a go. It comes with a converter for those who want .neo files.
     
  20. Bob Evil

    Member Bob Evil The Department of Home-Made Insecurity

    Joined:
    Sep 27, 2006
    Messages:
    3,783
    Location:
    Out of the corner of your eye
    Country:
    United Kingdom
    Yes, I just tried it now, and they work fine ...

    As I suspected, the .neo files it requires are not standard .neo files ... I posted this earlier ...
     

Share This Page