English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   project.CARE (https://eab.abime.net/forumdisplay.php?f=58)
-   -   Porting Neo Geo game to Amiga (https://eab.abime.net/showthread.php?t=74095)

Gunnar 15 June 2014 03:36

Porting Neo Geo game to Amiga
 
I have to say I really really like NEO GEO games.

NEO GEO has many very high quality titles which are done with a lot of love for details.
Metal Slug is one of my all time favorites.

It would be awesome to play these titles on AMIGA.

How are the chances for this?

alexh 15 June 2014 09:57

For fast 060 turbo cards it is very possible. Maybe even fast 030 cards. The main requirement would be an MMU.

An attempt was made last year to resource the neogeo games and port to a 16MHz 14 Mbyte Atari Falcon.
http://atari-forum.com/viewtopic.php?f=68&t=25780

AnimaInCorpore 15 June 2014 10:07

Quote:

Originally Posted by Gunnar (Post 959819)
It would be awesome to play these titles on AMIGA.

How are the chances for this?

Actually the emulator requires a MC68030 CPU with a MMU so later CPUs will not work due to the different bus error handling. In fact the bus error handling on the MC68040 and MC68060 is also rather limited compared to the MC68030 so I even don't know if an emulation based on the current technique will ever work on those systems. This is a little unfortunate because it would be nice to have a MC68060 version for the best emulation experience.

Also the graphics emulation is quite simple with a "hi-colour mode" like the Atari Falcon has. I am not sure what graphic modes are comparable (and standard) on the faster Amigas.

So in general I would say it's not impossible but tricky and needs some investigation. ;)

Cheers
Sascha

Gunnar 15 June 2014 10:25

Hi Sascha,

Did I understand this right, did you do the NEO-GEO emulator?

Can you please explain a little bit how the chipset is accessed on NEO-GEO,
so that we understand what would be needed to emulate it?


Lets say you would have an AMIGA with the following specs.
Fast 68k CPU > 100 MIPS
128 MB fast memory
15bit direct color framebuffer

How much effort would you estimate to get the NEO-GEO emulator running?
Could all NEO GEO games run this way?

Cheers
Gunnar

AnimaInCorpore 15 June 2014 11:34

Quote:

Originally Posted by Gunnar (Post 959837)
Did I understand this right, did you do the NEO-GEO emulator?

Correct. ;)

Quote:

Originally Posted by Gunnar (Post 959837)
Can you please explain a little bit how the chipset is accessed on NEO-GEO,
so that we understand what would be needed to emulate it?

Well, alexh already posted the link to the Atari Forum discussion and I strongly recommend to read the whole thread to understand how it works and why the emulation is (currently) not working on an MC68060.

The Neo Geo hardware is rather simple compared to a computer like the Amiga yet more powerful for sprite based games. E.g. it doesn't have/need controllers for like data storage or serial ports so there are only a few hardware registers. The sprite interface is also very "special" but it's a straight forward implementation and everything you see on the screen (except for the text layer) is comprised of sprites so the current emulation program on the Atari Falcon fits in only about 20 kilobytes.

There is a very good development related Neo Geo website which was my only source while developing the emulator and is really helpful to understand the Neo Geo system.

Quote:

Originally Posted by Gunnar (Post 959837)
Lets say you would have an AMIGA with the following specs.
Fast 68k CPU > 100 MIPS
128 MB fast memory
15bit direct color framebuffer

Well, performance wise that would be ideal.

Quote:

Originally Posted by Gunnar (Post 959837)
How much effort would you estimate to get the NEO-GEO emulator running?

This depends only on the question if the MC68060 bus error handling is "good" enough for the current approach. Unfortunately I don't have a accelerated machine here to make some tests on. Running the Neo Geo emulator in an emulator environment doesn't work and so debugging on a real hardware with altered MMU tables is really challenging. ;)

Quote:

Originally Posted by Gunnar (Post 959837)
Could all NEO GEO games run this way?

So far mostly will. However there are some games which do some nasty stack frame modifications (at least Viewpoint does it) but that issue could be patched. Self modifying code is also very rare on ROM based systems. ;)

Cheers
Sascha

Gunnar 15 June 2014 12:00

Hi Sascha,

Quote:

Originally Posted by AnimaInCorpore (Post 959842)
Correct. ;)
There is a very good development related Neo Geo website which was my only source while developing the emulator and is really helpful to understand the Neo Geo system.

Thanks for the pointer.


Quote:

Originally Posted by AnimaInCorpore (Post 959842)
Well, performance wise that would be ideal.

Great.
Would you be interested in doing a port for AMIGA with such a system?
How long would you think would it need to get it running?


Quote:

Originally Posted by AnimaInCorpore (Post 959842)
Unfortunately I don't have a accelerated machine here to make some tests on.

Would it help you if I provide such an accelerated AMIGA to you?


Quote:

Originally Posted by AnimaInCorpore (Post 959842)
Running the Neo Geo emulator in an emulator environment doesn't work and so debugging on a real hardware with altered MMU tables is really challenging. ;)

I agree.


Quote:

