PDA

View Full Version : NEO4ALL/AES alpha-preview coming soon !



chui
November 28th, 2005, 10:59
NEO4ALL/AES is a NEO4ALL fork using MMU for load large NEOGEO home console roms.

Yesterday, Fox68k and me tested first playable pre-alpha version and Metal Slug X (64MB rom) is very playable !!!! Theoretically, 298 games will be supported.

A few days, i hope release a alpha-preview for testing everybody.

DARKGATE
November 28th, 2005, 11:36
o_o oh my goooooooooooddddd !!!!!!!!!!!!!!!!!!!

=D BEAUTIFULL!!!!!

Chiu i made a list of compatibility =D WHEN put the release.
Great news *_*.
I hope of play KIZUNA ENCOUNTER too much beauty.

quzar
November 28th, 2005, 11:43
Wow, and I had just gotten MVS code running a bit ago too. I hadn't thought to use the mmu in such a fashion though, I'll have to see how you do it when it get's released, although this being a fork won't be good for it.

You most definetly mean MVS and not AES as there does not exist a proper AES emulator out there (look at your code, if you have pd4990 emulation, it's not AES ;) )

chui
November 28th, 2005, 12:12
o_o oh my goooooooooooddddd !!!!!!!!!!!!!!!!!!!

=D BEAUTIFULL!!!!!

Chiu i made a list of compatibility =D WHEN put the release.
Great news *_*.
I hope of play KIZUNA ENCOUNTER too much beauty.

See attatch file.




Wow, and I had just gotten MVS code running a bit ago too. I hadn't thought to use the mmu in such a fashion though, I'll have to see how you do it when it get's released, although this being a fork won't be good for it.

You most definetly mean MVS and not AES as there does not exist a proper AES emulator out there (look at your code, if you have pd4990 emulation, it's not AES ;) )

My mmu_file/mmu_handle library will be LGPL, you will can use if you want it.

About AES, only it's a name but will need 'aes-bios.bin' for working, and it emulate home version, so no insert-coint but select button.

DARKGATE
November 28th, 2005, 12:40
i see the list, but i don't uderstand you have tried all the games and work in the emu?

DARKGATE
November 28th, 2005, 12:42
Great QUZAR i wait also you news ;), you neo geo emu, and pc-engine =).

Zherae
November 28th, 2005, 13:08
What's MMU? If you loaded a rom that big is it possible to apply the same logic to emulate other systems with large storage media?

quzar
November 28th, 2005, 13:32
MMU stands for Memory Management Unit. What it does is allows the user to set up a memory map of up to (iirc) 512mb that can consist of virtual memory addresses. If one of the virtual memory addresses is called, then it can trigger a fnction to load the actual data into memory.

In theory it can be used like this, and I proposed such ability of usage for emulation a while ago on dcemulation, but there isn't much gain in doing so compared to a completely software version of the same thing (using queues to determine what is loaded into memory and such) and there is a high chance for mapped spaces to accidentally clash with the rest of the program.

chui
November 28th, 2005, 13:35
MMU hardware is memory management unit, allows and manages virtual memory, so NEO4ALL/AES loads rom on demand.

It is hard to use it, but my final university project (http://sourceforge.net/projects/extensor) was a micro-kernel and uses MMU.

With Metal Slug X (64MBytes rom) can see that working-set for first game stage is 7040 KBytes, so only you need 7-8 MBytes for playing first state.

The key is prefetch and page-fail algorithms for minimal and fast loads.

dcsteve
November 28th, 2005, 14:46
Unbelievable! We will soon be able to play games that nobody would have imagined would be seen on dreamcast.

chui
November 28th, 2005, 14:54
i see the list, but i don't uderstand you have tried all the games and work in the emu?
Now, NEO4ALL/AES is early stage, but theoretically it can run all games of this list, after we have to see if all games are playables.




Unbelievable! We will soon be able to play games that nobody would have imagined would be seen on dreamcast.
Yes, really unbelievable ... but the speed and playability of UAE4ALL and NEO4ALL/CD too.


:D

dcsteve
November 28th, 2005, 16:21
Youve already managed to do what many believed was near impossible simply due to nice playablity of UAE4all and incredable/perfect looking gameplay on neo4all. I wonder whats going to happen with snes4all.

zagal
November 28th, 2005, 17:46
You're GOD boy!!! :D

This is the most biggest step on the DC!!!!! With this... is posibility emulate other machines.... Crystal Systems... CPS1-2... ufff...

Txs! ;)

