aboutsummaryrefslogtreecommitdiff
path: root/source/gfx.c
diff options
context:
space:
mode:
authorTwinaphex2017-01-15 09:16:59 +0100
committerGitHub2017-01-15 09:16:59 +0100
commit0e8ec6b5f7ab59ad13970536c76e2c8c52a23965 (patch)
tree87330b0cb53dd4302071999a312c712672466550 /source/gfx.c
parenta25a25f9a1327a996fe4ff37d3bfb7e3c15d174e (diff)
parentf1ca19db63461fd36a5739b0b7bd172185811d50 (diff)
downloadsnesemu-0e8ec6b5f7ab59ad13970536c76e2c8c52a23965.tar.gz
snesemu-0e8ec6b5f7ab59ad13970536c76e2c8c52a23965.tar.bz2
snesemu-0e8ec6b5f7ab59ad13970536c76e2c8c52a23965.zip
Merge pull request #23 from jamsilva/master
Cleanups, fixes (including one for "Retroarch/RetroPie Super Mario Allstars")
Diffstat (limited to 'source/gfx.c')
-rw-r--r--source/gfx.c144
1 files changed, 5 insertions, 139 deletions
diff --git a/source/gfx.c b/source/gfx.c
index d61bb09..5613c49 100644
--- a/source/gfx.c
+++ b/source/gfx.c
@@ -1,93 +1,4 @@
-/*******************************************************************************
- Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
-
- (c) Copyright 1996 - 2002 Gary Henderson (gary.henderson@ntlworld.com) and
- Jerremy Koot (jkoot@snes9x.com)
-
- (c) Copyright 2001 - 2004 John Weidman (jweidman@slip.net)
-
- (c) Copyright 2002 - 2004 Brad Jorsch (anomie@users.sourceforge.net),
- funkyass (funkyass@spam.shaw.ca),
- Joel Yliluoma (http://iki.fi/bisqwit/)
- Kris Bleakley (codeviolation@hotmail.com),
- Matthew Kendora,
- Nach (n-a-c-h@users.sourceforge.net),
- Peter Bortas (peter@bortas.org) and
- zones (kasumitokoduck@yahoo.com)
-
- C4 x86 assembler and some C emulation code
- (c) Copyright 2000 - 2003 zsKnight (zsknight@zsnes.com),
- _Demo_ (_demo_@zsnes.com), and Nach
-
- C4 C++ code
- (c) Copyright 2003 Brad Jorsch
-
- DSP-1 emulator code
- (c) Copyright 1998 - 2004 Ivar (ivar@snes9x.com), _Demo_, Gary Henderson,
- John Weidman, neviksti (neviksti@hotmail.com),
- Kris Bleakley, Andreas Naive
-
- DSP-2 emulator code
- (c) Copyright 2003 Kris Bleakley, John Weidman, neviksti, Matthew Kendora, and
- Lord Nightmare (lord_nightmare@users.sourceforge.net
-
- OBC1 emulator code
- (c) Copyright 2001 - 2004 zsKnight, pagefault (pagefault@zsnes.com) and
- Kris Bleakley
- Ported from x86 assembler to C by sanmaiwashi
-
- SPC7110 and RTC C++ emulator code
- (c) Copyright 2002 Matthew Kendora with research by
- zsKnight, John Weidman, and Dark Force
-
- S-DD1 C emulator code
- (c) Copyright 2003 Brad Jorsch with research by
- Andreas Naive and John Weidman
-
- S-RTC C emulator code
- (c) Copyright 2001 John Weidman
-
- ST010 C++ emulator code
- (c) Copyright 2003 Feather, Kris Bleakley, John Weidman and Matthew Kendora
-
- Super FX x86 assembler emulator code
- (c) Copyright 1998 - 2003 zsKnight, _Demo_, and pagefault
-
- Super FX C emulator code
- (c) Copyright 1997 - 1999 Ivar, Gary Henderson and John Weidman
-
-
- SH assembler code partly based on x86 assembler code
- (c) Copyright 2002 - 2004 Marcus Comstedt (marcus@mc.pp.se)
-
- (c) Copyright 2014 - 2016 Daniel De Matteis. (UNDER NO CIRCUMSTANCE
- WILL COMMERCIAL RIGHTS EVER BE APPROPRIATED TO ANY PARTY)
-
- Specific ports contains the works of other authors. See headers in
- individual files.
-
- Snes9x homepage: http://www.snes9x.com
-
- Permission to use, copy, modify and distribute Snes9x in both binary and
- source form, for non-commercial purposes, is hereby granted without fee,
- providing that this license information and copyright notice appear with
- all copies and any derived work.
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event shall the authors be held liable for any damages
- arising from the use of this software.
-
- Snes9x is freeware for PERSONAL USE only. Commercial users should
- seek permission of the copyright holders first. Commercial use includes
- charging money for Snes9x or software derived from Snes9x.
-
- The copyright holders request that bug fixes and improvements to the code
- should be forwarded to them so everyone can benefit from the modifications
- in future versions.
-
- Super NES and Super Nintendo Entertainment System are trademarks of
- Nintendo Co., Limited and its subsidiary companies.
-*******************************************************************************/
+#include "../copyright"
#include "snes9x.h"
@@ -355,8 +266,6 @@ bool S9xInitGFX()
GFX.ZPitch >>= 1;
GFX.Delta = (GFX.SubScreen - GFX.Screen) >> 1;
GFX.DepthDelta = GFX.SubZBuffer - GFX.ZBuffer;
- //GFX.InfoStringTimeout = 0;
- //GFX.InfoString = NULL;
PPU.BG_Forced = 0;
IPPU.OBJChanged = true;
@@ -943,13 +852,11 @@ void S9xSetupOBJ()
/* First, find out which sprites are on which lines */
uint8_t OBJOnLine[SNES_HEIGHT_EXTENDED][128];
- // memset(OBJOnLine, 0, sizeof(OBJOnLine));
- /* Hold on here, that's a lot of bytes to initialise at once!
- * So we only initialise them per line, as needed. [Neb]
+ /* We only initialise this per line, as needed. [Neb]
* Bonus: We can quickly avoid looping if a line has no OBJs.
*/
bool AnyOBJOnLine[SNES_HEIGHT_EXTENDED];
- memset(AnyOBJOnLine, false, sizeof(AnyOBJOnLine)); // better
+ memset(AnyOBJOnLine, false, sizeof(AnyOBJOnLine));
for (S = 0; S < 128; S++)
{
@@ -998,7 +905,7 @@ void S9xSetupOBJ()
int j, Y;
for (Y = 0; Y < SNES_HEIGHT_EXTENDED; Y++)
{
- GFX.OBJLines[Y].RTOFlags = Y ? 0 : GFX.OBJLines[Y - 1].RTOFlags;
+ GFX.OBJLines[Y].RTOFlags = Y ? GFX.OBJLines[Y - 1].RTOFlags : 0;
GFX.OBJLines[Y].Tiles = 34;
j = 0;
@@ -1604,7 +1511,6 @@ static void DrawBackgroundOffset(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8
for (Y = GFX.StartY; Y <= GFX.EndY; Y++)
{
uint32_t VOff = LineData [Y].BG[2].VOffset - 1;
- // uint32_t VOff = LineData [Y].BG[2].VOffset;
uint32_t HOff = LineData [Y].BG[2].HOffset;
int VirtAlign;
@@ -1662,7 +1568,6 @@ static void DrawBackgroundOffset(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8
uint32_t VOffset;
uint32_t HOffset;
- //added:
uint32_t LineHOffset = LineData [Y].BG[bg].HOffset;
uint32_t Offset;
@@ -1695,8 +1600,6 @@ static void DrawBackgroundOffset(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8
VOffset = LineData [Y].BG[bg].VOffset;
//MKendora; use temp var to reduce memory accesses
- //HOffset = LineData [Y].BG[bg].HOffset;
-
HOffset = LineHOffset;
//End MK
@@ -1721,8 +1624,7 @@ static void DrawBackgroundOffset(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8
{
VOffset = LineData [Y].BG[bg].VOffset;
- //MKendora another mem access hack
- //HOffset = LineData [Y].BG[bg].HOffset;
+ //MKendora; use temp var to reduce memory accesses
HOffset = LineHOffset;
//end MK
@@ -1744,17 +1646,9 @@ static void DrawBackgroundOffset(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8
//MKendora Strike Gunner fix
if ((HCellOffset & OffsetEnableMask))
- {
- //HOffset= HCellOffset;
-
HOffset = (HCellOffset & ~7) | (LineHOffset & 7);
- //HOffset |= LineData [Y].BG[bg].HOffset&7;
- }
else
HOffset = LineHOffset;
- //HOffset = LineData [Y].BG[bg].HOffset -
- //Settings.StrikeGunnerOffsetHack;
- //HOffset &= (~7);
//end MK
}
}
@@ -1804,7 +1698,6 @@ static void DrawBackgroundOffset(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8
Offset = HPos & 7;
- //Count =1;
Count = 8 - Offset;
if (Count > MaxCount)
Count = MaxCount;
@@ -1905,19 +1798,12 @@ static void DrawBackgroundMode5(uint32_t bg, uint8_t Z1, uint8_t Z2)
int Lines;
-// int VOffsetMask;
int VOffsetShift;
if (BG.TileSize == 16)
- {
-// VOffsetMask = 0x3ff;
VOffsetShift = 4;
- }
else
- {
-// VOffsetMask = 0x1ff;
VOffsetShift = 3;
- }
int endy = IPPU.Interlace ? 1 + (GFX.EndY << 1) : GFX.EndY;
int Y;
@@ -2184,7 +2070,6 @@ static void DrawBackgroundMode5(uint32_t bg, uint8_t Z1, uint8_t Z2)
}
GFX.Pitch = IPPU.DoubleHeightPixels ? GFX.RealPitch * 2 : GFX.RealPitch;
GFX.PPL = IPPU.DoubleHeightPixels ? GFX.PPLx2 : (GFX.PPLx2 >> 1);
-
}
static void DrawBackground(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8_t Z2)
@@ -2218,14 +2103,10 @@ static void DrawBackground(uint32_t BGMode, uint32_t bg, uint8_t Z1, uint8_t Z2)
case 5:
case 6: // XXX: is also offset per tile.
- // if (Settings.SupportHiRes)
- // {
if (!Settings.SupportHiRes)
SelectTileRenderer(true /* normal */);
DrawBackgroundMode5(bg, Z1, Z2);
return;
- // }
- break;
}
uint32_t Tile;
@@ -3386,20 +3267,7 @@ void DisplayChar(uint8_t* Screen, uint8_t c)
uint8_t p = font [line][offset + w];
if (p == '#')
- {
- /*
- if(Memory.Hacked)
- *s= BUILD_PIXEL(31,0,0);
- else if(Memory.Iffy)
- *s= BUILD_PIXEL(31,31,0);
- else if(Memory.Iformat==1)
- *s= BUILD_PIXEL(0,31,0);
- else if(Memory.Iformat==2)
- *s= BUILD_PIXEL(0,31,31);
- else *s = 0xffff;
- */
*s = Settings.DisplayColor;
- }
else if (p == '.')
*s = BLACK;
}
@@ -3974,5 +3842,3 @@ void S9xUpdateScreen(void)
IPPU.PreviousLine = IPPU.CurrentLine;
}
-
-