From 13ffa8a1b88453d9d3719e1ac7fbb06d454f5e5a Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Thu, 7 Feb 2013 22:25:58 +0000 Subject: [PATCH] Update DUMB to revision a9176165a2ccc56410b2004d2f5dd40b2052453a - Changed a break to row behavior in DUMB, hopefully it doesn't break anything SVN r4075 (trunk) --- dumb/src/it/itrender.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dumb/src/it/itrender.c b/dumb/src/it/itrender.c index ac5345d8dc..24530156dc 100644 --- a/dumb/src/it/itrender.c +++ b/dumb/src/it/itrender.c @@ -1292,8 +1292,8 @@ static int update_pattern_variables(DUMB_IT_SIGRENDERER *sigrenderer, IT_ENTRY * - If we jump, then effect a loop using an old E60, and then the pattern ends, the next pattern starts on the row corresponding to the E60. - Theory: breakrow is not cleared when it's a pattern loop effect! */ - //if (sigrenderer->processrow < 0xFFFE) // I have no idea if this is correct or not - FT2 is so weird :( - // sigrenderer->breakrow = channel->pat_loop_row; /* emulate bug in FT2 */ + if ((sigrenderer->processrow | 0xC00) < 0xFFFE) // I have no idea if this is correct or not - FT2 is so weird :( + sigrenderer->breakrow = channel->pat_loop_row; /* emulate bug in FT2 */ } else channel->pat_loop_row = sigrenderer->processrow + 1; #ifdef BIT_ARRAY_BULLSHIT @@ -3832,8 +3832,10 @@ static int process_tick(DUMB_IT_SIGRENDERER *sigrenderer) sigrenderer->processrow = sigrenderer->breakrow; sigrenderer->breakrow = 0; for (n = 0; n < DUMB_IT_N_CHANNELS; n++) sigrenderer->channel[n].pat_loop_end_row = 0; - } else + } else { sigrenderer->processrow = sigrenderer->breakrow; + sigrenderer->breakrow = 0; // XXX lolwut + } if (sigrenderer->processorder == 0xFFFF) sigrenderer->processorder = sigrenderer->order - 1;