From e7fc75258bd4fe7d83fa779b70764fba4cf8d615 Mon Sep 17 00:00:00 2001 From: Legolas Date: Fri, 1 Sep 2006 17:59:57 +0000 Subject: [PATCH] * Minor changes in input system and rand function git-svn-id: trunk@4530 - --- packages/extra/gbaunits/gba_core.pas | 12 +++++++++++- packages/extra/gbaunits/gba_input.pas | 22 +++++++++++++++++++++- packages/extra/gbaunits/gba_types.pas | 20 ++------------------ 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/packages/extra/gbaunits/gba_core.pas b/packages/extra/gbaunits/gba_core.pas index 28a7df8155..2f3cdf8b47 100644 --- a/packages/extra/gbaunits/gba_core.pas +++ b/packages/extra/gbaunits/gba_core.pas @@ -1,5 +1,5 @@ (* - gba_core.pas 18/06/2006 4.17.35 + gba_core.pas 01/09/2006 19.17.35 ------------------------------------------------------------------------------ This lib is a raw porting of tonclib library for gba (you can find it at http://user.chem.tue.nl/jakvijn/index.htm). @@ -52,6 +52,7 @@ var function gbaRandomize(seed: dword): dword; function gbaRand(): dword; +function gbaRand(value: integer): dword; procedure memset16(dest: pointer; hw: word; hwcount: dword); cdecl; external; procedure memcpy16(dest: pointer; const src: pointer; hwcount: dword); cdecl; external; @@ -78,6 +79,15 @@ begin gbaRand := (gbaRandSeed shr 16) and QRAN_MAX; end; +function gbaRand(value: integer): dword; +var + a: dword; +begin + gbaRandSeed := QRAN_A * gbaRandSeed + QRAN_C; + a := (gbaRandSeed shr 16) and QRAN_MAX; + gbaRand := (a * value) shr 15; +end; + // memory handling routines // these are in ASM and optimized; use when possible {$l core_asm.o} diff --git a/packages/extra/gbaunits/gba_input.pas b/packages/extra/gbaunits/gba_input.pas index a3be9c6a97..eab5d772d1 100644 --- a/packages/extra/gbaunits/gba_input.pas +++ b/packages/extra/gbaunits/gba_input.pas @@ -1,5 +1,5 @@ (* - gba_input.pas 18/06/2006 4.20.21 + gba_input.pas 01/09/2006 19.57.16 ------------------------------------------------------------------------------ This lib is a raw porting of libgba library for gba (you can find it at http://www.devkitpro.org). @@ -38,6 +38,26 @@ uses gba_types, gba_regs; + +const + KEY_A: TKeyPadBits = (1 shl 0); + KEY_B: TKeyPadBits = (1 shl 1); + KEY_SELECT: TKeyPadBits = (1 shl 2); + KEY_START: TKeyPadBits = (1 shl 3); + KEY_RIGHT: TKeyPadBits = (1 shl 4); + KEY_LEFT: TKeyPadBits = (1 shl 5); + KEY_UP: TKeyPadBits = (1 shl 6); + KEY_DOWN: TKeyPadBits = (1 shl 7); + KEY_R: TKeyPadBits = (1 shl 8); + KEY_L: TKeyPadBits = (1 shl 9); + + KEYIRQ_ENABLE: TKeyPadBits = (1 shl 14); + KEYIRQ_OR: TKeyPadBits = (0 shl 15); + KEYIRQ_AND: TKeyPadBits = (1 shl 15); + DPAD: TKeyPadBits = (1 shl 6) or (1 shl 7) or (1 shl 5) or (1 shl 4); + + + type KeyInput = packed record Up: word; diff --git a/packages/extra/gbaunits/gba_types.pas b/packages/extra/gbaunits/gba_types.pas index f0a713481e..b7ac732f18 100644 --- a/packages/extra/gbaunits/gba_types.pas +++ b/packages/extra/gbaunits/gba_types.pas @@ -1,5 +1,5 @@ (* - gba_types.pas 18/06/2006 4.38.46 + gba_types.pas 01/09/2006 19.57.46 ------------------------------------------------------------------------------ This lib is a raw porting of libgba library for gba (you can find it at http://www.devkitpro.org). @@ -142,23 +142,7 @@ type ); TDMAModes = DMA_MODES; - KEYPAD_BITS = ( - KEY_A = (1 shl 0), - KEY_B = (1 shl 1), - KEY_SELECT = (1 shl 2), - KEY_START = (1 shl 3), - KEY_RIGHT = (1 shl 4), - KEY_LEFT = (1 shl 5), - KEY_UP = (1 shl 6), - KEY_DOWN = (1 shl 7), - KEY_R = (1 shl 8), - KEY_L = (1 shl 9), - - KEYIRQ_ENABLE = (1 shl 14), - KEYIRQ_OR = (0 shl 15), - KEYIRQ_AND = (1 shl 15), - DPAD = integer(KEY_UP) or integer(KEY_DOWN) or integer(KEY_LEFT) or integer(KEY_RIGHT) - ); + KEYPAD_BITS = integer; TKeyPadBits = KEYPAD_BITS; OBJATTR = record