Openjazz Update


Alrighty then, the GP32 version is fully working... sound effects, music... everything!

Just waiting for a bug fix from Alister in regards to the bullet shooting out of Jazz's ear when he's standing still.
Otherwise it's ready for release!
 
slaanesh said:
Alrighty then, the GP32 version is fully working... sound effects, music... everything!

Just waiting for a bug fix from Alister in regards to the bullet shooting out of Jazz's ear when he's standing still.
Otherwise it's ready for release!

Sweet! I look forward to your release. :D
 
Last edited by a moderator:
slaanesh said:
Alrighty then, the GP32 version is fully working... sound effects, music... everything!

Just waiting for a bug fix from Alister in regards to the bullet shooting out of Jazz's ear when he's standing still.
Otherwise it's ready for release!

anything you needed to do to libmodplug?
 
Last edited by a moderator:
Pickle said:
slaanesh said:
Alrighty then, the GP32 version is fully working... sound effects, music... everything!

Just waiting for a bug fix from Alister in regards to the bullet shooting out of Jazz's ear when he's standing still.
Otherwise it's ready for release!

anything you needed to do to libmodplug?

Not really. I added -DARM. I also added some other compile options to suite the GP32 and produce the best/fastest code.

I did find that when setting libmodplug options that the "sounds of silence" was being caused by OpenJazz using the highest quality resampling option MODPLUG_RESAMPLE_FIR.
I lowered this to MODPLUG_RESAMPLE_LINEAR, which also provided a small speedup without really an noticable loss of quality (not like modplug.h indicates anyway!).

I also disabled NOISE_REDUCTION, REVERB, MEGABASS and SURROUND as these are all not really noticeable on a handheld anyway and again, provide a smaller speedup with less processing overhead.

All up, with music and sound at 44100hz, the GP32 is managing 35 updates a second which is very pleasing. That's clocked at 124Mhz.
Without any sound or music this goes up to 60 updates a second.

Reducing to 22050hz may help a little. I'll see how it goes.

Here's an excerpt from modplug.h:

Code:
enum _ModPlug_Flags
{
        MODPLUG_ENABLE_OVERSAMPLING     = 1 << 0,  /* Enable oversampling (*highly* recommended) */
        MODPLUG_ENABLE_NOISE_REDUCTION  = 1 << 1,  /* Enable noise reduction */
        MODPLUG_ENABLE_REVERB           = 1 << 2,  /* Enable reverb */
        MODPLUG_ENABLE_MEGABASS         = 1 << 3,  /* Enable megabass */
        MODPLUG_ENABLE_SURROUND         = 1 << 4   /* Enable surround sound. */
};

enum _ModPlug_ResamplingMode
{
        MODPLUG_RESAMPLE_NEAREST = 0,  /* No interpolation (very fast, extremely bad sound quality) */
        MODPLUG_RESAMPLE_LINEAR  = 1,  /* Linear interpolation (fast, good quality) */
        MODPLUG_RESAMPLE_SPLINE  = 2,  /* Cubic spline interpolation (high quality) */
        MODPLUG_RESAMPLE_FIR     = 3   /* 8-tap fir filter (extremely high quality) */
};
 
Last edited by a moderator:
slaanesh said:
Alister has updated the bug and I've updated my OpenJazz port. It's looking very nice. Release this weekend.
Awesome! This would make my day!

(I too am getting impatient waiting for the Pandora...)
 
Last edited by a moderator:
slaanesh said:
Alister has updated the bug and I've updated my OpenJazz port. It's looking very nice. Release this weekend.

Ive got some updates from working on the wiz and gp2x you might want to use, like the resolution being selectable from within the gui 320x200 or 320x240.
 
Last edited by a moderator:
Pickle said:
Ive got some updates from working on the wiz and gp2x you might want to use, like the resolution being selectable from within the gui 320x200 or 320x240.

Upscaling renderers will probably slow things down a bit - the poor old GP32 alrady has to do a transposed blit every frame.
It's a pity that SDL doesn't have native rotation options to handle portrait screens.
 
