Why Slowdown?


Epicenter posted on Mar 29 2006 at 06:22 AM said:
The problem is the ports of NES emulators are ports with really slow C emulation cores. The 6502 core has to be ASM if it's going to run at any kind of a decent speed-- even if it runs at 60 FPS with the ARM9 at 300 MHz, there's no reason you should have to overclock that far to emulate a 1.79 MHz 8-bit chip like the 6502 when the 16-bit 68000 @ 16 MHz can be emulated at full speed with the ARM920T at 233 MHz. That's a programming efficiency issue right there. Same issue with most (I think ALL) of the Game Boy emulators so far!

When a fast ARM9 ASM core for 6502 emulation is found or written and implemented into an existing or new NES emulator it'll run at full speed .. probably with the ARM920T at 100 MHz, too. :p Give it time.


There are some ARM ASM cores out there. Just check FluBBas source code it is available. There is tons of ASM code there for the taking, just no ones has done it for some reason.

Then there is Little John NES emu on the *133 MHZ GP32*, it is near perfect and has alot of nice options. The source for that can be had as well. Why wouldn't that be ported to the GP2X? When NES and PC-Engine emus on a 16 MHz GBA with very little RAM beat the pants off of a 200 MHz GP2X you have to scratch your head. I guess maybe the wrong versions are being ported. These are being ported from bloated PC versions instead of the leaner GBA or GP32 versions for some reason. There should be no hardware reason why PC-Engine with CD and arcade card support and NES shouldn't run full speed with sound, FS0, and at 200 MHz on the GP2X.
 
Last edited by a moderator:
WrongEyedJesus posted on Mar 29 2006 at 04:02 AM said:
I agree with the optimising theory. I suspect there is a lot of polishing of apps going on, plus you have some collaborations of sorts going on with the SNES stuff. The PSX stuff is still ticking away. I reckon stuff will pick up again soon.

May we blame it on the nature of free software system? It's possible that the best minds are working on them with good intend, but there is no obiligation, either. It's not like I can just stop showing up at work because I got bored of work for a few weeks; but that's totally possible with this system. I guess, I can only wish... :(
 
Last edited by a moderator:
DaveC posted on Mar 29 2006 at 03:19 PM said:
Then there is Little John NES emu on the *133 MHZ GP32*, it is near perfect and has alot of nice options. The source for that can be had as well. Why wouldn't that be ported to the GP2X? When NES and PC-Engine emus on a 16 MHz GBA beat the pants off of a 200 MHz GP2X you have to scratch your head. I guess maybe the wrong versions are being ported. These are being ported from bloated PC versions instead of the leaner GBA or GP32 versions for some reason. There should be no hardware reason why PC-Engine with CD and arcade card support and NES shouldn't run full speed with sound, FS0, and at 200 MHz on the GP2X.
I'm sure I read somewhere that someone is porting Little John NES, although I'm not sure who.


Or I just imagined it...
 
Last edited by a moderator:
itsme posted on Mar 29 2006 at 04:59 PM said:
May we blame it on the nature of free software system? It's possible that the best minds are working on them with good intend, but there is no obiligation, either. It's not like I can just stop showing up at work because I got bored of work for a few weeks; but that's totally possible with this system. I guess, I can only wish... :(
Your comparison is quite flawed, to say the least. When you bought your gp2x (that is, assuming you have one :unsure: ), you were paying for the system along with GPH's firmware. You should be grateful for anything that you get beyond that. Developers have lives too, and many of them spend the majority of their free time coding for the gp2x and then releasing it all for free. As critical said, you would make more at McDonalds than you would ever make from donations for coding for the gp2x.

If you aren't happy with what's available on the gp2x, then make what you want yourself. Yeah, I know, you'll give the usual "I would but I don't know how to program" response. This response is a very weak excuse because every developer had to choose to start learning programming sometime, we aren't born with this knowledge. I only learned c++ in the last year, and I have already made a game for the gp2x. Honestly, get up off of your ass (figuratively, to learn programming you'll actually want to stay right where you are :p ) and learn to program, it's free ;)

EDIT: Sorry if this sounds too harsh, I didn't intend to make it that way but I had a very bad day (nothing to do with this).
 
Last edited by a moderator:
deadlychicken22 posted on Mar 29 2006 at 07:59 PM said:
itsme posted on Mar 29 2006 at 04:59 PM said:
May we blame it on the nature of free software system? It's possible that the best minds are working on them with good intend, but there is no obiligation, either. It's not like I can just stop showing up at work because I got bored of work for a few weeks; but that's totally possible with this system. I guess, I can only wish... :(
Your comparison is quite flawed, to say the least. When you bought your gp2x (that is, assuming you have one :unsure: ), you were paying for the system along with GPH's firmware. You should be grateful for anything that you get beyond that. Developers have lives too, and many of them spend the majority of their free time coding for the gp2x and then releasing it all for free. As critical said, you would make more at McDonalds than you would ever make from donations for coding for the gp2x.

