| |||
Views: 89,623,881 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 09-27-24 09:55 PM |
|
Guest: Register | Login |
Main - Posts by JaSp |
JaSp |
| ||
Shyguy Level: 24 Posts: 41/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
I believe I can make an "Export to NSF" for quick preview purpose, that would replace the first track of smb3 Nsf file and so you would hear the actual track you're working on. |
JaSp |
| ||
Shyguy Level: 24 Posts: 42/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
New version!
- Added XSD validation for smb3song XML files (it will check if the specified file is well-formatted, please let me know if you encounter an error and think that it was not an error!) - Added NSF exporting : select a song in the list and click on NSF; it will replace the first song of the file with the one selected; you can open the nsf file with the default opener when exporting by checking "Open NSF" Link is on the first post. - Added support for all note durations used by the game (new durations are 0.3, 0.55, 0.75, 3.33) As for the new DMC samples, I'm afraid it might just be too difficult and time-consuming to do. I need to keep some free time for my future smb3 hack |
JaSp |
| ||
Shyguy Level: 24 Posts: 43/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Hopefully MIDI conversion isn't too far ahead; I've begun to take a look at the MusicXML format, and it will be my current task for the next days.
I also found a great utility to convert MIDI files into MusicXML (MuseScore). Stay tuned |
JaSp |
| ||
Shyguy Level: 24 Posts: 44/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
New release, with first version of the MusicXML to smb3song converter!
It kinda works, except that it doesn't support noise and dmc channels. You can now convert MIDI files to MusicXML (via MuseScore, it's the only free tool to do that that I found so far), and then convert that file with the MusicXMLConverter. There aren't any instructions on how to use it, but if you can look at your MIDI/MusicXML file structure, you should be able to understand it quite easily. Small notes : - ending measure is inclusive - multiply factor is used to multiply (or divide if by < 1) input notes by a certain amount; it is merely used to change the speed of the track regardless of the tempo, or if something doesn't sound right, for example when a note has a too small duration (< 0.33) for smb3) - the output track should sound as it sounds in MusicXML, *not* as the MIDI file itself (MuseScore's imported MIDIs don't sound right sometimes) Here's a screenshot with a ready-to-be-converted song : EDIT: check the included sml-overworld.smb3song file included, it has been made with the converter from a MIDI file! |
JaSp |
| ||
Shyguy Level: 24 Posts: 45/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
- winamp startup should be disabled if you uncheck the "Open NSF" checkbox
- as for MuseScore, I merely use it as a converter; I just open a MIDI file with it and save as a MusicXML file; since it's basically made to generate scores, it isn't very handy for editing purposes for non-musically trained people. You've got to choose the instrument in the converter then ("Track to use"). However I realized that some MIDI files aren't imported right into MuseScore; that's why I'm actually considering writing a MIDI to smb3song Converter... So for now, I recommend optimizing the MIDI file itself first with your favorite tracker! |
JaSp |
| ||
Shyguy Level: 24 Posts: 46/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
The program only opens the .nsf file, so it just uses the default assigned opener for this file type. |
JaSp |
| ||
Shyguy Level: 24 Posts: 47/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Posted by KP9000Try to use the "multiply factor", i.e. setting it to 4 in this case; and also try to adjust the song's tempo; if you still can't get it right, well...I can't do much! I know things are really tricky right now, that's why I was considering making a MIDI to smb3song converter (I used MusicXML because XML seemed faster/easier to do, but after all, being a ROM hacker I'm really used to work with binary so it shouldn't be much of a problem - more a matter of time...) I won't be able to work on this very often, I'm quite busy with my internship, so I only get to work on all this on weekends. |
JaSp |
| ||
Shyguy Level: 24 Posts: 48/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Posted by KP9000This is an error from the XSD validation; that means the string pattern isn't correct for the channel. Usually it might be because the converter has output a too low/high octave (< 2 or > 7), or that a note duration was invalid (usually because it is too low so it has output a 0-note, which is invalid). It's cool that you managed to get a smb3song I'm at work right now but I'll definitely take a look at it once I get home! |
JaSp |
| ||
Shyguy Level: 24 Posts: 49/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Just a little note to let you know that I am working on a MIDI converter, and that I've already managed to get an accurate smb3song-type string representation of a score (currently tested on just 1 midi file for now, but progress is going way faster than I could imagine)
Stay tuned! |
JaSp |
| ||
Shyguy Level: 24 Posts: 50/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
I haven't checked yet, but my patch is likely to not be compatible with the latest version of Reuben; I believe DD used some space I used for my patch, so it would just overwrite it and break down Reuben's routines.
Also, I told DD about being able to manually set the song selection byte for levels' header but he must have forgotten about it, since you can't do so in the current release. I'll look into it and release a proper patch as soon as I can! |
JaSp |
| ||
Shyguy Level: 24 Posts: 51/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Well, the best option here would be to have Reuben's song list loaded from an external file, so that I could generate a new file with SMB3MI; this way people would actually select "New Super Mario Bros. Overworld" as the song for their level rather than looking at SMB3MI to see that 21 = NSMB Overworld.
The list could look like this as an XML file :
I guess you should also disable your conversion algorithm since I'm taking care of this through my patch (I don't remember whether this was done in Reuben.exe or in the patched ROM ?) Anyway, using the Unused1 byte isn't convenient, it would basically waste it - and I'm already planning to really use these bytes for my future hack! |
JaSp |
| ||
Shyguy Level: 24 Posts: 52/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Just a quick note, about the palette editor button : make one available in the level header settings, that will edit the currently selected palette.
Oh, btw, I didn't have much time to test the editor, but I tried to do a castle vertical level, and I had a problem of starting position (mario was starting about 8 tiles upper than he was supposed to); I'll send you the project once I have time to do so! other suggestion: scale-9 tool I'm REALLY looking forward to that tool! |
JaSp |
| ||
Shyguy Level: 24 Posts: 53/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
yup, that's it; the tool I mentioned a few weeks ago!
I borrowed the name from Adobe Flash actually |
JaSp |
| ||
Shyguy Level: 24 Posts: 54/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Bug report:
there seems to be a problem with pipe levels; I created a pipe level, everything looked fine in Reuben, but graphics were messed up in the game. screenshot Something might be wrong with TSA (or whatever you'd like to call it) EDIT Bug report: Ship propeller sprite is not placed accurately in the editor: |
JaSp |
| ||
Shyguy Level: 24 Posts: 55/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Another bug, when you right-click an item in the project tree-list, the focus stays on the previously selected item.
Also, I can't figure out how to use the graphic import/reload menu items, if I want my new graphics, I need to manually copy and rename a file to project.chr and reload the project; using the menu items I only got the graphic file to get erased! (not the file itself, but all the graphics that were in it become black) Is that a bug or am I just missing how to use this ? |
JaSp |
| ||
Shyguy Level: 24 Posts: 56/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
I see; well it's not a major problem anyway.
GUI suggestions : - double-clicking or right-clicking on a pointer in map editing brings the pointer properties window - vertically resizable sprite windows, so that we can display more than ~8 sprites in a current sprite set; that would be very useful to have a clear visibility on what's available for the level |
JaSp |
| ||
Shyguy Level: 24 Posts: 57/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
So far I believe you'll have to manually edit your music slot from your levels' headers via hex.
The correct order should be this : - compile your ROM from Reuben - patch it with the music ips from smb3mi - insert songs with smb3mi - replace the music bytes via hex to get the proper songs to load Sorry for not having updated anything for a long time, I've been very busy recently and it's not likely to change for the coming weeks/months... |
JaSp |
| ||
Shyguy Level: 24 Posts: 58/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
No problem for the source, however as I've learned to program by myself, it's probably the worst optimized and designed program ever let alone poorly commented
source for the MusicXML converter I used the .NET XPath library for XML, it might not be the best way to efficiently do this, but it was the most humanly understandable for me (as you can write the actual path in plain text for your nodes and elements) by the way, about the MIDI converter, I thought it would be kinda easy to do, but I've encountered some compatibility problems for different MIDI file types, and mainly a problem with approximation, since most of the MIDI files aren't accurate about the notes durations and all, so I tried to create some kind of approximation/rounding algorithms and it's quite messy :/ I'll try to work on it again when I have time to do so. here's a wip version ; it might work depending on your midi file, but I'm not sure you can eventually get something out of it |
JaSp |
| ||
Shyguy Level: 24 Posts: 59/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
that's strange, I was sure to have sorted out the timer issue; but I kinda rushed the beta patch so I'll have to look at it again.
I'll wait for the 1.0 version of Reuben before making another patch though, not to mention that I need time to do so! |
JaSp |
| ||
Shyguy Level: 24 Posts: 60/95 EXP: 74186 Next: 3939 Since: 03-02-07 From: Paris, France Last post: 4505 days Last view: 4300 days |
Short answer:
You'll have to wait for Reuben 1.0 to easily insert/play custom songs in SMB3. Detailed answer: As of the beta 1.3 version, the program can add musics to your hack, but there isn't any way to play them automatically; unless you add your own ASM hack to do it. I hadn't had time to find a flexible enough way to do so at the time, so I made a version that would essentially be used along with the Reuben editor (which would let you select which song to play in a level's header). Sprite #0F is useless now, it was a first try at implementing a way to play the new songs but it was unstable. Anyway, the proper usage would be : - expand ROM via SMB3MI - apply .ips patch - open/insert new songs into the ROM But you won't notice any difference. You can still check that it worked by manually changing the address $4F5 to your song index (with a debugging emulator such as FCEUXD). |
Main - Posts by JaSp |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 128, rows: 160/160, time: 4.799 seconds. |