FM Towns Core
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
Re: FM Towns Core
I am curious how you are processing video since Fujitsu, even in the red book, didn't provide very much documentation for video ASICs. I concluded that was the hardest part and I didn't want to do any "guessing".
If you are interested captainys has a free and legal FMT BIOS he is using in Tsugaru emulator that he wrote.
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
It seems to work as far as reading the MS-DOS boot disk, but nothing is displayed from DOS.
Since the TOWNS FDC is not the uPD765 series, it has been recreated from scratch, and it is still unknown whether there is something wrong with the operation of the FDC, or if a completely different peripheral is operating strangely.
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
Re: FM Towns Core
Towns had 3 primary FD with different FDC on each. However all 3 mode soft work fine.
Do you wish for me to find FDC on my Towns FDD? At the moment I have 3 available to examine.
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
Thanks for your advice. I analyzed the abnormal part using this Free BIOS and its source, and somehow I was able to boot MS-DOS, so I uploaded the RTL.
http://fpga8801.seesaa.net/archives/20221029-1.html
Re: FM Towns Core
For all others, you can find an alpha core on puu's blog page http://fpga8801.seesaa.net/archives/20221029-1.html
The graphics is not fully implemented, except sprites and RAM, so expect garbage on screens and you can probably only run DOS for now. DOS 3.1 doesn't run, but 6.2 should work.
SCSI and CD-ROM don't work at this point. So only floppy disks in D88 format are currently supported. NVRAM(SRAM) is not saved between reloading cores.
If anyone can give some pointers how MiSTer can handle this
The core requires a 'boot.rom' which can be created by concatenating the DOS, DIC, FNT, F20 and SYS files, e. g.
Code: Select all
cat fmt_dos.rom fmt_dic.rom fmt_fnt.rom fmt_f20.rom fmt_sys.rom > boot.rom
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FM Towns Core
Thanks to shira for the Set 1 tip.
Use the repack version if you don't want to download 100GB of data.
Windoze users use:
copy /b fmt_dos.rom+fmt_dic.rom+fmt_fnt.rom+fmt_f20.rom+fmt_sys.rom boot.rom
-
- Top Contributor
- Posts: 1911
- Joined: Wed May 27, 2020 1:59 pm
- Has thanked: 145 times
- Been thanked: 454 times
Re: FM Towns Core
For some strange reason each time I tried to download a core from puu web site the browser thinks it is an unplayable mp3 file.
If using Firefox Save Page as and replace the extension mp3 to rbf.
If using Chrome Save As, the extension is correct.
- tontonkaloun
- Posts: 354
- Joined: Sun May 24, 2020 7:38 pm
- Has thanked: 154 times
- Been thanked: 52 times
Re: FM Towns Core
Grabulosaure's SparcStation core has SCSI hard drive and cdrom partially implemented. Not sure if it's helpful to you. https://github.com/Grabulosaure/ss
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
yes. I was also thinking about porting (stealing?) from the SS core for the SCSI HDD.kconger wrote: ↑Sat Oct 29, 2022 10:46 pm Hi puu-san
Grabulosaure's SparcStation core has SCSI hard drive and cdrom partially implemented. Not sure if it's helpful to you. https://github.com/Grabulosaure/ss
TOWNS CDROM is not SCSI connection (SCSI connection is possible, but booting is not possible).
-
- Top Contributor
- Posts: 1311
- Joined: Mon Jul 06, 2020 9:37 pm
- Has thanked: 634 times
- Been thanked: 308 times
Re: FM Towns Core
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
The core assumes FM TOWNS with 80386DX. The 386SX has a different memory map, so it will not work properly with the BIOS for that model. The 486 model BIOS does not prepare registers around the cache, so it may not work.thorr wrote: ↑Sun Oct 30, 2022 2:22 am I don't know what an FM Towns even is, so I looked it up. It seems that there are many things that exist called FM Towns including PC's of various specs and consoles. What model is this core trying to replicate? It looks like a PC. What is unique about an FM Towns PC vs. a standard PC, besides possibly requiring Japanese (not sure if that is required or not either)?
FM TOWNS is a PC based on the assumption that it will be equipped with an 80386 or later CPU. The architecture is basically incompatible with the IBM PC. As with other Japanese PCs, Kanji fonts are built into the ROM. However, unlike the PC-9800 series and the FM R series on which this model is based, there is no hardware for displaying kanji characters, so writing kanji codes to VRAM will not display kanji characters. In MS-DOS, Kanji VRAM emulation is performed in IO.SYS, and Kanji characters are displayed by reading fonts from Kanji fonts and transferring them to VRAM.
(In Japan, until 1993, IBM PCs and compatibles were not sold to individuals, and most of the PCs made in Japan were PCs with a unique architecture that had a Japanese display function in hardware or BIOS. The PC-9800 series had the market share in Japan, accounting for more than 90% of the market share in Japan.)
Re: FM Towns Core
Link to the repo: https://github.com/MiSTer-devel/X68000_MiSTer
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
Re: FM Towns Core
Thank you for the work. I will check it this weekend.puu wrote: ↑Sat Oct 29, 2022 2:18 pmThanks for your advice. I analyzed the abnormal part using this Free BIOS and its source, and somehow I was able to boot MS-DOS, so I uploaded the RTL.
http://fpga8801.seesaa.net/archives/20221029-1.html
The graphics are the least documented pieces for FM Towns.
By the way, captainys and windy-san have a BBS. Do you need the link? There might be other Japanese people with deeper graphics knowledge.
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
Re: FM Towns Core
I couldn't load FMR software called Fortress. Towns is backwards compatible with FMR.
Next I loaded Dinosaur Program disk. Then I was able to successfully load Scenario Disk 1 when the game requested. The colors are very beautiful and vibrant. All the D88 images I used were from my collection (dumped with Pauline or Greaseweazle) and not on the internet. I own several hundred pieces of Towns software.
However I noticed there is no sound.
There are some sound IC already performed in HDL. Jotego should have implemented the RF5C68 in Verilog for System 16 I believe.
The Yamaha IC that can be found inside Towns can be found here. It is also complete.
https://github.com/jotego/jt12
I would try to implement but I understand if there is hesitation to release the source this early. I look forward to continued work on FPGA Towns.
Re: FM Towns Core
Re: FM Towns Core
Code: Select all
$ unqar -l release-TOWNS_221029.qar
Going to extract 269 files.
qar_info.json
CPU/ao486/ao486.v
CPU/ao486/ao486_hw.tcl
CPU/ao486/avalon_io.v
CPU/ao486/defines.v
CPU/ao486/exception.v
CPU/ao486/global_regs.v
CPU/ao486/startup_default.v
MiSTer/sys/alsa.sv
MiSTer/sys/arcade_video.v
MiSTer/sys/ascal.vhd
MiSTer/sys/audio_out.v
MiSTer/sys/build_id.tcl
MiSTer/sys/ddr_svc.sv
MiSTer/sys/gamma_corr.sv
MiSTer/sys/hdmi_config.sv
MiSTer/sys/hps_io.v
MiSTer/sys/hq2x.sv
MiSTer/sys/i2c.v
MiSTer/sys/i2s.v
MiSTer/sys/iir_filter.v
MiSTer/sys/ltc2308.sv
MiSTer/sys/mcp23009.sv
MiSTer/sys/mt32pi.sv
MiSTer/sys/osd.v
MiSTer/sys/pll_audio.qip
MiSTer/sys/pll_audio.v
MiSTer/sys/pll_audio/pll_audio_0002.qip
MiSTer/sys/pll_audio/pll_audio_0002.v
MiSTer/sys/pll_cfg.qip
MiSTer/sys/pll_cfg.v
MiSTer/sys/pll_cfg/altera_pll_reconfig_core.v
MiSTer/sys/pll_cfg/altera_pll_reconfig_top.v
MiSTer/sys/pll_hdmi.qip
MiSTer/sys/pll_hdmi.v
MiSTer/sys/pll_hdmi/pll_hdmi_0002.qip
MiSTer/sys/pll_hdmi/pll_hdmi_0002.v
MiSTer/sys/pll_hdmi_adj.vhd
MiSTer/sys/pll_q17.qip
MiSTer/sys/scandoubler.v
MiSTer/sys/scanlines.v
MiSTer/sys/sd_card.sv
MiSTer/sys/sigma_delta_dac.v
MiSTer/sys/spdif.v
MiSTer/sys/sys.qip
MiSTer/sys/sys.tcl
MiSTer/sys/sys_analog.tcl
MiSTer/sys/sys_dual_sdram.tcl
MiSTer/sys/sys_top.sdc
MiSTer/sys/sys_top.v
MiSTer/sys/sysmem.sv
MiSTer/sys/vga_out.sv
MiSTer/sys/video_cleaner.sv
MiSTer/sys/video_mixer.sv
PS2IF/KBIF.vhd
TOWNS/CDC/cdif.vhd
TOWNS/CMOS/cmos.mif
TOWNS/CMOS/cmosram.vhd
TOWNS/CRTCREG.vhd
TOWNS/DMAC/busbusy.vhd
TOWNS/DMAC/dma1ch.vhd
TOWNS/DMAC/dma71071.vhd
TOWNS/FDC/MiST8877.vhd
TOWNS/IDROM/IDROM.cmp
TOWNS/IDROM/IDROM.mif
TOWNS/IDROM/IDROM.qip
TOWNS/IDROM/IDROM.vhd
TOWNS/IDROM/IDROMIF.vhd
TOWNS/IDROM/IDSROM.vhd
TOWNS/KBIF/KBCONV.vhd
TOWNS/KBIF/kbtbl.cmp
TOWNS/KBIF/kbtbl.mif
TOWNS/KBIF/kbtbl.qip
TOWNS/KBIF/kbtbl.vhd
TOWNS/MiSTer/TOWNS.sv
TOWNS/MiSTer/pll.cmp
TOWNS/MiSTer/pll.qip
TOWNS/MiSTer/pll.sip
TOWNS/MiSTer/pll.spd
TOWNS/MiSTer/pll.v
TOWNS/MiSTer/pll/pll_0002.qip
TOWNS/MiSTer/pll/pll_0002.v
TOWNS/MiSTer/pll_sim/pll.vo
TOWNS/PIC/pic8259.vhd
TOWNS/PTC/PTC1ch.vhd
TOWNS/PTC/PTC8253.vhd
TOWNS/SPRITE/PATRAM.vhd
TOWNS/TOWNSMiSTer.vhd
TOWNS/VIDCREG.vhd
TOWNS/anapal.vhd
TOWNS/asmicont.bsf
TOWNS/asmicont.cmp
TOWNS/asmicont.inc
TOWNS/asmicont.qip
TOWNS/asmicont.vhd
TOWNS/asmicont_inst.vhd
TOWNS/calcres.vhd
TOWNS/debug/ixcount.vhd
TOWNS/debug/stclk.vhd
TOWNS/digpal.vhd
TOWNS/dpmreg.vhd
TOWNS/fdcont.vhd
TOWNS/inicopy.vhd
TOWNS/inttim2.vhd
TOWNS/iocont.vhd
TOWNS/iorw.vhd
TOWNS/jis2rom/jis2rom.cmp
TOWNS/jis2rom/jis2rom.mif
TOWNS/jis2rom/jis2rom.qip
TOWNS/jis2rom/jis2rom.vhd
TOWNS/kbint.vhd
TOWNS/kcgmemcont.vhd
TOWNS/knjjis2rom.vhd
TOWNS/lenwait.vhd
TOWNS/mem_addr_pkg_MiSTer.vhd
TOWNS/memclr.vhd
TOWNS/memcont.vhd
TOWNS/memorymap.vhd
TOWNS/padio.vhd
TOWNS/ressel.vhd
TOWNS/rextreg.vhd
TOWNS/rkanjcg.vhd
TOWNS/rtc58321.vhd
TOWNS/rvidreg.vhd
TOWNS/scsiif.vhd
TOWNS/sdramc_new.vhd
TOWNS/timerint.vhd
TOWNS/tlb_memtype.vhd
TOWNS/tvideo.vhd
TOWNS/tvwrote.vhd
TOWNS/v17/CMOS.cmp
TOWNS/v17/CMOS.qip
TOWNS/v17/CMOS.vhd
TOWNS/v17/TOWNS.qpf
TOWNS/v17/TOWNS.qsf
TOWNS/v17/TOWNS_M.qsf
TOWNS/v17/TOWNS_M_assignment_defaults.qdf
TOWNS/v17/build_id.v
TOWNS/v17/linebuf.cmp
TOWNS/v17/linebuf.qip
TOWNS/v17/linebuf.vhd
TOWNS/v17/mainpll.sip
TOWNS/v17/mainpll.spd
TOWNS/v17/mistram.cmp
TOWNS/v17/mistram.qip
TOWNS/v17/mistram.vhd
TOWNS/v17/release-TOWNS.qsf
TOWNS/v17/rlinebuf.cmp
TOWNS/v17/rlinebuf.qip
TOWNS/v17/rlinebuf.vhd
TOWNS/v17/video_sdram.stp
TOWNS/v17/vidpll.sip
TOWNS/v17/vidpll.spd
TOWNS/v17/vidpll_sim/altera_pll_reconfig/altera_pll_reconfig_core.v
TOWNS/v17/vidpll_sim/altera_pll_reconfig/altera_pll_reconfig_top.v
TOWNS/v17/vidpll_sim/altera_pll_reconfig/altera_std_synchronizer.v
TOWNS/v17/vidpll_sim/vidpll.v
TOWNS/videocont.vhd
TOWNS/vmaskreg.vhd
TOWNS/vsint.vhd
rtc/rtcbody.vhd
sound/FMcommon/FMreg.vhd
sound/FMcommon/MUL16x17.qip
sound/FMcommon/MUL16x17.vhd
sound/FMcommon/TL.mif
sound/FMcommon/TLtbl.qip
sound/FMcommon/TLtbl.vhd
sound/FMcommon/envcont.vhd
sound/FMcommon/envelope_pkg.vhd
sound/FMcommon/muls16xu16.vhd
sound/OPN/OPN2.vhd
sound/OPN/OPNFM.vhd
sound/OPN/OPNREG.qip
sound/OPN/OPNREG.vhd
sound/cosn.mif
sound/cosnrom.qip
sound/cosnrom.vhd
sound/mult16.qip
sound/mult16.vhd
sound/sinn.mif
sound/sinnrom.qip
sound/sinnrom.vhd
sound/sintbl.vhd
sound/sinw.mif
sound/sinwrom.qip
sound/sinwrom.vhd
cpu/ao486/autogen/avalon_io.v
cpu/ao486/autogen/avalon_mem.v
cpu/ao486/autogen/dcache.v
cpu/ao486/autogen/dcache_control_ram.v
cpu/ao486/autogen/decode_commands.v
cpu/ao486/autogen/defines.v
cpu/ao486/autogen/exception.v
cpu/ao486/autogen/execute_commands.v
cpu/ao486/autogen/icache.v
cpu/ao486/autogen/icache_control_ram.v
cpu/ao486/autogen/memory_read.v
cpu/ao486/autogen/memory_write.v
cpu/ao486/autogen/microcode_commands.v
cpu/ao486/autogen/prefetch_control.v
cpu/ao486/autogen/read_commands.v
cpu/ao486/autogen/tlb.v
cpu/ao486/autogen/write_commands.v
cpu/ao486/common/simple_fifo.v
cpu/ao486/common/simple_mult.v
cpu/ao486/common/simple_ram.v
cpu/ao486/memory/avalon_mem.v
cpu/ao486/memory/cache_data_ram.v
cpu/ao486/memory/dcache.v
cpu/ao486/memory/dcache_control_ram.v
cpu/ao486/memory/dcache_matched.v
cpu/ao486/memory/dcache_read.v
cpu/ao486/memory/dcache_to_icache_fifo.v
cpu/ao486/memory/dcache_write.v
cpu/ao486/memory/icache.v
cpu/ao486/memory/icache_control_ram.v
cpu/ao486/memory/icache_matched.v
cpu/ao486/memory/icache_read.v
cpu/ao486/memory/link_dcacheread.v
cpu/ao486/memory/link_dcachewrite.v
cpu/ao486/memory/link_readburst.v
cpu/ao486/memory/link_readcode.v
cpu/ao486/memory/link_readline.v
cpu/ao486/memory/link_writeburst.v
cpu/ao486/memory/link_writeline.v
cpu/ao486/memory/memory.v
cpu/ao486/memory/memory_read.v
cpu/ao486/memory/memory_write.v
cpu/ao486/memory/prefetch.v
cpu/ao486/memory/prefetch_control.v
cpu/ao486/memory/prefetch_fifo.v
cpu/ao486/memory/tlb.v
cpu/ao486/memory/tlb_regs.v
cpu/ao486/pipeline/condition.v
cpu/ao486/pipeline/decode.v
cpu/ao486/pipeline/decode_commands.v
cpu/ao486/pipeline/decode_prefix.v
cpu/ao486/pipeline/decode_ready.v
cpu/ao486/pipeline/decode_regs.v
cpu/ao486/pipeline/execute.v
cpu/ao486/pipeline/execute_commands.v
cpu/ao486/pipeline/execute_divide.v
cpu/ao486/pipeline/execute_multiply.v
cpu/ao486/pipeline/execute_offset.v
cpu/ao486/pipeline/execute_shift.v
cpu/ao486/pipeline/fetch.v
cpu/ao486/pipeline/microcode.v
cpu/ao486/pipeline/microcode_commands.v
cpu/ao486/pipeline/pipeline.v
cpu/ao486/pipeline/read.v
cpu/ao486/pipeline/read_commands.v
cpu/ao486/pipeline/read_debug.v
cpu/ao486/pipeline/read_effective_address.v
cpu/ao486/pipeline/read_mutex.v
cpu/ao486/pipeline/read_segment.v
cpu/ao486/pipeline/write.v
cpu/ao486/pipeline/write_commands.v
cpu/ao486/pipeline/write_debug.v
cpu/ao486/pipeline/write_register.v
cpu/ao486/pipeline/write_stack.v
cpu/ao486/pipeline/write_string.v
lib/addsat.vhd
lib/average.vhd
lib/crcgenn.vhd
lib/datfifo.vhd
lib/pargen.vhd
lib/sftclk.vhd
lib/sftgen.vhd
zlib_out_time_stamp_tmp.tmp
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
Re: FM Towns Core
Would you like me to find FDC of the EA and Pentium Towns FDD? Perhaps it has more documentation than FDC from other Towns FDD
-
- Posts: 14
- Joined: Tue Aug 03, 2021 5:17 pm
- Has thanked: 1 time
- Been thanked: 5 times
Re: FM Towns Core
Late to this but puu-san has updated Towns FPGA
-add HDD support and booting into TownsOS from HDD
-CD-ROM not supported
http://fpga8801.seesaa.net/article/493687651.html
Edit: boot into DOS not TownsOS.
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
New core was uploaded.
Supported 256 colors.
http://fpga8801.seesaa.net/archives/20230303-1.html
Re: FM Towns Core
puu wrote: ↑Sat Mar 04, 2023 12:09 amNew core was uploaded.
Supported 256 colors.
http://fpga8801.seesaa.net/archives/20230303-1.html
puu-san, thank you very much.
It seems you published a download link to the old version. You probably meant to publish this link: release-TOWNS_230303.qar.
-
- Core Developer
- Posts: 113
- Joined: Mon May 25, 2020 9:20 am
- Location: Japan
- Has thanked: 2 times
- Been thanked: 151 times
- Contact:
Re: FM Towns Core
shira wrote: ↑Sat Mar 04, 2023 3:05 ampuu wrote: ↑Sat Mar 04, 2023 12:09 amNew core was uploaded.
Supported 256 colors.
http://fpga8801.seesaa.net/archives/20230303-1.htmlpuu-san, thank you very much.
It seems you published a download link to the old version. You probably meant to publish this link: release-TOWNS_230303.qar.
Oh,Yes! Thanks for pointing out
- kathleen
- Top Contributor
- Posts: 421
- Joined: Fri Jun 26, 2020 4:23 am
- Location: Belgium
- Has thanked: 243 times
- Been thanked: 138 times
Re: FM Towns Core
puu wrote: ↑Sat Mar 04, 2023 12:09 amNew core was uploaded.
Supported 256 colors.
http://fpga8801.seesaa.net/archives/20230303-1.html
おつかれさまです ぷう-さん
かすりん