LMMS
Loading...
Searching...
No Matches
rix.h
Go to the documentation of this file.
1/*
2 * Adplug - Replayer for many OPL2/OPL3 audio file formats.
3 * Copyright (C) 1999 - 2006 Simon Peter, <dn.tlp@gmx.net>, et al.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * rix.h - Softstar RIX OPL Format Player by palxex <palxex.ys168.com>
20 * BSPAL <BSPAL.ys168.com>
21 */
22
23#include "player.h"
24
25class CrixPlayer: public CPlayer
26{
27 public:
28 static CPlayer *factory(Copl *newopl);
29
30 CrixPlayer(Copl *newopl);
32
33 bool load(const std::string &filename, const CFileProvider &fp);
34 bool update();
35 void rewind(int subsong);
36 float getrefresh();
38
39 std::string gettype()
40 { return std::string("Softstar RIX OPL Music Format"); };
42 protected:
43 typedef struct {
61
62 static const uint8_t adflag[18];
63 static const uint8_t reg_data[18];
64 static const uint8_t ad_C0_offs[18];
65 static const uint8_t modify[28];
66 static const uint8_t bd_reg_data[124];
67 static uint8_t for40reg[18];
68 static const uint16_t mus_time;
81
82#define ad_08_reg() ad_bop(8,0) /**/
83 inline void ad_20_reg(uint16_t); /**/
84 inline void ad_40_reg(uint16_t); /**/
85 inline void ad_60_reg(uint16_t); /**/
86 inline void ad_80_reg(uint16_t); /**/
87 inline void ad_a0b0_reg(uint16_t); /**/
88 inline void ad_a0b0l_reg(uint16_t,uint16_t,uint16_t); /**/
89 inline void ad_a0b0l_reg_(uint16_t,uint16_t,uint16_t); /**/
90 inline void ad_bd_reg(); /**/
91 inline void ad_bop(uint16_t,uint16_t); /**/
92 inline void ad_C0_reg(uint16_t); /**/
93 inline void ad_E0_reg(uint16_t); /**/
94 inline uint16_t ad_initial(); /**/
95 inline uint16_t ad_test(); /**/
96 inline void crc_trans(uint16_t,uint16_t); /**/
97 inline void data_initial(); /* done */
98 inline void init(); /**/
99 inline void ins_to_reg(uint16_t,uint16_t*,uint16_t); /**/
100 inline void int_08h_entry(); /**/
101 inline void music_ctrl(); /**/
102 inline void Pause(); /**/
103 inline void prepare_a0b0(uint16_t,uint16_t); /**/
104 inline void rix_90_pro(uint16_t); /**/
105 inline void rix_A0_pro(uint16_t,uint16_t); /**/
106 inline void rix_B0_pro(uint16_t,uint16_t); /**/
107 inline void rix_C0_pro(uint16_t,uint16_t); /**/
108 inline void rix_get_ins(); /**/
109 inline uint16_t rix_proc(); /**/
110 inline void set_new_int();
111 inline void switch_ad_bd(uint16_t); /**/
112};
Definition fprovide.h:29
CPlayer(Copl *newopl)
Definition player.cpp:34
Definition opl.h:26
uint16_t ins_block
Definition rix.h:71
static uint8_t for40reg[18]
Definition rix.h:58
uint32_t length
Definition rix.h:59
static const uint8_t adflag[18]
Definition rix.h:40
void rix_B0_pro(uint16_t, uint16_t)
Definition rix.cpp:381
void ad_bd_reg()
Definition rix.cpp:495
void ad_40_reg(uint16_t)
Definition rix.cpp:479
uint8_t rhythm
Definition rix.h:72
static const uint8_t reg_data[18]
Definition rix.h:41
~CrixPlayer()
Definition rix.cpp:74
static const uint16_t mus_time
Definition rix.h:68
void ad_20_reg(uint16_t)
Definition rix.cpp:446
void crc_trans(uint16_t, uint16_t)
static const uint8_t modify[28]
Definition rix.h:43
uint32_t T
Definition rix.h:69
uint32_t I
Definition rix.h:69
void rix_C0_pro(uint16_t, uint16_t)
Definition rix.cpp:394
void ad_a0b0_reg(uint16_t)
Definition rix.cpp:502
static CPlayer * factory(Copl *newopl)
Definition rix.cpp:64
int sustain
Definition rix.h:79
float getrefresh()
Definition rix.cpp:167
CrixPlayer(Copl *newopl)
Definition rix.cpp:69
void switch_ad_bd(uint16_t)
Definition rix.cpp:419
uint8_t a0b0_data4[18]
Definition rix.h:53
uint8_t * rix_buf
Definition rix.h:49
uint16_t band
Definition rix.h:75
uint8_t music_on
Definition rix.h:73
void rix_90_pro(uint16_t)
Definition rix.cpp:307
static const uint8_t ad_C0_offs[18]
Definition rix.h:42
void ad_a0b0l_reg(uint16_t, uint16_t, uint16_t)
Definition rix.cpp:368
void init()
void data_initial()
Definition rix.cpp:193
uint16_t rix_proc()
Definition rix.cpp:271
uint16_t f_buffer[300]
Definition rix.h:50
uint16_t insbuf[28]
Definition rix.h:56
static const uint8_t bd_reg_data[124]
Definition rix.h:45
void ins_to_reg(uint16_t, uint16_t *, uint16_t)
Definition rix.cpp:430
void music_ctrl()
Definition rix.cpp:508
void ad_bop(uint16_t, uint16_t)
Definition rix.cpp:241
int play_end
Definition rix.h:80
bool load(const std::string &filename, const CFileProvider &fp)
Definition rix.cpp:80
void ad_80_reg(uint16_t)
Definition rix.cpp:456
void ad_a0b0l_reg_(uint16_t, uint16_t, uint16_t)
Definition rix.cpp:187
void rewind(int subsong)
Definition rix.cpp:111
int flag_mkf
Definition rix.h:47
void ad_60_reg(uint16_t)
Definition rix.cpp:463
uint8_t band_low
Definition rix.h:76
uint32_t getsubsongs()
Definition rix.cpp:152
uint32_t pos
Definition rix.h:59
void rix_get_ins()
Definition rix.cpp:298
void rix_A0_pro(uint16_t, uint16_t)
Definition rix.cpp:328
std::string gettype()
Definition rix.h:39
uint8_t a0b0_data5[96]
Definition rix.h:54
uint8_t pause_flag
Definition rix.h:74
uint16_t ad_test()
void ad_C0_reg(uint16_t)
Definition rix.cpp:470
void Pause()
Definition rix.cpp:179
uint16_t e0_reg_flag
Definition rix.h:77
ADDT reg_bufs[18]
Definition rix.h:58
uint8_t a0b0_data3[18]
Definition rix.h:52
uint16_t mus_block
Definition rix.h:70
void ad_E0_reg(uint16_t)
Definition rix.cpp:440
uint16_t displace[11]
Definition rix.h:57
void prepare_a0b0(uint16_t, uint16_t)
Definition rix.cpp:338
uint8_t addrs_head[96]
Definition rix.h:55
uint8_t index
Definition rix.h:60
void int_08h_entry()
Definition rix.cpp:248
uint16_t ad_initial()
Definition rix.cpp:212
bool update()
Definition rix.cpp:105
uint16_t a0b0_data2[11]
Definition rix.h:51
uint8_t * file_buffer
Definition rix.h:48
uint8_t bd_modify
Definition rix.h:78
void set_new_int()
Definition rix.cpp:173
static char filename[]
Definition features.c:5
unsigned short uint16_t
Definition mid.cpp:99
unsigned int uint32_t
Definition mid.cpp:100
unsigned char uint8_t
Definition mid.cpp:98
Definition rix.h:43
uint8_t v[14]
Definition rix.h:44