added namespaces
This commit is contained in:
parent
d8513ef867
commit
d1993751f6
|
@ -10,7 +10,7 @@ namespace hqn
|
||||||
int32_t *_initF_VideoPalette()
|
int32_t *_initF_VideoPalette()
|
||||||
{
|
{
|
||||||
static int32_t VideoPalette[512];
|
static int32_t VideoPalette[512];
|
||||||
const Nes_Emu::rgb_t *palette = Nes_Emu::nes_colors;
|
const emulator_t::rgb_t *palette = emulator_t::nes_colors;
|
||||||
for (int i = 0; i < 512; i++)
|
for (int i = 0; i < 512; i++)
|
||||||
{
|
{
|
||||||
VideoPalette[i] = palette[i].red << 16 | palette[i].green << 8
|
VideoPalette[i] = palette[i].red << 16 | palette[i].green << 8
|
||||||
|
@ -25,7 +25,7 @@ const int32_t *HQNState::NES_VIDEO_PALETTE = _initF_VideoPalette();
|
||||||
// Constructor
|
// Constructor
|
||||||
HQNState::HQNState()
|
HQNState::HQNState()
|
||||||
{
|
{
|
||||||
m_emu = new Nes_Emu();
|
m_emu = new emulator_t();
|
||||||
joypad[0] = 0x00;
|
joypad[0] = 0x00;
|
||||||
joypad[1] = 0x00;
|
joypad[1] = 0x00;
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ error_t HQNState::setSampleRate(int rate)
|
||||||
{
|
{
|
||||||
const char *ret = m_emu->set_sample_rate(rate);
|
const char *ret = m_emu->set_sample_rate(rate);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
m_emu->set_equalizer(Nes_Emu::nes_eq);
|
m_emu->set_equalizer(emulator_t::nes_eq);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,17 @@
|
||||||
|
|
||||||
#define BLIT_SIZE 65536
|
#define BLIT_SIZE 65536
|
||||||
|
|
||||||
|
// Creating emulator instance
|
||||||
|
#ifdef _USE_QUICKNES
|
||||||
|
typedef Nes_Emu emulator_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _USE_QUICKERNES
|
||||||
|
typedef quickerNES::Nes_Emu emulator_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace hqn
|
namespace hqn
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -36,7 +47,7 @@ class HQNState
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/* A reference to the emulator instance. */
|
/* A reference to the emulator instance. */
|
||||||
Nes_Emu *m_emu;
|
emulator_t *m_emu;
|
||||||
|
|
||||||
static const int32_t *NES_VIDEO_PALETTE;
|
static const int32_t *NES_VIDEO_PALETTE;
|
||||||
|
|
||||||
|
@ -46,7 +57,7 @@ public:
|
||||||
HQNState();
|
HQNState();
|
||||||
~HQNState();
|
~HQNState();
|
||||||
|
|
||||||
void setEmulatorPointer(void* const emuPtr) { m_emu = (Nes_Emu*)emuPtr; }
|
void setEmulatorPointer(void* const emuPtr) { m_emu = (emulator_t*)emuPtr; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The joypad data for the two joypads available to an NES.
|
The joypad data for the two joypads available to an NES.
|
||||||
|
@ -55,7 +66,7 @@ public:
|
||||||
uint32_t joypad[2];
|
uint32_t joypad[2];
|
||||||
|
|
||||||
/* Get the emulator this state uses. */
|
/* Get the emulator this state uses. */
|
||||||
inline Nes_Emu *emu() const
|
inline emulator_t *emu() const
|
||||||
{ return m_emu; }
|
{ return m_emu; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,7 +157,7 @@ inline void saveBlit(const void *ePtr, int32_t *dest, const int32_t *colors, int
|
||||||
{
|
{
|
||||||
// what is the point of the 256 color bitmap and the dynamic color allocation to it?
|
// what is the point of the 256 color bitmap and the dynamic color allocation to it?
|
||||||
// why not just render directly to a 512 color bitmap with static palette positions?
|
// why not just render directly to a 512 color bitmap with static palette positions?
|
||||||
// Nes_Emu *e = m_emu; // e was a parameter but since this is now part of a class, it's just in here
|
// emulator_t *e = m_emu; // e was a parameter but since this is now part of a class, it's just in here
|
||||||
// const int srcpitch = e->frame().pitch;
|
// const int srcpitch = e->frame().pitch;
|
||||||
// const unsigned char *src = e->frame().pixels;
|
// const unsigned char *src = e->frame().pixels;
|
||||||
// const unsigned char *const srcend = src + (e->image_height - cropbottom) * srcpitch;
|
// const unsigned char *const srcend = src + (e->image_height - cropbottom) * srcpitch;
|
||||||
|
@ -166,16 +177,16 @@ inline void saveBlit(const void *ePtr, int32_t *dest, const int32_t *colors, int
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
const Nes_Emu *e = (Nes_Emu*) ePtr;
|
const emulator_t *e = (emulator_t*) ePtr;
|
||||||
const unsigned char *in_pixels = e->frame().pixels;
|
const unsigned char *in_pixels = e->frame().pixels;
|
||||||
if (in_pixels == NULL) return;
|
if (in_pixels == NULL) return;
|
||||||
int32_t *out_pixels = dest;
|
int32_t *out_pixels = dest;
|
||||||
|
|
||||||
for (unsigned h = 0; h < Nes_Emu::image_height; h++, in_pixels += e->frame().pitch, out_pixels += Nes_Emu::image_width)
|
for (unsigned h = 0; h < emulator_t::image_height; h++, in_pixels += e->frame().pitch, out_pixels += emulator_t::image_width)
|
||||||
for (unsigned w = 0; w < Nes_Emu::image_width; w++)
|
for (unsigned w = 0; w < emulator_t::image_width; w++)
|
||||||
{
|
{
|
||||||
unsigned col = e->frame().palette[in_pixels[w]];
|
unsigned col = e->frame().palette[in_pixels[w]];
|
||||||
const Nes_Emu::rgb_t& rgb = e->nes_colors[col];
|
const emulator_t::rgb_t& rgb = e->nes_colors[col];
|
||||||
unsigned r = rgb.red;
|
unsigned r = rgb.red;
|
||||||
unsigned g = rgb.green;
|
unsigned g = rgb.green;
|
||||||
unsigned b = rgb.blue;
|
unsigned b = rgb.blue;
|
||||||
|
|
|
@ -11,7 +11,14 @@
|
||||||
|
|
||||||
#define _INVERSE_FRAME_RATE 16667
|
#define _INVERSE_FRAME_RATE 16667
|
||||||
|
|
||||||
class Nes_Emu;
|
// Creating emulator instance
|
||||||
|
#ifdef _USE_QUICKNES
|
||||||
|
typedef Nes_Emu emulator_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _USE_QUICKERNES
|
||||||
|
typedef quickerNES::Nes_Emu emulator_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
struct stepData_t
|
struct stepData_t
|
||||||
{
|
{
|
||||||
|
@ -43,8 +50,8 @@ class PlaybackInstance
|
||||||
|
|
||||||
// Loading Emulator instance HQN
|
// Loading Emulator instance HQN
|
||||||
_hqnState.setEmulatorPointer(_emu->getInternalEmulatorPointer());
|
_hqnState.setEmulatorPointer(_emu->getInternalEmulatorPointer());
|
||||||
static uint8_t video_buffer[Nes_Emu::image_width * Nes_Emu::image_height];
|
static uint8_t video_buffer[emulator_t::image_width * emulator_t::image_height];
|
||||||
_hqnState.m_emu->set_pixels(video_buffer, Nes_Emu::image_width + 8);
|
_hqnState.m_emu->set_pixels(video_buffer, emulator_t::image_width + 8);
|
||||||
|
|
||||||
// Building sequence information
|
// Building sequence information
|
||||||
for (const auto &input : sequence)
|
for (const auto &input : sequence)
|
||||||
|
|
|
@ -90,7 +90,7 @@ int main(int argc, char *argv[])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _USE_QUICKERNES
|
#ifdef _USE_QUICKERNES
|
||||||
auto e = QuickerNESInstance();
|
auto e = quickerNES::QuickerNESInstance();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Loading ROM File
|
// Loading ROM File
|
||||||
|
|
|
@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Cart
|
class Nes_Cart
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -110,3 +113,5 @@ class Nes_Cart
|
||||||
long chr_size_;
|
long chr_size_;
|
||||||
unsigned mapper;
|
unsigned mapper;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -22,6 +22,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Cart;
|
class Nes_Cart;
|
||||||
|
|
||||||
#undef NES_EMU_CPU_HOOK
|
#undef NES_EMU_CPU_HOOK
|
||||||
|
@ -598,7 +601,7 @@ class Nes_Core : private Nes_Cpu
|
||||||
|
|
||||||
// extra byte allows CPU to always read operand of instruction, which
|
// extra byte allows CPU to always read operand of instruction, which
|
||||||
// might go past end of data
|
// might go past end of data
|
||||||
uint8_t unmapped_page[::Nes_Cpu::page_size + 1];
|
uint8_t unmapped_page[Nes_Cpu::page_size + 1];
|
||||||
};
|
};
|
||||||
impl_t *impl; // keep large arrays separate
|
impl_t *impl; // keep large arrays separate
|
||||||
unsigned long error_count;
|
unsigned long error_count;
|
||||||
|
@ -1043,3 +1046,5 @@ inline void Nes_Core::cpu_write(nes_addr_t addr, int data, nes_time_t time)
|
||||||
else \
|
else \
|
||||||
static_cast<Nes_Core &>(*cpu).cpu_write(addr, data, time); \
|
static_cast<Nes_Core &>(*cpu).cpu_write(addr, data, time); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -22,6 +22,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
#define st_n 0x80
|
#define st_n 0x80
|
||||||
#define st_v 0x40
|
#define st_v 0x40
|
||||||
#define st_r 0x20
|
#define st_r 0x20
|
||||||
|
@ -1163,4 +1166,6 @@ uint8_t clock_table [256] = {
|
||||||
3,5,2,8,4,4,6,6,2,4,2,7,4,4,7,7,// D
|
3,5,2,8,4,4,6,6,2,4,2,7,4,4,7,7,// D
|
||||||
2,6,2,8,3,3,5,5,2,2,2,2,4,4,6,6,// E
|
2,6,2,8,3,3,5,5,2,2,2,2,4,4,6,6,// E
|
||||||
3,5,2,8,4,4,6,6,2,4,2,7,4,4,7,7 // F
|
3,5,2,8,4,4,6,6,2,4,2,7,4,4,7,7 // F
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
typedef long nes_time_t; // clock cycle count
|
typedef long nes_time_t; // clock cycle count
|
||||||
typedef unsigned nes_addr_t; // 16-bit address
|
typedef unsigned nes_addr_t; // 16-bit address
|
||||||
|
|
||||||
|
@ -136,3 +139,5 @@ class Nes_Cpu
|
||||||
return (uint8_t *)code_map[addr >> page_bits] + addr;
|
return (uint8_t *)code_map[addr >> page_bits] + addr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -15,6 +15,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
int const sound_fade_size = 384;
|
int const sound_fade_size = 384;
|
||||||
|
|
||||||
Nes_Emu::equalizer_t const Nes_Emu::nes_eq = { -1.0, 80 };
|
Nes_Emu::equalizer_t const Nes_Emu::nes_eq = { -1.0, 80 };
|
||||||
|
@ -441,3 +444,5 @@ void Nes_Emu::RestoreAudioBufferState()
|
||||||
sound_buf_changed_count = extra_sound_buf_changed_count;
|
sound_buf_changed_count = extra_sound_buf_changed_count;
|
||||||
sound_buf->RestoreAudioBufferState();
|
sound_buf->RestoreAudioBufferState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -8,6 +8,9 @@
|
||||||
#include "Nes_Core.hpp"
|
#include "Nes_Core.hpp"
|
||||||
#include "apu/Multi_Buffer.hpp"
|
#include "apu/Multi_Buffer.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_State;
|
class Nes_State;
|
||||||
|
|
||||||
class Nes_Emu
|
class Nes_Emu
|
||||||
|
@ -281,3 +284,5 @@ inline long Nes_Emu::chr_size() const
|
||||||
{
|
{
|
||||||
return cart()->chr_size() ? cart()->chr_size() : emu.ppu.chr_addr_size;
|
return cart()->chr_size() ? cart()->chr_size() : emu.ppu.chr_addr_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -18,6 +18,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
int const buffer_extra = blip_widest_impulse_ + 2;
|
int const buffer_extra = blip_widest_impulse_ + 2;
|
||||||
|
|
||||||
Blip_Buffer::Blip_Buffer()
|
Blip_Buffer::Blip_Buffer()
|
||||||
|
@ -415,3 +418,5 @@ void Blip_Buffer::RestoreAudioBufferState()
|
||||||
reader_accum = extra_reader_accum;
|
reader_accum = extra_reader_accum;
|
||||||
memcpy(buffer_, extra_buffer, sizeof(extra_buffer));
|
memcpy(buffer_, extra_buffer, sizeof(extra_buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -1,10 +1,10 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
// Band-limited sound synthesis and buffering
|
// Band-limited sound synthesis and buffering
|
||||||
|
|
||||||
// Blip_Buffer 0.4.0
|
// Blip_Buffer 0.4.0
|
||||||
|
|
||||||
#ifndef BLIP_BUFFER_H
|
namespace quickerNES
|
||||||
#define BLIP_BUFFER_H
|
{
|
||||||
|
|
||||||
// Time unit at source clock rate
|
// Time unit at source clock rate
|
||||||
typedef long blip_time_t;
|
typedef long blip_time_t;
|
||||||
|
@ -377,4 +377,4 @@ inline int Blip_Reader::begin(Blip_Buffer &blip_buf)
|
||||||
int const blip_max_length = 0;
|
int const blip_max_length = 0;
|
||||||
int const blip_default_length = 250;
|
int const blip_default_length = 250;
|
||||||
|
|
||||||
#endif
|
} // namespace quickNES
|
|
@ -14,6 +14,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
typedef long fixed_t;
|
typedef long fixed_t;
|
||||||
|
|
||||||
#define TO_FIXED(f) fixed_t((f) * (1L << 15) + 0.5)
|
#define TO_FIXED(f) fixed_t((f) * (1L << 15) + 0.5)
|
||||||
|
@ -511,3 +514,5 @@ void Effects_Buffer::mix_enhanced(blip_sample_t *out, long count)
|
||||||
l2.end(bufs[5]);
|
l2.end(bufs[5]);
|
||||||
r2.end(bufs[6]);
|
r2.end(bufs[6]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -6,6 +6,9 @@
|
||||||
#include "Multi_Buffer.hpp"
|
#include "Multi_Buffer.hpp"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// Effects_Buffer uses several buffers and outputs stereo sample pairs.
|
// Effects_Buffer uses several buffers and outputs stereo sample pairs.
|
||||||
class Effects_Buffer : public Multi_Buffer
|
class Effects_Buffer : public Multi_Buffer
|
||||||
{
|
{
|
||||||
|
@ -97,3 +100,5 @@ inline Effects_Buffer::channel_t Effects_Buffer::channel(int i)
|
||||||
{
|
{
|
||||||
return channels[i % chan_count];
|
return channels[i % chan_count];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -15,6 +15,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
Multi_Buffer::Multi_Buffer(int spf) : samples_per_frame_(spf)
|
Multi_Buffer::Multi_Buffer(int spf) : samples_per_frame_(spf)
|
||||||
{
|
{
|
||||||
length_ = 0;
|
length_ = 0;
|
||||||
|
@ -280,3 +283,5 @@ void Stereo_Buffer::RestoreAudioBufferState()
|
||||||
center()->RestoreAudioBufferState();
|
center()->RestoreAudioBufferState();
|
||||||
right()->RestoreAudioBufferState();
|
right()->RestoreAudioBufferState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -6,6 +6,9 @@
|
||||||
|
|
||||||
#include "Blip_Buffer.hpp"
|
#include "Blip_Buffer.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// Interface to one or more Blip_Buffers mapped to one or more channels
|
// Interface to one or more Blip_Buffers mapped to one or more channels
|
||||||
// consisting of left, center, and right buffers.
|
// consisting of left, center, and right buffers.
|
||||||
class Multi_Buffer
|
class Multi_Buffer
|
||||||
|
@ -195,3 +198,5 @@ inline void Mono_Buffer::bass_freq(int freq) { buf.bass_freq(freq); }
|
||||||
inline long Mono_Buffer::read_samples(blip_sample_t *p, long s) { return buf.read_samples(p, s); }
|
inline long Mono_Buffer::read_samples(blip_sample_t *p, long s) { return buf.read_samples(p, s); }
|
||||||
|
|
||||||
inline long Mono_Buffer::samples_avail() const { return buf.samples_avail(); }
|
inline long Mono_Buffer::samples_avail() const { return buf.samples_avail(); }
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -14,6 +14,9 @@ details. You should have received a copy of the GNU Lesser General Public
|
||||||
License along with this library; if not, write to the Free Software
|
License along with this library; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// Nes_Buffer
|
// Nes_Buffer
|
||||||
|
|
||||||
Nes_Buffer::Nes_Buffer() : Multi_Buffer(1) {}
|
Nes_Buffer::Nes_Buffer() : Multi_Buffer(1) {}
|
||||||
|
@ -229,3 +232,5 @@ void Nes_Nonlinearizer::RestoreAudioBufferState()
|
||||||
accum = extra_accum;
|
accum = extra_accum;
|
||||||
prev = extra_prev;
|
prev = extra_prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -6,6 +6,9 @@
|
||||||
#include "Multi_Buffer.hpp"
|
#include "Multi_Buffer.hpp"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Apu;
|
class Nes_Apu;
|
||||||
|
|
||||||
class Nes_Nonlinearizer
|
class Nes_Nonlinearizer
|
||||||
|
@ -75,3 +78,5 @@ class Nes_Buffer : public Multi_Buffer
|
||||||
virtual void SaveAudioBufferState();
|
virtual void SaveAudioBufferState();
|
||||||
virtual void RestoreAudioBufferState();
|
virtual void RestoreAudioBufferState();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -15,6 +15,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
Nes_Effects_Buffer::Nes_Effects_Buffer() : Effects_Buffer(true) // nes never uses stereo channels
|
Nes_Effects_Buffer::Nes_Effects_Buffer() : Effects_Buffer(true) // nes never uses stereo channels
|
||||||
{
|
{
|
||||||
config_t c;
|
config_t c;
|
||||||
|
@ -85,3 +88,5 @@ void Nes_Effects_Buffer::SaveAudioBufferState()
|
||||||
void Nes_Effects_Buffer::RestoreAudioBufferState()
|
void Nes_Effects_Buffer::RestoreAudioBufferState()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -6,6 +6,9 @@
|
||||||
#include "Effects_Buffer.hpp"
|
#include "Effects_Buffer.hpp"
|
||||||
#include "Nes_Buffer.hpp"
|
#include "Nes_Buffer.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// Effects_Buffer uses several buffers and outputs stereo sample pairs.
|
// Effects_Buffer uses several buffers and outputs stereo sample pairs.
|
||||||
class Nes_Effects_Buffer : public Effects_Buffer
|
class Nes_Effects_Buffer : public Effects_Buffer
|
||||||
{
|
{
|
||||||
|
@ -34,3 +37,5 @@ class Nes_Effects_Buffer : public Effects_Buffer
|
||||||
Nes_Nonlinearizer nonlin;
|
Nes_Nonlinearizer nonlin;
|
||||||
friend Multi_Buffer *set_apu(Nes_Effects_Buffer *, Nes_Apu *);
|
friend Multi_Buffer *set_apu(Nes_Effects_Buffer *, Nes_Apu *);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -14,6 +14,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// Nes_Osc
|
// Nes_Osc
|
||||||
|
|
||||||
void Nes_Osc::clock_length(int halt_mask)
|
void Nes_Osc::clock_length(int halt_mask)
|
||||||
|
@ -675,3 +678,5 @@ void Nes_Noise::run(nes_time_t time, nes_time_t end_time)
|
||||||
|
|
||||||
delay = time - end_time;
|
delay = time - end_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -6,6 +6,9 @@
|
||||||
|
|
||||||
#include "Blip_Buffer.hpp"
|
#include "Blip_Buffer.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Apu;
|
class Nes_Apu;
|
||||||
|
|
||||||
typedef long nes_time_t; // CPU clock cycle count
|
typedef long nes_time_t; // CPU clock cycle count
|
||||||
|
@ -165,3 +168,5 @@ struct Nes_Dmc : Nes_Osc
|
||||||
int count_reads(nes_time_t, nes_time_t *) const;
|
int count_reads(nes_time_t, nes_time_t *) const;
|
||||||
nes_time_t next_read_time() const;
|
nes_time_t next_read_time() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -13,6 +13,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
int const amp_range = 15;
|
int const amp_range = 15;
|
||||||
|
|
||||||
Nes_Apu::Nes_Apu() : square1(&square_synth),
|
Nes_Apu::Nes_Apu() : square1(&square_synth),
|
||||||
|
@ -368,3 +371,5 @@ int Nes_Apu::read_status(nes_time_t time)
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,9 +3,12 @@
|
||||||
// NES 2A03 APU sound chip emulator
|
// NES 2A03 APU sound chip emulator
|
||||||
// Nes_Snd_Emu 0.1.7
|
// Nes_Snd_Emu 0.1.7
|
||||||
|
|
||||||
#include "Nes_Oscs.hpp"
|
|
||||||
#include <climits>
|
#include <climits>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "Nes_Oscs.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Apu
|
class Nes_Apu
|
||||||
{
|
{
|
||||||
|
@ -355,4 +358,6 @@ inline void Nes_Apu::load_state(apu_state_t const &state)
|
||||||
triangle.run(last_time, last_time);
|
triangle.run(last_time, last_time);
|
||||||
noise.run(last_time, last_time);
|
noise.run(last_time, last_time);
|
||||||
dmc.run(last_time, last_time);
|
dmc.run(last_time, last_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -15,6 +15,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
void Nes_Fme7_Apu::reset()
|
void Nes_Fme7_Apu::reset()
|
||||||
{
|
{
|
||||||
last_time = 0;
|
last_time = 0;
|
||||||
|
@ -101,3 +104,5 @@ void Nes_Fme7_Apu::run_until(blip_time_t end_time)
|
||||||
|
|
||||||
last_time = end_time;
|
last_time = end_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,8 +3,11 @@
|
||||||
// Sunsoft FME-7 sound emulator
|
// Sunsoft FME-7 sound emulator
|
||||||
// Nes_Emu 0.7.0
|
// Nes_Emu 0.7.0
|
||||||
|
|
||||||
#include "apu/Blip_Buffer.hpp"
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "apu/Blip_Buffer.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct fme7_apu_state_t
|
struct fme7_apu_state_t
|
||||||
{
|
{
|
||||||
|
@ -148,3 +151,5 @@ inline void Nes_Fme7_Apu::load_state(fme7_apu_state_t const &in)
|
||||||
// Run sound channels for 0 cycles for clean audio after loading state
|
// Run sound channels for 0 cycles for clean audio after loading state
|
||||||
run_until(last_time);
|
run_until(last_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
||||||
|
|
|
@ -15,6 +15,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
Nes_Namco_Apu::Nes_Namco_Apu()
|
Nes_Namco_Apu::Nes_Namco_Apu()
|
||||||
{
|
{
|
||||||
output(0);
|
output(0);
|
||||||
|
@ -176,3 +179,5 @@ void Nes_Namco_Apu::load_state(namco_state_t const &in)
|
||||||
|
|
||||||
run_until(last_time);
|
run_until(last_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,8 +3,11 @@
|
||||||
// Namco 106 sound chip emulator
|
// Namco 106 sound chip emulator
|
||||||
// Nes_Snd_Emu 0.1.7
|
// Nes_Snd_Emu 0.1.7
|
||||||
|
|
||||||
#include "apu/apu.hpp"
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "apu/apu.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct namco_state_t
|
struct namco_state_t
|
||||||
{
|
{
|
||||||
|
@ -108,3 +111,5 @@ inline void Nes_Namco_Apu::write_data(nes_time_t time, int data)
|
||||||
run_until(time);
|
run_until(time);
|
||||||
access() = data;
|
access() = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -14,6 +14,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
Nes_Vrc6_Apu::Nes_Vrc6_Apu()
|
Nes_Vrc6_Apu::Nes_Vrc6_Apu()
|
||||||
{
|
{
|
||||||
output(0);
|
output(0);
|
||||||
|
@ -208,3 +211,5 @@ void Nes_Vrc6_Apu::run_saw(nes_time_t end_time)
|
||||||
|
|
||||||
osc.last_amp = last_amp;
|
osc.last_amp = last_amp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -4,9 +4,12 @@
|
||||||
// Konami VRC6 sound chip emulator
|
// Konami VRC6 sound chip emulator
|
||||||
// Nes_Snd_Emu 0.1.7
|
// Nes_Snd_Emu 0.1.7
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
#include "apu/Blip_Buffer.hpp"
|
#include "apu/Blip_Buffer.hpp"
|
||||||
#include "apu/apu.hpp"
|
#include "apu/apu.hpp"
|
||||||
#include <cstdint>
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc6_apu_state_t;
|
struct vrc6_apu_state_t;
|
||||||
|
|
||||||
|
@ -105,3 +108,5 @@ inline void Nes_Vrc6_Apu::treble_eq(blip_eq_t const &eq)
|
||||||
saw_synth.treble_eq(eq);
|
saw_synth.treble_eq(eq);
|
||||||
square_synth.treble_eq(eq);
|
square_synth.treble_eq(eq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -1,6 +1,9 @@
|
||||||
|
#include <cstring>
|
||||||
#include "apu/vrc7/apu.hpp"
|
#include "apu/vrc7/apu.hpp"
|
||||||
#include "apu/vrc7/emu2413.hpp"
|
#include "apu/vrc7/emu2413.hpp"
|
||||||
#include <cstring>
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
#define BYTESWAP(xxxx) \
|
#define BYTESWAP(xxxx) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -204,3 +207,5 @@ void Nes_Vrc7::update_last_amp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -4,9 +4,12 @@
|
||||||
// Konami VRC7 sound chip emulator
|
// Konami VRC7 sound chip emulator
|
||||||
// Nes_Snd_Emu 0.1.7. Copyright (C) 2003-2005 Shay Green. GNU LGPL license.
|
// Nes_Snd_Emu 0.1.7. Copyright (C) 2003-2005 Shay Green. GNU LGPL license.
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
#include "apu/Blip_Buffer.hpp"
|
#include "apu/Blip_Buffer.hpp"
|
||||||
#include "apu/vrc7/emu2413_state.hpp"
|
#include "apu/vrc7/emu2413_state.hpp"
|
||||||
#include <cstdint>
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc7_snapshot_t;
|
struct vrc7_snapshot_t;
|
||||||
typedef long nes_time_t;
|
typedef long nes_time_t;
|
||||||
|
@ -72,3 +75,5 @@ inline void Nes_Vrc7::osc_output(int i, Blip_Buffer *buf)
|
||||||
{
|
{
|
||||||
oscs[i].output = buf;
|
oscs[i].output = buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -61,6 +61,9 @@ if the origin of this software is not misrepresented.
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
static const unsigned char default_inst[15][8] = {
|
static const unsigned char default_inst[15][8] = {
|
||||||
/* 2019-03-19 VRC7 instrument patchset dumped by Nuke.YKT */
|
/* 2019-03-19 VRC7 instrument patchset dumped by Nuke.YKT */
|
||||||
/* https://wiki.nesdev.com/w/index.php/VRC7_audio */
|
/* https://wiki.nesdev.com/w/index.php/VRC7_audio */
|
||||||
|
@ -1148,3 +1151,5 @@ void OPLL_writeIO(OPLL *opll, e_uint32 adr, e_uint32 val)
|
||||||
else
|
else
|
||||||
opll->adr = val;
|
opll->adr = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -1,5 +1,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
typedef signed int e_int;
|
typedef signed int e_int;
|
||||||
typedef unsigned int e_uint;
|
typedef unsigned int e_uint;
|
||||||
typedef signed char e_int8;
|
typedef signed char e_int8;
|
||||||
|
@ -216,3 +219,5 @@ extern "C"
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -1,6 +1,9 @@
|
||||||
#include "emu2413_state.hpp"
|
#include "emu2413_state.hpp"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
|
@ -109,3 +112,5 @@ extern "C"
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
#include "emu2413.hpp"
|
#include "emu2413.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
e_int32 feedback;
|
e_int32 feedback;
|
||||||
|
@ -33,4 +36,6 @@ extern "C"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -76,6 +76,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
#include "mappers/mapper244.hpp"
|
#include "mappers/mapper244.hpp"
|
||||||
#include "mappers/mapper246.hpp"
|
#include "mappers/mapper246.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
Nes_Mapper::Nes_Mapper()
|
Nes_Mapper::Nes_Mapper()
|
||||||
{
|
{
|
||||||
emu_ = NULL;
|
emu_ = NULL;
|
||||||
|
@ -286,4 +289,6 @@ Nes_Mapper *Nes_Mapper::getMapperFromCode(const int mapperCode)
|
||||||
if (mapperCode == 246) mapper = new Mapper246();
|
if (mapperCode == 246) mapper = new Mapper246();
|
||||||
|
|
||||||
return mapper;
|
return mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -7,6 +7,9 @@
|
||||||
#include "Nes_Cpu.hpp"
|
#include "Nes_Cpu.hpp"
|
||||||
#include <climits>
|
#include <climits>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Blip_Buffer;
|
class Blip_Buffer;
|
||||||
class blip_eq_t;
|
class blip_eq_t;
|
||||||
class Nes_Core;
|
class Nes_Core;
|
||||||
|
@ -205,3 +208,5 @@ inline void Nes_Mapper::register_state(void *p, unsigned s)
|
||||||
inline bool Nes_Mapper::write_intercepted(nes_time_t, nes_addr_t, int) { return false; }
|
inline bool Nes_Mapper::write_intercepted(nes_time_t, nes_addr_t, int) { return false; }
|
||||||
|
|
||||||
inline int Nes_Mapper::read(nes_time_t, nes_addr_t) { return -1; } // signal to caller
|
inline int Nes_Mapper::read(nes_time_t, nes_addr_t) { return -1; } // signal to caller
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// NROM
|
// NROM
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper000 : public Nes_Mapper
|
class Mapper000 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -31,3 +34,5 @@ class Mapper000 : public Nes_Mapper
|
||||||
// empty
|
// empty
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -16,6 +16,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// MMC1
|
// MMC1
|
||||||
|
|
||||||
struct mmc1_state_t
|
struct mmc1_state_t
|
||||||
|
@ -122,3 +125,5 @@ class Mapper001 : public Nes_Mapper, mmc1_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -17,6 +17,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// UNROM
|
// UNROM
|
||||||
|
|
||||||
class Mapper002 : public Nes_Mapper
|
class Mapper002 : public Nes_Mapper
|
||||||
|
@ -41,3 +44,5 @@ class Mapper002 : public Nes_Mapper
|
||||||
set_prg_bank(0x8000, bank_16k, data);
|
set_prg_bank(0x8000, bank_16k, data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -17,6 +17,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// CNROM
|
// CNROM
|
||||||
|
|
||||||
class Mapper003 : public Nes_Mapper
|
class Mapper003 : public Nes_Mapper
|
||||||
|
@ -40,3 +43,5 @@ class Mapper003 : public Nes_Mapper
|
||||||
set_chr_bank(0, bank_8k, bank & 7);
|
set_chr_bank(0, bank_8k, bank & 7);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -18,6 +18,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// 264 or less breaks Gargoyle's Quest II
|
// 264 or less breaks Gargoyle's Quest II
|
||||||
// 267 or less breaks Magician
|
// 267 or less breaks Magician
|
||||||
int const irq_fine_tune = 268;
|
int const irq_fine_tune = 268;
|
||||||
|
@ -251,3 +254,5 @@ class Mapper004 : public Nes_Mapper, mmc3_state_t
|
||||||
nes_time_t next_time;
|
nes_time_t next_time;
|
||||||
int counter_just_clocked; // used only for debugging
|
int counter_just_clocked; // used only for debugging
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct mmc5_state_t
|
struct mmc5_state_t
|
||||||
{
|
{
|
||||||
enum
|
enum
|
||||||
|
@ -145,3 +148,5 @@ class Mapper005 : public Nes_Mapper, mmc5_state_t
|
||||||
|
|
||||||
nes_time_t irq_time;
|
nes_time_t irq_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -17,6 +17,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// AOROM
|
// AOROM
|
||||||
|
|
||||||
class Mapper007 : public Nes_Mapper
|
class Mapper007 : public Nes_Mapper
|
||||||
|
@ -48,3 +51,5 @@ class Mapper007 : public Nes_Mapper
|
||||||
set_prg_bank(0x8000, bank_32k, bank & 7);
|
set_prg_bank(0x8000, bank_32k, bank & 7);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,6 +3,9 @@
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// MMC2
|
// MMC2
|
||||||
|
|
||||||
class Mapper009 : public Nes_Mapper
|
class Mapper009 : public Nes_Mapper
|
||||||
|
@ -74,3 +77,5 @@ class Mapper009 : public Nes_Mapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -2,6 +2,9 @@
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// MMC4
|
// MMC4
|
||||||
|
|
||||||
class Mapper010 : public Nes_Mapper
|
class Mapper010 : public Nes_Mapper
|
||||||
|
@ -72,3 +75,5 @@ class Mapper010 : public Nes_Mapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -17,6 +17,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
// Color Dreams
|
// Color Dreams
|
||||||
|
|
||||||
class Mapper011 : public Nes_Mapper
|
class Mapper011 : public Nes_Mapper
|
||||||
|
@ -48,3 +51,5 @@ class Mapper011 : public Nes_Mapper
|
||||||
set_chr_bank(0, bank_8k, bank >> 4);
|
set_chr_bank(0, bank_8k, bank >> 4);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct Mapper015_state_t
|
struct Mapper015_state_t
|
||||||
{
|
{
|
||||||
uint8_t prg_bank[4];
|
uint8_t prg_bank[4];
|
||||||
|
@ -90,3 +93,5 @@ class Mapper015 : public Nes_Mapper, Mapper015_state_t
|
||||||
|
|
||||||
unsigned long int i;
|
unsigned long int i;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -20,6 +20,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// to do: CHR mapping and nametable handling needs work
|
// to do: CHR mapping and nametable handling needs work
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct namco106_state_t
|
struct namco106_state_t
|
||||||
{
|
{
|
||||||
uint8_t regs[16];
|
uint8_t regs[16];
|
||||||
|
@ -195,3 +198,5 @@ class Mapper019 : public Nes_Mapper, namco106_state_t
|
||||||
Nes_Namco_Apu sound;
|
Nes_Namco_Apu sound;
|
||||||
nes_time_t last_time;
|
nes_time_t last_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -28,6 +28,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc2_state_t
|
struct vrc2_state_t
|
||||||
{
|
{
|
||||||
uint8_t prg_banks[2];
|
uint8_t prg_banks[2];
|
||||||
|
@ -252,3 +255,5 @@ void Mapper_VRC2_4<type_a, type_b>::write_irq(nes_time_t time,
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef Mapper_VRC2_4<true, true> Mapper021;
|
typedef Mapper_VRC2_4<true, true> Mapper021;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -29,4 +29,9 @@
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
#include "mappers/mapper021.hpp"
|
#include "mappers/mapper021.hpp"
|
||||||
|
|
||||||
typedef Mapper_VRC2_4<false, true> Mapper022;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_VRC2_4<false, true> Mapper022;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -28,4 +28,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
typedef Mapper_VRC2_4<false, false> Mapper023;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_VRC2_4<false, false> Mapper023;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -18,6 +18,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc6_state_t
|
struct vrc6_state_t
|
||||||
{
|
{
|
||||||
// written registers
|
// written registers
|
||||||
|
@ -228,4 +231,6 @@ class Mapper_Vrc6 : public Nes_Mapper, vrc6_state_t
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef Mapper_Vrc6<0> Mapper024;
|
typedef Mapper_Vrc6<0> Mapper024;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -28,4 +28,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
typedef Mapper_VRC2_4<true, false> Mapper025;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_VRC2_4<true, false> Mapper025;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -6,4 +6,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
typedef Mapper_Vrc6<3> Mapper026;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_Vrc6<3> Mapper026;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -31,6 +31,9 @@
|
||||||
|
|
||||||
// Unrom512
|
// Unrom512
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper030 : public Nes_Mapper
|
class Mapper030 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -49,3 +52,5 @@ class Mapper030 : public Nes_Mapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct mapper32_state_t
|
struct mapper32_state_t
|
||||||
{
|
{
|
||||||
uint8_t chr_bank[8];
|
uint8_t chr_bank[8];
|
||||||
|
@ -122,3 +125,5 @@ class Mapper032 : public Nes_Mapper, mapper32_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct tc0190_state_t
|
struct tc0190_state_t
|
||||||
{
|
{
|
||||||
uint8_t preg[2];
|
uint8_t preg[2];
|
||||||
|
@ -99,3 +102,5 @@ class Mapper033 : public Nes_Mapper, tc0190_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// Nina-1 (Deadly Towers only)
|
// Nina-1 (Deadly Towers only)
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper034 : public Nes_Mapper
|
class Mapper034 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
|
@ -40,3 +43,5 @@ class Mapper034 : public Nes_Mapper
|
||||||
set_prg_bank(0x8000, bank_32k, bank);
|
set_prg_bank(0x8000, bank_32k, bank);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -21,6 +21,9 @@
|
||||||
|
|
||||||
// NROM-128 4-in-1 multicart
|
// NROM-128 4-in-1 multicart
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper060 : public Nes_Mapper
|
class Mapper060 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -49,3 +52,5 @@ class Mapper060 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t game_sel, last_game;
|
uint8_t game_sel, last_game;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// GNROM
|
// GNROM
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper066 : public Nes_Mapper
|
class Mapper066 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
|
@ -48,3 +51,5 @@ class Mapper066 : public Nes_Mapper
|
||||||
set_chr_bank(0, bank_8k, bank & 3);
|
set_chr_bank(0, bank_8k, bank & 3);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct fme7_state_t
|
struct fme7_state_t
|
||||||
{
|
{
|
||||||
// first 16 bytes in register order
|
// first 16 bytes in register order
|
||||||
|
@ -186,3 +189,5 @@ class Mapper069 : public Nes_Mapper, fme7_state_t
|
||||||
nes_time_t last_time;
|
nes_time_t last_time;
|
||||||
Nes_Fme7_Apu sound;
|
Nes_Fme7_Apu sound;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
// Mapper_74x161x162x32
|
// Mapper_74x161x162x32
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
template <int mapperId>
|
template <int mapperId>
|
||||||
class Mapper_74x161x162x32 : public Nes_Mapper
|
class Mapper_74x161x162x32 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
|
@ -79,4 +82,6 @@ class Mapper_74x161x162x32 : public Nes_Mapper
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef Mapper_74x161x162x32<70> Mapper070;
|
typedef Mapper_74x161x162x32<70> Mapper070;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// Camerica
|
// Camerica
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper071 : public Nes_Mapper
|
class Mapper071 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
uint8_t regs[3];
|
uint8_t regs[3];
|
||||||
|
@ -50,3 +53,5 @@ class Mapper071 : public Nes_Mapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc3_state_t
|
struct vrc3_state_t
|
||||||
{
|
{
|
||||||
bool irq_enable;
|
bool irq_enable;
|
||||||
|
@ -131,8 +134,4 @@ class Mapper073 : public Nes_Mapper, vrc3_state_t
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// void register_vrc3_mapper();
|
} // namespace quickNES
|
||||||
// void register_vrc3_mapper()
|
|
||||||
// {
|
|
||||||
// register_mapper< Mapper073> ( 73 );
|
|
||||||
// }
|
|
|
@ -19,6 +19,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc1_state_t
|
struct vrc1_state_t
|
||||||
{
|
{
|
||||||
uint8_t prg_banks[3];
|
uint8_t prg_banks[3];
|
||||||
|
@ -106,3 +109,5 @@ class Mapper075 : public Nes_Mapper, vrc1_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -4,6 +4,9 @@
|
||||||
|
|
||||||
// Holy Diver and Uchuusen - Cosmo Carrier.
|
// Holy Diver and Uchuusen - Cosmo Carrier.
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper078 : public Nes_Mapper
|
class Mapper078 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
// lower 8 bits are the reg at 8000:ffff
|
// lower 8 bits are the reg at 8000:ffff
|
||||||
|
@ -73,3 +76,5 @@ class Mapper078 : public Nes_Mapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
template <bool multicart>
|
template <bool multicart>
|
||||||
class Mapper_AveNina : public Nes_Mapper
|
class Mapper_AveNina : public Nes_Mapper
|
||||||
{
|
{
|
||||||
|
@ -91,3 +94,5 @@ void Mapper_AveNina<multicart>::write_regs()
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef Mapper_AveNina<false> Mapper079;
|
typedef Mapper_AveNina<false> Mapper079;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -17,6 +17,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct vrc7_state_t
|
struct vrc7_state_t
|
||||||
{
|
{
|
||||||
// written registers
|
// written registers
|
||||||
|
@ -221,3 +224,5 @@ class Mapper085 : public Nes_Mapper, vrc7_state_t
|
||||||
timer_period = 113 * 4 + 3
|
timer_period = 113 * 4 + 3
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -21,4 +21,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef Mapper_74x161x162x32<86> Mapper086;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_74x161x162x32<86> Mapper086;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -18,6 +18,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// Jaleco/Konami/Taito
|
// Jaleco/Konami/Taito
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper087 : public Nes_Mapper
|
class Mapper087 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
|
@ -46,3 +49,5 @@ class Mapper087 : public Nes_Mapper
|
||||||
|
|
||||||
void write(nes_time_t, nes_addr_t, int) {}
|
void write(nes_time_t, nes_addr_t, int) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct namco_34x3_state_t
|
struct namco_34x3_state_t
|
||||||
{
|
{
|
||||||
uint8_t bank[8];
|
uint8_t bank[8];
|
||||||
|
@ -108,10 +111,5 @@ class Mapper_Namco_34x3 : public Nes_Mapper, namco_34x3_state_t
|
||||||
|
|
||||||
typedef Mapper_Namco_34x3<false> Mapper088;
|
typedef Mapper_Namco_34x3<false> Mapper088;
|
||||||
|
|
||||||
// void register_mapper_namco_34xx();
|
|
||||||
// void register_mapper_namco_34xx()
|
} // namespace quickNES
|
||||||
// {
|
|
||||||
// register_mapper< Mapper_Namco_34x3 <false> > ( 88 );
|
|
||||||
// register_mapper< Mapper_Namco_34x3 <true> > ( 154 );
|
|
||||||
// register_mapper< Mapper_Namco_34xx > ( 206 );
|
|
||||||
// }
|
|
|
@ -26,6 +26,9 @@
|
||||||
|
|
||||||
// Sunsoft2b
|
// Sunsoft2b
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper089 : public Nes_Mapper
|
class Mapper089 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -55,3 +58,5 @@ class Mapper089 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs;
|
uint8_t regs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -26,6 +26,9 @@
|
||||||
|
|
||||||
// Sunsoft2a
|
// Sunsoft2a
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper093 : public Nes_Mapper
|
class Mapper093 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -54,3 +57,5 @@ class Mapper093 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs;
|
uint8_t regs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -28,6 +28,9 @@
|
||||||
|
|
||||||
// Un1rom
|
// Un1rom
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper094 : public Nes_Mapper
|
class Mapper094 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -53,3 +56,5 @@ class Mapper094 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
// Irem_Tam_S1
|
// Irem_Tam_S1
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper097 : public Nes_Mapper
|
class Mapper097 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -62,3 +65,5 @@ class Mapper097 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,4 +25,9 @@
|
||||||
* Nina-03 / Nina-06
|
* Nina-03 / Nina-06
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef Mapper_AveNina<true> Mapper113;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_AveNina<true> Mapper113;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -28,6 +28,9 @@
|
||||||
|
|
||||||
// Jaleco_JF11
|
// Jaleco_JF11
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper140 : public Nes_Mapper
|
class Mapper140 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -62,3 +65,5 @@ class Mapper140 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs;
|
uint8_t regs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -21,4 +21,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef Mapper_74x161x162x32<152> Mapper152;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_74x161x162x32<152> Mapper152;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,4 +25,9 @@
|
||||||
* Mapper 206
|
* Mapper 206
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef Mapper_Namco_34x3<true> Mapper154;
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef Mapper_Namco_34x3<true> Mapper154;
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -4,6 +4,9 @@
|
||||||
|
|
||||||
// DIS23C01 DAOU ROM CONTROLLER
|
// DIS23C01 DAOU ROM CONTROLLER
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct m156_state_t
|
struct m156_state_t
|
||||||
{
|
{
|
||||||
uint8_t prg_bank;
|
uint8_t prg_bank;
|
||||||
|
@ -58,3 +61,5 @@ class Mapper156 : public Nes_Mapper, m156_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
// UxROM (inverted)
|
// UxROM (inverted)
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper180 : public Nes_Mapper
|
class Mapper180 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -53,3 +56,5 @@ class Mapper180 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -26,6 +26,9 @@
|
||||||
|
|
||||||
// Sunsoft1
|
// Sunsoft1
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper184 : public Nes_Mapper
|
class Mapper184 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -63,3 +66,5 @@ class Mapper184 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs;
|
uint8_t regs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -4,6 +4,9 @@
|
||||||
|
|
||||||
// Magic Kid Googoo
|
// Magic Kid Googoo
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper190 : public Nes_Mapper
|
class Mapper190 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -53,3 +56,5 @@ class Mapper190 : public Nes_Mapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -29,6 +29,9 @@
|
||||||
|
|
||||||
// NTDEC's TC-112 mapper IC.
|
// NTDEC's TC-112 mapper IC.
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper193 : public Nes_Mapper
|
class Mapper193 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -74,3 +77,5 @@ class Mapper193 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs[4];
|
uint8_t regs[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct namco_34xx_state_t
|
struct namco_34xx_state_t
|
||||||
{
|
{
|
||||||
uint8_t bank[8];
|
uint8_t bank[8];
|
||||||
|
@ -96,3 +99,5 @@ class Mapper206 : public Nes_Mapper, namco_34xx_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
#include "mappers/mapper.hpp"
|
#include "mappers/mapper.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct taito_x1005_state_t
|
struct taito_x1005_state_t
|
||||||
{
|
{
|
||||||
uint8_t preg[3];
|
uint8_t preg[3];
|
||||||
|
@ -89,3 +92,5 @@ class Mapper207 : public Nes_Mapper, taito_x1005_state_t
|
||||||
|
|
||||||
virtual void write(nes_time_t, nes_addr_t addr, int data) {}
|
virtual void write(nes_time_t, nes_addr_t addr, int data) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -20,6 +20,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// Quattro
|
// Quattro
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper232 : public Nes_Mapper
|
class Mapper232 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
uint8_t regs[2];
|
uint8_t regs[2];
|
||||||
|
@ -52,3 +55,5 @@ class Mapper232 : public Nes_Mapper
|
||||||
Mapper232::apply_mapping();
|
Mapper232::apply_mapping();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
// https://www.nesdev.org/wiki/INES_Mapper240
|
// https://www.nesdev.org/wiki/INES_Mapper240
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper240 : public Nes_Mapper
|
class Mapper240 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -62,3 +65,5 @@ class Mapper240 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs;
|
uint8_t regs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -25,6 +25,9 @@
|
||||||
|
|
||||||
// https://www.nesdev.org/wiki/INES_Mapper241
|
// https://www.nesdev.org/wiki/INES_Mapper241
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper241 : public Nes_Mapper
|
class Mapper241 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -51,3 +54,5 @@ class Mapper241 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t bank;
|
uint8_t bank;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
// https://www.nesdev.org/wiki/INES_Mapper244
|
// https://www.nesdev.org/wiki/INES_Mapper244
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct mapper244_state_t
|
struct mapper244_state_t
|
||||||
{
|
{
|
||||||
uint8_t preg;
|
uint8_t preg;
|
||||||
|
@ -68,3 +71,5 @@ class Mapper244 : public Nes_Mapper, mapper244_state_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
// https://www.nesdev.org/wiki/INES_Mapper246
|
// https://www.nesdev.org/wiki/INES_Mapper246
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Mapper246 : public Nes_Mapper
|
class Mapper246 : public Nes_Mapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -73,3 +76,5 @@ class Mapper246 : public Nes_Mapper
|
||||||
|
|
||||||
uint8_t regs[8];
|
uint8_t regs[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,9 +3,12 @@
|
||||||
|
|
||||||
// Nes_Emu 0.7.0. http://www.slack.net/~ant/
|
// Nes_Emu 0.7.0. http://www.slack.net/~ant/
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
#include "Nes_Ppu.hpp"
|
#include "Nes_Ppu.hpp"
|
||||||
#include "Nes_Core.hpp"
|
#include "Nes_Core.hpp"
|
||||||
#include <cstring>
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
/* Copyright (C) 2004-2006 Shay Green. This module is free software; you
|
/* Copyright (C) 2004-2006 Shay Green. This module is free software; you
|
||||||
can redistribute it and/or modify it under the terms of the GNU Lesser
|
can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||||
|
@ -652,3 +655,5 @@ nes_time_t Nes_Ppu::earliest_open_bus_decay()
|
||||||
{
|
{
|
||||||
return (decay_low < decay_high) ? decay_low : decay_high;
|
return (decay_low < decay_high) ? decay_low : decay_high;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,8 +3,11 @@
|
||||||
// NES PPU emulator
|
// NES PPU emulator
|
||||||
// Nes_Emu 0.7.0
|
// Nes_Emu 0.7.0
|
||||||
|
|
||||||
#include "Nes_Ppu_Rendering.hpp"
|
|
||||||
#include <climits>
|
#include <climits>
|
||||||
|
#include "Nes_Ppu_Rendering.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Mapper;
|
class Nes_Mapper;
|
||||||
class Nes_Core;
|
class Nes_Core;
|
||||||
|
@ -139,3 +142,5 @@ inline void Nes_Ppu::update_open_bus(nes_time_t time)
|
||||||
if (time >= decay_low) open_bus &= ~0x1F;
|
if (time >= decay_low) open_bus &= ~0x1F;
|
||||||
if (time >= decay_high) open_bus &= ~0xE0;
|
if (time >= decay_high) open_bus &= ~0xE0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -16,6 +16,9 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
int const cache_line_size = 128; // tile cache is kept aligned to this boundary
|
int const cache_line_size = 128; // tile cache is kept aligned to this boundary
|
||||||
|
|
||||||
inline void set_be32(void *p, unsigned long n)
|
inline void set_be32(void *p, unsigned long n)
|
||||||
|
@ -429,3 +432,5 @@ long Nes_Ppu_Impl::recalc_sprite_max(int scanline)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
struct ppu_state_t
|
struct ppu_state_t
|
||||||
{
|
{
|
||||||
uint8_t w2000; // control
|
uint8_t w2000; // control
|
||||||
|
@ -239,3 +242,5 @@ inline void Nes_Ppu_Impl::begin_frame()
|
||||||
palette_offset = palette_begin * 0x01010101;
|
palette_offset = palette_begin * 0x01010101;
|
||||||
addr_inc = w2000 & 4 ? 32 : 1;
|
addr_inc = w2000 & 4 ? 32 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -16,7 +16,8 @@ more details. You should have received a copy of the GNU Lesser General
|
||||||
Public License along with this module; if not, write to the Free Software
|
Public License along with this module; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
// Nes_Ppu_Impl
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
static unsigned zero = 0; // helps CodeWarrior optimizer when added to constants
|
static unsigned zero = 0; // helps CodeWarrior optimizer when added to constants
|
||||||
|
|
||||||
|
@ -501,3 +502,5 @@ void Nes_Ppu_Rendering::draw_background(int start, int count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
#include "Nes_Ppu_Impl.hpp"
|
#include "Nes_Ppu_Impl.hpp"
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class Nes_Ppu_Rendering : public Nes_Ppu_Impl
|
class Nes_Ppu_Rendering : public Nes_Ppu_Impl
|
||||||
{
|
{
|
||||||
typedef Nes_Ppu_Impl base;
|
typedef Nes_Ppu_Impl base;
|
||||||
|
@ -57,3 +60,5 @@ inline void Nes_Ppu_Rendering::draw_sprites(int start, int count)
|
||||||
{
|
{
|
||||||
draw_scanlines(start, count, host_pixels + host_row_bytes * start, host_row_bytes, 2);
|
draw_scanlines(start, count, host_pixels + host_row_bytes * start, host_row_bytes, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace quickNES
|
|
@ -3,6 +3,9 @@
|
||||||
#include <Nes_Emu.hpp>
|
#include <Nes_Emu.hpp>
|
||||||
#include <emuInstance.hpp>
|
#include <emuInstance.hpp>
|
||||||
|
|
||||||
|
namespace quickerNES
|
||||||
|
{
|
||||||
|
|
||||||
class QuickerNESInstance : public EmuInstance
|
class QuickerNESInstance : public EmuInstance
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -72,3 +75,5 @@ class QuickerNESInstance : public EmuInstance
|
||||||
// Emulator instance
|
// Emulator instance
|
||||||
Nes_Emu *_nes;
|
Nes_Emu *_nes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace quickNES
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue