newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
#11
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
gijoe77 post_id=1306 time=1530529880 user_id=243 Wrote:quick question - What's the deal with MIPSpro and inline functions? Does it not support "inline"?

Well, it actually supports inlining. Take a look here.

Page 110:

Quote:Inlining

IPA performs across and within file inlining. A default inlining heuristic determines
which calls to inline.

From this manual you can invoke inline processing in, at least, two ways:

1. Use IPA processing (-IPA flag/s with or without -INLINE flag/s other than -INLINE:OFF)
2. Use stand-alone inliner (no -IPA flag/s, just -INLINE flag/s)

There are lots of options for finer-grained control of the inlining process, look through all the -INLINE:* options.

gijoe77 post_id=1306 time=1530529880 user_id=243 Wrote:it seems even with gcc, putting "inline" in the declaration doesn't guarantee a function or routine getting "inlined" if the compiler analysis doesn't think it should be...

Yes. Even some more aggressive ways of inlining, like -INLINE:all, won't guarantee actual inlining. The reason is quite simple: There are too many possibilities of coding a function, a compiler writer cannot cover them all in advance. And therefore you get compiler internal heuristics.


Kind regards,

Tru
TruHobbyist
O2

Posts: 43
Threads: 6
Joined: May 2018
Find Reply
07-02-2018, 01:00 PM
#12
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
gijoe77 post_id=1306 time=1530529880 user_id=243 Wrote:quick question - What's the deal with MIPSpro and inline functions? Does it not support "inline"?
Tru is right in that MIPSPro is able to inline functions, but you have a choice to either let the compiler do this for you in optimization or it can be manually defined by preprocessor macros. The latter is more common in programs ported from GNU compilers, since inlining functions make sense if they are small and lightweight.
Quote:for example for this error:

Code:
cc-1020 cc: ERROR File = m68kcpu.h, Line = 883
  The identifier "inline" is undefined.

  INLINE uint m68ki_read_imm_16(void);
  ^
This error message tells you that the macro INLINE has been declared as "inline". MIPSPro however uses '__inline' as inline directive. So the './configure' script messed up and you have to edit the header file manually with
Code:
#define INLINE __inline
dexter1
Global Moderator
******

Posts: 169
Threads: 9
Joined: May 2018
Find Reply
07-02-2018, 01:44 PM
#13
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
dexter1 post_id=1314 time=1530539043 user_id=141 Wrote:This error message tells you that the macro INLINE has been declared as "inline". MIPSPro however uses '__inline' as inline directive. So the './configure' script messed up and you have to edit the header file manually with
Code:
#define INLINE __inline

all right very awesome! I did that and also

Code:
#define inline __inline

and that did the trick! BTW where does one find that (__inline) documented? I've read through the cc manpage and the optimization and tuning guide and I don't recall ever seeing that anywhere..

ok now - I came across a problem I've been trying to figure out for the past few days - I really can't tell whats going on here - it seems this is a 2D array declaration, and cc really doesn't like it - I have no idea if this is a GCC-ism or if its easily fixed or what's the heck to make of it. Any ideas?

edit: attached my dgen dir with cc makefiles

