You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For the following, I will be calling the VDD35 pin of the GBA slot Pin 1, and GND Pin 32:
Pins 14 and 15 (AD8 and AD9) are pulled to ground on this pack, such that a 16-bit read of GBA ROM space should return 0xFCFF
This should make the game recognize the Pack up until the menus
Pins 22 and 23 (A16 and A17) output 2-bit packets of data from the ATTiny13 to the NDS
Pin 30 (/CS2) is used to clock the state of the ATTiny13
When the NDS reads from GBA SRAM space, the lower 2 bits of the data read are the 2-bit packet sent by the ATTiny13
When the SRAM space read completes and /CS2 is deasserted/pulsed, the ATTiny13 advances state and queues up the next 2 bits
I'm not quite clear under what conditions /CS2 is asserted/deasserted by the DS, but doing multiple reads sequential reads in my homebrew did seem to clock the /CS2 line as needed
The protocol used by the ATTiny13 is a simple 17-state loop, where each state is responsible for outputting 2 bits:
0b00
0xFF over 4 states (big endian, upper 2 bits first; so (0xFF>>6)&3, then (0xFF>>4)&3, etc)
8-bit x-axis acceleration over 4 states
8-bit y-axis acceleration over 4 states
8-bit z-axis acceleration over 4 states
To convert an input acceleration in g's to the 8-bit units of this pack, use the following equation:
output_accel = min(0xFE, max(0, int((input_accel * 0.660V/g+1.65V) * 256 / 3.3V)))
These values were obtained from the datasheets of the chips.
The output on each accelerometer axis must be clamped between 0x0 and 0xFE inclusive, as 0xFF is likely reserved for synchronization.
cannot play the game as it is mising the motion pak
The text was updated successfully, but these errors were encountered: