Hatsune Miku Project DIVA is a rhythm game; it looks like this:

In this image, the note icons are each moving toward their respective targets. The goal is to "hit" notes by pushing the correct face button with the correct timing.
On to the goal of this hack. In every later Hatsune Miku Project DIVA game, you can hit an "O" note either by pushing the O face button or pushing right on the D-pad, or more generally the corresponding D-pad button. To goal here is to port that function to Hatsune Miku Project DIVA.
I did some stuff and couldn't solve it. I think my main problem is either I'm misreading the asm, or I'm failing to find where note timing is assessed.
On to what I did find:
0884B0E8 - has something to do with input. I tried changing this and it didn't do much / I couldn't get it to work.
It goes like this: 0x1 start, 0x4 up, 0x8 right, 0x10 down, 0x20 left, 0x400 L, 0x800 R, 0x40 △, 0x80 ○, 0x100 X, 0x200 □
These get OR'd together to made the control status halfword.
0884B680 - this routine is looking for control input matches. It gets passed a parameter a1. It also gets parameter a0 but this is always 08C2C234, an address for the control input buffer. At offset 0x18 within this buffer is the currently pressed buttons (halfword). At offset 0x1C is any "newly pressed" buttons. Anyway, the function returns 1 on v0 if the button was newly pressed, or 0 otherwise. It always returns 0 on v1 as far as I can tell.
6, 7, 8, and 9 are the a1 parameter values looking for input on the face buttons.
0886AB00 - this routine is active only during the rhythm game. It calls the 0884B680 function multiple times to find out about control input.
I did some simple asm that basically does:
1) Is a D-pad being pressed? (if not, exit)
2) Make it look as if, instead, a face button was just pressed
And I did this at the start of the 0886AB00 routine. What happened was pressing the D-pad made "button sounds" but couldn't hit the rhythm game targets. The face buttons preserved all functionality (made sounds and hit the rhythm game targets), this was as expected.
I stepped out one level from the 0886AB00 function. I think this is the routine that makes the rhythm game work. It looks complicated and I'm not sure techniques that can help me ID the right routine I need to change. Maybe I could try, instead of at 0886AB00 doing the input modification, doing it instead at the top of this routine.
I also tried doing it at a very low level but what ends up happening is the X function gets executed when you push down and this will not work for the game's menus.
Can anyone help?