mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
srcclean and manual cleanup
This commit is contained in:
parent
afc4a360ba
commit
587598e618
@ -7983,7 +7983,7 @@ ATK test: OK
|
|||||||
<notes><![CDATA[
|
<notes><![CDATA[
|
||||||
ATK test: OK
|
ATK test: OK
|
||||||
]]></notes>
|
]]></notes>
|
||||||
<!-- cover/floppy title -->
|
<!-- cover/floppy title -->
|
||||||
<info name="alt_title" value="Brutal Football" />
|
<info name="alt_title" value="Brutal Football" />
|
||||||
<part name="flop1" interface="floppy_3_5">
|
<part name="flop1" interface="floppy_3_5">
|
||||||
<feature name="part_id" value="Disk 1" />
|
<feature name="part_id" value="Disk 1" />
|
||||||
@ -12097,7 +12097,7 @@ ATK test: OK
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!-- "F40 Pursuit Simulator" alt version known to exist (title screen) -->
|
<!-- "F40 Pursuit Simulator" alt version known to exist (title screen) -->
|
||||||
<software name="crazycr2" supported="no">
|
<software name="crazycr2" supported="no">
|
||||||
<!-- SPS (CAPS) release 311 -->
|
<!-- SPS (CAPS) release 311 -->
|
||||||
<description>Crazy Cars II (Europe)</description>
|
<description>Crazy Cars II (Europe)</description>
|
||||||
@ -12156,7 +12156,7 @@ ATK test: C:79 H:U 1 Sector Bad
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!-- PD version known to exist https://www.aminet.net/package/game/jump/CrazySueII -->
|
<!-- PD version known to exist https://www.aminet.net/package/game/jump/CrazySueII -->
|
||||||
<software name="crazsue2" supported="no">
|
<software name="crazsue2" supported="no">
|
||||||
<!-- SPS (CAPS) release 2195 -->
|
<!-- SPS (CAPS) release 2195 -->
|
||||||
<description>Crazy Sue... Goes On (Europe)</description>
|
<description>Crazy Sue... Goes On (Europe)</description>
|
||||||
@ -12168,7 +12168,7 @@ ATK test: C:79 H:U 1 Sector Bad
|
|||||||
TODO: test me in full, is track 43 onward bad just a side effect of using RNC cruncher?
|
TODO: test me in full, is track 43 onward bad just a side effect of using RNC cruncher?
|
||||||
ATK test: C:43 onward Bad
|
ATK test: C:43 onward Bad
|
||||||
]]></notes>
|
]]></notes>
|
||||||
<info name="alt_title" value="Crazy Sue II" />
|
<info name="alt_title" value="Crazy Sue II" />
|
||||||
<info name="magazine" value="Amiga Mania" />
|
<info name="magazine" value="Amiga Mania" />
|
||||||
<info name="release" value="199209xx" />
|
<info name="release" value="199209xx" />
|
||||||
<!-- Omake: type "HIRONZMUSJUMPSHOE" on title screen to enable cheat mode -->
|
<!-- Omake: type "HIRONZMUSJUMPSHOE" on title screen to enable cheat mode -->
|
||||||
|
@ -731,7 +731,7 @@ license:CC0-1.0
|
|||||||
<description>Brutal Sports Series: Football</description>
|
<description>Brutal Sports Series: Football</description>
|
||||||
<year>1994</year>
|
<year>1994</year>
|
||||||
<publisher>Millennium</publisher>
|
<publisher>Millennium</publisher>
|
||||||
<!-- Cover/CD title -->
|
<!-- Cover/CD title -->
|
||||||
<info name="alt_title" value="Brutal Football" />
|
<info name="alt_title" value="Brutal Football" />
|
||||||
<info name="disc_matrix" value="CDD3361 BRUTAL FOOTBALL : MASTERED BY NIMBUS" />
|
<info name="disc_matrix" value="CDD3361 BRUTAL FOOTBALL : MASTERED BY NIMBUS" />
|
||||||
<part name="cdrom" interface="cdrom">
|
<part name="cdrom" interface="cdrom">
|
||||||
|
@ -299,8 +299,8 @@ No sound, hardlocks then eventually throws an exception after the Dyna Cam logo
|
|||||||
Switching items in main menu causes a glitch on the text
|
Switching items in main menu causes a glitch on the text
|
||||||
Rightmost column of gameplay has odd "overscan" area
|
Rightmost column of gameplay has odd "overscan" area
|
||||||
]]></notes>
|
]]></notes>
|
||||||
<!-- cover title, NOTE: different than all the other version -->
|
<!-- cover title, NOTE: different than all the other version -->
|
||||||
<info name="alt_title" value="Brutal Sports Football" />
|
<info name="alt_title" value="Brutal Sports Football" />
|
||||||
<info name="serial" value="JA100"/>
|
<info name="serial" value="JA100"/>
|
||||||
<part name="cart" interface="jaguar_cart">
|
<part name="cart" interface="jaguar_cart">
|
||||||
<dataarea name="rom" size="2097152" width="32" endianness="big">
|
<dataarea name="rom" size="2097152" width="32" endianness="big">
|
||||||
|
@ -90,7 +90,7 @@ license:CC0-1.0
|
|||||||
<info name="developer" value="EktaSoft"/>
|
<info name="developer" value="EktaSoft"/>
|
||||||
<info name="comment" value="Recostruction of an additional JUKU PC utilities disk #4 with EKDOS 2.30 based on file list in READ.ME published by EKTA in December 1989."/> <!-- See https://github.com/infoaed/juku3000/blob/master/docs/ekdos230.txt for READ.ME. -->
|
<info name="comment" value="Recostruction of an additional JUKU PC utilities disk #4 with EKDOS 2.30 based on file list in READ.ME published by EKTA in December 1989."/> <!-- See https://github.com/infoaed/juku3000/blob/master/docs/ekdos230.txt for READ.ME. -->
|
||||||
<part name="flop1" interface="floppy_5_25">
|
<part name="flop1" interface="floppy_5_25">
|
||||||
<feature name="part_id" value="UTILS-4" /><!-- See https://juku3000.infoaed.ee/tarkvara-kataloog/#j3kutil4 for details. -->
|
<feature name="part_id" value="UTILS-4" /><!-- See https://juku3000.infoaed.ee/tarkvara-kataloog/#j3kutil4 for details. -->
|
||||||
<dataarea name="flop" size="819200">
|
<dataarea name="flop" size="819200">
|
||||||
<rom name="J3KUTIL4.JUK" size="819200" crc="839f20aa" sha1="fb8a5239cdd74eced3b0bb7ab8ec6e8b2092f4c3" />
|
<rom name="J3KUTIL4.JUK" size="819200" crc="839f20aa" sha1="fb8a5239cdd74eced3b0bb7ab8ec6e8b2092f4c3" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
|
@ -16443,7 +16443,7 @@ Black screen, requires sub CPU to be overclocked by 1.5x
|
|||||||
<description>Music from the Sega CD Games - Jurassic Park, Batman Returns (USA)</description>
|
<description>Music from the Sega CD Games - Jurassic Park, Batman Returns (USA)</description>
|
||||||
<year>1993</year>
|
<year>1993</year>
|
||||||
<publisher>Sega Multimedia Studio</publisher>
|
<publisher>Sega Multimedia Studio</publisher>
|
||||||
<sharedfeat name="compatibility" value="NTSC-U"/>
|
<sharedfeat name="compatibility" value="NTSC-U"/>
|
||||||
<part name="cdrom" interface="scd_cdrom">
|
<part name="cdrom" interface="scd_cdrom">
|
||||||
<diskarea name="cdrom">
|
<diskarea name="cdrom">
|
||||||
<disk name="music from the sega cd games - jurassic park, batman returns (usa)" status="nodump"/>
|
<disk name="music from the sega cd games - jurassic park, batman returns (usa)" status="nodump"/>
|
||||||
@ -16462,7 +16462,7 @@ Black screen, requires sub CPU to be overclocked by 1.5x
|
|||||||
<description>The Smurfs (USA, Prototype)</description>
|
<description>The Smurfs (USA, Prototype)</description>
|
||||||
<year>2014</year>
|
<year>2014</year>
|
||||||
<publisher>Good Deal Games</publisher>
|
<publisher>Good Deal Games</publisher>
|
||||||
<sharedfeat name="compatibility" value="NTSC-U"/>
|
<sharedfeat name="compatibility" value="NTSC-U"/>
|
||||||
<part name="cdrom" interface="scd_cdrom">
|
<part name="cdrom" interface="scd_cdrom">
|
||||||
<diskarea name="cdrom">
|
<diskarea name="cdrom">
|
||||||
<disk name="the smurfs (usa, prototype)" status="nodump"/>
|
<disk name="the smurfs (usa, prototype)" status="nodump"/>
|
||||||
|
@ -54,7 +54,7 @@ license:CC0-1.0
|
|||||||
<dataarea name="prg" size="0x400000">
|
<dataarea name="prg" size="0x400000">
|
||||||
<rom name="c-04.u1" size="0x400000" crc="89b6ef86" sha1="1af69047508fce08fa949a7d821255e306a329a3" />
|
<rom name="c-04.u1" size="0x400000" crc="89b6ef86" sha1="1af69047508fce08fa949a7d821255e306a329a3" />
|
||||||
<!-- bypass (invisible) EEPROM error until cart EEPROM is properly hooked up -->
|
<!-- bypass (invisible) EEPROM error until cart EEPROM is properly hooked up -->
|
||||||
<rom value="0xea" offset="0xd5fa" size="2" loadflag="fill" />
|
<rom value="0xea" offset="0xd5fa" size="2" loadflag="fill" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
@ -4325,7 +4325,7 @@ RAND USR 16530
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="invent1">
|
<software name="invent1">
|
||||||
<description>Inventions 1</description>
|
<description>Inventions 1</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
|
@ -1056,10 +1056,10 @@ end
|
|||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
|
||||||
if opt_tool(FORMATS, "H17D_DSK") then
|
if opt_tool(FORMATS, "H17D_DSK") then
|
||||||
files {
|
files {
|
||||||
MAME_DIR.. "src/lib/formats/h17disk.cpp",
|
MAME_DIR.. "src/lib/formats/h17disk.cpp",
|
||||||
MAME_DIR.. "src/lib/formats/h17disk.h",
|
MAME_DIR.. "src/lib/formats/h17disk.h",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
@ -824,18 +824,18 @@ uint8_t mcs51_cpu_device::r_psw() { return SFR_A(ADDR_PSW); }
|
|||||||
|
|
||||||
In order to simplify memory mapping to the data address bus, the following address map is assumed for partitioned mode:
|
In order to simplify memory mapping to the data address bus, the following address map is assumed for partitioned mode:
|
||||||
|
|
||||||
PES = 0:
|
PES = 0:
|
||||||
0x00000-0x0ffff -> data memory on the expanded bus
|
0x00000-0x0ffff -> data memory on the expanded bus
|
||||||
0x10000-0x1ffff -> data memory on the byte-wide bus
|
0x10000-0x1ffff -> data memory on the byte-wide bus
|
||||||
PES = 1:
|
PES = 1:
|
||||||
0x20000-0x2ffff -> memory-mapped peripherals on the byte-wide bus
|
0x20000-0x2ffff -> memory-mapped peripherals on the byte-wide bus
|
||||||
|
|
||||||
For non-partitioned mode the following memory map is assumed:
|
For non-partitioned mode the following memory map is assumed:
|
||||||
|
|
||||||
PES = 0:
|
PES = 0:
|
||||||
0x00000-0x0ffff -> data memory (the bus used to access it does not matter)
|
0x00000-0x0ffff -> data memory (the bus used to access it does not matter)
|
||||||
PES = 1:
|
PES = 1:
|
||||||
0x20000-0x2ffff -> memory-mapped peripherals on the byte-wide bus
|
0x20000-0x2ffff -> memory-mapped peripherals on the byte-wide bus
|
||||||
*/
|
*/
|
||||||
|
|
||||||
offs_t mcs51_cpu_device::external_ram_iaddr(offs_t offset, offs_t mem_mask)
|
offs_t mcs51_cpu_device::external_ram_iaddr(offs_t offset, offs_t mem_mask)
|
||||||
|
@ -73,12 +73,12 @@ void spg110_device::ffreq2_w(int state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// notes about IRQ differences from 2xx
|
// notes about IRQ differences from 2xx
|
||||||
//
|
//
|
||||||
// TMB1 / TMB2 are IRQ7 (same as SPG2xx)
|
// TMB1 / TMB2 are IRQ7 (same as SPG2xx)
|
||||||
// Key Change is IRQ4 (was 7 on SPG2xx)
|
// Key Change is IRQ4 (was 7 on SPG2xx)
|
||||||
// LVD (Low Voltage Reset) is IRQ6 (doesn't exist on SPG2xx?)
|
// LVD (Low Voltage Reset) is IRQ6 (doesn't exist on SPG2xx?)
|
||||||
// ADC is IRQ1 (was 3 on SPG2xx)
|
// ADC is IRQ1 (was 3 on SPG2xx)
|
||||||
//
|
//
|
||||||
// on SPG2xx 0x3D2E can redirect any other interrupt to the FIQ
|
// on SPG2xx 0x3D2E can redirect any other interrupt to the FIQ
|
||||||
// on SPG110 FIQ is always from SPUIRQ (sound)
|
// on SPG110 FIQ is always from SPUIRQ (sound)
|
||||||
//
|
//
|
||||||
@ -162,13 +162,13 @@ void spg110_device::internal_map(address_map &map)
|
|||||||
// 0x2038 // P_Effect_color (not the same as 2030)
|
// 0x2038 // P_Effect_color (not the same as 2030)
|
||||||
map(0x002039, 0x002039).w(m_spg_video, FUNC(spg110_video_device::effect_control_2039_w)); // P_Effect_control
|
map(0x002039, 0x002039).w(m_spg_video, FUNC(spg110_video_device::effect_control_2039_w)); // P_Effect_control
|
||||||
// 0x203a // P_Mix_offset
|
// 0x203a // P_Mix_offset
|
||||||
// 0x203b // P_Fan_effect_th
|
// 0x203b // P_Fan_effect_th
|
||||||
map(0x00203c, 0x00203c).w(m_spg_video, FUNC(spg110_video_device::huereference_203c_w)); // P_203C_HueRefer (should be set based on PAL/NTSC)
|
map(0x00203c, 0x00203c).w(m_spg_video, FUNC(spg110_video_device::huereference_203c_w)); // P_203C_HueRefer (should be set based on PAL/NTSC)
|
||||||
map(0x00203d, 0x00203d).w(m_spg_video, FUNC(spg110_video_device::lum_adjust_203d_w)); // P_Lum_Adjust
|
map(0x00203d, 0x00203d).w(m_spg_video, FUNC(spg110_video_device::lum_adjust_203d_w)); // P_Lum_Adjust
|
||||||
// 0x203e // P_LPVPosition
|
// 0x203e // P_LPVPosition
|
||||||
// 0x203f // P_LPHPosition
|
// 0x203f // P_LPHPosition
|
||||||
|
|
||||||
map(0x002042, 0x002042).rw(m_spg_video, FUNC(spg110_video_device::sp_control_2042_r),FUNC(spg110_video_device::sp_control_2042_w)); // P_Sp_control
|
map(0x002042, 0x002042).rw(m_spg_video, FUNC(spg110_video_device::sp_control_2042_r),FUNC(spg110_video_device::sp_control_2042_w)); // P_Sp_control
|
||||||
|
|
||||||
map(0x002045, 0x002045).w(m_spg_video, FUNC(spg110_video_device::spg110_2045_w)); // not documented?
|
map(0x002045, 0x002045).w(m_spg_video, FUNC(spg110_video_device::spg110_2045_w)); // not documented?
|
||||||
|
|
||||||
@ -176,11 +176,11 @@ void spg110_device::internal_map(address_map &map)
|
|||||||
|
|
||||||
map(0x002060, 0x002060).w(m_spg_video, FUNC(spg110_video_device::dma_dst_2060_w)); // P_DMA_Target_adr
|
map(0x002060, 0x002060).w(m_spg_video, FUNC(spg110_video_device::dma_dst_2060_w)); // P_DMA_Target_adr
|
||||||
map(0x002061, 0x002061).w(m_spg_video, FUNC(spg110_video_device::dma_dst_seg_2061_w)); // P_DMA_Target_seg
|
map(0x002061, 0x002061).w(m_spg_video, FUNC(spg110_video_device::dma_dst_seg_2061_w)); // P_DMA_Target_seg
|
||||||
map(0x002062, 0x002062).rw(m_spg_video, FUNC(spg110_video_device::dma_len_status_2062_r),FUNC(spg110_video_device::dma_len_trigger_2062_w)); // P_DMA_numbr
|
map(0x002062, 0x002062).rw(m_spg_video, FUNC(spg110_video_device::dma_len_status_2062_r),FUNC(spg110_video_device::dma_len_trigger_2062_w)); // P_DMA_numbr
|
||||||
map(0x002063, 0x002063).rw(m_spg_video, FUNC(spg110_video_device::spg110_2063_r),FUNC(spg110_video_device::spg110_2063_w)); // P_DMA_control - Video IRQ source / ack (3 different things checked here instead of 2 on spg2xx?)
|
map(0x002063, 0x002063).rw(m_spg_video, FUNC(spg110_video_device::spg110_2063_r),FUNC(spg110_video_device::spg110_2063_w)); // P_DMA_control - Video IRQ source / ack (3 different things checked here instead of 2 on spg2xx?)
|
||||||
map(0x002064, 0x002064).w(m_spg_video, FUNC(spg110_video_device::dma_dst_step_2064_w)); // P_DMA_Target_step
|
map(0x002064, 0x002064).w(m_spg_video, FUNC(spg110_video_device::dma_dst_step_2064_w)); // P_DMA_Target_step
|
||||||
map(0x002065, 0x002065).rw(m_spg_video, FUNC(spg110_video_device::dma_manual_2065_r), FUNC(spg110_video_device::dma_manual_2065_w)); // P_DMA_data
|
map(0x002065, 0x002065).rw(m_spg_video, FUNC(spg110_video_device::dma_manual_2065_r), FUNC(spg110_video_device::dma_manual_2065_w)); // P_DMA_data
|
||||||
map(0x002066, 0x002066).w(m_spg_video, FUNC(spg110_video_device::dma_source_2066_w)); // P_DMA_Source_adr
|
map(0x002066, 0x002066).w(m_spg_video, FUNC(spg110_video_device::dma_source_2066_w)); // P_DMA_Source_adr
|
||||||
map(0x002067, 0x002067).w(m_spg_video, FUNC(spg110_video_device::dma_source_seg_2067_w)); // P_DMA_Source_seg
|
map(0x002067, 0x002067).w(m_spg_video, FUNC(spg110_video_device::dma_source_seg_2067_w)); // P_DMA_Source_seg
|
||||||
map(0x002068, 0x002068).rw(m_spg_video, FUNC(spg110_video_device::dma_src_step_2068_r), FUNC(spg110_video_device::dma_src_step_2068_w)); // P_DMA_Source_step
|
map(0x002068, 0x002068).rw(m_spg_video, FUNC(spg110_video_device::dma_src_step_2068_r), FUNC(spg110_video_device::dma_src_step_2068_w)); // P_DMA_Source_step
|
||||||
|
|
||||||
|
@ -337,7 +337,7 @@ device_memory_interface::space_config_vector spg110_video_device::memory_space_c
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* 0x2063 P_DMA_control
|
/* 0x2063 P_DMA_control
|
||||||
despite the name this address is more IRQ control than DMA, although there are some DMA flags in here
|
despite the name this address is more IRQ control than DMA, although there are some DMA flags in here
|
||||||
|
|
||||||
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
|
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
|
||||||
@ -461,7 +461,7 @@ uint16_t spg110_video_device::irq_tm_h_2037_r()
|
|||||||
// added to value from the PRNG for some random number generation cases
|
// added to value from the PRNG for some random number generation cases
|
||||||
// should this return the *current* horizontal position? or the register value written?
|
// should this return the *current* horizontal position? or the register value written?
|
||||||
return m_screen->hpos();
|
return m_screen->hpos();
|
||||||
}
|
}
|
||||||
|
|
||||||
void spg110_video_device::irq_tm_h_2037_w(uint16_t data)
|
void spg110_video_device::irq_tm_h_2037_w(uint16_t data)
|
||||||
{
|
{
|
||||||
@ -474,13 +474,13 @@ void spg110_video_device::effect_control_2039_w(uint16_t data)
|
|||||||
{
|
{
|
||||||
// 0803 on every scene transition
|
// 0803 on every scene transition
|
||||||
logerror("%s: effect_control_2039_w: %04x\n", machine().describe_context(), data);
|
logerror("%s: effect_control_2039_w: %04x\n", machine().describe_context(), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void spg110_video_device::huereference_203c_w(uint16_t data)
|
void spg110_video_device::huereference_203c_w(uint16_t data)
|
||||||
{
|
{
|
||||||
// 0006 on startup, twice
|
// 0006 on startup, twice
|
||||||
logerror("%s: huereference_203c_w: %04x\n", machine().describe_context(), data);
|
logerror("%s: huereference_203c_w: %04x\n", machine().describe_context(), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void spg110_video_device::lum_adjust_203d_w(uint16_t data)
|
void spg110_video_device::lum_adjust_203d_w(uint16_t data)
|
||||||
{
|
{
|
||||||
@ -497,7 +497,7 @@ void spg110_video_device::sp_control_2042_w(uint16_t data)
|
|||||||
{
|
{
|
||||||
// sets bit 0x0004, masks with 0xfffb etc.
|
// sets bit 0x0004, masks with 0xfffb etc.
|
||||||
logerror("%s: sp_control_2042_w: %04x\n", machine().describe_context(), data);
|
logerror("%s: sp_control_2042_w: %04x\n", machine().describe_context(), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void spg110_video_device::spg110_2045_w(uint16_t data)
|
void spg110_video_device::spg110_2045_w(uint16_t data)
|
||||||
{
|
{
|
||||||
|
@ -256,7 +256,7 @@ void spg_renderer_device::draw_linemap(bool has_extended_tilemaps, const rectang
|
|||||||
uint32_t palette_map = tilemapregs[3];
|
uint32_t palette_map = tilemapregs[3];
|
||||||
|
|
||||||
//if (scanline == 128)
|
//if (scanline == 128)
|
||||||
// popmessage("draw draw_linemap reg0 %04x reg1 %04x bases %04x %04x\n", tilemapregs[0], tilemapregs[1], tilemap, palette_map);
|
// popmessage("draw draw_linemap reg0 %04x reg1 %04x bases %04x %04x\n", tilemapregs[0], tilemapregs[1], tilemap, palette_map);
|
||||||
|
|
||||||
//uint32_t xscroll = scrollregs[0];
|
//uint32_t xscroll = scrollregs[0];
|
||||||
uint32_t yscroll = scrollregs[1];
|
uint32_t yscroll = scrollregs[1];
|
||||||
@ -309,11 +309,11 @@ void spg_renderer_device::draw_linemap(bool has_extended_tilemaps, const rectang
|
|||||||
{
|
{
|
||||||
bits <<= nc_bpp;
|
bits <<= nc_bpp;
|
||||||
if (nbits < nc_bpp)
|
if (nbits < nc_bpp)
|
||||||
{
|
{
|
||||||
uint16_t b = spc.read_word(sourcebase++ & 0x3fffff);
|
uint16_t b = spc.read_word(sourcebase++ & 0x3fffff);
|
||||||
b = (b << 8) | (b >> 8);
|
b = (b << 8) | (b >> 8);
|
||||||
bits |= b << (nc_bpp - nbits);
|
bits |= b << (nc_bpp - nbits);
|
||||||
nbits += 16;
|
nbits += 16;
|
||||||
}
|
}
|
||||||
nbits -= nc_bpp;
|
nbits -= nc_bpp;
|
||||||
|
|
||||||
|
@ -24,407 +24,388 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "roland_sa.h"
|
#include "roland_sa.h"
|
||||||
|
|
||||||
DEFINE_DEVICE_TYPE(ROLAND_SA, roland_sa_device, "roland_sa", "Roland SA CPU-B Sound Generator")
|
namespace {
|
||||||
|
|
||||||
// LUT for the address speed
|
// LUT for the address speed
|
||||||
const uint32_t roland_sa_device::env_table[] = {
|
const uint32_t env_table[] = {
|
||||||
0x000000, 0x000023, 0x000026, 0x000029, 0x00002d, 0x000031, 0x000036,
|
0x000000, 0x000023, 0x000026, 0x000029, 0x00002d, 0x000031, 0x000036,
|
||||||
0x00003b, 0x000040, 0x000046, 0x00004c, 0x000052, 0x00005a, 0x000062,
|
0x00003b, 0x000040, 0x000046, 0x00004c, 0x000052, 0x00005a, 0x000062,
|
||||||
0x00006c, 0x000076, 0x000080, 0x00008c, 0x000098, 0x0000a4, 0x0000b4,
|
0x00006c, 0x000076, 0x000080, 0x00008c, 0x000098, 0x0000a4, 0x0000b4,
|
||||||
0x0000c4, 0x0000d8, 0x0000ec, 0x000104, 0x00011c, 0x000134, 0x00014c,
|
0x0000c4, 0x0000d8, 0x0000ec, 0x000104, 0x00011c, 0x000134, 0x00014c,
|
||||||
0x00016c, 0x00018c, 0x0001b4, 0x0001dc, 0x000200, 0x000230, 0x000260,
|
0x00016c, 0x00018c, 0x0001b4, 0x0001dc, 0x000200, 0x000230, 0x000260,
|
||||||
0x000290, 0x0002d0, 0x000310, 0x000360, 0x0003b0, 0x000400, 0x000460,
|
0x000290, 0x0002d0, 0x000310, 0x000360, 0x0003b0, 0x000400, 0x000460,
|
||||||
0x0004c0, 0x000520, 0x0005a0, 0x000620, 0x0006c0, 0x000760, 0x000800,
|
0x0004c0, 0x000520, 0x0005a0, 0x000620, 0x0006c0, 0x000760, 0x000800,
|
||||||
0x0008c0, 0x000980, 0x000a40, 0x000b40, 0x000c40, 0x000d80, 0x000ec0,
|
0x0008c0, 0x000980, 0x000a40, 0x000b40, 0x000c40, 0x000d80, 0x000ec0,
|
||||||
0x001000, 0x001180, 0x001300, 0x001480, 0x001680, 0x001880, 0x001b00,
|
0x001000, 0x001180, 0x001300, 0x001480, 0x001680, 0x001880, 0x001b00,
|
||||||
0x001d80, 0x002000, 0x002300, 0x002600, 0x002900, 0x002d00, 0x003100,
|
0x001d80, 0x002000, 0x002300, 0x002600, 0x002900, 0x002d00, 0x003100,
|
||||||
0x003600, 0x003b00, 0x004000, 0x004600, 0x004c00, 0x005200, 0x005a00,
|
0x003600, 0x003b00, 0x004000, 0x004600, 0x004c00, 0x005200, 0x005a00,
|
||||||
0x006200, 0x006c00, 0x007600, 0x008000, 0x008c00, 0x009800, 0x00a400,
|
0x006200, 0x006c00, 0x007600, 0x008000, 0x008c00, 0x009800, 0x00a400,
|
||||||
0x00b400, 0x00c400, 0x00d800, 0x00ec00, 0x010000, 0x011800, 0x013000,
|
0x00b400, 0x00c400, 0x00d800, 0x00ec00, 0x010000, 0x011800, 0x013000,
|
||||||
0x014800, 0x016800, 0x018800, 0x01b000, 0x01d800, 0x020000, 0x023000,
|
0x014800, 0x016800, 0x018800, 0x01b000, 0x01d800, 0x020000, 0x023000,
|
||||||
0x026000, 0x029000, 0x02d000, 0x031000, 0x036000, 0x03b000, 0x040000,
|
0x026000, 0x029000, 0x02d000, 0x031000, 0x036000, 0x03b000, 0x040000,
|
||||||
0x046000, 0x04c000, 0x052000, 0x05a000, 0x062000, 0x06c000, 0x076000,
|
0x046000, 0x04c000, 0x052000, 0x05a000, 0x062000, 0x06c000, 0x076000,
|
||||||
0x080000, 0x08c000, 0x098000, 0x0a4000, 0x0b4000, 0x0c4000, 0x0d8000,
|
0x080000, 0x08c000, 0x098000, 0x0a4000, 0x0b4000, 0x0c4000, 0x0d8000,
|
||||||
0x0ec000, 0x100000, 0x118000, 0x130000, 0x148000, 0x168000, 0x188000,
|
0x0ec000, 0x100000, 0x118000, 0x130000, 0x148000, 0x168000, 0x188000,
|
||||||
0x1b0000, 0x1d8000, 0x000000, 0x1fffdc, 0x1fffd9, 0x1fffd6, 0x1fffd2,
|
0x1b0000, 0x1d8000, 0x000000, 0x1fffdc, 0x1fffd9, 0x1fffd6, 0x1fffd2,
|
||||||
0x1fffce, 0x1fffc9, 0x1fffc4, 0x1fffbf, 0x1fffb9, 0x1fffb3, 0x1fffad,
|
0x1fffce, 0x1fffc9, 0x1fffc4, 0x1fffbf, 0x1fffb9, 0x1fffb3, 0x1fffad,
|
||||||
0x1fffa5, 0x1fff9d, 0x1fff93, 0x1fff89, 0x1fff7f, 0x1fff73, 0x1fff67,
|
0x1fffa5, 0x1fff9d, 0x1fff93, 0x1fff89, 0x1fff7f, 0x1fff73, 0x1fff67,
|
||||||
0x1fff5b, 0x1fff4b, 0x1fff3b, 0x1fff27, 0x1fff13, 0x1ffefb, 0x1ffee3,
|
0x1fff5b, 0x1fff4b, 0x1fff3b, 0x1fff27, 0x1fff13, 0x1ffefb, 0x1ffee3,
|
||||||
0x1ffecb, 0x1ffeb3, 0x1ffe93, 0x1ffe73, 0x1ffe4b, 0x1ffe23, 0x1ffdff,
|
0x1ffecb, 0x1ffeb3, 0x1ffe93, 0x1ffe73, 0x1ffe4b, 0x1ffe23, 0x1ffdff,
|
||||||
0x1ffdcf, 0x1ffd9f, 0x1ffd6f, 0x1ffd2f, 0x1ffcef, 0x1ffc9f, 0x1ffc4f,
|
0x1ffdcf, 0x1ffd9f, 0x1ffd6f, 0x1ffd2f, 0x1ffcef, 0x1ffc9f, 0x1ffc4f,
|
||||||
0x1ffbff, 0x1ffb9f, 0x1ffb3f, 0x1ffadf, 0x1ffa5f, 0x1ff9df, 0x1ff93f,
|
0x1ffbff, 0x1ffb9f, 0x1ffb3f, 0x1ffadf, 0x1ffa5f, 0x1ff9df, 0x1ff93f,
|
||||||
0x1ff89f, 0x1ff7ff, 0x1ff73f, 0x1ff67f, 0x1ff5bf, 0x1ff4bf, 0x1ff3bf,
|
0x1ff89f, 0x1ff7ff, 0x1ff73f, 0x1ff67f, 0x1ff5bf, 0x1ff4bf, 0x1ff3bf,
|
||||||
0x1ff27f, 0x1ff13f, 0x1fefff, 0x1fee7f, 0x1fecff, 0x1feb7f, 0x1fe97f,
|
0x1ff27f, 0x1ff13f, 0x1fefff, 0x1fee7f, 0x1fecff, 0x1feb7f, 0x1fe97f,
|
||||||
0x1fe77f, 0x1fe4ff, 0x1fe27f, 0x1fdfff, 0x1fdcff, 0x1fd9ff, 0x1fd6ff,
|
0x1fe77f, 0x1fe4ff, 0x1fe27f, 0x1fdfff, 0x1fdcff, 0x1fd9ff, 0x1fd6ff,
|
||||||
0x1fd2ff, 0x1fceff, 0x1fc9ff, 0x1fc4ff, 0x1fbfff, 0x1fb9ff, 0x1fb3ff,
|
0x1fd2ff, 0x1fceff, 0x1fc9ff, 0x1fc4ff, 0x1fbfff, 0x1fb9ff, 0x1fb3ff,
|
||||||
0x1fadff, 0x1fa5ff, 0x1f9dff, 0x1f93ff, 0x1f89ff, 0x1f7fff, 0x1f73ff,
|
0x1fadff, 0x1fa5ff, 0x1f9dff, 0x1f93ff, 0x1f89ff, 0x1f7fff, 0x1f73ff,
|
||||||
0x1f67ff, 0x1f5bff, 0x1f4bff, 0x1f3bff, 0x1f27ff, 0x1f13ff, 0x1effff,
|
0x1f67ff, 0x1f5bff, 0x1f4bff, 0x1f3bff, 0x1f27ff, 0x1f13ff, 0x1effff,
|
||||||
0x1ee7ff, 0x1ecfff, 0x1eb7ff, 0x1e97ff, 0x1e77ff, 0x1e4fff, 0x1e27ff,
|
0x1ee7ff, 0x1ecfff, 0x1eb7ff, 0x1e97ff, 0x1e77ff, 0x1e4fff, 0x1e27ff,
|
||||||
0x1dffff, 0x1dcfff, 0x1d9fff, 0x1d6fff, 0x1d2fff, 0x1cefff, 0x1c9fff,
|
0x1dffff, 0x1dcfff, 0x1d9fff, 0x1d6fff, 0x1d2fff, 0x1cefff, 0x1c9fff,
|
||||||
0x1c4fff, 0x1bffff, 0x1b9fff, 0x1b3fff, 0x1adfff, 0x1a5fff, 0x19dfff,
|
0x1c4fff, 0x1bffff, 0x1b9fff, 0x1b3fff, 0x1adfff, 0x1a5fff, 0x19dfff,
|
||||||
0x193fff, 0x189fff, 0x17ffff, 0x173fff, 0x167fff, 0x15bfff, 0x14bfff,
|
0x193fff, 0x189fff, 0x17ffff, 0x173fff, 0x167fff, 0x15bfff, 0x14bfff,
|
||||||
0x13bfff, 0x127fff, 0x113fff, 0x0fffff, 0x0e7fff, 0x0cffff, 0x0b7fff,
|
0x13bfff, 0x127fff, 0x113fff, 0x0fffff, 0x0e7fff, 0x0cffff, 0x0b7fff,
|
||||||
0x097fff, 0x077fff, 0x04ffff, 0x027fff};
|
0x097fff, 0x077fff, 0x04ffff, 0x027fff};
|
||||||
|
|
||||||
// LUT for bits 5/6/7/8 of the subphase
|
// LUT for bits 5/6/7/8 of the subphase
|
||||||
const uint16_t roland_sa_device::addr_table[] = {0x1e0, 0x080, 0x060, 0x04d, 0x040, 0x036, 0x02d, 0x026,
|
const uint16_t addr_table[] = {0x1e0, 0x080, 0x060, 0x04d, 0x040, 0x036, 0x02d, 0x026,
|
||||||
0x020, 0x01b, 0x016, 0x011, 0x00d, 0x00a, 0x006, 0x003};
|
0x020, 0x01b, 0x016, 0x011, 0x00d, 0x00a, 0x006, 0x003};
|
||||||
|
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
|
DEFINE_DEVICE_TYPE(ROLAND_SA, roland_sa_device, "roland_sa", "Roland SA CPU-B Sound Generator")
|
||||||
|
|
||||||
roland_sa_device::roland_sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
roland_sa_device::roland_sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
: device_t(mconfig, ROLAND_SA, tag, owner, clock)
|
: device_t(mconfig, ROLAND_SA, tag, owner, clock)
|
||||||
, device_sound_interface(mconfig, *this)
|
, device_sound_interface(mconfig, *this)
|
||||||
, m_int_callback(*this)
|
, m_int_callback(*this)
|
||||||
, m_stream(nullptr)
|
, m_stream(nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void roland_sa_device::device_start()
|
void roland_sa_device::device_start()
|
||||||
{
|
{
|
||||||
m_stream = stream_alloc(0, 2, 20000, STREAM_SYNCHRONOUS);
|
m_stream = stream_alloc(0, 2, 20000, STREAM_SYNCHRONOUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void roland_sa_device::device_reset()
|
void roland_sa_device::device_reset()
|
||||||
{
|
{
|
||||||
m_int_callback(CLEAR_LINE);
|
m_int_callback(CLEAR_LINE);
|
||||||
|
|
||||||
m_irq_id = 0;
|
m_irq_id = 0;
|
||||||
m_irq_triggered = false;
|
m_irq_triggered = false;
|
||||||
memset(m_parts, 0, sizeof(m_parts));
|
memset(m_parts, 0, sizeof(m_parts));
|
||||||
}
|
}
|
||||||
|
|
||||||
void roland_sa_device::set_sr_mode(bool mode)
|
void roland_sa_device::set_sr_mode(bool mode)
|
||||||
{
|
{
|
||||||
if (m_sr_mode != mode)
|
if (m_sr_mode != mode)
|
||||||
m_stream->set_sample_rate(mode ? 20000 : 32000);
|
m_stream->set_sample_rate(mode ? 20000 : 32000);
|
||||||
m_sr_mode = mode;
|
m_sr_mode = mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void roland_sa_device::load_roms(uint8_t *ic5, uint8_t *ic6, uint8_t *ic7)
|
void roland_sa_device::load_roms(uint8_t *ic5, uint8_t *ic6, uint8_t *ic7)
|
||||||
{
|
{
|
||||||
// Exp table to for the subphase
|
// Exp table to for the subphase
|
||||||
// TODO: This is bit accurate, but I want to believe there is a better way to compute this function
|
// TODO: This is bit accurate, but I want to believe there is a better way to compute this function
|
||||||
for (size_t i = 0; i < 0x10000; i++)
|
for (size_t i = 0; i < 0x10000; i++)
|
||||||
{
|
{
|
||||||
// ROM IC11
|
// ROM IC11
|
||||||
uint16_t r11_pos = i % 4096;
|
uint16_t r11_pos = i % 4096;
|
||||||
uint16_t r11 = (uint16_t)round(exp2f(13.0 + r11_pos / 4096.0) - 4096 * 2);
|
uint16_t r11 = (uint16_t)round(exp2f(13.0 + r11_pos / 4096.0) - 4096 * 2);
|
||||||
bool r11_12 = !((r11 >> 12) & 1);
|
bool r11_12 = !((r11 >> 12) & 1);
|
||||||
bool r11_11 = !((r11 >> 11) & 1);
|
bool r11_11 = !((r11 >> 11) & 1);
|
||||||
bool r11_10 = !((r11 >> 10) & 1);
|
bool r11_10 = !((r11 >> 10) & 1);
|
||||||
bool r11_9 = !((r11 >> 9) & 1);
|
bool r11_9 = !((r11 >> 9) & 1);
|
||||||
bool r11_8 = !((r11 >> 8) & 1);
|
bool r11_8 = !((r11 >> 8) & 1);
|
||||||
bool r11_7 = !((r11 >> 7) & 1);
|
bool r11_7 = !((r11 >> 7) & 1);
|
||||||
bool r11_6 = !((r11 >> 6) & 1);
|
bool r11_6 = !((r11 >> 6) & 1);
|
||||||
bool r11_5 = !((r11 >> 5) & 1);
|
bool r11_5 = !((r11 >> 5) & 1);
|
||||||
bool r11_4 = (r11 >> 4) & 1;
|
bool r11_4 = (r11 >> 4) & 1;
|
||||||
bool r11_3 = (r11 >> 3) & 1;
|
bool r11_3 = (r11 >> 3) & 1;
|
||||||
bool r11_2 = (r11 >> 2) & 1;
|
bool r11_2 = (r11 >> 2) & 1;
|
||||||
bool r11_1 = (r11 >> 1) & 1;
|
bool r11_1 = (r11 >> 1) & 1;
|
||||||
bool r11_0 = (r11 >> 0) & 1;
|
bool r11_0 = (r11 >> 0) & 1;
|
||||||
|
|
||||||
uint8_t param_bus_0 = ((i / 0x1000) >> 0) & 1;
|
uint8_t param_bus_0 = ((i / 0x1000) >> 0) & 1;
|
||||||
uint8_t param_bus_1 = ((i / 0x1000) >> 1) & 1;
|
uint8_t param_bus_1 = ((i / 0x1000) >> 1) & 1;
|
||||||
uint8_t param_bus_2 = ((i / 0x1000) >> 2) & 1;
|
uint8_t param_bus_2 = ((i / 0x1000) >> 2) & 1;
|
||||||
uint8_t param_bus_3 = ((i / 0x1000) >> 3) & 1;
|
uint8_t param_bus_3 = ((i / 0x1000) >> 3) & 1;
|
||||||
|
|
||||||
// Copy pasted from silicon
|
// Copy pasted from silicon
|
||||||
bool result_b0 = (!r11_6 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_4 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_3 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_2 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_1 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_0 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3);
|
bool result_b0 = (!r11_6 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_4 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_3 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_2 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_1 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_0 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3);
|
||||||
bool result_b1 = (!r11_7 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_4 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_3 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_2 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_1 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_0 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3);
|
bool result_b1 = (!r11_7 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_4 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_3 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_2 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_1 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_0 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3);
|
||||||
bool result_b2 = !(!((!r11_8 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_4 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_3 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_2 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_1 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !(r11_0 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3));
|
bool result_b2 = !(!((!r11_8 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (r11_4 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_3 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_2 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_1 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !(r11_0 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3));
|
||||||
bool result_b3 = !(!((!r11_9 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_4 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_3 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_2 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_1 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_0 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b3 = !(!((!r11_9 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_5 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_4 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_3 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_2 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_1 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_0 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b4 = !(!((!r11_10 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_4 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_3 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_2 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_1 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_0 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (0 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b4 = !(!((!r11_10 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_6 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (r11_4 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_3 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_2 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_1 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_0 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (0 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b5 = !(!((!r11_11 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_5 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_4 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_3 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_2 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_1 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_0 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b5 = !(!((!r11_11 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_5 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (r11_4 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_3 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_2 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_1 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_0 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b6 = !(!((!r11_12 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_6 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_4 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_3 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_2 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_1 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b6 = !(!((!r11_12 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_6 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_5 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((r11_4 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_3 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_2 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_1 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b7 = !(!((1 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((!r11_5 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_4 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_3 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_2 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b7 = !(!((1 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_6 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((!r11_5 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_4 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_3 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_2 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b8 = !(!((0 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (1 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((!r11_6 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_5 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_4 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_3 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b8 = !(!((0 && !param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (1 && param_bus_0 && !param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3)) && !((!r11_6 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_5 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (r11_4 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_3 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b9 = !(!((1 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_6 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3)) && !((!r11_5 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_4 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
bool result_b9 = !(!((1 && !param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_7 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_6 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3)) && !((!r11_5 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (r11_4 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)));
|
||||||
bool result_b10 = !(!((1 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_7 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_6 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)) && !(!r11_5 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
bool result_b10 = !(!((1 && param_bus_0 && param_bus_1 && !param_bus_2 && !param_bus_3) || (!r11_12 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_8 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_7 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_6 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3)) && !(!r11_5 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
||||||
bool result_b11 = (1 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_8 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_7 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_6 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3);
|
bool result_b11 = (1 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_9 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_8 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_7 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_6 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3);
|
||||||
bool result_b12 = (0 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (1 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_12 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_9 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_8 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_7 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3);
|
bool result_b12 = (0 && !param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (1 && param_bus_0 && !param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_12 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_10 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_9 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_8 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_7 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3);
|
||||||
bool result_b13 = (1 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_10 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_9 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_8 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3);
|
bool result_b13 = (1 && !param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_12 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) || (!r11_11 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_10 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_9 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) || (!r11_8 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3);
|
||||||
bool result_b14 = !(1 && !(1 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) && !(!r11_12 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_11 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_10 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_9 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
bool result_b14 = !(1 && !(1 && param_bus_0 && param_bus_1 && param_bus_2 && !param_bus_3) && !(!r11_12 && !param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_11 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_10 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_9 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
||||||
bool result_b15 = !(!(!param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_12 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_11 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_10 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
bool result_b15 = !(!(!param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_12 && param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_11 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_10 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
||||||
bool result_b16 = !(!(param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_12 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_11 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
bool result_b16 = !(!(param_bus_0 && !param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_12 && !param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_11 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
||||||
bool result_b17 = !(!(!param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_12 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
bool result_b17 = !(!(!param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3) && !(!r11_12 && param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3));
|
||||||
bool result_b18 = param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3;
|
bool result_b18 = param_bus_0 && param_bus_1 && !param_bus_2 && param_bus_3;
|
||||||
|
|
||||||
uint32_t result =
|
|
||||||
result_b18 << 18 | result_b17 << 17 | result_b16 << 16 | result_b15 << 15 | result_b14 << 14 | result_b13 << 13 |
|
|
||||||
result_b12 << 12 | result_b11 << 11 | result_b10 << 10 | result_b9 << 9 | result_b8 << 8 | result_b7 << 7 |
|
|
||||||
result_b6 << 6 | result_b5 << 5 | result_b4 << 4 | result_b3 << 3 | result_b2 << 2 | result_b1 << 1 | result_b0 << 0;
|
|
||||||
phase_exp_table[i] = result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exp table to decode samples
|
uint32_t result =
|
||||||
// TODO: This is bit accurate, but I want to believe there is a better way to compute this function
|
result_b18 << 18 | result_b17 << 17 | result_b16 << 16 | result_b15 << 15 | result_b14 << 14 | result_b13 << 13 |
|
||||||
for (size_t i = 0; i < 0x8000; i++)
|
result_b12 << 12 | result_b11 << 11 | result_b10 << 10 | result_b9 << 9 | result_b8 << 8 | result_b7 << 7 |
|
||||||
{
|
result_b6 << 6 | result_b5 << 5 | result_b4 << 4 | result_b3 << 3 | result_b2 << 2 | result_b1 << 1 | result_b0 << 0;
|
||||||
// ROM IC10
|
phase_exp_table[i] = result;
|
||||||
uint16_t r10_pos = i % 1024;
|
}
|
||||||
uint16_t r10 = (uint16_t)round(exp2f(11.0 + ~r10_pos / 1024.0) - 1024);
|
|
||||||
bool r10_9 = (r10 >> 0) & 1;
|
|
||||||
bool r10_8 = (r10 >> 1) & 1;
|
|
||||||
bool r10_0 = (r10 >> 2) & 1;
|
|
||||||
bool r10_1 = (r10 >> 3) & 1;
|
|
||||||
bool r10_2 = (r10 >> 4) & 1;
|
|
||||||
bool r10_3 = !((r10 >> 5) & 1);
|
|
||||||
bool r10_4 = !((r10 >> 6) & 1);
|
|
||||||
bool r10_5 = !((r10 >> 7) & 1);
|
|
||||||
bool r10_6 = !((r10 >> 8) & 1);
|
|
||||||
bool r10_7 = !((r10 >> 9) & 1);
|
|
||||||
|
|
||||||
bool wavein_sign = i >= 0x4000;
|
// Exp table to decode samples
|
||||||
uint8_t add_r_0 = ((i / 0x400) >> 0) & 1;
|
// TODO: This is bit accurate, but I want to believe there is a better way to compute this function
|
||||||
uint8_t add_r_1 = ((i / 0x400) >> 1) & 1;
|
for (size_t i = 0; i < 0x8000; i++)
|
||||||
uint8_t add_r_2 = ((i / 0x400) >> 2) & 1;
|
{
|
||||||
uint8_t add_r_3 = ((i / 0x400) >> 3) & 1;
|
// ROM IC10
|
||||||
|
uint16_t r10_pos = i % 1024;
|
||||||
|
uint16_t r10 = (uint16_t)round(exp2f(11.0 + ~r10_pos / 1024.0) - 1024);
|
||||||
|
bool r10_9 = BIT(r10, 0);
|
||||||
|
bool r10_8 = BIT(r10, 1);
|
||||||
|
bool r10_0 = BIT(r10, 2);
|
||||||
|
bool r10_1 = BIT(r10, 3);
|
||||||
|
bool r10_2 = BIT(r10, 4);
|
||||||
|
bool r10_3 = BIT(~r10, 5);
|
||||||
|
bool r10_4 = BIT(~r10, 6);
|
||||||
|
bool r10_5 = BIT(~r10, 7);
|
||||||
|
bool r10_6 = BIT(~r10, 8);
|
||||||
|
bool r10_7 = BIT(~r10, 9);
|
||||||
|
|
||||||
// Copy pasted from silicon
|
bool wavein_sign = i >= 0x4000;
|
||||||
bool result_b14 = !((!(!add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) && !wavein_sign) || (!add_r_3 && !add_r_2 && !add_r_1 && !add_r_0 && wavein_sign));
|
uint8_t add_r_0 = BIT(i / 0x400, 0);
|
||||||
bool result_b13 = !((((!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && wavein_sign) || (!((!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !wavein_sign));
|
uint8_t add_r_1 = BIT(i / 0x400, 1);
|
||||||
bool result_b12 = !((((!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && wavein_sign) || (!((!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !wavein_sign));
|
uint8_t add_r_2 = BIT(i / 0x400, 2);
|
||||||
bool result_b11 = !((((!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && wavein_sign) || (!((!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !wavein_sign));
|
uint8_t add_r_3 = BIT(i / 0x400, 3);
|
||||||
bool result_b10 = !((!((!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !(!add_r_3 && add_r_2 && !add_r_1 && !add_r_0) && !wavein_sign) || (!(!((!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !(!add_r_3 && add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign));
|
|
||||||
bool result_b9 = !((((1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign) || (!((1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !wavein_sign));
|
|
||||||
bool result_b8 = !((((1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (1 && 0)) && wavein_sign) || (!((1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (1 && 0)) && !wavein_sign));
|
|
||||||
bool result_b7 = !((((1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign) || (!((1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !wavein_sign));
|
|
||||||
bool result_b6 = !((!((1 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !(r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) && !wavein_sign) || (!(!((1 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !(r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign));
|
|
||||||
bool result_b5 = !((!((!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !wavein_sign) || (!(!((!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && !add_r_1 && add_r_0))) && wavein_sign));
|
|
||||||
bool result_b4 = !((!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && !add_r_0))) && wavein_sign));
|
|
||||||
bool result_b3 = !((!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && add_r_0))) && wavein_sign));
|
|
||||||
bool result_b2 = !((!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && !add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && !add_r_0))) && wavein_sign));
|
|
||||||
bool result_b1 = !((!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && add_r_0))) && wavein_sign));
|
|
||||||
bool result_b0 = !((!((r10_8 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (r10_2 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && add_r_2 && add_r_1 && !add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (r10_2 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && add_r_2 && add_r_1 && !add_r_0))) && wavein_sign));
|
|
||||||
|
|
||||||
uint16_t result =
|
|
||||||
result_b14 << 14 | result_b13 << 13 | result_b12 << 12 | result_b11 << 11 | result_b10 << 10 |
|
|
||||||
result_b9 << 9 | result_b8 << 8 | result_b7 << 7 | result_b6 << 6 | result_b5 << 5 |
|
|
||||||
result_b4 << 4 | result_b3 << 3 | result_b2 << 2 | result_b1 << 1 | result_b0 << 0;
|
|
||||||
samples_exp_table[i] = result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wave rom values
|
// Copy pasted from silicon
|
||||||
for (size_t i = 0; i < 0x20000; i++)
|
bool result_b14 = !((!(!add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) && !wavein_sign) || (!add_r_3 && !add_r_2 && !add_r_1 && !add_r_0 && wavein_sign));
|
||||||
{
|
bool result_b13 = !((((!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && wavein_sign) || (!((!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !wavein_sign));
|
||||||
size_t descrambled_i = (
|
bool result_b12 = !((((!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && wavein_sign) || (!((!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !wavein_sign));
|
||||||
((i >> 0) & 1) << 0 |
|
bool result_b11 = !((((!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && wavein_sign) || (!((!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !wavein_sign));
|
||||||
((~i >> 1) & 1) << 1 |
|
bool result_b10 = !((!((!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !(!add_r_3 && add_r_2 && !add_r_1 && !add_r_0) && !wavein_sign) || (!(!((!r10_7 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !(!add_r_3 && add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign));
|
||||||
((i >> 2) & 1) << 2 |
|
bool result_b9 = !((((1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign) || (!((1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !wavein_sign));
|
||||||
((~i >> 3) & 1) << 3 |
|
bool result_b8 = !((((1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (1 && 0)) && wavein_sign) || (!((1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (1 && 0)) && !wavein_sign));
|
||||||
((i >> 4) & 1) << 4 |
|
bool result_b7 = !((((1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign) || (!((1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !wavein_sign));
|
||||||
((~i >> 5) & 1) << 5 |
|
bool result_b6 = !((!((1 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !(r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) && !wavein_sign) || (!(!((1 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !(r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && wavein_sign));
|
||||||
((i >> 6) & 1) << 6 |
|
bool result_b5 = !((!((!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !wavein_sign) || (!(!((!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_6 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && !add_r_1 && add_r_0))) && wavein_sign));
|
||||||
((i >> 7) & 1) << 7 |
|
bool result_b4 = !((!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && !add_r_3 && add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && !add_r_0))) && wavein_sign));
|
||||||
((~i >> 8) & 1) << 8 |
|
bool result_b3 = !((!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_4 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (add_r_3 && !add_r_2 && add_r_1 && add_r_0))) && wavein_sign));
|
||||||
((~i >> 9) & 1) << 9 |
|
bool result_b2 = !((!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && !add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (!r10_3 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && !add_r_0))) && wavein_sign));
|
||||||
((i >> 10) & 1) << 10 |
|
bool result_b1 = !((!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_0 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_2 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0)) && !((!r10_6 && add_r_3 && !add_r_2 && add_r_1 && add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (add_r_3 && add_r_2 && !add_r_1 && add_r_0))) && wavein_sign));
|
||||||
((i >> 11) & 1) << 11 |
|
bool result_b0 = !((!((r10_8 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (r10_2 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && add_r_2 && add_r_1 && !add_r_0)) && !wavein_sign) || (!(!((r10_8 && !add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (r10_9 && !add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (r10_0 && !add_r_3 && add_r_2 && add_r_1 && !add_r_0) || (r10_1 && !add_r_3 && add_r_2 && add_r_1 && add_r_0) || (r10_2 && add_r_3 && !add_r_2 && !add_r_1 && !add_r_0) || (!r10_3 && add_r_3 && !add_r_2 && !add_r_1 && add_r_0) || (!r10_4 && add_r_3 && !add_r_2 && add_r_1 && !add_r_0) || (!r10_5 && add_r_3 && !add_r_2 && add_r_1 && add_r_0)) && !((!r10_6 && add_r_3 && add_r_2 && !add_r_1 && !add_r_0) || (!r10_7 && add_r_3 && add_r_2 && !add_r_1 && add_r_0) || (add_r_3 && add_r_2 && add_r_1 && !add_r_0))) && wavein_sign));
|
||||||
((i >> 12) & 1) << 12 |
|
|
||||||
((i >> 13) & 1) << 13 |
|
|
||||||
((i >> 14) & 1) << 14 |
|
|
||||||
((i >> 15) & 1) << 15 |
|
|
||||||
((i >> 16) & 1) << 16
|
|
||||||
);
|
|
||||||
|
|
||||||
uint16_t exp_sample = (
|
uint16_t result =
|
||||||
((ic5[descrambled_i] >> 0) & 1) << 13 |
|
result_b14 << 14 | result_b13 << 13 | result_b12 << 12 | result_b11 << 11 | result_b10 << 10 |
|
||||||
((ic6[descrambled_i] >> 4) & 1) << 12 |
|
result_b9 << 9 | result_b8 << 8 | result_b7 << 7 | result_b6 << 6 | result_b5 << 5 |
|
||||||
((ic7[descrambled_i] >> 4) & 1) << 11 |
|
result_b4 << 4 | result_b3 << 3 | result_b2 << 2 | result_b1 << 1 | result_b0 << 0;
|
||||||
((~ic6[descrambled_i] >> 0) & 1) << 10 |
|
samples_exp_table[i] = result;
|
||||||
((ic7[descrambled_i] >> 7) & 1) << 9 |
|
}
|
||||||
((ic5[descrambled_i] >> 7) & 1) << 8 |
|
|
||||||
((~ic5[descrambled_i] >> 5) & 1) << 7 |
|
|
||||||
((ic6[descrambled_i] >> 2) & 1) << 6 |
|
|
||||||
((ic7[descrambled_i] >> 2) & 1) << 5 |
|
|
||||||
((ic7[descrambled_i] >> 1) & 1) << 4 |
|
|
||||||
((~ic5[descrambled_i] >> 1) & 1) << 3 |
|
|
||||||
((ic5[descrambled_i] >> 3) & 1) << 2 |
|
|
||||||
((ic6[descrambled_i] >> 5) & 1) << 1 |
|
|
||||||
((~ic6[descrambled_i] >> 7) & 1) << 0
|
|
||||||
);
|
|
||||||
bool exp_sign = (~ic7[descrambled_i] >> 3) & 1;
|
|
||||||
samples_exp[i] = exp_sample;
|
|
||||||
samples_exp_sign[i] = exp_sign;
|
|
||||||
|
|
||||||
uint16_t delta_sample = (
|
// Wave rom values
|
||||||
((~ic7[descrambled_i] >> 6) & 1) << 8 |
|
for (size_t i = 0; i < 0x20000; i++)
|
||||||
((ic5[descrambled_i] >> 4) & 1) << 7 |
|
{
|
||||||
((ic7[descrambled_i] >> 0) & 1) << 6 |
|
const size_t descrambled_i = i ^ 0b0'00000011'00101010;
|
||||||
((~ic6[descrambled_i] >> 3) & 1) << 5 |
|
|
||||||
((ic5[descrambled_i] >> 2) & 1) << 4 |
|
const uint16_t exp_sample =
|
||||||
((~ic5[descrambled_i] >> 6) & 1) << 3 |
|
BIT( ic5[descrambled_i], 0) << 13 |
|
||||||
((ic6[descrambled_i] >> 6) & 1) << 2 |
|
BIT( ic6[descrambled_i], 4) << 12 |
|
||||||
((ic7[descrambled_i] >> 5) & 1) << 1 |
|
BIT( ic7[descrambled_i], 4) << 11 |
|
||||||
((~ic6[descrambled_i] >> 7) & 1) << 0
|
BIT(~ic6[descrambled_i], 0) << 10 |
|
||||||
);
|
BIT( ic7[descrambled_i], 7) << 9 |
|
||||||
bool delta_sign = (ic6[descrambled_i] >> 1) & 1;
|
BIT( ic5[descrambled_i], 7) << 8 |
|
||||||
samples_delta[i] = delta_sample;
|
BIT(~ic5[descrambled_i], 5) << 7 |
|
||||||
samples_delta_sign[i] = delta_sign;
|
BIT( ic6[descrambled_i], 2) << 6 |
|
||||||
}
|
BIT( ic7[descrambled_i], 2) << 5 |
|
||||||
|
BIT( ic7[descrambled_i], 1) << 4 |
|
||||||
|
BIT(~ic5[descrambled_i], 1) << 3 |
|
||||||
|
BIT( ic5[descrambled_i], 3) << 2 |
|
||||||
|
BIT( ic6[descrambled_i], 5) << 1 |
|
||||||
|
BIT(~ic6[descrambled_i], 7) << 0;
|
||||||
|
const bool exp_sign = BIT(~ic7[descrambled_i], 3);
|
||||||
|
samples_exp[i] = exp_sample;
|
||||||
|
samples_exp_sign[i] = exp_sign;
|
||||||
|
|
||||||
|
const uint16_t delta_sample =
|
||||||
|
BIT(~ic7[descrambled_i], 6) << 8 |
|
||||||
|
BIT( ic5[descrambled_i], 4) << 7 |
|
||||||
|
BIT( ic7[descrambled_i], 0) << 6 |
|
||||||
|
BIT(~ic6[descrambled_i], 3) << 5 |
|
||||||
|
BIT( ic5[descrambled_i], 2) << 4 |
|
||||||
|
BIT(~ic5[descrambled_i], 6) << 3 |
|
||||||
|
BIT( ic6[descrambled_i], 6) << 2 |
|
||||||
|
BIT( ic7[descrambled_i], 5) << 1 |
|
||||||
|
BIT(~ic6[descrambled_i], 7) << 0;
|
||||||
|
const bool delta_sign = BIT(ic6[descrambled_i], 1);
|
||||||
|
samples_delta[i] = delta_sample;
|
||||||
|
samples_delta_sign[i] = delta_sign;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 roland_sa_device::read(offs_t offset)
|
u8 roland_sa_device::read(offs_t offset)
|
||||||
{
|
{
|
||||||
if (!machine().side_effects_disabled())
|
if (!machine().side_effects_disabled())
|
||||||
return m_irq_id;
|
return m_irq_id;
|
||||||
|
|
||||||
return m_ctrl_mem[offset];
|
return m_ctrl_mem[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
void roland_sa_device::write(offs_t offset, u8 data)
|
void roland_sa_device::write(offs_t offset, u8 data)
|
||||||
{
|
{
|
||||||
m_int_callback(CLEAR_LINE);
|
m_int_callback(CLEAR_LINE);
|
||||||
m_irq_triggered = false;
|
m_irq_triggered = false;
|
||||||
|
|
||||||
m_ctrl_mem[offset] = data;
|
m_ctrl_mem[offset] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void roland_sa_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs)
|
void roland_sa_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs)
|
||||||
{
|
{
|
||||||
outputs[0].fill(0);
|
outputs[0].fill(0);
|
||||||
|
|
||||||
int32_t *int_buffer = new int32_t[outputs[0].samples()];
|
std::unique_ptr<int32_t []> int_buffer = make_unique_clear<int32_t []>(outputs[0].samples());
|
||||||
for (size_t i = 0; i < outputs[0].samples(); i++)
|
|
||||||
int_buffer[i] = 0;
|
|
||||||
|
|
||||||
for (size_t voiceI = 0; voiceI < NUM_VOICES; voiceI++)
|
for (size_t voiceI = 0; voiceI < NUM_VOICES; voiceI++)
|
||||||
{
|
{
|
||||||
for (size_t partI = 0; partI < PARTS_PER_VOICE; partI++)
|
for (size_t partI = 0; partI < PARTS_PER_VOICE; partI++)
|
||||||
{
|
{
|
||||||
SA_Part &part = m_parts[voiceI][partI];
|
SA_Part &part = m_parts[voiceI][partI];
|
||||||
size_t mem_offset = voiceI * 0x100 + partI * 0x10;
|
size_t mem_offset = voiceI * 0x100 + partI * 0x10;
|
||||||
uint32_t pitch_lut_i = m_ctrl_mem[mem_offset + 1] | (m_ctrl_mem[mem_offset + 0] << 8);
|
uint32_t pitch_lut_i = m_ctrl_mem[mem_offset + 1] | (m_ctrl_mem[mem_offset + 0] << 8);
|
||||||
uint32_t wave_addr_loop = m_ctrl_mem[mem_offset + 2];
|
uint32_t wave_addr_loop = m_ctrl_mem[mem_offset + 2];
|
||||||
uint32_t wave_addr_high = m_ctrl_mem[mem_offset + 3];
|
uint32_t wave_addr_high = m_ctrl_mem[mem_offset + 3];
|
||||||
uint32_t env_dest = m_ctrl_mem[mem_offset + 4];
|
uint32_t env_dest = m_ctrl_mem[mem_offset + 4];
|
||||||
uint32_t env_speed = m_ctrl_mem[mem_offset + 5];
|
uint32_t env_speed = m_ctrl_mem[mem_offset + 5];
|
||||||
uint32_t flags = m_ctrl_mem[mem_offset + 6];
|
uint32_t flags = m_ctrl_mem[mem_offset + 6];
|
||||||
uint32_t env_offset = m_ctrl_mem[mem_offset + 7];
|
uint32_t env_offset = m_ctrl_mem[mem_offset + 7];
|
||||||
|
|
||||||
bool irq = false;
|
bool irq = false;
|
||||||
|
|
||||||
for (size_t i = 0; i < outputs[0].samples(); i++)
|
for (size_t i = 0; i < outputs[0].samples(); i++)
|
||||||
{
|
{
|
||||||
uint32_t volume;
|
uint32_t volume;
|
||||||
uint32_t waverom_addr;
|
uint32_t waverom_addr;
|
||||||
bool ag3_sel_sample_type;
|
bool ag3_sel_sample_type;
|
||||||
bool ag1_phase_hi;
|
bool ag1_phase_hi;
|
||||||
|
|
||||||
// IC19
|
// IC19
|
||||||
{
|
{
|
||||||
bool env_speed_some_high =
|
bool env_speed_some_high =
|
||||||
BIT(env_speed, 6) || BIT(env_speed, 5) || BIT(env_speed, 4) || BIT(env_speed, 3) ||
|
BIT(env_speed, 6) || BIT(env_speed, 5) || BIT(env_speed, 4) || BIT(env_speed, 3) ||
|
||||||
BIT(env_speed, 2) || BIT(env_speed, 1) || BIT(env_speed, 0);
|
BIT(env_speed, 2) || BIT(env_speed, 1) || BIT(env_speed, 0);
|
||||||
|
|
||||||
uint32_t adder1_a = part.env_value;
|
uint32_t adder1_a = part.env_value;
|
||||||
if (BIT(flags, 0))
|
if (BIT(flags, 0))
|
||||||
adder1_a = 1 << 25;
|
adder1_a = 1 << 25;
|
||||||
uint32_t adder1_b = env_table[env_speed];
|
uint32_t adder1_b = env_table[env_speed];
|
||||||
bool adder1_ci = env_speed_some_high && BIT(env_speed, 7);
|
bool adder1_ci = env_speed_some_high && BIT(env_speed, 7);
|
||||||
if (adder1_ci)
|
if (adder1_ci)
|
||||||
adder1_b |= 0x7f << 21;
|
adder1_b |= 0x7f << 21;
|
||||||
|
|
||||||
uint32_t adder3_o = 1 + (adder1_a >> 20) + env_offset;
|
uint32_t adder3_o = 1 + (adder1_a >> 20) + env_offset;
|
||||||
uint32_t adder3_of = adder3_o > 0xff;
|
uint32_t adder3_of = adder3_o > 0xff;
|
||||||
adder3_o &= 0xff;
|
adder3_o &= 0xff;
|
||||||
|
|
||||||
volume = ~(
|
volume = ~(
|
||||||
((adder1_a >> 14) & 0b111111) |
|
((adder1_a >> 14) & 0b111111) |
|
||||||
((adder3_o & 0b1111) << 6) |
|
((adder3_o & 0b1111) << 6) |
|
||||||
(adder3_of ? ((adder3_o & 0b11110000) << 6) : 0)
|
(adder3_of ? ((adder3_o & 0b11110000) << 6) : 0)
|
||||||
) & 0x3fff;
|
) & 0x3fff;
|
||||||
|
|
||||||
uint32_t adder1_o = adder1_a + adder1_b + (adder1_ci ? 1 : 0);
|
uint32_t adder1_o = adder1_a + adder1_b + (adder1_ci ? 1 : 0);
|
||||||
uint32_t adder1_of = adder1_o > 0xfffffff;
|
uint32_t adder1_of = adder1_o > 0xfffffff;
|
||||||
adder1_o &= 0xfffffff;
|
adder1_o &= 0xfffffff;
|
||||||
|
|
||||||
uint32_t adder2_o = (adder1_o >> 20) + (~env_dest & 0xff) + 1;
|
uint32_t adder2_o = (adder1_o >> 20) + (~env_dest & 0xff) + 1;
|
||||||
uint32_t adder2_of = adder2_o > 0xff;
|
uint32_t adder2_of = adder2_o > 0xff;
|
||||||
|
|
||||||
bool end_reached = env_speed_some_high && ((adder1_of != (BIT(env_speed, 7))) || ((BIT(env_speed, 7)) != adder2_of));
|
bool end_reached = env_speed_some_high && ((adder1_of != (BIT(env_speed, 7))) || ((BIT(env_speed, 7)) != adder2_of));
|
||||||
irq |= end_reached;
|
irq |= end_reached;
|
||||||
|
|
||||||
part.env_value = end_reached ? (env_dest << 20) : adder1_o;
|
part.env_value = end_reached ? (env_dest << 20) : adder1_o;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IC9
|
// IC9
|
||||||
{
|
{
|
||||||
uint32_t adder1 = (phase_exp_table[pitch_lut_i] + part.sub_phase) & 0xffffff;
|
uint32_t adder1 = (phase_exp_table[pitch_lut_i] + part.sub_phase) & 0xffffff;
|
||||||
uint32_t adder2 = 1 + (adder1 >> 16) + ((~wave_addr_loop) & 0xff);
|
uint32_t adder2 = 1 + (adder1 >> 16) + ((~wave_addr_loop) & 0xff);
|
||||||
bool adder2_co = adder2 > 0xff;
|
bool adder2_co = adder2 > 0xff;
|
||||||
adder2 &= 0xff;
|
adder2 &= 0xff;
|
||||||
uint32_t adder1_and = BIT(flags, 1) ? 0 : (adder1 & 0xffff);
|
uint32_t adder1_and = BIT(flags, 1) ? 0 : (adder1 & 0xffff);
|
||||||
adder1_and |= (BIT(flags, 1) ? 0 : (adder2_co ? adder2 : (adder1 >> 16))) << 16;
|
adder1_and |= (BIT(flags, 1) ? 0 : (adder2_co ? adder2 : (adder1 >> 16))) << 16;
|
||||||
|
|
||||||
part.sub_phase = adder1_and;
|
part.sub_phase = adder1_and;
|
||||||
waverom_addr = (wave_addr_high << 11) | ((part.sub_phase >> 9) & 0x7ff);
|
waverom_addr = (wave_addr_high << 11) | ((part.sub_phase >> 9) & 0x7ff);
|
||||||
|
|
||||||
ag3_sel_sample_type = BIT(waverom_addr, 16) || BIT(waverom_addr, 15) || BIT(waverom_addr, 14) ||
|
ag3_sel_sample_type = BIT(waverom_addr, 16) || BIT(waverom_addr, 15) || BIT(waverom_addr, 14) ||
|
||||||
!((BIT(waverom_addr, 13) && !BIT(waverom_addr, 11) && !BIT(waverom_addr, 12)) || !BIT(waverom_addr, 13));
|
!((BIT(waverom_addr, 13) && !BIT(waverom_addr, 11) && !BIT(waverom_addr, 12)) || !BIT(waverom_addr, 13));
|
||||||
ag1_phase_hi = (
|
ag1_phase_hi = (
|
||||||
(BIT(pitch_lut_i, 15) && BIT(pitch_lut_i, 14)) ||
|
(BIT(pitch_lut_i, 15) && BIT(pitch_lut_i, 14)) ||
|
||||||
(BIT(part.sub_phase, 23) || BIT(part.sub_phase, 22) || BIT(part.sub_phase, 21) || BIT(part.sub_phase, 20)) ||
|
(BIT(part.sub_phase, 23) || BIT(part.sub_phase, 22) || BIT(part.sub_phase, 21) || BIT(part.sub_phase, 20)) ||
|
||||||
BIT(flags, 1)
|
BIT(flags, 1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// IC8
|
// IC8
|
||||||
{
|
{
|
||||||
uint32_t waverom_pa = samples_exp[waverom_addr];
|
uint32_t waverom_pa = samples_exp[waverom_addr];
|
||||||
uint32_t waverom_pb = samples_delta[waverom_addr];
|
uint32_t waverom_pb = samples_delta[waverom_addr];
|
||||||
bool sign_pa = samples_exp_sign[waverom_addr];
|
bool sign_pa = samples_exp_sign[waverom_addr];
|
||||||
bool sign_pb = samples_delta_sign[waverom_addr];
|
bool sign_pb = samples_delta_sign[waverom_addr];
|
||||||
waverom_pa |= ag3_sel_sample_type ? 1 : 0;
|
waverom_pa |= ag3_sel_sample_type ? 1 : 0;
|
||||||
waverom_pb |= ag3_sel_sample_type ? 0 : 1;
|
waverom_pb |= ag3_sel_sample_type ? 0 : 1;
|
||||||
|
|
||||||
if (ag1_phase_hi)
|
if (ag1_phase_hi)
|
||||||
volume |= 0b1111 << 10;
|
volume |= 0b1111 << 10;
|
||||||
|
|
||||||
uint32_t tmp_1, tmp_2;
|
uint32_t tmp_1, tmp_2;
|
||||||
|
|
||||||
uint32_t adder1_o = volume + waverom_pa;
|
uint32_t adder1_o = volume + waverom_pa;
|
||||||
bool adder1_co = adder1_o > 0x3fff;
|
bool adder1_co = adder1_o > 0x3fff;
|
||||||
adder1_o &= 0x3fff;
|
adder1_o &= 0x3fff;
|
||||||
if (adder1_co)
|
if (adder1_co)
|
||||||
adder1_o |= 0x3c00;
|
adder1_o |= 0x3c00;
|
||||||
tmp_1 = adder1_o;
|
tmp_1 = adder1_o;
|
||||||
|
|
||||||
uint32_t adder3_o = addr_table[(part.sub_phase >> 5) & 0xf] + (waverom_pb & 0x1ff);
|
uint32_t adder3_o = addr_table[(part.sub_phase >> 5) & 0xf] + (waverom_pb & 0x1ff);
|
||||||
bool adder3_of = adder3_o > 0x1ff;
|
bool adder3_of = adder3_o > 0x1ff;
|
||||||
adder3_o &= 0x1ff;
|
adder3_o &= 0x1ff;
|
||||||
if (adder3_of)
|
if (adder3_of)
|
||||||
adder3_o |= 0x1e0;
|
adder3_o |= 0x1e0;
|
||||||
|
|
||||||
adder1_o = volume + (adder3_o << 5);
|
|
||||||
adder1_co = adder1_o > 0x3fff;
|
|
||||||
adder1_o &= 0x3fff;
|
|
||||||
if (adder1_co)
|
|
||||||
adder1_o |= 0x3c00;
|
|
||||||
tmp_2 = adder1_o;
|
|
||||||
|
|
||||||
int32_t exp_val1 = samples_exp_table[(16384 * sign_pa) + (1024 * (tmp_1 >> 10)) + (tmp_1 & 1023)];
|
|
||||||
int32_t exp_val2 = samples_exp_table[(16384 * sign_pb) + (1024 * (tmp_2 >> 10)) + (tmp_2 & 1023)];
|
|
||||||
if (sign_pa)
|
|
||||||
exp_val1 = exp_val1 - 0x8000;
|
|
||||||
if (sign_pb)
|
|
||||||
exp_val2 = exp_val2 - 0x8000;
|
|
||||||
int32_t exp_val = exp_val1 + exp_val2;
|
|
||||||
|
|
||||||
int_buffer[i] += exp_val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (irq && !m_irq_triggered)
|
adder1_o = volume + (adder3_o << 5);
|
||||||
{
|
adder1_co = adder1_o > 0x3fff;
|
||||||
m_irq_id = partI | (voiceI << 4);
|
adder1_o &= 0x3fff;
|
||||||
m_int_callback(ASSERT_LINE);
|
if (adder1_co)
|
||||||
m_irq_triggered = true;
|
adder1_o |= 0x3c00;
|
||||||
}
|
tmp_2 = adder1_o;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < outputs[0].samples(); i++)
|
int32_t exp_val1 = samples_exp_table[(16384 * sign_pa) + (1024 * (tmp_1 >> 10)) + (tmp_1 & 1023)];
|
||||||
outputs[0].put_int(i, int_buffer[i], 0xffff);
|
int32_t exp_val2 = samples_exp_table[(16384 * sign_pb) + (1024 * (tmp_2 >> 10)) + (tmp_2 & 1023)];
|
||||||
|
if (sign_pa)
|
||||||
|
exp_val1 = exp_val1 - 0x8000;
|
||||||
|
if (sign_pb)
|
||||||
|
exp_val2 = exp_val2 - 0x8000;
|
||||||
|
int32_t exp_val = exp_val1 + exp_val2;
|
||||||
|
|
||||||
delete[] int_buffer;
|
int_buffer[i] += exp_val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (irq && !m_irq_triggered)
|
||||||
|
{
|
||||||
|
m_irq_id = partI | (voiceI << 4);
|
||||||
|
m_int_callback(ASSERT_LINE);
|
||||||
|
m_irq_triggered = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < outputs[0].samples(); i++)
|
||||||
|
outputs[0].put_int(i, int_buffer[i], 0xffff);
|
||||||
}
|
}
|
||||||
|
@ -8,53 +8,50 @@
|
|||||||
class roland_sa_device : public device_t, public device_sound_interface
|
class roland_sa_device : public device_t, public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
roland_sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
roland_sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
auto int_callback() { return m_int_callback.bind(); }
|
auto int_callback() { return m_int_callback.bind(); }
|
||||||
|
|
||||||
u8 read(offs_t offset);
|
u8 read(offs_t offset);
|
||||||
void write(offs_t offset, u8 data);
|
void write(offs_t offset, u8 data);
|
||||||
|
|
||||||
void load_roms(uint8_t *ic5, uint8_t *ic6, uint8_t *ic7);
|
void load_roms(uint8_t *ic5, uint8_t *ic6, uint8_t *ic7);
|
||||||
void set_sr_mode(bool mode);
|
void set_sr_mode(bool mode);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device_t implementation
|
// device_t implementation
|
||||||
virtual void device_start() override;
|
virtual void device_start() override ATTR_COLD;
|
||||||
virtual void device_reset() override;
|
virtual void device_reset() override ATTR_COLD;
|
||||||
|
|
||||||
// device_sound_interface implementation
|
// device_sound_interface implementation
|
||||||
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
|
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static constexpr unsigned NUM_VOICES = 16;
|
static constexpr unsigned NUM_VOICES = 16;
|
||||||
static constexpr unsigned PARTS_PER_VOICE = 10;
|
static constexpr unsigned PARTS_PER_VOICE = 10;
|
||||||
|
|
||||||
static const uint32_t env_table[];
|
uint16_t samples_exp[0x20000];
|
||||||
static const uint16_t addr_table[];
|
bool samples_exp_sign[0x20000];
|
||||||
|
uint16_t samples_delta[0x20000];
|
||||||
|
bool samples_delta_sign[0x20000];
|
||||||
|
|
||||||
uint16_t samples_exp[0x20000];
|
uint32_t phase_exp_table[0x10000];
|
||||||
bool samples_exp_sign[0x20000];
|
uint16_t samples_exp_table[0x8000];
|
||||||
uint16_t samples_delta[0x20000];
|
|
||||||
bool samples_delta_sign[0x20000];
|
|
||||||
|
|
||||||
uint32_t phase_exp_table[0x10000];
|
struct SA_Part
|
||||||
uint16_t samples_exp_table[0x8000];
|
{
|
||||||
|
uint32_t sub_phase;
|
||||||
|
uint32_t env_value;
|
||||||
|
};
|
||||||
|
|
||||||
struct SA_Part
|
devcb_write_line m_int_callback;
|
||||||
{
|
|
||||||
uint32_t sub_phase;
|
|
||||||
uint32_t env_value;
|
|
||||||
};
|
|
||||||
|
|
||||||
devcb_write_line m_int_callback;
|
sound_stream *m_stream; // stream handle
|
||||||
|
SA_Part m_parts[NUM_VOICES][PARTS_PER_VOICE]; // channel memory
|
||||||
sound_stream *m_stream; // stream handle
|
uint8_t m_ctrl_mem[0x2000]; // RAM IC12 (as the CPU writes it)
|
||||||
SA_Part m_parts[NUM_VOICES][PARTS_PER_VOICE]; // channel memory
|
uint8_t m_irq_id; // voice/part that triggered the IRQ
|
||||||
uint8_t m_ctrl_mem[0x2000]; // RAM IC12 (as the CPU writes it)
|
bool m_irq_triggered; // if there is an IRQ currently waiting
|
||||||
uint8_t m_irq_id; // voice/part that triggered the IRQ
|
bool m_sr_mode; // sample rate mode (true = 20 KHz, false = 32 KHz)
|
||||||
bool m_irq_triggered; // if there is an IRQ currently waiting
|
|
||||||
bool m_sr_mode; // sample rate mode (true = 20 KHz, false = 32 KHz)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DECLARE_DEVICE_TYPE(ROLAND_SA, roland_sa_device)
|
DECLARE_DEVICE_TYPE(ROLAND_SA, roland_sa_device)
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
// copyright-holders:Devin Acker
|
// copyright-holders:Devin Acker
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
NEC/Casio uPD931 synthesis chip
|
NEC/Casio uPD931 synthesis chip
|
||||||
|
|
||||||
Many details of this implementation are based on research and notes by Robin Whittle:
|
Many details of this implementation are based on research and notes by Robin Whittle:
|
||||||
https://www.firstpr.com.au/rwi/casio/Casio-931-2006-06-17.txt
|
https://www.firstpr.com.au/rwi/casio/Casio-931-2006-06-17.txt
|
||||||
Any references to MT-65 behavior are based on this document.
|
Any references to MT-65 behavior are based on this document.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- implement vibrato register (CT-8000 doesn't use it)
|
- implement vibrato register (CT-8000 doesn't use it)
|
||||||
- a few other unknown/unclear bits in the flags shift register
|
- a few other unknown/unclear bits in the flags shift register
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
@ -167,7 +167,7 @@ bool heath_h17d_format::load(util::random_read &io, uint32_t form_factor, const
|
|||||||
std::vector<uint32_t> buf;
|
std::vector<uint32_t> buf;
|
||||||
|
|
||||||
auto const [secm_pos, secm_length] = find_block(io, SecM);
|
auto const [secm_pos, secm_length] = find_block(io, SecM);
|
||||||
|
|
||||||
uint8_t sector_meta_data[SECTOR_METADATA_SIZE];
|
uint8_t sector_meta_data[SECTOR_METADATA_SIZE];
|
||||||
uint8_t sector_data[SECTOR_DATA_SIZE];
|
uint8_t sector_data[SECTOR_DATA_SIZE];
|
||||||
|
|
||||||
|
@ -1241,11 +1241,11 @@ void amiga_state::aga_map(address_map &map)
|
|||||||
|
|
||||||
void amiga_state::custom_chip_reset()
|
void amiga_state::custom_chip_reset()
|
||||||
{
|
{
|
||||||
// TODO: not entirely correct
|
// TODO: not entirely correct
|
||||||
// - OCS Denise returns open bus
|
// - OCS Denise returns open bus
|
||||||
// - ECS Denise should return 0xff << 8 | ID
|
// - ECS Denise should return 0xff << 8 | ID
|
||||||
// - AGA Lisa bits 15-10 are jumper selectable (at least on A4000), returns 0xfc << 8 | ID
|
// - AGA Lisa bits 15-10 are jumper selectable (at least on A4000), returns 0xfc << 8 | ID
|
||||||
// cfr. https://eab.abime.net/showpost.php?p=627136&postcount=59
|
// cfr. https://eab.abime.net/showpost.php?p=627136&postcount=59
|
||||||
CUSTOM_REG(REG_DENISEID) = m_denise_id;
|
CUSTOM_REG(REG_DENISEID) = m_denise_id;
|
||||||
CUSTOM_REG(REG_VPOSR) = m_agnus_id << 8;
|
CUSTOM_REG(REG_VPOSR) = m_agnus_id << 8;
|
||||||
CUSTOM_REG(REG_DDFSTRT) = 0x18;
|
CUSTOM_REG(REG_DDFSTRT) = 0x18;
|
||||||
@ -1571,7 +1571,7 @@ void amiga_state::custom_chip_w(offs_t offset, uint16_t data)
|
|||||||
|
|
||||||
case REG_DDFSTOP:
|
case REG_DDFSTOP:
|
||||||
/* impose hardware limits ( HRM, page 75 ) */
|
/* impose hardware limits ( HRM, page 75 ) */
|
||||||
// amigaaga_flop:aladdin writes 0x0100 here, expecting the HW limit to hit instead
|
// amigaaga_flop:aladdin writes 0x0100 here, expecting the HW limit to hit instead
|
||||||
data &= (IS_AGA() || IS_ECS()) ? 0xfffe : 0xfffc;
|
data &= (IS_AGA() || IS_ECS()) ? 0xfffe : 0xfffc;
|
||||||
if (data > 0xd8)
|
if (data > 0xd8)
|
||||||
{
|
{
|
||||||
|
@ -2825,7 +2825,7 @@ ROM_START( inquiztr )
|
|||||||
ROM_LOAD( "inqdisk.img", 0x000000, 0x1c2000, NO_DUMP )
|
ROM_LOAD( "inqdisk.img", 0x000000, 0x1c2000, NO_DUMP )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
// Alternate Version 1.2
|
// Alternate Version 1.2
|
||||||
ROM_START( inquiztr12a )
|
ROM_START( inquiztr12a )
|
||||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||||
ROM_LOAD( "inq6809", 0x08000, 0x08000, CRC(ae996600) SHA1(f360399e77b81399d910770fa8106c196f04363c) )
|
ROM_LOAD( "inq6809", 0x08000, 0x08000, CRC(ae996600) SHA1(f360399e77b81399d910770fa8106c196f04363c) )
|
||||||
|
@ -3,34 +3,34 @@
|
|||||||
// thanks-to:BCM
|
// thanks-to:BCM
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Casiotone 8000 / "Symphonytron" system
|
Casiotone 8000 / "Symphonytron" system
|
||||||
|
|
||||||
The Symphonytron was a modular electronic organ produced by Casio in 1983.
|
The Symphonytron was a modular electronic organ produced by Casio in 1983.
|
||||||
The full system consists of:
|
The full system consists of:
|
||||||
|
|
||||||
- up to two Casiotone 8000 keyboards (8049 CPU, 2x uPD931 "vowel-consonant synthesis")
|
- up to two Casiotone 8000 keyboards (8049 CPU, 2x uPD931 "vowel-consonant synthesis")
|
||||||
- RC-1 accompaniment unit (uPD7801 CPU, uPD930 rhythm generator, analog percussion)
|
- RC-1 accompaniment unit (uPD7801 CPU, uPD930 rhythm generator, analog percussion)
|
||||||
- MB-1 memory unit (8049 CPU, 2x uPD931, RAM cartridge slot)
|
- MB-1 memory unit (8049 CPU, 2x uPD931, RAM cartridge slot)
|
||||||
- FK-1 pedal keyboard (8049 CPU, single uPD931)
|
- FK-1 pedal keyboard (8049 CPU, single uPD931)
|
||||||
- CS-100 or CS-200 keyboard stand with built-in mixer
|
- CS-100 or CS-200 keyboard stand with built-in mixer
|
||||||
|
|
||||||
The keyboards and memory unit all connect to the RC-1 via 14-pin DIN connectors.
|
The keyboards and memory unit all connect to the RC-1 via 14-pin DIN connectors.
|
||||||
Although the RAM cart slot is located on the MB-1, all actual access to the cart is controlled
|
Although the RAM cart slot is located on the MB-1, all actual access to the cart is controlled
|
||||||
remotely by the RC-1, which uses the cart to record and play back both rhythm/chord and melody
|
remotely by the RC-1, which uses the cart to record and play back both rhythm/chord and melody
|
||||||
data. The MB-1's sound hardware is then used to play back recorded melody data independently of
|
data. The MB-1's sound hardware is then used to play back recorded melody data independently of
|
||||||
the keyboards. The RC-1 also has a "tone mix" feature, where note data received from one keyboard
|
the keyboards. The RC-1 also has a "tone mix" feature, where note data received from one keyboard
|
||||||
is automatically forwarded to the other.
|
is automatically forwarded to the other.
|
||||||
|
|
||||||
The individual units can also be used on their own; the MB-1 will also respond to notes and tone
|
The individual units can also be used on their own; the MB-1 will also respond to notes and tone
|
||||||
selection commands via the DIN connector, but it needs the RC-1 present to do much else.
|
selection commands via the DIN connector, but it needs the RC-1 present to do much else.
|
||||||
It's marked as "not working" for this reason.
|
It's marked as "not working" for this reason.
|
||||||
|
|
||||||
This driver also features MIDI in/thru support via an "adapter" device which translates a subset
|
This driver also features MIDI in/thru support via an "adapter" device which translates a subset
|
||||||
of MIDI messages into the protocol used with the original connectors.
|
of MIDI messages into the protocol used with the original connectors.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- volume/expression pedal (for all systems)
|
- volume/expression pedal (for all systems)
|
||||||
- fix aliasing in BBD output for some presets
|
- fix aliasing in BBD output for some presets
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -778,7 +778,7 @@ INPUT_PORTS_START(ctfk1)
|
|||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("E2")
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("E2")
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("F2")
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("F2")
|
||||||
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
|
|
||||||
PORT_START("KC9")
|
PORT_START("KC9")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Tune Up")
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Tune Up")
|
||||||
@ -790,7 +790,7 @@ INPUT_PORTS_START(ctfk1)
|
|||||||
PORT_START("KCA")
|
PORT_START("KCA")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Sustain") PORT_TOGGLE
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Sustain") PORT_TOGGLE
|
||||||
PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED)
|
PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
|
|
||||||
PORT_START("KCB")
|
PORT_START("KCB")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) // KI0->KCB diode
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) // KI0->KCB diode
|
||||||
PORT_BIT(0x0e, IP_ACTIVE_LOW, IPT_UNUSED)
|
PORT_BIT(0x0e, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
|
@ -2,66 +2,66 @@
|
|||||||
// copyright-holders:Devin Acker
|
// copyright-holders:Devin Acker
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Casiotone 8000 / Symphonytron MIDI interface
|
Casiotone 8000 / Symphonytron MIDI interface
|
||||||
|
|
||||||
Translates MIDI messages into the 4-bit parallel protocol used by the Symphonytron.
|
Translates MIDI messages into the 4-bit parallel protocol used by the Symphonytron.
|
||||||
Aside from Note Off/On and Program Change messages, this also handles:
|
Aside from Note Off/On and Program Change messages, this also handles:
|
||||||
- CC #1 (vibrato)
|
- CC #1 (vibrato)
|
||||||
- CC #64 (sustain pedal)
|
- CC #64 (sustain pedal)
|
||||||
- CC #69 (sustain switch)
|
- CC #69 (sustain switch)
|
||||||
- CC #91 (reverb)
|
- CC #91 (reverb)
|
||||||
- CC #93 (chorus)
|
- CC #93 (chorus)
|
||||||
- CC #120 (all sound off)
|
- CC #120 (all sound off)
|
||||||
- CC #121 (reset controllers)
|
- CC #121 (reset controllers)
|
||||||
- CC #123 (all notes off)
|
- CC #123 (all notes off)
|
||||||
- CC #124-127 (equivalent to 123, otherwise no effect)
|
- CC #124-127 (equivalent to 123, otherwise no effect)
|
||||||
- MIDI reset (status 0xFF)
|
- MIDI reset (status 0xFF)
|
||||||
|
|
||||||
Vibrato, reverb, and chorus CCs all behave as switches, where 64-127 is "on".
|
Vibrato, reverb, and chorus CCs all behave as switches, where 64-127 is "on".
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
Summary of 4-bit Symphonytron messages
|
Summary of 4-bit Symphonytron messages
|
||||||
|
|
||||||
Messages are sent in 4-bit increments over the DIN connector, in the following order:
|
Messages are sent in 4-bit increments over the DIN connector, in the following order:
|
||||||
- high nibble of command
|
- high nibble of command
|
||||||
- number of following nibbles (normally 1 or 3)
|
- number of following nibbles (normally 1 or 3)
|
||||||
- low nibble of command
|
- low nibble of command
|
||||||
- high nibble of data (if any)
|
- high nibble of data (if any)
|
||||||
- low nibble of data (if any)
|
- low nibble of data (if any)
|
||||||
|
|
||||||
The exception is the reset command, which is a single 0xF nibble.
|
The exception is the reset command, which is a single 0xF nibble.
|
||||||
|
|
||||||
The CT-8000 recognizes these messages:
|
The CT-8000 recognizes these messages:
|
||||||
10 xx - set effects
|
10 xx - set effects
|
||||||
11 xx - lock effects (corresponding buttons/pedal do nothing while set)
|
11 xx - lock effects (corresponding buttons/pedal do nothing while set)
|
||||||
12 xx - ??? effects
|
12 xx - ??? effects
|
||||||
^^ bit 0 = reverb
|
^^ bit 0 = reverb
|
||||||
bit 1 = vibrato
|
bit 1 = vibrato
|
||||||
bit 2 = sustain pedal (only affects the local keyboard)
|
bit 2 = sustain pedal (only affects the local keyboard)
|
||||||
bit 3 = stereo chorus
|
bit 3 = stereo chorus
|
||||||
bit 4 = sustain switch
|
bit 4 = sustain switch
|
||||||
|
|
||||||
20 xx - set lowest possible note to send (default is none)
|
20 xx - set lowest possible note to send (default is none)
|
||||||
21 xx - set highest possible note to send (default is none)
|
21 xx - set highest possible note to send (default is none)
|
||||||
22 xx - set lowest possible note to receive/play (default is 0x21 = C2)
|
22 xx - set lowest possible note to receive/play (default is 0x21 = C2)
|
||||||
23 xx - set highest possible note to receive/play (default is 0x61 = C6)
|
23 xx - set highest possible note to receive/play (default is 0x61 = C6)
|
||||||
24 - stop all notes
|
24 - stop all notes
|
||||||
28 xx - note on or off
|
28 xx - note on or off
|
||||||
^^ bit 7 = note on, bits 6-4 = octave, bits 3-0 = note from 0x1 (C) to 0xC (B)
|
^^ bit 7 = note on, bits 6-4 = octave, bits 3-0 = note from 0x1 (C) to 0xC (B)
|
||||||
|
|
||||||
C0 xx - set tuning (signed, 1.5 cent increments, 0x32 = quarter tone up)
|
C0 xx - set tuning (signed, 1.5 cent increments, 0x32 = quarter tone up)
|
||||||
|
|
||||||
E1 xx - set patch number
|
E1 xx - set patch number
|
||||||
|
|
||||||
F - reset instrument
|
F - reset instrument
|
||||||
|
|
||||||
The MB-1 recognizes all of the above, plus:
|
The MB-1 recognizes all of the above, plus:
|
||||||
A0 xx - ???
|
A0 xx - ???
|
||||||
A1 xx - ???
|
A1 xx - ???
|
||||||
A2 xx - ???
|
A2 xx - ???
|
||||||
A3 xx - ???
|
A3 xx - ???
|
||||||
A4 - clear values from A0-A3
|
A4 - clear values from A0-A3
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
@ -3274,7 +3274,7 @@ void snowbros_state::init_gwasu()
|
|||||||
rom[0xfdaa / 2] = 0x3345;
|
rom[0xfdaa / 2] = 0x3345;
|
||||||
|
|
||||||
// checksum is done on startup, must equal 0
|
// checksum is done on startup, must equal 0
|
||||||
rom[0x54 / 2] = 0x11ef;
|
rom[0x54 / 2] = 0x11ef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,7 +186,7 @@ uint32_t asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind1
|
|||||||
m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4);
|
m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4);
|
||||||
|
|
||||||
/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
|
/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
|
||||||
pdrawgfx_shadow_lowpri = 1; fix shadows in front of feet */
|
pdrawgfx_shadow_lowpri = 1; fix shadows in front of feet */
|
||||||
m_k053244->sprites_draw(bitmap, cliprect, screen.priority());
|
m_k053244->sprites_draw(bitmap, cliprect, screen.priority());
|
||||||
|
|
||||||
m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0);
|
m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0);
|
||||||
|
@ -153,7 +153,7 @@ Bonanza's Joker Poker control panel
|
|||||||
<bounds left="0" top="0" right="4" bottom="3" />
|
<bounds left="0" top="0" right="4" bottom="3" />
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
|
|
||||||
<element ref="cpanel">
|
<element ref="cpanel">
|
||||||
<bounds left="0" right="4" top="3" bottom="3.80" />
|
<bounds left="0" right="4" top="3" bottom="3.80" />
|
||||||
</element>
|
</element>
|
||||||
@ -217,7 +217,7 @@ Bonanza's Joker Poker control panel
|
|||||||
</element>
|
</element>
|
||||||
|
|
||||||
<!-- second line: Big - Small - Double Up/Hit - Take/Stand - Cancel - Deal - Bet/Split -->
|
<!-- second line: Big - Small - Double Up/Hit - Take/Stand - Cancel - Deal - Bet/Split -->
|
||||||
|
|
||||||
<element name="lamp1" ref="buttonedge_r" inputtag="INPUT6" inputmask="0x02">
|
<element name="lamp1" ref="buttonedge_r" inputtag="INPUT6" inputmask="0x02">
|
||||||
<bounds x="3.445" y="3.48" width="0.44" height="0.24" />
|
<bounds x="3.445" y="3.48" width="0.44" height="0.24" />
|
||||||
</element>
|
</element>
|
||||||
@ -266,6 +266,6 @@ Bonanza's Joker Poker control panel
|
|||||||
<element name="lamp3" ref="big">
|
<element name="lamp3" ref="big">
|
||||||
<bounds x="0.135" y="3.5" width="0.40" height="0.20" />
|
<bounds x="0.135" y="3.5" width="0.40" height="0.20" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</mamelayout>
|
</mamelayout>
|
||||||
|
@ -60,7 +60,7 @@ copyright-holders: Roberto Fresca & Grull Osgo
|
|||||||
<color red="0.0" green="0.0" blue="0.0" />
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
<bounds x="0.1" y="0.15" width="0.8" height="0.7" />
|
<bounds x="0.1" y="0.15" width="0.8" height="0.7" />
|
||||||
</text>
|
</text>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="BUTTON7" defstate="0">
|
<element name="BUTTON7" defstate="0">
|
||||||
<rect state="1"><color red="1.0" green="0.5" blue="0.0" /></rect>
|
<rect state="1"><color red="1.0" green="0.5" blue="0.0" /></rect>
|
||||||
@ -69,7 +69,7 @@ copyright-holders: Roberto Fresca & Grull Osgo
|
|||||||
<color red="0.0" green="0.0" blue="0.0" />
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
<bounds x="0.1" y="0.15" width="0.8" height="0.7" />
|
<bounds x="0.1" y="0.15" width="0.8" height="0.7" />
|
||||||
</text>
|
</text>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="BUTTONBASE" defstate="0">
|
<element name="BUTTONBASE" defstate="0">
|
||||||
<rect state="1"><color red="0.80" green="0.80" blue="0.80" /></rect>
|
<rect state="1"><color red="0.80" green="0.80" blue="0.80" /></rect>
|
||||||
|
@ -8,7 +8,7 @@ license:CC0-1.0
|
|||||||
<element name="line"><rect><color red="0.55" green="0.55" blue="0.575" /></rect></element>
|
<element name="line"><rect><color red="0.55" green="0.55" blue="0.575" /></rect></element>
|
||||||
<element name="line_white"><rect><color red="1" green="1" blue="0.95" /></rect></element>
|
<element name="line_white"><rect><color red="1" green="1" blue="0.95" /></rect></element>
|
||||||
<element name="line_black"><rect><color red="0" green="0" blue="0" /></rect></element>
|
<element name="line_black"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||||
|
|
||||||
<element name="button_back">
|
<element name="button_back">
|
||||||
<rect><bounds x="0" y="0" width="1" height="20" /><color red="0.55" green="0.55" blue="0.575" /></rect>
|
<rect><bounds x="0" y="0" width="1" height="20" /><color red="0.55" green="0.55" blue="0.575" /></rect>
|
||||||
<rect><bounds x="0" y="1" width="1" height="18" /><color red="0.65" green="0.65" blue="0.675" /></rect>
|
<rect><bounds x="0" y="1" width="1" height="18" /><color red="0.65" green="0.65" blue="0.675" /></rect>
|
||||||
@ -32,7 +32,7 @@ license:CC0-1.0
|
|||||||
<element name="set"><text string="SET"><color red="0" blue="0" green="0" /></text></element>
|
<element name="set"><text string="SET"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="play"><text string="PLAY"><color red="0" blue="0" green="0" /></text></element>
|
<element name="play"><text string="PLAY"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tune"><text string="TUNE"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tune"><text string="TUNE"><color red="0" blue="0" green="0" /></text></element>
|
||||||
|
|
||||||
<element name="tone1"><text string="PIANO 1"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone1"><text string="PIANO 1"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone2"><text string="PIPE ORGAN 1"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone2"><text string="PIPE ORGAN 1"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone3"><text string="PIANO 2"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone3"><text string="PIANO 2"><color red="0" blue="0" green="0" /></text></element>
|
||||||
@ -92,20 +92,20 @@ license:CC0-1.0
|
|||||||
<element name="tone48"><text string="ELEC."><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone48"><text string="ELEC."><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone48b"><text string="GUITAR 5"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone48b"><text string="GUITAR 5"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone49"><text string="ELEC. BASS"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone49"><text string="ELEC. BASS"><color red="0" blue="0" green="0" /></text></element>
|
||||||
|
|
||||||
<!-- button primitives -->
|
<!-- button primitives -->
|
||||||
<element name="button_light" defstate="0">
|
<element name="button_light" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
||||||
<rect state="0"><color red="0.8" green="0.8" blue="0.8" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="0"><color red="0.8" green="0.8" blue="0.8" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
<rect state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_dark" defstate="0">
|
<element name="button_dark" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
||||||
<rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
<rect state="1"><color red="0.15" green="0.15" blue="0.15" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="1"><color red="0.15" green="0.15" blue="0.15" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_down" defstate="0">
|
<element name="button_down" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
||||||
<rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
@ -120,7 +120,7 @@ license:CC0-1.0
|
|||||||
]]></data>
|
]]></data>
|
||||||
</image>
|
</image>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_up" defstate="0">
|
<element name="button_up" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
||||||
<rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
@ -135,23 +135,23 @@ license:CC0-1.0
|
|||||||
]]></data>
|
]]></data>
|
||||||
</image>
|
</image>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_set" defstate="0">
|
<element name="button_set" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="10" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="10" height="10" /></rect>
|
||||||
<rect state="0"><color red="1.0" green="0.45" blue="0.0" /><bounds xc="5" yc="5" width="9" height="9" /></rect>
|
<rect state="0"><color red="1.0" green="0.45" blue="0.0" /><bounds xc="5" yc="5" width="9" height="9" /></rect>
|
||||||
<rect state="1"><color red="0.8" green="0.25" blue="0" /><bounds xc="5" yc="5" width="9" height="9" /></rect>
|
<rect state="1"><color red="0.8" green="0.25" blue="0" /><bounds xc="5" yc="5" width="9" height="9" /></rect>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_icon_up">
|
<element name="button_icon_up">
|
||||||
<rect><color red="0.7" green="0.7" blue="0.725" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
<rect><color red="0.7" green="0.7" blue="0.725" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
||||||
|
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="1" width="3.5" height="4" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="1" width="3.5" height="4" /></rect>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_icon_down">
|
<element name="button_icon_down">
|
||||||
<rect><color red="0.7" green="0.7" blue="0.725" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
<rect><color red="0.7" green="0.7" blue="0.725" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
||||||
|
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="3" width="3.5" height="2" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="3" width="3.5" height="2" /></rect>
|
||||||
</element>
|
</element>
|
||||||
@ -203,11 +203,11 @@ license:CC0-1.0
|
|||||||
<group name="left">
|
<group name="left">
|
||||||
<bounds x="0" y="0" width="80" height="120" />
|
<bounds x="0" y="0" width="80" height="120" />
|
||||||
<element ref="panel_back"><bounds x="0" y="0" width="80" height="120" /></element>
|
<element ref="panel_back"><bounds x="0" y="0" width="80" height="120" /></element>
|
||||||
|
|
||||||
<element ref="line_black"><bounds xc="26" y="25" width="28" height="4" /></element>
|
<element ref="line_black"><bounds xc="26" y="25" width="28" height="4" /></element>
|
||||||
<element ref="panel_back"><bounds xc="19.25" y="26" width="12.5" height="4" /></element>
|
<element ref="panel_back"><bounds xc="19.25" y="26" width="12.5" height="4" /></element>
|
||||||
<element ref="panel_back"><bounds xc="32.75" y="26" width="12.5" height="4" /></element>
|
<element ref="panel_back"><bounds xc="32.75" y="26" width="12.5" height="4" /></element>
|
||||||
|
|
||||||
<element ref="button_back"><bounds x="0" y="35" width="80" height="20" /></element>
|
<element ref="button_back"><bounds x="0" y="35" width="80" height="20" /></element>
|
||||||
<element ref="cancel"><bounds xc="12" y="30" width="15" height="4" /></element>
|
<element ref="cancel"><bounds xc="12" y="30" width="15" height="4" /></element>
|
||||||
<element ref="button_dark" inputtag="SWITCH" inputmask="0x01"><bounds xc="12" yc="45" width="9" height="18" /></element>
|
<element ref="button_dark" inputtag="SWITCH" inputmask="0x01"><bounds xc="12" yc="45" width="9" height="18" /></element>
|
||||||
@ -223,7 +223,7 @@ license:CC0-1.0
|
|||||||
<element ref="chorus"><bounds xc="68" y="30" width="15" height="4" /></element>
|
<element ref="chorus"><bounds xc="68" y="30" width="15" height="4" /></element>
|
||||||
<element ref="button_dark" inputtag="KC9" inputmask="0x08"><bounds xc="68" yc="45" width="9" height="18" /></element>
|
<element ref="button_dark" inputtag="KC9" inputmask="0x08"><bounds xc="68" yc="45" width="9" height="18" /></element>
|
||||||
<element ref="effect"><bounds xc="40" y="55" width="80" height="4" /></element>
|
<element ref="effect"><bounds xc="40" y="55" width="80" height="4" /></element>
|
||||||
|
|
||||||
<element ref="tone_memory"><bounds xc="40" y="62" width="80" height="4" /></element>
|
<element ref="tone_memory"><bounds xc="40" y="62" width="80" height="4" /></element>
|
||||||
<element ref="button_back"><bounds x="0" y="70" width="80" height="20" /></element>
|
<element ref="button_back"><bounds x="0" y="70" width="80" height="20" /></element>
|
||||||
<element ref="num1"><bounds xc="19" y="66" width="15" height="4" /></element>
|
<element ref="num1"><bounds xc="19" y="66" width="15" height="4" /></element>
|
||||||
@ -234,7 +234,7 @@ license:CC0-1.0
|
|||||||
<element ref="button_light" inputtag="KCB" inputmask="0x04"><bounds xc="47" yc="80" width="9" height="16" /></element>
|
<element ref="button_light" inputtag="KCB" inputmask="0x04"><bounds xc="47" yc="80" width="9" height="16" /></element>
|
||||||
<element ref="num4"><bounds xc="61" y="66" width="15" height="4" /></element>
|
<element ref="num4"><bounds xc="61" y="66" width="15" height="4" /></element>
|
||||||
<element ref="button_light" inputtag="KCB" inputmask="0x08"><bounds xc="61" yc="80" width="9" height="16" /></element>
|
<element ref="button_light" inputtag="KCB" inputmask="0x08"><bounds xc="61" yc="80" width="9" height="16" /></element>
|
||||||
|
|
||||||
<element ref="mode"><bounds xc="61" y="92" width="15" height="4" /></element>
|
<element ref="mode"><bounds xc="61" y="92" width="15" height="4" /></element>
|
||||||
<element ref="button_set" inputtag="KCB" inputmask="0x10"><bounds xc="61" yc="106" width="16" height="16" /></element>
|
<element ref="button_set" inputtag="KCB" inputmask="0x10"><bounds xc="61" yc="106" width="16" height="16" /></element>
|
||||||
<!-- these are supposed to be to the right of the button but here they are on the left for better readability -->
|
<!-- these are supposed to be to the right of the button but here they are on the left for better readability -->
|
||||||
@ -319,7 +319,7 @@ license:CC0-1.0
|
|||||||
|
|
||||||
<group name="key_labels">
|
<group name="key_labels">
|
||||||
<bounds x="0" y="0" width="580" height="20" />
|
<bounds x="0" y="0" width="580" height="20" />
|
||||||
|
|
||||||
<element ref="tone2"><bounds xc="18" y="2" width="30" height="4" /></element>
|
<element ref="tone2"><bounds xc="18" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="18" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="18" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone4"><bounds xc="43" y="2" width="30" height="4" /></element>
|
<element ref="tone4"><bounds xc="43" y="2" width="30" height="4" /></element>
|
||||||
@ -330,7 +330,7 @@ license:CC0-1.0
|
|||||||
<element ref="line_white"><bounds xc="100" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="100" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone11"><bounds xc="123" y="2" width="30" height="4" /></element>
|
<element ref="tone11"><bounds xc="123" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="123" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="123" y="7" width="0.75" height="13" /></element>
|
||||||
|
|
||||||
<element ref="tone1"><bounds x="-1" y="15" width="20" height="4" /></element>
|
<element ref="tone1"><bounds x="-1" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone3"><bounds x="20" y="15" width="20" height="4" /></element>
|
<element ref="tone3"><bounds x="20" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone5"><bounds x="41" y="15" width="20" height="4" /></element>
|
<element ref="tone5"><bounds x="41" y="15" width="20" height="4" /></element>
|
||||||
@ -340,7 +340,7 @@ license:CC0-1.0
|
|||||||
<element ref="tone10"><bounds x="101" y="15" width="20" height="4" /></element>
|
<element ref="tone10"><bounds x="101" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone12"><bounds x="121" y="11" width="20" height="4" /></element>
|
<element ref="tone12"><bounds x="121" y="11" width="20" height="4" /></element>
|
||||||
<element ref="tone12b"><bounds x="121" y="15" width="20" height="4" /></element>
|
<element ref="tone12b"><bounds x="121" y="15" width="20" height="4" /></element>
|
||||||
|
|
||||||
<element ref="tone14"><bounds xc="158" y="2" width="30" height="4" /></element>
|
<element ref="tone14"><bounds xc="158" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="158" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="158" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone16"><bounds xc="183" y="2" width="30" height="4" /></element>
|
<element ref="tone16"><bounds xc="183" y="2" width="30" height="4" /></element>
|
||||||
@ -351,7 +351,7 @@ license:CC0-1.0
|
|||||||
<element ref="line_white"><bounds xc="240" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="240" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone23"><bounds xc="263" y="2" width="30" height="4" /></element>
|
<element ref="tone23"><bounds xc="263" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="263" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="263" y="7" width="0.75" height="13" /></element>
|
||||||
|
|
||||||
<element ref="tone13"><bounds x="140" y="11" width="20" height="4" /></element>
|
<element ref="tone13"><bounds x="140" y="11" width="20" height="4" /></element>
|
||||||
<element ref="tone13b"><bounds x="140" y="15" width="20" height="4" /></element>
|
<element ref="tone13b"><bounds x="140" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone15"><bounds x="160" y="11" width="20" height="4" /></element>
|
<element ref="tone15"><bounds x="160" y="11" width="20" height="4" /></element>
|
||||||
@ -361,7 +361,7 @@ license:CC0-1.0
|
|||||||
<element ref="tone20"><bounds x="220" y="15" width="20" height="4" /></element>
|
<element ref="tone20"><bounds x="220" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone22"><bounds x="240" y="15" width="20" height="4" /></element>
|
<element ref="tone22"><bounds x="240" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone24"><bounds x="261" y="15" width="20" height="4" /></element>
|
<element ref="tone24"><bounds x="261" y="15" width="20" height="4" /></element>
|
||||||
|
|
||||||
<element ref="tone26"><bounds xc="298" y="2" width="30" height="4" /></element>
|
<element ref="tone26"><bounds xc="298" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="298" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="298" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone28"><bounds xc="323" y="2" width="30" height="4" /></element>
|
<element ref="tone28"><bounds xc="323" y="2" width="30" height="4" /></element>
|
||||||
@ -372,7 +372,7 @@ license:CC0-1.0
|
|||||||
<element ref="line_white"><bounds xc="380" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="380" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone35"><bounds xc="403" y="2" width="30" height="4" /></element>
|
<element ref="tone35"><bounds xc="403" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="403" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="403" y="7" width="0.75" height="13" /></element>
|
||||||
|
|
||||||
<element ref="tone25"><bounds x="280" y="15" width="20" height="4" /></element>
|
<element ref="tone25"><bounds x="280" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone27"><bounds x="300" y="15" width="20" height="4" /></element>
|
<element ref="tone27"><bounds x="300" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone29"><bounds x="321" y="15" width="20" height="4" /></element>
|
<element ref="tone29"><bounds x="321" y="15" width="20" height="4" /></element>
|
||||||
@ -381,7 +381,7 @@ license:CC0-1.0
|
|||||||
<element ref="tone32"><bounds x="360" y="15" width="20" height="4" /></element>
|
<element ref="tone32"><bounds x="360" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone34"><bounds x="380" y="15" width="20" height="4" /></element>
|
<element ref="tone34"><bounds x="380" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone36"><bounds x="401" y="15" width="20" height="4" /></element>
|
<element ref="tone36"><bounds x="401" y="15" width="20" height="4" /></element>
|
||||||
|
|
||||||
<element ref="tone38"><bounds xc="432" y="2" width="30" height="4" /></element>
|
<element ref="tone38"><bounds xc="432" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="438" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="438" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone40"><bounds xc="466" y="2" width="30" height="4" /></element>
|
<element ref="tone40"><bounds xc="466" y="2" width="30" height="4" /></element>
|
||||||
@ -392,7 +392,7 @@ license:CC0-1.0
|
|||||||
<element ref="line_white"><bounds xc="520" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="520" y="7" width="0.75" height="13" /></element>
|
||||||
<element ref="tone47"><bounds xc="543" y="2" width="30" height="4" /></element>
|
<element ref="tone47"><bounds xc="543" y="2" width="30" height="4" /></element>
|
||||||
<element ref="line_white"><bounds xc="543" y="7" width="0.75" height="13" /></element>
|
<element ref="line_white"><bounds xc="543" y="7" width="0.75" height="13" /></element>
|
||||||
|
|
||||||
<element ref="tone37"><bounds x="419" y="15" width="20" height="4" /></element>
|
<element ref="tone37"><bounds x="419" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone39"><bounds x="440" y="15" width="20" height="4" /></element>
|
<element ref="tone39"><bounds x="440" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone41"><bounds x="461" y="11" width="20" height="4" /></element>
|
<element ref="tone41"><bounds x="461" y="11" width="20" height="4" /></element>
|
||||||
@ -406,7 +406,7 @@ license:CC0-1.0
|
|||||||
<element ref="tone48"><bounds x="541" y="11" width="20" height="4" /></element>
|
<element ref="tone48"><bounds x="541" y="11" width="20" height="4" /></element>
|
||||||
<element ref="tone48b"><bounds x="541" y="15" width="20" height="4" /></element>
|
<element ref="tone48b"><bounds x="541" y="15" width="20" height="4" /></element>
|
||||||
<element ref="tone49"><bounds x="560" y="15" width="20" height="4" /></element>
|
<element ref="tone49"><bounds x="560" y="15" width="20" height="4" /></element>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<view name="Keyboard">
|
<view name="Keyboard">
|
||||||
|
@ -8,7 +8,7 @@ license:CC0-1.0
|
|||||||
<element name="brown"><rect><color red="0.365" green="0.263" blue="0.17" /></rect></element>
|
<element name="brown"><rect><color red="0.365" green="0.263" blue="0.17" /></rect></element>
|
||||||
<element name="line"><rect><color red="0.55" green="0.55" blue="0.575" /></rect></element>
|
<element name="line"><rect><color red="0.55" green="0.55" blue="0.575" /></rect></element>
|
||||||
<element name="line_white"><rect><color red="1" green="1" blue="0.95" /></rect></element>
|
<element name="line_white"><rect><color red="1" green="1" blue="0.95" /></rect></element>
|
||||||
|
|
||||||
<element name="button_back">
|
<element name="button_back">
|
||||||
<rect><bounds x="0" y="0" width="1" height="20" /><color red="0.25" green="0.25" blue="0.275" /></rect>
|
<rect><bounds x="0" y="0" width="1" height="20" /><color red="0.25" green="0.25" blue="0.275" /></rect>
|
||||||
<rect><bounds x="0" y="1" width="1" height="18" /><color red="0.3" green="0.3" blue="0.325" /></rect>
|
<rect><bounds x="0" y="1" width="1" height="18" /><color red="0.3" green="0.3" blue="0.325" /></rect>
|
||||||
@ -35,7 +35,7 @@ license:CC0-1.0
|
|||||||
<element name="on"><text string="ON" align="1"><color red="0" blue="0" green="0" /></text></element>
|
<element name="on"><text string="ON" align="1"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="off"><text string="OFF" align="1"><color red="0" blue="0" green="0" /></text></element>
|
<element name="off"><text string="OFF" align="1"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tune"><text string="TUNE" /></element>
|
<element name="tune"><text string="TUNE" /></element>
|
||||||
|
|
||||||
<element name="tone1"><text string="ORGAN 1"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone1"><text string="ORGAN 1"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone2"><text string="ORGAN 4"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone2"><text string="ORGAN 4"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone3"><text string="ORGAN 2"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone3"><text string="ORGAN 2"><color red="0" blue="0" green="0" /></text></element>
|
||||||
@ -58,7 +58,7 @@ license:CC0-1.0
|
|||||||
<element name="tone16"><text string="HARPSICHORD 2"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone16"><text string="HARPSICHORD 2"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone17"><text string="PIANO"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone17"><text string="PIANO"><color red="0" blue="0" green="0" /></text></element>
|
||||||
<element name="tone18"><text string="SYNTH CHIME"><color red="0" blue="0" green="0" /></text></element>
|
<element name="tone18"><text string="SYNTH CHIME"><color red="0" blue="0" green="0" /></text></element>
|
||||||
|
|
||||||
<!-- button primitives -->
|
<!-- button primitives -->
|
||||||
<element name="button_down" defstate="0">
|
<element name="button_down" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
||||||
@ -74,7 +74,7 @@ license:CC0-1.0
|
|||||||
]]></data>
|
]]></data>
|
||||||
</image>
|
</image>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_up" defstate="0">
|
<element name="button_up" defstate="0">
|
||||||
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
<rect><color red="0.1" green="0.1" blue="0.1" /><bounds x="0" y="0" width="5" height="10" /></rect>
|
||||||
<rect state="0"><color red="0.8" green="0.8" blue="0.8" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
<rect state="0"><color red="0.8" green="0.8" blue="0.8" /><bounds xc="2.5" yc="5" width="4" height="9" /></rect>
|
||||||
@ -98,17 +98,17 @@ license:CC0-1.0
|
|||||||
<disk state="1"><color red="0.15" green="0.15" blue="0.15" /><bounds xc="10" y="1" width="18" height="18" /></disk>
|
<disk state="1"><color red="0.15" green="0.15" blue="0.15" /><bounds xc="10" y="1" width="18" height="18" /></disk>
|
||||||
<rect state="1"><color red="0.15" green="0.15" blue="0.15" /><bounds xc="10" y="10" width="18" height="40" /></rect>
|
<rect state="1"><color red="0.15" green="0.15" blue="0.15" /><bounds xc="10" y="10" width="18" height="40" /></rect>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_icon_up">
|
<element name="button_icon_up">
|
||||||
<rect><color red="0.75" green="0.75" blue="0.775" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
<rect><color red="0.75" green="0.75" blue="0.775" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
||||||
|
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="1" width="3.5" height="4" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="1" width="3.5" height="4" /></rect>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="button_icon_down">
|
<element name="button_icon_down">
|
||||||
<rect><color red="0.75" green="0.75" blue="0.775" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
<rect><color red="0.75" green="0.75" blue="0.775" /><bounds x="0" y="0" width="5" height="5" /></rect>
|
||||||
|
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="4" width="5" height="1" /></rect>
|
||||||
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="3" width="3.5" height="2" /></rect>
|
<rect><color red="0" green="0" blue="0" /><bounds xc="2.5" y="3" width="3.5" height="2" /></rect>
|
||||||
</element>
|
</element>
|
||||||
@ -139,21 +139,21 @@ license:CC0-1.0
|
|||||||
<element ref="tune"><bounds xc="270" y="30" width="40" height="9" /></element>
|
<element ref="tune"><bounds xc="270" y="30" width="40" height="9" /></element>
|
||||||
<element ref="button_down" inputtag="KC9" inputmask="0x04"><bounds xc="260" y="42" width="10" height="20" /></element>
|
<element ref="button_down" inputtag="KC9" inputmask="0x04"><bounds xc="260" y="42" width="10" height="20" /></element>
|
||||||
<element ref="button_up" inputtag="KC9" inputmask="0x02"><bounds xc="280" y="42" width="10" height="20" /></element>
|
<element ref="button_up" inputtag="KC9" inputmask="0x02"><bounds xc="280" y="42" width="10" height="20" /></element>
|
||||||
|
|
||||||
<element ref="select"><bounds xc="90" y="75" width="60" height="11" /></element>
|
<element ref="select"><bounds xc="90" y="75" width="60" height="11" /></element>
|
||||||
<element ref="button_icon_down"><bounds x="73" y="87" width="9" height="9" /></element>
|
<element ref="button_icon_down"><bounds x="73" y="87" width="9" height="9" /></element>
|
||||||
<element ref="foot"><bounds x="85" y="87" width="60" height="11" /></element>
|
<element ref="foot"><bounds x="85" y="87" width="60" height="11" /></element>
|
||||||
<element ref="button_icon_up"><bounds x="73" y="99" width="9" height="9" /></element>
|
<element ref="button_icon_up"><bounds x="73" y="99" width="9" height="9" /></element>
|
||||||
<element ref="auto"><bounds x="85" y="99" width="60" height="11" /></element>
|
<element ref="auto"><bounds x="85" y="99" width="60" height="11" /></element>
|
||||||
<element ref="button" inputtag="KC9" inputmask="0x10"><bounds xc="90" y="115" width="20" height="52" /></element>
|
<element ref="button" inputtag="KC9" inputmask="0x10"><bounds xc="90" y="115" width="20" height="52" /></element>
|
||||||
|
|
||||||
<element ref="mode"><bounds xc="180" y="75" width="60" height="11" /></element>
|
<element ref="mode"><bounds xc="180" y="75" width="60" height="11" /></element>
|
||||||
<element ref="button_icon_down"><bounds x="163" y="87" width="9" height="9" /></element>
|
<element ref="button_icon_down"><bounds x="163" y="87" width="9" height="9" /></element>
|
||||||
<element ref="set"><bounds x="175" y="87" width="60" height="11" /></element>
|
<element ref="set"><bounds x="175" y="87" width="60" height="11" /></element>
|
||||||
<element ref="button_icon_up"><bounds x="163" y="99" width="9" height="9" /></element>
|
<element ref="button_icon_up"><bounds x="163" y="99" width="9" height="9" /></element>
|
||||||
<element ref="play"><bounds x="175" y="99" width="60" height="11" /></element>
|
<element ref="play"><bounds x="175" y="99" width="60" height="11" /></element>
|
||||||
<element ref="button" inputtag="KCB" inputmask="0x10"><bounds xc="180" y="115" width="20" height="52" /></element>
|
<element ref="button" inputtag="KCB" inputmask="0x10"><bounds xc="180" y="115" width="20" height="52" /></element>
|
||||||
|
|
||||||
<element ref="sustain"><bounds xc="270" y="75" width="60" height="11" /></element>
|
<element ref="sustain"><bounds xc="270" y="75" width="60" height="11" /></element>
|
||||||
<element ref="button_icon_down"><bounds x="253" y="87" width="9" height="9" /></element>
|
<element ref="button_icon_down"><bounds x="253" y="87" width="9" height="9" /></element>
|
||||||
<element ref="on"><bounds x="265" y="87" width="60" height="11" /></element>
|
<element ref="on"><bounds x="265" y="87" width="60" height="11" /></element>
|
||||||
@ -165,7 +165,7 @@ license:CC0-1.0
|
|||||||
<!-- keyboard group -->
|
<!-- keyboard group -->
|
||||||
<group name="keyboard">
|
<group name="keyboard">
|
||||||
<element ref="keyfill"><bounds x="0" y="0" width="660" height="300" /></element>
|
<element ref="keyfill"><bounds x="0" y="0" width="660" height="300" /></element>
|
||||||
|
|
||||||
<element ref="button_back"><bounds x="0" y="100" width="660" height="30" /></element>
|
<element ref="button_back"><bounds x="0" y="100" width="660" height="30" /></element>
|
||||||
<element ref="button_back"><bounds x="0" y="200" width="660" height="30" /></element>
|
<element ref="button_back"><bounds x="0" y="200" width="660" height="30" /></element>
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ license:CC0-1.0
|
|||||||
<element ref="whitekey" inputtag="KC0" inputmask="0x04"><bounds xc="90" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC0" inputmask="0x04"><bounds xc="90" y="0" width="25" height="245" /></element>
|
||||||
<element ref="blackkey" inputtag="KC0" inputmask="0x08"><bounds xc="120" y="0" width="25" height="125" /></element>
|
<element ref="blackkey" inputtag="KC0" inputmask="0x08"><bounds xc="120" y="0" width="25" height="125" /></element>
|
||||||
<element ref="whitekey" inputtag="KC0" inputmask="0x10"><bounds xc="150" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC0" inputmask="0x10"><bounds xc="150" y="0" width="25" height="245" /></element>
|
||||||
|
|
||||||
<element ref="whitekey" inputtag="KC0" inputmask="0x20"><bounds xc="210" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC0" inputmask="0x20"><bounds xc="210" y="0" width="25" height="245" /></element>
|
||||||
<element ref="blackkey" inputtag="KC1" inputmask="0x01"><bounds xc="240" y="0" width="25" height="125" /></element>
|
<element ref="blackkey" inputtag="KC1" inputmask="0x01"><bounds xc="240" y="0" width="25" height="125" /></element>
|
||||||
<element ref="whitekey" inputtag="KC1" inputmask="0x02"><bounds xc="270" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC1" inputmask="0x02"><bounds xc="270" y="0" width="25" height="245" /></element>
|
||||||
@ -182,19 +182,19 @@ license:CC0-1.0
|
|||||||
<element ref="whitekey" inputtag="KC1" inputmask="0x08"><bounds xc="330" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC1" inputmask="0x08"><bounds xc="330" y="0" width="25" height="245" /></element>
|
||||||
<element ref="blackkey" inputtag="KC1" inputmask="0x10"><bounds xc="360" y="0" width="25" height="125" /></element>
|
<element ref="blackkey" inputtag="KC1" inputmask="0x10"><bounds xc="360" y="0" width="25" height="125" /></element>
|
||||||
<element ref="whitekey" inputtag="KC1" inputmask="0x20"><bounds xc="390" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC1" inputmask="0x20"><bounds xc="390" y="0" width="25" height="245" /></element>
|
||||||
|
|
||||||
<element ref="whitekey" inputtag="KC2" inputmask="0x01"><bounds xc="450" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC2" inputmask="0x01"><bounds xc="450" y="0" width="25" height="245" /></element>
|
||||||
<element ref="blackkey" inputtag="KC2" inputmask="0x02"><bounds xc="480" y="0" width="25" height="125" /></element>
|
<element ref="blackkey" inputtag="KC2" inputmask="0x02"><bounds xc="480" y="0" width="25" height="125" /></element>
|
||||||
<element ref="whitekey" inputtag="KC2" inputmask="0x04"><bounds xc="510" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC2" inputmask="0x04"><bounds xc="510" y="0" width="25" height="245" /></element>
|
||||||
<element ref="blackkey" inputtag="KC2" inputmask="0x08"><bounds xc="540" y="0" width="25" height="125" /></element>
|
<element ref="blackkey" inputtag="KC2" inputmask="0x08"><bounds xc="540" y="0" width="25" height="125" /></element>
|
||||||
<element ref="whitekey" inputtag="KC2" inputmask="0x10"><bounds xc="570" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC2" inputmask="0x10"><bounds xc="570" y="0" width="25" height="245" /></element>
|
||||||
|
|
||||||
<element ref="whitekey" inputtag="KC2" inputmask="0x20"><bounds xc="630" y="0" width="25" height="245" /></element>
|
<element ref="whitekey" inputtag="KC2" inputmask="0x20"><bounds xc="630" y="0" width="25" height="245" /></element>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<group name="key_labels">
|
<group name="key_labels">
|
||||||
<bounds x="0" y="0" width="660" height="40" />
|
<bounds x="0" y="0" width="660" height="40" />
|
||||||
|
|
||||||
<element ref="tone2"><bounds xc="60" y="11" width="60" height="9" /></element>
|
<element ref="tone2"><bounds xc="60" y="11" width="60" height="9" /></element>
|
||||||
<element ref="line_white"><bounds xc="60" y="20" width="1.5" height="20" /></element>
|
<element ref="line_white"><bounds xc="60" y="20" width="1.5" height="20" /></element>
|
||||||
<element ref="tone4"><bounds xc="120" y="11" width="60" height="9" /></element>
|
<element ref="tone4"><bounds xc="120" y="11" width="60" height="9" /></element>
|
||||||
@ -207,7 +207,7 @@ license:CC0-1.0
|
|||||||
<element ref="tone11"><bounds xc="360" y="3" width="55" height="9" /></element>
|
<element ref="tone11"><bounds xc="360" y="3" width="55" height="9" /></element>
|
||||||
<element ref="tone11b"><bounds xc="360" y="11" width="55" height="9" /></element>
|
<element ref="tone11b"><bounds xc="360" y="11" width="55" height="9" /></element>
|
||||||
<element ref="line_white"><bounds xc="360" y="20" width="1.5" height="20" /></element>
|
<element ref="line_white"><bounds xc="360" y="20" width="1.5" height="20" /></element>
|
||||||
|
|
||||||
<element ref="tone1"><bounds xc="30" y="30" width="60" height="9" /></element>
|
<element ref="tone1"><bounds xc="30" y="30" width="60" height="9" /></element>
|
||||||
<element ref="tone3"><bounds xc="90" y="30" width="60" height="9" /></element>
|
<element ref="tone3"><bounds xc="90" y="30" width="60" height="9" /></element>
|
||||||
<element ref="tone5"><bounds xc="150" y="30" width="60" height="9" /></element>
|
<element ref="tone5"><bounds xc="150" y="30" width="60" height="9" /></element>
|
||||||
@ -217,12 +217,12 @@ license:CC0-1.0
|
|||||||
<element ref="tone10b"><bounds xc="330" y="30" width="55" height="9" /></element>
|
<element ref="tone10b"><bounds xc="330" y="30" width="55" height="9" /></element>
|
||||||
<element ref="tone12"><bounds xc="390" y="22" width="55" height="9" /></element>
|
<element ref="tone12"><bounds xc="390" y="22" width="55" height="9" /></element>
|
||||||
<element ref="tone12b"><bounds xc="390" y="30" width="55" height="9" /></element>
|
<element ref="tone12b"><bounds xc="390" y="30" width="55" height="9" /></element>
|
||||||
|
|
||||||
<element ref="tone14"><bounds xc="480" y="11" width="60" height="9" /></element>
|
<element ref="tone14"><bounds xc="480" y="11" width="60" height="9" /></element>
|
||||||
<element ref="line_white"><bounds xc="480" y="20" width="1.5" height="20" /></element>
|
<element ref="line_white"><bounds xc="480" y="20" width="1.5" height="20" /></element>
|
||||||
<element ref="tone16"><bounds xc="540" y="11" width="60" height="9" /></element>
|
<element ref="tone16"><bounds xc="540" y="11" width="60" height="9" /></element>
|
||||||
<element ref="line_white"><bounds xc="540" y="20" width="1.5" height="20" /></element>
|
<element ref="line_white"><bounds xc="540" y="20" width="1.5" height="20" /></element>
|
||||||
|
|
||||||
<element ref="tone13"><bounds xc="450" y="30" width="60" height="9" /></element>
|
<element ref="tone13"><bounds xc="450" y="30" width="60" height="9" /></element>
|
||||||
<element ref="tone15"><bounds xc="510" y="30" width="60" height="9" /></element>
|
<element ref="tone15"><bounds xc="510" y="30" width="60" height="9" /></element>
|
||||||
<element ref="tone17"><bounds xc="570" y="30" width="60" height="9" /></element>
|
<element ref="tone17"><bounds xc="570" y="30" width="60" height="9" /></element>
|
||||||
|
@ -153,7 +153,7 @@ license:CC0-1.0
|
|||||||
<element name="lamp1" ref="DEAL" inputtag="IN0-0" inputmask="0x08">
|
<element name="lamp1" ref="DEAL" inputtag="IN0-0" inputmask="0x08">
|
||||||
<bounds x="3.25" y="3.45" width="0.50" height="0.24" />
|
<bounds x="3.25" y="3.45" width="0.50" height="0.24" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="lamp5" ref="HE1">
|
<element name="lamp5" ref="HE1">
|
||||||
<bounds x="0.25" y="3.77" width="0.5" height="0.12" />
|
<bounds x="0.25" y="3.77" width="0.5" height="0.12" />
|
||||||
</element>
|
</element>
|
||||||
|
@ -153,7 +153,7 @@ license:CC0-1.0
|
|||||||
<element name="lamp1" ref="DEAL" inputtag="IN0-0" inputmask="0x08">
|
<element name="lamp1" ref="DEAL" inputtag="IN0-0" inputmask="0x08">
|
||||||
<bounds x="3.25" y="3.45" width="0.50" height="0.24" />
|
<bounds x="3.25" y="3.45" width="0.50" height="0.24" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element name="lamp5" ref="HE1">
|
<element name="lamp5" ref="HE1">
|
||||||
<bounds x="0.25" y="3.77" width="0.5" height="0.12" />
|
<bounds x="0.25" y="3.77" width="0.5" height="0.12" />
|
||||||
</element>
|
</element>
|
||||||
|
@ -154,7 +154,7 @@ Super Mini-Boy control panel
|
|||||||
<bounds left="0" top="0" right="4" bottom="3" />
|
<bounds left="0" top="0" right="4" bottom="3" />
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
|
|
||||||
<element ref="cpanel">
|
<element ref="cpanel">
|
||||||
<bounds left="0" right="4" top="3" bottom="3.80" />
|
<bounds left="0" right="4" top="3" bottom="3.80" />
|
||||||
</element>
|
</element>
|
||||||
@ -218,7 +218,7 @@ Super Mini-Boy control panel
|
|||||||
</element>
|
</element>
|
||||||
|
|
||||||
<!-- second line: Big - Small - Double Up/Hit - Take/Stand - Cancel - Deal - Bet/Split -->
|
<!-- second line: Big - Small - Double Up/Hit - Take/Stand - Cancel - Deal - Bet/Split -->
|
||||||
|
|
||||||
<element name="lamp1" ref="buttonedge_r" inputtag="INPUT6" inputmask="0x02">
|
<element name="lamp1" ref="buttonedge_r" inputtag="INPUT6" inputmask="0x02">
|
||||||
<bounds x="3.445" y="3.48" width="0.44" height="0.24" />
|
<bounds x="3.445" y="3.48" width="0.44" height="0.24" />
|
||||||
</element>
|
</element>
|
||||||
@ -267,6 +267,6 @@ Super Mini-Boy control panel
|
|||||||
<element name="lamp3" ref="big">
|
<element name="lamp3" ref="big">
|
||||||
<bounds x="0.135" y="3.5" width="0.40" height="0.20" />
|
<bounds x="0.135" y="3.5" width="0.40" height="0.20" />
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</mamelayout>
|
</mamelayout>
|
||||||
|
@ -463,8 +463,8 @@ ioport_value wmg_state::wmg_mux_r()
|
|||||||
u8 wmg_state::wmg_pia_0_r(offs_t offset)
|
u8 wmg_state::wmg_pia_0_r(offs_t offset)
|
||||||
{
|
{
|
||||||
/* if player presses P1 and P2 in a game, return to the menu.
|
/* if player presses P1 and P2 in a game, return to the menu.
|
||||||
Since there is no code in rom to handle this, it must be a hardware feature
|
Since there is no code in rom to handle this, it must be a hardware feature
|
||||||
which probably just resets the cpu. */
|
which probably just resets the cpu. */
|
||||||
|
|
||||||
uint8_t const data = m_pia[0]->read(offset);
|
uint8_t const data = m_pia[0]->read(offset);
|
||||||
|
|
||||||
|
@ -572,7 +572,7 @@
|
|||||||
- How to Set the Password:
|
- How to Set the Password:
|
||||||
|
|
||||||
1) Press and hold the PROGRAM key (key 9) while turning on or resetting the machine.
|
1) Press and hold the PROGRAM key (key 9) while turning on or resetting the machine.
|
||||||
(The word 'TESTING' will be displayed on the screen)
|
(The word 'TESTING' will be displayed on the screen)
|
||||||
2) Enter the first desired input of the password, then press DOWN to confirm the choice.
|
2) Enter the first desired input of the password, then press DOWN to confirm the choice.
|
||||||
3) Enter the second desired input of the password, then press DOWN to confirm the choice.
|
3) Enter the second desired input of the password, then press DOWN to confirm the choice.
|
||||||
4) Enter the third desired input of the password, then press DOWN to confirm the choice.
|
4) Enter the third desired input of the password, then press DOWN to confirm the choice.
|
||||||
@ -1198,7 +1198,7 @@ private:
|
|||||||
|
|
||||||
required_shared_ptr<uint8_t> m_videoram;
|
required_shared_ptr<uint8_t> m_videoram;
|
||||||
required_shared_ptr<uint8_t> m_colorram;
|
required_shared_ptr<uint8_t> m_colorram;
|
||||||
optional_device<ticket_dispenser_device> m_hopper;
|
optional_device<ticket_dispenser_device> m_hopper;
|
||||||
optional_device<ay8910_device> m_ay8910;
|
optional_device<ay8910_device> m_ay8910;
|
||||||
output_finder<9> m_lamps;
|
output_finder<9> m_lamps;
|
||||||
|
|
||||||
@ -2078,7 +2078,7 @@ static INPUT_PORTS_START( jkrbonus )
|
|||||||
|
|
||||||
PORT_MODIFY("IN0-3")
|
PORT_MODIFY("IN0-3")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Weight (Coupon In)") PORT_CODE(KEYCODE_H) PORT_TOGGLE
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Weight (Coupon In)") PORT_CODE(KEYCODE_H) PORT_TOGGLE
|
||||||
|
|
||||||
PORT_MODIFY("SW1")
|
PORT_MODIFY("SW1")
|
||||||
PORT_DIPNAME( 0x20, 0x20, "50hz/60hz" ) PORT_DIPLOCATION("SW1:2")
|
PORT_DIPNAME( 0x20, 0x20, "50hz/60hz" ) PORT_DIPLOCATION("SW1:2")
|
||||||
PORT_DIPSETTING( 0x20, "50hz" )
|
PORT_DIPSETTING( 0x20, "50hz" )
|
||||||
@ -2217,7 +2217,7 @@ static INPUT_PORTS_START( pottnpkr )
|
|||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Coupon (Note In)")
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Coupon (Note In)")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin In") PORT_IMPULSE(3)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin In") PORT_IMPULSE(3)
|
||||||
//* PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
//* PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Weight (Coupon In)") PORT_CODE(KEYCODE_H) PORT_TOGGLE
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Weight (Coupon In)") PORT_CODE(KEYCODE_H) PORT_TOGGLE
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
@ -6066,7 +6066,7 @@ ROM_END
|
|||||||
The second set is a hack of the first with unknown mods.
|
The second set is a hack of the first with unknown mods.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
ROM_START( potnpkro ) // ICP-1 wires hack set.
|
ROM_START( potnpkro ) // ICP-1 wires hack set.
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
ROM_LOAD( "7.16a", 0x6000, 0x1000, CRC(2dc5e372) SHA1(70a251efe879bc1122baa78984251041a355c895) )
|
ROM_LOAD( "7.16a", 0x6000, 0x1000, CRC(2dc5e372) SHA1(70a251efe879bc1122baa78984251041a355c895) )
|
||||||
ROM_LOAD( "x.17a", 0x7000, 0x1000, CRC(1694a0d8) SHA1(bb1132d1e75347ad5156d2b3866aad255f7d53ca) )
|
ROM_LOAD( "x.17a", 0x7000, 0x1000, CRC(1694a0d8) SHA1(bb1132d1e75347ad5156d2b3866aad255f7d53ca) )
|
||||||
@ -6085,7 +6085,7 @@ ROM_START( potnpkro ) // ICP-1 wires hack set.
|
|||||||
ROM_LOAD( "tbp24s10n_wh.bin", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
|
ROM_LOAD( "tbp24s10n_wh.bin", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( potnpkrp ) // ICP-1 PROM mod set.
|
ROM_START( potnpkrp ) // ICP-1 PROM mod set.
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
ROM_LOAD( "6.16a", 0x6000, 0x1000, CRC(2dc5e372) SHA1(70a251efe879bc1122baa78984251041a355c895) )
|
ROM_LOAD( "6.16a", 0x6000, 0x1000, CRC(2dc5e372) SHA1(70a251efe879bc1122baa78984251041a355c895) )
|
||||||
ROM_LOAD( "95_09_hn71_7.17a", 0x7000, 0x1000, CRC(2353317a) SHA1(18bf8cfe30aaa4b05207cc250ec1c024bc19ed56) )
|
ROM_LOAD( "95_09_hn71_7.17a", 0x7000, 0x1000, CRC(2353317a) SHA1(18bf8cfe30aaa4b05207cc250ec1c024bc19ed56) )
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Games supported:
|
Games supported:
|
||||||
|
|
||||||
* Le Pendu (Bilingue, Version 04), 198?, Avenir Amusement Inc.
|
* Le Pendu (Bilingue, Version 04), 198?, Avenir Amusement Inc.
|
||||||
* Code Magik (Ver 5.5) / Super 7 (stealth game), 198?, Voyageur de L'Espace Inc.
|
* Code Magik (Ver 5.5) / Super 7 (stealth game), 198?, Voyageur de L'Espace Inc.
|
||||||
|
|
||||||
@ -79,9 +79,9 @@
|
|||||||
***********************************************************************************
|
***********************************************************************************
|
||||||
|
|
||||||
Code Magik (Ver 5.5) / Super 7
|
Code Magik (Ver 5.5) / Super 7
|
||||||
|
|
||||||
This is a very rare game that has a gambling game hidden inside in stealth mode.
|
This is a very rare game that has a gambling game hidden inside in stealth mode.
|
||||||
|
|
||||||
The front game is a very good Mastermind type game, where you must to guess
|
The front game is a very good Mastermind type game, where you must to guess
|
||||||
a 4-numbers code to deactivate the bomb. The game will return how many numbers
|
a 4-numbers code to deactivate the bomb. The game will return how many numbers
|
||||||
are correct, and how many in the right position. You have 20 attempts to beat
|
are correct, and how many in the right position. You have 20 attempts to beat
|
||||||
@ -171,7 +171,7 @@ public:
|
|||||||
|
|
||||||
void lamps_w(uint8_t data);
|
void lamps_w(uint8_t data);
|
||||||
void lamps_cm_w(uint8_t data);
|
void lamps_cm_w(uint8_t data);
|
||||||
|
|
||||||
void sound_w(uint8_t data);
|
void sound_w(uint8_t data);
|
||||||
void mux_w(uint8_t data);
|
void mux_w(uint8_t data);
|
||||||
|
|
||||||
@ -524,16 +524,16 @@ static INPUT_PORTS_START(codemagik)
|
|||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
|
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
|
||||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
|
||||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
|
||||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
|
||||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
Model BE-7000/MBS.
|
Model BE-7000/MBS.
|
||||||
https://flyers.arcade-museum.com/videogames/show/4043
|
https://flyers.arcade-museum.com/videogames/show/4043
|
||||||
https://flyers.arcade-museum.com/videogames/show/6161
|
https://flyers.arcade-museum.com/videogames/show/6161
|
||||||
|
|
||||||
Seven games in one, plus Ad message support.
|
Seven games in one, plus Ad message support.
|
||||||
|
|
||||||
- Draw Poker.
|
- Draw Poker.
|
||||||
@ -132,7 +132,7 @@
|
|||||||
Books Mode: To enter Books Mode, press the BOOKS button (key 0).
|
Books Mode: To enter Books Mode, press the BOOKS button (key 0).
|
||||||
|
|
||||||
In Books Mode, pressing DEAL will take you to the Percentage Mode, where you can set
|
In Books Mode, pressing DEAL will take you to the Percentage Mode, where you can set
|
||||||
a percentage value (between 0 and 9) using the HOLD4 button.
|
a percentage value (between 0 and 9) using the HOLD4 button.
|
||||||
|
|
||||||
While in Percentage Mode, pressing HOLD5 will bring you to the Screen RAM and Inputs Test Mode.
|
While in Percentage Mode, pressing HOLD5 will bring you to the Screen RAM and Inputs Test Mode.
|
||||||
To return to normal operation, reset the machine.
|
To return to normal operation, reset the machine.
|
||||||
@ -332,7 +332,7 @@
|
|||||||
- Lot of fixes, getting Super Mini-Boy working.
|
- Lot of fixes, getting Super Mini-Boy working.
|
||||||
- Added lamps support and button-lamps layout for Super Mini-Boy.
|
- Added lamps support and button-lamps layout for Super Mini-Boy.
|
||||||
- Fixed the Super Mini-Boy color scheme.
|
- Fixed the Super Mini-Boy color scheme.
|
||||||
- Worked Super Mini-Boy inputs and DIP Switches from the scratch.
|
- Worked Super Mini-Boy inputs and DIP Switches from the scratch.
|
||||||
- Added technical and games notes.
|
- Added technical and games notes.
|
||||||
- Some clean-up.
|
- Some clean-up.
|
||||||
|
|
||||||
@ -342,7 +342,7 @@
|
|||||||
- Lot of fixes and new machine driver, getting Joker Poker working.
|
- Lot of fixes and new machine driver, getting Joker Poker working.
|
||||||
- Fixed crystal/clocks and derivatives.
|
- Fixed crystal/clocks and derivatives.
|
||||||
- Added lamps support and button-lamps layout for Joker Poker.
|
- Added lamps support and button-lamps layout for Joker Poker.
|
||||||
- Worked Super Joker Poker inputs and DIP Switches from the scratch.
|
- Worked Super Joker Poker inputs and DIP Switches from the scratch.
|
||||||
- Added more technical and games notes.
|
- Added more technical and games notes.
|
||||||
|
|
||||||
|
|
||||||
@ -399,7 +399,7 @@ public:
|
|||||||
void miniboy7(machine_config &config);
|
void miniboy7(machine_config &config);
|
||||||
void sminiboy(machine_config &config);
|
void sminiboy(machine_config &config);
|
||||||
void bejpoker(machine_config &config);
|
void bejpoker(machine_config &config);
|
||||||
|
|
||||||
void init_smini();
|
void init_smini();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -578,7 +578,7 @@ uint8_t miniboy7_state::lamp_latch_r()
|
|||||||
m_lamps[0] = BIT(data, 4); // [----x] lamp0 bet
|
m_lamps[0] = BIT(data, 4); // [----x] lamp0 bet
|
||||||
m_lamps[1] = BIT(data, 3); // [---x-] lamp1 deal/draw
|
m_lamps[1] = BIT(data, 3); // [---x-] lamp1 deal/draw
|
||||||
m_lamps[2] = BIT(data, 2); // [--x--] lamp2 holds
|
m_lamps[2] = BIT(data, 2); // [--x--] lamp2 holds
|
||||||
m_lamps[3] = BIT(data, 1); // [-x---] lamp3 d.up+take+big+small
|
m_lamps[3] = BIT(data, 1); // [-x---] lamp3 d.up+take+big+small
|
||||||
m_lamps[4] = BIT(data, 0); // [x----] lamp4 cancel
|
m_lamps[4] = BIT(data, 0); // [x----] lamp4 cancel
|
||||||
|
|
||||||
machine().bookkeeping().coin_counter_w(0, data & 0x40); // counter
|
machine().bookkeeping().coin_counter_w(0, data & 0x40); // counter
|
||||||
@ -620,9 +620,9 @@ uint8_t miniboy7_state::s_pia_pb_r()
|
|||||||
case 0xfb:
|
case 0xfb:
|
||||||
case 0x7b: ret = m_input[4]->read(); break;
|
case 0x7b: ret = m_input[4]->read(); break;
|
||||||
case 0xfd:
|
case 0xfd:
|
||||||
case 0x7d: ret = m_input[5]->read(); break;
|
case 0x7d: ret = m_input[5]->read(); break;
|
||||||
case 0x7f: ret = m_dsw2->read() & 0xf0; break; // high nibble of dip switch
|
case 0x7f: ret = m_dsw2->read() & 0xf0; break; // high nibble of dip switch
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -752,27 +752,27 @@ static INPUT_PORTS_START( sminiboy_base )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1c-4") PORT_CODE(KEYCODE_F)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1c-4") PORT_CODE(KEYCODE_F)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1c-5") PORT_CODE(KEYCODE_G)
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1c-5") PORT_CODE(KEYCODE_G)
|
||||||
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
|
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
|
||||||
|
|
||||||
PORT_START("INPUT5") // pia_pb mux 0xfb - mem 2620
|
PORT_START("INPUT5") // pia_pb mux 0xfb - mem 2620
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
|
||||||
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
|
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
|
||||||
|
|
||||||
PORT_START("INPUT6") // pia_pb mux 0xfd - mem 2622
|
PORT_START("INPUT6") // pia_pb mux 0xfd - mem 2622
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL )
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL )
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play Bet")
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play Bet")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_NAME("Break_SCR") PORT_CODE(KEYCODE_E)
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_NAME("Break_SCR") PORT_CODE(KEYCODE_E)
|
||||||
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
|
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
|
||||||
|
|
||||||
PORT_START("DSW2")
|
PORT_START("DSW2")
|
||||||
// mux=0xff
|
// mux=0xff
|
||||||
PORT_DIPNAME( 0x03, 0x00, "D.UP Seven" ) PORT_DIPLOCATION("DSW2:8,7")
|
PORT_DIPNAME( 0x03, 0x00, "D.UP Seven" ) PORT_DIPLOCATION("DSW2:8,7")
|
||||||
PORT_DIPSETTING( 0x00, "Reset" )
|
PORT_DIPSETTING( 0x00, "Reset" )
|
||||||
PORT_DIPSETTING( 0x01, "Reset" )
|
PORT_DIPSETTING( 0x01, "Reset" )
|
||||||
PORT_DIPSETTING( 0x02, "Even" )
|
PORT_DIPSETTING( 0x02, "Even" )
|
||||||
PORT_DIPSETTING( 0x03, "Lose" )
|
PORT_DIPSETTING( 0x03, "Lose" )
|
||||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:6") // No code to read this bit
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:6") // No code to read this bit
|
||||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:5") // No code to read this bit
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:5") // No code to read this bit
|
||||||
@ -925,12 +925,12 @@ void miniboy7_state::miniboy7(machine_config &config)
|
|||||||
void miniboy7_state::sminiboy(machine_config &config)
|
void miniboy7_state::sminiboy(machine_config &config)
|
||||||
{
|
{
|
||||||
miniboy7(config);
|
miniboy7(config);
|
||||||
|
|
||||||
pia6821_device &pia(PIA6821(config.replace(), "pia0"));
|
pia6821_device &pia(PIA6821(config.replace(), "pia0"));
|
||||||
pia.readpa_handler().set(FUNC(miniboy7_state::s_pia_pa_r));
|
pia.readpa_handler().set(FUNC(miniboy7_state::s_pia_pa_r));
|
||||||
pia.readpb_handler().set(FUNC(miniboy7_state::s_pia_pb_r));
|
pia.readpb_handler().set(FUNC(miniboy7_state::s_pia_pb_r));
|
||||||
pia.irqa_handler().set_inputline("maincpu", 0);
|
pia.irqa_handler().set_inputline("maincpu", 0);
|
||||||
pia.irqb_handler().set_inputline("maincpu", 0);
|
pia.irqb_handler().set_inputline("maincpu", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void miniboy7_state::bejpoker(machine_config &config)
|
void miniboy7_state::bejpoker(machine_config &config)
|
||||||
@ -1122,4 +1122,4 @@ void miniboy7_state::init_smini()
|
|||||||
GAMEL( 1983, miniboy7, 0, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 1)", MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
|
GAMEL( 1983, miniboy7, 0, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 1)", MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
|
||||||
GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
|
GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
|
||||||
GAMEL( 1984, sminiboy, 0, sminiboy, sminiboy, miniboy7_state, init_smini, ROT0, "Bonanza Enterprises, Ltd", "Super Mini-Boy", MACHINE_SUPPORTS_SAVE, layout_sminiboy )
|
GAMEL( 1984, sminiboy, 0, sminiboy, sminiboy, miniboy7_state, init_smini, ROT0, "Bonanza Enterprises, Ltd", "Super Mini-Boy", MACHINE_SUPPORTS_SAVE, layout_sminiboy )
|
||||||
GAMEL( 1992, bejpoker, 0, bejpoker, bejpoker, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Bonanza's Joker Poker", MACHINE_SUPPORTS_SAVE, layout_bejpoker )
|
GAMEL( 1992, bejpoker, 0, bejpoker, bejpoker, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Bonanza's Joker Poker", MACHINE_SUPPORTS_SAVE, layout_bejpoker )
|
||||||
|
@ -339,7 +339,7 @@ bool memorymoog_state::adc_comparator_on() const
|
|||||||
if (m_selected_pot == 0)
|
if (m_selected_pot == 0)
|
||||||
{
|
{
|
||||||
LOGMASKED(LOG_ADC, "Comparator: %f %f %d %04x\n", v, dac_v, comp_on,
|
LOGMASKED(LOG_ADC, "Comparator: %f %f %d %04x\n", v, dac_v, comp_on,
|
||||||
m_dac_latch);
|
m_dac_latch);
|
||||||
}
|
}
|
||||||
return comp_on;
|
return comp_on;
|
||||||
}
|
}
|
||||||
@ -389,7 +389,7 @@ template<int N> u8 memorymoog_state::key_matrix_r(
|
|||||||
|
|
||||||
if (pressed != 0xff)
|
if (pressed != 0xff)
|
||||||
LOGMASKED(LOG_KEYPRESS, "Pressed %s %02X: %02X\n", name, selection,
|
LOGMASKED(LOG_KEYPRESS, "Pressed %s %02X: %02X\n", name, selection,
|
||||||
pressed);
|
pressed);
|
||||||
|
|
||||||
return pressed; // Returned value is active-low.
|
return pressed; // Returned value is active-low.
|
||||||
}
|
}
|
||||||
@ -421,7 +421,7 @@ void memorymoog_state::update_sh()
|
|||||||
m_cv[m_selected_sh] = cv;
|
m_cv[m_selected_sh] = cv;
|
||||||
// TODO: all autotune CVs are divided by a 115K-10K divider.
|
// TODO: all autotune CVs are divided by a 115K-10K divider.
|
||||||
LOGMASKED(LOG_CV, "CV: %02d %-20s %04X - %f\n", m_selected_sh,
|
LOGMASKED(LOG_CV, "CV: %02d %-20s %04X - %f\n", m_selected_sh,
|
||||||
CV_NAMES[m_selected_sh], m_dac_latch, cv);
|
CV_NAMES[m_selected_sh], m_dac_latch, cv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void memorymoog_state::keyboard_w(u8 data)
|
void memorymoog_state::keyboard_w(u8 data)
|
||||||
|
@ -60,14 +60,14 @@ void namcos86_state::namcos86_palette(palette_device &palette)
|
|||||||
bit2 = BIT(color_prom[i], 2);
|
bit2 = BIT(color_prom[i], 2);
|
||||||
bit3 = BIT(color_prom[i], 3);
|
bit3 = BIT(color_prom[i], 3);
|
||||||
int const r = combine_weights(rweights, bit0, bit1, bit2, bit3);
|
int const r = combine_weights(rweights, bit0, bit1, bit2, bit3);
|
||||||
|
|
||||||
// green component
|
// green component
|
||||||
bit0 = BIT(color_prom[i], 4);
|
bit0 = BIT(color_prom[i], 4);
|
||||||
bit1 = BIT(color_prom[i], 5);
|
bit1 = BIT(color_prom[i], 5);
|
||||||
bit2 = BIT(color_prom[i], 6);
|
bit2 = BIT(color_prom[i], 6);
|
||||||
bit3 = BIT(color_prom[i], 7);
|
bit3 = BIT(color_prom[i], 7);
|
||||||
int const g = combine_weights(gweights, bit0, bit1, bit2, bit3);
|
int const g = combine_weights(gweights, bit0, bit1, bit2, bit3);
|
||||||
|
|
||||||
// blue component
|
// blue component
|
||||||
bit0 = BIT(color_prom[i | 0x200], 0);
|
bit0 = BIT(color_prom[i | 0x200], 0);
|
||||||
bit1 = BIT(color_prom[i | 0x200], 1);
|
bit1 = BIT(color_prom[i | 0x200], 1);
|
||||||
|
@ -134,7 +134,7 @@ struct dmx_voice_card_config
|
|||||||
DISABLED, // 4.7K resistor connected to position 1 (+5V).
|
DISABLED, // 4.7K resistor connected to position 1 (+5V).
|
||||||
ENABLED, // Jumper disconnected.
|
ENABLED, // Jumper disconnected.
|
||||||
ENABLED_ON_TR12, // 4.7K resistor connected to position 2 (/Q of U1B).
|
ENABLED_ON_TR12, // 4.7K resistor connected to position 2 (/Q of U1B).
|
||||||
// Decay enabled when trigger mode is 1 or 2.
|
// Decay enabled when trigger mode is 1 or 2.
|
||||||
};
|
};
|
||||||
const decay_mode decay;
|
const decay_mode decay;
|
||||||
|
|
||||||
@ -143,7 +143,7 @@ struct dmx_voice_card_config
|
|||||||
{
|
{
|
||||||
ENABLED, // Jumper connected to position 2 (+5V).
|
ENABLED, // Jumper connected to position 2 (+5V).
|
||||||
ENABLED_ON_TR1, // Jumper connected to position 1 (Q of U1A).
|
ENABLED_ON_TR1, // Jumper connected to position 1 (Q of U1A).
|
||||||
// Early decay enabled when trigger mode is 1.
|
// Early decay enabled when trigger mode is 1.
|
||||||
};
|
};
|
||||||
const early_decay_mode early_decay;
|
const early_decay_mode early_decay;
|
||||||
|
|
||||||
@ -247,7 +247,7 @@ void dmx_voice_card_vca::start(int trigger_mode)
|
|||||||
m_selected_rc_inv = 1;
|
m_selected_rc_inv = 1;
|
||||||
|
|
||||||
LOGMASKED(LOG_VOLUME, "Selected gain: %f, 1/RC: %f\n",
|
LOGMASKED(LOG_VOLUME, "Selected gain: %f, 1/RC: %f\n",
|
||||||
m_selected_gain, m_selected_rc_inv);
|
m_selected_gain, m_selected_rc_inv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmx_voice_card_vca::decay()
|
void dmx_voice_card_vca::decay()
|
||||||
@ -295,7 +295,7 @@ void dmx_voice_card_vca::sound_stream_update(sound_stream &stream, const std::ve
|
|||||||
out.put(i, m_selected_gain * in.get(i));
|
out.put(i, m_selected_gain * in.get(i));
|
||||||
|
|
||||||
LOGMASKED(LOG_SAMPLES, "%s VCA - just gain: %f. Samples: %f, %f.\n",
|
LOGMASKED(LOG_SAMPLES, "%s VCA - just gain: %f. Samples: %f, %f.\n",
|
||||||
tag(), m_selected_gain, in.get(0), in.get(n - 1));
|
tag(), m_selected_gain, in.get(0), in.get(n - 1));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,7 +321,7 @@ void dmx_voice_card_vca::sound_stream_update(sound_stream &stream, const std::ve
|
|||||||
m_decay_done = true;
|
m_decay_done = true;
|
||||||
|
|
||||||
LOGMASKED(LOG_SAMPLES_DECAY, "%s VCA - in decay: %f. Samples: %f, %f.\n",
|
LOGMASKED(LOG_SAMPLES_DECAY, "%s VCA - in decay: %f. Samples: %f, %f.\n",
|
||||||
tag(), gain, in.get(0), in.get(n - 1));
|
tag(), gain, in.get(0), in.get(n - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmx_voice_card_vca::init_gain_and_decay_variations(const dmx_voice_card_config &config)
|
void dmx_voice_card_vca::init_gain_and_decay_variations(const dmx_voice_card_config &config)
|
||||||
@ -345,7 +345,7 @@ void dmx_voice_card_vca::init_gain_and_decay_variations(const dmx_voice_card_con
|
|||||||
|
|
||||||
// For trigger mode 1.
|
// For trigger mode 1.
|
||||||
m_gain.push_back((r12 * r17 * VCC + R8 * r12 * VD + R8 * r17 * VD) /
|
m_gain.push_back((r12 * r17 * VCC + R8 * r12 * VD + R8 * r17 * VD) /
|
||||||
((R8 * r12 * r17) + (r12 * r17 * R9) + (R8 * r17 * R9) + (R8 * r12 * R9)));
|
((R8 * r12 * r17) + (r12 * r17 * R9) + (R8 * r17 * R9) + (R8 * r12 * R9)));
|
||||||
// For trigger mode 2.
|
// For trigger mode 2.
|
||||||
m_gain.push_back((r12 * VCC + R8 * VD) / (r12 * R8 + R8 * R9 + r12 * R9));
|
m_gain.push_back((r12 * VCC + R8 * VD) / (r12 * R8 + R8 * R9 + r12 * R9));
|
||||||
// For trigger mode 3.
|
// For trigger mode 3.
|
||||||
@ -354,7 +354,7 @@ void dmx_voice_card_vca::init_gain_and_decay_variations(const dmx_voice_card_con
|
|||||||
for (int i = 0; i < m_gain.size(); ++i)
|
for (int i = 0; i < m_gain.size(); ++i)
|
||||||
{
|
{
|
||||||
LOGMASKED(LOG_VOLUME, "%s: Gain variation %d: %f uA, %f\n",
|
LOGMASKED(LOG_VOLUME, "%s: Gain variation %d: %f uA, %f\n",
|
||||||
tag(), i, m_gain[i] * 1e6F, m_gain[i] / MAX_IREF);
|
tag(), i, m_gain[i] * 1e6F, m_gain[i] / MAX_IREF);
|
||||||
m_gain[i] /= MAX_IREF; // Normalize.
|
m_gain[i] /= MAX_IREF; // Normalize.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -374,7 +374,7 @@ void dmx_voice_card_vca::init_gain_and_decay_variations(const dmx_voice_card_con
|
|||||||
{
|
{
|
||||||
m_decay_rc_inv.push_back(1.0F / ((R8 + r) * c3));
|
m_decay_rc_inv.push_back(1.0F / ((R8 + r) * c3));
|
||||||
LOGMASKED(LOG_VOLUME, "%s: Decay 1/RC variation %d: %f\n",
|
LOGMASKED(LOG_VOLUME, "%s: Decay 1/RC variation %d: %f\n",
|
||||||
tag(), m_decay_rc_inv.size() - 1, m_decay_rc_inv.back());
|
tag(), m_decay_rc_inv.size() - 1, m_decay_rc_inv.back());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -564,11 +564,11 @@ void dmx_voice_card::init_pitch()
|
|||||||
// For trigger mode 1.
|
// For trigger mode 1.
|
||||||
const float alpha = 1.0F + r12 / m_config.r17;
|
const float alpha = 1.0F + r12 / m_config.r17;
|
||||||
m_cv.push_back((alpha * R5 + r12) * (2 * VCC - 3 * VD) /
|
m_cv.push_back((alpha * R5 + r12) * (2 * VCC - 3 * VD) /
|
||||||
(3 * alpha * R5 + 3 * r12 + 2 * alpha * R_555) + VD);
|
(3 * alpha * R5 + 3 * r12 + 2 * alpha * R_555) + VD);
|
||||||
|
|
||||||
// For trigger mode 2.
|
// For trigger mode 2.
|
||||||
m_cv.push_back((R5 + r12) * (2 * VCC - 3 * VD) /
|
m_cv.push_back((R5 + r12) * (2 * VCC - 3 * VD) /
|
||||||
(3 * R5 + 3 * r12 + 2 * R_555) + VD);
|
(3 * R5 + 3 * r12 + 2 * R_555) + VD);
|
||||||
|
|
||||||
// For trigger mode 3.
|
// For trigger mode 3.
|
||||||
m_cv.push_back(m_cv[0]);
|
m_cv.push_back(m_cv[0]);
|
||||||
@ -636,7 +636,7 @@ void dmx_voice_card::compute_pitch_variations()
|
|||||||
|
|
||||||
m_sample_t[i] = attotime::from_double(t_high + t_low);
|
m_sample_t[i] = attotime::from_double(t_high + t_low);
|
||||||
LOGMASKED(LOG_PITCH, "%s Pitch variation %d: %f (%f, %f)\n",
|
LOGMASKED(LOG_PITCH, "%s Pitch variation %d: %f (%f, %f)\n",
|
||||||
tag(), i, 1.0 / m_sample_t[i].as_double(), t_high, t_low);
|
tag(), i, 1.0 / m_sample_t[i].as_double(), t_high, t_low);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.pitch_control)
|
if (m_config.pitch_control)
|
||||||
@ -658,7 +658,7 @@ void dmx_voice_card::select_pitch()
|
|||||||
|
|
||||||
m_timer->adjust(sampling_t, 0, sampling_t);
|
m_timer->adjust(sampling_t, 0, sampling_t);
|
||||||
LOGMASKED(LOG_PITCH, "Setting sampling frequency: %f\n",
|
LOGMASKED(LOG_PITCH, "Setting sampling frequency: %f\n",
|
||||||
1.0 / sampling_t.as_double());
|
1.0 / sampling_t.as_double());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dmx_voice_card::is_decay_enabled() const
|
bool dmx_voice_card::is_decay_enabled() const
|
||||||
@ -723,7 +723,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(dmx_voice_card::clock_callback)
|
|||||||
if (!m_vca->in_decay() && is_decay_enabled())
|
if (!m_vca->in_decay() && is_decay_enabled())
|
||||||
{
|
{
|
||||||
if ((is_early_decay_enabled() && m_counter >= EARLY_DECAY_START) ||
|
if ((is_early_decay_enabled() && m_counter >= EARLY_DECAY_START) ||
|
||||||
m_counter >= LATE_DECAY_START)
|
m_counter >= LATE_DECAY_START)
|
||||||
{
|
{
|
||||||
m_vca->decay();
|
m_vca->decay();
|
||||||
}
|
}
|
||||||
@ -1208,7 +1208,7 @@ u8 dmx_state::cassette_r()
|
|||||||
const u8 d7 = BIT(data, 7); // PROT* (memory protect switch. Active low).
|
const u8 d7 = BIT(data, 7); // PROT* (memory protect switch. Active low).
|
||||||
|
|
||||||
return (d7 << 7) | (d6 << 6) | (d5 << 5) | (d4 << 4) |
|
return (d7 << 7) | (d6 << 6) | (d5 << 5) | (d4 << 4) |
|
||||||
(d3 << 3) | (d2 << 2) | (d1 << 1) | d0;
|
(d3 << 3) | (d2 << 2) | (d1 << 1) | d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int GROUP> void dmx_state::gen_trigger_w(u8 data)
|
template<int GROUP> void dmx_state::gen_trigger_w(u8 data)
|
||||||
@ -1288,7 +1288,7 @@ void dmx_state::update_voice_volume(int voice)
|
|||||||
m_right_mixer->set_input_gain(voice, gain_right);
|
m_right_mixer->set_input_gain(voice, gain_right);
|
||||||
|
|
||||||
LOGMASKED(LOG_FADERS, "Voice %d volume changed to: %d (gain L:%f, R:%f)\n",
|
LOGMASKED(LOG_FADERS, "Voice %d volume changed to: %d (gain L:%f, R:%f)\n",
|
||||||
voice, pot_percent, gain_left, gain_right);
|
voice, pot_percent, gain_left, gain_right);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmx_state::memory_map(address_map &map)
|
void dmx_state::memory_map(address_map &map)
|
||||||
|
@ -429,7 +429,7 @@ INPUT_PORTS_START(ob8)
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
ROM_START(ob8)
|
ROM_START(ob8)
|
||||||
ROM_REGION(0X4000, MAINCPU_TAG, 0)
|
ROM_REGION(0x4000, MAINCPU_TAG, 0)
|
||||||
ROM_DEFAULT_BIOS("a8")
|
ROM_DEFAULT_BIOS("a8")
|
||||||
|
|
||||||
ROM_SYSTEM_BIOS(0, "a8", "OB-8 A8 OS")
|
ROM_SYSTEM_BIOS(0, "a8", "OB-8 A8 OS")
|
||||||
|
@ -793,7 +793,7 @@ CONS( 2018, ra145, 0, 0, megadriv_ra145_ntsc, msi_6button,
|
|||||||
// Technically this is a MD type cartridge, but it doesn't seem to be designed for use with a standard MD as it contains
|
// Technically this is a MD type cartridge, but it doesn't seem to be designed for use with a standard MD as it contains
|
||||||
// nothing but the 16Mbyte ROM and a 5v to 3.3v converter yet the code clearly requires some extensive banking logic.
|
// nothing but the 16Mbyte ROM and a 5v to 3.3v converter yet the code clearly requires some extensive banking logic.
|
||||||
// Testing it on a real MD shows nothing, not even the menu.
|
// Testing it on a real MD shows nothing, not even the menu.
|
||||||
//
|
//
|
||||||
// We don't seem to emulate the system it's designed for, so for now just treat it as its own thing (which may become
|
// We don't seem to emulate the system it's designed for, so for now just treat it as its own thing (which may become
|
||||||
// the basis of a driver for that console)
|
// the basis of a driver for that console)
|
||||||
CONS( 2012, atgame40, 0, 0, megadriv_radica_3button_pal, radica_3button, megadriv_radica_state, init_megadrie, "AtGames", "40 Bonus Games in 1 (AtGames)", MACHINE_NOT_WORKING)
|
CONS( 2012, atgame40, 0, 0, megadriv_radica_3button_pal, radica_3button, megadriv_radica_state, init_megadrie, "AtGames", "40 Bonus Games in 1 (AtGames)", MACHINE_NOT_WORKING)
|
||||||
|
@ -215,10 +215,10 @@ CONS(2015, bkrankp, 0, 0, generalplus_gpspispi_bkrankp, gcm394, generalplus_gps
|
|||||||
// This can be found listed as a ZHISHAN / Aojiao / Bornkid 32 Bit Preloaded 139-in-1 Handheld Game Console
|
// This can be found listed as a ZHISHAN / Aojiao / Bornkid 32 Bit Preloaded 139-in-1 Handheld Game Console
|
||||||
// but these just seem to be brands, manufacturer is unknown.
|
// but these just seem to be brands, manufacturer is unknown.
|
||||||
// Various case styles are available, the unit here was styled after a Nintendo Switch
|
// Various case styles are available, the unit here was styled after a Nintendo Switch
|
||||||
//
|
//
|
||||||
// Architecture is unknown, it contains many of the games in beijuehh / bornkidh (generalplus_gpl16250_rom.cpp)
|
// Architecture is unknown, it contains many of the games in beijuehh / bornkidh (generalplus_gpl16250_rom.cpp)
|
||||||
// but is running from SPI flash and has 'Loading' screens between menus and after selecting a game.
|
// but is running from SPI flash and has 'Loading' screens between menus and after selecting a game.
|
||||||
//
|
//
|
||||||
// While those are GeneralPlus based platforms, it's possible the games were ported to something else, the SPI
|
// While those are GeneralPlus based platforms, it's possible the games were ported to something else, the SPI
|
||||||
// appears to contain a filesystem, but data looks to be compressed / encrypted with no obvious code.
|
// appears to contain a filesystem, but data looks to be compressed / encrypted with no obvious code.
|
||||||
// There is no GPspi header in the SPI ROM.
|
// There is no GPspi header in the SPI ROM.
|
||||||
|
@ -488,7 +488,7 @@ INPUT_PORTS_END
|
|||||||
static INPUT_PORTS_START( epo_tetr ) // all inputs verified against hidden test mode
|
static INPUT_PORTS_START( epo_tetr ) // all inputs verified against hidden test mode
|
||||||
PORT_INCLUDE( spg2xx )
|
PORT_INCLUDE( spg2xx )
|
||||||
|
|
||||||
PORT_MODIFY("P1")
|
PORT_MODIFY("P1")
|
||||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||||
@ -2731,12 +2731,12 @@ CONS( 2008, ddr33v, 0, 0, spg2xx, ddr33v, spg2xx_game_ddr33v_st
|
|||||||
CONS( 2006, anpantv, 0, 0, spg2xx, spg2xx, spg2xx_game_state, empty_init, "Bandai", "Anpanman TV (Japan)", MACHINE_NOT_WORKING )
|
CONS( 2006, anpantv, 0, 0, spg2xx, spg2xx, spg2xx_game_state, empty_init, "Bandai", "Anpanman TV (Japan)", MACHINE_NOT_WORKING )
|
||||||
|
|
||||||
// Has an AT24C08, not currently hooked up (probably for storing database unlocks)
|
// Has an AT24C08, not currently hooked up (probably for storing database unlocks)
|
||||||
//
|
//
|
||||||
// There is also a card reader/scanner which can read barcodes from Digimon cards
|
// There is also a card reader/scanner which can read barcodes from Digimon cards
|
||||||
// and IR connectivity which allowed for data exchange with various services using
|
// and IR connectivity which allowed for data exchange with various services using
|
||||||
// an external device, including transfering characters to/from an arcade game.
|
// an external device, including transfering characters to/from an arcade game.
|
||||||
// Neither is currently emulated
|
// Neither is currently emulated
|
||||||
//
|
//
|
||||||
// Will report 'ERROR' sometimes, maybe as a result of these not being hooked up.
|
// Will report 'ERROR' sometimes, maybe as a result of these not being hooked up.
|
||||||
CONS( 2006, dmbtjunc, 0, 0, spg2xx, dmbtjunc, spg2xx_game_state, empty_init, "Bandai", "Let's! TV Play Digital Monster Battle Junction (Japan)", MACHINE_NOT_WORKING )
|
CONS( 2006, dmbtjunc, 0, 0, spg2xx, dmbtjunc, spg2xx_game_state, empty_init, "Bandai", "Let's! TV Play Digital Monster Battle Junction (Japan)", MACHINE_NOT_WORKING )
|
||||||
|
|
||||||
|
@ -62,15 +62,15 @@
|
|||||||
2005 Let's!TVプレイ ドラゴンボ-ルZ バトル体感かめはめ波~ おめぇとフュージョン / バンダイ / 日本 Let's! TV Play Dragon Ball Z Battle Taikan Kamehameha~ Omee to Fusion / Bandai / Japan
|
2005 Let's!TVプレイ ドラゴンボ-ルZ バトル体感かめはめ波~ おめぇとフュージョン / バンダイ / 日本 Let's! TV Play Dragon Ball Z Battle Taikan Kamehameha~ Omee to Fusion / Bandai / Japan
|
||||||
|
|
||||||
dumped: either here, xavix_2000.cpp, or xavix_2002.cpp
|
dumped: either here, xavix_2000.cpp, or xavix_2002.cpp
|
||||||
Let's!TVプレイ 体感キャストオフ 仮面ライダーカブト クロックアップ&ライダーキック / バンダイ / 日本 Let's! TV Play Taikan Cast Off Kamen Rider Kabuto Clock Up & Rider Kick / Bandai / Japan
|
Let's!TVプレイ 体感キャストオフ 仮面ライダーカブト クロックアップ&ライダーキック / バンダイ / 日本 Let's! TV Play Taikan Cast Off Kamen Rider Kabuto Clock Up & Rider Kick / Bandai / Japan
|
||||||
Let's!TVプレイ なりきり体感 ボウケンジャー 走れ!撃て!ミッションスタート!! / バンダイ / 日本 Let's! TV Play Narikiri Taikan Boukenger Hashire! Ute! Mission Start!! / Bandai / Japan
|
Let's!TVプレイ なりきり体感 ボウケンジャー 走れ!撃て!ミッションスタート!! / バンダイ / 日本 Let's! TV Play Narikiri Taikan Boukenger Hashire! Ute! Mission Start!! / Bandai / Japan
|
||||||
Webdiver Gradion /TAKARA/Japan - - - - - - -
|
Webdiver Gradion /TAKARA/Japan - - - - - - -
|
||||||
Let's!TVプレイ 魔法戦隊マジレンジャー マジマットでダンス&バトル / バンダイ / 日本 Let's! TV Play Mahou Taiketsu Magiranger - Magimat de Dance & Battle / Bandai / Japan
|
Let's!TVプレイ 魔法戦隊マジレンジャー マジマットでダンス&バトル / バンダイ / 日本 Let's! TV Play Mahou Taiketsu Magiranger - Magimat de Dance & Battle / Bandai / Japan
|
||||||
anpan-man pyon-pyon ikunou mat /JoyPalette/Japan - - - - - - -
|
anpan-man pyon-pyon ikunou mat /JoyPalette/Japan - - - - - - -
|
||||||
どこでもドラえもん 日本旅行ゲームDX体感!どこドラグランプリ! / エポック社 / 日本 Doko Demo Doraemon Nihon Ryokou Game DX Taikan! Doko Dora Grand Prix! / Epoch / Japan
|
どこでもドラえもん 日本旅行ゲームDX体感!どこドラグランプリ! / エポック社 / 日本 Doko Demo Doraemon Nihon Ryokou Game DX Taikan! Doko Dora Grand Prix! / Epoch / Japan
|
||||||
Let's!TVプレイ ふたりはプリキュアMaxHeart マットでダンス MaxHeartにおどっちゃおう / バンダイ / 日本 Let's! TV Play Futari wa PreCure - MaxHeart Mat de Dance MaxHeart ni Odotchaou / Bandai / Japan
|
Let's!TVプレイ ふたりはプリキュアMaxHeart マットでダンス MaxHeartにおどっちゃおう / バンダイ / 日本 Let's! TV Play Futari wa PreCure - MaxHeart Mat de Dance MaxHeart ni Odotchaou / Bandai / Japan
|
||||||
anpan-man kazoku de ikunou mat DX /JoyPalette/Japan - - - - - - -
|
anpan-man kazoku de ikunou mat DX /JoyPalette/Japan - - - - - - -
|
||||||
Excite Striker (UK)
|
Excite Striker (UK)
|
||||||
connecTV OPUS /RADICA EU (different ROM to US?)
|
connecTV OPUS /RADICA EU (different ROM to US?)
|
||||||
Let's!TVプレイ 音撃バトル!仮面ライダー響鬼 決めろ!一気火勢の型 / バンダイ / 日本 (Let's! TV Play Ongeki Battle! Kamen Rider Hibiki - Kimero! Ikki Kasei no Kata / Bandai / Japan)
|
Let's!TVプレイ 音撃バトル!仮面ライダー響鬼 決めろ!一気火勢の型 / バンダイ / 日本 (Let's! TV Play Ongeki Battle! Kamen Rider Hibiki - Kimero! Ikki Kasei no Kata / Bandai / Japan)
|
||||||
Let's construct the town! /TAKARA/Japan - - - - - - -
|
Let's construct the town! /TAKARA/Japan - - - - - - -
|
||||||
@ -311,13 +311,13 @@ void xavix_state::mainram_w(offs_t offset, uint8_t data)
|
|||||||
{
|
{
|
||||||
m_mainram[offset] = data;
|
m_mainram[offset] = data;
|
||||||
/*
|
/*
|
||||||
// trying to debug anpanmdx title screen issue
|
// trying to debug anpanmdx title screen issue
|
||||||
if ((offset == 0x3d) && (data == 0x77))
|
if ((offset == 0x3d) && (data == 0x77))
|
||||||
logerror("%s: writing 0x77 to 0x3d\n", machine().describe_context());
|
logerror("%s: writing 0x77 to 0x3d\n", machine().describe_context());
|
||||||
if ((offset == 0x98) && (data == 0x77))
|
if ((offset == 0x98) && (data == 0x77))
|
||||||
logerror("%s: writing 0x77 to 0x98\n", machine().describe_context());
|
logerror("%s: writing 0x77 to 0x98\n", machine().describe_context());
|
||||||
if ((offset == 0x3f2) && (data == 0x77))
|
if ((offset == 0x3f2) && (data == 0x77))
|
||||||
logerror("%s: writing 0x77 to 0x3f2\n", machine().describe_context());
|
logerror("%s: writing 0x77 to 0x3f2\n", machine().describe_context());
|
||||||
// but the unwanted? value of 0x77 is explicitly set by the code at 1c61c
|
// but the unwanted? value of 0x77 is explicitly set by the code at 1c61c
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
@ -773,7 +773,7 @@ ROM_START( epo_ntpj )
|
|||||||
|
|
||||||
// uses IS24C64 EEPROM
|
// uses IS24C64 EEPROM
|
||||||
|
|
||||||
// there is extra hardware for the Piano side of things which may or may not have ROM data in it
|
// there is extra hardware for the Piano side of things which may or may not have ROM data in it
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( doradraw )
|
ROM_START( doradraw )
|
||||||
@ -858,7 +858,7 @@ CONS( 2004, epo_tfit, 0, 0, superxavix_i2c_24c04_4mb, epo_tfit, superxavix_
|
|||||||
// 石川遼 エキサイトゴルフ
|
// 石川遼 エキサイトゴルフ
|
||||||
CONS( 2010, epo_rgfj, 0, 0, superxavix_i2c_24c08, xavix_i2c, superxavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Ishikawa Ryou Excite Golf (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
CONS( 2010, epo_rgfj, 0, 0, superxavix_i2c_24c08, xavix_i2c, superxavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Ishikawa Ryou Excite Golf (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||||
|
|
||||||
// Let's!TVプレイ ふたりはプリキュアMaxHeart マットでダンス MaxHeartにおどっちゃおう
|
// Let's!TVプレイ ふたりはプリキュアMaxHeart マットでダンス MaxHeartにおどっちゃおう
|
||||||
CONS( 2004, maxheart, 0, 0, superxavix_i2c_24c04_4mb, xavix_i2c, superxavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Futari wa PreCure MaxHeart Mat de Dance MaxHeart ni Odotchaou (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
CONS( 2004, maxheart, 0, 0, superxavix_i2c_24c04_4mb, xavix_i2c, superxavix_i2c_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Futari wa PreCure MaxHeart Mat de Dance MaxHeart ni Odotchaou (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||||
|
|
||||||
// どこでもドラえもん 日本旅行ゲームDX体感!どこドラグランプリ!
|
// どこでもドラえもん 日本旅行ゲームDX体感!どこドラグランプリ!
|
||||||
|
@ -28,7 +28,7 @@ void juku_mouse_device::device_start()
|
|||||||
save_item(NAME(m_prev_mouse_y));
|
save_item(NAME(m_prev_mouse_y));
|
||||||
save_item(NAME(m_prev_mouse_x));
|
save_item(NAME(m_prev_mouse_x));
|
||||||
save_item(NAME(m_prev_byte));
|
save_item(NAME(m_prev_byte));
|
||||||
m_mouse_timer = timer_alloc(FUNC(juku_mouse_device::poll_delta), this);
|
m_mouse_timer = timer_alloc(FUNC(juku_mouse_device::poll_delta), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void juku_mouse_device::device_reset()
|
void juku_mouse_device::device_reset()
|
||||||
@ -75,7 +75,7 @@ static INPUT_PORTS_START( juku_mouse )
|
|||||||
|
|
||||||
PORT_START("MOUSE_Y")
|
PORT_START("MOUSE_Y")
|
||||||
PORT_BIT(0xff, 0x00, IPT_MOUSE_Y) PORT_CODE(MOUSECODE_Y) PORT_SENSITIVITY(23)
|
PORT_BIT(0xff, 0x00, IPT_MOUSE_Y) PORT_CODE(MOUSECODE_Y) PORT_SENSITIVITY(23)
|
||||||
|
|
||||||
PORT_START("BUTTONS")
|
PORT_START("BUTTONS")
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Left Button")
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Left Button")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Right Button")
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Right Button")
|
||||||
|
@ -26,7 +26,7 @@ private:
|
|||||||
required_ioport m_mouse_x, m_mouse_y, m_mouse_b;
|
required_ioport m_mouse_x, m_mouse_y, m_mouse_b;
|
||||||
uint8_t m_prev_mouse_x, m_prev_mouse_y;
|
uint8_t m_prev_mouse_x, m_prev_mouse_y;
|
||||||
uint8_t m_prev_byte;
|
uint8_t m_prev_byte;
|
||||||
devcb_write_line m_int_handler;
|
devcb_write_line m_int_handler;
|
||||||
emu_timer *m_mouse_timer;
|
emu_timer *m_mouse_timer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user