palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 7, 2009 3:28:24 GMT 1
I'm starting a new project I'm calling LJP-Lite for now. The driving purpose is to optimize LJP for the lower end units(namely the Tungsten T and Tungsten T2). Other than the Zodiac, I consider these to be the best LJP based systems due simply to the ultra compact size and the perfectly laid out directional pad and buttons. Even though the T|T3 is much faster, I hate the new layout of the buttons. The other TT series are back to the M500 series form factor which I don't like as much as the sliders. I suppose LJP-Lite could also cater to the T|E series, since they also have lower end processors. One of the things that will put the "Lite" in LJP-Lite is the fact that I am removing the non-mainstream emulators(WS/NGP/TG16) as well as the emulators that don't really run well without a lot of processing power(SNES and GEN). Because of the reduced number of supported emulators, I'd like to convert the pull down menu into a tabbed style browser. In fact, I want to reduce the entire launcher to a single screen I'll be eliminating unwanted options such as 1x and will default Gameboy to 2X and NES/SMS to 1.25x. I'm also paring down the filters into probably only the LQ2X, since that is the only filter that really appears to improve the appearance of these games on the Palm screen. I'll probably remove all but one of the NES/SMS smoothing options since they really just make the image fuzzy. Well, you get the picture... Once I get things pared down, I may investigate if there is any way to remove the Code Warrior dependencies and port this over to PRC-Tools. That would be great since they have an OS-X port of those tools(I hate having to develop on windows, blech ) Once that happens, I may expand the functionality back into something with more features. I'd love to integrate a better VCS emulator like Stella or at least fix the one that is in there (The bottom of the scores are chopped off and no filters work) I bet VCS would look great with an LQ2X filter(If that's compatible with the resolution)! Ultimately, I'd like to port this over to the iPhone where further development would be even more fun, although, being an emulator, I probably wouldn't be able to make it available on the app store; It would have to be for Jailbroken units only, I guess. Well, I'm a long ways from that anyway. Off I start with LJP-Lite
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 7, 2009 3:33:53 GMT 1
I just built what I am calling LJP-Lite 1.0 Alpha 0. This is basically LJP RC7 with the emulator modules from 1.01 sans two player support and with the older(better) RC7 default key mappings. I've also merged over some of the common code from 1.01 except for the bulk of the launcher, which seems to be the cause of the T|T2 slowdown(I'm talking 0-1 FPS here ) Effectively - 1.0 Alpha 1 will be when I can merge in enough of the 1.01 launcher code to clean up the ROM file list display issues from RC7. Then I'll start stripping out the unwanted stuff. If anyone out there, particularly with T|T or T|T2 units, is interested in this project, Be sure to stop by with words of encouragement
|
|
|
Post by countbuggula on May 7, 2009 19:38:41 GMT 1
If you're paring down things for low-end machines, you might not want to get rid of the smaller screen options (1x, etc) since those are often needed for low-rez devices. I don't know how many people are actually still using things like a Treo 600, but if that's what you're trying to support, might as well leave it.
I believe GB was full screen on a 160x160 device at 1x, and NES actually needed to be scaled down, but it worked (as long as you didn't need to read anything).
|
|
|
Post by coder12 on May 7, 2009 23:19:37 GMT 1
... That would be great since they have an OS-X port of those tools(I hate having to develop on windows, blech )... That was the 2nd best thing that could ever have been said on this forum. ;D [edit:] Alternatively you could use Crossover Mac like I am if you have an Intel Mac.
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 16, 2009 7:03:30 GMT 1
LJP Lite is making some progress. I've removed all of the In-Emulator menus and made the screen tap toggle the BeltBar. Soon I'll be attempting to strip down the launcher into something that fits on one screen. This is where I have more opportunities to mess things up
|
|
|
Post by Tinnus on May 16, 2009 15:45:59 GMT 1
My advice for you: beware what you're calling "unwanted features" because that's entirely your opinion. People might like features you don't and vice versa and you might end up with something that only you will want to use simply because it's too limited. Also, the different filters are a quality/speed tradeoff. OK, HQ2X basically looks the same as LQ2X but slower, so that is kinda useless, but Scale2x is very fast, and the 2xSaI ones appeal to a different look and feel that someone else might like. Honestly, I don't see what you're gaining in removing options that have little to no real space/speed overhead. If you're concerned about visual overhead, just make a simple, direct "one screen" launcher and add a "options" button for those who want to change them Anyway, removing options just seems like backwards to me. I agree that it makes it simpler, but just put sane defaults and everyone will be happy. If they just want to play, they play, if they want to custmize their experience they can. This all's just IMO though and maybe everyone else disagrees But worth saying, I guess.
|
|
|
Post by coder12 on May 16, 2009 23:10:16 GMT 1
Well, I think the idea of LJP-lite does have its advantage points, look at tinyxp or dslinux fo example. Both are small, and lack features, but they still are nice and work well. I'd say if you are worried about space on the SD card, but still want the full features of LJP, then just don't copy the .zem files that aren't necessary. Look at the iPhone, its a stripped down version of OSX, with the same kernel and all, but it is still very successful.
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 18, 2009 8:31:15 GMT 1
Heh Heh, well - I have to admit at this point, the "Lite-ness" of LJP-Lite is completely for my own selfish purposes. But I'm sharing here in case anyone else is interested. Also, If somebody wants what I consider unwanted features, well they can always use LJP Another reason for this project is to get acquainted with Palm programming for fun(I realize it's a dead platform for some). I want to develop a few apps that use the serial port to interface with OBD and CAN busses in automobiles (through an RS232 to OBD/CAN hardware adapter, of course). The final reason, is that I'd like to strip this down as simple as possible, then try to see if I can remove dependancies on the MSL libs and CodeWarrior stuff because I'd like to see if I can port the project to PRC-Tools. Then more people would be able to play with the source code and add the features back in if desired. This final move may make it a bit easier to develop an iPhone version or at least remove the windows/CW requirement. A nice side effect of stripping the code down for my purposes is that it is a great way to figure out how everything works and is put together. It would be nice to fix the Atari VCS emulator so it works right or even replace it with a Stella-based core (Stella works awesome IMHO)... I'm posting here because I've gotten some help from yourself and others- and maybe there are others who would be interested in the Lite version.
|
|
|
Post by countbuggula on May 18, 2009 18:20:30 GMT 1
Don't let Tinnus scare you away - he's always cranky cuz he doesn't have enough time to work on LJX I very much like your idea of making this project more portable though - and if it means stripping away features at first, so be it - so long as they can be added again later. Then again...your stated goals could go along quite nicely with what Tinnus has in mind for LJX - perhaps the two of you should instead pool your resources towards that project and kill two birds with one stone instead of having two divergent development paths.
|
|
|
Post by coder12 on May 18, 2009 23:18:08 GMT 1
I sense... some one who may possibly... be able to port.. CloneKeen... I for one, am for the pooling of resources, but it is Tinnus' project so it would be his decision. And instead of killing two birds with one stone how about killing two stones with one bird? ;D
|
|
|
Post by countbuggula on May 19, 2009 3:21:33 GMT 1
I sense... some one who may possibly... be able to port.. CloneKeen... Haha, that's not a bad thought, though CloneKeen will be much more appealing if/when it supports Keen4. That said, one could even point such a person to the list of port requests and turn him loose, if all he wants is to learn some Palm programming. Run wild! ;D
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 20, 2009 0:04:01 GMT 1
Wow, I've been collecting various devices to try LJP on and now Have a Zodiac1. I love the way the emulator runs without needing WarpSpeed or UDMH, but I gotta say, I CANT STAND the joystick! I've tried calibrating it several times and it's still off and even if I could get perfect calibration, the location is HORRIBLE (IMHO, that is) for ergomonics. Worse yet, If you have earphones plugged in and they are not a right angle connector, they dig into your palm while you try to play. Even the four buttons on the right are not laid out well. It is hard to Run-Jump in Super Mario Land, for instance. Such a shame! The Hardware is so capable, yet I'd rather play on my Tungsten T for ergonomics. Heck, even the T3 whose button layout I didn't like is better than the Zodiac. So.... Since I've become disillusioned by the Zodiac, I've decided to strip out Zodiac support from LJP-Lite Really, the Zodiac should be running the fully featured version of LJP anyways. I have noticed a glaring bug in the functionality on my T3, though, that I want to fix. The launcher stays out of the DIA on the T3 as desired(particularly when the unit is closed); but whether the unit is open or closed, the emulator display is centered on the 320x480 screen which chops off the bottom from view. Also, the beltbar doesn't draw which is not right. I'm going to try pretty hard to fix this issue, since I believe that LJP should be able to be played with the T3 closed. Thats all for now...
|
|
|
Post by coder12 on May 20, 2009 0:14:28 GMT 1
IHMO the Zodiac's joystick is great. I've had my Zodiac II for almost a year now and it is finally starting to wither away and give me the analog drift problem ( I should have purchased an aluminum case ). My old Zod I is unusable due to the drift... I feel the headphone jack is no problem either; I just let my hand rest on them, this tends to work for all of my headphones. Maybe you should try getting one of the gamepad holsters for your Zodiac to make the buttons feel better? I've never had an issue with the layout, it has always felt great to me. Also: I'm looking forward to the first release! This seems to be promising!
|
|
|
Post by beavis on May 20, 2009 8:38:27 GMT 1
The efforts of making LJP Lite are commendable. I'd especially like to see your success in the T3 centering issue.
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 21, 2009 9:39:54 GMT 1
Thanks for the encouraging words I'm making pretty good progress on LJP-Lite. I've got all of the configuration condensed down to one form. It's not pretty yet, but I'll re-arrange things after I get the functionality working. The single config form is based on the Input Config. I abbreviated and condensed the text fields to make room for some checkboxes on the right. The check boxes for configuration are: • AutoZoom (Basically turns on 1.25x for NES and SMS and 2x for GB and GG) • Smooth (Turns on FAST smoothing for NES and SMS and LQ2X for GB and GG) • AutoSkip (Switches between Auto or 0 frameskip) • SoundOn (Self explanatory) • HQSound (Switches between 22KHz and 44KHz) Interesting Side note - If you remember my identifying an issue with 1.0RC7c and higher running extremely slow on Tungsten T2 models, but running at normal speed on the nearly identical Tungsten T1, I have discovered that it doesn't appear to be related to any specific area of code(Other than being something to do with the launcher or bridge or something else common between all modules). I have found that I can have the slow issue randomly from compile to compile. I could probably "fix" the slowness on version 1.2 simply by making some subtle change that in some way changes the final binary and "fixes" the issue. There must be some weird bug in the Palm OS version in the T2 that causes this weirdness. Maybe some thing to do with Heap/Stack usage/fragmentation? The amount of slowness seems like some kind of interrupt servicing gone crazy possibly. It does seem like maybe my trimming down of the code is helping the situation(maybe preventing whatever is triggering the issue). Here's a question: If I want to try and attach screenshots, do I need to host them and embed the url, or does this forum have image hosting. Also, If I get to the point where I want to provide built distribution, is there a way to have that hosted on the Downloads page? I'm still in the dev/alpha stages, but with the progress I'm making; I could have a Beta-worthy version soon ;D
|
|
|
Post by coder12 on May 21, 2009 16:51:03 GMT 1
All of the features sound pretty good as of right now! I'm looking forward to a primary release candidate! Well, for images you should sign up for an imageshack account www.imageshack.com for pictures and tag the url. and as far as posting actual releases, you could sign up for a fileden account, (its probably the best free file sharing site on net) or you could email it to me and I could just post it on my account for you. Whatever works I guess. The downloads page is yoyo's, but you could put it on the little-john.net website if you sent tinnus a copy I'm sure. PS: Nice avatar! Ha, reliving the 80's. ;D edit: I finally convinced the staff at our school to unblock this site!
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 22, 2009 19:28:49 GMT 1
Good News! I fixed the T|T3 centering issue. It is kind of a hack for now. The emulator screen position is calculated from the height variable which is captured in the "guessScreenDimensions" call. All of the emulators use that to try and center the emulator in the full screen size, but that doesn't look good when the T3 is closed and the DIA and toolbar still try to draw and get in the way. Also, the invisible beltbar ends up at the bottom of the DIA area. Anyhoo, I figured like me, most people will want to play LJP on a T3 with the slider closed since there is no benefit to having the slider open and with no stretching support for the T3, there is no reason to turn it sideways. With all of that, I have forced LJP-Lite to assume a 320 high screen and now the T3 looks right with the slider closed)(or open for that matter). Here are some general updates on what has been stripped out(This really is a LITE version!) -No BT or IR support (This was meant to be held in your hand to play using the onboard buttons) - No virtual screen buttons (Alot of dual functionality was in there) - Hard buttons are only for game control - no save/load/sound/fskip on hard buttons. - No in-emulator menus; instead when you tap the screen, the beltbar shows or hides. You can Qsave, Qload, turn sound on/off, change the Fskip(0 or auto only) from the BB still. These are in addition to the config consolidation I did... I'm getting pretty close to a stable version. I'll post screenshots soon
|
|
|
Post by luckyluke on May 22, 2009 23:28:28 GMT 1
Hi,
Congratulations for getting through this mess of LJP code and getting the Lite version almost ready! I won´t use it since I liked about LJP the great amount of preferences and especially being able to control it with my Wiimote.
But I´m sure there are enough which will enjoy your Lite version of LJP. So keep the good work! I can also offer to mirror some MBs. Just write me a short PM or E-Mail.
Just wondering ... Is the Lite version noticeable smaller or faster than the not stripped down version?
greetings, Lukas
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 23, 2009 7:45:27 GMT 1
Well, LJP-Lite has definitely lost some weight! The Launcher .prc is down to a trim 94K from 487K I'm not sure if any of this will affect the emulation speed, but it should start having an effect on the dynamic heap requirements. As expected, I've removed more from LJP. Low-res is gone, anything treo or zodiac specific is gone. Like I stated before, this is really going to be Tungsten|T,T2,T3 targeted, although, I'm sure it will run on many other platforms. There's something about the T|T and T|T2 that has me locked in. The size and button layout are perfect for a ultra compact emulator machine. If only there was some way to fit the T|T3 logic board inside the original T|T, believe me, I tried I love the performance of the T|T3, but the newer button layout is not as good. The Up/Down motion of the 5-way is not as firm as on the T|T and T|T2. I even tried transplanting just the control pad section of a T2 onto the T3, but the pinout must have changed even though the connector fit. Anyways, I just did my first implementation of using the rectangular buttons as "tabs" to replace the popup list(done on the config form, but not yet on the launcher form). The Load form is gone because LJP-Lite only supports one QuickSlot per game. Well, thats all for now. I'm pretty sure I'll have a Beta ready within a week. I'll contact the guys at Little-John.net to see if they want to host(assuming they aren't offended by my bastardizing of their program ).
|
|
|
Post by coder12 on May 23, 2009 21:30:32 GMT 1
Well, LJP-Lite has definitely lost some weight! The Launcher .prc is down to a trim 94K from 487K I'm not sure if any of this will affect the emulation speed, but it should start having an effect on the dynamic heap requirements. As expected, I've removed more from LJP. Low-res is gone, anything treo or zodiac specific is gone. Like I stated before, this is really going to be Tungsten|T,T2,T3 targeted, although, I'm sure it will run on many other platforms. There's something about the T|T and T|T2 that has me locked in. The size and button layout are perfect for a ultra compact emulator machine. If only there was some way to fit the T|T3 logic board inside the original T|T, believe me, I tried I love the performance of the T|T3, but the newer button layout is not as good. The Up/Down motion of the 5-way is not as firm as on the T|T and T|T2. I even tried transplanting just the control pad section of a T2 onto the T3, but the pinout must have changed even though the connector fit. Anyways, I just did my first implementation of using the rectangular buttons as "tabs" to replace the popup list(done on the config form, but not yet on the launcher form). The Load form is gone because LJP-Lite only supports one QuickSlot per game. Well, thats all for now. I'm pretty sure I'll have a Beta ready within a week. I'll contact the guys at Little-John.net to see if they want to host(assuming they aren't offended by my bastardizing of their program ). Tinnus would be the guy to ask about little-john.net for hosting. I'm glad to hear about all of the issues you have managed to work out! I'm really looking forward to an initial release as I stated before.
|
|
|
Post by Tinnus on May 24, 2009 4:30:18 GMT 1
Sorry I've been kind aabsent, but I have no time to read this forum everyday By no means Im saying you shouldn't do it, just trying to give some advice, after all the code is GPL and you can do "whatever" you want with it even if it's just for yourself I was just pointing out some things in case you weren't considering JUST your selfish wishes, but that's perfectly OK too As for portability, I don't think any of the code relies in the MSL itself, it's just an implementation of the C and C++ standard libs which prc-tools have anyway. You'd just have to replace the PNO loader with PEAL, which is not very hard to to, I've done a PalmOS version of the LJX backend with it and it went pretty well IIRC. About LJX... well, there's a pretty good framework there with some nice options and improvements from the LJP structure, enormously backend-wise, enourmously portability-wise, and somewhat from the user's standpoint too--easier/more flexible control configuration, more scaling/smoothing options (LQ2X for 1.25 scaling is nice ) and of course speed optimizations. As you can remember, NES was running pretty good in the PalmOS version, and that was without any ASM code (which for some reasons made it crash, never got around to figure out exactly WHY). What's NOT in LJX is all modules implemented and most importantly an UI, which is pretty bad for usability, although I did have a good degree of fun by playing it using just the INI files for configuration. I had an HD problem some months ago and I kinda lost all the work I had done on anything last year, but hopefully it wasn't much for LJX I had backups from November '07, one of these days (BUSY!) I'll get it and see what's there. Hope it's not much work because I remember some pretty nice stuff being added And then I'll get the entire thing and put it in Google Code or something in case someone wants to start contributing
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on May 29, 2009 5:05:30 GMT 1
Hooray! LJP-Lite is now feature complete All that is left is to finish scrubbing out unused code and try to make any optimizations I can. I got the .prc file down to 90K. There are two forms, The launcher form and the config form. I plan to post screen shots soon, and I'm going to see if Tinnus will host the files on little-john.net. Stay tuned...
|
|
|
Post by coder12 on May 29, 2009 20:25:29 GMT 1
Hooray! LJP-Lite is now feature complete All that is left is to finish scrubbing out unused code and try to make any optimizations I can. I got the .prc file down to 90K. There are two forms, The launcher form and the config form. I plan to post screen shots soon, and I'm going to see if Tinnus will host the files on little-john.net. Stay tuned... May I just say: ;D
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on Jun 5, 2009 9:10:10 GMT 1
Quick update: I managed to remove all dependancies on the MSL_C Libs and, therefore the Tapwave 1.1 SDK as well! I now use the malloc, calloc, free, and mem*** functions that are in oscompat.c and I extracted the required math functions. Actually, I hacked up sin, log, log10, and pow quite a bit. These functions are used in the sound generators for NES and SMS, so I expected my first run to sound awful(distorted due to the hacky math functions). I was suprised that the sound was recognizable! I couldnt tell if there was any distortion; I'll need to compare with a previous build while wearing headphones to see if it's noticeable. Really all of the double float math functions are used in integer tabling procedures to speed up runtime emulation. I suppose my approximations of sin, sqrt, etc probably wouldnt have that much of an impact on the integerized tables and therefore the quality of the sound. ;D Thats all for now. I still owe screenshots and I guess I'll have to use a digital camera since I don't know of any way to take a direct screenshot and I dont have a Garnet based Palm ROM to use with the Palm simulator. My next task is to keep reducing the CW dependancies and see if I can port this thing to PRC-Tools
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on Jun 7, 2009 7:21:36 GMT 1
Hey All, I actually added a new feature to LJP. The battery Level meter changes color as the battery depletes. From 76%-100% the outline of the battery is blue; From 51%-75% it's Green; From 26%-50% it's Yellow, and at 25% or less it's Red. Pretty cool huh?
|
|
mitch
New Member
Posts: 19
|
Post by mitch on Jun 8, 2009 0:05:04 GMT 1
Hey All, I actually added a new feature to LJP. The battery Level meter changes color as the battery depletes. From 76%-100% the outline of the battery is blue; From 51%-75% it's Green; From 26%-50% it's Yellow, and at 25% or less it's Red. Pretty cool huh? I like this idea! I wish I knew how to program for palmOS... seems like it would be a waste of time to learn now, seeing as how the pre just came out
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on Jun 8, 2009 0:34:59 GMT 1
Well, If you want to learn programming for a mobile device, how about the iPhone? Its a high volume product and the dev tools are free If I manage to port LJP-Lite into a PRC-Tools project, the next step for me would be to try and port it to the iPhone.
|
|
|
Post by coder12 on Jun 8, 2009 2:50:57 GMT 1
Well, If you want to learn programming for a mobile device, how about the iPhone? Its a high volume product and the dev tools are free If I manage to port LJP-Lite into a PRC-Tools project, the next step for me would be to try and port it to the iPhone. Shhshhshh... You've given away my plan!
|
|
palmdoogie
Junior Member
Re-living the 80s
Posts: 66
|
Post by palmdoogie on Jun 21, 2009 7:33:55 GMT 1
Got the UI almost finished. It is becoming clear that LJP-Lite is STRONGLY geared toward Tungsten|* and Zodiac Owners(Coincidence? Well, I have a T|T, T|T2, T|T3, and a Zodiac 2 ) By the way, Coder12, I've been turned on the Zodiac now, My Z1 must have had a flakey joystick cause I got a Mint Condition Z2 and I love it . I even fixed a lot of the Centering issues in LJP running on the Zod as well as centering issues with the T3 when the slider is closed. I also made a way to control the Zod in Portrait or Landscape mode. I'll post Pics of the UI on The T|T3 and the Zod soon. Now, I may actually need to add the Zodiac HW scaling back in, though Here's a new teaser; I'm going to try to add a PalmMAME-Lite module to LJP. You can read my latest thread if you can help with my difficulties in getting the PMAME sources to work. I can get the modules to build, but they are smaller in size(60-100K smaller) than the binary release and give a "Fatal Exception" when the loader tries to load them. Hard to figure out since the compiler built them with no errors. Any help would be appreciated by anyone who has ever gotten PalmMAME to build from source. My PMAME-Lite module would support about 50 or so of the most classic(and simple) games like Pac-Man, Centipede, Galaxian, etc... Again, support and words of encouragement are appreciated.
|
|
|
Post by coder12 on Jun 22, 2009 3:24:08 GMT 1
Awesome to hear about the zodiac support! This is getting better and better all the time! And just when you thought the most epic Palm application couldn't get any more epic with wiimote support and more... I'm going to try to add a PalmMAME-Lite module to LJP. LJP is surpassing MAXIMUM EPICNESS!!! And as far as palmmame goes you should probably contact vilmos for any help.
|
|