x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 
Latest Forum Activity

x86 CE software package

1 2 3 4
I dunk for bananas Page Icon Posted 2022-12-06 7:50 AM
#
Avatar image of I dunk for bananas
H/PC Elite

Posts:
702
Location:
Europe
Status:
Absolutely awesome The window is somewhat cut off and stuck to the top left but WinWatch should help remediate that at least a bit!
 Top of the page
torch Page Icon Posted 2022-12-06 7:53 AM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
That made my night! Thank you for letting me know. That makes me so happy

I should try and compile that dll for other architectures. May be useful to have. Especially mips if it’ll let me

Also,
Do you remember where that website was that had CE .net framework programs for pocket pc? I want to go through those and upload to the SCL if they work on my x86 thin client

Edited by torch 2022-12-06 7:54 AM
 Top of the page
I dunk for bananas Page Icon Posted 2022-12-06 8:03 AM
#
Avatar image of I dunk for bananas
H/PC Elite

Posts:
702
Location:
Europe
Status:
It was this!

Regarding Milky Tracker, I was only get it to work like this strangely, the sound and functions work very well, but it seems like the gx.dll has a hardcoded resolution that it doesn't allow anything to be display outside of:

Do you see anything in the code of it regarding this?



(Untitled.jpg)



Attachments
----------------
Attachments Untitled.jpg (55KB - 0 downloads)
 Top of the page
I dunk for bananas Page Icon Posted 2022-12-06 8:06 AM
#
Avatar image of I dunk for bananas
H/PC Elite

Posts:
702
Location:
Europe
Status:
It's almost perfect, we just need the gx.dll to not limit the resolution to that tiny rectangle



(Untitled.jpg)



Attachments
----------------
Attachments Untitled.jpg (41KB - 0 downloads)
 Top of the page
torch Page Icon Posted 2022-12-06 8:07 AM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
Thank you for the link!
I had to reset my laptop because it was so clogged up of windows installers for the SCL archiving. Anyway,
I’ll get to working in the next few days for checking the code for you once I have the vm back up. I also need to add that source code to the SCL too so we don’t lose it again.
This file is essential to eventually getting doom or quake running for you.
 Top of the page
torch Page Icon Posted 2022-12-06 8:09 AM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
Quote
I dunk for bananas - 2022-12-06 1:06 AM

It's almost perfect, we just need the gx.dll to not limit the resolution to that tiny rectangle

I think I know why now.

The dll only successfully compiled when I built for x86 PocketPC 2002.
HPC2000 x86 failed compiling
 Top of the page
I dunk for bananas Page Icon Posted 2022-12-06 8:21 AM
#
Avatar image of I dunk for bananas
H/PC Elite

Posts:
702
Location:
Europe
Status:
That's strange! It's okay, we'll either find something in the source code or we'll figure out how to compile it for HPC over the next days
 Top of the page
torch Page Icon Posted 2022-12-06 8:23 AM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
Do you happen to have visual studio 2005 installed by chance ?

I wonder if we could compile quake 3 for x86 ce

Here was the website

https://web.archive.org/web/20051231064437/http://www.noctemware.com/downloads.html

And read me

Quote
Compilation Guide to Quake 3 Arena CE
Version 1.1
-------------------------------------


Project files are supplied for Visual Studio 8.

1. First extract this zipfile. Assuming you're reading this, you've already done that. Lets call the top level directory
where the text file is called 'q3ce'.

2. You will need to get the Gerbera/Rasteroid library from Hybrid. Download Rasteroid from their website http://www.hybrid.fi,
or find it on their ftp site. You want the OpenGL-ES 1.1 implementation for Pocket PC. I'm not going to provide a link to
their download directly, because they want you to read their EULA thingy. Put the gerbera directory in q3ce/gerbera.

3. You will need to get the MBX libraries from Imagination Technologies. Download it from:
http://www.pvrdev.com/Pub/MBX/Download/default.htm
Extract to a directory called pvrsdk. (directories should be like q3ce\pvrsdk\builds, q3ce\pvrsdk\demos, etc)

4. You should be ready to compile. Open the q3ce-1.1.sln.
Proceed to build the release version, or the debug version of the program. If all is well, you'll have an
executable now. Proceed to build a working file set like the one in the binary distribution of q3ce if you don't
want to use the one in the distro.


Here's some of the design choices that had to go into making this port:


