mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
-lft_craft, lft_chiptune: Split 'craft' source into two drivers, fixed attribution for hwchiptn, fixed placeholder hashes for hwchiptn, nw
This commit is contained in:
parent
c7adaa808f
commit
3739938026
@ -2498,7 +2498,8 @@ createMESSProjects(_target, _subtarget, "homebrew")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/4004clk.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/68ksbc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/craft.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lft_chiptune.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lft_craft.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/dcebridge.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/homez80.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/p112.cpp",
|
||||
|
@ -32,8 +32,6 @@ Note: Backspace/delete performs oddly.
|
||||
//#include "bus/s100/s100.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class lft_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -132,9 +130,6 @@ ROM_START( lft1510 )
|
||||
ROM_IGNORE(0x1000)
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
/* Driver */
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
|
97
src/mame/drivers/lft_chiptune.cpp
Normal file
97
src/mame/drivers/lft_chiptune.cpp
Normal file
@ -0,0 +1,97 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/**********************************************************************
|
||||
|
||||
ATmega88-based chiptune players by Linus Åkesson and kryo
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/avr8/avr8.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#define MASTER_CLOCK 8000000
|
||||
|
||||
class lft_chiptune_state : public driver_device
|
||||
{
|
||||
public:
|
||||
lft_chiptune_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_dac(*this, "dac")
|
||||
{
|
||||
}
|
||||
|
||||
void chiptune(machine_config &config);
|
||||
|
||||
protected:
|
||||
void prg_map(address_map &map);
|
||||
void data_map(address_map &map);
|
||||
void io_map(address_map &map);
|
||||
|
||||
required_device<avr8_device> m_maincpu;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
};
|
||||
|
||||
//**************************************************************************
|
||||
// MEMORY
|
||||
//**************************************************************************
|
||||
|
||||
void lft_chiptune_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).rom();
|
||||
}
|
||||
|
||||
void lft_chiptune_state::data_map(address_map &map)
|
||||
{
|
||||
map(0x0100, 0x04ff).ram();
|
||||
}
|
||||
|
||||
void lft_chiptune_state::io_map(address_map &map)
|
||||
{
|
||||
map(AVR8_IO_PORTD, AVR8_IO_PORTD).w(m_dac, FUNC(dac_8bit_r2r_device::write));
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// MACHINE
|
||||
//**************************************************************************
|
||||
|
||||
static INPUT_PORTS_START( empty_input )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void lft_chiptune_state::chiptune(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
ATMEGA88(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lft_chiptune_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &lft_chiptune_state::data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &lft_chiptune_state::io_map);
|
||||
m_maincpu->set_eeprom_tag("eeprom");
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "avr8").front_center();
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.add_route(0, m_dac, 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, m_dac, -1.0, DAC_VREF_NEG_INPUT);
|
||||
DAC_8BIT_R2R(config, m_dac, 0).add_route(0, "avr8", 0.9);
|
||||
}
|
||||
|
||||
ROM_START( powernin )
|
||||
ROM_REGION( 0x2000, "maincpu", 0 )
|
||||
ROM_LOAD( "powernin.bin", 0x0000, 0x2000, CRC(67458936) SHA1(26a86846a24dd974723a66bea6c22baf51c7bec9) )
|
||||
ROM_REGION( 0x200, "eeprom", 0 )
|
||||
ROM_LOAD( "eeprom.raw", 0x0000, 0x0200, CRC(bd7bc39f) SHA1(9d0ac37bb3ec8c95990fd37a962a17a95ce97aa0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( hwchiptn )
|
||||
ROM_REGION( 0x2000, "maincpu", 0 )
|
||||
ROM_LOAD( "hwchiptn.bin", 0x0000, 0x2000, CRC(67458936) SHA1(26a86846a24dd974723a66bea6c22baf51c7bec9) )
|
||||
ROM_REGION( 0x200, "eeprom", 0 )
|
||||
ROM_LOAD( "eeprom.raw", 0x0000, 0x0200, CRC(bd7bc39f) SHA1(9d0ac37bb3ec8c95990fd37a962a17a95ce97aa0) )
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
||||
CONS(2007, hwchiptn, 0, 0, chiptune, empty_input, lft_chiptune_state, empty_init, "Linus Åkesson / kryo", "The Hardware Chiptune Project", 0)
|
||||
CONS(2009, powernin, 0, 0, chiptune, empty_input, lft_chiptune_state, empty_init, "Linus Åkesson", "Power Ninja Action Challenge", 0)
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Ryan Holtz
|
||||
/**********************************************************************
|
||||
|
||||
ATmega88-based demo platforms by Linus Åkesson
|
||||
ATmega88-based demo platform by Linus Åkesson
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
@ -14,6 +14,8 @@
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#define MASTER_CLOCK 20000000
|
||||
|
||||
#define VISIBLE_CYCLES 480
|
||||
#define HSYNC_CYCLES 155
|
||||
#define LINE_CYCLES (VISIBLE_CYCLES + HSYNC_CYCLES)
|
||||
@ -23,24 +25,24 @@
|
||||
#define CYCLES_PER_FRAME (LINES_PER_FRAME * LINE_CYCLES)
|
||||
#define PIXELS_PER_FRAME (CYCLES_PER_FRAME)
|
||||
|
||||
class lft_state : public driver_device
|
||||
class lft_craft_state : public driver_device
|
||||
{
|
||||
public:
|
||||
lft_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
lft_craft_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_dac(*this, "dac")
|
||||
, m_screen(*this, "screen")
|
||||
, m_palette(*this, "palette")
|
||||
{
|
||||
}
|
||||
|
||||
void base_config(machine_config &config);
|
||||
void craft(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
virtual uint32_t master_clock() const = 0;
|
||||
|
||||
void prg_map(address_map &map);
|
||||
void data_map(address_map &map);
|
||||
void io_map(address_map &map);
|
||||
@ -48,10 +50,14 @@ protected:
|
||||
uint8_t port_r(offs_t offset);
|
||||
void port_w(offs_t offset, uint8_t data);
|
||||
|
||||
virtual void port_update(const offs_t offset, const uint8_t old, const uint8_t data) = 0;
|
||||
void init_palette(palette_device &palette) const;
|
||||
void video_update();
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
required_device<avr8_device> m_maincpu;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
enum port : uint8_t
|
||||
{
|
||||
@ -64,50 +70,6 @@ protected:
|
||||
};
|
||||
|
||||
uint8_t m_ports[PORT_COUNT];
|
||||
};
|
||||
|
||||
class powernin_state : public lft_state
|
||||
{
|
||||
public:
|
||||
powernin_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: lft_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
void powernin(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual uint32_t master_clock() const override { return 8000000; }
|
||||
|
||||
virtual void port_update(const offs_t offset, const uint8_t old, const uint8_t data) override;
|
||||
};
|
||||
|
||||
class craft_state : public lft_state
|
||||
{
|
||||
public:
|
||||
craft_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: lft_state(mconfig, type, tag)
|
||||
, m_screen(*this, "screen")
|
||||
, m_palette(*this, "palette")
|
||||
{
|
||||
}
|
||||
|
||||
void craft(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
virtual uint32_t master_clock() const override { return 20000000; }
|
||||
|
||||
virtual void port_update(const offs_t offset, const uint8_t old, const uint8_t data) override;
|
||||
|
||||
void init_palette(palette_device &palette) const;
|
||||
void video_update();
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
uint32_t m_last_cycles;
|
||||
uint64_t m_frame_start_cycle;
|
||||
@ -120,30 +82,23 @@ private:
|
||||
// GPIO
|
||||
//**************************************************************************
|
||||
|
||||
uint8_t lft_state::port_r(offs_t offset)
|
||||
uint8_t lft_craft_state::port_r(offs_t offset)
|
||||
{
|
||||
return m_ports[offset];
|
||||
}
|
||||
|
||||
void lft_state::port_w(offs_t offset, uint8_t data)
|
||||
void lft_craft_state::port_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
const uint8_t old = m_ports[offset];
|
||||
m_ports[offset] = data;
|
||||
port_update(offset, old, data);
|
||||
}
|
||||
|
||||
void craft_state::port_update(const offs_t offset, const uint8_t old, const uint8_t data)
|
||||
{
|
||||
const uint8_t changed = data ^ old;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case AVR8_IO_PORTA:
|
||||
break;
|
||||
|
||||
case AVR8_IO_PORTB:
|
||||
if (BIT(changed, 1) && BIT(data, 1))
|
||||
{
|
||||
m_frame_start_cycle = machine().time().as_ticks(master_clock());
|
||||
m_frame_start_cycle = machine().time().as_ticks(MASTER_CLOCK);
|
||||
video_update();
|
||||
}
|
||||
if (BIT(changed, 3))
|
||||
@ -164,36 +119,30 @@ void craft_state::port_update(const offs_t offset, const uint8_t old, const uint
|
||||
}
|
||||
}
|
||||
|
||||
void powernin_state::port_update(const offs_t offset, const uint8_t old, const uint8_t data)
|
||||
{
|
||||
if (offset == AVR8_IO_PORTD)
|
||||
m_dac->write(data);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// MEMORY
|
||||
//**************************************************************************
|
||||
|
||||
void lft_state::prg_map(address_map &map)
|
||||
void lft_craft_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).rom();
|
||||
}
|
||||
|
||||
void lft_state::data_map(address_map &map)
|
||||
void lft_craft_state::data_map(address_map &map)
|
||||
{
|
||||
map(0x0100, 0x04ff).ram();
|
||||
}
|
||||
|
||||
void lft_state::io_map(address_map &map)
|
||||
void lft_craft_state::io_map(address_map &map)
|
||||
{
|
||||
map(AVR8_IO_PORTA, AVR8_IO_PORTD).rw(FUNC(lft_state::port_r), FUNC(lft_state::port_w));
|
||||
map(AVR8_IO_PORTA, AVR8_IO_PORTD).rw(FUNC(lft_craft_state::port_r), FUNC(lft_craft_state::port_w));
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// VIDEO
|
||||
//**************************************************************************
|
||||
|
||||
void craft_state::init_palette(palette_device &palette) const
|
||||
void lft_craft_state::init_palette(palette_device &palette) const
|
||||
{
|
||||
for (int i = 0; i < 0x40; i++)
|
||||
{
|
||||
@ -204,9 +153,9 @@ void craft_state::init_palette(palette_device &palette) const
|
||||
}
|
||||
}
|
||||
|
||||
void craft_state::video_update()
|
||||
void lft_craft_state::video_update()
|
||||
{
|
||||
uint64_t cycles = machine().time().as_ticks(master_clock());
|
||||
uint64_t cycles = machine().time().as_ticks(MASTER_CLOCK);
|
||||
uint32_t frame_cycles = (uint32_t)(cycles - m_frame_start_cycle);
|
||||
|
||||
if (m_last_cycles < frame_cycles)
|
||||
@ -216,26 +165,11 @@ void craft_state::video_update()
|
||||
m_pixels[pixidx] = m_latched_color;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint32_t end_clear = sizeof(m_pixels) - m_last_cycles;
|
||||
uint32_t start_clear = frame_cycles;
|
||||
end_clear = (end_clear > PIXELS_PER_FRAME) ? (PIXELS_PER_FRAME - m_last_cycles) : end_clear;
|
||||
start_clear = (start_clear > PIXELS_PER_FRAME) ? PIXELS_PER_FRAME : start_clear;
|
||||
if (m_last_cycles < PIXELS_PER_FRAME)
|
||||
{
|
||||
//memset(&m_pixels[0] + m_last_cycles, 0, end_clear);
|
||||
}
|
||||
if (start_clear < PIXELS_PER_FRAME)
|
||||
{
|
||||
//memset(&m_pixels[0], 0, start_clear);
|
||||
}
|
||||
}
|
||||
|
||||
m_last_cycles = frame_cycles;
|
||||
}
|
||||
|
||||
uint32_t craft_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
uint32_t lft_craft_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
const pen_t *pens = m_palette->pens();
|
||||
for(int y = 0; y < LINES_PER_FRAME; y++)
|
||||
@ -257,22 +191,11 @@ uint32_t craft_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap,
|
||||
static INPUT_PORTS_START( empty_input )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void lft_state::machine_start()
|
||||
void lft_craft_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_ports));
|
||||
}
|
||||
|
||||
void lft_state::machine_reset()
|
||||
{
|
||||
memset(m_ports, 0, PORT_COUNT);
|
||||
}
|
||||
|
||||
void craft_state::machine_start()
|
||||
{
|
||||
lft_state::machine_start();
|
||||
|
||||
m_pixels = std::make_unique<uint8_t[]>(PIXELS_PER_FRAME);
|
||||
|
||||
save_item(NAME(m_ports));
|
||||
save_item(NAME(m_last_cycles));
|
||||
save_item(NAME(m_frame_start_cycle));
|
||||
|
||||
@ -280,9 +203,9 @@ void craft_state::machine_start()
|
||||
save_pointer(NAME(m_pixels), PIXELS_PER_FRAME);
|
||||
}
|
||||
|
||||
void craft_state::machine_reset()
|
||||
void lft_craft_state::machine_reset()
|
||||
{
|
||||
lft_state::machine_reset();
|
||||
memset(m_ports, 0, PORT_COUNT);
|
||||
|
||||
m_frame_start_cycle = 0;
|
||||
m_last_cycles = 0;
|
||||
@ -291,42 +214,27 @@ void craft_state::machine_reset()
|
||||
memset(&m_pixels[0], 0, PIXELS_PER_FRAME);
|
||||
}
|
||||
|
||||
void lft_state::base_config(machine_config &config)
|
||||
void lft_craft_state::craft(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
ATMEGA88(config, m_maincpu, master_clock());
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lft_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &lft_state::data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &lft_state::io_map);
|
||||
ATMEGA88(config, m_maincpu, MASTER_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lft_craft_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_DATA, &lft_craft_state::data_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &lft_craft_state::io_map);
|
||||
m_maincpu->set_eeprom_tag("eeprom");
|
||||
|
||||
/* sound hardware */
|
||||
PALETTE(config, m_palette, FUNC(lft_craft_state::init_palette), 64);
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(MASTER_CLOCK, 635, 47, 527, 525, 36, 516);
|
||||
m_screen->set_screen_update(FUNC(lft_craft_state::screen_update));
|
||||
|
||||
SPEAKER(config, "avr8").front_center();
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
|
||||
vref.add_route(0, m_dac, 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, m_dac, -1.0, DAC_VREF_NEG_INPUT);
|
||||
}
|
||||
|
||||
void craft_state::craft(machine_config &config)
|
||||
{
|
||||
base_config(config);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(master_clock(), 635, 47, 527, 525, 36, 516);
|
||||
m_screen->set_screen_update(FUNC(craft_state::screen_update));
|
||||
|
||||
PALETTE(config, m_palette, FUNC(craft_state::init_palette), 64);
|
||||
|
||||
DAC_6BIT_R2R(config, m_dac, 0).add_route(0, "avr8", 0.25); // pd1/pd2/pd4/pd5/pd6/pd7 + 2k(x7) + 1k(x5)
|
||||
}
|
||||
|
||||
void powernin_state::powernin(machine_config &config)
|
||||
{
|
||||
base_config(config);
|
||||
|
||||
DAC_8BIT_R2R(config, m_dac, 0).add_route(0, "avr8", 0.9);
|
||||
}
|
||||
|
||||
ROM_START( craft )
|
||||
ROM_REGION( 0x2000, "maincpu", 0 )
|
||||
ROM_LOAD( "craft.bin", 0x0000, 0x2000, CRC(2e6f9ad2) SHA1(75e495bf18395d74289ca7ee2649622fc4010457) )
|
||||
@ -334,21 +242,5 @@ ROM_START( craft )
|
||||
ROM_LOAD( "eeprom.raw", 0x0000, 0x0200, CRC(e18a2af9) SHA1(81fc6f2d391edfd3244870214fac37929af0ac0c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( powernin )
|
||||
ROM_REGION( 0x2000, "maincpu", 0 )
|
||||
ROM_LOAD( "powernin.bin", 0x0000, 0x2000, CRC(67458936) SHA1(26a86846a24dd974723a66bea6c22baf51c7bec9) )
|
||||
ROM_REGION( 0x200, "eeprom", 0 )
|
||||
ROM_LOAD( "eeprom.raw", 0x0000, 0x0200, CRC(bd7bc39f) SHA1(9d0ac37bb3ec8c95990fd37a962a17a95ce97aa0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( hwchiptn )
|
||||
ROM_REGION( 0x2000, "maincpu", 0 )
|
||||
ROM_LOAD( "hwchiptn.bin", 0x0000, 0x2000, CRC(67458936) SHA1(26a86846a24dd974723a66bea6c22baf51c7bec9) )
|
||||
ROM_REGION( 0x200, "eeprom", 0 )
|
||||
ROM_LOAD( "eeprom.raw", 0x0000, 0x0200, CRC(bd7bc39f) SHA1(9d0ac37bb3ec8c95990fd37a962a17a95ce97aa0) )
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
||||
CONS(2008, craft, 0, 0, craft, empty_input, craft_state, empty_init, "Linus Åkesson", "Craft", MACHINE_IMPERFECT_GRAPHICS)
|
||||
CONS(2009, powernin, 0, 0, powernin, empty_input, powernin_state, empty_init, "Linus Åkesson", "Power Ninja Action Challenge", 0)
|
||||
CONS(2007, hwchiptn, 0, 0, powernin, empty_input, powernin_state, empty_init, "Linus Åkesson", "The Hardware Chiptune Project", 0)
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
||||
CONS(2008, craft, 0, 0, craft, empty_input, lft_craft_state, empty_init, "Linus Åkesson", "Craft", MACHINE_IMPERFECT_GRAPHICS)
|
@ -11261,11 +11261,6 @@ warzardr1 // 23/10/1996 (c) 1996 (Japan)
|
||||
cpzodiac //
|
||||
cpzodiacj //
|
||||
|
||||
@source:craft.cpp
|
||||
craft // Craft, by [lft] (2008)
|
||||
powernin // Power Ninja Action Challenge, by [lft] (2009)
|
||||
hwchiptn // The Hardware Chiptune Project, by [lft] (2007)
|
||||
|
||||
@source:crazybal.cpp
|
||||
crazybal // EGS
|
||||
|
||||
@ -19364,6 +19359,13 @@ ripribita // (c) 1997 LAI Games
|
||||
lft1230 //
|
||||
lft1510 //
|
||||
|
||||
@source:lft_chiptune.cpp
|
||||
powernin // Power Ninja Action Challenge, by [lft] (2009)
|
||||
hwchiptn // The Hardware Chiptune Project, by [lft] and kryo (2007)
|
||||
|
||||
@source:lft_craft.cpp
|
||||
craft // Craft, by [lft] (2008)
|
||||
|
||||
@source:lg-dvd.cpp
|
||||
lggp40 //
|
||||
|
||||
|
@ -191,7 +191,6 @@ controlid.cpp
|
||||
cortex.cpp
|
||||
cosmicos.cpp
|
||||
cp1.cpp
|
||||
craft.cpp
|
||||
crimson.cpp
|
||||
crvision.cpp
|
||||
ct486.cpp
|
||||
@ -494,6 +493,8 @@ leapster.cpp
|
||||
learnwin.cpp
|
||||
lee1214.cpp
|
||||
lft.cpp
|
||||
lft_chiptune.cpp
|
||||
lft_craft.cpp
|
||||
lg-dvd.cpp
|
||||
lilith.cpp
|
||||
lisa.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user