EXTERMINATE SPACES
This commit is contained in:
parent
8f7b01bffe
commit
3ea71a2dda
|
@ -389,8 +389,9 @@ namespace BizHawk.BizInvoke
|
|||
|
||||
il.Emit(OpCodes.Ldarg_0);
|
||||
il.Emit(OpCodes.Ldfld, field);
|
||||
il.EmitCalli(OpCodes.Calli,
|
||||
nativeCall,
|
||||
il.EmitCalli(
|
||||
OpCodes.Calli,
|
||||
nativeCall,
|
||||
returnType == typeof(bool) ? typeof(byte) : returnType, // undo winapi style bool garbage
|
||||
paramLoadInfos.Select(p => p.NativeType).ToArray());
|
||||
|
||||
|
|
|
@ -61,8 +61,11 @@ namespace BizHawk.BizInvoke
|
|||
AllocationType flAllocationType, MemoryProtection flProtect);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
public static extern bool VirtualProtect(UIntPtr lpAddress, UIntPtr dwSize,
|
||||
MemoryProtection flNewProtect, out MemoryProtection lpflOldProtect);
|
||||
public static extern bool VirtualProtect(
|
||||
UIntPtr lpAddress,
|
||||
UIntPtr dwSize,
|
||||
MemoryProtection flNewProtect,
|
||||
out MemoryProtection lpflOldProtect);
|
||||
|
||||
[Flags]
|
||||
public enum AllocationType : uint
|
||||
|
@ -123,9 +126,13 @@ namespace BizHawk.BizInvoke
|
|||
public static extern bool UnmapViewOfFile(IntPtr lpBaseAddress);
|
||||
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern IntPtr MapViewOfFileEx(IntPtr hFileMappingObject,
|
||||
FileMapAccessType dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow,
|
||||
UIntPtr dwNumberOfBytesToMap, IntPtr lpBaseAddress);
|
||||
public static extern IntPtr MapViewOfFileEx(
|
||||
IntPtr hFileMappingObject,
|
||||
FileMapAccessType dwDesiredAccess,
|
||||
uint dwFileOffsetHigh,
|
||||
uint dwFileOffsetLow,
|
||||
UIntPtr dwNumberOfBytesToMap,
|
||||
IntPtr lpBaseAddress);
|
||||
|
||||
[Flags]
|
||||
public enum FileMapAccessType : uint
|
||||
|
|
|
@ -62,7 +62,7 @@ namespace BizHawk.Bizware.BizwareGL
|
|||
/// <summary>
|
||||
/// Closes this instance for for further resource loading. Will result in a texture atlasing operation.
|
||||
/// If the close operation is forever, then internal backup copies of resources will be freed, but it can never be reopened.
|
||||
/// This function may take some time to run, as it is
|
||||
/// This function may take some time to run, as it is
|
||||
/// </summary>
|
||||
public void Close(bool forever = true)
|
||||
{
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
public enum AttribUsage
|
||||
{
|
||||
Unspecified,
|
||||
Position,
|
||||
Position,
|
||||
Color0,
|
||||
Texcoord0, Texcoord1,
|
||||
}
|
||||
|
|
|
@ -525,7 +525,7 @@ namespace BizHawk.Bizware.BizwareGL
|
|||
return;
|
||||
}
|
||||
|
||||
//note: we lock it as 32bpp even if the bitmap is 24bpp so we can write to it more conveniently.
|
||||
//note: we lock it as 32bpp even if the bitmap is 24bpp so we can write to it more conveniently.
|
||||
var bmpdata = bmp.LockBits(new Rectangle(0, 0, Width, Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
|
||||
|
||||
if(bmpdata.Stride == bmpdata.Width*4)
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace BizHawk.Bizware.BizwareGL
|
|||
public bool TransparentPalette0 = true;
|
||||
|
||||
/// <summary>
|
||||
/// Specifies whether (r,g,b,0) pixels shall be turned into (0,0,0,0).
|
||||
/// Specifies whether (r,g,b,0) pixels shall be turned into (0,0,0,0).
|
||||
/// This is useful for cleaning up junk which you might not know you had littering purely transparent areas, which can mess up a lot of stuff during rendering.
|
||||
/// </summary>
|
||||
public bool CleanupAlpha0 = true;
|
||||
|
|
|
@ -65,12 +65,11 @@ namespace BizHawk.Bizware.BizwareGL
|
|||
|
||||
float[][] colorMatrixElements =
|
||||
{
|
||||
new float[] {r, 0, 0, 0, 0},
|
||||
new float[] {0, g, 0, 0, 0},
|
||||
new float[] {0, 0, b, 0, 0},
|
||||
new float[] {0, 0, 0, a, 0},
|
||||
new float[] {0, 0, 0, 0, 1}
|
||||
|
||||
new float[] { r, 0, 0, 0, 0 },
|
||||
new float[] { 0, g, 0, 0, 0 },
|
||||
new float[] { 0, 0, b, 0, 0 },
|
||||
new float[] { 0, 0, 0, a, 0 },
|
||||
new float[] { 0, 0, 0, 0, 1 },
|
||||
};
|
||||
|
||||
var colorMatrix = new ColorMatrix(colorMatrixElements);
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace BizHawk.Bizware.BizwareGL
|
|||
/// This is a wrapper over OpenGL and direct3d to give a uniform interface
|
||||
/// TODO - This really needs to be split up into an internal and a user interface. so many of the functions are made to support the smart wrappers
|
||||
/// Maybe make a method that returns an interface used for advanced methods (and IGL_TK could implement that as well and just "return this:")
|
||||
///
|
||||
///
|
||||
/// NOTE: THIS SHOULD NOT BE ASSUMED TO BE THREAD SAFE! Make a new IGL if you want to use it in a new thread. I hope that will work...
|
||||
/// </summary>
|
||||
public interface IGL : IDisposable
|
||||
|
|
|
@ -132,7 +132,7 @@ namespace BizHawk.Bizware.BizwareGL
|
|||
private class RectangleBinPack
|
||||
{
|
||||
/** A node of a binary tree. Each node represents a rectangular area of the texture
|
||||
we surface. Internal nodes store rectangles of used data, whereas leaf nodes track
|
||||
we surface. Internal nodes store rectangles of used data, whereas leaf nodes track
|
||||
rectangles of free space. All the rectangles stored in the tree are disjoint. */
|
||||
public class Node
|
||||
{
|
||||
|
|
|
@ -375,7 +375,7 @@ namespace BizHawk.Bizware.DirectX
|
|||
switch(item.Usage)
|
||||
{
|
||||
case AttribUsage.Position:
|
||||
usage = DeclarationUsage.Position;
|
||||
usage = DeclarationUsage.Position;
|
||||
break;
|
||||
case AttribUsage.Texcoord0:
|
||||
usage = DeclarationUsage.TextureCoordinate;
|
||||
|
|
|
@ -12,7 +12,7 @@ using sd = System.Drawing;
|
|||
namespace BizHawk.Bizware.OpenTK3
|
||||
{
|
||||
/// <summary>
|
||||
/// A simple renderer useful for rendering GUI stuff.
|
||||
/// A simple renderer useful for rendering GUI stuff.
|
||||
/// When doing GUI rendering, run everything through here (if you need a GL feature not done through here, run it through here first)
|
||||
/// Call Begin, then draw, then End, and don't use other Renderers or GL calls in the meantime, unless you know what you're doing.
|
||||
/// This can perform batching (well.. maybe not yet), which is occasionally necessary for drawing large quantities of things.
|
||||
|
@ -241,10 +241,10 @@ namespace BizHawk.Bizware.OpenTK3
|
|||
else { v0 = art.v0; v1 = art.v1; }
|
||||
|
||||
float[] data = new float[32] {
|
||||
x,y, u0,v0, CornerColors[0].X, CornerColors[0].Y, CornerColors[0].Z, CornerColors[0].W,
|
||||
x+art.Width,y, u1,v0, CornerColors[1].X, CornerColors[1].Y, CornerColors[1].Z, CornerColors[1].W,
|
||||
x,y+art.Height, u0,v1, CornerColors[2].X, CornerColors[2].Y, CornerColors[2].Z, CornerColors[2].W,
|
||||
x+art.Width,y+art.Height, u1,v1, CornerColors[3].X, CornerColors[3].Y, CornerColors[3].Z, CornerColors[3].W,
|
||||
x,y, u0,v0, CornerColors[0].X, CornerColors[0].Y, CornerColors[0].Z, CornerColors[0].W,
|
||||
x+art.Width,y, u1,v0, CornerColors[1].X, CornerColors[1].Y, CornerColors[1].Z, CornerColors[1].W,
|
||||
x,y+art.Height, u0,v1, CornerColors[2].X, CornerColors[2].Y, CornerColors[2].Z, CornerColors[2].W,
|
||||
x+art.Width,y+art.Height, u1,v1, CornerColors[3].X, CornerColors[3].Y, CornerColors[3].Z, CornerColors[3].W,
|
||||
};
|
||||
|
||||
Texture2d tex = art.BaseTexture;
|
||||
|
|
|
@ -35,7 +35,7 @@ using VertexAttribPointerType = OpenTK.Graphics.OpenGL.VertexAttribPointerType;
|
|||
namespace BizHawk.Bizware.OpenTK3
|
||||
{
|
||||
/// <summary>
|
||||
/// OpenTK implementation of the BizwareGL.IGL interface.
|
||||
/// OpenTK implementation of the BizwareGL.IGL interface.
|
||||
/// TODO - can we have more than one of these? could be dangerous. such dangerous things to be possibly reconsidered are marked with HAMNUTS
|
||||
/// TODO - if we have any way of making contexts, we also need a way of freeing it, and then we can cleanup our dictionaries
|
||||
/// </summary>
|
||||
|
@ -76,7 +76,7 @@ namespace BizHawk.Bizware.OpenTK3
|
|||
MakeDefaultCurrent();
|
||||
|
||||
//this is important for reasons unknown
|
||||
GraphicsContext.LoadAll();
|
||||
GraphicsContext.LoadAll();
|
||||
|
||||
//misc initialization
|
||||
CreateRenderStates();
|
||||
|
@ -395,7 +395,7 @@ namespace BizHawk.Bizware.OpenTK3
|
|||
|
||||
public void SetPipelineUniform(PipelineUniform uniform, bool value)
|
||||
{
|
||||
GL.Uniform1((int)uniform.Sole.Opaque, value ? 1 : 0);
|
||||
GL.Uniform1((int) uniform.Sole.Opaque, value ? 1 : 0);
|
||||
}
|
||||
|
||||
public unsafe void SetPipelineUniformMatrix(PipelineUniform uniform, Matrix4 mat, bool transpose)
|
||||
|
@ -826,12 +826,12 @@ namespace BizHawk.Bizware.OpenTK3
|
|||
private void CreateRenderStates()
|
||||
{
|
||||
_rsBlendNoneVerbatim = new CacheBlendState(
|
||||
false,
|
||||
false,
|
||||
BizGL.BlendingFactorSrc.One, BizGL.BlendEquationMode.FuncAdd, BizGL.BlendingFactorDest.Zero,
|
||||
BizGL.BlendingFactorSrc.One, BizGL.BlendEquationMode.FuncAdd, BizGL.BlendingFactorDest.Zero);
|
||||
|
||||
_rsBlendNoneOpaque = new CacheBlendState(
|
||||
false,
|
||||
false,
|
||||
BizGL.BlendingFactorSrc.One, BizGL.BlendEquationMode.FuncAdd, BizGL.BlendingFactorDest.Zero,
|
||||
BizGL.BlendingFactorSrc.ConstantAlpha, BizGL.BlendEquationMode.FuncAdd, BizGL.BlendingFactorDest.Zero);
|
||||
|
||||
|
|
|
@ -69,10 +69,10 @@ namespace BizHawk.Client.Common
|
|||
if (state == null) _inputManager.ButtonOverrideAdapter.UnSet(buttonToSet);
|
||||
else _inputManager.ButtonOverrideAdapter.SetButton(buttonToSet, state.Value);
|
||||
|
||||
//"Overrides" is a gross line of code in that flushes overrides into the current controller.
|
||||
//That's not really the way it was meant to work which was that it should pull all its values through the filters before ever using them.
|
||||
//Of course the code that does that is in the main loop and the lua API wouldnt know how to do it.
|
||||
//I regret the whole hotkey filter chain OOP soup approach. Anyway, the code that
|
||||
//"Overrides" is a gross line of code in that flushes overrides into the current controller.
|
||||
//That's not really the way it was meant to work which was that it should pull all its values through the filters before ever using them.
|
||||
//Of course the code that does that is in the main loop and the lua API wouldnt know how to do it.
|
||||
//I regret the whole hotkey filter chain OOP soup approach. Anyway, the code that
|
||||
|
||||
//in a crude, CRUDE, *CRUDE* approximation of what the main loop does, we need to pull the physical input again before it's freshly overridded
|
||||
//but really, everything the main loop does needs to be done here again.
|
||||
|
|
|
@ -187,7 +187,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void SetBigEndian(bool enabled = true) => _isBigEndian = enabled;
|
||||
|
||||
public List<string> GetMemoryDomainList() =>
|
||||
public List<string> GetMemoryDomainList() =>
|
||||
DomainList
|
||||
.Select(domain => domain.Name)
|
||||
.ToList();
|
||||
|
|
|
@ -5,8 +5,8 @@ using BizHawk.Client.Common.FilterManager;
|
|||
using BizHawk.Bizware.BizwareGL;
|
||||
|
||||
// Here's how to make a filter:
|
||||
// 1. Reset your state entirely in Initialize().
|
||||
// The filter will be re-initialized several times while the chain is getting worked out, but not re-instantiated.
|
||||
// 1. Reset your state entirely in Initialize().
|
||||
// The filter will be re-initialized several times while the chain is getting worked out, but not re-instantiated.
|
||||
// This is sort of annoying, but there's pretty good reasons for it (some external process has created the filters and set parameters needed to govern their chaining and surface properties)
|
||||
// 2. In Initialize(), be sure to use DeclareInput
|
||||
// (something about PresizeInput())
|
||||
|
|
|
@ -51,7 +51,7 @@ namespace BizHawk.Client.Common.Filters
|
|||
float widthScale = (float)targetWidth / sourceWidth;
|
||||
float heightScale = (float)targetHeight / sourceHeight;
|
||||
|
||||
if (maintainAspect
|
||||
if (maintainAspect
|
||||
// zero 20-jul-2014 - hacks upon hacks, this function needs rewriting
|
||||
&& !maintainInteger
|
||||
)
|
||||
|
|
|
@ -287,7 +287,7 @@ namespace BizHawk.Client.Common.Filters
|
|||
|
||||
// apply all parameters to this shader.. even if it was meant for other shaders. kind of lame.
|
||||
if(Parameters != null)
|
||||
{
|
||||
{
|
||||
foreach (var kvp in Parameters)
|
||||
{
|
||||
if (kvp.Value is float value)
|
||||
|
|
|
@ -4,7 +4,7 @@ using System.Collections.Generic;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// encapsulates thread-safe concept of pending/current display surfaces, reusing buffers where matching
|
||||
/// encapsulates thread-safe concept of pending/current display surfaces, reusing buffers where matching
|
||||
/// sizes are available and keeping them cleaned up when they don't seem like they'll need to be used anymore
|
||||
/// </summary>
|
||||
public class SwappableDisplaySurfaceSet<T>
|
||||
|
|
|
@ -112,8 +112,8 @@ namespace BizHawk.Client.Common
|
|||
// you might think ideally we'd fetch the libretro core name from the core info inside it
|
||||
// but that would involve spinning up excess libretro core instances, which probably isn't good for stability, no matter how much we wish otherwise, not to mention slow.
|
||||
// moreover it's kind of complicated here,
|
||||
// and finally, I think the DisplayName should really be file-based in all cases, since the user is going to be loading cores by filename and
|
||||
// this is related to the recent roms filename management.
|
||||
// and finally, I think the DisplayName should really be file-based in all cases, since the user is going to be loading cores by filename and
|
||||
// this is related to the recent roms filename management.
|
||||
// so, leave it.
|
||||
public OpenAdvanced_LibretroNoGame()
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace BizHawk.Client.Common
|
|||
// read the entire contents of the file into memory.
|
||||
// unfortunate in the case of large files, but that's what we've got to work with for now.
|
||||
|
||||
// if we're offset exactly 512 bytes from a 1024-byte boundary,
|
||||
// if we're offset exactly 512 bytes from a 1024-byte boundary,
|
||||
// assume we have a header of that size. Otherwise, assume it's just all rom.
|
||||
// Other 'recognized' header sizes may need to be added.
|
||||
int headerOffset = fileLength % BankSize;
|
||||
|
@ -56,8 +56,8 @@ namespace BizHawk.Client.Common
|
|||
stream.Position = 0;
|
||||
stream.Read(FileData, 0, fileLength);
|
||||
|
||||
// if there was no header offset, RomData is equivalent to FileData
|
||||
// (except in cases where the original interleaved file data is necessary.. in that case we'll have problems..
|
||||
// if there was no header offset, RomData is equivalent to FileData
|
||||
// (except in cases where the original interleaved file data is necessary.. in that case we'll have problems..
|
||||
// but this whole architecture is not going to withstand every peculiarity and be fast as well.
|
||||
if (headerOffset == 0)
|
||||
{
|
||||
|
@ -67,7 +67,7 @@ namespace BizHawk.Client.Common
|
|||
file.Extension == ".pzx" || file.Extension == ".csw" || file.Extension == ".wav" || file.Extension == ".cdt")
|
||||
{
|
||||
// these are not roms. unfortunately if treated as such there are certain edge-cases
|
||||
// where a header offset is detected. This should mitigate this issue until a cleaner solution is found
|
||||
// where a header offset is detected. This should mitigate this issue until a cleaner solution is found
|
||||
// (-Asnivor)
|
||||
RomData = FileData;
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
private static byte[] DeInterleaveSMD(byte[] source)
|
||||
{
|
||||
// SMD files are interleaved in pages of 16k, with the first 8k containing all
|
||||
// SMD files are interleaved in pages of 16k, with the first 8k containing all
|
||||
// odd bytes and the second 8k containing all even bytes.
|
||||
int size = source.Length;
|
||||
if (size > 0x400000)
|
||||
|
|
|
@ -7,11 +7,11 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
// Generates SEMI-synchronous sound, or "buffered asynchronous" sound.
|
||||
|
||||
// This class will try as hard as it can to request the correct number of samples on each frame and then
|
||||
// This class will try as hard as it can to request the correct number of samples on each frame and then
|
||||
// send them out to the sound card as it needs them.
|
||||
|
||||
// However, it has minimum/maximum buffer targets and will request smaller or larger frames if it has to.
|
||||
// The ultimate goal of this strategy is to make MOST frames 100% correct, and if errors must occur,
|
||||
// The ultimate goal of this strategy is to make MOST frames 100% correct, and if errors must occur,
|
||||
// concentrate it on a single frame, rather than distribute small errors across most frames, as
|
||||
// distributing error to most frames tends to result in persistently distorted audio, especially when
|
||||
// sample playback is involved.
|
||||
|
@ -19,13 +19,13 @@ namespace BizHawk.Client.Common
|
|||
|
||||
/*
|
||||
* Why use this, when each core has it's own Async sound output?
|
||||
*
|
||||
*
|
||||
* It is true that each emulation core provides its own async sound output, either through directly
|
||||
* rendering to arbitrary buffers (pce not TurboCD, sms), or using one of the metaspus (nes, TurboCD).
|
||||
*
|
||||
*
|
||||
* Unfortunately, the vecna metaspu is not perfect, and for maintaining near-realtime playback (the usual
|
||||
* situation which we want to optimize for), it simply sounds better with a BufferedAsync on top of it.
|
||||
*
|
||||
*
|
||||
* TODO: BufferedAsync has some hard coded parameters that assume FPS = 60. make that more generalized.
|
||||
* TODO: For systems that _really_ don't need BufferedAsync (pce not turbocd, sms), make a way to signal
|
||||
* that and then bypass the BufferedAsync.
|
||||
|
|
|
@ -4,7 +4,7 @@ using System.Linq;
|
|||
|
||||
namespace BizHawk.Client.Common.cheats
|
||||
{
|
||||
// TODO:
|
||||
// TODO:
|
||||
public static class GbaGameSharkDecoder
|
||||
{
|
||||
private static readonly uint[] GameSharkSeeds = { 0x09F4FBBDU, 0x9681884AU, 0x352027E9U, 0xF3DEE5A7U };
|
||||
|
|
|
@ -9,7 +9,7 @@ using System.Linq;
|
|||
// public string DisplayName;
|
||||
// public string Bindings;
|
||||
// }
|
||||
// ...also. We should consider using something other than DisplayName for keying, maybe make a KEYNAME distinct from displayname.
|
||||
// ...also. We should consider using something other than DisplayName for keying, maybe make a KEYNAME distinct from displayname.
|
||||
// displayname is OK for now though.
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
public enum EDispManagerAR
|
||||
{
|
||||
None,
|
||||
System,
|
||||
System,
|
||||
|
||||
// actually, custom SIZE (fixme on major release)
|
||||
Custom,
|
||||
Custom,
|
||||
CustomRatio
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace BizHawk.Client.Common
|
|||
/// </summary>
|
||||
public static PathEntry EntryWithFallback(this PathEntryCollection collection, string pathType, string systemId)
|
||||
{
|
||||
return (collection[systemId, pathType]
|
||||
return (collection[systemId, pathType]
|
||||
?? collection[systemId, "Base"])
|
||||
?? collection["Global", "Base"];
|
||||
}
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
public const int DefaultCompressionLevelNormal = 1;
|
||||
public SaveStateType Type { get; set; } = SaveStateType.Binary;
|
||||
public int CompressionLevelNormal { get; set; } = DefaultCompressionLevelNormal;
|
||||
public const int DefaultCompressionLevelRewind = 0; // this isn't actually used yet
|
||||
public int CompressionLevelRewind { get; set; } = DefaultCompressionLevelRewind; // this isn't actually used yet
|
||||
public const int DefaultCompressionLevelRewind = 0; // this isn't actually used yet
|
||||
public int CompressionLevelRewind { get; set; } = DefaultCompressionLevelRewind; // this isn't actually used yet
|
||||
public bool MakeBackups { get; set; } = true;
|
||||
public bool SaveScreenshot { get; set; } = true;
|
||||
public int BigScreenshotSize { get; set; } = 128 * 1024;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="AutoPatternBool"/> class.
|
||||
/// Initializes a new instance of the <see cref="AutoPatternBool"/> class.
|
||||
/// A simple on/off pattern.
|
||||
/// </summary>
|
||||
public AutoPatternBool(int on, int off, bool skipLag = true, int offset = 0, int loop = 0)
|
||||
|
|
|
@ -14,10 +14,10 @@ namespace BizHawk.Client.Common
|
|||
public class InputManager
|
||||
{
|
||||
// the original source controller, bound to the user, sort of the "input" port for the chain, i think
|
||||
public Controller ActiveController { get; set; } // TODO: private setter, add a method that takes both controllers in
|
||||
public Controller ActiveController { get; set; } // TODO: private setter, add a method that takes both controllers in
|
||||
|
||||
// rapid fire version on the user controller, has its own key bindings and is OR'ed against ActiveController
|
||||
public AutofireController AutoFireController { get; set; } // TODO: private setter, add a method that takes both controllers in
|
||||
public AutofireController AutoFireController { get; set; } // TODO: private setter, add a method that takes both controllers in
|
||||
|
||||
// the "output" port for the controller chain.
|
||||
public CopyControllerAdapter ControllerOutput { get; } = new CopyControllerAdapter();
|
||||
|
|
|
@ -6,7 +6,7 @@ using BizHawk.Emulation.Common;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// Filters input for things called Up and Down while considering the client's AllowUD_LR option.
|
||||
/// Filters input for things called Up and Down while considering the client's AllowUD_LR option.
|
||||
/// This is a bit gross but it is unclear how to do it more nicely
|
||||
/// </summary>
|
||||
public class UdlrControllerAdapter : IInputAdapter
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace BizHawk.Client.Common
|
|||
[Description("Functions related specifically to Nes Cores")]
|
||||
public sealed class NESLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
// TODO:
|
||||
// TODO:
|
||||
// perhaps with the new core config system, one could
|
||||
// automatically bring out all of the settings to a lua table, with names. that
|
||||
// would be completely arbitrary and would remove the whole requirement for this mess
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace BizHawk.Client.Common
|
|||
// RetroEdit: I don't like how this is cycles per second instead of FPS.
|
||||
// It probably should be moved to a separate place.
|
||||
["GB_Clock"] = 2097152.0,
|
||||
["GBA"] = 262144.0 / 4389.0, // 59.7275005696
|
||||
["GBA"] = 262144.0 / 4389.0, // 59.7275005696
|
||||
["GEN"] = 53693175 / (3420.0 * 262),
|
||||
["GEN_PAL"] = 53203424 / (3420.0 * 313),
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace BizHawk.Client.Common
|
|||
message += subParts[i] + ' ';
|
||||
}
|
||||
|
||||
Add(new Subtitle
|
||||
Add(new Subtitle
|
||||
{
|
||||
Frame = int.Parse(subParts[1]),
|
||||
X = int.Parse(subParts[2]),
|
||||
|
|
|
@ -134,7 +134,7 @@ namespace BizHawk.Client.Common.movie.import
|
|||
|
||||
if (player == 1)
|
||||
{
|
||||
controllers["Pause"] =
|
||||
controllers["Pause"] =
|
||||
(((controllerState >> 6) & 0x1) != 0 && !isGameGear)
|
||||
|| (((controllerState >> 7) & 0x1) != 0 && isGameGear);
|
||||
}
|
||||
|
|
|
@ -152,7 +152,7 @@ namespace BizHawk.Client.Common
|
|||
// 024: UInt32 cheatListOffset
|
||||
|
||||
// 028: UInt32 cdRomIdOffset
|
||||
// Source format is just the first up-to-8 alphanumeric characters of the CD label,
|
||||
// Source format is just the first up-to-8 alphanumeric characters of the CD label,
|
||||
// so not so useful.
|
||||
br.ReadBytes(20);
|
||||
|
||||
|
@ -172,7 +172,7 @@ namespace BizHawk.Client.Common
|
|||
var settings = new Octoshock.SyncSettings();
|
||||
var controllers = new SimpleController();
|
||||
settings.FIOConfig.Devices8 = new[]
|
||||
{
|
||||
{
|
||||
info.Player1Type,
|
||||
OctoshockDll.ePeripheralType.None, OctoshockDll.ePeripheralType.None, OctoshockDll.ePeripheralType.None,
|
||||
info.Player2Type,
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace BizHawk.Client.Common
|
|||
ZwinderStateManagerSettings Settings { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Requests that the current emulator state be captured
|
||||
/// Requests that the current emulator state be captured
|
||||
/// Unless force is true, the state may or may not be captured depending on the logic employed by "green-zone" management
|
||||
/// </summary>
|
||||
void Capture(int frame, IStatable source, bool force = false);
|
||||
|
|
|
@ -8,7 +8,7 @@ using BizHawk.Common;
|
|||
namespace BizHawk.Client.Common
|
||||
{
|
||||
internal class TempFileStateDictionary : IDictionary<int, byte[]>, IDisposable
|
||||
{
|
||||
{
|
||||
private readonly IDictionary<int, Stream> _streams = new Dictionary<int, Stream>();
|
||||
|
||||
public byte[] this[int key]
|
||||
|
|
|
@ -356,7 +356,7 @@ namespace BizHawk.Client.Common
|
|||
state.GetReadStream().CopyTo(s);
|
||||
AddStateCache(state.Frame);
|
||||
},
|
||||
index2 =>
|
||||
index2 =>
|
||||
{
|
||||
var state2 = _recent.GetState(index2);
|
||||
StateCache.Remove(state2.Frame);
|
||||
|
|
|
@ -354,7 +354,7 @@ namespace BizHawk.Client.Common
|
|||
private sealed class SaveStateStream : Stream, ISpanStream
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="backingStore">The ringbuffer to write into</param>
|
||||
/// <param name="offset">Offset into the buffer to start writing (and treat as position 0 in the stream)</param>
|
||||
|
|
|
@ -223,7 +223,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public bool IsActive(MemoryDomain domain, long address)
|
||||
{
|
||||
return _cheatList.Any(cheat =>
|
||||
return _cheatList.Any(cheat =>
|
||||
!cheat.IsSeparator &&
|
||||
cheat.Enabled &&
|
||||
cheat.Domain == domain
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
void Restart();
|
||||
|
||||
/// <summary>
|
||||
/// This gives the opportunity for the tool dialog to ask the user to save changes (such is necessary when
|
||||
/// This gives the opportunity for the tool dialog to ask the user to save changes (such is necessary when
|
||||
/// This tool dialog edits a file. Returning false will tell the client the user wants to cancel the given action,
|
||||
/// Return false to tell the client to back out of an action (such as closing the emulator)
|
||||
/// </summary>
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace BizHawk.Client.DiscoHawk
|
|||
|
||||
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start(e.LinkText);
|
||||
System.Diagnostics.Process.Start(e.LinkText);
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace BizHawk.Client.DiscoHawk
|
|||
public partial class MainDiscoForm : Form
|
||||
{
|
||||
// Release TODO:
|
||||
// An input (queue) list
|
||||
// An input (queue) list
|
||||
// An outputted list showing new file name
|
||||
// Progress bar should show file being converted
|
||||
// Add disc button, which puts it on the progress cue (converts it)
|
||||
|
|
|
@ -184,10 +184,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
// this writer will never support this capability
|
||||
|
||||
// but it needs to for syncless recorder, otherwise it won't work at all
|
||||
if (W is SynclessRecorder)
|
||||
// but it needs to for syncless recorder, otherwise it won't work at all
|
||||
if (W is SynclessRecorder)
|
||||
{
|
||||
W.SetFrame(frame);
|
||||
W.SetFrame(frame);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ using BizHawk.Emulation.Common;
|
|||
// some helpful p/invoke from http://www.codeproject.com/KB/audio-video/Motion_Detection.aspx?msg=1142967
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
[VideoWriter("vfwavi", "AVI writer",
|
||||
[VideoWriter("vfwavi", "AVI writer",
|
||||
"Uses the Microsoft AVIFIL32 system to write .avi files. Audio is uncompressed; Video can be compressed with any installed VCM codec. Splits on 2G and resolution change.")]
|
||||
internal class AviWriter : IVideoWriter
|
||||
{
|
||||
|
|
|
@ -173,7 +173,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
config.FFmpegFormat = ret.ToString();
|
||||
if (ret.Custom)
|
||||
{
|
||||
ret.Commandline =
|
||||
ret.Commandline =
|
||||
config.FFmpegCustomCommand =
|
||||
dlg.textBox1.Text;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
CoreNameLabel.Text = attributes.CoreName;
|
||||
|
||||
if (!string.IsNullOrEmpty(attributes.Author))
|
||||
{
|
||||
{
|
||||
CoreAuthorLabel.Text = $"authors: {attributes.Author}";
|
||||
}
|
||||
else
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace BizHawk.Client.EmuHawk.CustomControls
|
|||
public void Dispose()
|
||||
{
|
||||
// Nothing to do
|
||||
// Other drawing methods need a way to dispose on demand, hence the need for
|
||||
// Other drawing methods need a way to dispose on demand, hence the need for
|
||||
// this dummy class
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
string txt = txtException.Text;
|
||||
Clipboard.SetText(txt);
|
||||
try
|
||||
try
|
||||
{
|
||||
if (Clipboard.GetText() == txt)
|
||||
{
|
||||
|
|
|
@ -310,7 +310,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
public bool AllowColumnReorder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether the entire row will always be selected
|
||||
/// Gets or sets a value indicating whether the entire row will always be selected
|
||||
/// </summary>
|
||||
[Category("Appearance")]
|
||||
[DefaultValue(false)]
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
new SpecialBindingInfo { BindingName = "WMouse L", TooltipText = "Binds the left mouse button" },
|
||||
new SpecialBindingInfo { BindingName = "WMouse M", TooltipText = "Binds the middle mouse button" },
|
||||
new SpecialBindingInfo { BindingName = "WMouse R", TooltipText = "Binds the right mouse button" },
|
||||
new SpecialBindingInfo { BindingName = "WMouse 1", TooltipText = "Binds the mouse auxiliary button 1" },
|
||||
new SpecialBindingInfo { BindingName = "WMouse 1", TooltipText = "Binds the mouse auxiliary button 1" },
|
||||
new SpecialBindingInfo { BindingName = "WMouse 2", TooltipText = "Binds the mouse auxiliary button 2" }
|
||||
};
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
using (var brush = new SolidBrush(_checkBackColor))
|
||||
pevent.Graphics.FillRectangle(brush, glyphLoc);
|
||||
|
||||
// draw a checkbox menu glyph (we could do this more elegantly with DrawFrameControl)
|
||||
// draw a checkbox menu glyph (we could do this more elegantly with DrawFrameControl)
|
||||
bool c = CheckState == CheckState.Checked;
|
||||
if (ForceChecked.HasValue)
|
||||
{
|
||||
|
|
|
@ -684,7 +684,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
for (int i = 1; i < zoom;i++)
|
||||
{
|
||||
//would not be good to run this per frame, but it seems to only run when the resolution changes, etc.
|
||||
Vector2[] trials =
|
||||
Vector2[] trials =
|
||||
{
|
||||
PS + new Vector2(1, 0),
|
||||
PS + new Vector2(0, 1),
|
||||
|
|
|
@ -138,7 +138,7 @@ namespace BizHawk.Client.EmuHawk.ToolExtensions
|
|||
|
||||
//in any case, make a menuitem to let you remove the item
|
||||
var tsmiRemovePath = new ToolStripMenuItem { Text = "&Remove" };
|
||||
tsmiRemovePath.Click += (o, ev) => {
|
||||
tsmiRemovePath.Click += (o, ev) => {
|
||||
recent.Remove(path);
|
||||
};
|
||||
tsdd.Items.Add(tsmiRemovePath);
|
||||
|
|
|
@ -180,7 +180,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
AllowWrap = false // must be an independent resource
|
||||
};
|
||||
var bb = new BitmapBuffer(tw.SDBitmap, blow);
|
||||
var bb = new BitmapBuffer(tw.SDBitmap, blow);
|
||||
return bb;
|
||||
}
|
||||
|
||||
|
@ -220,7 +220,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// ret.M42 = dims.Height;
|
||||
// return ret;
|
||||
//}
|
||||
//else
|
||||
//else
|
||||
return Matrix4.Identity;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
bool WantsToControlReadOnly { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Function that is called by Mainform instead of using its own code
|
||||
/// Function that is called by Mainform instead of using its own code
|
||||
/// when a Tool sets WantsToControlReadOnly.
|
||||
/// Should not be called directly.
|
||||
/// </summary>
|
||||
|
@ -35,7 +35,7 @@
|
|||
bool WantsToControlStopMovie { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Function that is called by Mainform instead of using its own code
|
||||
/// Function that is called by Mainform instead of using its own code
|
||||
/// when a Tool sets WantsToControlStopMovie.
|
||||
/// Should not be called directly.
|
||||
/// <remarks>Like MainForm's StopMovie(), saving the movie is part of this function's responsibility.</remarks>
|
||||
|
|
|
@ -132,7 +132,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Adapter.FirstInitAll(mainFormHandle);
|
||||
_updateThread = new Thread(UpdateThreadProc)
|
||||
{
|
||||
IsBackground = true,
|
||||
IsBackground = true,
|
||||
Priority = ThreadPriority.AboveNormal // why not? this thread shouldn't be very heavy duty, and we want it to be responsive
|
||||
};
|
||||
_updateThread.Start();
|
||||
|
@ -223,7 +223,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (EnableIgnoreModifiers && currentModifier != ModifierKey.None) return;
|
||||
if (_lastState[button] == newState) return;
|
||||
|
||||
// apply
|
||||
// apply
|
||||
// NOTE: this is not quite right. if someone held leftshift+rightshift it would be broken. seems unlikely, though.
|
||||
if (currentModifier != ModifierKey.None)
|
||||
{
|
||||
|
|
|
@ -178,7 +178,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
SaveMovieMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save Movie"].Bindings;
|
||||
|
||||
PlayMovieMenuItem.Enabled
|
||||
= ImportMoviesMenuItem.Enabled
|
||||
= ImportMoviesMenuItem.Enabled
|
||||
= RecentMovieSubMenu.Enabled
|
||||
= !Tools.IsLoaded<TAStudio>();
|
||||
|
||||
|
@ -1715,7 +1715,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
N64PluginSettingsMenuItem.Enabled =
|
||||
N64ControllerSettingsMenuItem.Enabled =
|
||||
N64ExpansionSlotMenuItem.Enabled =
|
||||
N64ExpansionSlotMenuItem.Enabled =
|
||||
MovieSession.Movie.NotActive();
|
||||
|
||||
N64CircularAnalogRangeMenuItem.Checked = Config.N64UseCircularAnalogConstraint;
|
||||
|
|
|
@ -223,15 +223,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
/*
|
||||
* Refactor, moving the loading of particular files into separate functions that can
|
||||
* then be used by this code, and loading individual files through the file dialogue.
|
||||
*
|
||||
*
|
||||
* Step 1:
|
||||
* Build a dictionary of relevant files from everything that was dragged and dropped.
|
||||
* This includes peeking into all relevant archives and using their files.
|
||||
*
|
||||
*
|
||||
* Step 2:
|
||||
* Perhaps ask the user which of a particular file type they want to use.
|
||||
* Example: rom1.nes, rom2.smc, rom3.cue are drag-dropped, ask the user which they want to use.
|
||||
*
|
||||
*
|
||||
* Step 3:
|
||||
* Load all of the relevant files, in priority order:
|
||||
* 1) The ROM
|
||||
|
@ -242,7 +242,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
* 6) LUA scripts
|
||||
* 7) Cheat files
|
||||
* 8) Movie Playback Files
|
||||
*
|
||||
*
|
||||
* Bonus:
|
||||
* Make that order easy to change in the code, heavily suggesting ROM and playback as first and last respectively.
|
||||
*/
|
||||
|
|
|
@ -33,10 +33,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
case "Hard Reset":
|
||||
HardReset();
|
||||
break;
|
||||
case "Quick Load":
|
||||
case "Quick Load":
|
||||
LoadQuickSave($"QuickSave{Config.SaveSlot}");
|
||||
break;
|
||||
case "Quick Save":
|
||||
case "Quick Save":
|
||||
SaveQuickSave($"QuickSave{Config.SaveSlot}");
|
||||
break;
|
||||
case "Clear Autohold":
|
||||
|
@ -96,7 +96,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
MainMenuStrip.Visible ^= true;
|
||||
break;
|
||||
case "Volume Up":
|
||||
VolumeUp();
|
||||
VolumeUp();
|
||||
break;
|
||||
case "Volume Down":
|
||||
VolumeDown();
|
||||
|
@ -140,17 +140,17 @@ namespace BizHawk.Client.EmuHawk
|
|||
break;
|
||||
|
||||
// Save States
|
||||
case "Save State 0":
|
||||
case "Save State 0":
|
||||
SaveQuickSave("QuickSave0");
|
||||
Config.SaveSlot = 0;
|
||||
UpdateStatusSlots();
|
||||
break;
|
||||
case "Save State 1":
|
||||
case "Save State 1":
|
||||
SaveQuickSave("QuickSave1");
|
||||
Config.SaveSlot = 1;
|
||||
UpdateStatusSlots();
|
||||
break;
|
||||
case "Save State 2":
|
||||
case "Save State 2":
|
||||
SaveQuickSave("QuickSave2");
|
||||
Config.SaveSlot = 2;
|
||||
UpdateStatusSlots();
|
||||
|
@ -292,16 +292,16 @@ namespace BizHawk.Client.EmuHawk
|
|||
PlayMovieMenuItem_Click(null, null);
|
||||
break;
|
||||
case "Record Movie":
|
||||
RecordMovieMenuItem_Click(null, null);
|
||||
RecordMovieMenuItem_Click(null, null);
|
||||
break;
|
||||
case "Stop Movie":
|
||||
StopMovie();
|
||||
break;
|
||||
case "Play from beginning":
|
||||
RestartMovie();
|
||||
RestartMovie();
|
||||
break;
|
||||
case "Save Movie":
|
||||
SaveMovie();
|
||||
SaveMovie();
|
||||
break;
|
||||
|
||||
// Tools
|
||||
|
|
|
@ -134,7 +134,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
.ToList();
|
||||
try
|
||||
{
|
||||
int foundIndex = enabled.FindIndex(tuple =>
|
||||
int foundIndex = enabled.FindIndex(tuple =>
|
||||
tuple.Item1 == requestedExtToolDll
|
||||
|| Path.GetFileName(tuple.Item1) == requestedExtToolDll
|
||||
|| Path.GetFileNameWithoutExtension(tuple.Item1) == requestedExtToolDll);
|
||||
|
@ -1010,7 +1010,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// ordinarily, an alt release with nothing else would move focus to the MenuBar. but that is sort of useless, and hard to implement exactly right.
|
||||
}
|
||||
|
||||
// zero 09-sep-2012 - all input is eligible for controller input. not sure why the above was done.
|
||||
// zero 09-sep-2012 - all input is eligible for controller input. not sure why the above was done.
|
||||
// maybe because it doesn't make sense to me to bind hotkeys and controller inputs to the same keystrokes
|
||||
|
||||
bool handled;
|
||||
|
@ -1297,7 +1297,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
// Work around an AMD driver bug in >= vista:
|
||||
// It seems windows will activate opengl fullscreen mode when a GL control is occupying the exact space of a screen (0,0 and dimensions=screensize)
|
||||
// AMD cards manifest a problem under these circumstances, flickering other monitors.
|
||||
// AMD cards manifest a problem under these circumstances, flickering other monitors.
|
||||
// It isn't clear whether nvidia cards are failing to employ this optimization, or just not flickering.
|
||||
// (this could be determined with more work; other side affects of the fullscreen mode include: corrupted TaskBar, no modal boxes on top of GL control, no screenshots)
|
||||
// At any rate, we can solve this by adding a 1px black border around the GL control
|
||||
|
@ -1307,7 +1307,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
&& Config.DispMethod == EDispMethod.OpenGL)
|
||||
{
|
||||
// ATTENTION: this causes the StatusBar to not work well, since the backcolor is now set to black instead of SystemColors.Control.
|
||||
// It seems that some StatusBar elements composite with the backcolor.
|
||||
// It seems that some StatusBar elements composite with the backcolor.
|
||||
// Maybe we could add another control under the StatusBar. with a different backcolor
|
||||
Padding = new Padding(1);
|
||||
BackColor = Color.Black;
|
||||
|
@ -4688,7 +4688,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
_singleInstanceServer.EndWaitForConnection(iAsyncResult);
|
||||
|
||||
//a bit over-engineered in case someone wants to send a script or a rom or something
|
||||
//buffer size is set to something tiny so that we are continually testing it
|
||||
//buffer size is set to something tiny so that we are continually testing it
|
||||
var payloadBytes = new MemoryStream();
|
||||
while (true)
|
||||
{
|
||||
|
|
|
@ -270,7 +270,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
fixed (int* dstp = dst)
|
||||
{
|
||||
using (new SimpleTime("Blit"))
|
||||
{
|
||||
{
|
||||
Blit(new BMP
|
||||
{
|
||||
Data = (int*)srcp,
|
||||
|
@ -316,7 +316,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
fixed (byte* dstp = dst)
|
||||
{
|
||||
using (new SimpleTime("Blit"))
|
||||
{
|
||||
{
|
||||
Blit(new BMP
|
||||
{
|
||||
Data = srcp,
|
||||
|
|
|
@ -269,7 +269,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// try compiling it
|
||||
bool ok = false;
|
||||
string errors = "";
|
||||
try
|
||||
try
|
||||
{
|
||||
var filter = new RetroShaderChain(_gl, cgp, Path.GetDirectoryName(choice));
|
||||
ok = filter.Available;
|
||||
|
|
|
@ -16,7 +16,7 @@ using BizHawk.Emulation.Common;
|
|||
|
||||
// notes: eventually, we intend to have a "firmware acquisition interface" exposed to the emulator cores.
|
||||
// it will be implemented by EmuHawk, and use firmware keys to fetch the firmware content.
|
||||
// however, for now, the cores are using strings from the config class. so we have the `configMember` which is
|
||||
// however, for now, the cores are using strings from the config class. so we have the `configMember` which is
|
||||
// used by reflection to set the configuration for firmwares which were found
|
||||
|
||||
// TODO - we may eventually need to add a progress dialog for this. we should have one for other reasons.
|
||||
|
@ -119,7 +119,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
InitializeComponent();
|
||||
|
||||
tbbGroup.Image
|
||||
= tbbScan.Image
|
||||
= tbbScan.Image
|
||||
= tbbOrganize.Image
|
||||
= tbbImport.Image
|
||||
= tbbClose.Image
|
||||
|
@ -402,12 +402,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
try
|
||||
{
|
||||
File.Move(fpSource, fpTarget);
|
||||
File.Move(fpSource, fpTarget);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// sometimes moves fail. especially in newer versions of windows with explorers more fragile than your great-grandma.
|
||||
// I am embarrassed that I know that. about windows, not your great-grandma.
|
||||
// sometimes moves fail. especially in newer versions of windows with explorers more fragile than your great-grandma.
|
||||
// I am embarrassed that I know that. about windows, not your great-grandma.
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -715,7 +715,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (_cbAllowImport.Checked || Manager.CanFileBeImported(hf.CanonicalFullPath))
|
||||
{
|
||||
didSomething |= RunImportJobSingle(basePath, f, ref errors);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,8 +36,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void ColorPanel_Click(object sender, EventArgs e)
|
||||
{
|
||||
using var colorPicker = new ColorDialog
|
||||
{
|
||||
using var colorPicker = new ColorDialog
|
||||
{
|
||||
FullOpen = true, Color = Color.FromArgb(_selectedColor)
|
||||
};
|
||||
|
||||
|
|
|
@ -82,8 +82,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
int y = 12;
|
||||
foreach (var position in Positions)
|
||||
{
|
||||
var row = new MessageRow
|
||||
{
|
||||
var row = new MessageRow
|
||||
{
|
||||
Name = position.Key,
|
||||
Location = new Point(10, y)
|
||||
};
|
||||
|
@ -106,7 +106,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
int y = 20;
|
||||
foreach (var color in Colors)
|
||||
{
|
||||
var row = new ColorRow
|
||||
var row = new ColorRow
|
||||
{
|
||||
Name = color.Key,
|
||||
Location = new Point(10, y),
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
public bool Checked
|
||||
{
|
||||
get => RowRadio.Checked;
|
||||
set
|
||||
set
|
||||
{
|
||||
_programmaticallyUpdating = true;
|
||||
RowRadio.Checked = value;
|
||||
|
|
|
@ -130,7 +130,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
_config.PutCoreSettings<N64>(_s);
|
||||
_config.PutCoreSyncSettings<N64>(_ss);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void N64VideoPluginConfig_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
|
|
@ -81,7 +81,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
var s = psx.GetSettings();
|
||||
var ss = psx.GetSyncSettings();
|
||||
var vid = psx.SystemVidStandard;
|
||||
var size = psx.CurrentVideoSize;
|
||||
var size = psx.CurrentVideoSize;
|
||||
using var dlg = new PSXOptions(mainForm, config, s, ss, vid, size);
|
||||
|
||||
var result = mainForm.ShowDialogAsChild(dlg);
|
||||
|
|
|
@ -80,7 +80,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Port3ComboBox.SelectedItem = _possibleControllers.First();
|
||||
selectionValid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var j3 = Port3ComboBox.SelectedItem.ToString();
|
||||
if (j3 != _possibleControllers.First())
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
checkBoxShowCoreBrdColor.Checked = _settings.UseCoreBorderForBackground;
|
||||
|
||||
// OSD Message Verbosity
|
||||
var osdTypes = Enum.GetNames(typeof(ZXSpectrum.OSDVerbosity));
|
||||
var osdTypes = Enum.GetNames(typeof(ZXSpectrum.OSDVerbosity));
|
||||
foreach (var val in osdTypes)
|
||||
{
|
||||
osdMessageVerbositycomboBox1.Items.Add(val);
|
||||
|
|
|
@ -554,7 +554,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Run();
|
||||
_movieSession.ReadOnly = ReadOnlyCheckBox.Checked;
|
||||
|
||||
if (StopOnFrameCheckbox.Checked &&
|
||||
if (StopOnFrameCheckbox.Checked &&
|
||||
(StopOnFrameTextBox.ToRawInt().HasValue || LastFrameCheckbox.Checked))
|
||||
{
|
||||
_mainForm.PauseOnFrame = LastFrameCheckbox.Checked
|
||||
|
|
|
@ -255,7 +255,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
|
||||
// Upon Load State, TAStudio uses global ToolManager.UpdateBefore(); as well as global ToolManager.UpdateAfter();
|
||||
// Both of which will Call UpdateValues() and Update() which both end up in the Update() function. Calling Update() will cause the Log to add an additional log.
|
||||
// Both of which will Call UpdateValues() and Update() which both end up in the Update() function. Calling Update() will cause the Log to add an additional log.
|
||||
// By not handling both of those calls the _currentBotAttempt.Log.Count will be 2 more than expected.
|
||||
// However this also causes a problem with RamWatch not being up to date since that TOO gets called.
|
||||
// Need to find out if having RamWatch open while TasStudio is open causes issues.
|
||||
|
|
|
@ -8,7 +8,7 @@ using BizHawk.Client.Common;
|
|||
using BizHawk.Client.EmuHawk.Properties;
|
||||
using BizHawk.Client.EmuHawk.ToolExtensions;
|
||||
|
||||
// TODO - select which memorydomains go out to the CDL file. will this cause a problem when re-importing it?
|
||||
// TODO - select which memorydomains go out to the CDL file. will this cause a problem when re-importing it?
|
||||
// perhaps missing domains shouldn't fail a check
|
||||
// OR - just add a contextmenu option to the ListView item that selects it for export.
|
||||
// TODO - add a contextmenu option which warps to the HexEditor with the provided domain selected for visualizing on the hex editor.
|
||||
|
|
|
@ -113,11 +113,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
AddressBox.SetHexProperties(MemoryDomains.SystemBus.Size);
|
||||
}
|
||||
|
||||
ValueBox.ByteSize =
|
||||
ValueBox.ByteSize =
|
||||
CompareBox.ByteSize =
|
||||
WatchSize.Byte;
|
||||
|
||||
ValueBox.Type =
|
||||
ValueBox.Type =
|
||||
CompareBox.Type =
|
||||
WatchDisplayType.Hex;
|
||||
|
||||
|
@ -223,7 +223,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
PopulateTypeDropdown();
|
||||
|
||||
ValueBox.ByteSize =
|
||||
ValueBox.ByteSize =
|
||||
CompareBox.ByteSize =
|
||||
GetCurrentSize();
|
||||
}
|
||||
|
@ -373,7 +373,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
""
|
||||
});
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
CompareTypeDropDown.Items.AddRange(new object[]
|
||||
{
|
||||
|
|
|
@ -172,7 +172,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
GeneralUpdate();
|
||||
}
|
||||
|
||||
private void SetColumns()
|
||||
private void SetColumns()
|
||||
{
|
||||
CheatListView.AllColumns.AddRange(Settings.Columns);
|
||||
CheatListView.Refresh();
|
||||
|
|
|
@ -243,7 +243,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
return base.ProcessCmdKey(ref msg, keyData);
|
||||
}
|
||||
|
||||
private Control _currentToolTipControl = null;
|
||||
private Control _currentToolTipControl = null;
|
||||
|
||||
private void GenericDebugger_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
|
|
|
@ -302,7 +302,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
GoToAddress(found);
|
||||
_findStr = search;
|
||||
}
|
||||
else if (wrap == false)
|
||||
else if (wrap == false)
|
||||
{
|
||||
FindPrev(value, true); // Search the opposite direction if not found
|
||||
}
|
||||
|
@ -349,7 +349,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
GoToAddress(found);
|
||||
_findStr = search;
|
||||
}
|
||||
else if (wrap == false)
|
||||
else if (wrap == false)
|
||||
{
|
||||
FindPrev(value, true); // Search the opposite direction if not found
|
||||
}
|
||||
|
@ -2248,7 +2248,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
for (int j = 0; j < 4; j++)
|
||||
for (int j = 0; j < 4; j++)
|
||||
{
|
||||
ushort hi = _domain.PeekUshort(((addr+(i<<3)+(j<<1) )^0x0), bigEndian);
|
||||
ushort lo = _domain.PeekUshort(((addr+(i<<3)+(j<<1) + 32)^0x0), bigEndian);
|
||||
|
@ -2275,4 +2275,4 @@ namespace BizHawk.Client.EmuHawk
|
|||
DialogController.ShowMessageBox(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
[LuaMethod(
|
||||
"setLocation",
|
||||
"Sets the location of the canvas window")]
|
||||
public void SetLocation(int x, int y)
|
||||
public void SetLocation(int x, int y)
|
||||
{
|
||||
StartPosition = FormStartPosition.Manual;
|
||||
Left = x;
|
||||
|
|
|
@ -295,8 +295,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
Path = Path.GetDirectoryName(path),
|
||||
Filter = Path.GetFileName(path),
|
||||
NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
|
||||
| NotifyFilters.FileName | NotifyFilters.DirectoryName,
|
||||
NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName,
|
||||
EnableRaisingEvents = true
|
||||
};
|
||||
|
||||
|
@ -1259,11 +1258,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
RegisteredFunctionsContextItem.Enabled = LuaImp.RegisteredFunctions.Any();
|
||||
CopyContextItem.Enabled = OutputBox.SelectedText.Any();
|
||||
ClearConsoleContextItem.Enabled =
|
||||
SelectAllContextItem.Enabled =
|
||||
ClearConsoleContextItem.Enabled =
|
||||
SelectAllContextItem.Enabled =
|
||||
OutputBox.Text.Any();
|
||||
|
||||
ClearRegisteredFunctionsLogContextItem.Enabled =
|
||||
ClearRegisteredFunctionsLogContextItem.Enabled =
|
||||
LuaImp.RegisteredFunctions.Any();
|
||||
}
|
||||
|
||||
|
@ -1499,7 +1498,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
// For whatever reason an auto-complete TextBox doesn't respond to delete
|
||||
// Which is annoying but worse is that it let's the key propagate
|
||||
// If a script is highlighted in the ListView, and the user presses
|
||||
// If a script is highlighted in the ListView, and the user presses
|
||||
// delete, it will remove the script without this hack
|
||||
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private IMovie CurrentMovie => MovieSession.Movie;
|
||||
|
||||
// Still need to make sure the user can't load and use macros that
|
||||
// Still need to make sure the user can't load and use macros that
|
||||
// have options only available for TasMovie
|
||||
|
||||
private bool _initializing;
|
||||
|
|
|
@ -144,14 +144,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
if (Start > movie.InputLogLength)
|
||||
{
|
||||
{
|
||||
// Cannot place a frame here. Find a nice way around this.
|
||||
return;
|
||||
}
|
||||
|
||||
// Can't be done with a regular movie.
|
||||
if (!Replace && movie is ITasMovie tasMovie2)
|
||||
{
|
||||
{
|
||||
tasMovie2.InsertEmptyFrame(Start, Length);
|
||||
}
|
||||
|
||||
|
@ -169,7 +169,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
// Copy over the frame.
|
||||
for (int i = 0; i < Length; i++)
|
||||
{
|
||||
{
|
||||
_controller.SetFromMnemonic(_log[i]);
|
||||
LatchFromSourceButtons(_targetController, _controller);
|
||||
movie.PokeFrame(i + Start, _targetController);
|
||||
|
|
|
@ -63,9 +63,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
for (int x = 0; x < 16; x++)
|
||||
{
|
||||
if (BgPalettes[x].Value != BgPalettesPrev[x].Value)
|
||||
if (BgPalettes[x].Value != BgPalettesPrev[x].Value)
|
||||
return true;
|
||||
if (SpritePalettes[x].Value != SpritePalettesPrev[x].Value)
|
||||
if (SpritePalettes[x].Value != SpritePalettesPrev[x].Value)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -166,8 +166,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
// 32*16 samples, 16bit, mono, 8khz (but we'll change the sample rate)
|
||||
private static readonly byte[] EmptyWav = {
|
||||
0x52, 0x49, 0x46, 0x46, 0x24, 0x04, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
|
||||
0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0xE0, 0x2E, 0x00, 0x00, 0xC0, 0x5D, 0x00, 0x00,
|
||||
0x52, 0x49, 0x46, 0x46, 0x24, 0x04, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
|
||||
0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0xE0, 0x2E, 0x00, 0x00, 0xC0, 0x5D, 0x00, 0x00,
|
||||
0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x04, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
for (int i = 0; i < 256; i++)
|
||||
{
|
||||
if ((i & 15) == 0)
|
||||
dest += inc;
|
||||
dest += inc;
|
||||
*dest++ = pal[*src++];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -938,7 +938,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
if (currMapEntryState != null)
|
||||
{
|
||||
//view a BG tile
|
||||
//view a BG tile
|
||||
int paletteStart = 0;
|
||||
var bgs = currMapEntryState;
|
||||
var oneTileEntry = new[] { bgs.entry };
|
||||
|
@ -978,7 +978,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
else if (currTileDataState.Type == eDisplayType.TilesMode7DC)
|
||||
gd.RenderMode7TilesToScreen((int*)bmpdata.Scan0, bmpdata.Stride / 4, false, true, 1, currTileDataState.Tile, 1);
|
||||
else if (currTileDataState.Type == eDisplayType.OBJTiles0 || currTileDataState.Type == eDisplayType.OBJTiles1)
|
||||
{
|
||||
{
|
||||
//render an obj tile
|
||||
int tile = currTileDataState.Address / 32;
|
||||
gd.RenderTilesToScreen((int*)bmpdata.Scan0, 1, 1, bmpdata.Stride / 4, bpp, currPaletteSelection.start, tile, 1);
|
||||
|
@ -1356,5 +1356,5 @@ namespace BizHawk.Client.EmuHawk
|
|||
checkEN3_OBJ.Checked ^= true;
|
||||
}
|
||||
|
||||
} //class SNESGraphicsDebugger
|
||||
} //class SNESGraphicsDebugger
|
||||
} //namespace BizHawk.Client.EmuHawk
|
||||
|
|
|
@ -144,7 +144,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// Highlight the branch cell a little, if hovering over it
|
||||
if (BranchView.CurrentCell.IsDataCell()
|
||||
&& BranchView.CurrentCell.Column.Name == BranchNumberColumnName &&
|
||||
column.Name == BranchNumberColumnName &&
|
||||
column.Name == BranchNumberColumnName &&
|
||||
index == BranchView.CurrentCell.RowIndex)
|
||||
{
|
||||
color = Color.FromArgb((byte)(color.A - 24), (byte)(color.R - 24), (byte)(color.G - 24), (byte)(color.B - 24));
|
||||
|
@ -229,7 +229,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
UpdateBranchContextMenuItem.Enabled =
|
||||
LoadBranchContextMenuItem.Enabled =
|
||||
EditBranchTextContextMenuItem.Enabled =
|
||||
JumpToBranchContextMenuItem.Enabled =
|
||||
JumpToBranchContextMenuItem.Enabled =
|
||||
BranchView.SelectedRows.Count() == 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -1034,7 +1034,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// If going backwards, delete!
|
||||
bool shouldInsert = true;
|
||||
if (startVal < _rightClickFrame)
|
||||
{
|
||||
{
|
||||
// Cloning to a previous frame makes no sense.
|
||||
startVal = _rightClickFrame - 1;
|
||||
}
|
||||
|
|
|
@ -334,7 +334,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
CloneFramesXTimesMenuItem.Enabled =
|
||||
TruncateMenuItem.Enabled =
|
||||
InsertFrameMenuItem.Enabled =
|
||||
InsertNumFramesMenuItem.Enabled =
|
||||
InsertNumFramesMenuItem.Enabled =
|
||||
TasView.AnyRowsSelected;
|
||||
|
||||
ReselectClipboardMenuItem.Enabled =
|
||||
|
|
|
@ -291,7 +291,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
return;
|
||||
}
|
||||
|
||||
if (!CurrentTasMovie.Changes || Settings.AutosaveInterval == 0
|
||||
if (!CurrentTasMovie.Changes || Settings.AutosaveInterval == 0
|
||||
|| CurrentTasMovie.Filename == DefaultTasProjName())
|
||||
{
|
||||
return;
|
||||
|
@ -957,7 +957,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (fromLua)
|
||||
{
|
||||
bool wasPaused = MainForm.EmulatorPaused;
|
||||
bool wasPaused = MainForm.EmulatorPaused;
|
||||
|
||||
// why not use this? because I'm not letting the form freely run. it all has to be under this loop.
|
||||
// i could use this and then poll StepRunLoop_Core() repeatedly, but.. that's basically what I'm doing
|
||||
|
@ -1157,7 +1157,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void TAStudio_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
// TODO: Maybe this should call Mainform's DragDrop method,
|
||||
// TODO: Maybe this should call Mainform's DragDrop method,
|
||||
// since that can file types that are not movies,
|
||||
// and it can process multiple files sequentially
|
||||
var filePaths = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
|
|
|
@ -269,7 +269,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
var closeMenuItem = new ToolStripMenuItem
|
||||
{
|
||||
Name = "CloseBtn",
|
||||
Name = "CloseBtn",
|
||||
Text = "&Close",
|
||||
ShortcutKeyDisplayString = "Alt+F4"
|
||||
};
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace BizHawk.Common
|
|||
|
||||
public static implicit operator Bit(int rhs)
|
||||
{
|
||||
Debug.Assert((rhs & ~1) == 0);
|
||||
Debug.Assert((rhs & ~1) == 0);
|
||||
return new Bit((uint)rhs);
|
||||
}
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ namespace BizHawk.Common
|
|||
var startIndex = _list.BinarySearch(item);
|
||||
if (startIndex < 0)
|
||||
{
|
||||
// If BinarySearch doesn't find the item,
|
||||
// If BinarySearch doesn't find the item,
|
||||
// it returns the bitwise complement of the index of the next element
|
||||
// that is larger than item
|
||||
startIndex = ~startIndex;
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace BizHawk.Common
|
|||
//LogFilename = "d:/bizhawk.log";
|
||||
//EnableDomain("CD");
|
||||
//EnableDomain("CPU");
|
||||
//EnableDomain("VDC");
|
||||
//EnableDomain("VDC");
|
||||
//EnableDomain("MEM");
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace BizHawk.Emulation.Common
|
|||
/// that the core object itself implements. In addition it provides
|
||||
/// a Register() method to allow the core to pass in any additional services
|
||||
/// </summary>
|
||||
/// <seealso cref="IEmulatorServiceProvider"/>
|
||||
/// <seealso cref="IEmulatorServiceProvider"/>
|
||||
public class BasicServiceProvider : IEmulatorServiceProvider
|
||||
{
|
||||
private readonly Dictionary<Type, object> _services = new Dictionary<Type, object>();
|
||||
|
@ -46,7 +46,7 @@ namespace BizHawk.Emulation.Common
|
|||
/// <summary>the core can call this to register an additional service</summary>
|
||||
/// <typeparam name="T">The <see cref="IEmulatorService"/> to register</typeparam>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="provider"/> is null</exception>
|
||||
public void Register<T>(T provider)
|
||||
public void Register<T>(T provider)
|
||||
where T : IEmulatorService
|
||||
{
|
||||
if (provider == null)
|
||||
|
|
|
@ -11,10 +11,10 @@ namespace BizHawk.Emulation.Common
|
|||
/// This allows for a traceable implementation without the need for additional API
|
||||
/// Note that this technique will always be significantly slower than a direct implementation
|
||||
/// </summary>
|
||||
/// <seealso cref="ITraceable"/>
|
||||
/// <seealso cref="IDebuggable"/>
|
||||
/// <seealso cref="IMemoryDomains"/>
|
||||
/// <seealso cref="IDisassemblable"/>
|
||||
/// <seealso cref="ITraceable"/>
|
||||
/// <seealso cref="IDebuggable"/>
|
||||
/// <seealso cref="IMemoryDomains"/>
|
||||
/// <seealso cref="IDisassemblable"/>
|
||||
public abstract class CallbackBasedTraceBuffer : ITraceable
|
||||
{
|
||||
/// <exception cref="InvalidOperationException"><paramref name="debuggableCore"/> does not provide memory callback support or does not implement <see cref="IDebuggable.GetCpuFlagsAndRegisters"/></exception>
|
||||
|
|
|
@ -8,8 +8,8 @@ namespace BizHawk.Emulation.Common
|
|||
/// <summary>
|
||||
/// The base implementation of ICodeDataLog
|
||||
/// </summary>
|
||||
/// <seealso cref="ICodeDataLogger" />
|
||||
/// <seealso cref="ICodeDataLog" />
|
||||
/// <seealso cref="ICodeDataLogger" />
|
||||
/// <seealso cref="ICodeDataLog" />
|
||||
public class CodeDataLog : Dictionary<string, byte[]>, ICodeDataLog
|
||||
{
|
||||
public CodeDataLog()
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace BizHawk.Emulation.Common
|
|||
/// <summary>
|
||||
/// Defines the schema for all the currently available controls for an IEmulator instance
|
||||
/// </summary>
|
||||
/// <seealso cref="IEmulator" />
|
||||
/// <seealso cref="IEmulator" />
|
||||
public class ControllerDefinition
|
||||
{
|
||||
public ControllerDefinition()
|
||||
|
|
|
@ -10,8 +10,8 @@ namespace BizHawk.Emulation.Common
|
|||
/// Useful for ported cores that have these hooks but no input callback hook,
|
||||
/// This allows for an input callback implementation without the need for additional APIs
|
||||
/// </summary>
|
||||
/// <seealso cref="IInputCallbackSystem"/>
|
||||
/// <seealso cref="IDebuggable"/>
|
||||
/// <seealso cref="IInputCallbackSystem"/>
|
||||
/// <seealso cref="IDebuggable"/>
|
||||
public class MemoryBasedInputCallbackSystem : IInputCallbackSystem
|
||||
{
|
||||
private readonly List<Action> _inputCallbacks = new List<Action>();
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace BizHawk.Emulation.Common
|
|||
get => _position;
|
||||
set
|
||||
{
|
||||
if (value < 0 || value > _d.Size)
|
||||
if (value < 0 || value > _d.Size)
|
||||
throw new IOException("Position out of range");
|
||||
_position = value;
|
||||
}
|
||||
|
|
|
@ -202,7 +202,7 @@ namespace BizHawk.Emulation.Common
|
|||
// http://forum.fobby.net/index.php?t=msg&goto=2763 [f]
|
||||
// http://www.psxdev.net/forum/viewtopic.php?f=69&t=56 [p]
|
||||
// https://en.wikipedia.org/wiki/PlayStation_models#Comparison_of_models [w]
|
||||
// https://github.com/petrockblog/RetroPie-Setup/wiki/PCSX-Core-Playstation-1 [g]
|
||||
// https://github.com/petrockblog/RetroPie-Setup/wiki/PCSX-Core-Playstation-1 [g]
|
||||
// http://redump.org/datfile/psx-bios/ also
|
||||
// http://emulation.gametechwiki.com/index.php/File_Hashes [t]
|
||||
var ps_10j = File("343883A7B555646DA8CEE54AADD2795B6E7DD070", 524288, "PSX_1.0(J).bin", "PSX BIOS (Version 1.0 J)", "Used on SCPH-1000, DTL-H1000 [g]. This is Rev for A hardware [w].");
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue