Page 2 of 3

Re: FM Towns Core

Posted: Sat Jun 04, 2022 2:49 pm
by puu
The TOWNS core is being developed on MiSTer. With DE0-CV, all resource of FPGA is used up with only 386 core.

Re: FM Towns Core

Posted: Mon Jun 06, 2022 6:48 pm
by cyo.the.vile
Thank you.

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.

Re: FM Towns Core

Posted: Thu Sep 08, 2022 8:00 am
by Caldor
Any news on the progress of this core?

Re: FM Towns Core

Posted: Wed Sep 14, 2022 2:18 am
by puu
sorry. No progress at this time.
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.

Re: FM Towns Core

Posted: Wed Sep 14, 2022 2:24 am
by puu
I tried to debug using a compatible BIOS whose source is open to the public, but it seems that the BIOS only considers booting from CD-ROM, so at this stage only FDD is implemented. Debugging in this BIOS seems too early.

Re: FM Towns Core

Posted: Tue Sep 27, 2022 4:53 pm
by cyo.the.vile
puu wrote: Wed Sep 14, 2022 2:24 am I tried to debug using a compatible BIOS whose source is open to the public, but it seems that the BIOS only considers booting from CD-ROM, so at this stage only FDD is implemented. Debugging in this BIOS seems too early.

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.

Re: FM Towns Core

Posted: Tue Sep 27, 2022 4:56 pm
by cyo.the.vile
puu wrote: Wed Sep 14, 2022 2:24 am I tried to debug using a compatible BIOS whose source is open to the public, but it seems that the BIOS only considers booting from CD-ROM, so at this stage only FDD is implemented. Debugging in this BIOS seems too early.
Please check.


https://github.com/captainys/TOWNSROM

Re: FM Towns Core

Posted: Wed Oct 12, 2022 12:31 am
by sofakng
I'm really looking forward to this core. Please don't give up :)

Re: FM Towns Core

Posted: Sat Oct 29, 2022 2:18 pm
by puu
cyo.the.vile wrote: Tue Sep 27, 2022 4:56 pm
puu wrote: Wed Sep 14, 2022 2:24 am I tried to debug using a compatible BIOS whose source is open to the public, but it seems that the BIOS only considers booting from CD-ROM, so at this stage only FDD is implemented. Debugging in this BIOS seems too early.
Please check.


https://github.com/captainys/TOWNSROM
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

Posted: Sat Oct 29, 2022 3:15 pm
by shira
Thank you so much for the core, puu-san.

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
from `[BIOS] FM Towns [ROM] [Set 1].7z`, `[BIOS] FM Towns [ROM].7z` doesn't seem to work.

Re: FM Towns Core

Posted: Sat Oct 29, 2022 3:55 pm
by jca
Thanks to puu for his work.
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

Re: FM Towns Core

Posted: Sat Oct 29, 2022 3:56 pm
by jca
Now time to figure out img->d88.

Re: FM Towns Core

Posted: Sat Oct 29, 2022 4:09 pm
by jca
Note:
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.

Re: FM Towns Core

Posted: Sat Oct 29, 2022 7:25 pm
by tontonkaloun
Thank you so much puu-san.

Re: FM Towns Core

Posted: Sat Oct 29, 2022 10:46 pm
by kconger
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

Re: FM Towns Core

Posted: Sat Oct 29, 2022 10:55 pm
by puu
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
yes. I was also thinking about porting (stealing?) from the SS core for the SCSI HDD.
TOWNS CDROM is not SCSI connection (SCSI connection is possible, but booting is not possible).

Re: FM Towns Core

Posted: Sun Oct 30, 2022 2:22 am
by thorr
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)?

Re: FM Towns Core

Posted: Sun Oct 30, 2022 7:41 am
by wark91
Thank you Puu-san !

Re: FM Towns Core

Posted: Sun Oct 30, 2022 7:45 am
by puu
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)?
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.

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

Posted: Mon Oct 31, 2022 1:41 pm
by Toya
Thank you for developing this core and also developing and improving x68000 core for MiSTer. You may have gotten this question before but would it be possible for you to create a repository on Github so that other developers can give you a hand? An example is you have improved the x68000 core and it's not implemented and merged to the repository in mister-devel. Kitrinx and Sorg have done some fixes and tweaks to your core in mister-devel the version you have don't have those fixes, and vice versa. It would be a shame if your future implementations aren't added.
Link to the repo: https://github.com/MiSTer-devel/X68000_MiSTer

Re: FM Towns Core

Posted: Wed Nov 02, 2022 10:55 am
by cyo.the.vile
puu wrote: Sat Oct 29, 2022 2:18 pm
cyo.the.vile wrote: Tue Sep 27, 2022 4:56 pm
puu wrote: Wed Sep 14, 2022 2:24 am I tried to debug using a compatible BIOS whose source is open to the public, but it seems that the BIOS only considers booting from CD-ROM, so at this stage only FDD is implemented. Debugging in this BIOS seems too early.
Please check.


https://github.com/captainys/TOWNSROM
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
Thank you for the work. I will check it this weekend.

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.

Re: FM Towns Core

Posted: Thu Nov 03, 2022 1:25 am
by cyo.the.vile
Puu-san,

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

Posted: Tue Nov 08, 2022 12:42 am
by arromdee
Would it be possible to use the 386 from the FM Towns to make a regular 386 PC core? Would it take enough less space than ao486, and/or have different bugs than ao486, for it to be useful?

Re: FM Towns Core

Posted: Tue Nov 08, 2022 9:23 am
by shira
The TOWNS core is using the ao486 cpu, as can be seen below. So there is currently nothing to be gained in this regard.

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

Re: FM Towns Core

Posted: Wed Nov 09, 2022 3:47 am
by cyo.the.vile
FMT Towns EA desktop and Pentium Towns use different FDD than FMT Tower, all-in-one model and also different than HR/HG/SG/MX/MA/ME desktop.

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

Re: FM Towns Core

Posted: Thu Dec 08, 2022 3:42 am
by cyo.the.vile

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.


Re: FM Towns Core

Posted: Sat Mar 04, 2023 12:09 am
by puu

New core was uploaded.
Supported 256 colors.
Image
http://fpga8801.seesaa.net/archives/20230303-1.html


Re: FM Towns Core

Posted: Sat Mar 04, 2023 3:05 am
by shira
puu wrote: Sat Mar 04, 2023 12:09 am

New core was uploaded.
Supported 256 colors.
Image
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.


Re: FM Towns Core

Posted: Sat Mar 04, 2023 1:00 pm
by puu
shira wrote: Sat Mar 04, 2023 3:05 am
puu wrote: Sat Mar 04, 2023 12:09 am

New core was uploaded.
Supported 256 colors.
Image
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.

Oh,Yes! Thanks for pointing out


Re: FM Towns Core

Posted: Sat Mar 04, 2023 8:07 pm
by kathleen
puu wrote: Sat Mar 04, 2023 12:09 am

New core was uploaded.
Supported 256 colors.
Image
http://fpga8801.seesaa.net/archives/20230303-1.html

おつかれさまです ぷう-さん