vdp1/normal_sprite_animated: improve for real hardware
This commit is contained in:
parent
40238e2621
commit
f5959ab4bf
@ -83,8 +83,8 @@ constexpr uint32_t sprite_height = 100;
|
|||||||
constexpr uint32_t sprite_last_frame = 15;
|
constexpr uint32_t sprite_last_frame = 15;
|
||||||
|
|
||||||
static uint32_t color_address, character_address;
|
static uint32_t color_address, character_address;
|
||||||
static uint32_t sprite_frame_index;
|
|
||||||
static uint32_t animation_timer;
|
static uint32_t animation_timer;
|
||||||
|
static uint32_t sprite_frame_index;
|
||||||
|
|
||||||
// __attribute__ ((interrupt_handler)) changes code generation behavior for this
|
// __attribute__ ((interrupt_handler)) changes code generation behavior for this
|
||||||
// function works. `rts` as generated in normal functions is replaced with
|
// function works. `rts` as generated in normal functions is replaced with
|
||||||
@ -94,8 +94,9 @@ void v_blank_in(void)
|
|||||||
{
|
{
|
||||||
// clear V_BLANK_IN interrupt status
|
// clear V_BLANK_IN interrupt status
|
||||||
scu.reg.IST &= ~(IST__V_BLANK_IN);
|
scu.reg.IST &= ~(IST__V_BLANK_IN);
|
||||||
|
scu.reg.IMS = ~(IMS__V_BLANK_IN);
|
||||||
|
|
||||||
if (++animation_timer < 4)
|
if (++animation_timer < 6)
|
||||||
return;
|
return;
|
||||||
else
|
else
|
||||||
animation_timer = 0;
|
animation_timer = 0;
|
||||||
@ -117,6 +118,9 @@ void main()
|
|||||||
vdp2.reg.TVMD = ( TVMD__DISP | TVMD__LSMD__NON_INTERLACE
|
vdp2.reg.TVMD = ( TVMD__DISP | TVMD__LSMD__NON_INTERLACE
|
||||||
| TVMD__VRESO__240 | TVMD__HRESO__NORMAL_320);
|
| TVMD__VRESO__240 | TVMD__HRESO__NORMAL_320);
|
||||||
|
|
||||||
|
// disable all VDP2 backgrounds (e.g: the Sega bios logo)
|
||||||
|
vdp2.reg.BGON = 0;
|
||||||
|
|
||||||
// VDP2 User's Manual:
|
// VDP2 User's Manual:
|
||||||
// "When sprite data is in an RGB format, sprite register 0 is selected"
|
// "When sprite data is in an RGB format, sprite register 0 is selected"
|
||||||
// "When the value of a priority number is 0h, it is read as transparent"
|
// "When the value of a priority number is 0h, it is read as transparent"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user