Originally Posted by AnimaInCorpore (Post 959842)
So far mostly will. However there are some games which do some nasty stack frame modifications (at least Viewpoint does it) but that issue could be patched.

Do I understand this right that the NEO-GEO game depends on 68000 stack-frame. This means if you fast AMIGA can use 68_000 stack frames this would solve this?



Cheers
Gunnar

AnimaInCorpore 15 June 2014 14:12

Quote:

Originally Posted by Gunnar (Post 959845)
Would you be interested in doing a port for AMIGA with such a system?
How long would you think would it need to get it running?

Well, sure. At first I would check the bus error handling behaviour of the MC68060. This will decide if it will be easy or hard to get the emulator working.

Quote:

Originally Posted by Gunnar (Post 959845)
Would it help you if I provide such an accelerated AMIGA to you?

Of course this would help a lot. We need to talk... :D

Quote:

Originally Posted by Gunnar (Post 959845)
Do I understand this right that the NEO-GEO game depends on 68000 stack-frame. This means if you fast AMIGA can use 68_000 stack frames this would solve this?

The MC68000 stack frame is different compared to later CPUs in case of an interrupt or an exception and modifying those parameters is a bad but quite common habit. However, I see no problem for an automatically detection and patch.

Cheers
Sascha

s2325 15 June 2014 15:29

New unofficial Metal Slug for Gameboy have less graphics and lower resolution, maybe it's easier to use this version: https://www.youtube.com/watch?featur...yVWjAkX_c#t=12 or simplified version from GameBoy Advance.

kipper2k 15 June 2014 16:58

Sounds like Gunnar is talking about an A600 with a Vampire running a Phoenix core, just a guess :)

Gunnar 15 June 2014 17:53

Hi Sascha,

The NEO-GEO really sounds interesting.
My kids like love NEO-GEO games... (and I have to admit I like them too)
To be able to tun them on AMIGA would be really cool.


The CPU that we have here is no 68060.
We call it Apollo-Phoenix - its a very fast 68000 (with support for many 68020/68060 instruction) but with 68000 stackframe

From what we discussed the features to map address spaces and to "monitor" writes to certain areas are sufficient to do the NEO-GEO emulation.

I understood you that your emulator uses a 16bit framebuffer.
We expect to have more development systems with RGB framebuffers in some weeks. I'll send get back to you.

Would be great if we could get a quick port running of your NEO-GEO emulator on AMIGA together...


While I could certainly help with some level stuff.
Maybe we find someone with MUI skills to help to create a nice AMIGA user interface quickly.

dlfrsilver 15 June 2014 17:56

on mame030, the emulation runs at 3 fps on my 1230@50mhz.

I hope that sascha's emu will run better :) However, i remember a chat with CFOU!, and he told me that in ASM, neogeo games would run great on A1200 with fastmem and fast processor.

kipper2k 15 June 2014 18:19

there are definately some nice games on Neo Geo, it would be nice to see them running on an Amiga

Gunnar 15 June 2014 18:33

Quote:

Originally Posted by dlfrsilver (Post 959875)
on mame030, the emulation runs at 3 fps on my 1230@50mhz.
.

And what is original speed 50FPS or 25FPS or 60 FPS?

dlfrsilver 15 June 2014 18:37

60 fps.

Gunnar 15 June 2014 18:40

Quote:

Originally Posted by dlfrsilver (Post 959881)
60 fps.

Ah ok so you just need a 68030@1000 Mhz and then Mame will run 100% NEO GEO speed?

Saschas Emulator seems to be faster....

dlfrsilver 15 June 2014 18:42

mame030 is damn slow, true, but it's not optimised. I guess that for emulating such a system, the emulator needs to be coded in ASM. C is too dog slow.

AnimaInCorpore 15 June 2014 21:19

Quote:

New unofficial Metal Slug for Gameboy have less graphics and lower resolution, maybe it's easier to use this version: https://www.youtube.com/watch?featur...yVWjAkX_c#t=12 or simplified version from GameBoy Advance.
Unfortunately I don't think so: the sprite conversion would be too much work. ;)

Quote:

Originally Posted by Gunnar (Post 959872)
The CPU that we have here is no 68060.
We call it Apollo-Phoenix - its a very fast 68000 (with support for many 68020/68060 instruction) but with 68000 stackframe

From what we discussed the features to map address spaces and to "monitor" writes to certain areas are sufficient to do the NEO-GEO emulation.

Yes. As far as I understand the things we discussed earlier are indeed sufficient for a port. However, a version for this machine will be a very special one and will not work on other accelerators.

Quote:

Originally Posted by Gunnar (Post 959872)
I understood you that your emulator uses a 16bit framebuffer.
We expect to have more development systems with RGB framebuffers in some weeks. I'll send get back to you.

Would be great if we could get a quick port running of your NEO-GEO emulator on AMIGA together...

While I could certainly help with some level stuff.
Maybe we find someone with MUI skills to help to create a nice AMIGA user interface quickly.

Let's see what's possible. ;)

Cheers
Sascha


All times are GMT +2. The time now is 08:03.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.05413 seconds with 11 queries