LMMS
Loading...
Searching...
No Matches
Sap_Emu.h
Go to the documentation of this file.
1// Atari XL/XE SAP music file emulator
2
3// Game_Music_Emu https://bitbucket.org/mpyne/game-music-emu/
4#ifndef SAP_EMU_H
5#define SAP_EMU_H
6
7#include "Classic_Emu.h"
8#include "Sap_Apu.h"
9#include "Sap_Cpu.h"
10
11class Sap_Emu : private Sap_Cpu, public Classic_Emu {
12 typedef Sap_Cpu cpu;
13public:
14 static gme_type_t static_type() { return gme_sap_type; }
15public:
16 Sap_Emu();
17 ~Sap_Emu();
18 struct info_t {
19 byte const* rom_data;
20 const char* warning;
24 int type;
27 bool stereo;
28 char author [256];
29 char name [256];
30 char copyright [ 32];
31 };
32protected:
33 blargg_err_t track_info_( track_info_t*, int track ) const;
34 blargg_err_t load_mem_( byte const*, long );
35 blargg_err_t start_track_( int );
36 blargg_err_t run_clocks( blip_time_t&, int );
37 void set_tempo_( double );
39 void update_eq( blip_eq_t const& );
40public: private: friend class Sap_Cpu;
41 int cpu_read( sap_addr_t );
42 void cpu_write( sap_addr_t, int );
43 void cpu_write_( sap_addr_t, int );
44private:
46
47 byte const* file_end;
53
54 // large items
55 struct {
56 byte padding1 [0x100];
57 byte ram [0x10000];
58 byte padding2 [0x100];
59 } mem;
61
62 sap_time_t play_period() const;
63 void call_play();
64 void cpu_jsr( sap_addr_t );
65 void call_init( int track );
66 void run_routine( sap_addr_t );
67};
68
69#endif
blip_long blip_time_t
Definition Blip_Buffer.h:17
unsigned sap_addr_t
Definition Sap_Cpu.h:10
blargg_long sap_time_t
Definition Sap_Cpu.h:9
Definition Blip_Buffer.h:23
Classic_Emu()
Definition Classic_Emu.cpp:21
Definition Sap_Apu.h:56
Definition Sap_Apu.h:12
blargg_err_t track_info_(track_info_t *, int track) const
Definition Sap_Emu.cpp:209
Sap_Apu apu2
Definition Sap_Emu.h:52
sap_time_t scanline_period
Definition Sap_Emu.h:48
friend class Sap_Cpu
Definition Sap_Emu.h:40
sap_time_t next_play
Definition Sap_Emu.h:49
void cpu_write_(sap_addr_t, int)
Definition Sap_Emu.cpp:374
void cpu_jsr(sap_addr_t)
Definition Sap_Emu.cpp:287
Sap_Apu_Impl apu_impl
Definition Sap_Emu.h:60
void set_voice(int, Blip_Buffer *, Blip_Buffer *, Blip_Buffer *)
Definition Sap_Emu.cpp:269
byte padding2[0x100]
Definition Sap_Emu.h:58
Sap_Emu()
Definition Sap_Emu.cpp:23
byte padding1[0x100]
Definition Sap_Emu.h:56
sap_time_t time_mask
Definition Sap_Emu.h:50
blargg_err_t load_mem_(byte const *, long)
Definition Sap_Emu.cpp:243
void update_eq(blip_eq_t const &)
Definition Sap_Emu.cpp:264
void run_routine(sap_addr_t)
Definition Sap_Emu.cpp:299
static gme_type_t static_type()
Definition Sap_Emu.h:14
void set_tempo_(double)
Definition Sap_Emu.cpp:280
byte const * file_end
Definition Sap_Emu.h:47
blargg_err_t start_track_(int)
Definition Sap_Emu.cpp:327
int cpu_read(sap_addr_t)
Definition sap_cpu_io.h:20
struct Sap_Emu::@126254164223205255167174242254165057331244055015 mem
Sap_Apu apu
Definition Sap_Emu.h:51
~Sap_Emu()
Definition Sap_Emu.cpp:41
sap_time_t play_period() const
Definition Sap_Emu.cpp:285
info_t info
Definition Sap_Emu.h:45
void call_init(int track)
Definition Sap_Emu.cpp:306
Sap_Cpu cpu
Definition Sap_Emu.h:12
byte ram[0x10000]
Definition Sap_Emu.h:57
blargg_err_t run_clocks(blip_time_t &, int)
Definition Sap_Emu.cpp:409
void cpu_write(sap_addr_t, int)
Definition sap_cpu_io.h:8
void call_play()
Definition Sap_Emu.cpp:395
Definition Blip_Buffer.h:239
const struct gme_type_t_ * gme_type_t
Definition gme.h:161
const gme_type_t gme_sap_type
Definition gme.h:172
Definition Sap_Emu.h:18
bool stereo
Definition Sap_Emu.h:27
long init_addr
Definition Sap_Emu.h:21
char copyright[32]
Definition Sap_Emu.h:30
int track_count
Definition Sap_Emu.h:25
const char * warning
Definition Sap_Emu.h:20
long music_addr
Definition Sap_Emu.h:23
char name[256]
Definition Sap_Emu.h:29
int type
Definition Sap_Emu.h:24
int fastplay
Definition Sap_Emu.h:26
char author[256]
Definition Sap_Emu.h:28
long play_addr
Definition Sap_Emu.h:22
byte const * rom_data
Definition Sap_Emu.h:19
Definition Gme_File.h:28