Tatoon
November 28th, 2005, 18:51
...and Nintendo64 ??? :eek: :eek:

Chui & Fox68K, you are the... :p
...sois la leche, coño (con perdón)

zagal
November 28th, 2005, 19:23
Tatoon... núnca mejor dicho ;) Esta gente es imparable!! Up the scene! ^^

M Dash
November 28th, 2005, 21:02
Chui & Fox68K... You guys and all the people that help you out are GENIOUS! specially you two! I'm dyeing to try KoF 2003 on my Dreamcast! I hope that a good emulation rate is achieved! :D

Kairo Hayime
November 28th, 2005, 21:18
Demonios Chui y Fox68K, son unos malditos demonios de la Emulacion O_O, aqui en Chile les creare un monumento por ustedes, jugar Neo Geo los roms en la DC O_O mueroooooo, jugar Kof2K3 o SVC Chaos, waooooo, son de lo mejor chicos, y si pudieron hacer esto, con los roms de Snes que son mas pequeños que podras hacer Woo, quede anonadado pero muy feliz, chicos existe la posibilidad de hacer algo como el Final Burn para la DC?, es que tengo muchos Shooters que son legendarios y me encantaria jugar en mi blanca, bueno no los molesto mas ya que dan una noticia buena y nosotros les pedimos como 374687234687 proyectos XD, saludos !!!! y felicitaciones por ser tan maestros!!!

omer
November 28th, 2005, 21:26
Chui and Fox68K are geniuses :))))

So, now, It might be possible to have a good divx player ?

obelisk
November 28th, 2005, 22:15
Excellent!
will this "mmu" thing be able to help other projects, such as Quzar's TG16 emu, GPF's GBA emu, and other killer diller stuff like Genesis and SNES? Maybe even new C=64, Vic20, Intellivision, LYNX, etc, etc, etc. If this is true, WooooHoooo, and etcetera, says obelisk who knows nothing about coding, but is highly excited at word of this stuff!!!
Chui, you, Fox68k & your team rock the Planet!
Dreamcast Lives!!!!

quzar
November 28th, 2005, 23:06
not really. it won't necessarily work with all neo geo games either. what it bases itself on is that in any prolonged period of time, the hardware only tries to access, maybe 8mb of a game. If you have it start up by loading only the files (since neogeo games are split into one file per rom chip) that are being read at that moment, then unloading the ones that were not used in a long time and loading in ones that are being requested, it would give you a lot of slowdown (while reading disc) everytime you need to load in a new rom. Basically this will only work for games where data is stored in clumps based on what level you are in.

I'm not sure how chui is doing it, but if it is a per-file basis, it might not work as well as if he would have lets say, just 256kb chuncks of files.

It won't at all help the tg16 emulator, or genesis or snes or any of the other systems you listed. also, this is a very old thing, not something that chui wrote, and has been a feature of kos for a long time. It MIGHT be able to be used to play large games for gba or n64, but, it would also not work properly for all games (and by that i mean, would have massive slowdown). The speed and ability to which it work depends on the individual game and how much free ram you have to use as a buffer.

obelisk
November 28th, 2005, 23:27
as always- i stand correctead.


but hey, quzar, you should see if anyone from dciberia might co-op upgrade the tg16 emu with you, and like, make like a superhero coder crew.