If you aren't happy with what's available on the gp2x, then make what you want yourself. Yeah, I know, you'll give the usual "I would but I don't know how to program" response. This response is a very weak excuse because every developer had to choose to start learning programming sometime, we aren't born with this knowledge. I only learned c++ in the last year, and I have already made a game for the gp2x. Honestly, get up off of your ass (figuratively, to learn programming you'll actually want to stay right where you are :p ) and learn to program, it's free ;)

i didn't get the impression that he was knocking anybody. i think he was just saying with commercial software, if someone doesn't deliver, you have a number to call, but with free software you have to be happy with what you get, regardless of what's been posted on the roadmap or whatever. of course, as you said, there is the added benefit of being able to step in and write some code yourself, if you're up to it.
 
Last edited by a moderator:
deadlychicken22 posted on Mar 30 2006 at 12:59 AM said:
...This response is a very weak excuse because every developer had to choose to start learning programming sometime, we aren't born with this knowledge. I only learned c++ in the last year, and I have already made a game for the gp2x. Honestly, get up off of your ass (figuratively, to learn programming you'll actually want to stay right where you are :p ) and learn to program, it's free ;)

EDIT: Sorry if this sounds too harsh, I didn't intend to make it that way but I had a very bad day (nothing to do with this).


I agree with most of what you say as far as we shouldn't demand things. The thing is not everyone can or is able to code. I know I can't code a byte. I get baffled by BASIC or even HTML. It isn't for everyone and not everyone can do it, just like not everyone is good at art, playing a musical instrument, designing mechanical things etc. Some of us can draw, others code, some can make things and mod etc. It is good to try but coding is not for everyone. The solution? try to learn coding but if it is too much then contribute something that you are good at.
 
Last edited by a moderator:
DaveC posted on Mar 29 2006 at 10:19 AM said:
When NES and PC-Engine emus on a 16 MHz GBA with very little RAM beat the pants off of a 200 MHz GP2X you have to scratch your head. I guess maybe the wrong versions are being ported. These are being ported from bloated PC versions instead of the leaner GBA or GP32 versions for some reason.

The real issue is that you're porting C code which is abysmally slow next to ASM in pretty much every case. If there is a working ARM9 ASM core for the 6502 in that 'Little John' emulator it could be moved into a PC emulator based on SDL when it's ported over and bam, it should run at full speed.

At any rate, I think the biggest issue is that the GP32 community has had full-speed NES GB and MD emulation for years now. The GP2x adds the feasibility to emulate much heftier hardware, like high-clocked 68000s (NeoGeo, arcade systems, Amiga..) .. fancier VDPs like that in the SNES .. the focus is NOT on getting the GP2x to do what the GP32 does. When the motivation shifts away from pushing the GP2x to its limits, like when we fully understand where the limits are, there will be more focus on what the GP32 could do, like the NES/GB and so forth.
 
Last edited by a moderator:
Epicenter posted on Mar 30 2006 at 07:52 AM said:
The real issue is that you're porting C code which is abysmally slow next to ASM in pretty much every case. If there is a working ARM9 ASM core for the 6502 in that 'Little John' emulator it could be moved into a PC emulator based on SDL when it's ported over and bam, it should run at full speed.
Little John for the GP32 does indeed have a 6502 ARM core... I was looking at it yesterday lunchtime for other reasons. I believe torpor is working on porting LJP, which is the Palm thing.
 
Last edited by a moderator:
Epicenter posted on Mar 30 2006 at 06:52 AM said:
The real issue is that you're porting C code which is abysmally slow next to ASM in pretty much every case. If there is a working ARM9 ASM core for the 6502 in that 'Little John' emulator it could be moved into a PC emulator based on SDL when it's ported over and bam, it should run at full speed.

NK's emu uses the ASM 6502 core from Little John, as does fishyNES. LJ also uses ASM for the tile rendering IIRC, so that might be something to take a look at.
 
Last edited by a moderator:
critical posted on Mar 30 2006 at 08:33 AM said:
Epicenter posted on Mar 30 2006 at 07:52 AM said:
The real issue is that you're porting C code which is abysmally slow next to ASM in pretty much every case. If there is a working ARM9 ASM core for the 6502 in that 'Little John' emulator it could be moved into a PC emulator based on SDL when it's ported over and bam, it should run at full speed.
Little John for the GP32 does indeed have a 6502 ARM core... I was looking at it yesterday lunchtime for other reasons. I believe torpor is working on porting LJP, which is the Palm thing.


