|
Post by Arkhan on Oct 31, 2019 19:20:58 GMT
I asked a series of questions in the beforetimes on the other forum, and in chat to DK and others about BrokenSquirrel(TM). Rather than go dig around the other forum's mirror that I never go to, I've decided to just post here on the other forum I barely use. What are the issues with Squirrel in HuC 3.99 From what I remember/saw/etc. - _ vs __ stops things from working because the generated data doesn't build in NuC?
- the second bank of songs doesn't work because...?
- in HuC 3.99 something changed with interrupts and you can only use Squirrel with VSYNC'd tempo.
My final question is WHY was the choice made to create an environment in HuC 3.XX that doesn't jive well with other 3.XX versions? Was this deliberate or what? What are the technical reasons why these choices were made, and things happened the way they did. You generally don't want to introduce breaking stuff like this in a same whole version release, so I am just curious if there was a good reason to do this. and again, the reason we never fixed it: - We don't use or participate in the happenings of 3.99. Atlantean didn't build cleanly in it and then the Squirrel thing made me immediately lose interest in caring.
- We technically didn't break anything (but got blamed / shit on pretty hard for not bothering to fix it. ayyy)
- We didn't/don't want to deal with two versions of our stuff.
- Squirrel was written initially for ourselves so I could put music in the games. Once it worked, we released it for others to use with HuC 3.21, which was the only foreseeable version in our small community of like 3.4 people who did stuff, and we were happy to release a utility that some other people did end up using either for YouTube demos, or for actual projects.
Things have changed drastically since those days, as the "hey heres a fuckin utility check it out and use it lets get shit done!" style is basically dead.
Piggybacking off of something Dave had said, and something I've said countless times. This is a hobby thing in our free time. Quite honestly, we've got other shit to do, and my main shit to do is make games.
Given the frequent backlash about MML, especially from the main contributors to the new HuC, I also question if fixing it is actually something worth bothering with. I personally won't be using it since I don't use HuC 3.99 and have been slowly shifting out of HuC in general to straight assembly...so if nobody else is using or trying to use it, it makes it really hard to find the urge to care.
Fixing something that should've probably just worked but was thrown into a possibly deliberately broken environment on the off chance someone who doesn't bag on MML might use it isn't high on my list of stuff to do.
This isn't meant to be a flame-war. This is just me being straight and asking some questions about this whole thing instead of it all floating around an old forum, a mirror, or a chatroom(s)
So, I hope some actual answers can pop up here. I have some other utilities I've fucked with that will probably be shared once I'm sure they work right in my game or from Punch or someone testing it. Fortunately, they won't be things that break with updates to HuC or whatever since it's graphic converters and a BAT generator for Tiled, lol. Silver linings.
|
|
|
Post by DarkKobold on Oct 31, 2019 19:56:19 GMT
We had a hard time finding a musician willing to do MML songs from scratch. The midi to MML pipeline was considered "difficult" to some. (Especially optimizing repeat sections? I dunno, I'm not a musician.)
That said, Squirrel is currently the best and really, only option for adding music to a game, which makes either Squirrel or Huc 3.99 useless for creating a game. The two don't work together, and music/sfx is pretty important to the game.
I'm not sure what broke, but after I cross the first bank threshold, I can't seem to compile a working Squirrel thingamajigger. Also, if we all join hands and sing in MML harmony, maybe Ark will be encouraged to allow even more banks of music.
|
|
|
Post by Arkhan on Oct 31, 2019 20:28:05 GMT
2 banks should be fine since you can daisy chain the shit like we talked about. I'd consider helping with the music if it actually works right since you intend to use royalty free public domain jazz music.
I don't know what was tweaked in the player code for HuCards by Elmer. I just know I can't make you songs under the normal Squirrel environment and give them to you and have them just work though.
If tempo via interrupts doesn't work, that's even more problematic.
I made that video showing generally how to go from music in a real piece of music software--->MML, but I am not sure how many people really watched it. It's a harsh reality that most of the English speaking world is obsessed with trackers, mostly because of the immediate feedback, and because it's all they know. Anyone who thinks MMLs a mess and trackers aren't needs to step back and look at stuff lol. Trackers are not intuitive pieces of music software.
|
|
|
Post by turboxray on Oct 31, 2019 22:47:52 GMT
I download it to see if I could at least find out the issue with h-int. mml2pce doesn't have a mac or linux build (or the source for it). A bunch of paths in the asm/inc files are windows specific (I'm manually changing the backslashes but it would be nice to add a switch to pceas that would do it automatically). I see the issue with "_". Because they wanted the name space for ax and such to exist both in C and Asm.
|
|
|
Post by elmer on Oct 31, 2019 23:58:12 GMT
I see the issue with "_". Because they wanted the name space for ax and such to exist both in C and Asm. Yep, the change of the system variable names was all about curing namespace pollution, and allowing things like "ax" to be a legal variable name in C code. Uli had already changed the names before I started messing with his fork of HuC. I changed them again to make them confirm to standard-practice in C ... implementation-specfic compiler variables are supposed to start with an '_' in C ... which gives a "__" when you get to assembly language. I also included a define in equ.inc so that you could get the old single-underscore variable names back if you wanted them. I download it to see if I could at least find out the issue with h-int. mml2pce doesn't have a mac or linux build (or the source for it). A bunch of paths in the asm/inc files are windows specific (I'm manually changing the backslashes but it would be nice to add a switch to pceas that would do it automatically). FYI, here's the version of Squirrel that I changed to compile and run on both the old and new HuC, and then gave to Arkhan years ago ... www.dropbox.com/s/pcr82a2mn83miop/squirrel-2016-12-30.zip?dl=1It looks like it should be capable of running using timer interrupts, but that's not something that I did any testing on. I had kinda hoped that Arkhan/TheOldMan would be willing to work with me on getting everything to run on both the old and new HuC, but that didn't happen, and Arkhan still prefers to use the old HuC. IIRC, DK & Gredler used fixed version for some tests in Catastrophy back when they started trying to put some music in.
|
|
|
Post by turboxray on Nov 1, 2019 0:24:52 GMT
Damn.. well, I already fixed startup.asm and the other asm files included in the 3.0 demo that I downloaded haha. So I got it compiled and running, but I need a song longer than 2 bank? And one that uses timer IRQ instead of vblank. Demo song plays fine though.
|
|
|
Post by Arkhan on Nov 1, 2019 0:25:47 GMT
They used that version, and then possibly some hacked up MML2PCE or something. I don't know exactly.
Hopefully Tom or someone who wants to look at it will be able to answer my questions that are more technical than the dumb naming problem. I've not ever bothered to setup Uli or your HuC spinoff.
The thing about the name changing and leaving it under version 3.xx is that it does what I've said before, and was part of the reason we didn't change anything. Breaking changes like that should have resulted in a new version increase. I swear Uli's was HuC 4. Or someone's was. Now it's 3.99.
Besides, like my second and third question state: I believe there is more to it than the simple naming convention changing that people played it off as and then used to basically call me a dick for refusing to fix it. Even if we tweak the MML compiler to barf out the right namings and the _ vs __ thing is sorted out, if bank 2 doesn't work, and you can't have songs at tempos besides VSYNC'd ones, it's basically a useless piece of shit lol. I wouldn't suggest anyone use that. Trying to make songs stuck at the VSYNC tempo is a fuckin nightmare.
and.... maybe don't coyly act like we're the entire reason "that didn't happen", by the way. That was a shitshow that you too hard a part in.
there's too much dicking around and toe-step-onning and dipshittery afoot, and it would be nice to sort out and fix what we can.
|
|
|
Post by turboxray on Nov 1, 2019 0:28:20 GMT
Arkhan, can you link a song that's larger than a bank, and uses TIRQ tempo?
|
|
|
Post by Arkhan on Nov 1, 2019 0:46:19 GMT
Arkhan, can you link a song that's larger than a bank, and uses TIRQ tempo? The timer-age is chosen by the code you call in HuC like PsgInit. You can do it with any song you have. I don't have a song that goes that long. DK can elaborate on that issue with the 2 banks. I think he said once two banks are in use, its all silence. If you just add more data to the demo song (copy paste patterns), you should be able to just fudge any demo song to be long as fuck and get it to span 2 banks. You will see it do that when you run MML2PCE on it.
|
|
|
Post by turboxray on Nov 1, 2019 1:01:25 GMT
The timer-age is chosen by the code you call in HuC like PsgInit. You can do it with any song you have. I don't have a song that goes that long. DK can elaborate on that issue with the 2 banks. I think he said once two banks are in use, its all silence. If you just add more data to the demo song (copy paste patterns), you should be able to just fudge any demo song to be long as fuck and get it to span 2 banks. You will see it do that when you run MML2PCE on it. Ohh I see. Yeah, then the demo was already setting the PSG timing for TIMER. But I tried it with both just because, and it works. So looks like Timer method of tempo is okay. At least in the demo.
|
|
|
Post by elmer on Nov 2, 2019 5:49:19 GMT
Ohh I see. Yeah, then the demo was already setting the PSG timing for TIMER. But I tried it with both just because, and it works. So looks like Timer method of tempo is okay. At least in the demo. Yep, as far as I can see, everything is working. Just to get around Arkhan's fantasies that I've been patching his mml2pce.exe, or making substantial changes to the player code, here's another version ... www.dropbox.com/s/eqo5wlo1yd86ujm/squirrel-2019-11-01.zip?dl=1The only changed files from Arkhan's original files in this version are ... 1) sound.asm : To fix the bank number bug in his original code (from PSG_BANK, to SOUND_BANK, because PSG_BANK is a PSG BIOS function number, and not a bank number), and to move his original psg_driver function into there from startup.asm (which Squirrel doesn't need to modify in the new HuC). 2) sound.inc : Macros to interface Squirrel into the new HuC, rather than modifying HuC's internal startup.asm the way that he does with the old HuC. Since sound.inc has now been changed to define the old single-underscore system variables, no other changes are needed to Squirrel's code, and mml2pce.exe doesn't need any changes. I've tried a number of the examaple mml files, and they seem to work fine. I modified one of the mml files to duplicate the tracks and so need a second bank for data, and that worked fine, too. I don't know what bugs I'm supposed to have added in there ... I'm sure not seeing any problems, with either the latest HuC, or with the old HuC 3.21. If someone finds something that doesn't work, may I politely suggest that reporting it, and providing an example, is more likely to get things fixed than just ranting on discord.
|
|
|
Post by Arkhan on Nov 2, 2019 7:47:20 GMT
Yep, as far as I can see, everything is working. Just to get around Arkhan's fantasies that I've been patching his mml2pce.exe, or making substantial changes to the player code, here's another version ... Who said anything about YOU doing the changes? Someone else did, and I told them "hey can you not do that?" as for "fantasies": Dude, I am just repeating what people say. The statement was "elmer modified stuff", along with the modified one you handed around that I admittedly did not look at lately, or much at all. No details or real context were given from others on "elmer modified stuff". I didn't even say anything about "substantial changes". I referred to it as a "modified version". You're just making shit up. One of these days, can you get please try to get your head out of your ass? You needlessly complicate conversations and forum threads by being a flatout jackass. Have you ever tried just like... going "hey check it out, here's whats up" without peppering it with your self important aspie bullshit that you on at least one occasion said you do on purpose because you *like* stirring the pot, or whatever the fuck? You're once again proving you're kind of incapable of a normal conversation unless you're in the company of people verbally masturbating you and/or your code. and aside from the Nightwolve explosion, this shit is very much another large part of the reason I stopped bothering with forums. Again, all hearsay from people, hence me posting it here. According to DK, his stuff tards out when there are bank crossings, and non VSYNC tempos didn't work. That may not have come from DK. I don't remember who had that issue. The irony here is, you and "politely" don't exactly go hand in hand which was pretty much a lot of the reason we've ended up in this state where I basically immediately read anything you write with [cunt][/cunt] tags applied around it and don't really feel like bothering with any of the shit you do. I thought maybe we'd get somewhere here, but thanks for proving me wrong, lol. This thread was me "reporting it". If you expect me to go to GitHub to report crap, nah. I don't know what DK did as far as mentioning anything to you. I know they email you sometimes about whatever they're doing, so I assumed they'd mentioned something there. ANYWAY: that's interesting that the original has that PSG_BANK goof in it though. Kinda curious why everything still works right if there is a bug in the original lol. Thanks for posting a reply about the stuff. If there are no vsync timer/bank bugs or any other weird shit, it does make it easier to give a shit and fix it. Since nobody ever could confirm / deny any of that, and the potential users (DK) were making fun of MML and us for not fixing Squirrel, we never bothered. No thanks for being a cunt. Try harder next time on that one. It'd be pretty cool.
|
|
|
Post by spenoza on Nov 2, 2019 12:22:22 GMT
Arkhan, Elmer can be a bit grumpy and passive aggressive, but you’re rude and passive aggressive. You’re putting all this on Elmer but you are equally culpable for the communication breakdown between you two. You both have clearly incompatible personal communication styles, but you need to take ownership for your own role in this and not put it all on Elmer. I honestly interpreted your complaint the same way Elmer did. So your complaint that Elmer is reading into your words feels a little shallow. You are asking us to interpret your words precisely without adequate context, and your communication is often not particularly precise. We have to read into your words all the time because the extra information we need is often not there. Also, we will not accuse people of being “aspie” on the forum.
|
|
|
Post by Arkhan on Nov 2, 2019 18:59:08 GMT
Arkhan, Elmer can be a bit grumpy and passive aggressive, but you’re rude and passive aggressive. You’re putting all this on Elmer but you are equally culpable for the communication breakdown between you two. You both have clearly incompatible personal communication styles, but you need to take ownership for your own role in this and not put it all on Elmer. I honestly interpreted your complaint the same way Elmer did. So your complaint that Elmer is reading into your words feels a little shallow. You are asking us to interpret your words precisely without adequate context, and your communication is often not particularly precise. We have to read into your words all the time because the extra information we need is often not there. Also, we will not accuse people of being “aspie” on the forum. I honestly need you to elaborate on how you can interpret "I don't know what was tweaked in the player code for HuCards by Elmer." as some strong accusation of heavily modified code, or as a complaint in general. It wasn't a complaint. It's not missing context, and it's pretty to the point. You know why there aren't more details? Because I don't have any. By admission. In my statement. You're using ad hominem against me to discount a valid point that Elmer's dipshittery in his latest post was not actually needed, detracted from the conversation (including his own), definitely pissed me off, and if you go read this thread again, you can see I barely referenced him, nor did I take any harsh jabs, yet you're somehow spinning everything back on me for asking questions and trying to sort out a problem. The vagueness of the modified/hacked MML2PCE was intentional because I don't know who knows about that and if the person who did it even wants it broadcast, so I left their name out. A more useful reply may have been "I didn't modify that. Did someone else?" I don't really need your lecture on "taking ownership", because this time, I didn't really do anything. It's also ironic considering one of the posts I made IN THIS THREAD saying "and.... maybe don't coyly act like we're the entire reason "that didn't happen", by the way. That was a shitshow that you too hard a part in.", and Elmer tossed in that self unaware "polite suggestion" to report bugs or whatever. Like clockwork, here we are in a shitshow that reminds me of why I stopped going to forums and just kinda sitback and watch this community fall apart either here or on facebook without my involvement, lol. So much for an attempt at sorting things out.
|
|
|
Post by turboxray on Nov 2, 2019 20:38:20 GMT
As far as the Timer thing, it's possible that I inadvertently fixed it by accident. The startup.am had missing stuff needed for HuC 3.99, so instead of just fixing the naming issues (the needed double underscore for some, and no underscore for others), I just isolated the Squirrel stuff and put it back into 3.99 startup.asm. I also had the PSG_BANK define back into startup.asm. Honestly, that's what probably fixed the timer tempo mode issue?? I dunno. I'll share the modified startup file for squirrel. Edit: Nevermind. I see that elmer fixed it.
|
|