chui
November 29th, 2005, 10:26
not really. it won't necessarily work with all neo geo games either. what it bases itself on is that in any prolonged period of time, the hardware only tries to access, maybe 8mb of a game. If you have it start up by loading only the files (since neogeo games are split into one file per rom chip) that are being read at that moment, then unloading the ones that were not used in a long time and loading in ones that are being requested, it would give you a lot of slowdown (while reading disc) everytime you need to load in a new rom. Basically this will only work for games where data is stored in clumps based on what level you are in
I'm not sure how chui is doing it, but if it is a per-file basis, it might not work as well as if he would have lets say, just 256kb chuncks of files...
It is not true, all roms are out of order, so appropriate prefetch is the key. After, game working-set is not very large (game depend), i think that some games won't be playables because large working-set and you will have to play without sound for cut out working-set.
Also, for playing to NEO4ALL/AES, you will need convert NEOGEO rom first to correct format.
I made a rom converter program for Windows and GNU/Linux, this program will have a little prefetch map database for each game.




...
It won't at all help the tg16 emulator, or genesis or snes or any of the other systems you listed. also, this is a very old thing, not something that chui wrote, and has been a feature of kos for a long time.
...
Did you try MMU with KOS? Only can simple map memory and it is not enough.
I had to patch KOS for work store queues and direct render, also i captured real SH4 exceptions for speed up.




....
It MIGHT be able to be used to play large games for gba or n64, but, it would also not work properly for all games (and by that i mean, would have massive slowdown). The speed and ability to which it work depends on the individual game and how much free ram you have to use as a buffer.
...
Dreamcast never can emulate n64 properly, it is not possible.
About gba, Dreamcast emulator could be possible if we could run gba ARM code under Dreamcast ARM capturing exceptions and mapping SRAM .. and i don't know if this is possible.

quzar
November 29th, 2005, 10:36
Did you try MMU with KOS? Only can simple map memory and it is not enough.
I had to patch KOS for work store queues and direct render, also i captured real SH4 exceptions for speed up.




Dreamcast never can emulate n64 properly, it is not possible.
About gba, Dreamcast emulator could be possible if we could run gba ARM code under Dreamcast ARM capturing exceptions and mapping SRAM .. and i don't know if this is possible.

I have tried the mmu in kos. I know how I would use it if I were to make a system to use large roms, and it could also be done in software, with very little speed loss as the big loss will come when you are reading files off disc, to which the few ms you save won't make much difference.

Rand Linden thought N64 emulation on the dreamcast was possible, and he knows the dreamcast much better than anyone out there.

It is probably possible to run arm code on the Dreamcast's arm, BUT it is a lower version than the gba's and does not support thumb code, so it is not possible to directly run gba code on it.

arqueiro
November 29th, 2005, 11:13
wonderfull, chui you are the man !

SiZiOUS
November 29th, 2005, 16:20
That's right : UNBELIEVABLE !!! Nice work, i'm waiting for this version !!! :D

obelisk
November 29th, 2005, 20:17
prefetch maps = the future. (maybe for more than 1 system, i hope)
Hey Chui, yeah! this means with people making prefetch maps, to like thier vmu, maybe via a little speed reader to chuck into vmu, then upload to the web, we could have prefetch databases for lots of stuff, eh chui??? or is such a thing possible, or worthwhile, or should we have a program on PC to get the data, and upload it to you via a central thingy??? sound good?
would this help with Intellivision and MESS type stuff?

benoitlol
November 29th, 2005, 22:40
WOwww!!! This is simply wonderful!!
I've never thought something like that could be released, that's so amazing!!
Thank you for your work this is so great !!! ;)

quzar
November 29th, 2005, 23:49
prefetch maps = the future. (maybe for more than 1 system, i hope)
Hey Chui, yeah! this means with people making prefetch maps, to like thier vmu, maybe via a little speed reader to chuck into vmu, then upload to the web, we could have prefetch databases for lots of stuff, eh chui??? or is such a thing possible, or worthwhile, or should we have a program on PC to get the data, and upload it to you via a central thingy??? sound good?
would this help with Intellivision and MESS type stuff?

you are misunderstanding the use of the technology. This can only be used to do two things: 1)map large virtual files with hooks to load parts of them and 2) remapping addresses to get slightly faster and slightly lower level emulation.

obelisk
November 30th, 2005, 04:34
i have no clue at all. not just in video games, technology, etc.... but also people skills, and tons more.

im a terminal dumbass.

