@@ -801,6 +801,39 @@ static double get_aspect_ratio(void) {
801801 }
802802}
803803
804+ static void load_custom_palette_from_file (void ) {
805+ uint8 ptmp [64 * 8 * 3 ];
806+ RFILE * fp = NULL ;
807+ char * fn = NULL ;
808+
809+ palette_game .exist = false;
810+ palette_game .nEntries = 0 ;
811+ palette_game .data = NULL ;
812+
813+ fn = FCEU_MakeFName (FCEUMKF_PALETTE , 0 , 0 );
814+
815+ if (!string_is_empty (fn ) && path_is_valid (fn )) {
816+ fp = filestream_open (
817+ fn , RETRO_VFS_FILE_ACCESS_READ , RETRO_VFS_FILE_ACCESS_HINT_NONE );
818+ }
819+
820+ if (fp ) {
821+ int x ;
822+ int ssize = filestream_read (fp , ptmp , (64 * 8 * 3 ));
823+ int nEntries = ssize / 3 ;
824+ filestream_close (fp );
825+ palette_game .data = (pal * )FCEU_malloc (nEntries * sizeof (pal ));
826+ for (x = 0 ; x < nEntries ; x ++ ) {
827+ palette_game .data [x ].r = ptmp [x + x + x ];
828+ palette_game .data [x ].g = ptmp [x + x + x + 1 ];
829+ palette_game .data [x ].b = ptmp [x + x + x + 2 ];
830+ }
831+ palette_game .exist = TRUE;
832+ palette_game .nEntries = nEntries ;
833+ }
834+ free (fn );
835+ }
836+
804837static void set_user_palette (void ) {
805838 unsigned i ;
806839
@@ -2056,40 +2089,8 @@ bool retro_load_game(const struct retro_game_info *info) {
20562089
20572090 if (!FCEUI_PostLoad ()) return FALSE;
20582091
2059- {
2060- /* load custom palette file */
2061- uint8 ptmp [64 * 8 * 3 ];
2062- RFILE * fp = NULL ;
2063- char * fn = NULL ;
2064-
2065- palette_game .exist = false;
2066- palette_game .nEntries = 0 ;
2067- palette_game .data = NULL ;
2068-
2069- fn = FCEU_MakeFName (FCEUMKF_PALETTE , 0 , 0 );
2070-
2071- if (!string_is_empty (fn ) && path_is_valid (fn )) {
2072- fp = filestream_open (fn ,
2073- RETRO_VFS_FILE_ACCESS_READ ,
2074- RETRO_VFS_FILE_ACCESS_HINT_NONE );
2075- }
2076-
2077- if (fp ) {
2078- int x ;
2079- int ssize = filestream_read (fp , ptmp , (64 * 8 * 3 ));
2080- int nEntries = ssize / 3 ;
2081- filestream_close (fp );
2082- palette_game .data = (pal * )FCEU_malloc (nEntries * sizeof (pal ));
2083- for (x = 0 ; x < nEntries ; x ++ ) {
2084- palette_game .data [x ].r = ptmp [x + x + x ];
2085- palette_game .data [x ].g = ptmp [x + x + x + 1 ];
2086- palette_game .data [x ].b = ptmp [x + x + x + 2 ];
2087- }
2088- palette_game .exist = TRUE;
2089- palette_game .nEntries = nEntries ;
2090- }
2091- free (fn );
2092- }
2092+ /* load custom palette file */
2093+ load_custom_palette_from_file ();
20932094
20942095 check_variables (true);
20952096 stereo_filter_init ();
0 commit comments