Retrocomputer Preservation Preserving is not just about storing computers, disks and books in a hangar FOSDEM Brussels, 2 & 3 February 2019 Original Original Hard Hard Soft Soft machine mach ine ? Emula Emulation tion ? Emulation Emulation ?
Retrogaming & Retrocomputing A French non-profit organization for the preservation of videogame and computer heritage V 2019.02.01
*our vision To preserve heritage videogames and computers. To show them to people. Silicium manages an ever-growing collection and a regular exhibition schedule.
03 about about silicium silicium A 25-year history Back in 1994, it was so obvious that computers should be preserved. We then decided to gather and shelter many obsolete computers, videogames, software, books… and testimonies. Once we were seen like Zorg planet inhabitants, but today everyone feels the need to preserve computer heritage. Silicium has some answers.
04 our team today Valérie Amiel Valérie Amiel Benoit Triquet Benoit Triquet René S René Speranza peranza Management expert Digital specialist President & cofounder Not everyone can whisper Explains us how to Has never achieved pop around things the true language of the to transcend the machine to the computer. we need. 16-color palette.
*our our collection The heart of Silicium lies in its unmatched collection of 1965 to 2015 computing representatives, which are readily available for studies, display & exhibitions
06 * our action It’s hard to describe what Silicium preserves. Here’s what we consider important. Computers Com puters Videogames Videogames Everything Everything * It all begun with People ask us to Tons of iron, loads of compact Hewlett- show some fun. paper. We try to Packard HP-85. Videogames seem to maintain the whole Instead of being be the right answer. thing together in recycled, it And we know that order to keep the launched the idea even the hardcore spirit of computing of computer computer can be fun vivid and preservation in to play with. unforgettable. 1989.
*our our experience With more than 100 members and a 25-year history, Silicium tries to offer a true savoir-faire.
08 * our expertise Silicium not only manages a huge collection. We also promote this heritage in many ways. Manage community Manage community Exhibitions Exhibitions Mysilicium forum is a hub for The main link with enthusiasts to share their passion. people Expertise Expertise Conference Con ference Need an expert in DEC This heritage has a long minicomputers or in Philips story to tell. Videopac ? Ask Silicium. Preservation Preservation Publis Publisher her Unfortunately, many old machines Silicium regularly publishes need to be repaired. books and games. Silicium experts play a major role.
09 * Silicium in pictures Some fine examples of Silicium activities. Nothing could 2013 Odyssud 01 01 02 02 be done without Gameplay was enthusiasts and a big a huge exhibition, collection, French TV Old technology 03 03 04 04 captures an old requires some . computer specific skills to screen drawing maintain live, machines in working order. Let’s achieve our main goal : opening a permanent exhibition.
10 Retrocomputer Preservation Preserving is not just about storing computers, disks and books in a hangar We do repair computers but nothing is forever Hardware Hardware Me Media dia Do Document cumentatio ation rots rots rots rots rots rots Early ASICs in 8-bit Mass-storage Digitize British micros… emulators Reverse-engineer
11 Projects Projects Projects Retro Peripherals Reverse Engineering we use or make FPGA-Based emulators at Silicium Gregory Estrade (@Torlus, http://lvt.tl/) Projects Projects by our members Frédéric Requin (co-founder of ArcadeRetroGaming) Techniques for retro development
12 * Retro mass-storage devices Tape Decks Hard Drives Audio interface is easy: 3€ generic « SD2IDE » smartphone with headphone jack work best in our experience Digital interfaces are proprietary CF-to-IDE are passive, depend on your CF card Atari 800: no emulators but A8CAS IDE-to-mSATA are less compatible open source software for digitizing Open source SCSI2SD copy-protected tapes and We use v5 manufactured by Itead use in emulators
14 Floppy disks • A floppy drive is « dumb », mostly analog electronics Most 8-bit micros do not have a floppy controller • Easy: digital serial port Atari 800: an Arduino is enough, open-source SIO2SD ebay, lotharek.pl BBC Micro: software-defined so anything works, we use Ctorwy31 MMC drive • Hard: processor bus Oric floppy controller boards are remade • Standard non-PC controller Like Apple II where we use CFFA3000, BigMessOfWires FloppyEmu , …
15 Shugart-like floppy drives
16 Shugart-like floppy drives • Beware of pinout differences between true Shugart and PC industry standard drives – Motor-on and drive select lines • Non-standard ribbon cables: Amstrad CPC – 26-pin ribbon cable to 34-pin PC => 2-way success – Beware of reversed +5V and +12V !!! • HxC is the best: resilient hardware, highly compatible – By JF Del Nero with contribs from Torlus – Hardware is open source :) firmware is not :( • Gotek drives are inexpensive – Must-have: FlashFloppy open source firmware
* reverse engineering The case of the Squale by Apollo 7 French microcomputer only 3 prototypes built 1 preserved by French museum CNAM Reverse engineered by Greg Estrade and JF Del Nero Emulator now available http://hxc2001.free.fr/Squale/ http://torlus.github.io/2015/04/10/cnam-squale
31 * FPGA-based emulators Greg Greg Fred Fred * * (@Torlus, http://lvt.tl/) (co-founder of ArcadeRetroGaming) Sega Megadrive/Genesis MCC (Multiple Classic Nec PC-Engine/TurboGrafx Computer) emulates a C64 Atari Jaguar J68, a Verilog implementation all developed in Verilog on Altera Cyclone of Motorola 68000 Ported to the MiSTer open source project Successor to the MiST FPGA open source project Uses Cyclone V eval board, inexpensive, huge FPGA
18 It’s demo time ! Bomberman ‘93 running on a… Raspberry Pi Raspberry Pi MiSTer MiSTer PC Engine PC Engine Greg’s FPGA core for Batocera Linux on A real Nec PC-Engine MiSTer on DE10-nano Raspberry Pi 3B+ Is priceless :-) and 140€ to 200€ 50€ in excess of 200€ on depending on eBay daughterboards
19 * Retro hardware development Greg and Fred use Verilator Veritalor open source, Verilog simulator GTKWave VCD viewer Verification of J68 core against Musashi, the 68k emulator used by MAME Cosimulation in SystemVerilog
20 J68 to Verilator Verilog top Verilog top-level level model model mod odule j68 68_soc ( input t rst_n, n, input t clk, input t uar art_rxd, input t uar art_cts_n _n, Compiled Com piled to to C++ C++ by Veri by Verilato lator input t uar art_dcd_n _n, output ut ver erilator r $TOP_FI FILE.v $C $COMPILE_ E_OPT uar art_txd, $TR TRACE_OPT PT -top top-module $ $TOP_FIL ILE -exe e output ut $CP CPP_FILES ES uar art_rts_n _n, cd d ./obj_d _dir mak ake -j j -f V$TOP_ P_FILE.mk mk V$TOP_ P_FILE
21 Instantiation and simulation Instantiation Instantiation int nt main(i (int argc gc, char r **argv, v, char * **env) { { Verila lated::co commandAr Args(argc gc, argv) v); Vj68_s _soc* top op = new w Vj68_so soc; while e (tb_sst step < NU NUM_STEPS PS) { to top->rst_ t_n = (tb tb_sstep p < (vlui uint64_t) t)24) ? 0 0 : 1; to top->clk k = top->clk ^ 1 1; to top->eval al(); if f (Verila lated::go gotFinish sh()) bre reak; } top top->f >final(); ); } Add Add tracing tracing // / in decl claration ons // Ini nit VCD t trace du dump Verila lated::tr traceEver erOn(true ue); Verila latedVcdC dC* tfp = = new Ve Verilated edVcdC; top top->t >trace(tf tfp, 99); ); tfp tfp->s >spTrace( e()->set_ t_time_re resolutio ion("1 ps ps"); tfp tfp->o >open(fil ile_name) e); // / in main in loop to top->eval al(); tfp fp->dump( p(tb_time me); if (Ve Verilated ed::gotFi Finish()) )) break; k; }
22 Simulating in Verilog Feed 68k Feed 68k test test program program from from simulated simulated memo memory ry reg eg [15:0 :0] r_mem em_blk [0 [0:(1 << < ADDR_WI WIDTH) - 1]; 1]; reg eg [15:0 :0] r_q; // / 68k bus us activt vty always@( @(posedge ge clock) k) begin r_q <= <= r_mem_ m_blk[add ddress][1 [15:0]; if (wr wren) beg egin if ( (byteena na[0]) r_ r_mem_blk lk[addres ess][7:0] 0] <= da data[7:0] 0]; if ( (byteena na[1]) r_ r_mem_blk lk[addres ess][15:8 :8] <= da data[15:8 :8]; end end end end assign q q = r_q; q;
Recommend
More recommend