VampiricS
November 30th, 2005, 05:18
Obelisk, no need to feel like a dumb person you know, everyone is good at what they're good at. And anyway any improvement is a good thing, and it all depends about using the technology properly to get it to its fullest use. At least it seems that Chui found a way to use it properly for his stuff, which is nice to hear.

zagal
November 30th, 2005, 13:08
For the people... N64 isn's posible emulate in DC... only is a small posibility only emulate a single rom "tipe bleemcast" is more posibility but... is the same... very dificult.

chui
November 30th, 2005, 13:53
It is not the same, you have not emulate a 100MHz CPU + 60MHz Copro with 200MHz, it is ridiculous.

toxie
November 30th, 2005, 14:06
Actually it could be possible.. UltraHLE used a high level interpretor to speed up emulation and as far as i remember most games ran fine on my K6-200 with VoodooI back then..

xor
November 30th, 2005, 14:28
well, ULTRAHLE used dynamic recompilation of the program code, and since dynamic recompilation most often also requires the native code to be present since the recompiler often does not know what is code and what is data, alot of RAM is needed to keep both native code and recompiled code in memory.

GREAT work chui and fox68k on this progress! so how do you generate these prefetch maps? do you play through the games with some sort of logger that dumps rom access information which is then mapped into usage on a level by level basis? sounds intriguing either way, very ingenious of you guys!

toxie
November 30th, 2005, 15:00
@xor: this is of course right.. same problem with the average n64-rom-size also.. but as chui is working on the memory-problem this could be solved someday.. =)

btw: excellent work guys (same for neo4all, uae4all and dcastaway of course.. especially dcastaway is THE bomb! it even runs most of the scene-demos i tried at 100% speed.. btw: have you received my memorycard-save-bug-report (neo4all), chui? would be SO cool if you could fix that, pleeeeeease.. ;)

chui
November 30th, 2005, 15:15
For mapping, i have compiled a special NEO4ALL/AES with #define AES_PREFETCHING flag; after play with this special NEO4ALL/AES and when cache is full, exit dumping map throw BBA (64KBytes).

If you include this dump prefetch to my rom converter program, it generate a file with rom game, rom bios and prefetch for playing with real emulator.

Actually, i am mapping Metal Slug X and i have can play with special NEO4ALL/AES until middle second stage with 10MB cache. But now i have not time for testing it in real emulator, i hope play this night play normaly. :D

I would like build a little database with the 298 games supported, logically i will need help of beta-testers for trying and dumping maps.

chui
November 30th, 2005, 15:31
... have you received my memorycard-save-bug-report (neo4all), chui? would be SO cool if you could fix that, pleeeeeease.. ;)

I did not receive any report about save to memory card, please send me it to [email protected]. I need a good explain of the problem, with a game example.

Also i have to solve long-time SDL bug (freeze after 84 minutes).

toxie
November 30th, 2005, 16:02
I've mailed you the report again..

And that SDL bug is also very weird (at least i know now that it's a bug in Neo4All.. I always thought my good ol' DC was screwing up after some time.. =)
I don't know the DC-SDL-Implementation, but could it be some kind of timer-overflow or something?!

chui
November 30th, 2005, 16:31
I've mailed you the report again..
Thanks, i caught it!




...
And that SDL bug is also very weird (at least i know now that it's a bug in Neo4All.. I always thought my good ol' DC was screwing up after some time.. =)
I don't know the DC-SDL-Implementation, but could it be some kind of timer-overflow or something?!

Yes, i think that it is a overflow between 64bit of KOS time function and 32bit SDL_GetTicks overflow, i had tried to fix but not work yet.

fox68k
November 30th, 2005, 20:47
Yes, i think that it is a overflow between 64bit of KOS time function and 32bit SDL_GetTicks overflow, i had tried to fix but not work yet.

I do not think so mate. I guess it is an overflow on your own. I try to explain you my thoughts next:

You said somewhere the emulators crash after 84 mins. Making some good use of basic math ops, i found this:

* 84 mins * 60 segs/1min * 1000msecs/1seg = 5 040 000 msecs

* 84 mins * 60 segs/1min * 1000msecs/1seg * 1000usecs/1msec = 5 040 000 000 usecs


