Recent Posts

Pages: [1] 2 3 ... 7
1
Bug Reports / Raspberry Pi port using Winelib
« Last Post by PinoBatch on January 12, 2018, 11:09:02 PM »
0CC-FamiTracker 0.3.15.1 works in Wine on a PC with an x86 CPU and X Window System. But this doesn't include the Raspberry Pi line of single-board computers or other devices with an ARM CPU.

Winelib allows compiling Wine-compatible Windows applications for Linux and *BSD on non-x86 CPU architectures. In theory, this would let you bring up 0CC-FamiTracker on a Raspberry Pi. Would this be a worthwhile goal?
2
Instrument creation/deletion/rename are tracked in undo history. Clones or deep clones are not. I can crash 0CC. Is this a bug, or is instrument undo support unfinished?

Bug is present on latest Git. 3.15.1 stable does not support instrument undo and is unaffected.

- Create instrument 00. Deep clone to 01. Delete 01. Deep clone 00 to 01 and rename 01.
- Undo 3 times. 01 is present (shouldn't be).
- Redo 3 times. 0CC crashes since it tries to rename 01 which doesn't exist anymore.

(you could replace the first clone with a new instrument.)
3
Tracker Support / Unable to use MIDI input
« Last Post by Torowin on January 06, 2018, 01:53:12 AM »
I think this is a bug but I'm not privy to the technical stuff so I decided not to clutter that section up.

When I choose a MIDI input device, I can input MIDI but it won't record velocities even when the box is checked. Then when I close the program it crashes and gives a dmp file.  After I open and close the program a few times the input device MIDI error pops up, and MIDI input doesn't work anymore.

I've tried reinstalling, clearing the registry, and restarting my computer multiple times with no luck. :/

Any help would be appreciated, thanks!
4
Bug Reports / 5B noise period is overwritten by 5B tone channels
« Last Post by jimbo1qaz on January 05, 2018, 08:17:17 AM »
Whenever a 5B instrument plays, it overwrites the noise's "pitch" with the envelope setting, even if noise is disabled for that instrument. This will interfere with other channels playing noise.

If the instrument has unchecked "Noise / Mode", noise pitch is assigned to $1F once. Otherwise it's assigned while the "Noise / Mode" envelope is running.

Rightward columns overwrite leftward columns. If the noise "Noise / Mode" is looped, but not the non-noise instrument, the pitch will be corrupted for 1 frame. Placing a looped noise instrument in the rightmost column works around this bug.

This does not occur in NSF exports.

[This was brought to my attention by ImATrackMan.]
5
Bug Reports / Corrupted NSFe exports for large files
« Last Post by jimbo1qaz on January 03, 2018, 04:17:41 AM »
https://jimbo1qaz.github.io/eirin.7z

NSFE export for large files is broken, in 0.3.14.5 and Git (around a week ago?).

For eirin29.0cc, removing N163 and at least 1 other expansion chip creates a non-corrupted NSFE export. Deleting lots of rows also works.
garbage-nsfe.0cc consists of large amounts of mostly unique (semi-gibberish) frames, and does NOT contain expansion chips. Deleting half the rows fixes NSFE export.

NSF export is not corrupted.

I gave rainwarrior eirin29.{0cc,nsfe} and he responded:
Quote from: rainwarrior from discord#discuss
i get garbage data after the DATA chunk
it doesn't look like there's any other chunks after that one except NEND
so the size reported for the DATA chunk must be wrong
seems to be off by like 40 bytes or so
there's also 2 extra bytes on the end of the INFO chunk for no good reason (seems to be a trying to represent 60Hz play rate but NSFe doesn't have that in its INFO chunk) it's ignored so that's not an error but it also shouldn't be in the file
the DATA chunk length is exactly 36 too small in this particular case
anyhow send what I just said + your 0cc to its maintainer and they should be able to fix it
maybe also tell them I added this to the spec today: https://wiki.nesdev.com/w/index.php/NSFe#RATE
6
Bug Reports / Text export dialog uses most recent folder from NSF export
« Last Post by jimbo1qaz on January 02, 2018, 05:41:25 AM »
First export a NSF to Folder1.
When you open a TXT export dialog, it defaults to Folder1. Navigate to Folder2, export TXT, and reopen the dialog. It instead defaults to Folder1 (instead of the most recent Folder2).

This has been broken since 3.14.5 or before.

In Famitracker 0.4.6, TXT export/import and NSF export share the same most-recent-folder.
7
Whenever I change my set of expansion chips (or N163 #channels), all bookmarks are cleared.

This bug was introduced in https://github.com/HertzDevil/0CC-FamiTracker/commit/cdee738accc4b728831256e0ffc3d98aa9ef90de I think.

I don't know how to fix it at the moment.
8
Bug Reports / [NOT FIXED] 0CC reads past end of array when volume envelope == 252
« Last Post by jimbo1qaz on December 31, 2017, 03:22:15 AM »
This bug always affects 0CC, but only causes noticeable issues in debug mode, I think.

While fixing http://hertzdevil.info/forum/index.php/topic,41.0.html , I entered a 500-entry volume string, which was properly truncated to 252.

Playing a note in a Debug build, I get an out-of-bound std::array read error after 252 frames.
> 0CC-FamiTracker.exe!CSequence::GetItem(int Index) Line 79
> return m_cValues[Index];
> https://github.com/HertzDevil/0CC-FamiTracker/blob/8bb4a200e79ea0dc3228a69cb0fe839f1f0296b0/Source/Sequence.cpp#L79

> https://github.com/HertzDevil/0CC-FamiTracker/blob/9eba284f9300a24a52ed809fb3759c75b1263a51/Source/SeqInstHandler.cpp#L98

You can fix this by moving `Value = ...` into SEQ_STATE_RUNNING.

(Also the order of execution was confusing to me, I didn't realize at first that
Code: [Select]
m_iSeqPointer[i] < Items whenever SEQ_STATE_RUNNING is hit, since as soon as >=,
Code: [Select]
m_iSeqPointer[i] = Loop or
Code: [Select]
m_iSeqState[i] = SEQ_STATE_ENDUnsure if this can or should be changed.)


[FIXED] moving my mouse in the wrong spot with 125% HiDPI crashes 0CC: https://github.com/HertzDevil/0CC-FamiTracker/blob/9eba284f9300a24a52ed809fb3759c75b1263a51/Source/GraphEditor.cpp#L1141
9
This glitch has existed since 0.3.14.5 or before.

The DPCM FTI format stores sample lengths as 4-byte integers.

CSimpleFile::ReadInt() reads each byte into a `char` array, then left-shifts them into place, followed by binary `|`.

If any byte is in [128, 256) (b2.dmc), integer promotion causes it to be sign-extended, making the resulting integer negative.

When you allocate `int Size = File.ReadInt(); char *SampleData = new char[Size];`, Size is negative.

So you get an "out of memory" error.
10
Importing any .fti file into 0CC will only try slot 0, instead of using AddSequence to find the next empty sequence. This will fail on almost all 0CC modules, saying:
Quote
Document has no free sequence slot
At Volume sequence,

The current code creates instrument object, where all indices are 0. It tries to import into slot 0, and errors if it's occupied.
Previously it used AddSequence for each sequence.
Pages: [1] 2 3 ... 7