1. Screen resolution. You can't change it. The game will run at whatever resolution your LCD screen is natively. At some point
I may implement something like "r_screenrotate" or whatnot, so you can play in landscape mode. Right now, you're lucky it
works at all That said, a number of internal changes were necessary to get it to lay things out right in 240x320 or other
'long' or 'portrait' dimensions. It has only been tested on 240x320 and 480x640, but it will likely work on others. Rotated
screens are unlikely to work.

2. Mouse. I added absolute positioning to the mouse code so that the UI could use the stylus to select menu items.
In-game mouse code still uses relative mouse positioning, but i wouldn't really try to use it in the game very much.

3. Keys. I tried to get everything useful accessible. You'll note that the volume slider on many devices controls the
up/down look. Everything does something. Click some buttons and find out, or edit your own q3config.cfg file.

4. Memory. Geez. Windows CE doesn't give you much to work with. The stack can only grow to under 32 MB because
that's what the OS allots for. I replaced all the memory allocation functions with stuff that uses memory mapped files
because they can be mapped in 'high memory' (almost sounds like DOS, doesn't it!). Also, configured the heap to
allocate 24MB right at the beginning. This is primarily for Rasteroid/Gerbera, because the rest of the Q3CE code
doesn't really use 'malloc()'. It uses the Z_Malloc and Hunk stuff which was moved the memory mapped files, as mentioned
earlier.

5. Textures. I reduced the size of all the textures by half. This is effectively 'r_picmip 1', but permanent. There's
no sense in having 256x256 textures on a 320x240 screen. Heck, we could probably get away with 64x64 in a lot of cases
but i didn't need to push it. This saves on the size of the PK3 file.

6. The PK3 files. I removed the demos. Converted the sounds and background music to MP3. The full motion videos are optional.
Background music doesn't play yet. This gets the PK3 down to around 120 MB. It should all fit on an SD card now. Yes,
it takes forever to copy to the card. For extra cool points, the full motion videos are encoded in DivX format and are
much much smaller. Background music will probably come at some point.

7. OpenGL-ES. It's not OpenGL. But it's close. So I wrote a wrapper for it, and converted most of the Q3A code over that way.
It's the way all the mobile 3D graphics are going.

8. Random bugs. Yes, I found a bunch of random bugs, overflows, etc in the Q3A source. And an ancient version of zlib
that probably has that nasty security problem in it. I have a patch up to the newest zlib version here, but it's not
applied to the Q3CE tree as distributed. I may opt to upgrade the zlib version at some point, if not only for the
speed at which it operates. And there's a lot of uninitialized static variables that someone assumed would be zero.

9. Virtual Machine. The Q3A code uses a virtual machine to make modwriting and distribution easier. I eliminated that
for speed purposes and built all of the modules statically. As a result, you can't use mods with this distribution.
This was a real trick because the symbols all overlapped and whatnot. The patch gives new symbol prefixes to all
the things that collided.

10. Sound. The sound basically works. It's been brought down to 16 concurrent sound effects. If you don't have a
fast CPU, it will compete with the graphics a bit. It may sound choppy. Depends on how much is going on. There may
be a way to fix this a bit with buffering, but I haven't given it a whole lot of thought. I forward-ported the Quake 2
waveOut code to make this work, since Q3A really only had DirectSound support, and PPC2003 doesn't have DirectSound.
For Windows CE 5.0, I may reimplement this.

That's it for now. Enjoy.

9/27/05
Christien Rioux
 Top of the page
I dunk for bananas Page Icon Posted 2022-12-06 8:29 AM
#
Avatar image of I dunk for bananas
H/PC Elite

Posts:
702
Location:
Europe
Status:
Wait, doesn't it says Visual Studio 8? I think that's not the same as 2005
 Top of the page
torch Page Icon Posted 2022-12-06 8:31 AM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
I think visual studio 8 is 2005 because when I had the 2008 trial installed it reported as version 9.

But I didn’t realize how complicated the quake 3 thing was when I read it.

Lol. I’ll go back to focusing on smaller stuff first
 Top of the page
torch Page Icon Posted 2022-12-07 6:58 AM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
Ok, let me know which screen resolution you want me to do, and it looks like I can change the code to accommodate that

// Lines ending with "//?" means that the bDRAMBuffer value is not confirmed.
// The iPAQ 38xx is reported with "kfLandscape" as there is no "kfInvertedLandscape" flag yet...

#define AMIGO { 240, 320, 640, -2, 16, kfDirect | kfDirect565 | kfLandscape, FALSE } //?
#define AERO_1500_CONTRAST { 240, 320, 80, -0, 2, kfDirect | kfLandscape | kfDirectInverted, FALSE } //?
#define AERO_1500_QUALITY { 240, 320, 160, -0, 4, kfDirect | kfLandscape | kfDirectInverted, FALSE } //?
#define AERO_2100 { 240, 320, 640, -2, 16, kfDirect | kfDirect565 | kfLandscape, FALSE } //?
#define CASIO_E125 { 240, 320, 2, 512, 16, kfDirect | kfDirect565, TRUE }
#define CASIO_EM500 { 240, 320, 2, 512, 16, kfDirect | kfDirect565, TRUE } //?
#define IPAQ_31xx { 240, 320, 160, -0, 4, kfDirect | kfLandscape | kfDirectInverted, FALSE } //?
#define IPAQ_36xx { 240, 320, 640, -2, 16, kfDirect | kfDirect565 | kfLandscape, FALSE }
#define IPAQ_38xx { 240, 320,-640, 2, 16, kfDirect | kfDirect565 | kfLandscape, FALSE }
#define JORNADA_525 { 240, 320, 1, 240, 8, kfPalette, FALSE } //?
#define JORNADA_54x { 240, 320, 2, 480, 16, kfDirect | kfDirect565, FALSE } //?
#define JORNADA_54x_PALETTE { 240, 320, 1, 240, 8, kfPalette, FALSE } //?
#define JORNADA_56x { 240, 320, 2, 480, 16, kfDirect | kfDirect565, FALSE } //?

#define SIMPLE_565 { 240, 320, 2, 480, 16, kfDirect | kfDirect565, TRUE }
#define SIMPLE_555 { 240, 320, 2, 480, 16, kfDirect | kfDirect555, TRUE }
#define SIMPLE_444 { 240, 320, 2, 480, 16, kfDirect | kfDirect444, TRUE }
#define SIMPLE_0888 { 240, 320, 4, 960, 32, kfDirect | kfDirect888, TRUE }
#define SIMPLE_PALETTE { 240, 320, 1, 240, 8, kfPalette, TRUE }
#define SIMPLE_MONO_1 { 240, 320, 0, 30, 1, kfDirect, TRUE }
#define SIMPLE_MONO_2 { 240, 320, 0, 60, 2, kfDirect, TRUE }
#define SIMPLE_MONO_4 { 240, 320, 0, 120, 4, kfDirect, TRUE }
#define SIMPLE_MONO_8 { 240, 320, 1, 240, 8, kfDirect, TRUE }

#define LANDSCAPE_565 { 240, 320, 480, -2, 16, kfDirect | kfDirect565, TRUE }
#define LANDSCAPE_555 { 240, 320, 480, -2, 16, kfDirect | kfDirect555, TRUE }
#define LANDSCAPE_444 { 240, 320, 480, -2, 16, kfDirect | kfDirect444, TRUE }
#define LANDSCAPE_0888 { 240, 320, 960, -4, 32, kfDirect | kfDirect888, TRUE }
#define LANDSCAPE_PALETTE { 240, 320, 240, -1, 8, kfPalette, TRUE }
#define LANDSCAPE_MONO_1 { 240, 320, 30, -0, 1, kfDirect, TRUE }
#define LANDSCAPE_MONO_2 { 240, 320, 60, -0, 2, kfDirect, TRUE }
#define LANDSCAPE_MONO_4 { 240, 320, 120, -0, 4, kfDirect, TRUE }
#define LANDSCAPE_MONO_8 { 240, 320, 240, -1, 8, kfDirect, TRUE }
 Top of the page
C:Amie Page Icon Posted 2022-12-07 9:37 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,985
Location:
United Kingdom
Status:
What source file is that from torch?

Looks like you need to add HVGA, VGA and SVGA as options, but we need to see the header definition and selection criteria to know where and how it is doing it.
 Top of the page
I dunk for bananas Page Icon Posted 2022-12-07 1:05 PM
#
Avatar image of I dunk for bananas
H/PC Elite

Posts:
702
Location:
Europe
Status:
This device has a resolution of 720x576!
 Top of the page
C:Amie Page Icon Posted 2022-12-07 1:23 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,985
Location:
United Kingdom
Status:
That's PAL SD aka 576p
 Top of the page
torch Page Icon Posted 2022-12-07 4:00 PM
#
Avatar image of torch
Subscribers
H/PC Guru

Posts:
5,731
Location:
United States 
Status:
Here's the header files

Edited by C:Amie better to just point me to the source code and file name on GitHub or in the SCL than paste a yottabyte of unformatted C
 Top of the page
1 2 3 4
Jump to forum:
Seconds to generate: 0.234 - Cached queries : 73 - Executed queries : 10