Add 7x (672x448) video scale (#54)

This commit is contained in:
vaguerant 2021-11-26 05:13:10 +11:00 committed by GitHub
parent b24883d9bd
commit 0e0adda796
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1572 additions and 0 deletions

View File

@ -38,6 +38,7 @@ SOURCES_C := \
$(CORE_DIR)/source/Video_x4.c \
$(CORE_DIR)/source/Video_x5.c \
$(CORE_DIR)/source/Video_x6.c \
$(CORE_DIR)/source/Video_x7.c \
$(CORE_DIR)/source/Video.c \
$(CORE_DIR)/resource/PokeMini_ColorPal.c \
$(CORE_DIR)/libretro/libretro.c

View File

@ -31,6 +31,7 @@
#include "Video_x4.h"
#include "Video_x5.h"
#include "Video_x6.h"
#include "Video_x7.h"
#ifdef _3DS
void* linearMemAlign(size_t size, size_t alignment);
@ -614,6 +615,10 @@ static void InitialiseVideo(void)
{
video_scale = 6;
}
else if (strcmp(variables.value, "7x") == 0)
{
video_scale = 7;
}
#endif
}
@ -662,6 +667,9 @@ static void InitialiseVideo(void)
case 6:
video_spec = (TPokeMini_VideoSpec *)&PokeMini_Video6x6;
break;
case 7:
video_spec = (TPokeMini_VideoSpec *)&PokeMini_Video7x7;
break;
default: // video_scale == 1
video_spec = (TPokeMini_VideoSpec *)&PokeMini_Video1x1;
break;

View File

@ -61,6 +61,7 @@ struct retro_core_option_definition option_defs_us[] = {
{ "4x", NULL },
{ "5x", NULL },
{ "6x", NULL },
{ "7x", NULL },
#endif
{ NULL, NULL },
},

1487
source/Video_x7.c Normal file

File diff suppressed because it is too large Load Diff

75
source/Video_x7.h Normal file
View File

@ -0,0 +1,75 @@
/*
PokeMini - Pokémon-Mini Emulator
Copyright (C) 2009-2012 JustBurn
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef POKEMINI_VIDEO_X7
#define POKEMINI_VIDEO_X7
#include <stdint.h>
// Video specs
extern const TPokeMini_VideoSpec PokeMini_Video7x7;
// Return the best blitter
TPokeMini_DrawVideo32 PokeMini_GetVideo7x7_32(int filter, int lcdmode);
TPokeMini_DrawVideo16 PokeMini_GetVideo7x7_16(int filter, int lcdmode);
// Render to 672x448, analog + scanline
void PokeMini_VideoAScanLine7x7_32(uint32_t *screen, int pitchW);
void PokeMini_VideoAScanLine7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, 3-colors + scanline
void PokeMini_Video3ScanLine7x7_32(uint32_t *screen, int pitchW);
void PokeMini_Video3ScanLine7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, 2-colors + scanline
void PokeMini_Video2ScanLine7x7_32(uint32_t *screen, int pitchW);
void PokeMini_Video2ScanLine7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, analog + dot matrix
void PokeMini_VideoAMatrix7x7_32(uint32_t *screen, int pitchW);
void PokeMini_VideoAMatrix7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, 3-colors + dot matrix
void PokeMini_Video3Matrix7x7_32(uint32_t *screen, int pitchW);
void PokeMini_Video3Matrix7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, 2-colors + dot matrix
void PokeMini_Video2Matrix7x7_32(uint32_t *screen, int pitchW);
void PokeMini_Video2Matrix7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, analog
void PokeMini_VideoANone7x7_32(uint32_t *screen, int pitchW);
void PokeMini_VideoANone7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, 3-colors
void PokeMini_Video3None7x7_32(uint32_t *screen, int pitchW);
void PokeMini_Video3None7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, 2-colors
void PokeMini_Video2None7x7_32(uint32_t *screen, int pitchW);
void PokeMini_Video2None7x7_16(uint16_t *screen, int pitchW);
// Render to 672x448, unofficial colors
void PokeMini_VideoColor7x7_32(uint32_t *screen, int pitchW);
void PokeMini_VideoColor7x7_16(uint16_t *screen, int pitchW);
void PokeMini_VideoColorL7x7_32(uint32_t *screen, int pitchW);
void PokeMini_VideoColorL7x7_16(uint16_t *screen, int pitchW);
void PokeMini_VideoColorH7x7_32(uint32_t *screen, int pitchW);
void PokeMini_VideoColorH7x7_16(uint16_t *screen, int pitchW);
#endif