UAE for NeXTstep

Started by Andreas, December 04, 2007, 03:23:49 AM

Previous topic - Next topic

Andreas

Just for fun,
http://uae.coresystems.de/download
is claimed to compile under NeXTstep.

Have someone tried that and is a ready compiled archive, if possible as FAT, for downloading avail?

kb7sqi

A quick port.  No real testing, but the older "stable" version 0.7.6 compiled w/ out too much trouble.  Needed to add strdup to genp2c.c & modify the sysconfig.h a bit, then compile a few files w/ -traditional-cpp.  You'll find the Uae.app in the tarball in the ns3.3_quadfat directory.  Here's the url

http://kb7sqi.dyndns.org/files/ns3.3_quadfat/uae-0.7.6.NIHS.tgz

And here's a quick screenshot of it starting kickstart:

http://kb7sqi.dyndns.org/files/screenshots/NeXT-Uae.jpg :D

I did start it by going into the Uae.app directory & typing ./Uae.  The screenshot was on the Gecko.  I compiled it on my x86 box.  Give it a shot & let me know how it works.  If it works  ok, I'll start working on the newer dev snapshots and make a proper package.   If I remember right, the last packaged version was 0.5.3 or so.  Also, FYI, the NeXT version don't support sound.  :cry:   Hope it works ok.  Take care.

kb7sqi

I had to test it atleast w/ a demo adf file.  8)   It works that much atleast.  Here's a screenshot of a demo called LostWorld.

http://kb7sqi.dyndns.org/files/screenshots/UAE.LostWorld.jpg

I'll have to mess w/ it more l8r.  Hope you like it.  Take care.

Andreas

Quote from: "kb7sqi"I had to test it atleast w/ a demo adf file.  8)   It works that much atleast.  Here's a screenshot of a demo called LostWorld.

http://kb7sqi.dyndns.org/files/screenshots/UAE.LostWorld.jpg

I'll have to mess w/ it more l8r.  Hope you like it.  Take care.

Oh, thanx, i will test that version by myself. Is there a chance to see the much newer versions that i have linked below to compile?

kb7sqi

If the 0.7.6 release works ok, then I'll work on the newer development releases.  I just wanted to make sure the stable version worked first.  There was quite a few changes from 0.5.2/3 to 0.7.6.  So, I was amazed it compiled so quickly.  I'll download some dev snapshots & give them a shot.   :D   I was also working vMac/minivmac.  So, this should go along well w/ one of them.  Take care.

Andreas

Quote from: "kb7sqi"If the 0.7.6 release works ok, then I'll work on the newer development releases.

just a short test on m68k, doubleclicking to start the app doesn't work. some commands like -O 352:240:c wasn't interpreted right, and i don't know how the joystick is emulated ;-)

QuoteI was also working vMac/minivmac.  So, this should go along well w/ one of them.  Take care.

Oh nice since we can assume a usefuel performance on m68k systems. The only thing on vMac that i doesn't like is the fixed screensize of (unusable) 512x384

helf

isnt that the screensize of the original macs? Do emulators like vmac and UAE run the emulated systems cpu 'natively' if they are on a 68k chip? Would boost speed tremendously...
After an apparent 15ish year hiatus... I'm baaaaack! :D (12/12/2023)

Andreas

Quote from: "helf"isnt that the screensize of the original macs?

Yes, but here are later models with bigger solutions and vmac ist AFAIK able to run until 7.5.

QuoteDo emulators like vmac and UAE run the emulated systems cpu 'natively' if they are on a 68k chip? Would boost speed tremendously...

unfortunatly MOST emulators are emulation also the CPU. For MAC amulation only Shapeshifter on Amiga-Systems uses the native CPU. Would be nice to see something like that for the NeXT

neozeed

I just built this last night so I could try to see how to do some video under NS.  I needed to have GCC 2.7.2.3 to build everything except NeXTwin.m

Also you'll need gnu make and I always find bash 2.01 helpfull.


in the sysconfig.h I had to comment out

