Merge pull request #233 from Cuyler36:famicom_nesinfo

Implement & link Famicom/famicom_nesinfo.cpp
This commit is contained in:
Cuyler36
2024-01-22 17:42:32 -05:00
committed by GitHub
6 changed files with 959 additions and 30 deletions
+6
View File
@@ -431,6 +431,11 @@ JSYSTEM_JGADGET_BASE = [
# "-sym on", # might also be on for base flags?
"-O4,s" # in mkdd some libraries use O4,p, might be the case here too
]
FAMICOM_BASE = CFLAGS + [
"-lang=c++",
"-sdata 0",
"-sdata2 0"
] + DOL_DEFINES
JSYSTEM_CFLAGS = ' '.join(JSYSTEM_BASE + LOCAL_CFLAGS)
JSYSTEM_JGADGET_CFLAGS = ' '.join(JSYSTEM_JGADGET_BASE + LOCAL_CFLAGS)
@@ -446,6 +451,7 @@ REL_CFLAGS = ' '.join(BASE_REL_CFLAGS + LOCAL_CFLAGS)
EXTERNAL_DOL_CFLAGS = ' '.join(BASE_DOL_CFLAGS)
EXTERNAL_REL_CFLAGS = ' '.join(BASE_REL_CFLAGS)
PREPROCESS_CFLAGS = ' '.join(PREPROCESSOR_CFLAGS)
FAMICOM_CLFAGS = ' '.join(FAMICOM_BASE + LOCAL_CFLAGS)
DOL_LDFLAGS = ' '.join([
"-maxerrors 1",
+2
View File
@@ -4,6 +4,8 @@ blocked_pointers:
blocked_targets:
- 0x800A97E0 # boot.c local static const tbl, also start of .rodata
- 0x80008000
- 0x801F6C7C # tcs_bad
- 0x801F6C7D # ics_bad
forced_types:
0x80003534: FUNCTION
0x80005468: FUNCTION
+5
View File
@@ -48,6 +48,11 @@ jaudio_NES/dummyprobe.c:
#jaudio_NES/verysimple.c:
# .text: [0x80008400, 0x80008480]
# .sdata: [0x80217b80, 0x80217b88]
Famicom/famicom_nesinfo.cpp:
.text: [0x800468fc, 0x80047e40]
.rodata: [0x800aaa30, 0x800aab60]
.data: [0x800d99a0, 0x800da9c8]
.bss: [0x801f6bd8, 0x801f6c80]
GBA2/JoyBoot.c:
.text: [0x80049788, 0x8004ae00]
.data: [0x800daa08, 0x800daaa0]
+3
View File
@@ -635,6 +635,9 @@ class CSource(Source):
elif path.startswith("src/static/JSystem/"):
self.cflags = c.JSYSTEM_CFLAGS
self.cc = c.CC
elif path.startswith("src/static/Famicom/"):
self.cflags = c.FAMICOM_CLFAGS
self.cc = c.CC
elif path.startswith("src/static/GBA2/"):
self.cflags = c.DOL_CFLAGS_SDATA0_CFLAGS
self.cc = c.CC
+18
View File
@@ -3,6 +3,7 @@
#include "types.h"
#include "Famicom/ks_nes.h"
#include "terminal.h"
#ifdef __cplusplus
extern "C" {
@@ -104,6 +105,15 @@ typedef struct famicom_common_s {
extern void* my_malloc_current;
extern u8 save_game_image;
extern char** nesrom_filename_ptrs;
extern u32 nesinfo_tags_size;
extern u8* nesinfo_tags_start;
extern u8* nesinfo_tags_end;
extern u32 nesinfo_data_size;
extern u8* nesinfo_data_start;
extern u8* nesinfo_data_end;
extern FamicomCommon famicomCommon;
@@ -117,6 +127,14 @@ extern int famicom_init(int, void*, u8);
extern int famicom_cleanup();
extern void nesinfo_tags_set(int rom_no);
extern void nesinfo_tag_process1(u8* save_data, int mode, u32* max_ofs_p);
extern void nesinfo_tag_process2();
extern void nesinfo_tag_process3(u8* save_data);
extern void nesinfo_update_highscore(u8* save_data, int mode);
extern int nesinfo_get_highscore_num();
extern u8* nesinfo_get_moriName();
extern void nesinfo_init();
extern void highscore_setup_flags(u8* flags);
#ifdef __cplusplus
File diff suppressed because it is too large Load Diff