暫無描述

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef LCD_H_
  2. #define LCD_H_
  3. #include "objects.h"
  4. struct bg_config {
  5. u32 id : 2;
  6. u32 char_base : 2;
  7. u32 map_base : 5;
  8. u32 size : 2;
  9. u32 colormode : 1;
  10. u32 priority : 2;
  11. };
  12. struct map_entry {
  13. u16 tile : 10;
  14. u16 hflip : 1;
  15. u16 vflip : 1;
  16. u16 pal : 4;
  17. };
  18. union t_map_entry{
  19. u16 short_map;
  20. struct map_entry entry;
  21. };
  22. static struct bg_config standard_bg[4] = {
  23. {0, 0, 0x19, 0, 0, 0},
  24. {1, 1, 0x1A, 0, 0, 1},
  25. {2, 2, 0x1B, 0, 0, 2},
  26. {3, 3, 0x1C, 0, 0, 3}
  27. };
  28. u8 gpu_copy_to_vram_by_bgid(u8 bg_id, void* source, u16 byte_size, u16 start_tile, u8 mode);
  29. void gpu_init_bgs();
  30. void gpu_tile_bg_drop_all_sets(u8 bg);
  31. void bg_vram_setup(u8 mirror, struct bg_config* configs, u8 count);
  32. void bg_set_tilemap(u8 bg_id, void* tilemap);
  33. void bg_nullify_tilemap(u8 bg_id);
  34. void* bg_get_tilemap(u8 bg_id);
  35. void bg_send_tilemap(u8 bg_id);
  36. void wram_decompress(void* src, void* dst);
  37. void vram_decompress(void* src, void* dst);
  38. void pal_decompress_slice_to_faded_and_unfaded(void* src, u16 start, u16 end);
  39. void gpu_bg_show(u8 id);
  40. void gpu_bg_hide(u8 id);
  41. void gpu_sync_bg_visibility_and_mode();
  42. void lcd_io_set_func(u8 id, u16 value);
  43. void gpu_pal_upload();
  44. void gpu_sprites_upload();
  45. void gpu_pal_obj_alloc_tag_and_apply(resource *pal);
  46. void gpu_pal_free_by_tag(u16 tag);
  47. void gpu_tile_obj_free_by_tag(u16 tag);
  48. void obj_delete_and_free_tiles(object *obj);
  49. void obj_delete_all();
  50. u16 lcd_io_get(u8 id);
  51. #define palette_unfaded_buffer ((void*)0x020371F8)
  52. #define palette_faded_buffer ((void*)0x020375F8)
  53. #endif