Last edited by a moderator:
slaanesh said:
Pickle said:
Ive got some updates from working on the wiz and gp2x you might want to use, like the resolution being selectable from within the gui 320x200 or 320x240.

Upscaling renderers will probably slow things down a bit - the poor old GP32 alrady has to do a transposed blit every frame.
It's a pity that SDL doesn't have native rotation options to handle portrait screens.

Well it just enables the option to use it. Heres my patch:
http://sourceforge.n...45&atid=1167837

Edit: thanks for the modplug changes, those do help.
 
Last edited by a moderator:
Esn said:
I wouldn't use it, personally. The native game resolution is already very close to the GP32's maximum. Nothing wrong with black bars...

Just as a side note openjazz doesnt scale it just shows more of the game level, and the resolution change allows either mode, nothing is forced
 
Last edited by a moderator:
Pickle said:
Esn said:
I wouldn't use it, personally. The native game resolution is already very close to the GP32's maximum. Nothing wrong with black bars...

Just as a side note openjazz doesnt scale it just shows more of the game level, and the resolution change allows either mode, nothing is forced
Oh. Thanks for explaining. Rather neat, in that case... :p
 
Last edited by a moderator:
That sounds very nice. In that case I'll add it in I think.

Lets do it...

DONE. Nice! Thanks Pickle. I assumed it was a scaler.

I get 35FPS at 130Mhz, sound now running at 22050hz. Okay releasing tomorrow morning Australia time.
 
slaanesh said:
That sounds very nice. In that case I'll add it in I think.

Lets do it...

DONE. Nice! Thanks Pickle. I assumed it was a scaler.

I get 35FPS at 130Mhz, sound now running at 22050hz. Okay releasing tomorrow morning Australia time.

Did you do anything to black out the 40 lines in 320x200 mode?
 
Last edited by a moderator:
Pickle said:
Did you do anything to black out the 40 lines in 320x200 mode?

Yes I did.
The way SDL video works on the GP32, there's always a 320x240 buffer allocated.
The actual display is just centered if it's not the full size. As a work around, I always just clear the entire screen (using fast assembler memset).

In src/io/gfx/video.cpp:


Code:
void clearScreen (int index) {

#ifdef GP32
        // always 240 lines cleared
        memset(screen->pixels, index, 320*240);
#else
        SDL_FillRect(screen, NULL, index);
#endif

        return;

}

@ Pickle.
By the way, whilst I've got your attention - what changes did you make to DosBOX to make it work with GP2X? I remember reading that it required a fair reduction of memory requirements. I've been trying to port DosBOX to A320 but I'm not having much luck with it starting up. It's killed straight away, which to me seems like it's trying to alloc too much memory.
I've reduced the amount of emulated PC RAM from 16MB -> 4MB. Is there anything else that can be done?

@ Pickle.
Actually I found it now. Comment out
Code:
#define USE_FULL_TLB from paging.h
:)
 
Last edited by a moderator:
Thanks ill give that memset a try, thats only issue i have with the gp2x/wiz versions is the 40 lines being something other than black

slaanesh said:
@ Pickle.
Actually I found it now. Comment out
Code:
#define USE_FULL_TLB from paging.h
:)

Yeah that TLB is the big one. There a porting file that has some short notes on the memory savers.
The Gp2X source is in the archives if you wanted to start from there, it also includes the virtual keyboard gui i made up for it.

Edit: that memset worked :)
 
Last edited by a moderator:
Pickle said:
Yeah that TLB is the big one. There a porting file that has some short notes on the memory savers.
The Gp2X source is in the archives if you wanted to start from there, it also includes the virtual keyboard gui i made up for it.

Yes that docs/PORTING was excellent. I have a working DOSBox 0.73 for A320 Dingoo now.

Also I just make a few more tweaks to OpenJazz for GP32 - so should release tomorrow. Sorry about the little delay.
 
Last edited by a moderator:
Weird... I had a dream that you ported OpenJazz to GP32 and made an option to change all the graphics to Commander Keen ones, with Jazz himself becoming a Yorp. And I was playing it thinking it looked pretty neat.

I think I'm anticipating your release a little too much. :p
 
Back
Top