HAVE_GETOPT 1


from there it'll build with

gmake uae
gmake uae CC=cc
gmake uae

this way gcc 2.7.2.3 will build most except the .m, and the NeXT gcc can only build the objective C part... Even though I built the objective C portion of 2.7.2.3 but it doesn't compile.  

Go figure.

It's great fun for Captain Blood & having fun with WorkBench.

I just rebuilt it trying to figure out some colour stuff on NS...

I had to comment out memory.h & newcpu.h from NeXTwin.m

And add in strdup to a few things (cpuopti, genp2c, uae) and remove the strdup 'fix' in sysconfig... which doesnt work.

and for refrence here is strdup.c:

#include <stdio.h>

/*
* posted to comp.sys.next.programmer:
*
*
* From: [email protected] (Dominik Moser,CLV A4,2 40 19,720 49 89)
* Subject: Re: Compile problems (pgp 2.6.3i)
* Date: 10 Jul 1996 06:50:42 GMT
* Organization: Swiss Federal Institute of Technology (ETHZ)
* References: <[email protected]>
* Message-ID: <[email protected]>
*
* Most systems don't have this (yet)

*/
char *strdup(str)
char *str;
{
char *p;
extern char *malloc();
extern char *strcpy();

if ((p = malloc(strlen(str)+1)) == NULL)
return((char *) NULL);

(void) strcpy(p, str);

return(p);
}
# include <wittycomment.h>

neozeed

Oh I found something else while playing with the source, if you have a 16bit deep display, it looks like crap.  There is some 'issue' with using long's for the display, and it leaves some weird line artifacting.

The solution is to trust display postscript. Apparently you can just 'describe' a 32bit colour plane to it, and it'll render it down on whatever colour display you have. And I might add it looks way better to me.  Maybe it was an issue prior to NS 3.3 fixpack 3?

Anyways, you just have to modify NeXTwin.m to something like this:

--- NeXTwin.m   Wed May 28 10:24:25 2008
+++ vid.m       Wed May 28 10:26:27 2008
@@ -357,24 +357,27 @@
               case NX_TwelveBitRGBDepth:
               case NX_EightBitRGBDepth:
                       {
-                       for(i = 0; i < 4096; i++)
-                               {
-                               xcolors[i] = NXSwapHostShortToBig((short)((i <<4) | 0xf));
-                               }
-
-                               bitmap=[[NXBitmapImageRep alloc]
-                                       initData:(unsigned char *)NULL
-                                       pixelsWide:(int)800
-                                       pixelsHigh:(int)(313-29)
-                                       bitsPerSample:(int)4
-                                       samplesPerPixel:(int)4
-                                       hasAlpha:(BOOL)YES
-                                       isPlanar:(BOOL)NO

-                                       colorSpace:(NXColorSpace)NX_RGBColorSpace
-                                       bytesPerRow:(int)800*2
-                                       bitsPerPixel:(int)16
-                                       ];
-                               gfxvidinfo.pixbytes=2;
+                        for(i = 0; i < 4096; i++)
+                                {
+                                xcolors[i]=   NXSwapHostLongToBig(((i & 0x0f00)<< (20))|
+                                                ((i & 0x00f0) << (16))|
+                                                ((i & 0x000f) << (12))|
+                                                0xff);
+                                }
+
+                                bitmap=[[NXBitmapImageRep alloc]
+                                        initData:(unsigned char *)NULL
+                                        pixelsWide:(int)800
+                                        pixelsHigh:(int)(313-29)
+                                        bitsPerSample:(int)8
+                                        samplesPerPixel:(int)4
+                                        hasAlpha:(BOOL)YES
+                                        isPlanar:(BOOL)NO
+                                        colorSpace:(NXColorSpace)NX_RGBColorSpace
+                                        bytesPerRow:(int)800*4
+                                        bitsPerPixel:(int)32
+                                        ];
+                                gfxvidinfo.pixbytes=4;
                       break;
                       }
               case NX_EightBitGrayDepth:
# include <wittycomment.h>