nds/include/bits.h
2024-09-04 22:03:27 -05:00

382 lines
21 KiB
C

#define DISPCNT__obj_extended_palette (0x1 << 31)
#define DISPCNT__bg_extended_palette (0x1 << 30)
#define DISPCNT__bg_screen_base_offset(v) (((v) & 0x7) << 27)
#define DISPCNT__bg_character_base_offset(v) (((v) & 0x7) << 24)
#define DISPCNT__obj_processing_during_h_blank_period (0x1 << 23)
#define DISPCNT__obj_vram_capacity__128kb (0x0 << 22)
#define DISPCNT__obj_vram_capacity__256kb (0x1 << 22)
#define DISPCNT__character_vram_capacity__32kb (0x0 << 20)
#define DISPCNT__character_vram_capacity__64kb (0x1 << 20)
#define DISPCNT__character_vram_capacity__128kb (0x2 << 20)
#define DISPCNT__character_vram_capacity__256kb (0x3 << 20)
#define DISPCNT__display_vram_block__vram_a (0x0 << 18)
#define DISPCNT__display_vram_block__vram_b (0x1 << 18)
#define DISPCNT__display_vram_block__vram_c (0x2 << 18)
#define DISPCNT__display_vram_block__vram_d (0x3 << 18)
#define DISPCNT__display_mode__display_off (0x0 << 16)
#define DISPCNT__display_mode__graphics_display (0x1 << 16)
#define DISPCNT__display_mode__vram_display (0x2 << 16)
#define DISPCNT__display_mode__main_memory_display (0x3 << 16)
#define DISPCNT__obj_window__disable (0x0 << 15)
#define DISPCNT__obj_window__enable (0x1 << 15)
#define DISPCNT__window_1__disable (0x0 << 14)
#define DISPCNT__window_1__enable (0x1 << 14)
#define DISPCNT__window_0__disable (0x0 << 13)
#define DISPCNT__window_0__enable (0x1 << 13)
#define DISPCNT__obj__disable (0x0 << 12)
#define DISPCNT__obj__enable (0x1 << 12)
#define DISPCNT__bg3__disable (0x0 << 11)
#define DISPCNT__bg3__enable (0x1 << 11)
#define DISPCNT__bg2__disable (0x0 << 10)
#define DISPCNT__bg2__enable (0x1 << 10)
#define DISPCNT__bg1__disable (0x0 << 9)
#define DISPCNT__bg1__enable (0x1 << 9)
#define DISPCNT__bg0__disable (0x0 << 8)
#define DISPCNT__bg0__enable (0x1 << 8)
#define DISPCNT__2d_display_forced_blank (0x1 << 7)
#define DISPCNT__bitmap_obj_mapping_mode__2d_mapping_with_128_horizontal_dots (0x0 << 5)
#define DISPCNT__bitmap_obj_mapping_mode__2d_mapping_with_256_horizontal_dots (0x1 << 5)
#define DISPCNT__bitmap_obj_mapping_mode__1d_mapping (0x2 << 5)
#define DISPCNT__character_obj_mapping_mode__2d_mapping (0x0 << 4)
#define DISPCNT__character_obj_mapping_mode__1d_mapping (0x1 << 4)
#define DISPCNT__display_selection_for_bg0__2d_graphics (0x0 << 3)
#define DISPCNT__display_selection_for_bg0__3d_graphics (0x1 << 3)
#define DISPCNT__bg_mode__text0_text1_text2_text3 (0x0 << 0)
#define DISPCNT__bg_mode__text0_text1_text2_affine3 (0x1 << 0)
#define DISPCNT__bg_mode__text0_text1_affine2_affine3 (0x2 << 0)
#define DISPCNT__bg_mode__text0_text1_text2_extended3 (0x3 << 0)
#define DISPCNT__bg_mode__text0_text1_affine2_extended3 (0x4 << 0)
#define DISPCNT__bg_mode__text0_text1_extended2_extended3 (0x5 << 0)
#define DISPCNT__bg_mode__3d_large_screen_256_color_bitmap (0x6 << 0)
#define DISPSTAT__v_counter_match_interrupt_request__disable (0x0 << 5)
#define DISPSTAT__v_counter_match_interrupt_request__enable (0x1 << 5)
#define DISPSTAT__h_blank_interrupt_request__disable (0x0 << 4)
#define DISPSTAT__h_blank_interrupt_request__enable (0x1 << 4)
#define DISPSTAT__v_blank_interrupt_request__disable (0x0 << 3)
#define DISPSTAT__v_blank_interrupt_request__enable (0x1 << 3)
#define DISPSTAT__v_counter_match_detection__outside_a_matching_interval (0x0 << 2)
#define DISPSTAT__v_counter_match_detection__during_a_matching_interval (0x1 << 2)
#define DISPSTAT__h_blank_detection__outside_h_blank_interval (0x0 << 1)
#define DISPSTAT__h_blank_detection__during_h_blank_interval (0x1 << 1)
#define DISPSTAT__v_blank_detection__outside_v_blank_interval (0x0 << 0)
#define DISPSTAT__v_blank_detection__during_v_blank_interval (0x1 << 0)
#define VCOUNT__v_counter_value(v) (((v) >> 0) & 0x1ff)
#define BG0CNT__screen_size__256x256 (0x0 << 14)
#define BG0CNT__screen_size__512x256 (0x1 << 14)
#define BG0CNT__screen_size__256x512 (0x2 << 14)
#define BG0CNT__screen_size__512x512 (0x3 << 14)
#define BG0CNT__bg_extended_palette_slot__slot_0 (0x0 << 13)
#define BG0CNT__bg_extended_palette_slot__slot_2 (0x1 << 13)
#define BG0CNT__screen_base_block(v) (((v) & 0x1f) << 8)
#define BG0CNT__color_mode__16_color_mode (0x0 << 7)
#define BG0CNT__color_mode__256_color_mode (0x1 << 7)
#define BG0CNT__mosaic__disable (0x0 << 6)
#define BG0CNT__mosaic__enable (0x1 << 6)
#define BG0CNT__character_base_block(v) (((v) & 0xf) << 2)
#define BG0CNT__priority(v) (((v) & 0x3) << 0)
#define BG1CNT__screen_size__256x256 (0x0 << 14)
#define BG1CNT__screen_size__512x256 (0x1 << 14)
#define BG1CNT__screen_size__256x512 (0x2 << 14)
#define BG1CNT__screen_size__512x512 (0x3 << 14)
#define BG1CNT__bg_extended_palette_slot__slot_1 (0x0 << 13)
#define BG1CNT__bg_extended_palette_slot__slot_3 (0x1 << 13)
#define BG1CNT__screen_base_block(v) (((v) & 0x1f) << 8)
#define BG1CNT__color_mode__16_color_mode (0x0 << 7)
#define BG1CNT__color_mode__256_color_mode (0x1 << 7)
#define BG1CNT__mosaic__disable (0x0 << 6)
#define BG1CNT__mosaic__enable (0x1 << 6)
#define BG1CNT__character_base_block(v) (((v) & 0xf) << 2)
#define BG1CNT__priority(v) (((v) & 0x3) << 0)
#define BG2CNT__screen_size__256x256 (0x0 << 14)
#define BG2CNT__screen_size__512x256 (0x1 << 14)
#define BG2CNT__screen_size__256x512 (0x2 << 14)
#define BG2CNT__screen_size__512x512 (0x3 << 14)
#define BG2CNT__out_of_area_processing__transparent_display (0x0 << 13)
#define BG2CNT__out_of_area_processing__wraparound_display (0x1 << 13)
#define BG2CNT__screen_base_block(v) (((v) & 0x1f) << 8)
#define BG2CNT__color_mode__16_color_mode (0x0 << 7)
#define BG2CNT__color_mode__256_color_mode (0x1 << 7)
#define BG2CNT__mosaic__disable (0x0 << 6)
#define BG2CNT__mosaic__enable (0x1 << 6)
#define BG2CNT__character_base_block(v) (((v) & 0xf) << 2)
#define BG2CNT__priority(v) (((v) & 0x3) << 0)
#define BG3CNT__screen_size__256x256 (0x0 << 14)
#define BG3CNT__screen_size__512x256 (0x1 << 14)
#define BG3CNT__screen_size__256x512 (0x2 << 14)
#define BG3CNT__screen_size__512x512 (0x3 << 14)
#define BG3CNT__out_of_area_processing__transparent_display (0x0 << 13)
#define BG3CNT__out_of_area_processing__wraparound_display (0x1 << 13)
#define BG3CNT__screen_base_block(v) (((v) & 0x1f) << 8)
#define BG3CNT__color_mode__16_color_mode (0x0 << 7)
#define BG3CNT__color_mode__256_color_mode (0x1 << 7)
#define BG3CNT__mosaic__disable (0x0 << 6)
#define BG3CNT__mosaic__enable (0x1 << 6)
#define BG3CNT__character_base_block(v) (((v) & 0xf) << 2)
#define BG3CNT__priority(v) (((v) & 0x3) << 0)
#define VRAMCNT__vram_d__disable (0x0 << 31)
#define VRAMCNT__vram_d__enable (0x1 << 31)
#define VRAMCNT__vram_d__ofs(v) (((v) & 0x3) << 27)
#define VRAMCNT__vram_d__mst(v) (((v) & 0x7) << 24)
#define VRAMCNT__vram_c__disable (0x0 << 23)
#define VRAMCNT__vram_c__enable (0x1 << 23)
#define VRAMCNT__vram_c__ofs(v) (((v) & 0x3) << 19)
#define VRAMCNT__vram_c__mst(v) (((v) & 0x7) << 16)
#define VRAMCNT__vram_b__disable (0x0 << 15)
#define VRAMCNT__vram_b__enable (0x1 << 15)
#define VRAMCNT__vram_b__ofs(v) (((v) & 0x3) << 11)
#define VRAMCNT__vram_b__mst(v) (((v) & 0x3) << 8)
#define VRAMCNT__vram_a__disable (0x0 << 7)
#define VRAMCNT__vram_a__enable (0x1 << 7)
#define VRAMCNT__vram_a__ofs(v) (((v) & 0x3) << 3)
#define VRAMCNT__vram_a__mst(v) (((v) & 0x3) << 0)
#define WVRAMCNT__wram__bank(v) (((v) & 0x3) << 24)
#define WVRAMCNT__vram_g__disable (0x0 << 23)
#define WVRAMCNT__vram_g__enable (0x1 << 23)
#define WVRAMCNT__vram_g__ofs(v) (((v) & 0x3) << 19)
#define WVRAMCNT__vram_g__mst(v) (((v) & 0x7) << 16)
#define WVRAMCNT__vram_f__disable (0x0 << 15)
#define WVRAMCNT__vram_f__enable (0x1 << 15)
#define WVRAMCNT__vram_f__ofs(v) (((v) & 0x3) << 11)
#define WVRAMCNT__vram_f__mst(v) (((v) & 0x7) << 8)
#define WVRAMCNT__vram_e__disable (0x0 << 7)
#define WVRAMCNT__vram_e__enable (0x1 << 7)
#define WVRAMCNT__vram_e__mst(v) (((v) & 0x7) << 0)
#define VRAM_HI_CNT__vram_i__disable (0x0 << 15)
#define VRAM_HI_CNT__vram_i__enable (0x1 << 15)
#define VRAM_HI_CNT__vram_i__mst(v) (((v) & 0x3) << 8)
#define VRAM_HI_CNT__vram_h__disable (0x0 << 7)
#define VRAM_HI_CNT__vram_h__enable (0x1 << 7)
#define VRAM_HI_CNT__vram_h__mst(v) (((v) & 0x3) << 0)
#define POWCNT__lcd_output_destination__a_to_lower__b_to_upper (0x0 << 15)
#define POWCNT__lcd_output_destination__a_to_upper__b_to_lower (0x1 << 15)
#define POWCNT__2d_graphics_engine_b__disable (0x0 << 9)
#define POWCNT__2d_graphics_engine_b__enable (0x1 << 9)
#define POWCNT__geometry_engine__disable (0x0 << 3)
#define POWCNT__geometry_engine__enable (0x1 << 3)
#define POWCNT__rendering_engine__disable (0x0 << 2)
#define POWCNT__rendering_engine__enable (0x1 << 2)
#define POWCNT__2d_graphics_engine_a__disable (0x0 << 1)
#define POWCNT__2d_graphics_engine_a__enable (0x1 << 1)
#define POWCNT__lcd__disable (0x0 << 0)
#define POWCNT__lcd__enable (0x1 << 0)
#define RDLINES_COUNT__rendered_lines_min(v) (((v) >> 0) & 0x3f)
#define ALPHA_TEST_REF__comparison_value(v) (((v) & 0x1f) << 0)
#define CLEAR_COLOR__clear_polygon_id(v) (((v) & 0x3f) << 24)
#define CLEAR_COLOR__alpha_value(v) (((v) & 0x1f) << 16)
#define CLEAR_COLOR__fog_enable (0x1 << 15)
#define CLEAR_COLOR__blue(v) (((v) & 0x1f) << 10)
#define CLEAR_COLOR__green(v) (((v) & 0x1f) << 5)
#define CLEAR_COLOR__red(v) (((v) & 0x1f) << 0)
#define CLEAR_DEPTH__value(v) (((v) & 0x7fff) << 0)
#define CLRIMAGE_OFFSET__y_offset(v) (((v) & 0xff) << 8)
#define CLRIMAGE_OFFSET__x_offset(v) (((v) & 0xff) << 0)
#define DISP3DCNT__clear_image__disable (0x0 << 14)
#define DISP3DCNT__clear_image__enable (0x1 << 14)
#define DISP3DCNT__polygon_list_ram_and_vertex_ram_overflow (0x1 << 13)
#define DISP3DCNT__color_buffer_underflow (0x1 << 12)
#define DISP3DCNT__fog_shift(v) (((v) & 0xf) << 8)
#define DISP3DCNT__fog_master__disable (0x0 << 7)
#define DISP3DCNT__fog_master__enable (0x1 << 7)
#define DISP3DCNT__fog_mode__blending_using_pixel_color_value_and_alpha_value (0x0 << 6)
#define DISP3DCNT__fog_mode__blending_using_only_pixel_alpha_value (0x1 << 6)
#define DISP3DCNT__edge_marking__disable (0x0 << 5)
#define DISP3DCNT__edge_marking__enable (0x1 << 5)
#define DISP3DCNT__anti_aliasing__disable (0x0 << 4)
#define DISP3DCNT__anti_aliasing__enable (0x1 << 4)
#define DISP3DCNT__alpha_blending__disable (0x0 << 3)
#define DISP3DCNT__alpha_blending__enable (0x1 << 3)
#define DISP3DCNT__alpha_test__disable (0x0 << 2)
#define DISP3DCNT__alpha_test__enable (0x1 << 2)
#define DISP3DCNT__toon_highlight__toon_shading (0x0 << 1)
#define DISP3DCNT__toon_highlight__highlight_shading (0x1 << 1)
#define DISP3DCNT__texture_mapping__disable (0x0 << 0)
#define DISP3DCNT__texture_mapping__enable (0x1 << 0)
#define MTX_MODE__matrix_mode__projection (0x0 << 0)
#define MTX_MODE__matrix_mode__position (0x1 << 0)
#define MTX_MODE__matrix_mode__position_and_vector (0x2 << 0)
#define MTX_MODE__matrix_mode__texture (0x3 << 0)
#define MTX_POP__number_of_pops(v) (((v) & 0x3f) << 0)
#define MTX_STORE__index(v) (((v) & 0x1f) << 0)
#define MTX_RESTORE__position(v) (((v) & 0x1f) << 0)
#define COLOR__blue(v) (((v) & 0x1f) << 10)
#define COLOR__green(v) (((v) & 0x1f) << 5)
#define COLOR__red(v) (((v) & 0x1f) << 0)
#define NORMAL__z_component(v) (((v) & 0x3ff) << 20)
#define NORMAL__y_component(v) (((v) & 0x3ff) << 10)
#define NORMAL__x_component(v) (((v) & 0x3ff) << 0)
#define TEXCOORD__t_coordinate(v) (((v) & 0xffff) << 16)
#define TEXCOORD__s_coordinate(v) (((v) & 0xffff) << 0)
#define VTX_16__0__y_coordinate(v) (((v) & 0xffff) << 16)
#define VTX_16__0__x_coordinate(v) (((v) & 0xffff) << 0)
#define VTX_16__1__z_coordinate(v) (((v) & 0xffff) << 0)
#define VTX_10__z_coordinate(v) (((v) & 0x3ff) << 20)
#define VTX_10__y_coordinate(v) (((v) & 0x3ff) << 10)
#define VTX_10__x_coordinate(v) (((v) & 0x3ff) << 0)
#define VTX_XY__y_coordinate(v) (((v) & 0xffff) << 16)
#define VTX_XY__x_coordinate(v) (((v) & 0xffff) << 0)
#define VTX_XZ__z_coordinate(v) (((v) & 0xffff) << 16)
#define VTX_XZ__x_coordinate(v) (((v) & 0xffff) << 0)
#define VTX_YZ__z_coordinate(v) (((v) & 0xffff) << 16)
#define VTX_YZ__y_coordinate(v) (((v) & 0xffff) << 0)
#define VTX_DIFF__z_coordinate(v) (((v) & 0x3ff) << 20)
#define VTX_DIFF__y_coordinate(v) (((v) & 0x3ff) << 10)
#define VTX_DIFF__x_coordinate(v) (((v) & 0x3ff) << 0)
#define POLYGON_ATTR__polygon_id(v) (((v) & 0x3f) << 24)
#define POLYGON_ATTR__alpha_value(v) (((v) & 0x1f) << 16)
#define POLYGON_ATTR__fog__disable (0x0 << 15)
#define POLYGON_ATTR__fog__enable (0x1 << 15)
#define POLYGON_ATTR__depth_test_condition__render_when_depth_value_is_smaller_than_buffer_value (0x0 << 14)
#define POLYGON_ATTR__depth_test_condition__render_when_depth_value_is_equal_to_buffer_value (0x1 << 14)
#define POLYGON_ATTR__one_dot_polygon__do_not_render (0x0 << 13)
#define POLYGON_ATTR__one_dot_polygon__render (0x1 << 13)
#define POLYGON_ATTR__far_plane_intersection__delete (0x0 << 12)
#define POLYGON_ATTR__far_plane_intersection__clip (0x1 << 12)
#define POLYGON_ATTR__translucent_depth_value_update__do_not_update (0x0 << 11)
#define POLYGON_ATTR__translucent_depth_value_update__update (0x1 << 11)
#define POLYGON_ATTR__render_front_surface__disable (0x0 << 7)
#define POLYGON_ATTR__render_front_surface__enable (0x1 << 7)
#define POLYGON_ATTR__render_back_surface__disable (0x0 << 6)
#define POLYGON_ATTR__render_back_surface__enable (0x1 << 6)
#define POLYGON_ATTR__polygon_mode__modulation (0x0 << 4)
#define POLYGON_ATTR__polygon_mode__decal (0x1 << 4)
#define POLYGON_ATTR__polygon_mode__toon (0x2 << 4)
#define POLYGON_ATTR__polygon_mode__shadow (0x3 << 4)
#define POLYGON_ATTR__light_3__disable (0x0 << 3)
#define POLYGON_ATTR__light_3__enable (0x1 << 3)
#define POLYGON_ATTR__light_2__disable (0x0 << 2)
#define POLYGON_ATTR__light_2__enable (0x1 << 2)
#define POLYGON_ATTR__light_1__disable (0x0 << 1)
#define POLYGON_ATTR__light_1__enable (0x1 << 1)
#define POLYGON_ATTR__light_0__disable (0x0 << 0)
#define POLYGON_ATTR__light_0__enable (0x1 << 0)
#define TEXIMAGE_PARAM__texture_coordinate_transformation_mode__do_not_transform_texture_coordinates (0x0 << 30)
#define TEXIMAGE_PARAM__texture_coordinate_transformation_mode__texcoord_source (0x1 << 30)
#define TEXIMAGE_PARAM__texture_coordinate_transformation_mode__normal_source (0x2 << 30)
#define TEXIMAGE_PARAM__texture_coordinate_transformation_mode__vertex_source (0x3 << 30)
#define TEXIMAGE_PARAM__palette_color0_transparency__palette_setting (0x0 << 29)
#define TEXIMAGE_PARAM__palette_color0_transparency__always_transparent (0x1 << 29)
#define TEXIMAGE_PARAM__texture_format__no_texture (0x0 << 26)
#define TEXIMAGE_PARAM__texture_format__a3i5_translucent (0x1 << 26)
#define TEXIMAGE_PARAM__texture_format__4_color_palette (0x2 << 26)
#define TEXIMAGE_PARAM__texture_format__16_color_palette (0x3 << 26)
#define TEXIMAGE_PARAM__texture_format__256_color_palette (0x4 << 26)
#define TEXIMAGE_PARAM__texture_format__4x4_texel_compressed (0x5 << 26)
#define TEXIMAGE_PARAM__texture_format__a5i3_translucent (0x6 << 26)
#define TEXIMAGE_PARAM__texture_format__direct (0x7 << 26)
#define TEXIMAGE_PARAM__t_size__8_texels (0x0 << 23)
#define TEXIMAGE_PARAM__t_size__16_texels (0x1 << 23)
#define TEXIMAGE_PARAM__t_size__32_texels (0x2 << 23)
#define TEXIMAGE_PARAM__t_size__64_texels (0x3 << 23)
#define TEXIMAGE_PARAM__t_size__128_texels (0x4 << 23)
#define TEXIMAGE_PARAM__t_size__256_texels (0x5 << 23)
#define TEXIMAGE_PARAM__t_size__512_texels (0x6 << 23)
#define TEXIMAGE_PARAM__t_size__1024_texels (0x7 << 23)
#define TEXIMAGE_PARAM__s_size__8_texels (0x0 << 20)
#define TEXIMAGE_PARAM__s_size__16_texels (0x1 << 20)
#define TEXIMAGE_PARAM__s_size__32_texels (0x2 << 20)
#define TEXIMAGE_PARAM__s_size__64_texels (0x3 << 20)
#define TEXIMAGE_PARAM__s_size__128_texels (0x4 << 20)
#define TEXIMAGE_PARAM__s_size__256_texels (0x5 << 20)
#define TEXIMAGE_PARAM__s_size__512_texels (0x6 << 20)
#define TEXIMAGE_PARAM__s_size__1024_texels (0x7 << 20)
#define TEXIMAGE_PARAM__flip_t__do_not_flip (0x0 << 19)
#define TEXIMAGE_PARAM__flip_t__flip (0x1 << 19)
#define TEXIMAGE_PARAM__flip_s__do_not_flip (0x0 << 18)
#define TEXIMAGE_PARAM__flip_s__flip (0x1 << 18)
#define TEXIMAGE_PARAM__repeat_t__do_not_repeat (0x0 << 17)
#define TEXIMAGE_PARAM__repeat_t__repeat (0x1 << 17)
#define TEXIMAGE_PARAM__repeat_s__do_not_repeat (0x0 << 16)
#define TEXIMAGE_PARAM__repeat_s__repeat (0x1 << 16)
#define TEXIMAGE_PARAM__texture_starting_address(v) (((v) & 0xffff) << 0)
#define TEXPLTT_BASE__base_address(v) (((v) & 0x1fff) << 0)
#define DIF_AMB__ambient_blue(v) (((v) & 0x1f) << 26)
#define DIF_AMB__ambient_green(v) (((v) & 0x1f) << 21)
#define DIF_AMB__ambient_red(v) (((v) & 0x1f) << 16)
#define DIF_AMB__vertex_color__do_not_set_vertex_color (0x0 << 15)
#define DIF_AMB__vertex_color__set_diffuse_reflection_color_as_vertex_color (0x1 << 15)
#define DIF_AMB__diffuse_blue(v) (((v) & 0x1f) << 10)
#define DIF_AMB__diffuse_green(v) (((v) & 0x1f) << 5)
#define DIF_AMB__diffuse_red(v) (((v) & 0x1f) << 0)
#define SPE_EMI__emission_blue(v) (((v) & 0x1f) << 26)
#define SPE_EMI__emission_green(v) (((v) & 0x1f) << 21)
#define SPE_EMI__emission_red(v) (((v) & 0x1f) << 16)
#define SPE_EMI__shininess__disable (0x0 << 15)
#define SPE_EMI__shininess__enable (0x1 << 15)
#define SPE_EMI__specular_blue(v) (((v) & 0x1f) << 10)
#define SPE_EMI__specular_green(v) (((v) & 0x1f) << 5)
#define SPE_EMI__specular_red(v) (((v) & 0x1f) << 0)
#define LIGHT_VECTOR__light_number(v) (((v) & 0x3) << 30)
#define LIGHT_VECTOR__decimal_z(v) (((v) & 0x3ff) << 20)
#define LIGHT_VECTOR__decimal_y(v) (((v) & 0x3ff) << 10)
#define LIGHT_VECTOR__decimal_x(v) (((v) & 0x3ff) << 0)
#define LIGHT_COLOR__light_number(v) (((v) & 0x3) << 30)
#define LIGHT_COLOR__blue(v) (((v) & 0x1f) << 10)
#define LIGHT_COLOR__green(v) (((v) & 0x1f) << 5)
#define LIGHT_COLOR__red(v) (((v) & 0x1f) << 0)
#define SHININESS__4x_3(v) (((v) & 0xff) << 24)
#define SHININESS__4x_2(v) (((v) & 0xff) << 16)
#define SHININESS__4x_1(v) (((v) & 0xff) << 8)
#define SHININESS__4x_0(v) (((v) & 0xff) << 0)
#define BEGIN_VTXS__type__triangle (0x0 << 0)
#define BEGIN_VTXS__type__quadrilateral (0x1 << 0)
#define BEGIN_VTXS__type__triangle_strip (0x2 << 0)
#define BEGIN_VTXS__type__quadrilateral_strip (0x3 << 0)
#define SWAP_BUFFERS__depth_buffering__z_value (0x0 << 1)
#define SWAP_BUFFERS__depth_buffering__w_value (0x1 << 1)
#define SWAP_BUFFERS__translucent_polygon_y_sorting__auto_sort (0x0 << 0)
#define SWAP_BUFFERS__translucent_polygon_y_sorting__manual_sort (0x1 << 0)
#define VIEWPORT__y2(v) (((v) & 0xff) << 24)
#define VIEWPORT__x2(v) (((v) & 0xff) << 16)
#define VIEWPORT__y1(v) (((v) & 0xff) << 8)
#define VIEWPORT__x1(v) (((v) & 0xff) << 0)
#define BOX_TEST__0__y_coordinate(v) (((v) & 0xffff) << 16)
#define BOX_TEST__0__x_coordinate(v) (((v) & 0xffff) << 0)
#define BOX_TEST__1__width(v) (((v) & 0xffff) << 16)
#define BOX_TEST__1__z_coordinate(v) (((v) & 0xffff) << 0)
#define BOX_TEST__2__depth(v) (((v) & 0xffff) << 16)
#define BOX_TEST__2__height(v) (((v) & 0xffff) << 0)
#define POS_TEST__0__y_coordinate(v) (((v) & 0xffff) << 16)
#define POS_TEST__0__x_coordinate(v) (((v) & 0xffff) << 0)
#define POS_TEST__1__z_coordinate(v) (((v) & 0xffff) << 0)
#define VEC_TEST__decimal_z(v) (((v) & 0x3ff) << 20)
#define VEC_TEST__decimal_y(v) (((v) & 0x3ff) << 10)
#define VEC_TEST__decimal_x(v) (((v) & 0x3ff) << 0)
#define GXSTAT__command_fifo_interrupt_condition__disable (0x0 << 30)
#define GXSTAT__command_fifo_interrupt_condition__half_full (0x1 << 30)
#define GXSTAT__command_fifo_interrupt_condition__empty (0x2 << 30)
#define GXSTAT__geometry_engine_busy (0x1 << 27)
#define GXSTAT__fifo_status__empty (0x1 << 26)
#define GXSTAT__fifo_status__less_than_half_full (0x1 << 25)
#define GXSTAT__fifo_status__full (0x1 << 24)
#define GXSTAT__command_fifo_count(v) (((v) >> 16) & 0xff)
#define GXSTAT__matrix_stack_status__overflow_or_underflow (0x1 << 15)
#define GXSTAT__matrix_stack_status__busy (0x1 << 14)
#define GXSTAT__matrix_stack_status__projection_stack_level(v) (((v) >> 13) & 0x1)
#define GXSTAT__matrix_stack_status__position_and_vector_stack_level(v) (((v) >> 8) & 0x1f)
#define GXSTAT__test_status (0x1 << 1)
#define GXSTAT__test_busy (0x1 << 0)
#define LISTRAM_COUNT__counter(v) (((v) >> 0) & 0xfff)
#define VTXRAM_COUNT__counter(v) (((v) >> 0) & 0x1fff)
#define OBJ_ATTRIBUTE_0__obj_shape__square (0x0 << 14)
#define OBJ_ATTRIBUTE_0__obj_shape__long_rectangle (0x1 << 14)
#define OBJ_ATTRIBUTE_0__obj_shape__tall_rectangle (0x2 << 14)
#define OBJ_ATTRIBUTE_0__color_mode__16_color_mode (0x0 << 13)
#define OBJ_ATTRIBUTE_0__color_mode__256_color_mode (0x1 << 13)
#define OBJ_ATTRIBUTE_0__mosaic__off (0x0 << 12)
#define OBJ_ATTRIBUTE_0__mosaic__on (0x1 << 12)
#define OBJ_ATTRIBUTE_0__obj_mode__normal (0x0 << 10)
#define OBJ_ATTRIBUTE_0__obj_mode__translucent (0x1 << 10)
#define OBJ_ATTRIBUTE_0__obj_mode__obj_window (0x2 << 10)
#define OBJ_ATTRIBUTE_0__obj_mode__bitmap_obj (0x3 << 10)
#define OBJ_ATTRIBUTE_0__double_size__disable (0x0 << 9)
#define OBJ_ATTRIBUTE_0__double_size__enable (0x1 << 9)
#define OBJ_ATTRIBUTE_0__affine_transformation__disable (0x0 << 8)
#define OBJ_ATTRIBUTE_0__affine_transformation__enable (0x1 << 8)
#define OBJ_ATTRIBUTE_0__y_coordinate(v) (((v) & 0xff) << 0)
#define OBJ_ATTRIBUTE_1__obj_size(v) (((v) & 0x3) << 14)
#define OBJ_ATTRIBUTE_1__affine_transformation_parameter(v) (((v) & 0x1f) << 9)
#define OBJ_ATTRIBUTE_1__x_coordinate(v) (((v) & 0x1ff) << 0)
#define OBJ_ATTRIBUTE_2__color_parameter(v) (((v) & 0xf) << 12)
#define OBJ_ATTRIBUTE_2__display_priority(v) (((v) & 0x3) << 10)
#define OBJ_ATTRIBUTE_2__character_name(v) (((v) & 0x3ff) << 0)