Recent Posts

Pages: [1] 2 3 ... 10
Jo-Engine release / Re: Jo Engine update with GCC 8.3 and Mednafen
« Last post by ponut64 on May 27, 2019, 10:30:21 am »
Feel free to use these new ccflags from vbt if you run into an issue.

This is a replacement line for all parameters from "ccflags" line 195 in jo_engine_makefile, found in compiler directory.

Code: [Select]
CCFLAGS += -Wall \
--param max-inline-insns-single=50 -fms-extensions -std=gnu99 \
-Og -c -m2 -Wno-narrowing -fuse-linker-plugin -fno-unit-at-a-time -fomit-frame-pointer -flto -I$(JO_ENGINE_SRC_DIR)
Project announcement / Re: what p64 does
« Last post by ponut64 on May 26, 2019, 12:59:39 pm »
Jo-Engine release / Jo Engine update with GCC 8.3 and Mednafen
« Last post by ponut64 on May 16, 2019, 11:47:58 pm »
Hello. Linked here is an updated Jo Engine package that utilizes GCC 8.3 as well as SGL in ELF form. No code base changes have been made to Jo Engine, aside from the inclusions of SEGA_SCL and SEGA_INT, which are SBL libraries.
If a demo\feature was broken before, it's still broken.

However, with GCC 8.3 comes 10+ years of compiler optimization over previous versions, so you can expect smaller binary sizes as well as increased performance (up to 40%, by some estimates).
The biggest feature used is LTO, or link-time optimizations.
Please understand however that not all code is guaranteed to work between compiler versions. Some things that were warnings before are now flat-out errors. Other things that were totally fine in older GCC versions now may be errors or warnings. Inside Jo Engine itself, there is now a warning. Be careful.

Special Thanks to VBT and mrkotftw of SegaXtreme for making & coordinating the software package & compiler flags that were necessary to deliver this update.
The specific software package used comes from VBT's update to SSSDK:
Project announcement / Re: Open Source Objects - Gaiden Game
« Last post by mindslight on May 08, 2019, 12:14:30 pm »
Very cool, I will take a look :)

Thx :)
Project announcement / Open Source Objects - Gaiden Game
« Last post by 20EnderDude20 on May 04, 2019, 07:04:24 pm »
So, since this February, I've been contributing to an object show called "Open Source Objects", and they're starting to make up the idea to make a gaiden game about the show. So, I'm wondering if any of you are interested on working on this game. Maybe the game might be available for the Saturn if you work on it.

Here is the link to the Discord server of the show: . My username on the Discord server is The Blender Fiddler. I hope to see one of you there soon!
Thank you very much ponut, that's exactly what I was looking for. the VDP2 3d plane was what I wanted in the first place but as you noted, I couldn't find an abstraction at the joengine level that took advantage of it. I saw that the pseudo-mode7 demo was using vdp2 behind the scenes but the room_testing demo is exactly what I want. Thanks! I am gonna chip away at this and probably join the discord when I get it to a good place.
If you have more questions (you will), please join the sega extreme discord server.
What you want to use is RBG0 of VDP2.

RBG0 is a 3D rotating, scaling, and tiling plane.

In this thread, XL2 attached a demo that uses RBG0.

There are no Jo engine abstractions to use RBG0.
Here is a more direct example of the parameter setup for an RBG0 plane:
Code: [Select]
slRparaInitSet((void *)RBG0_PRA_ADR);
slMakeKtable((void *)RBG0_KTB_ADR);
slCharRbg0(COL_TYPE_256 , CHAR_SIZE_1x1);
slPageRbg0((void *)RBG0RB_CEL_ADR , 0 , PNB_1WORD|CN_12BIT);

sl1MapRA((void *)RBG0RA_MAP_ADR);
slKtableRA((void *)RBG0_KTB_ADR , K_MODE0 | K_FIX | K_LINE | K_2WORD | K_ON | K_LINECOL);
Cel2VRAM(tuti_cel , (void *)RBG0RA_CEL_ADR , 65536);
Map2VRAM(tuti_map , (void *)RBG0RA_MAP_ADR , 64 , 64 , 2 , 884);
Pal2CRAM(tuti_pal , (void *)RBG0RA_COL_ADR , 160);

slBack1ColSet((void *)BACK_COL_ADR , 0);

    slColorCalc( CC_ADD | CC_TOP | NBG2ON | RBG0ON);
slColorCalcOn( NBG2ON | RBG0ON);
slScrTransparent(NBG2ON | RBG0ON);

To display & transform the RBG0 plane, you need to end the matrix it is in with the following:

Code: [Select]

slCurRpara sets RBG0's rotation parameter type.
slScrMatConv converts the matrix to a scroll screen matrix. (Note the consumes the matrix in the process, do not set polygons in this matrix)
slScrMatSet sets the converted matrix and sends it to VDP2 rather than VDP1.

In addition, you may note this command:
Code: [Select]
slScrAutoDisp(NBG0ON | RBG0ON );

slScrAutoDisp sets data inside of SGL (the development library) to notify VDP2 of which scroll screens are to be displayed automatically each frame.

Those can be found here:
I wanna work on a first-person flying game using jo_mode7 for an infinite floor plane. The mode7 sample includes panning left and right, as well as forward and back (depth), but doesn't do anything with height. I modified the draw function to look something like this:

Code: [Select]
if (need_redraw_background)
        /* We notify that the event is handled */
        need_redraw_background = 0;
        /* We scroll the background (it's very fast) */
        jo_move_background(background_pos_x, 0);
        /* We scroll the mode7 output otherwise the floor will be truncated */
        mode7.output_left = background_pos_x;

mode7.horizon = horizon;

        /* This function updates the new output position */
        /* We draw the floor */
        jo_do_mode7_floor(&tile, background_pos_x, floor_pos_y, &mode7);


Where I increment/decrement horizon based on user input. However, it seems like I'm missing something because the floor texture doesn't get stretched properly, and the background doesn't redraw over the floor if the value of horizon increases.

It seems like I'm forgetting to update a few parameters, but having not found any code where this works properly I'm at a loss for now. Does anybody have any ideas/working code?

Attached screenshot of what it looks like when I decrease the value of horizon a bit.

Thanks in advance!
Project announcement / Re: what p64 does
« Last post by sbf2009 on April 15, 2019, 04:34:25 am »
The lesson I'm getting from this is that if you use SGL (meaning Jo Engine or Z-treme Tools as well,) the DSP will not play nice without a lot of extra considerations.
Pages: [1] 2 3 ... 10
SMF spam blocked by CleanTalk