|
Post by Tinnus on Feb 10, 2005 22:03:12 GMT 1
The thing is... I'm bringing in some nice filters for scaling on the GB module (they're 2x scalers so no point in using them for the other modules). Here's the current status of porting for each one: - 2xSaI/Super 2xSaI: Works but something's wrong (the image looks kinda scratched or something) - Super Eagle: Freezes (I think I know the solution for this one and the two above) - Scale 2xSaI: crashes requiring a reset (I don't know what's causing this, I may trash this one anyway as it's more useful when the scaling factor is not 2. When scaling 2x it's just like 2xSaI looking blurred) - hq2x, lq2x: Works perfectly - AdvMameScale2x: Works perfectly Regarding speed/quality: - 2xSaI/Super 2xSaI: some speed hit / can't evaluate quality because of image "scratching" - hq2x: big speed hit (might be unnoticeable on faster units; remember I tested this on a T|E...) / image is beautiful - lq2x: some speed hit / image is beautiful (the quality compensates the speed hit) - AdvMameScale2x: almost no speed hit / quality is good (use this one if you can't survive the speed hit from the others) I really recommend lq2x ;D Now, just to disappoint you: I'm not releasing a perfect, current version of LJP with the ability to choose these confiurations. First, the sources are not really current. Second, I haven't (and probably won't now) created options in the menu to set those options. Third, I don't want to cause a version conflict pandemonium here. HOWEVER, I have compiled a version of ljp-gb.lem for the filters. They use the specified filter when you set "Display Size" to one of the filters (altough the filters appear for all systems, they only work on GB). I have uploaded it here, but please keep the following in mind before downloading those files: - You can't ask for support in these forums (for the GB module) if you're using these files. They're not part of the official distribution, so yoyo nor the members can support them. I have no responsibility whatsoever for whatever you do with these files; if your Palm explodes because of them, I can only feel really sorry. (which means: don't complain if you need to do a hard reset) - These files are from the 0.6 beta I think so they're outdated. - These files have a SERIOUS BUG: due to some crazy error the compiler gave me, I had to disable the screen corner controls. So you lose 4 potential keys (not that this is a big loss to GB emulation). - The 2xSaI filters are also available. If you feel like it, try them and tell me what happens (2xSaI and Super 2xSaI are supposed to look weird, Super Eagle and Scale2xSaI are supposed to crash). - BACKUP your original ljp-gb.lem and ljp.prc files. Rename it to ljp-gb.bak or something. - The ljp.prc file in the ZIP is a complete hack and may not work properly (it's just the 0.7 PRC with added options; but it IS a hack). - Just to tell you again, these files ARE NOT OFFICIAL AND HENCE NOT SUPPORTED BY ANYONE. USE THEM AT YOUR OWN RISK. Please do not post here questions or complaints like "it crashed" or "where do I put this file". If you don't know where to put the ljp-gb.lem file, then don't even try downloading one of these. Reports on how the filters work are welcome, of course. Please post your device model with the report. When I finish this (which means: everything working and the code is not messy as it is right now) I'll send the changes to yoyo so he can incorporate them in the main distribution (and hopefully put an option in the menu for you to choose the filter which is not a hack as it is currently ;D)
|
|
|
Post by scott0968 on Feb 11, 2005 0:04:28 GMT 1
Wow, Nice Work!
I tried out the lq2x and it really looks good. I'm using a T3 so I didn't really notice a speed hit at all.
|
|
|
Post by Tinnus on Feb 11, 2005 0:16:53 GMT 1
I'll upload a version with them all soon. Having separate files for each filter is eating my bandwidth.
|
|
s19locke
Junior Member
I am a TREASURE HUNTER, not a thief
Posts: 85
|
Post by s19locke on Feb 11, 2005 0:20:43 GMT 1
Hey nice work ;D havn't got to try it yet but have seen the results from the orignal sources can't wait to try it out
|
|
|
Post by Tinnus on Feb 11, 2005 0:57:18 GMT 1
Bandwidth full . Please sorry for this. Either I wait 24 hours for it to empty again or I find a better service...
|
|
|
Post by Tinnus on Feb 11, 2005 2:24:40 GMT 1
Just so you know, I'll come back tomorrow morning (something around 10 hours from now) with a single .lem file, a modified (hacked ) ljp.prc to allow filter choosing and a different server.
|
|
Skaaj
Junior Member
Posts: 53
|
Post by Skaaj on Feb 11, 2005 2:38:25 GMT 1
how does this GB .lem file differ from the origional by yoyo?
|
|
|
Post by Tinnus on Feb 11, 2005 11:44:46 GMT 1
how does this GB .lem file differ from the origional by yoyo? Aside from the filters, "- These files are from the 0.6 beta I think so they're outdated. - These files have a SERIOUS BUG: due to some crazy error the compiler gave me, I had to disable the screen corner controls. So you lose 4 potential keys (not that this is a big loss to GB emulation)."
|
|
|
Post by Tinnus on Feb 11, 2005 11:56:58 GMT 1
As promised... here it is. ljp.prc and ljp-gb.lem with all the filters. Just go to "Video" in the config menu and set the filter in "Display Size". Note that if you set the filter, play a game, then come back to the config screen, the chosen filter changes (I have no idea why and won't look into this. Remember this is a hack...). 2xSaI, Super 2xSaI, Super Eagle and Scale2xSaI don't work yet. Feedback on these is appreciated. Just to refresh your memory, use this at your own risk ;D
|
|
|
Post by yoyofr on Feb 11, 2005 12:02:31 GMT 1
cool to see other people than me working on ljp I'll try this this weekend.
|
|
|
Post by Tinnus on Feb 11, 2005 12:04:36 GMT 1
cool to see other people than me working on ljp I'll try this this weekend. I'll send the modifications to you as soon as I fix the problems and finish cleaning the code up ;D News: a new version with filter choosing in the in-emulation menu and the "crazy list on exiting game" bug solved is coming ;D (it's a little slow because adding the hq/lq filters slows the compilation time by some 5-10 minutes. So each change I make in the code I have to wait 10 minutes to be able to test it... boring) Update2xSaI and Super 2xSaI are working! It happened that I had declared a constant where I shouldn't have... whatever. 2xSaI strangely looks like Scale2xSaI though Scale2xSaI and Super Eagle aren't working yet. Super Eagle hard resetted me last time I tried (luck I had a backup from hours ago ;D) Some random bug freezes the menu when you go back from GFX to the main config menu, I'll try putting a 10ms delay or something. Another random bug gives a fatal exception upon returning to the launcher. I have absolutely no idea what causes it, because it happens during (or after) termination of the PNO (the emulation). I'll try putting a delay here too. (sometimes putting a delay helps because maybe something hasn't finished executing and you give it time) Another updateI've decided to trash Super Eagle and Scale2xSaI for now. The reasons are very simple: They don't work, they're too much like 2xSaI and/or Super 2xSaI, they don't work, I don't know why they don't work, they don't work, and I don't think I'll fix them soon. Oh, did I mention they don't work? After some tweaking in the menus, everything is (almost) complete. In a hour or so I should upload the "final" version with hq/lq2x, super/2xSaI and AdvMame2x. I'll then package the changes I made to the sources and send them to yoyo to be merged into the official code.
|
|
|
Post by yoyofr on Feb 11, 2005 18:20:22 GMT 1
ok, that's fine on my side I've started to look at offical hq2x and advance mame implementation and I guess it can be optimized a bit by using arm assembly. If it's worth it, I'll try to give it a shot. Afterall ngp could use it too, and perhaps ws on hires+ unit (224x144 => 446x288 in 2x mode).
|
|
|
Post by Tinnus on Feb 11, 2005 18:33:17 GMT 1
ok, that's fine on my side I've started to look at offical hq2x and advance mame implementation and I guess it can be optimized a bit by using arm assembly. If it's worth it, I'll try to give it a shot. Afterall ngp could use it too, and perhaps ws on hires+ unit (224x144 => 446x288 in 2x mode). Optimizing AdvanceMAME I think will not be worth it. It's already VERY fast, even for a T|E... The filters I grabbed are from VBA, so they're already very optimized. They even have MMX versions (I don't know if I commented or deleted them, but you can view it via CVS in SourceForge). hq2x is slow in its nature, that's why the VBA guys created lq2x, which looks almost like hq2x but is a lot faster. (Super)2xSaI from VBA looks great and is already very fast too. Even if you're going to try and optimize it, it'd be good to put the C versions in anyway so people can use them while waiting for the ASM versions. My version of the GB .lem is from 0.6, the menu is buggy, I had to hack the LJP PRC to add the menu options, they look misaligned, etc... So it would look better if you officially imported this code ;D (I can't compile the launcher because the PNO loader is missing) And just FYI, everything's good here except for the crash/freeze thing in the in-emulation menu which I suspect to be a memory leak. I should fix it in a hour or two. If I don't have it fixed by then I'll upload it buggy anyway
|
|
|
Post by Tinnus on Feb 11, 2005 20:03:52 GMT 1
Finally, here it is: the final version. No bugs, no crashes, no Super Eagle ;D I'll package the source files for you yoyo. Speed comparison between the filters below. Each name is followed by the FPS I got and the relative speed (I chose unscaled to be 1). The tests were done in a T|E, overclocked to 192 MHz with Pokemon Crystal, Frameskip 0, Sound on, 22khz. FILTER----------- | FPS--- | RELATIVE | None 1:1 | 58 | 1.00 | None 2:1 | 56 | 0.96 | AdvMAME2x | 39 | 0.67 | 2xSaI | 25 | 0.43 | LQ2X | 24 | 0.41 | Super 2xSaI | 23 | 0.39 | HQ2X | 9 | 0.15 |
|
|
|
Post by scott0968 on Feb 11, 2005 21:52:36 GMT 1
Wow it looks great on my T3. I'm using the Mame filter and I don't really notice any slowdown at all. Great Work!
|
|
|
Post by Tinnus on Feb 11, 2005 22:21:07 GMT 1
Wow it looks great on my T3. I'm using the Mame filter and I don't really notice any slowdown at all. Great Work! Try Super 2xSaI and HQ2X/LQ2X as these look much better and shouldn't have any speed hit on a fast unit like the T3.
|
|
|
Post by FreakyDeaky on Feb 11, 2005 22:51:51 GMT 1
Great work Tinnus, Looks and plays great on my T3. I'll now be playing more GBC games.
LJP is close to putting the final nail in the Firestorm coffin, just a little matter of GBA compatibility, but I can't see that happening on Firestorm for a long while yet.
I'll be sticking to LJP for my plam gaming, Keep up the good work chaps. Thanks for the best palm app bar none.
|
|
|
Post by Tinnus on Feb 11, 2005 23:00:04 GMT 1
Who knows, LJP might get GBA someday...
|
|
|
Post by FreakyDeaky on Feb 11, 2005 23:21:54 GMT 1
Would love to see that happen but that'll be opening up a whole different can of worms.
It's ok making an em to run retro games but GBA would be stepping on certain peoples toes and thats much more risky. But you never know ( always hopeful ) , till then I'll be more than happy to play my old Snes, Genesis & GBC games on LJP.
But you never know...........
|
|
|
Post by Tinnus on Feb 12, 2005 1:08:03 GMT 1
LJP is close to putting the final nail in the Firestorm coffin, just a little matter of GBA compatibility, but I can't see that happening on Firestorm for a long while yet. The funny thing about this is that Firestorm nor any commercial emulator will have those filters, NEVER, because they're covered by the GPL. ;D
|
|
|
Post by StuBee on Feb 12, 2005 1:53:56 GMT 1
Darn the filters look very good !!
Why the 'Darn' then? Unfotunately if i use any of them, the 'key mask' issue we are seeing on the Palm TC, causes the frame rate to drop to an unplayable level.
|
|
|
Post by Tinnus on Feb 12, 2005 12:55:13 GMT 1
Wow, even for GBC? Have you tried AdvanceMAME? This one's very fast, meybe the speed difference won't be so huge when you press a key.
|
|
|
Post by StuBee on Feb 13, 2005 21:09:46 GMT 1
Yep...even the AdvanceMame is big slow down for the TC when a key/button/dpad is pressed. sad, but true. You could also go to Compusa or other electronics store and plug in a sd card with LJP on it, to see the slow down
|
|
SebT3
New Member
Posts: 31
|
Post by SebT3 on Feb 14, 2005 9:30:52 GMT 1
Just look wonderfull. I didn't notice any slow down At all on my T3. All filter mostly look the same. (for me) Thanks a lot Tinnus, I realy hope yoyo is going to include these filters in the 0.8 release.
|
|
|
Post by hackit98 on Feb 15, 2005 17:15:48 GMT 1
Excellent work. 2xSaI works the best on my TJ37. The others work great without any major speed hit, except the HQ2X of course.
Personally I like the 2xSaI better than the rest as far as quality, even the Super 2xSaI... Maybe it's just me but the HQ2X seems to blur things out too much (clouds on the intro to Zelda DX for example). It probably looks fine on other games, haven't tried anything else yet.
So great work on all of the filters. I like that you didn't stop with just one or two... having all 5 gives people a choice of what they like better.
|
|
s19locke
Junior Member
I am a TREASURE HUNTER, not a thief
Posts: 85
|
Post by s19locke on Feb 15, 2005 20:09:25 GMT 1
Again great work I can't wait till version 0.8 comes out hopefully with your filter. I just want to know why they didn't come out before? all the other emus have them vba, ePsxe, Zsnes... oh well. any chance of applying these filters to the nes module? that would be great ;D
|
|
|
Post by Tinnus on Feb 15, 2005 21:00:29 GMT 1
I just want to know why they didn't come out before? all the other emus have them vba, ePsxe, Zsnes... Because I didn't know how to compile the source code ;D (actually the code I borrowed is from VBA) any chance of applying these filters to the nes module? that would be great ;D Most certainly not. These are 2x filters so you can only use them to scale images by a factor of two. Which means GB, GG, and maybe NGP and WS (according to yoyo). Only exception would be the Scale2xSaI filter which can scale an image to an arbitrary size but I couldn't get it to work. And the results will probably look much like the current NES scaler with smoothing. I hope we get GG with filters...
|
|
|
Post by yoyofr on Feb 18, 2005 11:54:35 GMT 1
Tinnus filters for gb have been integrated in the upcoming 0.8 release. I've made Scale_2xSAI to work & it's part of all modules, so the 1:1.25 zoom mode seems now nicer, but it's a lot slower too. Hires+ devices will have a 480x320 rendering mode with optionnal smoothing (scale_2xsai). I'll try to add a 320x480 mode too with software 90°rotation (for T3 to bypass the vram alien buffer issue). I've borrowed a filter from nesterd too, which looks nice (hard coded at zoom 1:25, so 320x280/320x300 depending on ntsc/pal) and is a bit faster than scale_2xsai.
|
|
|
Post by Tinnus on Feb 18, 2005 16:45:48 GMT 1
Thanks for integrating them. ;D
Just out of curiosity, what was preventing Scale2xSaI from working? (maybe it was the same as Super Eagle? Did you try to fix it too?)
|
|
|
Post by yoyofr on Feb 18, 2005 17:15:13 GMT 1
there's 2 issues with scale_2xsai (didn't look at super eagle since it's not really that useful...) 1/ A casted 32bits access when writing pixel => bad bad things on arm ! The first access is done on 1st pixel of vram, so its' on a 32bits boundary => ok. Then the pointer (a uint8*ptr) is increased by 2, so it's on a 16bits boundary but not on a 32bits one anymore. So at 2nd access there's a problem .... 2/ When activating all inlining optimization in CW, it leads to crash on bilinear & bilinear4 functions calls. So 'autoinline' has to be disactivated.
|
|