Code:
cc-1029 cc: ERROR File = ckvp.c, Line = 90
  An expression is expected at this point.

                [STATE_ERROR] = {
                ^


here is the entire functions:

Code:
static const unsigned int st[][0x102] = {
        [STATE_ERROR] = {
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_BEGIN] = {
            [' '] = STATE_BEGIN,
            ['\f'] = STATE_BEGIN,
            ['\n'] = STATE_BEGIN,
            ['\r'] = STATE_BEGIN,
            ['\t'] = STATE_BEGIN,
            ['\v'] = STATE_BEGIN,
            [';'] = (STATE_ERROR | ACTION_ERROR),
            ['#'] = STATE_COMMENT,
            ['\''] = STATE_KEYSQ,
            ['"'] = STATE_KEYDQ,
            ['\\'] = STATE_KEYBS,
            ['='] = (STATE_ERROR | ACTION_ERROR),
            [0x100] = (STATE_KEY | ACTION_STORE),
            [0x101] = 0
        },
        [STATE_COMMENT] = {
            ['\n'] = STATE_BEGIN,
            [0x100] = STATE_COMMENT,
            [0x101] = 0
        },
        [STATE_KEY] = {
            [' '] = (STATE_BEQ | ACTION_KEY),
            ['\f'] = (STATE_BEQ | ACTION_KEY),
            ['\n'] = (STATE_BEQ | ACTION_KEY),
            ['\r'] = (STATE_BEQ | ACTION_KEY),
            ['\t'] = (STATE_BEQ | ACTION_KEY),
            ['\v'] = (STATE_BEQ | ACTION_KEY),
            ['\''] = STATE_KEYSQ,
            ['\"'] = STATE_KEYDQ,
            [';'] = (STATE_ERROR | ACTION_ERROR),
            ['='] = (STATE_AEQ | ACTION_KEY),
            ['#'] = (STATE_ERROR | ACTION_ERROR),
            ['\\'] = STATE_KEYBS,
            [0x100] = (STATE_KEY | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYBS] = {
            ['f'] = (STATE_KEY | ACTION_STORE_MOD),
            ['n'] = (STATE_KEY | ACTION_STORE_MOD),
            ['r'] = (STATE_KEY | ACTION_STORE_MOD),
            ['t'] = (STATE_KEY | ACTION_STORE_MOD),
            ['v'] = (STATE_KEY | ACTION_STORE_MOD),
            ['x'] = STATE_KEYBSX1,
            ['\n'] = STATE_KEY,
            [0x100] = (STATE_KEY | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYBSX1] = {
            HEX_INDICES(STATE_KEYBSX2 | ACTION_STORE_HEX1),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYBSX2] = {
            HEX_INDICES(STATE_KEY | ACTION_STORE_HEX2),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYSQ] = {
            ['\''] = STATE_KEY,
            [0x100] = (STATE_KEYSQ | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYDQ] = {
            ['"'] = STATE_KEY,
            ['\\'] = STATE_KEYDQBS,
            [0x100] = (STATE_KEYDQ | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYDQBS] = {
            ['f'] = (STATE_KEYDQ | ACTION_STORE_MOD),
            ['n'] = (STATE_KEYDQ | ACTION_STORE_MOD),
            ['r'] = (STATE_KEYDQ | ACTION_STORE_MOD),
            ['t'] = (STATE_KEYDQ | ACTION_STORE_MOD),
            ['v'] = (STATE_KEYDQ | ACTION_STORE_MOD),
            ['x'] = STATE_KEYDQBSX1,
            ['\n'] = STATE_KEYDQ,
            [0x100] = (STATE_KEYDQ | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYDQBSX1] = {
            HEX_INDICES(STATE_KEYDQBSX2 | ACTION_STORE_HEX1),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_KEYDQBSX2] = {
            HEX_INDICES(STATE_KEYDQ | ACTION_STORE_HEX2),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_BEQ] = {
            [' '] = STATE_BEQ,
            ['\f'] = STATE_BEQ,
            ['\n'] = STATE_BEQ,
            ['\r'] = STATE_BEQ,
            ['\t'] = STATE_BEQ,
            ['\v'] = STATE_BEQ,
            ['='] = STATE_AEQ,
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_AEQ] = {
            [' '] = STATE_AEQ,
            ['\f'] = STATE_AEQ,
            ['\n'] = STATE_AEQ,
            ['\r'] = STATE_AEQ,
            ['\t'] = STATE_AEQ,
            ['\v'] = STATE_AEQ,
            ['\''] = STATE_VALSQ,
            ['\"'] = STATE_VALDQ,
            ['\\'] = STATE_VALBS,
            ['='] = (STATE_ERROR | ACTION_ERROR),
            ['#'] = (STATE_COMMENT | ACTION_VALUE),
            [';'] = (STATE_BEGIN | ACTION_VALUE),
            [0x100] = (STATE_VALUE | ACTION_STORE),
            [0x101] = ACTION_VALUE
        },
        [STATE_VALUE] = {
            [' '] = (STATE_VALEND | ACTION_VALUE),
            ['\f'] = (STATE_VALEND | ACTION_VALUE),
            ['\n'] = (STATE_BEGIN | ACTION_VALUE),
            ['\r'] = (STATE_VALEND | ACTION_VALUE),
            ['\t'] = (STATE_VALEND | ACTION_VALUE),
            ['\v'] = (STATE_VALEND | ACTION_VALUE),
            ['\''] = STATE_VALSQ,
            ['\"'] = STATE_VALDQ,
            [';'] = (STATE_BEGIN | ACTION_VALUE),
            ['='] = (STATE_ERROR | ACTION_ERROR),
            ['#'] = (STATE_COMMENT | ACTION_VALUE),
            ['\\'] = STATE_VALBS,
            [0x100] = (STATE_VALUE | ACTION_STORE),
            [0x101] = ACTION_VALUE
        },
        [STATE_VALBS] = {
            ['f'] = (STATE_VALUE | ACTION_STORE_MOD),
            ['n'] = (STATE_VALUE | ACTION_STORE_MOD),
            ['r'] = (STATE_VALUE | ACTION_STORE_MOD),
            ['t'] = (STATE_VALUE | ACTION_STORE_MOD),
            ['v'] = (STATE_VALUE | ACTION_STORE_MOD),
            ['x'] = STATE_VALBSX1,
            ['\n'] = STATE_VALUE,
            [0x100] = (STATE_VALUE | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALBSX1] = {
            HEX_INDICES(STATE_VALBSX2 | ACTION_STORE_HEX1),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALBSX2] = {
            HEX_INDICES(STATE_VALUE | ACTION_STORE_HEX2),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALSQ] = {
            ['\''] = STATE_VALUE,
            [0x100] = (STATE_VALSQ | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALDQ] = {
            ['"'] = STATE_VALUE,
            ['\\'] = STATE_VALDQBS,
            [0x100] = (STATE_VALDQ | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALDQBS] = {
            ['f'] = (STATE_VALDQ | ACTION_STORE_MOD),
            ['n'] = (STATE_VALDQ | ACTION_STORE_MOD),
            ['r'] = (STATE_VALDQ | ACTION_STORE_MOD),
            ['t'] = (STATE_VALDQ | ACTION_STORE_MOD),
            ['v'] = (STATE_VALDQ | ACTION_STORE_MOD),
            ['x'] = STATE_VALDQBSX1,
            ['\n'] = STATE_VALDQ,
            [0x100] = (STATE_VALDQ | ACTION_STORE),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALDQBSX1] = {
            HEX_INDICES(STATE_VALDQBSX2 | ACTION_STORE_HEX1),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALDQBSX2] = {
            HEX_INDICES(STATE_VALDQ | ACTION_STORE_HEX2),
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = ACTION_ERROR
        },
        [STATE_VALEND] = {
            [' '] = STATE_VALEND,
            ['\f'] = STATE_VALEND,
            ['\n'] = STATE_BEGIN,
            ['\r'] = STATE_VALEND,
            ['\t'] = STATE_VALEND,
            ['\v'] = STATE_VALEND,
            [';'] = STATE_BEGIN,
            ['#'] = STATE_COMMENT,
            [0x100] = (STATE_ERROR | ACTION_ERROR),
            [0x101] = 0
        }
    };


Attached Files
.gz dgen-sdl-1.33-2Darray-issue.tar.gz Size: 1.22 MB  Downloads: 21
gijoe77
Tezro

Posts: 469
Threads: 28
Joined: Jun 2018
Find Reply
07-03-2018, 03:12 PM
#14
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
Congrats on getting this to compile (gcc version)! I tried last year and just got a Bus error when running the binary. However, I was modifying (poorly/hackish) code than using your gcc-ish header files you used.

When I compiled your version, games have a strong red-tint.. and I have no sound. It does run ok on a 600mhz Octane though. I changed Makefile settings to use -O3 instead of -O2 hoping for a performance improvement.

If you wanted to run Genesis games on IRIX.. you could use xmame/xmess (someone posted their compiled version(s) on nekochan in the past):

./xmess.xgl genesis -ef 0 -sf 44000 -frameskip 11 -cart /storage/roms/sega-genesis/Sonic*.gen -scale 2

xmess/xmame does seem to run faster with those settings for Genesis roms (Sonic is quick and nimble), but it does not play all roms so dgen may do better.
necron2600
O2

Posts: 23
Threads: 1
Joined: May 2018
Find Reply
07-03-2018, 05:37 PM
#15
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
gijoe77 post_id=1328 time=1530630746 user_id=243 Wrote:ok now - I came across a problem I've been trying to figure out for the past few days - I really can't tell whats going on here - it seems this is a 2D array declaration, and cc really doesn't like it - I have no idea if this is a GCC-ism or if its easily fixed or what's the heck to make of it. Any ideas?
I'm not sure off the top of my head whether that's c99 syntax or a GCC extension. But I suspect it's c99, so you'll have a whole lot more success compiling the project with c99 instead of cc. The use of 'inline' (which is IIRC a c99 extension) suggests the upstream developers were using a c99-compliant compiler (which GCC is). The use of '__inline' instead is a MIPSpro extension to the earlier standard that was superseded by c99 (again IIRC). You should be able to omit your extra #defines if you switch to c99, and there's a good chance it'll handle the array syntax too.

All the extensions are documented somewhere; search your favourite techpubs archive. It's been a while since I had to read up on all this, myself. But my rule of thumb is to compile everything with c99 instead of cc on IRIX unless I know it needs the older compiler.

SGI:  Indigo, Indigo2, Octane, Origin 300
Sun:  SPARCstation 20, Ultra 2, Blade 2500, T5240
HP:  9000/380, 425e, C8000
Digital: DECstation 5000/125
jpstewart
Octane

Posts: 54
Threads: 0
Joined: May 2018
Find Reply
07-03-2018, 11:29 PM
#16
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
jpstewart post_id=1337 time=1530660582 user_id=129 Wrote:But my rule of thumb is to compile everything with c99 instead of cc on IRIX unless I know it needs the older compiler.

I actually ran across a old post somewhere talking about c99 - I don't have that installed - I do have c89 installed - I'll have to look over my mipspro compiler suite and see if I somehow missed the install of c99
gijoe77
Tezro

Posts: 469
Threads: 28
Joined: Jun 2018
Find Reply
07-04-2018, 12:16 AM
#17
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
necron2600 post_id=1332 time=1530639471 user_id=122 Wrote:When I compiled your version, games have a strong red-tint.. and I have no sound.

what version of GCC are you using? I'm using 3.4.6

I fired up my tezro and the GCC versions I compiled run full speed with proper color and sound - not sure why we are seeing different results - here are two dgen binaries, give them a try and let me know if your still seeing the same issue on your octane (my octane is out of comission at the moment or else I'd test it myself) - the regular "-gcc" was compiled with regular -O2, the "-gcc-optimized" was compiled with

Code:
CFLAGS = -O3 -mips4 -ffast-math -fomit-frame-pointer -fno-exceptions -funroll-loops -frerun-cse-after-loop
CXXFLAGS = -O3 -mips4 -ffast-math -fomit-frame-pointer -fno-exceptions -fno-rtti -funroll-loops -frerun-cse-after-loop

It honestly doesn't seem to me that the optimized one runs any better or faster than the -O2 version

jpstewart post_id=1337 time=1530660582 user_id=129 Wrote:But my rule of thumb is to compile everything with c99 instead of cc on IRIX unless I know it needs the older compiler.
Ok this is starting to come into focus a bit more now. I was trying to figure out why the c99 stuff wasn't working and I was assuming MIPSpro is a c99 compliant compiler... it seems my o2 dev environment is on MIPSpro 7.3.1.3m, and it doesn't have c99. My Tezro is on 7.4.4m and has c99 - so I compiled the c99 offending modules (ckvp.o and system.o) on my Tezro, copied those back over to my o2 and was able to link it successfully with MIPSpro. The MIPSpro binary is significantly slower than the gcc version - I thought that was pretty odd (binary included). I'm not sure how much of a big deal it was that I used MIPSpro 7.4.4m to compile two object files and then copy them over to a 7.3.1.3m project and performed final linking, so I tried recompiling on my Tezro using c99 for the entire project using this configure line:

Code:
CC=c99 CXX=CC ./configure --with-sdl-prefix=/usr/nekoware --enable-joystick=no --enable-threads=no  --disable-ctv --disable-hqx --disable-scale2x  --oldincludedir=/usr/nekoware/include

I was working through the usual little fixes and then I was hit with this:

Code:
CXX    save.o
cc-1100 CC: ERROR File = /usr/include/internal/stdio_core.h, Line = 260
  The indicated parameter name appears more than once.

  extern FILE   *fopen(const char * __restrict, const char * __restrict);
                                                             ^


a system include file having an error?


Attached Files
.rar binaries.rar Size: 1.5 MB  Downloads: 6
gijoe77
Tezro

Posts: 469
Threads: 28
Joined: Jun 2018
Find Reply
07-04-2018, 11:51 AM
#18
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
While the MIPSpro C compiler supports C99, the MIPSpro C++ compiler does not.

"restrict" is a C99 keyword, the CC (C++) compiler does not know about it and tries to parse it as a variable name. This results in the error you're seeing.

You should try to enable C99 only in CFLAGS, not CXXFLAGS.
jan-jaap
SGI Collector

Posts: 203
Threads: 6
Joined: Jun 2018
Website Find Reply
07-04-2018, 01:48 PM
#19
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
jan-jaap post_id=1347 time=1530712119 user_id=183 Wrote:While the MIPSpro C compiler supports C99, the MIPSpro C++ compiler does not.

"restrict" is a C99 keyword, the CC (C++) compiler does not know about it and tries to parse it as a variable name. This results in the error you're seeing.

You should try to enable C99 only in CFLAGS, not CXXFLAGS.

so you mean use cc and have "-c99" as the CFLAG? ok I gave it a go and it was still giving me problems but I think i got it all sorted.

so what I was doing was adding the below to a few .h and .cpp files because they were erroring out and it appeared "__c99" was not getting defined and was complaining

Code:
#ifndef __c99
#define __c99
#endif

apparently that was fine for the C headers, but when I did that to a .cpp file that's when I ran into the "restrict" problem, so I just manually declared the file types that the .cpp file was using at the top of the .cpp file (uint32_t, uint16_t, etc) and was able to link a binary.

I must say the MIPSpro binaries run like shit compared to the gcc binaries - I assumed MIPSpro would *always* create faster binaries. I even tried playing with some optimizations like -INLINE:all and saw no speed improvements.
gijoe77
Tezro

Posts: 469
Threads: 28
Joined: Jun 2018
Find Reply
07-04-2018, 04:33 PM
#20
Re: newbie questions - porting dgen (Genesis EMU) /w MIPSpro unresolved test symbol "pow
ok I think I have figured out a few things. There were a few settings in the $HOME/.dgen/dgenrc that really seemed to make a difference:

Code:
bool_opengl_32bit = false
bool_opengl = no
int_depth = 8
#obviously not needed but it helps to see the fps
bool_fps = true

this disables some of the opengl effects like scanlines and scale2x, but on a slower system (my o2) it really made a big difference. I went from 5fps to ~30fps on my 400mhz R12k o2. This emu runs full speed on my tezro with or without these settings (just not fullscreen mode).

edit: on my tezro I run it with opengl enabled and the scale2x effect, seems to me to be the best

The int_depth appears to need to be 8, anything else and everything is red, literally.


I included my dgenrc

I attached a mips4 binary that I run on my tezro - "dgen-mipspro-mips4"

I built it with these flags:

Code:
export CC=/usr/bin/cc
export CXX=/usr/bin/CC
export CFLAGS="-c99 -diag_suppress 3649 -diag_error 1035 -woff all -Ofast=ip35 -g0 -O3 -n32 -mips4 -OPT:Olimit=0:roundoff=3:IEEE_ar=3:fast_sq=ON:div_split=ON:alias=typed -GCM:array_sp=ON -lfastm -TARG:platform=IP35:proc=r16000 -IPA"
export CXXFLAGS="-ptused -diag_suppress 3649 -woff all -Ofast=ip35 -g0 -O3 -n32 -mips4 -OPT:Olimit=0:roundoff=3:IEEE_ar=3:fast_sq=ON:div_split=ON:alias=typed -GCM:array_sp=ON -lfastm -TARG:platform=IP35:proc=r16000 -IPA"

./configure --with-sdl-prefix=/usr/nekoware --oldincludedir=/usr/nekoware/include --enable-joystick=no

I also attached a gcc4.7.1 build, seems to run pretty good, I built it with these flags:

Code:
export CC=/usr/nekoware/gcc-4.7/bin/gcc
export CXX=/usr/nekoware/gcc-4.7/bin/g++
export CFLAGS="-std=gnu99 -g0 -Ofast -mips4"
export CXXFLAGS="-g0 -Ofast -mips4"

./configure --with-sdl-prefix=/usr/nekoware --oldincludedir=/usr/nekoware/include --enable-joystick=no

I also was playing around with "-apo" option (because why not!), the binary errors out on my Tezro, but curiously it runs the best on my o2, a good 2 fps faster than all my other builds. I included it too. Here were the flags for the o2 build:

Code:
export CC=/usr/bin/cc
export CXX=/usr/bin/CC
export CFLAGS="-c99 -diag_suppress 3649 -diag_error 1035 -woff all -g0 -Ofast=ip32_10k -O3 -n32 -mips4 -OPT:Olimit=0:roundoff=3:div_split=ON:alias=typed -TARG:platform=ip32_10k:proc=r12000 -IPA -apo"
export CXXFLAGS="-ptused -diag_suppress 3649 -woff all -g0 -Ofast=ip32_10k -O3 -n32 -mips4 -OPT:Olimit=0:roundoff=3:div_split=ON:alias=typed -TARG:platform=ip32_10k:proc=r12000 -IPA -apo"

./configure --with-sdl-prefix=/usr/nekoware --oldincludedir=/usr/nekoware/include --enable-joystick=no


I included the source dir I was building from if anyone wants to give it a spin, just gotta build with c99 flags.

I'm still learning so if anyone can give any feedback that would be awesome


Attached Files
.gz dgen-sdl-1.33.IRIX.c99.tar.gz Size: 1.32 MB  Downloads: 23
.rar dgenrc.rar Size: 4.62 KB  Downloads: 4
.rar dgen_1.33_irix_binaries.rar Size: 1.54 MB  Downloads: 6
gijoe77
Tezro

Posts: 469
Threads: 28
Joined: Jun 2018
Find Reply
07-14-2018, 03:45 PM


Forum Jump:


Users browsing this thread: 2 Guest(s)