You are probably asking yourself why i put two equations instead of one? Got it? If the way remains dark still, go ahead with this:

The lastest calculated value is somewhat familiar. It is a bit higher than the maximum allowed value for 32-bit unsigned integers. I guess the value returned by SDL_GetTicks is a 32-bit unsigned integer and it returns time in milliseconds, right? If so, let me do some maths more (i love maths =P) to calculate the time required to wrap:

* 2^32 msecs * 1sec/1000msecs * 1min/60segs * 1hour/60mins * 1day/24 hours = roughly 49 days.

* 2^32 usecs * 1msec/1000usecs * 1sec/1000msecs * 1min/60segs = roughly 70 mins.

Interesting. Not yet? Then, think about the time unit used by the KOS function and the one you return from your implementation.

Greetings.

chui
December 1st, 2005, 10:41
Really, SDL_GetTicks returns 32bit msecs using 64bit usecs of timer_us_gettime64 function. i have tried a couple of fixes but not work. Maybe timer_us_gettime64 implementation have overflow, for example only use 48bit of 64bit for any reason.

Back to NEO4ALL/AES; yesterday night i have tried Metal Slug X with prefetching and works ok but it run not full speed because neogeo memory switching is secure mode (get_context->modify->set_context) ... We have to speed up this operation using direct access to FAME memory table .... I NEED YOU FOX !

Also, i have tried Art of Fight 1 (16MB rom) and works very very fine, i remember that AOF1 not works with NEO4ALL/CD.

Tatoon
December 1st, 2005, 12:36
Going on, Chui & Fox68K... All Dreamcast scene around the world are expected from you. Countdowning...

Ánimo, que sois los mejores. "Spanish Scene Power"... juas ¡¡¡

Andore
December 1st, 2005, 14:41
This emu has sound?

chui
December 1st, 2005, 17:11
This emu has sound?

Yes, of course, it is a NEO4ALL/CD fork, including all features and bugs :D

zagal
December 1st, 2005, 22:41
One question.... when you play to Metal Slug "is the only game i've got of Neo Geo CD xD" the sound when you gave a diamant... is normal? is diferent of the others emulators. Is a bug?

Is only a question no is a problem because is suficient that emu runs great! ^^

Great job Chui & Fox!

PD.: Sorry 4 my english... I'm spanish :P

chui
December 1st, 2005, 23:11
Try to use new synchonize option on beta4 and normal clocking for Z80.

elefas
December 2nd, 2005, 09:56
Very very interesting and promising news! keep up the work folks!

ssj4
December 4th, 2005, 06:01
:eek: I was so happy when I 1st heard that there was A NeoGeo Emulator for the DC that I created this account so I could tell You guys that!

I can't wait to try this emulator out Man. If it could only run Metal slug X it would be worth my last 5 CR-R's.

How hard is it to burn onto A CD-R anyway? Not to sound like A Nag or anything...

Christuserloeser
December 4th, 2005, 17:54
Try BootDreams:
http://www.consolevision.com/members/fackue

Download the CD version of the emulator here:
http://www.chui.dcemu.co.uk/

then all you need to do is google the NeoGeoCD BIOS which should be 512 KByte big

Install BootDreams, put the emu along with the BIOS inside a folder, start BootDreams and you're done. ;)

Edit:

If you never before burned anything for Dreamcast, start with the releases we offer for you at http://www.DCEvolution.net/

Use Alcohol120% in TAO mode to burn.

ssj4
December 4th, 2005, 19:29
I was actually talking about the NEO4ALL/AES emulator chui is working on. And that I wanted to get the Alpha-preivew even if it could only run metal slug X on my dreamcast. I actually already have NeoCD. It's A great emulator BTW! Sorry If I confused Anyone :(

sleepyguy
December 5th, 2005, 17:07
Amazing work guys... I just registered to post this! :)

Been using Neo4all beta3 for quite some time now... if AES support works all out this definately the #1 homebrew for DC bar none imho :) Great work again!

Cast128dreams
December 5th, 2005, 17:50
Oh my GOD!!
GUYS you are awesome.......

Andore
December 5th, 2005, 19:01
Any progress?