Jo Engine
2024.04.28
Jo Sega Saturn Engine
|
Jo Engine VDP2 definition and tools. More...
Go to the source code of this file.
Macros | |
#define | jo_nbg2_printf(X, Y, ...) |
NBG2 printf implementation (jo_set_nbg2_8bits_font must be called before) More... | |
#define | jo_nbg3_printf(X, Y, ...) |
NBG3 printf implementation (jo_set_nbg3_8bits_font must be called before) More... | |
#define | JO_NBG1_SCROLL_TABLE_SIZE |
512 entries. One offset for each line because the background size is a 512x512 pixels by default. More... | |
#define | JO_NBG0_SCROLL_TABLE_SIZE |
512 entries. One offset for each line because the background size is a 512x512 pixels by default. More... | |
Functions | |
int | sprintf (char *str, const char *format,...) |
sprintf prototypes More... | |
void | jo_set_displayed_screens (const jo_scroll_screen scroll_screen_flags) |
Set displayed screens. More... | |
void | jo_set_default_background_color (const jo_color background_color) |
Set default background color. More... | |
void | jo_nbg2_print (int x, int y, char *str) |
NBG2 Print implementation. More... | |
void | jo_vdp2_set_nbg2_8bits_font (jo_img_8bits *img, char *mapping, int palette_id, bool vertical_flip, bool enabled) |
Set 8 bits NBG2 font image. More... | |
void | jo_nbg2_clear (void) |
Clear NBG2. More... | |
void | jo_nbg3_print (int x, int y, char *str) |
NBG3 Print implementation. More... | |
void | jo_vdp2_set_nbg3_8bits_font (jo_img_8bits *img, char *mapping, int palette_id, bool vertical_flip, bool enabled) |
Set 8 bits NBG3 font image. More... | |
void | jo_nbg3_clear (void) |
Clear NBG3. More... | |
void | jo_vdp2_set_nbg1_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip) |
Add 8 bits NBG1 image. More... | |
void | jo_vdp2_set_nbg0_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip, bool enabled) |
Set 8 bits NBG0 image. More... | |
void | jo_vdp2_set_nbg2_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip, bool enabled) |
Set 8 bits NBG2 image. More... | |
void | jo_vdp2_set_nbg3_8bits_image (jo_img_8bits *img, int palette_id, bool vertical_flip, bool enabled) |
Set 8 bits NBG3 image. More... | |
void | jo_vdp2_set_nbg1_image (const jo_img *const img, const unsigned short left, const unsigned short top) |
Set NBG1 bitmap image. More... | |
void | jo_vdp2_clear_bitmap_nbg1 (const jo_color color) |
Clear NBG1 bitmap. More... | |
static __jo_force_inline void | jo_vdp2_move_nbg1 (const int x, const int y) |
Move NBG1 (scrolling) More... | |
static __jo_force_inline void | jo_vdp2_zoom_nbg1f (const float width_factor, const float height_factor) |
Zoom NBG1 width and height independently. More... | |
static __jo_force_inline void | jo_vdp2_zoom_nbg1 (const float factor) |
Zoom NBG1. More... | |
static __jo_force_inline void | jo_vdp2_move_nbg0 (const int x, const int y) |
Move NBG0 (scrolling) More... | |
static __jo_force_inline void | jo_vdp2_zoom_nbg0f (const float width_factor, const float height_factor) |
Zoom NBG0 width and height independently. More... | |
static __jo_force_inline void | jo_vdp2_zoom_nbg0 (const float factor) |
Zoom NBG0. More... | |
void | jo_vdp2_draw_bitmap_nbg1_line (int x0, int y0, int x1, int y1, const jo_color color) |
Draw a NBG1 line using Bresenham's line algorithm. More... | |
static __jo_force_inline void | jo_vdp2_draw_bitmap_nbg1_square (const int x, const int y, const short width, const short height, const jo_color color) |
Draw a square on NBG1. More... | |
static __jo_force_inline void | jo_vdp2_put_pixel_bitmap_nbg1 (const int x, const int y, const jo_color color) |
Put pixel in NBG1 using color. More... | |
static __jo_force_inline void | jo_vdp2_put_pixel_bitmap_nbg1_rgb (const int x, const int y, unsigned char r, unsigned char g, unsigned char b) |
Put pixel in NBG1 using composite color. More... | |
void | jo_vdp2_enable_rbg0 (void) |
Enable 3D planes. More... | |
void | jo_vdp2_disable_rbg0 (void) |
Disable 3D planes. More... | |
void | jo_vdp2_set_rbg0_plane_a_8bits_image (jo_img_8bits *img, int palette_id, bool repeat, bool vertical_flip) |
Setup plane A. More... | |
void | jo_vdp2_set_rbg0_plane_b_8bits_image (jo_img_8bits *img, int palette_id, bool repeat, bool vertical_flip) |
Setup plane B. More... | |
void | jo_vdp2_replace_rbg0_plane_a_8bits_image (jo_img_8bits *img, bool vertical_flip) |
Replace plane A image. More... | |
void | jo_vdp2_replace_rbg0_plane_b_8bits_image (jo_img_8bits *img, bool vertical_flip) |
Replace plane B image. More... | |
static __jo_force_inline void | jo_vdp2_draw_rbg0_plane_a (const bool use_scroll_format_matrix) |
Draw plane A. More... | |
static __jo_force_inline void | jo_vdp2_draw_rbg0_plane_b (const bool use_scroll_format_matrix) |
Draw plane A. More... | |
static __jo_force_inline void | jo_enable_screen_mozaic (const jo_scroll_screen screens, const short x, const short y) |
Enable mozaic effect for scroll screen. More... | |
static __jo_force_inline void | jo_disable_all_screen_mozaic (void) |
Disable mozaic effect for all scroll screen. More... | |
int * | jo_vdp2_enable_nbg1_line_scroll (void) |
Enable NBG1 horizontal line scroll effect. More... | |
void | jo_vdp2_disable_nbg1_line_scroll (void) |
Disable NBG1 horizontal line scroll effect. More... | |
void | jo_vdp2_compute_nbg1_line_scroll (unsigned short offset) |
Compute NBG1 horizontal line scroll effect using specific offset. More... | |
int * | jo_vdp2_enable_nbg0_line_scroll (void) |
Enable NBG0 horizontal line scroll effect. More... | |
void | jo_vdp2_disable_nbg0_line_scroll (void) |
Disable NBG0 horizontal line scroll effect. More... | |
void | jo_vdp2_compute_nbg0_line_scroll (unsigned short offset) |
Compute NBG0 horizontal line scroll effect using specific offset. More... | |
void | jo_disable_all_screens_transparency (void) |
Disable all screens transparency. More... | |
void | jo_enable_screen_transparency (const jo_scroll_screen screen, const unsigned short transparency_level) |
Enable screen transparency. More... | |
Variables | |
char | __jo_sprintf_buf [JO_PRINTF_BUF_SIZE] |
Internal sprintf buffer. More... | |
Jo Engine VDP2 definition and tools.
#define JO_NBG0_SCROLL_TABLE_SIZE |
512 entries. One offset for each line because the background size is a 512x512 pixels by default.
#define JO_NBG1_SCROLL_TABLE_SIZE |
512 entries. One offset for each line because the background size is a 512x512 pixels by default.
#define jo_nbg2_printf | ( | X, | |
Y, | |||
... | |||
) |
NBG2 printf implementation (jo_set_nbg2_8bits_font must be called before)
X | Horizontal position from top left screen corner |
Y | Vertical position from top left screen corner |
... | Arguments |
#define jo_nbg3_printf | ( | X, | |
Y, | |||
... | |||
) |
NBG3 printf implementation (jo_set_nbg3_8bits_font must be called before)
X | Horizontal position from top left screen corner |
Y | Vertical position from top left screen corner |
... | Arguments |
|
static |
Disable mozaic effect for all scroll screen.
void jo_disable_all_screens_transparency | ( | void | ) |
Disable all screens transparency.
|
static |
Enable mozaic effect for scroll screen.
screens | Scroll screens (You can pass multiple value using pipe(|). Example: JO_NBG1_SCREEN|JO_NBG2_SCREEN) |
x | Horizontal mozaic size [1-16] |
y | Vertical mozaic size [1-16] |
void jo_enable_screen_transparency | ( | const jo_scroll_screen | screen, |
const unsigned short | transparency_level | ||
) |
Enable screen transparency.
screen | Scroll screen |
transparency_level | Transparency Level 0 (fully visible) to 31 (almost invisible) |
void jo_nbg2_clear | ( | void | ) |
Clear NBG2.
void jo_nbg2_print | ( | int | x, |
int | y, | ||
char * | str | ||
) |
NBG2 Print implementation.
x | Horizontal position from top left screen corner |
y | Vertical position from top left screen corner |
str | String |
void jo_nbg3_clear | ( | void | ) |
Clear NBG3.
void jo_nbg3_print | ( | int | x, |
int | y, | ||
char * | str | ||
) |
NBG3 Print implementation.
x | Horizontal position from top left screen corner |
y | Vertical position from top left screen corner |
str | String |
void jo_set_default_background_color | ( | const jo_color | background_color | ) |
Set default background color.
background_color | Color |
void jo_set_displayed_screens | ( | const jo_scroll_screen | scroll_screen_flags | ) |
Set displayed screens.
scroll_screen_flags | Scroll screens (You can pass multiple value using pipe(|). Example: JO_NBG1_SCREEN|JO_NBG2_SCREEN) |
void jo_vdp2_clear_bitmap_nbg1 | ( | const jo_color | color | ) |
Clear NBG1 bitmap.
color | Clear color |
void jo_vdp2_compute_nbg0_line_scroll | ( | unsigned short | offset | ) |
Compute NBG0 horizontal line scroll effect using specific offset.
offset | Offset in scroll table returned by jo_vdp2_enable_nbg1_line_scroll() |
void jo_vdp2_compute_nbg1_line_scroll | ( | unsigned short | offset | ) |
Compute NBG1 horizontal line scroll effect using specific offset.
offset | Offset in scroll table returned by jo_vdp2_enable_nbg1_line_scroll() |
void jo_vdp2_disable_nbg0_line_scroll | ( | void | ) |
Disable NBG0 horizontal line scroll effect.
void jo_vdp2_disable_nbg1_line_scroll | ( | void | ) |
Disable NBG1 horizontal line scroll effect.
void jo_vdp2_disable_rbg0 | ( | void | ) |
Disable 3D planes.
void jo_vdp2_draw_bitmap_nbg1_line | ( | int | x0, |
int | y0, | ||
int | x1, | ||
int | y1, | ||
const jo_color | color | ||
) |
Draw a NBG1 line using Bresenham's line algorithm.
x0 | horizontal location of the beginning of the line |
y0 | vertical location of the beginning of the line |
x1 | horizontal location of the end of the line |
y1 | vertical location of the end of the line |
color | Color (ex: JO_COLOR_Red) |
|
static |
Draw a square on NBG1.
x | Square horizontal location |
y | Square vertical location |
width | Square width |
height | Square height |
color | Color (ex: JO_COLOR_Red) |
|
static |
Draw plane A.
use_scroll_format_matrix | Convert current matrix to scroll format matrix |
|
static |
Draw plane A.
use_scroll_format_matrix | Convert current matrix to scroll format matrix |
int* jo_vdp2_enable_nbg0_line_scroll | ( | void | ) |
Enable NBG0 horizontal line scroll effect.
int* jo_vdp2_enable_nbg1_line_scroll | ( | void | ) |
Enable NBG1 horizontal line scroll effect.
void jo_vdp2_enable_rbg0 | ( | void | ) |
Enable 3D planes.
|
static |
Move NBG0 (scrolling)
x | horizontal location |
y | vertical location |
|
static |
Move NBG1 (scrolling)
x | horizontal location |
y | vertical location |
|
static |
Put pixel in NBG1 using color.
x | horizontal location |
y | vertical location |
color | Color (ex: JO_COLOR_Red) |
|
static |
Put pixel in NBG1 using composite color.
x | horizontal location |
y | vertical location |
r | Red color component |
g | Green color component |
b | Blue color component |
void jo_vdp2_replace_rbg0_plane_a_8bits_image | ( | jo_img_8bits * | img, |
bool | vertical_flip | ||
) |
Replace plane A image.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
vertical_flip | Flip image vertically |
void jo_vdp2_replace_rbg0_plane_b_8bits_image | ( | jo_img_8bits * | img, |
bool | vertical_flip | ||
) |
Replace plane B image.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
vertical_flip | Flip image vertically |
void jo_vdp2_set_nbg0_8bits_image | ( | jo_img_8bits * | img, |
int | palette_id, | ||
bool | vertical_flip, | ||
bool | enabled | ||
) |
Set 8 bits NBG0 image.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
palette_id | palette id from TGA (see also jo_palette) |
vertical_flip | Flip image vertically |
enabled | Display NBG0 now |
void jo_vdp2_set_nbg1_8bits_image | ( | jo_img_8bits * | img, |
int | palette_id, | ||
bool | vertical_flip | ||
) |
Add 8 bits NBG1 image.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
palette_id | palette id from TGA (see also jo_palette) |
vertical_flip | Flip image vertically |
void jo_vdp2_set_nbg1_image | ( | const jo_img *const | img, |
const unsigned short | left, | ||
const unsigned short | top | ||
) |
Set NBG1 bitmap image.
img | Pointer to an image struct |
left | Left location |
top | Top location |
void jo_vdp2_set_nbg2_8bits_font | ( | jo_img_8bits * | img, |
char * | mapping, | ||
int | palette_id, | ||
bool | vertical_flip, | ||
bool | enabled | ||
) |
Set 8 bits NBG2 font image.
img | 8 bits 255 colors max image. (height must be a multiple of 8). Width must be 8. |
mapping | Image pattern : " 0123456789ABCDEFGH...". The first character must be an empty space. |
palette_id | palette id from TGA (see also jo_palette) |
vertical_flip | Flip image vertically |
enabled | Display NBG2 now |
void jo_vdp2_set_nbg2_8bits_image | ( | jo_img_8bits * | img, |
int | palette_id, | ||
bool | vertical_flip, | ||
bool | enabled | ||
) |
Set 8 bits NBG2 image.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
palette_id | palette id from TGA (see also jo_palette) |
vertical_flip | Flip image vertically |
enabled | Display NBG2 now |
void jo_vdp2_set_nbg3_8bits_font | ( | jo_img_8bits * | img, |
char * | mapping, | ||
int | palette_id, | ||
bool | vertical_flip, | ||
bool | enabled | ||
) |
Set 8 bits NBG3 font image.
img | 8 bits 255 colors max image. (height must be a multiple of 8). Width must be 8 |
mapping | Image pattern : "0123456789ABCDEFGH...". The first character must be an empty space. |
palette_id | palette id from TGA (see also jo_palette) |
vertical_flip | Flip image vertically |
enabled | Display NBG2 now |
void jo_vdp2_set_nbg3_8bits_image | ( | jo_img_8bits * | img, |
int | palette_id, | ||
bool | vertical_flip, | ||
bool | enabled | ||
) |
Set 8 bits NBG3 image.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
palette_id | palette id from TGA (see also jo_palette) |
vertical_flip | Flip image vertically |
enabled | Display NBG3 now |
void jo_vdp2_set_rbg0_plane_a_8bits_image | ( | jo_img_8bits * | img, |
int | palette_id, | ||
bool | repeat, | ||
bool | vertical_flip | ||
) |
Setup plane A.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
palette_id | palette id from TGA (see also jo_palette) |
repeat | Repeat the plane infinitely. |
vertical_flip | Flip image vertically |
void jo_vdp2_set_rbg0_plane_b_8bits_image | ( | jo_img_8bits * | img, |
int | palette_id, | ||
bool | repeat, | ||
bool | vertical_flip | ||
) |
Setup plane B.
img | 8 bits 255 colors max image. (Width AND height must be a multiple of 8) |
palette_id | palette id from TGA (see also jo_palette) |
repeat | Repeat the plane infinitely. |
vertical_flip | Flip image vertically |
|
static |
Zoom NBG0.
factor | Zoom factor |
|
static |
Zoom NBG0 width and height independently.
width_factor | Width zoom factor |
height_factor | Height zoom factor |
|
static |
Zoom NBG1.
factor | Zoom factor |
|
static |
Zoom NBG1 width and height independently.
width_factor | Width zoom factor |
height_factor | Height zoom factor |
int sprintf | ( | char * | str, |
const char * | format, | ||
... | |||
) |
sprintf prototypes
str | String |
format | Format string |
... | Arguments |
char __jo_sprintf_buf[JO_PRINTF_BUF_SIZE] |
Internal sprintf buffer.