FTM Checker

kevin81

Active member
Are you having trouble importing your FamiTracker txt file? Is NESmaker throwing errors when you're importing the file or building the ROM? Or maybe the file imports correctly and the ROM builds just fine, but it sounds completely different or wrong in the final build? The first thing you'll need to do is to check out this excellent guide by CutterCross.

Based off this guide, I've created a web tool where you can upload the exported text file. The tool will check the file against the most common issues and tells you what's wrong with it. The tool also suggests some possible optimization recommendations, should you run out of precious ROM space.

If you would like to give it a try, you can find it here: https://nerdboard.nl/ftm/

Although a lot of the checks are already implemented, it's still a work in progress. If you find any bugs, missing checks, invalid recommendations or other possible improvements, please feel free to let me know.
 

Raftronaut

Member
Are you having trouble importing your FamiTracker txt file? Is NESmaker throwing errors when you're importing the file or building the ROM? Or maybe the file imports correctly and the ROM builds just fine, but it sounds completely different or wrong in the final build? The first thing you'll need to do is to check out this excellent guide by CutterCross.

Based off this guide, I've created a web tool where you can upload the exported text file. The tool will check the file against the most common issues and tells you what's wrong with it. The tool also suggests some possible optimization recommendations, should you run out of precious ROM space.

If you would like to give it a try, you can find it here: https://nerdboard.nl/ftm/

Although a lot of the checks are already implemented, it's still a work in progress. If you find any bugs, missing checks, invalid recommendations or other possible improvements, please feel free to let me know.
Super impressive
 

Tuï

New member
wow, that is helpfull! thank u. I run some of my files and i have one question about optimization alerts . It checks any double patterns but most of them come from GGsound not supporting pattern sequences like 01 02 01 03, because i read somewhere that it needs to stay in order. You sure we can do that kind of optimizations?

Thanks for that one "If a pattern ID is empty across all channels, and it is used in one of the frames, the text file will not import. This can be solved by adding a silent note in an empty pattern", i was totally unaware of that.
 

kevin81

Active member
First of all, you're welcome!

I'm not sure if 4.5.x uses a different or updated version of GGsound compared to 4.1.5, but as far as I know the order of the patterns in and of itself does not cause an issue when importing FTM text files; at least since 4.5.6. I've never used an older version of NESmaker so I can't tell if it's an issue there. I've never had any trouble importing FTM text files with mixed or out-of-order pattern numbers.
 

TakuikaNinja

Active member
NESmaker uses an updated importer since 4.5.X. The pattern order limitation Tui mentioned doesn't apply anymore.
The only thing with patterns I'm not sure about is unused patterns (e.g. 00, 01, 03 & 04 are used but 02 isn't).
 

TakuikaNinja

Active member
@kevin81
I've just found a bug with the checker.
It doesn't account for txt exports from common FamiTracker forks (j/0CC, Dn).
The strings to check for are as follows:
"# 0CC-FamiTracker text export <version no.>"
"# j0CC-FamiTracker text export <version no.>"
"# Dn-FamiTracker text export <version no.>"
It's probably just a matter of checking if "FamiTracker" is contained in the first string after the hashtag instead of a strict equality check.
 

kevin81

Active member
@kevin81
I've just found a bug with the checker.
It doesn't account for txt exports from common FamiTracker forks (j/0CC, Dn).
The strings to check for are as follows:
"# 0CC-FamiTracker text export <version no.>"
"# j0CC-FamiTracker text export <version no.>"
"# Dn-FamiTracker text export <version no.>"
It's probably just a matter of checking if "FamiTracker" is contained in the first string after the hashtag instead of a strict equality check.
Thanks for letting me know! You're absolutely right, I didn't account for different FTM forks (I didn't even know they had different headers until now). I've updated the validity check, so this should be fixed now.
 

Tuï

New member
NESmaker uses an updated importer since 4.5.X. The pattern order limitation Tui mentioned doesn't apply anymore.
The only thing with patterns I'm not sure about is unused patterns (e.g. 00, 01, 03 & 04 are used but 02 isn't).
Cool! Is there some more good news about that new importer?
 

kevin81

Active member
FTM Checker just got updated! It now shows the assembled file size of the raw music data. This might come in handy when you'd like to know how full your bank is and how much space (if any) is left to add more music or sound effects. It has been tested using random sample checks and seems to work quite consistently, but please let me know if you encounter some kind of issue.

As you can see in this example, the soundtrack to Plummet Challenge Game was quite full :D
1635805347692.png
 

Logana

Well-known member
slight issue with the new features, sometimes it just straight up just dosen't work, and its,was trying to optimise a soundtrack i was working on and last time i check it said it was 5 times over, but now it says nothing, its not even their
 

m8si

Active member
Awesome tool! Managed to squeeze all my music in one bank. (y)

Found a small bug while using the checker.

If you by accident have an empty instrument checked, as in this attached picture, the checker gives you an error similar to this:

Code:
Error:
The txt file didn't compile using ft_txt_to_asm because of the following error.

Traceback (most recent call last):
  File "ft_txt_to_asm.py", line 752, in
    main()
  File "ft_txt_to_asm.py", line 348, in main
    instrument["duty"] = macro_id_to_index["duty"][int(inst_split_line[6])]
KeyError: 0

bug.png
 
Top Bottom