2024-07-23 18:50:11 -04:00
|
|
|
//
|
|
|
|
// Created by william on 7/23/24.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef NES_EMULATOR_DBG_NAMETABLE_H
|
|
|
|
#define NES_EMULATOR_DBG_NAMETABLE_H
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "../include/types.h"
|
|
|
|
#include "dbg_pattern_table.h"
|
|
|
|
|
2024-07-23 20:46:13 -04:00
|
|
|
#define NAMETABLE_BANK_SIZE 0x3c0
|
|
|
|
#define NAMETABLE_ROW_WIDTH 32
|
|
|
|
#define NAMETABLE_COL_HEIGHT 30
|
2024-07-23 18:50:11 -04:00
|
|
|
|
2024-08-03 21:51:31 -04:00
|
|
|
typedef struct dbg_tile {
|
2024-07-23 20:46:13 -04:00
|
|
|
int tile_id;
|
2024-08-03 21:51:31 -04:00
|
|
|
int attribute;
|
2024-07-23 18:50:11 -04:00
|
|
|
} DebugTile;
|
|
|
|
|
|
|
|
typedef struct dbg_nametable {
|
|
|
|
DebugTile bank_0[NAMETABLE_BANK_SIZE];
|
|
|
|
DebugTile bank_1[NAMETABLE_BANK_SIZE];
|
|
|
|
bool vertical_mirroring;
|
2024-10-03 19:24:03 -04:00
|
|
|
bool initialized;
|
2024-07-23 18:50:11 -04:00
|
|
|
} DebugNameTable;
|
|
|
|
|
2024-07-23 20:46:13 -04:00
|
|
|
/**
|
2024-08-20 20:43:42 -04:00
|
|
|
* Initializes the debug tile_id.
|
2024-07-23 20:46:13 -04:00
|
|
|
*/
|
|
|
|
void dbg_nametable_init();
|
|
|
|
|
2024-07-23 18:50:11 -04:00
|
|
|
/**
|
2024-08-20 20:43:42 -04:00
|
|
|
* Updates the debug tile_id. Updates the tiles from the PPU memory.
|
2024-07-23 18:50:11 -04:00
|
|
|
*/
|
|
|
|
void dbg_nametable_update();
|
|
|
|
|
|
|
|
/**
|
2024-08-20 20:43:42 -04:00
|
|
|
* Renders a tile_id bank to a buffer.
|
2024-07-23 18:50:11 -04:00
|
|
|
* @param bank
|
|
|
|
* @param buffer
|
|
|
|
*/
|
|
|
|
void dbg_nametable_render_bank(int bank, pixel *buffer);
|
|
|
|
|
|
|
|
#endif //NES_EMULATOR_DBG_NAMETABLE_H
|