LJP has alot of Palmos stuff in it. The GP32 version is pretty clean as there is not alot of OS stuff to weed out, the Gp32 had a rudimentary OS. Either one though would produce better results than the PC based ones. Too bad the source is gone for GP-engine.
 
Last edited by a moderator:
DaveC posted on Mar 30 2006 at 03:55 AM said:
I agree with most of what you say as far as we shouldn't demand things. The thing is not everyone can or is able to code. I know I can't code a byte. I get baffled by BASIC or even HTML. It isn't for everyone and not everyone can do it, just like not everyone is good at art, playing a musical instrument, designing mechanical things etc. Some of us can draw, others code, some can make things and mod etc. It is good to try but coding is not for everyone. The solution? try to learn coding but if it is too much then contribute something that you are good at.
Learning to program isn't exactly easy, and because of this I think that many people give up before really giving it a chance. Yes, programming requires quite a bit of logic and, in most cases, a large amount of math, so not everyone can be great at it, but as with a musical instrument, the majority of people can, if they take the time, learn it at a decent level. However, if you really have trouble programming, there are, as you stated, other things that you can do to help the community. Most programmers would love to have someone do graphics and music/sound for them as most are not very good at drawing.

So, back on the original topic, "Why Slowdown?" Well, it's because you aren't making anything ;)
 
Last edited by a moderator:
i mentioned this in another topic a week or two ago. the initial flood of releases on the gp2x has been over for a few weeks. devs were chomping at the bit to get their software made for a new console so up until a few weeks ago there were loads of releases every day, i remember one weekend a while back there was something like 15 releases/news over a two day period.

you wont see that again but i think now the initial rush is over and done with you will start to see more quality releases instead of quantity i.e. brand new games, optimised emulators and so on. kinda like a second generation of software, its happened in all the homebrew scenes i have been involved in and will almost certainly happen with the gp2x.

also software takes time to make, especially homebrew. its made in the coders spare time so theres always going to be quiet periods of time while they do their thing. my current game deal or no deal has taken many hours to make (and still unfinished) and its a fairly small game. for this release i am making it donationware and hopefully earn a couple of quid out of it (at least 1 pint!) which will persuade me to spend more time on future projects.

people should learn how to code. you can pick up the basics very easily and within a few months you should be able to write some basic games, keep working at it and before you know it you can release something you can be proud of. if 10% of the non development scene done this there would loads of releases!

i dont really agree with its hard to learn how to code, i learnt at a young age and throughout the years have learnt alot of languages such as pascal, C, C++, perl, php, html, java etc. im pretty much useless at maths, i use a calculator for everything :) im not the greatest coder, very far from it, but you learn as you go along just like everything in life.
 
Guyfawkes posted on Mar 30 2006 at 11:17 PM said:
also software takes time to make, especially homebrew. its made in the coders spare time so theres always going to be quiet periods of time while they do their thing. my current game deal or no deal has taken many hours to make (and still unfinished) and its a fairly small game. for this release i am making it donationware and hopefully earn a couple of quid out of it (at least 1 pint!) which will persuade me to spend more time on future projects.



Have you ever thought of porting your GP32 version of Doom over to the GP2X? There is a quick linux port but it is not all too great as far as optimisations or features. Yours would be really great as that had alot of cool features, menus, options such as WAD selector etc. and ran pretty well. I would donate for that :)
 
Last edited by a moderator:
me and craig did consider porting the gp32 version but lost interest due to the gp2x version being released. also the gp32 version is a pain in the arse to port unfortunately, its using alot of custom code which was written by rob (memory handling, smc access etc) and it would involve alot of rewriting to even get it loading. it would probably be quicker to start from scratch like the existing gp2x version and add the extra stuff in.

maybe sometime in the future ill pick up the current gp2x release source and look into adding all the extra stuff in but for now its not high on my list of things to do.
 
It's worth giving a look to PowerPC emulators as well. Most of them are in terrible shape, never finished, with bad controls and video and audio problems. But there are some good ARM9 ASM cores to be harvested. :) Technically they were written for Intel's bastardization of ARM, XSCALE, or StrongARM, etc. but these should all be compatible with standard ARM9 ASM. PicoDrive for the PocketPC, for example, was an extremely fast MegaDrive emulator, but without sound. Its speed even on low-end PocketPC devices is evidence of a quick 68000 core. There were a few fast NES emulators that ran at full speed on a ~500 MHz XSCALE chip, which is performancewise the level of a 250 MHz pure ARM9.
 
Back
Top