home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 July / CMCD0704.ISO / Software / Freeware / Utilitare / VisualBoyAdvance-1.7.2 / src / CheatSearch.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-05-13  |  2.1 KB  |  74 lines

  1. // -*- C++ -*-
  2. // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
  3. // Copyright (C) 1999-2003 Forgotten
  4. // Copyright (C) 2004 Forgotten and the VBA development team
  5.  
  6. // This program is free software; you can redistribute it and/or modify
  7. // it under the terms of the GNU General Public License as published by
  8. // the Free Software Foundation; either version 2, or(at your option)
  9. // any later version.
  10. //
  11. // This program is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. // GNU General Public License for more details.
  15. //
  16. // You should have received a copy of the GNU General Public License
  17. // along with this program; if not, write to the Free Software Foundation,
  18. // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  19.  
  20. #ifndef VBA_CHEATSEARCH_H
  21. #define VBA_CHEATSEARCH_H
  22.  
  23. #include "System.h"
  24.  
  25. struct CheatSearchBlock {
  26.   int size;
  27.   u32 offset;
  28.   u8 *bits;
  29.   u8 *data;
  30.   u8 *saved;
  31. };
  32.  
  33. struct CheatSearchData {
  34.   int count;
  35.   CheatSearchBlock *blocks;
  36. };
  37.  
  38. enum {
  39.   SEARCH_EQ,
  40.   SEARCH_NE,
  41.   SEARCH_LT,
  42.   SEARCH_LE,
  43.   SEARCH_GT,
  44.   SEARCH_GE
  45. };
  46.  
  47. enum {
  48.   BITS_8,
  49.   BITS_16,
  50.   BITS_32
  51. };
  52.  
  53. #define SET_BIT(bits,off) \
  54.   (bits)[(off) >> 3] |= (1 << ((off) & 7))
  55.  
  56. #define CLEAR_BIT(bits, off) \
  57.   (bits)[(off) >> 3] &= ~(1 << ((off) & 7))
  58.  
  59. #define IS_BIT_SET(bits, off) \
  60.   (bits)[(off) >> 3] & (1 << ((off) & 7))
  61.  
  62. extern CheatSearchData cheatSearchData;
  63. extern void cheatSearchCleanup(CheatSearchData *cs);
  64. extern void cheatSearchStart(const CheatSearchData *cs);
  65. extern void cheatSearch(const CheatSearchData *cs, int compare, int size, 
  66.                         bool isSigned);
  67. extern void cheatSearchValue(const CheatSearchData *cs, int compare, int size, 
  68.                              bool isSigned, u32 value);
  69. extern int cheatSearchGetCount(const CheatSearchData *cs, int size);
  70. extern void cheatSearchUpdateValues(const CheatSearchData *cs);
  71. extern s32 cheatSearchSignedRead(u8 *data, int off, int size);
  72. extern u32 cheatSearchRead(u8 *data, int off, int size);
  73. #endif
  74.